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 ReportTranscript 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