Omdat ik ben opgegroeid met elektronica en communicatie, komt de term ‘asynchroon systeem’ mij nog steeds vreemd voor. Toch wordt de term vaak gebruikt. Asynchrone systemen worden ook wel verbindingsloze systemen genoemd. Ze zijn het tegenovergestelde van synchrone systemen, waarbij twee partijen gesynchroniseerd een sessie opzetten die in stand blijft tot hij expliciet wordt verbroken. De synchrone benadering is kenmerkend voor het client/server-model voor interactieve applicaties; ‘customer-to-business’ (C2B) in e-commerce jargon.
Asynchrone systemen daarentegen kunnen hun berichten op elk willekeurig moment sturen, of de communicatiepartner nu actief is of niet. Dit betekent dat er een ‘store-and-forward’ techniek moet worden gebruikt om de mogelijke tijdverschillen te compenseren. Het eenvoudigste asynchrone systeem is e-mail, waarbij de e-mailservers de store-and-forward functie vervullen. Zo’n systeem richt zich alleen op het ‘wie’ en niet op het ‘wat’. Met andere woorden: de envelop wordt bezorgd, zonder aan de inhoud te refereren. In tegenstelling tot deze aanpak zijn andere belangrijke asynchrone systemen, zoals ‘electronic document interchange’, zich zeer wel bewust van de inhoud van berichten die worden gesorteerd en verwerkt voordat zij worden doorgestuurd. Met de opkomst van het elektronisch zakendoen zullen aan EDI verwante asynchrone systemen aan de synchrone C2B-diensten worden toegevoegd; deze systemen staan bekend als ‘business-to-business’ (B2B) e-commerce. De voorspelling is dat B2B op den duur zal uitgroeien tot de elektronische handelstoepassing met het grootste volume. We zullen zien! Er zijn weliswaar oppervlakkige overeenkomsten tussen e-mail en B2B e-commerce, maar de verschillen zijn groter. B2B is bedoeld voor zakelijke transacties en moet daarom robuuster zijn dan e-mail (gegarandeerde eenmalige bezorging). Daarnaast moet een B2B-systeem de inhoud van het bericht kunnen begrijpen.
Bij EDI, de meest succesvolle toepassing van asynchrone concepten ooit, waren berichten in een strikt formaat gecodeerd. Dit leidde uiteindelijk tot uitbreidingsproblemen. Men ziet nu gelukkig in dat het versturen van metagegevens (gegevens over gegevens) in de nieuwe B2B-systemen moet worden ingebouwd – een concept dat overigens niet beperkt is tot asynchrone systemen. Nog beter: bij de metagegevens is ook een standaardtaal geïntroduceerd (XML) in de vorm van applicatiespecifieke schema’s. Dit is een groot voordeel ten opzichte van oudere EDI-systemen, die nooit metagegevens hebben gebruikt.
Asynchrone systemen worden ook voor interactieve applicaties gebruikt, met name voor systemen waarbij sterk de nadruk op de betrouwbaarheid van transacties ligt. Zo’n asynchroon interactief systeem bestaat in feite uit twee asynchrone systemen die ruggelings (back-to-back) aan elkaar gekoppeld zijn. De software aan elk uiteinde is multitasking. Eén proces verstuurt een aanvraag en een ander proces verwerkt onafhankelijk daarvan het antwoord.
In contrast hiermee zet een synchroon systeem eerst een verbinding op, waarna het een verzoek verstuurt en er wordt gewacht tot het antwoord via hetzelfde kanaal wordt verstuurd. Daarbij gebruikt men vaak een vorm van remote procedure call (RPC), zoals Cics Client, SQL*Net, Dcom of Odbc.
Het asynchrone ‘back-to-back’ concept wordt op grote schaal gebruikt voor financiële applicaties, met name in geldautomaten. Het concept is van groot belang voor een optimale benutting van fouttolerante servers. In het begin gebruikte men bijna uitsluitend SNA voor robuuste transactie-georiënteerde communicatie. Dat was omdat SNA zowel synchrone als asynchrone concepten ondersteunde, maar ook om redenen als foutherstel, beveiliging en performance. Tegenwoordig is de meeste communicatie gebaseerd op het IP-protocol, met interfaces op een hoger niveau, zoals TCP voor synchrone en UDP voor asynchrone applicaties. Op een nog hoger niveau zijn protocollen als Http, Iiop, RMI en dergelijke geïmplementeerd. Er zijn weliswaar standaarden voor synchrone koppeling, zoals RPC in DCE, maar in de praktijk wordt er een groot aantal leveranciersspecifieke standaarden gebruikt boven op de TCP, UDP en IP.
Asynchrone diensten in IP-netwerken worden vanzelfsprekend ook boven op TCP/UDP geïmplementeerd. IP is weliswaar niet zo robuust en veilig als SNA, maar is op grote schaal beschikbaar.
En zo is er een groot aantal leveranciersspecifieke pakketten, veelal afkomstig van financiële toepassingen, die TCP/IP-netwerken ondersteunen. Tussen de primitieve TCP/UDP-diensten en specifieke EDI- of B2B-applicaties komen er ook steeds meer ‘open’ middleware-producten, die zijn gericht op de applicatie-ontwikkelaar. Deze zijn gebaseerd op twee kernsystemen voor het uitwisselen van transactieberichten, namelijk Microsofts Msmq (alleen voor NT) en IBM’s MQSeries (voor elk systeem). Msmq is een van de hoekstenen van Microsofts B2B BizTalk-initiatief. Daarnaast worden veel gevestigde softwareproducten voor financiële transacties en EDI ook naar MQSeries gemigreerd.
Msmq en MQSeries zijn belangrijke kerntechnologieën en moeten worden beschouwd als basisdiensten voor alle asynchrone transactiesystemen.
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal IT-bedrijven en professor aan de Universiteit van Wales.