Teknik --> Processer A A  

Processer

Web Service standarderna SOAP och WSDL löser en del av integrationsproblematiken när två system ska kommunicera. När tjänster börjar användas i en större skala behövs dock tekniker för att koordinera tjänster. En utgångspunkt för koordineringen är de processer som ligger till grund för verksamhetens aktiviteter.

Innehåll:

>> Processhantering
Processmodeller
Tjänster och processer
Processdesign
Vägledning vid processdesign
BPEL4WS
Vidare läsning

 

Processhantering

Ett sätt att koordinera kommunikationen är att kombinera ett flertal tjänster till en ny tjänst.

Ett vanligt exempel är att en resebyrå kan skapa en ny tjänst (”boka resa”) genom att kombinera tjänster från hotellkedjor och flygbolag. Att på detta sätt kombinera tjänster från flera organisationer kräver att komplexa sekvenser av meddelanden behöver utväxlas mellan tjänsterna. Detta utbyte av meddelanden behöver implementeras samt övervakas. Utan ett strukturerat angreppssätt finns risken att ett okontrollerat ”spindelnät” av tjänster skapas.

upp^

Processmodeller

Processmodeller har länge använts som ett sätt att analysera en verksamhets aktiviteter och informationsflöden. Värt att notera är att processer beskriver en verksamhets dynamik, det vill säga aktiviteter, informationsutbyte mellan aktiviteter och aktiviteternas inbördes ordning. Det är just dynamiken som är av intresse när tjänster ska koordineras. Därmed lämpar sig processer utmärkt som en grund för att beskriva koordinering av tjänster.

I en beskrivning av ett tjänstegränssnitt (till exempel utfört med WSDL) beskrivs endast den statiska aspekten av en tjänst i form av meddelanden och operationer. Processbeskrivningsspråk kompletterar denna bild med att lägga till beskrivningar av informationsutbyte mellan tjänster. Processbeskrivningsspråket Business Process Execution Language for Web services (BPEL4WS) är ett exempel på ett språk som kan användas för att beskriva samverkan mellan tjänster.

Tjänster utgör byggstenar som kan kombineras ihop med hjälp av processer. Vanligtvis brukar därför processer finnas som ett eget skikt i en arkitektur, se figur nedan:

 

upp^

Tjänster och processer

Genom att kombinera processbeskrivningar med Web services blir det möjligt att beskriva hur en uppsättning tjänster ska interagera. Processbeskrivningen i sig kan även utgöra en tjänst, och i sin tur kombineras ihop med andra tjänster i nya processer.

En process kan följaktligen relateras till en tjänst på tre olika sätt:

a) Aktiviteter i en process kan anropa tjänster (via operationer i en tjänsts gränssnitt).

b) En process kan implementera en tjänst, det vill säga en process kan beskriva hur en tjänst ser ut ”innanför” gränssnittet.

c) Tjänster kan starta aktiviteter i en process genom att anropa processen

De tre “sambanden” mellan tjänster kan beskrivas i en processmodell genom att ange tjänster, samt meddelandeutbyten mellan tjänster.

Bilden nedan visar ett exempel på en mycket enkel processmodell där ”Kund”, ”Resebyrå”, ”Hotellkedja” och ”Flygbolag” utgör tjänster. Aktiviteterna i resebyråns process är beskrivna, samt meddelandeutbyte med de övriga tjänsterna (streckade pilar i bilden).

Processen ovan illustrerar de tre sätt på vilka tjänster och processer kan relateras:

a) Resebyråns aktiviteter anropar Hotellkedjans och flygbolagets tjänster.

b) Resebyråns process tillhandahå lls till kunden i form av en tjänst (tex via Internet)

c) Tjänsten ”Kund” startar resebyråns process genom att anropa resebyråns tjänst.

Relationen mellan en tjänst och en process är därmed tämligen enkel, ur ett tekniskt perspektiv så är det samma relation som mellan en implementation av en metod i en klass (process) och gränssnittet på en klass (tjänst).

Processer sett ur ett verksamhetsperspektiv kan dock rubba denna enkla beskrivning.

upp^

Processdesign

Som beskrivits så fokuserar processbeskrivningar på de dynamiska delarna av ett system, det är därför naturligt att använda processbeskrivningar som grund för koordination av tjänster. Den mer tekniska relationen mellan processer och tjänster har beskrivits ovan.

Processanvändning - fördelar

Användningen av processer för att samordna tjänster kan dock ge fördelar både från ett verksamhetsperspektiv och från ett rent tekniskt perspektiv:

- Ur verksamhetsperspektivet så designas processer utifrån aktörer, aktiviteter och information från verksamheten. Detta ger verksamheten möjlighet att få direkt stöd för sin verksamhetsprocess i ett IT-stöd baserat på processteknik. Processer designade ur detta perspektiv kan kallas för verksamhetsprocesser.

- Ur det tekniska perspektivet så kan processtekniken användas för att samordna existerande system och tjänster. Processtekniken underlättar t ex parallell exekvering, samt transaktionshantering som spänner över flera system.

Processkonstruktion - olika aspekter

Oavsett vilket perspektiv som används måste en process konstrueras metodiskt utifrån ett flertal aspekter. Som grund för design av processer så kan följande fem aspekter användas:

- Funktions-perspektivet beskriver de aktiviteter som finns i processen.

- Beteende-perspektivet beskriver de kontrollflöden som kopplar ihop processens aktiviteter. Vid design av processbeteendet så ordnas aktiviteterna i en bestämd sekvens, det är även möjligt att konstruera processens beteende så att aktiviteter utförs
parallellt.

- Informations-perspektivet innehåller de informationsstrukturer som används som in och utdata till processens aktiviteter.

- Den organisatoriska vyn definierar vilka aktörer/tjänster som ansvarar för exekveringen av aktiviteterna.

- Transaktions-vyn identifierar hur fel ska hanteras i processen. Detta görs genom att gruppera aktiviteter i transaktioner.

 

upp^

Vägledning vid processdesign

I nedanstående tabell återfinns några vägledande frågor som kan användas vid design av de fem processaspekterna:

BPEL4WS

BPEL4WS står för Business Process Execution Language for Web Services (förkortas ibland som BPEL och uttalas "Bee-pel") och är ett XML-baserad språk som beskriver samverkan mellan tjänster i form av en processbeskrivning. Språket är relativt nytt och används i dagsläget (2006) i mindre omfattning. Användningen förväntas öka när antalet befintliga Web Services ökar, ett ökat behov av att samordna dessa tjänster kommer då att uppstå.

BPEL används både för att anropa Web Services och för att skapa nya Web Services, se avsnitt ”Tjänster och processer” ovan.

Fördelen med BPEL framför andra programmeringsspråk, tex Java, är att BPEL har stöd för komplexa process operationer, tex parallell exekvering. Dessutom är BPEL direkt konstruerat för användning med Web Services, vilket gör att anrop av Web Services är mycket enkelt.

Läs mer om BPEL4WS:

http://xml.coverpages.org/bpel4ws.html

http://www.ibm.com/developerworks/library/ws-bpel/

Vidare läsning

Vill du läsa mer om SOA och processdesign finns följande rapporter från Serviam för nedladdning:

Zdravkovic, J., 'Serviam Literature Survey Part IV -Service-based Processes'

Henkel, M., Zdravkovic, J., 'Service Orchestration- Applying Executable Processes'

 

Extra material!
SOA & WS i ljud- o bild

Bilder från projektmöte
 

Externa länkar:

www.ssek.org
www.vinnova.se
 
Huvudsponsor:
kontakt: Peter Söderström (IT Plan) | Martin Henkel (Stockholms Universitet) | Web utvecklad av: Milena Haykowska (Stockholms Universitet)