"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

Posts Tagged ‘maven’

Quelques outils pour développer une application open source: Une application open source basée sur JEE 5 et JBoss Seam: Nuxeo5

Posted by Noam sur novembre 7, 2007

Les applications Java sont souvent employées dans des environnements assez lourds. Cette situation cependant s’améliore grâce à l’utilisation d’outils open source utilisés dans d’autres projets et également grâce à la mise en oeuvre de  serveurs d’applications Java EE 5 qui implémentent les fonctionnalités extrêmement attendues telles qu’Enterprise JavaBeans 3.0 (EJB3), Java Persistence API (JPA) et JavaServer Faces (JSF).. Voulant aussi aussi parler des logiciels libres en entreprise, on s’intéressera à Nuxeo 5 qui utilise Jboss Seam en tant que composant de son framework web.

ECM (Enterprise Content Management) : la gestion de contenu (en anglais Enterprise Content Management, ECM) vise à gérer l’ensemble des contenus d’une entreprise. Il s’agit de prendre en compte les informations sous forme électronique, qui ne sont pas structurées, comme les documents électroniques, par opposition à celles déjà structurées dans les bases de données. À titre d’exemple, on va pouvoir gérer l’ensemble des informations d’un dossier client : courriers papier, courriels, fax, contrats, etc., dans une même infrastructure)

Nuxeo 5 est une plateforme complète de gestion de contenu d’entreprise, robuste et extensible, développée selon un modèle de logiciel libre par la société Nuxeo et une communauté de contributeurs, en utilisant des technologies Java EE open source.La plateforme Nuxeo couvre l’ensemble du spectre fonctionnel et technique de l’ECM :- Gestion documentaire (GED)- Travail collaboratif– Gestion des processus métiers (workflow documentaire)- Gestion de la conformité légale ou réglementaire

– Gestion des documents d’archives (Records Management)

– Gestion des contenus multimédias

Gestion des connaissances (KM)

Historique de Nuxeo 5: « …La finalisation de Java Enterprise Edition 5.0 (Java EE 5) était attendue en 2007 et Nuxeo voulait être en mesure de tirer parti de nouvelles fonctionnalités extrêmement attendues telles qu’Enterprise JavaBeans 3.0 (EJB3), Java Persistence API (JPA) et JavaServer Faces (JSF). Le projet de migration vers Java EE 5 a été lancé avec pour objectif de livrer la plateforme Nuxeo 5 au 4ème trimestre 2006..

En ce qui concerne Java open source, un seul nom s’est imposé : JBoss.
« Le choix de JBoss Application Server fut évident car il se trouve au
cœur d’un package logiciel open source dont nous avions déjà testé
plusieurs modules indispensables à notre projet, »

…Nuxeo 5 utilise:

– JBoss Cache pour fournir le stockage temporaire distribué de la plateforme ECM pour les données d’accès fréquent,

– JBoss jBPM pour fournir la gestion des processus commerciaux et les flux de travaux,

– JBoss Rules pour permettre la création de règles commerciales,

– et JBoss Seam, qui est une structure innovante de programmation de composants, pour fournir une couche Web dynamique et extensible qui unifie les fonctionnalités Java EE5 telles qu’EJB3 et JSF, ainsi que les technologies Web 2.0 telles qu’Asynchronous JavaScript et XML (Ajax).

…Enfin, en tant que fournisseur de solutions open source, Nuxeo a
apprécié le processus de développement ouvert et collaboratif de
JBoss, qui a bien accueilli la participation et la contribution des clients,
des partenaires et des particuliers. Ceci est l’antithèse du logiciel
commercial, dont le développement se fait à huis clos et qui est fourni
dans une boîte noire
. Grâce à son expérience utilisateur avec JBoss
Enterprise Middleware, Nuxeo est en mesure de contribuer à la direction
du développement de JBoss. Et pour finir, cela signifie avoir droit à la
parole et être entendu.

Autres sources:

http://www.michaelyuan.com/blog/2006/11/14/seam-without-ejb3/ (« Seam has always supported POJO components in addition to EJB3 components. You can use Seam POJOs to replace EJB3 session beans and Hibernate POJOs to replace EJB3 entity beans« )

http://www.jboss.com/products/seam ou – http://labs.jboss.com/jbossseam/ (« JBoss Seam is a powerful new application framework for building next generation Web 2.0 applications by unifying and integrating technologies such as Asynchronous JavaScript and XML (AJAX), Java Server Faces (JSF), Enterprise Java Beans (EJB3), Java Portlets and Business Process Management (BPM). Seam has been designed from the ground up to eliminate complexity at the architecture and the API level. It enables developers to assemble complex web applications with simple annotated Plain Old Java Objects (POJOs), componentized UI widgets and very little XML.« )

http://labs.jboss.com/jbossejb3/ (« Enterprise Java Beans (EJB) 3.0 is a deep overhaul and simplification of the EJB specification. EJB 3.0’s goals are to simplify development, facilitate test driven development, and focus more on writing plain old java objects (POJOs) rather than on complex EJB APIs. EJB 3.0 has fully embraced Java Annotations introduced in JDK 5.0 and also simplifies the API for CMP entity beans by using Hibernate as the EJB 3.0 Java Persistence engine.« )

http://www.michaelyuan.com/blog/about/ (« Welcome to my blog site! My name is Michael Yuan. I am a technologist, author, and open source advocate based in Austin, Texas. I currently work as a Technology Evangelist at the JBoss division of Red Hat Inc. Before joining JBoss, I was an independent software consultant in the field of mobile end-to-end solutions« ) et son flux RSS (http://www.michaelyuan.com/blog/category/seam/feed/)

http://www.redhat.com/developers/rhds/index.html (« Red Hat Developer Studio is a set of eclipse-based development tools that are pre-configured for JBoss Enterprise Middleware Platforms and Red Hat Enterprise Linux. Developers are not required to use Red Hat Developer Studio to develop on JBoss Enterprise Middleware and/or Red Hat Linux. But, many find these pre-configured tools offer significant time-savings and value, making them more productive and speeding time to deployment« )

– Learn more about Seam here, and find a list of commonly answered questions here. Or, follow this road map to get started with Seam right away! You can view a recorded Seam webinar.

http://blogs.nuxeo.com/sections/blogs/fermigier/2007_03_08_nuxeo-s-open-source-projects-trully-community-driven-hell-yes-they (« Fortunately, the short answer is “of course we are community-driven”. With Dion’s criteria, I can confidently self-grade us at A+ (or 20/20, for french-educated people). Here are the criteria and my comments)

http://www.nuxeo.org/sections/documentation/ (« Learn Nuxeo EP 5.1 basics with some video demos« )

http://www.nuxeo.org/sections/community/ (« The Nuxeo projects are open source (licensed under the LGPL) and developed with the participation of the community. We mean « participation » here as either: working as a core developer, contributor, third-party component developer (we have designed Nuxeo 5 to be very easily extensible by independent people, to create an « architecture of participation »), tests (unit tests, integration tests or functional tests) writer, Maven / Eclipse specialist, documentation writer / proofreader, etc.« )

Here is a list of what you can do to get involved with the Nuxeo 5 development:

http://maven.nuxeo.org/ (« This website is the Apache Maven site for the Nuxeo EP As stated on the nuxeo.org site, « Nuxeo 5 is an innovative, standards-based, open source platform for ECM applications. Its component-based and service-oriented architecture makes it easy to customize and extend, making developers more efficient and ultimately, happier ». For more general information about the project, we strongly suggest that you go to the Nuxeo.org website. What you will find on this site are highly technical, developers-focussed, information related to the project. These information are generated by the build tool we use (and we recommend to third-parties that which to use or extend the platform), Apache Maven, from the source code and meta-information developers put in the source. open source ECM platform. »)

http://maven.nuxeo.org/source-repository.html (« This project uses Subversionhttp://svnbook.red-bean.com/ to manage its source code. Instructions on Subversion use can be found at . »)

– Accès aux sources

  • Anonymous access

The source can be checked out anonymously from SVN with this command:

$ svn checkout http://svn.nuxeo.org/nuxeo/nuxeo-ep/trunk nuxeo-ecm
  • Developer access

Everyone can access the Subversion repository via HTTPS, but Committers must checkout the Subversion repository via HTTPS.

$ svn checkout https://svn.nuxeo.org/nuxeo/nuxeo-ep/trunk nuxeo-ecm

http://in.relation.to/Bloggers/Seam2IsOut (« …the most important thing about the new release is simply that the codebase is much cleaner. The migration to JSF 1.2 allowed us to solve many problems and remove quite a few hacks. We also repackaged built-in components according to a much more logical schema…« )

http://en.wikipedia.org/wiki/Apache_Maven (« Maven is a software tool for Java programming language project management and automated software build. It is similar in functionality to the Apache Ant tool (and to a lesser extent, PHP’s PEAR and Perl’s CPAN), but has a simpler build configuration model, based on an XML format. Maven is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project. Maven uses a construct known as a Project Object Model (POM) to describe the software project being built, its dependencies on other external modules and components, and the build order…« )

http://fr.wikipedia.org/wiki/JBoss (« JBoss Application Server est un serveur d’applications J2EE Libre entièrement écrit en Java, publié sous licence LGPL. Parce que le logiciel est écrit en Java, JBoss Application Server peut être utilisé sur tout système d’exploitation fournissant une machine virtuelle Java (JVM). Les développeurs du cœur de JBoss ont tous été employés par une société de services appelée « JBoss Inc. ». Celle-ci a été créée par Marc Fleury, le concepteur de la première version de JBoss. Le projet est sponsorisé par un réseau mondial de partenaires et utilise un business model fondé sur le service. En avril 2006, Red Hat a racheté JBoss Inc. En février 2007 Marc Fleury quitte le groupe Red Hat. JBoss Application Server implémente entièrement l’ensemble des services J2EE. Cela inclue JBoss Portal, JBoss Seam, Tomcat et les frameworks Hibernate, jBPM, et Rules. »)

http://fr.wikipedia.org/wiki/Subversion_(logiciel)  (« Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s’appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause. Le projet a été lancé en février 2000 par CollabNet, avec l’embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de version. »)

http://en.wikipedia.org/wiki/Enterprise_JavaBean (« Enterprise Java Bean is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of the several Java APIs in the Java Platform, Enterprise Edition. The EJB specification was originally developed in 1997 by  IBM and later adopted by Sun Microsystems (EJB 1.0 and 1.1) and enhanced under the Java Community Process as JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) and JSR 220 (EJB 3.0). The EJB specification intends to provide a standard way to implement the back-end ‘business’ code typically found in enterprise applications (as opposed to ‘front-end’ user-interface code). Such code was frequently found to reproduce the same types of problems, and it was found that solutions to these problems are often repeatedly re-implemented by programmers. Enterprise Java Beans were intended to handle such common concerns as persistence, transactional integrity, and security in a standard way, leaving programmers free to concentrate on the particular problem at hand.)

http://en.wikipedia.org/wiki/Java_Persistence_API (« …The Java Persistence API was defined as part of the EJB 3.0 specification, which is itself part of the Java EE 5 platform..The Java Persistence API is designed for relational persistence, with many of the key areas taken from object-relational mapping tools such as Hibernate and TopLink. It is generally accepted that the Java Persistence API is a significant improvement on the EJB 2.0 specification…Many enterprise Java developers have been using lightweight persistent objects provided by open-source frameworks or Data Access Objects instead of entity beans because entity beans and enterprise beans were considered too heavyweight and complicated, and they could only be used in Java EE application servers. Many of the features of the third-party persistence frameworks were incorporated into the Java Persistence API, and projects like Hibernate and TopLink are now implementations of the Java Persistence API…« )

http://en.wikipedia.org/wiki/Red_Hat (« Red Hat, Inc. (NYSERHT) is one of the larger and more recognized companies dedicated to open source software. It is also the largest distributor of the Linux operating system. Red Hat was founded in 1995 and has its corporate headquarters in Raleigh, North Carolina. The company is best known for its enterprise-class operating system, Red Hat Enterprise Linux and more recently through the acquisition of open source enterprise middleware vendor JBoss. Red Hat provides operating system platforms along with middleware, applications, and management solutions, as well as support, training, and consulting services. »)

Posted in AJAX, Architecture logicielle, Gestion de version, java, JEE, open source, Web applications, Web Frameworks, web2.0 | Tagué: , , , , , , , , | Leave a Comment »