Date post: | 11-Jan-2016 |
Category: |
Documents |
Upload: | carol-hines |
View: | 215 times |
Download: | 1 times |
Asuman Dogac eChallenges, Bologna, October 23, 2003
1/101
Exploiting Semantic of Web Services through ebXML RegistriesAsuman Dogac
Middle East Technical University
06531 Ankara Turkey
Asuman Dogac eChallenges, Bologna, October 23, 2003
2
The Aim of the Tutorial
The aim is to make
the involved topics easily digestible
so that the companies can judge for
themselves the possible benefits
of these technologies
Asuman Dogac eChallenges, Bologna, October 23, 2003
3
Outline Motivation: Why do we need the semantics of Web
services? Means of expressing semantic: Ontology and Ontology
Description Languages XML in brief: Why XML is useful? Web Interaction Evolution Web services, SOAP, WSDL and UDDI Semantic Support of Web Services in UDDI Registries ebXML: A Brief Overview How to Exploit Web Services Semantics through
ebXML? OWL-S
Asuman Dogac eChallenges, Bologna, October 23, 2003
4/101
Motivation: Why do we need the semantics of Web services?
Asuman Dogac eChallenges, Bologna, October 23, 2003
5
Why do we need Web Service Semantics? 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
Asuman Dogac eChallenges, Bologna, October 23, 2003
6
Why do we need Web Service Semantics? To be able to describe
service properties and later search for services according to their properties
This search needs to be
done in a machine processable and interoperable manner
Some reasoning capabilities will also help!
Defining Service Properties Through Ontology Languages
Asuman Dogac eChallenges, Bologna, October 23, 2003
7
A Motivating Example
Needs to find all services which
sell …
Desktop With Memory 256 MByte Speed 2 GHertz
Made In Italy Payment methodshould be creditcard
Delivery shouldbe within a week
The process should befully automated: no humaninteraction
A CompanyIn Turkey
Asuman Dogac eChallenges, Bologna, October 23, 2003
8/101
To be continued…
Asuman Dogac eChallenges, Bologna, October 23, 2003
9/101
Ontology
Asuman Dogac eChallenges, Bologna, October 23, 2003
10
What is an Ontology?“An explicit formal specification of the terms in the domain and relations among them.”
- Noy and McGuinness, “Ontology Development 101”
• The word ontology comes from the Greek ontos (being) and logos (word)
•An ontology describes objects and concepts as classes
• These classes are arranged in a hierarchy, and then class attributes and relationships are described with properties
Class
Subclass
Subclass
properties properties
Asuman Dogac eChallenges, Bologna, October 23, 2003
11
An Example RDF Schema
Crimes
Robbery Speeding Terrorism
<rdfs:Class rdf:ID=“Crimes"> </rdfs:Class>
<rdfs:Class rdf:ID=“Robbery"> <rdfs:subClassOf rdf:resource="#Crimes"/></rdfs:Class>
<rdfs:Class rdf:ID=“Terrorism"> <rdfs:subClassOf rdf:resource="#Crimes"/></rdfs:Class>
…
Asuman Dogac eChallenges, Bologna, October 23, 2003
12
RDF Properties
<rdfs:Property rdf:ID=“suspect"> <rdfs:domain rdf:resource="#Robbery"/> <rdfs:range rdf:resource=“#Thief>
</rdfs:Property >
suspect
Robbery Thief
Crimes Literal
description
<rdfs:Property rdf:ID=“description"> <rdfs:domain rdf:resource="#Crime"/> <rdfs:range rdf:resource=“http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdfs:Property >
Asuman Dogac eChallenges, Bologna, October 23, 2003
13
RDF
RDF fixes the syntax and structure of describing metadata through RDF Syntax
It allows meaning to be defined and associated with data through RDF Schema
RDF Schema facilities to define domain specific ontologies
Asuman Dogac eChallenges, Bologna, October 23, 2003
14
Why use an ontology?
1. A common vocabulary
2. Ability to define relationships among classes, properties and instances
3. Automated Processing
4. Reasoning!
Asuman Dogac eChallenges, Bologna, October 23, 2003
15
Ontology Languages and OWL
DAML:Darpa Agent Markup Language
OIL: Ontology Inference Layer (Commission Project)
DAML+OIL
OWL: Web OntologyLanguage (Being
Standardized by W3C)
RDF (ResourceDescriptionFramework)
Asuman Dogac eChallenges, Bologna, October 23, 2003
16
OWL = RDF Schema + more
All of the elements/attributes provided by RDF and RDF Schema can be used when creating an OWL document
Asuman Dogac eChallenges, Bologna, October 23, 2003
17/101
What do we gain from semantics?
Asuman Dogac eChallenges, Bologna, October 23, 2003
18
An Example: eGovernment
Finger prints from a robbery scene identified John Smith as the suspect
Here is the police report on the robbery:
<Robbery rdf:ID="report-2003-10-23-xyz"> <description>...</description> <suspect> <Thief rdf:about="http://www.ministryOfInterior.gov/criminals#John_Smith"/> </suspect>
</Robbery>
Asuman Dogac eChallenges, Bologna, October 23, 2003
19
An Example: eGovernment
• Later in the day a police gives a person a ticket for speeding
• The driver's license showed the name John Doe
• Here is the police report on the speeder:
<Speeding rdf:ID="report-2003-10-23-abc"> <description>...</description> <driver> <Speeder rdf:about="http://www.ministryOfInterior/criminals#John_Doe"/> </driver>
</Speeding>
Asuman Dogac eChallenges, Bologna, October 23, 2003
20
OWL Classes
Ministry of Interior has defined ontologies for their information in OWL
For example: Crimes
Robbery Speeding Terrorism
<owl:Class rdf:ID=“Crimes"> </owl:Class>
<owl:Class rdf:ID=“Robbery"> <rdfs:subClassOf rdf:resource="#Crimes"/></owl:Class>
<owl:Class rdf:ID=“Terrorism"> <rdfs:subClassOf rdf:resource="#Crimes"/></owl:Class>
…
Asuman Dogac eChallenges, Bologna, October 23, 2003
21
OWL Classes
Ministry of Interior has also defined the following classes
For example: Criminals
Thief Speeders Terrorists
<owl:Class rdf:ID=“Criminals"> </owl:Class>
<owl:Class rdf:ID=“Thief"> <rdfs:subClassOf rdf:resource="#Criminals"/></owl:Class>
<owl:Class rdf:ID=“Terrorists"> <rdfs:subClassOf rdf:resource="#Criminals"/></owl:Class>
…
Asuman Dogac eChallenges, Bologna, October 23, 2003
22
OWL Properties
<owl:DatatypeProperty rdf:ID=“description"> <rdfs:domain
rdf:resource="#Crime"/> <rdfs:range
rdf:resource=“http://www.w3.org/2001/XMLSchema#Literal"/>
</owl:DatatypeProperty >
<owl:ObjectProperty rdf:ID=“suspect"> <rdfs:domain
rdf:resource="#Robbery"/> <rdfs:range rdf:resource=“#Thief>
</owl:ObjectProperty >
<owl:ObjectProperty rdf:ID=“driver"> <rdfs:domain
rdf:resource="#Speeding"/> <rdfs:range
rdf:resource=“#Speeder"/></owl:ObjectProperty >
suspect
Robbery Thief
Speeding Speederdriver
Crimes Literal
description
Asuman Dogac eChallenges, Bologna, October 23, 2003
23
Any Relationship between the Thief and the Speeder?
Ministry of Interior keeps the OWL descriptions of their files:
<Criminals rdf:about=" http://www.ministryOfInterior/criminals#John_Doe ">
<owl:sameAs rdf:resource=" http://www.ministryOfInterior.gov/criminals#John_Smith "/></Criminals>
Asuman Dogac eChallenges, Bologna, October 23, 2003
24
How can this be achieved? owl:sameAs property helps!
OWL provides a property (owl:sameAs) for indicating that two resources (e.g., two people) are the same
Thief
Speeder
John Smith
John Doe
owl:sameAs
Inference: The Thief and the Speeder are one and the same!
Asuman Dogac eChallenges, Bologna, October 23, 2003
25/101
XML in Brief
Asuman Dogac eChallenges, Bologna, October 23, 2003
26
XML and Semantics
XML gives meaning to data but this is not the semantics we get through ontologies
Semantics is commonly agreed class hierarchies with properties
Asuman Dogac eChallenges, Bologna, October 23, 2003
27
<PONumber> 1234ABCD </PONumber>
Tagging Data in XML
Considering the content only, it is not possible to understand what 1234ABCD stands for
The tag name PONumber intuitively tells that the content is a purchase order number
Tagged elements may be nested to any depth to provide structured data, or may be repeated to represent a list of values
An Element
Asuman Dogac eChallenges, Bologna, October 23, 2003
28
Why XML?
EDI XML
BGM+220+1234ABCD+9' DTM+137:20030601:102'
LIN+1' PIA+5+9344:EN+1078341ITEM:VP' QTY+21:16:EA' PRI+AAA:95'
LIN+2' …
<PurchaseOrderRequest> <PONumber>1234ABCD </PONumber> <PurchaseOrderDate>20030601</PurchaseOrderDate> <FirstLineItem> <ItemEAN_Identification no=9344 /> <QuantityOrdered> 16 </QuantityOrdered> <UnitPrice> 95 <UnitPrice></FirstLineItem> <SecondLineItem>…
Asuman Dogac eChallenges, Bologna, October 23, 2003
29
Giving Meaning and Structure to Data<PurchaseOrderRequest>
<PONumber>1234ABCD </PONumber>
<PurchaseOrderDate>20030601</PurchaseOrderDate>
<LineItem>
<ItemEAN_Identification no=9344 />
<QuantityOrdered> 16 </QuantityOrdered>
<UnitPrice> 95 <UnitPrice>
</LineItem>
<LineItem> … </LineItem>
</PurchaseOrderRequest>
Start TagStart Tag
An Element
An Attribute
Another Element
End Tag
Data
Asuman Dogac eChallenges, Bologna, October 23, 2003
30
Giving Structure to Data
PurchaseOrderRequest
PurchaseOrderDatePONumber LineItem
ItemEAN_Identification QuantityOrdered UnitPrice
Asuman Dogac eChallenges, Bologna, October 23, 2003
31
Extensibility in XML Anyone can invent new tags and attach a
meaning to those tags For example: <HandHeldDevice> This device</HandHeldDevice>
<MobileDevice> This device</MobileDevice> But if every user creates its own XML definition for
describing his data, it is not possible to achieve interoperability
Asuman Dogac eChallenges, Bologna, October 23, 2003
32
MobileDevice
Agreement on tags is necessary In other words, a tagged document is not very useful
without some kind of agreement on the tags among inter-operating applications
HandHeld Device
Asuman Dogac eChallenges, Bologna, October 23, 2003
33
Standardizing XML Documents There are very many efforts in this respect:
Common Business Library (xCBL) RosettaNet Web Service standards ebXML HL7 for heath care … Almost any standard that you can think of is being
developed in XML
Asuman Dogac eChallenges, Bologna, October 23, 2003
34
Many Public Domain XML Software: For Example XML DOM ParserApplication Code
Initialize Parser
In memory DOM: PerformProcessing
XMLParser
XMLDocument
Begin parsing
Parsing complete
A parser validates and makes the data contained in an XML document availableto the application
Asuman Dogac eChallenges, Bologna, October 23, 2003
35
XSLT Processor
XMLDocument
XSL StyleSheet 2
Output from Style
Sheet 1
Output fromStyle
Sheet 2
XSL StyleSheet 1
Parser
XSLT Processor
• Converts an XML document to another form
• An XSL style sheet is a set of transformation instructions for converting a source XML document to a target document
Asuman Dogac eChallenges, Bologna, October 23, 2003
36
table.xsl
bar.xsl
art.xsl
Asuman Dogac eChallenges, Bologna, October 23, 2003
37
XML vs EDI
XML is an open human-readable, text format
EDI documents are typically in a compressed, machine-only readable form
XML is designed to require one customised mapping per industry grouping, so most companies will be able to work to one format and use XML
EDI traditionally requires customised mapping of each new trading partners document format
XML requires a reliable PC with an Internet connection
EDI typically requires dedicated servers that cost from USD10,000 and up
Asuman Dogac eChallenges, Bologna, October 23, 2003
38
XML vs EDI
XML documents are typically sent via the Internet - i.e. a relatively low-cost public network
EDI documents are typically sent via private and relatively expensive value-added networks (VANs)
XML in Internet-based has low ongoing flat-rate costs using existing Internet connections and relatively low-cost Web Servers
EDI can involve high on-going transaction based costs keeping up the connection to the EDI network and keeping the servers up and running
Asuman Dogac eChallenges, Bologna, October 23, 2003
39
XML vs EDI
XML appears to have no upper limit in terms of numbers of users
EDI is estimated to be limited to 300,000 companies worldwide and about 20% of their suppliers because of operational costs and complexity
XML is being developed in a world of shared software development populated by many low-cost tools and open source projects.
EDI was traditionally built from the ground up in semi-isolation without being able to share resources with other programs
Asuman Dogac eChallenges, Bologna, October 23, 2003
40
Why use XML?
It is a universally accepted standard way of structuring data (syntax)
It is a W3C recommendation (W3C = World Wide Web Consortium)
The marketplace supports it with a lot of free/inexpensive tools
Asuman Dogac eChallenges, Bologna, October 23, 2003
41/101
Web Interaction Evolution: How have we reached to Web services?
Asuman Dogac eChallenges, Bologna, October 23, 2003
42
Earliest Days of Web
Web has a client/server architecture, where a browser runs on the client such as Netscape or Explorer and a Web server like Apache server runs on the server machine
In the early days of the Web, there was no processing either on the client or on the server
A user accessed only static documents which are the pages that exist on the Web server and are simply delivered to the Web browser
However in 1995 W3C published HTML 2.0 which included “forms” that made it possible to use Web interactively
A Web Browserlike Netscape orExplorer
HTML overHTTP
A Web Serverlike Apache Server
Static Document Exchange: No processingon the serveror on the browser!
WEB
Asuman Dogac eChallenges, Bologna, October 23, 2003
43
Interaction through Web Forms
A Web form, is an HTML page with one or more data entry fields and a mandatory “Submit” button
When the “submit” button is clicked, the form's data contents are send to a Web server The server invokes the program or resource named in the URL and passes the method
request and its parameters to the back-end program using a protocol called the Common Gateway Interface
The back-end program executes the request and returns the results in HTML format to the Web server using the CGI protocol
The Web server returns the result to the client Pages (called dynamic pages)
A Web Form(HTML)
Submit
Back End
Processing
CommonGatewayInterface
WEB
Asuman Dogac eChallenges, Bologna, October 23, 2003
44
More Advanced Forms of Interaction Web Browser-side Processing:
The processing on the client side basically involves validating user input, and interactivity with the server
Some of the well-known browser-side processing technologies are as follows: Scripts: A script is a program that may accompany an HTML document The program executes on the client's machine when the document is
downloaded, or at a later time when a link is activated It increases the interactivity provided by HTML The most popular scripting languages are Java Script and VBScript
Applets: Applets are programs that require a Web browser to run The <Applet> tag is embedded in a Web page and identifies the applet to be
run When the page is accessed by a user, the applet is automatically
downloaded from the server and runs on the client machine
Asuman Dogac eChallenges, Bologna, October 23, 2003
45
More Advanced Forms of Interaction Web Server-side Processing:
Web server-side processing is used in generating customized responses for the user by accessing databases
There are several technologies for server-side processing: The Java Servlet API allows Web developers to extend the functionality of a
Web server by writing small Java programs called Servlet that interact with the Web server through a well-defined API
Server-side applications can also be written using JavaBeans JavaBeans are portable, platform independent and hence reusable software
components written in Java that perform well-defined tasks Java Server Pages are another platform-independent alternative for
generating dynamic content on the server side PHP is an open source server-side scripting language which is written
specifically for interacting with the Web ASP is a server-side processing technology from Microsoft
Asuman Dogac eChallenges, Bologna, October 23, 2003
46
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
47
Summary: Evolution of Web Interaction
Human to Machine interaction Machine to Machine or Human to Machine Interaction
User at browser interacts with application at Web Server
Client application interacts with Web Service application
Web App sends HTML to browser for human display
Client and Service exchange XML
Protocol is HTTP Protocol may be HTTP or other
Asuman Dogac eChallenges, Bologna, October 23, 2003
48/101
Web services, SOAP, WSDL and UDDI
Asuman Dogac eChallenges, Bologna, October 23, 2003
49
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
50
Web Services
A Business function made available via Internet by a service provider, and accessible by clients that could be human users or software
applications A software application:
Identified by a URI Its interfaces and binding are capable of being defined,
described and discovered by XML artifacts and Supports direct interactions with other software
applications Using XML based messages via Internet-based protocols
Asuman Dogac eChallenges, Bologna, October 23, 2003
51
W3C Description of a Web Service A Web service is a software system designed
to support interoperable machine-to-machine interaction over a network
It has an interface described in a machine-processable format (specifically WSDL)
Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards
Asuman Dogac eChallenges, Bologna, October 23, 2003
52
Some Use Examples
An insurance policy service to insure the products being shipped
A financing service to ensure payment according to vendor terms
A health-care service to access health-care records
Asuman Dogac eChallenges, Bologna, October 23, 2003
53
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
54
Web Services
The Web Services Reference Model Service Provider Service Registry Service Consumer
Major Standards WSDL (Web Services Description Language) SOAP (Simple Object Access Protocol) UDDI (Universal Description, Discovery and
Integration) registries ebXML (Electronic Business XML)
Asuman Dogac eChallenges, Bologna, October 23, 2003
55
Why Web Services? For B2B interactions,
applications need to talk to each other on the Web: Interoperability is needed
A change in an application should not effect the apps it is talking to
Web services provide these through WSDL and SOAP
WSDL is the established public contract with the outside world
Web Service
Client Application
XML
WEBExistingApplication Existing
Application
Web Service
Client Application
XML
WEBExistingApplication Existing
Application
WSDL and SOAP:Public contract withthe outside world
Asuman Dogac eChallenges, Bologna, October 23, 2003
56
WSDL Provides only the Technical Description of the Service!
Web ServiceService Consumer
Web Service Description Language
defines
uses
Asuman Dogac eChallenges, Bologna, October 23, 2003
57
WSDL does not describe Web service semantics: Ontologies do!
Web ServiceService Consumer
Web Service Description
defines
Semantic description of the properties of a service
uses
Asuman Dogac eChallenges, Bologna, October 23, 2003
58
WSDL Structure
Service
Port(e.g. http://host/svc)
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
59
Web Services Description Language
Asuman Dogac eChallenges, Bologna, October 23, 2003
60
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
61
SOAP
SOAP consists of three parts: an envelope that defines what is in a message, a set of encoding rules for expressing instances of
application-defined data types, and a convention for representing remote procedure calls
(RPC) and responses SOAP can be used in combination with by a
variety of network protocols such as HTTP, SMTP, FTP, MQ or RMI over IIOP
Asuman Dogac eChallenges, Bologna, October 23, 2003
62
SOAP over HTTP
HTTP POST Message
SOAP Endpoint Reference
XML MessageSOAP Payload
SOAP Header
SOAP Body
SOAP Envelope
Asuman Dogac eChallenges, Bologna, October 23, 2003
63
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"
Asuman Dogac eChallenges, Bologna, October 23, 2003
64
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
65
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
66
WS-Security
Microsoft and IBM partnership
Enhancement of SOAP messages to provide Message integrity Message confidentiality Message authentication
http://www-106.ibm.com/developerworks/library/ws-secure/
Asuman Dogac eChallenges, Bologna, October 23, 2003
67/101
Semantic Support of Web Services in UDDI Registries
Asuman Dogac eChallenges, Bologna, October 23, 2003
68
Web Service Model
UDDI Web Service Registry - Web service descriptions
Service Consumer
Service Provider- Web service- Service Description in WSDL
Publish service
Discover service
Invoke service through SOAP
Asuman Dogac eChallenges, Bologna, October 23, 2003
69
Asuman Dogac eChallenges, Bologna, October 23, 2003
70
Asuman Dogac eChallenges, Bologna, October 23, 2003
71
Registry APIs (SOAP Messages)
Inquiry API Find
find_business find_service find_binding find_tModel
Get Details get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail
Publishers API Save
save_business save_service save_binding save_tModel
Delete delete_business delete_service delete_binding delete_tModel
Asuman Dogac eChallenges, Bologna, October 23, 2003
72
businessEntitybusinessKeynameURLdescriptioncontactsbusinessServicesidentifierBagcategoryBag
PhoneAddressEmail
Contact
businessServiceKeyNameDescriptionBindingTemplates
PhoneAddressEmail
Contact
businessServiceserviceKeytModelKeyNameDescriptionBindingTemplates
keyedReferencetModelKeykeyNamekeyValue
keyedReferencetModelKeykeyNamekeyValue
keyedReferencetModelKeykeyNamekeyValue
keyedReferencetModelKeykeyNamekeyValue
Business Registration
XML document Created by end-user
company (or on their behalf)
Can have multiple service listings
Can have multiple taxonomy listings
Asuman Dogac eChallenges, Bologna, October 23, 2003
73
Business categories in UDDI
3 standard taxonomies in V1 Industry: NAICS - North American Industrial
Classification Scheme (Industry codes - US Govt.) Product/Services: UN/SPSC - Universal Standard
Products and Services Classification (ECMA) Location: ISO 3166 Geographical taxonomy
Asuman Dogac eChallenges, Bologna, October 23, 2003
74
ISO 3166 Codes (Countries)(http://www.iso.ch/iso/en/prods-services/iso3166ma/)
Country A2 A3 Number
ITALY IT ITA 380
TURKEY TR TUR 792
… … … …
Asuman Dogac eChallenges, Bologna, October 23, 2003
75
North American Industry Classification System (NAICS)
Asuman Dogac eChallenges, Bologna, October 23, 2003
76
United Nations Standard Products &Services Code® (UNSPSC)
Asuman Dogac eChallenges, Bologna, October 23, 2003
77
Remember the Motivating Example
Needs to find all services which
sell …
Desktop With 256 MByte Speed 2 GHertz In Italy Payment method
should be creditcard
Delivery shouldbe within a week
The process should befully automated: no humaninteraction
A CompanyIn Turkey
Asuman Dogac eChallenges, Bologna, October 23, 2003
78
If there is such a service, how can we find it through UDDI Registries?
UDDI Registry
MyService(Speed,Memory,Battery_Life, DeliveryTime,Payment_Method, Location)
find_service (2GHertz, 256 MByte, 2 years, 1 Week, Credit_Card, Italy)
How to find theService in UDDI Registry?
Asuman Dogac eChallenges, Bologna, October 23, 2003
79
UNSPSC Codes for Computers (http://eccma.org/unspsc/browse/43.html)-[43.17.18.00] Computers –commodity
-[43.17.18.01] Notebook computers –commodity-[43.17.18.02] Docking stations –commodity-[43.17.18.03] Workstations or desktop computers –commodity-[43.17.18.04] Personal digital assistants (PDAs) or pen based computers –commodity-[43.17.18.05] Mainframe computers –commodity-[43.17.18.06] Servers –commodity-[43.17.18.07] Port replicators –commodity-[43.17.18.08] Minicomputers –commodity-[43.17.18.09] Point of sale (POS) terminals –commodity-[43.17.18.22] Supercomputers
Asuman Dogac eChallenges, Bologna, October 23, 2003
80
Taxonomy vs. OntologyAn Example Taxonomy: UNSPSC
43.17.18.00
Computers –commodity
43.17.18.03
Workstations or desktop computers –commodity
Asuman Dogac eChallenges, Bologna, October 23, 2003
81
If there is such a service, how can we find it through UDDI Registries? If a service puts the tModel key corresponding to
[43.17.18.03] Workstations or desktop computers –commodity in its category bag
THEN We know that this service is related with
computers BUT: How about the properties of the product?
Memory, Speed?
Asuman Dogac eChallenges, Bologna, October 23, 2003
82
Current Semantic Support for Web Services in UDDI Registries To find services which sell desktops in Italy
put: tModel key corresponding to ISO 3166 and Italy
in the category bags of such services How about the other properties of service we
are looking for? Payment method? Delivery time? Product
properties?
Asuman Dogac eChallenges, Bologna, October 23, 2003
83
Summary and Conclusions on the semantic support by UDDI registries UDDI provides very limited semantic support
for Web services!
Asuman Dogac eChallenges, Bologna, October 23, 2003
84/101
ebXML: A Brief Overview
Asuman Dogac eChallenges, Bologna, October 23, 2003
85
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
86
ebXML Architecture’s functional components
Business Process Specification Schema (BPSS)
Trading Partner Information Collaboration Protocol Profile CPP
Trading Partner Agreement Collaboration Protocol Agreement CPA
Registry/Repository Messaging Service Core Components
Asuman Dogac eChallenges, Bologna, October 23, 2003
87
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
88
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
89
ebXML Summary and Implementation Status Currently ebXML compliant registries are
available, for example, OASIS ebXML Registry Reference Implementation Project (ebxmlrr), http://ebxmlrr.sourceforge.net/
Asuman Dogac eChallenges, Bologna, October 23, 2003
90/101
How to Exploit Web Services Semantics through ebXML?
Asuman Dogac eChallenges, Bologna, October 23, 2003
91
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
Asuman Dogac eChallenges, Bologna, October 23, 2003
92
ebXML Registry Information Model (RIM)
RegistryObject
ClassificationNode Classification
RegistryPackage ExtrinsicObject Service
AssociationRegistryEntry
ClassificationScheme
Asuman Dogac eChallenges, Bologna, October 23, 2003
93
Classifying a Service in ebXML Registries
Computer(Speed, Memory)
Desktop(case type)
Lap Top(Battery life)
Country codesISO 3166
Italy:IT
Turkey:TR
…
WebService(Payment_Method)
BuyServiceSellService
(DeliveryTime)
MyService(Speed,Memory,Battery_Life, DeliveryTime,Payment_Method, Location)
The service is from Italy selling Lap Tops with parameters to specify payment methods and delivery time and productproperties
Asuman Dogac eChallenges, Bologna, October 23, 2003
94
Why 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
WebService(Payment_Method)
BuyServiceSellService
(DeliveryTime)
MyService(Speed,Memory,Battery_Life, DeliveryTime,Payment_Method, Location)
Asuman Dogac eChallenges, Bologna, October 23, 2003
95
An Example
WebService(Payment_Method)
BuyServiceSellService
(DeliveryTime)
MyService(Speed,Memory,Battery_Life, DeliveryTime,Payment_Method, Location)
“MyService”is a “SellService”because itis classified under it
“MyService” inherits the property “DeliveryTime” because it is a subClass of “SellService”
Asuman Dogac eChallenges, Bologna, October 23, 2003
96
How to Define a Classification Hierarchy in ebXML?
<rim:ClassificationScheme id = ‘WebService‘ isInternal='true' nodeType='UniqueCode' >
<rim:Name> <rim:LocalizedString value = ‘WebService'/>
</rim:Name> <rim:Description><rim:LocalizedString value = 'This is a
sample WebServicescheme'/> </rim:Description>
<Slot name = ‘paymentMethod' slotType= 'StringList’/>
</rim:ClassificationScheme>
WebService(Payment_Method)
BuyServiceSellService
(DeliveryTime)
<rim:ClassificationNode id = ‘SellService‘ parent= ‘WebService'> <rim:Name> <rim:LocalizedString value = ‘SellService' /> </rim:Name> <rim:Description> <rim:LocalizedString value = ''/> </rim:Description>
<Slot name = ‘deliveryTime' slotType= 'StringList’/></rim:ClassificationNode> …
Asuman Dogac eChallenges, Bologna, October 23, 2003
97
Relating a Web service Advertised with Service Ontology in ebXML
MyService:Registry Entry
SellService:ClassificationNode
ServiceToIndustryClassification:Classification
classifiedObject classificationNode
Such a classification indicates that MyService is a “SellService”!
Asuman Dogac eChallenges, Bologna, October 23, 2003
98
Classifying a Service With Multiple Hierarchies in an ebXML Registry
MyService
ServiceToIndustryClassification:Classification
ServiceToIndustryClassification:Classification
ServiceToIndustryClassification:Classification
SellService:ClassificationNode
Italy:ClassificationNode
Laptop:ClassificationNode
classifiedObject
classifiedObject classifiedObjectclassification Node classification Node
classification Node
Asuman Dogac eChallenges, Bologna, October 23, 2003
99
“SubmitObjectRequest” which declares the semantic of “MyService” and relates it with the “Sell” Service<?xml version = '1.0' encoding = 'UTF-8'?><SubmitObjectsRequest >
<rim:LeafRegistryObjectList><Service id="MyService"><Name> <LocalizedString lang="en_US" value =
“MyService"/> </Name><Classification classificationNode=“SellService“
ClassifiedObject= "MyService" /> <Slot name = ‘deliveryTime'>
<ValueList> <Value>1 Week </Value> </ValueList> </Slot>
Asuman Dogac eChallenges, Bologna, October 23, 2003
100
An Example “SubmitObjectRequest” (Cont’d)
<ServiceBinding accessURI="http://www.sun.com/ebxmlrr/registry/nameSpaceI
ndexer"><SpecificationLink specificationObject="wsdl">
</SpecificationLink> </ServiceBinding> </Service>
<ExtrinsicObject id="wsdl" mimeType="text/xml"> </ExtrinsicObject></rim:LeafRegistryObjectList>
</SubmitObjectsRequest>
Asuman Dogac eChallenges, Bologna, October 23, 2003
101/101
How do we locate Web services according to their semantics in an ebXML compliant registry?
Asuman Dogac eChallenges, Bologna, October 23, 2003
102
A Filter Query Retrieving all the services classified by SellService Node with Delivery Time 1 Week<AdhocQueryRequest > <ResponseOption returnType = "LeafClass" returnComposedObjects = "true" /> <FilterQuery> <ServiceQuery> <ClassifiedByBranch> <ClassificationNodeQuery> <NameBranch> <LocalizedStringFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Equal">SellService </StringClause> </SimpleClause> </Clause> </LocalizedStringFilter> </NameBranch> </ClassificationNodeQuery> </ClassifiedByBranch>
<SlotBranch> <SlotFilter> <Clause> <SimpleClause leftArgument = "name_"> <StringClause stringPredicate = "Equal"> deliveryTime </StringClause> </SimpleClause> </Clause> </SlotFilter> <SlotValueFilter> <Clause> <SimpleClause leftArgument = "value"> <StringClause stringPredicate = "Contains"> 1 Week </StringClause> </SimpleClause> </Clause> </SlotValueFilter> </SlotBranch>
… </ServiceQuery> </FilterQuery> </AdhocQueryRequest>
Asuman Dogac eChallenges, Bologna, October 23, 2003
103
Summary and Conclusions on the Semantic support provided by ebXML Semantic information can play two major roles in the
Web services area: One is to provide a source of shared and precisely
defined terms which can be used to dynamically discover, compose and monitor services
The other is to reason about the semantic information ebXML class hierarchies can achieve the first role However, for the second role, we need the power of
ontology languages and reasoners
Asuman Dogac eChallenges, Bologna, October 23, 2003
104/101
OWL-S
Asuman Dogac eChallenges, Bologna, October 23, 2003
105
OWL-S: Defines an Upper Ontology for Web Services in OWL
describedBy:How it works
Service
ServiceGroundingServiceModel
Resource ServiceProfile
Supports:
How to access it
presents: What it does
provides
Asuman Dogac eChallenges, Bologna, October 23, 2003
106
The next steps…
The future work involves defining the semantics of Web services through Ontology Languages like OWL-S
And exploiting such service ontologies through service registries
There are already some work in this direction…
Asuman Dogac eChallenges, Bologna, October 23, 2003
107
Thank you for your attention!