Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute [email protected] 1st F2F meeting SDK cluster working group on.

Download Report

Transcript Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute [email protected] 1st F2F meeting SDK cluster working group on.

Reference Implementation
WSMX
Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba)
Digital Enterprise Research Institute
[email protected]
1st F2F meeting SDK cluster working group on Semantic Web Services
Wiesbaden, Germany, 15-03-2004
WSMX Overview
• Goal
– To build a Web Service execution environment as a reference
implementation of WSMO
• Initial scope
– WSMO Lite
• Sub-deliverables
–
–
–
–
–
D13.1 Conceptual model
D13.2 Execution Semantics
D13.3 Mediation
D13.4 Architecture
D13.5 Implementation
[email protected]
2
Conceptual Model
[email protected]
3
Conceptual Model
• Integration Type
– Defines an integration task
– WSMO written in BNF form
– Contains a set of declarative instructions that can be validated and
interpreted by WSMX
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
[email protected]
4
Execution Semantics
WSMX Execution Semantics
• What are they?
– Formal definition of WSMX operational behaviour
• How to Model them?
– By identifying states and how the execution environment
transitions between states
– By using modelling technique such as Petri Nets to identify
problems such as deadlocks
[email protected]
5
Mediation
• Mediation can mean transformation
• Challenges faced
– Structure
• Different composition of concepts
– Completeness
• Incomplete concept representation on source or target
– Data type mismatch
• Example: Zip Code as string; Zip Code as positive integer
– Subsumption
[email protected]
6
Mediation - Example
Ontology1, Address1 < -- > Ontology0, Address0
•
–
–
–
–
Address0
–
–
–
–
–
–
Street and number
•
•
•
•
Address1
Street
Number
Locality
Country
ZIP
Axioms:
•
zip_number[value => integer]
ZN[value->V]:-ZN:zip_number, V>0.
Street
Number
Locality
State, province or county
Country
ZIP Code
Axioms:
positive_int[value => int].
FORALL PI:positive_int <- PI>0.
zip_code[value => string].
local[str => street, number => integer]
address1[str_no => local,
loc => locality,
country => country,
zip => zip_number]
address0[str => street,
no => positive_int,
loc => locality,
county => county,
country => country,
zip => zip_code].
[email protected]
7
Mediation - Example
Ontology2, Address2 < -- > Ontology0, Address0
•
–
–
•
•
Address2
–
–
–
–
–
–
Address line 1
Address line 2
Axioms:
address[adr_line_1 => string,
adr_line_2 => string].
•
Require further knowledge about the
internal structure of the source
concept instances (with respect to the
system that generates them)
Address0
Street
Number
Locality
State, province or county
Country
ZIP Code
Axioms:
positive_int[value => int].
FORALL SN:street_numbe <- SN>0.
zip_code[value => string].
address0[str => street,
no => positive_int,
loc => locality,
county => county,
country => country,
zip => zip_code].
[email protected]
8
Invocation
Challenges:
• Semantic Web Services involving complex
interactions
• Goal-Capability matching by combining web
services
• Semi-automatic goal decomposition
• Semi-automatic service invocation
[email protected]
9
Invocation Problem (simple)
goal:buy_book
capability: buy_book
?
WS
invocation
engine
Amazon
B&N
eBay
capability: buy_2ndHand_book
you need matching on
choreography, capability, etc…
you need selection on
price, reliability, etc…
[email protected]
10
Invocation Problem (complex)
capability:
build_plumbing
plumber
WS
capability:build_walls
masoner
capability:make_blueprint
invocation
engine
goal:build_house
capability:design_house
architect
goal:build_plumbing
goal:design:house
constructor
capability:make_contract
goal:make_contract
lawyer
now you also need decomposition
and what to do [email protected]
when something goes wrong?
11
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
12
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
Mediator
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
13
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
14
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can
be stored by the WSMX for reuse
[email protected]
15
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
16
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
17
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
18
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
19
Architecture
12345: execute(“IntegA”, PO1234)
23456: execute(“IntegB”, PO3897)
WSMO Integration Type
written declaratively in
BNF form
Invoke stored execution instances
using input parameters
Integration instances
“Integ A”
trading_partner: E1 (self)
use_ontology: E1_ont
use_ontology: RN_ont
use_concept: E1_ont.PO
use_concept: RN_ont.PO
use_proxy: sendE2_PO
trading_partner: E2
mediator: E1_ont, RN_ont
proxy: sendE2_PO
Mediator
Second Enterprise
“IntegA”
Invoker
For Compile
A set of declarative instructions that
can be interpreted by the WSMX.
Compiler
Create PO1234
Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
Ontology
Receive PORN
:
:
AddHistory
History
“Integ A”
Once compiled, the instructions can be
stored by the WSMX for reuse
[email protected]
20
Summary and Next Steps
• Conceptual
– Feedback to WSMO
– Implement BNF based language
• Mediation and Invocation
– First implementation
• Architecture
– Complete initial design
• Implementation
– Build software that provides an execution environment for
Web Services based on WSMO
[email protected]
21