GlobalsDB: Die freie NoSQL-Datenbank

Hartmut Schlosser

Mit Globals hat der Datenbankspezialist InterSystems vergangene Woche ein frei verfügbares NoSQL-Datenbanksystem zur Verfügung gestellt. Technisch interessant ist das Release, da es auf dem kommerziellen Caché-Datenbankkern basiert, der bereits in zahlreichen kritischen Enterprise-Systemen zum Einsatz kommt. Mit den Prädikaten „Fast, Proven, Simple, Flexible“ wird Globals denn auch auf der InterSystems-Website beworben.

Im Gegensatz zum objekt-relationalen Ansatz der Caché-Datenbank arbeitet Globals mit multi-dimensionalen Arrays. Diese sogenannten „Globals“ bestehen aus einem oder mehreren Speicherelementen („Nodes“), die sich über eindeutige Referenzadressen ansprechen lassen und aus einem Namen sowie aus mehreren „Subscripts“ bestehen.

Die Daten eines Globals können atomar oder komplex sein (mehrere Informationen werden in einem ValueListα-Format abgelegt). Unten stehende Beispiele in Pseudocode erinnern stark an Java-Arrays:

Ein einfaches Global ohne Subscripts:

simpleGlobal == "Atomic Data stored in this Simple Global" 
  

Ein komplexes Global mit verschiedenen Subscripts:

cars["make", "Mercedes-Benz"] == VL("Germany", "mbusa.com", "Private")
cars["make", "Mercedes-Benz", "model"] == 3 (# of Models) 
cars["make", "Mercedes-Benz", "model", "CLS550 Coupe"] == "$74,000" 
cars["make", "Mercedes-Benz", "model", "G550 SUV"] == "$105,750" 
cars["make", "Mercedes-Benz", "model", "SL550 Roadster"] == "$102,600"   
  
cars["make", "Ford"] == VL("USA", "ford.com", "NYSE:F") 
cars["make", "Ford", "model"] == 4 (# of Models) 
cars["make", "Ford", "model", "Mustang"] == "$22,145" 
cars["make", "Ford", "model", "F-150"] == "$22,415" 
cars["make", "Ford", "model", "FUSION Hybrid"] == "$28,340" 
cars["make", "Ford", "model", "Expedition"] == "$37,070"   
  
cars["make", "Toyota"] == VL("Japan", "toyota.com", "NYSE:YM") 
cars["make", "Toyota", "model"] == 2 (# of Models) 
cars["make", "Toyota", "model", "Camry"] == "$19,820" 
cars["make", "Toyota", "model", "Prius"] == "$23,050"
  

Globals besteht aus einer Untermenge von Caché-Features, sodass sich Globals-Anwendungen ohne Codeänderungen auf Caché-Systeme migrieren lassen sollen. Nicht unterstützt werden fortgeschrittene Caché-Funktionen wie das Enterprise Cache Protocol (ECP), Web Services, Sicherheitsfeatures und die Caché-eigenen Skriptsprachen Caché ObjectScript und Caché Basic.

Für Java-Entwickler von Bedeutung ist, dass sich Globals über Open Source Java-APIs ansprechen lässt und damit offen ist für Erweiterungen jeder Art. Mit der Zeit soll sich hier eine Community um Globals bilden, die für ein Ökosystem freier Anwendungen und Extensions sorgt.

We encourage participation in the Globals Community in order to build a community of like-minded individuals interested in expanding the scope of the Globals database

Zum Start des Community-Building lanciert InterSystems einen monatlichen Wettbewerb, bei dem Globals-basierte Technologien ausgezeichnet werden sollen. Die Aufgabenstellung besteht darin, eine Applikation in einem der beiden Bereiche „Social Media Data Consumption“ und „Utility Smart Metering“ zu entwickeln. Der innovative Einsatz von GlobalsDB, die Architektur, API-Nutzung und effiziente Entwicklung stehen dabei auf dem Prüfstand. Die Gewinner werden auf globalsdb.org gefeatured und erhalten ein Preisgeld. Die Details zum Wettbewerb werden auf GlobalsDB.org noch bekannt gegeben.

Geplant ist nach der Einführung von „Globals for Java“ die Anbindung an weitere Programmierplattformen, insbesondere an das JavaScript Framework node.js.

Auf die Frage, warum InterSystems seine Datenbank-Engine frei zur Verfügung stellt, antwortet Produkt-Manager Iran Hutchinson, man wolle die Sichtbarkeit und Akzeptanz von Caché- und Ensemble-basierten Produkten erhöhen. Die Botschaft an Java-Entwickler laute, dass mit Globals ein leichter Einstieg in die Entwicklung hochperformanter Datenbanksysteme möglich wird. Je nach Wachsen der Anforderungen ließen sich die Kernfunktionen zu einem späteren Zeitpunkt durch professionelle Erweiterungen aus dem Caché-Portfolio erweitern.

Weiter Informationen zu Globals bietet die Projektseite sowie das Video-Interview von der JAX London, in dem Iran Hutchinson das Globals-Projekt vorstellt.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.