# Service-oriëntatie

Service-oriëntatie, vertaling van service-oriented architecture (SOA), is een architectuurmodel, geen technologie op zich. Centraal bestaat een SOA-opgebouwd systeem uit servicecontracten. Hierbij is sprake van afnemers van diensten en leveranciers.

## Kenmerken

Kenmerkend voor de diensten (en contracten) is:
* Een service is virtueel: de afnemer heeft geen weet van de implementatie van de dienst. De dienst is onafhankelijk van de afnemer. Scheiding van verantwoordelijkheid is expliciet vastgesteld. Voordeel hiervan is onafhankelijkheid van veranderingen van afnemer en leverancier. Voldoen aan het contract staat immers centraal;
* Een service is gestandaardiseerd: er is slechts één implementatie aanwezig van een verantwoordelijkheid. Voordeel is het rationaliseren van de standaard. Standaardiseren=massa, massa=kassa. De dienst wordt 'commodity' en eenvoudig te vervangen door een andere leverancier of goedkoper door een efficiëntieslag;
* Een service is modulair (vervangbaar) en compositioneerbaar. Standaard is niet flexibel. Flexibiliteit wordt bereikt door combineren (componeren) van standaards tot een nieuwe standaard;
* Een service is abstract: generiek, niet afgestemd voor 1 specifieke afnemer, maar op een doelgroep van afnemers;
* Losgekoppeld: afnemer en leverancier zijn maximaal onafhankelijk van implementatie van beide. Elke service is daarom autonoom. Er bestaat geen directe link of relatie tussen verschillende services. Services zijn zich ook niet van elkaar bewust.

## SOA en software

De SOA-principes zijn al decennia bekend binnen de softwareontwikkeling. Sinds het begin van de 21e eeuw heeft de software-industrie SOA aangegrepen voor technische dienstverlening, zoals ESB, XML, SOAP, webservices. De technologische benadering van SOA is alleen geschikt om platformonafhankelijke communicatie te bewerkstelligen. SOA komt tot zijn recht wanneer een organisatie(onderdeel) de SOA principes toepast op zichzelf en daarmee ook de ICT dienstverlening hierop aanpast.

## SOA Governance (bestuur)

SOA Governance bestaat in de basis uit drie onderdelen:
* Eigenaarschap van diensten (vaststellen van verantwoordelijkheden);
* Levenscyclus van diensten: de identificatie van een nieuwe (versie van) een dienst, tot en met de dood van een dienst;
* Funding-model: wie betaalt hoeveel voor wat? Zoals 'flat fee' en 'pay-per-use' abonnementen.

## ESB

Enterprise service bus (ESB). Hoewel de definitie van een ESB zeer afhankelijk is van wiens opinie men vraagt, zijn er toch enkele gemeenschappelijke kenmerken te herkennen. Zo wordt de transformatie van berichten en routing binnen een SOA-omgeving toegewezen aan de verantwoordelijkheid van de ESB.

## Voordelen

Er zijn verschillende voordelen van een SOA aanpak:
* Flexibiliteit: Door de beschreven principes van de services wordt het veel eenvoudiger om services te veranderen en nieuwe varianten te combineren zonder consequenties voor andere onderdelen.
* Governance: Grip hebben op kosten en scheiding van verantwoordelijkheden.
* Kosten: Standaardisatie zorgt voor één implementatie van een dienst, welke weer gerationaliseerd kan worden. Combineren van diensten tot een nieuwe dienst is relatief goedkoop.
* Specialisatie: Focus op strategische waarden: massaproductie van een standaard of combineren van jouw unieke combinatie
* Business-procesvereenvoudiging: diensten vormen ontkoppelpunten binnen businessprocessen. Hierdoor kunnen proceseigenaren (diensteigenaren) concreter worden aangewezen. De verantwoordelijkheid van de (deel)proceseigenaar is te overzien. De proceseigenaar weet precies waar hij/zij aan moet voldoen (service contract).

## Literatuur

* IBM Systems Journal edition on SOA
* Norbert Bieberstein et al. Service-Oriented Architecture Compass, IBM Press, ISBN 0-13-187002-5 (de informatie op deze pagina niet langer beschikbaar)
* CBDI Forum