Cmis4SharePoint¶
- Cmis4SharePoint
- IP-Tech à l’avant-garde
- Services d’interopérabilité pour la gestion de contenus
- Implémentations connues de CMIS
- Serveurs CMIS
- Outils CMIS
- Clients CMIS
- Microsoft et CMIS (l’Arlésienne)
- SharePoint accumule du retard
- CMIS4SharePoint (100% made in Tunisia)
- Implémentation de CMIS4MSS
- Conformité à la spécification
- RoadMap
- Installation de CMIS4MSS: Héberger un service WCF sur SharePoint
- Exemple de consommation de services CMIS
IP-Tech à l’avant-garde¶
Après deux années d’existence IP-Tech est une SSII tunisienne en plein essor et qui se donne les moyens de ses ambitions. Fondée par deux ingénieurs possédant une expérience d'une dizaine d'années sur le marché parisien. Ils sont très attachés au respect des valeurs du métier de l’informatique.
Aveccses valeurs (l'écoute, l'engagement, la qualité et le devoir de conseil.) ils ont su s’entourer d’une équipe hautement qualifiée réalisant des taches à hautes valeur ajoutée. Cela a valu à IP-Tech une notoriété et une reconnaissance auprès de plusieurs clients ( ici ).
Soucieux de se distinguer de la concurrence, IP-Tech accorde une grande importance à la veille technologique et à la participation active au sein de la communauté. IP-Tech a su déceler très tôt le rôle majeur que va jouer CMIS dans le marché des gestionnaires de contenus pour l’entreprise (ECM).
Ainsi IP-Tech a décidé d’implémenter la première version de CMIS pour le produit Microsoft SharePoint. Dans ce wiki vous trouverez plusieurs informations nécessaires à la compréhension de CMIS et particulièrement CMIS4SharePoint.
Services d’interopérabilité pour la gestion de contenus¶
CMIS est l’acronyme pour « Content Management Interoperability Services ». Ce qui se traduit par services d’interopérabilités pour les gestionnaires de Contenus.
C’est une prénorme établie par les trois ténors du marché:
Microsoft (avec son produit SharePoint), EMC (Documentum) et IBM (IBM Content Manager, IBM FileNet P8), qui à eux trois représentent la majeure partie du marché des ECM (Entreprise Content Management).
CMIS est en cours de validation par l’organisation « Organization for the Advancement of Structured Information Standards (OASIS)»
Le calendrier établi en février 2009 prévoit une version 1.0 en septembre 2009, mais les choses ne ce sont pas déroulées comme prévus et on constate un retard engendré par la multiplication des versions brouillons ( roadMap CMIS-OASIS ). La spécification est disponible maintenant sous la version 0.62c "brouillon".
CMIS rencontra rapidement le soutien des autres acteurs du marché des ECM comme : Alfresco, Oracle, Open Text, SAP, etc.
Ces acteurs constituent actuellement le comité de validation technique (Technical comitee) au sein de "OASIS".
La norme CMIS vise à offrir une couche de services haut-niveau, pour assurer une interopérabilité minimale entre les systèmes. Elle a pour but de fournir juste l’essentiel, et non pas une API exhaustive de toutes les capacités des ECM.
La raison d’être de CMIS est le résultat d’une étude de l’agence Forester, cette étude stipule, qu’il est commun de nos jours de trouver au sein d’une même entreprise divers systèmes de gestion de contenus. Par exemple le service des données travaille sur EMC Documentum, mais les autres départements tournent avec Microsoft SharePoint, ceci conduit à une multitude de produits incompatibles.
Or les entreprises ont tendance aujourd’hui à utiliser des outils pour essayer de centraliser au mieux l’information circulant en leur sein (utilisation des ERP et des CRM, etc.) et les ECM n’échappent pas à cette règle. Ceci conduit à la fabrication d’outils « Ad-hoc », souvent bricolés ou faisant appel à des intervenants étrangers, pour synthétiser l’information. Ces solutions sont donc non réutilisables et un changement mineur de l’architecture entraine des dépenses énormes. CMIS voulant assurer une interopérabilité minimale, son implémentation n’entrainera pas de grands changements dans le model de données des applications. Les Buts de CMIS sont les suivants :
- Permettre de construire des applications qui ciblent plusieurs ECM à la fois. Donnant accès à des opérations basiques sur les « Repositories », sans se soucier des spécificités de chaque ECM.
- Permettre de construire des applications proposant des opérations beaucoup plus avancés, en se basant sur l’ensemble des web services proposés par CMIS.
Implémentations connues de CMIS¶
La version actuelle du standard CMIS est estampillée "Brouillon" (draft). Malgré cela, la communauté c'est rapidement intéressée à ce standard et plusieurs implémentations et outils ont vus le jour. Ces Développement permettent au comité de standardisation de tester les idées et de détecter les incompatibilités.
Serveurs CMIS¶
- Alfresco Draft CMIS Implementation
- Hosted Alfresco Draft CMIS Implementation (username/password=demo/demo) Alfresco CMIS Demo Site
- EMC Documentum
- IBM FileNet P8 Content Manager 4.0
- sensenet
- Day Software
- KnowledgeTree
Outils CMIS¶
- Apache Chemistry
- CMIS FileShare by Florian Mueller
- NCMIS
- PHP CMIS Client API Module
- Flex CMIS Client API
- CMIS Spaces ActionScript
Clients CMIS¶
- CMIS Federated Search from AIIM iECM Demo
- Drupal CMIS Alfresco Module
- Joomla Integration
- Shane Johnson's Flex/AIR CMIS Browser
- Steve Reiner's CMIS Spaces
- Sten Andersons JavaFX Client
- Jan Pfitzner's Ext GWT Client
- Integrating External Document Repositories with SharePoint Server 2007
- sensenet CMIS Client
- CMIS iPhone client
Microsoft et CMIS (l’Arlésienne)¶
Bien qu'étant l'un des instigateurs de CMIS et un des rédacteurs du document initial, il est important de souligner le mutisme de Microsoft quant à une éventuelle implémentation de CMIS. Microsoft a bel et bien annoncé sa participation à CMIS mais sans plus, d’ailleurs sur le blog officiel de l’équipe de développement SharePoint on ne trouve qu’un seul article , datant du 09/09/2008, et qui traite de CMIS.
Ce qui nous amène à nous interroger sur le sort que réserve Microsoft pour CMIS. De plus plusieurs interrogations concernent SharePoint et un support éventuel du standard.
SharePoint accumule du retard¶
Bien que vous ayez une certaine idée sur SharePoint il est bien de rappeler quelques fondamentaux :
SharePoint dans ses deux versions WSS 3.0 et MOSS 2007 sont la plateforme de gestion de contenu d’entreprise de Microsoft. Ils offrent des fonctionnalités de gestion de documents, de gestion de contenu web, de collaboration, de recherche d’entreprise et de Business Intelligence.
En réalité MOSS est construit autour de WSS. Qui est le noyau de l’ECM présent gratuitement dans chaque Microsoft Windows server. Il représente les fonctionnalités de base dans la gestion des documents, des contenus web et de collaboration.
Actuellement, SharePoint est la solution de gestion de contenu la plus utilisée en entreprise, avec plus de 1 milliards de dollars (US$) en licence vendues .
En raison du poids évident de Microsoft et de son produit, les analystes sont presque unanime (word-of-pie , Cmstrends), la réussite CMIS passera par une adoption du standard par SharePoint.
Mais les réactions de Microsoft tardent à venir et on constate que SharePoint se fait amplement distancer par ses concurrents dans l’implémentation de CMIS. Au moment ou ce wiki est écrit Microsoft à écrit un seul article se rapportant à une utilisation possible de CMIS. Cette article est paru dans MSDN et parle de la manière d' integrer une bibliothèque SharePoint à un ECM exposant des services CMIS .
Ce mutisme est peut être justifié par la préparation du lancement imminent de la nouvelle mouture SharePoint 2010. Or très peu d’informations ont filtré quant au possible support de CMIS par la version 2010 .
Et même si SharePoint 2010 intègre CMIS, il est important de signaler que la majorité des licences vendues sont relatives à MOSS 2007, et pour les entreprises qui ne veulent pas (ou ne peuvent pas) migrer vers SharePoint2010 ils ne pourront bénéficier des fonctionnalités de CMIS.
CMIS4SharePoint (100% made in Tunisia)¶
Le silence de Microsoft, quant'au sort de CMIS et de SharePoint, a poussé IP-Tech vers la réalisation de CMIS4SharePoint. Fruit des compétences 100% tunisienne d’IP-Tech, CMIS4SharePoint est aujourd’hui la première implémentation de CMIS compatible avec le produit Microsoft SharePoint.
Nous aborderons dans la suite de ce wiki les détails de l’implémentation de CMIS4SharePoint.
Implémentation de CMIS4MSS¶
SharePoint se caractérise par la richesse de son modèle objet accessible, ceci lui à permis d’acquérir le nom de « plateforme de programmation ». Cette richesse s’accompagne d’une modularité exceptionnelle. Ces deux éléments utilisés conjointement ont permis de mettre sur pied une implémentation de CMIS à destination de SharePoint. Cette implémentation, nécessita l’adjonction de nouvelles briques logicielles à celles déjà fournie par SharePoint. Ainsi nous avons mis sur pied une architecture basée sur le .net Framework 3.5 Sp1 et essentiellement WCF.
WCF trois lettres magiques désignant Windows communication fondation, fût un élément essentiel pour la mise en place de ce projet. Grace à sa séparation entre les moyens de communication et l’implémentation des services, WCF à permis de mettre en place des moyens de communication interopérable respectant les spécifications web services (WS-I et WS-*) et Atom publishing Protocol. De plus sa modularité nous à aussi permis d’adapter les messages échangés (tel les ajouts apportés par CMIS à la norme AtomPub) ainsi que d’exposer une certaine flexibilité d’utilisation grâce au contrôle du service à travers le fichier de configuration.
Au final l'architecture logicielle adoptée par CMIS4SharePoint est la suivante :
Pour utiliser CMIS4SharePoint vous devez disposer de la configuration matérielle suivante :
- Window server 2008
- IIS 7.0
- SQL server 200x
- WSS 3.0 ou MOSS 2007
- .Net Framework 3.5 SP1
- La DLL CMIS4SharePoint + Le fichier CMIS4SharePoint.svc + le fichier de configuration web.config (voir Héberger un service WCF sur SharePoint)
Ces different élément sont résumés dans le diagramme de déploiement suivant:
Conformité à la spécification¶
CMIS4SharePoint se veut conforme à la spécification CMIS dans sa version 0.5. Pour plus de détail quant aux choix effectué lors de l'implémentation de CMIS 4SharePoint pour illustrer les notions et les fonctionnalités de base de CMIS veuillez consulter la page suivante:
RoadMap¶
L'implémentation de CMIS4SharePoint n'est pas encore terminée. Ce qui suit détaille les opérations disponibles et ce qui reste à effectuer.
Pour rappel CMIS propose de consommer les services soit via SOAP soit via AtomPub.
- Soap
- Repository Services --> OK
- Navigation Services --> OK
- Object Services --> OK
- Multifilling Services --> OK
- Discovery Services --> OK
- Versioning Services --> OK
- Relationship Services --> NO
- Policy Services --> NO
- Query Services --> TO_DO
N.B: Relationship Services et Policy Services ne sont pas implémenté,
en raison de la non correspondance entre ces notions et le modèle objet SharePoint
- AtomPub (REST)
- En cours de réalisation
Installation de CMIS4MSS: Héberger un service WCF sur SharePoint¶
Afin de pouvoir beneficier de la puissance de wcf, qui n'est pas inclus par défaut dans SharePoint nous devons realiser le support de facon personalisée.
les etapes a suivre sont décrite sur le blog de Sahil Malik
Je vais essayer dans ce qui suit de reprendre ces étapes tout en y rajoutant celles spécifiques a IIS 7.0 et windows server 2008
étape1:Créer un répertoire WCF sous SharePoint
étape2:Créer une librairie WCF
étape3:Créer le fichier .svc
étape4:Ecrire un "WCF Virtual Path Provider"
étape5:Personnaliser les URL pour les services REST
étape6:Mettre le fichier CMIS4SharePoint.dll dans le GAC
étape7:Mettre les fichiers CMIS4SharePoint.svc et web.config dans le répertoire WCF sous SharePoint (voir étape 1)
étape8:Executer la commande console c:\>iireset
Exemple de consommation de services CMIS¶
Une fois CMIS4SharePoint bien installé (tester le bon fonctionnement avec un explorateur web), nous allons maintenant illustrer l'utilisation de CMIS, avec un client qui va lister le nom et l'URL de l'ensemble des bibliothèques de documents disponible dans le site SharePoint.
Pour commencer nous allons créer sur une machine cliente (autre que le serveur SharePoint) un nouveau projet Console sous Visual Studio 2008.Ce projet s'appellera "ClientTestCMIS".
Une fois le projet créé, faites un clique droit sur le projet dans explorateur de solution, et sélectionnez "Ajouter réference de services" (Add Service Refrence).
dans la boite de dialogue qui s'est ouverte, saisissez l'adresse de votre service, appuyez sur "GO" puis sélectionnez le service retrouvé, comme l'illustre cette capture :
Renommez le namespace du service et validez.
Maintenant Visual Studio a généré un proxy qui reprend tout les services exposé, il ne reste plus qu'a implémenter notre programme:
Notez l'ajout de la directive using ClientTestCMIS.CMISRefrence; et ceci afin de faciliter l'utilisation de l'intellisense.
Et voici le résultat:
Nous avons réussi à lister l'ensemble des bibliothèque de documents de SharePoint sans avoir recours aux Web-services propres de SharePoint.
Remarque: Si vous échouez à exécuter le programme, et que vous recevez une exception relative aux "endpoints". Verifiez le fichier App.config de votre client. et vérifiez l'attribut "address" du noeud "endpoint". Dans notre cas nous avons eu recours à l'adresse IP car notre serveur SharePoint ne fait pas partie du domaine.