Dupa o introducere in problematica SOA si a serviciilor Web, se prezinta modalitatile de descriere semantica a serviciilor via mai multe modele ontologice.
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Web11 Semantic Web: Servicii Web descrise semantic
1. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Web semantic
Dr. SabinCorneliu Buraga
Facultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
Dr. Sabin Buraga http://www.purl.org/net/busaco
3. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
“E mai bine sa stii cateva intrebari
decat toate raspunsurile.”
James Thurber
Dr. Sabin Buraga http://www.purl.org/net/busaco
4. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
preliminarii
Nevoi ale dezvoltatorilor Web
solutii multi‐platforma, slab‐conectate
integrare la nivel de Internet/Web
a aplicatiilor, serviciilor si sistemelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
5. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
preliminarii
Nevoi ale dezvoltatorilor Web
performanta asigurarea scalabilitatii
Dr. Sabin Buraga http://www.purl.org/net/busaco
6. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
preliminarii
Nevoi ale dezvoltatorilor Web
servicii atasabile (pluggable) & versatile
Software as a Service (SaaS)
Application Service Provider (ASP)
Dr. Sabin Buraga http://www.purl.org/net/busaco
7. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
preliminarii
Nevoi ale dezvoltatorilor Web
existenta unei/unor arhitecturi pentru dezvoltarea
de aplicatii distribuite orientate spre Web
standardizare
securitate
disponibilitate & reutilizare
mentenanta facila
Dr. Sabin Buraga http://www.purl.org/net/busaco
8. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutie
Divizarea aplicatiilor in servicii (independente)
care se pot compune,
menite a se conecta si orchestra in mod spontan
in cadrul proceselor de afaceri/tehnice
Web componentbased software
Dr. Sabin Buraga http://www.purl.org/net/busaco
9. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
servicii web
Aplicatii oferind o functionalitate anume
Utilizate de alte aplicatii (la distanta)
Accesate standardizat via Web
URI, HTTP, XML
Dr. Sabin Buraga http://www.purl.org/net/busaco
10. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
servicii web
Utilizate la interactiunea intre masini
Dinamice
Lipsa unei cunoasteri apriori a interactiunii
cu alte aplicatii/servicii Web
Dr. Sabin Buraga http://www.purl.org/net/busaco
11. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
servicii web
Puncte finale utilizate pentru procesarea datelor,
in maniera publica – eventual, via API‐uri deschise
Abilitatea de a prelucra orice tip de date
Dezvoltate pe baza platformelor, arhitecturilor
si limbajelor curente
Dr. Sabin Buraga http://www.purl.org/net/busaco
12. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa
Arhitectura orientata spre servicii
SOA – Service Oriented Architecture
stil arhitectural de dezvoltare de aplicatii
considerate drept servicii ce vor fi invocate de alte aplicatii
Nicolai Josuttis, SOA in Practice, O’Reilly, 2007
Dr. Sabin Buraga http://www.purl.org/net/busaco
13. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa
Paradigma de dezvoltare a software‐ului
care adopta utilizarea de servicii,
oferind functionalitati solicitate de utilizatori
resursele sunt disponibile via o suita de servicii
independente ale caror implementari
nu trebuie sa fie cunoscute (black box)
Dr. Sabin Buraga http://www.purl.org/net/busaco
14. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa
Componentele sistemului in ansamblu au
un grad mare de independenta (decoupling)
serviciile pot fi recompuse/orchestrate conform cerintelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
15. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Conținut
specificarea, colectarea & organizarea cunoştințelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
16. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Acces
mijloacele de creare/exploatare
a serviciilor ori aplicațiilor compuse
Dr. Sabin Buraga http://www.purl.org/net/busaco
17. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Integrare
conținutul vehiculat de aplicații/oameni
sa poata fi transformat via entități software inteligente
EAI (Enterprise Application Integration)
Dr. Sabin Buraga http://www.purl.org/net/busaco
18. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Procesare
posibilitatea de a specifica reguli de management
al traficului de date – dirijare, caching, filtrare etc.
Dr. Sabin Buraga http://www.purl.org/net/busaco
19. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Analizare
suport de luare a deciziilor – de dorit, in mod “inteligent”
Dr. Sabin Buraga http://www.purl.org/net/busaco
20. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: aspecte de interes
Colaborare
management de interacțiuni &
comunicații între utilizatori (umani sau nu)
e.g., enterprise wiki
Dr. Sabin Buraga http://www.purl.org/net/busaco
21. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
soa: variatii (Tsai et al., 2006)
CCSOA (Consumercentric SOA)
publicare de workflow‐uri & specificatii de colaborare intre
aplicatii pentru descoperirea, selectarea si subscrierea
la servicii de interes
exemplu: serviceoriented embedded systems
UCSOA (Usercentric SOA)
extensie a CCSOA ce permite utilizatorilor finali
sa compuna facil & rapid aplicatii
exemplu: enduser mashups – Yahoo! Pipes
Dr. Sabin Buraga http://www.purl.org/net/busaco
22. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
invocare
Necesitatea unui protocol de comunicare
(transport) intre masini (aplicatii) eterogene
mesaje care sa permita o interactiune complexa
intre aplicatii
informatiile vehiculate pot fi oricit de complexe
asigurarea extensibilitatii + securitate, fiabilitate, caching
Dr. Sabin Buraga http://www.purl.org/net/busaco
23. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
invocare
Scenariu:
eu spun <telefon>0232-201090</telefon>
tu astepti <tel prefix=0232 numar=201090 />
protocolul va trebui sa ofere un mecanism de invocare
si de transmitere structurata a datelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
24. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
invocare: solutii
XML‐RPC
simplu de utilizat, nepretentios
www.xmlrpc.com
SOAP
sofisticat, mai flexibil
www.w3.org/TR/SOAP
POX (Plain Old XML)/JSON (JavaScript Object Notation)
dezvoltatorul recurge la metode proprii de serializare
Dr. Sabin Buraga http://www.purl.org/net/busaco
25. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
invocare: soap
Invocarea unui serviciu Web – in stilul RPC
Dr. Sabin Buraga http://www.purl.org/net/busaco
26. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
specificare
Necesitatea unui limbaj de descriere
a serviciilor Web
Cum gasim un serviciu Web?
Care este sintaxa mesajelor vehiculate?
Cum se desfasoara transferul de date?
Dr. Sabin Buraga http://www.purl.org/net/busaco
27. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
specificare: wsdl
WSDL (Web Services Description Language)
www.w3.org/TR/wsdl
descriere bazata pe XML a serviciilor Web
tipurile de date se definesc via scheme XML
permite folosirea mai multor protocoale de transport
specifica sintaxa, nu semantica unui serviciu
Dr. Sabin Buraga http://www.purl.org/net/busaco
29. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
regasire: uddi
Universal Description, Discovery, and Integration
Catalog distribuit, universal, al listei de servicii Web
disponibile (inregistrate)
Inregistrarea este posibila in fiecare nod
Inregistrarile sint replicate
UDDI este un serviciu Web: se utilizeaza SOAP
Cataloagele UDDI pot fi publice sau private
www.uddi.org
Dr. Sabin Buraga http://www.purl.org/net/busaco
32. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
initiative
Specificatii & initiative aditionale (WS‐*)
Interoperabilitate – initiativa WS‐I:
www.wsi.org
Workflow‐uri: Business Process Execution Language
(BPEL), WS‐Choreography,
WS Flow Language (WSFL) etc.
…si altele
Dr. Sabin Buraga http://www.purl.org/net/busaco
33. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest
REpresentational State Transfer
stil arhitectural de dezvoltare a aplicatiilor Web
(Roy Fielding)
viziune complementara de implementare si utilizare
a serviciilor Web – fara SOAP
Dr. Sabin Buraga http://www.purl.org/net/busaco
34. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest
Rezultatul unei procesari conduce la returnarea
unei reprezentari de resursa
Orice accesare a unei reprezentari plaseaza aplicatia
intr‐o stare care va fi schimbata in urma unui transfer de
date (accesarea altei reprezentari)
Transferul se realizeaza prin HTTP, reprezentarea este
marcata in XML si indicata via tipuri MIME,
iar adresabilitatea se rezolva via URI
Dr. Sabin Buraga http://www.purl.org/net/busaco
35. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest
Componentele care invoca functionalitati
vor consuma reprezentari de resurse (in stilul pull)
Fiecare cerere este considerata independenta,
fara a se lua in consideratie contextul – stateless
Resursele sunt accesate printr‐o interfata generica
(via HTTP: GET, POST, PUT, DELETE)
Dr. Sabin Buraga http://www.purl.org/net/busaco
36. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest
Resursele sunt numite folosind URI‐uri (URL‐uri)
Reprezentarile sunt interconectate prin URL‐uri
Pot exista intermediari (proxy, cache, porti)
intre clienti si resurse performanta, securitate,...
Cererile pot fi si asincrone – in stilul AJAX
Dr. Sabin Buraga http://www.purl.org/net/busaco
37. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest
Punctul central e dat de conceptul de resursa
si nu de operatiile asupra resurselor
ROC (Resource Oriented Computing)
Dr. Sabin Buraga http://www.purl.org/net/busaco
38. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest: exemplu
Scenariu:
management de fisiere intr‐un sistem distribuit
Stilul SOAP – conform RPC
operatii privind fisierele: furnizeazaFisier (), creazaFisier (),
furnizeazaMetadateFisier (), cautaFisier () etc.
operatii vizind utilizatorii:
furnizeazaUtiliz (), adaugaUtiliz (), eliminaUtiliz (), cautaUtiliz (),…
Dr. Sabin Buraga http://www.purl.org/net/busaco
39. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest: exemplu
Scenariu:
management de fisiere intr‐un sistem distribuit
Stilul REST
tipuri de resurse (Fisier & Utiliz), identificate unic de URI
http://www.undeva.info/Utiliz/busaco
o resursa poate avea asociate reprezentari XML
ce pot fi accesate/alterate via operatii HTTP
(CRUD – Create, Retrieve, Update, Delete)
Dr. Sabin Buraga http://www.purl.org/net/busaco
40. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest: exemplu
Modelul REST ofera premisele
specificarii meta‐resurselor
exemplu: trimitind o cerere GET, putem obtine informatii
despre timpul de neutilizare (idle) a aplicatiei vim rulată
de un utilizator – (meta‐)resursa desemnata de
http://www.undeva.info/Utiliz/busaco/apps/vim/idle-time,
unde idletime este valoarea proprietatii asociate
unei entitati, in spiritul triplelor RDF
Dr. Sabin Buraga http://www.purl.org/net/busaco
41. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest: exemplu
Serviciile oferite de Flickr
acces – folosind HTTP (e.g., GET, POST) – via URI‐ul
http://api.flickr.com/services/rest/
pentru a invoca un serviciu Flickr,
se vor preciza metoda + parametrii (daca exista)
http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&...
Se inlocuieste cu
serviciul dorit
Dr. Sabin Buraga http://www.purl.org/net/busaco
42. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest: metodologie
Divizarea setului de date al problemei in resurse
Numirea prin URI a fiecarei resurse
Proiectarea reprezentarii(lor) acceptate de la client si
reprezentarii(lor) intoarse spre client
Integrarea resurselor via legaturi hipertext+formulare
Crearea de studii de caz, cu (re)considerarea tipurilor
standard – e.g., HTML, Atom
Considerarea conditiilor de eroare/exceptie
Dr. Sabin Buraga http://www.purl.org/net/busaco
43. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
rest vs. soap
SOAP: REST:
Actiuni arbitrare Actiuni fixe
(verbe) HTTP: GET, POST,…
Opereaza asupra
Structuri de date
reprezentarilor de
arbitrare
resurse (i.e., XML)
(oricit de complexe)
Bazat pe URI
Specificate
Scalabil
via XML Schema
Descriere complexa a Uzual, mai usor de
serviciului (WSDL) programat
Dr. Sabin Buraga http://www.purl.org/net/busaco
44. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
dezvoltare
Informatiile & serviciile sa fie accesibile de la
fiecare dispozitiv si de oriunde – ubiquitous Web
necesitatea unei infrastructuri orientate catre servicii
ESB (Enterprise Service Bus)
necesitatea unei platforme independente de dispozitiv
permitind rularea serviciilor
Dr. Sabin Buraga http://www.purl.org/net/busaco
45. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Framework‐uri Web (structura conceptuala stratificata)
Dr. Sabin Buraga http://www.purl.org/net/busaco
46. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
dezvoltare
SCA (Service Component Architecture)
asigura reutilizarea componentelor software,
oferind facilitati pentru definirea, asamblarea, invocarea
& medierea serviciilor – punct de vedere orientat‐obiect
transferul datelor (d)inspre sistemele de stocare
este facilitat de SDO (Service Data Objects)
implementari disponibile in C++, Java, PHP5 etc.
vezi si www.osoa.org
Dr. Sabin Buraga http://www.purl.org/net/busaco
47. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
dezvoltare: privire de ansamblu
stratificarea aplicatiilor Web (Ntier Web applications)
Dr. Sabin Buraga http://www.purl.org/net/busaco
48. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
problema
Interpretarea la nivel semantic a datelor vehiculate
neconcordante semantice la nivel de:
continut: iti dau IP, tu vrei URI
atribut: tu doresti MIME video/mpeg,
eu iti dau tipul generic Video
unitate de masura: astept la intrare dimensiunea in octeti,
tu o trimiti in MB
mesaj: iti trimit lungime × latime, tu doresti aria
Dr. Sabin Buraga http://www.purl.org/net/busaco
49. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii
Descrierea si invocarea serviciilor Web sa apeleze
la ontologii specificate pe baza OWL
Dr. Sabin Buraga http://www.purl.org/net/busaco
50. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii (Meenakshi Nagarajan, 2006)
Descrieri semantice la nivel de:
date – definitii formale ale intrarilor/iesirilor, utile pentru
descoperirea serviciilor si facilitarea interoperabilitatii
Dr. Sabin Buraga http://www.purl.org/net/busaco
51. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii (Meenakshi Nagarajan, 2006)
Descrieri semantice la nivel de:
functionalitate – definirea formala a capabilitatilor
(functiilor) serviciilor Web,
in vederea descoperirii si compunerii de servicii
Dr. Sabin Buraga http://www.purl.org/net/busaco
52. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii (Meenakshi Nagarajan, 2006)
Descrieri semantice la nivel de:
cerinte – definirea formala a constringerilor
non‐functionale calitative si cantitative
(e.g., cost, securitate, politica de acces),
pentru facilitarea descoperirii, compunerii
si interoperabilitatii
se are in vedere inclusiv adnotarea serviciilor Web
Dr. Sabin Buraga http://www.purl.org/net/busaco
53. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii (Meenakshi Nagarajan, 2006)
Descrieri semantice la nivel de:
rulare – descrierea formala a executiei workflow‐urilor de
servicii sau a operatiilor din cadrul unui serviciu,
pentru a se realiza verificarea/monitorizarea proceselor
(de afaceri) – inclusiv verificarea corectitudinii –
si tratarea exceptiilor
Dr. Sabin Buraga http://www.purl.org/net/busaco
54. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii
Scop:
punerea la dispozitie a unui mecanism de
interoperabilitate semantica folosind standarde
ale Web‐ului semantic
Avantaje:
automatizarea descoperirii, selectarii, invocarii,
compunerii si monitorizarii executiei serviciilor Web
Dr. Sabin Buraga http://www.purl.org/net/busaco
55. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
solutii
Vedere stratificata de specificare – dupa (Hobbs, 2003)
OWLS (Services)
??? (Rules, FOL?)
OWL (Ontology)
RDFS (RDF Schema)
RDF (Resource Description Framework)
XML (Extensible Markup Language)
Dr. Sabin Buraga http://www.purl.org/net/busaco
56. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Bazat pe DAML‐S, descrie ontologii
pentru specificarea unor modele de servicii
se au in vedere profilul, modelul de procesare
si logica unui serviciu
Serviciu Web ≡ proces
simplu sau compus
www.daml.org/services/owls/
Dr. Sabin Buraga http://www.purl.org/net/busaco
57. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Fiecarui proces i se asociaza un profil,
avind atasate proprietati:
pre‐conditie, intrare, iesire, efect (post‐conditie)
Un proces compus are proprietati compuse
Modul de compunere este specificat,
de asemenea, in OWL‐S
Dr. Sabin Buraga http://www.purl.org/net/busaco
58. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Elemente principale:
utilizarea standardelor Web‐ului semantic
folosirea sau extinderea standardelor existente
pentru serviciile Web (e.g., WSDL)
recurgerea la ontologii specificate via OWL
realizarea unei infrastructuri de suport
cataloage de servicii semantice
(e.g., OWL‐S Matchmaker)
interfete de programare – OWL‐S API
Dr. Sabin Buraga http://www.purl.org/net/busaco
59. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Partea superioara a ontologiei privitoare la servicii
Dr. Sabin Buraga http://www.purl.org/net/busaco
61. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Clasa proceselor (Process) include 3 tipuri
de procese: atomic, compus si simplu
<owl:Class rdf:ID=Process>
<owl:DisjointUnionOf rdf:parseType=Collection>
<owl:Class rdf:about=#AtomicProcess />
<owl:Class rdf:about=#SimpleProcess />
<owl:Class rdf:about=#CompositeProcess />
</owl:DisjointUnionOf>
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
62. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Un proces compus poseda obligatoriu proprietatea
composedBy specificind o structura de control:
<rdf:Property rdf:ID=composedBy>
<rdfs:domain rdf:resource=#CompositeProcess />
<rdfs:range rdf:resource=#ControlConstruct />
</rdf:Property>
Dr. Sabin Buraga http://www.purl.org/net/busaco
63. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Fiecare structura de control cuprinde o serie de
componente indicind ordinea si executia conditionata
a sub‐proceselor sau a altor structuri de control
setul minimal al constructiilor de control:
Sequence, Split, Split+Join, Choice, Unordered, Condition,
IfThenElse, Iterate, RepeatWhile, RepeatUntil
Dr. Sabin Buraga http://www.purl.org/net/busaco
64. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s: exemplu
Specificarea in OWL‐S a asertiunii
“o colecție de procese (servicii) vor fi divizate
(split) in vederea executiei paralele”
nu vor fi specificate informatii suplimentare privitoare
sincronizarea sau asteptarea terminarii executiei
Dr. Sabin Buraga http://www.purl.org/net/busaco
65. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s: exemplu
<owl:Class rdf:ID=Split>
<!-- specializare a unei structuri de control -->
<rdfs:subClassOf rdf:resource=#ControlConstruct/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource=#components/>
<owl:toClass
rdf:resource=#ProcessComponentBag/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Dr. Sabin Buraga http://www.purl.org/net/busaco
66. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Modelarea unui serviciu (I)
descrierea modelului de procesare (process model)
atomic (functional) ori compus (conversational)
determinarea proprietatilor ce vor fi expuse:
doar puncte de interactiune
suplimentar, informatii pentru reasoning
Dr. Sabin Buraga http://www.purl.org/net/busaco
67. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Modelarea unui serviciu (II)
descrierea profilului si a vizibilitatii (advertise)
specificarea intrarilor & iesirilor, preconditiilor si efectelor
determinarea meta‐datelor relevante
atasarea (bind) la mecanismul de transport
oferirea (+extinderea) unui document WSDL
Dr. Sabin Buraga http://www.purl.org/net/busaco
68. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
model de cunostinte
(ontologie)
WSDL extins
Mesaje (messages)
Interfaţa
Operații (operation)
serviciului
Interfață (interface)
Legare (binding)
Implementare Serviciu (service)
a serviciului Punct terminal
(endpoint)
Dr. Sabin Buraga http://www.purl.org/net/busaco
69. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Modelarea unui serviciu (III)
interconectarea modelelor anterioare
prezentarea profilului
specificarea relatiei describedBy
specificarea suportului pentru nivelul de baza (grounding)
“conectarea” la infrastructura serviciilor Web
Dr. Sabin Buraga http://www.purl.org/net/busaco
70. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Specificarea modului de procesare
serviciu ≡ flux (workflow) de procese
un proces poate fi serviciu, workflow sau proces atomic
identificarea & definirea proceselor atomice
specificarea intrarilor/iesirilor
ce pre‐conditii trebuie indeplinite?
ce efecte vor fi generate? (metafore ale planificarii)
definirea fluxului ce coordoneaza executia acestor procese
Dr. Sabin Buraga http://www.purl.org/net/busaco
71. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Descrierea profilului
profil ≡ descriere functionala
a capabilitatilor serviciului
proprietati ale fluxului de date (dataflow)
intrari solicitate & iesiri returnate
proprietati de stare (world state properties)
preconditii de satisfacut & efecte ce vor fi produse
la executia cu succes
Dr. Sabin Buraga http://www.purl.org/net/busaco
72. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Descrierea profilului
de asemenea, sunt atasate meta‐date
ce date vor fi utilizate
pentru cautarea si selectarea serviciilor?
se poate constitui o ierarhie de profile
Dr. Sabin Buraga http://www.purl.org/net/busaco
73. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
owl‐s
Descrierea modului de atasare la baza (grounding)
oferirea unei specificatii WSDL de descriere
a serviciului
identificarea si asocierea:
proceselor atomice din modelul de procesare cu operatiile
corespunzatoare specificate in documentul WSDL
intrarilor/iesirilor cu mesajele WSDL
Dr. Sabin Buraga http://www.purl.org/net/busaco
74. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
swsf
Semantic Web Services Framework
(Gruninger, Hull & McIlraith, 2005)
SWSO – ontologie
FLOWS – Firstorder Logic Ontology for Web Services
ROWS – Rules Ontology for Web Services
SWSL – limbaj de specificare bazat pe XML
SWSL‐Rules – specifica reguli
SWSL‐FOL – exprima constructii FOL
Studii de caz
www.daml.org/services/swsf
Dr. Sabin Buraga http://www.purl.org/net/busaco
75. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
swsf
complementar OWL‐S
exprima servicii (service descriptors)
modeleaza procese (process model)
modelul proceselor FLOWS e subset al ontologiei PSL
(Process Specification Language) – ISO 18629,
cu extinderi vizind serviciile
serviciu Web ≡ obiect identificat prin nume,
fara proprietati functionale,
avind asociata o activitate exprimata via PSL
Dr. Sabin Buraga http://www.purl.org/net/busaco
76. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Web Services Modeling Ontology
serie de specificatii ontologice privind elementele de baza
ale serviciilor Web semantice (Fensel et al., 2007)
diferențierea clara intre descriere si implementare efectiva
modelarea semantica a modului de executie
www.wsmo.org
Dr. Sabin Buraga http://www.purl.org/net/busaco
77. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Web Services Modeling Ontology
actiunile executate de servicii vor fi specificate sintactic
via documente WSDL
Dr. Sabin Buraga http://www.purl.org/net/busaco
78. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Web Services Modeling Ontology
scopurile (goals) descriu in termeni ontologici
aspectele privitoare la asteptarile utilizatorilor
privind functionalitatile cerute
scopurile modeleaza punctul de vedere al utilizatorului
(programatorului) referitor la invocarea (utilizarea)
procesului specificat de serviciu
Dr. Sabin Buraga http://www.purl.org/net/busaco
79. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Web Services Modeling Ontology
mediatorii (mediators) definesc elementele
facilitind interoperabilitatea
(e.g., a serviciilor sau ontologiilor folosite)
rezolva incompatibilitatile
la nivel de date, de procese, de protocoale etc.
Dr. Sabin Buraga http://www.purl.org/net/busaco
81. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Meta‐model stratificat:
Information layer – datele dorite a fi descrise
Model layer – meta‐datele asociate
Metamodel layer – descrieri privind structura &
semantica meta‐datelor
Metametamodel layer – descrierilor specificind structura
& semantica stratului metamodel layer
Dr. Sabin Buraga http://www.purl.org/net/busaco
82. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Un serviciu este descris in mod general in termeni de
capacitati (capabilities) expuse via interfete (interfaces)
vor fi precizate diverse proprietati nefunctionale:
acuratetea, QoS, proprietarul, performanta, reliability,
robustetea, securitatea, suportul pentru tranzactii,
controlul versiunilor etc.
Dr. Sabin Buraga http://www.purl.org/net/busaco
83. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Un serviciu poate utiliza un set de mediatori
e.g., cind apar terminologii eterogene cauzind conflicte
Dr. Sabin Buraga http://www.purl.org/net/busaco
84. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Ca si la OWL‐S, capabilitatile cuprind descrieri ale
pre‐conditiilor, contextului de execuție (assumptions),
post‐conditiilor si efectelor
Interfata priveste:
coregrafia – interacțiunea unui serviciu cu alte entitati
orchestrarea – modul cum poate coopera cu altele
coregrafia & orchestrarea se descriu via
ASM – Abstract State Machine (Gurevich, 1995)
Dr. Sabin Buraga http://www.purl.org/net/busaco
85. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Specificarea descrierilor de ontologii, declaratii functionale
de scopuri & descrieri ale dinamicii serviciilor
se realizeaza prin intermediul
WSML (Web Service Modeling Language)
bazat pe logicile descrierii
Dr. Sabin Buraga http://www.purl.org/net/busaco
86. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo
Specii WSML – conform (Dieter Fensel et al., 2008)
Dr. Sabin Buraga http://www.purl.org/net/busaco
87. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
Definim serviciul oferind acces la meta‐datele
atasate unei resurse (unui fisier)
specificam operatii de baza privind
sistemul de stocare a fisierelor
Dr. Sabin Buraga http://www.purl.org/net/busaco
88. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
Definim o ontologie simpla:
concepte (clase): fisier (file), proprietar (owner),
director de fisiere (directory)
proprietati: relatia de detinere a unui fisier (ownership)
axioma ce restrictioneaza ca un proprietar de fisier
sa apartina clasei owner
instante: fisiere obisnuite
Dr. Sabin Buraga http://www.purl.org/net/busaco
89. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
ontology _http://www.undeva.info/fileOntology
nonFunctionalProperties
dc#title hasValue Ontologie privitoare la fisiere
dc#description hasValue Modeleaza fisiere si utilizatori
endNonFunctionalProperties
concept file
name ofType _string
hasOwner ofType owner
concept owner subConceptOf user
ownerOf inverseOf (hasOwner) ofType file
Dr. Sabin Buraga http://www.purl.org/net/busaco
90. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
concept directory
nonFunctionalProperties
dc#description hasValue Un director este
identificat unic prin i-nod si include 0 sau mai multe fisiere.
endNonFunctionalProperties
inode ofType _string
items ofType file
instance linuxKernelFile memberOf file
name hasValue linux-2.6.30
hasOwner hasValue root
Dr. Sabin Buraga http://www.purl.org/net/busaco
92. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
Descriem – la nivel ontologic – capabilitatile oferite
de serviciu
specificam actiunea de inserare a unui fisier
intr‐un director
privita, echivalent, ca stabilire a unei categorii
pentru o anumita resursa
Dr. Sabin Buraga http://www.purl.org/net/busaco
93. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – exemplu
webService http://www.undeva.info/FileWebService
nonFunctionalProperties
dc#title hasValue Adăugarea unui fişier într-un director
endNonFunctionalProperties
importsOntology _http://www.undeva.info/fileOntology
capability
sharedVariables {?inode , ?filename}
Dr. Sabin Buraga http://www.purl.org/net/busaco
95. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – mediere
Medierea (mediation) serviciilor via mediatorii WSMO
eterogenitatea poate surveni la nivel de:
terminologie (a conceptelor, numelor de entitati etc.)
reprezentare a formatului – e.g., HTML versus RSS – si
protocolului de transfer – HTTP versus RPC
functionalitate: un ofertant nu pune la dispozitie
intotdeauna serviciul a carui funcționalitate se potriveste
fidel cu cerintele clientului
proces de afaceri (business process)
Dr. Sabin Buraga http://www.purl.org/net/busaco
96. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – mediere
Medierea la nivel de date poate avea loc prin
asocieri de ontologii (ontology mapping),
alinieri ontologice (alignment ontology) si
fuzionari de ontologii (ontology merging)
vezi unul dintre
cursurile
anterioare
Dr. Sabin Buraga http://www.purl.org/net/busaco
97. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
wsmo – mediere
La nivel de procese, trebuie specificati mediatori
de tip proces (process mediators) – servicii
aditionale (private/interne) sau alte aplicatii
Medierea la nivel functional este facilitata
de pre‐ si post‐conditii via mediatorii WSMO
Dr. Sabin Buraga http://www.purl.org/net/busaco
98. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
initiative & instrumente
IBM Semantic Tools for Web Services
METEOR‐S Web Service Discovery Infrastructure
OWL‐S Matcher
SESA – Semantically Enabled
Service‐oriented Architectures
WSMT – Web Services Modeling Toolkit
Dr. Sabin Buraga http://www.purl.org/net/busaco
99. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Intrastructura SESA
instrumente (exemple)
Dr. Sabin Buraga http://www.purl.org/net/busaco
100. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
servicii web semantice
Alte detalii in volumul
Dieter Fensel, Mick Kerrigan & Michal Zaremba (Editors),
Implementing Semantic Web Services. The SESA Framework,
Springer, 2008
a se avea in vedere si competitia SWS Challenge:
http://swschallenge.org/
Dr. Sabin Buraga http://www.purl.org/net/busaco
101. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
provocari
Comunicarea in cadrul SOA
triple space computing
Coordonarea, medierea, adaptarea serviciilor Web
Securitatea serviciilor Web
WS‐Security, WS‐Trust, WS‐Privacy,…
Asigurarea interoperabilitatii
initiativa WS‐I
Serviciile Web in contextul proceselor de afaceri
modelarea workflow‐urilor: BPEL‐WS
Servicii Web pentru grid
Dr. Sabin Buraga http://www.purl.org/net/busaco
102. <?xml version=“1.0” ?>
Semantic Web <curs desc=“…” />
Rezumat
Descrieri semantice ale serviciilor Web
de la SOA la OWL‐S si WSMO
Dr. Sabin Buraga http://www.purl.org/net/busaco