Web Services


Dit artikel over web services is ook gepubliceerd op www.naarvoren.nl.

Uit de serie “wie de buzzwords kent, telt mee” dit keer het eerste artikel van een tweeluik over web services, SOAP, WSDL en UDDI. Deze termen staan voor hele handige tools en functies voor wie liever lui dan moe is. Want waarom zou je het wiel voor de tweede keer uitvinden?

Ruzie is goed, het uitpraten is beter

Het is altijd ruzie in de IT-wereld. Komt dat zien, komt dat zien: Sun versus Microsoft, SAP versus Siebel en ga zo maar door. Competitie leidt volgens sommigen tot betere producten, dus het geharrewar heeft kennelijk zo zijn voordelen. Wat voor de consumenten erger is, is dat ook de systemen zelf niet goed met elkaar overweg kunnen.

Er is namelijk veel te krijgen in de wereld. Informatie, diensten, producten: je kunt het zo gek niet bedenken of het is er al. Het vervelende is dat het tot voor kort niet zo makkelijk was om te vinden wat je zocht, laat staan dat je ook kon gebruiken wat je wilde.

Interoperabiliteit levert winst op. En dus werd het tijd voor een frisse wind. Web services bieden een mogelijke oplossing voor het communicatieprobleem tussen systemen.

Web Services

Een web service is een applicatie die een aantal functies biedt en aan te spreken is over het Internet. De in- en output van deze functies gebeurt in het XML formaat en volgens vaste afspraken. Deze afspraken zijn platformonafhankelijk; je kunt dus iedere web service gebruiken vanaf ieder soort platform (Unix, NT, etc.).

De code achter een web service kan gemaakt zijn met alle mogelijke middelen. Of het nu Java is, C# of een scriptingtaal, het kan allemaal een web service bieden. Een applicatie biedt een web service omdat de interface zich houdt aan bepaalde afspraken. Alle web services spreken dezelfde taal, over hetzelfde protocol, met vaste afspraken over het formaat.

Het resultaat van een web service is eigenlijk op zich niet spectaculair. Vanuit een XML-document spreek je een web service aan op een andere plaats in een netwerk. Je geeft de juiste parameters door en ontvangt een resultaat. Dit resultaat toon je op je scherm met een XSLT. Je ziet dan iets als:

Morgen is de weersverwachting in Nederland: 20 graden en zonnig.

Waarom web services?

Het gebruiken van web services heeft een aantal voordelen.

  • Ze werken volgens een standaard protocol: Web Services zijn gebaseerd op wereldstandaard SOAP en maken gebruik van HTTP en SMTP. Iedereen kan dus gratis meedoen.
  • Web services zijn eenvoudig: web services zijn eenvoudig te maken en te gebruiken door software-ontwikkelaars.
  • Microsoft, IBM, SAP en Sun ondersteunen web services:eigenlijk alle grote spelers zijn er blij mee. Je loopt dus minder risico dan vroeger een doodlopende steeg in te gaan als je voor web services kiest.

Er zijn natuurlijk ook nadelen.

  • In sommige gevallen zijn web services niet handig. Denk bijvoorbeeld aan MS Office: als je dat volledig op web services zou baseren, kun je dus zonder Internet geen teksten schrijven in Word. Jammer hoor.
  • Veel van de huidige web services zijn nog erg simpel. Om bijvoorbeeld een bedrag van Euro’s om te rekenen naar dollars heb je ook een rekenmachine thuis.
  • Slechte web services zijn er ook. Er zijn regels voor het maken van een goede web service. Als je je daar niet aan houdt, kan dat heel vervelend zijn. Voor de liefhebbers: denk eens aan het iteratief aanroepen van een functie totdat de return-value voldoet aan de verwachte waarde. Een beetje goedbezochte service heeft dan al snel een groot probleem.

Ken uw termen!

Afkortingen kennen is onmisbaar in IT-land, dus hier staan er een paar op een rij die met web services te maken hebben.

  • SOAP (Simple Object Access Protocol). SOAP is het middel waarmee de daadwerkelijke communicatie plaatsvindt. Het is een setje afspraken over boodschappen die je verstuurt. SOAP is dus de manier waarop je praat met een web service.
  • WSDL (Web Service Description Language). WSDL beschrijft web services met XML. Via WSDL geeft een web service zijn werking prijs: je kunt hiermee precies uitvogelen wat je moet doen om het zaakje aan de praat te krijgen.
  • UDDI (Universal Description, Discovery and Integration). UDDI is een standaard waarmee web services gevonden kunnen worden, die door bedrijven open worden gesteld voor gebruik.

Technische termen als SOAP en WSDL komen in het volgende deel van dit artikel wat meer aan bod. UDDI is als idee belangrijker voor het functioneel inzetten van web services, en daarom volgt wat meer uitleg.

UDDI

UDDI (Universal Description, Discovery and Integration) biedt een bibliotheek van beschikbare web services over de hele wereld. Om die reden wordt UDDI ook wel de White Pages genoemd. Behalve beschrijvingen worden ook de locatie en de specificaties van de betreffende web service vastgelegd.

UDDI is een initiatief van grote jongens als IBM, Microsoft en Ariba, en is inmiddels uitgegroeid tot een wereldwijde community waarin ook anderen als Sun en SAP deelnemen. Vooralsnog is UDDI een gratis te gebruiken tool.

Wat is UDDI niet?

UDDI is geen middel om je business service aan een breed publiek aan de man te brengen. De marketing voor een aangeboden service is geen onderdeel van de bibliotheek, dat doe je maar op je gelikte corporate website. Het is echt bedoeld als praktisch hulpmiddel voor ontwikkelaars.

Waar moet ik dan zijn?

Een UDDI Business Registry (UBR) is een applicatie die via een website online bedrijven de mogelijkheid biedt zich in te schrijven voor de UDDI standaard. Een andere naam voor een UBR is de Yellow Pages. Je kunt daar ook de bibliotheek van beschikbare web services inzien.

Er zijn een aantal UDDI Business Registries; de bekendste is die van Microsoft. IBM beheert ook een grote. Deze bibliotheken zijn overigens allemaal identiek en worden gesynchroniseerd. Welke je kiest maakt niet uit, behalve voor je imago misschien.

Online rondshoppen met het tModel

Als je als consument een bepaalde service nodig hebt, is het zaak een bijbehorend tModel te construeren. Een tModel is een soort contract van je verwachtingspatroon, geschreven in XML. Dit contract beschrijft de acties die worden verwacht van een service.

Iedere service provider kan vervolgens een service maken die voldoet aan de set eisen uit je tModel. Omdat de gevraagde service een gestructureerd formaat heeft, is iedere op hetzelfde tModel gebaseerde service functioneel gezien identiek. Het maakt dus niet uit wie het bouwt, of hoe hij of zij dat precies doet. Een openbare aanbesteding wordt zo een haalbare kaart.

Wat wel uitmaakt, is hoeveel dat gaat kosten of hoe lang het duurt. Wordt de service provider te duur of blijkt hij onbetrouwbaar, dan is het voor de consument eenvoudig om met het bestaande tModel over te stappen naar een andere provider.

Als de consument een tModel heeft waarvoor al services bestaan, dan is het via UDDI mogelijk om alle aanbieders van een service voor hetzelfde tModel te vinden. Dit wordt ook wel de Green Pages genoemd. Een prijsvergelijking is dan simpel.

Enterprise UDDI en Windows Server 2003

Windows Server 2003 Enterprise biedt Enterprise UDDI-services, een interne infrastructuur voor web services. Met deze op standaarden gebaseerde oplossing kunnen bedrijven hun eigen UDDI-directory uitvoeren voor gebruik op Internet, intranet of extranet.

Met Enterprise UDDI zijn web services en andere applicaties gemakkelijk te ontdekken. Ontwikkelaars kunnen de beschikbare web services in hun organisatie zo snel zoeken en hergebruiken. Je kunt het zien als de interne IT catalogus van een organisatie. Voordat je iets nieuws voor het bedrijf gaat bouwen, kun je hier vinden wat er al beschikbaar is.

De services die worden neergezet in de UDDI omgeving van Windows Server 2003 zijn geen onderdeel van de wereldwijde bibliotheek, maar natuurlijk alleen voor de eigenaar van de server beschikbaar.

Web service malaise

Het klinkt nu natuurlijk allemaal geweldig. In de praktijk gaat er echter nogal eens wat mis. Eigenlijk komt dat vooral omdat er nog iets mist in het plaatje.

Met WSDL kun je web services definiëren en met UDDI services kun je ze opzoeken. Geen van de twee laat echter toe om op een praktische manier de echte betekenis van de gebruikte termen te laten zien. Taal laat namelijk vaak ruimte voor dubbele betekenissen: vraag aan 10 mensen wat bijvoorbeeld een offerte is, en je krijgt 10 verschillende antwoorden. Er kan dus een interpretatieprobleem ontstaan.

Vaak zijn web services onderdeel van business processen waar heel veel geld in om gaat. Missers doen dan pijn in je portemonnee of erger.

Winst met web services

Als er een web applicatie gebouwd moet worden, doe jezelf dan een plezier en kijk eerst in je favoriete UDDI business registry. Er is al een groot aanbod van web services, dus de kans is groot dat je vindt wat je zoekt. Het is helemaal smullen als er meerdere oplossingen bestaan voor jouw probleem, omdat je dan prijsvergelijkingen kunt gaan doen.

Winst met web services is inmiddels voor iedereen in zicht, dus laat die kans niet voorbijgaan.

Handige links


Sander Nagtegaal, 2003

You are trying to view the newsticker in a browser that doesn't support it. I am sorry.