(semantic) web services

194
1 (Semantic) Web Services (Semantic) Web Services M.-S. Hacid M.-S. Hacid University Claude Bernard, Lyon – France University Claude Bernard, Lyon – France http://www710.univ-lyon1.fr/~dbkrr http://www710.univ-lyon1.fr/~dbkrr

Upload: norris

Post on 20-Jan-2016

69 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: (Semantic) Web Services

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

Page 2: (Semantic) Web Services

2

Outline

Evolution of MIS/DSSEnterprise Applications Integration (EAI)Web ServicesSemantic WebSemantic Web ServicesConclusion

Page 3: (Semantic) Web Services

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

Page 4: (Semantic) Web Services

4

DSS is at the end of a long and complex evolution but continues to evolve.

1960

- master files- programs (Cobol)- reports

History (Cond.)

Page 5: (Semantic) Web Services

5

History (Cond.)

1965

- complexity ofmaintenancedevelopment

- synchronization of data- hardware

Lots of master files!!!

Page 6: (Semantic) Web Services

6

History (Cond.)

DASDDBMS

database – ’’ a single source of data for all processing’’

1970

Online, High-performanceTransaction Processing1975

Page 7: (Semantic) Web Services

7

History (Cond.)

tx processing

1980

MIS/DSS

PCs, 4GL technology

Page 8: (Semantic) Web Services

8

History (Cond.)

OLTP

1985

extract programextract program

Why extract program?- Performance- Control

Page 9: (Semantic) Web Services

9

History (Cond.)

1990’’spider web’’

Page 10: (Semantic) Web Services

10

History (Cond.)

- credibility of data - productivity - inability to transform data into information

Problems with Naturally Evolving Architecture:Problems with Naturally Evolving Architecture:

Page 11: (Semantic) Web Services

11

History (Cond.)

Lack of Credibility of Data:Lack of Credibility of Data:

Dept. A +10%activity up

Dept. B -15%activity down

Page 12: (Semantic) Web Services

12

History (Cond.)

No time basis of dataNo time basis of data

Dept. A: +10%

Dept. B: -15%

Sunday evening

Wednesday pm

Page 13: (Semantic) Web Services

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!

Page 14: (Semantic) Web Services

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

Page 15: (Semantic) Web Services

15

History (Cond.)

Dept. A: +10%

Dept. B: -15%

Sunday evening old accts

Wednesday pmlarge accts

Page 16: (Semantic) Web Services

16

History (Cond.)

External data

With today’s technologies at the PC level, it is easy tobring in data from outside sources

Page 17: (Semantic) Web Services

17

History (Cond.)

Dept. A: +10%

Dept. B: -15%

Sunday evening old accts

Wednesday pmlarge accts

Business Week

Wall Street journal

Page 18: (Semantic) Web Services

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!

Page 19: (Semantic) Web Services

19

History (Cond.)

Dept. A: +10%

Dept. B: -15%

Sunday evening old accts

Wednesday pmlarge accts

Wall Street journal

Business Week

Page 20: (Semantic) Web Services

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

Page 21: (Semantic) Web Services

21

Web ServicesWeb Services

A Change in the ApproachA Change in the Approach

Data Warehouse Enterprise Applications Integration

Semantic Web ServicesSemantic Web Services

Page 22: (Semantic) 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.

Page 23: (Semantic) Web Services

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

Page 24: (Semantic) Web Services

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.

Page 25: (Semantic) Web Services

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

Page 26: (Semantic) Web Services

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

Page 27: (Semantic) Web Services

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

Page 28: (Semantic) Web Services

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.

Page 29: (Semantic) Web Services

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.

Page 30: (Semantic) Web Services

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

?

Page 31: (Semantic) Web Services

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

Page 32: (Semantic) Web Services

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

Page 33: (Semantic) Web Services

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

Page 34: (Semantic) Web Services

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

Page 35: (Semantic) Web Services

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.

Page 36: (Semantic) Web Services

36

B2B integration with Web Services

Three main aspects

•Service-oriented architectures.•Redesign of middleware protocols.•Standardization.

Page 37: (Semantic) Web Services

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

Page 38: (Semantic) Web Services

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.

Page 39: (Semantic) Web Services

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

Page 40: (Semantic) 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!

Page 41: (Semantic) Web Services

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.

Page 42: (Semantic) Web Services

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

Page 43: (Semantic) Web Services

43

Service discovery

• At design-time (static binding)• At run-time (using dynamic binding techniques)

Page 44: (Semantic) Web Services

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

Page 45: (Semantic) Web Services

45

Combining Web Services : Composition

Reseller of personal computers

Customer

Web service

RequestQuote PC manufacturers(latest prices)

Shippers(delivery schedules)

Page 46: (Semantic) Web Services

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

Page 47: (Semantic) Web Services

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.

Page 48: (Semantic) Web Services

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.

Page 49: (Semantic) Web Services

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

Page 50: (Semantic) Web Services

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

Page 51: (Semantic) 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

Page 52: (Semantic) Web Services

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

Page 53: (Semantic) Web Services

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

Page 54: (Semantic) Web Services

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?

Page 55: (Semantic) Web Services

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.

Page 56: (Semantic) Web Services

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

Page 57: (Semantic) Web Services

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

Page 58: (Semantic) Web Services

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

Page 59: (Semantic) Web Services

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>

Page 60: (Semantic) Web Services

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>

Page 61: (Semantic) Web Services

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

Page 62: (Semantic) Web Services

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.

Page 63: (Semantic) Web Services

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

Page 64: (Semantic) Web Services

64

Page 65: (Semantic) Web Services

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

Page 66: (Semantic) Web Services

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

Page 67: (Semantic) Web Services

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

Page 68: (Semantic) Web Services

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

Page 69: (Semantic) Web Services

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)

Page 70: (Semantic) Web Services

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

Page 71: (Semantic) Web Services

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)

Page 72: (Semantic) Web Services

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

Page 73: (Semantic) Web Services

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

Page 74: (Semantic) Web Services

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

Page 75: (Semantic) Web Services

75

customer supplier warehouse

requestQuoterequestQuote

orderGoodsorderGoods

confirmOrderconfirmOrder

makePaymentmakePayment

checkShipAvailablecheckShipAvailable

orderShipmentorderShipment

getShipmentDetailgetShipmentDetail

confirmShipmentconfirmShipment

confirmShipmentconfirmShipment

Sequence diagramSequence diagram

Page 76: (Semantic) Web Services

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

Page 77: (Semantic) Web Services

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

Page 78: (Semantic) Web Services

78

supply chain

inventory planning

accounting procurement supplier

another supplierapproval… …

customercustomer

Page 79: (Semantic) Web Services

79

Semantic WebSemantic Web

Page 80: (Semantic) Web Services

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.

Page 81: (Semantic) Web Services

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.

Page 82: (Semantic) Web Services

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

Page 83: (Semantic) Web Services

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.

Page 84: (Semantic) Web Services

84

Hierarchy of Languages

DAML + OiL

RDFS

RDF

XML

Page 85: (Semantic) Web Services

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

Page 86: (Semantic) Web Services

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)

Page 87: (Semantic) Web Services

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

Page 88: (Semantic) Web Services

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/

Page 89: (Semantic) Web Services

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

Page 90: (Semantic) Web Services

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

Page 91: (Semantic) Web Services

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>

Page 92: (Semantic) Web Services

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

Page 93: (Semantic) Web Services

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.

Page 94: (Semantic) Web Services

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

Page 95: (Semantic) Web Services

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

Page 96: (Semantic) 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

Page 97: (Semantic) 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

Page 98: (Semantic) 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

Page 99: (Semantic) 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

Page 100: (Semantic) 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.

Page 101: (Semantic) Web Services

101

Web Services

URI HTML HTTP

UDDI WSDL SOAP

Page 102: (Semantic) Web Services

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

Page 103: (Semantic) Web Services

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.

Page 104: (Semantic) Web 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.

Page 105: (Semantic) Web Services

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.

Page 106: (Semantic) Web Services

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.

Page 107: (Semantic) Web Services

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

Page 108: (Semantic) Web Services

108

URI, HTML, HTTPStaticWWW

500 million usermore than 3 billion pages

Sem

antic Web enabled

Web S

ervicesThe General Vision

Page 109: (Semantic) Web Services

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

Page 110: (Semantic) Web Services

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

Page 111: (Semantic) Web Services

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

Page 112: (Semantic) Web Services

112

Semantic WebSemantic Web ServicesServices

Page 113: (Semantic) Web Services

113

Existing WebExisting Web

Semantic Web TechniquesSemantic Web Techniques Web Services techniquesWeb Services techniques

Semantic Web ServicesSemantic Web Services

Page 114: (Semantic) Web Services

114

Sem

antic Web enabled

Web S

ervices

Page 115: (Semantic) Web Services

115Slide taken from Grosof’s Talk

Page 116: (Semantic) Web Services

116Slide taken from Grosof’s Talk

Page 117: (Semantic) Web Services

117Slide taken from Grosof’s Talk

Page 118: (Semantic) Web Services

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

Page 119: (Semantic) Web 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

Page 120: (Semantic) Web 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?

Page 121: (Semantic) Web Services

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)

Page 122: (Semantic) Web Services

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

Page 123: (Semantic) Web Services

123

DAML-S Service Models

Page 124: (Semantic) Web Services

124

Presenting Service Profiles

• Service Profile– Presented by a service.– Represents

“what the service provides”

– One can derive:• Service Advertisements• Service Requests

Page 125: (Semantic) Web Services

125

DAML-S Service Profile

Non Functional Non Functional PropertiesProperties

Functionality Functionality DescriptionDescription

Page 126: (Semantic) Web Services

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.

Page 127: (Semantic) Web Services

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

Page 128: (Semantic) Web Services

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

Page 129: (Semantic) Web Services

129

DAML-S Service ProfileFunctionality Description

Page 130: (Semantic) Web Services

130

DAML-S Service ProfileNon Functional Properties

• Provides supporting information about the service.

Page 131: (Semantic) Web Services

131

DAML-S Service ProfileNon Functional Properties

• These include– serviceName– textDescription– has_process– qualityRating– serviceParameter– serviceCategory– contactInformation

Page 132: (Semantic) Web Services

132

DAML-S Service ProfileNon Functional

Properties - Actor

Page 133: (Semantic) Web Services

133

DAML-S Service ProfileNon Functional Properties -

QualityRating

Page 134: (Semantic) Web Services

134

DAML-S Service ProfileNon Functional Properties –

ServiceCategory

Page 135: (Semantic) Web Services

135

DAML-S Service ProfileNon Functional Properties –

ServiceParameter

Page 136: (Semantic) Web Services

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

Page 137: (Semantic) Web Services

137

Profile Hierarchy – sample ontology

Page 138: (Semantic) Web Services

138

DAML-S Service Models

Page 139: (Semantic) Web Services

139

Describing Service Models

• Service Process– Describes how

a service works.

• Facilitates– (automated)

Web service invocation

– composition– interoperation– monitoring

Page 140: (Semantic) Web Services

140

DAML-S Service Model (Overview)

Page 141: (Semantic) Web Services

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

Page 142: (Semantic) Web Services

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>

Page 143: (Semantic) Web Services

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

Page 144: (Semantic) Web Services

144

DAML-S Service Models

Page 145: (Semantic) Web Services

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.

Page 146: (Semantic) Web Services

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

Page 147: (Semantic) Web Services

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

Page 148: (Semantic) Web Services

148

DAML-S / WSDL Binding

Resources/Concepts

WSDL

DAML-S

Process Model

Atomic Process

Operation Message

Inputs / Outputs

Binding to SOAP, HTTP, etc.

Page 149: (Semantic) Web Services

149

DAML-S / WSDL Mapping

Page 150: (Semantic) Web Services

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

Page 151: (Semantic) Web Services

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.

Page 152: (Semantic) Web Services

152

A whole example can be found at:

http://www.daml.org/services/daml-s/2001/05/Congo.daml

Page 153: (Semantic) Web Services

153

Page 154: (Semantic) Web Services

154

Page 155: (Semantic) Web Services

155

Page 156: (Semantic) Web Services

156

Page 157: (Semantic) Web Services

157

Page 158: (Semantic) Web Services

158

Page 159: (Semantic) Web Services

159

Page 160: (Semantic) Web Services

160

Page 161: (Semantic) Web Services

161

Page 162: (Semantic) Web Services

162

Page 163: (Semantic) Web Services

163

Page 164: (Semantic) Web Services

164

Page 165: (Semantic) Web Services

165

Page 166: (Semantic) Web Services

166

Page 167: (Semantic) Web Services

167

Page 168: (Semantic) Web Services

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

Page 169: (Semantic) Web Services

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

Page 170: (Semantic) Web Services

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

Page 171: (Semantic) Web Services

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

Page 172: (Semantic) Web Services

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

Page 173: (Semantic) Web Services

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

Page 174: (Semantic) Web Services

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

Page 175: (Semantic) Web Services

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

Page 176: (Semantic) Web Services

176

Example : the rewriting processUser query System

answer

Page 177: (Semantic) Web Services

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}

Page 178: (Semantic) Web Services

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.

Page 179: (Semantic) Web Services

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

Page 180: (Semantic) Web Services

180

Example : the rewriting processUser query Step 1 : concept normalization

Proposed services

Useful concepts (from the ontology) for normalization

Page 181: (Semantic) Web Services

181

Example : the rewriting processUser query Step 2 : concept

matching

Proposed services

Useful concepts (from the ontology) for normalization

etc…

Page 182: (Semantic) Web Services

182

ConclusionConclusion

Page 183: (Semantic) Web Services

183

Slide taken from Grosof Talk

Page 184: (Semantic) Web Services

184

Page 185: (Semantic) Web Services

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.

Page 186: (Semantic) Web Services

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

Page 187: (Semantic) Web Services

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

Page 188: (Semantic) Web Services

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>

Page 189: (Semantic) Web Services

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>

Page 190: (Semantic) Web Services

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>

Page 191: (Semantic) Web Services

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.

Page 192: (Semantic) Web Services

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.

Page 193: (Semantic) Web Services

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>

Page 194: (Semantic) Web Services

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.