Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2007  »  09  »  Konservierungsmittel  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Synchron

Die Adressdatenbank auf einem Notebook oder dem mobilen Pocket-PC verlangt regelmäßig einen Abgleich mit ihrem Pendant am Arbeitsplatz. Das gleiche Phänomen kennen Datenbankentwickler als Replikation. Ist ein Objekt aus der Datenbank A auch in der Datenbank B zu finden, müssen Änderungen an einem Objekt immer auch in der jeweils anderen Datenbank auftauchen. Eine derartige Replikation erlaubt Db4o seit Version 5.

Nur kurze Zeit nach der Veröffentlichung haben die Entwickler die Funktionen zur Replikation jedoch schon wieder aus Db4o entfernt. Heute stecken sie in einem separat erhältlichen Zusatzmodul namens Db4o Replication System, kurz DRS [5]. Die noch im Kern verbliebenen Replikations-Funktionen sind als veraltet gekennzeichnet und sollten nicht mehr verwendet werden. Die Installation des DRS-Pakets funktioniert wie bei Db4o.

Die eigentliche Replikation einer Datenbank läuft genauso schnell ab. Zunächst muss ein Objekt in allen Datenbanken wiedererkannt werden. Das erreicht Db4o durch Zuweisung einer eindeutigen Nummer, der Unique Universal ID. Deren automatische Berechnung ist, da sie Zeit kostet, abgeschaltet, bei Bedarf muss der Programmierer sie per Hand aktivieren:

Db4o.configure().generateUUIDs(ConfigScope.GLOBALLY);

Gleiches gilt für die Versionsnummern, an denen Db4o Änderungen erkennt:

Db4o.configure().generateVersionNumbers(ConfigScope.GLOBALLY);

Dann sind noch zwei Datenbanken einzurichten:

ObjectContainer adressdatenbankA = Db4o.openFile("adressenA.yap");
ObjectContainer adressdatenbankB = Db4o.openFile("adressenB.yap");

Hier sollen die Objekte aus »adressdatenbankA« in der Datenbank »adressdatenbankB« landen. Dies erfährt das DRS über ein passendes Replication-Objekt:

ReplicationSession replication = Replication.begin(adressdatenbankA, adressdatenbankB);

Dieses Objekt führt auch gleich die Replikation durch. Damit fehlt nur noch die Information, welche Objekte aus der »adressdatenbankA« in die »adressdatenbankB« wandern sollen. Am besten nur jene, die sich seit dem letzten Abgleich verändert haben:

ObjectSet changed = replication.providerA().objectsChangedSinceLastReplication();

Über die auf diese Weise erhaltene Ergebnismenge iteriert die folgende Schleife und stopft dabei jedes gefundene Objekt in die »adressdatenbankB«:

while (changed.hasNext())
    replication.replicate(changed.next());

Ein darauf folgendes »replication.commit()« sorgt für einen ordnungsgemäßen Abschluss.

Die Replikation geschieht auf Wunsch sogar in eine relationale Datenbank. Im Hintergrund zieht Db4o dazu Hibernate heran, das die von Db4o angelieferten Objekte wieder in die gewohnte Tabellenform presst.

Besser als SQL

Db4o macht süchtig. In 90 Prozent der Fälle genügen bereits neun oder zehn Db4o-Funktionen. Dank Native Queries muss zudem niemand eine spezielle Abfragesprache lernen. Zudem macht Db4o sogar Refactorings häufig ohne Anpassungen mit: Neue oder erweiterte Objekte versucht es automatisch auf bereits in der Datenbank gespeicherte abzubilden. Sollte der »Kunde« beispielsweise nachträglich das Attribut »telefon« erhalten, klappen trotzdem noch Suchanfragen an die Datenbank. In den zurückgelieferten Objekten lässt Db4o das neue Feld einfach leer. Auf eine ähnliche Weise geht die kleine Datenbank auch mit Vererbung um.

Nur Administratoren müssen umdenken: Da Db4o nur eingebettet funktioniert, gibt es weder einen eigenen Server noch eine schmucke Administrationsoberfläche. Hier ist der Programmierer für alles alleine verantwortlich. Immerhin gibt es seit Neuestem den »ObjectManager« (Abbildung 2), mit dem der Admin wenigstens einen kleinen Einblick in eine bestehende Db4o-Datenbank erhält. Ein paar Hinweise zu alternativen Objektdatenbanken gibt der Kasten "Unter falscher Flagge". (ofr)


Abbildung 2: Der »ObjectManager« bietet einen ersten, schnellen Einblick in eine Datenbank.

Infos

[1] Objektdatenbank Db4o: [http://www.db4o.com]

[2] Persistenzframework Hibernate: [http://www.hibernate.org]

[3] William R. Cook, Siddhartha Rai, "Safe Query Objects, Statically Typed Objects as Remotely Executable Queries": [http://www.cs.utexas.edu/~wcook/papers/SafeQuery05/SafeQueryFinal.pdf]

[4] SODA-Abfragen: [http://sodaquery.sourceforge.net]

[5] Db4o Developer Community: [http://developer.db4o.com]

[6] Java Data Objects: [http://java.sun.com/javaee/technologies/jdo]

[7] Apache JPOX: [http://www.jpox.org]

[8] Speedo: [http://speedo.objectweb.org]

[9] Zope ZODB: [http://wiki.zope.org/ZODB]

[10] Versant: [http://www.versant.com/de_DE]

Der Autor

Tim Schürmann ist selbstständiger Diplom-Informatiker und derzeit als freier Autor unterwegs. Zu seinen Büchern gesellen sich zahlreiche Artikel, die in Zeitschriften und auf Internetseiten in mehreren Ländern veröffentlicht wurden.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Tooltipps Werkzeuge im Kurztest
LAMP mal ohne AMP Performante Webapplikationen in C++ entwickeln
Türöffner Service-orientierte Abbildung von Geschäftsprozessen mit freier Software
Flottes Projekt GPS-basiertes Flottenmanagement mit Open GTS
Passt! C#-Entwicklung unter Linux - Teil 4
Tooltime Die besten zehn Eclipse-Plugins
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (0)