DE TOEKOMST VAN ENTERPRISE APPLICATION INTEGRATION

Maat: px
Weergave met pagina beginnen:

Download "DE TOEKOMST VAN ENTERPRISE APPLICATION INTEGRATION"

Transcriptie

1 DE TOEKOMST VAN ENTERPRISE APPLICATION INTEGRATION INTEROPERABILITEIT VAN J2EE EN.NET WEB SERVICES DELFT,AUGUSTUS Mark Dumay Remco Groeneweg Technische Universiteit Delft Faculteit Informatie Technologie en Systemen Afdeling Technische Informatica

2 2

3 Voorwoord Dit rapport behoort bij het vak OO Talen & Technieken, welke onderdeel uitmaakt van de doctoraalfase van de opleiding Technische Informatica. Doel van het vak is om de kennis en vaardigheden van studenten op OO-gebied te verdiepen en te verbreden. In dit rapport wordt ingegaan op het fenomeen web services. Hierbij wordt specifiek gekeken naar twee platformen die dit claimen te ondersteunen, te weten Microsoft.NET en Java 2 Enterprise Edition. Daarnaast wordt onderzocht of de web service de bestaande en toekomstige integratieproblematiek van applicaties vereenvoudigt. Mark Dumay en Remco Groeneweg. Delft, augustus De illustratie op de voorkant van dit rapport is eigendom van SoftwareAG en afkomstig van de volgende URL: 3

4 4

5 Gehanteerde afkortingen API ASP CBD CLR CLS COM CORBA DCOM DNA EAI EIS EJB GAC HTTP IAI IDE IDL IIS IL IS IIOP J2EE JAX-RPC JAXM JAXR JMS LAN MOM RMI RPC SOAP TCP UDDI UML WSDL WSDP XML XSD Application Programming Interface Active Server Pages Component-Based Development Common Language Runtime Common Language Specification Component Object Model Common Object Request Broker Architecture Distributed Component Object Model Distributed Network Architecture Enterprise Application Integration Enterprise Information System Enterprise JavaBeans Global Assembly Cache Hypertext Transfer Protocol Inter-enterprise Application Integration Integrated Development Environment Interface Definition Language Internet Information Server Intermediate Language Information System Internet Inter-Orb Protocol Java 2 Enterprise Edition Java API for XML-based RPC Java APIs for XML Messaging Java API for XML Registries Java Message Service Local Area Network Message-oriented middleware Remote Method Invocation Remote Procedure Call Simple Object Access Protocol Transfer Control Protocol Universal Description, Discovery, and Integration Unified Modeling Language Web Services Description Language Java Web Services Developer Pack Extensible Markup Language XML Schema Definition Language 5

6 6

7 Inhoudsopgave VOORWOORD 3 GEHANTEERDE AFKORTINGEN 5 1 INLEIDING 9 2 CASE BESCHRIJVING 11 3 INTER-ENTERPRISE APPLICATION INTEGRATION INLEIDING DEFINITIE VAN EEN BEDRIJFSINFORMATIESYSTEEM SYSTEEMINTEGRATIE OP BEDRIJFSNIVEAU MIDDLEWARE ALS SYSTEEMINTEGRATIETECHNOLOGIE DEWEBSERVICEALSMIDDLEWARE-EVOLUTIE 16 4 DE TECHNIEK ACHTER WEB SERVICES WEB SERVICE PROTOCOL HET J2EE PLATFORM HET.NET PLATFORM 21 5 DE J2EE APPLICATIE HOTCOFFEE INLEIDING ONTWERP IMPLEMENTATIE INSTALLATIE 33 6 DE.NET APPLICATIE DHB-ERP.NET INLEIDING ONTWERP IMPLEMENTATIE INSTALLATIE 40 7 ERVARINGEN BIJ J2EE EN.NET INTEGRATIE 43 8 CONCLUSIE 45 LIJST VAN FIGUREN 47 REFERENTIES 49 7

8 8

9 1 Inleiding Applicatie-integratie van bedrijfsinformatiesystemen (Engels: Enterprise Information Systems [EIS]) is momenteel een erg actueel thema in het vak van de IT. Met de ontwikkeling van vele afzonderlijke applicaties is er sprake van een heterogene informatievoorziening in veel bedrijven. De behoefte om die applicaties met elkaar samen te laten werken, dan wel opnieuw te implementeren, wordt dan ook steeds groter. Applicaties die al enkele jaren operationeel zijn, en veelal geïmplementeerd zijn middels inmiddels verouderde technieken, worden ook wel aangeduid met de term legacy applicatie. Opnieuw ontwikkelen van deze applicaties is veelal echter geen reële optie, voornamelijk vanwege de gepaard gaande kosten en gevergde tijdsbesteding. Nieuwe platformen, zoals J2EE en.net, doen de belofte dat deze platformen de integratie met bestaande applicaties vergemakkelijken. Maar daarnaast gaan ze nog een stap verder: ze maken het ook eenvoudiger om applicaties van verschillende bedrijven aan elkaar te koppelen, zogenaamde bedrijfsketenintegratie. In dit rapport wordt dit aangeduid als Inter-enterprise Application Integration (IAI). Centraal concept hierbij is de webservice. Technisch gezien wordt er geen onderscheid gemaakt naar applicaties binnen een bedrijf of daar buiten. Het is de verwachting dat veel nieuwe EIS op een van beide platformen (J2EE of.net) zullen worden ontwikkeld. Het is echter de vraag of het probleem van applicatie-integratie hiermee in de toekomst geheel verdwenen is. Dit rapport geeft hierop een antwoord door in beide platformen een webservice te implementeren en deze vervolgens met elkaar samen te laten samenwerken. Het onderzoek in dit rapport is gebaseerd op een zelf opgestelde casusbeschrijving, die een in onze ogen reëel vraagstuk op het vlak van bedrijfsketenintegratie beschrijft. Dit wordt uitgewerkt door allereerst het begrip IAI af te bakenen, waar met name de relatie tussen informatiesystemen en (bedrijfs)applicaties aan bod komt. Vervolgens worden web services vanuit een technische invalshoek bekeken. Op grond van de casus worden vervolgens twee applicaties uitgewerkt, waarvan één op basis van J2EE en de ander op basis van.net. Vervolgens komen de ervaringen bij de koppeling van deze twee applicaties aan bod. Tot slot worden de algemene indrukken en ervaringen verwerkt in de conclusie van dit onderzoek. 9

10 10

11 2 Case beschrijving Koffiebranderij De Heete Boon (DHB), welke is gevestigd in Haarlem te Nederland, is al sinds 1794 specialist in het prepareren en branden van koffiebonen. Voornaamste afzetmarkt van de geproduceerde koffie is de Benelux en Duitsland. DHB, welke diverse koffiemerken in handen heeft, zit momenteel op een marktaandeel van 24% en is hiermee de op één na grootste speler. De grote concurrent StarCoffee, een van oorsprong Amerikaans bedrijf, wist door een agressieve groeistrategie in 5 jaar tijd een marktaandeel van 31% te bemachtigen. DHB wil met StarCoffee gaan concurreren op prijs, waarbij ze wel garant wil staan voor een constante hoge kwaliteit. Daarnaast heeft de marketing&sales afdeling het plan opgevat de diversiteit van het productaanbod te vergroten. Hierbij wordt onder andere gedacht aan Hete Boon Mocca Royal en Hete Boon Excellent. Voor beide producten zijn speciale koffiebonen benodigd, die niet door de huidige toeleveranciers kunnen worden verzorgd. De directie van DHB wil om de nieuwe strategie te kunnen verwezenlijken een verregaande ketenintegratie realiseren. Hierbij moeten de toeleveranciers en DHB intensief met elkaar kunnen communiceren over productaanbod, prijs en leveringsdatum. In de toekomst wordt er gedacht aan het realiseren van Just-in-Time productie, zodat er een minimale voorraad kan worden aangehouden. IT wordt gezien als het belangrijkste technologische middel dat kan worden ingezet. Om het project in goede banen te leiden, wordt allereerst een pilot opgezet, waarbij DHB en één toeleverancier betrokken zijn. Vanwege de goede verstandhouding tussen Karel Boon en een directielid van Microsoft Nederland, bezit DHB een serverpark op basis van Windows Bovendien is er recentelijk een licentie van Visual Studio.NET verkregen. De toeleverancier in Guatemala moet het echter met een oude Pentium doen, die ook nog eens regelmatig niet te gebruiken is vanwege stroomuitval. Hierop draait een Linux distributie van RedHat, met een gratis reference implementatie van Sun J2EE. De applicaties DHB-ERP.NET en HotCoffee zijn onafhankelijk van elkaar ontworpen en geïmplementeerd. De systeemintegratie is dan ook iets wat op basis van de bestaande applicaties dient te worden gerealiseerd. Wel kan hier gebruik worden gemaakt van de bestaande ontwerpen en broncode. Na de pilot wil de directie van DHB graag een rapport verkrijgen, met daarin een theoretische achtergrond van systeemintegratie. Daarnaast moet het rapport kunnen dienen als basis voor de technici die een eventueel systeem gaan realiseren. Dit betekent eveneens dat er een goede beschrijving moet komen van de eventuele tekortkomingen van de voorgestelde techniek. De pilot moet dan ook vooral worden gezien als een proofof-concept. 11

12 12

13 3 Inter-enterprise application integration Dit hoofdstuk geeft een uitleg van het begrip inter-enterprise application integration en de daarbij behorende definities. Achtereenvolgens worden de begrippen bedrijfsinformatiesysteem, applicatie-integratie, middleware en web service besproken. 3.1 Inleiding Inter-enterprise application integration (IAI) is het onderzoeksgebeid dat zich bezighoudt met de koppeling van bedrijfsapplicaties van verschillende bedrijven. Vanuit een informaticaperspectief wordt gekeken hoe bedrijfsketenintegratie kan worden gerealiseerd of geoptimaliseerd. De nadruk ligt hierbij op procesintegratie. Dit betekent dat het niet zo zeer gaat om de applicaties daadwerkelijk met elkaar te integreren, maar dat de applicaties met elkaar moeten kunnen samenwerken om samen een proces tussen twee of meerdere bedrijven te realiseren. IAI kan worden gezien als de volgende stap in de bedrijfsautomatisering, waarbij werkzaamheden door personen om de processen van verschillende bedrijven aan te laten sluiten worden gerealiseerd door een automatiseringsoplossing. Technisch gezien is het zogenaamde middleware die bedrijfsinformatiesystemen van verschillende organisaties met elkaar integreert. Om nu de begrippen bedrijfsketenintegratie en IAI een betere invulling te kunnen geven, is het zinvol eerst deze onderliggende concepten te definiëren. 3.2 Definitie van een bedrijfsinformatiesysteem Van het begrip bedrijfsinformatiesysteem, in het Engels aangeduid met enterprise information system (EIS), bestaan vele definities. Het onderscheid met het onderliggende begrip information system (IS) is ook niet geheel evident. Vanuit een managementperspectief is er veelal sprake van een koppeling met een of meerdere bedrijfsprocessen. Een dergelijk systeem maakt gebruik van informatietechnologie om informatie te benaderen en/of te manipuleren 1. Het systeem kan niet los worden gezien van de omgeving, die typisch bestaat uit mensen, voorschriften en werkwijzen. Een meer technische benadering betrekt nadrukkelijk telecommunicatie- of computerapparatuur bij het systeem 2. Om tot een scherper onderscheid te komen tussen een IS en een EIS, wordt de laatste een hoger abstractieniveau toebedacht. Een EIS is de totale verzameling van informatiesystemen die tezamen de informatie-infrastructuur vormen van een bedrijf 3. Een IS vormt in deze context de ondersteuning van een afgebakend bedrijfsproces. 1 Zie [01], p Zie [04], URL: 3 Zie [01], URL: 13

14 Hierbij is een applicatie een daadwerkelijk gerealiseerd softwaresysteem. Vanwege de definitie bestaat een IS uit één of meerdere applicaties, waarbij het IS de onderlinge coherentie van deze applicaties waarborgt. In figuur 3-1 wordt de samenhang tussen de begrippen EIS, IS en applicatie grafisch weergegeven. Elke ovaal geeft invulling aan een verzameling op een bepaald niveau. EIS Applicatie Applicatie Applicatie IS IS Applicatie figuur 3-1 De samenhang tussen EIS, IS en applicatie De samenhang tussen IAI en bedrijfsinformatiesystemen wordt in figuur 3-2 geïllustreerd. De gestippelde lijn geeft een grens tussen twee bedrijven aan. Interenterprise integratie heeft nu als doel om de twee bestaande EIS met elkaar te laten communiceren. EIS EIS IAI IS IS IS IS figuur 3-2 Weergave van inter-enterprise application integration 3.3 Systeemintegratie op bedrijfsniveau Zoals vermeld in paragraaf 3.2 bestaat een IS uit één of meerdere applicaties. Doordat veel van deze aanwezige applicaties los van elkaar zijn geïmplementeerd en/of ingericht, is er vaak sprake van een heterogeen geheel. De samenhang verkrijgen en vergroten tussen deze applicaties is een doelstelling van applicatie-integratie. De algemene benaming voor applicatie-integratie op bedrijfsniveau is Enterprise Application Integration (EAI). EAI bestaat uit methoden en technieken om de computer applicaties in een organisatie te moderniseren, te consolideren en te coördineren 4.Deze erg ruime definitie maakt geen onderscheid tussen de begrippen EIS, IS en/of applicatie. Veelal wordt een applicatie synoniem gesteld aan een informatiesysteem. Om verwarring te voorkomen maken we hier onderscheid tussen een bedrijfsapplicatie en een applicatie. 4 Zie [09], URL: 14

15 Een bedrijfsapplicatie is een reëel softwaresysteem, die kan bestaan uit één of meerdere applicaties. Het verschil met een IS is dat een bedrijfsapplicatie geen inbegrip heeft van methoden en processturing. Wel bevat een IS in onze definitie altijd één bedrijfsapplicatie. Herdefinitie van EAI zegt dan dat deze bestaat uit methoden en technieken om bestaande bedrijfsapplicaties in een organisatie te herinrichten, dusdanig dat er een optimale samenhang in de informatievoorziening van een organisatie wordt verkregen. Aangezien EAI volgens bovenstaande definitie nadrukkelijk spreekt over bedrijfsapplicaties, en niet over IS, heeft EAI in onze ogen voornamelijk een technische insteek. Procesorganisatie op organisatorische grondslag is een aspect dat bij de integratie van bedrijfsprocessen en informatiesystemen zeker niet over het hoofd mag worden gezien, maar is niet primair de taak van EAI. Deze zou wel als de technische aanvulling en/of invulling hierop kunnen worden gezien. 3.4 Middleware als systeemintegratietechnologie De gebruikte technologie in het vakgebied van EAI wordt in het algemeen aangeduid als middleware. Het kan gezien worden als de bemiddelaar tussen twee of meerdere systemen, zodat er een min of meer geïntegreerd systeem ontstaat. Grofweg zijn er twee verschillende groepen middleware te onderscheiden: Distributed object middleware; Message-oriented middleware (MOM). Distributed object middleware maakt het mogelijk dat objecten op verschillende fysieke machines met elkaar kunnen communiceren. Traditioneel werd hierbij ingezet op local area networks (LAN). Doel van de platformen die dit realiseren is het zo transparant mogelijk aanbieden van deze faciliteit aan de systeemontwerpers. Een veelgehanteerde term voor aanroepen over systeemgrenzen heen is de remote procedure call (RPC). Dit gebeurt op basis van synchrone communicatie, wat wil zeggen dat er gewacht wordt op resultaat voordat het huidige proces verder wordt doorlopen. Voorbeelden van distributed object middleware zijn DCOM en CORBA. DCOM, wat staat voor Distributed Component Object Model, is de techniek die Microsoft ontwikkeld heeft voor met name Windows netwerken. Officieel wordt het tegenwoordig onderhouden door het ActiveX consortium en er zijn ook diverse implementaties op andere platformen 5. De tegenhanger van DCOM is de Common Object Request Broker Architecture (CORBA), welke is ontwikkeld door de Object Management Group (OMG); een samenwerkingsverband van ruim 500 IT-bedrijven 6. 5 Zie [06], URL: prodtechnol/winntas/plan/dcomtowp.asp?frame=true 6 Zie [09], URL: 15

16 Message-oriented middleware maakt het mogelijk dat applicaties berichten met elkaar uitwisselen. In tegenstelling tot een RPC) zoals die in veel ontwikkelplatformen voorhanden is, heeft MOM als uitgangspunt asynchrone communicatie. Dat wil zeggen dat een bericht in een wachtrij wordt geplaatst, en het antwoord op een vrij willekeurig tijdstip kan terugkomen. Populaire implementaties van MOM-producten zijn MQ Series van IBM en Software AG s EntireX De web service als middleware-evolutie In paragraaf 3.4 is het begrip middleware uiteengezet en werd het uitgelegd als de technologie die applicatieintegratie mogelijk maakt. Om een duidelijker onderverdeling te verkrijgen, splitsen we dit uit naar de volgende drie niveaus van integratie: Applicatieniveau; Bedrijfsapplicatieniveau; Interbedrijfsapplicatieniveau. Met de toenemende schaalgrootte van veel organisaties worden er ook andere eisen gesteld aan systeemintegratie. Voorheen lag de nadruk op het koppelen van bestaande applicaties tot een bedrijfsapplicatie (zie paragraaf 3.3). Typisch gezien maakten deze deel uit van hetzelfde LAN en veelal werden allereerst applicaties die met dezelfde softwaretechnologie waren gerealiseerd met elkaar geïntegreerd. In een dergelijke situatie kan een technologie als COM of CORBA-implementatie goede diensten bewijzen. Op bedrijfsapplicatieniveau, ofwel het integreren van bestaande bedrijfsapplicaties tot een EIS, neemt ook de orde van de heterogeniteit van systeemplatformen toe. Veelal is het ondoenlijk COM of CORBA te gebruiken in dit geval, simpelweg omdat de standaarden voor gegevensuitwisseling niet toereikend zijn. Op interbedrijfsapplicatieniveau spelen dezelfde problemen als op bedrijfsapplicatieniveau, alleen is een extra complicerende factor de beveiliging van de systemen. Deze systemen maken over het algemeen geen deel uit van afgeschermd netwerk, maar zijn hiervoor afhankelijk van bijvoorbeeld het internet. In het kort zijn er twee problemen die met de bestaande middleware naar voren komen: Er ontbreken goede gegevensstandaarden; Communicatie maakt integraal deel uit van de systeemarchitectuur. Veel van de gebruikte protocollen werken met binaire standaarden voor gegevensoverdracht, die echter vaak moeilijk te vertalen is naar andere platformen. Een voorbeeld hiervan is de byte-volgorde, die per operating system kan afwijken. Daarnaast is systeemintegratie over het algemeen niet iets wat simpel achteraf kan worden toegevoegd. Dit bekent niet alleen dat de broncode van de bestaande systemen moet worden aangepast, maar dat in veel gevallen de gebruikte architectuur moet worden herzien. 7 Zie [09], URL: 16

17 De web service is een relatief nieuwe manier in de strijd voor systeemintegratie. Het biedt onder andere een standaard voor gegevensoverdracht, die is gebaseerd op Extensible Markup Language (XML). De web service kan gezien worden als een schil die om de bestaande informatievoorziening van een bedrijf heen wordt gelegd. Met name op het gebied van bedrijfsapplicatie- en interbedrijfsapplicatieintegratie biedt dit goede perspectieven. 17

18 18

19 4 De techniek achter web services Dit hoofdstuk geeft inzicht in de technische aspecten van web services. Allereerst worden de onderliggende platformonafhankelijke standaarden weergegeven. Vervolgens worden voor achtereenvolgens het J2EE en het.net platform de belangrijkste communicatiemechanismen besproken. Tevens wordt uitgelegd hoe een web service in het desbetreffende platform kan worden gerealiseerd. 4.1 Web service protocol In paragraaf 3.5 is de term web service geïntroduceerd. Het biedt de mogelijkheid om processen tussen meerdere bedrijven op elkaar af te stemmen. Communicatie gebeurt op basis van gestandaardiseerd berichtenverkeer SOAP De achterliggende technologie voor het berichtenverkeer is het SOAP protocol. SOAP staat voor Simple Object Access Protocol en is onder andere en schemadefinitie op basis van Extensible Markup Language (XML). Dit betekent niet alleen dat er een afspraak is over de syntax, maar ook dat alle gegevens voldoen aan een ISO-standaard. SOAP garandeert dus dat de gegevens op elk platform op de juiste manier kunnen worden geïnterpreteerd. SOAP berichten kunnen vanwege hun eenvoudige opmaak en structuur moeiteloos worden verwerkt door de standaard internetprotocollen. Zo is een dergelijk bericht via HTTP over poort 80 te verzenden, zonder dat deze wordt gehinderd door bijvoorbeeld een firewall WSDL Naast de standaard voor berichtenverkeer bieden web services ook een universele manier om faciliteiten te definiëren. Zoals opgemerkt in paragraaf 3.5 kunnen de web services tezamen worden gezien als een schil om het EIS heen, die bepaalde functionaliteit toegankelijk maakt. Deze interface wordt gespecificeerd middels de web services description language (WSDL). Net als SOAP is WSDL gedefinieerd in een XML schema (XSD) UDDI Naast SOAP en WSDL is de derde standaard van belang voor web services Universal Description, Discovery, and Integration (UDDI). Het is een mechanisme die het mogelijk maakt web services publiekelijk bekend te maken 9. Via de website is het mogelijk diensten te zoeken en aan te melden bij de aangesloten partners. Doordat veel bedrijven niet gewillig zijn om hun diensten open te stellen voor willekeurige gebruikers, is het ook mogelijk UDDI op bedrijfsniveau in te zetten. Op 8 Zie [09], URL: 9 Zie [09], URL: 19

20 deze manier kunnen bijvoorbeeld de bestaande applicaties op een universele manier op het intranet worden aangeboden. 4.2 Het J2EE platform Deze paragraaf geeft een algemene indruk van J2EE, gevolgd door een bespreking van de belangrijkste interne communicatiemechanismen. Tot slot wordt ingegaan op de ondersteuning voor web services, en dan met name in vergelijk met de specificaties van paragraaf Inleiding J2EE, wat staat voor Java 2 Enterprise Edition, is een verzameling van APIs die het aanmaken van gedistribueerde applicaties vereenvoudigen. In de eerste plaats is J2EE geen product maar een standaard, die door Sun is opgesteld. Het programmeermodel maakt gebruik van een onderliggend platform, wat door diverse leveranciers wordt geleverd. Het staat leveranciers ook toe om een Integrated Development Environment (IDE) te verkopen, die kan werken als (grafische) schil om het platform heen. Wel biedt Sun een zogenaamde reference implementatie, die gratis kan worden gebruikt. De taal van het J2EE platform is, zoals de naam al suggereert, Java. Het principe van Java, write once, run everywhere, blijft gehandhaafd. Eigenlijk verandert er voor de traditionele gebruiker van Java ook niet veel, behalve dat er een uitgebreidere bibliotheek beschikbaar is, om bijvoorbeeld de integratie met bestaande systemen te vergemakkelijken. Het componentmodel wordt in J2EE gerealiseerd door de zogenaamde Enterprise JavaBeans (EJB) Platformgeoriënteerde communicatiemechanismen J2EE maakt standaard gebruik van Remote Method Invocation Internet Inter-Orb Protocol (RMI-IIOP) als communicatiemechanisme. RMI-IIOP is in feite een CORBA implementatie in Java. Het protocol is ontwikkeld in samenwerking met IBM en combineert volgens [07] de Java RMI technologie met de beste features van CORBA. De bouwstenen van J2EE, de Enterprise JavaBeans, gebruiken het protocol om elkaar aan te roepen. Verder is het protocol geschikt om met de meeste bestaande EIS die gebruikmaken van het eerdergenoemde gedistribueerde objectmodel te communiceren. RMI-IIOP is uitgebracht in mei 2000 en is het antwoord op de toenemende vraag naar Java applicaties die met de wijdverbreide CORBA gebaseerde informatiesystemen konden samenwerken. De Java Message Service (JMS) API biedt functionaliteit om Java applicaties te laten samenwerken met allerlei MOM-producten. Het moet het mogelijk maken om legacysystemen, Enterprise Resource Planning (ERP) -systemen en allerlei andere applicaties met elkaar te integreren. De APIs zijn volgens Sun in nauwe samenwerking met de industrie ontworpen en zouden net zoals de Java Database Connectivity (JDBC) APIs op een uniforme manier moeten werken. De interface is gedefinieerd door Sun, de 20

21 implementatie voor een bepaald middleware product doet de leverancier van het betreffende product Ondersteuning voor web services Sun heeft voor de implementatie van web services een verzameling van verschillende APIs, onder de noemer Java Web Services Developer Pack (WSDP). Belangrijkste onderdeel hierin is de Java APIs for XML Messaging (JAXM). Het zorgt ervoor dat applicaties berichten kunnen zenden en ontvangen, op basis van SOAP 1.1. JAXM is meer bedoeld voor asynchrone communicatie terwijl een andere API, de Java API for XML-based RPC (JAX-RPC) een RPC-mechanisme op basis van SOAP implementeert. De laatste versie Java APIs for XML Processing (JAXP) biedt ondersteuning voor WSDL, maar op het moment van schrijven is de documentatie hiervan nog niet compleet. JAXM heeft geen functionaliteit voor het aanmaken van berichten op basis van een WSDL beschrijving. Het aanroepen van een remote webservice met een Java programma is wel mogelijk, vooralsnog moet dan wel handmatig de WSDL beschrijving worden vertaald naar programmacode. Webservices worden in Java geïmplementeerd in servlets, deze zijn in een J2EE applicaties vaak ook te vinden in de web-container samen met JSPs. Het voordeel van deze benadering is dat de functionaliteit van de J2EE applicatie in dezelfde container beschikbaar wordt gesteld als webpagina en webservice. Het publiekelijk bekend maken van web services, onder andere op basis van UDDI, wordt in J2EE ondersteund door Java API for XML Registries (JAXR). 4.3 Het.NET platform Deze paragraaf geeft inzicht in het.net platform. Twee aspecten, te weten communicatiemechanismen voor het.net platform en web services, krijgen hierna extra aandacht Inleiding Het Microsoft.NET framework is een verzameling van systeembibliotheken, die gezamenlijk een enigszins abstracte toegang tot het onderliggende besturingssysteem bieden. Het framework bevat tevens een code-executieplatform, de Common Language Runtime geheten (CLR). Met deze CLR kan geïnterpreteerde code worden uitgevoerd. De CLR draait op de machine in een zogenaamde host. Deze host is ook degene die een applicatie uitvoert. Er zijn meerdere hosts, waarvan tenminste één werkt met Internet Information Server (IIS) 10. Zodoende is het ook mogelijk via een HTTP-request een.net dienst aan te spreken. Deze code voor CLR wordt aangeduid met de term Intermediate Language (IL). Het framework bevat meerdere compilers, die bijvoorbeeld C#, Managed C++ en Visual 10 Covalent Enterprise Ready Server maakt het mogelijk.net te integreren met de web server Apache. 21

22 Basic.NET code kunnen omzetten naar IL. Eigenlijk is de term compiler hier onjuist, omdat er strikt genomen alleen een interpretatie plaatsvindt. Elke willekeurige programmeertaal kan worden ondersteund door het framework, zolang deze maar voldoet aan de Common Language Specification (CLS) Platformgeoriënteerde communicatiemechanismen Centraal begrip in.net is de assembly. Een assembly is vergelijkbaar met een component, en heeft inbegrip van applicatiecode, versie-informatie en toegangscontrole. In de Global Assembly Cache (GAC) worden deze assemblies bekend gemaakt op het locale systeem. Doordat het.net framework een Common Type System heeft, zijn gegevens tussen verschillende assemblies zonder meer overdraagbaar. Om resources en toegang tot applicaties te kunnen reguleren, kent.net het application domain. Zolang assemblies uit hetzelfde domein elkaar aanroepen, zijn deze methods calls lokaal. Bij aanroepen tussen verschillende domeinen, die ook op verschillende machines kunnen verblijven, wordt gebruik gemaakt van.net Remoting. Hierbij wordt het remote object middels een proxy of een kopie lokaal benaderd. Het aangeroepen object definieert dit door de klasse MarshalByRefObject te implementeren. Dit betekent hoe dan ook dat de metagegevens van het aangeroepen object bekend moeten zijn op het lokale systeem, van waar de aanroep afkomstig is. De communicatie tussen de domeinen gebeurt middels een channel, die naar eigen keuze via bijvoorbeeld TCP of HTTP kan verlopen, in zowel ASCII als binaire vorm. De laatste vorm van communicatie dwingt dan wel af dat beide partijen om kunnen gaan met deze binaire standaard, iets wat typisch niet geldt voor multiplatform oplossingen. Als laatste is het in.net ook mogelijk om met COM componenten te communiceren, bekend als COM Interop. Het grootste verschil is dat.net in managed code draait, en COM in unmanaged code. Dit betekent dat met name het geheugengebied in.net wordt beheerd door het.net framework, en bij COM door het onderliggende operating system. Er zijn klassen die het mogelijk maken gegevens tussen beide geheugentypen op een relatief veilige manier te transporteren Ondersteuning voor web services De web service is een integraal onderdeel van het.net framework. Met name ASP.NET biedt een snelle en gemakkelijke manier om een service te definiëren, aangezien deze standaard het WSDL schema kan aanmaken en SOAP over HTTP via GET en POST kan afhandelen. Het is ook mogelijk dit handmatig te doen via.net remoting (besproken in paragraaf 4.3.2). ASP.NET maakt een.asmx bestand aan, dat werkt met IIS (mits het.net framework is toegevoegd). Door in de code (typisch is dit code-behind, waarbij presentatie en code in de internetpagina van elkaar gescheiden zijn) een afgeleide klasse van System.Web.Services.WebService te maken en een meta-tag [WebMethod] toe te voegen aan de methodes toe te voegen, is de web service een feit. 22

23 Het zoeken en registeren bij een publieke repository zoals UDDI, is geen standaard onderdeel van.net. Wel bieden vele UDDI websites een web service aan, waarmee middels SOAP kan worden gecommuniceerd. Deze kan binnen de applicatie met behulp van een proxy eenvoudig worden aangesproken. 23

24 24

25 5 De J2EE applicatie HotCoffee Dit hoofdstuk geeft een globale indruk van de applicatie HotCoffee, die met behulp van J2EE is gerealiseerd. Allereerst wordt er een algemene inleiding gegeven, gevolgd door het ontwerp en de implementatie van de applicatie. Tot worden de stappen doorgenomen die zich typisch bij een installatie voordoen. 5.1 Inleiding Onlangs is er door de Verenigde Naties een emancipatieprogramma gestart, dat als doel heeft de lokale koffieboeren uit Guatemala minder afhankelijk te maken van tussenhandelaren. Via een gesponsord programma zijn Linux servers ter beschikking gesteld waarop de koffieboeren via internet rechtstreeks hun koffie kunnen aanbieden. De afnemers zijn vooral koffiebranders uit Europa en de Verenigde Staten. De applicatie die dit mogelijk maakt is HotCoffee. Deze is gebaseerd op een reference implementatie van J2EE en is geïmplementeerd als web service. Het is de bedoeling dat dit mechanisme wordt gedemonstreerd, door met een toonaangevende Europese koffieproducent een pilot op te zetten. 5.2 Ontwerp Use cases Zoals vermeld in de casus (zie hoofdstuk 2) wil DHB met de toeleveranciers kunnen communiceren over productaanbod, prijs en leveringsdatum. De belangrijkste functionaliteit is dat DHB voortaan rechtstreeks bij de koffieboer kan bestellen. In de toekomst wordt er verder nog gedacht aan het realiseren van functionaliteit ter ondersteuning van Just-in-Time productie, zodat er een minimale voorraad kan worden aangehouden. De beheersfunctionaliteit voor de koffieboeren wordt hier verder buiten beschouwing gelaten. figuur 5-1 Use case diagram van HotCoffee 25

26 In figuur 5-1 wordt het UML use case diagram van de HotCoffee applicatie weergegeven. Deze geeft de volgende functionele eisen aan het systeem weer: Bestellen DHB moet in staat zijn afhankelijk van het aanbod een bestelling te kunnen doen voor een levering koffiebonen; OpvragenProductAanbod DHB moet het productaanbod kunnen opvragen; OpvragenPrijs DHB moet de actuele prijzen van alle producten kunnen opvragen. Deze prijzen zijn aan constante verandering onderhevig en afhankelijk van de prijs van koffiebonen op de wereldmarkt; OpvragenLeveringsDatum DHB moet weten wanneer een product geleverd kan worden. Deze use cases worden hier niet verder gedefinieerd, aangezien deze alleen ter illustratie dienen Klassendiagram Het klassendiagram dat naar aanleiding van de functionele eisen is gemaakt, staat weergegeven in figuur 5-2. Het is gescheiden is twee delen, te weten de Web Container en de EJB Container. figuur 5-2 Klassendiagram HotCoffee Het klasseontwerp is op basis van de use cases en typische J2EE design patterns [08] gemaakt. Met betrekking tot de bouwstenen in een J2EE applicatie maken we onderscheid tussen de volgende Beans: 26

27 Session Beans worden meestal gebruikt als beheersobjecten. Ze kunnen taken verrichten voor de clients; Entity Beans representeren persistente bedrijfsobjecten zoals Order en Klant. Deze objecten worden opgeslagen in een database waarbij elke entity bean een onderliggende tabel heeft in de database en elke instantie van de entity bean correspondeert met een rij in deze tabel; Message-driven Beans zijn stukjes code die dienen als een JMS listener. Deze beans zijn in staat asynchrone berichtjes af te handelen, dit om te kunnen communiceren met MOM. Deze worden niet gebruikt in de applicatie. Het is de bedoeling dat de applicatie de use cases ook als webservice beschikbaar stelt. Ze moeten dus aanroepbaar zijn met SOAP berichten. Met behulp van JAXM kunnen we deze webservices boven op onze beans construeren. Binnen de webcontainer definiëren we hiervoor een aantal klassen die in staat zijn SOAP berichten te ontvangen. LineItem is een hulpklasse met dezelfde attributen als Product, echter waaraan een veld quantity is toegevoegd. De klasse wordt beheerd door de Entity Beans Product en Order en heeft zijn eigen tabel in de database. 5.3 Implementatie Deze paragraaf bespreekt de implementatie van de applicatie HotCoffee. Allereerst komen de componenten aan bod, gevolgd door de code voor de web service Componenten Zoals in het klassendiagram in paragraaf te zien is, bestaat de applicatie uit meerdere componenten, die door het web service gedeelte toegankelijk worden gemaakt. Elk component, ofwel Enterprise JavaBean (EJB) bestaat uit drie afzonderlijke delen: De Remote interface een interface klasse die de methoden van de bean definieert; De Home interface een interface klasse die de methoden definieert om de bean aan te maken, op te zoeken of te verwijderen; De Enterprise Bean klasse deze klasse bevat de implementatie van de methoden die gedefinieerd staan in de remote interface en home interface. Alle enterprise beans die remote toegankelijk zijn moeten een remote interface en een home interface gedefinieerd hebben. Omdat een enterprise bean in een EJB container wordt uitgevoerd kan een client (bijvoorbeeld een servlet of JSP) de bean niet rechtstreeks instantieren, de container beheert immers het aanmaken en afsluiten van de beans. De home interface definieert dus wat de client wel en niet mag. Ter illustratie hiervan zijn voor de entity bean Order enkele codevoorbeelden opgenomen. Allereerst is in figuur 5-3 de Remote interface weergegeven. Deze interface definieert een viertal methoden, die overeenkomen met het klassendiagram. In die zin kan de interface dan ook als contract worden gezien tussen de bean en de gebruikers hiervan. 27

28 import javax.ejb.ejbobject; import java.rmi.remoteexception; import java.util.*; public interface Order extends EJBObject { public ArrayList getlineitems() throws RemoteException; public String getcustomerid() throws RemoteException; public double gettotalprice() throws RemoteException; public String getstatus() throws RemoteException; figuur 5-3 Java Remote interface Order De Home interface van de EJB Order is te zien in figuur 5-4. De methoden create, findbyprimarykey en findbyproductid zijn allen administratieve functies om de bean te kunnen beheren. import java.util.*; import java.rmi.remoteexception; import javax.ejb.*; public interface OrderHome extends EJBHome { public Order create(string orderid, String customerid, String status, double totalprice, ArrayList lineitems) throws RemoteException, CreateException; public Order findbyprimarykey(string orderid) throws FinderException, RemoteException; public Collection findbyproductid(string productid) throws FinderException, RemoteException; figuur 5-4 Java Home interface OrderHome De daadwerkelijke implementatie van de bean staat in de klasse OrderBean, gedefinieerd in figuur 5-5. Zoals aangeduid in het klassendiagram is deze bean een zogenaamde entity bean, waardoor deze klasse communiceert met een database. Er is hier geen gebruik gemaakt van managed persistence, zodat de SQL code om de bean in de database op te slaan in de code van de bean zelf staat. Aangezien de code van de klasse vrij lang is, wordt alleen de methode ejbcreate weergegeven. De create methode van de home interface correspondeert met de ejbcreate methode in de bean klasse. Aangezien EJBs RMI(-IIOP) gebruiken om remote methods aan te roepen is een remote interface noodzakelijk. De methode insertorder bevat vervolgens de SQL code om de gegevens in de juiste tabel in de database op te slaan. 28

29 public class OrderBean implements EntityBean { public String ejbcreate(string orderid, String customerid, String status, double totalprice, ArrayList lineitems) throws CreateException { try { insertorder(orderid, customerid, status, totalprice); for (int i = 0; i < lineitems.size(); i++) { LineItem item = (LineItem)lineItems.get(i); insertitem(item); catch (Exception ex) { throw new EJBException("ejbCreate: " + ex.getmessage()); this.orderid = orderid; this.customerid = customerid; this.status = status; this.totalprice = totalprice; this.lineitems = lineitems; return orderid; figuur 5-5 Java Enterprise Bean OrderBean Web service Het web service gedeelte van de applicatie wordt geïmplementeerd als messaging provider container. Hiervoor maken we gebruik van JAXM (zie paragraaf 4.2.3), welke bestaat uit twee packages: javax.xml.soap Deze package bevat de basisfunctionaliteit om SOAP berichtjes aan te maken en te vullen; javax.xml.messaging Deze package bevat de API om gebruik te maken van een messaging provider. We zullen in onze applicatie geen gebruik maken van messaging providers en derhalve hier verder niet op ingaan. Aangezien SOAP niets anders is dan XML over HTTP kunnen we de webservice binnen onze applicatie eenvoudig implementeren met behulp van een Java servlet. In tegenstelling tot de gebruikelijke servlets genereert deze nu XML in plaats van HTML als uitvoer. De code voor de OrderServlet staat weergegeven in figuur 5-6. Het try-block van de methodes onmessage en dopost wordt verderop uitgewerkt. 29

30 public class OrderServlet extends HttpServlet { static MessageFactory fac = null; static { try { fac = MessageFactory.newInstance(); catch (Exception ex) { ex.printstacktrace(); ; MessageFactory msgfactory; public void init(servletconfig servletconfig) throws ServletException { super.init(servletconfig); try { // Initialize it to the default. msgfactory = MessageFactory.newInstance(); catch (SOAPException ex) { throw new ServletException("Unable to create message" + "factory" + ex.getmessage()); public void dopost( HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try {... catch (Exception ex) { throw new ServletException( "JAXM POST failed " + ex.getmessage()); public SOAPMessage onmessage(soapmessage message) { SOAPMessage confirmation = null; try {... catch (Exception ex) { ex.printstacktrace(); return confirmation; figuur 5-6 Java Servlet class OrderServlet 30

31 De code voor het verwerken van SOAP berichten staat in de methode dopost, tezienin figuur 5-7. De klasse MessageFactory biedt functionaliteit om de inputstream om te zetten naar een SOAP bericht. Met SOAPMessage kan de inhoud van het SOAP bericht worden geëxtraheerd. De OrderServlet geeft na ontvangst antwoord door een een SOAPMessage object reply te declareren en te vullen met behulp van de methode onmessage. // Get all the headers from the HTTP request MimeHeaders headers = getheaders(req); // Get the body of the HTTP request. InputStream is = req.getinputstream(); // Now internalize the contents of the HTTP request and // create a SOAPMessage SOAPMessage msg = msgfactory.createmessage(headers, is); SOAPMessage reply = null; reply = onmessage(msg); if (reply!= null) { // Need to call savechanges because we're going to // use the MimeHeaders to set HTTP response // information. These MimeHeaders are generated as // part of the save. if (reply.saverequired()) { reply.savechanges(); resp.setstatus(httpservletresponse.sc_ok); putheaders(reply.getmimeheaders(), resp); // Write out the message on the response stream. OutputStream os = resp.getoutputstream(); reply.writeto(os); os.flush(); else resp.setstatus(httpservletresponse.sc_no_content); figuur 5-7 Java code voor de methode dopost Als reply niet leeg is wordt de status van resp op OK gezet en worden de headers en inhoud van reply geschreven naar resp. Als reply leeg is, wordt de status van resp veranderd om aan te geven dat er geen inhoud is. De methode onmessage vult het SOAP bericht dat als ontvangstbevestiging wordt gestuurd. De code hiervoor is weergegeven in figuur

32 //retrieve the orderid elementfrom the message received SOAPBody sentsb = message.getsoappart().getenvelope().getbody(); Iterator sentit = sentsb.getchildelements(); SOAPBodyElement sentsbe = (SOAPBodyElement)sentIt.next(); Iterator sentit2 = sentsbe.getchildelements(); SOAPElement sentse = (SOAPElement)sentIt2.next(); //get the text for orderid to put in confirmation String sentid = sentse.getvalue(); //create the confirmation message confirmation = fac.createmessage(); SOAPPart sp = confirmation.getsoappart(); SOAPEnvelope env = sp.getenvelope(); SOAPBody sb = env.getbody(); Name newbodyname = env.createname("confirmation", "Confirm", "http://www.hotcoffee.com"); SOAPBodyElement confirm = sb.addbodyelement(newbodyname); //create the orderid element for confirmation Name neworderidname = env.createname("orderid"); SOAPElement neworderno = confirm.addchildelement(neworderidname); neworderno.addtextnode(sentid); //create ship-date element Name shipdatename = env.createname("ship-date"); SOAPElement shipdate = confirm.addchildelement(shipdatename); //create the shipping date Date today = new Date(); long msperday = 1000 * 60 * 60 * 24; long mstarget = today.gettime(); long mssum = mstarget + (msperday * 2); Date result = new Date(); result.settime(mssum); String sd = result.tostring(); shipdate.addtextnode(sd); confirmation.savechanges(); figuur 5-8 Java code voor de methode onmessage Beschrijving van de web service Aangezien HotCoffee een publieke service beschikbaar stelt is het van belang dat er een goede beschrijving van de webservice komt. Zoals genoemd in paragraaf is de WSDL ondersteuning op het Java platform nog niet optimaal geregeld. Er zijn momenteel nog geen tools beschikbaar op het Java platform om een webservice te definiëren en daaruit code en een WSDL beschrijving te genereren. Dit heeft als gevolg dat deze handmatig moet worden opgesteld. In figuur 5-9 is de WSDL beschrijving van de web service Order gedeeltelijk weergegeven. De methode getdeliveryperiod is voor een connectie op basis van 32

33 HTTP POST gespecificeerd. Zoals te zien valt, is de methode gesplist in twee gedeelten: de eerste geeft de inkomende parameters (hier leeg) aan, de tweede het resultaat. <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http=http://schemas.xmlsoap.org/wsdl/http/ targetnamespace="http://hotcoffee.com/" > <types> <s:schema elementformdefault="qualified" targetnamespace="http://hotcoffee.com/"> <s:element name="getdeliveryperiod"> <s:element name="getdeliveryperiodresponse"> <s:complextype> <s:sequence> <s:element minoccurs="1" maxoccurs="1" name="getdeliveryperiodresult" type="s:int" /> </s:sequence> </s:complextype> </s:element> </s:schema> </types> <message name="getdeliveryperiodhttppostin" /> <message name="getdeliveryperiodhttppostout"> <porttype name="orderhttppost"> <binding name="orderhttppost" type="s0:orderhttppost"> <service name="order"> </definitions> figuur 5-9 WSDL definitie van de web service Order 5.4 Installatie Op de website stelt Sun een reference implementatie van J2EE beschikbaar. Deze is niet geoptimaliseerd voor snelheid, maar biedt wel de volledige J2EE functionaliteit. Tevens wordt een simpel database management system meegeleverd, Cloudscape, welke naadloos is te integreren met een J2EE applicatie. De complete package bestaat uit: J2EE server het serverprogramma; Deploytool een gecombineerde grafische/command-line utility om beans te deployen en te beheren; Java webserver een webserver voor het testen van JSP-pagina s en servlets. Voor de EJB geïnstalleerd kan worden, moeten de betreffende.class bestanden eerst ingepakt worden, wat door de deploytool gedaan kan worden. Deze doet het volgende: Het aanmaken van een deployment descriptor; Het inpakken van de deployment descriptor en.class bestanden in een JAR bestand. Als dit gelukt is, kan het eveneens met de deploytool worden geïnstalleerd op een J2EE server. In figuur 5-10 is een illustratie van deze tool te zien. 33

34 figuur 5-10 Screenshot van het grafische gedeelte van de J2EE deploytool 34

35 6 De.NET applicatie DHB-ERP.NET In dit hoofdstuk wordt de applicatie DHB-ERP.NET besproken. Deze applicatie is ontwikkeld op basis van het Microsoft.NET platform. Eerst is er een inleiding, waarna het uiteindelijke ontwerp aan bod komt. Hierna worden de implementatie en installatiehandelingen doorgenomen. 6.1 Inleiding DHB heeft sinds kort een bedrijfsbrede applicatie draaien: DHB-ERP.NET. Dit pakket is speciaal voor DHB ontwikkeld en ondersteunt de hele bedrijfsvoering, waaronder voorraadbeheer, inkoop en facturering. Het pakket is gebaseerd op het.net platform. Vooral het subsysteem inkoop is aan veel discussie onderhevig geweest. De directie van DHB wil om de nieuwe strategie te kunnen verwezenlijken een verregaande ketenintegratie realiseren. Het grote probleem hierbij is dat het subsysteem inkoop met allerlei diverse andere systemen van toeleveranciers (die vaak ook de koffieboeren uitbuiten) moet kunnen communiceren. Geïnspireerd door het emancipatieprogramma van de Verenigde Naties heeft DHB één koffieboer geselecteerd voor een pilot met web services. 6.2 Ontwerp Use cases Het nieuwe subsysteem inkoop zal de ketenintegratie realiseren door met behulp van een web service contact te onderhouden met de leveranciers. In figuur 6-1 is het use diagram van dit subsysteem te zien. figuur 6-1 Use case diagram van DHB-ERP.NET 35

36 De use cases duiden de volgende functionaliteit van het systeem aan (deze worden niet nader gespecificeerd): ToevoegenLeverancier De inkoper moet een nieuwe leverancier kunnen toevoegen. Hiervoor moeten de gegevens van de leverancier bekend zijn alsmede het formaat van de SOAP berichten die DHB in staat stelt met de leverancier te communiceren; OpvragenLeverancierOverzicht Van elke leverancier moet op elk gewenst moment alle gegevens oproepbaar zijn; ZoekenBesteLeverancier Gegeven een aantal parameters (leveringstermijn, koffiesoort, hoeveelheid, kwaliteit) moet het systeem de goedkoopste leverancier weten te vinden; OpvragenOrderOverzicht Van alle orders moet een bevestiging zijn ontvangen, deze moeten oproepbaar zijn via een OrderOverzicht Klassendiagram Het ontwerpen van gedistribueerde applicaties geschiedt in het.net platform over het algemeen volgens het 3-lagen principe. Dit houdt in dat er een logisch onderscheid is gemaakt naar data, applicatielogica en presentatie. Het is argumenteerbaar de web services te zien als een vierde laag; de servicelaag. Om snel een applicatie te kunnen ontwerpen zijn er in Visual Studio.NET een aantal enterprise templates aanwezig, die zijn verdeeld in de volgende vier groepen: User Services WinUI, WebUI en WebServices; Business Services BusinessFacade en BusinessRules; Data Access and Persistence DataAccess; Other SystemFrameworks. Het klassendiagram in figuur 6-2 is op basis van deze templates gemaakt. Hierbij is de gegevenskoppeling verder buiten beschouwing gelaten. Het is gescheiden in twee gedeeltes, waarbij het Business Service gedeelte bestaat uit facade- en rules-klassen. De facade-klassen geven ondersteuning aan de mogelijke scenario s die invulling geven aan een use case. De Supplier en Rules klassen communiceren middels een WSDL-interface met verscheidene toeleveranciers. Tevens wordt met de web service StockService de mogelijkheid gegeven aan deze toeleveranciers om inzicht te krijgen in de huidige voorraad van een bepaalde koffiesoort bij DHB. 36

37 figuur 6-2 Klassendiagram DHB-ERP.NET Inkoop 6.3 Implementatie De implementatie van de applicatie DHB-ERP.NET wordt besproken aan de hand van twee onderdelen. Allereerst komen de componenten aan bod. Vervolgens wordt de realisatie van het web service gedeelte besproken Componenten Component-based development (CBD) is met het.net platform enigszins veranderd. In het oude platform, door Microsoft aangeduid als Distributed Network Architecture (DNA) werd met behulp van DCOM/COM+ een applicatiearchitectuur gerealiseerd. In.NET is COM beschikbaar via zogenaamde interop services, maar maakt het geen intrinsiek onderdeel uit van het platform. Het lijkt aannemelijk dat de concepten uit COM, zoals bijvoorbeeld transaction management en message queueing, in de toekomst wel integraal onderdeel gaan uitmaken van het.net framework. COM wordt dan echter alleen nog ondersteund voor koppelingen met legacy applicaties. Zoals vermeld in paragraaf heeft.net notie van de drie-lagen architectuur. Er zijn diverse templates aanwezig die dit concept realiseren. Een belangrijke notie is dat CBD in.net intrinsiek onderdeel uitmaakt van het platform. Zoals genoemd in paragraaf is de assembly synoniem voor het begrip component. Niet alleen vormt het een eenheid voor toegangscontrole, maar tevens heeft het inbegrip van versiebeheer. Dit betekent dat 37

38 er op één machine meerdere versies van dezelfde assembly kunnen bestaan, zonder dat de afhankelijke applicaties hierdoor worden gehinderd. De realisatie van de gedefinieerde klassen in het klassendiagram (paragraaf 6.2.2) behelst dan ook niet meer dan het definiëren van deze klassen in een projectbestand. Door ze al dan niet deel uit te laten maken van de dezelfde assembly, is aan te sturen hoe de binaire componenten er uit zien. Er kan zodoende worden gekozen, uit het oogpunt van bijvoorbeeld performance, om een applicatie te splitsen in meerdere assemblies, die op verschillende servers draaien Web service De implementatie van de web service StockService gebeurt op basis van ASP.NET (zie paragraaf 4.3.3). In figuur 6-3 is de code weergegeven voor deze klasse. Het grootste deel van de gewenste functionaliteit is al aanwezig door de overerving van de WebService klasse. Zo is bijvoorbeeld standaard zowel HTTP GET als HTTP POST geïmplementeerd. De gedefinieerde methode GetCurrent is door specificatie van de tag WebMethod aangemerkt als een geëxporteerde methode. using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; namespace DHB_ERP_Inkoop { public class StockService : System.Web.Services.WebService { private StockController m_objstockcontroller; public StockService() { InitializeComponent(); m_objstockcontroller = new StockController(); [WebMethod] public int GetCurrent(string type) { return m_objstockcontroller.getcurrent(type); figuur 6-3 C# class StockService De WSDL definitie van deze web service is opvraagbaar door de volgende URL op te geven: De methode GetCurrent is, vanwege het geïmplementeerde HTTP GET mechanisme, aan te roepen met: 38

39 Als resultaat van deze aanroep wordt een XML bericht teruggestuurd, met daarin de waarde. In figuur 6-4 staat een voorbeeld met de waarde 100. <?xml version="1.0" encoding="utf-8"?> <int xmlns="http://dhb.com/">100</int> figuur 6-4 SOAP bericht van de methode GetCurrent("stocktype") Zoals aangegeven in paragraaf communiceren de Supplier en Order klassen met behulp van een WSDL schema met een web service. Dit gebeurt in onze implementatie op basis van een proxy-mechanisme. De code hiervoor kan worden gegenereerd met een tool. De volgende aanroep maakt de C# file WSOrder aan, die op basis van HTTP POST communiceert met de web service: wsdl.exe /l:cs /protocol:httppost /o:wsorder.cs "{URL:WSDL" Door nu het schema uit figuur 5-9 op te geven (URL:WSDL) wordt de code verkregen die in figuur 6-5 staat. De getdeliveryperiod methode is hierbij de gewenste definitie. Tevens zijn er events opgenomen, die afgaan bij het aanroepen en afronden van deze methoden. 39

40 using System; using System.ComponentModel; using System.Diagnostics; using System.Web.Services.Protocols; using System.Web.Services; using System.Xml.Serialization; [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public class Order : System.Web.Services.Protocols.HttpPostClientProtocol { public Order() { this.url = "http://hotcoffee.com/orderservlet "; [System.Web.Services.Protocols.HttpMethodAttribute(typeof( System.Web.Services.Protocols.XmlReturnReader), typeof(system.web.services.protocols.htmlformparameterwriter))] [return: System.Xml.Serialization.XmlRootAttribute("int", Namespace="http://hotcoffee.com/", IsNullable=false)] public int getdeliveryperiod() { return ((int)(this.invoke("getdeliveryperiod", (this.url + "/getdeliveryperiod"), new object[0]))); public System.IAsyncResult BegingetDeliveryPeriod( System.AsyncCallback callback, object asyncstate) { return this.begininvoke("getdeliveryperiod", (this.url + "/getdeliveryperiod"), new object[0], callback, asyncstate); public int EndgetDeliveryPeriod(System.IAsyncResult asyncresult) { return ((int)(this.endinvoke(asyncresult))); figuur 6-5 C# code WSOrder.cs 6.4 Installatie Met de introductie Windows XP is standaard een versie van de Microsoft Installer aanwezig op nieuwe machines. Met dit programma kunnen applicaties op een eenduidige manier worden geïnstalleerd, en is het mogelijk deze later zonder al teveel problemen weer te deïnstalleren. Software die wil voldoen aan het nieuwe logo-programma van 40

41 Microsoft (om aan te kunnen tonen aan klanten dat het product compatible is met Windows), moet verplicht gebruik maken van deze installer. In Visual Studio.NET zijn een aantal templates aanwezig die de installatie van applicaties vergemakkelijken. Deze templates exporteren bestanden, die kunnen worden herkend door de Microsoft Installer. De template voor de applicatie van DHB is een web setup. Door deze toe te voegen aan de solution (verzameling van assemblies die de gehele applicatie vertegenwoordigen) en vervolgens te compileren, worden de bestanden verkregen. In figuur 6-6 staat een screenshot van deze template, waarin de benodigde projectbestanden (primary output) worden opgegeven. figuur 6-6 Screenshot van de web setup template 41

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

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

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

Implementatie AssurePay ASP.NET. ideal

Implementatie AssurePay ASP.NET. ideal Implementatie AssurePay ASP.NET ideal Implementatie AssurePay ASP.NET 2 van 11 Inhoudsopgave Microsoft ASP.NET... 3 Classic ASP... 9 Implementatie AssurePay ASP.NET 3 van 11 Microsoft ASP.NET Implementeren

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

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

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

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

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

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

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

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

DrICTVoip.dll v 2.1 Informatie en handleiding

DrICTVoip.dll v 2.1 Informatie en handleiding DrICTVoip.dll v 2.1 Informatie en handleiding Nieuw in deze versie : Koppeling voor web gebaseerde toepassingen (DrICTVoIPwebClient.exe) (zie hoofdstuk 8) 1. Inleiding Met de DrICTVoIP.DLL maakt u uw software

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

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

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

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

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

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

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

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag ArcGIS Mobile ADF Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag Agenda Wat is de Mobile ADF? Architectuur Demo Wat is de mobile ADF? Ontwikkeltoolkit voor mobiele (Smart Client)

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

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97 Inhoudsopgave 1 Inleiding 8 1.1 Het.Net Framework................................ 8 1.1.1 Het.Net Ontwikkelingsmodel....................... 8 1.1.2 Compilatie en Uitvoering in.net.....................

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

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

Don Box: Meta data is the key thing

Don Box: Meta data is the key thing Microsoft-prominent Don Box was afgelopen maart even in Nederland voor een evenement ter ere van de lancering van Visual Studio.Net en de oprichting van de.net sectie van de Software Developers Group Netherlands

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

Programming Content Management Server 2002

Programming Content Management Server 2002 Met behulp van Content Management Server 2002 (CMS) kun je eenvoudig te onderhouden websites bouwen en beheren. De business driver van CMS is het gebruiksvriendelijk beheer van een website, in het bijzonder

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

Beveiligingsbeleid Perflectie. Architectuur & Procedures

Beveiligingsbeleid Perflectie. Architectuur & Procedures Beveiligingsbeleid Perflectie Architectuur & Procedures 30 november 2015 Versiebeheer Naam Functie Datum Versie Dimitri Tholen Software Architect 12 december 2014 0.1 Dimitri Tholen Software Architect

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

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

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Alfresco aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 8 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

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

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

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie

Microsoft.NET: De toekomst is dichterbij dan u denkt

Microsoft.NET: De toekomst is dichterbij dan u denkt 18 Microsoft.NET: De toekomst is dichterbij dan u denkt Het zal velen niet ontgaan zijn dat Microsoft op het Forum 2000 in Redmond een nieuwe visie en strategie heeft geïntroduceerd, Microsoft.NET genaamd.

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

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

SuperOffice Systeemvereisten

SuperOffice Systeemvereisten Minimale systeemvereisten voor SuperOffice CRM De minimale systeemvereisten voor SuperOffice CRM zijn tevens afhankelijk van het besturingssysteem en de services/applicaties die op het systeem actief zijn.

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

Aansluiten op VPI. (VolmachtBeheer Producten Interface)

Aansluiten op VPI. (VolmachtBeheer Producten Interface) Aansluiten op VPI (VolmachtBeheer Producten Interface) Auteur : Max Wout en Bram Doveren (Colimbra) Versie : 1.1 Datum : 27 april 2009 Inhoudsopgave 1 Algemeen... 3 1.1 Aanleiding... 3 1.2 Doel van dit

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

Geen technologisch speeltje, maar realistische basis voor bedrijfsvoordelen!

Geen technologisch speeltje, maar realistische basis voor bedrijfsvoordelen! Webservices! Webservices zijn een drijvende kracht voor het ontstaan van waardenetten binnen ecosystemen. In deze waardenetten zullen bedrijven, zowel intern met bedrijfsonderdelen als extern met andere

Nadere informatie

Nederlands WMS - SLD Profiel. Versie 1.0

Nederlands WMS - SLD Profiel. Versie 1.0 Nederlands WMS - SLD Profiel Versie 1.0 Ravi: een profiel Ravi, netwerk voor geo-informatie Stichting Ravi is een netwerkorganisatie in het publieke domein en richt zich op de ruimtelijke ontwikkeling

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

HDN DARTS WEB AUTHENTICATIE

HDN DARTS WEB AUTHENTICATIE HDN DARTS WEB AUTHENTICATIE HDN Helpdesk T: 0182 750 585 F: 0182 750 589 M: helpdesk@hdn.nl Copyright Communications Security Net B.V. Inhoudsopgave 1. INLEIDING OP HET ONTWERP... 3 1.1 HET DOEL VAN DIT

Nadere informatie

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet. Hoofdstuk 2 Een ASP.NET applicatie met ADO.NET opzetten In dit hoofdstuk ga je een eenvoudige website opzetten, waarbij je een aantal gegevens uit een database ophaalt. Je moet je kennis van ADO.NET dus

Nadere informatie

Digikoppeling Glossary

Digikoppeling Glossary Digikoppeling Glossary Verklarende woordenlijst Digikoppeling documentatie Versie 1.1 Datum 5 januari 2010 Colofon Projectnaam Versienummer Organisatie Digikoppeling Definitief Servicecentrum Logius Postbus

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

UBC op Microsoft Windows 64-bits

UBC op Microsoft Windows 64-bits UBC op Microsoft Windows 64-bits Inleiding Op de 64-bits varianten van Windows werkt de UBC (en vele andere pakketten) op een andere manier dan op de oudere 32-bits varianten van deze Windows versies.

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

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

Systeemvereisten. Systeemvereisten voor Microsoft Dynamics NAV 2009. Rolgebaseerde client

Systeemvereisten. Systeemvereisten voor Microsoft Dynamics NAV 2009. Rolgebaseerde client Systeemvereisten voor Microsoft Dynamics NAV 2009 Rolgebaseerde client Microsoft Windows XP Professional SP3 of later (X86 of 32-bits Microsoft Windows Vista (Business, Enterprise, of Ultimate) SP1 of

Nadere informatie

SURFconext Cookbook. Het koppelen van LimeSurvey aan SURFconext. Versie: 1.0. Datum: 4 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van LimeSurvey aan SURFconext. Versie: 1.0. Datum: 4 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van LimeSurvey aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 4 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

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

Technisch Ontwerp VISSIM-PPA Koppeling

Technisch Ontwerp VISSIM-PPA Koppeling 1 Technisch Ontwerp VISSIM-PPA Koppeling Revisie Versie Datum Omschrijving 1.0 25 juli 2013 Initiële versie 1.1 26 juli 2013 Toevoeging van TDI regeltoestand. Toevoeging van bestandsnaam filtering. 1.2

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

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

Een overzicht van het.net platform

Een overzicht van het.net platform Een overzicht van het.net platform Microsofts visie op Internet Danny Greefhorst Microsoft geeft met het.net platform zijn visie op het Internet en is daarmee een regelrechte concurrent van Java gerelateerde

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

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

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans Canonieke Data Modellering op basis van ArchiMate Canonieke Data Modellering op basis van Archimate Bert Dingemans Abstract Modelleren op basis van de open standard ArchiMate is een goed uitgangspunt voor

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

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

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

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

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

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

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

Les 11: systeemarchitectuur virtuele machines

Les 11: systeemarchitectuur virtuele machines Les 11: systeemarchitectuur virtuele machines Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Virtuele machines Motivatie Interfaces Virtualisatie: inleiding

Nadere informatie

BeheerVisie ondersteunt StUF-ZKN 3.10

BeheerVisie ondersteunt StUF-ZKN 3.10 Nieuwsbrief BeheerVisie Nieuwsbrief BeheerVisie 2015, Editie 2 Nieuws BeheerVisie ondersteunt StUF-ZKN 3.10 BeheerVisie geeft advies MeldDesk App Message Router MeldDesk Gebruikers Forum Nieuwe MeldDesk

Nadere informatie

Een suite van web applicaties om geografische informatie in de organisatie te presenteren

Een suite van web applicaties om geografische informatie in de organisatie te presenteren M A P I N F O E X P O N A R E Een suite van web applicaties om geografische informatie in de organisatie te presenteren INTRODUCTIE VAN MAPINFO EXPONARE MapInfo Exponare is ontwikkeld om gebruikers toegang

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie

SIMPLIFYSCAN. A sharp choice in intelligent scanning

SIMPLIFYSCAN. A sharp choice in intelligent scanning SIMPLIFYSCAN A sharp choice in intelligent scanning SIMPLIFYSCAN: A SHARP CHOICE IN INTELLIGENT SCANNING SimplifyScan maakt het voor gebruikers mogelijk om documenten op een eenvoudige wijze te scannen

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

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

Installatie en configuratie documentatie

Installatie en configuratie documentatie Installatie en configuratie documentatie Assistance Web Portal v. 2.58, 2.60 Voor Windows 2003 / 2008 / XP / Vista / Windows 7 Assistance PSO handleiding, uitgegeven door Assistance Software. Alle rechten

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

Service Oriented Architecture voor interne beheersing

Service Oriented Architecture voor interne beheersing Service Oriented Architecture voor interne beheersing Bedrijfsprocessen overschrijden steeds vaker de grenzen van de organisatie, bijvoorbeeld in het geval van processen met toeleveringsbedrijven. Dergelijke

Nadere informatie

Intramed procedure. Intramed en Windows 7. 1. Upgraden naar Windows 7

Intramed procedure. Intramed en Windows 7. 1. Upgraden naar Windows 7 1. Upgraden naar Windows 7 Voorbereiding Als u straks gebruik wilt maken van een applicatie die nu op een andere computer draait, raden wij u aan om voordat u tot de installatie overgaat alle eventuele

Nadere informatie

Importeren van grids uit de WADI database

Importeren van grids uit de WADI database Importeren van grids uit de WADI database Ministerie van Verkeer en Waterstaat Directoraat-Generaal Rijkswaterstaat Rijksinstituut voor Kust en Zee/RIKZ S O F T W A R E S O L U T I O N S Versies: Versie

Nadere informatie

Standaard koppelvlak Digikoppeling adapter Servicebus. Datum: 18 augustus 2014 Versie: 0.3 Auteur: M. van den Broek

Standaard koppelvlak Digikoppeling adapter Servicebus. Datum: 18 augustus 2014 Versie: 0.3 Auteur: M. van den Broek Standaard koppelvlak Digikoppeling adapter Servicebus Datum: 18 augustus 2014 Versie: 0.3 Auteur: M. van den Broek Inhoudsopgave 1 Inleiding...1 2 Architectuur, uitgangspunten en verantwoordelijkheden...2

Nadere informatie

J2EE en.net Interoperability

J2EE en.net Interoperability Het begrip Enterprise Application Integration (EAI) kan u nauwelijks ontgaan zijn. Het is een heet hangijzer in hedendaagse IT-problematiek. In de praktijk gaat het negen van de tien keer over problemen

Nadere informatie

De SAP Cloud Connector 2.0 maakt SAPUI5 ontwikkeling via de WEB-IDE mogelijk met data uit je eigen backend systeem.

De SAP Cloud Connector 2.0 maakt SAPUI5 ontwikkeling via de WEB-IDE mogelijk met data uit je eigen backend systeem. De SAP Cloud Connector 2.0 maakt SAPUI5 ontwikkeling via de WEB-IDE mogelijk met data uit je eigen backend systeem. Vele van ons willen wel eens spelen met de WEB-IDE in de could via het SAP Trial Hana

Nadere informatie

SURFconext Cookbook. Het koppelen van Wordpress aan SURFconext. Versie: 1.0. Datum: 7 november 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Wordpress aan SURFconext. Versie: 1.0. Datum: 7 november 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Wordpress aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 7 november 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

Software Design Document

Software Design Document Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

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

Thinking of development

Thinking of development Thinking of development Netwerken en APIs Arjan Scherpenisse HKU / Miraclethings Thinking of Development, semester II 2012/2013 Agenda voor vandaag Netwerken Protocollen API's Opdracht Thinking of Development,

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Rapport. i-bridge FleetBroker en LocationBroker. Versie 1.0. Datum 22 December 2010

Rapport. i-bridge FleetBroker en LocationBroker. Versie 1.0. Datum 22 December 2010 Rapport i-bridge FleetBroker en LocationBroker Versie 1.0 Datum 22 December 2010 Status Final Colofon IVENT A&A CDC Madame Curielaan 4-6 Postbus 20703 2289 CA Rijswijk Contactpersoon Patrick Brooijmans

Nadere informatie

Vincent. Hierbij het profiel van.net developer Vincent uit Delft. Vincent presenteert zichzelf graag door onderstaande drie vragen te beantwoorden:

Vincent. Hierbij het profiel van.net developer Vincent uit Delft. Vincent presenteert zichzelf graag door onderstaande drie vragen te beantwoorden: Contact the Agency Laurens Simonse 06 22801031 laurens@rockstars-it.nl Bart Nijskens 06 52302211 bart@rockstars-it.nl Vincent Hierbij het profiel van.net developer Vincent uit Delft. Vincent presenteert

Nadere informatie

SharePoint 2010 als ontwikkelplatform

SharePoint 2010 als ontwikkelplatform SharePoint 2010 als ontwikkelplatform Ton Stegeman 9 Januari 2013 - DIWUG Introductie Ton Stegeman SharePoint architect bij PGGM ton@tonstegeman.com PGGM Pensioenuitvoeringsorganisatie Pensioenbeheer Vermogensbeheer

Nadere informatie

Tips & Tricks: Tip van de maand November 2010. Office Integratie

Tips & Tricks: Tip van de maand November 2010. Office Integratie Tips & Tricks: Tip van de maand November 2010 Door: Martijn Janssen Introductie Office Integratie De Teamcenter MS Office-integratie maakt gebruik van Microsoft Office 2003 of 2007 in een beheerde Teamcenter

Nadere informatie