Sunteți pe pagina 1din 11

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

Aplicatii web

WSDL-S

Davidescu Cristian SAAI 6.12.2007

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

1 Introducere
1.1 Interoperabilitate. WSDL. WSDL-S.

Interoperabilitatea reprezinta capacitatea aplicatiilor aflate pe platforme diferite, pe sisteme de operare diferite si programate in limbaje diferite de a interschimba informatii. Ea este ingreunata de obicei de probleme precum nepotrivirea codarii caracterelor de la o limba la alta, reprezentarea diferita a unor tipuri standard (de ex. pe unele platforme tipul int este reprezentat pe 16 biti, pe alte platforme pe 32 de biti) etc. Aceste probleme au fost rezolvate prin decizia de a folosi XML (eXteded Markul Language) pentru transmisia datelor. Dar XML fiind un vocabular foarte general, s-a hotarat realizarea unei particularizari a acestuia rezultand SOAP (Simple Object Acces Protocol). Acesta doar impune un set de reguli de formatare a mesajului XML reprezentand informatia transmisa. Un serviciu web trebuie sa fie usor de descris si creat programe client. Pentru aceasta problema ridicata de cei ce dezvolta programe client ale serviciilor web s-a gasit o solutie care a constat in dezvoltarea unui nou subset XML denumit WSDL prin care, prin elemente prestabilite, sa se informeze clientul asupra structurilor(obiectelor) folosite de serviciu, asupra metodelor expuse si asupra modului de accesare a acestora (parametrii, tipul parametrilor, protocoalele de transport admise, stilul si tipul de codare etc.). Datorita caracterului fix pe care il are acest limbaj a fost posibila realizarea unor utilitare pentru crearea suportului de comunicare (necesar unui client pentru a invoca un serviciu web) doar pe baza fisierului WSDL ce descrie serviciul respectiv. De ce este necesara documentarea serviciului? Deoarece serviciul este oferit spre uz ntregii comunitati Internet (sau unui subset). Exista programatori care vor sa se foloseasca de functionalitatea oferita de serviciul web in cauza. Dar sarcina lor este foarte dificila n cazul lipsei documentatiei referitoare la interfata oferita de serviciu si la maparile ce trebuie folosite pentru a putea transmite corect obiecte si alte informatii. Din aceasta cauza au luat nastere mai multe limbaje de documentare a unui serviciu web. Unele dintre ele se axeaza pe organizarea si accesarea serviciilor, altele pe topografia unui serviciu web mai complex iar altele pur si simplu descriu ce face fiecare metoda si cum ar trebui apelata. Dintre toate aceste limbaje se remarca, datorita folosirii sale pe scara larga, limbajul WSDL (Web Services Description Language). Submis pentru aprobare de catre IBM, Microsoft si altii in septembrie 2000, acest protocol are ca rol descrierea tehnica elementara a interfetei serviciului. O descriere WSDL prezinta trei proprietati fundamentale ale unui serviciu web:

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare Ceea ce face serviciul operatiile pe care serviciul le furnizeaza. Cum este accesat serviciul detalii ale formatelor de date si protocoale folosite pentru accesarea operatiilor. Unde este localizat serviciul detalii ale adresei de retea specifice protocolului (un URL). WSDL-S este o extensie a limbajului WSDL definita prin intermediul XML Schema si care permite adaugarea unor adnotari semantice in cadrul componentelor ce apartin descrierii abstracte a serviciilor. Utilizarea explicita a acestor meta-informatii ce au in spate un suport teoretic (cum sunt ontologiile) va permite ca web-ul sa ofere servicii de o calitate superioara celor de pina acum.

2 Descrierea limbajului WSDL


Web Services Description Language (WSDL) este o gramatica XML folosita pentru a descrie un serviciu web in termeni de mesaje pe care le accepta si mesaje pe care le genereaza. Cu alte cuvinte un fisier WSDL reprezinta un contract intre un consumator de servicii web(client) si un serviciu web. Intr-un fisier WSDL sunt oferite definitii abstracte ale tipurilor folosite in operatii si ale documentelor transmise in fiecare operatie. Apoi sunt asociate aceste definitii cu un protocol de retea si sunt grupate in mesaje care definesc un element endpoint. WSDL poate descrie elemente endpointuri si operatiile lor fara sa specifice formatul mesajelor sau protocoalele de retea de care este legat(bound) elementul endpoint.

2.1 Structura unui document WSDL


Un document WSDL este o lista de definitii. Intr-un document WSDL elementul radacina se numeste definitions. Acest element contine 5 fii imediati folositi pentru a defini un serviciu web. Urmatoarele 5 elemente apar in cadrul elementului definitions, intr-un fisier WSDL in ordinea specificata: Types Elementul <types> defineste tipurile de date care sunt utlizate de serviciu pentru schimbul de mesaje. Acest lucru inseamna in principal definirea tipurilor folosind XML Shema Definition Language (XSD). Message Inafara de definirea tipurilor de date care sunt transmise inainte si inapoi in timpul invocarii unei metode web, trebuie de asemenea definite mesajele de cerere si de raspuns. Deoarece mesajele sunt independente de protocol, se poate folosi WSDL-S 3

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare un mesaj cu HTTP-GET, HTTP-POST, SOAP, sau orice alt protocol pe care un ofertant de servicii web il suporta. Daca se foloseste SOAP, elementul <message> corespunde incarcaturii utile a unui mesaj SOAP de cerere sau de raspuns. Acesta nu include elementele SOAP <Envelope> si <Fault>. Mesajele pot avea orice nume pentru ca WSDL nu defineste o conventie de denumire pentru mesaje. Un element <message> contine 0 sau mai multi fii <part>. Un mesaj de cerere contine toti parametrii in si inout. Un mesaj de raspuns contine toti parametrii out si inout. Fiecare element <part> trebuie sa aiba un nume si un tip de data care se poate potrivi cu tipurile de date care sunt folosite in implementarea serviciului. Port Type Un ofertant de servicii web (un nod din retea care este server web) poate expune mai multe servicii web. Un singur serviciu web poate suporta invocarea metodelor sale folosind o varietate de protocoale. Formatul datelor schimbate intre client si serviciul web poate depinde depinde de protocolul folosit pentru a invoca o metoda. De aceea trebuie sa existe o cale de a asocia operatiile cu endpointurile de unde acestea pot fi accesate. Acest tip de asociere se poate realiza folosind elementul portType. Binding Dupa definirea portului logic(portType), in continuare se defineste cum poate un consumator al serviciului web sa se lege la portul pe care este disponibila operatia GetAccount. Acest lucru implica asocierea unei operatii cu un protocol si asigurarea oricarei informatii de legatura specifice protocolului. De exemplu, un element binding poate mapa un port type la o interfata specifica SOAP RPC utilizand HTTP ca protocol de transport si sistemul de codare a datelor SOAP. Pentru a face asta se foloseste elementul <binding>. Service La sfarsitul fisierului WSDL se definesc endpointurile pentru fiecare dintre protocoalele care se pot folosi pentru a accesa un serviciu web. Pentru a defini endpointurile se foloseste elementul <service>.

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

2.2 Servicii si tipuri de servicii


Elementele <type>, <message>, <portType> definesc un serviciu intr-un mod abstract. O descriere WSDL ce contine doar aceste elemente in consecinta descrie un tip de serviciu. Elementul <binding> mapeaza tipul serviciului la un protocol specific. Elementul <service> mapeaza tipul serviciului si legatura la o instanta specifica a serviciului. Elementele <binding> si <service> pot fi intretinute intr-un document WSDL separat pentru a furniza o mai mare flexibilitate si reutilizare.

3 WSDL-S
3.1 Principii de proiectare
Ideea de la care s-a plecat a fost adaugarea unor caracteristici semantice serviciilor web care sa reduca ambiguitatile in ceea ce priveste descrierea elementelor componente si sa permita automatizarea unor procese precum descoperirea, apelarea si compunerea serviciilor. Extensia WSDL-S este construita peste standardul WSDL si permite adnotarea serviciilor Web prin intermediul unor elemente si atribute suplimentare: adnotari referitoare la tipul mesajelor (modelReference,schemaMapping) si adnotari referitoare la operatii (modelReference, category, precondition,effect). De WSDL-S 5

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare asemenea, trebuie sa asigure un mecanism independent de modelul(limbajul) de reprezentare al semanticii si sa permita asocierea de adnotari multiple scrise in diferite limbaje de reprezentare a semanticii. WSDL-S permite adnotari semantice pentru serviciile Web ale caror tipuri de date sunt descrie prin XML Schema si asigura suportul pentru maparea tipurilor definite si ontologii.

3.2 Extensii WSDL-S


La nivel conceptual, limbajul WSDL 2.0 prezinta urmatoarele constructii pentru descrierea serviciilor Web: interface, operation, message, binding, service si endpoint. Dintre acestea, primele trei tin de definirea abstracta a serviciului, pe cand ultimele trei tin de implementarea serviciului. In cadrul extensiei WSDL-S accentul s-a pus pe adnotarea elementelor care tin de definirea abstracta a serviciilor pentru a facilita descoperirea dinamica, compunerea si utilizarea acestora. Extensiile si atributele puse la dispozitie sunt urmatoarele: modelReference Acest element specifica asocierea intre o entitate WSDL si un concept din cadrul unui model semantic. El poate fi adaugat unui tip complex, element sau operatie. schemaMapping Aceasta extensie poate fi adaugata elementelor XSD si tipurilor complexe pentru rezolvarea diferentelor structurale dintre elementele din schema serviciului web si conceptele lor corespondente din cadrul modelului semantic. precondition si effect Acestea sunt pot fi elemente fiu ale elementului operation. Acestea sunt utilizate in primul rand pentru descoperirea serviciilor web si nu trebuie sa invoce in mod obligatoriu un serviciu. Adnotarea precondition descrie un set de conditii care trebuiesc satisfacute inainte de invocarea unei operatii a serviciului Web. Elementul effect definieste starea dupa invocarea unei anumite operatii. category Acesta este un atribut specific elementului interface si este utilizat pentru a incadra serviciile in anumite categorii care vor fi publicate intr-un registru de servicii web, cum este de exemplu UDDI.

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

3.2.1 Adnotarea elementului operation


Aceasta presupune adaugarea atributului modelReference in cadrul elementelor operation si are ca scop asocierea operatiei cu un anumit concept din cadrul unei ontologii, furnizand astfel o descriere de nivel inalt a operatiei respective. Exemplu (W3.org):

Desi intrarile,iesirile,preconditiile si efectele asigura in mod traditional semantica unei operatii, o adnotare precum cea din exemplul de mai sus poate fi deosebit de utila in cazul descoperii serviciilor.

3.2.2 Adnotarea elementelor input si output


In continuare vom descrie cum putem adnota aceste elemente. Vom considera un input de tip complex si un output de tip simplu. Adnotarea tipurilor simple are la baza extensibilitatea xsd:element. Definitia unui element din cadrul XML Schema specifica faptul ca el poate fi extins prin intermediul unor atribute apartinand unui namespace exterior schemei. Exemplu (W3.org)

Schema in care se gasesc definitiile mesajelor input si output este urmatoarea:

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

Descrierea elementelor de tip complex se poate realiza in mai multe moduri:

Bottom Level Annotation: descriere la nivelul elementelor frunza. In acest caz sunt descrise elementele frunza din cadrul tipului complex. Avantajul acestei abordari consta in simplitatea sa. Abordarea presupune existenta unui concept corespondent pentru fiecare element frunza. In cazul in care nu exista un concept corespondent pentru un anumit element nu se specifica nimic. Dezavantajul consta in presupunerea existentei unei corespondente 1:1 intre elementele schemei si conceptele din cadrul unui domeniu(ontologii). In cazul in care asocierile sunt de tipul 1:n sau n:1 acest mod de descriere poate sa nu fie posibil.

Exemplu:

Top Level Annotation: descriere la nivelul tipurilor complexe

In acest caz tipul complex are asociat un concept. Avantajul acestei abordari consta in rezolvarea problemei referitoare la asocierile de tip 1:n sau n:1 si posibilitatea asocierii elementelor din cadrul unui tip complex cu anumite concepte semantice.

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare Dezavantajul consta in complexitatea acestei abordari. Exemplu:

3.2.3 Preconditii si efecte


O preconditie defineste un set de conditii care trebuiesc satisfacute inainte de invocarea unei anumite operatii. Ele pot specifica anumite cerinte care trebuiesc indeplinite sau anumite restrictii si se definesc ca elemente fiu ale operatiei asupra careia actioneaza. Efectele definesc rezultatul invocarii unei anumite operatii. Ele pot fi asociate si cu erori. Din dorinta de a pastra specificatia cat mai simpla, fiecare operatie poate avea cel mult o preconditie si un efect. Exemplu:

3.2.4 Gruparea serviciilor


Motivul introducerii acestor descrieri este posibilitatea de descoperire dinamica a serviciilor. Acest luru este posibil in momentul in care serviciile sunt publicate, catalogate si descrise din punct de vedere semantic. Mecanismul asigura gruparea serviciilor in vederea publicarii acestora in anumite registre de servicii

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare gen UDDI. Astfel utilizatorii pot reduce numarul de servicii canditate in functie de acest criteriu. Obiectivul este asigurarea unei clasificari elementare de nivel inalt a serviciilor, lasand la o parte detaliile referitoare la sistemul de grupare a acestor servicii. Exemplu: <wssem:category name= "Electronics" taxonomyURI="http://www.naics.com/" taxonomyCode="443112" />

4 Aplicatii
Integrarea aplicatiilor si a proceselor de business sunt activitati critice pentru organizatiile actuale. In contextul arhitecturii orientate pe servicii aceasta se traduce prin provocarile tehnice referitoare la descoperirea, reutilizarea si compunerea serviciilor. In implementarea arhitecturilor orientate pe servicii, serviciile web reprezinta niste componente esentiale. Pentru descoperirea automata a serviciilor si compunerea rapida a acestora este necesara eliminarea ambiguitatilor referitoare la descrierea serviciilor prin adaugarea unor elemente semantice.

WSDL-S

Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare

5 Concluzii
WSDL-S are la baza o abordare simpla si compatibila cu actualul standard WSDL. De asemenea, extensia asigura independenta fata de modelul de reprezentare al semanticii oferind flexibilitate in alegerea modelulul de reprezentare(ontologiei) si posibilitatea asocierii mai multor ontologii. Datorita faptului ca este o extindere a standardului WSDL eforul de modificare al uneltelor de dezvoltare existente este foarte redus.

6 Bibliografie
1. R. Akkiraju, J. Farell , J.A. Miller, M. Nagarajan, A. Sheth, K. Verma Web Service Semantics -WSDL-S 2. World Wide Web Consortium (www.w3.org) Standardul WSDL-S 3. UGA IBM Technical Note 4. Wikipedia (http://en.wikipedia.org) Web Services Description Language 5. http://lsdis.cs.uga.edu/projects/WSDL-S/wsdl-s.pdf WSDL-S

WSDL-S

S-ar putea să vă placă și