programmera.net -> webservice -> normal     för utskrift      info@programmera.net

Komposition av webbtjänster

1. Vad är komposition?
2. Komposition mot Koordinering
3. Tänkbara modeller för orkestrering
4. Val av tjänst
5. Undantagshantering

1. Vad är komposition?

Med komposition av webbtjänster menar man en sammansatt webbtjänst som implemenerar en affärsprocess. Komposition är det koncept som ligger till grund för bl.a. BPEL. När man diskuterar komposition av webbtjänster skiljer man på:

  • enkla tjänster ("elemental services") som består av taditionella applikationer.
  • sammansatta tjänster ("composite services") som består av komplexa processer som byggs upp av ett antal andra webbtjänster, där byggstenarna kan vara både enkla tjänster och sammansatta tjänster.
Elementartjänster och sammansatta tjänster bildar paradigmen tvånivås programmering, där:
  • Programmera i det lilla betyder att programmera en enkel tjänst med ett traditionellt språk.
  • Programmera i det stora är att bygga en sammansatt tjänst med hjälp av ett programmeringsspråk för affärsprocesser (som BPEL).
Komposition handlar om "programmering i det stora". Man brukar säga att man med komposition orkestrerar övriga resurser. Kompositionen kontrollerar alltså övriga resurser via webbtjänster och implementerar på detta sätt affärsprocesser ("business processes").

2. Komposition mot Koordinering

Förutom komposition finns ett annat populärt koncept inom webbtjänster som har liknande funktionalitet, nämligen koordinering. Hur skiljer sig koordinering från komposition?

  1. Med komposition bygger man en tjänst. Med koordination reglerar man en tjänst.
  2. Komposition handlar om hur en tjänst fungerar internt. Koordinering behandlar externa aspekter på webbtjänster.
  3. Logiken i kompositionen bestämmer hur konversationen i processen ska gå till. Logiken i koordineringen ställer bara krav på hur processen får och inte får köras, men bestämmer inte exakt hur det ska gå till.
  4. Kompositionen (den färdiga BPEL-filen) utnyttjas av någon programvara (BPEL-motor) som använder den för att köra affärsprocessen. Å andra sidan, en konversation som uppfyller ett koordineringsprotokoll stödjs av konversationskontrollanter vars syfte inte är att köra processen, bara att skicka meddelanden till interna objekt och att verifiera att konversationen följer det specifierade protokollet.

3. Tänkbara modeller för orkestrering

Det finns många olika sätt att representera orkestrering av tjänster, både grafiskt och med text. Nedan ger vi några exempel:

  • Aktivitetsdiagram
  • Aktivitetshierarkier
  • Tillståndsdiagram
  • Petrinät
  • Pi-kalkyl
  • Regelbaserad orkestrering
För BPEL är det ospecifierat vilken grafisk representation som ska gälla, därför är det upp till implementatörerna att komma på en modell som passar utveklarna.

4. Val av tjänst

En sammansatt tjänst måste välja (binda) andra tjänster. Bindningen kan vara:

  • statisk
  • dynamisk via referens
  • dynamisk via uppslag (lookup)
  • dynamiskt operationsval

5. Undantagshantering

Tänkbara metoder för undantagshantering är:

  • Flödesbaserad
  • Try-Catch
  • Regelbaserad