Automated Syntactic Mediation for Web Service Integration


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • The presentation concentrates on the problem that arises when service providers use different representations for conceptually equivalent information. I will present a solution using ontolgoies that capture data structure and semantics, and a mapping language to express the relation between data models and ontologies This work is set against the background of a bioinformatics use case… in the context of the mygrid project Real Datasets Real Services
  • Automated Syntactic Mediation for Web Service Integration

    1. 1. Automated Syntactic Mediation for Web Service Integration Martin Szomszor ( [email_address] )
    2. 2. Presentation Outline <ul><li>Contemporary workflow design pattern </li></ul><ul><ul><li>Using workflow to capture experimentation process </li></ul></ul><ul><ul><li>Discovery of services using semantics </li></ul></ul><ul><li>Problem description </li></ul><ul><ul><li>Syntactic incompatibility </li></ul></ul><ul><li>Using ontologies for mediation </li></ul><ul><li>Architecture to support syntactic mediation </li></ul><ul><li>Mapping Language </li></ul><ul><ul><li>Overview of mapping mechanics </li></ul></ul><ul><ul><li>Implementation description </li></ul></ul><ul><li>Future work </li></ul><ul><ul><li>Dynamic discovery of Mappings </li></ul></ul>
    3. 3. In Silico Experimentation <ul><li>Computational experimentation </li></ul><ul><li>Access to resources provided by Web Services </li></ul><ul><li>Users map experimental process to workflow </li></ul><ul><li>Tasks are realised by service instances </li></ul>
    4. 4. Service Discovery <ul><li>Users need to find services to fulfill given tasks e.g. </li></ul><ul><ul><li>Retrieve sequence data </li></ul></ul><ul><ul><li>Sequence alignment (Blast) </li></ul></ul><ul><li>There are lots of services ! </li></ul><ul><li>Interface definitions can be terse, often un-documented and sometimes cryptic </li></ul><ul><li>Limited semantic value </li></ul><ul><li>Manual discovery not ideal </li></ul>
    5. 5. Semantic Discovery <ul><li>Support users in the discovery of services according to domain specific terminology </li></ul><ul><li>Annotate service descriptions with concepts from an ontology (PEDRO annotation tool) </li></ul><ul><ul><li>Input and output types assigned a semantic type by a reference to an ontology concept </li></ul></ul><ul><li>Discover services by: </li></ul><ul><ul><li>Task performed </li></ul></ul><ul><ul><li>Resources used </li></ul></ul><ul><ul><li>Input and output semantic types </li></ul></ul>
    6. 6. Use Case <ul><li>Common bioinformatics task: </li></ul><ul><ul><li>Find sequence data for a given id (accession number) </li></ul></ul><ul><ul><li>Perform sequence alignment to discover similar sequence data </li></ul></ul><ul><ul><li>Obtain results </li></ul></ul><ul><li>Itself a complete workflow, but likely to feature in larger workflows too </li></ul>
    7. 7. Semantically Driven Workflow Design <ul><li>When building workflows, users connect services because they are deemed semantically compatible: </li></ul><ul><ul><li>Output semantic type equivalent to input semantic type </li></ul></ul>
    8. 8. Syntactic Compatibility <ul><li>However, semantically compatible service interfaces may not be syntactically compatible (i.e. different data formats) </li></ul>
    9. 9. Syntactic Mediation <ul><li>When a mismatch in data formats occurs within a workflow, a translation component is required </li></ul><ul><li>Current solutions are manual </li></ul><ul><ul><li>Identify when mismatch occurs </li></ul></ul><ul><ul><li>Derive conversion requirements </li></ul></ul><ul><ul><li>Find suitable conversion tool </li></ul></ul><ul><ul><li>Create new translation components if necessary </li></ul></ul><ul><li>These conversion components come in a variety of guises </li></ul><ul><ul><li>Translation Scripts (e.g. XSLT) </li></ul></ul><ul><ul><li>Bespoke Code (JAVA and PERL) </li></ul></ul><ul><ul><li>Web Services </li></ul></ul>
    10. 10. <ul><li>Simple solution: Adaptor for each compatible data format </li></ul><ul><ul><li>O(n 2 ) </li></ul></ul><ul><ul><li>Poor Scalability </li></ul></ul><ul><li>Alternative: Introduce intermediate representation </li></ul><ul><ul><li>O(n) </li></ul></ul><ul><ul><li>Less effort introducing new formats </li></ul></ul><ul><li>Data Integration problem </li></ul>Conversion Approaches f c e b d a f c e b d a
    11. 11. Three Layer View <ul><li>Physical Layer </li></ul><ul><ul><li>Data can be stored in different formats: </li></ul></ul><ul><ul><ul><li>E.g. binary, text, xml, relational database, etc… </li></ul></ul></ul><ul><li>Logical Layer </li></ul><ul><ul><li>Organisation of data elements described by a schema: </li></ul></ul><ul><ul><ul><li>E.g XML Schema, relational database model </li></ul></ul></ul><ul><li>Conceptual Layer </li></ul><ul><ul><li>What the data means (semantics) </li></ul></ul><ul><ul><ul><li>E.g. Ontology, description logic, Entity Relation Diagram </li></ul></ul></ul>
    12. 12. Intermediate Representation <ul><li>Data integration field has used this solution in similar application domains: </li></ul><ul><ul><li>TAMBIS Project [Stevens et al 2003] </li></ul></ul><ul><ul><ul><li>Complex query formulation over diverse bioinformatics information sources </li></ul></ul></ul><ul><ul><li>SEEK Project [Bowers and Ludascher 2004] </li></ul></ul><ul><ul><ul><li>An ontology-driven framework for geographic data transformation in scientific workflows </li></ul></ul></ul><ul><li>Intermediate representation in the form of a conceptual model </li></ul><ul><ul><li>E.g. Ontology, Description Logic </li></ul></ul>
    13. 13. Architecture Requirements <ul><li>OWL ontologies capture data format structure and semantics: </li></ul><ul><ul><li>Existing service ontologies [e.g. C. Wroe et al 2003] can be extended with concepts and properties to describe data contents </li></ul></ul><ul><li>Modular and composable mapping language </li></ul><ul><ul><li>Mapping overhead reduced when service providers expose multiple operations over single schemas </li></ul></ul><ul><ul><li>When schemas are combined to form new datasets, existing mappings can be reused </li></ul></ul>
    14. 14. Architecture Requirements <ul><li>Invocation of arbitrary Web Services </li></ul><ul><ul><li>Grid and WS applications pull resources from multiple providers into a dynamic and volatile environment </li></ul></ul><ul><ul><li>Must be able to invoke previously unseen services </li></ul></ul><ul><li>Minimise annotation overhead </li></ul><ul><ul><li>Reuse existing Semantic Web Service description methods </li></ul></ul><ul><ul><li>Input and output types are assigned a concept (semantic type) </li></ul></ul>
    15. 15. Mapping XML to OWL <ul><li>Problem can be simplified by assuming a canonical XML representation for OWL concept instances [OWL- XI ] </li></ul><ul><ul><li>XML serialisations of OWL concepts commonly used </li></ul></ul><ul><li>However, XML Schemas to validate individuals do not exist </li></ul><ul><li>To support validation, OWL instance Schemas [OWL- XIS ] are generated from ontologies </li></ul><ul><ul><li>Concept hierarchies computed </li></ul></ul><ul><ul><li>Jena + Java Implementation </li></ul></ul><ul><li>Enables us to view the translation as an XML to XML transformation </li></ul>
    16. 16. Architecture Diagram Service providers describe their Web Service interfaces using WSDL. Data consumed and produced is defined using XML Schema. OWL Ontologies are created to Describe the information contained Within Bioinformatics data structures. Serialisation and Realisation Mappings describe how to transform XML dopcuments to and from [OWL-XI] Semantic Annotations associate each WSDL Message part with a concept from the ontology. [OWL XIS] are generated to validate ontology instances.
    17. 17. Configurable Mediator <ul><li>Input: </li></ul><ul><ul><li>Source data instance </li></ul></ul><ul><ul><li>Source schema </li></ul></ul><ul><ul><li>Realisation Mapping (source format -> ontology) </li></ul></ul><ul><ul><li>Ontology Definition </li></ul></ul><ul><ul><li>Serialisation Mapping (ontology -> destination format) </li></ul></ul><ul><ul><li>Destination Schema </li></ul></ul><ul><li>Output: </li></ul><ul><ul><li>Destination data instance </li></ul></ul><ul><li>Conversion performed via intermediate OWL concept instance </li></ul>
    18. 18. Configurable Mediator
    19. 19. Mapping Mechanics <S> <X>foo</X> <X>bar</X> </S> <D> <Y>foo</Y> <Y>bar</Y> </D> Source Document Destination Document m 1 : S/X -> D/Y m 2 : X/$ -> Y/$ Mappings
    20. 20. Mapping Mechanics S X “ foo” S/* S/* xsd:string xsd:string X “ bar” D Y “ foo” D/* D/* xsd:string xsd:string Y “ bar” m 1 : S/X -> D/Y m 2 : X/$ -> Y/$
    21. 21. Example M-Binding <binding xmlns=&quot;; xmlns:sns=&quot;; xmlns:dns=&quot;;> <mapping id= &quot;1&quot; > <source match= &quot;sns:S/sns:X&quot; /> <destination create= &quot;dns:D[join]/dns:Y[branch]&quot; /> </mapping> <mapping id= ”2&quot; > <source match= &quot;sns:X/$&quot; /> <destination create= &quot;dns:Y[join]/$&quot; /> </mapping> </binding>
    22. 22. Bio Example <ddbj:DDBJXML> <ddbj:ACCESSION>AB000059</ddbj:ACCESSION> <ddbj:FEATURES> <ddbj:source> <ddbj:location>1..1755</ddbj:location> <ddbj:qualifiers name=&quot;isolate&quot;>Som1</ddbj:qualifiers> <ddbj:qualifiers name=&quot;lab_host&quot;>Felis domesticus</ddbj:qualifiers> </ddbj:source> </ddbj:FEATURES> </ddbj:DDBJXML> <ont:Sequence_Data_Record> <ont:accession_id>AB000059</ont:accession_id> <ont:has_feature> <ont:Feature_Source> <ont:isolate>Som1</ont:isolate> <ont:lab_host>Felis domesticus</ont:lab_host> <ont:location> <ont:Feature_Location> <ont:start>1</ont:start> <ont:end>1755</ont:end> </ont:Feature_Location> </ont:location> </ont:Feature_source> </ont:has_feature> </ont:Sequence_Data_Record> Simple One-to-One Element and literal Many-to-Many Split literal value Predicate evaluation
    23. 23. Example M-Binding <binding xmlns=&quot;; xmlns:sns=&quot;; xmlns:dns=&quot;;> <mapping id=&quot;1&quot;> <source match=&quot;sns:DDBJXML/sns:ACCESSION&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:accession_id[branch]/&quot;/> </mapping> <mapping id=“2”> <source match=&quot;sns:ACCESSION/$&quot;/> <destination create=&quot;dns:accession_id[join]/$&quot;/> </mapping> <mapping id=”3&quot;> <source match=&quot;sns:DDBJXML/sns:FEATURES/sns:source&quot;/> <destination create=&quot;dns:Sequence_Data_Record[join]/dns:has_feature[branch]/ dns:Feature_Source[branch]&quot;/> </mapping> <mapping id=”4&quot;> <source match='sns:source/sns:qualifiers[sns:qualifiers/sns:name/$ = &quot;lab_host&quot;]'/> <destination create=&quot;dns:Feature_Source[join]/dns:lab-host[branch]&quot;/> <mapping> <source match=&quot;sns:qualifiers/$&quot;/> <destination create=&quot;dns:lab-host[join]/$&quot;/> </mapping> </mapping> <mapping id=”5&quot;> <source match=&quot;sns:location/$^[^.]+&quot;/> <destination create=&quot;dns:Location[join]/dns:start[branch]/$&quot;/> </mapping> </binding>
    24. 24. Conclusions <ul><li>Provide infrastructure to support syntactic mediation: </li></ul><ul><ul><li>OWL Ontologies to capture data format structure and semantics (reuse existing annotations) </li></ul></ul><ul><ul><li>Mapping Language to describe relationships between XML Schemas and OWL Ontologies </li></ul></ul><ul><ul><ul><li>Modular and Composable </li></ul></ul></ul><ul><ul><li>Configurable Mediator to consume mappings and perform document translation </li></ul></ul><ul><ul><li>Dynamic Web Service Invoker </li></ul></ul>
    25. 25. Future Work <ul><li>Dynamic discovery of Mappings </li></ul><ul><ul><li>Already implemented using the GRIMOIRES registry and WSDL to describe mapping capabilities </li></ul></ul><ul><ul><ul><li>[Szomszor, Payne, Moreau 2006] UK All Hands, Nottingham </li></ul></ul></ul><ul><li>Annotation Tool </li></ul><ul><ul><li>Mappings are complex and difficult to write by hand </li></ul></ul><ul><ul><li>Web based annotation tool </li></ul></ul>
    26. 26. Questions and Comments?