Was bringt CMIS?

23. April 2014 | Erstellt von Dirk Weber in Fachartikel

Mit dem CMIS-Standard („Content Management Interoperability Services“) wurde bereits 2010 von Branchengiganten wie Microsoft, IBM und Oracle ein Standard vorangetrieben, um den Zugriff auf ECM-Systeme zu vereinheitlichen. Inzwischen sind knapp vier Jahre und eine weitere Version von CMIS ins Land gezogen und es stellt sich die Frage: wie wichtig ist dieser mit großen Vorschlusslorbeeren bedachte Standard im Jahre 2014, vor allem für kleine und mittelständische Unternehmen, die eventuell sogar gerade das für sie passende ECM-System aussuchen?

Was macht CMIS überhaupt?

Einfach ausgedrückt beschreibt der CMIS 1.1 Standard auf seinen ca. 330 Seiten, wie man ein beliebiges ECM-System „verwenden“ kann, ohne dabei irgendwelche Besonderheiten des Produkts zu kennen oder gar die Oberfläche des Programms zu benutzen. Wer sollte das aber tun wollen? Sicherlich nicht die normalen Anwender bei der täglichen Arbeit (schließlich haben sich die Verantwortlichen ja bewusst für ein ECM-System mit seinen besonderen Eigenschaften und dem Aussehen der Bedienoberfläche entschieden).

Stattdessen ist dieses Feature natürlich vor allem interessant, um anderen Programmen in der Systemlandschaft (z.B. dem Auftragsmanagement oder dem ERP-System) den Zugriff auf den Inhalt des ECMs zu ermöglichen bzw. eine Möglichkeit anzubieten, Daten in das ECM einzuspeisen. Da nur die „allgemeinen“ Operationen und Eigenschaften benutzt werden, die CMIS anbietet, kann man damit Anbindungen entwickeln, ohne hierfür die Besonderheiten eines bestimmten Systems zu kennen.

Ein paar technische Details für Interessierte

Im Rahmen des CMIS-Standards wird eher selten von ECM-Systemen gesprochen. Stattdessen wird hierfür der allgemeinere Begriff „Repository“ verwendet. CMIS standardisiert also den Zugriff auf Repositories, die als Inhalt sogenannte „Objekte“ der folgenden Typen haben:

  • Dokumente (die eigentlich zu verwaltenden Informationen im ECM, z.B. eine Rechnung)
  • Ordner (in diesen liegen die Dokumente, wodurch sich eine hierarchische Ordnung ergibt)
  • Beziehungen (setzen zwei Dokumente zueinander in Bezug, z.B. Kundenstammdaten mit Rechnung)
  • Rechte (Wer darf welche Objekte lesen/schreiben/löschen?)
  • Item (Dokumente, die nicht versioniert werden müssen, z.B. Konfigurationseinstellungen)

Darüber hinaus kann jedes Repository noch eigene spezialisierte Typen für Objekte definieren, z.B. ein besonderes „Rechnungsdokument“, welches dann eigene Eigenschaften wie „Rechnungsbetrag“ oder „Rechnungsnummer“ aufweisen kann. Zudem definiert CMIS noch diverse Dienste, mit denen man auf diesen Objekten operieren kann. Eine der wichtigsten Operationen besteht dabei sicherlich darin, über eine standardisierte Abfragesprache bestimmte Mengen von Dokumenten aus dem Repository auszulesen. Es werden aber auch Operationen zum Anlegen und Löschen von Dokumenten sowie zum Navigieren innerhalb der Ordnerstrukturen angeboten.

(Zu) Vieles ist optional

Beschäftigt man sich etwas näher mit CMIS, wird schnell deutlich, dass der Standard zwar viele schöne Dienstleistungen und Konzepte beschreibt, diese aber häufig als „optional“ gekennzeichnet sind. Damit bleibt es letztlich dem Hersteller des jeweiligen ECM-Systems überlassen, ob er sich die Mühe macht, die entsprechenden Teile des Standards überhaupt zu unterstützen. Ein Beispiel hierzu: die Objekttypen „Dokument“ und „Ordner“ müssen zwingend von einem Repository unterstützt werden, um dem Standard zu entsprechen. Beziehungen, Rechte und auch Items sind jedoch „optional“. Ein ECM muss diese Konzepte gar nicht kennen oder unterstützen und darf sich trotzdem als CMIS-kompatibel bezeichnen. Sogar die essentiell wichtige Abfragesprache muss nicht unterstützt werden, um das Gütesiegel „CMIS-kompatibel“ zu erhalten.

Wie wichtig ist CMIS also für mich?

Prinzipiell spricht natürlich nichts dagegen, dass ein ECM-System den CMIS-Standard unterstützt: Die Software kostet deshalb keinen Cent mehr und sie besitzt dadurch in jedem Fall eine weitere Möglichkeit, die Daten auch wieder aus dem System heraus zu bekommen. Darüber hinaus bietet aber ohnehin jedes ernsthafte ECM native Möglichkeiten, über spezifische Schnittstellen und Exportfunktionen auf den gespeicherten Inhalt zuzugreifen bzw. den Content im System zu manipulieren. Diese sind eben nur nicht „für alle ECMs“ gleich, dafür aber häufig mächtiger, schneller und einfacher zu verstehen als die CMIS-Pendants.

Allgemein sollte man die Erwartungshaltung nicht zu hoch ansetzen und hoffen, dass mit CMIS der Datenaustausch wie von Zauberhand von alleine erfolgt. Für einfache Szenarien, wie beispielsweise dem Erstellen von Berichten, entfällt zwar der Programmieraufwand, da die entsprechenden Reporting-Tools oft von Haus aus CMIS beherrschen. Trotzdem muss die Zuordnung der darzustellenden Informationen immer noch von Hand durchgeführt werden. Dass so etwas durchaus kompliziert sein kann, können sich Interessierte gerne in folgendem Video ansehen, welches die Anbindung der Reporting-Software „JasperReports“ an ein ECM über CMIS zeigt. Ob man sich das wirklich selbst und ohne Hilfe durch einen fachkundigen Berater zutraut, bleibt natürlich jedem selbst überlassen.

Sollen die Daten nicht nur aus dem ECM ausgelesen sondern neue Daten hinzugefügt werden, ist es auch mit CMIS in den meisten Fällen nach wie vor erforderlich, kleine Programme (häufig als „Connector“ bezeichnet) entwickeln zu lassen, welche die Daten beispielsweise aus der Buchhaltungssoftware oder dem Email-Server auslesen und diese in das ECM einspeisen. Der Vorteil gegenüber der Verwendung proprietärer Schnittstellen kommt in diesem Fall erst dann wirklich zum Tragen, wenn eines Tages das vorhandene System durch ein neues (vielleicht auch von einem anderen Hersteller) ersetzt werden soll. In der Theorie muss dann nur das neue ECM eingerichtet werden und alle Anbindungen an die restliche Systemlandschaft funktionieren nahtlos weiter. Dies klappt aber auch nur dann, wenn das neue System mindestens genauso „CMIS-kompatibel“ ist, wie das alte. Fehlen dem neuen System wichtige, als optional markierte Funktionen des Standards, muss man schließlich doch wieder Geld in die Hand nehmen, um die entsprechenden Hilfsprogramme anpassen zu lassen.

Gerade für kleine und mittelständische Unternehmen ist diese Art von „Investitionssicherheit“ aber ohnehin nur bedingt wichtig: Die Einführung eines ECM-Systems stellt eine nicht zu unterschätzende Investition in finanzieller und zeitlicher Hinsicht dar, weshalb in der Realität solche Systeme nicht ständig „wie die Socken“ gewechselt werden. Wird das ECM dann doch eines Tages durch ein neues abgelöst, ist der Aufwand um kleinere Individualprojekte auf den neuen Stand zu bringen wahrscheinlich vernachlässigbar gegenüber den Kosten, die ohnehin anfallen, nämlich für Beratungsleistung, Migration der bestehenden Daten sowie die Schulung der Benutzer. Zudem ist die Wahrscheinlichkeit hoch, dass die Individuallösungen über einen Zeitraum von mehreren Jahren ohnehin immer wieder angepasst werden müssen, sei es z.B. aufgrund einer neuen Version der Buchhaltungssoftware oder einer Veränderung bestimmter organisatorischer oder rechtlicher Rahmenbedingungen (wie z.B. bei der Einführung des SEPA-Systems).

Das Fazit

CMIS ist eine schöne Idee, welche bei großen Systemlandschaften mit mehreren ECM-Systemen und dem häufigen Einsatz von Reporting-Werkzeugen durchaus Sinn machen kann. Aber selbst dort wird der Eindruck dadurch getrübt, dass die Unterstützung für viele wichtige Eigenschaften optional ist, es also dem Hersteller überlassen wird, ob er sie überhaupt anbietet. Für kleine und mittelständische Unternehmen bringt CMIS aus meiner Sicht deshalb wenig bis keinen echten Mehrwert. Unterstützt das angedachte ECM also den CMIS-Standard nicht, sollte das die Kaufentscheidung nicht negativ beeinflussen, so fern es auch andere Möglichkeiten gibt, das System von außen vernünftig anzusprechen.

Dirk Weber

Softwareentwickler bei der REWOO Technologies AG

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

2 Responses

  • Sascha sagt:

    Hallo Dirk,
    danke für den interessanten Artikel.
    Ich finde es schade dass du die optionalen Komponenten der CMIS-Spezifikation so negativ beurteilst.
    Meiner Meinung nach ist das mit ein ausschlaggebender Faktor dafür das CMIS relativ schnell Anklang in der Industrie gefunden hat und viele CMS und mittlerweile auch DAMs diesen Standard unterstützen.
    Auch dank der vielfältigen Developer Libraries für diverse Sprachen wie Java, Python, .NET und Objective-C kann man einen CMIS kompatiblen Client oder sogar Server relativ schnell umsetzen. Wären mehr Komponenten “required” um CMIS kompatibel zu sein wäre der Aufwand um einiges größer und damit wahrscheinlich auch die Akzeptanz geringer.
    Auch bei dem neuen Profil CMIS4DAM, welches sich speziell an die Belange von DAM-Anbietern richtet steht im Mittelpunkt das Ziel eine kompatible Implementierung mit den minimalsten Anforderungen möglichst schnell und unkompliziert umsetzen zu können. Weitere Features können nach und nach implementiert werden.
    Ein solches etappenorientiertes Vorgehen ist meiner Meinung nach sinnvoller als von Anfang alles in einem riesigen und schwer planbaren Schritt anzugehen. CMIS unterstützt dies indem es von Anfang den Anbietern die Möglichkeit gibt Mehrwert für ihr System zu schaffen auch wenn es erstmal nur einen Teil der Spec unterstützt.
    Weiter stellst du in Frage dass Anwender eines ECM-Systems überhaupt Bedarf haben für eine weitere Möglichkeit auf die Daten zuzugreifen. Hier würde ich sagen kommt es darauf an inwieweit das betreffende System schon “Konnektoren” für z.B. Standardsoftware wie Office oder Adobe hat. Ist dies nicht der Fall bietet eine CMIS-Schnittstelle enorme Vorteile gegenüber proprietären Schnittstellen. Anstatt mehrere eigene Schnittstellen zu implementieren kann man hier z.B. mit AdobeDrive aus InDesign, Photoshop etc heraus direkt auf die Daten des ECMs zugreifen und gleich auch das Dokument für andere sperren und eine neue Version erstellen. Für die ganze Office Palette gibt es ebenfalls einen CMIS-Connector.
    Dieser Application-to-Repository (A2R) UseCase ist aber nur ein Anwendungsfall. Wie du oben schon korrekt beschrieben hast ist außerdem das Repository-to-Repository (R2R) Modell denkbar in dem die Systeme untereinander über CMIS kommunizieren. Auch hier sehe ich enormes potential für eine standardisierte Schnittstelle wie CMIS.
    Auch finde ich nicht dass die proprietären Pendants zu CMIS “häufig mächtiger, schneller und einfacher zu verstehen” sind. Das OASIS CMIS Komitee hat sich sehr viele Gedanken bzgl. Performance gemacht und bietet neben dem WebService Binding, noch die performanteren AtomPub und Browser Bindings an (letzteres seit CMIS 1.1). Ausserdem wird das paginierte Laden von CMIS Objekten unterstützt (lazy loading). Die OpenCMIS Library von Apache Chemistry ist außerdem schon seit der Version 0.2 im Hinblick auf das performante Handling von sehr großen Dateien optimiert worden.
    Eine traditionelle FTP-Schnittstelle ist natürlich effektiv schneller als CMIS aber das liegt auch mit daran das CMIS eben nicht nur Dateien und Verzeichnisse für sich betrachtet sondern die Möglichkeit bietet eigene Metadaten zu definieren welche natürlich Platz brauchen. Aber auch hier bietet CMIS die Möglichkeit die Anzahl der Metadaten bei der Abfrage einzuschränken. Ich selbst habe die Erfahrung gemacht das ein CMIS Client der lazy loading unterstützt “gefühlt” viel schneller ist als ein FTP Client (was natürlich nur daran liegt dass eben nicht alle Dateien eines Verzeichniss auf einmal in den Client geladen werden sondern nur die ersten X ).
    Vergleicht man weiter eine proprietäre REST-Schnittstelle eines ECMs mit der CMIS Schnittstelle so muss man für die proprietäre Seite erstmal die Doku der REST-API verstehen und diese dann implementieren. Auf CMIS-Seite hat man hier schon diverse öffentlich verfügbare, über Jahre getestete performante und stabile Bibliotheken die sehr einfach zu nutzen sind.
    Was die Mächtigkeit angeht deckt CMIS meiner Meinung nach schon ein sehr breites Spektrum ab außerdem wird CMIS ständig vom Technischen Komitee bei OASIS weiterentwickelt. Dessen Arbeit kann öffentlich von jedem eingesehen werden und man kann sogar selber beitreten und Vorschläge einreichen.
    Alles in allem halte ich persönlich CMIS für sehr vielversprechend. Ich stimme aber darin überein dass man sich ein System das den Stempel CMIS trägt doch genauer anschauen sollte im Hinblick darauf welche Teile der Spezifikation unterstützt werden und welche nicht.
    Cheers
    Sascha

    • Dirk Weber sagt:

      Hallo Sascha und danke für deinen interessanten Kommentar.

      Aus technischer Sicht ist CMIS, wie du ja auch geschrieben hast, sicherlich eine interessante Spezifikation. Das Schaffen von gemeinsamen Schnittstellen ist immer begrüßenswert, wobei man auch nicht vergessen darf, dass es bereits vor CMIS (z.B. im Java-Umfeld mit JCR) andere Standardisierungsbemühungen gab. Mir war es aber in meinem Blog-Beitrag vor allem ein Anliegen, das Ganze aus der Sicht eines IT-Entscheiders in klein- und mittelständischen Betrieben zu sehen. Und für diesen bringt die Aussage „die Software unterstützt CMIS“ einfach wenig, da damit immer noch nicht gesagt ist, ob das Ausmaß der Schnittstellenimplementierung ausreicht, um das gewünschte CMIS-kompatiblen-Werkzeug (wie z.B. JasperReports) auch einzusetzen. Und selbst wenn das neue ECM dann CMIS in ausreichender Weise implementiert ist das Einrichten der Werkzeuge für einen normalen Benutzer nur schwer selbst durchführbar.

      Die Anforderung, Daten zwischen verschiedenen ECM-Systemen auszutauschen haben Unternehmen in dieser Größe zum großen Teil auch nicht bzw. erst irgendwann in der Zukunft bei der Migration auf ein neues ECM-System oder bei entsprechendem Unternehmenswachstum hat: dies ist dann aber, ob mit oder ohne CMIS, ein größerer technischer und vor allem organisatorischer Kraftakt.



Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.