Het ontwikkelen van webdiensten met SOAP
|
|
|
- Lien van Loon
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 SOAP in de praktijk Het ontwikkelen van webdiensten met SOAP Danny Greefhorst en Matthijs Maat Bij het ontwikkelen van applicaties die diensten aanbieden voor en via het internet speelt de nieuwe SOAP-standaard (Simple Object Access Protocol) een belangrijke rol. Bestaande technologieën voor het ontwikkelen van gedistribueerde applicaties, zoals bijvoorbeeld DCOM en CORBA, maakten het al eerder mogelijk via het net aangeboden diensten aan te roepen. Waarom dan nog SOAP? Wat biedt SOAP dat CORBA en DCOM niet hebben? In dit artikel zullen de auteurs deze vragen beantwoorden door in te gaan op wat SOAP precies is en te laten zien hoe ontwikkelaars met SOAP webdiensten kunnen ontwikkelen. Voorbeelden van applicaties ontwikkeld met een aantal beschikbare SOAP-implementaties illustreren het gebruik van SOAP voor het ontwikkelen van webdiensten. Webdiensten Na component-gebaseerde ontwikkeling, distributie van softwarecomponenten, e-business en application service providers lijkt de gehele IT-wereld zich nu te richten op webdiensten. Webdiensten zijn op het Internet te huur of te koop aangeboden softwarecomponenten die door anderen gebruikt kunnen worden om het eigen productaanbod te verbreden. Een belangrijk aspect van webdiensten is het gebruik van algemeen geaccepteerde Internetstandaarden zoals TCP/IP, HTTP en XML. Copyright 2001 Software Engineering Research Centre 1
2 sayhello(hello, world) Inter-/intranet helloclient "Greet printed" helloserver sayhello ( String greet ) { print greet; return "Greet printed!" } Figuur 1 Aanroep van een webdienst Hoewel het concept webdienst misschien nieuw is verschillen de technologische uitdagingen weinig van die van gewone gedistribueerde applicaties. Uiteindelijk gaat het erom dat een applicatie diensten van een andere applicatie op het netwerk kan gebruiken, zoals schematisch weergegeven in figuur 1. Een in de context van webdiensten belangrijke standaard is SOAP. SOAP vervult de behoefte aan afspraken voor het gebruik van Internetstandaarden als TCP/IP, HTTP en XML voor het implementeren van webdiensten. Distributie Voor het ontwikkelen van applicaties bestaande uit gedistribueerde componenten bestaat al langer technologie, in te delen in twee categorieën. De eerste categorie bestaat uit technologie die zich richt op het verbinden van gedistribueerde componenten. DCOM, CORBA en RMI bieden de ontwikkelaar een standaard programmeermodel waarmee zowel client- als servercomponenten worden gemaakt. Er zijn generatoren voor zogenaamde proxies en skeletons die tussen de componenten inzitten en die zorg dragen voor het verpakken, transporteren en uitpakken van verzoeken. Het gegevensformaat dat hier voor wordt gebruikt is binair en technologiespecifiek. De tweede categorie technologieën richt zich op het transparant aanbieden van allerlei diensten aan componenten. Voorbeelden van diensten zijn ondersteuning voor transacties, veiligheid, events, persistentie en procesbeheer. In deze categorie vallen recente ontwikkelingen als Enterprise JavaBeans, COM+ en de CORBA Component standaard. Bovengenoemde technologieën worden in de praktijk gebruikt voor het ontwikkelen van gedistribueerde applicaties, maar hebben, vooral in een Internetcontext, een aantal nadelen. De belangrijkste zijn: Gebrek aan voldoende integratie tussen de technologieën onderling en tussen implementaties van leveranciers, waardoor niet altijd alle hoog-niveau diensten en optimalisaties gebruikt kunnen worden. De complexiteit van de technologie maakt het installeren en configureren niet eenvoudig, terwijl ook de aangeboden diensten niet altijd makkelijk te leren of te gebruiken zijn. Copyright 2001 Software Engineering Research Centre 2
3 Het gebruik van eigen communicatieprotocollen gaat niet goed samen met firewalls die communicatie via deze protocollen vaak niet zonder aanpassing van de beveiliging zullen toestaan. In sommige gevallen zijn deze bezwaren nauwelijks relevant, bijvoorbeeld wanneer communicatie binnen een gecontroleerde omgeving plaats moet vinden. Een webfarm (communicerende, nauwverbonden servers) of integratie van applicaties binnen een organisatie zijn voorbeelden van situaties wanneer CORBA- of DCOM-oplossingen goed denkbaar zijn. In andere gevallen, waar grote aantallen en distributie over internet juist van groot belang zijn, wegen deze bezwaren zwaarder. Webdiensten zijn voorbeelden van deze gevallen. HTTP als communicatieprotocol In een webomgeving communiceren clients (webbrowsers) met servers (webservers) via HTTP (HyperText Transfer Protocol). HTTP is een simpel protocol dat met de meeste firewalls overweg kan; daarnaast is het HTTP-protocol zeer wijdverspreid. Zou het niet mogelijk zijn om de beschikbare HTTP-infrastructuur te gebruiken voor het implementeren van webdiensten? Maak kennis met SOAP (Simple Object Access Protocol); een eenvoudige standaard voor het versturen van XML-gebaseerde verzoeken tussen componenten of webdiensten. SOAP maakt het mogelijk dat applicaties, ongeacht technologische afkomst, elkaar berichten sturen en zo van elkaars diensten gebruik maken. SOAP gebruikt het algemeen geaccepteerde en eenvoudig te genereren en lezen XML als berichtformaat. Als transportlaag kan SOAP het populaire HTTP-protocol gebruiken, waardoor componenten kunnen integreren zonder last te hebben van firewalls. SOAP is ook een heleboel niét. SOAP-componenten moeten het stellen zonder een standaard programmeermodel, waardoor ze niet portabel zijn tussen verschillende SOAPimplementaties. Daarnaast biedt SOAP een magere infrastructuur, waarbij diensten voor bijvoorbeeld transacties of persistentie ontbreken. Het tekst-gebaseerde gegevensformaat kan tenslotte wat snelheid betreft niet op tegen de binaire berichtformaten van CORBA of DCOM. De tekortkomingen van SOAP zijn niet onoverkomelijk en hangen, net als de tekortkomingen van andere technologieën, voornamelijk samen met de wijze van gebruik. SOAP heeft vooral waarde in de context van webdiensten, met grote aantallen door Internet van de server gescheiden clients en grove componenten. In zo n situatie is het gebruikte gegevensformaat (en de verwerkingssnelheid daarvan) minder van belang gezien de vertraging door lange responsetijd van het netwerk. Overigens zou SOAP ook als transportlaag voor bijvoorbeeld CORBA kunnen dienen en daarmee de rol van IIOP overnemen. Copyright 2001 Software Engineering Research Centre 3
4 SOAP in meer detail SOAP is een initiatief van een aantal bedrijven, waaronder IBM, Ariba en Microsoft. SOAP zelf is alleen een specificatie; implementaties van de standaard komen van verschillende partijen. De huidige versie van de standaard, SOAP 1.1, is gedeponeerd bij het W3C (World Wide Web Consortium). De SOAP-specificatie bestaat uit een aantal delen. In de eerste plaats definieert SOAP een standaard XML-berichtstructuur. Deze structuur bestaat uit een overkoepelende envelope, een optionele header voor extra informatie en de body waarin de daadwerkelijk uit te wisselen gegevens staan. Een voorbeeld van deze structuur is te zien in het bericht in figuur 2, bestaande uit een HTTP-header en het daadwerkelijke SOAP-bericht. SOAP maakt gebruik van XML namespaces die tags voor de structuur van de envelope en voor de codering van de gegevens definiëren. POST /Hello HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env=" SOAP-ENV:encodingStyle= " <SOAP-ENV:Header> <t:transaction xmlns:t="some-uri" SOAP-ENV:mustUnderstand="1"> 5 </t:transaction> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:sayhello xmlns:ns1="some-uri"> <text xsi:type="xsd:string">hello World</text> </ns1:sayhello> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figuur 2 Voorbeeld SOAP-bericht De codering is het tweede belangrijke onderdeel van de SOAP-standaard. Deze codering beschrijft hoe bepaalde soorten gegevens zoals strings, getallen en arrays worden vertaald in het SOAP-bericht. Het gebruik van de codering, die sterk is gebaseerd op de XMLschema standaard, is aanbevolen. Er kan eventueel ook een andere codering worden gekozen. Een derde belangrijk onderdeel van de SOAP-standaard is een conventie voor het gebruik van SOAP als mechanisme voor remote procedure calls (RPC). De body van een verzoek bevat een XML-tag voor de aan te roepen operatie (<ns1:sayhello> in figuur 2), daarbinnen staan tags voor de verwachte invoerparameters (<text>). Het antwoord op een verzoek ziet er soortgelijk uit, maar bevat in plaats van de invoerparameters de uitvoerparameters van de aangeroepen operatie. Het laatste deel van de SOAP-specificatie bestaat uit een standaard voor het gebruik van het HTTP-protocol voor het versturen van SOAP-berichten. Belangrijk hierbij is het Copyright 2001 Software Engineering Research Centre 4
5 gebruik van het juiste content-type (text/xml) en de SOAPAction header die aangeeft wat de intentie van het SOAP-bericht is. Ontwikkelen van SOAP-applicaties Het ontwikkelen van SOAP-clients of -servers komt neer op het ontwikkelen van componenten die respectievelijk SOAP-berichten kunnen opstellen of juist SOAPverzoeken kunnen begrijpen en uitvoeren. Voor de simpele webdienst uit figuur 1 komt dit neer op het ontwikkelen van een client die de methode sayhello (met als argument Hello, world ) aanroept op de helloserver en een server die op sayhello verzoeken kan reageren door het argument uit te printen en een antwoord terug te sturen. Het is de rol van een SOAP-implementatie om de tussenliggende stappen (van aanroep tot SOAP-request en/of van SOAP-request tot aan implementatie) voor de ontwikkelaar te verbergen. Figuur 3 geeft dit weer. 2. HTTP request (XML) <SOAP-ENV:Body> <ns1:sayhello><text>hello, world</text></ns1:sayhello> </SOAP-ENV:Body> Inter-/intranet 1. sayhello("hello, world") SOAP implementation helloclient 5. HTTP response (XML) <return>hello, SOAP here</return> 6. "Hello, SOAP here" 4. "Hello, SOAP here!" Webserver SOAP implementation helloserver sayhello 3. sayhello("hello, world") Figuur 3 Implementatie van een SOAP-client en -server In de open source community zijn SOAP-implementaties beschikbaar voor de meest uiteenlopende talen en omgevingen. Voorbeelden van dergelijke implementaties Apache SOAP voor Java en SOAP::Lite voor Perl. Een andere categorie SOAP-implementaties ontstaat als aanvulling op bestaande middleware, otwikkelomgevingen en besturingssystemen. Hier spelen partijen als Iona, Roguewave en Microsoft een rol. De verschillende SOAP-implementaties zorgen ervoor dat de ontwikkelaars zich geen zorgen meer hoeven te maken over het formaat van SOAP-berichten, over hoe berichten verstuurt worden en over hoe moet worden omgegaan met fouten. Veel producten maken het daarnaast mogelijk om bestaande Java-, COM- of CORBA-componenten om te vormen tot SOAP-webdienst. De meeste implementaties zijn gebaseerd op een RPC- Copyright 2001 Software Engineering Research Centre 5
6 achtige manier van communicatie en bieden afbeeldingen op zowel HTTP als SMTP (Simple Mail Transfer Protocol). De SOAP-implementaties verschillen onder andere in de mate van ondersteuning voor de SOAP-standaard, het gebruik van WSDL (Web Service Description Language), berichtcoderingen, transportprotocollen, programmeertalen en de mate van integratie met de programmeertaal. Microsoft SOAP toolkit voor Visual Studio 6.0 Microsoft SOAP toolkit voor Visual Studio 6.0 (gratis te downloaden) is een uitbreiding op de ontwikkelomgeving van Microsoft. De toolkit biedt een COM-gebaseerde interface voor het maken van SOAP-clients en -servers. Deze kunnen daardoor in alle talen worden geschreven die COM ondersteunen, zoals Visual Basic, Visual C++ of zelfs Borland Delphi. De SOAP-toolkit biedt keuze tussen een hoog-niveau of een laag-niveau programmeerinterface; de laatste geeft meer controle over de SOAP-communicatie. SOAP-servers kunnen gebruik maken van de bestaande Microsoft webinfrastructuur in de vorm van IIS en ASP. Om een SOAP-server te maken moeten er vier bestanden worden aangemaakt; het COM-object dat de dienst implementeert, een ASP-pagina die wordt aangeroepen door een SOAP-client, een WSDL-bestand dat de interface van de dienst beschrijft en een Microsoft-specifiek WSML bestand dat de relatie naar het COM-object legt. De laatste twee bestanden kunnen worden gegenereerd door een bijgeleverd hulpprogramma. Een SOAP-client die gebruik maakt van de hoog-niveau programmeerinterface is eenvoudig, zie figuur 4. In de eerste regel wordt het algemene SOAP-client COM-object aangemaakt. Dit object wordt in de tweede regel geparametriseerd met een WSDL beschrijving waarin onder meer de exacte locatie en de interface van de dienst is beschreven. Het daadwerkelijk aanroepen van een operatie ziet er hetzelfde uit als een lokale aanroep, het is bijvoorbeeld niet nodig informatie over de types van de argumenten mee te geven. Het resultaat van het uitvoeren van deze code zou het voorbeeldbericht in figuur 2 kunnen zijn. hello := CreateOleObject('MSSOAP.SoapClient'); hello.mssoapinit(' result := hello.sayhello('hello World'); Figuur 4 Voorbeeld SOAP-client, geschreven in Delphi met Microsoft SOAP-toolkit Microsoft.NET In het nieuwe Microsoft.NET platform heeft SOAP een belangrijke rol gekregen. Niet alleen dient SOAP in het platform als technologie voor het realiseren van webdiensten, Copyright 2001 Software Engineering Research Centre 6
7 ook speelt SOAP een belangrijke rol in.net Remoting; het equivalent van DCOM in.net. Voor het maken van webdiensten wordt in principe gebruik gemaakt van het nieuwe raamwerk voor webapplicaties, ASP.NET. ASP.NET webpagina s kunnen programmacode bevatten die is geschreven in een willekeurige.net-taal en die mogelijk een webdienst implementeert. Een voorbeeld van zo n webpagina is weergegeven in figuur 5. Merk op dat het enige SOAP-specifieke aan de gedefinieerde klasse is dat hij erft van een standaard klasse en dat alle methoden die beschikbaar moeten zijn via SOAP het attribuut WebMethod krijgen. Deze klasse zou overigens ook los van de pagina kunnen worden gemaakt en gecompileerd. <%@ WebService Language="C#" Class="HelloWorld" %> using System.Web.Services; public class Hello : WebService { [ WebMethod ] public string sayhello(string text) { System.Console.WriteLine(text); return "Hello, SOAP here!"; } } Figuur 5 Voorbeeld SOAP-server, geschreven in C# met ASP.NET Apache SOAP Apache SOAP is een open source SOAP-implementatie voor Java en is gebaseerd op de eerdere SOAP-implementatie van IBM. Apache SOAP integreert makkelijk met bestaande webinfrastructuur: het beschikbaar maken van een SOAP-server vraagt naast Java niet meer dan een webserver en een XML-parser, zoals de vrij beschikbare Apache Tomcat en Apache Xerces. Het ontwikkelen van een Java SOAP-server met Apache SOAP is simpel. Er is alleen een implementatie nodig van een klasse die een via het web aan te bieden methode implementeert. De Java-variant van de HelloWorld SOAP-server is te zien in figuur 6. public class Hello { public String sayhello(string text) { System.out.println(text); return "Hello, SOAP here!"; } } Figuur 6 Voorbeeld Java SOAP-server Om de SOAP-server voor clients beschikbaar te stellen moet de server gekoppeld worden aan een webserver. Apache SOAP biedt daarvoor een speciaal tool. Figuur 7 laat zien hoe met dit tool een ontwikkelaar de Hello SOAP-server die de webdienst sayhello aanbiedt kan koppelen aan de implementerende Hello javaklasse. Copyright 2001 Software Engineering Research Centre 7
8 Figuur 7 Deployment Java SOAP-server Na het instellen van deze informatie kan de webdienst direct gebruikt worden. De code in figuur 8 laat zien hoe een Java SOAP-client eruit zou kunnen zien die de eerder gedefinieerde server gebruikt. Voor het aanroepen van een webdienst moet een Call object worden aangemaakt waarin de locatie en naam van de SOAP-server worden aangegeven; ook de naam van de aan te roepen methode en eventuele argumenten moeten worden ingevuld. Het daadwerkelijke aanroepen van de operatie (invoke) levert een Response object op waarin het eventuele resultaat van de aanroep en mogelijke fouten zijn opgeslagen. URL url = new URL( String urn = "urn:hellosoap:hello"; Call call = new Call(); call.settargetobjecturi(urn); call.setmethodname("sayhello"); call.setencodingstyleuri( Constants.NS_URI_SOAP_ENC ); Vector params = new Vector(); params.addelement(new Parameter( greet, String.class, Hello, world, null)); call.setparams(params); Response response = call.invoke(url, ""); Parameter result = response.getreturnvalue(); System.out.println("Result= " + result.getvalue()); Figuur 8 Voorbeeld Java SOAP-client Bij de Apache SOAP-distributie zit ook een tool waarmee inzichtelijk kan worden gemaakt wat uiteindelijk tussen client en server heen en weer wordt gestuurd: het echte Copyright 2001 Software Engineering Research Centre 8
9 SOAP-verzoek en antwoord dus. Figuur 9 laat zien hoe de SOAP-berichten er voor de beschreven Java server en- client uit zien. Figuur 9 SOAP-request en response Er bestaan meer SOAP-implementaties in de open source community voor vele verschillende programmeeromgevingen. SOAP::Lite is een implementatie van SOAP voor Perl: de voorbeeldcode uit figuur 10 is de exacte perl-equivalent van de Java SOAP-client uit figuur 8. Zoals al eerder geschetst hoeven client en server dus niet met behulp van dezelfde SOAP-implementatie geschreven te zijn; de Perl client werkt met dezelfde Java SOAP-server. #!perl -w use SOAP::Lite; print SOAP::Lite -> uri('urn:hellosoap:hello') -> proxy(' -> sayhello('hello, world') -> result; Figuur 10 Voorbeeld Perl SOAP-client Gerelateerde standaarden De voorbeelden van SOAP-clients en servers gemaakt met verschillende implementaties illustreren hoe met SOAP webdiensten ontwikkeld kunnen worden. SOAP is echter maar één van de standaarden die van belang zijn voor webdiensten. SOAP zelf biedt niet meer dan een aantal afspraken over de structuur van XML-gebaseerde berichten. Standaarden voor het transporteren van deze berichten, zoals TCP/IP, HTTP en SMTP zijn dus onontbeerlijk. XML en bijbehorende standaarden spelen een belangrijke rol omdat zij een standaard syntax bieden voor SOAP-berichten. Er is een aanvullende specificatie van SOAP 1.1 die beschrijft hoe ook attachments met een SOAP-bericht mee kunnen worden verstuurd, gebaseerd op de MIME-standaard. Copyright 2001 Software Engineering Research Centre 9
10 Op hoger niveau is er behoefte aan manieren voor het beschrijven en kunnen vinden van webdiensten. Aangewezen standaarden hiervoor zijn respectievelijk WSDL (Web Service Description Language) en UDDI (Universal Description Discovery en Integration). WSDL is een XML-gebaseerde taal voor het beschrijven van de berichten die een webdienst kan ontvangen en versturen en de wijze waarop deze berichten worden gebruikt in de aangeboden operaties. UDDI is een standaard voor repositories van webdiensten en geeft een indeling in verschillende soorten gegevens over bijvoorbeeld de aanbiedende partij en de aangeboden webdiensten. UDDI biedt ook een aantal SOAP-gebaseerde interfaces voor het registreren en zoeken van aanbieders en webdiensten. SOAP in de praktijk Er zijn op dit moment veel SOAP-implementaties beschikbaar. De verschillende voorbeelden laten zien dat het mogelijk is om op een relatief eenvoudige manier gebruik te maken van SOAP, waarbij wel moet worden opgemerkt dat in de voorbeelden bij dit artikel er geen gebruik is gemaakt van geavanceerdere mechanismen, bijvoorbeeld voor het doorgeven van objecten als parameter aan een operatie. SOAP is geen directe plaatsvervanger voor de al langer bestaande technologie voor het ontwikkelen van gedistribueerde applicaties, maar wel een zeer bruikbaar nieuw alternatief voor situaties waarin technologieën als CORBA en DCOM minder goed toepasbaar zijn. Als het gaat om grote aantallen lichtgewicht clients en distributie over Internet, typisch het geval bij de ontwikkeling van webdiensten, bieden de eenvoud van SOAP en de mogelijkheid tot hergebruik van de wijdverspreide webinfrastructuur zeker toegevoegde waarde. Referenties Ballinger 2000 K. Ballinger, J. Hawkins, P. Kumar, SOAP in the Microsoft.NET framework and Visual Studio.NET, Microsoft MSDN Library, Barton 2000 J.J. Barton, S. Thatte, H.F. Nielsen, SOAP Messages with Attachments, W3C Note, Box 2000 (a) D. Box, A young person s guide to the simple object access protocol, MSDN Magazine 3, jaargang 1, Box 2000 (b) D. Box et. al., Simple Object Access Protocol (SOAP) 1.1, W3C Note, Box 2000 (c) D. Box, A. Skonnard, J. Lam, Essential XML Beyond markup, Addison-Wesley, New York, Duivestein 2000 S. Duivestein, A. Harteveld, SOAP = (CBD) 2 + XML, Software Release Magazine 3, jaargang 5, Glass 2000 Graham Glass, The web services (r)evolution, IBM DeveloperWorks Library, Copyright 2001 Software Engineering Research Centre 10
11 Kulchenko 2001 P. Kulchenko, Quick start with SOAP, O Reilly s PERL.com, Loshin 1999 P. Loshin, Web services and the simple object access protocol, Microsoft MSDN Library, Marchal 2001 B. Marchal, Soapbox: Why I m using SOAP, IBM DeveloperWorks Library, Schonfeld 2001 P. Schonfeld, Making SOAP out of Java, Java Pro 4, jaargang 5, Skonnaard 2000 A. Skonnaard, SOAP: The Simple Object Access Protocol, Microsoft Internet Developer 1, jaargang 5, Resources Apache SOAP, Xerces en Tomcat SOAP::Lite Microsoft SOAP Microsoft.NET Danny Greefhorst en Matthijs Maat zijn werkzaam bij het Software Engineering Research Centre te Utrecht. Copyright 2001 Software Engineering Research Centre 11
XML Web Services of.net Remoting? W ANNEER GEBRUIK JE WELKE TECHNOLOGIE VOOR DE AANROEP VAN REMOTE SERVICES
Anko Duizer is trainer en consultant bij Class-A te Woerden http://www.class-a-.nl XML Web Services of.net Remoting? W ANNEER GEBRUIK JE WELKE TECHNOLOGIE VOOR DE AANROEP VAN REMOTE SERVICES In dit artikel
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
HDN DARTS WEB AUTHENTICATIE
HDN DARTS WEB AUTHENTICATIE HDN Helpdesk T: 0182 750 585 F: 0182 750 589 M: [email protected] Copyright Communications Security Net B.V. Inhoudsopgave 1. INLEIDING OP HET ONTWERP... 3 1.1 HET DOEL VAN DIT
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,
Wat betekent XML voor software engineers?
Wat betekent XML voor software engineers? Danny Greefhorst, Reinier Balt Inleiding Het zal u niet ontgaan zijn: XML is een hype. Overal in de vakbladen en op conferenties is XML het terugkerende thema
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
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
Technisch ontwerp. Projectteam 6. Project "Web Essentials" 11 maart 2009. Versie 1.1.0
Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, [email protected] Technisch ontwerp Project "Web Essentials" 11 maart 2009 Versie 1.1.0 Teamleden: Armin
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
Het.NET framework in vogelvlucht
Het.NET framework in vogelvlucht De basis voor.net applicaties Danny Greefhorst Het.NET framework is de basis voor het.net platform en bestaat zowel uit een ontwikkel- als een runtime-omgeving. De ontwikkelomgeving
Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service.
WEB SERVICE WERKING Hier volgt als hulp wat technische informatie voor de websitebouwer over de werking van de xml web service. Aanvullende informatie omtrent de fieldmapping kunt u hier inzien: www.effector.nl/webservice/technischeuitlegfieldmapping.xls
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
Informatiearchitectuur
Informatiearchitectuur Onderwerpen Waarom is architectuur (nu) zo belangrijk? Wat is informatiearchitectuur? Ontwikkelingen in de tijd Structuur applicaties Applicatie-integratie Webservices Praktijkvoorbeeld
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
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
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?
Technische afspraken Ketenregister
Copyright 2014 Bloembollenkeuringsdienst (BKD) Datum: 02-03-2015 Versie: 1.1 Status: Definitief Wijzigingsblad Versie Auteur(s) Wijzigingen 1.0 BKD Initiële versie 1.1 BKD Aanvullingen wijzigingen 2014-2015
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
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
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
Koppelvlakbeschrijving mededelingenservice Bancaire Infrastructurele Voorzieningen. Het ophalen van mededelingen bij de BIV
Koppelvlakbeschrijving mededelingenservice Bancaire Infrastructurele Voorzieningen Het ophalen van mededelingen bij de BIV Versie 1.0 Juni 2010 Inhoudsopgave 1. Inleiding... 3 1.1 Doel en Doelgroep...
4 ASP.NET MVC. 4.1 Controllers
4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.
Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum.
Kennissessie Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum Thijs Brentjens Inhoud Download Services Pre-defined datasets via Atom feeds Pre-defined
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
Koppelvlakbeschrijving statusservice Bancaire Infrastructurele Voorzieningen. Het ophalen van statusinformatie bij de BIV
Koppelvlakbeschrijving statusservice Bancaire Infrastructurele Voorzieningen Het ophalen van statusinformatie bij de BIV Versie 1.o Juni 2010 Inhoudsopgave 1. Inleiding... 3 1.1 Doel en Doelgroep... 3
Technische FAQ koppelvlak WUS 2.0 voor bedrijven
Technische FAQ koppelvlak WUS 2.0 voor bedrijven Versie 1.0 Datum 25 juli 2012 Status Definitief Colofon Projectnaam Versienummer Contactpersoon Organisatie Logius Postbus 96810 2509 JE Den Haag [email protected]
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, [email protected] Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin
Webwinkel in het D-cluster van de opleiding Logistiek
Webwinkel in het D-cluster van de opleiding Logistiek Pract. 1 week 2 Pract. 2 week 3 Pract. 3 week 4 Pract. 4 week 6 Pract. 5 week 7/8 Ad van Kooten docent ERP toepassingen E-mail: [email protected]
Ministerie van Economische Zaken, Landbouw en Innovatie. Geoboer. Interface Specificatie
Ministerie van Economische Zaken, Landbouw en Innovatie Geoboer Interface Specificatie Versie 1.2 Assen, 20-09-2013 Opgesteld door: Rene Buruma Functioneel Applicatie Beheerder Inhoudsopgave Inhoudsopgave
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
TECHNISCHE HANDLEIDING MESSAGESERVICE WEBSERVICE
TECHNISCHE HANDLEIDING MESSAGESERVICE WEBSERVICE Versie: 1.43 Versiedatum: 23-03-2011 Status: Concept Stichting ETIM Nederland is een samenwerkingsverband van Stichting ECEG, TGF, UNETO-VNI en de deelnemende
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
HDN POORTWACHTER WEBSERVICE KOPPELING
HDN POORTWACHTER WEBSERVICE KOPPELING HDN Helpdesk T: 0182 750 585 F: 0182 750 589 M: [email protected] Copyright Communications Security Net B.V. Inhoudsopgave 1. INLEIDING... 3 1.1 HET DOEL VAN DIT DOCUMENT...
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
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
Handleiding Aansluiting beeldbank
Handleiding Aansluiting beeldbank Copyright 2014 FotoCadeau.nl Versie 1.0 Overzicht veranderen Versie Datum Verandering 1.0 22-07-2014 Oplevering eerste versie handleiding Copyright 2014 FotoCadeau.nl
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
Technisch Interface Specificatie Webservice Koppelvlak Versie 4.1.03. Datum 08-07-2013 Status Concept
Technisch Interface Specificatie Webservice Koppelvlak Versie 4.1.03 Datum 08-07-2013 Status Concept Colofon Projectnaam Technisch Interface Specificatie Webservice Versienummer 4.1.03 Organisatie Logius
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
Uniforme Pensioen Aangifte (UPA)
Beschrijving Koppelvlak Uniforme Pensioen Aangifte (UPA) De standaard voor het digitaal uitwisselen van werknemer- en salarisgegevens tussen werkgevers, administratiekantoren en pensioenuitvoerders. Uitgave
SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 [email protected] 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
Het gebruik van OSB ebms contracten in complexe infrastructuren
Inleiding Het gebruik van OSB ebms contracten in complexe infrastructuren Whitepaper Ernst Jan van Nigtevecht Maart 2009 Contracten die gepubliceerd worden voor een OSB ebms service hebben tot doel om
APEX en JasperReports
APEX en JasperReports een Dream Team! Spreker(s) : Datum : E-mail : Vincent Deelen 28 mei 2013 [email protected] WWW.TRANSFER-SOLUTIONS.COM Outline APEX en rapporten Oracle BI publisher
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:
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
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 [email protected] 2 De Uitdaging Rijke en veilige webapplicaties Een onveilig en
Organiseer uw verschillende SOAP services in één scenario
1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten [email protected] 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.
J2EE/.NET en de rol Applicatie Architectuur
J2EE/.NET en de rol Applicatie Architectuur Edwin van Dillen [email protected] 2003 Sogyo Information Engineering 1 Sogyo information engineering! IT Innovator sinds 1995! Klanten: ABN AMRO, Rabobank,
Yenlo The experts in integration. Test rapport met Logius betreffende:
Test rapport Yenlo The experts in integration BETREFT Test rapport met Logius betreffende: Managed Digikoppeling Cloud Managed Digikoppeling Hardware Appliance Managed Digikoppeling Software Appliance
Zelftest XML Concepten
Zelftest XML Concepten Document: n1035test.fm 18/02/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING Om een idee te hebben van wat we verwachten als voorkennis
Security web services
Security web services Inleiding Tegenwoordig zijn er allerlei applicaties te benaderen via het internet. Voor bedrijven zorgt dit dat zei de klanten snel kunnen benaderen en aanpassingen voor iedereen
Werken met ActiveX (COM) componenten in.net
Werken met ActiveX (COM) componenten in.net 1. Inleiding In de pre-net dagen werd gebruik gemaakt van COM (of ActiveX) objecten, gelijkaardig aan hoe we nu een Windows Control Library of Web Control Library
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
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
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
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)
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)
Bijlage 1-Procedure voor de implementatie van het AGR-GPS systeem PROCEDURE VOOR DE IMPLEMENTATIE VAN HET AGR-GPS SYSTEEM
Bijlage 1-Procedure voor de implementatie van het AGR-GPS systeem PROCEDURE VOOR DE IMPLEMENTATIE VAN HET AGR-GPS SYSTEEM Figuur 1 geeft een overzicht van het AGR-GPS systeem op functioneel niveau weer.
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
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
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
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
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
Analyse Programmeertalen
Analyse Programmeertalen De keuze van een programmeertaal mag niet onderschat worden. Het is dankzij deze taal dat de gebruiker interactie heeft met het complete systeem. Het is dus vanzelfsprekend dat
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
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
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
1. SPDE, een ontwikkelomgeving voor diensten.
Pagina 1 van 6 Lees de vragen goed door, beantwoord daarna pas de subvragen in één à twee zinnen. Schijf netjes! Achter de vragen staat de waardering. In totaal zijn er 100 punten te verdienen. Het etentamencijfer
Technical Note. API Beschrijving Aangetekend Mailen
AUTHOR APPROVED Technical Note API Beschrijving Referentie: API beschrijving AM Versie: 0.0.7 Datum: 2015-07-24 Aangetekend Bellen B.V. Computerweg 5 Postbus 8307 3503 RH Utrecht T: +31 346 581 731 [email protected]
OAS en het Kennisplatform API s. Dimitri van Hees
OAS en het Kennisplatform API s Dimitri van Hees (@dvh) RESTful API HTTP/web interface/api die aan veel, maar niet alle, principes van REST voldoet. REST is geen doel op zich, het aanbieden van een goede
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
Ontwikkeltools voor softwarecomponenten - de stand van zaken
Ontwikkeltools voor softwarecomponenten - de stand van zaken Huidige generatie ontwikkeltools geschikt voor het snel opleveren van schaalbare two-tier, three-tier en multi-tier client/server applicaties.
SQL Server Service Broker
Oriented Database Architectuur met SQL Server 2005 SQL Server Astrid Hackenberg en Anko Duizer In het artikel in DB/M 2 is geschreven over de Oriented Database Architectuur (SODA). In een SODA smelten
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
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
Handleiding DigiD koppeling
Handleiding DigiD koppeling Stichting Nederland Kennisland, Digitale Pioniers Datum: Document naam: digid-zorg-enovatie-handleiding-1.2-publicatie Versie: 1.2 pagina [1/14] Inhoudsopgave 1. Inleiding...
De pro s en contra s van toestandsloosheid
Het web is een ideaal medium voor de verspreiding van informatie. Daarnaast kan het dienen als infrastructuur voor applicaties. Dit laatste biedt bedrijven een aantal belangrijke voordelen zoals bijvoorbeeld
SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV [email protected]
SOA Security en de rol van de auditor... ISACA Roundtable 2 juni 2008 Arthur Donkers, 1Secure BV [email protected] 1 SOA Web 2.0, web services en service oriented architecture (SOA) is tegenwoordig de
Aansluitdocument webservices. VSP-EDP Validatiemodule
Aansluitdocument webservices VSP-EDP Validatiemodule Versie 2.0 Pagina 2 van 20 Historie Versie Datum Veranderingen 0.1 12-07-2010 Initiële versie 0.2 19-07-2010 Wijzigingen n.a.v. opmerkingen reviewteam
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
Inhoudsopgave. Hoofdstuk 1: Ant...4
Inhoudsopgave Hoofdstuk 1: Ant...4 1.1 Inleiding...4 1.2 Ant installeren...5 1.3 Ant gebruiken...7 1.3.1 Een project maken...7 1.3.2 Mijn eerste Ant-script...10 1.3.2.1 Projects...10 1.3.2.2 Targets...11
