In relatief korte tijd is de eXtensible Markup Language uitgegroeid tot de nieuwe haarlemmerolie van de IT-industrie, betogen twee consultants. Met behulp van de multi-tier client/server-architectuur geven zij een overzicht van de toepassingsmogelijkheden van deze standaard voor het uitwisselen van data. En aan de hand van een eenvoudig hulpmiddel, de XML-Stack, schetsen zij een realistisch beeld van waar XML zoal toe in staat is in diverse applicaties.
Een aantal duidelijk te onderscheiden trends in het bedrijfsleven laat zien dat de multi-tier client/server-architectuur zich de laatste jaren heeft ontwikkeld tot dé bouwstijl [1]. Globalisatie, internationale samenwerkingsverbanden, fusies en overnamen hebben ervoor gezorgd dat bedrijven zich voor de taak gesteld zagen hun automatiseringssystemen samen te voegen. Daarnaast heeft ook de veranderende maatschappij bijgedragen aan de noodzaak tot aanpassing van traditionele automatiseringssystemen. De 24-uurs economie heeft geen tijd meer voor ‘batch-windows’, producten hebben een snellere ’time-to-market’ nodig dan voorheen, en nieuwere en meer diverse distributiekanalen vereisen een andere vorm van ondersteuning dan een traditionele ’terminal-client’ kan bieden. Neem als voorbeeld de verkoop van verzekeringsproducten in het filiaal van een grootgrutter of via het Internet.
Klassieke monolithische applicaties (stovepipes) lenen zich doorgaans slecht voor specifieke functionele ontsluiting door de aard van hun architectuur, aangezien dataontsluiting, applicatiefunctionaliteit en presentatielogica niet gescheiden zijn. Het is juist deze scheiding die de multi-tier client/server-architectuur bepaalt.
Technologisch gezien verdeelt deze architectuur applicaties in ten minste een drietal fysieke lagen: client, applicatieserver en enterpriseserver.
Drie fysieke lagen
De client-laag bevat de presentatielogica van de applicatie. Deze presentatie is te realiseren middels een traditionele programmeertaal en kan worden getoond in een traditionele grafische user interface (gui), middels Internettechnologie in bijvoorbeeld een webbrowser, een netwerkcomputer, of middels WAP-technologie in een mobiele telefoon of een ‘personal digital assistant’. Aan de andere kant van het spectrum bevindt zich de enterprise-serverlaag, die enerzijds de gegevensverzameling van de applicatie beheert en anderzijds de bestaande (legacy) systemen. Ook systemen die als gevolg van fusies en dergelijke binnen het bereik van de IT-organisatie zijn gekomen, bevinden zich logisch gezien in deze laag. De applicatieserver-laag vormt de brug tussen de client-laag en de enterprise-serverlaag door het herbergen van de applicatielogica. Deze applicatielogica werkt zowel ontsluitend naar de enterprise-serverlaag als faciliterend aan de client-laag.
Business-to-Consumer middels XML. Een indicatie van de mogelijkheden van XML in combinatie met andere technologieën. Er zijn legio andere mogelijkheden te bedenken om genoemde functionaliteit aan te bieden. |
Door gebruik te maken van het bovenstaande architectuurmodel wordt invulling gegeven aan de eerdergenoemde trends in het bedrijfsleven. Zo wordt globalisatie afgedekt door de mogelijkheid om op wereldschaal zowel klanten (via diverse distributiekanalen) als samenwerkingsverbanden (supply chain integration), fusies en overnames te ontsluiten. Voor deze ontsluiting kan onder meer gebruik gemaakt worden van Internettechnologie. Bovendien zijn bestaande systemen opnieuw te gebruiken. Tenslotte is er een duidelijke ontkoppeling aangebracht tussen batch- en online-applicaties waarbij de batch-applicaties zich in de enterprise-serverlaag zullen bevinden. Hierdoor kan aan de voorkant (de client- en applicatieserver-laag) 7×24 uur ondersteuning geboden worden in de front-office, terwijl de back-office middels ‘batch-windows’ bepaalde zaken later afhandelt.
XML staat voor uitwisseling
De World Wide Web Consortium (W3c) heeft de eXtensible Markup Language (XML) ontwikkeld met als doel een standaard neer te zetten voor uitwisselbare data. Bij de ontwikkeling van XML zijn ontkoppeling en uitbreidbaarheid het uitgangspunt geweest.
XML is, net zoals bijvoorbeeld Html (HyperText Markup Language), een taal waarmee op gestructureerde wijze informatie vast is te leggen door middel van zogenaamde tags. De tags geven de semantiek (betekenis) weer van de woorden die tussen de tags staan. In dit voorbeeld is de informatie die tussen de tags
De rol van XML bij het invullen van communicatie in een multi-tier c/s-architectuur, valt uiteen in een drietal aspecten: business-to-consumer (B2C), business-to-business (B2B) en Enterprise Application Integration (EAI).
‘Stack’ van vier voorwaarden
Om een op XML gebaseerde oplossing te definiëren, dient een viertal voorwaarden standaard ingevuld te worden: transport, syntaxis, semantiek en presentatie. Samen vormen deze voorwaarden de XML-‘stack’.
Transport betreft de methode waarmee XML van zender naar ontvanger wordt verplaatst. Dit kunnen standaard transportprotocollen zijn als Http (het HyperText Transfer Protocol voor het verzenden en opvragen van Internetpagina’s) of FTP (het File Transfer Protocol voor het verzenden en opvragen van bestanden) zijn, maar evengoed een verzendmechanisme als e-mail of asynchrone middleware als IBM’s MQSeries of Microsofts MSMQ.
Syntaxis behelst de regelgeving rondom het juiste gebruik van tags. Enerzijds houdt dit in welke tags gebruikt mogen worden, anderzijds de wijze waarop ze gebruikt mogen worden. Hierbij valt bijvoorbeeld te denken aan regels over hoe tags genest mogen worden en dat elke ‘openings-tag’ (bijvoorbeeld de tag
In de laag semantiek bevindt zich informatie over de betekenis van tags. Aan welke entiteit in de werkelijkheid of in een automatiseringssysteem wordt gerefereerd met de tag
Presentatie, tenslotte, bevat informatie die de uiteindelijke weergave van de gegevens in het XML-bestand op een scherm of ander outputmedium bepaalt. Dit is de enige laag van de XML-stack die niet altijd ingevuld hoeft te worden, maar alleen dan als er voor een eindgebruiker iets moet worden getoond. Een voorbeeld van presentatie zijn de eXtensible Style Sheets (XSL) die worden gebruikt om aan te geven hoe informatie uit een XML-bestand in een webbrowser getoond moet worden. In de style-sheet staat informatie over lay-out, maar ook over welk deel van de data getoond dient te worden. Zo is van hetzelfde XML-bestand een veelvoud van uiteindelijke representaties op te bouwen, die inhoudelijk van elkaar verschillen.
De XML-stack dient als hulpmiddel om aan te geven hoe de verschillende deelgebieden kunnen worden ingevuld bij ieder van de drie toepassingen van XML in een multi-tier client/server-omgeving: B2B, B2C en EAI.
Business-to-Consumer
De toegevoegde waarde van XML in de communicatie (Business-to-Consumer) is gelegen in het feit dat bedrijven steeds meer kanalen tot hun beschikking willen hebben om hun klanten te bedienen. Daar waar automatisering deze kanalen ondersteunt, is het wenselijk zoveel mogelijk dezelfde businesslogica te hanteren, en per kanaal zo min mogelijk inspanning te verrichten om deze logica te ontsluiten. XML maakt deze architectuur mogelijk door als algemeen dataformaat tussen de generieke businesslogica en de specifieke kanaalapplicaties en apparaten te stromen.
Voor de B2C-kant van de multi-tier c/s-architectuur is een drietal technologieën van belang bij het invullen van de XML-stack. Het aspect transport wordt ingevuld met open technologieën als bijvoorbeeld Http of WAP, het aspect syntax middels XML en het aspect presentatie met XSL. Het Wireless Application Protocol is verantwoordelijk voor de communicatie met mobiele apparaten, zoals een mobiele telefoon of Palm PDA met een WAP-browser.
XSL is een ‘scripting’ taal waarmee de presentatie voor XML wordt gespecificeerd – inhoud en presentatie blijven gescheiden. Dit in tegenstelling tot bijvoorbeeld Html. Het toevoegen van XSL aan XML levert een toonbaar bestandsformaat op als Html, WML of VoxML (zie figuur).
Bovenstaande technologische invulling van de XML-stack stelt bijvoorbeeld een bankverzekeraar in staat om een aantal componenten te ontwikkelen waarmee klanten orders kunnen uitvoeren op de AEX en inzicht kunnen krijgen in de orderportefeuille. Als de bankverzekeraar deze componenten generiek realiseert middels een XML-interface kan de bank deze functionaliteit door middel van diverse technologieën aan de klanten aanbieden.
Zo heeft de bankverzekeraar de mogelijkheid om klanten inzicht in hun orderportefeuille te geven via een mobiele telefoon. Dit proces verloopt als volgt: de door de orderportefeuille-component aangeboden informatie in XML kan middels XSL omgevormd worden naar WML en is door middel van de WAP-server over het WAP-protocol te transporteren naar de mobiele telefoon.
Noodzaak van webbrowser
Daarnaast kan men bijvoorbeeld dezelfde functionaliteit aan klanten aanbieden via een webbrowser. Om inzicht te verlenen in een orderportefeuille heeft de bankverzekeraar een tweetal keuzes. Allereerst is er de mogelijkheid om de omzetting van XML naar Html aan de kant van de verzekeraar plaats te laten vinden. Daarnaast bestaat de mogelijkheid om de omzetting aan de kant van de klant te laten plaatsvinden middels XSL. Hiervoor moet de klant wel de beschikking hebben over een webbrowser die zowel XML als XSL ondersteunt. Het voordeel van omzetting aan de kant van de klant is dat de XML-data op diverse manieren getoond kan worden middels verschillende XSL-en. Denk bijvoorbeeld aan het in een tabel tonen van de complete orderportefeuille of aan het tonen van een grafiek met de dagwaarde bij sluiting van de AEX van de orderportefeuille over de afgelopen vier weken.
Tenslotte is bijvoorbeeld ook dezelfde functionaliteit via een traditionele telefoon aan te bieden, doordat de orderportefeuille omgevormd wordt naar VoxML Voice Markup Language). Middels VML is dan vervolgens met een computer omzetting naar spreektaal mogelijk via een traditionele telefoon.
Het gebruik van XML aan de business-to-consumer kant bevordert een drietal trends in het bedrijfsleven. Enerzijds kan, dankzij de openheid van XML in combinatie met Internettechnologie, iedereen overal en altijd (het ‘Martini-effect’: anyplace, anytime, anywhere, �) bediend worden (globalisatie). Daarnaast kan het bedrijfsleven via diverse distributiekanalen zijn producten aan de man brengen, zoals directe verkoop via bijvoorbeeld een webbrowser of mobiele telefoon via het Internet of indirecte verkoop via tussenhandel middels een traditionele cliënt. Verder is een kortere time-to-market te realiseren door een component met een XML-interface middels diverse technologieën aan te bieden of op diverse manieren te combineren tot nieuwe producten.
Koppeling tussen de lagen
Bij de invulling van de Enterprise Application Integration-kant van de multi-tier c/s-architectuur is een koppeling tussen systemen in de enterprise-serverlaag en in de applicatieserver-laag aan de orde. De enterprise-serverlaag kan uit uiteenlopende elementen zijn opgebouwd. Niet alleen de gegevensverzameling van de toepassing uit de applicatieserver-laag, maar ook de bestaande (legacy) systemen en de systemen die als gevolg van bijvoorbeeld samenwerkingsverbanden binnen het bereik van de IT-organisatie zijn gekomen, kunnen zich in deze laag bevinden. Er kan derhalve een diversiteit aan platformen, besturingssystemen, netwerkprotocollen en programmeertalen aanwezig zijn, die alle gekoppeld moeten worden.
Het op technisch niveau koppelen van applicaties, onafhankelijk van platformen, besturingssystemen, netwerkprotocollen en programmeertalen, is het gebied van de middleware. Maar naast deze technische aspecten is er het probleem dat applicaties elkaar dienen te begrijpen op syntactisch en semantisch niveau. Zo maakt de ene applicatie bijvoorbeeld onderscheid tussen een straatnaam en een huisnummer, terwijl een andere applicatie dit onderscheid niet maakt. Hier biedt XML uitkomst.
De oplossing van bovenstaande problematiek bij Enterprise Application Integration kan wederom het beste aan de hand van de XML-stack ingevuld worden.
Op de transportlaag biedt de inzet van standaard asynchrone middleware, zoals bijvoorbeeld MQSeries, BEA MessageQ of een combinatie van Microsoft MSMQ en Level 8 GenevaMQ, de oplossing om – onafhankelijk van platformen, besturingssystemen, netwerkprotocollen en programmeertalen – een integratie tot stand te brengen. Een bijkomend voordeel van het gebruik van asynchrone middleware is de ontkoppeling van de front-office (presentatie- en applicatieserver-laag) van de back-office (enterprise-serverlaag). Op deze wijze is het mogelijk om in de front-office 24-uur ondersteuning te leveren, terwijl de back-office deze ondersteuning (nog) niet kan leveren vanwege ‘batch-windows’.
Uitwisselbare data
Op de syntax- en semantieklaag is XML uitermate geschikt, juist doordat hiermee tussen de verschillende applicaties uitwisselbare data gerealiseerd wordt. Over de gebruikte tags moet echter wel een uniforme afspraak gemaakt worden; wordt het tag
Bovenstaande technologische invulling van de XML-stack aan de Enterprise Application Integration kant van de multi-tier c/s-architectuur, stelt bijvoorbeeld een telecombedrijf in staat om 24-uur per dag producten te verkopen via het Internet (de front-office), terwijl de feitelijke afhandeling van de aanvraag tijdens kantooruren afgehandeld wordt. Dit doordat het telecombedrijf zijn front-office, geïmplementeerd op basis van Internettechnologie, geïntegreerd heeft met zijn twee productgeoriënteerde systemen in de back-office. Het ene systeem, geïmplementeerd in een Unisys-omgeving, handelt productaanvragen af voor het mobiele netwerk, terwijl het andere systeem, geïmplementeerd in een Siemens-omgeving, de productaanvragen afhandelt voor het vaste netwerk.
Het gebruik van XML, aangevuld met asynchrone middleware aan de Enterprise Application Integration-kant, wakkert een aantal trends in het bedrijfsleven aan. Enerzijds zijn door de mogelijkheid de diverse systemen te integreren, zowel aan de front-office als back-office, de systemen afkomstig uit fusies en overnames beter in te zetten. Anderzijds zijn een 24-uurs economie in de front-office en zijn ‘batch-windows’ aan de back-office te ondersteunen.
Business-to-Business
De problematiek bij business-to-business is te vergelijken met die van Enterprise Application Integration: grote diversiteit aan platformen, besturingssystemen, netwerkprotocollen en programmeertalen, en het op syntactisch en semantisch niveau koppelen van systemen. De inzet van standaard middleware voldoet echter niet in een ‘business-to-business’ situatie, omdat het in de meeste gevallen niet mogelijk is om met de diverse samenwerkende partijen één middleware-standaard en één semantische standaard af te spreken.
De inzet van een zogenaamde Integration Broker (IB) biedt de oplossing voor deze problematiek, omdat het één van de functionaliteiten van een IB-transformatie betreft, dat wil zeggen transformatie op transport- en semantiekniveau (gerelateerd in de XML-stack).
Op transportniveau levert een IB in het algemeen een aantal adapters in diverse categorieën: pakket-, middleware- en netwerkprotocol-adapters. Pakketadapters leveren op hoog niveau een koppeling met diverse standaard pakketten, onder andere Siebel, SAP, Baan, Peoplesoft, via de over het algemeen proprietary-protocollen en interfaces (API’s). Middleware-adapters leveren eveneens op hoog niveau een koppeling aan diverse standaard middleware-implementatie, zoals MQSeries, Msmq, Tuxedo, Cics, Http, enzovoort. Tenslotte leveren netwerkprotocol-adapters op laag niveau koppelingen met bijvoorbeeld SNA, TCP/IP.
Op semantisch niveau biedt een IB een tweetal mogelijkheden om transformaties te definiëren. Dit kan enerzijds handmatig middels de definitie van transformatieregels en anderzijds automatisch door standaard implementaties van transformatieregels. Hierbij dient niet alleen gedacht te worden aan Bizztalk-to-Rosettanet transformaties, maar ook Siebel-to-SAP of Peoplesoft-to-Baan transformaties.
Op syntactisch niveau is XML uitermate geschikt, juist doordat hiermee uitwisselbare data gerealiseerd wordt die tussen de verschillende partijen uitgewisseld kan worden.
Bovenstaande technologische invulling van de XML-stack aan de B2B-kant van de multi-tier c/s-architectuur, stelt bijvoorbeeld een verzekeraar in staat om 24-uur per dag producten te verkopen via een grootgrutter (de front-office), terwijl de feitelijke afhandeling van de aanvraag afgehandeld wordt bij de verzekeraar. Dit doordat het verzekeringsbedrijf zijn systemen geïntegreerd heeft met het verzekeringsadviessysteem van de grootgrutter. Op basis van een offerte-aanvraag van de grootgrutter wordt een bericht verstuurd naar de verzekeraar. Deze IB bij de verzekeraar neemt de benodigde transformatie voor zijn rekening.
Het gebruik van XML aangevuld met een Integration Broker onderschrijft de trend van (internationale) samenwerkingsverbanden, de zogenaamde ‘business-to-business’ communicatie.
Bekijkt men aan de hand van de XML-stack de mogelijke toepassingsgebieden van XML, dan valt op dat het inzetten hiervan niet de problematiek van transport en semantiek – ofwel, het ontbreken van standaardisering van transport, en tags en hun betekenis – oplost. Op het gebied van semantiek worden er echter wel degelijk initiatieven ontplooid. Een eenvoudige zoektocht op het Internet brengt een veelvoud van XML-standaarden aan het licht, variërend van bekende als Rosettanet en Biztalk, tot zeer specifieke als FinXML.
Strikt genomen ontstaan er alleen dan problemen als een organisatie met externe systemen moet communiceren (B2B), of doordat er door aanschaf van standaardpakketten of door fusies en samenwerkingsverbanden andersoortige XML en transportmechanismen binnen de muren van de IT-afdeling terechtkomen. Het inzetten van een Integration Broker kan dit probleem relatief eenvoudig oplossen.
P.J. Koning en B.A. Groenewoud,
technology consultants bij Cap Gemini
Literatuur
1) Drs. P.J. Koning en Ir. F. Groen, Het hoe, wat en waarom van applicatieservers – keuze tussen eigentijdse modellen van Microsoft en NOIS-alliantie, november 1999, Software Release Magazine.