An Approach to Adding Semantics to Web Services Standards

Download Report

Transcript An Approach to Adding Semantics to Web Services Standards

Adding Semantics to
Web Services Standards
Kaarthik Sivashanmugam, Kunal Verma,
Amit Sheth and John Miller
LSDIS Lab, Department of Computer Science
The University of Georgia
Outline
• Challenges in web services adoption
• Web services conceptual stack and
semantics at different layers
• Semantics for web service usage lifecycle
• METEOR-S project at LSDIS lab
• Semantic publication and discovery of web
services
• Conclusion, References and Q&A
Web Service Conceptual Stack1
Description:Web Service Description Language
(WSDL)
–
To describe Web Service interfaces and
implementations
–Details in WSDL files (data types, operations,
binding details, access location) are used for service
invocation
Description
Messaging
Network
Messaging:(SOAP)
–
Network:(HTTP)
–
1
[Kreger]
XML based messaging protocol
Network protocol
Web Service Conceptual Stack1
Publication:(UDDI)
Flow
Discovery
Publication
Description
Messaging
Network
1
[Kreger]
–
To make service descriptions available for
search
Discovery:(UDDI)
–
To locate service descriptions
Flow:(BPEL4WS, WSCI etc.)
–
To compose web services to form a composite
web service / process
BIG Challenges
• Machine understandable descriptions
• Dynamic discovery and service selection
• Scalability in discovery mechanisms
Hypothesis: Semantics is the most important
enabler
METEOR-S at LSDIS lab
• Adding semantics to different layers of Web
services conceptual stack
• Applying* semantic Web techniques to
industry accepted Web services standards
for better Web service description
– to solve the problems of scalability and heterogeneity in
Web service discovery, selection and composition
* Use of ontologies to provide underpinning for information sharing and
semantic interoperability
Semantics at Different Layers
Description Layer:
Flow
Discovery
Publication
Description
Messaging
Network
Why:
•
Reason about the functionality of the services and the
semantics of the operational data
How:
•
Using Ontologies to semantically annotate WSDL
constructs (conforming to extensibility allowed in WSDL
specification version 1.2) to sufficiently explicate the
semantics of the
–
–
data types used in the service description and
functionality of the service
Present scenario:
•
WSDL descriptions are mainly syntactic (provides
operational information and not functional information)
•
Semantic matchmaking is not possible
Semantics at Different Layers
(contd..)
Publication and Discovery Layers:
Flow
Discovery
Publication
Why:
•
Enable scalable, efficient and dynamic publication and
discovery (machine processability / automation)
How:
•
Use of ontology to categorize registries based on domains
and characterize them by maintaining the
1.
2.
Description
Messaging
Network
•
properties of each registry
relationships between the registries
Capturing the WSDL annotations in UDDI
Present scenario:
•
Suitable for simple searches ( like services offered by a
provider, services that implement an interface, services that
have a common technical fingerprint etc.)
•
Categories are too broad
•
Automated service discovery (based on functionality) and
selecting the best suited service is not possible
Semantics at Different Layers
(contd..)
Flow Layer:
Flow
Discovery
Why:
•
Design (composition), analysis (verification), validation
(simulation) and execution (exception handling) of the
process models
•
To employ mediator architectures for automated
composition, control flow and data flow based on
requirements
Publication
Description
Messaging
Network
How:
•
Using
–
–
–
–
Functionality/preconditions/effects of the participating
services
Knowledge of conversation patterns supported by the service
Formal mathematical models like process algebra
Simulation techniques
Present Scenario:
•
Composition of Web services is static.
•
Dynamic service discovery, run-time binding, analysis and
simulation are not supported directly
Semantics in METEOR-S
Flow
Discovery
Publication
Description
Messaging
Network
MWSCF: Semantic Web Process Composition
Framework
MWSDI: Scalable Infrastructure of Registries for
Semantic publication and discovery of Web
Services
MWSDI: Semantic Annotation of WSDL (WSDL-S)
Semi-Formal
Informal
Degree of Agreement
Formal
Current Semantic
Web Focus
Lots of
Useful
Semantic
Technology
(interoperability,
Integration)
Qos
Execution
Scope of Agreement
Task/
App
Domain
Industry
Gen.
Purpose,
Broad Based
Function
Common
Sense
Data/
Info.
Other dimensions:
how agreements are reached,
…
Scope of Semantic Web with respect to Web
Services
Semantics for Web Services
•
Data/Information Semantics
–
–
–
•
Functional/Operational Semantics
–
–
–
•
Formally representing capabilities of web service
for discovery and composition of Web Services
by annotating operations of Web Services as well as provide preconditions and effects;
Annotating TPA/SLA
Execution Semantics
–
–
–
•
Formal definition of data in input and output messages of a web service
for discovery and interoperability
by annotating input/output data of web services using ontologies
Formally representing the execution or flow of a services in a process or operations in a service
for analysis (verification), validation (simulation) and execution (exception handling) of the
process models
using State Machines, Petri nets, activity diagrams etc.
QoS Semantics
–
–
–
Formally describing operational metrics of a web service/process
To select the most suitable service to carry out an activity in a process
using QoS model [Cardoso and Sheth, 2002] for web services
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET,SPTB)
WSDL, WSEL
DAML-S
Data
/ Information
Semantics
Meteor-S (WSDL
Annotation)
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET,SPTB)
WSDL, WSEL
DAML-S
Data
/ Information
Semantics
Meteor-S (WSDL
Annotation)
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET,SPTB)
WSDL, WSEL
DAML-S
Meteor-S (WSDL
Annotation)
Functional
/ Operational
Semantics
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
WSDL, WSEL
DAML-S
Meteor-S (WSDL
Annotation)
QoS
Semantics
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET,SPTB)
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET,SPTB)
WSDL, WSEL
DAML-S
Meteor-S (WSDL
Annotation)
Execution
Semantics
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
Semantics for Web Service usage
life cycle
Development
/ Description
/ Annotation
Execution
BPWS4J,
Commercial BPEL
Execution Engines,
Intalio n3, HP
eFlow
WSDL, WSEL
DAML-S
Execution
Semantics
Data
/ Information
Semantics
Meteor-S (WSDL
Annotation)
Semantics Required for
Web Processes
QoS
Semantics
BPEL, BPML,
WSCI, WSCL,
DAML-S,
METEOR-S
(SCET, SPTB)
Functional
/ Operational
Semantics
UDDI
WSIL, DAML-S
Composition
Publication
/ Discovery
METEOR-S (P2P
model of registries)
METEOR-S components for
Semantic Web Services
• Discovery Infrastructure (MWSDI)
– Semantic Annotation of Web Services 1
– Semantic Peer-to-Peer network of Web Services Registries 2
• Composer
– SCET: Service Composition and Execution Tool 3
– Semantics process template builder and Process generator 4
– QoS Management
• Specify, compute, monitor and control QoS (SWR algorithm) 5
• Orchestrator (Under development)
– Analysis and Simulation 6
– Execution
– Monitoring 6
1
[Sivashanmugam et al.-1], 2 [Verma et al.], 3 [Chandrasekaran et al.], 4 [Sivashanmugam et al.-2],
5 [Cardoso et al.], 6 [Silver et al.]
Search for services to book air
ticket (using categories)*
• unspsc-org: unspsc:3-1
– Travel, Food, Lodging and Entertainment Services
• Travel facilitation
– Travel agents
» Travel agencies
• Services: 3 records found.
–
–
–
AirFares
Returns air fares from netviagens.com travel agent
Hotel reservations
Reservations for hotels in Asia, Australia and New Zealand
Your Vacation Specialists
Web enabled vacation information
• Providers: 2 records found.
* Search carried out in one of the Universal Business Registries
Search for services to book air
ticket (using keywords)*
•
air ticket
– 1 record with name air tickets booking
•
airticket, ticketbooking, airtravel, air travel, travel agent, airticketbooking, air
ticket booking, travel agency, travelagency
– 0 records were returned
•
travelagent
– 1 record with name travelagent test
• 4 services: BookFlight, cancelFlightBooking etc.
• Descriptions say that both these services are “XML based Web services”
• No URL for WSDL
•
Travel
– 15 records. Purpose/functionality understood from descriptions
•
•
•
•
•
•
2 services : TravelBooks
4 services : TravelInformation
2 services : Reservation and cancallation of travel tickets
1 service : Emergency Services for travellers
1 service : Travel documentation and itinerary
5 services : Description is ambiguous/not present
* Search carried out in one of the
Universal Business Registries
Semantic Discovery: Overview
• Annotation and Publication
– WSDL file is annotated using ontologies and the annotations are
captured in UDDI
• Discovery
– Requirements are captured as templates that are constructed using
ontologies and semantic matching is done against UDDI entries
• Functionality of the template, its inputs, outputs, preconditions and effects are
represented using ontologies
• Use of ontologies
– brings service provider and service requestor to a common
conceptual space
– helps in semantic matching of requirements and specifications
Semantic Publication and Discovery
Class
TravelServices
subClassOf
WSDL
subClassOf
Class
Class
Data
Operations
subClassOf
subClassOf
subClassOf
Use of ontologies enables
shared understanding
between the service provider
and service requestor
subClassOf
Class
Class
Class
Class
Ticket
Information
Confirmation
Message
Ticket
Booking
Ticket
Cancellation
Operation:
buyTicket
Input1:
<Operation>
TravelDetails
Output1:
Confirmation
<Input1>
UDDI
Operation:
Search
cancelTicket
<Output1>
Input1:
TravelDetails
Output1:
Service Template
Publish
Confirmation
Annotations
For simplicity of depicting, the ontology is shown with classes for both operation and data
WSDL-S (WSDL with Semantic Annotation)
• Mapping Input and Output Message Parts to Ontology
– XML Schema elements used in Input/Output messages do not reflect the semantics
of the data involved in Web Service operation
– Use of ontologies or standard vocabulary* brings service provider and requestor to
common conceptual space providing well defined semantics for operational data
• Mapping Operations to Ontology
– Service selection involves discovering appropriate WSDL description and locating
an operation to invoke
– Operations with same signature could have different functionalities
– Ontology or vocabulary depicting functionality is used for annotation
• Additional tags to represent pre-conditions and effects of
each operation
– Preconditions and effects are added for each operation
– Can be optionally used for service discovery and selection
* RosettaNet Business/Technical dictionary or ebXML Core Component catalog/dictionary
The focus of our work is not in developing ontologies for representing functionality/preconditions/effects but to use
such ontologies for semantic annotation
Annotation Syntax*
• Each Operation in WSDL is annotated using an fully
qualified attribute name-value pair in the operation
element under portType element. The attribute name is
operation-concept
• Each Message part is annotated using a fully qualified
attribute name-value pair in the part element under
message element. The attribute name is onto-concept
• Preconditions and effects are respectively represented
using fully qualified additional tags with the names
precondition and effect. These elements have two attributes
name (optional) and precondition-concept (or effectconcept). Each operation can have multiple precondition
and effect elements.
* conforms to extensibility support in WSDL version 1.2
WSDL Annotation Example
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
xmlns:LSDISOnt=lsdis.cs.uga.edu//METEORS/TravelServiceOntology.daml ….. >
<wsdl:message name="OperationRequest">
<wsdl:part name="in0"
type="tns:TravelDetails" LSDISExt:ontoconcept= "LSDISOnt:TicketInformation"/>
</wsdl:message>
<wsdl:portType name="TravelArragement">
<wsdl:operation name="buyTicket" parameterOrder="in0"
LSDISExt:operation-concept="LSDISOnt:TicketBooking">
<wsdl:input message="intf:OperationRequest" name="buyTicketRequest"/>
<wsdl:output message="intf:OperationResponse" name="buyTicketResponse"/>
<LSDISExt:precondition name="ValidCreditCard"
LSDISExt:precondition-concept="LSDISOnt:ValidCreditCard"/>
</wsdl:operation>
</wsdl:definitions>
Semantics in UDDI
• tModels are used to categorize and characterize
service entries in UDDI (limited form of
semantics)
• Our approach uses categorizes* (using metadata
constructs tModels and CategoryBags) the
services in UDDI based on the semantic
annotations
* similar to [Paolucci et al.]
Semantic Categorization of
Services in UDDI*
For the example discussed earlier: Travel Arrangement Service with
two operations buyTicket and cancelTicket
Service
CategoryBag
KeyedReferenceGroup
TmodelKey:OperationalTModelKey, Value:TicketBooking, Name:buyTicket
TmodelKey:InputTModelKey, Value:TicketInformation
(SemanticGroupTModelKey)
KeyedReferenceGroup
TmodelKey:OutputTModel, Value:ConfirmationMessage
(SemanticGroupTModelKey)
TmodelKey:OperationalTModelKey, Value:TicketCancellation,
Name:cancelTicket
TmodelKey:InputTModelKey, Value:TicketInformation
TmodelKey:OutputTModel, Value:ConfirmationMessage
* conforming to UDDI Version 3 spec [UDDI-v3]
Semantic Categorization of
Services in UDDI*
Operation-ontology mapping in WSDL for buyTicket operation
<operation name=“buyTicket” operation-concept=“TravelOnto:TicketBooking”>
Service
CategoryBag
KeyedReferenceGroup
TmodelKey:OperationalTModelKey, Value:TravelOnto:TicketBooking, Name:buyTicket
TmodelKey:InputTModelKey, Value:TravelOnto:TicketInformation
(SemanticGroupTModelKey)
KeyedReferenceGroup
TmodelKey:OutputTModelKey, Value:GeneralTradeOnto:ConfirmationMessage
(SemanticGroupTModelKey)
TmodelKey:OperationalTModelKey, Value: TravelOnto:TicketCancellation,
Name:cancelTicket
TmodelKey:InputTModelKey, Value: TravelOnto:TicketInformation
TmodelKey:OutputTModelKey, Value: GeneralTradeOnto: ConfirmationMessage
* conforming to UDDI Version 3 spec [UDDI-v3]
Semantic Categorization of
Services in UDDI*
Input Message part-ontology mapping in WSDL for buyTicket operation
<part name=“input1” type=“tns:TravelDetails” onto-concept=“TravelOnto:TicketInformation”>
Service
CategoryBag
KeyedReferenceGroup
TmodelKey:OperationalTModelKey, Value:TicketBooking, Name:buyTicket
TmodelKey:InputTModelKey, Value:TravelOnto:TicketInformation
(SemanticGroupTModelKey)
KeyedReferenceGroup
TmodelKey:OutputTModelKey, Value: GeneralTradeOnto:ConfirmationMessage
(SemanticGroupTModelKey)
TmodelKey:OperationalTModelKey, Value:TravelOnto:TicketCancellation,
Name:cancelTicket
TmodelKey:InputTModelKey, Value: GeneralTradeOnto:TicketInformation
TmodelKey:OutputTModel, Value: GeneralTradeOnto:ConfirmationMessage
* conforming to UDDI Version 3 spec [UDDI-v3]
Semantic Categorization of
Services in UDDI*
Output Message part-ontology mapping in WSDL for buyTicket operation
<part name=“output” type=“xsd:String” onto-concept=“GeneralTradeOnto:ConfirmationMessage”>
Service
CategoryBag
KeyedReferenceGroup
TmodelKey:OperationalTModelKey, Value:TicketBooking, Name:buyTicket
TmodelKey:InputTModelKey, Value:TravelOnto:TicketInformation
(SemanticGroupTModelKey)
KeyedReferenceGroup
TmodelKey:OutputTModelKey, Value: GeneralTradeOnto:ConfirmationMessage
(SemanticGroupTModelKey)
TmodelKey:OperationalTModelKey, Value:TravelOnto:TicketCancellation,
Name:cancelTicket
TmodelKey:InputTModelKey, Value: GeneralTradeOnto:TicketInformation
TmodelKey:OutputTModel, Value: GeneralTradeOnto:ConfirmationMessage
* conforming to UDDI Version 3 spec [UDDI-v3]
Semantic Categorization of
Services in UDDI*
Service
CategoryBag
KeyedReferenceGroup
OperationalTModel
InputTModel
OutputTModel
SemanticGroupTModel
Same for all UDDI
entries
(SemanticGroupTModel)
TmodelKey:OperationalTModel, Value:OperationConcept, Name:OperationName
KeyedReferenceGroup
TmodelKey:InputTModel, Value:Input_Concept_W
(SemanticGroupTModel)
…….
KeyedReferenceGroup
(SemanticGroupTModel)
TmodelKey:InputTModel, Value:Input_Concept1_Y
TmodelKey:OutputTModel, Value:Output_Concept_X
…….
* conforming to UDDI Version 3 spec
TmodelKey:OutputTModel, Value:Output_Concept1_Z
Discovery using UDDI API
• Services are matched if their CategoryBags are a
subset of the CategoryBag used in search
(find_service)
• According to UDDI version 3 specification
CategoryBags can be constructed using
KeyedReferenceGroups. So groups can be
constructed using the semantics of operation,
inputs, outputs, preconditions and effects and
search can be carried out.
Discovery using UDDI API
• Our implementation used UDDI Version 1 API
– KeyedReferenceGroups are not supported
– Each operation is grouped with its operation-concept, input and output ontoconcepts each as a keyedReference in the keyedReferenceVector as
tModelKey = “OpTModel” KeyValue = “operation-concept” KeyName = “OpName”
tModelKey = “InTModel” KeyValue = “onto-concept”
KeyName = “OpName”
tModelKey = “OutTModel” KeyValue = “onto-concept”
KeyName = “OpName”
OpTModel: Key for the tModel representing functional semantics of the operation named “OpName” in a
WSDL file linked to the UDDI entry
InTModel: Key for the tModel representing semantics of the inputs of the operation named “OpName” in
the WSDL
OutTModel: Key for the tModel representing semantics of the outputs of the operation named “OpName”
in the WSDL
operation-concept: Fully qualified Id of a class in a functional ontology represented by OpTModel
onto-concept: Fully qualfied Id of a class in a ontology that is used to annotate inputs (or outputs)
represented by InTModel (or OutTModel)
Summary of Steps in Discovery
1.
Services selection based on the functional
requirements
•
2.
Using operation-ontology mapping
Ranking based on semantic similarity based on
input/output semantics of candidate services and
requirement template
•
3.
Using message part-ontology mapping
Optional step includes semantic similarity based on
semantics of preconditions/effects of the candidate
services and requirement template
•
Using precondition and effect tags
Conclusions
• Semantics is the enabler to address the problems
of scalability, heterogeneity (syntactic and
semantic), machine understandability faced by
Web services
• Semantics can be applied to different layers of
Web Services conceptual stack
• Semantics for Web Services can be categorized
into atleast 4 different dimensions namely Data,
Functional, Execution and Quality.
References
•
•
•
•
•
[Kreger] http://www-3.ibm.com/software/solutions/webservices/pdf/WSCA.pdf
[Sivashanmugam et al.-1] Adding Semantics to Web Services Standards
[Sivashanmugam et al.-2] Framework for Semantic Web Process Composition
[Verma et al.] MWSDI: A Scalable Infrastructure of Registries for Semantic Publication
and Discovery of Web Services
[Chandrasekaran et al.] Performance Analysis and Simulation of Composite Web
Services
[Cardoso et al.] Modeling Quality of Service for Workflows and Web Service Processes
[Silver et al.] Modeling and Simulation of Quality of Service for Composition of Web
Services
[Paolucci et al.] Importing Semantic Web in UDDI
•
[UDDI-v3] http://uddi.org/pubs/uddi-v3.00-published-20020719.htm
•
•
•
Thank you