Internet biedt bedrijven de mogelijkheid om transacties of zelfs volledige bedrijfsprocessen elektronisch uit te voeren. Het grote voordeel hiervan is de snelheid. XML (eXtensible Markup Language) wordt gebruikt als alfabet voor de berichten die uitgewisseld worden bij een transactie, zoals een offerteaanvraag of een inkooporder. Om met elkaar te kunnen communiceren zijn ook woorden en een grammatica nodig. Deze worden gespecificeerd door een XML-vocabulaire, een set van dtd’s (‘document type definition’) en schema’s.Consultant Thijs Rademakers beschrijft de architectuur van XML-vocabulaires, en de huidige stand van zaken.
Enkele bekende XML-vocabulaires zijn Biz Talk van Microsoft, ebXML van Oasis en UN/Cefact, Rosetta Net, een consortium van een groot aantal IT- en elektronicabedrijven , xCBL van Commerce One en cXML van Ariba. Xlbc (eXtensible Language for Business Communication) is ontwikkeld aan de Katholieke Universiteit Brabant door onder andere Weigand en Hasselbring [1]. Het is een XML-vocabulaire die gebruikt wordt in het kader van het Memo-project (Mediating and Monitoring electronic commerce).
Om de verschillen in opzet en potentie te kunnen aangeven, valt gebruik te maken van een drielagenstructuur.
De eerste laag is de semantische laag. Dit is een abstractielaag van de datalaag, waarin de verzameling van XML-documenten in de data laag wordt beschreven op een conceptueel niveau. Een semantische laag die gebruikt wordt in het kader van het Memo-project bestaat uit een onderverdeling in vijf niveaus, ‘speech-act’, ’transaction’, ‘workflow loop’, ‘contract’ en ‘scenario’.
Een scenario is het hoogste niveau en bestaat uit één of meerdere ‘contracts’. Een contract bestaat op zijn beurt weer uit een of meerdere ‘workflow loops’, enzovoort. Het ‘speech-act’-niveau is het laagste niveau.
De tweede laag is de datalaag en bestaat uit een verzameling van XML-documenten, die zijn opgebouwd uit XML-berichten en de betreffende dtd’s en schema’s.
De derde laag is de transportlaag, die de mogelijkheid ondersteunt om XML-berichten uit te wisselen tussen bedrijven. Naast het onderscheid in deze drie lagen is tevens een verschil gemaakt in opzet van de XML-vocabulaire. Het betreft de verdeling in een raamwerkniveau en een applicatieniveau. Hiermee wordt aangegeven of de intentie van een XML-vocabulaire ligt bij het presenteren van een theoretisch raamwerk of bij het ontwikkelen van applicaties.
Alleen Biz Talk richt zich voornamelijk op het ontwikkelen van software. De Biz Talk Server 2000 [2] is het eerste product dat Microsoft heeft ontwikkeld om de XML-vocabulaire Biz Talk te kunnen gebruiken.
Rosetta Net is bedoeld om een raamwerk te bieden voor elektronische handel op basis van zogenaamde pip’s (‘partner interface process’). Rosetta Net gaat zich echter steeds meer bezig houden met het ontwikkelen van software om het Rosetta Net-raamwerk te kunnen gebruiken. ebXML heeft in mei 2001 een compleet raamwerk gepresenteerd, waarmee elektronische handel op basis van het uitwisselen van XML-berichten mogelijk is. De intentie van ebXML begint daarom te verschuiven richting het ontwikkelen van applicaties. cXML en xCBL zijn twee kleinere initiatieven om een XML-vocabulaire te ontwikkelen. cXML richt zich vooral op het ondersteunen van koopgemeenschappen door middel van een datalaag en een transportlaag. xCBL levert een groot aantal berichten ter ondersteuning van de datalaag. De laatste vocabulaire, Xlbc, richt zich met name op de semantische laag. Op basis van een uitgebreide semantische laag kunnen XML-berichten gebouwd worden.
De genoemde XML-vocabulaires zijn de fase van het presenteren van een raamwerk voorbij en gaan zich nu richten op het ontwikkelen van sofware om het raamwerk daadwerkelijk te kunnen gebruiken.
Hieronder wordt aangegeven welke componenten nodig zijn om XML-berichten uit te kunnen wisselen met andere organisaties.
Edi-architectuur
In een edi-omgeving (‘electronic data interchange’) wordt eveneens gebruik gemaakt van een vocabulaire. Enkele bekende voorbeelden hiervan zijn Ansi of ediFact. Omdat een aantal processen overeenkomt met het verwerken van XML-berichten en het verwerken van edi-berichten, is het leerzaam te kijken welke componenten gebruikt worden in een edi-omgeving. Hierbij is gebruik gemaakt van een universele edi software-architectuur [1].
De edi-architectuur bestaat uit vijf componenten: de applicatie, de transactiebewaking, de conversie, het map (‘management application process’) ofwel het besturingsproces, en de mib (‘management information base’) ofwel de beheerinformatie. De applicatie ondersteunt de interne processen van een actor, waarbij een onderscheid gemaakt kan worden tussen de generieke besturingsapplicatie en het beslissingsondersteunend proces. De transactiebewaking controleert de juiste volgorde van de berichten en zorgt voor heruitzending van berichten bij het uitblijven van antwoordberichten. De conversie zorgt voor de vertaling tussen de interne weergave van de informatie en de overdrachtssyntaxis. Het map is een proces dat verantwoordelijk is voor zaken als het configuratiebeheer en het meten van de voortgang van de activiteiten. De mib is een databank met alle gegevens over de instelling van de andere functies.
XML-architectuur
Op basis van de beschreven edi-architectuur kan een software-architectuur voor XML worden gepresenteerd. Hierbij wordt tevens gebruik gemaakt van een elektronisch fragment van het boek Professional Biz Talk [2]. Er wordt een vijftal componenten genoemd waaruit de universele edi-software-architectuur bestaat. Allereerst wordt gekeken of deze componenten ook in een XML-omgeving toepasbaar zijn, vervolgens worden nog enkele componenten aan de architectuur toegevoegd.
De applicatiecomponent wordt niet in de XML-architectuur opgenomen omdat de functionaliteit die door de applicatie geboden wordt, niet binnen maar buiten de XML-architectuur geplaatst dient te worden. De applicatiecomponent is eerder een tussenlaag voor de XML-architectuur en de achterliggende systemen.
De transactiebewakingcomponent draagt zorg voor de juiste afhandeling van een transactie. Deze functionaliteit wordt in de XML-architectuur geboden door de ‘auditing tool’. Met behulp van deze component kunnen uitgaande en binnenkomende berichten geregistreerd en gecontroleerd worden op vooraf gedefinieerde regels. Zo kan bij bedragen die groter zijn dan 10.000 euro, toestemming nodig zijn van een persoon uit een bepaalde functiegroep.
De conversiecomponent wordt in de XML-architectuur de ‘mapper’ genoemd. De ‘mapper’ biedt de mogelijkheid om berichten te vertalen in een andere syntaxis. Om berichten te kunnen vertalen in een andere syntaxis moeten mappings worden gemaakt van de ene syntaxis naar de andere. ‘Mappings’ tussen standaarden kunnen reeds aanwezig zijn in de ‘mapper’. Om automatische uitwisseling van berichten mogelijk te maken wordt de ‘mapping processor’ als component toegevoegd. Deze maakt het mogelijk om berichten automatisch te ‘mappen’ naar een andere syntax. Vereiste is wel dat de ‘mapping’ aanwezig is in de repository. In de edi-architectuur worden de berichten door de conversiecomponent tevens gereed gemaakt voor transport (toevoegen van headers, enzovoort). Dit vindt in de XML-architectuur plaats in de transport-servercomponent.
Transportserver
De mib-component (‘mangement information base’) wordt in de XML-architectuur ingevuld door de database. Deze component registreert alle uitgaande en binnenkomende berichten en slaat alle gegevens op die gebruikt worden in de andere componenten van de XML-architectuur.
Het map (‘management application process’) wordt in de XML-architectuur ‘configuration manager’ genoemd. De ‘configuration manager’ draagt zorg voor de beheerfunctie van de in de database aanwezige gegevens.
In een XML-architectuur is het transporteren van berichten en de daartoe behorende functionaliteiten van essentieel belang, daarom wordt een transportserver toegevoegd aan de architectuur. Deze transportserver draagt zorg voor een betrouwbare doorstroming en aflevering van de berichten, onafhankelijk van het gebruikte transportprotocol (zoals http, smtp en ftp). De transportcomponent maakt de berichten ook gereed voor transport.
Een andere belangrijke functionaliteit van de transportserver is het beveiligen van de berichten met behulp van ssl of andere beveiligingsprotocollen.
In vergelijking met edi is XML veel flexibeler. Om deze flexibiliteit te kunnen gebruiken voor het bouwen van berichten wordt er een component aan de XML-architectuur toegevoegd, de editor. Met behulp van een editor kunnen berichten worden aangepast en zijn eenvoudig nieuwe berichten te bouwen.
Een andere component die wordt toegevoegd aan de XML-architectuur, is de repository. De repository is een opslagplaats voor XML-documenten en kan intern worden beheerd, maar ook extern op internet door een andere partij. In een repository kan, naast voorbeelden van berichten, ook informatie over participanten te vinden zijn, zoals bij het ebXML-initiatief het geval is. In deze XML-architectuur is een repository een opslagplaats van berichten en ‘mappings’, intern dan wel extern opgeslagen.
Om de berichtenstroom te kunnen beheren wordt de ‘message manager’ toegevoegd aan de XML-architectuur. Met behulp van deze component is onder andere de syntaxis van berichten voor een bepaalde organisatie te specificeren. Dit houdt in dat organisatie A berichten ontvangt in xCBL en organisatie B berichten ontvangt in ebXML. Tevens is aan te geven wat de bestemming is van de binnenkomende berichten.
De laatste toevoeging aan de XML-architectuur is de ‘orchestration designer’. Via deze component is het mogelijk om bedrijfsprocessen te modelleren. Met behulp van de modellen die met de ‘orchestration designer’ gemaakt zijn, kunnen transacties zonder tussenkomst van menselijk ingrijpen afgehandeld worden. De ‘orchestration designer’ maakt het dus mogelijk om een koppeling te maken tussen de XML-architectuur enerzijds en de achterliggende systemen anderzijds. Hierbij moet wel opgemerkt worden dat er adapters aanwezig moeten zijn om de achterliggende systemen daadwerkelijk te koppelen aan de XML-architectuur.
Belang semantische laag
Aan het begin van dit artikel is een structuur gepresenteerd die bestaat uit drie lagen, de transportlaag, de datalaag en de semantische laag. Het belang van de transportlaag en de datalaag, wordt algemeen onderkend.
Het belang van een semantische laag voor het ontwikkelen van een structuur voor elektronisch handel, zowel op raamwerk- als op applicatieniveau, is in de literatuur nog niet voldoende aan de orde gekomen.
Een semantische laag is, zoals al eerder beschreven, een abstractielaag van
de datalaag, waarin de verzameling van XML-documenten in de datalaag wordt
beschreven op een conceptueel niveau. De semantische laag van Weigand en Van den
Heuvel [4] is daarbij gegeven als voorbeeld van een semantische laag. Er zijn drie
voordelen te onderkennen voor het gebruik van een semantische laag: ontwikkelingsondersteuning, dataonafhankelijkheid en automatische verwerking.
Omdat bedrijfsprocessen verschillen van bedrijfstak tot bedrijfstak en zelfs van bedrijf tot bedrijf in dezelfde bedrijfstak moeten nieuwe bedrijfsprocessen gemaakt kunnen worden. Om een bedrijfsproces te kunnen uitvoeren met behulp van uitwisseling van XML-berichten moeten berichten gebouwd worden. Een bedrijfsproces kan uit een aantal transacties bestaan; een transactie bestaat weer uit een aantal berichten. Wanneer een bedrijfsproces gebouwd moet worden in XML, moet dus een groot aantal berichten gebouwd worden. Bij het product Web Methods for Rosetta Net worden functionaliteiten geboden die het bouwen van een bedrijfsproces vereenvoudigen. Deze functionaliteiten kunnen geboden worden omdat Rosetta Net over een semantische laag beschikt. Omdat een pip volgens een bepaalde dtd of schema is opgebouwd, kan een gebruikersvriendelijke wizard geïmplementeerd worden die deze dtd of dit schema abstraheert voor de gebruiker zonder verlies van flexibiliteit. Zonder semantische laag is het niet mogelijk om een ontwikkel-tool of wizard te bieden aan de gebruiker, omdat er geen dtd of schema is waarop deze software gebouwd kan worden.
Een tweede voordeel van een semantische laag is dataonafhankelijkheid. De eerder beschreven XML-vocabulaires zijn zes van de vele initiatieven die op dit gebied ontplooid worden. Het kunnen ‘mappen’ van een bepaald formaat naar een ander formaat is daarom van groot belang voor het uitwisselen van XML-berichten tussen bedrijven. Wanneer een vocabulaire slechts een ondersteuning biedt voor de transportlaag en de datalaag, ontstaat een situatie waarin een XML-bericht van een intern formaat keer op keer gemapt moet worden naar een extern formaat van een zakenpartner. Dit wil tevens zeggen dat wanneer er een nieuw systeem gebruikt gaat worden – wat in de dynamische wereld van internet geen uitzondering is – alle externe formaten XML-berichten opnieuw gemapt moeten worden. Wanneer een bedrijf wel de beschikking heeft over een semantische laag, kan deze gebruikt worden als abstractielaag tussen verschillende interne formaten van systemen en verschillende externe formaten van zakenpartners.
Het grote voordeel van de semantische laag is dat wanneer een nieuw systeem in gebruik genomen wordt, alleen een ‘mapping’ naar de semantische laag gemaakt hoeft te worden. De ‘mappings’ van de semantische laag naar de verschillende externe formaten blijven daarbij ongewijzigd. Wanneer met een nieuwe zakenpartner elektronisch handel wordt gedreven, moet alleen een ‘mapping’ gemaakt worden van het gebruikte formaat van deze zakenpartner naar de semantische laag. De ‘mappings’ tussen de semantische laag en de interne systemen blijven daarbij ongewijzigd.
Een derde en laatste voordeel dat een semantische laag kan bieden, is automatische verwerking. Dit houdt in dat de XML-architectuur automatisch de berichtenuitwisseling afwerkt, dus zonder tussenkomst van personen. Om dit mogelijk te maken, moet de XML-architectuur onder andere beschikken over de informatie tot welke transactie en tot welk bedrijfsproces een binnenkomend bericht behoort. Bovendien moet de XML-architectuur weten welk bericht, volgens de transactie of het bedrijfsproces, volgt op het zojuist binnengekomen bericht. Zonder semantische laag kan een component uit de XML-architectuur niet achterhalen in welke grotere context een bericht thuishoort. Mét een semantische laag is wel te onderkennen dat bericht A deel uitmaakt van transactie B die weer een onderdeel vormt van bedrijfsproces C.
Aansluiting zoeken
Het aantal initiatieven op het gebied van XML-vocabulaires is groot. Een universele standaard op het gebied van het uitwisselen van XML-berichten is daarom een utopie. Softwarepakketten zoals Biz Talk en Web Methods for Rosetta Net richten zich met name op de ‘grote’ initiatieven, ebXML, Biz Talk en Rosetta Net. De benodigde kennis om een volledig werkend softwarepakket te ontwikkelen voor een vocabulaire, is niet aanwezig bij de kleinere initiatieven. Die zoeken daarom aansluiting bij een breed ondersteunde vocabulaire zoals bijvoorbeeld Biz Talk, door hun vocabulaires zodanig aan te passen dat deze voldoet aan de gestelde eisen van de betreffende vocabulaire.
Softwarepakketten die het mogelijk moeten maken om deze vocabulaires daadwerkelijk te gaan gebruiken zijn echter nog beperkt in aantal. Enkele voorbeelden van reeds te verkrijgen softwarepakketten zijn de Biz Talk Server 2000 (Biz Talk), Web Methods for Rosetta Net (Rosetta Net) en Component-X (ebXML). Op dit moment gebruiken bedrijven deze pakketten echter nog voornamelijk voor standaard transacties, of bevindt de ontwikkeling zich nog in de testfase. Bovendien vindt de ontwikkeling van XML-vocabulaires in het bedrijfsleven vooral plaats bij multinationals en andere grote bedrijven. De implementatie wordt namelijk veelal door grote adviesbureaus gedaan, omdat de kennis daar wel aanwezig is. De kleinere bedrijven wachten af totdat meer gegevens bekend zijn en er eenvoudigere pakketten op de markt verschijnen.
De kosten voor standaard transacties zijn met behulp van XML-vocabulaires in grote mate te reduceren, en ook de afhandelingstijd kan sterk afnemen. Dit biedt het mkb mogelijkheden om de afhandeling van transacties efficiënter te maken. Het probleem ligt op dit moment nog vooral bij het bereiken van overeenstemming over de hoedanigheid van de te gebruiken XML-vocabulaire. Belangenorganisaties en overkoepelende organen van de betreffende industrie kunnen hierbij een rol spelen. Een advies van mijn kant is om aansluiting te zoeken bij een groter initiatief zoals Biz Talk, ebXML of Rosetta Net. Zo is het probleem van beschikbare software voor een groot gedeelte opgelost.
Een ander belang van de semantische laag schuilt in het feit dat deze is te zien als een extra stimulans om gebruik te maken van de ‘grotere’ initiatieven, omdat de laag vooral door deze initiatieven ondersteund wordt (ebXML en Rosetta Net beschikken over een semantische laag; Biz Talk niet, dat gaat gebruik maken van Rosetta Net).
De acceptatie van XML-vocabulaires door het bedrijfsleven moet dus nog op gang komen.
Thijs Rademakers Consultant Pricewaterhouse Coopers
Literatuur
[1] Hofman, W.J.: De implementatie van edi deel 2: standaardsyntaxis en softwarearchitectuur. Elektronica vol 41, nr. 7/8, pag 43-49 (1993)
[2] Mohr, Stephen F.: Biz Talk and Application Integration, an excerpt from the Wrox Press book: Professional Biz Talk. http://www.vbxml.com/b2b/articles/prof_Biz Talk/default.asp (2001).
[3] Weigand, Hans en Hasselbring, Wilhelm: An extensible language for business communication. In O. Etzion and P.Scheuermann, editors, 7th International Conference on Cooperative Information Systems (CoopIS 2000), volume 1901 of Lecture Notes in Computer Science, pag. 198 – 209. Springer-Verlag, Berlin (2000)
[4] Weigand, Hans en Heuvel, Willem-Jan van den: Meta-patterns for Electronic Commerce Transactions based on Flbc. Hawaii Int Conf on System Sciences (HICSS’98), Ieee Press (1998).
Websites
Biz Talk
http://www.BizTalk.org
Biz Talk Server 2000
http://www.microsoft.com/BizTalk
ebXML
http://www.ebxml.org
Rosetta Net
http://www.rosettanet.org
xCBL
http://www.xcbl.org
cXML
http://www.cxml.org
Flbc/Xlbc
http://opim.wharton.upenn.edu/~sok/flbc/
Memo-project
http://www.abnamro.com/memo
Web Methods
http://www.webmethods.com
Uddi
http://www.uddi.org
Component-X
http://www.enterprise-component.com