Title: Aplicatii Web bazate pe semantica, agenti si servicii
1- Aplicatii Web bazate pe semantica, agenti si
servicii
http//turing.cs.pub.ro/webs_07
Universitatea Politehnica BucurestiAnul
universitar 2007-2008, MasterAdina Magda Florea
2Servicii 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
3Standarde pentru servicii Web
Sematic Web Services
41. Evolutie
- Probleme legate de
- regasirea informatiei,
- extragerea informatiei,
- reprezentarea informatiei,
- interpretarea informatiei
- actualizarea informatiei
WWW URI, HTML, HTTP
Semantic Web RDF, RDF(S), OWL
Static
5Evolutie
Web Services UDDI, WSDL, SOAP
Dinamic
WWW URI, HTML, HTTP
Semantic Web RDF, RDF(S), OWL
Static
6Evolutie
- Intregul potential al web-ului
Semantic Web Services
Web Services UDDI, WSDL, SOAP
Dynamic
WWW URI, HTML, HTTP
Semantic Web RDF, RDF(S), OWL
Static
7Limitari 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 - gt utilizarea si integrarea WS trebuie sa fie
realizata manual - nu exista marcare semantica a continutului
serviciilor - nu exista suport pentru Web Semantic
8Servicii Web Semantice
-
- Tehnologia Web Semantic
-
- Tehnologia WS
- permite interpretarea semantica automata a
datelor - folosirea ontologiilor ca model al datelor
permite descoperire, selectie, compunere si
executie a WS
? Servicii Web Semantice ca solutie integrata
pentru realizarea noii generatii a Web
92. Infrastructura SWS
- Suport executie
- Monitoring
- Compensation
- Replacement
- Auditing
Activitati/utilizare
Composition
Execution
Publication
Discovery
Selection
Mediation
Nivel Business
Arhitectura
Matchmaker
Register
Decomposer
Reasoner
Invoker
Nivel fizic
Ontologia serviciului
Post-condition
Nivel conceptual
10Infrastructura 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.
112.1 Activitati
- SWS este vazut ca un obiect dintr-un scenariu a
unei aplicatii de business - Publication Permite accesul la descrierea unui
serviciu - Discovery Localizeaza diferite servicii pentru
un anumit task - 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 Invoca serviciile
folosind conventii specifice
12Activitati
- 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
13Activitati
- Categorii de "Matching semantic"
- Exact iesirile cerute sunt la fel cu cele ale
SWS - Plug-in iesirile cerute sunt subsumate de cele
ale SWS - Ex un serviciu care ofera toate tipurile de
vehicule este un "plug-in match" pentru o cerere
de tipuri de masini - Subsumeaza iesirile cerute subsumeaza cele ale
SWS - Ex un serviciu care ofera informatii despre
masini este un "subsuming match" pentru o cerere
care se refera la tipuri de vehicule
14Activitati
- Selection SWS
- Necesara daca exista mai multe servicii potrivite
cererii. - Se pot folosi atribute ne-functionale cost,
calitate - In mediu agenti negociere
- Composition SWS
- 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
15Activitati
- 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
16Suportul 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
172.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
Matchmaker
Register
Decomposer
Reasoner
Invoker
182.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
193. Ontologii pentru SWS
- OWL-S - USA
- WSMO 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.
203.1 OWL-S
- Upper Ontology
- Service Profile
- Process Model
- Service Grounding
21OWL-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
22OWL-S Upper Ontology
- Upper Ontology for Services
- http//www.daml.org/services/owl-s/1.0/
- Service.owl
- Profile.owl
- Process.owl
- Grounding.owl
23Service Profile
- Service Profile
- Prezentat de serviciu
- Reprezinta
- ce ofera serviciul
- Doua utilizari principale
- Reclama capabilitatilor serviciului
- Cerere de servicii cu anumite capabilitati
24OWL-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
25OWL-S Service ProfileCapabilitati 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)
26OWL-S Service ProfileProprietati 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
27Profile.owl
28Profile.owl
29Profile.owl
30Process 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
31Perspective 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
32Definirea 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
33Motivatia 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
34Exemplu de proces
- ltprocessAtomicProcess rdfID"LogIn"gt
- ltprocesshasInput rdfresource"AcctName"/gt
- ltprocesshasInput rdfresource"Password"/gt
- ltprocesshasOutput rdfresource"Ack"/gt
- ltprocesshasPrecondition isMember(AccName)/gt
- ltprocesshasResultgt
- ltprocessResultgt
- ltprocessinConditiongt
- ltexprSWRL-Conditiongt
- correctLoginInfo(AccName,Password)
- lt/exprSWRL-Conditiongt
- lt/processinConditiongt
- ltprocesswithOutput rdfresourceAckgt
ltvalueType rdrresourceLoginAcceptMsggt
lt/processwithOutputgt ltprocesshasEffectgt - ltexprSWRL-Conditiongt
- loggedIn(AccName,Password)
- lt/exprSWRL-Conditiongt
- lt/processhasEffectgt
- lt/processResultgt
- lt/processhasResultgt
Inputs / Outputs
Precondition
Condition
Result
OutputConstraints
Effect
35Ontologia proceselor
Proces
Atomic
Simplu
Poate fi invocat prin grounding
Ofera abstractizare, incapsulare etc.
Compus
Defineste workflow al unui proces complex
36Organizarea 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
37Procese compuse
- Procesele compuse specifica modul in care mai
multe procese lucreaza impreuna pentru realizarea
unei functii complexe - Procesele compuse definesc
- Fluxul de control
- Specifica relatiile temporale intre executia
diverselor sub-procese - Fluxul de date
- Specifica modul in care datele produse de un
proces sunt transferate unui alt proces
38Exemplu de proces compus
Legaturi flux de control Specifica ordinea
executiei
Sequence BookFlight
Airline
Flight
Legaturi flux de date Specifica transferul de
date
Perform
Perform
Airline
Select Flight
Get Flights
Flights
Flight
Flights
Depart
Arrive
Perform Specifica executia unui proces
39Perform
- 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
40Fluxul 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 divizeaza
(split) procesul in mai multe fire de executie si
creaza puncte de rendezvous (joint) - Non-deterministic choices selecteaza arbitrar
un proces dintr-o multime de procese
41Fluxul 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
42Process 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
43Process.owl
44Service 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.
45Motivatia 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
46Mapare OWL-S / WSDL 1.1
- Operatiile corespund la Atomic Processes
- Mesajele de Input/Output corespund la
Inputs/Outputs a proceselor
47Exemplu de Grounding
Sequence BookFlight
Airline
Flight
Perform
Perform
Airline
Select Flight
Get Flights
Flights
Flight
Flights
Depart
Arrive
Arrive
Get Flights Op
Select Flight op
Depart
Flights
Flight
Flights
Airline
WSDL
48Rezultatul 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
49Exemple
- http//www.daml.org/services/owl-s/1.0/examples.ht
ml - Profile Hierarchy
- A Profile-based class hierarchy of service
categories ProfileHierarchy.owl - Profile-based Class Hierarchies (HTML) -
explanatory remarks for ProfileHierarchy.owl. - Congo.com (fictitious B2C site)
- CongoService.owl - Service instance
- CongoProfile.owl Profile
- CongoProcess.owl - Process model (main file)
- CongoProcessDataFlow.owl - Process model data
flow (argument bindings) - CongoGrounding.owl - Grounding instances
- CongoGrounding.wsdl - WSDL definitions for
grounding