Enterprise Service Bus (ESB)

Professioneel verbinden van software-pakketten met een ESB

Verbind zakelijke software-pakketten professioneel tot één effectief systeem met ESB

Knoop de beste software aan elkaar

Binnen je bedrijf worden waarschijnlijk verschillende applicaties gebruikt. Standaard software of maatwerk software, het loopt vast door elkaar heen. Met een ESB knoop je die verschillende software professioneel aan elkaar. Zo doet iedere software afzonderlijk waar het goed in is, terwijl het als één systeem opereert. Best of breed noemen we dat.

Makkelijk uitbreiden

Heb je al een ESB of wil je later nieuwe software toevoegen aan je omgeving? Dat gaat heel eenvoudig met een ESB. De ESB is een tussenlaag, waar je nieuwe software of een nieuwere versie van software op aansluit. Zo hoef je geen nieuwe functionaliteit of wijzigingen in alle afzonderlijk gekoppelde software-pakketten aan te brengen.

Is een ESB de oplossing voor mijn organisatie?

Als kritische bedrijfsprocessen in jouw organisatie afhankelijk zijn van twee of meer softwarepakketten (maatwerk- en standaardpakketten), dan is een ESB zeker een aanrader. ‘Traditioneel’ zouden die verschillende systemen met elkaar verbonden worden door bijvoorbeeld alle systemen afzonderlijk met elkaar te verbinden, maar met een ESB ontstaat een tussenlaag. Een soort hub. Daardoor hoef je bij verandering van je software of integratie met nieuwe software alleen de verbinding met de hub (de ESB) te wijzigen en blijft software die niet wijzigt of vernieuwt onaangepast.

Situaties waarin een ESB-oplossing uitkomst biedt voor bedrijven zijn:

  • Als je verwacht dat de IT voor de kritische bedrijfsprocessen de komende jaren flink zal groeien of het aantal bedrijfsprocessen de komende jaren zal toenemen.

  • Als je bedrijfsprocessen afhankelijk zijn van datastromen met externe systemen waarbij je wijziging van die software niet zelf in de hand hebt. Denk bijvoorbeeld aan externe partners of systemen zoals leveranciers, banken, keurmerken, etc.

  • Als je een aantal standaard softwarepakketten voor de verschillende bedrijfsprocessen in je organisatie naar tevredenheid gebruikt, maar ze wel met elkaar wilt integreren. Denk aan pakketten voor CRM, bestellingen, betaalsystemen, etc.

  • Als een bedrijfskritische wijziging van de data uit één systeem tegelijk moet worden doorgevoerd in verschillende andere systemen.

  • Als de IT in je organisatie communiceert d.m.v. verschillende communicatieprotocollen of communicatietechnieken, zoals bijvoorbeeld REST, API, JSON, FTP, webservices, XML, EDI, SFTP of email.

  • Als het belangrijk is dat de berichtgeving tussen systemen of losse softwarepakketen wordt gevalideerd, getransformeerd en/of gecontroleerd.

 

Wat doet een ESB-oplossing?

Een Enterprise Service Bus (ESB) verbindt verschillende applicaties met elkaar op een professionele manier. In kern zorgt een ESB voor transformeren en transporteren van data tussen verschillende softwarepakketten. Heel kort door de bocht is een ESB de postkamer voor de data van je verschillende systemen. Het ene softwarepakket verstuurt een bericht naar een of meerdere softwarepakket(-ten). Als er bijvoorbeeld een nieuwe klant wordt aangemaakt in een CRM, komen de adresgegevens ook automatisch in het boekhoudpakket, bestelsysteem en de helpdesk. Een ESB verzorgt die berichtgeving.

 

Hoe werkt een ESB?

Zonder in technische details te belanden: de ESB tussenlaag verzorgt de datastromen tussen je systemen, waardoor bij verandering van één van de systemen of integratie met nieuwe systemen (ook van bijvoorbeeld externe partijen) niet meteen al je software opnieuw hoeft te verbinden. De wijzigingen van de (nieuwe) software hoeft namelijk alleen in de verbinding met de ESB te worden doorgevoerd.

Het ontwerp van een ESB-oplossing begint bij Flusso met een Common Data Model (CDM). Dat is een overkoepelend data model waarin we de huidige en gewenste bedrijfsprocessen in je software in kaart brengen: Daarbij bekijken we:

  • welke systemen onderdeel uitmaken van je bedrijfsproces?

  • welke informatie we gaan transporteren tussen die systemen?

  • hoe die informatie nu in je systemen staat (data model van ieder systeem)?

  • of we die informatie moeten transformeren tijdens de uitwisseling?

 

Om een indruk te geven van de legio aan mogelijkheden in een ESB lichten we een paar vormen uit. In dat CDM stellen we integratie-patronen vast met EIP’s (Enterprise Integration Patterns). Er zijn veel EIP’s, maar deze gebruiken we het meest:

Splitter aggregator

De splitter aggregator is voor berichten tussen systemen die een herhalend element bevatten dat we asynchroon kunnen verwerken. Bijvoorbeeld: een order in het ordersysteem heeft orderregels. Die orderregels uit die order worden opgesplitst in de ESB in losse berichten, soms zelf richting verschillende systemen (denk aan verschillende soorten magazijnen bijvoorbeeld). Die berichten verzendt de ESB los naar het picksysteem van de magazijnen. Indien gewenst kan de ESB die berichten ook weer terug sturen naar het ordersysteem of verzendsysteem (wanneer een product is gepickt, niet op voorraad is, vertraging heeft, etc.)

Scatter-gather

Wanneer één bericht naar verschillende systemen moet gebruiken we een scatter-gather. Bijvoorbeeld wanneer er een nieuwe klant in het CRM wordt aangemaakt, moeten alle gegevens van die klant ook naar een factuursysteem, mailinglist, ordersysteem, verkoopsysteem en noem maar op. Indien gewenst kan de ESB ook accorderen wat alle systemen met dat bericht hebben gedaan aan het CRM.

Content-Based Router

Is de inhoud bepalend voor de aflevering van het systeem, dan komt de content-based router aan te pas. Vergelijk het met de douane die post controleert. Een postpakketje is het bericht dat bij de ESB binnen komt en afhankelijk van de inhoud van het pakket, wordt bepaald wat ermee gebeurd (bijv. mag verzonden worden, vernietiging, retourzenden, giftige stoffen verwerking, etc.)

Er zijn ruim zestig EIP’s beschreven, waaronder de hier beschreven varianten. Ben je benieuwd welke er nog meer mogelijk zijn bekijk dan eens deze Wiki-pagina of lees het boek ‘Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions van Gregor Hohpe and Bobby Woolf.

Java Messaging Service

Eén van de technieken waarin een ESB berichten uitwisselt is bij ons de Java Messaging Service (JMS). Dat is een soort service in de ESB die zorgt dat taken niet worden vergeten of dat ze gegarandeerd worden afgeleverd. Eigenlijk is JMS de ‘wachtrij’ van je ESB wanneer berichten niet aankomen (om wat voor reden dan ook).

We integreren makkelijk

ESB-oplossingen realiseren we van huis uit met behulp van Camel, ServiceMix, Talend of MuleSoft. Heeft je organisatie al één of meerdere ESB-integraties? Dan kunnen we daar ook mee uit de voeten. Wanneer we van scratch af aan beginnen een ESB-oplossing voor je realiseren, dan adviseren we vaak een keuze voor open source. Meer weten over onze open source filosofie? Neem vrijblijvend contact met me op.

 

Meer weten over ESB?

Vertel me waarvoor je een ESB wilt gebruiken en welke applicaties je wilt integreren.

bel met mij bel met me op: +31 (0)33 - 4347680
Siemen Klaver
Siemen kent alle oplossingen van Flusso en adviseert bij de juiste keuzes rondom een ESB
Generic placeholder image
Vereist
Vereist