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

Post on 14-Dec-2015

216 views 3 download

Tags:

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 Institutematthew.moran@deri.ie

1st F2F meeting SDK cluster working group on Semantic Web Services

Wiesbaden, Germany, 15-03-2004

matthew.moran@deri.ie 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

matthew.moran@deri.ie 3

Conceptual Model

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 9

Invocation

Challenges:• Semantic Web Services involving

complex interactions• Goal-Capability matching by

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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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?

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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

matthew.moran@deri.ie 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