CMIS : CKOA ?

1 – Introduction

CMIS (Content Management Interoperability Services) est un standard OASIS (Organization for the Advancement of Structured Information Standards) paru en mai 2010 pour la V1 et en décembre 2012 pour la V1.1.

Il décrit une interface standard pour accéder à un ECM (Enterprise Content Management) comme Alfresco, SharePoint…

2 – Description

Ce standard définit un modèle de données « universel » dans le monde de l’ECM ainsi que les fonctions associées pour manipuler ces données.

Les principaux concepts (je laisse les termes en anglais) sont décrits avec leurs propriétés ainsi que les différentes fonctions permettant de les manipuler.

Au niveau des objets

  • Repository : permet d’avoir des conteneurs
  • Objets pouvant être de différents types : de type Document, Folder, Relationship, Policy et Item
  • Document : peut être versionnable, contenir de 0 à N fichiers. Un fichier est appelé un Content Stream. Des Renditions (représentation alternative comme un PDF pour un fichier bureautique) peuvent être associées à un document
  • Folder : conteneur pour des Documents et/ou Folders
  • Relationship : permet de faire un lien depuis un objet source vers un objet cible
  • Policy :
  • Item : permet d’étendre le modèle CMIS en définissant du’autres objets
  • ACL (Access Control List) : gestion des droits d’accès
  • Query : système permettant d’interroger la base CMIS au travers d’un langage de requête

Au niveau des fonctions, on retrouve des fonctions classiques de gestion documentaires :

  • Gestion des objets : création, lecture, destruction
  • Gestion des versions (check-in, check-out, version mineure/majeure)
  • Gestion des droits d’accès : lire les droits d’accès sur un objet ou les positionner
  • Fonction de recherche

Ce standard définit également les implémentations associées au travers de protocoles plutôt que d’API (Application Programming Interface) trop liées à un environnement/langage.

  • AtomPub : AtomPub (RFC4287 par l’IETF) est un protocole à base de XML au dessus d’HTTP
  • Web Services : protocole classique SOAP
  • Browser : repose sur JSON (Java Script Object Notation, [RFC4627])

Comme on peut le voir, CMIS est un protocole détaillé (le document de référence fait plus de 300 pages…) qui permet de définir un moyen d’interagir avec un CMS au travers de fonctions permettant de manipuler des objets.

3 – Cas d’usage

Comme on peut le voir sur Wikipedia, les principaux éditeurs proposent une interface CMIS pour leur ECM : Alfresco, EMC Documentum, IBM Filenet, Microssoft SharePont, Nuxeo, OpenText Content Server… (Remarque : la version française et anglaise sont plutôt complémentaires

Intérêt et cas d’usage :

  • Proposer un portail qui accède à différents ECM au travers de la même interface
  • Proposer un navigateur universel accédant à différents conteneurs CMIS
  • Proposer un connecteur universel d’un ECM en interface avec le SAE 

Lorsqu’on travaille dans le le monde de l’archivage, on ne peut pas s’empêcher de faire l’analogie avec la norme 45-020 (voir mon autre article). Mais autant CMIS est une interface assez complète pour qu’il y ait plusieurs implémentations, autant la norme 45-020 reste au niveau de spécifications de trop haut niveau.