3.3.4 Service Enterprise Bus

From Geonovum Wiki
Jump to: navigation, search


Hoewel de ESB voor de praktijk een cruciale rol speelt, wordt er voor het gebruik van SOA in het Geo-domein weinig aandacht aan besteed. Dit neemt niet weg dat de ESB aanwezig is in de IT-omgeving van de organisatie die SOA implementeert (meestal in de vorm van de daarvoor beschikbare softwareproducten).

Voor de duidelijkheid wordt er in deze module daarom aandacht aan besteedt; het vormt een wezenlijk onderdeel van de architectuur.


Wat doet een ESB?

In het kort de taken van een Enterprise Service Bus (ESB) op een rij:

  • Een ESB “bemiddelt” tussen service aanvragers en service aanbieders.
  • Een ESB zorgt voor standaardisatie van de communicatie met service aanvragers.
  • Een ESB handelt de transformatie van gegevens tussen aanvrager en aanbieder af.
  • Een ESB orkestreert de afhandeling van aanvragen en het doorsturen naar aanbieders.
  • Een ESB monitoort de service aanvragen en rapporteert over het gebruik van aanvragen.

De verschillende taken worden hieronder uiteengezet.


ESB bemiddelt

Een Enterprise Service Bus (ESB) is een architecturele Softwareconstructie (pattern) waarmee de communicatie tussen de afnemers van diensten (“service”) en aanbieders van die diensten, vereenvoudigd wordt. De ESB biedt de aanvrager een interface aan waarover van tevoren afspraken zijn gemaakt. Dit kan een Webservice zijn, maar bijvoorbeeld ook een SMTP (e-mail) interface en tal van andere mogelijkheden. De ESB zal met de aanbieder communiceren via de interface die met hem is afgesproken. Zo kan het gebeuren dat een aanvrager van een dienst op een compleet andere wijze met de ESB communiceert dan de ESB met de aanbieder. De figuur hieronder geeft dit schematisch weer.


EnterpriseServiceBus schema.png








ESB standaardiseert communicatie

Door de toevoeging van het ESB component binnen een software architectuur kan de wijze waarop service aanvragers communiceren met service aanbieders worden gestandaardiseerd . Er is immers alleen een afspraak tussen de ESB en de aanvrager of aanvragers die van dezelfde service gebruik maken.


ESB transformeert

Het is de taak van de ESB om de informatie die bij een aanvraag en daarbij behorende informatie binnenkomt op de juiste wijze te vertalen (transformeren) naar het formaat dat door de service aanbieder verwacht wordt.


ESB orkestreert

De ESB component is verantwoordelijk voor het op de juiste plaats afleveren van een aanvraag, dus bij de juiste aanbieder of wellicht aanbieders van services. Binnen de afhandeling van deze aanvragen zorgt de ESB verder voor de afhandeling van fouten en het eventueel prioriseren van de aanvragen. Met andere woorden, welke aanvraag dient eerst te worden afgehandeld. Dit geheel van aanvraag afhandelen en de controles die hierbij komen kijken wordt aangeduid als orkestratie van service aanvragen.


Een volgend aspect van een ESB component is de beveiliging van aanvragen en de gegevens die hiermee gemoeid zijn. Behalve het beveiligen van het communicatie kanaal (bv. een beveiligde webservice via HTTPS) gaat het ook om wie (welke gebruiker of rol) een service mag aanvragen.


ESB monitoort

Een laatste veel voorkomende taak van een ESB component is het monitoren van de aanvragen die gedaan worden en hiervan statistische gegevens bijhouden.
Bijvoorbeeld:

  • Hoe vaak wordt een service aangeroepen?
  • Hoe vaak gaat dit fout of juist goed?
  • Hoe lang duurt een aanvraag?


Op basis hiervan kan later gerapporteerd worden, maar kan ook direct gereageerd worden. Dit laatste gebeurt als er bijvoorbeeld binnen de orkestratie van een aanvraag een service aangeroepen wordt die een foutafhandeling uitvoert. Het controleren op vooraf gestelde SLA’s voor een service, die in de ESB gedefinieerd zijn, met acties indien een SLA niet gehaald wordt valt ook onder monitoring.


Waarom een ESB?

Hier volgt een beknopte opsomming van de redenen waarom een ESB gebruikt zou kunnen worden en de voordelen die het oplevert.


  1. Compleet loskoppelen of gedeeltelijk ontkoppelen (loosely coupled) van service aanbieders en service aanvragers. Aanvragers communiceren hierdoor met de ESB en niet direct met de aanbieder.
  2. vereenvoudigen en standaardiseren van interfaces tussen aanbieders en aanvragers. Hierdoor ontstaat één generieke manier van communiceren met de ESB. De ESB zorgt voor communicatie met de onderliggende systemen.
  3. Het stimuleren van hergebruik. Doordat services beschikbaar zijn op een centraal niveau (binnen de ESB) en gemakkelijk toegankelijk, kunnen ze sneller worden toegepast in andere systemen.
  4. Centrale en generieke manier van service monitoring. Binnen de ESB kunnen services gemonitored worden en gecontroleerd op afgesproken SLA’s op een generieke manier. De monitoring hoeft niet meer bij iedere service aanbieder te worden ingericht, maar gebeurt centraal in de ESB.
  5. Reduceren van “time-to-market” door hergebruik en minder implementatie tijd. Hierdoor kan de organisatie (business) sneller inspringen op veranderingen in de organisatie of omgeving.


Zonder gebruik te maken van een ESB hebben aanvragers en aanbieders zogenaamde “Point-to-Point” verbindingen die kris-kras door de organisatie lopen. Door de toepassing van een ESB hebben aanvragers één gestandaardiseerde interface met de ESB en zullen aanvragen via de ESB afgehandeld worden.

Concluderend kan worden gezegd dat een ESB onmisbaar is als “enabler” in een organisatie waar een Service Oriented Architecture (SOA) ontwikkeld wordt. De ESB zorgt voor de juiste infrastructuur waarop op hoger niveau, vanuit de functionele gedachte (business) naar processen wordt gekeken en hoe die kunnen worden verbeterd binnen een organisatie.


Aanbieders-ESB-Services-Afnemers.PNG





















► Bron en meer hierover in de wikipedia

Overheidsservice bus (OSB)

De Nederlandse overheid heeft een OverheidsServiceBus (OSB) ingericht. Dit is een nationale implementatie van een ESB. De OSB is een verzameling (technische) standaarden om elektronische gegevensuitwisseling tussen overheidspartijen mogelijk te maken. De OSB-standaarden zorgen ervoor dat de uitwisseling tussen partijen veilig, betrouwbaar en efficiënt verloopt. Daarnaast levert OSB enkele (technische) voorzieningen, die het voor partijen makkelijker maken om aan de OSB standaarden te kunnen voldoen.

Het programma realiseert vier zaken:

  • OSB koppelvlakstandaarden;
  • OSB Service Register;
  • OSB Gateway;
  • OSB Compliancevoorzieningen.


Het doel van de OverheidsServiceBus is de onderlinge gegevensuitwisseling tussen overheidsorganisaties sterk te standaardiseren en vereenvoudigen. De OverheidsServiceBus is de 'postbode' waarmee het berichtenverkeer van basisregistraties tussen service aanbieders en service afnemers heen en weer gaat. Het is een innovatieve infrastructurele standaard met bijbehorende voorziening die gegevens tussen registraties en afnemers onderling verstuurt, bewaakt en beveiligt.



previous Services Oriented Architecture (SOA) next