1 CONFIDENTIAL Ajay Bansal, Srividya Kona, Luke Simon, Ajay Mallya, and Gopal Gupta Department of...

Post on 12-Jan-2016

213 views 1 download

transcript

1CONFIDENTIAL

Ajay Bansal, Srividya Kona, Luke Simon, Ajay Mallya, and Gopal Gupta Department of Computer Science University of Texas at Dallas

Thomas D. Hite Metallect Corp.

Dallas, Texas

A Universal Service-Semantics Description Language

2CONFIDENTIAL

Context and Agenda

• What Web Services *really* are• The next milestone for some ‘better times’• Need for Semantic Services Description• Overview of USDL and an Universal Ontology• Design of USDL• Example USDL annotation of a service• Applications of USDL• Conclusions

3CONFIDENTIAL

Web Services

Source: W3C Web Services Architecture, W3C Working Draft 14 November 2002

As if this is new info…

Definition:

A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

4CONFIDENTIAL

Engaging a Web Service

Source: W3C Web Services Architecture, W3C Working Draft 14 November 2002

Step 2: HUH?

Agree onSemantics???

5CONFIDENTIAL

Web Services Landscape

• Description– WSDL, SAP (IFR), .NET and Java (Introspection), …– Players: Microsoft, IBM, SAP, Oracle …

• Policy and Security– WS-Policy– Players: IBM, BEA, Microsoft, SAP, Sonic Software, VeriSign

• Composition– BPEL, WSFL and WSCI (older), OWL-S, SWSL, WSML …– Players: Startups, Researchers, Consultants

• Execution– Mostly Proprietary– Players: Oracle, Sun, Microsoft, Tibco, Blue Titan, Actional,

WebMethods…

6CONFIDENTIAL

Semantics and the average $3B Fortune 1000…• Has hundreds of software applications

– Most of which use different business dictionaries (loosely – taxonomies)– Multiple technologies (programming languages, packaged applications,

databases, middleware)– Millions of lines of source code, database tables/columns, etc.– Multiple metadata repositories– Tens of millions of individual components (functions, variables, DB columns, etc.)

• Spends $105 (70% of total budget) million maintaining those apps

• Has very little visibility into the apps on which they spend:– What they comprise and how they’re interconnected– What software artifacts relate to business drivers and terms– How the ‘guts’ are, or can be, leveraged to meet business needs

• Lack of this kind of visibility is:– A major barrier to IT agility, a driver of cost and a contributor to risk

Solved through Web Services with Automated Semantics

7CONFIDENTIAL

“Typical” enterprise application infrastructure

Today’s applications are complex, started with different semantic domains, yet are highly interdependent

8CONFIDENTIAL

Real-life Case Study:A Seemingly Simple Composite Service

Internet Order Application

JavaJ2EE

Web PagesJSP

“Legacy” Order Application

AS/400RPG

MiddlewareOracle

Procedures

AS/400DB2

1. Order placed via web app –invokes Java method(s)

2. Java method interacts with database

3. Oracle DB stores order. A trigger initiates synchronization

4. Middleware transforms and routes order data

5. Middleware transforms and routes order data

6. RPG app processes order and returns status

9CONFIDENTIAL

Ends up in Complex Human Integration

JSPfor web pages

Javafor order

processing

Oracle for storage and triggers

Middlewarefor trans. and messaging

AS/400 DB2

for storage

AS/400 RPGfor order

processing

Web

Developers

Java

Developers

Oracle

DBA’sMiddleware Engineers

DB2 DBA’sRPG

developers

Distributed Systems Architect

Development Manager

Quality Assurance

Middleware

Architect

AS/400 Architect

Development Manager

Quality Assurance

Enterprise Architect

Quality Assurance

Business Analyst

IT Executive

1 Simple Composite Application1 Simple Composite Application6 Technology Layers, supported by multiple roles & groups6 Technology Layers, supported by multiple roles & groups

Repeat:Repeat: All using All using different terminologies different terminologies for business concepts.for business concepts.

10CONFIDENTIAL

WSDL

UDDIRegistry

Web Service Provider

Web Service Requester

Describes Service

Points to Description

Points to Service

Finds a Service

Interact via SOAP Messages

Existing Web Service Technologies

• WSDL (Web Services Description Language) • UDDI (Universal Description, Discovery & Integration)• SOAP (Simple Object Access Protocol)

Do not solve the problems for real-

world F1000 companies.

11CONFIDENTIAL

Automated Semantics, order and RR

Discovery

SolveSolve VerificationVerification

DeclarativeBehaviors

DeclarativeBehaviors

MetadataGenerationMetadata

Generation

WSDLWSDL

OWL-SOWL-S

USSDLUSSDL

OWL-SOWL-S

Java,C/C++,

Etc.

Java,C/C++,

Etc.

Selection

DeployDeploy

Composition

OptimalDesign Rank

OptimalDesign Rank

SemanticServiceDesc

OWL-S…

SWSL

USDL

1 2

30

12CONFIDENTIAL

Automating Web Services

• Service Discovery– involves automatically locating a service adhering to all the

requested properties.

• Service Execution– involves automatically executing a discovered service that is

appropriate.

• Service Composition– involves automatically selecting, composing & executing

appropriate services for a particular task.

An infrastructure for automation of these tasks was missing!An infrastructure for automation of these tasks was missing!

13CONFIDENTIAL

Need for Semantic Description of Services

• Infrastructure capable of automation of services must be semantics based.

• Applications should be able to automatically reason about a service's capabilities.

14CONFIDENTIAL

WSDL Review from the working class

• Purely syntactic in nature.

• Only specifies the format of a service’s program interface (i.e. Call Semantics).

• Does not specify what a service does at a conceptual level.

15CONFIDENTIAL

Semantic Description Languages

• A couple of good examples:– OWL-S– WSML

• Some limitations:– Use Domain-specific ontology– Semantic aliasing problem

• distinct syntactic representations with distinct formal semantics yet equal conceptual semantics.

– Domain specific ontologies require a formal standardization process (slow) and is not always possible.

16CONFIDENTIAL

Overcoming the Limitations

• USDL does not preclude or replace OWL-S, WSML or the others.• USDL does address their limitations in atomic service description

• Comprises just a few, easy to grasp components:– A universal ontology: OWL WordNet Ontology– Restricted connectives, such that the semantics always equates things

that are conceptually equal.• Concepts• Affects• Conditions

• In short: a language that service providers and consumers alike can use to easily specify precise, formal and decidable semantics of the services themselves.

Universal Service-Semantics Description LanguageUniversal Service-Semantics Description Language

17CONFIDENTIAL

Overview of USDL

• Starts with OWL WordNet ontology to provide the missing Semantic semantics of atomic services

• Consists of OWL surrogates for service constructs– PortType and Message are defined in the form of classes and

properties– Formal Language for Service Documentation

• There are only a few things to USDL– Concepts– Affects– Conditions

18CONFIDENTIAL

OWL WordNet ontology

• A coarse-grained ontology.

• At a conceptual level, it is similar to common real world concepts.

• USDL maps instances of service constructs into OWL WordNet concepts.

• WordNet lexical concepts are used, as opposed to syntactic words, in order to avoid ambiguity of definitions.

19CONFIDENTIAL

Concept

Atomic Concept

Inverted Concept

Conjunctive Concept

Disjunctive Concept

Subclasses of Concept Class

USDL Concepts

• Generic class Concept is defined in USDL.• Concept class defines the semantics of parts of

messages.

20CONFIDENTIAL

Atomic Concept

WordNet Lexeme

WordNet Lexeme

isA property

ofKind property

Atomic Concept

• Actual contact point between USDL and WordNet.

• Acts as a proxy for WordNet lexical entities.• Has exactly one defining value for isA property• Has at most one defining value for ofKind property• Example: Atomic Concept OrderNumber isA number

ofKind order.

21CONFIDENTIAL

USDL Affects

• Semantics of how a service affects the external world is given by the affects property.

• Current design of USDL assumes that each side-effect is one of the following:– creates– updates– deletes– finds

• Generic affects can be used wherein the affects property has USDL Concept as its value.

22CONFIDENTIAL

USDL Conditions

• Generic class Condition is defined to describe constraints.

• Conditions are represented as conjunction or disjunction of binary predicates.

Condition

Atomic Condition Conjunctive

Condition

Disjunctive Condition

Subclasses of Condition Class

23CONFIDENTIAL

Atomic Condition

• Condition/Predicate is a trait or aspect of the resource being described.

• An Atomic Condition represents a Predicate which is of type USDL Concept.

• Has exactly one value for onPart property and at most one value for hasValue property.

• Example constraint C1: OrderNumber greater than 1000

Atomic ConditionC1

ConceptgreaterThan

ConceptOrderNumber

Concept1000

hasConcept property

onPart property

hasValue property

24CONFIDENTIAL

Conjunctive and Disjunctive Conditions:

• Conjunctive condition denotes the conjunction of USDL conditions.

• Disjunctive condition denotes the disjunction of USDL conditions.

• Any n-ary condition can be written as a combination of conjunctions and disjunctions of binary conditions.

25CONFIDENTIAL

<Message rdf:about="#ReserveFlight_Request"> <hasPart rdf:resource="#CustomerName" /> <hasPart rdf:resource="#FlightNumber" /></Message>

<Message rdf:about="#ReserveFlight_Response"> <hasPart rdf:resource="#ReservationCode"/></Message>

Class Message

• Message class is surrogate for WSDL message.– Message is a composite entity with zero or more

parts.

• For example: FlightReservationService

26CONFIDENTIAL

Class PortType

• USDL surrogate for WSDL portType.• A collection of procedures or operations that are

parametric on messages.• Has zero or more Operations as values of hasOperation property.

• For example: FlightReservationService.

<PortType rdf:about="#FlightReservation_Service"> <hasOperation rdf:resource="#ReserveFlight" /></PortType>

27CONFIDENTIAL

Class Operation

• Operation class defines the side-effect of the service via affects property.

• Also defines the input and output messages via hasInput and hasOutput properties.

• For Example: FlightReservationService.<Operation rdf:about="#ReserveFlight"> <hasInput rdf:resource="#ReserveFlight_Request"/> <hasOutput rdf:resource="#ReserveFlight_Response"/> <creates rdf:resource="#ReservationReceipt" /></Operation>

28CONFIDENTIAL

<definitions> ... <PortType name="BookBuying_Service"> <operation name="BookBuying"> <input message="BuyBook_Request"/> <output message="BuyBook_Response"/> </operation> </PortType>

<message name="BuyBook_Request"> <part name="BookISBN" type="xsd:string"/> <part name="UserIdentifier" type="xsd:string"/> <part name="Password" type="xsd:string"/> </message> <message name="BuyBook_Response"> <part name="OrderNumber/Availability" type="xsd:string"/> </message> ... </definitions>

Example WSDL Description

29CONFIDENTIAL

<definitions>

<PortType rdf:about="#BookBuying_Service"> <hasOperation rdf:resource="#BuyBook" /> </PortType>

<Operation rdf:about="#BuyBook"> <hasInput rdf:resource="#BuyBook_Request"/> <hasOutput rdf:resource="#BuyBook_Response"/> <creates rdf:resource="#BookOrder" /> </Operation>

<Message rdf:about="#BuyBook_Request"> <hasPart rdf:resource="#BookISBN" /> <hasPart rdf:resource="#UserIdentifier" /> <hasPart rdf:resource="#Password" /> </Message>

<Message rdf:about="#BuyBook_Response"> <hasPart rdf:resource="#OrderNumber/Availabilty"/> </Message>

<AtomicConcept rdf:about="#BookISBN"> <isA rdf:resource="&wn;identifier"/> <ofKind rdf:resource="#Book" /> </AtomicConcept>

<AtomicConcept rdf:about="#BookISBN"> <isA rdf:resource="&wn;identifier"/> <ofKind rdf:resource="#Book" /> </AtomicConcept> <AtomicConcept rdf:about="#Book"> <isA rdf:resource="&wn;book"/> </AtomicConcept>

<AtomicConcept> <isA rdf:resource="&wn;Password"/> </AtomicConcept>

<AtomicConcept rdf:about="#UserIdentifier"> <isA rdf:resource="&wn;identifier"/> <ofKind rdf:resource="#User" /> <hasCondition rdf:resource="#UserExists" /> </AtomicConcept> <Condition rdf:about="#UserExists"> <hasConcept rdf:resource="#exists"/> <onPart rdf:resource="#UserIdentifier"/> </Condition>

… continued on next slide

Example USDL Description

30CONFIDENTIAL

<AtomicConcept rdf:about="#exists"> <isA rdf:resource="&wn;exists"/> </AtomicConcept> <AtomicConcept rdf:about="#OrderNumber"> <isA rdf:resource="&wn;number"/> <ofKind rdf:resource="#Order" /> </AtomicConcept> <AtomicConcept rdf:about="#Order"> <isA rdf:resource="&wn;order"/> </AtomicConcept> <AtomicConcept rdf:about="#Available"> <isA rdf:resource="&wn;available"/> </AtomicConcept> <AtomicConcept rdf:about="#CreditCard"> <isA rdf:resource="&wn;card" /> <ofKind rdf:resource="#Credit" /> </AtomicConcept>

</definitions>

<DisjunctiveConcept rdf:about="#OrderNumber/Availability"> <hasConcept rdf:resource="#OrderNumber" /> <hasConcept rdf:resource="#NotAvailable" /> </DisjunctiveConcept> <InvertedConcept rdf:about="#NotAvailable"> <hasConcept rdf:resource="#Available" /> </InvertedConcept> <AtomicConcept rdf:about="#BookOrder"> <isA rdf:resource="&wn;order"/> <ofKind rdf:resource="#Book" /> <hasCondition rdf:resource="#CreditExists" /> </AtomicConcept>

<Condition rdf:about="#CreditExists"> <hasConcept rdf:resource="#exists" /> <onPart rdf:resource="#CreditCard" /> </Condition> <AtomicConcept rdf:about="#User"> <isA rdf:resource="&wn;user"/> </AtomicConcept>

Example USDL Description cont’d…

31CONFIDENTIAL

Applications of USDL

• Formal Semantic documentation of web services.

• Intelligent, conceptual-level querying of directories of web-services.

• Automation of service integration.

• Automation of the development of composite web-services, i.e., web-services implemented via composition of pre-existing web-services.

32CONFIDENTIAL

USDL and OWL-S

• Atomic services in OWL-S are described using domain-specific ontology– Limits the applicability of OWL-S.– Allows arousal of semantic aliasing problem.

• OWL-S provides tags– presents for service profile– describedBy for service model– For incorporating domain specific ontological descriptions.

• USDL and OWL-S are perfect compliments– USDL describes atomic services within OWL-S.– Overcomes limitation of domain specific ontologies.

OWL-S is a language for composing USDL descriptions.OWL-S is a language for composing USDL descriptions.

33CONFIDENTIAL

Conclusions

• To make web services ubiquitously available we need a standard formal way of specifying semantics of web services.

• USDL can be used to formally and semantically describe web-services.

• USDL uses OWL WordNet ontology and connectives to provide:– universal ontology:– solves semantic aliasing problem.– does not depend on the process of building domain-specific

ontologies which may have been known to be slow, difficult, and often abandoned.

34CONFIDENTIAL

Q/A

Tom Hite: tom@metallect.com

A Universal Service-Semantics Description Language