Model-Driven Development of Semantic Mashup Applications with the Open-Source InfoGrid Internet Graph Database

  • 2,790 views
Uploaded on

Talk at Enterprise Data World 2010 in San Francisco. …

Talk at Enterprise Data World 2010 in San Francisco.

Outlines the difficulties in developing enterprise mash-up applications that aggregate data semantically and in real time. Gives an overview how the InfoGrid internet graph database can help.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,790
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
18
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide






























































Transcript

  • 1. Model-Driven Development of Semantic Mashup Applications With the Open-Source InfoGrid NoSQL Internet Graph Database Johannes Ernst NetMesh Inc. · InfoGrid.org Blog: netmesh.info/jernst · Twitter: @Johannes_Ernst · e-mail: jernst@netmesh.us Most recent version of this presentation is at: http://infogrid.org/wiki/Docs/SlidePresentations License: 2010 Johannes Ernst, Creative Commons Attribution-Share Alike 3.0
  • 2. Key Points
  • 3. Key Points • NoSQL is smoking hot in 2010
  • 4. Key Points • NoSQL is smoking hot in 2010 • Think "object graph" instead of "table" for more effective model-driven development
  • 5. Key Points • NoSQL is smoking hot in 2010 • Think "object graph" instead of "table" for more effective model-driven development • InfoGrid.org – graph database driven by conceptual-level models with code generator, REST, Java, open-source/commercial
  • 6. Key Points • NoSQL is smoking hot in 2010 • Think "object graph" instead of "table" for more effective model-driven development • InfoGrid.org – graph database driven by conceptual-level models with code generator, REST, Java, open-source/commercial • Semantically-aware mashups need not be as hard as with an RDBMS
  • 7. The Mashup Problem ?
  • 8. Example Object Graph :Complaint :Complaint Name: Pain Name: Blood Pressure HasChiefComplaint :Doctor Name: Smith :OfficeVisit Date: 2009/12/15 :OfficeVisit Date: 2010/01/01 Prescribed During With Lipitor: By :Doctor Medication Name: Miller Amount: 100 John Doe: Patient ActiveMeds: MRN: 123456789 MedCollection Age: 57 Ibuprofen: Medication Amount: 50
  • 9. Example Object Graph System 3 :Complaint :Complaint Name: Pain Name: Blood Pressure System 4 HasChiefComplaint :Doctor Name: Smith System 2 :OfficeVisit Date: 2009/12/15 :OfficeVisit Date: 2010/01/01 Prescribed During With System 1 By Lipitor: :Doctor Medication Name: Miller Amount: 100 System 5 John Doe: Patient ActiveMeds: MRN: 123456789 MedCollection Age: 57 Ibuprofen: Medication Amount: 50
  • 10. The Problem • Semantically aggregate data from multiple sources • Highly interrelated data • Real-time updates (downstream and upstream) • Decentralized schema evolution
  • 11. InfoGrid An Internet Graph Database
  • 12. Types of Data Organization
  • 13. Types of Data Organization Tabular: SQL relational database
  • 14. Types of Data Organization Tabular: SQL relational database Documents: NoSQL document database
  • 15. Types of Data Organization Tabular: SQL relational database Documents: NoSQL Lookup: NoSQL document database key-value database
  • 16. Types of Data Organization Tabular: SQL Graph of instances: NoSQL relational database graph database : abc attribute: 1 : def : xyz attribute: 2 attribute: 5 : xyz attribute: 4 : def attribute: 3 Documents: NoSQL Lookup: NoSQL document database key-value database
  • 17. Types of Data Organization Tabular: SQL Graph of instances: NoSQL relational database graph database : abc attribute: 1 : def : xyz attribute: 2 attribute: 5 : xyz attribute: 4 : def attribute: 3 Documents: NoSQL Lookup: NoSQL document database key-value database
  • 18. Schema-Less vs. Model-Driven Instances in Graph DB: Type: OfficeVisit Type: By Date: 2009/12/15 Type: With Type: Patient Type: Doctor MRN: 123456789 Name: Miller Age: 57 Type: OfficeVisit Date: 2010/01/01 Type: Patient Type: Doctor MRN: 987654321 Name: Smith Type: OfficeVisit Age: 22 Date: 2009/12/02
  • 19. Schema-Less vs. Model-Driven Instances in Graph DB: :OfficeVisit Type: OfficeVisit Date: 2009/12/15 Type: By By With Date: 2009/12/15 Type: With Type: Patient John Doe: Patient Type: Doctor :Doctor MRN: 123456789 MRN: 123456789 Name: Miller Name: Miller Age: 57 Age: 57 :OfficeVisit Type: OfficeVisit Date: 2010/01/01 Date: 2010/01/01 :Doctor Jane Doe: Patient Name: Smith MRN: 987654321 Type: Doctor Age: 22 :OfficeVisit Type: Patient MRN: 987654321 Name: Smith Date: 2009/12/02 Type: OfficeVisit Age: 22 Date: 2009/12/02
  • 20. Schema-Less vs. Model-Driven Instances in Graph DB: :OfficeVisit Type: OfficeVisit Date: 2009/12/15 Type: By By With Date: 2009/12/15 Type: With Type: Patient John Doe: Patient Type: Doctor :Doctor MRN: 123456789 MRN: 123456789 Name: Miller Name: Miller Age: 57 Age: 57 :OfficeVisit Type: OfficeVisit Date: 2010/01/01 Date: 2010/01/01 :Doctor Jane Doe: Patient Name: Smith MRN: 987654321 Type: Doctor Age: 22 :OfficeVisit Type: Patient MRN: 987654321 Name: Smith Date: 2009/12/02 Type: OfficeVisit Age: 22 Date: 2009/12/02 Graph DB Meta-data: Patient By OfficeVisit With Doctor informal MRN Age 1..1 0..* Date 0..* 1..2 Name
  • 21. Internet Graph Database Web clients URL URL URL… URL… Viewlets Graph Database Probe Probe Probe Probe Probe
  • 22. InfoGrid Development Process
  • 23. InfoGrid Development Process 1. Create domain model
  • 24. InfoGrid Development Process 1. Create domain model 2. Identify data sources & key URLs
  • 25. InfoGrid Development Process 1. Create domain model 2. Identify data sources & key URLs 3. Develop probes || Develop viewlets (parallel)
  • 26. InfoGrid Development Process 1. Create domain model 2. Identify data sources & key URLs 3. Develop probes || Develop viewlets (parallel) 4. Integrate and test
  • 27. InfoGrid Development Process 1. Create domain model 2. Identify data sources & key URLs 3. Develop probes || Develop viewlets (parallel) 4. Integrate and test 5. Incrementally augment: model, probes, viewlets
  • 28. InfoGrid Development Process 1. Create domain model 2. Identify data sources & key URLs 3. Develop probes || Develop viewlets (parallel) 4. Integrate and test 5. Incrementally augment: model, probes, viewlets
  • 29. Why Does It Matter?
  • 30. Why Does It Matter? • Better: model-driven dynamic graph is better abstraction than inflexible tables
  • 31. Why Does It Matter? • Better: model-driven dynamic graph is better abstraction than inflexible tables • Faster: reuse and compose instead of reinvent
  • 32. Why Does It Matter? • Better: model-driven dynamic graph is better abstraction than inflexible tables • Faster: reuse and compose instead of reinvent • Cheaper: development is shorter, but maintenance/increments much simpler
  • 33. More information http://infogrid.org/ @InfoGrid jernst@netmesh.us