Nuxeo contre Alfresco

Après un mois d'utilisation du logiciel de GED Nuxeo DM, le bilan est plutôt négatif. Je pensais naïvement avoir mis la main sur une application correcte (comme elle est en JAVA, elle peut tout au plus être correcte). Un pré-requis très important pour moi était la possibilité d'utiliser MySQL comme moteur de base de données. En réalité, bien que Nuxeo supporte MySQL officiellement, l'usage de ce moteur est absolument découragé. Les développeurs listent une série de raisons somme-toute valables, et qui peuvent se résumer comme ceci : il aurait fallu coder Nuxeo pour qu'il supporte les spécificités de MySQL, et on a eu la flemme. En réalité, rien ne fonctionne vraiment correctement si on utilise Nuxeo avec MySQL. À tel point qu'il ne devrait même pas être possible de choisir ce serveur de base de données dans les menus de configuration de Nuxeo. Et c'est bien ça qui me met en rogne. J'ai perdu un mois, et de nombreuses heures de travail pour un logiciel qui oscille finalement entre le "peu fiable" et le "carrément inutilisable".
Entre alors en scène Alfresco. Un logiciel concurrent, codé lui aussi en (wait for it) JAVA. Ce dernier fonctionne très bien avec MySQL, je l'ai donc installé sans tarder pour me faire une opinion sur ses capacités. Les différences avec Nuxeo sont importantes.

Sur le plan de l'installation, Nuxeo est livré tout packagé. Il utilise un tomcat "clé en main" pré-configuré et se trouve centralisé dans un répertoire unique. A contrario, Alfresco est livré sous la forme d'un fichier WAR, qu'il faut installer dans un serveur tomcat. Il faut en plus déplacer ou copier des fichiers à la main, en suivant des instructions souvent incomplètes glanées sur internet. Par contre sur FreeBSD tomcat est livré avec un script de lancement, alors que pour Nuxeo j'ai du en créer un.
Bref, sur FreeBSD Nuxeo est à peu près utilisable immédiatement après l'avoir téléchargé, alors qu'Alfresco nécessite plus de travail et que sa documentation est déficiente à ce sujet.

Sur le plan de la configuration initiale, Nuxeo est aussi en tête. Une fois l'application lancée, on s'y connecte, et on personnalise les réglages via l'interface web directement. Du côté d'Alfresco, rien n'est prévu pour faciliter la configuration au moment du déploiement. Il faut éditer un fichier de configuration à la main dans le quel on indique des chemins de fichiers, des informations de connexions pour le serveur de bases de données, etc. De même seul Nuxeo prévoit un menu d'administration complet gérant entre autres choses les patch de mises à jour, et le redémarrage de l'application.

Mais tout ça n'est pas grand chose. Finalement, on ne passe pas son temps à installer et configurer une application. La différence se fait sur l'usage.

En terme d'ergonomie, c'est Nuxeo qui remporte la palme. L'interface est enrichie de fonctions en AJAX, qui permettent par exemple de déplacer un document d'une catégorie à une autre par glisser-déposer, ou bien d'envoyer des documents directement à partir de votre ordinateur vers Nuxeo. Alfresco quant à lui est très en dessous. Tout d'abord il est livré sous la forme de deux applications Alfresco d'un côté, et Share de l'autre. La première se rapproche un peu de Nuxeo DM, mais sans l'AJAX. Pour faire la moindre choses il faut multiplier les clics, c'est assez pénible. La seconde, Share, est plutôt orientée utilisateur final, publication, média "sociaux". Elle propose l'import de documents par glissé-déposé comme Nuxeo, mais elle manque de sobriété. Les documents sont présentés par défaut sous forme de liste de grosses icones aussi inélégantes qu'encombrantes. De nombreuses actions peuvent être faites aussi bien dans Alfresco que dans Share, mais pas toutes. Par exemple je peux utiliser des noms de tags dans le champs de recherche de Share, alors que cela ne fonctionne pas dans Alfresco. Finalement quand on veut faire quelque chose, il faut d'abord se souvenir dans la quelle des deux applications c'est possible (et le plus simple) et s'y connecter. C'est juste n'importe quoi.

La recherche des documents est aussi une dimension importante de la GED. Elle repose sur une indexation du contenu des documents, sur des métadonnées, sur une organisation. J'ai tendance à considérer que l'organisation physique des documents ne doit pas trop peser dans la balance. Il n'y a qu'une manière de classer une facture médicale. Doit-on la ranger dans le dossier "facture", dans le dossier "facture" du dossier "santé" ou dans le dossier "santé" du dossier "facture" ?
Je préfère de loin un système de tags ou de catégories qui me permette d'accoler plus d'une étiquette à un document, et surtout de retrouver tel ou tel document en combinant ces étiquettes dans un champ de recherche. Les tags dans Nuxeo sont assez accessibles. On en ajoute facilement, mais je ne peux pas chercher un document en tapant un ou plusieurs tags dans le champs de recherche. Les tags sont très bien cachés dans Alfresco, et ils sont inutilisables par défaut. A contrario, sans Share les tags sont accessibles, et on peut les utiliser facilement pour une recherche. Malheureusement, il est alors impossible de préciser qu'on souhaite chercher uniquement dans les tags, ce qui réduit l'intérêt de la chose.

La gestion des sauvegardes d'un entrepôt de données est primordiale. Nuxeo étant par défaut entièrement inclus dans un répertoire unique, il n'y a que deux choses importantes à sauvegarder pour que l'application puisse repartir rapidement en cas de désastre : le répertoire de l'application, et la base de données. J'ai déjà un script qui sauvegarde automatiquement mes bases MySQL, mais comme expliqué plus haut, MySQL n'est pas une option. Garder Nuxeo impliquerait donc d'apprendre à gérer des sauvegardes PostgreSQL (dump, rétention, archivage, et restauration), en plus de l'administration courante.
Alfresco est fragmenté, et nécessite un peu plus de préparation pour gérer les sauvegardes, en contrepartie, son support de MySQL m'assure une sauvegarde fonctionnelle immédiatement, et des archives que je sais restaurer sans lire le manuel. Alfresco bénéficie aussi d'un mécanisme de réplication, ce qui permet de bénéficier d'un second serveur de secours (ou de proximité) en cas de panne du serveur habituel.

Au bout du compte, j'ai l'impression que Nuxeo reste une solution intéressante. Ses points faibles ne sont pas si dramatiques, même si pour moi une bonne recherche par tags est primordiale. Alfresco propose des fonctionnalités appétissantes comme la réplication de serveur, une interface orientée utilisateur permettant la recherche par tags (Share). Mais le manque de glisser-déposer et glisser-déplacer, ainsi que le très grand nombre de clics pour la moindre action sont de vrais handicaps dans la phase de remplissage.
Malheureusement pour Nuxeo, je n'ai pas une minute à consacrer à l'apprentissage de PostgreSQL, ce qui laisse une chance à Alfresco de se faire une place sur mon serveur. Comme la migration d'un système à l'autre est totalement illusoire, voire impossible, je vais me laisser encore le temps de la réflexion, avant de charger et classer des centaines de documents dans l'un ou l'autre.

À lire aussi :

11 comments

  1. J'utilise alfresco en version 4.0 et voici quelques remarques
    Il existe une version tout packager de l'outil !

    Par contre je suis totalement d'accord sur la partie configuration qui se fait via l'édition de fichier ! Cette "fonctionnalité" est réservée à la version payante.

    L'interface "alfresco/explorer" est une ancienne interface que nous n'utilisons pas mais il est possible d'y acceder depuis la partie "share" directement !

  2. Oui, mais non. La version "packagée" est un installeur qui ne fonctionne que sur un nombre limité de plateformes. En tout cas, le binaire d'installation Linux ne fonctionne pas sur FreeBSD.

  3. Ce qui n'a pas été mentionné, c'est que le code entier de Nuxeo est Open Source (ce n'est pas le cas d'Alfresco). En outre, Nuxeo suit un modèle OSGI qui permet une grande modularité et des webservices en REST sans égal.

  4. Ho, il y'a des tonnes de choses qui n'ont pas été mentionnées. Je n'ai testé ces deux produits qu'à l'aune de mes propres besoins. Je ne suis pas en mesure de faire une comparaison exhaustive. Typiquement, que le code soit totalement open source ou pas n'a aucune influence pour mes usages. Mais c'est certains que pour des gens qui veulent coder eux-même des compléments pour leur GED, tout ce que tu indiques est important. Moi je cherche un produit clé en main ;)

  5. J'avoue faire difficilement le lien entre la première phrase de l'article ("Après un mois d'utilisation du logiciel de GED Nuxeo DM, le bilan est plutôt négatif") et le reste de l'article.

    Donc pour résumer, vous pensez que Nuxeo est meilleur qu'Alfresco dans les domaines suivants :
    - installation
    - configuration
    - ergonomie
    - sauvegardes de l'entrepôt de données

    ... et pourtant vous jugez le bilan de Nuxeo "négatif" (première phrase de l'article) uniquement parce que ce dernier fonctionne mal avec MySQL ?

  6. Pour faire court, ce n'est pas parce que Nuxeo me semble un peu meilleur qu'Alfresco sur certains points, que je suis satisfait par ce produit. Et je pense que la conclusion de l'article est assez claire :)

    Et puis de mon point de vue, Alfresco remporte le point sur les sauvegardes, puisque j'ai déjà tout ce qu'il me faut pour sauvegarder les bases MySQL automatiquement, et qu'Alfresco permet de créer un serveur répliqué ce qui évite la période de downtime en cas de panne.

    En tout cas, suite à cette comparaison, je n'ai toujours pas tranché entre garder Nuxeo et apprendre à administrer PosgreSQL, ou garder Alfresco et me passer des avantages ergonomiques de Nuxeo. Le choix n'a vraiment rien de trivial...

  7. MySQL est complètement supporté, il faut simplement être au courant de ses limitations. J'ai rajouté un paragraphe à la page Why avoid MySQL? à ce propos :

    However if you really want to use MySQL you can, just be aware of the limitations (mainly fulltext, datetime precision, size limitations if you define your own schemas, and poor optimizer performance).

  8. Je dois bien dire que mes déboires avec Nuxeo/MySQL vont largement au delà de ces "petits désagréments". Je ne sais pas à quoi ils sont dus, mais force est de constater que Nuxeo a fait "semblant" de marcher correctement, et qu'en fin de compte des tas de choses n'ont pas donné satisfaction. Si j'ai l'occasion, je le relancerai Nuxeo, et je ferai un "webcast" du fonctionnement coté utilisateur. Mais pour le moment je suis débordé, donc je ne promets rien :)

  9. Je suis stagiaire et on m'a demandé de choisir un outil de GED open source pour la société. J'ai trouvé votre article extrémement riche et interessant, je vais sûrement opter pour Nuxeo et apprendre PostgreSQL.

  10. Attention, Amine, c'est un vieil article et les deux plateformes ont sans doute pas mal évolué. Aussi quand on choisi un outil pour d'autres personnes il convient de faire le tour de leurs besoins, d'évaluer leur capacité d'adaptation et le portage politique nécessaire pour faire adopter telle ou telle solution. Les problèmes techniques sont tout à fait secondaires (contrairement à un choix "perso" comme c'est mon cas ici).

    En tout cas, merci pour le retour.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.