Das [fleXive] Content Repository - JAXenter
Eine CMIS-konforme Persistenzlösung

Das [fleXive] Content Repository

Markus Plesser und Daniel Lichtenberger

Die [fleXive] Open-Source-Initiative [1] wurde gegründet, um die agile Entwicklung von datenzentrischen Anwendungen zu erleichtern – insbesondere Datenmodellierung und -handhabung. [fleXive] bietet ein Open-Source- (LGPL-)Paket aus einem zentralen clusterfähigen Content Repository mit Integrationsschnittstellen wie CMIS [2] und einem vollwertigen Entwicklungsframework. Das Content Repository bietet Möglichkeiten für dynamische Modellierung und Manipulation von Datenstrukturen mit einem besonderen Schwerpunkt auf Sicherheit, Mehrsprachigkeit, Scripting und Performance. Die mitgelieferte JSF-basierte Administrations-Backend-Anwendung deckt nahezu alle Aspekte des Content Repositories ab und macht es zu einem Tool für Rapid Prototyping. Darüber hinaus ist es anpassbar, erweiterbar und kann in eigene Anwendungen integriert werden.

Umfassende Datenmodellierung

[fleXive] führt die Stärken einer relationalen Datenbank mit denen eines Content Repositories zusammen. Der Zugriff auf Inhalte erfolgt entweder relational oder über Knoten eines virtuellen Dateisystems wie sie von „traditionellen“ Content Repositories bekannt sind. [fleXive] erlaubt strenge Typisierung und unterstützt hierarchische und vererbte Datenstrukturen. Es steht ein umfangreiches Set an Datentypen (z. B. String, HTML-, Binär-, Datumsbereiche, Auswahllisten etc.) für Felder zur Verfügung, die dynamische Validierung (z. B. mittels Groovy Scripts) unterstützen.

Dynamische Persistenz

Datenstrukturen werden direkt vom Businessmodell abgeleitet und definiert, ohne dass dabei auf die zugrunde liegende Datenbank (derzeit werden gängige Datenbanken wie H2, MySQL, Postgres oder Oracle unterstützt) Rücksicht genommen werden muss. Änderungen am Datenmodell können dynamisch zur Laufzeit durchgeführt werden, ohne dass die Applikation neu deployt werden muss. Durch die für [fleXive] typische Dynamik sind keine Änderungen am Datenbankschema erforderlich. Neue Objekte sind sofort verfügbar und indiziert.

Merkmale eines Next Generation Content Repositories

Neben den typischen Merkmalen eines klassischen Content Repositories erlaubt es [fleXive] gängige Anforderungen datenzentrischer Anwendungen zu adressieren: Im Bereich Sicherheit sind dies etwa Authentifizierung, Benutzer- und Mandantenverwaltung sowie Zugriffsberechtigungen auf Struktur- (Typen und Felder) und Datensatzebene. Internationalisierung ist ebenfalls ein integraler Bestandteil von [fleXive]: So sind sämtliche Datenfelder von Natur aus mehrsprachig und kapseln alle Übersetzungen innerhalb eines Datensatzes. Analog zu Datenbanktriggern ermöglicht [fleXive] die eventbasierte Ausführung von Businesslogik in Form von Scripten, die zur Laufzeit verändert werden können. Zu den weiteren erwähnenswerten Features zählen unter anderem Versionierung, Auditing, Workflows, Locking und ASP-Unterstützung.

Tools und Building Blocks

Die Anbindung an das Content Repository erfolgt entweder über die plattformunabhängige CMIS-Schnittstelle oder über die [fleXive] EJB APIs und die umfangreichen JSF-1.2- und -2.0-Komponenten. Den Entwicklern stehen dafür Build-Tools (Ant, Maven), Testintegration, API-Dokumentationen und eine ausführliche Referenzdokumentation als Unterstützung zu Verfügung.

Die Applikationsentwicklung konzentriert sich auf benutzerdefinierte Geschäftslogik und das User Interface. Andere Entwicklungsaufwände (z. B. Datenmanagement, Mehrsprachigkeit, Sicherheit, UI-Komponenten etc.) werden vollständig durch das [fleXive] Content Repository und Framework abgedeckt.

Durch die Verwendung einer standardisierten Schnittstelle in Form von CMIS wird eine Integration mit allen führenden Anbietern der Branche ermöglicht. Dies erfolgt durch HTTP-basierte Schnittstellen (CMIS/AtomPub + WebServices). Die Integration mit Endbenutzerapplikationen wie Office erfolgt über WebDAV.

Geschrieben von
Markus Plesser und Daniel Lichtenberger
Kommentare

Schreibe einen Kommentar

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