Nuxeo passe a Java
Article du site Nuxeo
Nuxeo est l'éditeur de CPS, plateforme d'ECM Open Source leader de son
marché. Ce succès, depuis 6 ans, repose sur le serveur d'applications
Zope et le langage de programmation Python.
En Février 2006, nous avons commencé à intégrer des composants Java
dans la plateforme CPS et avons commencé à évaluer les options
technologiques possible pour les versions majeures futures de la
plateforme. Après environ deux mois de revue, tests, prototypage et
intense réflexion, nous avons décidé d'amorcer une migration complète
de notre socle technologique vers les technologies Java.
Naturellement, nous mettons ce changement à profit pour améliorer
profondément l'architecture technique et la couverture fonctionnelle de
notre plate-forme. En plus de cette migration, CPS change de nom et
devient "Nuxeo". La nouvelle plate-forme s'appellera donc Nuxeo 5 et
sera composée de :
- Nuxeo Enterprise Platform (EP) 5, destiné à la création solutions ECM pouvant supporter de très grands volumes de données et d'utilisateurs concurrents.
- Nuxeo Rich Client Platform (RCP) 5, destiné à créer des applications métiers d'ECM pour le poste de travail.
Nuxeo EP 5 remplace donc CPS tel que vous le connaissez.... Nous de l'abandonnons pas, nous le propulsons au niveau supérieur !
Le changement pour Java
Pourquoi ne pas continuer avec Zope?Quand nous avons choisi Zope, en 2000, les technologies Web étaient encore balbutiantes. A ce moment, Zope fournissait à la fois les meilleurs outils et l'approche la plus intelligente en matière de développement d'applications Web. La plate-forme Java, quant à elle, était lente, rigide et n'était pas adaptée au développement d'applications Web dynamiques. De plus, aucune bibliothèque, aucun framework et aucun serveur d'applications libres de niveau professionnel n'étaient disponibles pour Java. Grâce à son approche orientée objet intégrée et innovante, Zope nous a permis de développer des applications d'ECM attrayantes, avec un niveau de qualité et une rapidité de développement sans comparaison avec les autres frameworks. CPS est toujours la solution d'ECM libre la plus complète sur le marché, et peut se mesurer sans complexes aux solutions propriétaires (tel que Documentum ou Filnet).
Depuis deux ans, notre activité s'est développée, tout comme les exigences de nos clients. Nos solutions doivent s'adapter parfaitement à leurs systèmes d'information globaux. Elles doivent également fournir des applications critiques qui doivent allier performances, haute disponibilité, et gestion d'importants volumes de données (> 5 To). Pour atteindre ces objectifs, nous avons considérablement amélioré l'infrastructure Zope. Avec CPS 4, nous pensons toutefois avoir atteint les limites de Zope, à tel point que nous avons basé sur Java deux de ses composants les plus cruciaux, le référentiel de contenu et le moteur de recherche (respectivement basés sur Jackrabbit et Lucene).
Python/Zope reste une excellente combinaison et Zope 3 la rend encore plus attrayante. Mais les ressources de développement et la communauté restent malheureusement limitées. Nous ne pouvons pas travailler à la fois sur l'infrastructure technologique (serveur d'application, base de données objet, outils de programmation et bibliothèques) et sur les applications. Notre activité consiste à imaginer, développer, construire et assurer la maintenance d'une plate-forme d'ECM de nous consacrer entièrement à notre métier : l'infrastructure ECM et les applications d'ECM. Zope n'étant plus adapté à ce nouvel environnement, nous devions trouver une nouvelle infrastructure pour nos produits.
L'utilisation de Python comme principal langage de développement et l'appartenance à sa communauté vont nous manquer, mais notre but est avant tout de satisfaire nos clients et d'atteindre l'excellence. En effet, nos clients et nos partenaires nous ont rapporté avoir d'importantes difficultés à trouver ou former des développeurs Python/Zope compétents. CPS a du succès parce que c'est le meilleur logiciel de sa catégorie. Pour continuer à produire les meilleurs logiciels nous devons changer de technologie.
CPS 4 a été testé et approuvé avec plus de 3 To de données (soit 3 millions de documents), ce qui est suffisant pour la plupart des déploiements d'ECM. Mais nous voulons aller encore plus loin et être capables de nous intégrer toujours mieux dans l'ensemble du système d'information.
Pourquoi la plate-forme Java ?
Lors de l'évaluation des produits et des technologies disponibles pour la prochaine génération de nos solutions, nos principaux critères étaient :
- Une technologie reconnue et flexible
- Un support des standards industriels
- Une importante communauté d'éditeurs et de développeurs
- Des outils de développement efficaces
- Une infrastructure extensible et robuste
- Réalisation d'interfaces qui ne se limitent pas au navigateur
- Un processus communautaire d'amélioration et une ouverture importante à l'open source
Nous nous sommes intéressés aux autres frameworks Web de Python, mais nous avons rapidement réalisé qu'ils restaient largement inférieurs à Zope en matière d'utilisation professionnelle et de fonctionnalités nécessaires à nos développements d'ECM.
Nous nous sommes alors tournés vers la plate-forme Java. Ayant déjà choisi Eclipse RCP comme socle pour nos développements client riche, nous avions déjà une première expérience de cette plate-forme.
La découverte des dernières évolutions de la plate-forme Java s'est avérée excitante et intéressante...
Tout d'abord, les innovations apportées au langage dans sa version 5 (SE et EE) apportent une grande flexibilité aux développeurs (annotation, EJB3, etc.). De plus, les technologies d'entreprises (EJB3, JPA, JMS, JSF, etc.) étaient très séduisantes. Nous avons alors commencé à « creuser » dans le monde Java pour trouver les pièces dont nous avions besoin et les tester.
Nous devions nous assurer que nous n'allions pas perdre la flexibilité que nous avait apporté Python. La vitesse de développement devait également être au moins aussi rapide qu'avec Python, si ce n'est plus rapide encore. Les puissants IDE disponibles (Eclipse, NetBeans?, IDEA...) et les nouvelles technologies comme l'AOP, EL, OSGi, EJB3 et le scripting de la JVM nous ont confortés dans notre choix. La disponibilité d'une énorme bibliothèque d'excellents logiciels libres pour la plate-forme Java nous a rendu encore plus confiants. Pour être honnête, si les plus grands fans de Python de notre équipe étaient un peu sceptiques au début, ils ont tous été rapidement convaincus de la qualité de la plate-forme Java et des technologies et produits associés.
Nous sommes tous vraiment satisfaits de ce changement, même si le travail qu'il demande est important.
Pourquoi JBoss JEMS comme principale plate-forme cible ?
JBoss JEMS est le leaders des serveurs d'application Java EE et, jusqu'à présent, le seul à supporter toutes les nouvelles fonctionnalités de Java EE dont nous avons besoin pour développer Nuxeo 5 (principalement EJB3 et JSF). De plus, le support de JBoss Inc., qui est maintenant une division de Red Hat, en matière d'infrastructure middleware nous permet d'offrir à nos clients un support intégré de grande qualité.
Quelques produits JBoss indépendants, comme Seam, JRules et jBPM, sont également des éléments clefs de notre architecture. Bien qu'ils puissent être déployés sur d'autres plateformes J2EE, nous pensons qu'il est plus naturel, dans un premier temps, de les utiliser audessus de JBoss AS.
Nuxeo a obtenu la certification « JBoss Certified Technology Partner ».
Allez-vous supporter les autres plate-formes Java ?
En deux mots : bien sûr !
La réponse détaillée est plus compliquée que cette réponse en deux mots. Nous sommes convaincus que JBoss AS est un excellent produit et un excellent serveur d'application. Nous pensons également que les outils de JBoss sont très bien positionnés sur leur marché. C'est pourquoi nous avons choisi JBoss JEMS comme principale plate-forme cible.
Par ailleurs, nous maitrisons bien le modèle OSGi (connaissance acquise lors de nos développements au-dessus d'Eclipse RCP) et apprécions ce système de package ainsi que le système de plugins d'Eclipse.
Nous avons conçu notre nouvelle plate-forme, Nuxeo 5, de telle sorte qu'elle soit indépendante du serveur d'applications et du modèle de package supporté par Java EE. (Par exemple, les produits sur lesquels nous basons notre solution peuvent tous être exécutés sur Glassfish, l'implémentation JEE5 de référence développée par Sun.)
Pour à la fois être indépendant du serveur d'applications utilisé et obtenir une grande extensibilité, nous avons imaginé et créé Nuxeo Runtime, un puissant framework de gestion des composants exécuté au-dessus d'une plate-forme hôte. Nuxeo Runtime consomme des bundles OSGi ou des descripteurs XML et les déploie dynamiquement sur la plate-forme hôte (JBoss, Eclipse Equinox, JonAS d'Objectweb, Geronimo d'Apache, etc. Il vous su"t d'écrire un autre adaptateur pour supporter une nouvelle plate-forme). Les composants de Nuxeo sont ainsi dynamiquement adaptés aux composants natifs de la plate-forme hôte (comme les MBean, les services OSGi, etc.) et vous font profiter de toutes les capacités de la plate-forme sous-jacente.
Par ailleurs, Nuxeo Runtime fournit un processus unique de création d'applications extensibles par plugins. Il offre un puissant mécanisme d'extension qui peut être utilisé par n'importe quel composant pour étendre les composants existants et offrir aux autres des points d'extension. Le système d'extensions de Nuxeo Runtime apporte à Java EE la puissance des points d'extension (largement plébiscité pas les développeurs de plugins Eclipse, par exemple). Vous évitez ainsi la tâche fastidieuse de mettre en place des compilations et déploiements spécifiques à chaque projets ou application cible grâce à une décomposition complète en composants et une importante extensibilité de vos applications.
Pour les fans d'OSGi : nos composants sont déjà conformes au modèle OSGi. Nous serions ravis de travailler sur un serveur d'applications OSGi comme Geronimo, JOnAS ou même directement Equinox. N'hésitez pas à nous contacter si vous souhaitez donner un coup de main ! :-)
Pour plus d'informations, consultez le projet Nuxeo Runtime.
Quels sont les produits et les technologies utilisés par Nuxeo 5 ?
Voici la liste des technologies et des produits utilisés nativement par notre nouvelle plateforme. Les technologies :
- Java EE 5 et OSGi (pour les composants POJO)
- JCR (JSR-170) comme API interne vers le référentiel documentaire
- EJB 3 pour les composants Java EE
- Java Server Faces comme couche de présentation et d'interface utilisateur
- JMS comme protocole de messaging
- Java Rules API (JSR-94) pour l'intégration des moteurs de règles
- XMLSchema comme langage de définition de schémas de contenu
- Portlets (JSR-168) pour l'intégration aux portails d'entreprise
- JCA pour l'intégration à des fournisseurs de données
- JBoss AS comme serveur d'applications cible
- JBoss Seam comme framework d'applications Web (et support AJAX)
- JBoss jBPM comme moteur de gestion des processus métier
- JBoss Cache comme système de cache
- Apache MyFaces? comme moteur JSF
- Apache Lucene comme moteur d'indexation
- Apache Jackrabbit pour le stockage du contenu
- PostgreSQL 8 et MySQL 5 comme bases de données relationnelles cible par défaut
- Eclipse IDE 3.2 avec le plugin JBoss IDE
- IntelliJ IDEA et NetBeans? comme EDI secondaires
- Maven
- JUnit
Est-ce que le business model de Nuxeo va changer ? Estce que Nuxeo 5 ne sera plus libre ?
Certainement pas !
Nous sommes éditeurs de logiciels libres. Nous créons, développons, commercialisons et assurons le support d'une plate-forme d'ECM libre, avec l'aide d'une communauté étendue de co-développeurs et de contributeurs, et nous vendons à nos clients ou partenaires des services afin de les aider à utiliser la plate-forme dans des projets concrets.
Ce modèle a rencontré le succès depuis que nous avons créé CPS, en 2002. Nous n'avons aucune raison de le changer.
Est-ce que vous abandonnez CPS ?
Non.
Nuxeo 5 est « CPS 5 ». Nous changeons le nom de la plate-forme pour avoir une marque plus distinctive, et nous changeons de technologie sous-jacente pour mieux répondre aux besoins des développeurs et de nos clients. Ce changement reste dans la continuité de nos objectifs et de nos produits précédents, mais dans le but de les rendre plus ambitieux et de les améliorer.
Nuxeo 5
Qu'est-ce que Nuxeo 5?Nuxeo 5 est la plate-forme d'ECM nouvelle génération de Nuxeo. Elle est composée de : Nuxeo Enterprise Platform (EP) et Nuxeo Rich Client Platform (RCP).
Nuxeo EP 5 est la plate-forme côté serveur qui permet de développer des solutions d'ECM accessibles depuis un navigateur ou à partir d'un client riche. Nuxeo EP 5 remplace CPS Platform tel que vous le connaissez.
Nuxeo RCP 5 est un ensemble de composants pour Eclipse RCP et Microsoft O"ce 2003, conçu pour créer des applications d'ECM en client riche.
Nuxeo EP et Nuxeo RCP sont basés sur Nuxeo Runtime, un framework de gestion et de déploiement de composants qui permet d'être indépendant de la plate-forme utilisée, et qui allie extensibilité et architecture orientée vers les services, et Nuxeo Core, un noyau de gestion de contenu qui peut être embarqué et fournit les services de bases de l'ECM : gestion des types de contenu, gestion des versions, etc.
Pour plus d'informations : Nuxeo 5.
Sous quelle licence Nuxeo 5 est-il publié ?
Nuxeo 5 est publié selon les termes de la licence libre LGPL (GNU Lesser General Public License de la Free Software Foundation, fondation pour le logiciel libre). Les composants développés sous l'égide de la fondation Eclipse et la fondation Apache utilisent l'Eclipse Public License et l'Apache License.
Une des raisons du choix de la LGPL est que notre licence doit être compatible avec la licence EPL d'Eclipse, afin de pouvoir embarquer nos composants dans Eclipse. C'est le cas de la LGPL (qui par ailleurs est la licence de JBoss), mais pas de la GPL.
Nuxeo 5 est-il libre ?
Bien sûr ! Tous les logiciels de Nuxeo sont des logiciels libres (OSS), soumis à des licences agréées par l'Open Source Initiative et la Free Software Foundation.
Nuxeo 5 est régit par la licence LGPL (principalement pour pouvoir l'utiliser avec des composants issus de la Eclipse Foundation).
Où peut-on consulter la feuille de route ?
Consultez les pages suivantes : Nuxeo Roadmap.
Où puis-je avoir plus d'information ?
Vous trouverez plus d'informations sur Nuxeo 5 sur le site Web de Nuxeo et sur le portail communautaire. N'hésitez pas à vous inscrire aux listes de diffusion et à nous faire part de vos remarques.
Nous apprécions toujours beaucoup avoir des retours !
Cool ! Je voudrais participer ! Comment faire ?
Votre participation est la bienvenue !
Le modèle de développement de Nuxeo est ouvert. Vous êtes bienvenu si vous souhaitez participer, en contribuant au développement de la plate-forme elle-même, en développant des composants tiers, en testant l'application, ou en écrivant de la documentation. Il vous suffit de vous inscrire sur la liste de diffusion et de commencer ! :-)