(semantic) web services
DESCRIPTION
(Semantic) Web Services. M.-S. Hacid University Claude Bernard, Lyon – France http://www710.univ-lyon1.fr/~dbkrr. Outline. Evolution of MIS/DSS Enterprise Applications Integration (EAI) Web Services Semantic Web Semantic Web Services Conclusion. History. - PowerPoint PPT PresentationTRANSCRIPT
1
(Semantic) Web Services(Semantic) Web Services
M.-S. HacidM.-S. HacidUniversity Claude Bernard, Lyon – FranceUniversity Claude Bernard, Lyon – France
http://www710.univ-lyon1.fr/~dbkrrhttp://www710.univ-lyon1.fr/~dbkrr
2
Outline
Evolution of MIS/DSSEnterprise Applications Integration (EAI)Web ServicesSemantic WebSemantic Web ServicesConclusion
3
The information processing profession is historically immature because it has existed only since the early 1960s.
Classical Operational Information Systems:- How much an account balance is, right now?- How much is an inventory, right now?- What the status of a shipment is, right now?
But there is a real value in looking at and integrating information over the spectrum of time as well
History
4
DSS is at the end of a long and complex evolution but continues to evolve.
1960
- master files- programs (Cobol)- reports
History (Cond.)
5
History (Cond.)
1965
- complexity ofmaintenancedevelopment
- synchronization of data- hardware
Lots of master files!!!
6
History (Cond.)
DASDDBMS
database – ’’ a single source of data for all processing’’
1970
Online, High-performanceTransaction Processing1975
7
History (Cond.)
tx processing
1980
MIS/DSS
PCs, 4GL technology
8
History (Cond.)
OLTP
1985
extract programextract program
Why extract program?- Performance- Control
9
History (Cond.)
1990’’spider web’’
10
History (Cond.)
- credibility of data - productivity - inability to transform data into information
Problems with Naturally Evolving Architecture:Problems with Naturally Evolving Architecture:
11
History (Cond.)
Lack of Credibility of Data:Lack of Credibility of Data:
Dept. A +10%activity up
Dept. B -15%activity down
12
History (Cond.)
No time basis of dataNo time basis of data
Dept. A: +10%
Dept. B: -15%
Sunday evening
Wednesday pm
13
History (Cond.)
Algorithmic differential
Dept. A has chosen to analyze all old accountsDept. B has chosen to analyze all large accounts
Is there any necessary correlation between the characteristics of customers who have old accounts and customers who have large accounts?
Probably NOT!
14
History (Cond.)
Levels of extraction
Many levels of extraction being done from the timedata enters the corporation’s system to the time analysis is prepared for management
15
History (Cond.)
Dept. A: +10%
Dept. B: -15%
Sunday evening old accts
Wednesday pmlarge accts
16
History (Cond.)
External data
With today’s technologies at the PC level, it is easy tobring in data from outside sources
17
History (Cond.)
Dept. A: +10%
Dept. B: -15%
Sunday evening old accts
Wednesday pmlarge accts
Business Week
Wall Street journal
18
History (Cond.)
No common source of data
Analysis of department A originates from files XYAnalysis of department B originates from databases XUVW
No synchronization or sharing of data between XY and XUVW!
19
History (Cond.)
Dept. A: +10%
Dept. B: -15%
Sunday evening old accts
Wednesday pmlarge accts
Wall Street journal
Business Week
20
History (Cond.)
Problem with productivityProblem with productivity
To produce a corporate report
locate and analyze the data for the report
Locate data : 9-12 monthsLocate data : 9-12 months
Get data : 15-24 monthsGet data : 15-24 months
lots of files to explore
21
Web ServicesWeb Services
A Change in the ApproachA Change in the Approach
Data Warehouse Enterprise Applications Integration
Semantic Web ServicesSemantic Web Services
22
Enterprise Applications Integration (EAI)Enterprise Applications Integration (EAI)
What is EAI?
Enterprise Applications Integration is a solution that supports real-time seamless access to information resident in a variety of repositories.
Business processing logic is extracted from application code and placed into an EAI tool where it is graphically represented and manipulated.
23
SAPSAP
Computer Telephony
Computer TelephonyCOPSCOPS
Customer CallCustomer CallBWBW
E-CommerceE-Commerce
FinancialsFinancials
JDAJDA
DRPDRP
Tax SystemTax System
EmailEmailCBCFCBCF
1
16
13
14
3 11
10
12
9
5 84
7
2
BFDIBFDI
15
16
17
14
SAPSAP
Computer Telephony
Computer TelephonyCOPSCOPS
Customer CallCustomer Call
BWBW
E-CommerceE-Commerce
FinancialsFinancials
JDAJDA
DRPDRP
Tax SystemTax System
EmailEmailCBCFCBCF
1
16
13
14
3 11
10
12
9
5 84
7
2
BFDIBFDI
15
16
17
14
SAPSAP
Computer Telephony
Computer TelephonyCOPSCOPS
Customer CallCustomer CallBWBW
E-CommerceE-Commerce
FinancialsFinancials
JDAJDA
DRPDRP
Tax SystemTax System
EmailEmailCBCFCBCF
1
16
13
14
3 11
10
12
9
5 84
7
2
BFDIBFDI
15
16
17
14
SAPSAP
Computer Telephony
Computer TelephonyCOPSCOPS
Customer CallCustomer CallBWBW
E-CommerceE-Commerce
JDAJDA
1
16
13
14
105 8
4
7
BFDIBFDI
1514
SAPSAP
Computer Telephony
Computer TelephonyCOPSCOPS
Customer CallCustomer CallBWBW
E-CommerceE-Commerce
FinancialsFinancials
JDAJDA
DRPDRP
Tax SystemTax System
EmailEmailCBCFCBCF
1
16
13
14
3 11
10
12
9
5 84
7
2
BFDIBFDI
15
16
17
14
SAPSAPE-CommerceE-Commerce
FinancialsFinancials
DRPDRP
Tax SystemTax System
EmailEmailCBCFCBCF
14
3 11
12
9
2
BFDIBFDI
15
16
17
??
Today’s Business Reality
24
Why EAI?
The needs for AI stem primarily from the following business and technical objectives:
1. Integrate with outside partner/customer (as part of a merger) or a «net new» entity, which varies widely from a new set of e-commerce applications to supply chain integration.
2. Migrate towards a customer centric operating model to gain additional Insights in customer behaviors and identify new revenue streams and cross-selling opportunities.
3. Isolate components of huge monolithic systems so they can be replaced or retired because the legacy systems become un-maintainable.
4. Layer an end-user application (especially portals, CRM, and Web-based self-service) that must access data across multiple systems and/or databases.
5. Lower total cost of ownership by reducing system management complexity and maintenance costs.
25
EAI provides a structured and efficient way to integrate not only the applications but also the business process. EAI solutions offer the following unique benefits:
1. Reduced development and maintenance cost (separation of business logic from transaction processing capability…).
2. Enhanced performance and reliability (asynchronous messaging mechanisms…).
3. Centralized information bus (unification of isolated applications…).4. Extension of legacy system lifecycle.5. Reduced time to market (customize existing business rules and extend
application functionality).
26
Enterprise Integration Solution
Reseller
Distributor
Customer
Service BSP
BusinessProcess Management
(BPM)
PackagedApps
CustomApps
LegacyApps
AppServers
EAI B2Bi B2Bi Exchange
Mfg. BSP
Supplier
Logistics BSP
Mediate the interactions between the applications to integrate
27
Message Transport
Business Process Integration
Message Routing & Transformation
RulesEngine
InformationSystems
OperationalSystems
Partners
CustomerService
DistributionChannels
RulesMetadata
Data
Data
Data
DataData
Data
Customer Service RelationshipCustomer Service Relationship
-CRM-Call Center-eMail-Instant Messaging
-Payroll-HR-Benefits-Etc. -Order Management
-Warehouse Management-Backend Support-Billing.
Product/Customer AnalysisProduct/Customer Analysis
-Data Warehouse-Data Analysis-Targeted Marketing
Customers,Customers,Distributors,Distributors,ResselersResselers
-Web Site-Profiling-Personalization-Customization
-Community-Content-Commerce
28
Web ServicesWeb ServicesWe look at Web services as a way to expose the functionality of an information system and make it available through standard web technologies. The use ofstandard technologies reduces heterogeneity, and is therefore key to facilitateapplication integration.
Web services represent the first concerted effort that has gathered wide support for standardizing interactions across information systems.
Difficulties of integrating applications across the Internet:1. Firewalls2. Lack of standardized protocols3. Need for loosely-coupled interactions4. Etc.
29
Web Services and their Approach to Web Services and their Approach to Distributed ComputingDistributed Computing
(main ingredients of Web services)(main ingredients of Web services)
Defining Web servicesDefining Web services
Generic definition
A Web service is seen as an application accessible to other applicationsover the Web [Fisher 2002, Menasce and Almeida 2001].
Anything that has a URL is a Web service (ex. cgi script)
A program accessible over the Web with a stable API, published with additional descriptive information on some service directory.
M. Fisher. Introduction to Web Services. Part of the Java Web Services Tutorial. Aug. 2002. http://java.sun.com/webservices/docs/1.0/tutorial/.
D. Menasce and V. Almeida. Capacity Planning for Web Services. Prentice Hall, 2001.
30
Definition by UDDI Consortium
A Web service is considered as a self-contained, modular business applicationthat has open, Internet-oriented, standards-based interface.
Published interface thatcan be invoked across theInternet
?
31
Definition by W3C
«A software application identified by a URI, whose interfaces and bindingsare capable of being defined, described, and descovered as XML artifacts.A Web service supports direct interactions with other software agents usingXML-based messages exchanged Internet-based protocols» [W3C 2002]
Should be advertised so that it is possible to write clients thatbind and interact with them.
Part of Web technology.Data format used for manyWeb-based interactions.
W3C. Web Services Architecture Requirements. October 2002. http://www.w3.org/TR/wsa-reqs/.
32
Another Definition [Jupitermedia Corporation]
A standardized way of integrating Web-based applications using the XML, SOAP, WSDL, and UDDI open standards over an Internet protocol backbone
•XML is used to tag the data•SOAP is used to transfer the data•WSDL is used for describing the services available•UDDI is used for listing what services are available
Jupitermedia Corporation. Webopedia: Online Dictionary for Computer and Internet Terms. http://www.webopedia.com/.
33
Example: B2B integration
CustomerCustomer SupplierSupplier
WarehouseWarehouse
Internalinfrastructure
Internal procurementrequests
Webserver
Internalinfrastructure
Webserver
Internalinfrastructure
B2B interactions occur byaccessing Web pages, filling Web forms, or via email.
Automation is driven by the goals:
•Lower costs•Streamlined and more efficient process•Ability to monitor and track process executions•Ability to detect and manage exceptions
34
Limitations of Conventional Middleware in B2B Integration
Customer’sadapters
Warehouse’sadapters
Supplier’sadapters
Internalinfrastructure
Internalinfrastructure
Internalinfrastructure
customer
supplier
warehouse
third party
WfMS
WfMS adapter
message broker
Internal procurementrequests
A ’’global’’ workflow isexecuted here (drives the whole business process)
The combination of messagebroker and adapters enables interoperability
Where to put the middleware?
•Trust•Confidentiality•Autonomy
35
The Web brought
•Standard interaction protocols (HTTP)•Data formats (XML)
Adopted by many companies
Creation of a basis for establishing a commonCreation of a basis for establishing a commonmiddleware infrastructure that reduces the middleware infrastructure that reduces the heterogeneity among interfaces and systems.heterogeneity among interfaces and systems.
36
B2B integration with Web Services
Three main aspects
•Service-oriented architectures.•Redesign of middleware protocols.•Standardization.
37
Service-oriented paradigm
Assumption
The functionality made available by a company will be exposed as a service
A service is a procedure, method, or object with a stable, published interfacethat can be invoked by clients
Requesting and executing a service involves a program calling another program
Services are loosely-coupled
38
Middleware protocols
Web services redesign of the middleware protocols to work in a peer-to-peerfashion and across companies.
In conventional middleware: lack of trust and confidentiality issues often makea case against a central coordinator.
needs to be redesigned to allow more flexibility in terms oflocking resources.
39
Standardization
In conventional application integration: CORBA and Java enabled the development of portable applications.
Service-oriented architectureRedefinition of middleware protocols Not sufficient standardization
OASIS (Organization for the Advancement of Structured Standards)W3C
B2B integration is what generated the need for web services
40
CustomerCustomer SupplierSupplier
WarehouseWarehouse
Internalinfrastructure
Internal procurementrequests
Webservice
Internalinfrastructure
Webservice
Internalinfrastructure
It is possible to make web services available to clients residing on a local LAN
Webservice
Internal functionalitymade available as a service
Interactions based onprotocols redesigned for peer to peer and B2B settings
Languages and protocols standardized, eliminating need for manydifferent middleware infrastructures (need only the web services middleware)
However, the challenge and ultimategoal of web services is inter-company interactions(a long-term goal!)No centralized coordination!
41
Web Services TechnologiesWeb Services Technologies
The first required issues:• What exactly a service is?• How it can be described?
Service description in conventional middleware is based on interfaces and interface definition languages (IDL).
Implicit context:• Clients and services are developed by the same team.• Semantics of operations + order of invocation known in advance.• The middleware platform defines and constrains many aspects of the service description and binding process.
In web services and B2B interaction no such implicit context!service descriptions must be richer and more detailed.
42
Properties and semantics
Business protocols
Interfaces
Common base language
Service description and discovery stack
Non-functional propertiese.g., return policy, QoS,..(UDDI)
Order in which toexecute operations by a client(WSCL, BPEL)A language for specifying
URI and transport protocol (HTTP)(WSDL)
Meta language for specifyingall aspects of services(XML)
UDDI:Universal Description, Discovery and Integration
WSDL: Web Services Description Language
WSCL: Web Services Conversation LanguageBPEL: Business Process Execution Language
43
Service discovery
• At design-time (static binding)• At run-time (using dynamic binding techniques)
44
Service interactions (a set of abstractions and tools that enable interactions among services)
Middleware properties (horizontal protocols)
Protocol infrastructure(meta-protocol)
Basic and secure messaging
Transport
WS-transaction
WS-coordination
WS-securitySOAP
45
Combining Web Services : Composition
Reseller of personal computers
Customer
Web service
RequestQuote PC manufacturers(latest prices)
Shippers(delivery schedules)
46
Web Services ArchitecturesWeb services are a way to expose internal operations so that they can be invoked through the web.
Company A (provider)
Web service
Web service interface
Access to internal systems
middleware
internal service
internal service
Internalarchitecture
Externalarchitecture
client
Company D (client)
Web service
Web service
Company B (provider)
Web service
Web service
Web service
Company C (provider)
Centralized brokers•Route messages•Provide properties to the interactions
•Logging•Transactional guarantees•Name and directory services•reliability
Service composition infrastructureSupports the definition and execution of composite services
Protocol infrastructure•Coordinates the interaction among web services•Implements the peer to peer protocols
47
Internal Architecture of a Web Service
resourcemanager
resourcemanager
resourcemanager
resourcemanager
middlewaremiddleware
middleware
service interface service interface
service interface
integration logicintegration logic
integration logic
other tiers
The basic components of each middleware instance reside on a LAN and the resulting application also runs on the same LAN.
48
External Architecture of a Web Service
Wrapping internal functionality as a Web Service brokers and workflow management systems in the case of conventional middleware
External middleware for web services where this middleware should reside?
Two solutions:
1. Implement the middleware as a peer-to-peer system (appealing but problem of reliability and trustworthiness)2. Introduce intermediaries or brokers acting as the necessary middleware.
49
other tiers other tiers
Web serviceWeb service client
Web service middleware(internal)
Web service middleware(internal)
Service descriptions
Company B (service provider)
Company C (directory service provider)
Company A (service requester)
3. interact
1. Publish the service description2. find
The abstraction and infrastructureprovided by the registry are part of the external middleware
50
Basic Web Services Technology
Web services architectures are mainly based on three components:
1. The service requester2. The service provider3. The service registry
Thereby closely following a client/server model with an explicit name and directory service
Basic infrastructure necessary to implement web services:
• A way to communicate (SOAP)• A way to describe services (WSDL)• A name and directory server (UDDI)
Core of web services
51
A minimalist infrastructure for web services
1. Common syntax for all specifications (XML)
2. A mechanism to allow remote sites to interact with each other
a. A common data format for the messages being exchangedb. A convention for supporting specific forms of interaction (messaging or RPC)c. A set of bindings for mapping messages into a transport protocol (TCP/IP, HTTP, SMTP)
Messages as basic unit of communication
52
Service requestorService requestor Service providerService provider
Application object(client)
Application object(service provider)
SOAP-basedmiddleware
SOAP-basedmiddleware
Converts procedure calls to/from XMLmessages sent through HTTP or other protocols
SO
AP
me
ss
ag
es
ex
ch
an
ge
d o
n t
op
of
HT
TP
, S
MT
P o
r o
the
r tr
an
sp
ort
53
Service requestor Service provider
Application/proxy object (client)
Application/proxy object (provider)
SOAP-basedmiddleware
SOAP-basedmiddleware
stub skeleton
WSDL of Service provider
WSDL compiler(client side)
WSDL compiler(server side)
<operation name=’’orderGoods’’> <input message=‘’’OrderMsg’’/></operation>
SOAP messages
54
Service requestor Service provider
Application object(client)
Application object(service provider)
SOAP-basedmiddleware
SOAP-basedmiddleware
stub skeleton
SOAP-based middleware
Service descriptions
UDDI registry
SOAP messages(to publish service description)
SOAP messages(to look for services)
SOAP messages
•How to publish services?•What information needs to be provided to register a service?•How to query the registry?
55
SOAP : Simple Object Access Protocol
A joint effort from Canon, IBM, Microsoft and SUN
First version (1999) based on HTTPCurrent version (2003) XML encoding
SOAP defines how to organize information using XML in a structured and typed manner so that it can be exchanged between peers.
- A message format describing how information can be packaged into an XML document.- A set of conventions for using SOAP messages to implement the RPC interaction pattern, defining how clients can invoke a remote procedure by sending a SOAP message and how services can reply by sending another SOAP message back the caller.- A set of rules that any entity that processes a SOAP message must follow.- A description of how a SOAP message should be transported on top of HTTP and SMTP.
56
Schematic Representation of a SOAP message
Header block
Body block
SOAP body
SOAP header
SOAP envelopeOptionalcan be processed by intermediate nodes
MandatoryIntended to the receiver
57
PurchaseOrderdocument- product item- quantity
Acknowledgment document- order ID
SOAP body SOAP body
SOAP envelope SOAP envelope
Document-style interaction
Method nameorderGoods Methode return
SOAP body SOAP body
SOAP envelope SOAP envelope
RPC-style interaction
Input parameter 1product item
Input parameter 2quantity
return valueorder ID
Agreement on the structure of the document
Agreement on the RPC methodsignature
58
The structure of a SOAP message is also influenced by encoding rules, which define how a particular entity or data structure is represented in XML.
<ProductItem> <name>…</name> <type>…</type> <make>…</make></ProductItem>
<ProductItem name=’’…’’ type=’’…’’ make=’’…’’/>
<ProductItem name=’’…’’ <type>…</type> <make>…</make></ProductItem>
<?xml version=’1.0 ?><env:Envelope xmlns:env=’’http://www.w3.org/2002/06/soap-envelope’’><env:Header> <t:transactionID
xmlns:t=’’http://intermediary.example.com/procurement’’env:role=’’http://www.w3.org/2002/06/soap-envelope/role/next’’env:mustUnderstand=’’true’’ >57539
</t:transactionID></env:Header>
<env:Body> <m:orderGoods
env:encodingStyle=’’http://www.w3.org/2002/06/soap-encoding’’xmlns:m=’’example.com/procurement’’>
<m:productItem><name>ACME Softener</name>
</m:productItem> <m:quantity>
35 </m:quantity> </m:orderGoods></env:Body></env:Envelope>
envelope
header
blocks
body
-none-next-ultimateReceiver
Tra
ns
ac
tio
n i
de
nti
fie
r
59
<!-- request GetLastTradePriceInput is of type TradePriceRequest --> <wsdl:message name="GetLastTradePriceInput">
<wsdl:part name="body" element="xsd1:TradePriceRequest"/> </wsdl:message>
<!-- request GetLastTradePriceOutput is of type TradePrice --> <wsdl:message name="GetLastTradePriceOutput">
<wsdl:part name="body" element="xsd1:TradePrice"/> </wsdl:message>
<!-- wsdl:portType describes messages in an operation --> <wsdl:portType name="StockQuotePortType">
<!-- the value of wsdl:operation eludes me --> <wsdl:operation name="GetLastTradePriceGetLastTradePrice">
<wsdl:input message="tns:GetLastTradePriceInput"/>
<wsdl:output message="tns:GetLastTradePriceOutput"/> </wsdl:operation>
</wsdl:portType>
60
SOAP Message Embedded in HTTP RequestSOAP Message Embedded in HTTP Request
POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI"
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"> <m:tickerSymbol>DIS</m:tickerSymbol>
</m:GetLastTradePrice> </soapenv:Body>
</soapenv:Envelope>
SOAP Message Embedded in HTTP ResponseSOAP Message Embedded in HTTP ResponseHTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI"> <m:price>34.5</m:price>
</m:GetLastTradePriceResponse> </soapenv:Body>
</soapenv:Envelope>
61
A Simple Implementation of SOAP
HTTP engine
clientimplementation
client stub
SOAP engine
invokes the serviceas local call
invoke SOAP engine toprepare SOAP message
Packages SOAP into HTTP andpasses it to an HTTP client thatsends it to the provider
Service requesterService requester
HTTP server
serviceimplementation
server stub
SOAP router
invokes the localprocedure of the serviceimplementation
The router passes the message,identifies the appropriate stub,and delivers the parsed message
passes the content of HTTPmessage to the router
Service providerService provider
Pro
xy p
roce
du
re lo
cate
d in
a s
tub
ap
pe
nd
ed
to
th
e c
lien
t a
t co
pm
pile
tim
e
62
WSDL: Web Services Description Language
Originally created by IBM, Microsoft, and AribaWSDL = merge of three previous proposals:
• Microsoft SOAP Contract Language (SCL) and Services Description Language (SDL)• IBM’s Network Accessible Service Specification Language (NASSL)
In WSDL, specifications are XML documents that describe Web services (service interfaces); that is operations offered by a Web service.
WSDL also needs to define the mechanisms to access the Web service.
Existing IDLs are tied to a concrete middleware platform.
Lack of a common middleware platform the need for defining the location at which the service is available.
63
Structure of a WSDL interface
WSDL specificationWSDL specification
abstract part
concrete part
types
messages
operations
port types
bindings
services and ports
each message is a typed document
one-waynotificationrequest-responsesolicit-response
asynchronous
synchronous
defines protocolbinding andother information
Conceptually analogous to conventional IDL
64
65
12
WSDL of serviceprovider
WSDL compiler(client side)
WSDL compiler(server side)
WSDL generator
service providerservice requestor
application object(client)
skeleton
SOAP-basedmiddleware
SOAP-basedmiddleware
application object(service provider)
SOAP messages
stub
Using WSDLUsing WSDL1. A contract that a Web service implements2. Input to a stub compilers and other tools
66
UDDI: Universal Description Discovery and Integration
Specification of a framework for describing and descovering Web services
UDDI specification originated from:
1. Ariba and IBM collaborations on B2B2. IBM and Microsoft collaborations on XML and SOAP3. Microsoft and Ariba collaborations on BizTalk and cXML
First specification appeared in 2000
UDDI defines data structures and APIs for publishing service descriptions in the registry and for querying the registry to look for published descriptions
67
Information in a UDDI registry
: organizations and contact information (e.g., telephone, email address) and the services the organizations provide.
: classifications of both companies and Web services according to taxonomies.
: how a given service can be invoked (pointers to service description documents, typically stored outside the registry)
White Pages
Yellow Pages
Green Pages
68
UDDI data structures
bindingTemplatebindingTemplatebinding keydescriptionaddressdetailed inforeferences to tModels
businessServicebusinessServiceservice keynamedescriptioncategories
businessEntitybusinessEntitynamecontactsdescriptionidentifierscategories
tModeltModelkeynamedescriptionoverviewDocidentifierscategories
tModeltModelkeynamedescriptionoverviewDocidentifierscategories
Specs storedat the provider’ssiteA
gro
up
of
rela
ted
We
b s
erv
ice
s
off
ere
d b
y a
bu
sin
es
s e
nti
ty
69
UDDI tModel: example
<tModel tModelKey=’’uddi:uddi.org:v3_publication’’><name>uddi-org:publication_v3</name><description>UDDI Publication API V3.0</description>
<overviewDoc><overviewURL useType=’’wsdlInterface’’>
http://uddi.org/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding</overviewURL>
</overviewDoc><overviewDoc>
<overviewURL useType=’’text’’>http://uddi.org/pubs/uddi_v3.htm#PubV3</overviewURL>
</overviewDoc>
<categoryBag><keyedReference keyName=’’uddi-org:types:wsdl’’
keyValue=’’wsdlSpec’’tModelKey=’’uddi:uddi.org:categorization:types’’/>
<keyedReference keyName=’’uddi-org:types:soap’keyValue=’’soapSpec’’tModelKey=’’uddi:uddi.org:categorization:types’’/>
<keyedReference keyName=’’uddi-org:types:xml’’keyValue=’’xmlSpec’’tModelKey=’’uddi:uddi.org:categorization:types’’/>
<keyedReference keyName=’’uddi-org:types:specification’’keyValue=’’specification’’tModelKey=’’uddi:uddi.org:categorization:types’’/>
</categoryBag></tModel>
overviewDoc (refer to WSDL specs and to API specs)
Classification information(specifies that this tModel is about XML, WSDL and SOAP specs)
70
Web services at work
serviceimplementation
server stub
SOAP router
HTTP engine
WSDL generator
WSDL servicedescriptions
WSDL compiler
UDDI publisher
bindingTemplate
businessService
businessEntity
tModel
UDDI registry
Inquiry APIInquiry API
Publishers APIPublishers API
service provider
1
2
3
A (
Java
) pr
ogra
m w
hich
res
ides
and
exe
cute
s on
a
serv
er to
pro
vide
fun
ctio
nali
ty to
the
serv
er o
r pr
oces
sing
of
data
on
the
serv
er.
Case of a stored procedure
71
Service Coordination Protocols
1: requestQuote
2: orderGoods
3: makePayment
customercustomer(client)(client)
suppliersupplier(Web service)(Web service)
In real applications, interactions are typically more complex than single, independent invocations.Using a particular service typically involves performing sequences of operations in a particular order.
Complex internal logicContext information(conventional programming language orservice compositionservice composition)
72
Modeling Conversation between a Client and a Web Service
quote requested
goods ordered
order completedorder canceled
requestQuote
orderGoods
makePaymentscancelOrder
WSCL
ConversationConversation: sequences of operations (i.e., message exchanges) that could occur between a client and a service as part of the invocation of a Web service.
Coordination protocolCoordination protocol: the specification of the set of correct and accepted conversations.
State machineState machine
73
Modeling Conversations among Multiple Web Services (Multi-party Conversations)
Reason: asynchronous nature of Web services
customercustomer suppliersupplier
1: requestQuote1: requestQuote
2: orderGoods2: orderGoods
3: confirmOrder3: confirmOrder
4: makePayment4: makePayment
74
customercustomer suppliersupplier
1: requestQuote1: requestQuote
2: orderGoods2: orderGoods
4: confirmOrder4: confirmOrder
5: makePayment5: makePayment
warehousewarehouse
3: checkShipAvailable3: checkShipAvailable7: getShipmentDetail7: getShipmentDetail
8: confirmShipment8: confirmShipment
6: orderShipment6: orderShipment
9: confirmShipment9: confirmShipment
75
customer supplier warehouse
requestQuoterequestQuote
orderGoodsorderGoods
confirmOrderconfirmOrder
makePaymentmakePayment
checkShipAvailablecheckShipAvailable
orderShipmentorderShipment
getShipmentDetailgetShipmentDetail
confirmShipmentconfirmShipment
confirmShipmentconfirmShipment
Sequence diagramSequence diagram
76
requestQuote(to supplier)
orderGoods(to supplier)
makePayment(to supplier)
confirmShipment(to warehouse)
checkShipAvailable(to warehouse)
confirmOrder(to customer)
cancelOrder(to customer)
orderShipment(to warehouse) getShipmentDetails
(to customer)
confirmShipment(to supplier)
customercustomersuppliersupplier warehousewarehouse
Act
ivit
y d
iag
ram
Act
ivit
y d
iag
ram
77
Service Composition
Composition as a way to master complexity
customer(client)
supplier(Web service)
requestQuoterequestQuote
orderGoodsorderGoods
makePaymentmakePayment
another supplier(Web service)
approval(Web service)
requestQuoterequestQuote
noti
fyPaym
ent
noti
fyPaym
ent
78
supply chain
inventory planning
accounting procurement supplier
another supplierapproval… …
customercustomer
79
Semantic WebSemantic Web
80
Semantic Web
• It is the sucess of the web that creates serious needs for its improvement.
• The web uses the computer as a device for rendering information for the human reader but neither for information processing nor computing.
The semantic web is aiming on bringing back the computer as an information processing device.
81
Semantic Web
• The semantic web is based on machine-processable semantics of data.
• It will significantly change our information access based on a higher level of service provided by computers.
• It is based on new web languages such as XML, RDF, and OWL, and tools that make use of these languages.
• Applications are in areas such as Knowledge Management (eWork, eLearning, eGoverment, ...), Enterprise Application Integration, and eCommerce.
82
The Evolving WebWeb of
Knowledge
HyperText Markup LanguageHyperText Transfer Protocol
Resource Description FrameworkeXtensible Markup Language Self-Describing Documents
Foundation of the Current Web
Proof, Logic andOntology Languages Shared terms/terminology
Machine-Machine communication
1990
2000
2010
Berners-Lee, Hendler; Nature, 2001
DOCUMENTS
DATA/PROGRAMS
83
Semantic Web
Main achievements:• A ontology language proposal called OWL.• Several case studies for intranet applications
and a methodology.• A three-layered software architecture for
making the semantic web a reality.• A large number of interwoven web services
that implement this vision.
84
Hierarchy of Languages
DAML + OiL
RDFS
RDF
XML
85
RDF – Resource Description Framework
• Resources are related to each other by properties to form subject/predicate/object statements (triples).
• The triples can be used to construct a graph:
• Statements themselves can be resources of other statements (i.e. reified statements)
http://www.w3.org “W3C Home Page”
http://purl.org/dc/elements/1.1/title
“WWW Consortium”http://purl.org/dc/elements/1.1/publisher
subjectpredicate
object
objectpredicate
86
RDF Syntax• Data model does not enforce particular syntax• Specification suggests many different
syntaxes based on XML• General form:
<rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>Ora Lassila</s:Creator> <s:createdWith rdf:resource=“http://www.w3c.org/amaya”/> </rdf:Description></rdf:RDF>
Starts an RDF-Description
Properties
Subject (OID)
Literal
Resource (possibly another RDF-description)
87
Resulting Graph
<rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>Ora Lassila</s:Creator> <s:createdWith rdf:resource=“http://www.w3c.org/amaya”/> </rdf:Description></rdf:RDF>
http://www.w3c.org/amaya
http://www.w3.org/Home/Lassila
Ora Lassila
s:createdWiths:Creator
88
RDF schema
• Different from XML DTD: syntax vs. semantics
• Defines Class, Property, subClassOf, subPropertyOf, domain, range, and some others
• http://www.w3.org/TR/rdf-schema/ http://www.w3.org/TR/REC-rdf-syntax/
89
Why RDF Is Not Enough
• Only range/domain constraints on properties (need others)
• No properties of properties (unique, transitive, inverse, etc.)
• No equivalence, disjointness, etc. • No necessary and sufficient
conditions (for class membership) • No defined semantics
90
From RDF to DAML+OIL• DAML+OIL: DARPA Agent Markup Language
– Current version unites early DAML language with OIL
• DAML+OIL extends RDF statements to provide a rich descriptive logic language– Provides restrictions and additional notations on properties
• Cardinality restrictions• Notations include inverseOf, Transitivity, etc
– Provides additional properties for class definitions• Disjoint-with, complement-Of, intersectionOf, etc
– Provides universal & existential quantification through class restriction
http://www.daml.org/http://www.daml.org/languagelanguage
91
DAML+Oil example Define a "product number"'s domain and range..
<daml:DatatypeProperty rdf:ID="productNumber">
<rdfs:label>Product Number</rdfs:label>
<rdfs:domain rdf:resource="#Product"/>
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger"/>
</daml:DatatypeProperty>
”Availability" is a sort of enumerated type..
<daml:Class ID="Availability">
<daml:oneOf parseType="daml:collection">
<daml:Thing rdf:ID="InStock">
<rdfs:label>In stock</rdfs:label> </daml:Thing>
<daml:Thing rdf:ID="BackOrdered">
<rdfs:label>Back ordered</rdfs:label> </daml:Thing>
<daml:Thing rdf:ID="SpecialOrder">
<rdfs:label>Special order</rdfs:label> </daml:Thing>
</daml:oneOf>
</daml:Class>
92
Semantic Web Layer Cake
RDF
HTTP
RDFS (RDF Schema)
DAML+OIL
• Semantic Web layer cake proposed by Tim Berners-Lee
• Build upon successive W3C standards• Add meaning through semantics to the existing WWW
XML
WWW Protocol
Syntax Layer
Relating Statements
Defining Taxonomies
Ontology & Description Logic
93
Web Services
• Web Services will transform the web from a collection of information into a distributed device of computation.
• Web services should transform eCommerce from a nice application into a mass phenomena.
• Bringing E-commerce to its full potential requires a Peer-to-Peer (P2P) approach. Anybody must be able to trade and negotiate with everybody else.
• However, such an open and flexible E-commerce has to deal with many obstacles before it becomes reality!
• The issue is scalability and economy in price.
94
Web Services
Def 1. Software Architecture
Def 2. New concept for eWork and eCommerce
Def 3. New programming technology
Figure Taken From Dieter Fensel Talk
95
Def 1. Web Services as a Software Architecture “Web services are a new breed of Web application. They are
self-contained, self-describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions, which can be anything from simple requests to complicated business processes. …Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service.”
IBM web service tutorial
Web Services
96
Web Services connect computers and devices with each other using the Internet to exchange data and combine data in new ways.
The key to Web Services is on-the-fly software creation through the use of loosely coupled, reusable software components.
Software can be delivered and paid for as fluid streams of services as opposed to packaged products.
Web Services
97
Def 2. Web Services as a new Concept for eWork and eCommerce
Web Services are Services accessible via the web
Dieter Fensel`s definition
Web Services
98
• Business services can be completely decentralized and distributed over the Internet and accessed by a wide variety of communications devices.
• The internet will become a global common platform where organizations and individuals communicate among each other to carry out various commercial activities and to provide value-added services.
• The dynamic enterprise and dynamic value chains become achievable and may be even mandatory.
Web Services
99
Def 3. Web Services as a programming technology
Web Services are Remote Procedure Calls (RPC) over HTTP
current state of the art
Web Services
100
Web Services
The web is organized around URIs, HTML, and HTTP.
• URIs provide defined ids to refer to elements on the web,
• HTML provides a standardized way to describe document structures (allowing browsers to render information for the human reader), and
• HTTP defines a protocol to retrieve information from the web.
==> Not surprisingly, web services require a ==> Not surprisingly, web services require a
similar infrastructure around UDDI, WSDL, and SOAP.similar infrastructure around UDDI, WSDL, and SOAP.
101
Web Services
URI HTML HTTP
UDDI WSDL SOAP
102
Web Services
• UDDI provides a mechanism for clients to find web services. A UDDI registry is similar to a CORBA trader, or it can be thought of as a DNS service for business applications.
• WSDL defines services as collections of network endpoints or ports. A port is defined by associating a network address with a binding; a collection of ports define a service.
• SOAP is a message layout specification that defines a uniform way of passing XML-encoded data. It also defines a way to bind to HTTP as the underlying communication protocol. SOAP is basically a technology to allow for “RPC over the web”.
103
Web Services
• UDDI, WSDL, and SOAP are important steps into the direction of a web populated by services.
• However, they only address part of the overall stack that needs to be available in order to achieve the above vision eventually.• There are many layer requires to achieve automaticautomatic web service discovery, selection, mediation and composition into complex services.
104
Web Services
• Many organizations had the insight that message definition and exchange are not sufficient to build an expressive web services infrastructure.
• In addition to UDDI, WSDL and SOAP, standards are proposed such as WSFL, XLANG, ebXML, BPSS, BPML, WSCL, and BPEL4WS.
Bringing web services to their full potential requires their combination with semantic web technology.
105
Semantic Web ServicesImagine a travelling service:• Decompose into elementary services• Describe elementary services by goals instead of
hardwiring them.• Keep the human programmer out of the loop to keep it
economic, on demand, and scalable.
You cannot achieve this vision without semantic web technology that maintains selectionselection and combinationcombination of heterogeneous web services during runtimeruntime.
106
Semantic Web Services
• Mechanized support is needed, for example in finding and comparing vendors and their offers. Machine processable semantics of information allows to mechanize these tasks.
• Mechanized support is needed in dealing with numerous and heterogeneous data formats. Ontology technology is required to define such standards better and to map between them.
• Mechanized support is needed in dealing with numerous and heterogeneous business logics. Mediation is needed to compensate these differences, allowing partners to cooperate properly.
107
• The WSMF consists of four main different elements:
– ontologiesontologies that provide the terminology used by other elements;
– goal repositoriesgoal repositories that define the problems that should be solved by web services;
– web servicesweb services descriptions that define various aspects of a web service;
– and mediatorsmediators which bypass interoperability problems.
ontologiesontologies
mediatorsmediators
web
ser
vice
sw
eb s
ervi
ces
repo
sito
ries
repo
sito
ries
Semantic Web Services
108
URI, HTML, HTTPStaticWWW
500 million usermore than 3 billion pages
Sem
antic Web enabled
Web S
ervicesThe General Vision
109
URI, HTML, HTTPStaticWWW
Serious Problems in information•finding
•extracting•representing•interpreting
•and maintaining
Sem
antic Web enabled
Web S
ervices
RDF, RDF(S), OWLSemantic Web
The General Vision
110
Static
Dynamic
Bringing the computer back as a device for computation
Sem
antic Web enabled
Web S
ervices
URI, HTML, HTTP RDF, RDF(S), OWL
WWW Semantic Web
UDDI, WSDL, SOAP
Web Services
The General Vision
111
Bringing the web to its full potential
Sem
antic Web enabled
Web S
ervices
Static
Dynamic UDDI, WSDL, SOAP
Web Services
URI, HTML, HTTP RDF, RDF(S), OWL
WWW Semantic Web
Intelligent Web Services
The General Vision
112
Semantic WebSemantic Web ServicesServices
113
Existing WebExisting Web
Semantic Web TechniquesSemantic Web Techniques Web Services techniquesWeb Services techniques
Semantic Web ServicesSemantic Web Services
114
Sem
antic Web enabled
Web S
ervices
115Slide taken from Grosof’s Talk
116Slide taken from Grosof’s Talk
117Slide taken from Grosof’s Talk
118
Describing & Discovering Agents & Services on the Semantic Web• DAML – DARPA Agent Markup Language!• Can be used as a tool to investigate and solve many of
the agent-based semantic mismatch issues– i.e. Semantic mismatches in agent discovery,
selection, negotiation, interoperation, & in the composition/planning of larger scale solutions
• DAML -S Coalition formed to explore DAML for Services
119
DAML-S
• An upper ontology for describing the properties & capabilities of agents & (Web) services in an unambiguous, computer interpretable markup language.
• Built as an additional layer above DAML+OIL
• Designed to the following automated tasks…
http://www.daml.org/serviceshttp://www.daml.org/services
120
Automation enabled by DAML-S• Web Service Discovery & Selection
– Find an airline that can fly me to Toulouse, France.• Web Service Invocation
– Book flight tickets from AirFrance to arrive 21st Aug.• Web Service Composition & Interoperation
– Arrange taxis, flights and hotel for travel from Lyon to Toulouse, OR, via Paris.
• Web Service Execution Monitoring– Has the taxi to Toulouse Blagnac Airport been
reserved yet?
121
Layered Approach to Language Development
XM
L
RDF
HTTP
DAML-S(Services)
RDFS (RDF Schema)
DAML+OIL
• The first major application of DAML+OIL
• Layer exists above DAML+OIL & RDF
• Future versions will build upon emerging layers (e.g. DAML-Rules etc)
122
DAML-S Upper Ontology
. input types
. output types
. preconditions
. postconditions
. communication protocol (RPC, HTTP, …). port number. marshalling/serialization
• process flow• composition hierarchy• process definitions
123
DAML-S Service Models
124
Presenting Service Profiles
• Service Profile– Presented by a service.– Represents
“what the service provides”
– One can derive:• Service Advertisements• Service Requests
125
DAML-S Service Profile
Non Functional Non Functional PropertiesProperties
Functionality Functionality DescriptionDescription
126
DAML-S Service ProfileFunctionality Description
• Functional Specification of what the service provides in terms of parameters, subclassed as:– preconditionspreconditions– inputsinputs– outputsoutputs– effectseffects
• Summarizes the abstract capability of a service.
127
DAML-S Service ProfileFunctionality Description
• Preconditions– Set of conditions that should hold prior to service invocation
• Inputs– Set of necessary inputs that the requester should provide to invoke
the service• Outputs
– Results that the requester should expect after interaction with the service provider is completed
• Effects– Set of statements that should hold true if the service is invoked
successfully.– Often refer to real-world effects
• Package being delivered, or Credit card being debited
128
DAML-S Service ProfileFunctionality Description
• An Input/Output/Precondition/Effect parameter has three properties:– parameterName: the name of the parameter– restrictedTo : a resource corresponding to some
RDF/DAML property type within some ontology (i.e. the range of a parameter instance)
– refersTo : the corresponding parameter defined within the process model
129
DAML-S Service ProfileFunctionality Description
130
DAML-S Service ProfileNon Functional Properties
• Provides supporting information about the service.
131
DAML-S Service ProfileNon Functional Properties
• These include– serviceName– textDescription– has_process– qualityRating– serviceParameter– serviceCategory– contactInformation
132
DAML-S Service ProfileNon Functional
Properties - Actor
133
DAML-S Service ProfileNon Functional Properties -
QualityRating
134
DAML-S Service ProfileNon Functional Properties –
ServiceCategory
135
DAML-S Service ProfileNon Functional Properties –
ServiceParameter
136
Profile Hierarchy
• Sub-classing the Profile model facilitates the creation and specialisation of service categories
• Each subclass can:– Introduce new properties– Place restrictions on existing properties
• Sub-classing can also be used to specialise requests for service
• An example Profile Hierarchy is provided, but others could just as easily be defined
137
Profile Hierarchy – sample ontology
138
DAML-S Service Models
139
Describing Service Models
• Service Process– Describes how
a service works.
• Facilitates– (automated)
Web service invocation
– composition– interoperation– monitoring
140
DAML-S Service Model (Overview)
141
Types of the process in DAML-S
• Atomic processes: directly invokable (by an agent), have no subprocesses, executed in a single step.
• Composite processes: consist of other (non-composite or composite) processes.They have a composedOf property, by which the control structure of the process is indicated, using a ControlConstruct subclasses (see table …).
• Simple processes: abstract concepts, used to provide a view of some atomic process, or a simplified representation of some composite process (i.e., the “black box” view of a collapsed composite process).
142
Atomic Process Example<!– Atomic Process Definition - GetDesiredFlightDetails --> <rdfs:Class rdf:ID="GetDesiredFlightDetails"> <rdfs:subClassOf rdf:resource="http://www.daml.org/Process#AtomicProcess" /> </rdfs:Class>
GetDesired Flight Details
Airport
Flight Date
AtomicProcessdepartureAirport_In
outboundDate_In
<!– (sample) Inputs used by atomic process GetDesiredFlightDetails --> <rdf:Property rdf:ID="departureAirport_In"> <rdfs:subPropertyOf rdf:resource="http://www.daml.org/Process#input" /> <rdfs:domain rdf:resource="#GetDesiredFlightDetails" /> <rdfs:range rdf:resource="http://www.daml.ri.cmu.edu/ont/
DAML-S/concepts.daml#Airport" /> </rdf:Property>
<rdf:Property rdf:ID="outboundDate_In"> <rdfs:subPropertyOf rdf:resource="http://www.daml.org/Process#input" /> <rdfs:domain rdf:resource="#GetDesiredFlightDetails" /> <rdfs:range rdf:resource="http://www.daml.ri.cmu.edu/ont/ DAML-S/concepts.daml#FlightDate" /> </rdf:Property>
143
<rdfs:Class rdf:ID="BookFlight"> <rdfs:subClassOf rdf:resource="#CompositeProcess" /> <rdfs:subClassOf rdf:resource="http://www.daml.org/Process#Sequence" /> <daml:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="http://www.daml.org/Process#components" /> <daml:toClass> <daml:subClassOf> <daml:unionOf rdf:parseType="daml:collection"> <rdfs:Class rdfs:about="#GetFlightDetails" /> <rdfs:Class rdfs:about="#GetContactDetails" /> <rdfs:Class rdfs:about="#ReserveFlight" /> <rdfs:Class rdfs:about="#ConfirmReservation" /> </daml:unionOf> </daml:subClassOf> </daml:toClass> </daml:Restriction> </daml:subClassOf></rdfs:Class>
Composite Process Example
Composite Process
Confirm Reservation
BookFlight
Get Contact Details
Sequence
Get Flight Details
Reserve Flight
SequenceSequence
144
DAML-S Service Models
145
Supporting a Service Grounding
• Service Grounding– Provides a specification of
service access information.– Service Model + Grounding
give everything needed for using the service
– Builds upon WSDL to define message structure and physical binding layer
• Specifies:– communication protocols,
transport mechanisms, agent communication languages, etc.
146
WSDL (Web Services Description Language)
• Structured mechanism to describe:– Abstract operations that a Web Service can perform– Format of messages it can process– Protocols it can support– Physical bindings to:
• communication languages, e.g. SOAP or HTTP messages• Location of services, i.e. URI and port numbers
• XML based• Current Status:
– Developed by IBM and Microsoft– Version 1.1 submitted as a W3C Note
147
WSDL Components
• Types – containers for XSD data type definitions
• Message – abstract definition of the data being communicated
• Operation – abstract message exchange protocol
• Port Type – abstract set of operations
• Binding – concrete protocol and data format for a port type
• Port – single, physical endpoint
• Service – collection of related endpoints
148
DAML-S / WSDL Binding
Resources/Concepts
WSDL
DAML-S
Process Model
Atomic Process
Operation Message
Inputs / Outputs
Binding to SOAP, HTTP, etc.
149
DAML-S / WSDL Mapping
150
Service Grounding
The class Service supports a ServiceGrounding, that describes a mapping from an abstract (ServiceProfile and ServiceModel) to a concrete specification of the service description elements, that are required for interacting with the service, i.e. the inputs and outputs of atomic processes.
The central function of a DAML-S grounding is to show how the (abstract) inputs and outputs of an atomic process are to be realized concretely as messages, which carry those inputs and outputs in some specific transmittable format (e.g. RPC, CORBA, Java RMI, HTTP etc.).
151
Reasoning in DAML-S
• Service requests are constructed as partial service descriptions.
• Requests are then evaluated against the advertised service taxonomy using subsumption (classification).
• Matches are generally recognized whenever the service advertised is subsumed by (is a particular case of) the service description requested.
Note: Advertisements and requests can differ sharply, in level of detail and in the level of abstraction of the terms used.
152
A whole example can be found at:
http://www.daml.org/services/daml-s/2001/05/Congo.daml
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date
hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
169
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
170
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
171
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Travel lieu_dep.Chaîne_car lieu_arr.Chaîne_car
172
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
173
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
174
Services modelling (from www.sncf.com)
Timetable_SNCF_One_Way_Ticket Travel transport_means.Train dateDeparture.Date hourDeparture.Hour nbAdults.Integer category.Boolean
Voyage lieu_dep.Chaîne_car lieu_arr.Chaîne_car
175
computeBCov features• rewriting algorithm
– Transform a query into another query expressed in terms of services names defined in the ontology
– Compute the differences « query – rewriting » and « rewriting – query » as concept descriptions on which other reasonings can be applied initiate a user-machine dialogue to make him precise his query
• combinatorial search– Optimized exploration of all possible combinations of services names
(exponential space)– Only best are displayed (possibility to order worse additional
solutions)• inference technique
– Logical inference done in parallel with combinatorial exploration– Solutions may be found even if query’s terms and services’ terms are not
the same
176
Example : the rewriting processUser query System
answer
177
Example : the rewriting processUser query System
answer
In this case, only one best combination of services :
Q6ter query is rewritten into the combination of 2 services :
{ Inn_France,Timetable_SNCF_One_Way_Ticket}
178
Example : difference query-servicesUser query
System answer
First difference between the query and the rewriting :
Part of the query that does not match any part of any service : the « rest ».
The rest can be sent to other discovery systems as a new query.
179
User query
System answer
Second difference between the query and the rest :
Parts of the services that do not match any part of the query : the « miss ».
The miss can be reused in order to automatically generate forms in which the user can add mandatory details in order to run the services.
Example : difference query-services
180
Example : the rewriting processUser query Step 1 : concept normalization
Proposed services
Useful concepts (from the ontology) for normalization
181
Example : the rewriting processUser query Step 2 : concept
matching
Proposed services
Useful concepts (from the ontology) for normalization
etc…
182
ConclusionConclusion
183
Slide taken from Grosof Talk
184
185
• Logic – I am an employee of UMBC.
UMBC is a member of W3C.UMBC has GET access to http://www.w3.org/Member/.I (therefore) have access to http://www.w3.org/Member/.
• Proof – UMBC's document employList lists me as an employee.
W3C'c member list includes UMBC.The ACLs for http://www.w3.org/Member/ assert that employees of members have GET access.
• Trust – UMBC's document employList is signed by a private key that
W3C trusts to make such assertions.W3C'c member list is trusted by the access control mechansim.The ACLs for http://www.w3.org/Member/ were set by an agent trusted by the access control mechanism.
186
Pellet : http://www.mindswap.org/2003/pellet/demoOntoLink : http://www.mindswap.org/2004/OntoLink/PhotoStuff : http://www.mindswap.org/2003/PhotoStuff/Swoop and SwoopEd : http://www.mindswap.org/2004/SWOOP/METEOR-S : http://lsdis.cs.uga.edu/projects/METEOR-S/GLUE : http://www.themindelectric.com...
Some tools, software, and systemsSome tools, software, and systems
187
Resources
• DAML+OIL– http://www.daml.org/languagehttp://www.daml.org/language
• OWL– http://www.w3.org/2001/sw/WebOnt/http://www.w3.org/2001/sw/WebOnt/
• DAML-S– http://www.daml.org/serviceshttp://www.daml.org/services
http://www.daml.org/services/
http://www.w3.org/2002/ws/http://www.computer.org/intelligent/
•Web Services: Concepts, Architecture and Applications. G. Alonso, F. Casati, H. Kuno, V. Machiraju, Springer Verlag 2004
http://classweb.gmu.edu/kersch/infs770/Topics/web_services.htm
188
Example: an atomic process
The LocateBook program takes as input the name of a book and returns a description of the book and its price (if the book is in catalogue).
<daml:Class rdf:ID=”LocateBook”> <rdfs:subClassOf
rdf:resouce=”http://www.daml.org/services/daml-s/2001/10/Process.daml#AtomicProcess” /> <rdfs:subClassOf>
<daml:Restriction daml:cardinality=”1”> <daml:onProperty rdf:resource=”#bookName”/>
</rdfs:subClassOf></daml:Class>
<rdf:Property rdf:ID=”bookName”> <rdfs:subPropertyOf
rdf:resource=”http://www.daml.org/services/daml-s/2001/10/Process.daml#input” /> <rdfs:domain rdf:resource=”#LocateBook”/> <rdfs:range rdf:resource=”http://www.w3.org/2000/10/XMLSchema#string"/></rdf:Property>
189
Example: an atomic process
<rdf:Property rdf:ID=”bookDescription”>
<rdfs:subPropertyOf rdf:resource=”http://www.daml.org/services/daml-s/2001/10/Process.daml#conditionalOutput” />
<rdfs:domain rdf:resource=”#LocateBook”/>
<rdfs:range rdf:resource=”InCatalogueBookDescription”/>
</rdf:Property>
<daml:Class rdf:ID=”InCatalogueBookDescription”>
<rdfs:subClassOf rdf:resouce=”http://www.daml.org/services/daml-s/2001/10/Process.daml#ConditionalOutput” />
</rdfs:subClassOf>
</daml:Class>
190
Example: an atomic process
<rdf:Property rdf:ID=”condInCatalogueBookDescription”> <rdfs:subPropertyOf
rdf:resource=”http://www.daml.org/services/daml-s/2001/10/Process.daml#coCondition” />
<rdfs:domain rdf:resource=”#InCatalogueBookDescription”/> <rdfs:range rdf:resource=”#InCatalogueBook”/></rdf:Property>
<rdf:Property rdf:ID=”outInCatalogueBookDescription”> <rdfs:subPropertyOf
rdf:resource=”http://www.daml.org/services/daml-s/2001/10/Process.daml#coOutput” />
<rdfs:domain rdf:resource=”#InCatalogueBookDescription”/> <rdfs:range rdf:resource=”#TextBookDescription”/></rdf:Property>
<daml:Class rdf:ID=”TextBookDescription”> <rdfs:subClassOf rdf:resource=” http://www.daml.org/2001/03/daml+oil#Thing” /></daml:Class>
191
Example: a composite process
With a description of each of the atomic programs/processes in hand, it is possible then to describe compositions of these programs that provide specific services.
The DAML-S composite process is built recursively in a top-down manner. Each CompositeProcess is composedOf a ControlStructure, which may be a Sequence, If-then-else, etc. Each such ControlConstruct, in turn, has a ”components” property, which specify the classes of the subcomponents.
192
Example: a composite process
In the Congo example, CongoBuy was described in terms of two main steps – locating the book, and then buying it.
ExpandedCongoBy is the name for the sequence of the atomic process LocateBook, followed by the composite process CongoBuyBook.
Other restrictions (on inputs, outputs, preconditions and effects) can also be specified.
193
Example: a composite process<daml:Class rdf:ID=”ExpandedCongoBuy”> <rdfs:subClassOf
rdf:resouce=”http://www.daml.org/services/daml-s/2001/10/Process.daml#CompositeProcess” /> <rdfs:subClassOf>
<daml:Restriction> <daml:onProperty rdf:resource=”http://www.daml.org/services/daml-s/2001/10/Process.daml#composedOf “/> <daml:toClass> <daml:Class> <daml:intersectionOf rdf:parseType=”daml:collection”> <daml:Class rdf:about=”process:Sequence”/> <daml:Restriction> <daml:onProperty rdf:resource=” process:components”/> <daml:toClass>
<daml:listOfInstanceOf rdf:parseType=”daml:collection”><daml:Class rdf:about=”#LocateBook/”><daml:Class rdf:about=”#CongoBuyBook/”>
</daml:listOfInstanceOf rdf:parseType=”daml:collection”> </daml:Class>
</daml:toClass> </daml:Restriction> </daml:intersectionOf> </daml:Class> </daml:toClass> </daml:Restriction> </rdfs:subClassOf> </daml:Class>
194
Conclusions
DAML-S is an upper ontology for describing Web-Services, written in DAML+OIL.
By providing a rich declarative representation and an efficient reasoning support, DAML-S addresses the objective of making Web Services computer-interpretable and, hence, enables their automatic discovery, invocation, verification, composition and interoperation as well as execution monitoring.