35
1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut für Graphische Datenverarbeitung IGD Mohammad-Reza (Saied) Tazari Fraunhofer-Institut für Graphische Datenverarbeitung IGD Ambient Intelligence WS 10/11

1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

Embed Size (px)

Citation preview

Page 1: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

1

V8: Service-based Interoperability – 2

Dr.-Ing. Reiner WichertFraunhofer-Institut für Graphische Datenverarbeitung IGD

Holger Graf

Fraunhofer-Institut für Graphische Datenverarbeitung IGD

Mohammad-Reza (Saied) Tazari

Fraunhofer-Institut für Graphische Datenverarbeitung IGD

Ambient IntelligenceWS 10/11

Page 2: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

2

Gliederung

OASIS SOA Referenzmodell & Referenzarchitektur

Bespiel einer SOA: Web Services

Die OWL-S Ontologie für Dienstebeschreibung

Service Management in PERSONA

Page 3: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

3

OWL-S: Semantic Markup for Web Services

Literatur: http://www.daml.org/services/owl-s/1.1/overview/

Wichtige Ontologiemodule:

http://www.daml.org/services/owl-s/1.1/Service.owl

http://www.daml.org/services/owl-s/1.1/Profile.owl

http://www.daml.org/services/owl-s/1.1/Process.owl

http://www.daml.org/services/owl-s/1.1/Grounding.owl

Page 4: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

4

Top level of the service ontology

Page 5: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

5

Selected classes and properties of the Profile

Page 6: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

6

Selected classes and properties of the Profile (as UML)

Page 7: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

7

Top level of the process ontology – 1

Page 8: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

8

Top level of the process ontology – 2

Page 9: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

9

Top level of the process ontology (as UML)

Page 10: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

10

Grounding: Mapping between OWL-S and WSDL

Page 11: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

11

Gliederung

OASIS SOA Referenzmodell & Referenzarchitektur

Bespiel einer SOA: Web Services

Die OWL-S Ontologie für Dienstebeschreibung

Service Management in PERSONA

▫ Semantic RPC

▫ Der PERSONA Ansatz

▫ Die Realisierung

Page 12: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

12

Literaturhinweis

“PERSONA Manual”

unter www.gris.tu-darmstadt.de/teaching/courses/ws1011/ambient/

“Using Queries for Semantic-based Service Utilization”

unter ceur-ws.org/Vol-525/

“Goal-based Service Utilization Using SPARQL and OWL-S”

unter www.ai.sri.com/daml/services/owl-s/extensions.html

Page 13: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

13

Gliederung

OASIS SOA Referenzmodell & Referenzarchitektur

Bespiel einer SOA: Web Services

Die OWL-S Ontologie für Dienstebeschreibung

Service Management in PERSONA

▫ Semantic RPC

▫ Der PERSONA Ansatz

▫ Die Realisierung

Page 14: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

14

The Vision: Semantic RPC

“his phone turned the sound down by sending a message to all the other

local devices that had a volume control”

[excerpt from “The Semantic Web”, Scientific American, 2001]

An assumption: “The phone” is supposed to

▫ only broadcast a message

▫ without any dependency on addressing and accessing the targeted devices

Just rely on shared concepts

▫ turn the sound down if you

▫ are in the vicinity of location l and

▫ have a volume control

Page 15: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

15

Semantic RPC Goal-based Interoperability

Requests simply express the meaning of what is requested to be achieved

▫ neither addressing concrete target components

▫ nor using syntactical artefacts, such as interfaces

no dependency on technical details of the "how"s, but participants just focus on the "what"s

SQL-like query languages generally provide a suitable formalism for goal-based communication

▫ just rely on a data model

▫ pose no technological or methodical requirements on query handling

▫ use simple "speech acts", such as DELETE, INSERT, SELECT, and UPDATE to formulate the goal

▫ while the remaining of the query allows to unambiguously interpret what the query is supposed to achieve

Page 16: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

16

Realizing The Vision: The Haves – The Groundwork

SOA provides the needed level of abstraction for interoperability

▫ The shared knowledge: a set of interfaces instead of concrete references to

other components

▫ mechanism to publish realizations of those interfaces

▫ mechanism to find, bind, and utilize desired realizations of them

Realizations of SOA, e.g. Web Services & OSGi,

▫ concentrate on needed programmatic interfaces

▫ service registration and search based on signature declarations, possibly

using keyword- and /or taxonomy-based ad and inquiry mechanisms

matches with no or little machine-interpretable semantics

Page 17: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

17

Realizing The Vision: The Haves – Semantic Add-on

The goal of semantic frameworks

▫ more inference and reasoning potential based on logical implications of

ontological assertions

▫ when performing tasks, such as service advertising, constructing service

requests, matchmaking, and composition

Existing solutions

▫ OWL-S (www.daml.org/services/owl-s)

▫ Web Service Modeling Ontology (www.wsmo.org)

▫ Semantic Annotations for WSDL (www.w3.org/2002/ws/sawsdl)

▫ …

Page 18: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

18

Realizing The Vision: The Haves – The Case of OWL-S (I)

Page 19: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

19

Realizing The Vision: The Haves – The Case of OWL-S (II)

Denker/Kagal/Finin/Paolucci/Sycara (ISWC’03) and Preist (ISWC’04)

▫ Service request: use profile ontology to make a “query by example”

▫ Two steps: (1) fetch a matching advertised profile

(2) call the service

Consequences on the client side

▫ Think in terms of signatures

▫ Platform heterogeneity could become an issue

Page 20: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

20

Realizing The Vision: The Not-Haves

Concrete syntax for formulating service requests solely based on domain ontologies

Independence from concrete signatures

Requester‘s view: semantic RPC in a single step

Hiding distribution and heterogeneity of platforms

Semantic RPC bundles the whole process of

issuing a request matchmaking with profiles of

available & accessible services

deriving input parameters for the matched one(s)

calling the service(s) getting the results mapping them back onto an

appropriate response

Page 21: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

21

Gliederung

OASIS SOA Referenzmodell & Referenzarchitektur

Bespiel einer SOA: Web Services

Die OWL-S Ontologie für Dienstebeschreibung

Service Management in PERSONA

▫ Semantic RPC

▫ Der PERSONA Ansatz

▫ Die Realisierung

Page 22: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

22

Ansatz – 1. Service Classes in the Domain Ontology

The OWL-S concept

”service:Service” as the

root of service classes

Explicit relationships

between service classes

and other concepts in

the ontology

More expressive OWL-S

processes and profiles

based on the explicit

spec of the service class

context

Example domain: Lighting

Page 23: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

23

Weiteres Beispiel: Several classes of services

-name-measurementUnit-localCurrencyApproxPricePerUnit

ShoppingItemNutritionalAdviser

User

-name

Food

-amount

FoodIngredient

CookingRecipe

theFood hasRecipe

hasIngredient type EatableItem

NutritionalValue

hasValuePerUnitBREAKFASTTEN_OCLOCK_MEALBRUNCHLUNCHTEASUPPERDINNERLATE_NIGHT_MEAL

Meal

hasCourse

-startDateTime-endDateTime-location

CalendarEntry

eatenFood

Calendar

hasEntry

FoodLogMenuPlan

logs

theMeal

plans

A snippet from a food ontology probably shared with some other services

advisedUser

-role

Actor actors service:Service

CalendarServicemanages

«use

Contact

theContact

ownerA snippet from a calendar ontology

Page 24: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

24

Ansatz – 2. Property Path

See “paths” in www.w3.org/DesignIssues/Notation3 and “property chain”

in www.w3.org/2007/OWL/wiki/Features

▫ Comparable with the usage of dummy variables in SPARQL

SELECT ?o

WHERE {

r1 :p1 ?dummy1 .

?dummy1 :p2 ?dummy2 .

?dummy2 :p3 ?o .

}

Page 25: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

25

Ansatz – 3. The Concept of “Data View”

How a service class views the “world” in terms of data

▫ Derived from the domain ontology that includes the service classes

Virtually, a table with columns representing data reachable through

certain property paths

▫ E.g., for a software component controlling exactly the four lamps in a flat, the

imaginary table at a given point in time may look like the following:

Page 26: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

26

Ansatz – 4. Registering Services

The semantic of input/output parameters and effects

▫ effects either change certain columns of certain rows, add a new row, or

remove existing rows (analogous to SQL update, insert, and delete)

▫ inputs either select a certain set of rows by being incorporated in a filtering

function, or are used in expressions defining effects

▫ outputs return the values in certain columns after filtering and just before or

after the effects has taken place (analogous to SQL select)

Extension of OWL-S,

e.g. change effect

Page 27: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

27

Ansatz – 5. Query Language with a SPARQL-based Syntax

Example queries

Page 28: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

28

Gliederung

OASIS SOA Referenzmodell & Referenzarchitektur

Bespiel einer SOA: Web Services

Die OWL-S Ontologie für Dienstebeschreibung

Service Management in PERSONA

▫ Semantic RPC

▫ Der PERSONA Ansatz

▫ Die Realisierung

Page 29: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

29

Overview of the implementation of the service bus

shared base

«interface»Bus

AbstractBusBusStrategy

«interface»ServiceBus

ServiceBusImplServiceBusStrategy

*

implements

implements

Page 30: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

30

The service bus members

shared base

«interface»BusMember

«interface»Caller

«interface»Callee

+serviceRegistered(in theService)+serviceUnregistered(in theService)

«interface»AvailabilitySubscriber

#ServiceCaller(BundleContext)+addAvailabilitySubscription(AvailabilitySubscriber, ServiceRequest)+call(ServiceRequest): ServiceResponse+getAllServices(): ServiceProfile[]+getMatchingServices(ServiceRequest): ServiceProfile[]+getMatchingServices(String[]): ServiceProfile[]+handleResponse(String, ServiceResponse)+sendRequest(ServiceRequest): String+removeAvailabilitySubscription(AvailabilitySubscriber, String)

ServiceCaller

#ServiceCallee(BundleContext, ServiceProfile[ ])#addNewRegParams(ServiceProfile[])#removeMatchingRegParams(ServiceProfile[])+handleCall(ServiceCall): ServiceResponse

ServiceCallee

Abstract

Abstract

Page 31: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

31

Realization of the OWL-S Service Profiles (with PERSONA extensions)

defaultValue : ObjectparameterCardinality : intparameterMaxCardinality : intparameterMinCardinality : intparameterType : URIparameterValue : Object

ProcessParameter

getInstanceLevelRestrictionOnProp(String) : Restriction

Service

serviceName : StringtextDescription : Stringhas_process : URIhostLocation : LocationresponseTimeout : doublespatialCoverage : Location[]

ServiceProfile

presents

presentedBy

hasInput

hasResult

hasOutput

ServiceCallee

averageQoSRating : RatingaverageResponseTime : doublemaxQoSRating : RatingmaxResponseTime : doubleminQoSRating : RatingminResponseTime : doublenumberOfQoSRatings : intnumberOfResponseTimeMeasurements : int

ServiceRealization

theProfile

theCallee

ProcessResult

affectedProperty : PropertyPath

ProcessEffect

propertyValue : Object

AddEffect

propertyValue : Object

ChangeEffect

RemoveEffect hasEffect

OutputBindingwithOutput

toParam

valueFunction : AggregatingFilter

AggregatingBinding

valueFunction : ClassConversion

ClassConversionBinding

valueFunction : LangConversion

LanguageConversionBinding

valueForm : PropertyPath

SimpleBinding

valueFunction : UnitConversion

UnitConversionBinding

ManagedIndividual

isGeneralPurpose : boolean

UIEffect

Input

Output

Page 32: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

32

Realization of service queries in terms of service request objects

AVGBESTMAXMAX_DISTANCEMINMIN_DISTANCESUM

AggregationFunction

params : List

AggregatingFilter theFunction

Service ServiceRequest

aggregatingFilter

requestedService

ProcessResult

requiredResult

ServiceCaller

theCaller

ManagedIndividualinvolvedUser

Page 33: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

33

Service Calls & Service Responses

process : URI

ServiceCalltoParam : InputvalueData : Object

InputBinding

hasDataFrom

ManagedIndividualinvolvedUser

SUCCEEDEDPERFORM_FAILURENO_MATCHING_REALIZATIONRESPONSE_TIMED_OUT

CallStatus

withOutput : OutputerrorDescription : String

ServiceResponse callStatus

Page 34: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

34

Service Bus – Summary

Realizes the semantic interoperability platform sketched on slide 20

▫ More specifically, handles service requests

Bus strategy: one specific instance of the service bus is the coordinator with

a global registry of service profiles

Possibilities for registering service profiles, querying the profiles, and

subscribing for the availability of services

Additional main messages: service requests, service calls, and service

responses

▫ Service request: certain data structure that could be the result of parsing a query

similar to the one on slide 27

Covers all sorts of service-based interoperability needs within PERSONA

Page 35: 1 V8: Service-based Interoperability – 2 Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Fraunhofer-Institut

35

Danke für die Aufmerksamkeit

&

bis zur nächsten Vorlesung