A Semantic-Based Web Service Composition Facility for ebXML Registries Asuman Dogac Yildiray Kabak...
-
Upload
camilla-harmon -
Category
Documents
-
view
216 -
download
2
Transcript of A Semantic-Based Web Service Composition Facility for ebXML Registries Asuman Dogac Yildiray Kabak...
A Semantic-Based Web Service Composition Facility for ebXML RegistriesAsuman DogacYildiray KabakGokce Laleci
Middle East Technical UniversityAnkara Turkey
Outline
Web Services, WSDL, SOAP Why WSDL is not enough? Semantic of Web Services ebXML and the ebXML Registry Information Model How to Exploit Web Services Semantics through
ebXML? A Web Service Composition Tool Conclusions
Web Services, WSDL, SOAP
Web Services
Web services encapsulate business functions Check credit card number Payment processing Stock quotes Request for quote, bid processes
They can be used to compose business processes Travel planning Health care …
What is a Web Service?
A Web Service is an interface that describes: a collection of operations that are network-accessible through standardized XML messaging
To put it simply, Web services are applications that interact with each other using Web standards
Web Service
Client Application
XML
WEB
Web Services
Web Service
Client Application
XML
WEB
ExistingApplication
ExistingApplication
• Existing applications can be wrapped as Web services• Client and Service can use different platforms and programming languages • Services can be composed to make composite services
Web Service Model
Service Registry (ebXML or UDDI)- Web service descriptions
Service Consumer
Service Provider- Web service- Service Description in WSDL
Publish service
Discover service
Invoke service through SOAP
Why WSDL is not enough?
Web Service Description
Web ServiceService Consumer
Web Service Description
defines
uses
WSDL Structure
Service
Port(e.g. http://host/service)
Binding(e.g. SOAP, JMS,
direct call)
Abstract interface
portType
operation(s)
inMesage outMessage
Port
Binding
Where to access it
How to access it
Abstract definition of the service (set of
Operations)
Operation: An Exchange of
Messages between a serviceRequestor and a Service provider
XML Messaging: SOAP
The current standard for XML Messaging is Simple Object Access protocol (SOAP)
Applications typically communicate with Web services via SOAP messaging
Typically HTTP is used as RPC transport
XML is used as RPC encoding scheme
SOAP over HTTP
HTTP POST Message
SOAP Endpoint Reference
XML MessageSOAP Payload
SOAP Header
SOAP Body
SOAP Envelope
The SOAP Envelope<SOAP-ENV:Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
< SOAP-ENV:Header> ... </ SOAP-ENV:Header>
< SOAP-ENV:Body> ... </ SOAP-ENV:Body> ...</ SOAP-ENV: Envelope>
SOAP Endpoint Reference
144.122.230.16 80 /ProductCatalog#getPrice
IP Host Address TCP Port No
Object Endpoint ID
POST /ProductCatalog HTTP/1.0 Host: http://www.srdc.metu.edu.tr Content-Type: text/xml; charset="utf-8" Content-Length: 500 SOAPAction: ``http://www.srdc.metu.edu.tr/ProductCatalog#getPrice"
SOAP Envelope
<SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
SOAP Body
<SOAP-ENV:Header /> <SOAP-ENV:Body> <s:getPrice
xmlns:s="http://www.srdc.metu.edu.tr/ProductCatalog"> <product_name xsi:type="xsd:string">Palm
Pilot</product_name> </s:getPrice> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Method Name
Input Parameter
SOAP ResponseHTTP/1.0 200 OKContent-Type: text/xml; charset="utf-8" Content-Length: 400 <SOAP-ENV:Envelope xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Header /> <SOAP-ENV:Body> <s:getPriceResponse
xmlns:s="http://www.srdc.metu.edu.tr/ProductCatalog"> <product_price xsi:type="xsd:float">2000.</product_price> </s:getPriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Standard Suffix
Web Service Semantics
Like their real-life counter parts, Web services have properties In order to exploit services in their full potential their properties
must be defined:
The methods of charging and payment The channels by which the service is requested and
provided Constraints on temporal and spatial aspects Availability Service quality Security, trust and rights attached to a service
An Example Ontology for Travel Domain
TravelService
EntertainmentService
AccommodationService
ReserveAFlight BuyATicket
AirTransportation
TransportationService
originatingFrom destinationTo paymentMethod
Properties of theGeneric ServiceClass
WSDL does not describe Web service semantics
Web ServiceService Consumer
Web Service Description
defines
Semantic description of the properties of a service
uses
Taxonomies are not enough to define service semantics: An Example Taxonomy: UNSPSC
43.00.00.00.00Communications and ComputerEquipment and Peripherals and
Components and Supplies
43.16.17.00.00Business Transaction and Personal
Business Software
43.16.17.02.00Tax Preparation Software
ebXML
Electronic Business XML (ebXML) Electronic Business XML is an initiative from OASIS
and United Nations Centre for Trade Facilitation and Electronic Business
ebXML aims to provide the exchange of electronic business data in Business-to-Business and Business-to-Customer environments
The ebXML specifications provide a framework in which EDI's substantial investments in Business Processes can be preserved in an architecture that exploits XML's technical capabilities
ebXML
A joint global initiative by UN/ CEFACT – United Nations Center For Trade
Facilitation And Electronic Business OASIS – Organization for the Advancement of Structured
Information Standards United Nations Center for Trade Facilitation and
Electronic Business Sets worldwide policy and technical development in trade
facilitation and electronic business Developed international EDI standard, UN/ EDIFACT
The initiative leverages from the success of EDI in large businesses, and intends reaching small and medium enterprises
ebXML Architecture’s functional components
Business Process Specification Schema (BPSS) Business processes are not fixed!
Trading Partner Information Collaboration Protocol Profile CPP
Trading Partner Agreement Collaboration Protocol Agreement CPA
Registry/Repository Messaging Service Core Components
An Overview of Functional Components in ebXML
Repository
ebXML Business Process
Specifications
Business Document
Specification
ebXMLCore
Components
CPP CPPCPA
BusinessService
Interface
BusinessService
Interface
ContextFor
ReferenceTo
BuiltWith
Implement onePartner Role
Implement otherPartner Role
ebXMLRegistry 3 Register Company
Information
1 Request BusinessDetails
4 Query aboutCompany A
Company A
Company B
5 Download Scenarios and Profiles
2 BuildLocalSystem
6 Agree onBusiness Arrangements
7 Do Business Transactions!
ebXML compliantsystem
ebXML Registry Information Model (RIM)
RegistryObject
ClassificationNode Classification
RegistryPackage ExtrinsicObject Service
AssociationRegistryEntry
ClassificationScheme
How to Exploit Web Services Semantics through ebXML?
Exploiting semantics
In relating the semantics with the services advertised in service registries, there are two key issues: Where to store the
generic semantics of the services
How to relate the services advertised in the registry with the semantic defined through an ontology
ReserveAFlight
originatingFrom destinationTo paymentMethod
MyService
TravelService
EntertainmentService
AccommodationService
ReserveAFlight BuyATicket
AirTransportation
TransportationService
originatingFrom destinationTo paymentMethod
?
?
Where to store the generic semantics of the services? An ebXML registry allows to define semantics
basically through two mechanisms: It allows properties of registry objects to be
defined through “slots” and, Metadata can be stored in the registry through a
“classification” mechanism
Relating a Web service Advertised with Service Ontology
ReserveAFlight
originatingFrom destinationTo paymentMethod
MyService
How to relate MyService to a generic service class?
Relating a Web service Advertised with Service Ontology in ebXML
MyService:Registry Entry
ReserveAFlight:ClassificationNode
ServiceToIndustryClassification:Classification
classsifiedObject classificationNode
How to relate services advertised with the generic ontology classes? By relating a service advertised with a node in classification
hierarchy, we make the service an explicit member of this node
The service also inherits the well-defined meaning associated with this node as well as the generic properties defined for this node
When we associate “MyService” with “ReserveAFlightService”, its meaning becomes clear; that this service is a flight reservation service
Assuming that the “ReserveAFlightService” service has the generic properties such as “originatingFrom”, “destinationTo” and “paymentMethod”, “MyService” also inherits these properties
“SubmitObjectRequest” which declares the semantic of “MyReserveAFlightService” and
relates it with the “ReserveAFlightService”
<?xml version = '1.0' encoding = 'UTF-8'?><SubmitObjectsRequest >
<rim:LeafRegistryObjectList><rim:ClassificationNode id = 'ReserveAFlightService' parent= 'CS' >
<Slot name = 'originatingFrom' slotType= 'StringList'>…</Slot><Slot name = 'destinationTo' slotType= 'StringList' > …</Slot><Slot name = 'paymentMethod' slotType= 'StringList' >…</Slot>
</rim:ClassificationNode>
An Example “SubmitObjectRequest” (Cont’d)<Service id="MyReserveAFlightService">
<Name> <LocalizedString lang="en_US" value = "ReserveAFlightService"/> </Name><Slot name = 'originatingFrom'>
<ValueList> <Value>Istanbul </Value> </ValueList> </Slot><Slot name = 'destinationTo'>
<ValueList> <Value> New York</Value> </ValueList> </Slot><Slot name = 'paymentMethod'>
<ValueList> <Value> Credit Card </Value> </ValueList> </Slot>
An Example “SubmitObjectRequest” (Cont’d)<ServiceBinding accessURI="http://www.sun.com/ebxmlrr/registry/nameSpaceIndexer">
<SpecificationLink specificationObject="wsdl"> </SpecificationLink> </ServiceBinding> </Service>
<ExtrinsicObject id="wsdl" mimeType="text/xml"> </ExtrinsicObject><Classification classificationNode="ReserveAFlightService“ ClassifiedObject=
"MyReserveAFlightService" /> </rim:LeafRegistryObjectList> </SubmitObjectsRequest>
Service Composition: Travel Service Example
An AdhocQueryRequest to return “ReserveAFlightService” as a composite object including the slots<?xml version = "1.0" encoding = "UTF-8"?><AdhocQueryRequest xmlns = "urn:oasis:names:tc:ebxml-
regrep:query:xsd:2.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "urn:oasis:names:tc:ebxml-
regrep:query:xsd:2.0 query.xsd"> <ResponseOption returnType = "LeafClass" returnComposedObjects
= "true"/> <FilterQuery> <RegistryObjectQuery> <NameBranch>
<LocalizedStringFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Equal">
ReserveAFlightService</StringClause> </SimpleClause> </Clause> </LocalizedStringFilter>
</NameBranch> </RegistryObjectQuery> </FilterQuery> </AdhocQueryRequest>
User Interface
A Filter Query Retrieving all the services classified by ReserveAFlightService Node and Originating from Istanbul<AdhocQueryRequest > <ResponseOption returnType = "LeafClass" returnComposedObjects = "true" /> <FilterQuery> <ServiceQuery> <ClassifiedByBranch> <ClassificationNodeQuery> <NameBranch> <LocalizedStringFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Equal">ReserveAFlightService
</StringClause> </SimpleClause> </Clause> </LocalizedStringFilter> </NameBranch> </ClassificationNodeQuery> </ClassifiedByBranch>
<SlotBranch> <SlotFilter> <Clause> <SimpleClause leftArgument = "name_"> <StringClause stringPredicate = "Equal"> originatingFrom
</StringClause> </SimpleClause> </Clause> </SlotFilter> <SlotValueFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Contains"> Istanbul </StringClause> </SimpleClause> </Clause> </SlotValueFilter> </SlotBranch>
… </ServiceQuery> </FilterQuery> </AdhocQueryRequest>
Implementation Status
A proof of concept implementation of the system is realized by using OASIS ebXML Registry Reference Implementation
As an application server to host Web services to be accessed through SOAP, Apache Tomcat 4.1 is used
The WSDL descriptions of the implemented services are generated through IBM Web services Toolkit 3.2 (WSTK)
Finally IBM Web Services Invocation Framework 1.0 (WSIF) is used to invoke services.
Conclusions
Web Services will transform the web from a collection of information into a distributed device of computation
In order to employ their full potential, appropriate semantic mechanisms for web services need to be developed
A semantic-based service composition tool for ebXML registries is described
Service discovery and composition by using the semantics of services has been addressed in the literature where the weight of the work has been on using AI techniques to match the inputs and outputs of services requested and advertised
The main problem with these approaches is the performance, which is not yet at the levels to be adopted by the industry
Conclusions
In contrast to such approaches, we take a data management approach for service discovery by exploiting the meta data and the query mechanism of the ebXML registry
With the tools we have provided, the registry is queried for explicit members of a classification node to obtain the generic parameters of the service and users are allowed to fill these in through graphical user interfaces generated dynamically
Then the registry is queried for matching services; the corresponding WSDL files are obtained and through a workflow mechanism presented, the users can compose the discovered services
The current workflow mechanism implemented is a simple one realizing basic workflow functionality
As a future work, we plan to use one of the recent Web services choreography languages, such as BPEL4WS in composing the services
Thank you for your attention!