Adviesrapport Hol.com

Maat: px
Weergave met pagina beginnen:

Download "Adviesrapport Hol.com"

Transcriptie

1 Adviesrapport Hol.com Middletier Development Gerben Peters Stephan Bosch Klas: ICD4a Docent: R. Middelkoop (MDL) Vak: MdlTr Inleverdatum:

2 Inhoudsopgave INHOUDSOPGAVE...1 INLEIDING...2 MANAGEMENT SAMENVATTING...3 PROBLEEMSTELLING...4 DOELSTELLING...6 WAT IS MIDDLEWARE?...7 SOORTEN MIDDLEWARE...7 RPC...8 MOM...8 Distributed Objects...12 Database-oriented Middleware...12 Transactional Middleware...12 Message Brokers...13 WAAROM MIDDLEWARE?...14 RMI...15 DE TECHNIEK...15 VOOR DE ONTWIKKELAAR...16 CORBA...20 DE TECHNIEK...20 VOOR DE ONTWIKKELAAR...22 RMI VS. CORBA...24 EJB...25 DE TECHNIEK...25 Wanneer EJB?...25 VOOR DE ONTWIKKELAAR...25 Installatie...25 Gebruik...27 Client interface...27 Home interface...27 Bean implementatie...28 EJB CONCLUSIE...28 LITERATUURLIJST...29 INDEX...30

3 Inleiding In dit adviesrapport willen wij graag een advies uitbrengen over de te gebruiken technieken m.b.t. de nieuw te ontwikkelen middleware. Middleware is de naam voor de koppeling tussen de bestaande applicatie en de nieuwe gebruikerskant, in dit geval de internet site. Hiervoor zijn een aantal technieken toe te passen, met elk zijn voor- en nadelen. Met behulp van dit verslag willen wij een toepassing aanraden en toelichten waarom het in dit geval de beste keuze is. Er zullen 3 alternatieven aan het licht komen, namelijk RMI (Remote Method Invocation), Corba (Common Object Request Broker Architecture) en EJB (Enterprise Java Beans). Wat deze technieken inhouden komt later in dit verslag aan bod. Adviesrapport middleware HOL.com 2

4 Management samenvatting Mogelijkheden RMI Eenvoudige implementatie op bestaande applicaties. Corba Implementatie taal onafhankelijk, applicaties geschreven in bijvoorbeeld.net, Delphi, Java, C, etc. kunnen met elkaar communiceren op applicatie-code-niveau. Enterprise Java Beans Schaalbare, onderhoudsvriendelijke componenten. Voor- en nadelen raming RMI Corba EJB Voorkennis Leercurve Ontwikkelgemak Implementatie Onderhoud Kosten Betrouwbaarheid Functionaliteit Snelheid Schaalbaarheid Flexibiliteit Beveiliging Ondersteuning Conformiteit aan standaarden Uitkomst = negatief, - = redelijk negatief, 0 = neutraal/nvt, + = matig, ++ = positief Conclusie Uit onze ervaringen is gebleken dat de keuze afhangt van de weging van de bovenstaande punten, uit de volgende beschrijving kunt u zelf de beste oplossing kiezen die het beste uw doelstellingen zal halen. Kiezen we een eenvoudige implementatie die gemakkelijk door te voeren is voor ontwikkelaars dan is RMI de beste keuze. Willen we een schaalbare, onderhoudsvriendelijke oplossing die voorbereid is op de toekomst dan kiezen we voor EJB in combinatie met JBoss. Is het nodig om te communiceren tussen verschillende systemen met verschillende applicaties dan is CORBA de beste optie. Adviesrapport middleware HOL.com 3

5 Probleemstelling Allereerst is er de site die inmiddels door vele klanten gevonden wordt. De huidige site bestaat uit dynamische webpagina s die de klant door het bestelproces heen helpen. Aan het eind van het proces wordt er door de laatste pagina een mailtje gecomponeerd welke door een van de vele medewerkers verwerkt wordt tot een order. Als de order rond is wordt een bevestigingsmailtje gestuurd aan de klant, als deze tenminste zijn adres heeft ingegeven. Uitgevers nemen veelvuldig contact op met hol.com als er nieuwe boeken uit zijn. De uitgevers lopen al een tijdje rond in de automatiseringswereld en vonden het nodig een gemeenschappelijk dataformaat af te spreken waar alle informatie over nieuwe boeken instaat. Bij hol.com lopen ze nog achter; de informatie van uitgevers krijgen zij nog per post en alles wordt handmatig ingevoerd in de database. Het volgende plaatje illustreert de opbouw van de verschillende applicaties: Figuur 1: Architectuur oude situatie Adviesrapport middleware HOL.com 4

6 Het volgende Use Case Diagram geeft de systeemfuncties en actoren weer: Figuur 2: Oude situatie Adviesrapport middleware HOL.com 5

7 Doelstelling Allereerst volgt hier het UseCase Diagram met een andere samenhang tussen UseCases en Actoren: Figuur 3: Nieuwe situatie hol.com heeft een zeer drukke architect in dienst die her en daar wat heeft gehoord over RMI, CORBA en EJB. Hij heeft voor de bestaande softwarearchitectuur een aantal verbeterpunten in gedachten maar heeft een prototype nodig om wat zekerder te zijn over zijn advies richting zijn projectmanager. Sommige verbeterpunten zijn heel concreet, voor andere verbetersuggesties heeft hij alleen wat hersenspinsels op papier gezet. Aan jou om de concrete verbeterpunten uit te ontwikkelen en advies te geven over de hersenspinsels. Voor ieder van de technieken hebben wij een prototype gemaakt, mede hierop baseren wij ons advies wat voor u ligt. Adviesrapport middleware HOL.com 6

8 Wat is Middleware? Kort samengevat is het doel van Middleware: Het doel van Middleware is het centraliseren van de software infrastructuur en zijn deployment. Soorten Middleware In het algemeen kan middleware gezien worden als alle typen software die faciliteren in de communicatie tussen verschillende software systemen. Een soort van bemiddelaar tussen verschillende partijen. Er zijn veel verschillende typen middleware die onderling moeilijk van elkaar te onderscheiden zijn, mede doordat ze steeds meer dezelfde functionaliteiten krijgen. Multi-tier architecture JSP/Servlet Enterprise JavaBeans presentation business logic / component ASP.NET Forms/Webservices ASP.NET Classes presentation business logic / component CORBA JMS JDBC JCA COM MSMQ ADO.NET middleware middleware Other App Other DB Oracle SAP CICS Cobol Other App Other DB SQLServer data data Locatie Middleware in Multi-Tier Architecture De volgende vormen zullen we kort toelichten om het beeld iets duidelijker te maken: Remote Procedure Calls (RPC s) Message Oriented Middleware (MOM) Distributed Objects Database-oriented Middleware Transactional Middleware Message Brokers Adviesrapport middleware HOL.com 7

9 RPC Een Remote Procedure Call (RPC) is een protocol dat het een programma op een computer een aanroep laat doen op een subroutine op een andere computer, zonder dat de ontwikkelaar daarvoor de code hoeft te schrijven voor de interactie tussen deze twee. Een object georiënteerde toepassing hiervan, die we later zullen bespreken, is Remote Method Invocation (RMI). Remote Method Invocation MOM Een alternatief voor remote method invocations is messaging (berichten versturen). Het idee achter messaging is dat er een middleman tussen de client en de server zit die berichten van één of meerdere message producers ontvangt en deze door stuurt naar één of meerdere message consumers. De producer kan een bericht versturen en doorgaan met processing en eventueel op de hoogte gebracht worden als de consumer klaar is. Dit noemt men asynchronous programming een term die je bijvoorbeeld op het moment vaak hoort op het internet als men praat over de techniek AJAX 1. Messaging De term Message-oriented middleware (MOM) wordt gebruikt voor infrastructuren die messaging ondersteunen. Een aantal producten die hier onder vallen zijn: Tibco Rendezvous IBM WebSphere MQ BEA Tuxedo/Q Sun Java System Messaging Server (JMS) Microsoft MSMQ Sonic Software SonicMQ FioranoMQ 1 Asynchronous JavaScript and XML Adviesrapport middleware HOL.com 8

10 Voordelen van messaging zijn: Nonblocking request processing Een client hoeft niet te wachten op het uitvoeren van het verzoek (request). Bijvoorbeeld als je een boek besteld op Hol.com dan kun je ondertussen doorgaan met browsen van de site, zonder dat je hoeft te wachten op het valideren van je creditcard. Decoupling De verstuurder hoeft niet te weten wie het antwoord verwerkt, hij heeft alleen contact met de middleman. Hierdoor zijn de producers dus los gekoppeld (decoupled) van de consumers, zodat het mogelijk is om de consumers te veranderen zonder wijzigingen aan de producers. Reliability Het is mogelijk om guaranteed delivery toe te passen, het is dan mogelijk om een bericht te versturen en er zeker van te zijn dat het aankomt, zelfs als de consumer tijdelijk niet beschikbaar is. De producer verstuurd het bericht naar de MOM middelman, die het bericht doorgeeft als de consumer weer beschikbaar is. Support for multiple senders and receivers De meeste MOM producten kunnen berichten accepteren vanaf verschillende plaatsen en kunnen deze doorsturen naar meerdere ontvangers. Dit zorgt voor een uiterst schaalbaar systeem. Voor Hol.com zou dit bijvoorbeeld kunnen betekenen dat er meerdere websites gebruik kunnen maken van dezelfde MOM die deze doorstuurt naar een of meerdere servers die de bestellingen kunnen afhandelen. Uiteraard zijn er ook nadelen aan het gebruik van messaging. Bijvoorbeeld de performance die lager kan zijn door het toevoegen van de extra laag (middleman). Adviesrapport middleware HOL.com 9

11 Wanneer Messaging? Wanneer moet je nu Messaging gebruiken en niet RMI-IIOP 2? Er zijn in de praktijk een aantal voordelen aan messaging die ervoor zorgen dat je op dat moment beter voor messaging voor kunt kiezen. We zullen er een paar op een rij zetten die mogelijk betrekking hebben op Hol.com: Database performance Bij relationeel database verkeer, zoals in het geval van Hol.com het verwerken van een order, kan het zijn dat messaging een voordeel biedt. Het maakt het namelijk mogelijk om een message, in ons geval een order, in een secundairy message queue te zetten die dan op een later tijdstip verwerkt kan worden. Dit zorgt ervoor dat de database de belasting van piek uren kan wegwerken op de tijden dat het minder druk is. Dit werkt natuurlijk alleen als de verwerking niet meteen bevestigd moet worden, dus bij een validatie van een creditcard is dit niet handig. Snelle afhandeling Een client wil niet wachten op antwoord als ze weten dat het antwoord toch niet komt. Bijvoorbeeld bij een methode die void retourneert zijn er twee mogelijkheden, namelijk er komt niets of er treed een exception 3 op, als de client nooit verwacht dat er een exception optreed, waarom zou hij dan moeten wachten op een antwoord? Many-to-many communications Als er meerdere partijen zijn die met elkaar praten, waarbij meerder producers en meerdere consumers met elkaar kunnen communiceren. Een scenario zou kunnen zijn dat Hol.com en andere boekenwinkels samen zouden werken en gegevens van meerdere leveranciers onderling uitwisselen. Decoupling Zoals al besproken bij MOM een losse koppeling tussen verzender en ontvanger. 2 Internet Inter-Orb Protocol 3 Wiki: Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of some condition that changes the normal flow of execution. The condition is called an exception Adviesrapport middleware HOL.com 10

12 Natuurlijk zijn er meerder voordelen te noemen voor het gebruik van messaging, maar die zijn volgens ons voor deze situatie niet echt van toepassing. Tegenover de voordelen zijn er altijd nadelen te noemen, net als bij de voordelen noemen we hier alleen de nadelen die van toepassing kunnen zijn op Hol.com: Zekerheid van succes Bij RMI-IIOP systemen kunnen er exceptions worden afgevangen, bij message-driven beans gaat dat niet. Als je een resultaat verwacht Bij RMI-IIOP systemen krijg je het resultaat direct terug, omdat het verzoek meteen wordt afgehandeld. Bij messaging gaat dat niet gemakkelijk, namelijk messages die terug moeten worden gestuurd waar de client dan naar moet gaan luisteren. Onderdeel van een transactie Als een bericht een onderdeel is van een transactie, zoals bij het bestellen en het afschrijven van de betaling via creditcard. Het zou vreemd zijn als er een betaling wordt verwerkt, maar geen bestelling aangemaakt kan worden in het systeem. Request performance Omdat messaging langzamer werkt als RMI-IIOP, door het gebruik van een middleman, worden de verzoeken langzamer. Bij een website betekend dit dat verzoeken altijd binnen een bepaalde tijd 4 moeten worden behandeld. One second (1.0) is about the limit for the user s flow of thought to remain uninterrupted Ten seconds (10.0) is about the limit for keeping the user s attention focused on the dialog. Jacob Niels - Designing Web Usability Een sterker gekoppeld, eenvoudiger system Synchroon ontwikkelen is eenvoudiger dan via messaging. Het is makkelijker om zelf datatypes te verzinnen en deze dan te gebruiken ten opzichte van het versturen van berichten, wat ook zorgt voor minder code. Daarnaast is het debuggen van de code veel gemakkelijker, omdat het namelijk vooraf bepaalde stappen aflegt. 4 Designing Web Usability Jacob Nielson ISBN X Adviesrapport middleware HOL.com 11

13 Distributed Objects Distributed objects vallen ook onder Middleware omdat ze zorgen voor de communicatie tussen verschillende applicaties. Een van de bekendste die we verderop zullen behandelen is de Common Object Request Broker Architecture (CORBA). Database-oriented Middleware In een Multi-tier architectuur is er ook sprake van Middleware op het niveau van communicatie met de databases, hierbij valt te denken aan technieken als Open Database Connectivity (ODBC), Java Database Connectivity (JDBC), OLE DB, etc. Hier zullen we verder niet op in gaan, omdat dit onderdeel niet belangrijk is voor Hol.com. Transactional Middleware Onder Transactional 5 Middleware vallen Transaction processing (TP) monitors en applicatie servers. JBoss 6 is bijvoorbeeld een applicatie server die hieronder valt. Deze technologie verzorgt allerlei facetten die nodig zijn om een schaalbare client/server architectuur te ontwikkelen. Enterprise JavaBeans (EJB) maken gebruik van een applicatie server en zullen verderop worden behandeld. Een applicatie-server zorgt voor het delen van logica tussen applicaties, maar verschaft ook de verbinding met back-office applicaties zoals ERP-systemen, mainframes en databases. Een nadeel van Transaction oriented Middleware is dat het zorgt voor een sterke koppeling tussen de applicaties, wat weer ten koste gaat van de flexibiliteit. 5 Een transactie is een ondeelbare eennheid werk met een begin en een eind, deze vindt plaats of helemaal niet. 6 Adviesrapport middleware HOL.com 12

14 Message Brokers Net als we de vraag stellen Wat is Middleware kunnen we ook de vraag stellen Wat is een Message Broker. Zodra je gaat zoeken kom je meteen de term EAI tegen wat staat voor Enterprise Application Integration, wat zoveel betekend als het samenbrengen van applicaties binnen een onderneming. Traditioneel messaging Je kunt Message Brokers zien als een extra laag bovenop de traditionele messaging systemen, zoals JMS en MSMQ. Deze laag zorgt ervoor dat het makkelijker is voor ontwikkelaars om informatie uit te wisselen tussen verschillende systemen, ze vertalen dus eigenlijk tussen applicaties, platformen, dataformaten hetgeen er ongeveer zo uitziet: Message Broker Communicatie gebeurt dan door middel van adapters, voorkomende technieken zijn bijvoorbeeld J2EE Connector Architecture (JCA) en XML, hier zullen we verder niet op in gaan. Adviesrapport middleware HOL.com 13

15 Waarom Middleware? Wat is nu het voordeel van middleware ten opzichte van de oplossing zoals Hol.com nu gebruikt? Een duidelijke vraag, waar we hier een duidelijk antwoord op proberen te geven. Op het moment zijn er bij Hol.com twee systemen, een website en een losse applicatie, de website registreert de bestellingen die de interne mensen overnemen in de losse applicatie. Deze applicatie heeft de benodigde business logica om een bestelling uit te voeren en is dus een uitstekende kandidaat om dit door middel van een middleware over te nemen. De applicatie zal blijven functioneren, zonder veranderingen aan de bestaande code en het andere systemen krijgen (indirect) toegang tot de mogelijkheden die er in het bestaande systeem zitten. Ook communicatie met leveranciers wordt hierdoor mogelijk, bijvoorbeeld het toevoegen van boeken die besteld kunnen worden bij de leverancier. De noodzaak om snel en efficiënt op wereldschaal te werken verhoogt de noodzaak voor integratie over afdelingen of zelfs over organisaties. Globaal kunnen we stellen dat de voordelen van Middleware gebruik zijn: De mogelijkheid om goedkoop kantoren en organisaties te koppelen via het internet. De noodzaak voor organisaties om coöperatief data en bedrijfsprocessen uit te wisselen. De wens om de generische diensten en het beheer van deze diensten te consolideren. Verzorging van gecentraliseerd applicatiebeheer, inclusief startup, shutdown, onderhoud, recovery, load balancing en monitoring. Open services en protocollen. Het uitrollen van business logica op ieder moment, zonder beperkingen van infrastructuur. Ondersteuning voor samenwerking van verschillende architecturen applicaties. Minder verschil nodig in soorten, niveaus en vaardigheden van het programmeurpersoneel en de behoeft voor geavanceerde tool-building expertise binnen projecten. Adviesrapport middleware HOL.com 14

16 RMI Java RMI (Remote Method Invocation) maakt het mogelijk functies aan te roepen vanuit een client applicatie in een server applicatie, op dezelfde manier zoals je dat normaal lokaal zou doen. RMI wordt volledig geschreven in Java, dit maakt RMI platform onafhankelijk, en zal dus op zowel een Microsoft-based als een Unix-based systeem gedraaid kunnen worden. De techniek Allereerst een schets om aan te geven hoe de communicatie tussen client en server verloopt: Remote Machine RMI Server skeleton bind Registry return call lookup stub RMI Client Local Machine Situatieschets van een RMI client-server applicatie De skeleton is in feite de structuur, of wel java code van de server applicatie, waarvan een aantal objecten door de RMI Server in het Registry worden bijgehouden. Het Registry fungeert als een telefoonboek waar alle adressen van beschikbare objecten worden bijgehouden, en opgevraagd kunnen worden van buitenaf. In een stub wordt vastgelegd hoe er gecommuniceerd moet worden met deze remote objects die geregistreerd zijn binnen het Registry. Dit wordt vastgelegd in de vorm van een Interface. Deze interface bevat een definitie van alle beschikbare functies, en de daarbij horende argumenten. Deze interface wordt vervolgens in de client applicatie gebruikt om objecten die gevonden worden in het Registry in onder te brengen. Dit zorgt ervoor dat voor de client-omgeving duidelijk is om welk object het gaat, en hoe ermee gewerkt dient te worden. Adviesrapport middleware HOL.com 15

17 Voor de ontwikkelaar Het ontwikkelen van een client-server applicatie dat gebaseerd is op de RMI methode bestaat uit de volgende 4 stappen: 1. Definieer de remote interface 2. Implementeren van deze remote services 3. Programmeer de server applicatie 4. Programmeer de client applicatie Daarna zijn de volgende 4 stappen nodig om de applicatie te starten: 1. Alle code compilen 2. Start de RMI server (hierdoor wordt het Registry geinitialiseerd) 3. Start de server applicatie 4. Start de client applicatie Stap1 Definieer de remote interface Hierin leg je vast welke procedures er gestart/uitgevoerd kunnen worden op de server door de client. De functies bevatten nog geen functionaliteit, het gaat hier alleen om de omroep, met de bijbehorende parameters. Als voorbeeld, om aan te geven hoe een interface er uit kan zien, gebruik ik een calculator. De calculator heeft een aantal functies, add, sub, mul en div. In dit geval verwachten alle functies de parameters a en b van het type long. De functie add zal a en b optellen, de functie sub zal b van a aftrekken, de functie mul zal a en b vermenigvuldigen en de functie div zal a delen door b. De code ziet er dan als volgt uit: Public interface Calculator extends java.rmi.remote { public long add(long a, long b) throws java.rmi.remoteexception; public long sub(long a, long b) throws java.rmi.remoteexception; public long mul(long a, long b) throws java.rmi.remoteexception; public long div(long a, long b) throws java.rmi.remoteexception; Hierbij is het van belang dat er wordt overgeërfd van een Remote object. Tevens moet elke functie een RemoteException op kunnen werpen, op het moment dat er tijdens de communicatie tussen client en server iets mis gaat. Adviesrapport middleware HOL.com 16

18 Stap2 Programmeer de remote objects Wanneer de interface klaar is kan er een implementatie geschreven worden voor deze interface. Hierbij moeten de functies voorzien worden van de nodige functionaliteit. public class CalculatorImpl extends java.rmi.server.unicastremoteobject implements Calculator { public CalculatorImpl() throws java.rmi.remoteexception { super(); public long add(long a, long b) throws java.rmi.remoteexception { return a + b; public long sub(long a, long b) throws java.rmi.remoteexception { return a - b; public long mul(long a, long b) throws java.rmi.remoteexception { return a * b; public long div(long a, long b) throws java.rmi.remoteexception { return a / b; Het is hierbij van belang dat er wordt overgeërfd van het UnicastRemoteObject en de in de vorige stap aangemaakte interface wordt geïmplementeerd. Adviesrapport middleware HOL.com 17

19 Stap3 Programmeer de server applicatie Het object CalculatorImpl moet nu door de server in het Registry worden geplaatst, zodat deze van buitenaf te benaderen is. import java.rmi.naming; public class CalculatorServer { public CalculatorServer() { try { Calculator c = new CalculatorImpl(); Naming.rebind("rmi://localhost:1099/CalculatorService", c); catch (Exception e) { System.out.println("Trouble: " + e); public static void main(string args[]) { new CalculatorServer(); Op deze manier wordt het object in het Registry geplaatst op het adres rmi://localhost:1099/calculatorservice, waarbij localhost de server is, en 1099 het poortnummer waarop het object CalculatorService te vinden is. Adviesrapport middleware HOL.com 18

20 Stap4 Programmeer de client applicatie De laatste stap voor de ontwikkelaar is het schrijven van de client applicatie. Wat hier moet gebeuren is dat op het in de vorige stap opgegeven adres het object weer wordt opgevraagd, en dat daar bewerkingen mee worden uitgevoerd. import java.rmi.naming; import java.rmi.remoteexception; import java.net.malformedurlexception; import java.rmi.notboundexception; public class CalculatorClient { public static void main(string[] args) { try { Calculator c = (Calculator) Naming.lookup("rmi://localhost/CalculatorService"); System.out.println(c.sub(4,3)); System.out.println(c.add(4,5)); System.out.println(c.mul(3,6)); System.out.println(c.div(9,3)); catch (MalformedURLException e) { e.printstacktrace(); catch (RemoteException e) { e.printstacktrace(); catch (NotBoundException e) { e.printstacktrace(); Zoals je hier ziet wordt er een Calculator (c) opgevraagd aan het denkbeeldige telefoonboek, met het adres en de naam van het gezochte object dat we bij de vorige stap hebben vastgelegd. Nadat dat is gebeurd kan er met het Calculator object meerdere bewerkingen worden uitgevoerd. Hierbij is het van belang dat bovenstaande exceptions worden afgevangen. Waar in alle gevallen rekening mee moet worden gehouden is dat classes die meegestuurd moeten worden over de lijn aan beide kanten moeten bestaan. Wanneer bijvoorbeeld aan een bestelsysteem voor boeken wordt gewerkt kun je je voorstellen dat er gebruik wordt gemaakt van een object Boek. Deze moet aan zowel de client- als de server zijde bekend zijn. Veelal wordt aan de client zijde gebruik gemaakt van een wrapper class. Dit houdt eigenlijk in dat alleen de noodzakelijke properties van de originele class worden overgenomen maar de overige properties en methoden niet. Dit zorgt ervoor dat aan de server zijde altijd het originele object weer herleden kan worden, maar niet telkens compleet over de lijn hoeft te worden gestuurd. Dit scheelt uiteindelijk in de performance. Bij het maken van deze wrapper class moet de interface Serializable worden geïmplementeerd. Adviesrapport middleware HOL.com 19

21 Corba Common Object Request Broker Architecture (CORBA) is een protocol ontwikkeld door Object Management Group (OMG). CORBA is tot op zekere hoogte vergelijkbaar met RMI. Het grote verschil is dat CORBA niet alleen werkt in Java maar ook in een groot aantal andere ontwikkelomgevingen en platformen. Zo is het bijvoorbeeld ook mogelijk een Java server applicatie te laten communiceren met een client geschreven in C. Dit maakt CORBA niet alleen platform onafhankelijk, maar is ook in een groot deel van de talen te implementeren. Omdat CORBA met zoveel omgevingen samen kan werken is het hier en daar ook iets gecompliceerder om het werkend te krijgen. Dit zal later in dit hoofdstuk duidelijk worden. De techniek In Corba worden alle objecten eigenlijk verpakt in een interface, en de enige manier om met de objecten te praten is door middel van deze interface. Elk object wordt verpakt in een interface Zodoende maakt het voor de client niet meer uit waar en op wat voor een machine een operatie wordt uitgevoerd. Het verpakken van objecten gebeurd door een zogenaamde IDL-compiler. IDL staat voor Interface Definition Language. Aan de hand van deze taal kan de IDL-compiler IDLstubs (client-side) en IDL-skeletons (server-side) in elke gewenste taal creëren waarvoor een IDL-compiler beschikbaar is. Hieronder volgt een voorbeeld van een IDL bestand: module remotetime { interface ExactTime { string gettime(); ; ; Adviesrapport middleware HOL.com 20

22 Deze kan vervolgens worden vertaald door een compiler naar code voor de client (de stub) en de code voor de server (het skeleton). Onderstaande afbeelding geeft weer hoe dit in zijn werk gaat: De werking van een IDL-compiler Er is nu een _ExactTimeImplBase object en een _ExactTimeStub. Onderstaande afbeelding geeft weer hoe de verdere communicatie tussen de Client en de Implementation verloopt. Een veel gebruikt protocol dat de communicatie tussen de ORB s verzorgt is IIOP, wat staat voor Internet Inter-ORB Protocol. Adviesrapport middleware HOL.com 21

23 Voor de ontwikkelaar Hiervoor is al duidelijk aan bod gekomen hoe CORBA in zijn werk gaat, wat betreft het aanmaken van stubs en skeletons. In dit stukje voor de ontwikkelaar wil ik een tipje van de sluier oplichten over de verdere implementatie van deze stub en skeleton op de client en de server. Allereerst moet op de server de implementatie van het skeleton worden geschreven. In het al eerder genoemde voorbeeld met de ExactTime server levert dat de volgende code op: class ExactTimeServer extends _ExactTimeImplBase { public String gettime() { return DateFormat.getTimeInstance(DateFormat.FULL). format(new Date(system.currentTimeMillis())); Dan rest ons nog de code van de server, welke eigenlijk altijd op dezelfde manier werkt, namelijk als volgt: // Remote application implementation public class RemoteTimeServer { // Throw exceptions to console: public static void main(string[] args) throws Exception { // ORB creation and initialization: ORB orb = ORB.init(args, null); // Create the server object and register it: ExactTimeServer timeserverobjref = new ExactTimeServer(); orb.connect(timeserverobjref); // Get the root naming context: org.omg.corba.object objref = orb.resolve_initial_references( NameService ); NamingContext ncref = NamingContextHelper.narrow(objRef); // Assign a string name to the object reference (binding): NameComponent nc = new NameComponent( ExactTime, ); NameComponent[] path = { nc ; ncref.rebind(path, timeserverobjref); // Wait for client requests: java.lang.object svnc = new java.lang.object(); synchronized(sync){ sync.wait(); Adviesrapport middleware HOL.com 22

24 Client implementatie: public class RemoteTimeClient { // Throw exceptions to console: public static void main(string[] args) throws Exception { // ORB creation and initialization ORB orb = ORB.init(args, null); // Get the root naming context: orb.omg.corba.object objref = orb.resolve_initial_references( NameService ); NamingContext ncref = NamingContextHelper.narrow(objRef); // Get (resolve) the stringified object // reference for the time server NameComponent nc = new NameComponent( ExactTime, ); NameComponent [] path = { nc ; ExactTime timeobjref = ExactTimeHelper.narrow(ncRef.resolve(path)); // Make requests to the server object: String exacttime = timeobjref.gettime(); system.out.println(exacttime); Ook hierbij is het raadzaam gebruik te maken van Wrapper classes, zoals dit in het laatste deel over RMI beschreven is. Adviesrapport middleware HOL.com 23

25 RMI vs. CORBA Hieronder volgt een korte opsomming van eigenschappen van beide technieken, die kunnen helpen een keuze te maken tussen beide. RMI RMI is eenvoudiger om mee te werken CORBA RMI maakt het mogelijk om alle interfaces gewoon in java te schrijven CORBA interfaces dienen in IDL te worden geschreven RMI is ontworpen om te werken met objecten die geschreven zijn in Java CORBA is platform en ontwikkeltaal onafhankelijk RMI objecten worden automatisch afgebroken door de garbage collector CORBA objecten worden niet automatisch door de garbage collector afgebroken Adviesrapport middleware HOL.com 24

26 EJB De techniek Sun creëerde Enterprise JavaBeans (EJB) samen met een aantal andere technieken (JSP, JNDI, Connector Architecture) en biedt het geheel aan onder de naam Java 2 Enterprise Environment (J2EE). EJB s zijn de kern van de bundel. Om met een EJB te kunnen werken heb je een Bean Container of EJB Container nodig dat de EJB-productie omgeving creëert. Een voorbeeld hiervan is de applicatieserver JBoss, een open source product, met een eenvoudige grafische installatie, beschikbaar voor bijna ieder platform. De EJB Middleware Component Standard is ontwikkeld voor de volgende doelen: Componenten laten samenwerken. Enterprise beans ontwikkeld op verschillende tools kunnen gewoon samenwerken. Ook zal een bean ontwikkeld met andere tools draaien in iedere EJB omgeving. Lifecycle issues opvangen, zoals ontwikkeling, deployment en runtime. Eenvoudig programmeer model met toegang tot low-level APIs. Compatibility met bestaande platformen wat ervoor zorgt dat bestaande producten kunnen worden aangevuld om EJB te ondersteunen. Om interactie mogelijk te maken met EJB en niet-java applicaties. Om compatible te zijn met CORBA. De focus van de EJB standaard is dus het creeren van een standaard voor Java middleware, om zo programmeurs te beschermen van de vele verschillende problemen het ontwikkelen van gedistribueerde applicaties. Hierdoor kan de softwareontwikkelaar zich beter concentreren op de business logica in plaats van het schrijven van ingewikkelde infrastructuur software met de bijbehorende tools. Wanneer EJB? Het gebruik van EJBs s aan te raden bij: Er bestaat de kans dat het systeem binnen 5 jaar te groot wordt voor één machine. Bijvoorbeeld Hol.com besluit om ook DVD s te gaan verkopen. Processortijd en geheugen 7 zijn makkelijk beschikbaar. Het systeem wordt professioneel gebruikt, zoals bij Hol.com door de medewerkers. Het systeem bestaat uit meerdere lagen, zoals een databaselaag, presentatielaag, etc. Het communiceert met meerdere partijen, denk hier aan communicatie met de website, leveranciers, etc. Voor de ontwikkelaar Installatie Enterprise JavaBeans (EJBs) zijn onderdeel van het Java Platform, Standard Edition (Java SE), deze kan gedownload worden vanaf de website 8 als een pakket JDK (momenteel 5.0 Update 9). De installatie die wij uitgevoerd hebben verliep zonder problemen door het pakket uit te pakken en uit te voeren met de juiste rechten. 7 EJBs gebruiken meer geheugen en processor-capaciteit dan gewone Java classes. 8 Adviesrapport middleware HOL.com 25

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.RMI...2

Inhoudsopgave. Hoofdstuk 1.RMI...2 - CORBA Inhoudsopgave Hoofdstuk 1.RMI...2 1.1.Inleiding...2 1.2.De remote...4 1.3.Het remote...5 1.4.De server...6 1.5.De server opstarten...8 1.6.De client applicatie...8 1.7.De stub en skeleton en...10

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

The OSI Reference Model

The OSI Reference Model Telematica Applicatielaag Hoofdstuk 16, 17 Applicatielaag 4Bevat alle toepassingen die van het netwerk gebruik maken n E-mail n Elektronisch nieuws n WWW n EDI (Electronic Data Interchange) n Napster,

Nadere informatie

Zelftest Java concepten

Zelftest Java concepten Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.JMS...2

Inhoudsopgave. Hoofdstuk 1.JMS...2 Inhoudsopgave Hoofdstuk 1.JMS...2 1.1.Inleiding...2 1.2.Messaging architectuur...3 1.2.1.Point to point domein...3 1.2.2.Publish/Subscribe domein...4 1.2.3.Synchrone - asynchrone verwerking...4 1.2.4.De

Nadere informatie

Unit testen van EJB's. Koert Zeilstra - iprofs

Unit testen van EJB's. Koert Zeilstra - iprofs Unit testen van EJB's Koert Zeilstra - iprofs Inleiding We weten tegenwoordig allemaal dat we ons product moeten testen om de kwaliteit te verhogen en behouden Software-ontwikkelaars zijn over het algemeen

Nadere informatie

De dynamiek van Middleware (in het HBO onderwijs)

De dynamiek van Middleware (in het HBO onderwijs) De dynamiek van Middleware (in het HBO onderwijs) Before I came here, I was confused about this subject. Having listened to your lecture, I m still confused, but on a higher level -- Enrico Fermi 1 Agenda

Nadere informatie

Weblogic 10.3 vs IAS 10.1.3

Weblogic 10.3 vs IAS 10.1.3 Vision ~ Knowledge ~ Results Weblogic 10.3 vs IAS 10.1.3 OGh Fusion Middleware/ SOA Dag 19 Mei 2010, Het Oude Tolhuys Edwin Biemond email edwin.biemond@whitehorses.nl Web http://blogs.whitehorses.nl/,

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Documentatie Distributed Services Enterprise Service Bus

Documentatie Distributed Services Enterprise Service Bus Documentatie Distributed Services Enterprise Service Bus Pleun Willemsen en Walter Ebbers 19 april 2012 v1.0 1 Inhoudsopgave 1 Inleiding 4 1.1 Opdracht................................ 4 2 Analyse 5 3 Ontwikkelomgeving

Nadere informatie

Automatisch Testen. Customer Business Lunch. 6 november 2014. Netherlands Germany Switzerland Serbia

Automatisch Testen. Customer Business Lunch. 6 november 2014. Netherlands Germany Switzerland Serbia Automatisch Testen Netherlands Germany Switzerland Serbia Customer Business Lunch 6 november 2014 3 Vraag? Doen wij al aan automatisch testen? 4 Agenda Automatisch testen Waarom? Mogelijkheden Demo Conclusie

Nadere informatie

Stichting NIOC en de NIOC kennisbank

Stichting NIOC en de NIOC kennisbank Stichting NIOC Stichting NIOC en de NIOC kennisbank Stichting NIOC (www.nioc.nl) stelt zich conform zijn statuten tot doel: het realiseren van congressen over informatica onderwijs en voorts al hetgeen

Nadere informatie

Object bus en objecten zijn de toekomst van het Internet

Object bus en objecten zijn de toekomst van het Internet Object bus en objecten zijn de toekomst van het Internet Tot voor kort kende het gebruik van internettechnologie een aantal problemen met het beschikbaar stellen van zakelijke toepassingen. De simpele

Nadere informatie

J2EE. Applicatie met Enterprise Java Beans. Middleware specialisatiethema Rob Juurlink IID7 2003 / 2004

J2EE. Applicatie met Enterprise Java Beans. Middleware specialisatiethema Rob Juurlink IID7 2003 / 2004 J2EE Applicatie met Enterprise Java Beans Middleware specialisatiethema Rob Juurlink IID7 2003 / 2004 VOORWOORD In deze middleware opdracht wordt gebruik gemaakt van J2EE Enterprise Java Beans. De opdracht

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

Distributed Systems Architectures

Distributed Systems Architectures Distributed Systems Architectures Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 1 Topics covered Multiprocessor architectures Client-server architectures Distributed object architectures

Nadere informatie

Integratie in de praktijk

Integratie in de praktijk Integratie in de praktijk Werken als integratie consultant bij KLM Werken als integratie consultant bij KLM T. Lansbergen A. Kwekel Hogeschool Rotterdam 13/10/2015 Agenda Introductie - Organisatie Use

Nadere informatie

Van 6 weken naar 6 minuten. met. OpenSource. Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl

Van 6 weken naar 6 minuten. met. OpenSource. Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl Van 6 weken naar 6 minuten met OpenSource Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl Wat is DUO? Uitvoeringsorganisatie van Ministerie van OCW - Studiefinanciering - Bekostiging

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit Installatie en gebruik van JUnit Auteurs: Niels Hendriks - 89713 Matthijs Langenberg - 89870 Wiebe van Schie - 84313 Siet Toorman - 91623 Job Vermeulen 90589 Semester: 6 DSO: QSO: Dhr. R.J.W.T. Tangelder

Nadere informatie

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

Nadere informatie

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens Nieuwbouw Vereenvoudigd en versnelt Java ontwikkeling Huub Cleutjens Inhoud IBS en Java Keuzes: taal / architectuur Productiviteit / arbeidsdeling IBS Java Development Accelerator Persistence UI Persistence

Nadere informatie

Variability in Multi-tenant SaaS Applications:

Variability in Multi-tenant SaaS Applications: Variability in Multi-tenant SaaS Applications: Gastcollege voor het vak Product Software Jaap Kabbedijk, MSc. Universiteit Utrecht, Nederland 1 Wat gaan we behandelen? Introductie Uitleg ontwikkeling SaaS

Nadere informatie

Technologieverkenning

Technologieverkenning Technologieverkenning Videocontent in the cloud door de koppeling van MediaMosa installaties Versie 1.0 14 oktober 2010 Auteur: Herman van Dompseler SURFnet/Kennisnet Innovatieprogramma Het SURFnet/ Kennisnet

Nadere informatie

Stappenplannen MailPlus SOAP API

Stappenplannen MailPlus SOAP API Stappenplannen MailPlus SOAP API Stappenplannen MailPlus SOAP API oktober 2009 Introductie Dit document bevat stappenplannen welke u als technische gebruiker van MailPlus op weg kunnen helpen met de koppeling

Nadere informatie

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl SOA Security en de rol van de auditor... ISACA Roundtable 2 juni 2008 Arthur Donkers, 1Secure BV arthur@1secure.nl 1 SOA Web 2.0, web services en service oriented architecture (SOA) is tegenwoordig de

Nadere informatie

Network Computing Architecture Toekomstige rol van Oracle Developer marginaal

Network Computing Architecture Toekomstige rol van Oracle Developer marginaal Network Computing Architecture Toekomstige rol van Oracle Developer marginaal Door Patrick Koning Een aantal jaren geleden realiseerde Oracle zich dat zijn Designer/Developer strategie voor applicatieontwikkeling

Nadere informatie

Ontwerpen van een Enterprise Service Bus

Ontwerpen van een Enterprise Service Bus Applicatie-ontwikkeling waarbij integratie met andere systemen niet van toepassing is komt zelden meer voor. Daarom komt steeds prominenter naar voren de vraag naar een Enterprise Service Bus (ESB). Maar

Nadere informatie

Knowledgeable Referenceable Personable Accountable Scalable

Knowledgeable Referenceable Personable Accountable Scalable Knowledgeable Referenceable Personable Accountable Scalable 1 WebForms en JavaBeans bij Essent Energie OGH presentatie 3 juli 2003 2 Agenda Inleiding Eenvoudige Java Bean in Web Forms Demo Meer complexe

Nadere informatie

Parasoft toepassingen

Parasoft toepassingen Testen op basis van OSB en Digikoppeling Voor de bestaande Overheid Service Bus en de nieuwe standaard Digikoppeling zijn verschillende test- omgevingen opgezet. Hiermee kan het asynchrone berichtenverkeer

Nadere informatie

Taxis Pitane. Transporter. Censys BV Eindhoven

Taxis Pitane. Transporter. Censys BV Eindhoven Taxis Pitane Transporter Censys BV Eindhoven Inhoud Communicatie, ongeacht software pakket dat u gebruikt... 3 Kenmerken van de communicatie software... 3 Ontwikkelomgeving... 4 Installatie van de software...

Nadere informatie

Hoge beschikbaarheid bij Lips Textielservices Johan Westerduin, Transfer Solutions

Hoge beschikbaarheid bij Lips Textielservices Johan Westerduin, Transfer Solutions Hoge beschikbaarheid bij Lips Textielservices Johan Westerduin, Transfer Solutions 22 April, 2010 Woerden, Nederland Introductie Transfer Solutions Transfer Solutions is een gespecialiseerde

Nadere informatie

Enterprise JavaBeans 3.1

Enterprise JavaBeans 3.1 Enterprise JavaBeans 3.1 Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld.

Nadere informatie

.NET of.not in de praktijk voorbij het onderbuikgevoel

.NET of.not in de praktijk voorbij het onderbuikgevoel .NET of.not in de praktijk voorbij het onderbuikgevoel Robert Jan Elias & Maarten Gribnau robertjan.elias@mavim.com & maarten.gribnau@mavim.com http://www.mavim.com 1/15 Inhoud Mavim het bedrijf Mavim

Nadere informatie

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie

Nadere informatie

Organiseer uw verschillende SOAP services in één scenario

Organiseer uw verschillende SOAP services in één scenario 1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten wouterluijten@creetion.com 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.

Nadere informatie

Samengaan van Geo-informatie en Service Oriëntatie

Samengaan van Geo-informatie en Service Oriëntatie Samengaan van Geo-informatie en Service Oriëntatie Waterbodem Applicatie (WAB*info) 10 juli 2008 Gaston Lamaitre Data-ICT-Dienst, Delft Inhoud Wat doet Rijkswaterstaat? Doel van WAB*info De randvoorwaarden

Nadere informatie

TECHNICAL DESIGN DOCUMENT

TECHNICAL DESIGN DOCUMENT TECHNICAL DESIGN DOCUMENT BACHELORPROJECT IN3405 John Ciocoiu 1358227 Elwin Dokter 1275909 TECHNISCHE UNIVERSITEIT DELFT FACULTEIT EWI WOENSDAG 28 APRIL 2010 VERSIE 1 COMMISSIE: Ing. D.J. van Roest (opdrachtgever)

Nadere informatie

JSF webapplicatie performance

JSF webapplicatie performance JSF webapplicatie performance Kees Broenink (JSF expert), 27 januari 2009 JSF webapplicatie performance... 1 Applicatieserver in productie... 2 HotSpot... 2 Geheugen... 2 Webapplicatie performance analyse...

Nadere informatie

Leones. Business Case Service Management Tool

Leones. Business Case Service Management Tool Leones Business Case Service Management Tool Inhoudsopgave 1. AFBAKENING... 3 1.1 DOEL... 3 1.2 AANNAMES... 3 1.3 HUIDIGE SITUATIE... 3 1.4 PROBLEEMSTELLING... 3 1.5 WAT ALS ER NIETS GEBEURT?... 3 2. OPTIES...

Nadere informatie

Product marketing met

Product marketing met Product marketing met Michiel Klaren, Natasja Paulssen 2007-11-22 Complexiteit van de Content Management Chain Hoe het was (2002) Meer dan 9,000 uitwisselingen nodig voor verzamelen content van catalogus

Nadere informatie

Webplatform & Klantmanagement. 112 Applicaties. Met Microsoft technologie. Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V.

Webplatform & Klantmanagement. 112 Applicaties. Met Microsoft technologie. Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V. Webplatform & Klantmanagement 112 Applicaties Met Microsoft technologie Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V. Agenda Onderwerpen: Beschrijving van het probleemdomein Mobiele

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Applicatie Integratie in de zorg: implementatie tips uit de praktijk

Applicatie Integratie in de zorg: implementatie tips uit de praktijk Applicatie Integratie in de zorg: implementatie tips uit de praktijk Veel zorginstellingen geven aan informatievoorziening te willen verbeteren. Om bijvoorbeeld de cliënt meer centraal te stellen of Het

Nadere informatie

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access Gebruik van cryptografie voor veilige jquery/rest webapplicaties Frans van Buul Inter Access 1 Frans van Buul frans.van.buul@interaccess.nl 2 De Uitdaging Rijke en veilige webapplicaties Een onveilig en

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Onderwerp Programming in the large! ( programming in the small)! Bijvoorbeeld: KU Leuven Veel verschillende functionaliteit

Nadere informatie

Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies

Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies voorheen 10 jaar Oracle-specialist! Agenda Wat is een Service-Oriented Architecture?

Nadere informatie

Introductie.NET Framework 3.0 A N D R É O B E LIN K, M C S D, M V P

Introductie.NET Framework 3.0 A N D R É O B E LIN K, M C S D, M V P Introductie.NET Framework 3.0 A N D R É O B E LIN K, M C S D, M V P About me Technical Manager / lead developer Actief in de Visual Basic en.net community www.vbcentral.nl, VP Speakers Bureau INETA Europe

Nadere informatie

ManualMaster Systeem 6.1 (ManualMaster Administrator, ManualMaster WebAccess en ManualMaster WebEdit)

ManualMaster Systeem 6.1 (ManualMaster Administrator, ManualMaster WebAccess en ManualMaster WebEdit) Let op: de versie op de gebruikerswebsite kan worden bijgewerkt! Het kan dus zijn dat uw geprinte versie verouderd is. Van toepassing op ManualMaster Systeem 6.1 (ManualMaster Administrator, ManualMaster

Nadere informatie

Niklas Integratie Platform Verbeteren, besparen en méér

Niklas Integratie Platform Verbeteren, besparen en méér Niklas Integratie Platform Verbeteren, besparen en méér Het betaalbare integratieplatform voor al uw Business-to-Business Integratie en Applicatie Integratie Volledig geautomatiseerde afhandeling van elektronisch

Nadere informatie

Congres Architectuur in de Zorg

Congres Architectuur in de Zorg Congres Architectuur in de Zorg Men neme een architect Recept voor een goed zorgsysteem Nieuwegein, 23 juni 2011 Even voorstellen Even voorstellen M&I/Partners, Speerpunten in de zorg EPD-strategie en

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Dynamische webapplicaties in Java

Dynamische webapplicaties in Java Dynamische webapplicaties in Java October 7, 2006 In java is het mogelijk dynamische webpagina s te implementeren. De code om de dynamische gegevens te genereren staat in servlets of Java Server Pages

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

Continuous testing in DevOps met Test Automation

Continuous testing in DevOps met Test Automation Continuous ing in met Continuous testing in met Marco Jansen van Doorn Tool Consultant 1 is a software development method that emphasizes communication, collaboration, integration, automation, and measurement

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE MODULENAAM Programmeren 5 MODULECODE B STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja Handelswetenschappen en bedrijfskunde HBO Informatica Evaluatie

Nadere informatie

Uitleg algemene structuur WTell

Uitleg algemene structuur WTell Uitleg algemene structuur WTell Brondocument C:\WebServer\Handleiding\WTellAlgemeen\WTellStructuurGlobaal.odt Versiebeheer Versie Datum Uitleg 1.0v 21-09-11 1e versie met uitleg globale structuur WTell

Nadere informatie

Informatiearchitectuur

Informatiearchitectuur Informatiearchitectuur Onderwerpen Waarom is architectuur (nu) zo belangrijk? Wat is informatiearchitectuur? Ontwikkelingen in de tijd Structuur applicaties Applicatie-integratie Webservices Praktijkvoorbeeld

Nadere informatie

Siemens workpoints en DHCP options

Siemens workpoints en DHCP options Siemens workpoints en DHCP options Dit document beschrijft de configuratie en werking van een Windows 2003 DHCP server in combinatie met Siemens optipoint en Siemens OpenStage toestellen (aangemeld op

Nadere informatie

Model driven Application Delivery

Model driven Application Delivery Model driven Application Delivery Fast. Flexible. Future-proof. How Agis streamlines health procurement using Mendix Model driven Application Platform Mendix in a nutshell Mendix delivers the tools and

Nadere informatie

REST Adapter in SAP PI/PO voor REST-based Web Services

REST Adapter in SAP PI/PO voor REST-based Web Services REST Adapter in SAP PI/PO voor REST-based Web Services Inleiding Eindelijk! SAP heeft officieel de REST Adapter voor SAP PI/PO uitgebracht. Deze is beschikbaar vanaf SAP NetWeaver 7.3 EHP1 SP14 of SAP

Nadere informatie

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Beknopte dienstbeschrijving Beveiligen van e-mail m.b.v. digitale certificaten en PKI Document: Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Inhoudsopgave 1. Inleiding 2 2. Snel te

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Slimmer samenwerken met SharePoint Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Workflows, forms, reports en data WAAROM KIEZEN VOOR K2? Of u nu workflows moet maken voor items in SharePoint

Nadere informatie

Absentie Presentie Server Migratie

Absentie Presentie Server Migratie Absentie Presentie Server Migratie Auteur A. Boerkamp Versie V1.2 Datum 11-08-2010 Status Voor Intern / Extern gebruik Pincash International, 3066GS Rotterdam, Anthonetta Kuijlstraat 43-45, 010-2868000

Nadere informatie

Versturen van email vanuit een Delphi VCL toepassing

Versturen van email vanuit een Delphi VCL toepassing Versturen van email vanuit een Delphi VCL toepassing Voor Delphi bestaan uiteraard verschillende libraries om emails te versturen, maar in dit voorbeeld wordt een C# Dotnet library gebruikt en aangesproken

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Service Virtualization @RABOBANK

Service Virtualization @RABOBANK Service Virtualization @RABOBANK TMA Dag 2015 eter Claassen RABOBANK Marc van Lint - IBM Agenda 1. Rabobank Context 2. DevOps Vision 3. roof en Implementeren 4. Voorbeelden 5. Ervaringen & Best ractices

Nadere informatie

MS-Office documenten integratie via SAP PI

MS-Office documenten integratie via SAP PI MS-Office documenten integratie via SAP PI Met behulp van het SAP Process Integration systeem (SAP PI) kun je op vele manieren je integratie regelen tussen je SAP systemen en/of andere systemen. Ook met

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

output management www.advanced-forms.com

output management www.advanced-forms.com output management www.advanced-forms.com Advanced-Forms Advanced-Forms is een state-of-the-art, gebruiksvriendelijke- en flexibele outputmanagementoplossing voor bedrijven van elke grootte. Met Advanced-Forms

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Business-to-Business

Business-to-Business Business-to-Business 1 WAT IS BUSINESS-TO-BUSINESS? 1.1 Inleiding Bedrijven communiceren veelvuldig met elkaar. Orders worden geplaatst, facturen worden verzonden, informatie wordt uitgewisseld. Zo n dertig

Nadere informatie

HOGESCHOOL ROTTERDAM / CMI

HOGESCHOOL ROTTERDAM / CMI HOGESCHOOL ROTTERDAM / CMI Internettechnologie INFITT01 Aantal studiepunten: 3 Modulebeheerder: A. L. J. Busker I N F I T T 0 1 21-7 - 2 0 1 4 1 Modulebeschrijving Modulenaam: Modulecode: Aantal studiepunten

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces Software Processen Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1 Het software proces Een gestructureerd set van activiteiten nodig om een software systeem te ontwikkelen Specificatie;

Nadere informatie

Multi-tier client/server revolutie

Multi-tier client/server revolutie Multi-tier client/server revolutie Op weg naar een flexibele, onderhoudbare informatievoorziening Vandaag de dag hebben organisaties nog altijd te kampen met hoge ontwikkel- en onderhoudskosten bij het

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

SKILLS (Ervaring in jaren)

SKILLS (Ervaring in jaren) Contact the Agency Laurens Simonse 02201031 L.simonse@lsg.nl Bart Nijskens 052302211 B.nijskens@lsg.nl ROCKSTARS Rob Roepnaam: Rob Regio: Eindhoven Geboortedatum: 23 maart 19 Nationaliteit: Nederlands

Nadere informatie

Invantive Producer. Als integriteit en compliance noodzakelijk is. Maar niks extra mag kosten.

Invantive Producer. Als integriteit en compliance noodzakelijk is. Maar niks extra mag kosten. Invantive Producer Als integriteit en compliance noodzakelijk is. Maar niks extra mag kosten. Agenda Invantive Visie De Invantive Benadering Het Invantive Resultaat Invantive Producer Praktijkvoorbeelden

Nadere informatie

Is APEX a worthy substitute for Oracle Forms?

Is APEX a worthy substitute for Oracle Forms? your oracle solu+ons partner Is APEX a worthy substitute for Oracle Forms? APEX for mission critical applications: the Groupm business-case By Ronny Boeykens & Stijn Van Raes iadvise o Opgericht in 2004

Nadere informatie

Samba Windows Netwerken onder Linux

Samba Windows Netwerken onder Linux Samba Windows Netwerken onder Linux Jelmer Vernooij Samba Team jelmer@samba.org Oktober 2006 1 Jelmer Vernooij Samba ontwikkelaar en teamlid Mede-auteur en editor van The Samba HOWTO Collection and Reference

Nadere informatie

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA Onder de motorkap van Microsoft Azure Web Sites Eelco Koster Software architect ORDINA Agenda Introductie Architectuur Project Kudu Azure Resource Manager Doel Dieper inzicht geven in de werking van Azure

Nadere informatie

Sebyde AppScan Reseller. 7 Januari 2014

Sebyde AppScan Reseller. 7 Januari 2014 Sebyde AppScan Reseller 7 Januari 2014 Even voorstellen Sebyde BV is Certified IBM Business Partner voor security systems, gespecialiseerd in applicatie security en security awareness. We leveren diensten

Nadere informatie

Portals & Open Source

Portals & Open Source Portals & Open Source OGh Jaarcongres 2003 Zeist, 7 october R.V.L.P. Schaaf Agenda Introductie Begrippenkader en standaards Open Source portals Onder de loep: Imbrium Praktijk case Open Source in uw organisatie?

Nadere informatie

Angular Best Practices Door Alex en Chris van Beek

Angular Best Practices Door Alex en Chris van Beek Angular Best Practices Door Alex en Chris van Beek Over ons Enthousiastelingen Software Architecten bij Luminis Arnhem B.V. Gespecialiseerd in Microsoft technologie:.net, Azure en Windows Twitter: @Beekje

Nadere informatie

Genie-IT Offshoring services

Genie-IT Offshoring services Genie-IT Offshoring services Genie-IT is een Nederlands bedrijf dat zich specialiseert in off-shoring services. Wij bieden onze klanten de mogelijkheid om softwareontwikkeling helemaal of gedeeltelijk

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Een eenvoudige webserver maken in Lazarus

Een eenvoudige webserver maken in Lazarus Een eenvoudige webserver maken in Lazarus Michaël Van Canneyt 2 december 2011 Samenvatting Free Pascal - en dus ook Lazarus - kan meerdere TCP/IP componenten compileren: Synapse, Indy en lnet. Free Pascal

Nadere informatie

De weg naar goede gedistribueerde systemen - het belang van architectuur

De weg naar goede gedistribueerde systemen - het belang van architectuur Met de komst van Internet en applicatieservers ontstaat nieuwe aandacht voor gedistribueerde systemen. Het distribueren van systemen heeft veel voordelen, maar is ook complexiteitsverhogend. Hoe kunnen

Nadere informatie

Werken zonder zorgen met uw ICT bij u op locatie

Werken zonder zorgen met uw ICT bij u op locatie Werken zonder zorgen met uw ICT bij u op locatie Naast de mogelijkheden om uw programmatuur en gegevens bij Drie-O via Evy 2.0 in de cloud te hosten hebt u ook de mogelijkheid om uw ICT omgeving bij u

Nadere informatie