1. Vad är WS-Coordination?
WS-Coordination är ett ramverk för att specifiera koordinationsprotokoll, d.v.s. protokoll som koordinerar händelserna i distribuerade applikationer.
Motivationen för att koordination behövs är först och främst att det i komplexa system är svårt för klienterna att utföra anrop i rätt ordning, speciellt då många parter är inblandade i konversationen. Målen för WS-Coordination är:
- Att skapa ett ramverk för koordinationsprotokoll.
- Vara en meta-specifikation för specifikationer som implementerar konkreta former av koordinering.
Exempel på implementationer av WS-Coordination är koordinationsprotokollen:
Men det är meningen att man dessutom ska definiera sina egna protokoll efter behov.
2. Definitioner
Vi definierar några termer:
- koordinationsprotokoll: En samling regler som reglerar konversationen.
- koordinationstyp: En grupp koordinationsprotokoll som logiskt relaterar till varandra.
- koordinationskontext: En datastruktur som markerar att meddelanden tillhör samma konversation.
3. Vertikala och Horisontella protokoll
En bra grej att känna till är skillnaden mellan vertikala och horisontella protokoll. Ett vertikalt protokoll är specifikt för ett affärsområde eller annan domän:
- Går kanske inte ner så djupt i detalj.
- Fokuserar på semantiska aspekter.
- Bygger på infrastruktur baserade på horisontella protokoll.
Ett horisontellt protokoll definierar en gemensam infrastruktur:
- Erbjuder pålitlighet och funktioner för hantering av tjänster.
- Exempel på funktioner är säkerhet, transaktioner.
4. Vad måste finnas i WS-Coordination?
Följande delar måste implementeras av WS-Coordination:
- koordinationskontext: En metod för att skicka unika identifierare mellan webbtjänsterna som deltar i konversationen. Den unika identifierar identiferar alltså konversationen (dessa hamnar i SOAP-headern).
- registreringsgränssnitt: En metod för att informera protokollshanteraren om de deltagande webbtjänsternas adresser.
- aktiveringsgränssnitt: En metod för att informera protokollshanteraren om vilken roll tjänsten ska anta under konversationen.
5. WS-Coordination, en översikt
Vi börjar med att definiera följande term:
- koordinator är den entitet som håller reda på konversationen och vilka webbtjänster som deltar i den.
WS-Coordination definierar två metoder createCoordinationContext och register, se nedan.
6. createCoordinationContext( CoordinationType )
När en applikation vill påbörja en konversationen anropas denna metod på koordinatorn. Detta metod uppfyller kravet på "aktiveringsgränssnitt" (se ovan).
- Inparametern "CoordinationType" (en URI) bestämmer vilken typ av konversation som ska användas.
Koordinatorn svarar med att returnera en referens till "register"-metoden (se nästa punkt).
7. register( ProtocolIdentifier, ParticipantProtocolService )
Uppfyller "registreringsgränssnittet" (se ovan).
- Den första parametern specifierar hur deltagaren vill delta i konversationen.
- Nästa parameter specifierar adressen som koordinatorn ska använda för att anropa konversationsmetoder hos deltagaren.