sones graph db in .net .net - usergroup leipzig

12
sones GmbH │ [email protected] GraphDB in .NET September 2011 Daniel Kirstenpfad

Upload: daniel-kirstenpfad

Post on 13-Jul-2015

572 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected]

GraphDB in .NET

September 2011 │ Daniel Kirstenpfad

Page 2: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 2GraphDB in .NET September 19th 2011

Was ist ein Graph?

• Knoten + Kanten ungerichteter Graph

• Beispiel: Strassenkarte

• Alle Beziehungen sind symetrisch

Knoten 1

Knoten 2

Knoten 3 Knoten

4

Page 3: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 3GraphDB in .NET September 19th 2011

Warum ein Graph?

• Knoten + Kanten ungerichteter Graph

• Beispiel: Strassenkarte

• Alle Beziehungen sind symetrisch

Knoten 1

Knoten 2

Knoten 4

Knoten 3

ID Name

1 Knoten 1

2 Knoten 2

3 Knoten 3

4 Knoten 4

ID ID

1 2

1 3

3 1

3 4

Page 4: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 4GraphDB in .NET September 19th 2011

Was ist ein Graph?

• Knoten + Kanten + Richtung gerichteter Graph

• Beispiel: Twitter, href-Beziehungen im Web

• Alle Beziehungen sind asymetrisch

• „Single Relational Structures“

Knoten 1

Knoten 2

Knoten 3 Knoten

4

Page 5: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 5GraphDB in .NET September 19th 2011

Was ist ein Graph?

• „Multiple Relational Structures“

• Eine Kante repräsentiert mehr als eine

Verbindung: Richtung, Name Typ

• Mehr AusdrucksmöglichkeitenKnoten

1

Knoten 2

Knoten 3

Knoten 4

Knoten 5

Knoten 6

Page 6: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 6GraphDB in .NET September 19th 2011

Was ist ein Graph?

• Knoten (+Attribute) + Kanten (+Attribute) = Property Graph

• Beispiel: Social Network der TV-Fernsehserie „Die Simpson“

• Knotentypen: Auftritt, SimpsonProfile

Name = Homer

SimpsonS01E01

Auftritt

Name=S01E01Datum=01.01.1991

Sender=ZDF

Alter=40Gewicht=131

Name = StringGewicht = Integer

Alter = Integer

Name = StringDatum = DateTime

Sender = SenderType

Freu

nd

Fein

d

Page 7: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 7GraphDB in .NET September 19th 2011

Was ist ein Graph?

• Knoten (+Attribute) + (Single-/Multi-/Hyper-)Kanten (+Attribute) = Property Hypergraph

Vertex VertexSingle-Edge

Vertex

Vertex

Multi-Edge

Vertex

Vertex

Vtx

Hyper-EdgeVtx

Vtx

Vtx

Vtx

Vertex

Vertex

Vertex

Vertex

Vertex

VertexVertex

Single EdgeAttribute1Attribute2

.

.

Multi-EdgeAttribute1Attribute2

.

.

Single EdgeAttribute1Attribute2

.

.

Hyper EdgeAttribute1Attribute2

.

.

Single EdgeAttribute1Attribute2

.

.

Single EdgeAttribute1Attribute2

.

.

Page 8: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 8GraphDB in .NET September 19th 2011

sones GraphDB

• Ablage, Verwaltung, Verknüpfung und Abfrage von Graph-Daten als Hauptaufgabe

• Projekt gestartet 2007, OpenSource seit 2010

• GraphDB von sones:

• Dual-Lizenzierte vollwertige Graphdatenbank mit dem Property Hypergraph Modell

• OpenSource (AGPLv3) und Enterprise Edition verfügbar

• Enterprise Edition = OpenSource + Enterprise-Plug-Ins (z.B. Solr statt Lucene)

• Schlüsselfeatures:

• Graph Query Language (GraphQL)

• Dynamisches Schema

• Mischbetrieb von schemalos und schemabehafteten Datenmodellen

• Objektorientierte Knoten und Kantenverwaltung (abstrakte Typen, Vererbung)

• Umfassende Plug-In Architektur erlaubt hohe Flexibilität (in-Memory vs. On-Disk, GraphQL vs. C# API)

• vollständig in C# entwickelt (und damit platformunabhängig)

• REST Service Schnittstelle, Remote API

• Integrierte Ad-Hoc Query WebShell mit Visualisierungen

• C#, Java, JavaScript, PHP bindings

Page 9: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 9GraphDB in .NET September 19th 2011

Architektur sones GraphDB

GraphDS

Network ClientC# API

Java APIPHP API

JavaScript API

GraphDS Server Plug-Ins

User defined services

QueryLanguage1 ... QueryLanguagenREST

Input / Output Plug-Ins

JSON, XML, TXT, HTML, ...

QL API

GraphDB API

GraphDB API

Query Language

GraphQL

User defined Function Aggregates Functions Import / Export

Breadth-First-Search, ...

Sum, Count, Max, Min,

Avg

Top, MaxWeight,

...GraphML, ...

Other Query Languages...

Other Language Bindings...

Network service (REST,...)

DrainPipe Hot-Standby / Fault-Tolerance

Other user defined services / protocols...

Page 10: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 10GraphDB in .NET September 19th 2011

GraphDB

GraphDB API

Logic Plugins

Vertex Type Management

Edge Type Management

Vertex Management

Index Management

Traverser

Storage Management

Logic-Expression-Optimizer

Security Manager

Transaction Manager

Index Manager

Storage Manager

GraphFS

GraphFS API

GraphFS

In Memory Storage

Other Storages...

Local Storage

NonRevisionedIMFS,...

NonRevisionedPagedFS,...

GraphDB API

Page 11: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected] 11GraphDB in .NET September 19th 2011

DEMO!

DEMO

Page 12: sones graph db in .net   .net - usergroup leipzig

sones GmbH │ [email protected]

Disclaimer

Unpublished Work of sones GmbH All Rights Reserved.This work is an unpublished work and contains confidential, proprietary, and trade secret information

of sones GmbH. Access to this work is restricted to sones employees who have a need to know to

perform tasks within the scope of their assignments. No part of this work may be

practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expande

d, collected, or adapted without the prior written consent of sones GmbH. Any use or exploitation of

this work without authorization could subject the perpetrator to criminal and civil liability.

General DisclaimerThis document is not to be construed as a promise by any participating company to

develop, deliver, or market a product. It is not a commitment to deliver any material, code, or

functionality, and should not be relied upon in making purchasing decisions. sones GmbH makes no

representations or warranties with respect to the contents of this document, and specifically disclaims

any express or implied warranties of merchantability or fitness for any particular purpose. The

development, release, and timing of features or functionality described for sones products remains at

the sole discretion of sones. Further, sones GmbH reserves the right to revise this document and to

make changes to its content, at any time, without obligation to notify any person or entity of such

revisions or changes. All sones marks referenced in this presentation are trademarks or registered

trademarks of sones GmbH in Germany and other countries. All third-party trademarks are the

property of their respective owners.

12GraphDB in .NET September 19th 2011