Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti

Download Report

Transcript 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 SWSCaracteristici generale ale SWSCalitatea serviciuluiClasificare in taxonomii

de servicii

Maparea la WSDLprotocolul de comunicare (RPC, HTTP, …)serializaretransformare din/in XSD in/din OWLFluxul de control al serviciuluiBlack/Grey/Glass Box viewSpecificarea protocoluluiMesaje 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 < > process:inCondition >

correctLoginInfo(AccName,Password)

Result Output Constraints Effect < process:withOutput rdr:resource=“# LoginAcceptMsg ”> < process:hasEffect >

loggedIn(AccName,Password)

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