Jouw groeikansen vinden & volop benutten!
Al sinds 2006 bouwen wij mee aan online startups, lanceren we digitale platforms en helpen we organisaties om innovaties te versnellen.
Enterprise Service Bus (ESB)
Professioneel verbinden van software-pakketten met een Enterprise Service Bus (ESB)
Binnen je bedrijf worden verschillende applicaties gebruikt. Standaard software of maatwerk software, het loopt vast door elkaar heen. ESB knoopt de software aan elkaar.
Heb je al een Enterprise Service Bus (ESB) of wil je later nieuwe software toevoegen aan je omgeving? Dat gaat heel eenvoudig met een Enterprise Service Bus (ESB).
Als kritische bedrijfsprocessen in jouw organisatie afhankelijk zijn van twee of meer softwarepakketten (maatwerk- en standaardpakketten), dan is een Enterprise Service Bus (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 Enterprise Service Bus (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 Enterprise Service Bus (ESB)-oplossing uitkomst biedt voor bedrijven zijn:
Een Enterprise Service Bus (ESB) verbindt verschillende applicaties met elkaar op een professionele manier. In kern zorgt een Enterprise Service Bus (ESB) voor transformeren en transporteren van data tussen verschillende softwarepakketten. Heel kort door de bocht is een Enterprise Service Bus (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 Enterprise Service Bus (ESB) verzorgt die berichtgeving.
Zonder in technische details te belanden: de Enterprise Service Bus (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 Enterprise Service Bus (ESB) te worden doorgevoerd.
Het ontwerp van een Enterprise Service Bus (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:
Om een indruk te geven van de legio aan mogelijkheden in een Enterprise Service Bus (ESB) lichten we een paar vormen uit. In dat Common Data Model (CDM) stellen we integratie-patronen vast met Enterprise Integration Patterns (EIP’s). Er zijn veel Enterprise Integration Patterns (EIP’s), maar deze gebruiken we het meest:
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 Enterprise Service Bus (ESB) in losse berichten, soms zelf richting verschillende systemen (denk aan verschillende soorten magazijnen bijvoorbeeld). Die berichten verzendt de Enterprise Service Bus (ESB) los naar het picksysteem van de magazijnen. Indien gewenst kan de Enterprise Service Bus (ESB) die berichten ook weer terug sturen naar het ordersysteem of verzendsysteem (wanneer een product is gepickt, niet op voorraad is, vertraging heeft, etc.)
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 Enterprise Service Bus (ESB) ook accorderen wat alle systemen met dat bericht hebben gedaan aan het CRM.
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 Enterprise Service Bus (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.
Eén van de technieken waarin een Enterprise Service Bus (ESB) berichten uitwisselt is bij ons de Java Messaging Service (JMS). Dat is een soort service in de Enterprise Service Bus (ESB) die zorgt dat taken niet worden vergeten of dat ze gegarandeerd worden afgeleverd. Eigenlijk is JMS de ‘wachtrij’ van je Enterprise Service Bus (ESB) wanneer berichten niet aankomen (om wat voor reden dan ook).
Enterprise Service Bus (ESB)-oplossingen realiseren we van huis uit met behulp van Camel, ServiceMix, Talend of MuleSoft. Heeft je organisatie al één of meerdere Enterprise Service Bus (ESB)-integraties? Dan kunnen we daar ook mee uit de voeten. Wanneer we van scratch af aan beginnen een Enterprise Service Bus (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.
Al sinds 2006 bouwen wij mee aan online startups, lanceren we digitale platforms en helpen we organisaties om innovaties te versnellen.