Ma famille de solutions Open Source ECM

Hello tout le monde,

Ci-dessous vous pouvez retrouver un ensemble de présentations pour apprendre comment installer une petite collection de solution Open Source ECM sur des environnements virtuels.
A la fin de chaque présentation, vous pouvez retrouver un ensemble de liens vers chaque aspect de la solution.
PS : Ces installations servent de base pour des tests et ne seraient en aucun cas une base pour une mise en production...

Mettre en place son environnement virtuel

Installation Simple Installation Avancée
  • Alfresco (Work in progress)
  • Nuxeo (Work in progress)

Dans un futur plus ou moins proche, j'essaierai de partager d'autres présentations sur certains aspects comme le clustering, connexion LDAP, Intégration Continue etc...

Si vous avez des retours ou des liens n'hésitez surtout pas!
Bonne installation !

Interview : Julien Viet, Product Manager eXo platform SAS

Bonjour chers lecteurs et lectrices,

Aujourd’hui je vais de nouveau vous présenter un voisin du Sud de la France avec qui je vais aborder le sujet des portails d'entreprise et l'écosystème s'y attachant.

Aujourd'hui j'ai donc l'honneur et le privilège d'interviewer Julien Viet, product manager au sein de la société eXo platform SAS et l'une des références communautaire sur les projets de portails d'entreprise.


Bonjour Julien,

En premier, un grand merci de m'accorder un peu de votre temps pour répondre à cette interview et pour partager votre vision des portails, de la gestion de contenu et du monde open-source à travers ce post.

Commençons tout d'abord par les présentations. Serait-il possible de vous connaître un peu plus ? Quel est votre métier et quelles sont vos responsabilités actuellement au sein de la société eXo Platform ?

Mon poste actuel est Chef de Produit chez eXo Platform où je m'occupe spécialement du portail qui est à la base de l'offre d'eXo Platform. Mon métier est à mi chemin entre le partie marketing du produit qui consiste à définir les fonctionnalités du produit et sa réalisation technique pas nos équipes de développement. Je collabore en amont avec le avec le chef produit principal avec lequel nous définissons les besoins du portail et son évolution et en aval avec le chef de projet portail qui se charge de son implémentation.

Quel a été votre parcours professionnel pour arriver à ce poste ?
Mon parcours professionnel s'est toujours orienté grâce à des opportunités qui se sont offertes à moi au bon moment.

Après un premier et second universitaire dans les mathématiques et informatique, j'ai intégré une école d'ingénieur (INT Telecom) et pendant la dernière année d'étude j'ai découvert Java 2 Enterprise Edition et le coté technique m'a fasciné tout e suite, c'est à dire que je voulais savoir comment la plateforme entière fonctionnait. Je me suis donc orienté naturellement vers l'open source et le serveur d'application JBoss qui m'a permis de découvrir et de comprendre le middleware en général.

Je suis passé ensuite contributeur sur le serveur et en 2003 j'ai été embauché pas JBoss Group Europe, à l'époque la structure était toute jeune, une quinzaine d'employés, j'étais parmi les 7 employés initiaux de JBoss Group Europe fondé par Sacha Labourey. En 2004 j'ai commencé à écrire un prototype de portail et de fil en aiguille le projet JBoss Portal a été crée.

En 2008, je voulais m'orienter vers de nouvelles perspectives et donc j'ai accepté un poste à peu près équivalent chez eXo Platform, ma motivation principale étant de me retrouver dans une infrastructure où le portail est au cœur de l'offre produit, contrairement à JBoss où le portail était une couche assez éloignée du cœur de métier. Je désirais aussi avoir une expérience produit plus aboutie et moins technique.

Vous avez toujours intégré des sociétés dîtes open-source. Pour les jeunes qui me lisent et qui ne connaissent pas forcément le monde de l'entreprise, existe-t-il des différences entre des sociétés/éditeurs open-source et leurs équivalentes propriétaires en terme travail jour après jour ?
Je pense que fondamentalement l'objectif est le même, à savoir créer un produit. Les principales différences concernent le modèle économique de l'entreprise ainsi que le mode de collaboration, mais ceci n'est pas une généralité. Dans mon cas, le modèle économique de l'entreprise a été basé sur la souscription et le mode de travail distribué.
Maintenant intéressons nous à la société eXo Platform. Tout d'abord qu'est ce qu'un portail selon la vision d'eXo Platform et quelle est votre vision ?
eXo Platform considère le portail comme la plateforme qui permet à un écosysteme d'applications d'être déployé au cœur de l'entreprise. Les applications peuvent aussi bien être des applications développées par eXo comme par exemple la suite collaborative eXo CS, des applications d'entreprise écrites en Java ou des gadgets opensocial qui consomment des services REST. Le but du portail est d'intégrer toutes ces technologies afin que l'utilisateur puisse les utiliser dans un portail unique. Le portail fournit divers services utilisés par ces applications telle que l'agrégation de contenu, la gestion de l'identité, l'aspect social.

Pouvez-vous nous en dire plus concernant les différentes solutions et les différents produits d'eXo (eXo Portal, eXo WebOs, eXo ECM, eXo CS…) ?
Comme expliqué précédemment, le portail est l'offre de base qui sert plateforme au déploiement des autres produits eXo.

eXo WebOS, basé sur le portail, offre une vue orienté bureau des applications qui est utilisé quand l'utilisateur a besoin de se retrouver dans un environnement de ce type auquel il est habitué.

eXo DMS est l'outil de gestion documentaire basé sur eXo JCR qui est notre implémentation de la spécification Java Content Repository.

eXo WCM est l'offre CMS d'eXo basé sur le portail et sur le DMS, le portail s'occupant de la partie visuelle et le DMS se chargeant naturellement de la gestion des sites avec notamment la gestion des versions de sites, du mode prévisualisation. La combinaison du portail et du DMS font que WCM est un outil puissant et très abouti.

eXo CS est la suite collaborative qui comprend un client mail, un calendrier, un carnet d'adresse et un outil de chat. Les calendrier et carnets d'adresse pouvant être partagés entre les utilisateurs.

eXo KS est la suite de gestion de connaissance qui fournit un forum et une foire aux questions.

Enfin nous avons finalement eXo Social qui fournit un support transverse de fonctions sociales aux applications, comme le graphe social, la notion d'espace collaboratif.

Comment qualifiez-vous ces produits ? L'ensemble des composants constitue t il un portail d'agrégation d'un ensemble de composants, une plateforme, une solution verticale spécialisée... ?

Nous fournissons avant tout une plateforme avec comme objectif principal la collaboration et la gestion de documents. Certains éditeurs reprennent nos produits et créent des solutions verticales basées dessus.

Quels sont les dépendances entre ces différents produits ? Faut-il posséder un eXo Portal pour avoir un ou plusieurs produits annexes ?

Oui, eXo Portal est la plateforme au sens littéral du terme.


Récemment, eXo Platform et JBoss ont communiqué sur le "mariage" des projets eXo Portal et JBoss Portal. Connaissant vos relations avec ces 2 sociétés (vous avez été leader JBoss Portal avant d'intégrer eXo Platform), on se doute de votre forte implication à ce projet. Pouvez-vous nous en parler un peu plus ?
J'en ai un peu parlé sur le blog d'eXo Platform (http://blog.exoplatform.org/2009/06/10/exo-jboss-partnership/) et dans une interview des cast codeurs (http://blog.exoplatform.org/2009/06/22/cast-codeurs-french-interview-of-julien-viet-exo-and-thomas-heute-rhjboss/).

L'intérêt principal de la collaboration provient de l'orthogonalité des deux entreprises. JBoss est une entreprise qui fait du middleware et eXo de l'applicatif. Pour JBoss, le portail est quasiment tout en haut dans sa pile produit et pour eXo au contraire c'est la base de tous les produits. Le rapprochement entre les deux entreprises s'est donc fait naturellement et petit à petit, chacune y voyant surtout des intérêts. Un des points importants dans le partenariat est l'aspect humain avec plusieurs équipe qui doivent collaborer, mon passage de JBoss à eXo joue certainement un rôle afin que la collaboration des équipes se déroule sans problème. Thomas Heute est le co-lead du projet et est mon alter ego chez Red Hat. Au final nous collaborons sur le portail afin de créer le meilleur portail.

Quelles sont les principaux changements et répercussions à prévoir sur la gamme des solutions eXo cités précédemment ?
Pour eXo cela ne change pas beaucoup de chose en terme produit, la seule différence étant plutôt la gestion du projet qui est faite en collaboration avec Red Hat.

On constate sur le marché des portails dits « traditionnels » qu'ils intègrent de plus en plus des modules de gestion de contenus. S'agit-il d'une évolution logique ? Les portails vont ils rentrer dans le domaine fonctionnel de l'ECM ou seront ils la plateforme de base qui permettra d'agréger des applications hétérogènes ?
Je le pense certainement, en général les portails fournissent du contenu mais en général plutôt orienté web via des CMS ce qui est souvent insuffisant pour des besoins de gestion documentaire pur. Un des points fort d'eXo Platform est d'avoir deux produits distincts, le portail et le DMS, mais qui sont parfaitement intégrés aussi bien en termes de service que d'interface utilisateur. A mon avis c'est la seule solution de ce type sur le marché du portail et de l'ECM. Il est ainsi possible de fournir par le portail, l'application DMS ainsi que d'autres applications grâce à la technologie des portlets.

Quels sont les avantages de cette approche par rapport à des acteurs dits « pure player ECM » ?
Si on regarde les éditeurs ECM purs, on se rend compte qu'ils ont l'ambition de fournir les même services que les portails sans toutefois y parvenir sur le point de vue technologique. Ces éditeurs comprennent l'aspect fonctionnel du portail mais pas la nature middleware du portail et cet aspect d'agrégation assez technique. Souvent ils négligent le standard Portlet (JSR286) et fournissent l'intégration de composant par une technologie propriétaire. La première conséquence est que l'utilisateur couple ses applications au produit et ensuite ces technologies n'ont pas la degré de maturité du standard Portlet. Le standard Portlet a été conçu pour l'agrégation d'applications hétérogènes.

On parle de plus en plus de la confrontation entre le monde open source et le monde propriétaire. Est-il possible de comparer une solution telle que la votre et des solutions Propriétaire ? Existe-t-il un écart ?
Du fait de la nature à la carte de l'offre produit d'eXo, il est possible de confronter nos offres à différent types de solutions. Nous adressons naturellement le marché du portail, de la gestion documentaire, du collaboratif, du CMS et du tout intégré à la sharepoint.
Parlons maintenant un peu d'histoire. Dans votre carrière comment avez-vous constaté l'évolution du marché des portails ?
En fait je suis arrivé sur le marché du portail un peu tard et mon premier produit JBoss Portal était un outsider, ceci ne m'a pas empêché de le placer dans le top 3 des portails open source Java (avec notamment eXo Portal). A cette époque il y avait 7 ou 8 portails open source mais la plupart d'entre eux aujourd'hui ont disparu ou alors n'ont plus un développement très actif, cela vient du fait que derrière chaque portail open source présent encore aujourd'hui il y a une entreprise, c'est le modèle open source professionnel, longtemps évangélisé par Marc Fleury.

Du coté propriétaire il y a eu énormément de consolidation aussi, notamment par le biais de rachats je crois qu'aujourd'hui Oracle possède 4 ou 5 portails... Au final clairement aujourd'hui il y a eu une grosse consolidation du marché, de manière similaire à ce qui s'est passé pour les serveurs d'application.

En tant que membre de la communauté open source faîtes vous parti d’une communauté de référence comme les Java User Group... ? Avez-vous réalisé des publications ?
Avec plusieurs personnes de Marseille nous sommes en train de fonder le MarsJUG, nous serons actifs dès septembre 2009. Les deux années précédentes ont tout simplement été énormes à ce niveau là avec l'explosion du nombre de JUG en France, l'initiative étant partie de Paris avec Antonio Goncalves qui a fondé le Paris JUG. Quand aux publications, je n'ai rien publié de manière formelle, mon blog même s'il n'est pas très actif me sert à véhiculer mes idées.



Pour finir sur une note annexe, quels sont vos blogs, liens et Twitter préférés sur l'informatique en général ?

Il y a quelques années je lisais pas mal d'articles sur TheServerSide, OnJava et autres mais depuis que Java est devenu très mature, ces sites n'offrent plus beaucoup d'articles novateurs. Je lis pas mal de blogs mais je tombe rarement sur des blogs qui sont des mines d'or d'information. Il me semble que les articles techniques intéressants se font de plus en plus rare et ça me désole, il y a pas mal de blog intéressants que je lit même si la plupart des gens intéressants semblent avoir de moins en moins de temps pour publier:
Au final je me rends compte que peu de contenu intéressant est publié de nos jours. Je suis ouvert à toute suggestion de lecture si vos lecteurs m'en proposent. Après je lis pas mal de blog sur la cuisine et le retro gaming pour la détente :-) .

Un dernier mot avant de se quitter ?

Comme j'ai la possibilité de m'exprimer voici quelques pensées je vais faire un j'aime/j'aime pas à la ciel mon mardi:

  • j'aime l'open source
  • j'aime la maturité à laquelle sont parvenues les plateformes Java SE et Java EE
  • je n'aime pas les langages dynamiques
  • je n'aime pas les fluents interfaces, ça frise le ridicule
  • j'aime les commentaires de code source qui disent du mal d'autre frameworks
  • je n'aime pas les solutions et frameworks simplistes (style Prevayler ou Picocontainer)
  • je n'aime pas qu'on me dise que l'injection de dépendance est révolutionnaire, au final ce n'est qu'un modèle de programmation pratique
  • je n'aime pas que l'on juge la qualité d'un produit sur la taille de ses jars, aujourd'hui on a des disques durs de l'ordre du tera octets et mon ordinateur portable à 4go de mémoire vive, alors qu'un jar fasse 100ko ou 1mo ca ne change pas grand chose tant qu'il le fait bien
  • je n'aime pas les frameworks qui utilisent Class.forName, ça montre une incompréhension de la plateforme Java
  • je n'aime pas les frameworks qui ne fournissent une API couplée à l'implémentation
  • j'aime lire du beau code

Merci pour toutes ces questions très pertinentes et à bientôt!

Merci encore pour cette interview et bonne continuation sur la route d'un monde ECM Open Source !

Vous pouvez retrouver toutes les informations sur l'offre eXoPlatform à l'adresse suivante : http://www.exoplatform.com/
et bien entendu Julien Viet sur son espace personnel : http://www.julienviet.com/

PS : Vous pouvez télécharger l'interview à l'adresse http://www.scribd.com/doc/18717050/Open-Source-ECM-Interview-FR-Julien-Viet-eXo-SAS

CMIS-SQL : Tutorial et Presentation

Bonjour à tous !

Sur mon blog anglais, j'ai publié une présentation sur l'utilisation du nouveau langage de requête CMIS-SQL. Ce petit tutorial se veut simple mais assez complet pour vous donner l'ensemble des informations nécessaires pour que vous aussi vous puissiez tester ce langage.

Pour visualiser la présentation, je vous invite à consulter mon post anglais à cette adresse :

http://www.open-source-ecm.com/2009/08/cmis-tutorial-cmis-sql.html

Si vous aussi vous avez des informations ou des observations avec CMIS-SQL, n'hésitez pas à les partager.

Bonne viusalisation et A la prochaine !

PS : Si vous avez besoin d'une traduction...

Nuxeo Tips : Installation et Parametrage

Bonjour à tous !

Je profite d'un petit temps mort pour vous parler de Nuxeo!

En effet, ayant eu l'opportunité d'installer, paramétrer et personnaliser cette solution dans un environnement windows, je me suis dis qu'il était bon de partager certaines informations avec vous.

Installer Nuxeo

Comment installer Nuxeo ?
Par défaut, utilisez l'installeur de Nuxeo 5.2 que l'on peut retrouver en téléchargement http://www.nuxeo.com/downloads/
Cet assistant permet d'avoir une très bonne base de départ. Il intègre en outre Nuxeo Shell (un vrai petit bijou pour les administrateurs!). Néanmoins il faut savoir qu'il embarque une base de données légère (Derby). Cette base est fâite pour les environnements de démonstrations, développements ou expérimentations. Il ne s'agit pas d'une base de production! Il faut donc paramétrer Nuxeo pour une autre BDD.


Comment paramétrer Nuxeo avec une base de données PostgreSQL ?
Pour les explications pas à pas, jetez un oeil à la FAQ : http://www.nuxeo.org/xwiki/bin/view/FAQ/ Rubrique Administration
Vous pouvez avoir plus d'informations dans le Nuxeo-Book http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html ou Admin Book : http://doc.nuxeo.org/5.1/books/nuxeo-book/html/admin-database-configuration.html

Et si vous êtes vraiment fainéant ... Télécharger les fichiers de configuration par défaut ci-dessous pour une configuration Nuxeo/PostgreSQL/VCS : A VENIR ;o)
PS : N'hésitez pas à lire le README.txt qui vous expliquera comment faire.


Quelles sont les configurations Nuxeo pour un environnement de Production ?

Pour la partie Nuxeo, les informations se trouvent http://www.nuxeo.org/xwiki/bin/view/Main/NuxeoProdSetup/

Pour la partie PostgreSQL, les informations sont là : http://www.nuxeo.org/xwiki/bin/view/FAQ/PostgreSQLSettings/

Vous avez maintenant une bonne base pour démarrer une mise en production au niveau système en tout cas. Il faut maintenant prendre en compte la partie fonctionnelle c'est à dire les différentes fonctionnalités que l'on veut ou non voir apparaitre. Pour cela intéressons nous aux possibilités offertes de paramétrer Nuxeo.


Paramétrer Nuxeo

Petite introduction
Comme j'ai coutume de le dire, dans les solutions d'ECM Open Source, il y a 3 types d'approches possibles.

  • L'approche Utilisateur : L'utilisateur ne sait que cliquer sur des boutons (Ce n'est pas un reproche ou une insulte mais c'est bien caricaturé par contre...)
  • L'approche Administrateur : L'administateur sait utiliser et modifier des fichiers humainement compréhensibles (XML, Properties, txt)
  • L'approche Developpeur/Intégrateur : Le développeur est omniscient et omnipotent. Il comprend et connait tout surtout la programmation.

Dans notre cas on va s'intéresser uniquement au niveau administrateur. En effet beaucoup de fonctionnalités sont paramétrables par des fichiers XML dans Nuxeo.

Pour illustrer ce niveau, je vous propose le cas d'utilisation suivant : Je souhaite augmenter le nombre de document affichés dans une espace. Par défaut cette valeur est fixée à 10. Si l'espace contient plus de 10 documents, alors la page de présentation va créer une pagination automatique de 10 en 10. Pour des questions de visibilité, je souhaite maintenant que cette valeur soit de 25.

Voyons voir quelles sont les approches possibles pour répondre à ce besoin

Tout d'abord dans une installation Nuxeo, il y a 3 répertoires à retenir pour un administrateur :

  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\System
    Il s'agit du répertoire qui contient l'ensemble du coeur de l'application Nuxeo.
  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\plugins
    Ce répertoire contient l'ensemble des modules addons/plugins/extensions qui ne font pas partie du coeur Nuxeo.
  • NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\config
    Il s'agit du répertoire qui contient l'ensemble des fichiers de configuration.
Ces 3 répertoires vont illustrer les 3 façons de paramétrer Nuxeo.

Le répertoire System
Si vous avez jeté un œil à Nuxeo de près ou de loin, vous avez remarqué que la majorité des fichiers sont des fichiers .jar. Pour ceux qui ne connaissent pas ce format de fichier, un petit tour sur wikipedia s'impose : http://fr.wikipedia.org/wiki/Jar Pour faire simple, il s'agit d'un ZIP pour tout ce qui touche au langage de programmation JAVA. Pourquoi je m'attarde dessus ? Eh bien tout simplement comme il s'agit d'un ZIP, on peut ouvrir ce ZIP avec un outil comme winZip, 7-zip etc... et donc... On peut modifier le contenu de ce ZIP !

Le jar qui nous intéresse est : nuxeo-platform-webapp-core-5.2.0.jar
Il se situe dans une installation standard au niveau du répertoire : NuxeoEP5\NuxeoServer\server\default\deploy\nuxeo.ear\
Ouvrez le (avec 7-zip dans mon cas) et recherchez le fichier OSGI-INF/querymodel-contrib.xml. Editez (ou faites une extraction) le fichier et remplacer la valeur 10 par 25 dans le bloc suivant :



Sauvegardez le fichier (ou importer le dans le .jar).

Vous pouvez maintenant redémarrer Nuxeo, importer plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.
Il faudra attendre le 26e document pour la voir apparaitre!



Passons maintenant à la seconde méthode :

Le répertoire Config
Comme vous pouvez le voir, ce répertoire se compose essentiellement de fichier de configuration sous format .xml. Le premier but de ce répertoire est de configurer les principaux paramètres de l'application. Or c'est un peu ce que nous voulons faire : Paramétrer le nombre d'élément affiché dans un espace. Tout d'abord si vous avez testé la méthode précédente, il faut supprimer vos modifications. Ensuite créez un fichier ui-configuration-config.xml (le nom n'importe pas sauf la partie -config.xml qui doit rester inchangée) dans le répertoire config et ajouter le bloc ci-dessous :

La partie la plus importante réside dans la balise . Dans cette balise on va identifier le composant défini par défaut (que l'on a vu dans la précédent méthode) Ainsi comme nous avons ce composant, nous pouvons "surcharger"/"remplacer" les données par défaut.

Vous pouvez maintenant redémarrer Nuxeo, importez plus de 10 documents dans un espace et vous apercevoir qu'il n'y a pas la création par défaut de la pagination.

Vous venez juste d'apprendre une méthode qui marche pour la plupart des fonctionnalités par défaut de Nuxeo.

Si on devait avoir un mode opératoire (la recette de cuisine), cela serait le suivant :
  • Explorez les fichiers .jar du répertoire system (avec votre utilitaire de zip : 7zip pour moi...).
  • Interessez vous particulièrement aux répertoires OSGI-INF et aux fichiers xml à l'intérieur (surtout les fichiers finissant par -contrib.xml)
  • Prenez le bloc qui vous interesse et retenez le nom du composant (2e ligne du fichier -contrib.xml en général sous la forme : ).
  • Créer votre fichier -config.xml dans le repertoire config.
  • Insérez le bloc dans le fichier et modifiez les données par défaut.
  • N'oubliez pas de respecter la validité du fichier xml et de déclarer que c'est un fichier .xml
  • Rédémarrez votre instance de Nuxeo.
  • Vous pouvez servir, c'est prêt! :o)

Finalement la dernière méthode
Le répertoire Plugins
Cette méthode (la plus préconisée par Nuxeo) est celle qui est la plus évolutive, modulaire mais aussi la plus compliquée! (On ne peut jamais tout avoir surtout en informatique...). Je ne vais pas renter dans les détails avec cette approche car elle est très bien documentée. Pour rappel, si vous êtes interessé par le sujet, je vous conseille de lire l'ébauche de livre Nuxeo à cette adresse : http://www.nuxeo.org/static/dev-tutorial/

L'un des reproches à cette méthode est qu'il n'est pas donné à tout le monde d'installer et configurer Eclipse, JDK, Maven etc... Il s'agit d'une tâche parfois complexe qui peut prendre pas mal de temps...et donc d'argent.

Si on reprend l'exemple précédent est il judicieux d'installer un environnement de développement ? La réponse risque fortement d'être non. Par contre, je veux ajouter et modifier de nombreux composants ainsi qu'étendre une fonctionnalité Nuxeo, alors oui l'installation d'un environnement est de mise.

Comme souvent : Tout dépend du besoin!

Conclusion
Pour simplifier voici mes recommandations (pour gagner du temps!) :

  • Banissez la modification d'un .jar appartenant au répertoire system!!!! Parfois Cela parait etre la solution la plus simple mais il s'agit la solution la moins rentable sur le long terme.
    Et dans le monde de l'opensource il faut savoir être évolutif par la suite (migration, upgrade...). Le seul cas possible envisageable concerne la suppression d'une fonctionnalité. Si vous avez identifié une fonctionnalité qui ne vous interesse pas, il peut s'avérer utile de supprimer les jar associés (Accélération du démarrage de l'application...)
  • Si vous voulez modifier un paramètre par défaut d'un composant Nuxeo, choisissez la méthode basé sur le répertoire de configuration. Elle sera à long terme, la meilleure des méthodes.
  • Si vous devez modifier un composant Nuxeo + ajouter des fichiers (.java, images, définition d'un workflow) ou ajouter un composant, privilégiez la méthode plugins.

Pour la suite, il ne reste plus qu'à être curieux, d'avoir du temps et de naviguer dans les profondeurs des jars de Nuxeo !

Bon voyage et à la prochaine fois !

Interview : Benjamin Jean, juriste spécialisé en Propriété Intellectuelle au sein du groupe Linagora et promoteur du libre

Bonjour tout le monde !

Aujourd'hui, je publie une interview un peu différente. En effet, mes interviews sont généralement orientées vers le métier, les hommes ou la technique. Or lorsque l'on parle de solution d'open source on parle aussi de licence libre et lorsque l'on parle de solution informatique on parle aussi de propriété intellectuelle. Ceux sont ces aspects fondamentaux : le juridique et le légal que nous allons découvrir avec cette interview.

Pour nous expliquer ces différents axes qui prennent une part de plus en plus importante, j'ai l'honneur et le plaisir d'interviewer Benjamin Jean, juriste spécialisé en Propriété Intellectuelle au sein du groupe Linagora et promoteur du libre !


Bonjour Benjamin,

Je tenais avant tout à vous remercier de m'accorder un peu de votre temps pour répondre à cette interview et pour partager votre expertise dans le domaine du juridique.

Comme d'habitude dans mes interviews ma première question sera sur vous. Pouvez vous nous parler un peu de vous, présenter votre métier et votre rôle au sein de Linagora ?

Bonjour Jean-Marie,

C'est un réel plaisir de participer à cet interview et, ainsi, de donner un aperçu rapide de ce que peut être le métier de juriste dans une SS2L (Société Spécialisée en Logiciels Libres – éditeur, intégrateur, etc.). Peut-être pourrais-je ainsi créer des vocations (pour un poste aussi intéressant que qu'accaparant...) ou surtout aider les différents services (l'équipe technique, les commerciaux, etc.) à cohabiter.

Au sein de Linagora, je suis en charge de toutes les problématiques de propriété intellectuelle et plus spécialement des sujets relatifs à l'usage de Licence FLOS (Free Libre Open Source). Traverse, cette responsabilité m'amène à intervenir dans la quasi-totalité des engagements contractuels de la société. Enfin, et à l'instar de tout juriste d'entreprise, j'ai un rôle de prévision, gestion et résolution de conflits – mes positions sont principalement consultatives, mais leur niveau d'expertise fait qu'elles sont généralement suivies.

Pouvons nous en apprendre plus sur le métier et les services que Linagora offre ?
Initialement Société de Services spécialisée dans les Logiciels Libres, LINAGORA a étendu son activité, en offrant dorénavant : de la formation, de l'assistance et du consulting dans tous les domaines liés au FLOSS (transfert de compétences, mise en place de gouvernance open source, appréhension des différentes licences, élaboration de schéma directeur OS, etc.).

Reconnue comme leader et experte en matière logiciels libres et open source, la société cherche à renforcer son activité d'expertise et mettre en valeur l'excellence de ces compétences. L'offre juridique en fait partie ;-)

Quel est le lien entre la propriété intellectuelle et le domaine informatique ? N'existe t il pas une distorsion de terme entre propriété intellectuelle et libre ?
Il existe un « droit de l'informatique », qui inclut notamment des notions de Propriété Intellectuelle, néanmoins cette dernière est plus large et les deux domaines se rejoignent uniquement dans leur vision de l'informatique comme vecteur de création : l'informatique et Internet ne sont que support et moyen de diffusion de biens susceptibles d'appréhension par les droits de propriété intellectuelle.

Quant à la seconde question : il peut sembler en effet étrange d'associer les termes « Libre » et « Propriété Intellectuelle ». Un objet sujet d'appropriation peut-il être libre – c'est-à-dire à la disposition de tous –, alors que la propriété est au contraire fondée sur le monopole ? Pour la plupart des biens corporels (table, chaise, etc.), l'objet ne le permet pas (car il est rival – c’est à dire qu'il empêche l'usage par les autres – et souvent consomptible – le bien se détruit progressivement par son usage) ; en revanche, on s'aperçoit que la seule limitation, en ce qui concerne les biens immatériels, réside dans la décision du titulaire de droits. Ainsi, et c'est là le mécanisme sous-jacent aux licences FLOS, il suffit que le titulaire de droits – le « propriétaire » de la création – décide de partager l'exploitation et la jouissance qu'il contrôle sur cette dernière.

Le principe du copyleft repose plus encore sur la Propriété Intellectuelle puisqu'en l'absence d'un contrôle sur son logiciel, comment un auteur pourrait-il forcer celui qui modifie son programme à mettre à disposition cette version modifiée dans les mêmes conditions ?

Quels sont les organismes de référence dans le domaine du juridique en informatique ?

C'est une question difficile : il n'y a pas de « référence » dans le domaine, tout au plus quelques organismes plus pertinents que d'autres. Parallèlement à la pratique de nombreux cabinets d'avocats spécialisés dans l'informatique et la propriété intellectuelle, différents organismes gouvernementaux réfléchissant (CSPLA notamment) sur ces problématiques. On peut noter au passage qu'il est intéressant de constater que de nombreuses initiatives communautaires se mettent en place pour combler le manque en la matière (je pense à des initiatives comme Grocklaw, l'OSI, Fossbazaar, etc. aux États-Unis, ou l'OSOR, Veni, Vidi, Libri ou CeCILL en Europe).

Par ailleurs, ces groupements, communautés, qui cherchent (gracieusement) et souvent afin de mutualiser, vulgariser et faire progresser le domaine scientifique afférent, sont très souvent tout à fait avertis des enjeux liés à l'usage des licences libres et, par là, en avance dans leur appréhension.

Maintenant essayons de découvrir ensemble les différents aspects du juridique dans le domaine de l'open source. En effet suivant le point de vue, nous n'avons pas la même vision des choses!

En premier, j'ai cru comprendre dans l'une de vos présentations qu'il existe une différence entre la notion d'open source et de logiciel libre. Pouvez vous nous résumer la différence d'un point de vue juridique ?

J'essaie systématiquement de mettre mes interventions en ligne sur le Blog de l'association VVL et je suis ravi d'apprendre que cette mise à disposition permet une plus large diffusion !

Pour commencer (et d'après moi), les deux notions sont assez proches. Ainsi, les licences libres répondent à une finalité alors que les licences open source répondent à des critères précis :

conformément à la définition de la FSF, un logiciel sera dit libre si l'utilisateur dispose effectivement des libertés :
  1. d'exécuter / utiliser le programme ;
  2. d'étudier et d'adapter le programme ;
  3. de redistribuer des copies ;
  4. de modifier et de publier ses modifications.
de son côté, l'Open Source Definition, afin d'établir une définition plus pragmatique , claire (moins sujette à interprétation) détaille dans l' « Open Source Definition » les 10 critères qui confèrent automatiquement à une licence la qualité d'Open Source :
  1. la libre redistribution du logiciel — elle ne peut, par exemple, exiger le paiement d'une redevance supplémentaire ;
  2. le code source doit être fourni ou être accessible ;
  3. les dérivés des œuvres doivent être permis ;
  4. l'intégrité du code doit être préservée — un tiers ne peut pas s'approprier le travail d'un autre et les contributions de chacun sont clairement attribuées (les modifications peuvent n'être éventuellement distribuées que sous forme de patch, séparément : distinguo que ne tolère pas la FSF) ;
  5. pas de discrimination entre les personnes ou les groupes — toute personne détentrice d'une copie du logiciel bénéficie des termes de la licence tant qu'il s'y conforme lui-même ;
  6. pas de discrimination entre les domaines d'application — la licence se limite à la propriété intellectuelle : elle ne peut en aucun cas réguler d'autre domaine « politique » ;
  7. la licence s'applique sans dépendre d'autres contrats — on ne peut par exemple pas ajouter un NDA lors de la cession du logiciel ;
  8. la licence ne doit pas être propre à un produit — elle est attachée au code et non à un logiciel particulier : une brique peut resservir dans un logiciel différent, voire concurrent ;
  9. la licence d'un logiciel ne doit pas s'étendre à un autre — je précise au passage que la large étendue de la GPL (et c'est la raison pour laquelle certains utilisent le terme de viralité ou de contamination) est conforme à ce critère puisqu'elle ne s'étend qu'au programme envisagé comme un tout ;
  10. la licence doit être neutre technologiquement — c'est-à-dire ne pas dépendre d'une technologie.

Une solution open source ou un logiciel libre n'est donc pas une solution gratuite ?

Effectivement, les licences sont gracieuses (tout titulaire de copie – ou utilisateur pour certaines licences – bénéficie automatiquement des droits que confèrent la licence), mais la mise à disposition du logiciel peut, elle, être gracieuse ou payante – c'est d'ailleurs pour cette raison que l'on entend souvent qu'un logiciel n'est gratuit qu'une fois qu'il a été payé...

Ainsi, le Libre ne se positionne pas sur le caractère commercial ou non de l'usage des oeuvres – j'ai pour habitude de dire qu'il est a-économique –, ce qui permet aux sociétés d'élaborer divers business model et aux communautés de concevoir de multiples systèmes contributifs.

Prenons un cas concret, je suis développeur et j'aimerai savoir si cette bibliothèque (ce framework) que je viens de télécharger est open source. Quels sont les réflèxes que je dois avoir ?
Pour commencer, il est utile de vérifier sur le site du logiciel : la licence utilisée – et éventuellement les limitations qui lui sont apportées ; ensuite la FAQ si celle-ci existe ; et enfin toute autre information précisant les conditions d'exploitation (notamment en matière de marque).

En cas de doute ou si les mentions ne sont pas présentes sur le site, il est alors nécessaire de jeter un œil aux sources afin d'y trouver : un descriptif des différentes briques et licences si le projet est basé sur d'autres briques open source ; les licences portant sur le tout et éventuellement les limitations apportées ; au sein des en-têtes, toute information utile.

Une fois que l'on connaît avec certitude la licence utilisée, l'idéal est bien sûr de la lire, mais certains sites économisent ici du temps aux développeurs (j'invite en revanche les juristes à ne pas se passer de la lecture des Licences Libres) : la présence de la licence sur le site de la FSF (à la page « licences compatibles ») ou de l'OSI (sur la page listant les licences certifiées) ; et – un peu de promotions ne fait jamais de mal – certains sites comme celui de Veni, Vidi, Libri offrent des analyses et descriptions desdites licences afin de mutualiser leurs connaissances.

Enfin, si on s'aperçoit, suite à cette phase de vérification, que les sources supposées open source ne le sont pas en réalité, alors il ne faut pas hésiter à communiquer sur ce fait : ce sera un gain de temps pour tous et cela incitera peut-être ceux qui n'auraient pas fait de recherches suffisantes à se renseigner plus précisément, voire à leur faire changer la politique en matière de licences.

Combien de licences libres existent ils à l'heure actuelle ?

Plus de 80 d'après l'OSI, plus de de 50 sur le site de la FSF, plus de 4000 pour des logiciels d'audit de code comme Black Duck ou Fossology...

En vérité, ce chiffre doit être relativisé : contrairement aux premières années où les licences ne s'influençaient que très peu les unes les autres, on s'aperçoit que la multiplication des licences n'a pu se faire que grâce à une inspiration très forte des licences préexistantes. Pour cette raison, on ne dénombre qu'un faible nombre de licences véritablement différentes (étant entendu que deux licences très proches ne sont pas nécessairement compatible : une licence qui copierait la dimension hégémonique de la GNU GPL serait de facto incompatible avec cette dernière – deux hégémonies étant difficilement conciliables...).

Pouvez vous nous présenter les 2/3 principales licences libres ?
Le choix de ces trois licences dépend véritablement de ce que l'on veut différencier (le copyleft ; les droits concernés, etc.). Pour faire la transition avec la question précédente, je vais prendre une distinction classique : GPL / MPL / Apache.

La GNU GPL est (donc) la licence la plus hégémonique qui soit : tout logiciel qui est dérivé d'un autre licencié sous GNU GPL doit être distribué (au moins) sous la même licence. Une brève description : elle s'étend au logiciel comme un tout (ce qui devrait inclure les logiciels liés statiquement comme dynamiquement) ; sa dernière version homogénéise ses obligations à l'ensemble des droits exclusifs (droit d'auteur, brevet, signes distinctifs, etc.) ; et ses rédacteurs apprécient la compatibilité d'une licence comme sa faculté à permettre la redistribution sous GNU GPL (ce qui n'est pas anodin).

La MPL est une licence que j'appelle modulaire. Pour la comprendre, il suffit d'avoir à l'esprit le logiciel Firefox pour lequel elle a été rédigée : tout fichier intégrant du code de Firefox sous MPL doit être distribué sous MPL ; tout fichier, même associé étroitement aux autres, qui ne contient aucun code sous MPL peut être diffusé sous n'importe quelle licence. On le voit, la principale principale entre la MPL et la GPL est l'étendue de leur copyleft : c'est notamment cet écart qui a causé leur incompatibilité et, ainsi, à justifier le triple licencing de Firefox sous MPL/GNU GPL/GNU LGPL (utilisateur et développeur choisissent la licence qu'ils veulent respecter et bénéficie donc des droits que celles-ci leur procurent).

Enfin, la licence Apache est une licence permissive, dans le sens qu'elle n'oblige pas une licence particulière pour la redistribution du logiciel ou de son dérivé (qui peut donc devenir propriétaire). Néanmoins, elle soumet le licencié à un certain nombre d'obligations (notamment en matière de brevets) qui empêchent sa redistribution sous n'importe qu'elle autre licence (à l'inverse d'une licence comme la BSD qui limite tellement peu la redistribution que toute substitution de ses termes par ceux d'une autre licence se fait conformément à ces derniers).
Voilà pour une rapide description. Néanmoins, il faut faire attention à ne pas se contenter d'une telle classification : d'autres critères sont aussi très importants (les domaines des licences, les licences qui appréhendent la problématique du SaaS, etc.).

On entend souvent parler de la notion de viralité des solutions GPL. Quels sont les contraintes et les avantages de cette licence ? Je crois qu'il faut uniquement faire attention à la notion de distribution ?
Plus que de « viralité », j'ai pour habitude de parler de réciprocité (ou de copyleft : double jeu de mots à partir de copyright) : il s'agit en effet du pot commun que décrit parfaitement Eben Moglen (chacun est libre d'y puiser, mais avec l'obligation ensuite d'y reverser ses contributions).

Le copyleft est le mécanisme, la clause qui, contractuellement, assurent cette pérennité des libertés attachées au logiciel : autant le licencié d'une licence copyleft doit simplement veiller à ne pas obliger mois les licenciés subséquents s'il ne veut pas prendre en charge leurs actes ; autant le licencié d'une licence copyleft doit conserver et les obligations et les droits de la licence originale (usuellement en contraignant à l'utilisation de la même licence, mais d'autres mécanismes existent).

Enfin, un grand oui pour la notion de distribution. Toutes les licences ont une clause qui définit leur « élément déclencheur » : le moment à partir duquel la licence produit ses effets contraignants vis-à-vis du licencié (licence en matière de droit d'auteur, brevet, etc.). Pour la GNU GPL, et les nombreuses licences qu'elle a influencées, la notion de distribution était suffisante pour s'assurer que tout détenteur d'une copie du logiciel pourrait en jouir librement. Mais les technologies ont rapidement évolué et il est dorénavant possible de permettre la jouissance des fonctionnalités offerte d'un logiciel libre sans distribuer physiquement ce dernier (Google est le meilleur exemple d'une société qui utilise du Libre pour fournir des prestations sans pour autant reverser son propre code ; le logiciel de bureautique OpenOffice.org avait aussi été fourni de cette façon). Certaines licences (OSL, CSPAL, EUPL, Affero GPL, etc.) sont donc venues assimiler cet usage à une distribution de façon à permettre à l’utilisateur d'un logiciel de bénéficier des mêmes libertés que celles auparavant offertes au seul détenteur.

La notion de distribution peut elle etre mise en cause dans le cadre d'une société de services en informatique ? En tant qu'intégrateur, les SSII qui "distribuent"des solutions open source modifiés doivent elles automatiquement redistribuer leurs contributions ou bien sont elles considérées comme travaillant en interne pour le client ?
Question tout à fait pertinente, sachant que la GNU GPL v3 va délimiter clairement cette exception (sous réserve d'une série de conditions, notamment l'usage d'un NDA entre le client et son prestataire).

Ainsi, cette exception mise à part, il semble logique de considérer qu'il y ait bien une distribution. Mais la situation (de fait et contractuelle) est telle que seul le client (en tant que seul détenteur d'une copie du logiciel sous Licence Libre) bénéficie de la licence, et, ainsi, le laissant seul maître de la redistribution qu'il souhaiterait ensuite faire du logiciel offert (en revanche, le prestataire n'a pas le choix et doit livrer le logiciel conformément à la licence).

Donc, contractuellement, la licence est suivie d'effets, mais, en pratique, il faut attendre la première mise à disposition publique du logiciel pour qu'il débute sa vie de logiciel libre.

L'un des intêret de l'open source est bien entendu de pouvoir regarder et "copier" les bonnes pratiques. Existe t il des contraintes quand il s'agit de reprendre/s'inspirer/modifier un code source ? Par la suite est il possible de modifier la license associé à ce code (d'un code GPL vers un code LGPL par exemple) ?
Il y a deux choses : l'intérêt de l'accès au code source (partage de bonnes pratiques, intérêt scientifique, rendre le logiciel plus communiquant, etc.) ; et l'intérêt de la licence libre qui permet de bénéficier de l'exploitation du travail que constitue ce code (pour le copier, modifier, mixer, distribuer, etc.). Ainsi, la licence conditionnant les droits nécessaires à cette exploitation du code, il n'est pas possible de les dissocier des contraintes attachées : en matière de brevet, marque, licence pour la redistribution, mention des auteurs, etc.

Techniquement, il n'est pas possible de modifier la licence, puisque cela reviendrait à changer les conditions d'exploitation de la licence, chose que seul l'auteur est habilité à faire. En revanche, le licencié peut parfaitement distribuer une brique logiciel sous une licence différente de celle d'origine, dès lors qu'il respecte ainsi la licence d'origine (si un logiciel est distribué sous une licence du type BSD, il est tout à fait possible de reprendre la brique et la distribuer sous GPL – tout en laissant la mention de la BSD attaché au Code – puisque l'on respecte ainsi la BSD). En ce qui concerne la possibilité de distribuer sous GNU LGPL un code originairement sous GNU GPL : cela est impossible puisqu'une distribution sous GNU LGPL ne respecterait pas les termes de la GPL (la GNU LGPL autorise des liaisons que ne permet pas la GNU GPL) – et qu'il n'y a pas non plus de permission expresse (comme celle que l'on retrouve de la GNU LGPL vers la GNU GPL).

Finalement les licences libres vont elles devenir les nouveaux standards et supplanter les licences propriétaires ?
Je n'ai sur ce point aucune certitude, ayant tendance à penser qu'un modèle mixte/hybride caractérisera l'industrie du logiciel de demain : la plus grande majorité des logiciels utiliseront certainement des briques open source – ces derniers étant ensuite distribués sous licence libre, licence propriétaire, ou encore de façon hybride (avec des modules, fonctionnalités ou services – pensons au Cloud – propriétaires).

En revanche, il me semble intéressant de constater l'impacte des licences libres/open source sur les utilisateurs : ces derniers ne sont plus seulement « consommateurs passifs », mais, bénéficiant de prérogatives plus étendues, auront des responsabilités nouvelles. Ainsi, à mes yeux, on assiste là à un usage équilibré, compris et respecté des droits de propriété intellectuelle (quelque chose de plus citoyen en quelque sorte) – dans une logique bien éloignée de celle que l'on entend actuellement...

Personnellement, faites-vous partie d'une autre communauté open source? Avez-vous des exemples de participation (Animation, articles, forums...) ?
J'ai en effet différentes casquettes : historique (Framasoft, Dogmazic, Copyleft Attitude, April, Aful, FFII, etc.) et plus liées à mes compétences juridiques (Veni, Vidi, Libri, la FniLL, EOLE, etc.).

De mon point de vue, le plus important dans ces implications communautaires (et souvent associatives) reste le plaisir de partager et de construire en commun. De ce fait, on est rapidement amené à se spécialiser sur certaines tâches, une bonne répartition de celle-ci assurant un fonctionnement optimum de la structure.

Pour finir sur une note annexe, quels sont vos blogs et liens préférés sur l'informatique et le juridique dans l'informatique en général ?
La liste est longue et je préfère ne pas donner de liste qui serait forcément partiale.

Ainsi, pour commencer, je vous conseillerai bien entendu le site de Veni, Vidi, Libri (http://venividilibri.org) et son blog (http://blog.venividilibri.org), très spécialisés « Licences Libres/open source ». Ensuite, le site de l'OSI référence dorénavant les blogs très pointus de ses membres ; FOSSBazaar (https://fossbazaar.org/) mutualise les expériences de nombreuses sociétés du secteur ; et, enfin, je peux aussi vous inviter à suivre les actualités sur le site du cycle de conférences EOLE (European OpenSource & Free Software Law Event) (http://eolevent.eu/), vous y trouverez de très bonnes informations.

Un dernier mot avant de se quitter ?

Enfin, pour ceux qui s'intéressent à ses sujets, je ne peux que les conseiller la prochaine conférence EOLE, qui se tiendra le 13 octobre prochain au Parlement Européen : un programme et des intervenants de grande qualité, un lieu de prestige et des partenaires de qualité, j'en attends le plus grand bien !

Merci pour l'interview ! C'est un plaisir d'échanger autour de ces problématiques, qui deviendront de plus en plus comprises et maitrisées par tout un chacun.

Merci encore pour cette interview et bonne continuation sur la route d'un monde Open Source !

Vous pouvez retrouver toutes les informations sur la société Linagora à l'adresse suivante : http://www.linagora.com

Et vous pouvez retrouver Benjamin Jean à travers ces nombreuses contribution sur http://www.venividilibri.org


Vous pouvez télécharger l'interview à cette addresse : http://www.scribd.com/doc/16951653/Open-Source-ECM-Interview-FR-Benjamin-Jean-Linagora

Template by - Abdul Munir | Daya Earth Blogger Template