210 likes | 333 Views
Reference Implementation WSMX. Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie 1st F2F meeting SDK cluster working group on Semantic Web Services Wiesbaden, Germany, 15-03-2004. WSMX Overview. Goal
E N D
Reference ImplementationWSMX Matthew Moran, (Emilia Cimpian, AdrianMocan, Eyal Oren, Michal Zaremba) Digital Enterprise Research Institute matthew.moran@deri.ie 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 matthew.moran@deri.ie
Conceptual Model matthew.moran@deri.ie
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 matthew.moran@deri.ie
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
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
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]. Mediation - Example Ontology1, Address1 < -- > Ontology0, Address0 matthew.moran@deri.ie
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]. Mediation - Example Ontology2, Address2 < -- > Ontology0, Address0 Require further knowledge about the internal structure of the source concept instances (with respect to the system that generates them) matthew.moran@deri.ie
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
Amazon B&N eBay Invocation Problem (simple) goal:buy_book capability: buy_book ? WS invocation engine capability: buy_2ndHand_book you need matching on choreography, capability, etc…you need selection onprice, reliability, etc… matthew.moran@deri.ie
lawyer constructor masoner architect plumber Invocation Problem (complex) capability:build_plumbing WS capability:build_walls capability:make_blueprint goal:build_house invocation engine capability:design_house goal:build_plumbing capability:make_contract goal:make_contract goal:design:house now you also need decomposition and what to do when something goes wrong? matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
Architecture 12345: execute(“IntegA”, PO1234)23456: execute(“IntegB”, PO3897) Invoke stored execution instances using input parameters WSMO Integration Type written declaratively in BNF form Integration instances Second Enterprise “IntegA” Mediator 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 “Integ A” Invoker Create PO1234Mediate PO1234, PORNInvoke E2, PORNAddHistory PORN Receive PORN::AddHistory For Compile Compiler Ontology History A set of declarative instructions that can be interpreted by the WSMX. “Integ A” Once compiled, the instructions can be stored by the WSMX for reuse matthew.moran@deri.ie
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 matthew.moran@deri.ie