SOA versus ESB
SOA is een reeks architecturale concepten die worden gebruikt voor de ontwikkeling en integratie van services. Een service is een openbaar pakket van functionaliteit die via het web wordt aangeboden. ESB is een stukje infrastructuursoftware dat een software-architectuurconstructie 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 reeks architecturale concepten die worden gebruikt voor de ontwikkeling en integratie van services. SOA houdt zich bezig met gedistribueerd computergebruik waarbij consumenten een reeks interoperabele diensten gebruiken. Meerdere consumenten kunnen één dienst afnemen 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 creëren 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 rechtstreeks gebaseerd op het principe van servicegerichtheid, dat spreekt over services met een eenvoudige interface die onafhankelijk toegankelijk zijn voor gebruikers, zonder zich zorgen te maken over de daadwerkelijke platformimplementatie van de service.
Wat is ESB?
ESB (Enterprise Service Bus) is een stukje infrastructuursoftware dat een software-architectuurconstructie biedt voor het leveren van basisservices voor complexe architecturen. Maar er is veel discussie over de vraag of ESB een architectuurstijl of een softwareproduct of zelfs een groep producten moet worden genoemd. Het levert de services via gebeurtenisgestuurde en op standaarden gebaseerde engine voor berichten (wat eigenlijk de servicebus is). Bovenop deze berichten-engine wordt een abstractielaag aangebracht zodat architecten de faciliteiten van de bus kunnen benutten, zonder dat er daadwerkelijke code hoeft te worden geschreven. 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 eindpunten (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 servicegebaseerde applicaties. ESB is een stukje infrastructuursoftware dat ontwikkelaars helpt om services te ontwikkelen en te communiceren tussen services 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 het samenstellen en inzetten van diensten, die op hun beurt de SOA implementeren.