Nieuws

SOA en de vele gezichten van services

 

Een service oriented architecture (SOA) invoeren moet leiden tot een perfecte afstemming tussen business en IT, een drastische verhoging van flexibiliteit en vlotte communicatie over de bedrijfsgrenzen heen. Dat is toch wat de vakliteratuur beweert. Maar ondertussen hebben velen ervaren dat een rechtlijnige transformatie van bestaande functionaliteit naar services die voordelen lang niet automatisch garandeert.

Een van de mogelijke verklaringen is dat de nadruk totnogtoe voornamelijk lag op de technische aspecten van services. Hoewel de vooruitgang op technologisch vlak niet te onderschatten is, is het zeker zo belangrijk om eerst te komen tot een afbakening van ‘goede’ services.

Door services op een systematische manier te identificeren, kan u dat oplossen. Daarvoor kan u bijvoorbeeld vanuit de architectuur vertrekken, en elke bedrijfsfunctionaliteit op hoog niveau vanuit verschillende gezichtspunten bekijken. Elk gezichtspunt geeft aanleiding tot ene nieuw type service en belicht telkens andere facetten van de beschouwde functionaliteit. Omdat er een duidelijk verband bestaat tussen de verschillende servicetypes, is het mogelijk om op elk moment een totaalbeeld van de aangeboden voorziening te krijgen.

SOA is meer dan technologie
Hoewel er in recente publicaties steeds vaker op wordt gewezen dat u niet noodzakelijk web services moet creëren om SOA in een bedrijf te introduceren, wordt zo’n invoering toch vaak herleid tot een technologische kwestie. Zo wordt een service meestal gedefinieerd als de interface van een – mogelijk al bestaand – stuk software dat gebouwd is met eender welke technologie. Die services zijn beter dan andere interfacetypes omdat ze meer informatie bevatten over de aangeboden operaties, de uitgewisselde boodschappen en zelfs contractuele bepalingen tussen oproeper en aanbieder in de vorm van service level agreements. Door die overvloed aan informatie aan te bieden in zogenaamde registries, kunnen services automatisch worden opgezocht en aangeroepen, en komt u tot een dynamisch geconstrueerde software.

Service georiënteerde technologieën hebben heel wat voordelen, maar het naïeve gebruik ervan leidt niet automatisch tot betere systemen. Neem bijvoorbeeld de ontsluiting van legacy applicaties door web services. Die aanpak kan leiden tot serieuze performantieproblemen als voor elke oproep transformaties nodig zijn om berichten om te zetten naar een formaat dat door de applicatie kan worden geïnterpreteerd en vice versa. Bovendien levert deze manier van werken – behalve een gestandaardiseerde manier van communiceren – geen voordelen op, omdat elke wijziging aan de applicatie zelf nog altijd moet worden doorgevoerd volgens de klassieke methodes.

 

 

Een tweede voorbeeld illustreert opnieuw dat men best waakzaam is bij het toepassen van het servicegeoriënteerde paradigma op operationele systemen. Veronderstel dat een systeem bestaat uit mainframetransacties die worden uitgevoerd door een transactiemonitor, en dat voor elke transactie een web service is gebouwd. Een simpel vraag/antwoord-scenario leidt tot vier operaties omdat zowel de oproeper als de aanbieder een boodschap op de queue moeten plaatsen en er één moeten afhalen. Dat kan al snel leiden tot een enorm aantal operaties, dus is het belangrijk om niet zomaar voor eender welke functie een service te creëren, maar zeer selectief tewerk te gaan. 

SOA en het belang van architectuur
Hoewel de technische ondersteuning voor SOA belangrijk is en kan aanzien worden als de ultieme stap in het migratieproces, zijn een aantal voorafgaande stappen van cruciaal belang om te komen tot ‘goede’ services. Die stappen vormen een proces waarin services worden afgeleid door achtereenvolgens verschillende architecturale invalshoeken te nemen. De essentie van architectuur is namelijk om een systeem op hoog niveau te beschouwen vanuit verschillende gezichtspunten, waarbij elk gezichtspunt focust op bepaalde eigenschappen en abstractie maakt van andere. Services kunnen worden afgeleid vanuit drie invalshoeken.

Vanuit het eerste gezichtspunt (het bedrijf) worden services aanzien als diensten die een toegevoegde waarde bieden voor de klant. Daarbij wordt nog geen rekening gehouden met de manier waarop de service binnen de organisatie gerealiseerd wordt, laat staan met de eventuele technologische ondersteuning die eraan te pas komt. Wel gaat u na welke voorziening én interessant is voor de klant, én efficiënt geïmplementeerd kan worden door de provider. Een bedrijfsservice geeft zo een organisatieonafhankelijk beeld van een bepaalde bedrijfsfunctionaliteit door te focussen op de waardestromen tussen klanten en aanbieder, en op de mate waarin die waardestromen bijdragen tot de streefdoelen van die partijen.

Terwijl een bedrijfsservice beschrijft welke functionaliteit er wordt geleverd (wat), zoomt het informatieperspectief in op de manier waarop (hoe) die service wordt uitgevoerd in het bedrijf. Ten eerste zijn er informatieservices die overeenkomen met het uitvoeren van een bepaalde activiteit, zoals het aanmaken van een schadedossier, het berekenen van een schadevergoeding, het uitbetalen van een schuld enzovoort. Vervolgens zijn er ook informatieservices die zorgen voor de coördinatie van activiteiten volgens een bepaald proces, zoals een proces voor schadeafhandeling. Tenslotte zijn er informatieservices die bedrijfslogica rond bepaalde bedrijfsdata inkapselen, zoals een service voor het beheer van klantgegevens. Een informatieservice levert dus organisatieafhankelijke ondersteuning voor bedrijfsservices, door activiteiten uit te voeren en te coördineren, en door de uitvoering van bedrijfslogica te vereenvoudigen.
 

 

Hoewel bedrijfsservices en informatieservices in theorie geleverd kunnen worden zonder tussenkomst van een systeem, zullen er in praktijk heel wat gerealiseerd worden met geautomatiseerde ondersteuning. Daarop wordt gefocust in het laatste perspectief: de informatiesystemen. Enerzijds kan een bedrijfsservice rechtstreeks overeenkomen met een of meerdere informatiesysteemservices (IS services) als de klant een directe verbinding kan maken met de systemen van het bedrijf. Anderzijds ondersteunen IS services ook bepaalde informatieservices activiteiten uit te voeren en processen en bedrijfslogica te automatiseren.

Een IS service levert dan organisatieafhankelijke ondersteuning voor bedrijfs- en informatieservices door toestandsveranderingen en -opvragingen in informatiesystemen te vergemakkelijken.

Die definitie is heel wat abstracter dan die van pakweg web services, hoewel het in beide gevallen gaat over geautomatiseerde services. Het grote voordeel van zo’n abstracte definitie is dat een IS service kan overeenkomen met verschillende types van implementatie, van klassieke transacties tot softwarecomponenten die web services of gelijkaardige services kunnen aanbieden. Dit maakt dat businessanalisten en IT-architecten zich eerst kunnen concentreren op de afbakening van geschikte services en nog niet hoeven na te denken over hun concrete realisatie en onderliggende technologie.

Elk van die perspectieven geeft aanleiding geeft tot een nieuw type service. Dat onderscheid is interessant op zich omdat het wat meer structuur geeft aan het vaak verwilderde landschap van services. Maar die verschillende types staan niet los van elkaar: IS services zijn altijd gekoppeld aan bedrijfsservices, hetzij via informatieservices of rechtstreeks. Daardoor kunnen we voor elk type service de nadruk leggen op bepaalde facetten, terwijl de link onderlinge verbanden ons steeds toelaten om een totaalbeeld van de aangeboden functionaliteit te krijgen.

 

Gerelateerde artikelen

Volg ons

69% korting + 3 maanden gratis

69% korting + 3 maanden gratis

Bezoek NordVPN

Business