Seite ist in deutschPage in English available

GlobalObjects

GlobalObjects ist eine C++ objektorientierte Datenbank (OODB, ODBMS, NoSQL) um C++ Objekte persisten zu halten. Es ist Single- und Multiuserbetrieb über einen Server möglich.

Es können C++ Objekte gespeichert, geladen und auch wieder gelöscht werden. Dieses kann auch in Transaktionen stattfinden, welche bestätigt (Aktionen werden ausgeführt) oder abgebrochen werden können (Aktionen werden nicht ausgeführt). Das ACID-Prinzips wird konsequent eingehalten.

GlobalObjects versteht C++-Klassendeklarationen mit Unterstützung für Kapselung, Vererbung, Polymorphismus, Objektidentität und Objektreferenzen.

Es existiert ein umfangreicher Sperrmechanismus um gespeicherte Objekte zu schützen.

Um Änderungen am Objektbestand "mitzubekommen", kann ein einfaches Benachrichtigungssystem, realisiert durch Übergabe einer Callback-Funktion, genutzt werden.

Das Hauptaugenmerk liegt im einfachen Abspeichern und Laden von auch komplexen C++ Objekten mit deren Referenzen und der Aktualisierung von geladenen Objekten im Speicher, wenn diese in der Datenbank geändert werden.

Wer die Objektdatenbank FastObjects kennt (ursprünglich entwickelt von der Firma Poet), wird viele Konzepte dieses Systems bei GlobalObjects wiederfinden.

GlobalObjects ist daher keine geschwindigkeitsoptimierte Datenbank. Jede Klasse besitzt ihre Tabelle (eine einfache Textdatei) mit mindestens einem Objekt-ID-Index. Objekte einer Klasse mit vielen Superklassen werden durch Einlesen der jeweiligen Datensätze „zusammengebaut“ bzw. beim Speichern „zerlegt“. Komplexe Objekte mit Referenzen auf andere Objekte, die ebenfalls gespeichert oder gelöscht werden müssen, können sich daher negativ auf das Timing auswirken. Indizes werden aus dem Dateisystem in Objekte vom Typ std::map<T> eingelesen bzw. beim Schließen der Anwendung wieder ins Dateisystem zurückgeschrieben.

Die Bezeichnung GlobalObjects wurde gewählt, weil es den Entwickler dabei unterstützt, Objekte auf mehreren Clients automatisch zu synchronisieren. Die mit GlobalObjects entwickelte Applikation funktioniert dennoch ohne Änderung auch im Einzelplatzbetrieb.

Die aktuelle Version GlobalObjects 1.1.2 ist in der Programmiersprache C++ realisiert und wurde bislang kompiliert und getestet mit:

Man kann z.B. einen GloServer auf irgendein unterstütztes Betriebssystem installieren und auf diesen von allen unterstützten Betriebssystemen zugreifen.

Die GUI-Tools wurden mit der C++ Bibliothek Qt realisiert.

GlobalObjects Anleitungen (online)
GlobalObjects Videos (online)
Download GlobalObjects