SOA versus ESB
SOA is een verzameling architecturale concepten die worden gebruikt voor de ontwikkeling en integratie van services. Een service is een bekend pakket met functionaliteit die op internet wordt aangeboden. ESB is een stukje infrastructuursoftware die een softwarearchitectuurconstructie levert voor het leveren van basisdiensten voor complexe architecturen. ESB kan worden gebruikt als platform waarop SOA wordt gerealiseerd.
Wat is SOA?
SOA (servicegerichte architectuur) is een verzameling architecturale concepten die worden gebruikt voor de ontwikkeling en integratie van services. SOA handelt over distributed computing, waarbij consumenten een set interoperabele services gebruiken. Meerdere consumenten kunnen een enkele service gebruiken en omgekeerd. Daarom wordt SOA vaak gebruikt om meerdere applicaties te integreren die verschillende platforms gebruiken. Om SOA goed te laten functioneren, moeten services losjes gekoppeld zijn aan besturingssystemen en de technologieën van onderliggende applicaties. SOA-ontwikkelaars maken services met behulp van functionaliteitseenheden en maken 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, waarbij wordt gesproken over diensten met een eenvoudige interface die onafhankelijk van de gebruikers kunnen worden bekeken, zonder zich zorgen te hoeven maken over de feitelijke platformimplementatie van de service.
Wat is ESB?
ESB (Enterprise Service Bus) is een infrastructuursoftware die een softwarearchitectuurconstructie levert voor het leveren van basisdiensten voor complexe architecturen. Maar er is veel discussie over of je ESB een architecturale stijl of een softwareproduct of zelfs een groep producten mag noemen. Het biedt de services via een door gebeurtenissen aangedreven en op standaarden gebaseerde engine voor berichtenuitwisseling (eigenlijk de servicebus). Bovenop deze berichtengine is een abstractielaag aangebracht waarmee architecten de faciliteiten die de bus biedt kunnen exploiteren, zonder een code te hoeven 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 niveau van abstractie. Een van de belangrijkste voordelen van het hebben van een ESB is de mogelijkheid om het aantal point-of-contacts te verminderen; dus, de aanpassing aan de veranderingen veel gemakkelijker maken. ESB kan worden gebruikt als platform waarop SOA wordt gerealiseerd. De concepten van transformatie / routering (stroomgerelateerd) kunnen door ESB naar SOA worden gebracht. Bovendien, ESB bevordert de losse koppeling tussen diensten door de abstractie voor eindpunten (in SOA) te bewijzen.
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, op services 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 services stromen. ESB biedt faciliteiten voor de samenstelling en implementatie van services, die op hun beurt de SOA implementeren.