Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

  • Be the first to comment

  • Be the first to like this


  1. 1. RDF and SOA David Booth, Ph.D. <> HP Software SOA Symposium, Amsterdam, 8-Oct-2008 [Presented by Andrew Weaver, HP Software] Latest version of these slides:
  2. 2. Outline <ul><li>PART 0: The problem </li></ul><ul><li>PART 1: RDF: A lingua franca for information exchange </li></ul><ul><li>PART 2: Key Techniques for RDF in SOA </li></ul>
  3. 3. PART 0 The problem
  4. 4. Problem 1: Babelization <ul><li>Proliferation of data models (XML schemas, etc.) </li></ul><ul><li>Parsing issues influence data models </li></ul><ul><li>No consistent semantics </li></ul><ul><li>Data chaos </li></ul>Tower of Babel, Abel Grimmer (1570-1619)
  5. 5. Problem 2: Integration complexity <ul><li>Multiple producers/consumers need to share data </li></ul><ul><li>Tight coupling hampers independent versioning </li></ul>Provisioning Discovery Change Management Compliance Management Incident Management Release Management Monitoring Ticketing Release Managers Unix System Administrators Networking Engineers Networking Administrators Compliance Managers Windows System Administrators Operation Centers Storage Administrators Source Control
  6. 6. Client/service versioning <ul><li>Need to version clients and services independently </li></ul><ul><li>Data models exchanged must evolve </li></ul><ul><li>No such thing as the model: </li></ul><ul><ul><li>There are several, slightly different but related models </li></ul></ul>Client v3 Client v2 Client v1 Service v3 Service v2 Service v1
  7. 7. What to do?
  8. 8. PART 1 RDF: A lingua franca for information exchange in SOA
  9. 9. What is RDF? <ul><li>&quot; R esource D escription F ramework&quot; </li></ul><ul><li>Relational data model framework </li></ul><ul><li>W3C standard >6 years </li></ul><ul><li>Foundation of Semantic Web technology </li></ul><ul><li>Language for making statements about things </li></ul><ul><li>Used to express both: </li></ul><ul><ul><li>Ontologies (classes and relationships), and </li></ul></ul><ul><ul><li>Instance data </li></ul></ul>
  10. 10. Key features of RDF <ul><li>Syntax independent (specifies model) </li></ul><ul><ul><li>Some existing serializations: RDF/XML, N3, Turtle </li></ul></ul><ul><ul><li>Focus on semantics </li></ul></ul><ul><li>Consistent semantics </li></ul><ul><ul><li>Based on URIs </li></ul></ul><ul><li>Great for data integration problems </li></ul><ul><ul><li>Data &quot;mashups&quot; </li></ul></ul>
  11. 11. Why RDF for SOA? <ul><li>1. Emphasis on semantics </li></ul><ul><ul><li>RDF is syntax independent </li></ul></ul><ul><li>2. RDF is good at data integration </li></ul><ul><li>3. RDF helps bridge other formats/models </li></ul><ul><li>4. Looser coupling </li></ul>
  12. 12. Why? 1. Emphasis on semantics <ul><li>RDF is syntax independent </li></ul><ul><li>RDF specifies information model -- not serialization </li></ul><ul><li>Various serializations can be used </li></ul><ul><ul><li>RDF/XML, N3, Turtle, etc. </li></ul></ul>
  13. 13. Why? 2. Easier data integration <ul><li>New data models can be easily added </li></ul><ul><li>Old and new data models co-exist in merged model </li></ul><ul><li>Relationships between the old and new models are expressed explicitly </li></ul><ul><li>Both old and new can be used simultaneously </li></ul>
  14. 14. Why? 2. Easier data integration <ul><li>Blue App has model </li></ul>
  15. 15. Why? 2. Easier data integration <ul><li>Red App has model </li></ul><ul><li>Need to integrate Red & Blue models </li></ul>
  16. 16. Why? 2. Easier data integration <ul><li>Step 1: Merge RDF </li></ul><ul><li>Same nodes (URIs) join automatically </li></ul>
  17. 17. Why? 2. Easier data integration <ul><li>Step 2: Add relationships and rules </li></ul><ul><li>(Relationships are also RDF) </li></ul>
  18. 18. Why? 2. Easier data integration <ul><li>Step 3: Define Green model </li></ul><ul><li>(Making use of Red & Blue models) </li></ul>
  19. 19. Why? 2. Easier data integration <ul><li>What the Blue app sees: </li></ul><ul><ul><li>No difference! </li></ul></ul>
  20. 20. Why? 2. Easier data integration <ul><li>What the Red app sees </li></ul><ul><li>No difference! </li></ul>
  21. 21. Why? 3. RDF helps bridge other formats/models <ul><li>Producers and consumers may use different formats/models </li></ul><ul><li>Rules can specify transformations </li></ul><ul><li>Inference engine finds path to desired result model </li></ul>RDF Model Transform A1 A2 A3 B1 B2 C1 C2 X Y Z Ontologies & Rules Ontologies & Rules Ontologies & Rules
  22. 22. Why? 4. Looser coupling <ul><li>Without breaking consumers: </li></ul><ul><ul><li>Ontologies can be mixed and extended </li></ul></ul><ul><ul><li>Information can be added </li></ul></ul><ul><li>Producer & consumer can be versioned more independently </li></ul>
  23. 23. Example of looser coupling <ul><li>RedCust and GreenCust ontologies added </li></ul><ul><li>Blue app is not affected </li></ul>(Blue app) Consumer Producer
  24. 24. PART 2 Key Techniques for RDF in SOA
  25. 25. 1. RDF message semantics <ul><li>Interface contract can specify RDF, regardless of serialization </li></ul><ul><li>RDF pins the semantics </li></ul>Client Service RDF
  26. 26. But Web services already use XML! <ul><li>XML is well known and used </li></ul><ul><li>Legacy apps may require specific XML or other formats that cannot be changed </li></ul><ul><li>How can we gain the benefits of RDF message semantics while still accommodating XML? </li></ul>
  27. 27. Custom XML serializations of RDF <ul><li>Recall: RDF is syntax independent </li></ul><ul><li>Specifies info model -- not syntax! </li></ul><ul><li>Can be serialized in any agreed-upon way </li></ul><ul><li>Therefore: </li></ul><ul><li>Can view existing XML formats as custom serialization of RDF! </li></ul><ul><li>How? GRDDL . . . </li></ul>
  28. 28. What is GRDDL? <ul><li>&quot; G leaning R esource D escriptions from D ialects of L anguages&quot; </li></ul><ul><li>W3C standard </li></ul><ul><li>Permits RDF to be &quot;gleaned&quot; from XML </li></ul><ul><li>XML document or schema specifies GRDDL transformation for that document (or type) </li></ul><ul><ul><li>Each XML document/type can use a different GRDDL transformation </li></ul></ul><ul><li>GRDDL transformation produces RDF from XML document </li></ul><ul><ul><li>Typically written in XSLT </li></ul></ul>
  29. 29. 2. GRDDL transformations from XML to RDF <ul><li>Therefore: </li></ul><ul><li>Same XML document can be consumed by: </li></ul><ul><ul><li>Legacy XML app </li></ul></ul><ul><ul><li>RDF app </li></ul></ul><ul><li>App interface contract can specify RDF </li></ul><ul><ul><li>Serializations can vary </li></ul></ul><ul><ul><li>Semantics are pinned by RDF </li></ul></ul><ul><li>Helps bridge XML and RDF worlds </li></ul>
  30. 30. Bridging XML and RDF <ul><li>Input: Accept whatever formats are required </li></ul><ul><ul><li>Use GRDDL to transform XML to RDF </li></ul></ul><ul><li>Output: Serialize to whatever formats are required </li></ul><ul><ul><li>Generate XML/other directly (or even RDF!), or </li></ul></ul><ul><ul><li>SPARQL query can generate specific view first </li></ul></ul>Normalize to RDF Serialize as XML/other/RDF Service Core App Processing Client XML/other
  31. 31. 3. REST-based SPARQL endpoints Consumer Producer SPARQL RDF HTTP
  32. 32. REST-based SPARQL endpoints <ul><li>Why REST: </li></ul><ul><ul><li>HTTP is ubiquitous </li></ul></ul><ul><ul><li>Simpler than SOAP-based Web services (WS*) </li></ul></ul><ul><ul><li>Looser process coupling </li></ul></ul>
  33. 33. REST-based SPARQL endpoints <ul><li>What is SPARQL: </li></ul><ul><ul><li>W3C standard </li></ul></ul><ul><ul><li>Query language for RDF </li></ul></ul><ul><ul><li>Modeled after SQL: </li></ul></ul><ul><li>SELECT ... </li></ul><ul><li>WHERE ... </li></ul>
  34. 34. REST-based SPARQL endpoints <ul><li>Why SPARQL: </li></ul><ul><ul><li>RDF gives looser data coupling </li></ul></ul><ul><ul><li>Insulates consumers from internal model changes </li></ul></ul><ul><ul><ul><li>Inferencing can transforms data to consumer's desired model </li></ul></ul></ul><ul><ul><li>One endpoint supports multiple consumer needs </li></ul></ul><ul><ul><ul><li>Each consumer gets what it wants </li></ul></ul></ul><ul><ul><li>Simpler interface for consumers </li></ul></ul><ul><ul><ul><li>Uniform SPARQL interface instead of a different set of parameters for each REST endpoint </li></ul></ul></ul><ul><ul><ul><li>Takes the REST notion of &quot;uniform interface&quot; one step farther </li></ul></ul></ul>
  35. 35. 4. Aggregation and Transformation <ul><li>Gets data from multiple sources </li></ul><ul><li>Provides data to consumers </li></ul><ul><li>Does model transformation, caching, etc. </li></ul><ul><li>Conceptual component -- not necessarily a separate service </li></ul>Aggregation & Transformation A1 A2 A3 B1 B2 C1 C2 X Z SPARQL Y Ontologies & Rules Ontologies & Rules Ontologies & Rules
  36. 36. Conclusions <ul><li>Value of RDF in data integration is well proven </li></ul><ul><li>RDF can bring looser coupling to SOA </li></ul><ul><li>Key techniques: </li></ul><ul><ul><li>1. RDF message semantics </li></ul></ul><ul><ul><li>2. GRDDL to bridge from XML to RDF </li></ul></ul><ul><ul><li>3. REST-based SPARQL endpoints </li></ul></ul><ul><ul><li>4. Aggregation and transformation </li></ul></ul>
  37. 37. More information <ul><li>RDF and SOA: </li></ul><ul><li>RDF: </li></ul><ul><li>SPARQL: </li></ul><ul><li>GRDDL: </li></ul>
  38. 38. Outline <ul><li>PART 0: The problem </li></ul><ul><li>PART 1: RDF: A lingua franca for information exchange </li></ul><ul><li>PART 2: Key Techniques for RDF in SOA </li></ul>
  39. 39. Questions?