SOA versus ESB
SOA is een reeks architectonische concepten die worden gebruikt voor de ontwikkeling en integratie van services. Een service is een bekend pakket van functionaliteit dat via internet wordt aangeboden. ESB is een stukje infrastructuursoftware dat een softwarearchitectuurconstructie biedt voor het leveren van basisservices voor complexe architecturen. ESB kan worden gebruikt als platform waarop SOA wordt gerealiseerd.
Wat is SOA?
SOA (Service-oriented architecture) is een set architectuurconcepten die wordt gebruikt voor de ontwikkeling en integratie van services. SOA behandelt gedistribueerde computers waarbij consumenten een reeks interoperabele services gebruiken. Meerdere consumenten kunnen één dienst verbruiken en vice versa. Daarom wordt SOA vaak gebruikt om meerdere applicaties te integreren die verschillende platforms gebruiken. Om SOA goed te laten werken, moeten services losjes worden gekoppeld aan besturingssystemen en de technologieën van onderliggende applicaties. SOA-ontwikkelaars maken services met behulp van functionaliteitseenheden en stellen deze beschikbaar via internet. Webservices kunnen worden gebruikt om SOA-architectuur te implementeren. In dat geval worden webservices de functionaliteitseenheden van SOA die via internet toegankelijk zijn. Webservices kunnen door iedereen worden gebruikt zonder zich zorgen te maken over de platforms of de programmeertalen die worden gebruikt om ze te ontwikkelen. SOA is direct gebaseerd op het principe van servicegerichtheid, dat spreekt over services met een eenvoudige interface die onafhankelijk toegankelijk zijn voor gebruikers, zonder zich zorgen te hoeven maken over de daadwerkelijke platformimplementatie van de service.
Wat is ESB?
ESB (Enterprise Service Bus) is een stukje infrastructuursoftware dat een softwarearchitectuurconstructie biedt voor het leveren van basisservices voor complexe architecturen. Maar er is veel discussie over de vraag of ESB een bouwstijl of een softwareproduct of zelfs een groep producten moet worden genoemd. Het biedt de services via een gebeurtenisgestuurde en op standaarden gebaseerde engine voor berichtenuitwisseling (die eigenlijk de servicebus is). Bovenop deze messaging-engine wordt een abstractielaag geboden om architecten in staat te stellen de faciliteiten van de bus te exploiteren zonder enige echte code te schrijven. ESB wordt meestal geïmplementeerd via op standaarden gebaseerde middleware-infrastructuren.
Het gebruik van de term "bus" in ESB is te wijten aan het feit dat ESB een zeer vergelijkbare functie biedt als de fysieke computerbus, maar op een veel hoger abstractieniveau. Een van de belangrijkste voordelen van het hebben van een ESB is de mogelijkheid om het aantal contactpunten te verminderen; waardoor de aanpassing aan de veranderingen veel gemakkelijker wordt. ESB kan worden gebruikt als platform waarop SOA wordt gerealiseerd. De concepten van transformatie / routing (flow-gerelateerd) kunnen door ESB naar SOA worden gebracht. Bovendien bevordert ESB, door de abstractie voor endpoints (in SOA) te bewijzen, losse koppeling tussen services.
Wat is het verschil tussen SOA en ESB?
Er zijn enkele belangrijke verschillen tussen SOA en ESB. SOA is een architectonisch model voor het implementeren van losjes gekoppelde service-gebaseerde applicaties. ESB is een stukje infrastructuursoftware waarmee ontwikkelaars services kunnen ontwikkelen en tussen services kunnen communiceren via geschikte API's. ESB kan worden gebruikt als platform waarop SOA wordt gerealiseerd. ESB is slechts het medium waardoor de diensten stromen. ESB biedt faciliteiten voor de samenstelling en inzet van diensten, die op hun beurt de SOA implementeren.