Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal...
-
Upload
brady-ohara -
Category
Documents
-
view
218 -
download
3
Transcript of Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal...
Reference ImplementationWSMX
Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba)
Digital Enterprise Research [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
Conceptual Model
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_ontuse_ontology: RN_ontuse_concept: E1_ont.POuse_concept: RN_ont.POuse_proxy: sendE2_PO
trading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
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
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
Mediation - Example
• Address1– Street and number
• Street• Number
– Locality– Country– ZIP
• Axioms:zip_number[value => integer]ZN[value->V]:-ZN:zip_number, V>0.
local[str => street, number => integer]
address1[str_no => local, loc => locality,
country => country, zip => zip_number]
• Address0– 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].
address0[str => street, no => positive_int,
loc => locality, county => county,
country => country, zip => zip_code].
Ontology1, Address1 < -- > Ontology0, Address0
Mediation - Example
• Address2– Address line 1– Address line 2
• Axioms:address[adr_line_1 => string,
adr_line_2 => string].
• 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].
Require further knowledge about the internal structure of the source concept instances (with respect to the system that generates them)
Ontology2, Address2 < -- > Ontology0, Address0
Invocation
Challenges:• Semantic Web Services involving
complex interactions• Goal-Capability matching by
combining web services• Semi-automatic goal decomposition• Semi-automatic service invocation
Invocation Problem (simple)
Amazon
B&N
eBay
goal:buy_book capability: buy_book
WS
invocationengine
?
you need matching on choreography, capability, etc…
you need selection onprice, reliability, etc…
capability: buy_2ndHand_book
Invocation Problem (complex)
plumber
masoner
constructorgoal:build_house
WS
invocationengine architect
lawyer
capability:
build_plumbing
capability:build_walls
capability:make_blueprint
capability:design_house
capability:make_contractgoal:build_plumbing
goal:make_contractgoal:design:house
now you also need decomposition
and what to do when something goes wrong?
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
WSMO Integration Type written declaratively in BNF form
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
Mediator
Invoker
Ontology
Compiler
History
Integration instances
Create PO1234Mediate PO1234, PORN
Invoke E2, PORN
AddHistory PORN
“Integ A”
For Compile Receive PORN
::AddHistory
Second Enterprise
12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897)
Once compiled, the instructions can be stored by the WSMX for reuse
“Integ A”
Invoke stored execution instances using input parameters
A set of declarative instructions that can be interpreted by the WSMX.
“IntegA”
Architecture
WSMO Integration Type written declaratively in BNF form
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_POtrading_partner: E2mediator: E1_ont, RN_ontproxy: sendE2_PO
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