Follow Us on Twitter

Kies het juiste integratietool uit Oracle Fusion Middleware 11g

Gepubliceerd in

Juli 2011 - Bij het grootste deel van de klanten waar ik het afgelopen jaar mee gesproken heb, is minimaal één keer de vraag gesteld welk integratietool voor een bepaald probleem moet worden ingezet. Dit Whitebook vergelijkt een aantal producten uit de Oracle Fusion Middleware (FMW) stack en geeft aanbevelingen welke tool voor welk probleem het beste kan worden ingezet.

Steeds meer organisaties gebruiken principes van een Service Oriented Architecture (SOA) voor het oplossen en inrichten van de integraties van hun heterogene applicatielandschap. De afgelopen jaren is hiervoor een steeds groter aantal tools en infrastructuur beschikbaar gekomen. Ook de volwassenheid van de tools in deze markt is beter geworden.

Door overnames is weliswaar het aantal leveranciers afgenomen, maar niet altijd het aantal producten. Voorbeelden daarvan zien we bij de overnames door Oracle van BEA en Sun. Daarbij zijn zeker niet alle producten die een overlap hebben verdwenen. Juist door deze overlap ontstaat de vraag welk product voor een bepaalde uitdaging te gebruiken. In dit Whitebook richten we ons op producten uit de Fusion Middleware stack die Oracle als strategisch heeft bestempeld.

Wat moet een integratielaag kunnen?

Om integratietools te kunnen beoordelen moeten we eerst een idee hebben wat ze moeten kunnen. Welke functie ze moeten vervullen. De nadruk bij het beantwoorden van deze vraag ligt op de capaciteiten van een Service Bus, die vaak als een kern van een integratie-oplossing wordt gezien. Een Service Bus bevat de belangrijkste functies die nodig zijn om een succesvolle toekomstvaste integratie(laag) te realiseren. Om welke functies dat gaat en daarmee de voorgaande vraag te beantwoorden kijken we naar het VETRO pattern dat David Chapell beschrijft in zijn boek Enterprise Service Bus: Theory in Practice. VETRO is een acroniem voor: Validate, Enrich, Transform, Route en Operate. Deze worden in de volgende alinea’s besproken.

Bij het valideren (Validate) wordt gekeken naar de mogelijkheden om de correctheid van een bericht te beoordelen voor dit doorgestuurd wordt of op een andere manier wordt afgehandeld. Validatie kan bijvoorbeeld ten opzichte van een XSD schema of Schematron (regelgebaseerde validatie voor XML) . Daarnaast zijn ook tools waarin zelf een validatie kan worden gecodeerd of geconfigureerd.

Het verrijken van data (Enrich) draait om het toevoegen van data aan een bericht waardoor het voor de ontvangende partij(en) meer waardevol wordt, of juist alleen dan interpreteerbaar is. In de meeste gevallen zal hiervoor het opvragen van data in een of meer systemen noodzakelijk zijn. Een voorbeeld van het verrijken van data is het toevoegen van artikelgegevens, die verplicht zijn in het ontvangende systeem, terwijl standaard alleen met identificaties gecommuniceerd wordt.

Een of meer transformaties (Transform) van het bericht zorgen ervoor dat het ontvangen bericht zodanig omgezet wordt dat het voor de ontvangende partij te begrijpen is. Het kan gaan om een omzetting van protocol, datastructuur of content. In het laatste geval spreken we van Translatie. Daarbij wordt bij voorbeeld de taal veranderd, een andere identificatie meegegeven, of dollar in euro omgezet. Binnen Mediator wordt hiervoor vaak Domain Value Mapping (DVM) gebruikt.

Voor het omzetten van de datastructuur zal veelal XSLT of XPath worden gebruikt. Een voorbeeld van het omzetten van de datastructuur is het omzetten van een XML bericht van de XSD die bij de aanleverende applicatie hoort naar een canoniek datastructuur.

De routering (Route) zorgt ervoor dat het bericht wordt gestuurd naar de juiste afnemer(s). Deze routering kan dynamisch zijn. Als voorbeeld wordt vaak genoemd dat een bepaalde applicatie verschillende instanties heeft voor verschillende werelddelen of landen. Het wel of niet doorsturen van een bericht naar deze applicatie hangt dan af van het feit of het bericht binnen deze geografische indeling verwerkt hoort te worden. Er zijn ook diverse andere scenario’s denkbaar, bijvoorbeeld een prijswijziging van een product die aan een bepaald systeem alleen doorgegeven hoeft te worden als er in de toekomst een (kortings)actie gepland is voor dat product.

Onder de noemer operatie (Operate) worden de functies bekeken die de doelservice aanroepen of op een andere manier interacteren met de doel applicatie(s).  Hier wordt aangegeven welke operatie binnen een webservice van de doel applicatie wordt aangeroepen.

Naast deze functies moet een moderne Service Bus of andere integratie-infrastructuur vaak ook nog functies vervullen die niet één-op-één onder een dan de voorgaande aspecten te plaatsen zijn. Denk daarbij aan:

  • Beheer - waaronder monitoren en auditing van het integratieplatform vallen, maar ook throttling – het sturen van het aantal berichten dat verwerkt kan worden;
  • Oplossingen om te voldoen aan niet-functionele eisen. Denk hierbij aan gegarandeerde levering van berichten, beschikbaarheid – waarvoor vaak queuing voor het verwerken van pieken ingezet wordt – en transactiemanagement;
  • Endpoint virtualisatie – Dit wordt mogelijk gemaakt door de routing capaciteiten, maar kan door het belang bij het ontkoppelen niet onvermeld blijven. Door webservice clients een endpoint op de Service Bus aan te laten roepen in plaats van rechtstreeks wordt een virtualisatielaag gecreëerd. Aan de beheerkant is het nu mogelijk servers, applicaties en werbservices te verplaatsen zonder dat alle clients wijzigingen hoeven door te voeren. Alleen de Service Bus configuratie hoeft te worden aangepast.

Overzicht Oracle infrastructuur voor integratie

Een deel van de vraag naar het beste tool voor een integratie vraagstuk kan worden beantwoord door naar de historie en achtergrond van de diverse integratietools te kijken. Deze paragraaf geeft een overzicht van de belangrijkste integratietools uit de Fusion Middleware stack. In de volgende paragrafen wordt op de individuele producten ingegaan.

Overzicht Oracle infrastructuur voor integratie

Het eerste product dat een belangrijk onderdeel vormt van wat later de SOA Suite ging heten, is Oracle BPEL Process Manager. BPEL Process Manager, dat gebaseerd is op BPEL, een standaard formaat voor procesbeschrijving, kwam in handen van Oracle door de overname van Collaxa in 2004 (zie ook http://www.whitehorses.nl/whitebooks/2004/proces-geori%C3%ABnteerde-inte...). Een tool als BPEL Process Manager maakt het eenvoudig om webservices te orchestreren tot (bedrijfs) processen. Binnen de activities zoals gedefinieerd in de BPEL standaard, zijn verschillende mogelijkheden voor data manipulatie, flow logica and het afhandelen van fouten en uitzonderingen. Sinds SOA Suite 11g is BPEL een van de componenten binnen Service Component Architecture (SCA).

In 2006 heeft Oracle de eerste versie van de zelf ontwikkelde Service Bus uitgebracht. Deze Service Bus was een onderdeel van de SOA Suite 10g en werd Oracle Enterprise Service Bus (OESB) genoemd. Met het uitbrengen van SOA Suite 11g is de Routing Service van deze OESB hernoemt. Deze gaat nu door het leven als Mediator. Sinds 11g is de Mediator een van de componenten waarmee binnen een Service Component Architecture (SCA) transformatie en routering van (XML) berichten wordt uitgevoerd.

Met de overname van BEA Systems in 2008 door Oracle kwam ook de AquaLogic Service Bus (ALSB) als Oracle product beschikbaar. Deze ALSB is aangepast aan de Oracle standaarden en wordt in de 11g suite Oracle Service Bus (OSB) genoemd. De OSB is de stand-alone enterprise level Service Bus van Oracle. Oracle heeft de laatste versies van de OSB voorzien van belangrijke features uit Mediator die voorheen nog niet beschikbaar waren. Voorbeelden daarvan zijn domain-value-maps (DVM), cross-references (XRefs) en het ontwikkelen van JCA adapters voor OSB in JDeveloper.

Oracle Data Integrator (ODI) is een product dat ontwikkeld is door Sunopsis, een bedrijf dat in 2006 door Oracle is overgenomen. ODI is gericht op data-integratie. Met een declaratieve aanpak kan een data-integratie en -transformatie worden opgezet. In tegenstelling tot de meeste ETL (Extract Transform Load) producten heeft ODI een E-LT opzet. De gegevens worden eerst geladen (Load) en pas daarna binnen het RDBMS getransformeerd. Daarbij worden de capaciteiten van het RDBMS (op het gebied van Transformatie) beter gebruikt zonder dat een additioneel platform voor transformatie nodig is.

Welk tool past?

Welk tool het beste past hangt vanzelfsprekend af van de eigenschappen van de situatie en de integratie die gerealiseerd moet worden. Die zijn niet allemaal bekend voor elke situatie. Daarom kiezen we de omgekeerde aanpak. We beschrijven de eigenschappen van de integraties waar een bepaald tool goed tot zijn recht zal komen. Dat overzicht vind u hieronder voor de reeds genoemde producten.

BPEL Process Manager

BPEL Process Manager is gebouwd rond de standaard activities, zoals die in de BPEL standaarden zijn gedefinieerd. Deze activities vallen in de volgende groepen: webservice aanroepen of ontvangen van berichten, datamanipulatie, besturingslogica en event- en foutafhandeling. BPEL wordt gebruikt voor het orchestreren van services tot (bedrijfs) processen. Gezien de aard van de activities is BPEL zeer geschikt in gevallen die vragen om complexere data-verrijking, -transformatie of routering.

Daarnaast heeft BPEL Process Manager een stateful engine. Dat betekent dat de state van het systeem wordt bijgehouden. Hierdoor wordt het eenvoudig om te zien welke berichten ontvangen zijn en wat daarmee gebeurt. Daarnaast is het bij BPEL eenvoudig interactie met mensen in de oplossing te integreren, middels een Human Task. Nadeel is dat er voor de implementatie hiervan veel data in een database wordt opgeslagen. Hierdoor is BPEL Process Manager minder geschikt om grote hoeveelheden berichten te verwerken dan de andere tools. Daarnaast vraagt deze opslag natuurlijk ook opslagcapaciteit.

Mediator

Als je kijkt naar de opbouw van de Routing Service binnen Mediator (zie screenshot), heb je snel door wat de mogelijkheden van het tool zijn: Ontvangen berichten kunnen worden gefilterd (zo wordt bepaald of ze wel of niet door gestuurd worden in de betreffende route), er kan een transformatie (XSLT) worden uitgevoerd en er wordt een endpoint van een andere webservice aangeroepen. Door Mediator te koppelen met Technology Adapters zijn uitgebreidere (protocol) transformaties mogelijk.

Mediator

Vergeleken met BPEL Process Manager, is Mediator meer lichtgewicht en meer berichtgeoriënteerd. Het is veel minder geschikt om meerdere (web) services in een bepaalde volgorde aan te roepen. Dat maakt dat Mediator vooral gebruikt wordt in omgevingen waar in beperkte mate data verrijking nodig is in de integratie.

Mediator is vooral geschikt voor transformatie van datastructuur of protocol. Daarbij zal het met name worden ingezet om dit binnen een (SCA) composite te doen of voor de berichten die een composite binnenkomen. Mediator biedt een goede integratie met de overige componenten uit de SOA Suite, ook aan de beheerkant.

Oracle Service Bus (OSB)

De globale opbouw van de berichtverwerking in de OSB is in de volgende figuur weergegeven:

OSB Message Magic

Een bericht wordt ontvangen aan de kant van de Proxy Service. Op het bericht kunnen allerlei validatie, verrijking, transformatie en routeringslagen (VETR) worden toegepast. In de figuur worden deze Message Magic genoemd. Vervolgens wordt via een Business Service het endpoint van een webservice met een verdere implementatie van de benodigde logica aangeroepen.

Een van de verschillen met de Mediator is dat OSB (tijdelijke) resultaten kan opslaan in variabelen. Deze kunnen vervolgens worden gebruikt om bijvoorbeeld de header van het bericht aan te passen of te gebruiken voor de routering van het bericht. Ook is OSB beter geschikt om samengestelde services (services die weer bestaan uit andere services) te realiseren. Door OSB zullen deze in tegenstelling tot bij BPEL Process Manager stateless zijn en daarom meer geschikt voor de implementatie van synchrone services.

OSB wordt ingezet bij de interface met externe afnemers of aanbieder van services. Daarnaast ook om meerdere bedrijfsdomeinen te verbinden of meer in implementatie termen de verbinding tussen SCA composites te leggen. OSB biedt daarbij wat men noemt “Enterprise Level Management Capabilities”. Dat komt tot uiting in de mogelijkheden voor load balancing en result caching, maar ook in de throttling (om pieken in het berichten verkeer op te vangen) mogelijkheden en instellingen die parallelle uitvoering van Business Services mogelijk maken. Oracle OSB 11g is daarmee zeer geschikt voor omgevingen die zeer grote hoeveelheden berichten moeten verwerken.

Oracle Data Integrator

Zoals de naam al aangeeft is ODI vooral gericht op data-integratie. ODI kan daarbij zeer grote volumes verwerken (bulk). ODI heeft beperkte mogelijkheden voor routering. De andere besproken tools uit dit artikel zijn meer geschikt voor integratie van functionaliteit en data. De andere besproken tools beschikken niet over een architectuur die geschikt is voor grote hoeveelheden data zoals ODI dat kan.
In veel organisaties zal ODI gebruikt worden naast een service bus of een ander integratieplatform dat ook geschikt is om bedrijfslogica te delen en beschikbaar te stellen voor andere applicaties.

Samenhang

Uit het voorgaande is duidelijk geworden dat elke tool zijn sterke en zwakke punten heeft. De tools kunnen ook naast elkaar worden ingezet waardoor de voordeel elkaar versterken. Een globaal overzicht van een dergelijke inzet is in de onderstaande figuur weergegeven en zal daaronder worden toegelicht.

Samenhang integratietools

ODI wordt ingezet voor het synchroniseren van grote hoeveelheden (bulk) data, in die gevallen waar het niet mogelijk of rendabel is de wijzigingen via webservices real-time door te geven. Daarnaast gebruiken we het om bijvoorbeeld een data warehouse te vullen.

Mediator wordt ingezet voor transformatie en routering binnen een bedrijfsdomein of meer in implementatie termen een SCA composite. Daarnaast wordt het ingezet binnen een composite waar er protocol of datastructuur transformaties nodig zijn.

BPEL wordt binnen de composites ingezet voor het orchestreren van services tot bedrijfsprocessen en al smenselijke interactie nodig is (HumanTask). Waar nodig wordt het gebruikt voor verrijking en meer complexe transformaties. Daarnaast wordt het overal ingezet waar stateful integratie noodzakelijk is. De inzet van BPEL wordt vermeden op die plekken waar zeer grote volumes berichten door de integratie gaan.

OSB wordt ingezet om de communicatie met externe partijen en tussen bedrijfsdomeinen (een of meerdere SCA composites) te realiseren. Daarmee wordt de OSB de bus, het medium waarover het transport van de berichten tussen verschillende domeinen getransporteerd worden. De OSB zal daarbij ook gebruikt worden voor endpoint virtualisatie. Naast deze ontkoppeling kunnen hier ook de mogelijkheden als message throttling en result caching worden ingezet om de gevolgen van grote aantallen berichten van afnemers waarop men geen directe invloed hanteerbaar te houden.

BPEL kan ook nog worden ingezet voor het implementeren van bedrijfsprocessen over verschillende composites. Veel organisaties hebben wel bedrijfsprocessen die over de grenzen van meerdere applicaties of bedrijfsdomeinen gaan, maar geen tool om dit te automatiseren. BPEL is een tool dat daarvoor geschikt is.

Conclusie

In dit Whitebook is een overzicht gegeven van de functionaliteit die nodig is in een integratieplatform. Met die achtergrond is gekeken naar vier producten uit Oracle Fusion Middleware 11g: BPEL Process Manager, Mediator, OSB en ODI. Voor elk van de vier producten is aangegeven wat de eigenschappen zijn en binnen welke scenario’s ze het beste ingezet kunnen worden. Op basis daarvan kan bepaald worden welk integratietool geschikt is om in bepaalde situatie ingezet te worden en wat de taak verdeling is als ze in samenhang ingezet worden.
 

Referenties

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.