De stack van webservice gerelateerde standaarden blijft maar groeien. Het begon allemaal simpel met soap, wsdl en uddi. Daarna volgden standaarden voor onder andere het specificeren van transacties, betrouwbaarheid van berichten, beveiliging, beheer en orchestration. En nu heeft het W3C in april hier wederom een standaard aan toegevoegd: ws-cdl, hetgeen staat voor web services choreography description language. Alhoewel, het is nog geen standaard, maar een voorstel.
Ws-cdl is gericht op de interactie tussen webservices van verschillende organisaties. Men kan een ws-cdl-document beschouwen als een contract tussen twee groepen van webservices waarin de spelregels voor interactie gespecificeerd worden.
Er bestaat een zeer hechte relatie met een andere standaard genaamd bpel4ws (business process execution language for web services). Deze is bedoeld voor de orchestration van webservices. Bpel4ws is een taal waarmee we aangeven in welke volgorde en onder welke voorwaarden we webservices aanroepen. Hiermee kunnen we webservices bundelen tot complexere webservices. De term orchestration wordt hier gebruikt om aan te geven dat BPEL4WS zich verhoudt tot individuele webservices als een dirigent tot alle orkestleden. Tijdens het concert geeft de dirigent aan wanneer welk orkestlid wat moet doen. Hetzelfde geldt voor bpel4ws.
Als we de analogie met muziek doortrekken, dan is ws-cdl de componist van het muziekstuk. Voordat het orkest één noot kan spelen, moet op papier komen te staan hoe het muziekstuk in elkaar zit. De componist is in feite de choreograaf van het muziekstuk. Vandaar de term choreography description language.
Als uw webservices externe webservices gaan aanroepen, dan is het verstandig om eerst een contract op te stellen. Hoe gaat er aangeroepen worden? Wat gaat er aangeroepen worden? Deze standaard in ontwikkeling zal ook een sterke relatie moeten hebben met talen die zich richten op service level agreements.
Bpel4ws is een taal die de webservices als marionetten bestuurt. Bij deze taal wordt er van uitgegaan dat er een centrale component bestaat, een zogenaamde bpel4ws-engine, die alle webservices aanstuurt en aanroept. Hierdoor ontstaat een hub-en-spoke model met de engine in het midden. Dat geldt niet voor ws-cdl. Een ws-cdl-document is als het ware geschreven door een neutrale partij die zich tussen de twee groepen webservices bevindt. Dit heeft veel meer een peer-to-peer karakter.
Men zou ook kunnen stellen dat wat wsdl (web services description language) is voor soap, is ws-cdl voor bpel4ws. Wsdl beschrijft de spelregels van individuele webservices, terwijl ws-cdl de spelregels beschrijft van de interactie tussen webservices.
Gaat deze standaard het redden? Het is eigenlijk nog te vroeg om er echt een uitspraak over te doen. Het is wel een nuttige standaard. Maar ja, of iets nuttig is, is geen garantie voor commerciële acceptatie. Ws-cdl komt ook niet uit de koker van IBM en Microsoft. En daar schuilt een gevaar. Net als dat het lastig is om een Java-gerelateerde standaard te introduceren buiten Sun om.
Tenslotte, dit is wel weer de zoveelste standaard, waarbij XML als toelichtende taal gebruikt wordt. Laten we eerlijk zijn, XML is geen taal voor mensen, het is een taal ontworpen om door applicaties gelezen te worden. Daarin is het goed. Verder is het een inhumane taal en hoort niet gebruikt te worden om concepten uit te leggen. Gebruik daarvoor een wat leesbaardere taal of gebruik informatiemodellen om concepten te definiëren. Het zal wel vakidioterie zijn dat schrijvers van standaarden dit maar blijven doen.< BR>
Rick F. van der Lans is onafhankelijk adviseur, een internationaal bekend spreker en auteur van diverse boeken, tevens gespecialiseerd in softwareontwikkeling, datawarehousing en internet.