Er wordt heel veel geschreven over Service Oriented Architecture (soa). Gartner geeft aan dat naast Voice over IP (VoIP) het dé trend wordt in 2005. Logisch, want een soa biedt veel voordelen, zoals een enorme kostenreductie in het onderhouden van steeds maar weer veranderende (agile) it-systemen, de snelheid van het ontwikkelproces door hergebruik, verbetering van het gebruik van bestaande systemen en de vermindering van redundantie. Maar wat is nu een op services georiënteerde architectuur? En waarom wordt een soa gebaseerd op Web Services zo snel door de markt geaccepteerd? Kees Neven van Systinet Nederland legt een en ander uit.
Er gaan een enorm aantal definities de ronde, maar de algemene deler komt hier op neer: een soa is een kader waarin autonome services onderling, zonder tussenkomst van een mediator, kunnen samenwerken zodat business functies kunnen worden uitgevoerd.
De soa-principes zijn niet nieuw. De ontwikkeling van it heeft al eerder oplossingen zoals Corba, J2EE en Message Oriented Middleware (MOM) gekend om een soa te bouwen. Maar wat zijn nu de voordelen van een SOA gebaseerd op Web services in vergelijking met deze api gebaseerde implementatie modellen? En waarom zal een soa gebaseerd op Web Services door de markt sneller worden geaccepteerd ten opzichte van de bestaande oplossingen?
Focus op het bericht
In plaats van de connector (een api) staat het bericht centraal in de wijze waarop gecommuniceerd wordt. Het voordeel is dat geavanceerde interacties mogelijk zijn, onafhankelijk van het onderliggende transport protocol (met name zaken als het ‘routeren’ van berichten, het combineren van services en het creëren van relaties tussen deze services).
Flexibiliteit vergroten
Een ander belangrijke verschil met de op api gebaseerde soa implementaties is de beperkte en zelfs de afwezigheid van informatie over de service zelf (dit wordt ook wel metadata genoemd), zoals locatie, het beveiligingsniveau van de service, et cetera. Een op Web Services gebaseerde soa maakt het mogelijk om deze metadata gegevens op een standaard gebaseerde manier te beschrijven via een Web Services Description Language (Wsdl) en op te slaan via een Universal Description, Discovery and Integration (Uddi) Registry. De Wsdl is in feite het contract dat bij de Web Service hoort en de service beschrijft, inclusief de regelgeving (policies) over deze service. Een registry vormt het hart van de moderne soa, via deze registry kunnen services snel opgezocht worden aan de hand van de metadata. Vragen als ‘Geef mij alle services die in de HR (Human Resource) afdeling in productie zijn en een gegarandeerde beschikbaarheid hebben van 99,9 procent’ kunnen daardoor snel beantwoord worden.
Inzichtelijkheid en hergebruik
Eén van de grootste uitdagingen die Enterprise architecten in de praktijk tegenkomen is het bepalen welke services beschikbaar zijn en waar deze zich bevinden. Bedrijven zijn niet monolitisch, evenals de systemen die ze implementeren. Deze blijken in de praktijk organisch te groeien. Groei resulteert in een omgeving die gekarakteriseerd wordt als een technologische diverse omgeving, maar met geavanceerde data en systemen. Een Web Service gebaseerde soa zorgt voor inzichtelijkheid en structuur. Daardoor is hergebruik mogelijk van deze heterogene it-middelen; een registry gebaseerd op Uddi is hier onlosmakelijk mee verbonden en maakt dit mogelijk.
Noodzaak van standaarden
Een ander belangrijk probleem met de api-gebaseerde implementatie modellen is dat deze specificaties gekoppeld zijn aan specifieke talen en platformen. Hierdoor zijn ze niet geschikt als cross-platform en cross-language standaarden. Dit resulteert in een onduidelijke hoeveelheid van overlappende standaarden zoals Secure bus, Https (Hypertext Transfer Protocol Secure) en het Java Security Model. Web Service standaarden zijn daarentegen vanaf het begin ontworpen met het idee dat ze elkaar kunnen aanvullen. Bovendien hebben de organisaties die Web Service-standaarden definiëren de mogelijkheid van uitbreidbaarheid verankerd. Het introduceren van nieuwe WS-standaarden en het toevoegen van nieuwe functionaliteiten binnen deze standaarden wordt hierdoor sterk vereenvoudigd.
Intelligente eindpunten
Eerdere soa-implementaties zijn veelal op een bus, broker of andere implementatie wijze gebaseerd . Dit betekent dat beveiliging, betrouwbaarheid en andere belangrijke en kritieke aspecten van een service worden toegewezen aan een mechanisme waar performance, schaalbaarheid en meer generieke controle moeilijk te beheren is. Web Services daarentegen bevorderen de notie van autonome intelligente services. Dit zorgt voor platform onafhankelijkheid en totale eliminatie van leveranciers/merk afhankelijke integratie. Men kan nu eenvoudig autonome services combineren in plaats van leveranciers afhankelijke integratie punten.
Het ondersteunen van een op Web Services gebaseerde soa elimineert het verschil tussen EAI (Enterprise Application Integration) en B2B (Business-to-Business, interne en externe integratie met bijvoorbeeld partners). Beide delen nu dezelfde communicatiewijze, onafhankelijk van de onderliggende it-systemen.
Conclusie
Een op services georiënteerde architectuur is niet nieuw. Alleen wordt het vandaag de dag gebaseerd op volwassen en open technologieën (Web Services), standaarden (zoals Uddi) en sterke ondersteuning van de industrie. Deze factoren zorgen ervoor dat de belofte van service oriented architectures ook waar gemaakt kan worden – Agile it – zodat it ook daadwerkelijk kan anticiperen op veranderingen binnen de onderneming.
Kees Neven, Technology Director Systinet Nederland |