Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti
Download ReportTranscript Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti
Aplicatii Web bazate pe semantica, agenti si servicii
http://turing.cs.pub.ro/webs_07 Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea
Servicii Web Semantice
Web Semantic si Servicii Web Semantice Infrastructura SWS Ontologii pentru SWS: OWL-S – acest curs si WSMO – curs 12 Selectia serviciilor – prezentare Filis Cadar
Standarde pentru servicii Web
UDDI Sematic Web Services OWL-S Service Model BPEL4WS WS-AtomicTransaction and WS Profile OWL-S Service Grounding OWL PSL RDF WS-Reliable Messaging WS-Security WS-Policy WS-Coordination WSCL SOAP WSDL XML, DTD, and XML Schema HTTP, FTP, SMTP, SIP, etc.
WSCI ebXML Registries ebXML CPA BPML BTP Discovery Contracts and agreements Process and workflow orchestrations QoS: Transactions ebXML BPSS QoS: Choreography QoS: Conversations ebXML CPP ebXML messaging QoS: Service descriptions and bindings Messaging Encoding Transport
1. Evolutie
Probleme legate de: regasirea informatiei, extragerea informatiei, reprezentarea informatiei, interpretarea informatiei actualizarea informatiei Static
WWW
URI, HTML, HTTP
Semantic Web
RDF, RDF(S), OWL
Evolutie
Dinamic
Web Services
UDDI, WSDL, SOAP
Static
WWW
URI, HTML, HTTP
Semantic Web
RDF, RDF(S), OWL
Evolutie
Intregul potential al web-ului Dynamic
Web Services
UDDI, WSDL, SOAP
Semantic Web Services
Static
WWW
URI, HTML, HTTP
Semantic Web
RDF, RDF(S), OWL
Limitari ale WS curente
Tehnologiile curente (WSDL, SOAP, UDDI) permit utilizarea WS dar:
descrieri ale informatiei la nivel sintactic suport exclusiv sintactic pentru descoperire, compunere si executie
=> utilizarea si integrarea WS trebuie sa fie realizata manual
nu exista marcare semantica a continutului serviciilor nu exista suport pentru Web Semantic
Servicii Web Semantice
Tehnologia Web Semantic
• • permite interpretarea semantica automata a datelor folosirea ontologiilor ca model al datelor
+ Tehnologia WS
permite descoperire, selectie, compunere si executie a WS
Servicii Web Semantice ca solutie integrata pentru realizarea noii generatii a Web
2. Infrastructura SWS
Activitati/utilizare
Publication Discovery Composition Selection Execution Mediation
Arhitectura
Register Decomposer Matchmaker Reasoner Invoker
Ontologia serviciului
Pre-condition input output Cost Atomic service Post-condition Composite service Suport executie • Monitoring • Compensation • Replacement • Auditing
Nivel Business Nivel fizic Nivel conceptual
Infrastructura SWS
Activitatile/utilizarea definesc cerintele functionale pe care trebuie sa le posede un framework pentru SWS Arhitectura SWS defineste componentele necesare pentru realizarea acestor activitati Ontologia serviciului combina modelele conceptuale legate de descrierea unui SWS si reprezinta modelul de cunostinte al informatiei ce descrie serviciul si indica modul de folosire a serviciului.
2.1 Activitati
SWS este vazut ca un obiect dintr-un scenariu a unei aplicatii de business
Publication : Permite accesul la descrierea unui serviciu Discovery: anumit task Localizeaza diferite servicii pentru un Selection: Alege cel mai potrivit serviciu dintre mai multe disponibile Composition: Combina mai multe servicii pentru satisfacerea unui scop Mediation: Rezolva nepotriviri (date, protocol, procese) intre servicii compuse Invocation / Execution: conventii specifice Invoca serviciile folosind
Activitati
Publication SWS : Publicarea unui SWS permite descoperirea serviciilor pe baza scopului sau a capacitatilor serviciului Ontologia serviciului este inregistrata intr-un registru semantic (semantic registry) Ontologia serviciului separa informatia utilizata pentru matching in timpul descoperirii de cea utilizata de serviciu la invocare.
Ontologia serviciului trebuie legata si de o ontologie a domeniului.
Discovery SWS : Matchmaking semantic intre descrierea serviciului cerut si descrierea publicata a serviciului Registrul semantic se inspecteaza ca urmare a cererilor; cererile pot contine nume, input, output, preconditii dar si alte atribute.
Matching-ul poate fi facut si la nivelul task-urilor sau scopurilor care se doresc.
Matching-ul poate fi bazat pe anumite criterii cum ar fi mostenirea relatiilor in taxonomia ontologica
Activitati
Categorii de "Matching semantic": Exact SWS Plug-in = iesirile cerute sunt subsumate de cele ale SWS = iesirile cerute sunt la fel cu cele ale Ex: un serviciu care ofera toate tipurile de vehicule este un "plug-in match" pentru o cerere de tipuri de masini Subsumeaza cele ale SWS = iesirile cerute subsumeaza Ex: un serviciu care ofera informatii despre masini este un "subsuming match" pentru o cerere care se refera la tipuri de vehicule
Activitati
Selection SWS: Necesara daca exista mai multe servicii potrivite cererii.
In mediu agenti – negociere Composition SWS: Se pot folosi atribute ne-functionale: cost, calitate Compunere (coreografie) – SWS compus definit in terenii unor servicii mai simple.
Workflow – poate fi definit folosind structuri de control Aceasta descriere poate fi ancorata intr-o descriere sintactica, de ex WSBPEL Compunere dinamica la cerere
Activitati
Invocation / Execution SWS: Invocarea unui SWS implica un numar de pasi, odata ce s-au obtinut intrarile necesare.
Ontologia serviciului si ontologia domeniului asociate serviciului sunt instantiate Intrarile sunt validate fata de tipurile din ontologie Sercviciul este invocat = workflow-ul este executat prin grounding-ul specificat
Suportul executiei
Monitoring: Controlul procesului de executie Compensation: Ofera suport pentru tranzactii si anularea efectelor nedorite in caz de esec Replacement: Faciliteaza substitutia serviciilor cu servicii echivalente Auditing: Verifica ca executia serviciului a avut loc conform specificatiilor
2.2 Arhitectura
Reasoner = utilizat in timpul tuturor activitatilor; ofera suport pentru interpretarea descrierilor semantice si a cererilor semantice.
Register = ofera mecanismele de publicare si localizare a serviciilor + crearea si editarea de servicii Matchmaker = mediaza intre cererea de serviciu si registrul semantic in timpul descoperirii si selectiei Decomposer = executa modelul compozitional Invoker = mediaza intre cerere si ofertanat sau cerere si decomposer
Arhitectura
Register Decomposer Matchmaker Reasoner Invoker
2.3 Ontologia serviciului
Ontologia serviciului reprezinta capacitatile serviciului si restrictiile care se aplica utilizarii acestuia.
Ontologia serviciului integreaza cunostintele definite prin informatii la nivelul standardelor de servicii (WSDL, UDDI) cu cunostinte specifice domeniului: caracteristici functionale: inputs, output, pre-conditions, post-conditions; caracteristici nefunctionale: category, cost, quality of service; informatii legate de ofertantul de serviciu: company name, address informatii legate de taskul de executat sau de scopul dorit cunostinte ale domeniului, de ex tipul intrarilor
3. Ontologii pentru SWS
OWL-S WSMO - USA – Europa
European Semantic Systems Initiative
http://www.essi-cluster.org/about-essi/essi-home/ WSMX (Web Service Modelling eXecution environment) – implementarea de referinta a WSMO (Web Service Modelling Ontology) Un mediu de executie pentru integrarea aplicatiilor de business WSML (Web Service Modelling Language) – limbajul intern al WSMX Specificatiile WSMO si WSML + mediul WSMX - ESSI cluster.
3.1 OWL-S
Upper Ontology
Service Profile
Process Model
Service Grounding
OWL-S Upper Ontology
•Specificarea capabilitatilor SWS •Caracteristici generale ale SWS • Calitatea serviciului • Clasificare in taxonomii
de servicii
• Maparea la WSDL • protocolul de comunicare (RPC, HTTP, …) • serializare • transformare din/in XSD in/din OWL • Fluxul de control al serviciului •Black/Grey/Glass Box view • Specificarea protocolului • Mesaje abstracte
OWL-S Upper Ontology
Upper Ontology for Services
http://www.daml.org/services/owl-s/1.0/
Service.owl
Profile.owl
Process.owl
Grounding.owl
Service Profile
Service Profile Prezentat de serviciu Reprezinta
ce ofera serviciul
Doua utilizari principale: 1.
Reclama capabilitatilor serviciului 2.
Cerere de servicii cu anumite capabilitati
OWL-S Profile
Descrie serviciul Web Ce capabilitati ofera: Ce transformari realizeaza serviciul Tipul serviciului Caracteristici generale cum ar fi: Cine ofera serviciul Cerinte de securitate Calitatea serviciului Rolul de baza: sa asiste descoperirea Permite cautarea pe baza de capabilitati Permite selectia pe baza cerintelor utilizatorului
Profilul nu specifica utilizarea/invocarea
OWL-S Service Profile
Capabilitati serviciu
Preconditions
Conditiile care trebuie indeplinite inainte de invocarea serviciului
Inputs
Multimea de intrari pe care utilizatorul trebuie sa le furnizeze pentru a invoca serviciul
Outputs
Rezultatele pe care utilizatorul se asteapta sa le obtina dupa ce se finalizeaza interactiunea cu ofertantul de serviciu
Effects
Multimea de asertiuni care sunt adevarate daca serviciul este invocat cu succes IOPE (Inputs, Outputs, Preconditions, Effects) – specifica functionalitatea procesului
Service type
Ce tip de serviciu se ofera (eg vanzare, distributie)
Product
Produsul asociat serviciului (eg calatorii, carti, piese auto)
OWL-S Service Profile
Proprietati suplimentare
Security Parameters
Capabilitatile de securitate ale serviciului (eg suporta X509 Encryption) Specifica cerintele de securitate ale serviciului (eg clientul trebuie sa fie capabil sa ofere X509 Encryption)
Nivelul de calitate
Ce nivel de calitate ofera serviciul?
Descrierea cu ajutorul taxonomiilor standard de business
Cum se clasifica serviciul in taxonomii standard cum ar fi: UNSPSC ( The United Nations Standard Products and Services Code – classification of products and services ) NAICS ( North American Industry Classification System - definitions for each industry )
Aceste proprietati nu sunt exhaustive; se pot adauga noi proprietati folosind ontologii existente
Profile.owl
Profile.owl
Profile.owl
Process Model
Process Model Descrie modul in care lucreaza serviciul: procesele interne ale serviciului Specifica protocolul de interactiune al serviciului Specifica mesaje abstracte: tipul ontologic al informatiei transmise Permite Invocarea serviciului Compunerea serviciilor Monitorizarea interactiunilor
Perspective asupra Process Model
Trei perspective asupra unui WS
Glass Box:
Serviciul Web expune intreaga structura interna Care parti sunt executate de catre ofertant, care sunt subcontractate, etc
Black Box:
Modelul WS nu expune nimic despre modul intern in care functioneaza serviciul Specifica numai ce date primeste si ce date ofera
Grey Box:
WS expune selectiv parti ale Process Model, unele parti fiind ascunse
Definirea proceselor
Procesul este caracterizat de urmatorii parametrii
Inputs
: intrarile necesare procesului
Preconditions
: conditiile necesare procesului pentru a functiona corect
Outputs
: informatia care rezulta prin (si este intoarsa de) executia procesului
Results
: un proces poate avea rezultate diferite in functie de diverse conditii
Condition
: in ce conditii se obtin anumite rezultate
Constraints:
asupra iesirilor
Effects
: schimbari asupra mediului ce rezulta ca efect al executiei procesului
Motivatia pentru Results
Un proces se poate termina in stari exceptionale: Compania de carti de credit nu face debitarea cardului Cartea nu mai este in stoc Expedierea bunurilor este impiedicata Rezultatele permit modelarea efectelor nedeterministe a unui serviciu Web Conditiile specifice in care se produce un anumit efect Fiecare rezultat este caracterizat de o multime de restrictii asupra iesirilor o multime de efecte
Exemplu de proces
Inputs / Outputs < process:AtomicProcess < process:hasInput rdf:ID="LogIn"> rdf:resource="#AcctName"/> < process:hasInput < process:hasOutput rdf:resource="#Password"/> rdf:resource="#Ack"/> Precondition < process:hasPrecondition isMember(AccName)/> Condition < process:hasResult < >
correctLoginInfo(AccName,Password)
process:inCondition > Result Output Constraints Effect < process:withOutput
loggedIn(AccName,Password)
process:hasEffect > process:hasResult > process:AtomicProcess >
Ontologia proceselor Proces Atomic
Poate fi invocat prin grounding
Simplu
Ofera abstractizare, incapsulare etc.
Compus
Defineste workflow al unui proces complex
Organizarea modelului de proces
Process Model este descris ca o structura arborescenta
Procesele compuse sunt noduri interne Procesele simple si atomice sunt frunze
Procesele simple reprezinta o abstractizare
a proceselor care nu sunt specificate a proceselor care pot fi exprimate in diferite moduri
Procesele atomice corespund actiunilor de baza pe care le executa serviciul Web
Ascund detaliile despre cum se implementeaza procesul Corespund operatiilor WSDL
Procese compuse
Procesele compuse specifica modul in care mai multe procese lucreaza impreuna pentru realizarea unei functii complexe Procesele compuse definesc
1.
Fluxul de control
Specifica relatiile temporale intre executia diverselor sub-procese
2.
Fluxul de date
Specifica modul in care datele produse de un proces sunt transferate unui alt proces
Exemplu de proces compus
Airline
Sequence
BookFlight
Flight
Legaturi flux de control Specifica ordinea executiei
Perform
Airline Depart Arrive
Get Flights
Legaturi flux de date Specifica transferul de date
Perform
Flights Flights
Select Flight
Perform Specifica executia unui proces
Flight
Perform
Perform
ofera un mecanism de invocare
specifica contextul executiei procesului fluxul de date de intrare fluxul de date de iesire
Separarea intre definirea si invocarea unui proces
Definitia specifica procesul I/P/R Perform specifica cand se invoca procesul si cu ce parametrii
Fluxul de control
Procesele pot fi inlantuite pentru a forma un workflow OWL-S ofera urmatoarele structuri de control
Sequence/Any-Order
: reprezinta o lista de procese care sunt executate in secventa sau in ordine arbitrara
Conditionals
: instructiuni if-then-else
Loops
: instructiuni while si repeat-until
Multithreading and synchronization
puncte de rendezvous (joint) : divizeaza (split) procesul in mai multe fire de executie si creaza
Non-deterministic choices
: selecteaza arbitrar un proces dintr-o multime de procese
Fluxul de date
Fluxul de date permite transferul informatiei de la un proces la altul.
Output
Input:
Informatia produsa de un proces este transferata altui proces in aceeasi structura de control
Input
Input:
Informata primita de un proces compus este transferata sub proceselor
Output
Output:
Informatia produsa de un sub-proces este transferata unui super-proces
Process Model: rezumat
Modelul serviciului descrie
Multimea de procese care definesc operatiile executate de un serviciu Fluxul de control care descrie inlantuirea temporala a proceselor Fluxul de date care descrie transferul informatiei intre sub-procese
Process.owl
Service Grounding
Service Grounding Ofera o specificare a informatiei de acces la un serviciu Service Model + Grounding ofera tot ceea ce este necesar pentru utilizarea serviciului Utilizeaza WSDL pentru a defini structura mesajelor si nivelul de legare fizica Specifica: protocoalele de comunicare, mecanismele de transport, limbajele de comunicare, etc.
Motivatia pentru Service Grounding
Ofera o specificare a informatiei prin care se poate accesa serviciul Service Model + Grounding ofera tot ceea ce este necesar pentru a utiliza un serviciu Descrierea serviciului este destinat in special pentru a efectua rationamente asupra serviciului Decide ce informatii sa se trimita si ce informatii se vor primi Service Grounding este destinat in specail schimbului de mesaje Genereaza mesaje de iesire si primeste mesaje de intrare Mapeaza XML Schema la concepte OWL Utilizeaza WSDL pentru definirea structurii mesajelor si a nivelului de legare fizica
Mapare OWL-S / WSDL 1.1
Operatiile
corespund la Atomic Processes
Mesajele de Input/Output
corespund la Inputs/Outputs a proceselor
Exemplu de Grounding
Airline
Sequence
BookFlight
Flight
Perform
Airline Depart Arrive
Get Flights
Flights
Perform
Flights
Select Flight
Flight Arrive Depart Airline
WSDL Get Flights Op
Flights Flights
Select Flight op
Flight
Rezultatul utilizarii Grounding
Mecanismul de invocare pentru OWL-S Invocare bazata pe WSDL Diversele tipuri invocare din WSDL pot fi folosite in OWL-S Separare clara intre descrierea serviciului si invocare / implementare Descrierea serviciului este necesara pentru a rationa despre serviciu a decide cum este utilizat decide ce informatie si cum se transmite si se primeste Implementarea serviciului poate fi bazata pe SOAP si tipuri XML Schema Definition (XSD)
Esential:
informatia care se schima si informatia din ontologii este aceeasi Permite reprezentarea oricarui serviciu web in OWL-S
Exemple
http://www.daml.org/services/owl-s/1.0/examples.html
Profile Hierarchy
A Profile-based class hierarchy of service categories: ProfileHierarchy.owl
Profile-based Class Hierarchies (HTML) ProfileHierarchy.owl. - explanatory remarks for
Congo.com (fictitious B2C site)
CongoService.owl
CongoProfile.owl
- Service instance –Profile CongoProcess.owl
- Process model (main file) CongoProcessDataFlow.owl
bindings) - Process model data flow (argument CongoGrounding.owl
CongoGrounding.wsdl
- Grounding instances - WSDL definitions for grounding