Freigeben über


CMIS (Content Management Interoperability Services) in SharePoint

In diesem Artikel erfahren Sie mehr über die SharePoint-Implementierung der Version 1.0 des CMIS-Standards (OASIS Content Management Interoperability Services)

Einführung in CMIS in SharePoint

SharePoint Server-Konformität mit Version 1.0 des OASIS Content Management Interoperability Services-Standards (CMIS) ermöglicht die Integration zwischen SharePoint Server-Inhaltsrepositorys und anderen ECM-Repositorys (Enterprise Content Management) in einem Unternehmen. CMIS bietet die Möglichkeit, Informationen über Internetprotokolle zwischen Dokumentsystemen, Herausgebern und Repositorys innerhalb des Unternehmens sowie zwischen Unternehmen zu teilen – all dies in einem anbieterneutralen Format. Der CMIS-Standard unterstützt grundlegende Dokumentverwaltungsvorgänge wie Erstellen, Lesen, Aktualisieren, Löschen, Einchecken und Auschecken. Der Standard unterstützt die Verwaltung von Versionen von Dokumenten und deren Metadaten. CMIS ist auf jeder lokalen SharePoint-Website verfügbar, nachdem das Feature Content Management Interoperability Services (CMIS) Producer im Abschnitt Verwalten von Websitefeatures der Websiteeinstellungen aktiviert wurde. In SharePoint ist der SharePoint-CMIS-Producer verfügbar, aber standardmäßig auf allen lokalen Websites deaktiviert.

CMIS stellt Interoperabilität zwischen den APIs zur Verfügung, die den Standard unterstützen, ist jedoch kein Ersatz für systemeigene APIs. Die von CMIS unterstützten Objekte überschneiden sich mit Objekten, mit denen SharePoint Server-Entwickler üblicherweise interagieren, darunter auch Dokumente und Ordner. Entwickler, die Anwendungen mit CMIS-Unterstützung erstellen, müssen wahrscheinlich weiterhin benutzerdefinierten SharePoint Server-Code erstellen. Mit CMIS können 60 - 70 Prozent der Entwicklungszeit bei Lösungen eingespart werden, die den Standard implementieren - betrachten Sie es als ein weiteres Tool in der Toolbox für die Entwicklung.

Eine ausführliche Betrachtung der CMIS-Implementierung in SharePoint

Einige Teile der CMIS-Spezifikation sind obligatorisch, viele andere sind jedoch optional. Viele Anbieter, einschließlich Microsoft, implementieren die obligatorischen Anteile des Standards und einige seiner optionalen Komponenten. Abbildung 1 zeigt in der CMIS 1.0-Spezifikation angegebene Funktionen, die in SharePoint implementiert sind.

Abbildung 1: In SharePoint implementierte CMIS 1.0-Funktionen.

CMIS-Funktionen in SharePoint

Das CMIS-Datenmodell definiert ein Repository, das die übrigen CMIS-Datentypen enthält, einschließlich Objekttypen, Versionsverwaltung, Dokumente und Ordner sowie Abfragefunktionen.

CMIS-Repositorys und SharePoint-Dokumentbibliotheken

Das CMIS-Repository ist der Container für den Rest des CMIS-Datenmodells. In SharePoint entspricht die Dokumentbibliothek dem CMIS-Repository (Listen werden im SharePoint CMIS Producer nicht unterstützt). Der Zugriff auf das Repository ist in der Regel der Startpunkt für eine Clientanwendung. Stellen Sie sich beispielsweise eine SharePoint Server-Website vor, die mehrere Dokumentbibliotheken enthält, die Repositorys in CMIS entsprechen. Die CMIS-Spezifikation beschreibt den obligatorischen Dienst getRepositories, der in SharePoint Server alle gültigen Repositorys (Dokumentbibliotheken) im aktuellen SPWeb-Objekt abruft. Ein Entwickler kann eine Verbindung mit Repositorys herstellen, indem er entweder den getRepositories-Dienst oder den getRepositoryInfo-Dienst aufruft. getRepositoryInfo ruft das vom Entwickler angegebene Repository ab.

Das CMIS-Repository enthält die anderen von SharePoint Server unterstützten CMIS-Funktionen, einschließlich der von CMIS festgelegten Dokument- und Ordnerobjekttypen, der CMIS-Versionsverwaltungsfunktionen (die die systemeigenen Versionsverwaltungsfunktionen in SharePoint Server spiegeln) und der CMIS-Abfragefunktion, die eine SQL-ähnliche Syntax verwendet, um bestimmte Daten in CMIS-Repositorys abzufragen.

CMIS-Dokumente, Ordner und andere Objekttypen

CMIS definiert eine Objekttypfunktion, die der Idee von Inhaltstypen in SharePoint Server (insbesondere der SPContentType-Klasse ) entspricht. Jeder schreibgeschützte CMIS-Objekttyp besteht aus Attributen und Eigenschaftendefinitionen. Attribute definieren, ob ein Objekt beispielsweise abgefragt oder versioniert werden kann. CMIS unterstützt Eigenschaftendefinitionen für Eigenschaften, die entsprechenden Objekttypen in SharePoint zugeordnet sind, sofern zutreffend. Beispielsweise kann ein Dokumentobjekt oder ein Ordnerobjekt in CMIS über eine LastModifiedBy-Eigenschaft verfügen, die die folgende Syntax verwendet: cmis:LastModifiedBy. Eine Author-Eigenschaft , die einem Document-Objekt zugeordnet ist, wird als cmis:Authorgeschrieben. Der CMIS-Standard definiert vier Objekttypen, die als Basistypen dienen. Tabelle 1 beschreibt die CMIS-Objekttypen, ob sie in SharePoint unterstützt werden, und ihre entsprechenden Funktionen in SharePoint, falls vorhanden.

Tabelle 1. CMIS-Objekttypwerte und ihre SharePoint-Entsprechungen

CMIS-Objekttyp Unterstützt in SharePoint Server? Entsprechende Funktion in SharePoint Beschreibung
document
ja
Document-Objekte
Der CMIS-Dokumentobjekttyp wird direkt dem Document-Objekt in SharePoint Server zugeordnet.
Dokumente weisen Eigenschaften auf und verfügen über einen angehängten Content Stream, sie können eine Versionsangabe enthalten und unterstützen die grundlegenden Vorgänge Erstellen, Lesen, Aktualisieren und Löschen (CRUD).
folder
ja
SPFolder -Objekte
Der CMIS-Ordnerobjekttyp wird direkt dem SPFolder-Objekt in SharePoint Server zugeordnet.
Ordner können Dokumente und andere Ordner enthalten und über einen einzelnen übergeordneten Ordner verfügen. Ordnern können Eigenschaften hinzugefügt werden, und sie unterstützen die gleichen CRUD-Vorgänge, die vom Dokumentobjekttyp unterstützt werden.
Für CMIS-Ordner kann keine Versionsangabe festgelegt werden.
Richtlinie
nein
keine
Der CMIS-Richtlinienobjekttyp ist nicht gleichbedeutend mit dem Konzept der Richtlinien in SharePoint oder jeglichen im SharePoint-Objektmodell definierten Richtlinienobjekten.
Beziehung
nein
keine
Nicht unterstützt

CMIS stellt keine Methoden zum Erstellen, Ändern oder Löschen von Objekttypen zur Verfügung. Entwickler, die einen SharePoint Server-Dokumentobjekttyp oder -Ordnerobjekttyp erstellen, ändern oder löschen möchten, können hierfür das proprietäre SharePoint Server-Objektmodell verwenden.

Abbildung 2 zeigt Beispielbeziehungen, die zwischen CMIS-Dokument- und -Ordnerobjekttypen bestehen können. In der Abbildung werden Bezeichnungen verwendet, die möglicherweise in einem SharePoint Server-Dokumentverwaltungsszenario zu finden sind. Beispiel: Ein CMIS-Objekttyp namens cmis:folder ist einem Objekttyp namens cmis:documentset übergeordnet. Der cmis:documentset-Objekttyp kann, muss jedoch nicht, Dokumentobjekte enthalten, die in einem DocumentSet -Objekt organisiert sind.

Der CMIS-Dokumentobjekttyp unterstützt auch über-/untergeordnete Beziehungen, wie hier gezeigt, wobei cmis:document object-type ein übergeordnetes Element zu den objekttypen cmis:specification, cmis:report und cmis:image document object-types ist. Es ist möglich, dass diese Dokumente in SharePoint Server-Dokumentensätzen organisiert werden können, aber CMIS definiert kein solches Konstrukt. Stattdessen erkennt CMIS einzelne Objekte als vom Dokumentobjekttyp oder Ordnerobjekttyp oder als Teilmenge eines dieser beiden Objekttypen.

Abbildung 2: Beispiele für den CMIS-Dokumentobjekttyp und ordnerobjekttyp

Beispiele für CMIS-Objekttypen in SharePoint

CMIS-Abfrage in SharePoint

Abfrage ist ein optionaler Teil der CMIS-Spezifikation, die SharePoint Server unterstützt. Die CMIS-Abfrage verwendet eine vereinfachte, SQL-ähnliche Syntax. Jede Abfrage in CMIS ist auf ein Repository festgelegt, sodass alle Abfrageergebnisse aus dem einzelnen Repository zurückgegeben werden, für das die Abfrage gilt. Wenn Sie mehrere Abfragen für mehrere Repositorys ausführen, werden Ergebnisse aus einem Repository für jede ausgeführte Abfrage zurückgegeben, wodurch Ergebnisse aus mehreren Repositorys zurückgegeben werden. Tabelle 2 enthält einige Beispiele für grundlegende CMIS-Abfrageanweisungen.

Tabelle 2. Beispiele für die CMIS-Abfragesyntax

CMIS-Abfrageanweisung Beschreibung
SELECT * FROM cmis:document
Wählt alle Dokumente im Repository aus.
SELECT cmis:name, cmis:author FROM cmis:document WHERE cmis:author='Tina Makovec'
Wählt den Namen und den Autor jedes Dokuments im Repository aus, bei dem der Name des Autors Tina Makovec ist.
SELECT * FROM cmis:document WHERE CONTAINS('4Q13')
Dies ist ein Beispiel für eine Volltextsuche mithilfe von CONTAINS. Diese Abfrage gibt alle Dokumente im Repository zurück, die das Wort 4Q13 enthalten.

SharePoint Server unterstützt keine Joins, die CMIS 1.0-Spezifikation jedoch. Nicht-SharePoint-CMIS-Repositorys unterstützen möglicherweise Joins in ihrer CMIS-Abfrageimplementierung. Alle Repositorys, die CMIS-Abfragen unterstützen, unterstützen sortierung, Auswahl der zurückzugebenden Eigenschaften und Paging.

CMIS-Versionsverwaltung und SharePoint-Versionsverwaltung

Die CMIS-Versionsverwaltung ist identisch mit der Versionsverwaltung für Dokumente in SharePoint Server. Haupt- und Nebenversionen sowie Ein- und Auscheckvorgänge werden in CMIS nur für Dokumente unterstützt.

Ordner können keine Versionsangabe enthalten.

CMIS-Änderungsprotokollunterstützung

CMIS beinhaltet ein Änderungsprotokollkonzept. CMIS-Änderungsprotokolle unterstützen grundlegende Erstellungs-, Aktualisierungs- und Löschereignisse, die an eine Objekt-ID und Eigenschaften gebunden sind. Die Eigenschaften werden ausgelöst, wenn ein Erstellungs-, Aktualisierungs- oder Löschereignis eintritt. Das Änderungsprotokoll unterstützt Paging, sodass Entwickler ihr eigenes Änderungsprotokoll dort speichern können, wo sie möchten.

Authentifizierung und CMIS in SharePoint

Standardmäßig unterstützt SharePoint Server die Authentifizierung für Anonymous AuthN, Basic AuthN, NTLM AuthN, Digest AuthN, Kerberos-Protokollübergang/Eingeschränkte Delegierung, Windows-Forderungen, Claims MultiAuth, and Forderungen/gemischter Modus.

Inbound OAuth wird nicht unterstützt.

Der CMIS-Produzent in SharePoint

Der CMIS-Produzent ist standardmäßig in SharePoint Server für lokale Bereitstellungen verfügbar. Der Prozent erstellt CMIS-konforme Endpunkte, mit denen CMIS-konforme Verbraucherwebdienste zusammenarbeiten können. CMIS-Unterstützung das Feature CMIS-Produzent sind für alle lokalen SharePoint Server-Implementierungen verfügbar, bei denen das Feature CMIS-Produzent aktiviert ist. CMIS wird in SharePoint Online nicht unterstützt.

CMIS-Szenarien und Anwendungsideen

Mit den CMIS-Funktionen in SharePoint können Entwickler Anwendungen erstellen, die CMIS-konforme Daten aus SharePoint Server und anderen CMIS-konformen Anwendungen einschließen. Da es sich bei CMIS um ein anbieterneutrales Format handelt, können Entwickler Code erstellen, der CMIS-konforme Endpunkte erzeugt, die mit CMIS-konformen Endverbraucheranwendungen geteilt werden können, ohne dass Code für die API der systemeigenen Anwendung erstellt werden muss. Beispielsweise kann der standardmäßige CMIS-Produzent von SharePoint ein CMIS-Repository (zum Beispiel eine SharePoint Server-Dokumentbibliothek) mit der Bildbearbeitungsanwendung eines anderen Anbieters teilen. Ein Benutzer kann eine Bilddatei öffnen, die im CMIS-Repository des Produzenten der Bildbearbeitungsanwendung gespeichert ist, und sie von der Bildbearbeitungsanwendung aus in SharePoint Server auschecken. Nachdem der Benutzer Änderungen durchgeführt und gespeichert hat, kann er von der Bildbearbeitungsanwendung aus die neueste Version in die SharePoint Server-Dokumentbibliothek einchecken. Da die CMIS-Spezifikation die Versionsverwaltung, was Haupt- und Nebenversionen angeht, auf die gleiche Weise definiert wie SharePoint, speichert der Benutzer der Bildbearbeitungsanwendung Änderungen in einer Version im CMIS-Repository mithilfe einer Versionsverwaltungslogik, die mit der Logik in SharePoint Server identisch ist.

Ziehen Sie beim Erstellen einer App Code in Erwägung, mit dem ein Verzeichnis implementiert wird, das alle Parameter initialisiert. Die Parameter werden zur Authentifizierung bei Repositorys verwendet und geben beispielsweise folgende Daten an: eine Bindung, die verwendet wird (zum Beispiel REST, AtomPub, SOAP), die URL des Servers für den Zugriff auf den REST-Endpunkt, den Benutzernamen, das Kennwort und die Klasse des Authentifizierungsanbieters (zum Beispiel Basic AuthN). Nachdem die Parameter eingerichtet wurden, kann der Entwickler über den getRepositories-Aufruf eine Verbindung zu jedem Repository herstellen.

CMIS unterstützt die Entwicklung einer breiten Palette von Anwendungen, die Daten von mehreren CMIS-Produzenten nutzen. CMIS wurde entwickelt, um Szenarien zu unterstützen, die Unternehmen häufig bei der Verwaltung von Inhalten über mehrere Content Management-Systeme in umfangreichen Hybridumgebungen treffen, einschließlich:

  • Datenmigration zu und von Inhaltsverwaltungssystemen in einem Unternehmen

  • Grafische Benutzeroberflächen (GUIs) in Apps, die Daten aus mehreren Inhaltsrepositorys lesen

  • Ein SharePoint-Webpart, das CMIS verwendet, um ein Rollup persönlicher Daten aus mehreren älteren Inhaltsverwaltungssystemen in einem Unternehmen auszuführen.

  • Eine mobile Anwendung, die von einem beliebigen ECM-System aus auf Dokumente zugreifen kann

  • Eine Bildbearbeitungsanwendung, die Dateien in einem CMIS-Repository mit aktivierten ECM-Funktionen, wie beispielsweise der Möglichkeit, Dateien ein- und auszuschecken, speichert

  • Ein Branchensystem (LOB, Line-of-Business), das Berichtsdaten in ein ECM-Repository exportiert

  • Eine App zur Genehmigung von Verträgen, die Elemente der SharePoint-Benutzeroberfläche zur Verwaltung eines zentralen Genehmigungsprozesses nutzt, während die Möglichkeit bestehen bleibt, den Vertrag in verschiedenen Systemen zu veröffentlichen

Beispiel: Contoso Finances-App

Betrachten Sie als App ein SharePoint Server-Webpart, das Daten von mehreren CMIS-Datenanbietern nutzt – der Contoso Finances-App. Die Contoso Finances-App sammelt Finanzdaten und ordnet diese in Tabellen an und verteilt diese Daten dann über drei Server: einen IBM-Server, einen Server, auf dem SharePoint Server ausgeführt wird, und einen internen Contoso-Server. Die SharePoint Server-App verwendet ein Webpart, um Daten aus allen drei Datenquellen auf einer beliebigen SharePoint Server-Seite anzuzeigen. Die App benötigt keinen benutzerdefinierten Code, der für eine Implementierung des CMIS-Repository (der SharePoint Server-Dokumentbibliothek) spezifisch ist.

CMIS und das SharePoint-Objektmodell

Das SharePoint-Objektmodell bietet Entwicklern zahlreiche Optionen für Erweiterungen, die nicht von CMIS unterstützt werden, einschließlich APIs zur Verwaltung von Objekttypen, Verwaltung der Website oder Repositoryspalten, Abfragen, die für SharePoint spezifische Schlüsselwörter und Syntax verwenden, Communitytags und Zugriffssteuerungseinträge (ACE).

Die SharePoint Server-Implementierung von CMIS verwendet die BlockedFileExtensions-Eigenschaft , um eine Liste von Dateierweiterungen abzurufen, die nicht von Websites in der Webanwendung hochgeladen oder heruntergeladen werden können. CMIS respektiert die von SharePoint standardmäßig blockierten Dateitypen.

Entwickler können CMIS-Clients in jeder Sprache erstellen. Beispielsweise kann ein SharePoint-Entwickler das clientseitige .NET-Objektmodell (CSOM) oder das JavaScript-Objektmodell (JSOM) verwenden, um einen Client zu erstellen. Ein Entwickler kann auch serverseitigen Code verwenden, um eine SharePoint-Anwendung zu entwickeln, die automatisch auf Microsoft Azure gehostet oder auf einem beliebigen Server, einschließlich Internet Information Services (IIS) oder Microsoft Azure von Anbieter gehostet ist.

Suche und Zusammenarbeit mit Open Source-CMIS-Implementierungen

Es gibt viele Open Source-Projekte, die mit der SharePoint-Implementierung des CMIS 1.0-Standards getestet werden können. Einige Beispiele sind das Apache Chemistry-Projekt. das Open CMIS-Projekt, das sowohl Client- als auch Server-CMIS-Implementierungen mit Java testet; das DotCMIS-Projekt für den .NET-Client, cmislib, ein CMIS-Clientbibliothek für Python-Projekt ; und phpclient, eine CMIS-Clientbibliothek für PHP.

Die CMIS Workbench ist eine CMIS-Desktopclientanwendung für Entwickler, die das Durchsuchen von CMIS-Repositorys und das interaktive Testen von CMIS-Entwicklungsprojekten für Open CMIS unterstützt. Die Workbench ist über Systemeigenschaften konfigurierbar. Wenn sie das Anmeldedialogfeld für Experten verwenden, können Entwickler auch weitere Eigenschaften konfigurieren.

CMIS 1.1-Features

CMIS 1.1 wird in SharePoint nicht unterstützt, aber die neuere Version der CMIS-Spezifikation enthält einige neue Features, die es wert sind, beachtet zu werden. Einige Highlights sind:

  • Type mutability: Eine Funktion zum Erstellen und Ändern von Inhaltstypen

  • Repository features: Eine Funktion zum Erweitern des getRepositoryInfo-Diensts zum Veröffentlichen einer Liste der Erweiterungen für die unterstützten Standards

  • Retention and hold: Dienste, mit denen festgelegt werden kann, das ein Dokument für einen bestimmten Zeitraum oder unbeschränkte Zeit nicht gelöscht wird

  • Browser binding: Eine neue optionale Bindung, die speziell zur Unterstützung von Anwendungen konzipiert wurde, die in einem Webbrowser ausgeführt werden. Die Bindung nutzt JSON anstelle von XML und verwendet stets die HTTP GET- und POST-Befehle

  • Secondary object types: Benannte Eigenschaftssätze, die dynamisch in CMIS-Projekten hinzugefügt bzw. daraus entfernt werden können.

  • cmis:item type: Neuer Datenmodelltyp der obersten Ebene für Repositorys, die Objekttypen über CMIS verfügbar machen müssen, die bezüglich Dokument-, Ordner- oder Richtlinienobjekttypen nicht in die Definition des CMIS-Modells passen

  • Bulk update properties: Methode zur Unterstützung von Masseneigenschaftsupdates für eine Reihe von Objekten in einem einzelnen Dienstaufruf

  • Append to a stream: Unterstützung beim Anfügen an einen Content Stream. Dieses Feature bietet Clients die Möglichkeit, sehr große Uploads von Dokumentinhalten in viele kleinere Aufrufe zu unterteilen.

Siehe auch