De JBI (Java Business Integrator) standaardiseert het containermodel van een esb (enterprise service bus), dat op zijn beurt weer de ruggengraat voor een zakelijke soa (service oriented architecture) is. Voor sommige mensen is dit gesneden koek, voor anderen totale abracadabra. Chief technology David Chappell van Sonic Software legt voor die laatste groep in een vraaggesprek uit hoe het in elkaar zit.
|
“Een enterprise service bus voorziet in de ruggengraat waarop een zakelijke service oriented architecture kan worden gebouwd. De mogelijkheid om diensten te draaien en met elkaar te verbinden is de kern van een soa. Bij het bouwen van een soa is een integratie-infrastructuur nodig waarmee applicaties en diensten binnen een netwerk met elkaar verbonden kunnen worden. Wanneer een soa zonder esb wordt gebouwd, moet een bedrijf zich verdiepen in andere hulpmiddelen (zoals monitoring en beheer) en de infrastructuur (integratie-technologie) zelf. Een esb geeft een onderneming de flexibiliteit die nodig is om op veranderingen in te springen.”
Hoe passen middleware en eai (enterprise application integration) hierin?
“Esb is een platform voor het bouwen van soa’s en die andere twee niet. Een esb bevat ook middleware. Eerder werden applicaties geïntegreerd met eai, maar dit zal binnen twee jaar verdwijnen en worden vervangen door esb.
Wanneer een traditioneel middelwareproduct wordt gebruikt, schrijven ontwikkelaars code om de connecties tussen programma’s aan te geven, bij een esb gebruiken integratie-architecten een configuratie voor de interacties tussen diensten. Dit wordt ook wel ‘loose coupling’ genoemd. Doordat het niet geprogrammeerd wordt, staan de connecties tussen applicaties en diensten in een soa niet vast in ieder programma.”
Wat is het verschil tussen applicaties en diensten?
“Er is geen verschil. Er is wel een onderscheid. Iedere onderneming heeft legacy-applicaties. Bij het bouwen van een soa is het de wens om ook deze bestaande applicaties te kunnen blijven gebruiken en er voordeel uit te halen. De manier om dat te doen in een soa is door er een diensten-interface omheen te bouwen en deze applicaties weer te geven als diensten op een esb. Zodra je dat hebt gedaan, is er geen verschil meer.”
Is een esb een abstract concept of een product?
“Er is enige verwarring over de definitie van een esb. Sommigen beschouwen het als een abstract patroon dat toegepast kan worden op meerdere technologieën. Bij Sonic Software, wij zijn de uitvinders van het concept, zien we het als een product-infrastrucutuur dat gekocht en gebruikt kan worden. Het feit dat het een product is, maakt dat het in een technologiecategorie past. Er is weinig waarde in het hebben van een abstract concept.”
Een soa wordt gebouwd op een esb. Toch was het concept soa er eerder dan de esb. Zou dat niet andersom moeten zijn?
“Dat was wel leuk geweest, ja. Soa is het abstracte concept en bestaat al zeker een decennium. Er waren goede hulpmiddelen voorhanden om in de infrastructuur voor een soa te voorzien, zoals Corba (Common Object Request Broker Architecture). Corba was ook bedoeld voor het bouwen van soa’s, maar de reden waarom het nooit wereldwijd omarmd is, is dat de implementatie van een soa bovenop een Corba-infrastructuur te complex was. Dat kwam doordat Corba juist gebruikmaakte van nauw gekoppelde diensten, waardoor het moeilijk was nieuwe diensten toe te voegen en het geheel te beheren.”
Is de applicatieserver de tegenhanger van een esb?
“Nee, ze vullen elkaar aan. Het is de bedoeling dat ze samenwerken. Een applicatieserver kan aansluiten op een esb door standaard J2EE-interfaces te gebruiken zoals JMS (Java Message Server) en ‘message driven beans’. Wanneer je integreert op een esb is een applicatieserver gewoon een onderdeel dat geïntegreerd kan worden. In die zin kan een esb helpen om een J2EE-applicatieserver te integreren met niet-J2EE-applicaties en andere applicatieservers.
Een van de voordelen van een ESB is dat het componenten van J2EE gebruikt, maar dat het niet nodig is om het hele platform te hebben. Applicatieservers zijn goed in datgene waarvoor ze gemaakt zijn; het draaien van bedrijfslogica en webpagina’s in een zakelijk portaal.”
Wat is Java Business Integration (JBI)?
“JBI is een inspanning van de Javagemeenschap. Het doel van JBI is te voorzien in een standaard set interfaces die het mogelijk maken om integratiecomponenten samen te voegen op een platform-onafhankelijke en protocol-onafhankelijke manier. Met integratiecomponent bedoel ik bijvoorbeeld een data-transformatie-machine. Een leverancier kan een derde partij voorzien van datatransformatie die ze geschikt maken voor JBI. Vervolgens is het mogelijk om dat samen te voegen met andere componenten die ook geschikt gemaakt zijn voor JBI. Het idee is dat dit samenvoegen door middel van de esb gebeurd.
JBI gaat een aantal componenten van de esb architectuur standaardiseren. Binnen een esb is er een containermodel voor het draaien en beheren van diensten en dat is het deel dat JBI moet standaardiseren. Volgens Sonic gaat JBI vorm geven aan integratie en esb’s zoals Enterprise Java Beans vorm gaven aan de applicatieserver definitie eind jaren negentig.”< BR>