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.

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.0 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

Lizenzen

Für GlobalObjects wurde ein duales Lizenzmodel gewählt.

Open Source Lizenz

GlobalObjects ist freie Software.

GNU Affero General Public Lizenz Nutzung:
Sie können das Programm unter den Bedingungen der GNU Affero General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Belieben) jeder späteren Version.
Details finden Sie in der GNU Affero General Public License: https://www.gnu.org/licenses/agpl-3.0
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.

Kommerzielle Lizenz

Soll GlobalObjects in proprietärer Software eingesetzt werden, ist eine kommerzielle Lizenz erhältlich.