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.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Model-Driven Development of Semantic Mashup Applications with the Open-Source InfoGrid Internet Graph Database
1. Model-Driven Development
of Semantic Mashup Applications
With the Open-Source InfoGrid
NoSQL Internet Graph Database
Johannes Ernst
NetMesh Inc. · InfoGrid.org
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
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
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
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
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
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