Aplicatii Web bazate pe semantica, agenti si servicii - PowerPoint PPT Presentation

aplicatii web bazate pe semantica agenti si servicii n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Aplicatii Web bazate pe semantica, agenti si servicii PowerPoint Presentation
Download Presentation
Aplicatii Web bazate pe semantica, agenti si servicii

play fullscreen
1 / 94
Aplicatii Web bazate pe semantica, agenti si servicii
122 Views
Download Presentation
hallie
Download Presentation

Aplicatii Web bazate pe semantica, agenti si servicii

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. http://turing.cs.pub.ro/webs_078 Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica BucurestiAnul universitar 2008-2009, MasterAdina Magda Florea

  2. Servicii Web Semantice • Web Semantic si Servicii Web Semantice • Infrastructura SWS • Ontologii pentru SWS: OWL-S si WSMO

  3. Standarde pentru servicii Web Sematic Web Services

  4. 1. 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

  5. Evolutie Web Services UDDI, WSDL, SOAP Dinamic WWW URI, HTML, HTTP Semantic Web RDF, RDF(S), OWL Static

  6. Evolutie 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

  7. 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 irealizata manual • nu exista marcare semntica a continutului serviciilor • nu exista suport pentru Web Semantic

  8. Servicii 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

  9. Pre-condition Cost Atomic service input output Composite service 2. 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

  10. 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.

  11. 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: Localizarea diferitelor 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

  12. 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; acestea 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 de tipuri

  13. Activitati 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 (sacrifica precizia ceruta) • 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 (sacrifica nivelul de detaliu cerut)

  14. Activitati 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 in ontologia serviciului folosind structuri de control • Aceasta descriere poate fi ancorata intr-o descriere sintactica, de ex WSBPEL • Compunere dinamica la cerere

  15. 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

  16. 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

  17. 2.2 Arhitectura • Reasoner = utilizat in timpul tuturor activitatilor; ofera suport pentru interpretarea descrierilor semantice si a cererilor semantice. • Register = ofera meacnismele 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

  18. 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

  19. 3. Ontologii pentru SWS • OWL-S– USA • http://www.w3.org/Submission/OWL-S/ • 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.

  20. 3.1 OWL-S • Upper Ontology • Service Profile • Process Model • Service Grounding

  21. 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

  22. 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

  23. Service Profile Prezentat de serviciu Reprezinta ce ofera serviciul Doua utilizari principale: Reclama capabilitatilor serviciului Cerere de servicii cu anumite capabilitati Service Profiles

  24. 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

  25. OWL-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)

  26. OWL-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

  27. 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 Process Model

  28. 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

  29. 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 obtine rezultatul • Constraints on Outputs • Effects: schimbari asupra lumii ce rezulta ca efect al executiei procesului

  30. 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 specifica cand se produce un anumit efect • Fiecare efect este caracterizat de • o multime de restrictii asupra iesirilor • o multime de consecinte

  31. Exemplu de proces <process:AtomicProcess rdf:ID="LogIn"> <process:hasInput rdf:resource="#AcctName"/> <process:hasInput rdf:resource="#Password"/> <process:hasOutput rdf:resource="#Ack"/> <process:hasPreconditionisMember(AccName)/> <process:hasResult> <process:Result> <process:inCondition> <expr:SWRL-Condition> correctLoginInfo(AccName,Password) </expr:SWRL-Condition> </process:inCondition> <process:withOutput rdf:resource=“#Ack“><valueType rdr:resource=“#LoginAcceptMsg”> </process:withOutput> <process:hasEffect> <expr:SWRL-Condition> loggedIn(AccName,Password) </expr:SWRL-Condition> </process:hasEffect> </process:Result> </process:hasResult> </process:AtomicProcess> Inputs / Outputs Precondition Condition Result OutputConstraints Effect

  32. Ontologia proceselor Process Atomic Simple Poate fi invocat prin grounding Ofera abstractizare, incapsulare etc. Composite Defineste workflow al unui proces compus

  33. 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

  34. Procese 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

  35. Exemplu 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 Flights Flight Depart Arrive Perform Specifica executia unui proces

  36. 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

  37. 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: 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

  38. 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

  39. Process Model: rezumat • Modelul serviciului descrie • Multimea de procese care definesc operatiile executate de un WS • Fluxul de control care descrie inlantuirea temporala a proceselor • Fluxul de date care descrie transferul informatiei intre sub-procese

  40. 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.

  41. 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

  42. Mapare OWL-S / WSDL 1.1 • Operatiilecorespund la Atomic Processes • Mesajele de Input/Output corespund la Inputs/Outputs a proceselor

  43. Exemplu de Grounding Sequence BookFlight Airline Flight Perform Perform Airline Select Flight Get Flights Flights Flights Flight Depart Arrive Arrive Get Flights Op Select Flight op Depart Flights Flights Flight Airline WSDL

  44. 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

  45. 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) - 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

  46. Exemple Diverse exemple de servicii atomice si compuse in OWL-S http://www.mindswap.org/2004/owl-s/services.shtml