07.02.2015 Views

Architecturen voor de Integratie van Legacy Systemen

Architecturen voor de Integratie van Legacy Systemen

Architecturen voor de Integratie van Legacy Systemen

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Architecturen</strong> <strong>voor</strong> <strong>de</strong> <strong>Integratie</strong> <strong>van</strong> <strong>Legacy</strong> <strong>Systemen</strong><br />

Martijn Kooreman<br />

Universiteit Twente, Ne<strong>de</strong>rland<br />

m.kooreman@stu<strong>de</strong>nt.utwente.nl<br />

ABSTRACT<br />

In dit paper wor<strong>de</strong>n verschillen<strong>de</strong> mogelijke architecturen<br />

vergeleken welke door een organisatie gebruikt kunnen wor<strong>de</strong>n<br />

als leidraad <strong>voor</strong> <strong>de</strong> integratie <strong>van</strong> hun legacy systemen. <strong>Legacy</strong><br />

systemen komen he<strong>de</strong>ndaags nog erg veel <strong>voor</strong> aangezien er<br />

niet al te lang gele<strong>de</strong>n grote investeringen in <strong>de</strong>ze systemen zijn<br />

gedaan. Gelei<strong>de</strong>lijk zullen <strong>de</strong>ze legacy systemen wel ver<strong>van</strong>gen<br />

wor<strong>de</strong>n, maar op dit moment wegen <strong>de</strong> kosten <strong>van</strong> het<br />

ver<strong>van</strong>gen nog niet op tegen <strong>de</strong> kosten <strong>van</strong> het integreren <strong>van</strong><br />

<strong>de</strong>ze systemen. Afhankelijk <strong>van</strong> <strong>de</strong> situatie <strong>van</strong> <strong>de</strong> organisatie is<br />

mogelijk om aan <strong>de</strong> hand <strong>van</strong> verschillen<strong>de</strong> variabelen af te<br />

lei<strong>de</strong>n welke architectuur het beste past bij <strong>de</strong> organisatie.<br />

Keywords<br />

<strong>Legacy</strong>, integration, architecture, middleware, wrapper, web<br />

service, enterprise application integration, composite web<br />

service.<br />

1. INTRODUCTIE<br />

Er bestaan een groot aantal systemen, welke niet direct te<br />

integreren zijn met an<strong>de</strong>re systemen. Deze legacy systemen zijn<br />

veelal business-critical <strong>voor</strong> <strong>de</strong> organisatie en te duur en te<br />

moeilijk om te ver<strong>van</strong>gen [Ber96, Cal99]. Het gaat hier dan ook<br />

vaak om erg specifieke systemen welke het primaire<br />

bedrijfsproces <strong>van</strong> <strong>de</strong> organisatie on<strong>de</strong>rsteunen. De kosten om<br />

een <strong>de</strong>rgelijk systeem te ver<strong>van</strong>gen wor<strong>de</strong>n vaak hoger geschat<br />

dan <strong>de</strong> kosten om <strong>de</strong>ze via an<strong>de</strong>re manieren beschikbaar te<br />

maken <strong>voor</strong> an<strong>de</strong>re systemen en het web [Mec01].<br />

Op het gebied <strong>van</strong> legacy systeem integratie is verschrikkelijk<br />

veel literatuur beschikbaar [Alo04, Chi01, Bor97, Ser02,<br />

Zou00, Mec01]. In <strong>de</strong>ze literatuur wor<strong>de</strong>n veel verschillen<strong>de</strong><br />

architecturen beschreven en met elkaar vergeleken. Een goed<br />

overzicht <strong>van</strong> <strong>de</strong> functionaliteiten <strong>van</strong> veel <strong>voor</strong>komen<strong>de</strong><br />

architecturen is daarentegen niet te vin<strong>de</strong>n.<br />

In dit paper zal er gekeken wor<strong>de</strong>n naar vijf verschillen<strong>de</strong><br />

architecturen op basis <strong>van</strong> literatuur. Deze architecturen zijn<br />

gekozen op basis <strong>van</strong> hun rele<strong>van</strong>tie, hun bekendheid en<br />

verschil in scope welke ze on<strong>de</strong>rsteunen. Er is <strong>voor</strong> <strong>de</strong>ze<br />

architecturen gekozen om <strong>de</strong> verschillen<strong>de</strong> mogelijkhe<strong>de</strong>n die<br />

ze bie<strong>de</strong>n in combinatie met <strong>de</strong> hoeveelheid literatuur welke<br />

beschikbaar is. Er wordt <strong>van</strong>uit gegaan dat <strong>de</strong> meest<br />

<strong>voor</strong>komen<strong>de</strong> architecturen in <strong>de</strong> literatuur rele<strong>van</strong>te<br />

architecturen zijn in <strong>de</strong>ze situatie. Daarbij hebben <strong>de</strong> gekozen<br />

architecturen een oplopen<strong>de</strong> functionaliteit waardoor er een<br />

goe<strong>de</strong> vergelijking gemaakt kan wor<strong>de</strong>n. De gekozen<br />

architecturen wor<strong>de</strong>n toegelicht en met elkaar vergeleken om zo<br />

Permission to make digital or hard copies of all or part of this work for<br />

personal or classroom use is granted without fee provi<strong>de</strong>d that copies<br />

are not ma<strong>de</strong> or distributed for profit or commercial ad<strong>van</strong>tage and that<br />

copies bear this notice and the full citation on the first page. To copy<br />

otherwise, or republish, to post on servers or to redistribute to lists,<br />

requires prior specific permission.<br />

3rd Twente Stu<strong>de</strong>nt Conference on IT , Ensche<strong>de</strong> June, 2005<br />

Copyright 2005, University of Twente, Faculty of Electrical<br />

Engineering, Mathematics and Computer Science<br />

te kijken welke architectuur het beste gekozen kan wor<strong>de</strong>n in<br />

een <strong>van</strong> <strong>de</strong>ze drie situaties: binnen een af<strong>de</strong>ling, binnen <strong>de</strong><br />

organisatie, ook wel bedrijfsproces integratie of<br />

intraorganisatorische integratie, en tussen organisaties,<br />

interorganisatorische integratie of supply chain integratie. Deze<br />

vergelijking leidt tot een tabel met <strong>de</strong> eigenschappen en<br />

functionaliteiten <strong>van</strong> <strong>de</strong> gekozen architecturen, waarmee een<br />

software manager <strong>van</strong> een organisatie zich kan oriënteren op <strong>de</strong><br />

mogelijkhe<strong>de</strong>n omtrent een rationele keuze <strong>voor</strong> een<br />

architectuur waarmee <strong>de</strong>ze systemen kan integreren.<br />

Om dit te realiseren wordt in paragraaf 2 eerst het doel <strong>van</strong> dit<br />

paper uiteengezet en <strong>de</strong> variabelen waaraan <strong>de</strong> architecturen<br />

vergeleken wor<strong>de</strong>n besproken. Hierna zal in paragraaf 3<br />

ingegaan wor<strong>de</strong>n op algemene concepten welke in <strong>de</strong><br />

architecturen gebruikt wor<strong>de</strong>n. In <strong>de</strong>zelf<strong>de</strong> paragraaf wor<strong>de</strong>n<br />

hierna <strong>de</strong> verschillen<strong>de</strong> architecturen een <strong>voor</strong> een toegelicht,<br />

waarna in paragraaf 4 <strong>de</strong> architecturen met elkaar vergeleken<br />

wor<strong>de</strong>n met behulp <strong>van</strong> <strong>de</strong> variabelen in <strong>de</strong> vorm <strong>van</strong> een tabel.<br />

2. DOEL<br />

In dit paper wordt er gekeken naar “welke architecturen om<br />

legacy systemen te integreren in welke situatie het beste<br />

gebruikt kunnen wor<strong>de</strong>n”. Om dit te realiseren wor<strong>de</strong>n er in dit<br />

hoofdstuk een aantal variabelen geïntroduceerd waaraan <strong>de</strong><br />

architecturen, welke in paragraaf 3 besproken wor<strong>de</strong>n, wor<strong>de</strong>n<br />

vergeleken. Deze vergelijking vindt plaats in paragraaf 4.<br />

In dit hoofdstuk wor<strong>de</strong>n eerst <strong>de</strong> verschillen<strong>de</strong> situaties<br />

toegelicht waaraan <strong>de</strong> architecturen gekoppeld wor<strong>de</strong>n in<br />

paragraaf 4. Hierna wor<strong>de</strong>n <strong>de</strong> verschillen<strong>de</strong> variabelen<br />

toegelicht welke gebruikt wor<strong>de</strong>n om <strong>de</strong> architecturen <strong>de</strong><br />

on<strong>de</strong>rschei<strong>de</strong>n.<br />

2.1 Situaties<br />

Er wordt bij <strong>de</strong>ze vergelijking gekeken naar een aantal globale<br />

situaties, te weten:<br />

• binnen een af<strong>de</strong>ling - De systemen binnen een af<strong>de</strong>ling<br />

wor<strong>de</strong>n in dit paper gezien als een groep systemen welke<br />

on<strong>de</strong>r <strong>de</strong> controle <strong>van</strong> <strong>de</strong>ze af<strong>de</strong>ling vallen. Deze systemen<br />

zijn vaak <strong>voor</strong> een groot <strong>de</strong>el homogeen.<br />

• intraorganisatorisch – Af<strong>de</strong>lingen binnen een organisatie<br />

hebben een eigen ‘set’ informatie systemen welke al dan<br />

niet on<strong>de</strong>rling geïntegreerd zijn. Deze systemen vallen<br />

on<strong>de</strong>r <strong>de</strong> jurisdictie <strong>van</strong> <strong>de</strong>ze af<strong>de</strong>ling. <strong>Systemen</strong> tussen<br />

af<strong>de</strong>lingen zijn hoofdzakelijk heterogene systemen.<br />

• interorganisatorisch – Verschillen<strong>de</strong> organisaties hebben<br />

eigen informatie systemen, welke hoofdzakelijk<br />

heterogeen zijn ten opzichte <strong>van</strong> <strong>de</strong> eigen organisatie. Ook<br />

willen organisaties niet al hun informatie aan elkaar <strong>de</strong>len.<br />

2.2 Variabelen<br />

De hier on<strong>de</strong>rstaan<strong>de</strong> variabelen zijn gekozen naar aanleiding<br />

<strong>van</strong> een aantal literatuurstukken waar<strong>van</strong> <strong>de</strong> meest rele<strong>van</strong>te<br />

vermeld staan bij <strong>de</strong> variabele.<br />

Er is gekozen <strong>voor</strong> <strong>de</strong>ze set variabelen omdat <strong>de</strong>ze gezamenlijk<br />

voldoen<strong>de</strong> informatie bevatten om <strong>de</strong> verschillen<strong>de</strong>


architecturen te on<strong>de</strong>rschei<strong>de</strong>n. Meer<strong>de</strong>re variabelen zijn altijd<br />

wel te <strong>de</strong>finiëren maar bie<strong>de</strong>n in <strong>de</strong> context <strong>van</strong> dit paper weinig<br />

toevoeging bij <strong>de</strong> beoor<strong>de</strong>ling <strong>van</strong> <strong>de</strong> architecturen.<br />

• Scope – De situatie, zoals hierboven beschreven, waarin <strong>de</strong><br />

architectuur het beste gebruikt kan wor<strong>de</strong>n. Door <strong>de</strong><br />

oplopen<strong>de</strong> eisen in <strong>de</strong> situaties zijn architecturen vaak wel<br />

in ‘lagere’ situaties te gebruiken. Zo kan een architectuur<br />

welke intraorganisatorisch gebruikt wordt ook gebruikt<br />

wor<strong>de</strong>n binnen een af<strong>de</strong>ling – waarschijnlijk met veel<br />

overbodige functionaliteit.<br />

• Communicatie mogelijkhe<strong>de</strong>n – De mogelijkhe<strong>de</strong>n <strong>van</strong> <strong>de</strong><br />

architectuur om 1 of meer<strong>de</strong>re systemen binnen <strong>de</strong><br />

integratie aan te spreken.<br />

• Complexiteit <strong>van</strong> <strong>de</strong> wrapper – De mate <strong>van</strong><br />

verantwoor<strong>de</strong>lijkheid welke <strong>de</strong> wrapper heeft; <strong>de</strong>ze kan<br />

bij<strong>voor</strong>beeld verantwoor<strong>de</strong>lijk zijn <strong>voor</strong> het maken <strong>van</strong><br />

connecties met alle an<strong>de</strong>re systemen, of dit overlaten aan<br />

een an<strong>de</strong>r <strong>de</strong>el <strong>van</strong> <strong>de</strong> architectuur [Mec01].<br />

• Dynamische veran<strong>de</strong>ringen – De mogelijkhe<strong>de</strong>n om<br />

nieuwe systemen op te nemen of bestaan<strong>de</strong> systemen te<br />

ver<strong>van</strong>gen in te integratie zon<strong>de</strong>r dat an<strong>de</strong>re systemen<br />

binnen <strong>de</strong> integratie aangepast moeten wor<strong>de</strong>n [Zou00].<br />

• Gewenste Heterogeniteit participeren<strong>de</strong> systemen – De<br />

mate waarin <strong>de</strong> randsystemen <strong>van</strong> <strong>de</strong> opstelling heterogeen<br />

moeten zijn om opgenomen te wor<strong>de</strong>n in <strong>de</strong> integratie<br />

[Zou00].<br />

• <strong>Integratie</strong> gemak – Gemak waarmee een systeem in elkaar<br />

gezet kan wor<strong>de</strong>n / <strong>de</strong> hoeveelheid aanpassingen welke er<br />

door <strong>de</strong> ontwikkelaar gedaan moeten wor<strong>de</strong>n om het<br />

systeem werkend te krijgen [Das99].<br />

• Kosten – Kosten relatief ten opzichte <strong>van</strong> het aantal te<br />

integreren systemen [Zou00, Llo99].<br />

• On<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten – load balancing,<br />

replicatie, logging, persistentie, transactie garantie,<br />

filtering, routing, message broadcasting, security e.a..<br />

[Alo04, Das99, Chi01-2]<br />

• Ontwikkelingstijd – Tijd welke <strong>de</strong> ontwikkeling kost ten<br />

opzichte <strong>van</strong> het aantal te integreren systemen [Mec01].<br />

• Performance – De snelheid en overhead <strong>van</strong> <strong>de</strong><br />

architectuur [Chi01-2, Das99, Llo99, Alo04].<br />

• Uitbreidbaarheid – Het gemak waarmee <strong>de</strong> opstelling <strong>van</strong><br />

<strong>de</strong> systemen aangevuld kan wor<strong>de</strong>n [Chi01-2].<br />

3. ARCHITECTUREN<br />

Aan <strong>de</strong> hand <strong>van</strong> verschillen<strong>de</strong> literatuurbronnen hebben we<br />

gekozen om vijf architecturen te vergelijken welk <strong>de</strong> integratie<br />

<strong>van</strong> legacy systemen mogelijk maken [Alo04, Chi01, Bor97,<br />

Ser02, Zou00, Mec01].<br />

Bij het bespreken <strong>van</strong> <strong>de</strong> architecturen wor<strong>de</strong>n een aantal<br />

termen gebruikt waar<strong>voor</strong> in verschillen<strong>de</strong> literatuur<br />

verschillen<strong>de</strong> <strong>de</strong>finities gebruikt wor<strong>de</strong>n. In dit paper wor<strong>de</strong>n <strong>de</strong><br />

volgen<strong>de</strong> <strong>de</strong>finities gebruikt:<br />

• <strong>Legacy</strong> systeem – Een systeem dat op dit moment een<br />

significante business waar<strong>de</strong> heeft, welke veel geld gekost<br />

heeft aan hard en software en vele jaren oud kan zijn. Het<br />

is een business-critical systeem met een architectuur die<br />

flexibel genoeg is om aan geanticipeer<strong>de</strong> toekomstige eisen<br />

te voldoen [Cal99]. Een legacy systeem is niet direct te<br />

integreren met an<strong>de</strong>re systemen binnen <strong>de</strong> organisatie;<br />

hier<strong>voor</strong> zijn wrappers noodzakelijk.<br />

• Wrappers – Deze bie<strong>de</strong>n <strong>de</strong> functionaliteit <strong>van</strong> het<br />

on<strong>de</strong>rliggen<strong>de</strong> legacy systeem aan als een nieuwe interface<br />

[Mec01]. Deze nieuwe interface kan dan weer gekoppeld<br />

wor<strong>de</strong>n aan een <strong>van</strong> <strong>de</strong> architecturen, <strong>de</strong> wrapper dient<br />

zodanig hoofdzakelijk als ‘vertaler’, <strong>de</strong> taal <strong>van</strong> het legacy<br />

systeem wordt vertaald naar <strong>de</strong> taal welke <strong>de</strong> architectuur<br />

spreekt.<br />

• Systeem lagen – Een informatiesysteem bestaat<br />

conceptueel uit 3 verschillen<strong>de</strong> lagen, welke al dan niet<br />

gedistribueerd zijn over systemen of groepen systemen. De<br />

resource management laag bevat <strong>de</strong> data waarmee <strong>de</strong><br />

informatie systemen werken, <strong>de</strong>ze bestaat in dit paper uit<br />

legacy systemen. In het mid<strong>de</strong>n zit <strong>de</strong> application logic<br />

laag welke <strong>de</strong> data omvormt tot <strong>de</strong> gewenste resultaten.<br />

Bovenaan zit <strong>de</strong> presentation laag welke <strong>de</strong>ze resultaten<br />

met externe entiteiten communiceert. [Alo04]<br />

Als eerste er zal in subparagraaf 1 een point-to-point<br />

architectuur besproken wor<strong>de</strong>n. Deze architectuur is gebaseerd<br />

op losse connecties tussen <strong>de</strong> verschillen<strong>de</strong> te integreren<br />

systemen. Hierna zal er gekeken wor<strong>de</strong>n naar conventionele<br />

middleware in subparagraaf 2. Middleware on<strong>de</strong>rsteunt <strong>de</strong>ze<br />

connecties en biedt integratie logica en on<strong>de</strong>rsteunen<strong>de</strong><br />

functionaliteiten. In subparagraaf 3 wordt het EAI platform<br />

toegelicht. Dit is een ‘opvolger’ <strong>van</strong> conventionele middleware.<br />

Hierna wor<strong>de</strong>n in subparagraaf 4 web services besproken. Met<br />

behulp <strong>van</strong> <strong>de</strong>ze web services kunnen composite web services<br />

gebouwd wor<strong>de</strong>n, welke beschreven wor<strong>de</strong>n in subparagraaf 5.<br />

3.1 Point-to-point<br />

Bij het integreren <strong>van</strong> een set informatiesystemen, welke ie<strong>de</strong>r<br />

een aantal connecties zullen hebben met een aantal an<strong>de</strong>re<br />

(legacy) systemen, is het mogelijk gebruik te maken <strong>van</strong> directe<br />

connecties tussen <strong>de</strong>ze systemen [Sut02]. Bij <strong>de</strong>ze oplossing<br />

wor<strong>de</strong>n alle objecten die met elkaar zullen communiceren direct<br />

aan elkaar gekoppeld. Hierbij wordt alle integratie logica<br />

opgenomen buiten het (legacy) systeem. In dit paper wordt er<br />

<strong>van</strong>uit gegaan dat <strong>de</strong>ze logica zich bevindt binnen <strong>de</strong> wrapper<br />

om ver<strong>de</strong>re complexiteit <strong>van</strong> <strong>de</strong> figuren te limiteren. Deze<br />

logica zou ook in een nieuwe aparte laag bovenop <strong>de</strong> wrapper<br />

geplaatst kunnen wor<strong>de</strong>n, dit is niet gedaan om <strong>de</strong> figuren<br />

overzichtelijk te hou<strong>de</strong>n.<br />

Figuur 1: Point-to-point<br />

Bij het integreren <strong>van</strong> verschillen<strong>de</strong> systemen zullen alle<br />

systemen welke elkaar nu of in <strong>de</strong> toekomst gaan gebruiken met<br />

elkaar verbon<strong>de</strong>n moeten wor<strong>de</strong>n. De meeste systemen in<br />

organisaties zijn niet in staat om connecties te on<strong>de</strong>rhou<strong>de</strong>n met<br />

verschillen<strong>de</strong> an<strong>de</strong>re systemen, <strong>de</strong> logica om <strong>de</strong>ze connecties tot<br />

stand te brengen en te on<strong>de</strong>rhou<strong>de</strong>n is vaak niet aanwezig. De<br />

logica welke benodigd is om <strong>de</strong> connecties tussen <strong>de</strong><br />

verschillen<strong>de</strong> (legacy) systemen tot stand te hou<strong>de</strong>n zal daarom<br />

aanwezig moeten zijn in <strong>de</strong> wrapper. De wrapper is in <strong>de</strong>ze


situatie verantwoor<strong>de</strong>lijk <strong>voor</strong> <strong>de</strong> communicatie tussen <strong>de</strong><br />

verschillen<strong>de</strong> systemen en <strong>de</strong> integratie logica die nodig is<br />

hier<strong>voor</strong>. De programmeur is dan ook geheel verantwoor<strong>de</strong>lijk<br />

<strong>voor</strong> alle complexiteiten met betrekking tot <strong>de</strong> implementatie<br />

<strong>van</strong> een gedistribueerd systeem [Alo04]. Deze opstelling wordt<br />

weergegeven in figuur 1.<br />

De wrapper moet bijhou<strong>de</strong>n met welke systemen er<br />

gecommuniceerd moet wor<strong>de</strong>n en moet <strong>de</strong> gegevens omvormen<br />

zodat het systeem aan <strong>de</strong> an<strong>de</strong>re kant <strong>de</strong>ze gegevens kan<br />

gebruiken. Het interactie mo<strong>de</strong>l, <strong>de</strong> verschillen<strong>de</strong> systemen<br />

waarmee gecommuniceerd zal gaan wor<strong>de</strong>n, <strong>van</strong> <strong>de</strong><br />

verschillen<strong>de</strong> objecten in <strong>de</strong>ze opstelling moet in elke wrapper<br />

<strong>van</strong>uit het niets opgebouwd wor<strong>de</strong>n [Alo04]. Doordat dit mo<strong>de</strong>l<br />

<strong>voor</strong> elk <strong>van</strong> <strong>de</strong> objecten vast staat, is het moeilijk nieuwe<br />

elementen op te nemen. Om dit te realiseren zou <strong>de</strong> co<strong>de</strong> <strong>van</strong><br />

elke wrapper, welke mogelijkerwijs een connectie zal maken<br />

met dit nieuwe object, aangepast moeten wor<strong>de</strong>n. Meer<strong>de</strong>re<br />

objecten met elkaar verbin<strong>de</strong>n levert dus veel complexiteit en<br />

overhead op.<br />

De adapters aan <strong>de</strong> ‘rand’ <strong>van</strong> het netwerk moeten homogeen<br />

zijn – ze moeten eenzelf<strong>de</strong> manier gebruiken om te<br />

communiceren met an<strong>de</strong>re systemen in het netwerk.<br />

Heterogeniteit <strong>van</strong> <strong>de</strong> systemen zal door <strong>de</strong> ontwikkelaar<br />

handmatig bij elk systeem afgehan<strong>de</strong>ld moeten wor<strong>de</strong>n en<br />

omgevormd moeten wor<strong>de</strong>n zodat alle communicatie over een<br />

homogeen netwerk kan plaatsvin<strong>de</strong>n. Om dit te realiseren moet<br />

er een protocol opgesteld wor<strong>de</strong>n waarmee <strong>de</strong> gegevens, welke<br />

<strong>de</strong> systemen met elkaar gaan <strong>de</strong>len, overgebracht kunnen<br />

wor<strong>de</strong>n. Het toevoegen of wijzigen <strong>van</strong> <strong>de</strong> set te integreren<br />

systemen brengt dus veelal een wijziging in het protocol met<br />

zich mee.<br />

Formule 1: Maximum Connecties tussen systemen<br />

Om <strong>de</strong> complexiteit <strong>van</strong> grotere netwerken <strong>van</strong> systemen met<br />

betrekking tot <strong>de</strong>ze oplossing weer te geven kan gebruik<br />

gemaakt wor<strong>de</strong>n <strong>van</strong> formule 1. In <strong>de</strong>ze formule is x het aantal<br />

systemen welke met elkaar geïntegreerd zullen wor<strong>de</strong>n, <strong>de</strong><br />

resulteren<strong>de</strong> f(x) is het maximale aantal connecties dat er tussen<br />

<strong>de</strong> verschillen<strong>de</strong> objecten plaats kan vin<strong>de</strong>n. Dit maximum<br />

wordt bereikt als elk systeem met ie<strong>de</strong>r an<strong>de</strong>r systeem zou<br />

willen communiceren, al is het maar om statusgegevens uit te<br />

wisselen. Bij een klein aantal systemen zijn er nog niet zoveel<br />

connecties nodig om alle objecten aan elkaar te koppelen –<br />

<strong>voor</strong> drie systemen zijn er ook maximaal 3 connecties nodig.<br />

Dit aantal stijgt daarentegen snel. Bij 6 systemen zijn er al<br />

(f(6)=) 15 connecties mogelijk, bij 20 systemen al 190 en f(50)<br />

systemen 1225!<br />

Elke af<strong>de</strong>ling binnen een organisatie heeft verschillen<strong>de</strong><br />

systemen. Deze systemen werken op verschillen<strong>de</strong> platformen<br />

binnen een bepaal<strong>de</strong> regelgeving binnen die af<strong>de</strong>ling. Elk <strong>van</strong><br />

<strong>de</strong> <strong>de</strong>ze systemen opgenomen in <strong>de</strong> integratie zou een connectie<br />

moeten kunnen maken en on<strong>de</strong>rhou<strong>de</strong>n met elk <strong>van</strong> <strong>de</strong> systemen<br />

buiten <strong>de</strong> af<strong>de</strong>ling, op an<strong>de</strong>re computersystemen, werkend met<br />

an<strong>de</strong>re regels. Om <strong>de</strong> regels binnen een af<strong>de</strong>ling te respecteren<br />

zou<strong>de</strong>n <strong>de</strong>ze ingevoerd moeten wor<strong>de</strong>n in elk <strong>van</strong> <strong>de</strong> wrappers.<br />

Daarnaast zullen <strong>de</strong>ze aangepast moeten wor<strong>de</strong>n om heterogene<br />

systemen aan te spreken, aangezien verschillen<strong>de</strong> af<strong>de</strong>lingen<br />

vaak met verschillen<strong>de</strong> systemen werken. Om dit laatste te<br />

realiseren zal er <strong>voor</strong> elk heterogeen systeem logica in <strong>de</strong><br />

wrapper opgenomen moeten wor<strong>de</strong>n om <strong>de</strong>ze aan elk an<strong>de</strong>r<br />

heterogeen systeem te koppelen, aangezien er geen sprake is<br />

<strong>van</strong> een algemeen geaccepteer<strong>de</strong> standaard. [Ber96]<br />

Naast <strong>de</strong> snel groeien<strong>de</strong> complexiteit <strong>van</strong> <strong>de</strong> wrappers door het<br />

aantal participeren<strong>de</strong> systemen, wordt <strong>de</strong>ze ook nog eens groter<br />

als er gedacht moet wor<strong>de</strong>n aan on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten<br />

zoals load balancing, replicatie, logging, persistentie, transactie<br />

garanties e.a. met betrekking tot het garan<strong>de</strong>ren <strong>van</strong> <strong>de</strong> werking<br />

en <strong>de</strong> correctheid <strong>van</strong> het systeem [Ber96, Alo04]. Veel <strong>van</strong> <strong>de</strong><br />

co<strong>de</strong> welke nodig is om <strong>de</strong>ze taken uit te voeren zal in elk <strong>van</strong><br />

<strong>de</strong> wrappers aanwezig moeten zijn en gecommuniceerd en<br />

gecoördineerd moeten wor<strong>de</strong>n met <strong>de</strong> an<strong>de</strong>re wrappers. De<br />

grootte <strong>van</strong> <strong>de</strong>ze wrapper componenten groeit hierdoor extreem<br />

en neemt erg veel, onnodige, bandbreedte en computerkracht in<br />

beslag.<br />

Al met al is het maken <strong>van</strong> directe connecties tussen<br />

verschillen<strong>de</strong> systemen, met als doel <strong>de</strong>ze te integreren, een<br />

oplossing <strong>voor</strong> een klein aantal systemen. Bij een klein aantal<br />

systemen, waarbij on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten zoals<br />

replicatie, load balancing, dynamische invoeging <strong>van</strong> nieuwe<br />

componenten en <strong>de</strong>rgelijke niet nodig zijn, is <strong>de</strong>ze oplossing<br />

snel en goedkoop te implementeren. Naarmate het aantal<br />

<strong>de</strong>elnemen<strong>de</strong> systemen en hun on<strong>de</strong>rlinge verban<strong>de</strong>n groeit,<br />

neemt <strong>de</strong> complexiteit <strong>van</strong> <strong>de</strong>ze oplossing exponentieel toe.<br />

Deze complexiteit zorgt dan snel <strong>voor</strong> een onhan<strong>de</strong>lbare,<br />

onflexibele en erg dure oplossing. Daarentegen is <strong>de</strong> tijd die<br />

nodig is <strong>voor</strong> het ontwikkelen <strong>van</strong> een simpele wrapper welke<br />

met een klein aantal homogene systemen binnen een af<strong>de</strong>ling in<br />

connectie staat is erg laag. De systemen hoeven door hun<br />

homogeniteit geen complexe wrappers te hebben welke <strong>de</strong><br />

informatie omzet naar een leesbaar formaat. En door <strong>de</strong><br />

kleinschaligheid zijn zaken als load balancing en replicatie en<br />

<strong>de</strong>rgelijke nog niet <strong>van</strong> belang.<br />

3.2 Middleware<br />

Binnen een af<strong>de</strong>ling in een organisatie kan besloten wor<strong>de</strong>n<br />

verschillen<strong>de</strong> systemen met elkaar te integreren. Om dit te<br />

bewerkstelligen kan er, naast <strong>de</strong> hier<strong>voor</strong> besproken point-topoint<br />

oplossing, gebruik gemaakt wor<strong>de</strong>n <strong>van</strong> middleware.<br />

<strong>Legacy</strong> systemen kunnen met behulp <strong>van</strong> een wrapper<br />

aangesloten wor<strong>de</strong>n op een middleware platform. De wrapper<br />

zal in dit geval niet bij hoeven te hou<strong>de</strong>n welke systemen<br />

aangesloten zijn, of transacties wel uitgevoerd wor<strong>de</strong>n, of er<br />

gelogd wordt. Kortom, <strong>de</strong> on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten en <strong>de</strong><br />

integratie logica bevin<strong>de</strong>n zich niet meer in <strong>de</strong> wrapper. Deze<br />

zijn in <strong>de</strong>ze opstelling is in han<strong>de</strong>n <strong>van</strong> het middleware<br />

platform.<br />

Middleware on<strong>de</strong>rhoudt en faciliteert <strong>de</strong> interactie tussen<br />

applicaties tussen heterogene computer platformen [Alo04,<br />

Jur00, Emm00, Mon00]. Het is <strong>de</strong> eerste stap naar een oplossing<br />

waar meer<strong>de</strong>re systemen met elkaar kunnen communiceren<br />

zon<strong>de</strong>r dat elk systeem verantwoor<strong>de</strong>lijk is <strong>voor</strong> zijn eigen<br />

connecties en integratie logica, zoals dit nodig is bij <strong>de</strong> point-topoint<br />

architectuur. Om dit te realiseren levert middleware<br />

abstracties welke te gebruiken zijn door <strong>de</strong> ontwikkelaar om een<br />

gedistribueerd systeem in elkaar te zetten [Emm00].<br />

Middleware kan <strong>de</strong> logica bevatten ten behoeve <strong>van</strong> <strong>de</strong><br />

on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten als load balancing, replicatie,<br />

logging, persistentie, transactie garantie, filtering, routing,<br />

message broadcasting, security e.a.. [Alo04, Das99]. Deze<br />

functionaliteiten zijn afhankelijk <strong>van</strong> het type middleware en <strong>de</strong><br />

functionaliteit <strong>van</strong> een bepaald middleware pakket. Middleware<br />

zorgt er<strong>voor</strong> dat commando’s, welke door an<strong>de</strong>re programma’s<br />

gegeven wor<strong>de</strong>n, op <strong>de</strong> goe<strong>de</strong> plaats aankomen. Als een<br />

programma een gegeven wil hebben <strong>van</strong> een an<strong>de</strong>r systeem,<br />

zorgt middleware er<strong>voor</strong> dat dit signaal in zijn geheel aankomt<br />

– het versturen<strong>de</strong> programma hoeft dus geen logica te bevatten<br />

welke controleert wat er gebeurt met het signaal, <strong>de</strong>ze kan zich<br />

concentreren op zijn eigen taken. De legacy systemen en <strong>de</strong>


wrappers kunnen werken alsof <strong>de</strong> systemen direct op elkaar<br />

aangesloten zijn. Het middleware platform garan<strong>de</strong>ert <strong>de</strong><br />

correcte afhan<strong>de</strong>ling <strong>van</strong> <strong>de</strong> signalen tussen <strong>de</strong> systemen.<br />

Er zijn verschillen<strong>de</strong> soorten kant en klare middleware te<br />

verkrijgen, welke verschillen in kosten, en (on<strong>de</strong>rsteunen<strong>de</strong>)<br />

functionaliteit. In <strong>de</strong>ze paragraaf gaat het om <strong>de</strong> middleware<br />

welke niet geclassificeerd wordt als Enterprise Application<br />

Integration Platform (EAI Platform, welke in paragraaf 3.3<br />

besproken wordt). Het gaat hier om <strong>de</strong> middleware welke<br />

binnen een af<strong>de</strong>ling, meer<strong>de</strong>re heterogene systemen aan elkaar<br />

kan koppelen. Denk hierbij aan basale RPC systemen (Sun<br />

RPC, OSF DCE), TP monitoren (o.a. IBM CICS, Microsoft<br />

MTS, BEA Tuxedo, Transarc Encina), Object Brokers (o.a.<br />

CORBA specificatie), Object Monitors (TP monitor+Object<br />

broker) en Message-Oriented Middleware (o.a. IBM Websphere<br />

MQ, Microsoft MSMQ, WebMethods Enterprise, <strong>de</strong>els<br />

CORBA). [Mon00, Ber96, Emm00] Het bespreken <strong>van</strong> <strong>de</strong>ze<br />

verschillen<strong>de</strong> soorten valt buiten <strong>de</strong> context <strong>van</strong> dit paper – het<br />

gaat hier om <strong>de</strong> functionaliteit <strong>van</strong> middleware in het algemeen.<br />

Elke soort middleware heeft zijn eigen <strong>voor</strong>- en na<strong>de</strong>len.<br />

Verschillen<strong>de</strong> implementaties <strong>van</strong> een middleware oplossing<br />

implementeren bij<strong>voor</strong>beeld verschillen<strong>de</strong> mate <strong>van</strong><br />

on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten.<br />

Figuur 2: Standaard Middleware (aangepast uit [Alo04])<br />

In figuur 2 wordt <strong>de</strong>ze architectuur grafisch weergegeven.<br />

On<strong>de</strong>raan staan verschillen<strong>de</strong> legacy systemen, welke door<br />

mid<strong>de</strong>l <strong>van</strong> wrappers beschikbaar gesteld wor<strong>de</strong>n aan <strong>de</strong> laag<br />

erboven. Deze mid<strong>de</strong>lste laag bestaat in dit geval uit alle logica<br />

die nodig is om <strong>de</strong>ze systemen te integreren en aan te bie<strong>de</strong>n<br />

aan <strong>de</strong> presentatie laag erboven. Deze mid<strong>de</strong>lste laag wordt<br />

middleware genoemd. De dienst die <strong>de</strong>ze middleware laag biedt<br />

aan <strong>de</strong> laag erboven kan weer wor<strong>de</strong>n aangebo<strong>de</strong>n,<br />

bij<strong>voor</strong>beeld, met behulp <strong>van</strong> een web server aan een cliënt.<br />

Om verschillen<strong>de</strong> systemen aan te sluiten op (EAI) middleware<br />

wordt er gebruik gemaakt <strong>van</strong> wrappers. Deze wrappers<br />

verbergen <strong>de</strong> heterogeniteit <strong>van</strong> <strong>de</strong> aan te sluiten systemen en<br />

zorgen er<strong>voor</strong> dat <strong>de</strong> systemen op een homogene manier data<br />

kunnen uitwisselen.<br />

Mid<strong>de</strong>lware is in eerste instantie bedoeld om verschillen<strong>de</strong><br />

systemen binnen <strong>de</strong> resource laag te integreren, <strong>de</strong>ze is<br />

daarentegen niet makkelijk in staat om te communiceren met<br />

an<strong>de</strong>re middleware systemen el<strong>de</strong>rs in <strong>de</strong> organisatie [Alo04].<br />

Het is hierom, met <strong>de</strong> hierboven beschreven middleware, niet<br />

makkelijk om een brug te vormen tussen verschillen<strong>de</strong><br />

af<strong>de</strong>lingen, welke ie<strong>de</strong>r hun eigen groepen systemen hebben.<br />

Om hieraan te voldoen is middleware ‘uitgebreid’ om dit<br />

mogelijk te maken. Deze uitbreiding wordt ook wel Enterprise<br />

Application Integration (EAI) Platform genoemd.<br />

3.3 EAI Platform<br />

In dit hoofdstuk wordt een uitbreiding <strong>van</strong> traditionele<br />

middleware systemen beschreven. Deze uitbreiding, on<strong>de</strong>r<br />

naam <strong>van</strong> EAI Platform, wordt afgebeeld in figuur 3.<br />

Wrapper<br />

legacy<br />

client<br />

Browser<br />

Web server<br />

Wrapper<br />

legacy<br />

Client<br />

Information system – provi<strong>de</strong>r<br />

Presentation<br />

layer<br />

adapter<br />

Application Logic Layer<br />

client<br />

Wrapper<br />

client<br />

legacy<br />

An<strong>de</strong>re EAI<br />

Middleware<br />

Figuur 3: EAI Platform (aangepast <strong>van</strong> [Alo04])<br />

Zoals bij middleware wor<strong>de</strong>n <strong>de</strong> verschillen<strong>de</strong> legacy systemen<br />

aan het middleware platform beschikbaar gemaakt met behulp<br />

<strong>van</strong> wrappers. Traditionele RPC gebaseer<strong>de</strong> middleware<br />

systemen maken directe connecties tussen verschillen<strong>de</strong><br />

applicaties en zijn hierdoor nog steeds erg inflexibel [Alo04].<br />

Conventionele middleware on<strong>de</strong>rsteunt <strong>de</strong> directe connecties<br />

tussen 2 systemen, een EAI Platform daarentegen <strong>van</strong>gt <strong>de</strong><br />

berichten op en stuurt ze door naar een of meer<strong>de</strong>re systemen<br />

welke interesse hebben in <strong>de</strong> informatie. Zoals bij middleware<br />

kan <strong>de</strong> geïntegreer<strong>de</strong> dienst aangebo<strong>de</strong>n wor<strong>de</strong>n aan cliënten<br />

met behulp <strong>van</strong> <strong>de</strong> presentation laag. Het verschil in<br />

conventionele middleware en een EAI Platform zit in <strong>de</strong><br />

mogelijkheid om het bedrijfsproces te integreren – het is<br />

mogelijk om verschillen<strong>de</strong> middleware implementaties aan<br />

elkaar te koppelen. Een EAI Platform is mogelijk te koppelen<br />

aan an<strong>de</strong>re middleware en an<strong>de</strong>re systemen <strong>van</strong> an<strong>de</strong>re<br />

af<strong>de</strong>lingen, om zo over <strong>de</strong> gehele organisatie het bedrijfsproces<br />

te integreren.<br />

In tegenstelling tot gewone middleware, is een EAI Platform<br />

gemaakt om te koppelen aan an<strong>de</strong>re EAI Platformen. Deze<br />

koppeling maakt het mogelijk om verschillen<strong>de</strong> stappen binnen<br />

het productieproces integreren. Deze stappen bevin<strong>de</strong>n zich<br />

vaak in verschillen<strong>de</strong> af<strong>de</strong>lingen <strong>van</strong> <strong>de</strong> organisatie, met ie<strong>de</strong>r<br />

eigen geïntegreer<strong>de</strong> systemen met eigen functionaliteiten die<br />

niet direct gebruikt kunnen wor<strong>de</strong>n door an<strong>de</strong>re systemen<br />

waarmee geïntegreerd moet wor<strong>de</strong>n. Op elke stap in dit<br />

bedrijfsproces bevin<strong>de</strong>n zich waarschijnlijk systemen met<br />

verschillen<strong>de</strong> eigenschappen zoals data formaten,<br />

beveiligingseisen, infrastructuur, functionaliteit en<br />

besturingssystemen.<br />

Bij EAI Platform moet er gedacht wor<strong>de</strong>n aan Message<br />

Brokers. Message brokers kunnen zen<strong>de</strong>r en ont<strong>van</strong>ger <strong>van</strong> een<br />

bericht ontkoppelen [Alo04]. Dit zorgt er<strong>voor</strong> dat applicaties<br />

welke een bericht versturen richting het platform, niet (perse)<br />

weten waar het bericht heen zal gaan. Ont<strong>van</strong>gers hoeven niet<br />

per se te weten waar het bericht dat ze ont<strong>van</strong>gen <strong>van</strong>daan<br />

komt. Dit is gerealiseerd door veel EAI Platform oplossingen<br />

met een publisher/subscriber systeem. Een systeem kan een<br />

bericht publiceren richting het platform en applicaties kunnen<br />

zich inschrijven om <strong>de</strong>ze of an<strong>de</strong>re berichten te ont<strong>van</strong>gen. Als<br />

er een bericht door een publisher verstuurd wordt, wordt een<br />

kopie hier<strong>van</strong> afgeleverd bij elke subscriber welke interesse<br />

heeft getoond in dat type bericht. Het <strong>voor</strong><strong>de</strong>el <strong>van</strong> een<br />

publisher/subscriber systeem is dat nieuwe objecten zich<br />

makkelijk kunnen registreren om berichten <strong>van</strong> an<strong>de</strong>ren te<br />

ont<strong>van</strong>gen. Zo kunnen er makkelijk nieuwe systemen gekoppeld<br />

wor<strong>de</strong>n aan <strong>de</strong> middleware – er hoeft alleen aangegeven te


wor<strong>de</strong>n welke berichten interessant zijn om te ontvagen en<br />

versturen. Zo kunnen ook componenten gemakkelijk verwisseld<br />

of toegevoegd wor<strong>de</strong>n.<br />

3.4 Web service<br />

Bedrijven willen hun legacy systemen integreren om <strong>de</strong>ze<br />

beschikbaar te maken aan an<strong>de</strong>re systemen binnen <strong>de</strong>zelf<strong>de</strong><br />

resource management laag (af<strong>de</strong>ling) (point-to-point /<br />

middleware). Daarnaast willen organisaties systemen opnemen<br />

in het bedrijfsproces, waardoor er integratie tussen af<strong>de</strong>lingen<br />

ontstaat (EAI Platform). Ook willen organisaties elkan<strong>de</strong>rs<br />

diensten over <strong>de</strong> gehele supply chain, <strong>van</strong> productie tot verkoop,<br />

integreren. Het web wordt tegenwoordig gebruikt als mid<strong>de</strong>l om<br />

communicatie tussen organisaties en an<strong>de</strong>re organisaties en<br />

consumenten te on<strong>de</strong>rsteunen. Om dit te realiseren wer<strong>de</strong>n<br />

bestaan<strong>de</strong> architecturen in eerste instantie uitgebreid met een<br />

nieuwe presentatielaag – <strong>de</strong> web server. Cliënten kon<strong>de</strong>n <strong>van</strong>af<br />

<strong>de</strong> an<strong>de</strong>re kant <strong>van</strong> <strong>de</strong> wereld gebruik maken <strong>van</strong> <strong>de</strong><br />

(geïntegreer<strong>de</strong>) dienst, welke door <strong>de</strong> organisatie werd<br />

aangebo<strong>de</strong>n [Zou00].<br />

Om <strong>de</strong> integratie tussen verschillen<strong>de</strong> organisaties over het web<br />

te realiseren is <strong>voor</strong>gesteld om connecties te maken tussen<br />

middleware platformen <strong>van</strong> <strong>de</strong> verschillen<strong>de</strong> organisaties of<br />

tussen <strong>de</strong> presentation lagen. Om integratie met behulp <strong>van</strong><br />

middleware, tussen organisaties over het web, te on<strong>de</strong>rsteunen<br />

wer<strong>de</strong>n adapters gemaakt welke het mogelijk maakten om via<br />

het web connecties in stand te hou<strong>de</strong>n tussen middleware<br />

platformen. Er zijn daarentegen meer<strong>de</strong>re problemen ontstaan<br />

bij het direct aan elkaar verbin<strong>de</strong>n <strong>van</strong> middleware over het web<br />

[Alo04]. Ten eerste is <strong>de</strong> communicatie over het web vaak<br />

gelimiteerd door firewalls. Daarnaast moet het data formaat en<br />

interface <strong>de</strong>finitie aan bei<strong>de</strong> zij<strong>de</strong>n gelijk zijn. Als laatste moet<br />

er een directory service aanwezig zijn, welke service discovery<br />

mogelijk maakt. Het is daarentegen niet dui<strong>de</strong>lijk wie <strong>de</strong>ze<br />

on<strong>de</strong>r beheer zou moeten krijgen. Veel <strong>van</strong> <strong>de</strong>ze problemen zijn<br />

opgelost met behulp <strong>van</strong> web services.<br />

Om verschillen<strong>de</strong> organisaties met elkaar te kunnen laten<br />

communiceren met behulp <strong>van</strong> conventionele EAI Platform,<br />

zullen al <strong>de</strong>ze organisaties gebruik moeten maken <strong>van</strong> eenzelf<strong>de</strong><br />

soort middleware platform en een gezamenlijke naam en<br />

directory service. Deze moet overal hetzelf<strong>de</strong> zijn om een grote<br />

geïntegreer<strong>de</strong> keten te realiseren tussen organisaties. Aangezien<br />

een organisatie vaak samenwerkt met meer<strong>de</strong>re organisaties,<br />

welke ie<strong>de</strong>r eigen middleware implementaties hebben, zal <strong>voor</strong><br />

elk <strong>van</strong> <strong>de</strong>ze organisaties aparte middleware opgenomen moeten<br />

wor<strong>de</strong>n om hiermee te kunnen communiceren. Er<strong>voor</strong> zorgen<br />

dat alle organisaties waarmee gehan<strong>de</strong>ld zal wor<strong>de</strong>n <strong>de</strong>zelf<strong>de</strong><br />

middleware gebruiken is niet realistisch, er zijn teveel<br />

verschillen<strong>de</strong> implementaties. Hierdoor kan het zo uit <strong>de</strong> hand<br />

lopen dat er binnen 1 organisatie meer<strong>de</strong>re verschillen<strong>de</strong><br />

middleware oplossing gekoppeld moet wor<strong>de</strong>n aan een ‘extra’<br />

middleware platform, om <strong>de</strong> verschillen<strong>de</strong> middleware te<br />

integreren! Hierdoor ontstaat een soort “point-to-point” situatie<br />

als hierboven beschreven – <strong>voor</strong> elke connectie moet nieuwe<br />

middleware opgenomen wor<strong>de</strong>n. Daarnaast zijn er meer<br />

re<strong>de</strong>nen dat conventionele middleware niet geschikt is <strong>voor</strong><br />

B2B situaties – zo zijn <strong>de</strong> connecties binnen EAI Platform vaak<br />

<strong>van</strong> korte duur, terwijl connecties/operaties tussen organisaties<br />

veel langer duren. EAI interacties gebeuren binnen een ‘trust<br />

domain’ binnen <strong>de</strong> organisatie. Tussen organisaties bestaat niet<br />

het vertrouwen om alle gegevens binnen het bedrijfsproces vrij<br />

te geven. Er zijn veel beperkingen met betrekking tot <strong>de</strong><br />

gegevens die uitgewisseld mogen wor<strong>de</strong>n tussen organisaties.<br />

[Alo04]<br />

Om <strong>de</strong>ze problemen op te lossen zijn web services ontwikkeld.<br />

Een web service is een manier om <strong>de</strong> functionaliteit <strong>van</strong><br />

on<strong>de</strong>rliggen<strong>de</strong> systemen beschikbaar te maken via het web. Het<br />

gebruik <strong>van</strong> standaar<strong>de</strong>n zorgt er<strong>voor</strong> dat <strong>de</strong> heterogeniteit<br />

tussen systemen niet belangrijk is. Web services kunnen wor<strong>de</strong>n<br />

gezien als een laag bovenop een bestaand systeem, welke <strong>de</strong><br />

on<strong>de</strong>rliggen<strong>de</strong> functionaliteit ‘wrappen’ tot een standaard<br />

formaat, welke gebruikt kan wor<strong>de</strong>n door an<strong>de</strong>re organisaties.<br />

[Alo04].<br />

Figuur 4: Web service (Aangepast <strong>van</strong> [Alo04])<br />

Figuur 4 beschrijft een basale opstelling <strong>van</strong> twee webservices,<br />

waarbij <strong>de</strong> rechter gebruik maakt <strong>van</strong> <strong>de</strong> dienst, welke <strong>de</strong> linker<br />

aanbiedt. De web service zorgt er<strong>voor</strong> dat <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong><br />

dienst, welke geleverd wordt door een of meer<strong>de</strong>re lagen (EAI)<br />

middleware, aangebo<strong>de</strong>n wordt als web service. Web service<br />

middleware zorgt hoofdzakelijk <strong>voor</strong> het in- en uitpakken <strong>van</strong><br />

berichten en <strong>de</strong>ze te converteren naar een formaat dat gebruikt<br />

kan wor<strong>de</strong>n door <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> lagen. De lagen eron<strong>de</strong>r zijn<br />

nog steeds verantwoor<strong>de</strong>lijk <strong>voor</strong> <strong>de</strong> ‘normale’ middleware<br />

taken als eer<strong>de</strong>r beschreven in paragraaf 3.2 (integratie logica<br />

en on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten als load balancing,<br />

replicatie, logging, persistentie, transactie garantie, filtering,<br />

routing, message broadcasting en security). Huidige web service<br />

middleware is op dit moment niet in staat om <strong>de</strong>ze diensten te<br />

leveren, <strong>de</strong>ze wor<strong>de</strong>n daarom overgelaten aan <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong><br />

lagen.<br />

Naast het i<strong>de</strong>e om <strong>de</strong> on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten en<br />

integratie logica <strong>voor</strong> het grootste <strong>de</strong>el in han<strong>de</strong>n te laten <strong>van</strong><br />

het middleware platform, is er ook <strong>voor</strong>gesteld om heterogene<br />

legacy systemen direct beschikbaar te maken als web services<br />

[Mec01]. Er wordt beargumenteerd dat <strong>de</strong> wrapper<br />

componenten <strong>de</strong> legacy informatie beschikbaar kunnen maken<br />

aan <strong>de</strong> web service en hoe verschillen<strong>de</strong> web services als<br />

componenten kunnen dienen <strong>voor</strong> een composite web<br />

‘applicatie’. An<strong>de</strong>re literatuur argumenteert dat <strong>de</strong>ze integratie<br />

logica en on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten moeten wor<strong>de</strong>n<br />

aangebo<strong>de</strong>n door het middleware platform [Alo04]. In dit paper<br />

wordt er <strong>van</strong>uit gegaan dat web services gebouwd wor<strong>de</strong>n<br />

bovenop een middleware platform welke <strong>de</strong>ze on<strong>de</strong>rsteunen<strong>de</strong><br />

functionaliteiten en integratie logica biedt om extreme<br />

complexiteit <strong>van</strong> <strong>de</strong> wrapper te <strong>voor</strong>komen. Op het moment dat<br />

<strong>de</strong>ze logica niet afgehan<strong>de</strong>ld wordt door een middleware<br />

platform, ontstaat <strong>de</strong>zelf<strong>de</strong> complexiteit in <strong>de</strong> wrappers als bij<br />

paragraaf 3.1. Om <strong>de</strong>ze re<strong>de</strong>n zal een organisatie, welke een<br />

dienst aanbiedt, die bestaat uit meer<strong>de</strong>re geïntegreer<strong>de</strong> systemen<br />

binnen een organisatie (bedrijfsproces integratie), gebruik<br />

maken <strong>van</strong> een middleware platform om <strong>de</strong> integratie logica en<br />

on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten te bie<strong>de</strong>n.<br />

3.5 Composite Web service<br />

Organisaties willen steeds complexere diensten leveren aan<br />

cliënten en om dit te faciliteren wordt er he<strong>de</strong>ndag al veel<br />

gebruik gemaakt <strong>van</strong> web services. Om complexere web<br />

services aan te bie<strong>de</strong>n kunnen <strong>de</strong>ze opgebouwd wor<strong>de</strong>n uit<br />

verschillen<strong>de</strong> kleine web services, welke een samengestel<strong>de</strong><br />

dienst kunnen leveren.


Organisatie a<br />

Web service interface<br />

Access to internal sys.<br />

Web service middleware<br />

Service interface<br />

Integration logic<br />

Middleware (met middleware<br />

services)<br />

Composite<br />

web service<br />

(organisatie d)<br />

Client Web<br />

service<br />

(organisatie x)<br />

Composite<br />

web service<br />

(organisatie e)<br />

Web service<br />

(organisatie b)<br />

Composite<br />

Web service<br />

(organisatie c)<br />

Figuur 5: Composite Web service<br />

Web services kunnen direct aan elkaar gekoppeld wor<strong>de</strong>n ten<br />

behoeve <strong>van</strong> het integreren <strong>van</strong> systemen. Daarnaast is het ook<br />

mogelijk om twee of meer<strong>de</strong>re web services op te nemen in een<br />

composite web service. Een composite web service is een web<br />

service op zich welke functionaliteiten aanbiedt <strong>van</strong> meer<strong>de</strong>re<br />

web services, <strong>de</strong> dienst <strong>van</strong> <strong>de</strong>ze gecombineer<strong>de</strong> web service<br />

kan weer gebruikt wor<strong>de</strong>n door een cliënt (cliënt web service)<br />

of gecombineerd wor<strong>de</strong>n in weer een nieuwe gecombineer<strong>de</strong><br />

web service.<br />

Een mogelijke architectuur <strong>van</strong> een gecombineer<strong>de</strong> web service<br />

is afgebeeld in figuur 5. In dit figuur is een web service<br />

uitgewerkt (organisatie a), welke samen met <strong>de</strong> web service <strong>van</strong><br />

organisatie b een composite web service d vormt. Hierboven<br />

bevind zich nog een samengestel<strong>de</strong> dienst (organisatie e) en een<br />

afnemer <strong>van</strong> <strong>de</strong> gecombineer<strong>de</strong> dienst (organisatie x). Deze<br />

composite web services maken het mogelijk om snel complexe<br />

diensten te creëren uit simpelere web services alsme<strong>de</strong> het<br />

on<strong>de</strong>rhoud en evolutie <strong>van</strong> <strong>de</strong> systemen te vergemakkelijken<br />

door <strong>de</strong> simpliciteit <strong>van</strong> <strong>de</strong> losse componenten [Alo04].<br />

4. VERGELIJKEN<br />

De in paragraaf 2 besproken variabelen zijn, al dan niet indirect,<br />

besproken bij <strong>de</strong> beschrijvingen <strong>van</strong> <strong>de</strong> architecturen in<br />

paragraaf 3. Deze architecturen zijn in dit hoofdstuk tegen<br />

elkaar uitgezet aan <strong>de</strong> hand <strong>van</strong> <strong>de</strong>ze variabelen in tabel 1<br />

(volgen<strong>de</strong> pagina). In <strong>de</strong>ze tabel zijn in <strong>de</strong> eerste kolom <strong>de</strong><br />

verschillen<strong>de</strong> variabelen opgenomen, welke <strong>voor</strong> ie<strong>de</strong>re<br />

architectuur ingevuld zijn. De architecturen staan in <strong>de</strong> eerste rij<br />

<strong>van</strong> <strong>de</strong> tabel.<br />

In dit hoofdstuk wor<strong>de</strong>n <strong>de</strong> punten in <strong>de</strong>ze tabel toegelicht en<br />

besproken. De scope wordt als laatste toegelicht, aangezien<br />

<strong>de</strong>ze afgeleid is uit <strong>de</strong> an<strong>de</strong>re variabelen.<br />

4.1 Communicatie Mogelijkhe<strong>de</strong>n<br />

Als er point-to-point connecties tussen verschillen<strong>de</strong> systemen<br />

opgezet wordt om <strong>de</strong>ze te integreren, zijn dit allen 1 op 1<br />

connecties – het is niet mogelijk om een bericht te versturen<br />

naar meer<strong>de</strong>re ont<strong>van</strong>gers zon<strong>de</strong>r naar al <strong>de</strong>ze ont<strong>van</strong>gers een<br />

connectie op te zetten. De verantwoor<strong>de</strong>lijkheid om <strong>de</strong>ze<br />

connecties allemaal op te zetten ligt in dit geval bij <strong>de</strong> wrapper.<br />

Middleware lost dit al op door automatisch meer<strong>de</strong>re connecties<br />

<strong>van</strong>uit het versturend systeem aan te maken of door mid<strong>de</strong>l <strong>van</strong><br />

broadcast berichten. Bij een EAI Platform krijgen alle systemen<br />

welke zich ingeschreven hebben <strong>voor</strong> een bepaald type bericht,<br />

<strong>de</strong>ze berichten als ze wor<strong>de</strong>n verstuurd. Hetzelf<strong>de</strong> gaat het bij<br />

web services – hier ont<strong>van</strong>gen die cliënten berichten <strong>van</strong> <strong>de</strong><br />

service provi<strong>de</strong>r waar ze bij ingeschreven staan.<br />

4.2 Complexiteit Wrapper<br />

De wrapper is werkzaam als adapter tussen het legacy systeem<br />

en hun ‘buitenwereld’. Op het moment dat <strong>de</strong>ze wrapper zelf<br />

connecties moet on<strong>de</strong>rhou<strong>de</strong>n (paragraaf 3.1, point-to-point) zal<br />

<strong>de</strong>ze veel integratie logica moeten bevatten – <strong>de</strong> wrapper wordt<br />

verantwoor<strong>de</strong>lijk <strong>voor</strong> het on<strong>de</strong>rhou<strong>de</strong>n <strong>van</strong> connecties.<br />

Afhankelijk <strong>van</strong> het aantal te integreren systemen en <strong>de</strong><br />

hoeveelheid gewenste logica zal <strong>de</strong> wrapper zeer snel erg<br />

complex wor<strong>de</strong>n. Denk bij<strong>voor</strong>beeld aan broadcasting, waarbij<br />

naar elk <strong>van</strong> <strong>de</strong> systemen een bericht gestuurd moet wor<strong>de</strong>n, <strong>de</strong><br />

wrapper zou hier verantwoor<strong>de</strong>lijk zijn <strong>voor</strong> het maken <strong>van</strong> een<br />

connectie naar elk <strong>van</strong> <strong>de</strong> systemen.<br />

In <strong>de</strong> opvolgen<strong>de</strong> architecturen wor<strong>de</strong>n <strong>de</strong>ze integratie logica<br />

afgehan<strong>de</strong>ld door <strong>de</strong> laag boven <strong>de</strong> wrapper. De wrapper is<br />

hierbij niet meer verantwoor<strong>de</strong>lijk <strong>voor</strong> <strong>de</strong> on<strong>de</strong>rsteunen<strong>de</strong><br />

faciliteiten als beschreven in paragraaf 2 (load balancing,<br />

replicatie, logging, persistentie, transactie garantie, filtering,<br />

routing, message broadcasting, security e.a..). Door <strong>de</strong>ze<br />

verschuiving <strong>van</strong> logica is <strong>de</strong> wrapper is <strong>de</strong> an<strong>de</strong>re architecturen<br />

alleen nodig als vertaler.<br />

4.3 Dynamische veran<strong>de</strong>ringen<br />

De mogelijkheid om nieuwe systemen binnen een bestaan<strong>de</strong><br />

architectuur op te nemen, zon<strong>de</strong>r dat an<strong>de</strong>re componenten in <strong>de</strong><br />

architectuur (erg) aangepast moeten wor<strong>de</strong>n is niet in alle<br />

architecturen terug te vin<strong>de</strong>n.<br />

Bij het invoegen <strong>van</strong> een nieuw systeem binnen een point-topoint<br />

architectuur zal elke wrapper, wiens systeem<br />

mogelijkerwijs informatie wil uitwisselen met het nieuwe<br />

systeem, aangepast moeten wor<strong>de</strong>n om connecties te<br />

on<strong>de</strong>rhou<strong>de</strong>n met dit nieuwe systeem. Bij conventionele<br />

middleware zal <strong>de</strong> configuratie <strong>van</strong> <strong>de</strong> middleware applicatie<br />

aangepast moeten wor<strong>de</strong>n om connecties mogelijk te maken<br />

naar het nieuwe systeem, waardoor ook <strong>de</strong>ze niet echt<br />

‘dynamisch’ te noemen is.<br />

Bij een EAI platform daarentegen wordt er gewerkt met een<br />

publisher/subscriber mo<strong>de</strong>l, waarbij nieuwe systemen zich<br />

kunnen abonneren op berichten <strong>van</strong> an<strong>de</strong>re systemen. De<br />

veran<strong>de</strong>ringen welke in dit systeem gemaakt moeten wor<strong>de</strong>n<br />

beperken zich groten<strong>de</strong>els tot het veran<strong>de</strong>ren <strong>van</strong> <strong>de</strong><br />

abonnementen <strong>van</strong> an<strong>de</strong>re systemen, welke interesse hebben in<br />

<strong>de</strong> berichten <strong>van</strong> dit nieuwe systeem.<br />

Een statische web service en een composite web service<br />

communiceren door mid<strong>de</strong>l <strong>van</strong> standaar<strong>de</strong>n. De standaard<br />

interface <strong>van</strong> <strong>de</strong>ze web services zorgt er<strong>voor</strong> dat elk systeem<br />

welke voldoet aan <strong>de</strong> eisen <strong>van</strong> <strong>de</strong>ze standaard theoretisch aan<br />

te sluiten is op het geheel.<br />

4.4 Gewenste heterogeniteit<br />

De architecturen on<strong>de</strong>rsteunen een bepaal<strong>de</strong> mate <strong>van</strong><br />

heterogeniteit in <strong>de</strong> resource laag. Bij een point-to-point<br />

systeem waarbij verschillen<strong>de</strong> heterogene systemen<br />

geïntegreerd moeten wor<strong>de</strong>n zal in <strong>de</strong> wrapper <strong>de</strong> logica<br />

aanwezig moeten zijn om tussen <strong>de</strong>ze heterogene systemen te<br />

communiceren – <strong>de</strong> ontwikkelaar is hier verantwoor<strong>de</strong>lijk <strong>voor</strong><br />

het opstellen <strong>van</strong> een eigen protocol.


Tabel 1: Vergelijking architecturen<br />

Scope<br />

Communicatie<br />

mogelijkhe<strong>de</strong>n<br />

Complexiteit<br />

wrapper<br />

Dynamische<br />

veran<strong>de</strong>ringen<br />

Gewenste<br />

Heterogeniteit<br />

<strong>Integratie</strong> gemak<br />

Kosten<br />

On<strong>de</strong>rsteunen<strong>de</strong><br />

functionaliteiten<br />

Point-to-Point Middleware EAI Platform Web service Composite web<br />

service<br />

Weinig objecten<br />

/ binnen af<strong>de</strong>ling<br />

Binnen af<strong>de</strong>ling<br />

Intra<br />

organisatorisch<br />

Inter<br />

organisatorisch<br />

Inter<br />

organisatorisch<br />

1-1 1-1, 1-* 1-1, 1-n, 1-* 1-1, 1-n, 1-* 1-1, 1-n, 1-*<br />

Hoog Laag Laag Laag Laag<br />

Zo goed als<br />

onmogelijk<br />

Laag<br />

Door<br />

publisher/subscriber<br />

mo<strong>de</strong>l<br />

Component moet<br />

<strong>de</strong>zelf<strong>de</strong> interface<br />

hebben<br />

Component moet<br />

<strong>de</strong>zelf<strong>de</strong> interface<br />

hebben<br />

Homogeen homogeen homogeen heterogeen heterogeen<br />

Laag bij veel<br />

no<strong>de</strong>s, an<strong>de</strong>rs<br />

hoog<br />

Erg laag bij<br />

weinig objecten<br />

Nee<br />

<strong>Integratie</strong> logica<br />

verborgen <strong>voor</strong><br />

programmeur<br />

Hoog bij weinig<br />

objecten<br />

Ja (afhankelijk<br />

<strong>van</strong><br />

implementatie)<br />

Makkelijk nieuwe<br />

stukken op aan te<br />

sluiten, veel werk<br />

bij weinig systemen<br />

Laag per systeem<br />

(vaak veel objecten)<br />

Ja (afhankelijk <strong>van</strong><br />

implementatie)<br />

Veel werk<br />

overgelaten aan<br />

lagere middleware -<br />

lichtgewicht<br />

Laag door<br />

standaardisatie, wel<br />

middleware nodig<br />

Door on<strong>de</strong>rliggen<strong>de</strong><br />

middleware<br />

Ontwikkelingstijd Zie 4.7 Zie 4.7 Zie 4.7 Zie 4.7 Zie 4.7<br />

Performance<br />

Veel overhead<br />

bij meer<strong>de</strong>re<br />

systemen<br />

Hoog<br />

Overhead door<br />

pub./subscr. sys.<br />

Overhead door<br />

standaard formaat<br />

Uitbreidbaarheid Erg laag Laag Goed Hoog Hoog<br />

Veel werk<br />

overgelaten aan<br />

lagere middleware -<br />

lichtgewicht<br />

Laag door<br />

standaardisatie, wel<br />

middleware nodig<br />

Door on<strong>de</strong>rliggen<strong>de</strong><br />

middleware<br />

Overhead door<br />

standaard formaat<br />

Een middleware systeem en ook <strong>de</strong> EAI platform, bevat<br />

abstracties welke door <strong>de</strong> programmeur gebruikt kunnen<br />

wor<strong>de</strong>n om <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> systemen te laten communiceren,<br />

hierbij moet <strong>de</strong> wrapper <strong>van</strong> het legacy systeem dus voldoen<br />

aan <strong>de</strong>ze standaar<strong>de</strong>n, wat het al iets makkelijker maakt.<br />

Web services communiceren door mid<strong>de</strong>l <strong>van</strong> standaard<br />

interfaces welke <strong>de</strong> heterogeniteit <strong>van</strong> <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> lagen<br />

verbergt.<br />

4.5 Gemak, Ontwikkelingstijd, Kosten<br />

Als er binnen <strong>de</strong> organisatie weinig systemen zijn welke met<br />

elkaar moeten kunnen communiceren, kunnen <strong>de</strong>ze relatief<br />

gemakkelijk en goedkoop direct met elkaar verbon<strong>de</strong>n wor<strong>de</strong>n –<br />

<strong>de</strong> benodig<strong>de</strong> integratie logica is niet al te complex en er is<br />

weinig noodzaak <strong>voor</strong> gea<strong>van</strong>ceer<strong>de</strong>re mid<strong>de</strong>len welke gebo<strong>de</strong>n<br />

wor<strong>de</strong>n door middleware. Bij grotere opstellingen neemt <strong>de</strong><br />

complexiteit, en hiermee ook <strong>de</strong> ontwikkelingstijd en kosten,<br />

gigantisch snel toe (Zie hier<strong>voor</strong> formule 1 in paragraaf 3.1).<br />

Middleware biedt gea<strong>van</strong>ceer<strong>de</strong>re logica welke <strong>voor</strong> <strong>de</strong><br />

programmeur, relatief ten opzichte <strong>van</strong> <strong>de</strong> gebo<strong>de</strong>n<br />

functionaliteit, gemakkelijk op te bouwen is. Deze opstelling is<br />

helaas nog wel re<strong>de</strong>lijk statisch – er moeten re<strong>de</strong>lijk veel<br />

aanpassingen gedaan wor<strong>de</strong>n als er nieuwe systemen<br />

aangesloten moeten wor<strong>de</strong>n en bij grote hoeveelhe<strong>de</strong>n systemen<br />

ontstaan veel configuratie bestan<strong>de</strong>n waarin vermeld staat welke<br />

systemen hoe met elkaar communiceren. Door het<br />

publisher/subscriber mo<strong>de</strong>l bij EAI platformen kunnen<br />

systemen makkelijk in elkaar gezet wor<strong>de</strong>n (zoals ook in<br />

paragraaf 4.3 besproken), <strong>voor</strong>al bij grotere hoeveelhe<strong>de</strong>n<br />

heterogene, over af<strong>de</strong>lingen verspreid<strong>de</strong> systemen is <strong>de</strong><br />

ontwikkelingstijd kort per systeem en zijn <strong>de</strong> kosten laag.<br />

Web services zijn door hun standaardisatie heel gemakkelijk<br />

aan elkaar te koppelen – hierdoor kunnen verschillen<strong>de</strong><br />

configuraties gemakkelijk in elkaar gezet wor<strong>de</strong>n. Doordat web<br />

services weinig integratie logica bevatten, <strong>de</strong>ze bevindt zich in<br />

<strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> (middleware) lagen, zijn web services erg<br />

goedkoop, maar vereisen wel een middleware oplossing welke<br />

<strong>de</strong> on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten en integratie logica op zich<br />

neemt.<br />

4.6 On<strong>de</strong>rsteunen<strong>de</strong> Functionaliteiten<br />

Bij een ‘simpel’ point-to-point systeem zal <strong>de</strong> wrapper alle<br />

integratie logica en alle on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten (load<br />

balancing, replicatie, logging, persistentie, transactie garantie,<br />

filtering, routing, message broadcasting, security e.a. [Alo04,<br />

Das99, Chi01-2]) moeten bevatten. Deze functionaliteiten<br />

zullen hier dus door <strong>de</strong> ontwikkelaar handmatig ingevoegd<br />

moeten wor<strong>de</strong>n. Doordat <strong>de</strong> integratie logica ge<strong>de</strong>centraliseerd<br />

is in een point-to-point systeem (elke wrapper is<br />

verantwoor<strong>de</strong>lijk <strong>voor</strong> <strong>de</strong> connecties met an<strong>de</strong>re systemen),<br />

zullen veel <strong>van</strong> <strong>de</strong>ze functionaliteiten op zo’n manier<br />

geïmplementeerd moeten wor<strong>de</strong>n dat <strong>de</strong>ze met elkan<strong>de</strong>r (met <strong>de</strong><br />

an<strong>de</strong>re wrappers) synchroniseren om zo gezamenlijk <strong>de</strong><br />

functionaliteiten aan te bie<strong>de</strong>n – dit is uiteraard gigantisch veel<br />

werk al dan niet onmogelijk bij veel systemen.<br />

Afhankelijk <strong>van</strong> <strong>de</strong> leverancier/implementatie <strong>van</strong> een<br />

middleware of EAI platform wor<strong>de</strong>n <strong>de</strong>ze functionaliteiten<br />

aangebo<strong>de</strong>n <strong>de</strong>els of geheel [Ber96, Das99]. Afhankelijk <strong>van</strong> <strong>de</strong><br />

wensen <strong>van</strong> een organisatie zal een keuze gemaakt moeten


wor<strong>de</strong>n uit <strong>de</strong> verschillen<strong>de</strong> middleware implementaties welke<br />

er beschikbaar zijn (zie als <strong>voor</strong>beeld <strong>de</strong> opsomming in 3.2) of<br />

zal er zelf een middleware applicatie gemaakt moeten wor<strong>de</strong>n.<br />

Web services bevatten zelf in principe zo min mogelijk<br />

on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten, ze gebruiken <strong>de</strong><br />

functionaliteiten <strong>van</strong> <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> middleware hier<strong>voor</strong><br />

[Alo04].<br />

4.7 Ontwikkelingstijd<br />

De ontwikkelingstijd per systeem, welke komt kijken bij <strong>de</strong><br />

verschillen<strong>de</strong> architecturen, heeft een zeer sterke relatie met het<br />

aantal systemen. Zo kan een point-to-point oplossing snel in<br />

elkaar gezet wor<strong>de</strong>n bij een klein aantal systemen, maar loopt<br />

<strong>de</strong> hoeveelheid co<strong>de</strong> exponentieel op bij meer<strong>de</strong>re systemen<br />

zoals weergegeven in paragraaf 3.1.<br />

Het installeren <strong>van</strong> een conventionele middleware oplossing<br />

kost is het begin veel tijd door <strong>de</strong> configuratie <strong>van</strong> het geheel.<br />

Het aansluiten <strong>van</strong> systemen op <strong>de</strong>ze middleware opstelling<br />

kost bij elk opvolgend systeem iets meer tijd, doordat <strong>de</strong><br />

configuratie <strong>van</strong> an<strong>de</strong>re systemen aangepast moeten wor<strong>de</strong>n om<br />

berichten te kunnen ont<strong>van</strong>gen en versturen naar het nieuw<br />

aangesloten systeem. De ontwikkelingstijd neemt niet zo<br />

dramatisch toe als bij meer<strong>de</strong>re systemen op een point-to-point<br />

architectuur. De ontwikkelingstijd per systeem is met weinig<br />

systemen erg hoog door <strong>de</strong> initiële configuratie, <strong>de</strong>ze neemt af<br />

als er meer systemen aangesloten wor<strong>de</strong>n en zal weer oplopen<br />

als er erg veel systemen op wor<strong>de</strong>n aangesloten door <strong>de</strong><br />

additionele configuratie welke plaats moet vin<strong>de</strong>n bij systemen<br />

waar een nieuw systeem mee te maken krijgt.<br />

Bij een EAI Platform kunnen systemen makkelijk aangesloten<br />

wor<strong>de</strong>n en hoeven er erg weinig aanpassingen gemaakt te<br />

wor<strong>de</strong>n als er nieuwe systemen op het platform wor<strong>de</strong>n<br />

aangesloten. Bij een groot aantal systemen is <strong>de</strong><br />

ontwikkelingstijd daarom lager dan bij conventionele<br />

middleware.<br />

Web services maken gebruik <strong>van</strong> middleware <strong>voor</strong> veel <strong>van</strong> <strong>de</strong><br />

on<strong>de</strong>rsteunen<strong>de</strong> functionaliteit, waardoor <strong>de</strong> ontwikkelingstijd<br />

<strong>van</strong> het geheel (web services + on<strong>de</strong>rliggen<strong>de</strong> lagen) hoog zal<br />

liggen. Naarmate er meer organisaties connecties on<strong>de</strong>rhou<strong>de</strong>n<br />

met <strong>de</strong> organisatie, en er dus door <strong>de</strong> standaardisatie <strong>van</strong> web<br />

services geen aparte logica opgenomen hoeft te wor<strong>de</strong>n, neemt<br />

<strong>de</strong> ontwikkelingstijd per systeem ten opzichte <strong>van</strong> een integratie<br />

<strong>van</strong> losse middleware platformen tussen organisaties af.<br />

4.8 Performance<br />

Verschillen<strong>de</strong> architecturen hebben verschillen<strong>de</strong> maten <strong>van</strong><br />

overhead. In een poin-to-point architectuur met weinig<br />

systemen is er alleen <strong>de</strong> overhead <strong>van</strong> een wrapper welke <strong>de</strong><br />

berichten <strong>van</strong> <strong>de</strong> on<strong>de</strong>rliggen<strong>de</strong> legacy systemen omvormt naar<br />

een gemeenschappelijk protocol. Naarmate er meer integratie<br />

logica en on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten en meer systemen in <strong>de</strong><br />

integratie opgenomen wor<strong>de</strong>n loopt ook <strong>de</strong> overhead<br />

exponentieel op.<br />

Middleware oplossingen faciliteren <strong>de</strong>ze connecties en zorgen<br />

met behulp <strong>van</strong> on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten als load balancing<br />

weer <strong>voor</strong> min<strong>de</strong>r bottlenecks. EAI platformen hebben door hun<br />

publisher/subscriber aanpak meer overhead doordat het<br />

platform alle berichtgeving tussen <strong>de</strong> systemen afhan<strong>de</strong>lt.<br />

Web services zijn geheel gebaseerd op standaard interfaces<br />

waarbij <strong>de</strong> berichten <strong>van</strong> het on<strong>de</strong>rliggen<strong>de</strong> middleware<br />

platform weer omgezet moeten wor<strong>de</strong>n naar <strong>de</strong>ze standaard, wat<br />

weer meer overhead levert.<br />

4.9 Uitbreidbaarheid<br />

De uitbreidbaarheid <strong>van</strong> <strong>de</strong> verschillen<strong>de</strong> architecturen is reeds<br />

dui<strong>de</strong>lijk vertolkt door paragraaf 4.3. Hier wordt dui<strong>de</strong>lijk<br />

gemaakt dat point-to-point systemen erg slecht schaalbaar zijn.<br />

Daarnaast zijn conventionele middleware oplossingen beter<br />

schaalbaar, maar toch gelimiteerd doordat bij aanpassingen veel<br />

configuratie bestan<strong>de</strong>n aangepast moeten wor<strong>de</strong>n.<br />

EAI Platformen zetten een stap in e goe<strong>de</strong> richting door het<br />

publisher/subscriber mo<strong>de</strong>l, welke er<strong>voor</strong> zorgt dat er makkelijk<br />

nieuwe systemen toe te voegen zijn. Web services zijn<br />

makkelijk uitbreidbaar door hun standaardisatie.<br />

4.10 Scope<br />

De verschillen<strong>de</strong> architecturen zijn ontwikkeld om<br />

verschillen<strong>de</strong> systemen met elkaar te integreren en bezitten<br />

hier<strong>voor</strong> <strong>de</strong> nodige functionaliteit. Zo kan bij point-to-point<br />

maar een erg beperkt aantal homogene systemen wor<strong>de</strong>n<br />

geïntegreerd, waarbij <strong>de</strong> ontwikkelaar geheel verantwoor<strong>de</strong>lijk<br />

is <strong>voor</strong> <strong>de</strong> integratie logica en on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten.<br />

De kosten lopen hoog op en <strong>de</strong> performance loopt snel terug als<br />

er te veel systemen wor<strong>de</strong>n aangesloten. Hierdoor is <strong>de</strong>ze het<br />

best geschikt in een kleine scope – binnen af<strong>de</strong>lingen <strong>van</strong> een<br />

organisatie.<br />

Middleware kan meer<strong>de</strong>re homogene systemen integreren,<br />

heterogene systemen wor<strong>de</strong>n beschikbaar gemaakt door mid<strong>de</strong>l<br />

<strong>van</strong> wrappers, maar <strong>de</strong>ze is ontwikkeld om <strong>de</strong> communicatie te<br />

on<strong>de</strong>rsteunen <strong>van</strong> systemen in <strong>de</strong> resource laag – welke het dus<br />

niet standaard geschikt maakt om het bedrijfsproces te<br />

integreren. Middleware bevat <strong>de</strong> nodige integratie logica en<br />

on<strong>de</strong>rsteunen<strong>de</strong> faciliteiten om <strong>de</strong> communicatie tussen een<br />

statische set systemen te on<strong>de</strong>rsteunen. En is om <strong>de</strong>ze re<strong>de</strong>nen<br />

het meest geschikt om te gebruiken binnen een af<strong>de</strong>ling.<br />

Een EAI Platform is een uitbreiding <strong>van</strong> middleware, welke<br />

geschikt gemaakt is om verschillen<strong>de</strong> soorten middleware aan<br />

elkaar te koppelen. Door <strong>de</strong> schaalbaarheid en <strong>de</strong><br />

koppelingsmogelijkhe<strong>de</strong>n <strong>van</strong> het EAI Platform kan <strong>de</strong>ze<br />

wor<strong>de</strong>n gebruikt om het hele bedrijfsproces te integreren.<br />

Er is daarentegen een groot verschil in <strong>de</strong> manier <strong>van</strong><br />

communiceren tussen verschillen<strong>de</strong> systemen in <strong>de</strong> organisatie<br />

en tussen organisaties (firewalls / vertrouwen / verschillen<strong>de</strong><br />

middleware oplossingen). Hierdoor is een EAI Platform niet <strong>de</strong><br />

beste oplossing <strong>voor</strong> interorganisatorische integratie. Web<br />

services bie<strong>de</strong>n een oplossing om integratie tussen organisaties<br />

te on<strong>de</strong>rsteunen door standaar<strong>de</strong>n. Door <strong>de</strong> standaard interfaces<br />

welke gebo<strong>de</strong>n wor<strong>de</strong>n door web services, kunnen organisaties<br />

gemakkelijk <strong>de</strong> informatie uitwisselen welke ze willen. Web<br />

services zijn daarom erg geschikt <strong>voor</strong> interorganisatorische<br />

integratie.<br />

Door mid<strong>de</strong>l <strong>van</strong> composite web services kunnen verschillen<strong>de</strong><br />

geïntegreer<strong>de</strong> systemen als een geïntegreerd component<br />

aangebo<strong>de</strong>n wor<strong>de</strong>n. Hierbij kunnen verschillen<strong>de</strong> organisatie<br />

samenwerken om een geïntegreer<strong>de</strong> dienst aan te bie<strong>de</strong>n.<br />

Hierbij is er dus geen sprake <strong>van</strong> 1 cliënt en 1 provi<strong>de</strong>r, maar<br />

bestaat <strong>de</strong> provi<strong>de</strong>r uit verschillen<strong>de</strong> losse an<strong>de</strong>re web services.<br />

CONCLUSIE<br />

In dit paper zijn vijf verschillen<strong>de</strong> architecturen besproken om<br />

al dan niet heterogene legacy systemen te integreren. Deze<br />

legacy systemen zijn behan<strong>de</strong>ld aan <strong>de</strong> hand <strong>van</strong> verschillen<strong>de</strong><br />

variabelen, waarmee <strong>de</strong>ze architecturen ver<strong>de</strong>elt zijn in hun<br />

scope (situatie).<br />

Een organisatie wil verschillen<strong>de</strong> systemen integreren op<br />

verschillen<strong>de</strong> niveaus. Als <strong>de</strong>ze dat wil doen met een beperkt<br />

aantal systemen, welke in een enkele resource management laag<br />

zitten (in een af<strong>de</strong>ling), dan is het vaak het <strong>voor</strong><strong>de</strong>ligste om


gebruik te maken <strong>van</strong> een point-to-point systeem. Deze kan snel<br />

opgezet wor<strong>de</strong>n en biedt vaak voldoen<strong>de</strong> functionaliteit <strong>voor</strong><br />

<strong>de</strong>ze schaal. Het is daarentegen ook mogelijk om te kiezen <strong>voor</strong><br />

een middleware oplossing – <strong>de</strong>ze oplossing biedt veel meer<br />

uitbreidbaarheid, schaalbaarheid en on<strong>de</strong>rsteunen<strong>de</strong><br />

functionaliteit <strong>voor</strong> <strong>de</strong> organisatie. Daarbij is het mogelijk in<br />

een later stadium gebruik te maken <strong>van</strong> nieuwe ‘lagen’ zoals<br />

web services of eenzelf<strong>de</strong> ‘merk’ middleware om uit te brei<strong>de</strong>n.<br />

Als een organisatie verschillen<strong>de</strong> af<strong>de</strong>lingen met elkaar wil<br />

integreren (intraorganisatorische integratie, bedrijfsproces<br />

integratie), dan kan er beter gekozen wor<strong>de</strong>n <strong>voor</strong> een EAI<br />

platform. Dit platform is in staat te communiceren met an<strong>de</strong>re<br />

EAI platformen en kan door zijn publisher/subscriber logica<br />

makkelijk uitgebreid wor<strong>de</strong>n. De kosten <strong>van</strong> zo’n systeem zijn<br />

<strong>voor</strong>al laag als er vele af<strong>de</strong>lingen in een ‘workflow’<br />

geïntegreerd moeten wor<strong>de</strong>n. Ook dit EAI platform is uit te<br />

brei<strong>de</strong>n met nieuwe lagen als web services en door mid<strong>de</strong>l <strong>van</strong><br />

adapters met vele middleware of EAI platformen te integreren.<br />

Tussen organisaties gel<strong>de</strong>n strikte regels omtrent <strong>de</strong> informatie<br />

welke uitgewisseld mag wor<strong>de</strong>n. Daarnaast gebruiken<br />

verschillen<strong>de</strong> organisaties verschillen<strong>de</strong> soorten EAI platformen<br />

of middleware, wat ertoe zou lei<strong>de</strong>n dat <strong>voor</strong> elke organisatie<br />

waarmee geïntegreerd zou wor<strong>de</strong>n adapters of zelfs middleware<br />

implementaties opgenomen moeten wor<strong>de</strong>n in <strong>de</strong> eigen<br />

organisatie. Deze zou<strong>de</strong>n dan weer via een omweg (een aparte<br />

extra middleware laag) gekoppeld kunnen wor<strong>de</strong>n aan <strong>de</strong><br />

bestaan<strong>de</strong> middleware. Dit zorgt uiteraard <strong>voor</strong> een grote<br />

overhead en complexiteit. Web services standaardiseren <strong>de</strong><br />

communicatie tussen organisaties. Web services zijn weinig<br />

meer dan een extra laag bovenop bestaan<strong>de</strong> middleware<br />

oplossingen, welke <strong>de</strong> on<strong>de</strong>rsteunen<strong>de</strong> functionaliteiten en<br />

integratie logica bevatten, welke het mogelijk te maken om<br />

volgens gemaakte regels te communiceren tussen organisaties.<br />

Om <strong>de</strong>ze re<strong>de</strong>nen is het <strong>voor</strong> een organisatie het verstandigst<br />

om gebruik te maken <strong>van</strong> een web service laag bij <strong>de</strong> integratie<br />

<strong>van</strong> <strong>de</strong> supply chain.<br />

Als organisaties gezamenlijk een gecombineer<strong>de</strong> dienst aan<br />

willen bie<strong>de</strong>n kan dit gerealiseerd wor<strong>de</strong>n met composite web<br />

services. Deze maken het mogelijk om complexe diensten te<br />

creëren welke bestaan uit losse web services <strong>van</strong> verschillen<strong>de</strong><br />

organisaties.<br />

In dit paper wor<strong>de</strong>n verschillen<strong>de</strong> mogelijke architecturen<br />

vergeleken welke door een organisatie gebruikt kunnen wor<strong>de</strong>n<br />

als leidraad <strong>voor</strong> <strong>de</strong> integratie <strong>van</strong> hun legacy systemen. <strong>Legacy</strong><br />

systemen komen he<strong>de</strong>ndaags nog erg veel <strong>voor</strong> aangezien er<br />

niet al te lang gele<strong>de</strong>n grote investeringen in <strong>de</strong>ze systemen zijn<br />

gedaan. Gelei<strong>de</strong>lijk zullen <strong>de</strong>ze legacy systemen wel ver<strong>van</strong>gen<br />

wor<strong>de</strong>n, maar op dit moment wegen <strong>de</strong> kosten <strong>van</strong> het<br />

ver<strong>van</strong>gen nog niet op tegen <strong>de</strong> kosten <strong>van</strong> het integreren <strong>van</strong><br />

<strong>de</strong>ze systemen.<br />

REFERENTIES<br />

[Alo04] G. Alonso, F. Casati, H. Kuno, V. Machiraju, “Web<br />

services – Concepts, Architectures and Applications”,<br />

Springer, Berlin, 2004<br />

[Ber96] P.A. Bernstein, “Middleware”, Communications of<br />

the ACM, Vol 39, No. 2, feb. 1996<br />

[Cal99] A. J. O’Callaghan, “Focus Issue on <strong>Legacy</strong><br />

Information Systems and Business Process Change:<br />

Migrating Large Scale <strong>Legacy</strong> Systems To<br />

Component-Based and Object Technology: The<br />

Evolution of a Pattern Language” Comm. Of<br />

Association for IS, Vol. 2, Article 3, July 1999<br />

[Chi01] C. C. Chiang, “Wrapping legacy systems for use in<br />

heterogeneous computing environments”, Information<br />

and Technology, 2001 (vol. 43, issue 8), 2001, p 497-<br />

507<br />

[Chi01-2] C. C. Chiang, “A Distributed Computing<br />

Architecture for Leveraging Software Reengineering<br />

Systems”, SAC2001, Las Vegas, NV, 2001<br />

[Das99] E.M. Dashofy, N. Medvidovic, R. N. Taylor, “Using<br />

off-The-Shelf Middleware to Implement Connectors<br />

in Distributed Software Architectures”, ICSE, Los<br />

Angeles, 1999<br />

[Emm00] W. Emmerich, “Software Engineering and<br />

Middleware: A Roadmap”, Proceedings of the<br />

Conference on The Future of Software Engineering,<br />

Ireland, p117-129, 2000<br />

[Jur00] M.B. Juric, I. Rozman, M. Hericko, T. Domajnko,<br />

“Integrating legacy systems in distributed object<br />

architecture”, ACM SIGSOFT Software Engineering<br />

Notes, (vol. 25, issue 2), 2000, 35-39<br />

[Lid00] S.W. Liddle, H.C. Mayr, “Conceptual mo<strong>de</strong>ling for E-<br />

business and the web”, Springer, Berlin, 2000<br />

[Llo99] A. D. Lloyd, R. Dewar, R. Pooley, “<strong>Legacy</strong><br />

Information Systems and Business Process Change: A<br />

Patterns Perspective”, Comm. Of Association for IS,<br />

Vol. 2, Article 24, December 1999<br />

[Mec01] M. Mecella, B. Pernici, “Designing Wrapper<br />

Components for e-services in integrating<br />

heterogeneous systems”, The VLDB Journal, (vol. 10,<br />

issue 1), 2-15, 2001<br />

[Mon00] S. A. Mondal, K. D. Gupta, “Choosing a Middleware<br />

for Web-Integration of a <strong>Legacy</strong> Application”,<br />

Software Engineering Notes, ACM Sigsoft, Vol. 25,<br />

No. 3, 2000<br />

[Ser02] D. Seriain, “Middleware and enterprise application<br />

integration : the architecture of e-business solutions”,<br />

Springer, London, 2002, 3rd ed.<br />

[Sut02] J. Sutherland W. v.d. Heuvel, “Enterprise Application<br />

Integration and Complex Adaptive Systems”,<br />

Communications of the ACM, vol. 45, no. 10, 59-64,<br />

October 2002<br />

[Zou00] Y. Zou, K. Kontogiannis, “Web-based specification<br />

and integration of legacy services”, IBM Centre for<br />

Ad<strong>van</strong>ced Studies Conference, Proceedings of the<br />

2000 conference on Collaborative research, 2000, p.<br />

17-32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!