Documentum Foundation Services – Fluch oder Segen?
Feb 16, 2010 | by jgoldhammer | 1 Comments

Das IT-Schlagwort der letzten Jahre schlechthin ist Service Orientated Architecture (SOA). Ohne auf den Begriff tiefer eingehen zu wollen, wurde diese Entwicklung getrieben durch den Wunsch, wieder verwendbare Dienste in eine IT-Architektur zu stecken und diese in Prozessen miteinander agieren zu lassen (Stichwort Business Process Management).

In EMC-Produkten, eine unserer Softwareplattformen, steckte bisher wenig SOA. Zum Zugriff auf das Content Repository standen bisher die Documentum Foundation Classes, kurz DFC, und die Content Server API zur Verfügung. Dies sollte sich nach Meinung von EMC ändern, denn mit Documentum 6.0 wurde erstmals ein Produkt namens Documentum Foundation Services, kurz DFS, ausgeliefert. Mittlerweile ist mit dem Produkt Documentum Restful Services (zurzeit im Early Access Programm) eine REST-basierte Variante der DFS auf dem Weg gebracht. Informationen zu REST finden Sie im Blogartikel Resource Oriented Architecture – Das WWW fürs Unternehmen.

In Documentum 6.5 wurde DFS z.B. um einen Dienst zum Verwalten von Berechtigungssätzen und erweiterten Funktionen für virtuelle Dokumente erweitert und auch in Documentum 7 wird es wieder zusätzliche Funktionen geben. Diese Blogserie soll klären, ob sich der Einsatz von DFS nach derzeitigem Stand lohnt und ob es die Entwicklung von inhaltsbasierten Anwendungen erleichtert. Der erste Blogartikel wird einen Überblick zu DFS geben. Weitere Blogartikel gehen technisch tiefer ins Detail und diskutieren erste Erfahrungen mit DFS.

Motivation

„Wird die Documentum Foundation API (DFC) demnächst durch DFS abgelöst?“ werden Sie sich jetzt vielleicht fragen. Schließlich ist die DFC eine mächtige API, die es schon lange gibt und bisher gute Dienste geleistet hat. Die Antwort ist klar und einfach: Nein, DFS wird die DFC nicht ablösen, denn schließlich ist DFS nur eine Hülle um die DFC. DFS baut auf der DFC auf und wird sie damit nicht ersetzen können!

„Warum sollte man dann eine Abstraktion um die DFC bauen?“ Auf den ersten Blick gibt es durch die Einführung von DFS mehrere Vorteile. Durch das offene Protokoll SOAP und WSDL können alle Plattformen unterstützt werden, die mit XML umgehen können. Das sind eine Menge von Programmiersprachen wie z.B. C# bei .NET, in denen ein Zugriff auf das Repository möglich ist. Zudem sind offene Protokolle gern gesehen bei großen Unternehmen. Sie machen flexibel und erleichtern Änderungen an den Softwaresystemen. Ein Zugriff auch durch Firewalls steht damit oftmals nichts im Wege.
Andererseits möchte EMC nicht den Anschluss an die neuesten Technologie-Trends verlieren und beweist damit, dass ihr Produkt Documentum auch SOA-fähig ist.

Documentum Foundation Services- ein Überblick

DFS ist ein zusätzliches Produkt von EMC und wird ab Version 6.5 von Documentum standardmäßig kostenlos mit ausgeliefert. Es wird auch schon in anderen Clients von EMC wie z.B. Centerstage, MyDocumentum Offline + for Outlook eingesetzt. Da DFS in Form einer J2EE-Applikation entwickelt wurde, ist dafür ein Applikationsserver notwendig. Ist DFS installiert, lassen sich diverse Funktionen über eine definierte Webservice-Schnittstelle nutzen.

Für die Kommunikation notwendig sind Datenmodelle, um z.B. mit Dokumenten und Ordnern agieren zu können oder Access Control Lists anzulegen. Exemplarisch ist in Abbildung 1 das Datenmodell für einen Großteil der Funktionen für den Umgang mit Objekten dargestellt. Für den Workflowservice und den AccessControlListService gibt es separate Datenstrukturen. Diese sollen an dieser Stelle nicht weiter vertieft werden.

Documentum Foundation Services

Folgende Elemente sind in der Grafik ersichtlich:

– ein Datenpaket (Datapackage) ist nichts weiter als ein Behältnis für mehrere Datenobjekte, d.h. eine Liste von Dokumenten, Ordner oder Instanzen anderer Objekttypen.

– ein Datenobjekt (DataObject) repräsentiert genau ein Objekt mit einer Identität (ObjectIdentity) und besteht aus einer Reihe von Attributen (Properties), den Inhalt inkl. Formatvarianten (Contents) bei Dokumenten, Beziehungen zu Ordnern, z.B. Verlinkungen (Relationship) und Rechte des aktuellen Nutzers an dem Objekt (Permissions).

– eine Objektidentität (ObjectIdentity) ist gekennzeichnet durch eine eindeutige Identifikationsnummer und Repositoryname bzw. einer Qualifikation wie z.B. wähle alle Dokumente mit den Namen „DFS Dokument“ (falls die Funktion mehrere Objekte auf einmal verarbeitet!).

Attribute (Properties) sind die Eigenschaften der Objekte (wie z.B. der Name eines Dokuments oder das Änderungsdatum). Jede Property stellt genau ein Attribut dar und hat sowohl einen Namen, einen Datentyp und auch einen oder mehrere Werte.

– Mit Inhalten sind die eigentlichen Dateiinhalte von Dokumenten inkl. dessen Formatvarianten gemeint. Dieser Inhalt kann über die Schnittstelle auch abgerufen werden.

Beziehungen drücken z.B. die Verlinkungen eines Objekts in ein oder mehrere Ordner aus, d.h. darüber kann man z.B. die Ablageorte eines Dokuments abrufen.

–  die Rechte für ein Objekt sind nichts weiter als eine Auflistung der bekannten Basisberechtigungen (z.B. delete, write) und erweiterten Rechten (z.B. changeOwner). Da bei DFS alle Aktionen im Kontext eines konkreten Nutzers ausgeführt werden, sind damit die Rechte des aktuellen Nutzers an dem vorliegenden Objekt gemeint.

Welche Dienste und Funktionen dem Entwickler überhaupt zur Verfügung stehen, verrät Tabelle 1. Auf Dienste wie z.B. Content Intelligence Services, Collaboration Services etc. wird an dieser Stelle nicht eingegangen. Bei Fragen zu Details und Integrationsmöglichkeiten, kontaktieren Sie uns bitte gern.

Tabelle 1: Übersicht zu den bereitgestellten Diensten bei DFS

tabelle1

Eine Liste von Objektidentitäten wird oftmals von den Funktionen als Eingabeparameter erwartet (z.B. Löschen von Dokumenten anhand von IDs, Abruf der Attribute eines Dokuments auf Basis der ID). Als Ergebnis bekommt man meist ein Datenpaket mit einer Reihe von Datenobjekten, die dann ausgewertet werden müssen.

Die einzelnen Operationen können dabei meist durch Optionen oder Filter in ihrem Verhalten von außen verändert werden. Beim Abruf eines Dokuments ist es z.B. möglich, sich alle oder gar kein Inhalte liefern zu lassen oder auch auf bestimmte Attribute zu filtern, die dann als Ergebnis zurückgeliefert werden.

Fazit

Auf den ersten Blick bietet DFS eine große Funktionalität auf niedrigem Abstraktionsniveau. Das Datenmodell ist generisch gehalten und ermöglicht eine flexible Nutzung der mitgelieferten Dienste. Dies lässt vermuten, dass DFS ähnlich zur DFC benutzt werden kann. Warum dies nicht so ist und wie DFS überhaupt funktioniert, erfahren Sie im nächsten Blogartikel.