De standaarden van de OverheidsServicebus zijn gebaseerd op het Internationaal breed geaccepteerde WS-I Basic Profile 1.1, en daarmee op SOAP 1.1 en WSDL 1.1, samen met WS-Addressing (het WUS Best Effort profile). Althans, dat geldt voor Services van het type Raadplegingen. Voor Services van het type Meldingen werd het WUS profiel niet ‘Betrouwbaar’ genoeg geacht. De OverheidsServicebus beveelt voor Meldingen het gebruik van ebMS aan (het ebMS Reliable profiel). Maar wat is er dan zo ‘Betrouwbaar’ aan ebMS?
De ‘Betrouwbaarheid’ van het ebMS Reliable Profiel zit hem in de opties @ackRequested, DuplicateElimination, Retries en RetryInterval. Deze opties kunnen ingevuld worden in de CPA, het contract tussen de betrokken Partijen. Implementaties van ebMS zullen deze waardes moeten begrijpen. De zendende partij zal het Bericht opnieuw verzenden zolang hij niet de bijbehorende Acknowledgement heeft ontvangen. De waarden van Retries en RetryInterval bepalen hoe vaak en hoe snel. De ontvangende Partij zal dubbel ontvangen Berichten (te herkennen aan het MessageID) slechts éénmaal verwerken, maar wel steeds een Acknowledgement terugsturen.
De Open Source implementatie Hermes / H2O van ebMS kan trouwens niet met CPA’s overweg. Kun je in H2O dan ergens anders die Reliability eigenschappen configureren???
In een WSDL bestaat er binnen het WUS profiel niet de mogelijk om dergelijke waarden te configureren. Wel heeft ieder OSB WUS compliant bericht een MessageID vanwege WS-Addressing. In de WSDL van een webservice kun je specificeren dat er voor ieder Bericht een Acknowledgement terug gestuurd dient te worden. Je kunt de OSB WUS compliant Implementatie van de Verzendende partij zo inrichten dat ie Herhaalpogingen doet. En je kunt zorgen dat het aantal Herhaalpogingen en de frequentie ervan configureerbaar is. Bij de andere partij kan de Implementatie zo ingericht worden dat eventuele dubbel ontvangen Berichten (te herkennen aan het MessageID) er uitgefilterd worden. Dat kan allemaal binnen het OSB WUS profiel. Daar hoeven helemaal niet zelfbedachte SOAP Headers voor meegeleverd te worden. Dus ook het OSB WUS Profiel kan best op een Reliable manier gebruikt worden.
Alleen zijn er extra ontwikkel-inspanningen nodig om de WUS implementaties zo in te richten. Bijvoorbeeld Axis2 kan niet zomaar uit zichzelf herverzenden en ontdubbelen. Van andere SOAP toolkits weet ik dat niet, maar het is het wel waard het te onderzoeken, voor bijvoorbeeld Sun’s Metro, Apache CXF, Microsoft .Net. Deze extra ontwikkel-inspanningen zijn echter nog wel te overzien. En binnen de OverheidsServicebus community zouden Reliable oplossingen op basis van genoemde SOAP Toolkits natuurlijk met elkaar gedeeld kunnen worden.
Als de OverheidsServicebus handreikingen a la bovengestelde zou gaan ondersteunen, dan zou er naast het ebMS Reliable profiel een net zo Reliable WUS profiel neergezet kunnen worden. Daarmee wordt voorkomen dat WUS partijen die met WUS partijen Melding-achtige Berichten gaan uitwisselen zich door de OverheidsServicebus in de kou gezet voelen. En aangezien het overgrote deel van de partijen gebruik maakt van WUS voor de inrichting van hun Service-georienteerde Architectuur, heeft de OverheidsServicebus daar een belangrijke taak.
In de WS-* standaarden wereld is er wel ook nog de WS-ReliableMessaging 1.1 Recommendation. Die is inmiddels ook breed geaccepteerd en in allerlei toolkits, waaronder bovengenoemde, geïmplementeerd. WS-ReliableMessaging gaat verder en is zelfs nog ‘Betrouwbaarder’ dan het Reliable ebMS profiel. WS-ReliableMessaging gebruikt namelijk speciale Reliability berichten zoals een Aankondiging dat er iets aan gaat komen, Bevestigingen dat er Berichten ontvangen zijn, en een Afsluiting ten teken dat het allemaal klaar is. En dat allemaal om de te versturen Melding-berichten heen.
Bij gebruik van deze vorm van Reliability is de ontwikkel-inspanning weer gering, net zo als bij het gewone WUS Best Effort profiel, omdat de Toolkits er faciliteiten voor hebben. Mate van Standaardisatie en Acceptatie is Hoog, en mate van Betrouwbaarheid is ook Hoog, hoger dan die van ebMS. Het ligt voor de hand dat de OverheidsServicebus ook deze vorm van Reliable Berichtenverkeer gaat ondersteunen.
Samengevat: de Betrouwbaarheid van de verschillende profielen tegen elkaar afgezet:


