90 likes | 186 Views
Servicii cu facilitati de tipul subscribe/unsubscribe. Mugurel Ionu ț Andreica 2012. Tipul de interactiune considerat pana acum: cerere-raspuns. Pana acum am considerat (in special) urmatorul tip de interactiune: Clientul trimite o cerere la serviciu
E N D
Servicii cu facilitati de tipul subscribe/unsubscribe Mugurel Ionuț Andreica 2012
Tipul de interactiune considerat pana acum: cerere-raspuns • Pana acum am considerat (in special) urmatorul tip de interactiune: • Clientul trimite o cerere la serviciu • Serviciul proceseaza cererea si trimite inapoi clientului un raspuns (eventual) • Pentru fiecare cerere trimisa se asteapta inapoi zero raspunsuri sau un raspuns • dupa ce este primit raspunsul (daca e cazul), nu se mai asteapta date referitoare la cererea respectiva • Clientul nu se asteapta sa primeasca date de la serviciu decat ca raspuns la o cerere • Instantele serviciului comunica intre ele (sau cu alte servicii externe) tot conform modelului cerere-raspuns
Tipul de interactiune considerat pana acum: multicast • Transmisie de informatii intre instantele aceluiasi serviciu • Notificari, replicare de date, sincronizare distribuita, etc. • Comunicatia de tip multicast se bazeaza pe IP Multicast sau pe topologii peer-to-peer • Face parte din middleware-ul serviciului • Nu se realizeaza pe baza utilizarii unor servicii de comunicatie externe (decat daca consideram facilitatea de IP Multicast un serviciu oferit de echipamentele de retea)
Subscribe la un flux de date • Tip special de cerere: subscribe • Clientul trimite serviciului o cerere de subscribe la un flux de date • Serviciul proceseaza cererea ca orice alta cerere (ca si pana acum) si trimite inapoi clientului ca raspuns un identificator al subscription-ului (eventual) • In continuare, pe o perioada nedeterminata, serviciul va trimite clientului date din cadrul fluxului de date la care s-a abonat clientul (datele pot fi trimise folosind alti connector-i decat cei prin care s-a trimis cererea de subscribe) • Modalitatea de transmitere a fluxului de date (protocol, adresa, port, etc.) poate fi specificata de catre client in cererea de subscribe
Unsubscribe de la un flux de date • Oricand dupa abonarea initiala, clientul poate trimite serviciului cerere de tip unsubscribe • Cererea specifica identificatorul de subscription (si, eventual, elemente de autentificare) • Serviciul proceseaza cererea in mod normal (ca si pana acum) si trimite clientului ca raspuns o confirmare sau infirmare a dezabonarii (eventual) • Dupa procesarea completa a cererii de unsubscribe, serviciul nu va mai trimite fluxul de date corespunzator clientului
Publicarea unui flux de date (1/2) • Fluxurile de date la care se pot abona (de la care se pot dezabona) clientii pot fi generate intern de catre serviciu (de anumite instante ale sale) sau de catre servicii externe, care publica datele respective prin intermediul serviciului curent • De ex., serviciul se poate abona la un serviciu extern de la care primeste fluxuri de date, pe care le poate apoi oferi spre subscribe clientilor proprii (este un serviciu intermediar)
Publicarea unui flux de date (2/2) • Alternativ, clientii serviciului pot trimite cereri de tip publish (publicare a unui flux de date generat de catre client sau obtinut din alta parte) • Serviciul trimite inapoi clientului o confirmare / infirmare a publicarii fluxului de date, precum si informatii referitoare la modul de publicare (de ex., protocolul de transmisie a datelor, IP, port, etc.) • In continuare, clientul trimite serviciului datele din cadrul fluxului de date (pe masura ce acestea sunt generate / obtinute) • Serviciul poate transmite imediat datele primite catre clientii abonati la flux si/sau le poate stoca in vederea unor posibile (re)transmisii ulterioare
Incetarea publicarii unui flux de date • Oricand dupa publicarea unui flux de date F, un client poate inceta publicarea fluxului • Clientul trimite o cerere speciala serviciului in acest sens (iar serviciul raspunde cu o confirmare a incheierii publicarii lui F – eventual) • Serviciul notifica clientii abonati la F ca s-a incheiat transmisia lui F
Publish/Subscribe = un tip de Multicast • Un serviciu de tip publish/subscribe faciliteaza comunicatia de tip multicast (prin faptul ca acelasi flux de date poate fi primit de mai multi clienti) • De ex., servicii de monitorizare (MonALISA) • Alte servicii externe pot utiliza serviciul de publish/subscribe pentru publicarea si primirea de date • Cererea de subscribe poate specifica anumite restrictii referitoare la ce clienti se pot abona la fluxul de date publicat • Sau chiar restrictii referitoare la ce alti clienti pot publica date ca parte a fluxului publicat (in cazul unor fluxuri de date generate colaborativ, care nu au o singura sursa) • Serviciul de publish/subscribe poate optimiza intern transmisia de date multicast (de ex., utilizand mai multe instante, rutare la nivel aplicatie, etc.)