1 bringing web principles to services – through a request oriented architecture muhammed j. al...
Post on 21-Dec-2015
217 views
TRANSCRIPT
1
Bringing Web Principles to Services – Through a Request Oriented
Architecture
Muhammed J. Al Muhammed David W. Embley
Stephen W. Liddle Yuri A. Tijerino
Brigham Young University and Kwansei Gakuin UniversitySupported by:
2
Example of A Free-Form Service Request
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
4
Problems with Web Services
Data heterogeneity problem
What is the weather forecast for Springfield, Illinois, between the 9th and 13th?
Coupling Problem
Discover the required service
Know how to use
Communicate: keep the communication until the service responds
5
Best: invoke services by only specifying your needs
The service recognizes constraints
And services the request
8
Use the Web principles for communication
Consequence: service-requester decoupling Requesters do not need to
know about the web services intricacies
But, services must be capable of resolving data heterogeneity
WWW
Requester
Web ServiceWeb Service
Web-Principled Services
Read service requests
Return responses
9
Ontology-Based Web Services(OBWSs) Domain ontologies
Object sets (concepts), relationship sets (relations) Main object (domain) set to specify the service type Instance semantics (data frames): capture instances
of a concept in terms of their external and internal representations. regular expressions, operations that manipulate concept
instances, etc. Process ontology
Uses domain ontologies to process requests Domain independence: coded once and for all
10
DomainOntologies
Request-Ontology Matching
User Free-Form Request
Publish Requests
OBWSs
Ontology Feeds
Subscriptions
OBWSs Propose Services
Requestor
Select Best Proposal
Establish Direct Link
Reply to Request
Request-Oriented ArchitectureBroker
11
Requesters unaware of OBWSs Requesters do not have to discover
OBWSs: the broker does. The communication links only created
when an OBWS returns a response Result: OBWS-Requester decoupling
Benefits of Request-Oriented Architecture
13
From Traditional Web Service to OBWS
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
• Requires One-time Manual Mapping of Domain Ontology to Internal Web Service Representation
14
Domain Ontology: Object-Sets (Extensional Concepts) Associated with Data Frames
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
StartDate internal representation: date -- format: yyyy-mm-dd default value: (today) text representation: {monthName}\s+([0]?[1-9] | [12]\d|3[01])(\s*\,)?\s+\d{4} | (the\s+)?([0]?[1-9] | [12]\d|3[01])\s*(th|...)|... toInternalRepresentation(x:string) returns (StartDate) Tomorrow() returns (StartDate) context keywords/phrases: tomorrow|next\s*day | ... NrDaysBetween(x1:StartDate, x2:EndDate) returns (NumDays) context keywords/phrases: between the \s+{x1}\s+and\s+{x2} | ...
NumDays internal representation: integer default value: 1 …Longitude
getLongitude(x1:State, x2:City) returns (Longitude)
15
Ontology-Based Constraint Recognition with Data Frames
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
Simple Object Set Mapping
16
Ontology-Based Constraint Recognition with Data Frames
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
Simple Object Set Mapping
17
Ontology-Based Constraint Recognition w/ DFs
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
StartDate ... NrDaysBetween(x1:StartDate, x2:EndDate) returns (NumDays) context keywords/phrases: between the \s+{x1}\s+and\s+{x2} | ...
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
Complex range mapping
18
Ontology-Based Constraint Recognition w/ DFs
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
StartDate ... NrDaysBetween(x1:StartDate, x2:EndDate) returns (NumDays) context keywords/phrases: between the \s+{x1}\s+and\s+{x2} | ...
Format … Default value: “24 Hourly” …
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
Use default values when possible
19
Ontology-Based Constraint Recognition w/ DFs
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
City
State
EndDate
StartDate
NumDays
Place
Longitude
ZipCode
Latitude
ReportPeriod
MinimumTemperature
MaximumTemperaturePercentChanceOfPrecipitation
WeatherReport Formathas
is forstarts onis for
is for ->
produces
has has
has
identify
is for
identify
determine
is in
StartDate ... NrDaysBetween(x1:StartDate, x2:EndDate) returns (NumDays) context keywords/phrases: between the \s+{x1}\s+and\s+{x2} | ...
Format … Default value: “24 Hourly” …
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
20
City
StatePlace
Zip Code Latitude
Longitude
Report
Minimum Temperature
Maximum TemperaturePrecipitation
Weather Report
Start Date numDay
Formathas
is foris onis for
is for ->
produces
has has
has
has
has
has
has
City
StatePlace
Zip Code Latitude
Longitude
Report
Minimum Temperature
Maximum TemperaturePrecipitation
Weather Report
Start Date numDay
Formathas
is foris onis for
is for ->
produces
has has
has
has
has
has
has
Result of Ontology-Based Constraint Recognition w/ DFs
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
Knowns
Unknowns
Converted
21
Result of Ontology-Based Constraint Recognition w/ DFs
Given: Latitude = 38.99, Longitude = -77.99 StartDate = 2007-7-9, NumDays = 5 Format = 24h
Report: Precipitation = ?, MinTemp = ?, MaxTemp = ?
<?xml version ‘1.0’ ?>
<obws-query>
<report>
<li>?probability-of-precipitation</li>
<li>?minimum-temperature</li>
<li>?maximum-temperature</li>
</report>
<constraints>
<latitute>38.99</latitude>
<longitude>-77.99</longitude>
<startDate>2007-7-9</startDate>
<numDays>5</numDays>
<format>24-hourly</format>
</constraints>
</obws-query>
22
Service Selection
WS/OBWS 1
WS/OBWS 2
OBWS 1
OBWS x
…
… Broker(Profile-based
Filtering)
Complete/Free/XML/(table 4,2), …Partial/Free/Text/List…
Complete/Subscription/XML/API…
Complete/Advertisement/XML/Table…
<?xml version ‘1.0’ ?>
<obws-query>
<report>
<li>?probability-of-precipitation</li>
<li>?minimum-temperature</li>
<li>?maximum-temperature</li>
</report>
<constraints>
<latitute>38.99</latitude>
<longitude>-77.99</longitude>
<startDate>2007-7-9</startDate>
<numDays>5</numDays>
<format>24-hourly</format>
</constraints>
</obws-query>
Post
Subscribe toNotify
Request
Browser
Filtered
Complete/Free/XML/(table 4,2), …
Complete/Ad-based/XML/Table
The following web services can answer your query. Please select one:
Select CancelRetry
Select
23
Query Results
92° 68° 1%
98° 56° 0%
97° 60° 0%
89° 53° 10%
101 69 0%
MaximumTemp ChanceOfPrecipMinimumTemp
What’s the weather forecast for Springfield, Illinois, between the 9th and 13th?
26
Conclusions
Ontology-Base Web Services Resolve data heterogeneity
Request-Oriented Architecture Requester-service decoupling
Web-Principled Traditional Web Service Build ontology to describe the service Mapping between the ontology and the I\O of the
service
www.deg.byu.edu
28
Identify Constraints (Results in Heterogeneity Resolution)
What’s the weather forecast for Springfield, Illinois, between the 21st and 24th?
WeatherReport(x0) is for Latitude(getLatitude(“Illinois”, “Springfield”)) WeatherReport(x0) is for Longitude(getLongitude(“Illinois”, “Springfield”)) WeatherReport(x0) starts on StartDate(NextDate(“21st”)) WeatherReport(x0) is for NumDays(NrDaysBetween(NextDate(“21st”),
NextDate(“24th”))) WeatherReport(x0) has Format(“24 Hourly”) WeatherReport(x0) produces ReportPeriod(x1) ReportPeriod(x1) has MaximumTemperature(x2) ReportPeriod(x1) has MinimumTemperature(x3) ReportPeriod(x1) has PercentChanceOfPrecipitation(x4)
The heart of the problem:constraint recognition Predicate calculus
31
Benefits of a ROA vs a SOA for End-User Oriented Services In a ROA Instead of registering, with at the metadata
description level using WSDL, a service subscribes to an ontology providing greater flexibility E.g., still works even if the interface is changed
The ROA proposed is more suitable for end-user oriented web services, but can still be used to facilitate communication among disparate and heterogeneous services. E.g., we use the weather forecast ontology to facilitate
communication between geographic coordinates web service and weather forecasting service
32
Process Flow
DomainOntologies Identify constrains
User Free-Form Request
Publish Requests
OBWSs
Ontology Feeds
Subscriptions
OBWSs propose services
Requestor
Select best proposal
Establish direct Link
Reply to request
Results in D
ecoupling
33
Publish Request to Ontology Feed
Convert RCQ to
OntologyQuery
Convert OntologyQuery toDB query
Free-form Request
Publish query:Known variable values
Unknown variable values
38
Ontology-Enabled Request Oriented Architecture Basic Principles behind an ontology-enabled ROA
Provides heterogeneity resolution User does not need to know how the intricacies of interface (e.g., format,
data-types, etc) Provides decoupling between service requesters and services providers
No need for service discovery Service consumer oriented as opposed to service provider oriented
But can also support communication between applications Scalable
Services can be added through a subscription to domain-ontology model Multiple services may service a request through a mediator
Personalizable Requesters can personalize their service preferences
Policy oriented Policies determine how requests are matched to services