Sunteți pe pagina 1din 26

SERVICII WEB

Serviciile software

Servicii utilizator inteligente si adaptive la context. Acestea sunt servicii de inteligenta ambientala ce ofera utilizatorilor abilitatea de acces convenabil la diverse functionalitati, de oriunde, oricand si de pe orice tip de dispozitiv. Servicii informationale. Acestea sunt servicii prin care se ofera informatie personalizata sau cu valoare adaugata, spre exemplu prin compararea, clasificarea, sau rezumarea uneia sau mai multor surse de informatie. Servicii de intermediere. Acestea sunt servicii care sprijina gasirea altor servicii corespunzator cerintelor clientilor. Servicii dependente de locatie. Reprezinta o familie de servicii a caror functionalitate depinde de cunoasterea locatiei geografice a utilizatorului disponibila prin intermediul dispozitivelor mobile.

Servicii Web

furnizeaza o cale standard de a asigura interoperabilitatea intre aplicatii software diferite, ruland pe o varietate de platforme organizatiile folosesc tehnologia serviciilor Web in integrarea aplicatiilor de intreprindere (EAI) si integrarea business-to-bussines(B2B) pe Internet sunt folosite pentru integrarea flexibila de sisteme slab cuplate care pot fi descompuse si recompuse pentru a reflecta natura dinamica a businessului aplicatiile software disponibile pe Web pot fi accesate, executate si compuse datorita ideii de Servicii Web

Definitii

o aplicaie accesibil altor aplicaii pe Web un program accesibil pe Web cu o API stabil, publicat cu informaii descriptive suplimentare pe un director de servicii. consoriul UDDI: aplicaii de afaceri modulare, auto-coninute, care au interfee deschise bazate pe standarde, orientate pe Internet. Aceast definiie este mai specific, preciznd caracterul deschis (serviciul are o interfa publicat care poate fi invocat pe Internet) i necesitatea compatibilitii cu standardele Internet. consoriul W3C (WWW) - o aplicaie software, identificat printr-un URL, ale crei interfee i legturi sunt capabile s fie definite, descrise i descopertite ca artefacte XML. Un serviciu Web suport interaciuni directe cu ali ageni software folosind mesaje bazate pe XML, schimbate via protocoale Internet. Aceast definiie clarific noiunea accesibil (capabilitatea de a fi definite, descrise, descoperite). Un serviciu Web nu trebuie doar s ruleze, dar i s poat fi descris i popularizat astfel nct s fie posibil s se scrie clieni (programe client) care s se lege i s interacioneze cu el

=>

Serviciile Web sunt componente software care pot fi integrate n aplicaii distribuite complexe. Baza tehnologiilor Web o reprezint la ora actual XML, iar formatul de date XML este utilizat de majoritatea interaciunilor bazate pe Web.

Tehnologii pentru servicii Web


Tehnologia serviciilor Web trebuie sa rezolve : descrierea, descoperirea, interactiunea si compunerea Principalele standarde pentru serviciile web: SOAP - Simple Object Access Protocol. SOAP este o specificatie care defineste o gramatica XML pentru trimiterea si primirea de mesaje. Scopul specificatiei SOAP - de a descrie un format de mesaje care sa nu depinda de arhitectura hardware sau software, capabil sa transmita si sa receptioneze mesaje la/de la orice platforma. Extensible Markup Language (XML) - un meta-limbaj de baza peste care sunt construite limbajele pentru serviciile Web. XML este mai mult un meta-limbaj decat un limbaj, deoarece este folosit pentru a crea gramatici. Aceste gramatici sunt descrise in scheme XML care specifica tag-urile (marcajele) care sunt permise de legaturile dintre elementele definite de aceste tag-uri. SOAP, WSDL si UDDI sunt gramatici bazate pe XML. Hypertext Transport Protocol (HTTP) - un standard care precede aparitia serviciilor Web. A fost dezvoltat pentru a facilita trasnsferul de cereri dintre navigator (browser) si serverul Web. Cu ajutorul sau se transmit mesaje SOAP si documente WSDL de la un calculator la altul. Versiunile mai noi de SOAP descriu cum alte mecanisme de transport ca FTP, SMTP si JMS pot fi folosite pentru a realiza aceeasi functie. Totusi, majoritatea serviciilor Web este construita pe protocolul HTTP. Web Services Description Language (WSDL) - o specificatie despre modalitatea de a descrie un program software in functie de apelurile de metode la care trebuie sa raspunda. Aceste metode sunt descrise intr-un mod abstract care este independent de limbajul de programare in care este scris serviciul, de calculator sau de sistemul de operare. WSDL contine, de asemenea, o sectiune in care sunt descrise detalii de conectare la serviciu. Universal Discovery Description Integration (UDDI) - descrie cum un potential client al serviciului Web poate invata despre capabilitatile serviciului si cum poate obtine informatia de baza necesara pentru a face contactul cu site-ul. Acest contact include si descarcarea documentului WSDL. Registrii UDDI pot fi publici, privati sau semiprivati.

Arhitectura orientata pe servicii

Un serviciu Web - o functionalitate software accesibila in retea si construita pe tehnologii independente de platforma, limbaj de programare si componente Serviciile Web se bazeaza pe Service-Oriented Architecture (SOA) unde functionalitatea software este distribuita intr-un set de servicii Pentru ca un serviciu sa existe in domeniul SOA, este necesar un mecanism care sa descrie, sa descopere si sa faca apel la servicii.

Arhitectura SOA descrie 3 roluri de baza

Service Provider. Furnizorul de servicii este responsabil cu implementarea serviciilor Web. Prima sarcina pe care un service provider trebuie s-o indeplineasca este de a determina functionalitatea pe care o ofera ca serviciu. O data ce au realizat acest lucru, trebuie sa descrie interfata acestei functionalitati intr-o metoda standard. In final, trebuie sa publice aceasta interfata intr-un registru pentru a oferi consumatorilor de servicii posibilitatea de a-si gasi servicii web. Service Registry. Registrul de servicii functioneaza ca un repozitoriu de servicii Web. Ofertantii de servicii publica in acest registru definitiile serviciilor lor. Prin urmare, registrele de servicii au facilitate de publicare a serviciilor web si functioneaza ca un repozitoriu pentru consumatorii de servicii, pentru a le permite acestora sa gaseasca aceste servicii Web si de a le asigura informatia necesara pentru a apela serviciul Web. Service Consumer. Consumatorul de servicii foloseste serviciile Web create de ofertantul de servicii. Regaseste toata informatia necesara pentru a se conecta (bind) la serviciul web din registrul de servicii, incluzand interfata la serviciul respectiv publicat de provider-ul de servicii. Interfata ofera detalii ale metodelor, parametrilor si protocolului de transport necesar pentru utilizarea lui.

Stiva de servicii Web

Web Services Description Language (WSDL)

un limbaj pentru descrierea interfetelor serviciilor Web. Cu ajutorul sau se pot descrie serviciile Web : metodele care pot fi invocate, parametrii metodelor, tipurile parametrilor, protocolul care va fi folosit, etc. Avand dat un document WSDL al unui serviciu Web se poate scrie un client care sa invoce functionalitatea serviciului Web. Documentul WSDL -> un document XML structurat in doua parti:
o

definitie abstracta a serviciului Web si contine tipuri de date, metode, etc. detalii despre protocolul de transport folosit (HTTP, SMTP, FTP, etc) si implementarea de SOAP folosita.

Structura documentului WSDL

Elementele documentului WSDL

<type> = tipurile de date folosite in mesajele schimbate in comunicarea cu serviciul Web: float, integer, string, etc. WSDL foloseste specificatiile XML Schema pentru codificarea tipurilor de date. <message> = o unitate de comunicatie cu serviciul invocat. O operatie in terminologia WSDL reprezinta semnatura metodei si cuprinde legatura dintre mesajele de intrare si iesire. O operatie descrie un schimb simplu de mesaje cu serviciul Web. <portType> = descrie o multime de operatii expuse de serviciul Web -asemanator unei interfete din invocarea procedurilor la distanta. Elementul <portType> contine o colectie de operatii. <binding> = pentru a specifica protocolul de transport care este folosit (SOAP este folosit peste HTTP, SMTP, posibil si alt protocol de transport) impreuna cu tipul de cerere SOAP (rpc sau document). <service> = creeaza legatura cu implementarea actuala a serviciului. Acesta va referi elementul <binding> care este asociat cu elementul <port> ce contine adresa serviciului Web sub forma unui URL.

Operatii intr-un document WSDL


Request/Response clientul face o cerere si serviciul Web raspunde la ea. Solicit/Response serviciul Web trimite un mesaj la client si clientul raspunde. One-way clientul trimite un mesaj la un serviciu Web, dar nu asteapta nici un mesaj. Notification serviciul Web trimite un mesaj la client dar nu asteapta nici un raspuns.

Tipuri de mesaje

WSDL - avantaje

Structura de date WSDL are implicatii interesante in interactiunea dintre servicii. Unele dintre ele sunt legate de tipurile de operatii. Modurile de interactiune care pot fi asociate cu operatii WSDL arata ca un serviciu poate initia interactiunea si un serviciu nu expune doar operatii care sa poata fi invocate, insemnand ca un serviciu poate actiona ca un client. In domeniul serviciilor Web, fiecare entitate de interactiune este modelata, de obicei ca un serviciu WSDL. O alta implicare a specificatiei WSDL -> nu se presupune o anumita forma particulara pentru schimburile care au loc. De aceea, WSDL poate descrie 2 aspecte ale serviciilor Web: interfata abstracta a serviciului, fara a specifica locatia sau protocolul care se foloseste si partea a doua reprezinta locatia serviciului si protocolul de comunicare folosit.

WSDL - avantaje

specificatiile WSDL care descriu interfete abstracte pot fi reutilizabile: servicii diferite pot fi combinate in interfete, folosind diferite metode de legare (bindings) si sa le faca disponibile la diverse adrese. Reutilizarea este facilitata de faptul ca documentele WSDL pot sa importe alte documente WSDL.

WSDL - standard orizontal

WSDL poate fi utilizat de o varietate de instrumente si nu contine nici o specificatie a unui domeniu particular a fost proiectat ca un limbaj generic de descriere a serviciului. Pe langa WSDL, au fost create numeroase standarde B2B - Electronic Data Exchange (EDI) si SWIFT Avantajul acestor standarde peste WSDL - sunt proiectate pentru aplicatii concrete si capteaza aspecte semantice pe care WSDL nu este capabil sa le capteze.Este posibil ca unele din aceste standarde sa convearga tot la WSDL, producand standarde hibride care vor fi utilizate in arii de aplicatii concrete, iar alte standarde sa supravietuiasca si sa ramana independente de WSDL.

UDDI

initial, a fost conceput ca si Universal Business Registry similar cu motoarele de cautare (e.g., Google), folosit ca mecanism principal pentru a gasi serviciile electronice oferite de companii din lumea intreaga in prezent, este cea mai pragmatica specificatie si recunoaste realitatile interactiunilor B2B: este o infrastructura pentru serviciile Web, avand acelasi rol ca si serviciul de nume si director (binder in RPC), dar aplicat serviciilor Web si folosit in medii cu constrangeri (intern intr-o companie sau intr-o multime de parteneri de afaceri).

Versiuni UDDI
versiunea 1 definea conceptele de baza pentru directoare de servicii de business (business service registry) versiunea 2 adapteaza lucrul serviciilor de directoare UDDI la SOAP si WSDL versiunea 3 redefineste rolul si scopul directoarelor UDDI, pune in evidenta rolul implementarilor private si se ocupa cu problema interactiunii dintre directoarele UDDI private si publice.

Registrii UDDI

O intrare intr-un registru UDDI = un document XML compus din diferite elemente:

businessEntity: reprezinta descrierea organizatiei care ofera serviciul. BusinessService: este o lista de servicii Web oferite de entitatea de business. bindingTemplate: descrie aspectele tehnice al serviciului care va fi oferit. tModel: (technical model) este un element generic care poate fi utilizat pentru a memora informatii aditionale despre serviciu, in special informatie tehnica aditionala despre cum se foloseste serviciul, conditiile de utilizare, garantii, etc.

Utilitatea elementelor
Informatii despre paginile albe: date despre cel care ofera serviciul (nume, adresa, persoana de contact, etc.) Informatii despre paginile galbene: ce tip de servicii sunt oferite si o lista cu diferitele servicii oferite Informatii despre paginile verzi: informatie tehnica despre cum sunt folosite fiecare din serviciile oferite, incluzand referinte la descrierile WSDL ale serviciilor (care nu se gasesc in registrul UDDI)

Entitatea Business
Informatia despre paginile generice albe si galbene despre cel care ofera serviciul -: memorata in entitatea businessEntity, care contine urmatoarele date: fiecare businessEntity are un businessKey discoveryURLs este o lista de URL-uri Name: contine informatie textuala Business description: contine informatie textuala Contacts: contine informatie textuala businessServices: o lista de servicii oferite de entitatea businessEntity identifierBag: o lista de identificatori externi categoryBag: o lista de categorii de business (de exemplu, industrie, categorie produs, regiune geografica) Entitatea Business nu trebuie sa fie o companie poate sa reprezinte orice entitate care ofera servicii: poate fi un departament, un grup, server sau o multime de servere, etc.

Serviciul Business
Serviciile oferite de o entitate de afacere sunt descrise folosind elemente businessService Elementul businessService poate descrie un serviciu Web sau un grup de servicii Web asociate (toate oferite de aceeasi entitate businessEntity).

Sablonul de legatura Bindingtemplate


Contine informatie tehnica asociata unui serviciu particular: bindingKey serviceKey description accessPoint: adresa de retea a servicului oferit ( de obicei un URL) tModels: este o lista de intrari corespunzatoare elementului tModels asociat cu un anumit element de legatura. Aceasta lista include referinte la tModels, documente care descriu tModels, scurte descrieri, etc. categoryBag: informatie aditionala despre serviciu si despre legaturile sale (de exemplu daca este o legatura de test, sau este in productie, etc) businessService poate avea mai multe bindingTemplates dar un bindingTemplate poate avea doar un businessService binding template poate fi vazut ca un director unde este memorata informatia tehnica despre serviciu

tModel
Este un container de informatie unde proiectantii pot scrie informatie tehnica asociata cu folosirea unui serviciu Web: interfata si protocolul folosit, incluzand o referinta a descrierea WSDL descrierea protocolui de afacere si conversatiile suportate de serviciu
Contine: tModelKey name description overviewDoc: (cu un overviewURL si useType care indica unde se gaseste informatia si formatul sau, de exemplu text sau wsdldescription) identifierBag categoryBag

Interfete UDDI
Specificatia UDDI ofera un numar de API-uri (Application Program Interfaces) care dau posibilitatea accesului la un sistem UDDI:

UDDI Inquiry: pentru a localiza si gasi detalii in registrii UDDI si a suporta navigarea, invocarea, etc. UDDI Publication: pentru a publica si modifica informatia in registrii UDDI. Toate operatiile din acest API sunt atomice in sensul tranzactional. UDDI Security: pentru controlul accesului la registrii UDDI. UDDI Subscription: permite clientilor sa subscrie la schimbarile de informatii din registrele UDDI. UDDI Replication: descrie cum se efectueaza replicarea informatiei in nodurile din registrele UDDI. UDDI Custody si Ownership transfer: folosite pentru a schimba proprietarul (publisher) informatiilor si pentru a transfera custodia de la un nod la altul din registrul UDDI. UDDI ofera de asemenea API-uri pentru clientii sistemul UDDI: UDDI Subscription Listener: partea de client pentru API de subscriere. UDDI Value Set: folosit pentru a valida informatia oferita de un registru UDDI.