![]() ![]() ![]() |
||||||||||||||
Teknik --> Processer | A A
![]() |
|||||||||||||
Processer
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 - 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 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/ 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'
![]() |
|
|||||||||||||
|