1 / 47

A Semantic-Based Web Service Composition Facility for ebXML Registries

A Semantic-Based Web Service Composition Facility for ebXML Registries. Asuman Dogac Yildiray Kabak Gokce Laleci Middle East Technical University Ankara Turkey. Outline. Web Services, WSDL, SOAP Why WSDL is not enough? Semantic of Web Services

Download Presentation

A Semantic-Based Web Service Composition Facility for ebXML Registries

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Semantic-Based Web Service Composition Facility for ebXML Registries Asuman Dogac Yildiray Kabak Gokce Laleci Middle East Technical University Ankara Turkey

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

  3. Web Services, WSDL, SOAP

  4. 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 • …

  5. Web Service XML Client Application WEB What is a Web Service? To put it simply, Web services are applications that interact with each other using Web standards A Web Service is an interface that describes: • a collection of operations • that are network-accessible • through standardized XML messaging

  6. Web Service XML Client Application WEB Existing Application Existing Application Web Services • 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

  7. Web Service Model Service Registry (ebXML or UDDI) - Web service descriptions Discover service Publish service Service Consumer Service Provider - Web service - Service Description in WSDL Invoke service through SOAP

  8. Why WSDL is not enough?

  9. Web Service Description Web Service Description defines Service Consumer Web Service uses

  10. WSDL Structure Service Where to access it Port (e.g. http://host/service) Port How to access it Binding (e.g. SOAP, JMS, direct call) Binding Operation: An Exchange of Messages between a service Requestor and a Service provider Abstract definition of the service (set of Operations) Abstract interface portType operation(s) inMesage outMessage

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

  12. SOAP over HTTP HTTP POST Message SOAP Endpoint Reference XML Message SOAP Payload SOAP Envelope SOAP Header SOAP Body

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

  14. SOAP Endpoint Reference IP Host Address TCP Port No Object Endpoint ID 144.122.230.16 80 /ProductCatalog#getPrice 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"

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

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

  17. SOAP Response HTTP/1.0 200 OK Content-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

  18. Web Service Semantics

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

  20. TravelService Transportation Service Accommodation Service Entertainment Service AirTransportation ReserveAFlight BuyATicket Properties of the Generic Service Class originatingFrom destinationTo paymentMethod An Example Ontology for Travel Domain

  21. WSDL does not describe Web service semantics Semantic description of the properties of a service Web Service Description defines uses Service Consumer Web Service

  22. Taxonomies are not enough to define service semantics: An Example Taxonomy: UNSPSC 43.00.00.00.00 Communications and Computer Equipment and Peripherals and Components and Supplies 43.16.17.00.00 Business Transaction and Personal Business Software 43.16.17.02.00 Tax Preparation Software

  23. ebXML

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

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

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

  27. An Overview of Functional Components in ebXML ContextFor ebXML Business Process Specifications Business Document Specification ebXML Core Components BuiltWith ReferenceTo Repository Implement other Partner Role Implement one Partner Role Business Service Interface Business Service Interface CPP CPA CPP

  28. Company A 1 Request Business Details ebXML Registry 2 Build Local System 3 Register Company Information 5 Download Scenarios and Profiles 6 Agree on Business Arrangements 4 Query about Company A 7Do Business Transactions! Company B ebXML compliant system

  29. ebXML Registry Information Model (RIM) RegistryObject ClassificationNode Classification RegistryEntry Association ClassificationScheme RegistryPackage ExtrinsicObject Service

  30. How to Exploit Web Services Semantics through ebXML?

  31. ReserveAFlight originatingFrom destinationTo paymentMethod Exploiting semantics TravelService Accommodation Service Transportation Service Entertainment Service ? AirTransportation • 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 BuyATicket originatingFrom destinationTo paymentMethod ? MyService

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

  33. ReserveAFlight originatingFrom destinationTo paymentMethod How to relate MyService to a generic service class? MyService Relating a Web service Advertised with Service Ontology

  34. ServiceToIndustryClassification: Classification classificationNode classsifiedObject MyService: Registry Entry ReserveAFlight: ClassificationNode Relating a Web service Advertised with Service Ontology in ebXML

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

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

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

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

  39. Service Composition: Travel Service Example

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

  41. User Interface

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

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

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

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

  46. Thank you for your attention!

More Related