Title: Discovering E-Services Using UDDI in SELF-SERV
1Discovering E-Services Using UDDI in SELF-SERV
Quan Z. Sheng, Boualem Benatallah, Rayan Stephan,
Eileen Oi-Yan Mak, Yan Q. Zhu School of
Computer Science and Engineering The University
of New South Wales Sydney, Australia
Beijing, 2002
2Outline
- SELF-SERV overview
- Simple Object Access Protocol (SOAP)
- Web Service Description Language (WSDL)
- Universal Description, Discovery and
Integration (UDDI) - Service Discovery Engine in SELF-SERV
- Conclusion
3SELF-SERV overview
- SELF-SERV (compoSing wEb accessibLe inFormation
buSiness sERVices) is a framework for dynamic
and peer-to-peer provisioning of Web services. - SELF-SERV distinguishes three types of services
elementary services, composite services, and
service communities. - Composite service aggregates multiple Web
service, based on statecharts. - Service community is a powerful concepts for
composing potential large number of dynamic
services.
4SELF-SERV overview Architecture
User Interface
UDDI Registry
Service Manager
Communication Bus
Service Community
Composite Service
Elementary Service
5SELF-SERV overview Architecture (cont.)
Service Manager
SELF-SERV Interface
Service Discovery Engine
UDDI Registry
requests/results
service descriptions
Service Editor
Communication Bus
C3
Communities
C2
C1
Composite services
CS1
CS2
Pool of Services
is registered with
is composed of
Elementary services
ES1
ES2
ES4
ES3
applications
workflow
database
web-accessible programs
Legend
Coordinator.1
Coordinator.2
Coordinator.n
Wrapper
6SOAP Simple Object Access Protocol
- An XML-based mechanism for exchanging structured
data between network applications - composes 3 parts
- envelope defines a framework for describing what
is in a message and how to process it - encoding rules express instances of
application-defined data types - a convention represents remote procedure calls
and responses. - 2 types of messages, Request/Response
7SOAP an example of a request
POST /carRenting HTTP/1.1 Host
www.axac.com Content-Type text/xml
charsetutf-8 Content-Length 127 SOAPAction
http//www.anywhere.com/rentCar ltSOAP-ENVEnvelo
pe xmlnsSOAP-ENVhttp//schemas.xmlsoap.org/
soap/envelope SOAP-ENVencodingStylehttp//
schemas.xmlsoap.org/soap/encodinggt
ltSOAP-ENVbodygt ltmrentCar
xmlnsmhttp//www.anywhere.com/rentCargt
ltcustomergtBoualem Benatallahlt/customergt
ltrentalDategt18/05/2002lt/rentalDategt
ltreturnDategt20/05/2002lt/returnDategt
lt/mrentCargt lt/SOAP-ENVBodygt lt/SOAP-
ENVEnvelopegt
8SOAP an example of a reply
HTTP/1.1 200 OK Content-Type text/xml
charsetutf-8 Content-Length
234 ltSOAP-ENVEnvelope xmlnsSOAP-ENVhttp/
/schemas.xmlsoap.org/soap/envelope
SOAP-ENVencodingStylehttp//schemas.xmlsoap.org
/soap/encodinggt ltSOAP-ENVBodygt
ltmRentcarResponse xmlnsmhttp//www.anywhere.co
m/rentCargt ltrentalFeesgt234.00lt/
rentalFeesgt lt/mRentcarResponsegt
lt/SOAP-ENVBodygt lt/SOAP-ENVEnvelopegt
9WSDL Web Service Description Language
- A general purpose XML language for describing
interface, protocol bindings and the deployment
details of Web services - a WSDL document describes how to invoke a service
by providing information on - the data being exchanged
- the sequence of messages for an operation
- the location of the service and
- the description of bindings (e.g., SOAP/HTTP)
10WSDL service description structure
Service Implementation Definition
Service
Port
Service Interface Definition
Binding
Port Type
Message
Type
11WSDL elements
- Types contains the complex data types used in
message - Messages defines the input/output parameters of
an operation. - Port type defines the operations of a Web service
ltdefinitions name"carRenting" ....gt lttypesgt
ltschema targetNamespace"http//example.co
m/carRenting.xsd"
xmlns"http//www.w3.org/2000/10/XMLSchema"gt
ltelement name"Customer"gt
ltcomplexTypegt ltallgtltelement
name"Name" type"string"/gt
ltelement name"CreditCardNo" type"string"/gt
lt/allgt
lt/complexTypegt lt/elementgt
lt/schemagt lt/typesgt
12WSDL elements (cont.)
. ltmessage name"carRentingInput"gt ltpart
name"customer" element"tnsCustomer"/gt
ltpart name"rentalDate" type"xsddate"/gt
ltpart name"returnDate" type"xsddate"/gt
lt/messagegt ltmessage name"carRentingOutput"gt
ltpart name"rentalFee" type"xsdfloat"/gt lt
/messagegt ltportType name"carRentingPortType"gt
ltoperation name"RentCar"gt
ltinput message"tnscarRentingInput"/gt
ltoutput message"tnscarRentingOutput"/gt
lt/operationgt lt/portTypegt
13WSDL elements (cont.)
- Binding describes the protocol, data format,
security and other attributes for a particular
service interface. - Port an address for a binding
- Service a collection of WSDL port elements
ltbinding name"carRentingSoapBinding"
type"tnscarRentingPortType"gt
ltsoapbinding style"document transport"http//s
chemas.xmlsoap.org/soap/http"/gt
ltoperation namerentCar"gt
ltsoapoperation soapAction"http//www.anywhere.co
m/rentCar"/gt ltinputgtltsoapbody
use"literal"/gtlt/inputgt
ltoutputgtltsoapbody use"literal"/gtlt/outputgt
lt/operationgt lt/bindinggt ltservice
name"CarRentingService"gt ltport
name"carRentingPort" binding"tnscarRentingSoapB
inding"gt ltsoapaddress
location"http//example.com/carRenting"/gt
lt/portgt ... lt/servicegt
14UDDI Universal Description, Discovery and
Integration
- UDDI is a specification that defines a service
registry of available Web services - Jointly proposed by Microsoft, Ariba and IBM
- SOAP can be used to query UDDI for services
- UDDI is defined through an XML schema,
identifying 4 core types of information - UDDI APIs specification publishing/discovering
(e.g., UDDI4J)
15UDDI data structure
businessEntity
tModel
businessService
bindingTemplate
16UDDI an example of business registration
ltbusinessList generic1.0 operatorMicrosoft
operator truncatedfalse xmlnsurnuddi-org
apigt ltbusinessInfosgt ltbusinessInfo
businessKey089B5-ER8-AC09-599CF7gt
ltnamegtAnywhere Ltdlt/namegt ltdescription
xmllangengtall kinds of cars, trucks,
motorbikes for rentinglt/descriptiongt
ltserviceInfosgt ltserviceInfo
businessKey 089B5-ER8-AC09-599CF7
serviceKey12FF-2AF3-45FB-09AF7gt
ltnamegtcarRentallt/namegt
lt/serviceInfogt .
lt/serviceInfosgt lt/businessInfogt
lt/businessInfosgt lt/businessListgt
17UDDI an example of SOAP message acquiring
information from the UDDI Registry
ltEnvelope xmlnsshttp//schemas.xmlsoap.org/soap
/envelopegt ltBodygt ltfind_business
xmlnsurnuddi-orgapi generic1.0gt
ltnamegtAnywhere Ltdlt/namegt
lt/find_businessgt lt/Bodygt ltEnvelopegt
For details http//www.uddi.org
http//www-3.ibm.com/services/u
ddi
18Integrating UDDI with WSDL and SOAP
Service Provider
Invoke
Publish
SOAP Request
SOAP Request
SOAP Response
SOAP Response
WSDL
UDDI Registry
SOAP Request
Service
Requestor
SOAP Response
WSDL
Find
Service registration and discovery
19Service Discovery Engine in SELF-SERV
- Service discovery engine facilitates service
advertisements and discovery. - UDDI, together with WSDL and SOAP are used to
implement the discovery engine. - IBM Web Service ToolKit (WSTK) 2.4 benefits a lot
of the implementation.
20Service Discovery Engine in SELF-SERV (cont.)
- IBM WSTK is a showcase package for Web service
related emerging technologies. It provides
several tools. - A lightweight application server called embedded
WebSphere. - A WSDL generation tool can encapsulate legacy
code (e.g., Java classes, COM) as Web services. - The UDDI4J (a Java API) enables operations to
UDDI registry.
21Service Discovery Engine in SELF-SERV (cont.)
public class publishService String
serviceDefinitionWSDLhttp//www.cse.unsw.edu.au/
SELFSERV/wsdl/carRental.wsdl String
serviceInterfaceWSDLhttp//www.cse.unsw.edu.au/S
ELF-SERV/wsdl/carRental-interface.wsdl String
soapRouterhttp//www.cse.unsw.edu.au/soap/servle
t/rpcrouter String serviceDeploymenthttp//www
.cse.unsw.ed.au/SELFSERV/ wsdl/deploymentDescripto
r.xml String inquiryURLhttp//www.cse.unsw.edu
.au/services/uddi/inquiryapi String
publishURLhttps//www.cse.unsw.edu.au/services/u
ddi/publishapi ServiceRegistryProxy srp new
ServiceRegistryProxyinquiryURL, publishURL,
username, password) CategoryList spCatList new
CategoryList() spCatList.addCategory(TModelKeyTa
ble.UNSPSC, 84121, TModelKeyTable.UNSPSC_TMODEL_
KEY) ServiceProvider spnew ServiceProvider(CarR
ental, SELF-SERV service provider example,
spCatList) spsrp.publish(sp) ServiceInterface
sinew ServiceInterface(serviceInterfaceWSDL)
sisrp.publish(si) CategoryList sdCatListnew
CategoryList() sdCatList.addCategory(TmodelKeyTab
le.UNSPSC, 84121, TmodelKeyTable.UNSPSC_TMODEL_K
EY) SOAPServiceDefinition sdnew
SOAPServiceDefinition(serviceDefinitionWSDL,
sdCatList, serviceDeployment, soapRouter) sd.crea
teServiceManagerProxy().deployService(sd)
srp.publish(sp, sd)
- Creating WSDL descriptions for Web services
- using IBM WSDL generation tool
- Deploying and publishing Web service
A Java code fragment for publishing a Web service
22Service Discovery Engine in SELF-SERV (cont.)
A screen snapshot for service registry.
23Service Discovery Engine in SELF-SERV (cont.)
Locate a service
Execute the service
A screen snapshot for service discovery and
invocation.
24Conclusion
- Present the design and implementation of the
Service Discovery Engine in SELF-SERV - Show how UDDI, WSDL and SOAP complement each
other in Web service advertisement and discovery - This work is one part of a large research project
SELF-SERV. Other works of SELF-SERV have also
published in IEEE ICDE02, VLDB2002 etc.