Gestion Electronique de Documents : Protocole CMIS (1/4)

Dans le cadre d’une veille stratégiques pour un de nos clients publics, nous avons étudié les solutions de gestion électronique de documents. L’article suivant constitue la 1ère partie sur le protocole CMIS.

1. Présentation et historique

Content Management Interoperability Services (CMIS) est un standard ouvert qui augmente l’interopérabilité entre les systèmes de gestion de contenu.

Proposé par IBM, Microsoft et EMC, l’initiative a été élargie en 2007 à Alfresco, Open Text, SAP et Oracle. Un certain nombre d’acteurs ont rejoint le Comité Technique chez OASIS qui est l’organisation responsable des spécifications CMIS. La version 1.0 du standard est publiée en 2010 suivie d’une version 1.1 trois ans plus tard qui est celle utilisée aujourd’hui.

Le CMIS répond à trois cas d’utilisation distincts :

  • La communication entre un client et un dépôt de contenu. Exemple : Un portail web accède à des fichiers présents dans un répertoire de contenu

  • La communication entre deux dépôts de contenu. Exemple : Synchronisation d’un document entre deux répertoires de contenu

  • La communication entre un client et plusieurs dépôts de contenu. Exemple : Une application composite (mash-up) qui combine des données de plusieurs sources.

L’avantage du CMIS est de permettre à des organisations de déployer plus facilement et rapidement n’importe quelle application connectée au(x) dépôt(s) de contenu de son choix sans devoir développer des API spécifiques. Le CMIS libère les entreprises de l’enfermement dans un système de gestion de documents particulier.

Cette initiative est similaire à celle qui s’est opérée dans les années 90 avec Open Database Connectivity (ODBC) pour le marché des bases de données relationnelles

cmis

Illustration 1: Parallèle fonctionnelle entre une base de données et un dépôt de contenu CMIS

2. Usages et perspectives

CMIS est aujourd’hui intégré dans plus 50 applications. Son adoption par la majorité des grands éditeurs de logiciels est un succès. Cependant, l’évolution du standard CMIS est aujourd’hui principalement poussée par les éditeurs des systèmes de gestion de contenu open source, les intégrateurs et les consultants indépendants. En effet pour les éditeurs propriétaires, le CMIS standardise les systèmes de gestion de contenu et il devient de moins en moins possible de commercialiser avec succès une solution propriétaire. Les leaders de la gestion de contenu en entreprise comme IBM, OpenText et Microsoft se démarquent en offrant par leur API native, une richesse fonctionnelle qui dépasse CMIS. Notons cependant que les fonctionnalités essentielles de la gestion de documents sont intégrées dans le standard de OASIS.

3. Aspects techniques

3.1. Le modèle de données commun

cmis2

Illustration 2: Modèle de données commun CMIS


CMIS définit un modèle de données commun pour les systèmes de gestion de contenu couvrant les objets pouvant être lus ou écrits. Il fournit également un cadre commun de gestion des droits d’accès, de contrôle de version et offre la possibilité de définir des relations génériques. Il dispose d’un ensemble de services pour modifier ou interroger le modèle de données par l’un des trois protocoles Web Services, AtomPub REST et Browser JSON (depuis CMIS 1.1).

Un répertoire est un conteneur de différents objets. En fonction de l’implémentation, chaque répertoire possède des fonctionnalités essentielles et des fonctionnalités étendues définies par CMIS mais laissées à la liberté du référentiel de donnéesl. La force du standard CMIS est de pouvoir assurer la compatibilité maximale entre des dépôtshétérogènes qui n’ont pas la même couverture fonctionnelle.

Les objets sont les entités de base que gère un répertoire. Chaque objet est un type parmi les quatre suivants : document, dossier, relation et règle qui possèdent un ensemble de propriétés propres. CMIS laisse la liberté de définir d’autres types d’objet ou d’ajouter des propriétés.

Les documents et les dossiers sont des notions qui se passent d’explication. Une relation crée une connexion entre deux objets indépendants. Un document peut avoir plusieurs versions et posséder un flux de contenu. C’est un flux binaire de données avec un type Mime qui permet ainsi de décrire le contenu d’un fichier. Notons que pour tous les systèmes de GED, le flux de contenu du document n’est pas stocké physiquement dans la base de données mais dans un système de fichiers sauf exception1. La base de données contient toutes les autres informations décrites dans le modèle de données commun CMIS.

Une rendition est une autre manière de caractériser un document dont l’exemple le plus marquant est la miniature mais d’autres formes sont possibles.

La règle représente une règle administrative qui peut être appliquée à un ou plusieurs objets contrôlables. Les spécifications CMIS ne donnent pas d’avantage de précision sur les règles. La liste de contrôle d’accès et la gestion de la durée de rétention sont des exemple de règles qui sont proposés par les dépôts de contenu.

Une liste de contrôle d’accès est une liste de principes (personnes, groupes ou rôles associés à des permissions). Les permissions standards (lecture, écriture, tout) peuvent être étendues selon chaque type de répertoire.

Enfin notons que chaque répertoire peut intégrer un journal des changements effectués : une entrée par changement de contenu effectué sur le répertoire.

3.2. Les services CMIS

Au-delà du modèle de données commun, chaque dépôt compatible CMIS doit offrir un certain nombre de services qui sont détaillés dans le schéma suivant.

cmis3

Illustration 3: Services de CMIS

3.3. Les liaisons de protocole

Une grande partie des spécifications du modèle de données commun CMIS consiste à définir la façon dont les données sont transportées entre les clients et les dépôts. L’avantage de l’utilisation d’un framework CMIS est que le développeur n’a pas à se soucier du traitement de ces échanges. Il est cependant important d’étudier ces différentes liaisons pour mieux traiter la performance et la sécurité d’un échange CMIS.

Historiquement CMIS a été conçu pour être utilisé dans un environnement professionnel où de nombreuses entreprises ont investi massivement dans des infrastructures de services Web. Une nouvelle tendance est apparue avec le développement des interfaces RESTful. Les liaisons AtomPub suivant les principes de REST sont adaptées à des environnements qui interdisent les services Web et leurs complexités. Les liaisons AtomPub sont aujourd’hui plus populaires que les liaisons Web servies. Depuis la parution de la version 1.0 de CMIS, les applications web, mobile et bureautiques se sont multipliées. Cependant un cas d’usage CMIS n’a pas été pensé : celui d’une application Javascript au sein d’un navigateur Web.. La version 1.1 de CMIS introduit la liaison Browser basée sur les formats JSON et HTML qui se montre très efficace et a le potentiel de remplacer à long terme ses aînés.

3.4. Langage de requête CMIS

Le standard CMIS a défini un langage de requête basé sur le SQL-92. Il supporte notamment les requêtes de métadonnées et full text. L’illustration suivante liste l’ensemble des propriétés de chaque type d’objet.

cmis4

Illustration 4: Liste des propriétés des types dans CMIS


Une requête CMIS s’articule autour de quatre composants :

  • SELECT : Identifier le(s) propriété(s) d’un objet qu’on souhaite afficher

  • FROM : Identifier le(s) propriété(s) d’un objet qu’on souhaite afficher

  • WHERE : Restreindre aux résultats (lignes) qui répondent à toutes les conditions (opérateurs ; attributs de comparaison, in, like, null, any, is null ; fonctions d’atribut contains(), in_folder(), in_tree()

  • ORDER BY : trier les résultats selon une ou plusieurs colonnes

Les résultats sont affichés sous forme d’un tableau.

Ci-dessous, l’exemple d’une requête CMIS :

SELECT cmis:name, cmis:lastModificationDate

FROM cmis:document

WHERE cmis:lastModifiedBy = ‘admin’ AND contains(‘test’)

ORDER BY cmis:lastModificationDate DESC

La requête ci-dessus affiche l’ensemble des documents modifiés par l’utilisateur « admin » et contenant le mot « test ». Le tableau affiche les résultats avec en colonne le nom du document et la date de la dernière modification et triés du plus récent au plus ancien.

4. Synthèse sur le protocole CMIS

Le protocole CMIS dans ses spécifications répond à deux enjeux essentiels des systèmes de gestion électronique de documents à savoir :

  • Assurer une interopérabilité maximale entre les dépôts de contenu et les applications qui les exploitent malgré l’hétérogénéité fonctionnelle

  • Avoir une architecture souple pour permettre une extensibilité répondant à des usages spécifiques

Le choix de l’Administration d’implémenter le CMIS dans les systèmes de gestion électronique de document est tout à fait judicieux.