sones


              sones Whitepaper


 GraphDB auf Windows Azure
Die sones GraphDB


Bei der sones GraphDB handelt es sich um ein neuartiges, graphenbasiertes
objektorientiertes Datenmanagementsystem. Dieses ermöglicht die effiziente Speicherung,
Verwaltung und Auswertung extrem komplexer, hochgradig vernetzter Datenbestände.
Die ganzheitliche Lösung verbindet die Vorteile einer Dateiablage mit den Möglichkeiten
eines   Datenbankmanagementsystems.     Unstrukturierte    Daten   (z.B.   Videodateien),
semistrukturierte Daten (Metadaten, z.B. Logfiles) und strukturierte Daten können
miteinander verknüpft und somit aus einer Hand verwaltet und bei Bedarf ausgewertet
werden.


Die Idee für die Neuentwicklung einer auf der Graphentheorie bestehenden Datenbank
entstand Anfang 2005 aus Unzufriedenheit über die bestehenden Lösungen am Markt.
Diese boten für Abfragen auf stark verknüpfte Daten oft keine oder nur unzureichende
Ad-hoc Analyse-Funktionen. Zudem waren diese Systeme den sich mit hoher Dynamik
ändernden Daten- und Informationsstrukturen, die Applikationen insbesondere im Web-
Umfeld verarbeiten müssen, meist nicht in ausreichendem Maße gewachsen. Fokus der
Entwicklung war es daher, diese bisher komplexitätsbedingt kaum oder nur mit höchstem
Aufwand lösbaren Aufgabenstellungen einem effizienten Datenhandling und einer Real-
time-Analyse zuzuführen. Auf Basis völlig eigenständiger und neuartiger Konzepte wurde
eine von Grund auf neue Datenbanktechnologie entwickelt.


Die Lösung beinhaltet eine objektorientierte Speicherlösung (sones GraphFS) zur
performanten Datenspeicherung, sowie das Graphenorientierte Datenbankmanagement-
System (sones GraphDB), welches die Daten miteinander verknüpft und deren
performante Auswertung ermöglicht. Die Zusammenfassung dieser beiden Teile in eine
Software bietet den Vorteil einer hocheffizienten Verarbeitung, da auf jegliche
Abstraktionsschicht verzichtet werden kann. Der für den Betrieb einer Datenbanklösung
sonst übliche Aufwand wird durch diese Lösung extrem verringert.


Die objektorientierte Speicherlösung (sones GraphFS) speichert auch unstrukturierte und
semistrukturierte Daten, wie z.B. Dokumentenformate, Bilder, etc., effizienter als
Dateisysteme, welche dem Betriebssystem zugrunde liegen. Durch dieses Prinzip wird
eines   der   wesentlichen   Performance-Probleme     in    bisherigen   objektorientierten
Datenbanken, Mapping der Objektmodelle in relationale Tabellen, erfolgreich
überwunden. Für das Dateisystem ist ein Patent beantragt.


Das Graphenorientierte Datenmanagement (sones GraphDB) bietet hohe Flexibilität bei
der Datenstrukturierung und ermöglicht die direkte Verknüpfung der Daten ohne
zusätzliche Hilfskonstrukte, wie z.B. Zuordnungstabellen in Relationalen Datenbanken.
Da sich das Datenmodell an gängigen Programmiersprachen orientiert, entsteht keine
Diskrepanz zwischen Applikationslogik und Datenspeicherung. Die Komplexität ist im
Vergleich zu den bestehenden relationalen Lösungen teilweise drastisch geringer. Der sich
daraus ergebende Vorteil besteht unter anderem darin, dass bei zunehmender
Verknüpfung der Daten die Komplexität nicht exponentiell sondern linear wächst. Ein
weiterer entscheidender Vorteil liegt in der Fähigkeit der Datenbank, während der
Laufzeit Datenstrukturen ändern oder ergänzen zu können. Neue Anforderungen seitens
der Anwendung können daher ohne aufwändige Neuprogrammierung eines relationalen
Datenbankschemas realisiert werden.


Um das Datenmanagement für die Anwender zu erleichtern, wurde die Graph Query
Language (sones GQL) entwickelt. Sie orientiert sich in Umfang und Syntax zwar an
SQL, wurde aber an den graphenorientierten Ansatz angepasst und erschließt die in
diesem Modell vorhandenen Vorteile einer direkten und leicht verständlichen Abfrage.
Die Windows Azure Plattform


Die Azure Services Plattform ist eine Anwendungsplattform in der Cloud, die es möglich
macht, Anwendungen in Microsoft Rechenzentren zu hosten und zu betreiben. Sie stellt
das Cloud Operating System Windows Azure bereit, welches als Laufzeitumgebung für
die Anwendungen dient und eine Reihe von Diensten für die Entwicklung, Steuerung und
das Hosting der Anwendung bietet. Alle bestehenden Azure Services sowie die darauf
laufenden Anwendungen arbeiten selbst auf Windows Azure.
Windows Azure verfügt über drei Kernkomponenten: Compute, Storage und Fabric. Wie
der Name bereits vermuten lässt, bietet Computing Rechenleistung für Web und Worker
Roles während Storage sich darauf konzentriert skalierbaren Speicher (Blobs, Tabellen,
Queues, Laufwerke) auf elastisch skalierbare Weise zur Verfügung zu stellen.
Das Hosting-Umfeld von Windows Azure nennt sich Fabric Controller – dieses fasst
einzelne Systeme zu einem Netzwerk zusammen, das automatisch Ressourcen verwaltet,
Lastspitzen ausgleicht und Lasten verteilt, Geo-Replication und Anwendungs-
Lebenszyklen steuert – und dies ohne dass die Applikation selbst mit diesen Dingen
umgehen muss. Weiterhin bietet der Fabric Controler auch andere Dienste, welche von
den meisten Anwendungen gefordert werden – wie zum Beispiel den Windows Azure
Storage Service, der Anwendungen liefert, die die Eigenschaft besitzen, unstrukturierte
Daten wie z.B. Binärdateien, Queues, Laufwerke und nicht-relationale Tabellen zu
speichern.
Die Azure Service Plattform bietet ein auf REST, HTTP und XML basierendes API an
und erlaubt es Entwicklern mit den Diensten die von Windows Azure angeboten werden
zu arbeiten. Des weiteren wird ein Client-DLL angeboten welche die Interaktion mit den
Diensten kapselt. Dies fügt sich nahtlos in Microsoft Visual Studio ein, sodass es als IDE
verwendet werden kann um Azure-gehostete Anwendungen zu entwickeln und zu
veröffentlichen. Seit dem 1. Februar 2010 ist Windows Azure kommerziell erhältlich. Auf
der Website http://www.microsoft.com/azure können Nutzer Windows Azure Rechenzeit
und Speicherplatz erwerben.
Als eine Option bietet Azure auch Content Delivery (CDN) Dienste an. Zum aktuellen
Zeitpunkt befinden sich diese CDN Dienste in einer kostenlosen „Community Technology
Preview“ Phase und erlaubt es interessierten Nutzern statische Inhalte verteilt aus 18
Rechenzentren weltweit auszuliefern.
Derzeitiger Status der sones GraphDB auf Windows Azure


Derzeit ist die sones GraphDB 1.1 als Windows Azure Plattform Edition erhältlich, die –
da sie besonders optimiert wurde – sich nahtlos in die Windows Azure Cloud integriert.
Es ist wichtig, an dieser Stelle zu bemerken, dass all dies einen ersten Schritt in einem
Plan darstellt, der es vorsieht am Ende des Prozesses die Tools und Dienste der Windows
Azure Platform vollständig nutzen zu können.




                          (beispielhafte Verwendung auf Windows Azure)
Die sones GraphDB ist als Windows Azure deployment package erhältlich und kann
durch Nutzung der Service Configuration Datei konfiguriert werden. Die Windows Azure
Version der sones GraphDB entspricht allen Features des 1.1 Open Source Release:
    •   Full featured In-Memory Graph Datenbank
    •   Graph Query Language 1.1
    •   Alle Graph* APIs verfügbar
    •   REST Interface um die GraphDB als Service zu nutzen
    •   Intuitives Browser-basiertes AJAX WebShell Interface für einfachen User-
        Zugang
    •   Die C# API um die sones GraphDB in eigene Windows Azure Diensten zu
        verwenden
    •   API und Plug-In Interface für Graph-Algorithmen
    •   Inklusive “Kürzester Weg” Graphen-Algorithmus


Da sich die Windows Azure Version der sones GraphDB die Codebasis mit der Open
Source und Enterprise Version der sones GraphDB teilt, enthält sie im Wesentlichen jene
Technologie und APIs, über die auch alle anderen Editionen der sones GraphDB verfügen
und erreicht daher die gleiche Leistungsmetrik wie diese anderen Versionen.


Die sones GraphDB 1.1 auf Windows Azure ist eine passgenaue Lösung für jeden, der die
volle Flexibilität von Daten und Schemata einer ausgereiten Graph Datenbank nutzen
möchte. Die derzeitig maximale RAM Größe einer extra-large Windows Azure Instanz
liegt bei 14 Gbyte, was im Wesentlichen dem momentanen Größenlimit einer sones
GraphDB 1.1 Instanz auf Windows Azure entspricht. Um praktisch unbegrenztem
Speicherplatz verfügbar zu machen und somit die Anzahl von gespeicherten Objekten
über die RAM Grenzen hinaus zu erhöhen, planen wir, ein spezialisiertes Windows Azure
Speichermodul einzuführen.
In diesem ersten Schritt profitiert die sones GraphDB vom einfachen und mühelosen
Einsatz zusätzlicher Instanzen der sones GraphDB. In einem nächsten Schritt ist es
geplant, diese folgenden Features zur Verfügung zu stellen:
    •   Nutzen des Windows Azure Service Update Feature Windows um nahtlos
        laufende GraphDB Instanzen durch Staging auf neuere Versionen upzudaten.
    •   Nutzen der Master/Slave Replikation um viele sones GraphDB Windows Azure
        Instanzen einzusetzen
    •   Nutzen des spezialisierten Windows Azure Page Blob Storage Services um eine
        Persistenz-Schicht zu schaffen, die die Windows Azure Plattform vollständig
        nutzt und dabei hilft, die In-Memory-Größen Beschränkung zu umgehen.


Diese Features werden – entsprechend der aktuellen Entwicklungspläne für die sones
GraphDB 1.2 - voraussichtlich Ende 2010 verfügbar sein.
sones GmbH                      © 2010 sones GmbH. All rights reserved. sones as well as the according logos are registered trademarks of the sones.
August 2010                     All other names of products and services are trademarks of their respective owners. This document is provided for
                                information purposes only and the contents hereof are subject to change without notice.
sones GmbH
Eugen-Richter-Str. 44           This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed
99085 Erfurt                    orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular
Germany                         purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are
                                formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any
Tel.: +49(0) 361 - 30 26 25 0   form or by any means, electronical or mechanical, for any purpose, without our prior written permission.
Fax: +49(0) 361 - 244 500 8

sones auf windows azure whitepaper (german)

  • 1.
    sones sones Whitepaper GraphDB auf Windows Azure
  • 2.
    Die sones GraphDB Beider sones GraphDB handelt es sich um ein neuartiges, graphenbasiertes objektorientiertes Datenmanagementsystem. Dieses ermöglicht die effiziente Speicherung, Verwaltung und Auswertung extrem komplexer, hochgradig vernetzter Datenbestände. Die ganzheitliche Lösung verbindet die Vorteile einer Dateiablage mit den Möglichkeiten eines Datenbankmanagementsystems. Unstrukturierte Daten (z.B. Videodateien), semistrukturierte Daten (Metadaten, z.B. Logfiles) und strukturierte Daten können miteinander verknüpft und somit aus einer Hand verwaltet und bei Bedarf ausgewertet werden. Die Idee für die Neuentwicklung einer auf der Graphentheorie bestehenden Datenbank entstand Anfang 2005 aus Unzufriedenheit über die bestehenden Lösungen am Markt. Diese boten für Abfragen auf stark verknüpfte Daten oft keine oder nur unzureichende Ad-hoc Analyse-Funktionen. Zudem waren diese Systeme den sich mit hoher Dynamik ändernden Daten- und Informationsstrukturen, die Applikationen insbesondere im Web- Umfeld verarbeiten müssen, meist nicht in ausreichendem Maße gewachsen. Fokus der Entwicklung war es daher, diese bisher komplexitätsbedingt kaum oder nur mit höchstem Aufwand lösbaren Aufgabenstellungen einem effizienten Datenhandling und einer Real- time-Analyse zuzuführen. Auf Basis völlig eigenständiger und neuartiger Konzepte wurde eine von Grund auf neue Datenbanktechnologie entwickelt. Die Lösung beinhaltet eine objektorientierte Speicherlösung (sones GraphFS) zur performanten Datenspeicherung, sowie das Graphenorientierte Datenbankmanagement- System (sones GraphDB), welches die Daten miteinander verknüpft und deren performante Auswertung ermöglicht. Die Zusammenfassung dieser beiden Teile in eine Software bietet den Vorteil einer hocheffizienten Verarbeitung, da auf jegliche Abstraktionsschicht verzichtet werden kann. Der für den Betrieb einer Datenbanklösung sonst übliche Aufwand wird durch diese Lösung extrem verringert. Die objektorientierte Speicherlösung (sones GraphFS) speichert auch unstrukturierte und semistrukturierte Daten, wie z.B. Dokumentenformate, Bilder, etc., effizienter als Dateisysteme, welche dem Betriebssystem zugrunde liegen. Durch dieses Prinzip wird
  • 3.
    eines der wesentlichen Performance-Probleme in bisherigen objektorientierten Datenbanken, Mapping der Objektmodelle in relationale Tabellen, erfolgreich überwunden. Für das Dateisystem ist ein Patent beantragt. Das Graphenorientierte Datenmanagement (sones GraphDB) bietet hohe Flexibilität bei der Datenstrukturierung und ermöglicht die direkte Verknüpfung der Daten ohne zusätzliche Hilfskonstrukte, wie z.B. Zuordnungstabellen in Relationalen Datenbanken. Da sich das Datenmodell an gängigen Programmiersprachen orientiert, entsteht keine Diskrepanz zwischen Applikationslogik und Datenspeicherung. Die Komplexität ist im Vergleich zu den bestehenden relationalen Lösungen teilweise drastisch geringer. Der sich daraus ergebende Vorteil besteht unter anderem darin, dass bei zunehmender Verknüpfung der Daten die Komplexität nicht exponentiell sondern linear wächst. Ein weiterer entscheidender Vorteil liegt in der Fähigkeit der Datenbank, während der Laufzeit Datenstrukturen ändern oder ergänzen zu können. Neue Anforderungen seitens der Anwendung können daher ohne aufwändige Neuprogrammierung eines relationalen Datenbankschemas realisiert werden. Um das Datenmanagement für die Anwender zu erleichtern, wurde die Graph Query Language (sones GQL) entwickelt. Sie orientiert sich in Umfang und Syntax zwar an SQL, wurde aber an den graphenorientierten Ansatz angepasst und erschließt die in diesem Modell vorhandenen Vorteile einer direkten und leicht verständlichen Abfrage.
  • 4.
    Die Windows AzurePlattform Die Azure Services Plattform ist eine Anwendungsplattform in der Cloud, die es möglich macht, Anwendungen in Microsoft Rechenzentren zu hosten und zu betreiben. Sie stellt das Cloud Operating System Windows Azure bereit, welches als Laufzeitumgebung für die Anwendungen dient und eine Reihe von Diensten für die Entwicklung, Steuerung und das Hosting der Anwendung bietet. Alle bestehenden Azure Services sowie die darauf laufenden Anwendungen arbeiten selbst auf Windows Azure. Windows Azure verfügt über drei Kernkomponenten: Compute, Storage und Fabric. Wie der Name bereits vermuten lässt, bietet Computing Rechenleistung für Web und Worker Roles während Storage sich darauf konzentriert skalierbaren Speicher (Blobs, Tabellen, Queues, Laufwerke) auf elastisch skalierbare Weise zur Verfügung zu stellen. Das Hosting-Umfeld von Windows Azure nennt sich Fabric Controller – dieses fasst einzelne Systeme zu einem Netzwerk zusammen, das automatisch Ressourcen verwaltet, Lastspitzen ausgleicht und Lasten verteilt, Geo-Replication und Anwendungs- Lebenszyklen steuert – und dies ohne dass die Applikation selbst mit diesen Dingen umgehen muss. Weiterhin bietet der Fabric Controler auch andere Dienste, welche von den meisten Anwendungen gefordert werden – wie zum Beispiel den Windows Azure Storage Service, der Anwendungen liefert, die die Eigenschaft besitzen, unstrukturierte Daten wie z.B. Binärdateien, Queues, Laufwerke und nicht-relationale Tabellen zu speichern. Die Azure Service Plattform bietet ein auf REST, HTTP und XML basierendes API an und erlaubt es Entwicklern mit den Diensten die von Windows Azure angeboten werden zu arbeiten. Des weiteren wird ein Client-DLL angeboten welche die Interaktion mit den Diensten kapselt. Dies fügt sich nahtlos in Microsoft Visual Studio ein, sodass es als IDE verwendet werden kann um Azure-gehostete Anwendungen zu entwickeln und zu veröffentlichen. Seit dem 1. Februar 2010 ist Windows Azure kommerziell erhältlich. Auf der Website http://www.microsoft.com/azure können Nutzer Windows Azure Rechenzeit und Speicherplatz erwerben. Als eine Option bietet Azure auch Content Delivery (CDN) Dienste an. Zum aktuellen Zeitpunkt befinden sich diese CDN Dienste in einer kostenlosen „Community Technology Preview“ Phase und erlaubt es interessierten Nutzern statische Inhalte verteilt aus 18 Rechenzentren weltweit auszuliefern.
  • 5.
    Derzeitiger Status dersones GraphDB auf Windows Azure Derzeit ist die sones GraphDB 1.1 als Windows Azure Plattform Edition erhältlich, die – da sie besonders optimiert wurde – sich nahtlos in die Windows Azure Cloud integriert. Es ist wichtig, an dieser Stelle zu bemerken, dass all dies einen ersten Schritt in einem Plan darstellt, der es vorsieht am Ende des Prozesses die Tools und Dienste der Windows Azure Platform vollständig nutzen zu können. (beispielhafte Verwendung auf Windows Azure)
  • 6.
    Die sones GraphDBist als Windows Azure deployment package erhältlich und kann durch Nutzung der Service Configuration Datei konfiguriert werden. Die Windows Azure Version der sones GraphDB entspricht allen Features des 1.1 Open Source Release: • Full featured In-Memory Graph Datenbank • Graph Query Language 1.1 • Alle Graph* APIs verfügbar • REST Interface um die GraphDB als Service zu nutzen • Intuitives Browser-basiertes AJAX WebShell Interface für einfachen User- Zugang • Die C# API um die sones GraphDB in eigene Windows Azure Diensten zu verwenden • API und Plug-In Interface für Graph-Algorithmen • Inklusive “Kürzester Weg” Graphen-Algorithmus Da sich die Windows Azure Version der sones GraphDB die Codebasis mit der Open Source und Enterprise Version der sones GraphDB teilt, enthält sie im Wesentlichen jene Technologie und APIs, über die auch alle anderen Editionen der sones GraphDB verfügen und erreicht daher die gleiche Leistungsmetrik wie diese anderen Versionen. Die sones GraphDB 1.1 auf Windows Azure ist eine passgenaue Lösung für jeden, der die volle Flexibilität von Daten und Schemata einer ausgereiten Graph Datenbank nutzen möchte. Die derzeitig maximale RAM Größe einer extra-large Windows Azure Instanz liegt bei 14 Gbyte, was im Wesentlichen dem momentanen Größenlimit einer sones GraphDB 1.1 Instanz auf Windows Azure entspricht. Um praktisch unbegrenztem Speicherplatz verfügbar zu machen und somit die Anzahl von gespeicherten Objekten über die RAM Grenzen hinaus zu erhöhen, planen wir, ein spezialisiertes Windows Azure Speichermodul einzuführen.
  • 7.
    In diesem erstenSchritt profitiert die sones GraphDB vom einfachen und mühelosen Einsatz zusätzlicher Instanzen der sones GraphDB. In einem nächsten Schritt ist es geplant, diese folgenden Features zur Verfügung zu stellen: • Nutzen des Windows Azure Service Update Feature Windows um nahtlos laufende GraphDB Instanzen durch Staging auf neuere Versionen upzudaten. • Nutzen der Master/Slave Replikation um viele sones GraphDB Windows Azure Instanzen einzusetzen • Nutzen des spezialisierten Windows Azure Page Blob Storage Services um eine Persistenz-Schicht zu schaffen, die die Windows Azure Plattform vollständig nutzt und dabei hilft, die In-Memory-Größen Beschränkung zu umgehen. Diese Features werden – entsprechend der aktuellen Entwicklungspläne für die sones GraphDB 1.2 - voraussichtlich Ende 2010 verfügbar sein.
  • 8.
    sones GmbH © 2010 sones GmbH. All rights reserved. sones as well as the according logos are registered trademarks of the sones. August 2010 All other names of products and services are trademarks of their respective owners. This document is provided for information purposes only and the contents hereof are subject to change without notice. sones GmbH Eugen-Richter-Str. 44 This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed 99085 Erfurt orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular Germany purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any Tel.: +49(0) 361 - 30 26 25 0 form or by any means, electronical or mechanical, for any purpose, without our prior written permission. Fax: +49(0) 361 - 244 500 8