Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal...

21
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

Transcript of Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal...

Page 1: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

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

Page 2: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 2

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

Page 3: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 3

Conceptual Model

Page 4: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 4

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

Page 5: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 5

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

Page 6: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 6

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

Page 7: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 7

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

Page 8: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 8

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

Page 9: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 9

Invocation

Challenges:• Semantic Web Services involving

complex interactions• Goal-Capability matching by

combining web services• Semi-automatic goal decomposition• Semi-automatic service invocation

Page 10: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 10

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

Page 11: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 11

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?

Page 12: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 12

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

Page 13: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 13

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

Page 14: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 14

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

Page 15: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 15

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

Page 16: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 16

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

Page 17: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 17

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

Page 18: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 18

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

Page 19: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 19

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

Page 20: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 20

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

Page 21: Reference Implementation WSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie.

[email protected] 21

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