Thomas Meyer – Historisches Forschungsnetz https://www2.hu-berlin.de/historisches-forschungsnetz DFG-Projekt im Programm „Virtuelle Forschungsumgebungen“ Wed, 23 Oct 2013 10:35:08 +0000 de-DE hourly 1 https://wordpress.org/?v=4.9.3 Folder, Files und FRBR – Datenmodellierung für Dokumente und Metadaten https://www2.hu-berlin.de/historisches-forschungsnetz/2013/07/folder-files-und-frbr-datenmodellierung-fur-dokumente-und-metadaten/ https://www2.hu-berlin.de/historisches-forschungsnetz/2013/07/folder-files-und-frbr-datenmodellierung-fur-dokumente-und-metadaten/#respond Wed, 10 Jul 2013 11:14:30 +0000 http://www2.hu-berlin.de/historisches-forschungsnetz/?p=120 Weiterlesen ]]>

Die Entwicklung des Frameworks für die Fachinformations- und
kommunikationsdienste von H-Soz-u-Kult, Clio-online und weiteren Partnern basiert
auf einem Datenmodell mit standardisierten Schnittstellen und Formaten. Daten
und Beiträge werden in einem JAVA-basierten Framework so aufbereitet, dass sie
in Linked Open Data–Strukturen für Wissenschaft und Öffentlichkeit zur Verfügung stehen werden. Die Implementierung des HFN-Frameworks stützt sich dabei auf ein Datenmodell, welches Aspekte der Bibliothekswelt, der elektronischen Fachinformation- und kommunikation sowie des elektronischen Publizierens vereinigt.

Das Datenmodell des HFN basiert auf fünf Entitätengruppen –
Beiträge, Artikel oder Dokumente (verschiedene Arten von Text-, Bild-,
Videodaten), bibliografische Datensätze, Personen- und Organisationsdaten sowie
Ereignisse. Aus diesen Grundentitäten lassen sich die bisherigen Beitragsformate
zusammensetzen und beliebig um neue Entitäten oder Dokumenttypen erweitern. Die
Implementierung des Datenmodells wurde zu Beginn des Projekts in verschiedenen Repositoriensystemen getestet. Hierbei haben sich Grenzen hinsichtlich Skalierbarkeit und Erweiterbarkeit in unterschiedlichen Systemen gezeigt. [1]

Die Wahl fiel letztlich auf das teils kommerziell vertriebene Open-Source-Dokumentenmanagement System Alfresco, welches auch in einer freien Community-Edition verfügbar ist und mittlerweile viele Content-Management-Funktionen sowie freie Erweiterungen enthält. Alfresco stellt gängige Schnittstellen für den Datenaustausch bereit, die auf eigene Dienste angewendet werden können, zugleich lassen sich sehr flexibel eigene Datenmodelle bzw. Datenstrukturen implementieren. Das Dokumentenmanagementsystem weist umfängliche Anreicherungsfunktionen mittels Metadaten auf, so dass sowohl klassische Dokumententypen aus Text- oder Bildverarbeitung verwaltet und publiziert, gleichermaßen aber auch eigene Typen implementiert werden können. Neben den klassischen  Dokumentenmanagementfunktionen können eigene Renderer für die Ausgabe in HTML, PDF u.a.m. implementiert oder Schnittstellen (REST, CMIS) angebracht bzw. genutzt werden.

Folder, Files und FRBR

Im Kern stellt Alfresco Folder und Files (Content-Typen) für das Dokumentenmanagement bereit, wie es aus der grundsätzlichen Organisation von Dateien
bekannt ist. Dieses Folder-Files-Modell wird vom HFN genutzt, in dem Folder als
Ablagemappen und Content-Typen als eigentliche Objekte für die Speicherung von
Beiträgen eingesetzt werden. Darauf setzt ein FRBR-isiertes Datenmodell [2] auf, in
dem über Vererbung und gemischte Datentypen die jeweiligen Entitäten definiert sind: Dies können bibliografische Einheiten (Beiträge, Publikationen bzw. reine Metadatensätze), Authorities (Personen, Organisationen) sowie Ereignisse
sein, die nicht nur abgebildet, sondern auch miteinander in Bezug gesetzt werden können.

image001

Personen, Organisationen und Werke werden als Folder und mittels verschiedener Ontologien und Vokabularien im Datenmodell abgebildet.

image002

Die Metadaten der Objekte (Types) werden in einer XML-Datei definiert; hierbei wird teilweise das Resource Description Framework RDA [3] genutzt.

image003

Gleichermaßen werden die eigentlichen Content-Objekte abgebildet, die wiederum über Vererbung in eine Objekthierarchie gebracht werden können (manifestation -> book; manifestation -> review). Jeder Beitrag wird ebenfalls als Dokument bzw. als ein Content-Type in der XML-Deklaration des Datenmodells notiert und mit Eigenschaften (Properties) mittels Alfresco-Datentypen (d:text) und weiteren optionalen Parametern von
Alfresco versehen (multiple für Mehrfachwerte).

image004

Als hilfreich erweist sich die Möglichkeit von Alfresco, beliebige Vokabulare für Datentypen gemischt nutzen zu können: So werden für die Modellierung eines Beitrags (Manifestation) unter anderem Teile von RDA sowie des MODS und BIBO-Vokabulars genutzt.

image005

Mittels sogenannter Aspects, die in Alfresco dynamisch zum Anbringen weiterer Eigenschaften an Objekte oder aber auch zur Herstellung von Relationen mittels Associations genutzt werden können, sind die Beziehungen zwischen den einzelnen Entitätentypen definiert – hier die Zugehörigkeit einer Rezension zum rezensierten Werk (reviewOf). Diese Relationen könnten auch direkt in den eigentlichen Datentypen in Alfresco angebracht werden, allerdings lassen sich die Relationen in Alfresco über die CMIS-Schnittstelle einfacher in JAVA ansprechen.

image006

Über das Folder-Files-Modell sowie die Anwendung von FRBR, RDA usw. lassen sich somit innerhalb eines Alfresco-Folder (=Work) unterschiedliche Versionen und Varianten einer Werksumsetzung als Content-Objekt (=Manifestation) umsetzen, mittels Aspects und Relationen entsprechende Beziehungen zwischen den Entitäten implementieren.

Nach diesem Grundmodell wurden alle Beitragsformate von Clio-online und H-Soz-u-Kult im Datenmodell abgebildet und so erweitert, dass beliebige Entitäten miteinander in Beziehung gesetzt werden können.

image007

image008

Für die Rezensionen, die über die Suchmaschine Historische Rezensionen Online (HRO) unter http://hro.clio-online.de recherchierbar sind, wurde das Datenmodell bereits prototypisch implementiert (ein Publikationsdatensatz – im Modell frbr:work/bibo:book – kann dabei jederzeit um weitere neue Rezensionen – rev:review/clio:review – erweitert werden; denkbar ist sogar die Erweiterung durch mehrere Versionen einer Rezension mittels weiterer clio:review-Typen in einem rev:review-Folder). Die Suchoberfläche von HRO besteht aus einem einfachen SOLR-Client [4], der auf einen separaten SOLR-Server des HFN (nicht den Alfresco-SOLR-Server!) zugreift. Die einfache php-Implementation dieses Clients lässt sich wiederum in gängige Content-Management-Systeme auf PHP-Basis integrieren.

Derzeit werden in JAVA verschiedene Module des HFN-Framework entwickelt, welche die Ein- und Ausgabe über die Alfresco-eigene CMIS-Schnittstelle implementieren. Ziel dieser Module ist die vollständige Kapselung der CMIS-Zugriffe bzw.  Schnittstellenkommunikation, so dass die nur noch über Model-View-Controller die Ein- und Ausgabe via Formulare und Webseiten bereitzustellen ist, ohne sich intern um die Kommunikation mit der Datenbank bzw. auf der CMIS-Schnittstellenebene befassen zu müssen. Durch die Entkopplung von Datenbank und Anwendung lässt sich das Modell neben projekteigenen Vorhaben zukünftig in weiteren Projekten mit externen Partnern zur Integration weiterer Datentypen und Anwendungen, so z.B. zur Integration von Forschungsprimärdaten, nutzen: Das Datenmodell muss nur noch in den Alfresco-eigenen XML-Deklarationen um neue Datentypen erweitert werden, in den JAVA-Modulen sind entsprechend die Datentypen zu kapseln. Besonders interessant dürften in diesem Zusammenhang neue Anwendungen werden, die vorhandene Publikationen aus dem Umfeld von Clio-online und H-Soz-u-Kult einerseits und weiteren, digitalen Quellensammlungen und Forschungsprimärdaten andererseits zusammenführen bzw.
verknüpfen.

Anmerkungen:

[1] Zum Vergleich verschiedener Repositorien und no-sql-Datenbanken siehe den zweiteiligen Blog-Beitrag unter <http://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/jcr-repositorien-und-nosql-datenbanken/> (10.07.2013).

[2] Näheres zur FRBR-Spezifikation siehe die Seiten der International Federation of Library Associations and Institutions (IFLA) <http://www.ifla.org/publications/functional-requirements-for-bibliographic-records> (10.07.2013).

[3] Zur Umsetzung von RDA in Deutschland vgl. <http://www.dnb.de/DE/Standardisierung/International/rda.html> (10.07.2013).

[4] Das PHP-Solr-Framework Solarium ist zu finden unter <http://www.solarium-project.org/> (10.07.2013).

]]> https://www2.hu-berlin.de/historisches-forschungsnetz/2013/07/folder-files-und-frbr-datenmodellierung-fur-dokumente-und-metadaten/feed/ 0 Datenbanken und Repositorien Teil 2: Fedora Commons, Nuxeo und Alfresco https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/datenbanken-und-repositorien-teil-2-fedora-commons-nuxeo-und-alfresco/ https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/datenbanken-und-repositorien-teil-2-fedora-commons-nuxeo-und-alfresco/#respond Tue, 20 Mar 2012 13:31:33 +0000 http://www2.hu-berlin.de/historisches-forschungsnetz/?p=105 Weiterlesen ]]> Thomas Meyer: Content Repositories und Relationale Datenbanken für das Historische Forschungnetz.

Bericht Teil 2: Fedora Commons, Nuxeo und Alfresco.

Fedora Commons

Nachdem in den Tests der JCR-Repositories sich Performanzprobleme bei mehreren tausend Dokumenten pro Ordnerebene einstellten, wurde die Verwendung von Fedora Commons geprüft. Fedora Commons hat im akademischen Umfeld in den USA, in Großbritannien und Deutschland derzeit eine relativ weite Verbreitung gefunden. In der Fedora-Umgebung stehen bisher einfache APIs und Werkzeuge für das Einfügen und Auslesen von Objekten zur Verfügung, die nach den Prinzipien von RESTful-Services arbeiten[i]. Mit den eSciDoc-Umgebungen der MPIs und des FIZ Karlsruhe stehen grundlegende Anwendungen für die Verwaltung bibliographischer Metadaten, Bilder und Volltexte zur Verfügung, allerdings werden keinerlei Workflowkomponenten oder übergreifende Schnittstellenstandards wie CMIS, die die Integration beliebiger CMS ermöglichen, angeboten.

Für den Test wurde der gleiche Datenbestand aus der Suchmaschine Historische Rezensionen Online für Fedora Commons aufbereitet: Die bisherigen Datenstrukturen wurden anhand des im ersten Projekthalbjahr entwickelten Datenmodells entsprechend in FOXML-Objekte umgewandelt und mit den Fedora Commons-eigenen Schnittstellen und Einfügewerkzeugen in ein Fedora-Repositorium eingespielt. Kleinere Datenmengen (bis ca. 20.000 Publikationsdatensätze sowie bis zu ca. 35.000 Rezensionsdatensätze) konnten ohne weitere Performanzverluste übernommen werden. Größere Datenmengen ab mehr als 50.000 Volltext-Objekten jedoch brachten auch bei Fedora Commons ähnliche Performanzprobleme zutage: Sowohl Einfügeoperationen, als auch Änderungen und Löschungen von Objekten in größerem Umfang führten zu auffälligen Performanzeinbußen. Auch die Adaption von Leistungsparametern (z.B. Einstellung von Speicherverfügbarkeit für die Programmumgebung / JAVA-OPTs) führten zu keiner signifikanten Verbesserung der Performanz.

Weitere Performanzverbesserungen sollten durch die Trennung von Datenbank und Anwendung erreicht werden: In einer weiteren Installation von Fedora Commons wurde die zugrundeliegende Datenbank in eine externe Postgresql-Datenbank ausgelagert. Die Einfügetests bzw. Migration der aufbereiteten Rezensionsdaten in diese Installationen erwiesen sich im Vergleich zu den vorangegangenen Tests (auf einer Fedora Commons-Standardinstallation mit integrierter Derby-Datenbank) als noch weniger performant: Von den insgesamt 80.000 Rezensionen incl. Publikationsdatensätzen waren nach 12 Stunden Testlauf gerade einmal 25% der Daten eingefügt. Die in den Tests des FIZ-Karlsruhe nachgewiesenen Performanzwerte konnten mit den Beitragsformaten von Clio-online und H-Soz-Kult und Fedora-eigenen Einfügetools leider nicht erreicht werden.[ii]

Aufgrund des nicht überschaubaren Risikos von Performanzproblemen wurden im Anschluss an die Tests von Fedora Commons die in die Auswahl einbezogenen Systeme Nuxeo und  Alfresco auf ihre Eigenschaften hinsichtlich der Projektanforderungen und teils auf ihre Performanz bei der Einfügung von Massendaten getestet.

Nuxeo

Das Dokumenten-Management-System Nuxeo stellt die als Voraussetzung für das Projektvorhaben gestellten Anforderungen bzw. Funktionalitäten zur Verfügung (siehe Tabelle im Anhang), insbesondere verfügt es über eine CMIS-Schnittstelle für die Vernetzung mit weiteren Datenspeichern und Umgebungen.[iii] Allerdings handelt es sich hierbei um ein System aus Frankreich, das fast ausschließlich dort und bisher kaum im deutschsprachigen Raum eingesetzt wird. Auch die internationale Verbreitung von Nuxeo ist stark auf die USA beschränkt. Wegen zu erwartender Supportprobleme (Dependancen ausschließlich in Frankreich und den USA) und einiger technischer Einschränkungen wurde vom Test bzw. Einsatz von Nuxeo abgesehen.

Alfresco

Bereits vor dem Projektstart wurden am Bereich Historische Fachinformatik in einer internen Evaluierung zwei der führenden CMS-Systeme, Sharepoint und Alfresco, hinsichtlich ihrer Einsatzmöglichkeiten in den Fachinformationsdiensten und darüber hinaus in den Institutsdiensten des IfG anhand einfacher Testinstallationen evaluiert. In internen Projekten wurde Sharepoint am Bereich Historische Fachinformatik bereits seit 2007 gelegentlich eingesetzt. Sharepoint ist als proprietäres Produkt von Microsoft allerdings eng an die Produkte und Technologien von Microsoft (Datenbankserver MS-SQL, Betriebssystem Windows Server) gebunden und somit nicht plattformübergreifend nutzbar. Alfresco dagegen wird als quelloffene, frei verfügbare Community-Edition vertrieben, die datenbank- und plattformunabhängig ein Repository für Metadaten und Inhalte bereitstellt, einschließlich generischer Funktionalitäten und standardisierter Schnittstellen (neben einer kostenpflichtigen Version).

Aufgrund der vielfältigen Performanzprobleme beim Massendatenimport und nachträglichen Änderungen von Daten in Jackrabbit, ModeShape, Fedora und den möglichen Risiken des Einsatzes von MongoDB und Nuxeo einerseits und der fortgeschrittenen Projektentwicklung andererseits wurden die Daten von Clio-online und H-Soz-Kult mit Hilfe der bereits entwickelten Programmbibliotheken in ein Alfresco-System migriert. Die damit verbundenen Tests des Massendatenimports waren erfolgreich, innerhalb von drei Stunden konnten z.B. mehr als 50.000 Rezensionen einschließlich der Publikationsdatensätze der Suchmaschine Historische Rezension Online übertragen werden. Diese Tests wurden zur Absicherung der Ergebnisse mehrfach wiederholt. In einem umfassenden Testlauf wurden nahezu sämtliche Daten der Projekte Clio-online und H-Soz-Kult in eine Alfresco-Standard-Installation migriert.

Zusätzlich wurden detaillierte Lasttests der im Alfresco-CMS bereits vorhandenen generischen Bearbeitungs- und Rechercheformulare und der integrierten Schnittstellen (interne Alfresco-API, CMIS-REST-API) durchgeführt, um die Performanz nicht nur der Datenimporte, sondern auch des Betriebs an sich zur untersuchen. Dazu wurden erste Workflows und Bearbeitungsfunktionalitäten für Redaktion und zukünftige Nutzer der Beitragen-Bereiche im System implementiert und ebenfalls in die Tests eingeschlossen. Diese Implementationen und Tests konnten so gestaltet werden, dass sowohl bereits entwickelte Datenmodelle, als auch bereits ausprogrammierte Schnittstellen und Programmbibliotheken integriert werden können.

Exkurs: Projekt Bamboo

Weitere internationale Projekte im Umfeld der „Virtuellen Forschungsumgebungen“ befassen sich mit den gleichen Fragen und Problemen, wie das vorliegende Projekt, insbesondere mit den Möglichkeiten der Vernetzung unterschiedlicher Repositories über Standardschnittstellen wie CMIS und die Integration von Fedora Commons als eines der zentralen Repositoriensysteme im akademischen Umfeld. So entwickelt das Project Bamboo[iv] seit mehreren Jahren Basisdienste und Werkzeuge für Virtuelle Forschungsumgebungen.

Während der ersten Projektphase stellte Bamboo Forschungsumgebungen auf Basis von Alfresco und HUBzero.[v] HUBzero ist eine Webplattform, über die Websites und Materialien aus/für Lehre und Forschung an amerikanischen Universitäten entwickelt und publiziert werden können.[vi] Des Weiteren wurden im Projekt Möglichkeiten diskutiert, wie Alfresco, Fedora Commons und die projekteigenen Entwicklungen miteinander vernetzt werden können. Die Entscheidung zur technologischen Unterstützung einer solchen Vernetzung wurde im vergangenen Jahr getroffen und wird derzeit umgesetzt: Auf Basis des CMIS-Protokolls werden Server- und Client-Komponenten für die Integration der genannten Systeme entwickelt. Im Rahmen dieser Entwicklung sind bereits Datenmodelle entstanden, die das Mapping von Objekten der genannten Content Repositories ermöglichen[vii]. Derzeit steht die Unterstützung von Authentifizierung und Autorisierung im Mittelpunkt der Programmentwicklung[viii]. Darüber hinaus entwickelt das Projekt „Social Communities“ bzw. kollaborative Arbeitsgruppenplattformen auf Basis von Open Social, die in die Gesamtumgebung des Projekts integriert werden.[ix]

Fazit

Der Vergleich der Systeme Jackrabbit, Fedora Commons, Alfresco sowie zweier weiterer derzeit am Markt befindliche Repository-basierter Content-Management-Systeme zeigte eklatante Unterschiede zwischen den Systemen beim Massendatenimport, darüber hinaus auch bei normalen Operationen wie Einfügen neuer oder Änderungen vorhandener Dokumente. Das System Alfresco konnte in einer Standardinstallation ohne weitere administrative Anpassungen mit den zu bewältigenden Datenmengen weitaus performanter umgehen, als Jackrabbit und Fedora Commons.

Das System Alfresco bietet neben seiner Performanz bereits die standardisierten Schnittstellen (REST, CMIS), über die z.B. externe Arbeitsgruppen und deren Redaktionsumgebungen angebunden werden können. Zudem verfügt Alfresco über die Anbindung gängiger Authentifizierungsmechanismen, über generische Bearbeitungs-, Veröffentlichungs- und Recherchefunktionen, die ad hoc auf den importierten Datenbeständen genutzt werden können. Die Programmierung eigener Funktionalitäten innerhalb Alfrescos ist in gängigen plattformunabhängigen Sprachen (JAVA, JavaScript) in modularen Architekturen (MVC, Spring Beans) möglich.


[iii] Why Nuxeo Dropped JCR: „Performance. There were also unresolved performance problems with nodes containing a huge number of children, inherent in Jackrabbit’s way of storing children information. I haven’t kept up with the latest Jackrabbit releases but at the time this was killing us, and there was no simple fix available.” http://blogs.nuxeo.com/fguillaume/2011/01/why-nuxeo-dropped-jcr.html (15.03.2012).

[vi] http://hubzero.org/ (01.03.2012).

]]>
https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/datenbanken-und-repositorien-teil-2-fedora-commons-nuxeo-und-alfresco/feed/ 0
Datenbanken und Repositorien Teil 1: JCR-Repositorien und NoSQL-Datenbanken https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/jcr-repositorien-und-nosql-datenbanken/ https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/jcr-repositorien-und-nosql-datenbanken/#respond Fri, 16 Mar 2012 16:27:39 +0000 http://www2.hu-berlin.de/historisches-forschungsnetz/?p=62 Weiterlesen ]]> Daniel Burckhardt: Content Repositories und Relationale Datenbanken für das Historische Forschungnetz.

Teil 1: JCR-Repositorien und NoSQL-Datenbanken.

Die langfristig wichtigste Entscheidung für den Aufbau eines Redaktionssystems, wie auch sonst bei jeder datenbankbasierten Software, ist die Frage nach der Datenhaltung. Im Projekt Historisches Forschungsnetz wurden verschiedene Möglichkeiten der Datenhaltung in relationalen Datenbank und sogenannten Content Repositories evaluiert. Grundsätzlich kommen beide Datenspeicher in Kombinationen mit einem Dateisystem für das Ablegen von Binärdaten (Bild, Ton, Film) in Frage. Aber auch dokumentorientierte NoSQL-Datenbanken können in Betracht gezogen werden.[1]

Die bisherigen Lösungen für die Fachinformationsdienste Clio-online und H-Soz-u-Kult basieren auf relationalen Datenbanken. Diese haben bis heute eine sehr breite Verbreitung gefunden, auch auf einfachen shared Web-Host Accounts kommerzieller Hostingprovider; zudem existieren zahlreiche Konnektoren zwischen Datenbanken und Programmiersprachen. Hauptnachteil ist die ad-hoc Modellierung von Dateisystemstruktur sowie Funktionen zur Versionierung der Datenbankinhalte, für die sich keine allgemeinen Konventionen etablieren konnten. Damit wird jede Implementation in einem gewissen Sinn zu einer Insellösung.[2]

Relationale Datenbankmanagementsysteme

Hier stehen die bekannten proprietären (Microsoft SQL, Oracle) bzw. Open Source Datenbanken (MySQL, Postgresql) im Vordergrund. Alle diese Systeme haben sich über die letzten beiden Jahrzehnte in vielen Anwendungsbereichen mit großen Datenbeständen und einer hohen Zahl paralleler Anfragen bewährt. Alle Produkte unterstützen sowohl Replikation als auch Hot-Backups und bieten Treiber für alle gängigen Programmiersprachen, so dass die Entscheidung primär gemäß den Lizenzbedingungen sowie individuellen Präferenzen und weniger aufgrund der spezifischen Eignung für die konkreten Projektanforderungen gefällt werden kann. Hauptnachteil von SQL-Datenbanken sind die Funktionen zur Modellierung und Versionierung der Datenbankinhalte, für die sich bislang keine allgemeinen Konventionen etablieren konnten.[3] Damit wird jede konkrete Implementation unabhängig von der Wahl des konkreten RDMS in einem gewissen Sinn zu einer Insellösung.

Content Repository

Die Definition eines Content Repository ist unschärfer.[4] Zusätzlich zur Speicherung und Abfrage von strukturierten und unstrukturierten Dokumenten bieten viele Content Repositories ein Zugriffsmanagement (Access Control) sowie zur Versionierung der Inhalte; Funktionen, die beim Einsatz eines RDMS typischerweise im Data Access Layer erfolgen.

Bei den Content Repository haben neben der einzig in Python-Umgebungen verbreiteten Zope Object Database[5] vor allem Java-Lösungen Verbreitung gefunden. Einerseits gibt es eine Reihe von Systemen, die die Content Repository API for Java (JCR) umsetzen.[6] Der Anwendungsbereich wird in der Einleitung zum JSR-283[7] folgendermaßen beschrieben:

The JCR specification defines an abstract model and a Java API for data storage and related services commonly used by content-oriented applications. The target domain encompasses not only traditional content management systems but, more broadly, any application that must handle both unstructured digital assets and structured or semi-structured information.

The repository model enables efficient access to both large binary objects and finely-structured hierarchical data through a simple, generic API and a robust and extensible object typing system. Additionally, many features that are traditionally custom-built on top of RDBMSs and file systems have been incorporated into the repository itself. These include support for query, access control, versioning, locking and observation. Standardized support for these services further enables applications that might not normally have access to such advanced features to take advantage of them, since they are built-in at the infrastructure level.

In den letzten beiden Jahren sind eine Reihe von System dazugekommen, die entweder in Ergänzung zu JCR oder als primäre Schnittstelle als CMIS-Server fungieren.[8] Aufgrund der quelloffenen Community Edition stand für uns das Alfresco 4.x CMIS Content Repository im Vordergrund; kommerzielle Implementierungen umfassen u.a. Microsoft Sharepoint sowie EMC Opentext. Neben den JCR bzw. CMIS-basierten Systemen hat im akademischen Bereich Fedora Commons in verschiedenen e-Library und e-Science Projekten wie Ambra[9] und eSciDoc[10] Verbreitung gefunden.

Im Projekt Historisches Forschungnetz wurde ein Teil der genannten Datenbanken und Repositorien hinsichtlich verschiedener Eigenschaften evaluiert und getestet. Zu Beginn der Evaluation sprachen eine Reihe von Argumenten für den Zugriff über die JCR-Schnittstelle gegenüber einer direkten Anbindung von Fedora Commons, da parallel zu den JCR-Repositories Jackrabbit und ModeShape getestet wurde:

  • Standardisierte Schnittstelle: JCR ist durch zwei im Rahmen des Java Community Prozess entstandene Spezifikationen festgelegt.[11] Fedora Repository bietet Web-Service Schnittstellen, die sich aber zwischen den verschiedenen Versionen ändern können.[12]
  • Mehrere frei verfügbare und kommerzielle Implementationen.[13] Dadurch schien die dauerhafte Pflege und Weiterentwicklung von JCR Repository besser abgesichert, als bei Fedora Commons, dessen Weiterentwicklung im Rahmen der Duraspace Foundation primär von Projektförderungen abhängig ist und sich auf eine relativ kleine Kerngruppe von Programmierern stützt.[14]
  • Über das im Rahmen des Apache Chemistry Projektes entwickelte OpenCMIS JCR Repository[15] sollte demnächst jedes JCR-kompatible-Repository den CMIS-Standard unterstützen.[16]

Bei der ersten Umsetzung einer Migration der Clio-online Suchmaschine Historische Rezensionen Online mit mehr als 87.000 Rezensionen zu knapp 70.000 Publikationen zeigte sich, dass weder Jackrabbit (in der Version 2.3.x) noch ModeShape (in der Version 2.6.x) mit einer großen Zahl flach strukturierter Knoten umgehen können. Ab ungefähr 1000 Knoten auf einer Hierarchie-Stufe werden die schreibenden Zugriffe sehr langsam. Diese Beschränkungen beim Einfügen lassen sich durch eine „Pseudo-Hierarchie“ (z.B. Gruppierung von Publikationen gemäß ihres ISBN-Prefixes oder einem Hash-Key) zwar teilweise umgehen.[17] Aber auch dann haben einfache Abfragen wie „Gib mir die Zahl der gespeicherten Publikationen“ mit Antwortzeiten im Minutenbereich bei über 50.000 Publikationen die Systemwahl grundsätzlich in Frage gestellt. Bei der Suche nach passenden Lösungen für diese Probleme zeigte sich, dass auch andere Projekte daran letztendlich gescheitert sind.[18] So wurde für das Content Management System Nuxeo unter anderem der Wechsel von einem Content Repository zurück zu einer relationalen Datenbank vorgenommen.[19]

Dass die schlechte Performance bei flachen Strukturen keine inhärente Beschränkung des JCR-Standards, sondern der konkreten Implementierungen ist, will die nächste Version von ModeShape zeigen.[20] Diese liegt zur Zeit aber erst als alpha-Version vor, so dass das Risiko, ob die stabile Release mit diesen Änderungen rechtzeitig erscheint und sowohl bei Speicheropration als auch Abfragen schnell genug für unsere Anforderung ist, sehr hoch ist.

Dokumentorientierte NoSQL-Datenbanken

Eine Zwischenstufe zwischen RDMS und Content Repository bieten Dokument-orientierte Datenbanken  wie MongoDB oder CouchDB. Diese unterstützen teilweise ähnliche Funktionen wie die beiden erwähnten Content-Repositories:

Quelle: http://contentcurmudgeon.wordpress.com/2010/07/12/nosql-and-cms-comparing-nosql-with-cps-requirements/

Einem System wie MongoDB fehlt in der aktuellen Version eingebaute Versionierung und hierarchische Zugriffsrechte. Es bietet aber eine Schema-freie Datenhaltung, d.h. zusätzliche Felder können zu einem Dokumenttyp hinzugefügt werden, ohne dass das Datenbankschema angepasst werden muss bzw. alle Zusatz-Attribute über eine Relation in eine separate Tabelle ausgelagert werden müssen, was zu komplizierten, entsprechend fehlerträchtigen und unter Umständen Performance-kritischen Abfragen führt. Da einzelne Felder nicht wie in einem RDMS skalar sein müssen, sondern wiederum hierarchische Inhalte haben können, kann auch die Versionierung über das Hinzufügen aller früherer Versionen zum aktuellen Datensatz relativ einfach abgebildet werden.[21]

Ob eine NoSQL-Datenbank wie MongoDB überhaupt für die dauerhafte Datenhaltung oder bloß als schneller Cache für die temporäre Datenhaltung geeignet ist, war bis zu den jüngsten Versionen auf Grund der offen eingeräumten Möglichkeit von Datenverlusten bei nicht-replizierten Installationen stark umstritten.[22] Zusammenfassend scheint der Einsatz eines Systems wie MongoDB als Datenspeicher für das historische Forschungsnetz zwar technisch möglich, aufgrund der relativ jungen Architektur aber recht riskant.


[1] Vgl. http://de.wikipedia.org/w/index.php?title=Dokumentenorientierte_Datenbank&oldid=100304113

[2] Einen umfassenden Vergleich der beiden Herangehensweisen bietet die Studie von Bertil Chapuis, JCR or RDMS, why, when, how?, http://dev.day.com/content/ddc/blog/2009/01/jcrrdbmsreport/_jcr_content/images/jcrrdbmsreport/jcr_rdbms_report_chapuis.pdf

[3] Object-relational Mapper (ORM) wie Hybernate (Java) oder Doctrine (PHP) unterstützen eine Daten-Versionierung auf der Ebene des Data Access Layers.

[4] Vgl. etwa den entsprechenden Wikipedia-Artikel: „A content repository is a store of digital content with an associated set of data management, search and access methods allowing application-independent access to the content, rather like a digital library, but with the ability to store and modify content in addition to searching and retrieving.” http://en.wikipedia.org/w/index.php?title=Content_repository&oldid=444422508

[5] http://en.wikipedia.org/wiki/Zope_Object_Database

[7] http://www.day.com/specs/jcr/2.0/2_Introduction.html

[8] http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services

[9] Ambra publishing system ist die technische Plattform der PLoS-Zeitschriften bildet: „Ambra is written in Java. It uses Spring, Struts, and the FreeMarker templating system to construct HTML which is served by Tomcat. It uses the Dojo JavaScript toolkit to create an advanced user interface. The Fedora Digital Repository is used to store digital objects. … All content is parsed and metadata is stored as triples in the Mulgara semantic repository. “ http://www.ambraproject.org/

[10] https://www.escidoc.org/

[11] JSR-170 (http://www.day.com/specs/jcr/1.0/) und JSR-283 (http://jcp.org/en/jsr/detail?id=283)

[12] https://wiki.duraspace.org/display/FCR30/Web+Service+Interfaces

[13] Im Vordergrund stehen die drei freien Implementationen Apache Jackrabbit (http://jackrabbit.apache.org/ ), JBoss ModeShape (http://www.jboss.org/modeshape) und eXo JCR (http://wiki.exoplatform.com/xwiki/bin/view/JCR/eXo%20JCR%20Implementation, download über http://forge.ow2.org/project/showfiles.php?group_id=151) und evtl. auch von Alfresco http://wiki.alfresco.com/wiki/Introducing_the_Alfresco_Java_Content_Repository_API.

[14] „Fedora 3.4 was released in June 2010. The community-based development team is international, currently consists of 12 open source committers, and many contributors. „ http://www.duraspace.org/fedora/repository/duraspace:74/OBJ/Fall_2010_Quarterly_Report.pdf

[15] http://chemistry.apache.org/java/developing/repositories/dev-repositories-jcr.html

[16] Die Implementierung eines Beispiel-Servers zeigt http://www.heise.de/developer/artikel/CMIS-mit-Apache-Chemistry-ein-Praxisbeispiel-1212217.html?view=print

[17] “A more sophisticated approach would be to hash user IDs and chunk the hash to form an ad-hoc hierarchy. For example, „Joe Smith“ might give a hash of ab12cd34. The user data for Joe Smith can be stored at users/ab/12/cd/34. When the time comes to look up data for Joe Smith, you would first hash the name (to obtain ab12cd34), then create the necessary path from the hash, and look up the data. As it turns out, the Jackrabbit API (which of course is built into CRX) offers yet another alternative for efficient hierarchical storage of arbitrary data, in the form of the BTreeManager. This class provides B+ tree-like behavior in allocating subtrees of nodes that are always balanced, with a fixed limit on how many siblings any given node can have. (You provide the limit as an argument in the constructor.)” http://dev.day.com/content/ddc/blog/2011/05/efficient_management.html

[18] So hat Sakai 3 von Jackrabbit zu SparseMap gewechselt: „Hierarchy is fundamental to the Java Content Repository specification, fundamental to Jackrabbits implementation and to some extents a natural part of the http specification. Attempting to layer a pooled content system over a fundamentally hierarchical storage system is probably a recipe for disaster on two levels. Technically it can be done, we have done it, but as my gut tells me we are beginning to find out, it wasn’t a good idea. All those efficiencies that were core to the content repository model are gone, exposing some potentially quite expensive consequences.” http://blog.tfd.co.uk/2010/10/17/wrong-content-model/

[19] Why Nuxeo Dropped JCR: „Performance. There were also unresolved performance problems with nodes containing a huge number of children, inherent in Jackrabbit’s way of storing children information. I haven’t kept up with the latest Jackrabbit releases but at the time this was killing us, and there was no simple fix available.„ http://blogs.nuxeo.com/fguillaume/2011/01/why-nuxeo-dropped-jcr.html

[20] Next Generation ModeShape: “We want ModeShape to support flatter hierarchies as good and fast as deeper ones.[…] We want ModeShape to scale to massively large repositories and even very large clusters. […] Recently I completed enough of it that I could run some performance comparisons using the JCR API. I was floored by the results, even after spending no time optimizing the system:
Time to create 10K child nodes, perform a save, and persist to disk: 0.8 seconds.
Time to create a subgraph with 1.01M nodes, periodically saving, and persisting to disk: 3.5 seconds
Time to get a node by path from a workspace with 1M nodes: 0.00058 seconds
Running the same operations in ModeShape 2.x takes significantly longer (in some cases multiple orders of magnitude!), so I think this new design shows tremendous promise.” http://community.jboss.org/message/634352#634352

[21] http://stackoverflow.com/questions/4185105/ways-to-implement-data-versioning-in-mongodb

[22] http://blog.mongodb.org/post/381927266/what-about-durability?4a056380

]]>
https://www2.hu-berlin.de/historisches-forschungsnetz/2012/03/jcr-repositorien-und-nosql-datenbanken/feed/ 0
Das Historische Forschungsnetz auf .hist2011 https://www2.hu-berlin.de/historisches-forschungsnetz/2012/01/das-historische-forschungsnetz-auf-hist2011/ https://www2.hu-berlin.de/historisches-forschungsnetz/2012/01/das-historische-forschungsnetz-auf-hist2011/#respond Mon, 09 Jan 2012 12:08:17 +0000 http://www2.hu-berlin.de/historisches-forschungsnetz/?p=49 Das Projekt wurde im Rahmen eines Werkstattpanels zu „Virtuellen Forschungsumgebungen“ auf der .hist2011 vorgestellt. Weitere Projekte zu Virtuellen Forschungsumgebungen präsentierten ihren Entwicklungsstand und mögliche Perspektiven.

Weiter zur Dokumentation von .hist2011

]]>
https://www2.hu-berlin.de/historisches-forschungsnetz/2012/01/das-historische-forschungsnetz-auf-hist2011/feed/ 0
Präsentation des Historischen Forschungsnetzes in Graz https://www2.hu-berlin.de/historisches-forschungsnetz/2011/12/prasentation-des-historischen-forschungsnetzes-in-graz/ https://www2.hu-berlin.de/historisches-forschungsnetz/2011/12/prasentation-des-historischen-forschungsnetzes-in-graz/#respond Fri, 02 Dec 2011 08:48:52 +0000 http://www2.hu-berlin.de/historisches-forschungsnetz/?p=46 Weiterlesen ]]> Das Projekt wurde im Rahmen der Veranstaltungsreihe „Digitale Bibliothek“ an der Universität Graz präsentiert. Die diesjährige Tagung widmete sich vom 24. bis 25. November 2011 den Themen „Metadaten und Vokabularien“. Dazu referierten Fachleute aus Deutschland, Italien und Österreich.

Die Veranstaltungsreihe Digitale Bibliothek dient dem Erfahrungsaustausch, der Koordination und Kooperation zwischen Kultur- und Wissenschaftsseinrichtungen in dem Bereich digitale Bibliotheken.

http://conference.ait.co.at/digbib/index.php/digbib2011/metavok/schedConf/program

]]>
https://www2.hu-berlin.de/historisches-forschungsnetz/2011/12/prasentation-des-historischen-forschungsnetzes-in-graz/feed/ 0