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
2
Gliederung
OASIS SOA Referenzmodell & Referenzarchitektur
Bespiel einer SOA: Web Services
Die OWL-S Ontologie für Dienstebeschreibung
Service Management in PERSONA
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
4
Top level of the service ontology
5
Selected classes and properties of the Profile
6
Selected classes and properties of the Profile (as UML)
7
Top level of the process ontology – 1
8
Top level of the process ontology – 2
9
Top level of the process ontology (as UML)
10
Grounding: Mapping between OWL-S and WSDL
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
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
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
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
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
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
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)
▫ …
18
Realizing The Vision: The Haves – The Case of OWL-S (I)
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
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
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
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
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
s»
Contact
theContact
ownerA snippet from a calendar ontology
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 .
}
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:
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
27
Ansatz – 5. Query Language with a SPARQL-based Syntax
Example queries
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
29
Overview of the implementation of the service bus
shared base
«interface»Bus
AbstractBusBusStrategy
«interface»ServiceBus
ServiceBusImplServiceBusStrategy
*
implements
implements
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
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
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
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
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
35
Danke für die Aufmerksamkeit
&
bis zur nächsten Vorlesung
Top Related