SlideShare a Scribd company logo
1 of 27
Download to read offline
Confidential sones GmbH| 11/30/2010 1
Daniel Kirstenpfad / sones
CTO / Founder
www.sones.com - @sones
GraphDB in der Wolke
Confidential sones GmbH| 11/30/2010 1
In den letzten 35 Jahren waren Informationen
strukturiert und in Tabellenform in
geschlossenen Datenbanken-Silos eingesperrt.
2
Confidential sones GmbH| 11/30/2010 1
Relationale Datenmodelle und damit SQL sind
ein limitierender Faktor (Performance,
Komplexität) für hochverknüpfte Daten.
3
== Graph Daten
Confidential sones GmbH| 11/30/2010 1
Applikationen können
auf unbekannte
relationale Daten
nicht zugreifen, sie
nicht verstehen und
verarbeiten.
4
Datenbank 1 Datenbank 2
Applikation 1 Applikation 2
? ?
Confidential sones GmbH| 11/30/2010 15
Bob
ID = 2
Alter = 32
Alice
ID = 1
Alter = 21
Vertex
Edge
Freunde
seit = 2007/05/20
bis = 2010/11/04
Edge-
Properties Vertex-
Properties
Property Graph
Confidential sones GmbH| 11/30/2010 16
ID 1
TYPE Person
REVISION 20101104…
Name Alice
Alter 21
Partner
Feinde
Lieblingsfarbe Rot, Grün
Adresse.Straße Eugen-Richter-Straße
Adresse.Stadt Erfurt
Bob
ID = 2
Alter = 32
Mallory
ID = 3
Alter = 33
Direkte
Verknüpfung
ohne externen
Index
Edge-Properties
Property Graph
Confidential sones GmbH| 11/30/2010 1
7
ID ID 1
rdf:type TYPE Person
sones:revId REVISION 20101104…
foaf:name Name Alice
foaf:age Alter 21
sones:person Partner
s:set<person> Feinde
List<string> Lieblingsfarbe Rot, Grün
gn:street Adresse.Straße Eugen-Richter…
gn:town Adresse.Stadt Erfurt
Bob
ID = 2
Alter = 32
Mallory
ID = 3
Alter = 33
Oscar
• Eindeutige Identifikationsmöglichkeit
• Benannte Verknüpfungen
• Eng Angelehnt an RDF Molecules
Property Graph
Confidential sones GmbH| 11/30/2010 1
8
REST
Hypermedia
GraphDB
• Kanten und Knoten sind Resourcen
• Zugriff über
http://test.com/vertices/[$id]
• CRUD Operationen (GET, POST, PUT…)
• Atomizität
• Statusfrei
• Idempotenz
• Parallel
• Repräsentation muss mit Links
umgehen können
• z.B. XML+XLINK, ATOM,…
• Repräsentation sollte
selbstbeschreibend sein
Property Graph
Confidential sones GmbH| 11/30/2010 1
von relationalen Schemata..
Relationale Schemata sind unflexibel
– teure ALTER TABLE Operationen
– Entity-Attribute-Value Modell RDF
– keine semi-/unstrukturierten Daten
• XML, JSON, … Hierarchien, Graphen, Binärdaten
– keine Attribut Mengen
• LIST<String>, SET<Integer>, SET<Person>
– keine einfache Möglichkeit für versionierte Daten
9
Confidential sones GmbH| 11/30/2010 1
Anti-Patterns
Relationen über foreign-key-constraints
– kein explizites Konzept für Relationen
– keine Indexfreien Zugriffe (Adjazenz)
Relationale Daten über JOINs anzufragen = komplex
– nur Speichern war noch nie die Herausforderung
keine rekursiven JOINs
– Ineffiziente Query Abarbeitung
10
Confidential sones GmbH| 11/30/2010 1
Ist SQL „cloud-ready“ ?
Keine explizite Skalierung oder Partitionierung
innerhalb des relationalen Datenmodells
Keine JOINs zwischen verschiedenen Datenbanken
SQL spielt nicht gut mit state-of-the-art Web
Technologien zusammen
– HTTP/REST, Hypermedia, Semantic Web
11
Confidential sones GmbH| 11/30/2010 1
Vorteile einer Graphendatenbank
explizites Graph Datenmodell
– höherer Abstraktionsgrad
– besseres Verständnis des Domänenmodells
Konsistenzkriterien und Indices
– einfache Attribute bis zu komplexen Graphenstrukturen
Verknüpfte Informationen traversieren
kürzeste Pfade finden
semantische Partitionierung von Daten
Gute Integration in state-of-the-art Programmierkonzepte und
Webtechnologien
Empfehlungssysteme und Datenerforschung von potentiell
interessanten verknüpften Informationen
12
persönlich sozial Gegenstände
Confidential sones GmbH| 11/30/2010 1
sones GraphDB
URL http://www.sones.com
Lizenz AGPLv3 und proprietär kommerziell
Sprache C# 4.0 / .NET 4.0
Ziele Management von verknüpften Daten
Concurrency MVCC
Replikation Peer 2 Peer
Persistenz proprietäres Dateisystem
Cloud Microsoft Windows Azure
13
Confidential sones GmbH| 11/30/2010 1
Azure Cloud Deployment
14
DEMO
Confidential sones GmbH| 11/30/2010 1
sones Architekturübersicht
15
GraphDS
REST, WebShell, C# API
GraphDB
GQL, Graph Traversals, Indices
GraphFS
Objekt Management, Objekt (De-)Serialisierung
Host File System / Microsoft Azure
Confidential sones GmbH| 11/30/2010 1
sones Architekturübersicht
16
Speichermedium
Lokales Dateisystem
Netzspeicher / Cloud Storage
(Windows Azure)
In-Memory
GraphFS
Objektmanagement Objekt (De-)Serialisierung
GraphDB
Anfragesprache Typmanagement Knotenmanagement Operative Logik
Index (Dictionary,
B+Tree)
GraphDS
REST WebShell WebDAV C# API Java API
Confidential sones GmbH| 11/30/2010 1
Skalierung
17
User
GraphDS 1
GraphDS 2
GraphDB 2
GraphDB 1
GraphFS 2
GraphFS 1
Confidential sones GmbH| 11/30/2010 1
sones Property-Hypergraph
18
Person Freund Bob
ID = 2
Alter = 23
seit = 2009/09/21
Person Freund Carol
ID = 3
Alter = 20
seit = 2010/04/11
SET<Person> Freunde
SetMaxNumber = 12
Alice
ID = 1
Alter = 21
Hyperedge-Properties
Hyperedge
Edge
Virtual -Edge
Confidential sones GmbH| 11/30/2010 1
sones Property-Hypergraph
Properties können auch Code (als Daten) enthalten
– wie Stored Procedures
– C#: Func<…>, ExpressionTrees
Hyperedge erlaubt Berechnungen entlang einer Reihe von
Edges
– GetMinWeight
– SetMaxNumber
– …
19
Confidential sones GmbH| 11/30/2010 1
sones Graph Query Language
20
FROM Person SELECT Person.Freunde.Freunde.Name
„SQL for Graphen“
intuitive DSL für Ad-Hoc queries
ermöglicht benutzerfreundliche Abfragen
Funktionen und Aggregate sind typsicher und
können durch eigene Plug-Ins erweitert werden
– SELECT COUNT(Person.Freunde)
– SELECT Person.Freunde.Random(2)
– SELECT Person.Freunde.Name.Substring(2,5)
Confidential sones GmbH| 11/30/2010 1
sones Graph Query Language
21
CREATE VERTEX Person
ADD ATTRIBUTES (String Name, SET<Person> Freunde)
INDICES (Name)
MANDATORY (Name)
INSERT INTO Person VALUES (Name = "Alice")
INSERT INTO Person VALUES (Name = "Bob")
LINK Person(Name = ‘Alice') VIA Freunde TO Person(Name = ‘Bob')
LINK Person(Name = ‘Bob') VIA Freunde TO Person(Name = ‘Alice‘)
Confidential sones GmbH| 11/30/2010 1
Graph Query Language
22
DEMO
Confidential sones GmbH| 11/30/2010 1
sones C# API
23
var _Person = _GraphDB.TypeManager.
CreateVertex(„Person“).
AddString(„Name“, mandatory: true, indexed: true).
AddLoop(„Freunde”, hyperEdge: true).
execute();
Type _PersonT = _GraphDB.TypeManager.
GenerateType(_Person);
Confidential sones GmbH| 11/30/2010 1
sones C# API
24
Person _Alice = _GraphDB.TypeManager.ActivateVertex(
_Person, new VertexUUID(1));
_Alice.Name = „Alice“;
dynamic _Alice2 = _Alice;
_Alice.Alter = 21;
_Alice.bdayparty = (Action) (() => { _Alice.Age++; });
_Alice.bdayparty();
Confidential sones GmbH| 11/30/2010 1
sones C# API
25
var _Freunde = new GraphAttribute(„Freunde“, Type:„foaf:knows“);
var _Bob = _GraphDB.TypeManager.ActivateVertex(
_Person, new VertexUUID(2));
_Alice.Link(_Freunde, _Bob);
_Bob.Link(_Freunde, _Alice);
Confidential sones GmbH| 11/30/2010 1
sones C# API
26
Public T TraverseVertex<T> (
IVertex myStartVertex,
TraversalOperation TraversalOperation =
TraversalOperation.BreathFirst,
Func<IVertex, IEdge, Boolean> myFollowThisEdge = null,
Func<IVertex, Boolean> myMatchEvaluator = null,
Action<IVertex> myMatchAction = null,
Func<TraversalState, Boolean> myStopEvaluator = null,
Func<IEnumerable<IVertex>, T> myWhenFinished = null)
{
// Traverse the graph
}
Confidential sones GmbH| 11/30/2010 127
Alexander Oelling
Founder / Business Dev.
alex@sones.com
Xing: Alexander_Oelling
Daniel Kirstenpfad
Founder / CTO
daniel@sones.com
Xing: Daniel_Kirstenpfad
sones GmbH
Eugen-Richter-Strasse 44
99085 Erfurt
+49-361-3026250
Kontakte knüpfen

More Related Content

Viewers also liked

Viewers also liked (8)

Ikea - Digitalkamera
Ikea - DigitalkameraIkea - Digitalkamera
Ikea - Digitalkamera
 
Presseinformation CBF1000F 05-07-12.pdf
Presseinformation CBF1000F 05-07-12.pdfPresseinformation CBF1000F 05-07-12.pdf
Presseinformation CBF1000F 05-07-12.pdf
 
PI MB Bank 25 Jahre.pdf
PI MB Bank 25 Jahre.pdfPI MB Bank 25 Jahre.pdf
PI MB Bank 25 Jahre.pdf
 
USP-D Gruppencoaching mit Methodenmix
USP-D Gruppencoaching mit MethodenmixUSP-D Gruppencoaching mit Methodenmix
USP-D Gruppencoaching mit Methodenmix
 
Präsentation 2010-02.pdf
Präsentation 2010-02.pdfPräsentation 2010-02.pdf
Präsentation 2010-02.pdf
 
Top 5 SEO Fehler
Top 5 SEO FehlerTop 5 SEO Fehler
Top 5 SEO Fehler
 
Ist «Social Media» für schweizer KMU's sinnvoll?
Ist «Social Media» für schweizer KMU's sinnvoll?Ist «Social Media» für schweizer KMU's sinnvoll?
Ist «Social Media» für schweizer KMU's sinnvoll?
 
Der neue ZGF GORILLA ist da! - Latest edition of GORILLA magazine available now!
Der neue ZGF GORILLA ist da! - Latest edition of GORILLA magazine available now!Der neue ZGF GORILLA ist da! - Latest edition of GORILLA magazine available now!
Der neue ZGF GORILLA ist da! - Latest edition of GORILLA magazine available now!
 

Similar to sones graph database in the cloud

NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
NoSQL - Neue Ansätze zur Verwaltung unstrukturierter DatenNoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
NoSQL - Neue Ansätze zur Verwaltung unstrukturierter DatenMartin Junghanns
 
sones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones GmbH
 
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...Fabian Hardt
 
Konzeption eines dezentralen semantischen sozialen Netzwerks
Konzeption eines  dezentralen semantischen sozialen NetzwerksKonzeption eines  dezentralen semantischen sozialen Netzwerks
Konzeption eines dezentralen semantischen sozialen Netzwerksyuriyb
 
Vortrag Graphendatenbanken Uni Stuttgart
Vortrag Graphendatenbanken Uni StuttgartVortrag Graphendatenbanken Uni Stuttgart
Vortrag Graphendatenbanken Uni StuttgartHenning Rauch
 
Data Mesh: "Daten als Produkt" weitergedacht
Data Mesh: "Daten als Produkt" weitergedachtData Mesh: "Daten als Produkt" weitergedacht
Data Mesh: "Daten als Produkt" weitergedachtIBsolution GmbH
 
Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)sones GmbH
 
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...Martin Kaltenböck
 
Sitzung 11
Sitzung 11Sitzung 11
Sitzung 11scuy
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...Karin Patenge
 
Einführung in die semantische Suche in Massendaten
Einführung in die semantische Suche in MassendatenEinführung in die semantische Suche in Massendaten
Einführung in die semantische Suche in MassendatenMartin Voigt
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015David Schneider
 
Objekt-Relationales Mapping - von Java zu relationalen DBs
Objekt-Relationales Mapping - von Java zu relationalen DBsObjekt-Relationales Mapping - von Java zu relationalen DBs
Objekt-Relationales Mapping - von Java zu relationalen DBsSebastian Dietrich
 
VIVO Use Case Dresden #VIVODE15 9.9.2015
VIVO Use Case Dresden #VIVODE15 9.9.2015VIVO Use Case Dresden #VIVODE15 9.9.2015
VIVO Use Case Dresden #VIVODE15 9.9.2015Felix Lohmeier
 
Usability in (geistes-)wissenschaftlichen Onlinedatenbanken
Usability in (geistes-)wissenschaftlichen OnlinedatenbankenUsability in (geistes-)wissenschaftlichen Onlinedatenbanken
Usability in (geistes-)wissenschaftlichen OnlinedatenbankenAlineDeicke
 

Similar to sones graph database in the cloud (20)

NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
NoSQL - Neue Ansätze zur Verwaltung unstrukturierter DatenNoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
NoSQL - Neue Ansätze zur Verwaltung unstrukturierter Daten
 
sones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportalesones NoSQL GraphDatenbank für Bilderportale
sones NoSQL GraphDatenbank für Bilderportale
 
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...
Data Mesh und Domain Driven Design - rücken Analytics und SD nun doch näher z...
 
Konzeption eines dezentralen semantischen sozialen Netzwerks
Konzeption eines  dezentralen semantischen sozialen NetzwerksKonzeption eines  dezentralen semantischen sozialen Netzwerks
Konzeption eines dezentralen semantischen sozialen Netzwerks
 
Vortrag Graphendatenbanken Uni Stuttgart
Vortrag Graphendatenbanken Uni StuttgartVortrag Graphendatenbanken Uni Stuttgart
Vortrag Graphendatenbanken Uni Stuttgart
 
NoSQL - Mongo, Couch und Co
NoSQL - Mongo, Couch und CoNoSQL - Mongo, Couch und Co
NoSQL - Mongo, Couch und Co
 
Data Mesh: "Daten als Produkt" weitergedacht
Data Mesh: "Daten als Produkt" weitergedachtData Mesh: "Daten als Produkt" weitergedacht
Data Mesh: "Daten als Produkt" weitergedacht
 
Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)Whitepaper sones GraphDB (ger)
Whitepaper sones GraphDB (ger)
 
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...
eGovernment Konferenz 2013,Österreich - Workshop: Grundlagen und Mehrwerte vo...
 
Sitzung 11
Sitzung 11Sitzung 11
Sitzung 11
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
 
UBA Data Cube
UBA Data CubeUBA Data Cube
UBA Data Cube
 
Fedora
FedoraFedora
Fedora
 
Einführung in die semantische Suche in Massendaten
Einführung in die semantische Suche in MassendatenEinführung in die semantische Suche in Massendaten
Einführung in die semantische Suche in Massendaten
 
News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015News von der Microsoft Ignite Zürich Juni 2015
News von der Microsoft Ignite Zürich Juni 2015
 
Dynamic LINQ
Dynamic LINQDynamic LINQ
Dynamic LINQ
 
Objekt-Relationales Mapping - von Java zu relationalen DBs
Objekt-Relationales Mapping - von Java zu relationalen DBsObjekt-Relationales Mapping - von Java zu relationalen DBs
Objekt-Relationales Mapping - von Java zu relationalen DBs
 
VIVO Use Case Dresden #VIVODE15 9.9.2015
VIVO Use Case Dresden #VIVODE15 9.9.2015VIVO Use Case Dresden #VIVODE15 9.9.2015
VIVO Use Case Dresden #VIVODE15 9.9.2015
 
Usability in (geistes-)wissenschaftlichen Onlinedatenbanken
Usability in (geistes-)wissenschaftlichen OnlinedatenbankenUsability in (geistes-)wissenschaftlichen Onlinedatenbanken
Usability in (geistes-)wissenschaftlichen Onlinedatenbanken
 

sones graph database in the cloud

  • 1. Confidential sones GmbH| 11/30/2010 1 Daniel Kirstenpfad / sones CTO / Founder www.sones.com - @sones GraphDB in der Wolke
  • 2. Confidential sones GmbH| 11/30/2010 1 In den letzten 35 Jahren waren Informationen strukturiert und in Tabellenform in geschlossenen Datenbanken-Silos eingesperrt. 2
  • 3. Confidential sones GmbH| 11/30/2010 1 Relationale Datenmodelle und damit SQL sind ein limitierender Faktor (Performance, Komplexität) für hochverknüpfte Daten. 3 == Graph Daten
  • 4. Confidential sones GmbH| 11/30/2010 1 Applikationen können auf unbekannte relationale Daten nicht zugreifen, sie nicht verstehen und verarbeiten. 4 Datenbank 1 Datenbank 2 Applikation 1 Applikation 2 ? ?
  • 5. Confidential sones GmbH| 11/30/2010 15 Bob ID = 2 Alter = 32 Alice ID = 1 Alter = 21 Vertex Edge Freunde seit = 2007/05/20 bis = 2010/11/04 Edge- Properties Vertex- Properties Property Graph
  • 6. Confidential sones GmbH| 11/30/2010 16 ID 1 TYPE Person REVISION 20101104… Name Alice Alter 21 Partner Feinde Lieblingsfarbe Rot, Grün Adresse.Straße Eugen-Richter-Straße Adresse.Stadt Erfurt Bob ID = 2 Alter = 32 Mallory ID = 3 Alter = 33 Direkte Verknüpfung ohne externen Index Edge-Properties Property Graph
  • 7. Confidential sones GmbH| 11/30/2010 1 7 ID ID 1 rdf:type TYPE Person sones:revId REVISION 20101104… foaf:name Name Alice foaf:age Alter 21 sones:person Partner s:set<person> Feinde List<string> Lieblingsfarbe Rot, Grün gn:street Adresse.Straße Eugen-Richter… gn:town Adresse.Stadt Erfurt Bob ID = 2 Alter = 32 Mallory ID = 3 Alter = 33 Oscar • Eindeutige Identifikationsmöglichkeit • Benannte Verknüpfungen • Eng Angelehnt an RDF Molecules Property Graph
  • 8. Confidential sones GmbH| 11/30/2010 1 8 REST Hypermedia GraphDB • Kanten und Knoten sind Resourcen • Zugriff über http://test.com/vertices/[$id] • CRUD Operationen (GET, POST, PUT…) • Atomizität • Statusfrei • Idempotenz • Parallel • Repräsentation muss mit Links umgehen können • z.B. XML+XLINK, ATOM,… • Repräsentation sollte selbstbeschreibend sein Property Graph
  • 9. Confidential sones GmbH| 11/30/2010 1 von relationalen Schemata.. Relationale Schemata sind unflexibel – teure ALTER TABLE Operationen – Entity-Attribute-Value Modell RDF – keine semi-/unstrukturierten Daten • XML, JSON, … Hierarchien, Graphen, Binärdaten – keine Attribut Mengen • LIST<String>, SET<Integer>, SET<Person> – keine einfache Möglichkeit für versionierte Daten 9
  • 10. Confidential sones GmbH| 11/30/2010 1 Anti-Patterns Relationen über foreign-key-constraints – kein explizites Konzept für Relationen – keine Indexfreien Zugriffe (Adjazenz) Relationale Daten über JOINs anzufragen = komplex – nur Speichern war noch nie die Herausforderung keine rekursiven JOINs – Ineffiziente Query Abarbeitung 10
  • 11. Confidential sones GmbH| 11/30/2010 1 Ist SQL „cloud-ready“ ? Keine explizite Skalierung oder Partitionierung innerhalb des relationalen Datenmodells Keine JOINs zwischen verschiedenen Datenbanken SQL spielt nicht gut mit state-of-the-art Web Technologien zusammen – HTTP/REST, Hypermedia, Semantic Web 11
  • 12. Confidential sones GmbH| 11/30/2010 1 Vorteile einer Graphendatenbank explizites Graph Datenmodell – höherer Abstraktionsgrad – besseres Verständnis des Domänenmodells Konsistenzkriterien und Indices – einfache Attribute bis zu komplexen Graphenstrukturen Verknüpfte Informationen traversieren kürzeste Pfade finden semantische Partitionierung von Daten Gute Integration in state-of-the-art Programmierkonzepte und Webtechnologien Empfehlungssysteme und Datenerforschung von potentiell interessanten verknüpften Informationen 12 persönlich sozial Gegenstände
  • 13. Confidential sones GmbH| 11/30/2010 1 sones GraphDB URL http://www.sones.com Lizenz AGPLv3 und proprietär kommerziell Sprache C# 4.0 / .NET 4.0 Ziele Management von verknüpften Daten Concurrency MVCC Replikation Peer 2 Peer Persistenz proprietäres Dateisystem Cloud Microsoft Windows Azure 13
  • 14. Confidential sones GmbH| 11/30/2010 1 Azure Cloud Deployment 14 DEMO
  • 15. Confidential sones GmbH| 11/30/2010 1 sones Architekturübersicht 15 GraphDS REST, WebShell, C# API GraphDB GQL, Graph Traversals, Indices GraphFS Objekt Management, Objekt (De-)Serialisierung Host File System / Microsoft Azure
  • 16. Confidential sones GmbH| 11/30/2010 1 sones Architekturübersicht 16 Speichermedium Lokales Dateisystem Netzspeicher / Cloud Storage (Windows Azure) In-Memory GraphFS Objektmanagement Objekt (De-)Serialisierung GraphDB Anfragesprache Typmanagement Knotenmanagement Operative Logik Index (Dictionary, B+Tree) GraphDS REST WebShell WebDAV C# API Java API
  • 17. Confidential sones GmbH| 11/30/2010 1 Skalierung 17 User GraphDS 1 GraphDS 2 GraphDB 2 GraphDB 1 GraphFS 2 GraphFS 1
  • 18. Confidential sones GmbH| 11/30/2010 1 sones Property-Hypergraph 18 Person Freund Bob ID = 2 Alter = 23 seit = 2009/09/21 Person Freund Carol ID = 3 Alter = 20 seit = 2010/04/11 SET<Person> Freunde SetMaxNumber = 12 Alice ID = 1 Alter = 21 Hyperedge-Properties Hyperedge Edge Virtual -Edge
  • 19. Confidential sones GmbH| 11/30/2010 1 sones Property-Hypergraph Properties können auch Code (als Daten) enthalten – wie Stored Procedures – C#: Func<…>, ExpressionTrees Hyperedge erlaubt Berechnungen entlang einer Reihe von Edges – GetMinWeight – SetMaxNumber – … 19
  • 20. Confidential sones GmbH| 11/30/2010 1 sones Graph Query Language 20 FROM Person SELECT Person.Freunde.Freunde.Name „SQL for Graphen“ intuitive DSL für Ad-Hoc queries ermöglicht benutzerfreundliche Abfragen Funktionen und Aggregate sind typsicher und können durch eigene Plug-Ins erweitert werden – SELECT COUNT(Person.Freunde) – SELECT Person.Freunde.Random(2) – SELECT Person.Freunde.Name.Substring(2,5)
  • 21. Confidential sones GmbH| 11/30/2010 1 sones Graph Query Language 21 CREATE VERTEX Person ADD ATTRIBUTES (String Name, SET<Person> Freunde) INDICES (Name) MANDATORY (Name) INSERT INTO Person VALUES (Name = "Alice") INSERT INTO Person VALUES (Name = "Bob") LINK Person(Name = ‘Alice') VIA Freunde TO Person(Name = ‘Bob') LINK Person(Name = ‘Bob') VIA Freunde TO Person(Name = ‘Alice‘)
  • 22. Confidential sones GmbH| 11/30/2010 1 Graph Query Language 22 DEMO
  • 23. Confidential sones GmbH| 11/30/2010 1 sones C# API 23 var _Person = _GraphDB.TypeManager. CreateVertex(„Person“). AddString(„Name“, mandatory: true, indexed: true). AddLoop(„Freunde”, hyperEdge: true). execute(); Type _PersonT = _GraphDB.TypeManager. GenerateType(_Person);
  • 24. Confidential sones GmbH| 11/30/2010 1 sones C# API 24 Person _Alice = _GraphDB.TypeManager.ActivateVertex( _Person, new VertexUUID(1)); _Alice.Name = „Alice“; dynamic _Alice2 = _Alice; _Alice.Alter = 21; _Alice.bdayparty = (Action) (() => { _Alice.Age++; }); _Alice.bdayparty();
  • 25. Confidential sones GmbH| 11/30/2010 1 sones C# API 25 var _Freunde = new GraphAttribute(„Freunde“, Type:„foaf:knows“); var _Bob = _GraphDB.TypeManager.ActivateVertex( _Person, new VertexUUID(2)); _Alice.Link(_Freunde, _Bob); _Bob.Link(_Freunde, _Alice);
  • 26. Confidential sones GmbH| 11/30/2010 1 sones C# API 26 Public T TraverseVertex<T> ( IVertex myStartVertex, TraversalOperation TraversalOperation = TraversalOperation.BreathFirst, Func<IVertex, IEdge, Boolean> myFollowThisEdge = null, Func<IVertex, Boolean> myMatchEvaluator = null, Action<IVertex> myMatchAction = null, Func<TraversalState, Boolean> myStopEvaluator = null, Func<IEnumerable<IVertex>, T> myWhenFinished = null) { // Traverse the graph }
  • 27. Confidential sones GmbH| 11/30/2010 127 Alexander Oelling Founder / Business Dev. alex@sones.com Xing: Alexander_Oelling Daniel Kirstenpfad Founder / CTO daniel@sones.com Xing: Daniel_Kirstenpfad sones GmbH Eugen-Richter-Strasse 44 99085 Erfurt +49-361-3026250 Kontakte knüpfen