4af29a980379c63b64feb2dd2f0ea210.ppt
- Количество слайдов: 24
Aplicatii Web bazate pe semantica, agenti si servicii http: //turing. cs. pub. ro/webs_08 Universitatea Politehnica Bucuresti Anul universitar 2008 -2009, Master Adina Magda Florea Chapter 1 Service-Oriented Computing: Semantics, Processes, Agents
Coordonarea serviciilor Web n n n Standarde pentru servicii – pozitionare Procesul de business Orchestrarea serviciilor (cursul urmator) Coreografia serviciilor Coordonarea serviciilor Orientare pe tranzactii
Standarde pentru servicii Web
Business Process n n n Un proces de business (BP) este o colectie de activitati (task-uri) interconectate care rezolva o anumita problema de business. Davenport (1993): "o multime structurata si masurabila de activitati proiectate pentru a produce o iesire specifica pentru un client sau o piata" Un BP poate fi descompus in sub-procese, etc, pana la activitati BP se orienteaza in special asupra logicii de business (BL) = cum se face, in loc de orientarea spre produs (ce se face) Un BP trebuie sa aiba: n o delimitare clara a intrarilor si iesirilor n o delimitare clara a activitatilor care il formeaza, care trebuie sa fie ordonate in timp si spatiu n un beneficiar al iesirilor = clientul
Business Process n n Modelarea BP - reprezentarea grafica a BP intr-un flux de lucru (workflow) n BPML (Business Process Modeling Language) n BPMN (Business Process Modeling Notation) Workflow n Un pattern repetitiv de activitati, descris pe baza unei organizari sistematice a fluxului de resurse, roluri, materiale si informatie n Un concept mai restrictiv decat cel de proces, care pune in evidenta fluxul de control si de date dintr-o perspectiva centralizata; de obicei dependent de instrumentele folosite
Abstractizarea BP Orchestrare n aranjamentul unei compozitii muzicale pentru interpretarea de catre o orchestra un unic dirijor care controlul Orchestrare BP n BP vazut ca o ordonare totala sau partiala a activitatilor sub control centralizat [Global; centralizat] Choreografie n Dansatori care urmeaza un scenariu global fara un unic punct de control Choreografie BP n BP vazut ca un schimb de mesaje intre participanti; defineste interactiuni [Global; distribuit] Coordonare n BP ca un set de activitati corelate intre partenerii de business [Local; distribuit]
Orchestrarea serviciilor n Integrarea si automatizarea proceselor la nivelul serviciilor Solutie potrivita pentru implementari SOA Perspectiva centralizata BPEL, WS BPEL (BPEL 4 WS) n Cursul urmator n n n Orientare pe procese
Coreografia serviciilor § WS-Choreography descrie schimbul de mesaje vizibil public in interactiuni complexe intre procese § Perspectiva distribuita § Problema coreografiei § de interes § interoperabilitate § WSCL (Web Service Conversation Language) § WSCI (Web Service Choreography Interface)
Coreografia serviciilor Exemplu simplu de coreografie § Arata cum o companie de vanzare/cumparare actiuni online foloseste serviciile Web si WSDL pentru a pune la dispozitia clientilor aceste servicii § Arata de asemenea limitarile abordarii si cum coreografia (in particular WSCI) poate elimina aceste limitari
"Online trading company" Web services Functionare Stock trading business processes - Stocks, stock details – de la "third party Web service" (xmethods. net de ex) - Cumparare actiunui – printr-un proces intern companiei - Perioada de timeout (1 min) pt confirmare comanda - Daca clientul nu confirma operatia aesueaza si mesaj de timeout catre cumparator - Plata de la cumparator – printr-un "third party Web service" in 2 pasi: validare + debitare (trebuie executati ca o activitate logica unitara)
"Online trading company" Web services § Compania ofera aplicatia Buy/Sell ca un serviciu Web § Operatiile de executat se pot descrie in WSDL § Clientul foloseste un software de servicii Web si apeleaza operatiile WSDL pentru a realiza o cumparare sau o vanzare de actiuni
Limitari si probleme O astfel de aplicatie (Buy/Sell) functioneaza corect daca toate procesele sunt atomice sau nu necesita stari comune n n Secventierea proceselor: n Un client/consumator al serviciului poate apela operatiile in orice ordine, de ex: operatia transfer. Money inainte de place. Buy. Order sau place. Sell. Order. n WSDL permite apelul operatiilor in orice ordine. Aplicatia WS care utilizeaza WSDL trebuie sa aiba grija de acest aspect. Corelarea mesajelor: n Mesajul trimis si cel primit ca raspuns trebuie sa foloseasca date corelate. Intr-un BP in general, procesele trebuie sa partajeze stari pentru a realiza colaborare. n Operatiile WSDL sunt fara stare si nu pot corela instantele mesajelor
Limitari si probleme n n n Unitatea de lucru: n Ce operatii sunt indivizibile ca grup (tratate ca o tranzactie); in exemplu place. Buy. Order, confirm. Buy. Order, transfer. Money trebuie executate intr-o singura unitate logica de lucru: ori toate trei cu succes ori stare anterioara. n In WSDL nu se pot executa operatii de tranzactii distribuite: contextul unei tranzactii este limitat la o operatie individuala. Context: n Intr-o interactiune de BP procesele trebuie sa stabileasca un context in care sa partajeze informatia (de ex declaratii, evenimente speciale, proprietati ale tranzactiilor). n WSDL nu ofera posibilitatea ca procesele sa se desfasoare intr-un context. Tratarea exceptiilor
Solutii? § Coreografia serviciilor Web poate solutiona anumite probleme § Propuneri: § WSCL § WSCI § W 3 C Web Service Choreography – specificatii § WSCL – specifica secventa de documente XML care sunt schimbate intre un serviciu Web si un utilizator al acestui serviciu § Conversatii WSCL: interactiuni si tranzitii, interactiunea de start si interactiunea de final § WSCL descrie interactiunile cu un serviciu (spre deosebire de WS BPEL care descrie conexiuni si interactiuni intre diverse servicii) – mai mult despre WSCL - vezi prezentare
WSCI Web Service Choreography Interface n un limbaj de descriere a interfetelor BP n ofera o perspectiva orientata pe mesaje a interactiunilor de coreografie intre o colectie de servicii Web n descrie fluxul de mesaje schimbate de un WS care interactioneaza cu alte WS dupa un pattern coreografic n caracterizeaza comportarea exterioara observabila a unui WS (nu operatiile lui interne) n ofera interoperabilitate pentru BPML, BPMN si BPEL 4 WS n Este o extindere peste WSDL si o specificatie WSCI este o parte a unui document WSDL care descrie un WS
WSCI – Secventierea proceselor n Gruparea proceselor individuale intr-un proces global cu pastrarea ordonarii – elementul de interfata sequence: asigura faptul ca apelul proceselor se face in secventa <sequence> <!-- Web service Choreography Sequence --> <operation name="place. Buy. Order"> <input message="buy. Sell. Order. Request"/> <output message="buy. Sell. Order. Response"/> </operation> <operation name="confirm. Buy. Order"> <input message="buy. Sell. Order. Response"/> <output message="buy. Sell. Order. Response"/> </operation> <operation name="debit. Money"> <input message="credit. Card. Details"/> <output message="debit. Money. Response"/> </operation> </sequence>
WSCI – Corelarea mesajelor n n Crearea de instante ale mesajelor: de exemplu pt confirm. Buy. Order si place. Buy. Order. Consumatorul de serviciu poate face mai multe comenzi de Buy, ceea ce duce la generarea a mai multor conversatii. Fiecare conversate se identifica printr-un element de corelare care ca proprietate un ID unic <correlation name = "buysell. Correlation" property = "tns: place. Order. Id" />
WSCI – Unitate de lucru n n n Foloseste action pentru a face ca fiecare operatie sa fie o unitate atomica de lucru Utilizeaza un element tranzaction pentru a modela comportarea unui WS care trateaza o serie de activitati ca o unitate de lucru indivizibila. Se folosescte transaction pt a comunica altor servicii ca: fie aceste activitati se executa complet sau se revine la starea anterioara executiei. In exemplu se foloseste WS third party. Daca apare o exceptie sau nu se poate finaliza tranzactia cu un third party, atunci WS trebuie sa revina la starea anterioara. Se realizeaza printr-un element transaction si un element compensation. <transaction name = "reverse. Buy. Order"= "atomic"> <compensation> <action name = "reverse. Buy. Order"= "tns: trader"= "tns: reverse. Buy. Order"/> </compensation> </transaction> Tranzactia poate fi apelata intr-un element compensation cand apare o exceptie: <on. Timeout property = "tns: confirmation. Time"= "duration"= "tns: Place. Buy. Order@end"> <compensate transaction = "tns: reverse. Buy. Order"/> </on. Timeout>
WSCI – Tratare exceptii n n Foloseste elemete exception care permit declararea comportarii exceptionale a WS intr-un anumit punct al coreografiei. Declararea exceptiilor este parte a definirii contextului, cu un set de activitati asociate pe care WS le executa ca raspuns la exceptie. WSCI poate genera exceptii pe baza unui mesaj de eroare WSDL, a continutului unui mesaj sau a unui eveniment (de ex timeout); nu abandoneaza intreaga coreografie(in general) <exception> <on. Timeout property = "tns: expiry. Time" type = "duration" reference="tns: Reserve. Seats@end"> <compensate transaction = "tns: seat. Reservation"/> </on. Timeout> </exception>
WSCI – Context n n n n n Agregarea unui numar de servicii intr-un serviciu compus necesita partjarea unui context. Elementul context defineste un mediu comun de executare a activitatilor ca un grup Toate activitatile din acel context au aceleasi declaratii, evenimente de exceptie si proprietati ale tranzactiilor Definitia de context are proprietati locale si definitii de procese locale. Proprietatile locale sunt accesibile numai activitatilor definite in acel context. Procesele locale desemneaza procesele care se pot instantia in acel context. De ex procesele de Buy si Sell au contexte diferite. Daca apare o eroare in procesul de Buy actiuni, aceasta este relativa la acest proces. Fara definirea unui context, a astfel de eroare termina WS in loc sa treaca in starea place. Sell. Order. Exista structuri de control: while, until, foreach
WSCI – Context <context> <foreach select="ns 1: array. Of. Stock. List/leg[position()>1]"> <process name = "Place. Buy. Order" instantiation = "other"> <action name = "Place. Buy. Order" role= "tns: trader" operation= "tns: place. Buy. Order"> </action> </process> </foreach> <process name = "Confirm. Buy. Order" instantiation = "other"> <action name = "Confirm. Buy. Order" role= "tns: trader" operation= "tns: confirm. Buy. Order"> <correlate correlation = "defs: buy. Stock. Correlation" instantiation= "true" /> </action> <exception> <on. Timeout property = "tns: confirmation. Time" type= "duration" reference="tns: Place. Buy. Order@end"> <compensate transaction = "tns: reverse. Buy. Orders"/> </on. Timeout> </exception> </process> <process name="transfer. Money" instantiation="other"> <action name = "cash. Transaction" role= "tns: trader" operation= "tns: debit. Money" > </action> </process>
WSCI – Context <process name="transfer. Money" instantiation="other"> <action name = "cash. Transaction" role= "tns: trader" operation= "tns: debit. Money" > </action> </process> <exception> <on. Message> <action name = "reverse. Buy. Orders" role= "tns: trader" operation= "tns: cancel. Buy. Order"> </action> <fault code = "tns: credit. Card. Tx. Fault. Code"/> </on. Message> </exception> </context>
WSCI – Rezultat
WS-Coordination n n Mai multe WS care sa opereze intr-o maniera coordonata si un context consistent O specificare a unui serviciu de coordonare Serviciul poate fi oferit de un coordonator dedicat sau de o componenta a unui WS care isi asuma rolul de coordonator pe langa serviciul de baza Un serviciu de coordonare presupune: n Registration service: participantii se inscriu la coordonator n Coordination protocol service: defineste protocolul de urmat n Activation service: creaza o instanta a contextului de coordonare
4af29a980379c63b64feb2dd2f0ea210.ppt