Het is goed dat er standaarden zijn. Als er geen standaarden zouden zijn, zou elke leverancier iets anders doen en konden we het koppelen van software wel vergeten. Maar teveel concurrerende standaarden is ook weer niet goed. Voor webservices zijn er inderdaad standaarden en de meeste zijn gelukkig niet concurrerend. Maar er ligt een gevaar op de loer: de versnippering van de standaardisatie. Teveel onafhankelijke organisaties houden zich bezig met het definiëren van webservice-standaarden, met als risico dat ze uiteindelijk niet passen.
Het begon allemaal zo mooi. SOAP werd dé standaard om webservices met elkaar te laten communiceren. Deze standaard was gedefinieerd op basis van twee reeds bestaande standaarden: XML en XML Schema. Beide zijn gedefinieerd door het W3C (World Wide Web Consortium). De eerste versie van SOAP werd door Microsoft samen met enkele minder bekende commerciële bedrijven ontwikkeld, en al snel werd SOAP als voorstel bij het W3C ingediend. Daarmee waren alle standaarden op dat moment nog steeds in handen van één organisatie.
Om webservices dynamisch aan te roepen moest er een directory systeem gedefinieerd worden. Een speciaal daarvoor opgerichte organisatie genaamd UDDI.org (Universal Description, Discovery and Integration) eigende zich deze taak toe. De resulterende standaarden om deze ‘registry’ te benaderen, worden nog steeds door hen beheerd.
Als webservices dynamisch aangeroepen worden, dient beschreven te worden hoe de interface in elkaar zit en hoe de aanroep dient te geschieden. Er is dus een taal nodig om interfaces te definiëren. Dit is de XML-taal, genaamd WSDL (Web Services Definition Language) geworden. Het was logisch geweest als UDDI.org zich hiermee zou bemoeien. Echter, deze standaard viel weer in handen van het W3C.
Als we webservices gaan gebruiken in omgevingen waar verschillende bedrijven geïntegreerd worden, dan volstaan de simpele transactiemodellen, die door database- en applicatieservers geboden worden, niet meer. Een transactiemodel dat ondersteuning biedt voor onder andere langlopende en ‘compensating’ transacties is dan noodzakelijk. Er moest een standaard komen voor het definiëren van transactie-eisen. Het zou logisch zijn geweest als deze standaard, die gebruik maakt van SOAP en WSDL, door het W3C of door de UDDI.org ontwikkeld zou worden. Echter, een derde partij genaamd Oasis (Organization for the Advancement of Structured Information Standards), ging er met de buit vandoor. Zij werken nu aan het BTP (Business Transaction Protocol). Oasis is geen nieuweling binnen het XML-domein, maar voor het eerst begaven zij zich op het terrein van de webservices.
Veel webservices die de komende jaren gebouwd gaan worden, zullen simpele opvraagfuncties vervullen. Maar er zullen ook veel complexere webservices ontstaan, waarvoor de aanroepende applicatie bepaalde regels moet nalopen. Eerst moet bijvoorbeeld webservice W1 aangeroepen worden. Afhankelijk van het resultaat dient dan webservice W2 of W3 gestart te worden. Na W2 moet dan nog W4 en W5 geactiveerd worden. En de aanroepende applicatie moet afsluiten met de aanroep van W6.
Maar hoe weet een applicatie dat een dergelijke choreografie noodzakelijk is? Ergens moet dat vastgelegd worden. Er is dus een standaard taal nodig om die choreografische regels te specificeren. Momenteel bestaat hier nog geen gestandaardiseerde taal voor, maar er wordt wel op diverse plekken aan gewerkt. IBM sleutelt aan WSFL (Web Services Flow Language), Microsoft heeft XLang, de UDDI.org is bezig met WSCL (Web Services Conversation Language) en een speciaal hiervoor in het leven geroepen organisatie genaamd BPMI (Business Process Management Initiative) heeft BPML (Business Process Modeling Language) als voorstel. Trouwens, het OMG gaat ook meedoen. Zij hebben aangekondigd om de BPML te integreren met UML, en wel met hun Action-diagrams. En let wel, dit is niet de volledige lijst van projecten waar getracht wordt de perfecte taal voor choreografie te bedenken.
Naast al deze standaarden hebben Oasis en UN/Cefact anderhalf jaar gewerkt aan ebXML. Dit is een verzameling standaarden die deels gebruik maakt van de bovengenoemde standaarden, deels concurrerende standaarden hebben en deels nieuwe aspecten toevoegen.
En tot overmaat van ramp hebben enkele bedrijven, waaronder IBM en Microsoft, een nieuwe onafhankelijke organisatie opgericht genaamd WSI-O (Web Services Interoperability Organization) die tot doel heeft ontwikkelaars te helpen bij het bouwen van overdraagbare webservices. Wat dat allemaal precies betekent, weten we nog niet, zij zelf hopelijk wel.
Kortom, W3C, UDDI.org, Oasis, UN/Cefact, OMG en het WSI-O, hebben allemaal een bepaalde hoeveelheid verantwoordelijkheid naar zich toe getrokken om standaarden voor webservices te definiëren en te beheren. Het hebben van standaarden is goed, maar moeten we blij zijn met deze versnipperde vorm van standaardisatie? Gaat dit uiteindelijk niet leiden tot standaarden die net niet allemaal op elkaar aansluiten? Zal het niet tot onnodige vertragingen leiden, omdat de organisaties nu ook lateraal afspraken moeten maken? Het was beter geweest als één, hooguit twee organisaties alle standaarden zouden beheren. Laten we hopen dat deze versnipperde standaardisatie niet ten koste zal gaan van de verdere ontwikkeling van webservices, maar er is wel degelijk een risico aan verbonden.
Rick F. van der Lans is onafhankelijk adviseur, een internationaal bekend spreker en auteur van diverse boeken, tevens gespecialiseerd in softwareontwikkeling, datawarehousing en internet