About the new platform

About the Java technology switch

Why is Nuxeo switching from Zope for its new developments?

Back in 2000, when we made the choice of Zope, web technologies were in their infancy. At this time, Zope provided the best tools and the smartest approach for web application development. The Java platform was pretty slow, rigid, not really suited to highly dynamic web applications and no enterprise-grade open source libraries, frameworks and applications servers were available for it. Zope, with its innovative integrated and object-oriented approach, has allowed us to create compelling Enterprise Content Management applications at a speed and with a quality that would have been unreachable with another frame-work. CPS is still the most complete Open Source ECM solution, able to compete with the major proprietary vendors like Documentum.
For the last two years, our business has grown and our customers’ requirements too. Our software must fit seamlessly in their global information systems. They also need to deliver critical applications that can offer concurrently high-performances, high-availability and manage huge data volume (> 5 TB). To achieve these goals, we improved the Zope infrastructure a lot, but feel we reached its limit with CPS 4, to the point where two of its most critical components, the content repository and the search engine, are actually Java-based (respectively, Jackrabbit and Lucene).
Python/Zope is still great, and Zope 3 is making it more compelling. But the development resources and the community are still limited. We are not able to work on all stacks: technology infrastructure (application server, object database, programming tools and libraries) and applications. Our business is to imagine, create, build and support an innovative, powerful and flexible ECM platform. This is why we decided to focus entirely on our business stack: ECM infrastructure and ECM applications. We had to find a new infrastructure platform for our products, because Zope was not adapted for this new environment anymore.
We will miss using Python as our main development language, and being part of its community, but our main goal is customer satisfaction and business excellence (our customers and partners also reported important difficulties to hire or train skilled Python/Zope developers). We need to change our technology to achieve our goals.
We have tested and approved CPS 4 with more than 3TB of live data (for 3 millions documents). It is enough for most ECM deployments but we want to go further and be able to fit more nicely with the rest of the information system.

Why the Java Platform?

When evaluating products and technologies for the next generation of our software, the main criteria were:
  • Flexible and proven technology
  • Industry standard support
  • Large community of providers and developers
  • Efficient development tools
  • Robust and scalable infrastructure
  • Not limited to web-based applications
  • Friendly to open source and community-driven improvement process
We had a look at other Python web frameworks, but quickly figured out that they were behind Zope in terms of enterprise-readiness and features that we needed to support our ECM developments.
We started to evaluate the Java Platform. We already had some experience in this area, since we have chosen Eclipse RCP as the framework for our rich client developments. Discovering the recent evolutions of the Java Platform was exciting and interesting. First, we found that innovations brought by Java 5 (SE and EE) to the language provided a lot of value and flexibility for developers (annotations, EJB3, etc.). Moreover, enterprise-related technologies (EJB3, JPA, JMS, JSF, etc.) were really compelling and we started to dig in the Java’s world to found pieces we would need.
We wanted to be sure that the flexibility Python had given us would not be lost, and that our development speed would be as fast as with Python, if not faster. Powerful IDEs are available (Eclipse, NetBeans, IDEA...) and great new technologies like AOP, EL, OSGi, EJB3 or JVM Scripting confirmed our choice. Moreover, the huge library of excellent open source software available for the Java platform made us even more confident. To be honest, even if the hard-core Python fans in our team were a bit skeptical at first, they were all quickly convinced by the quality of the Java platform and related technologies/products.
We are all really happy of this switch, even if the work is huge.

Why JBoss JEMS as the main target platform?

JBoss JEMS is the leading open source Java EE application server in the corporate world today and the only one at this point to support all the recent Java EE features we need for the development of Nuxeo 5, mainly: EJB3 and JSF. Moreover JBoss Inc. (now a division of Red Hat) can provide support for the middleware infrastructure at the level we require so that we can offer an integrated high-level support to our customers.
Some JBoss third-party products, like Seam, JRules and jBPM are also key parts of our architecture. While they should be running on other J2EE platforms, we believe it to be more natural, in a first phase, to use them on top of JBoss AS.
Nuxeo is a JBoss Certified Technology Partner.

Will you support other Java platforms?

Short answer: Of course!
The detailed answer is more complex that this. We think that JBoss AS is a great product and a great application server. We also think that the tools offered by JBoss are great in their market. This is the reason why we chose JBoss JEMS as our main target platform.
From another point of view, we have an important experience with OSGi (when developing for Eclipse RCP) and we love the OSGi component model in addition to Eclipse’s extensible plugin system.
We designed our new platform, Nuxeo 5, to be independent from the application server and the component model supported by Java EE (and the products we choose to base our software on are all already running on Glassfish, the reference JEE5 implementation from Sun).
To achieve application server independence and deep extensibility we wrote Nuxeo Runtime, a powerful component management framework running on top of a host platform. Nuxeo Runtime consumes OSGi bundles or XML descriptors and deploys them dynamically to the host platform (JBoss, OSGi, Objectweb's JOnAS, Apache's Geronimo, etc. — you just need to write another adapter to support a new platform). Nuxeo components are dynamically adapted to the native host platform components (like MBean, OSGi services, etc.) giving you the full benefits of the underlying platform's capabilities.
Moreover, Nuxeo Runtime provides a unique way to create extensible applications through plugins. It features a powerful and flexible extension mechanism that can be use by any component to extend existing ones and offer extension points to others. Nuxeo Runtime's extension system brings to Java EE the power of extensions points, saving you from the pain of specific builds and deployments and allowing a great componentization / extensibility of you applications.
For OSGi fans: our components are already OSGi-compliant. We would love to work to support an OSGi application server like Geronimo, JOnAS or even directly Equinox. Please contact us if you are willing to help.
For more details: see the Nuxeo Runtime Technology white paper (to be published around mid-September, 2006).

What technologies and products power Nuxeo 5?

Here is the list of technologies and products we use initially in our new platform. Technologies:
  • Java EE 5 and OSGi (for POJO components)
  • JCR (JSR-170) as the internal repository API
  • EJB 3 as server-side only components
  • Java Server Faces as the UI and presentation layer
  • JMS as messaging protocol
  • Java Rules API (JSR-94) for rule engines integration
  • XMLSchema as content type/schema definition language
  • Portlets (JSR-168) for portal integration
  • JCA for data provider integration
Products:
  • JBoss AS as the target application server
  • JBoss Seam as web application framework (and AJAX support framework)
  • JBoss jBPM as business process management engine
  • JBoss Cache as cache system
  • Apache MyFaces as JSF engine
  • Apache Lucene as indexing engine
  • Apache Jackrabbit as content storage
  • PostgreSQL 8 and MySQL 5 as default target RDBMS
Development tools:
  • Eclipse IDE 3.2 with JBoss IDE plugin
  • IntelliJ IDEA and NetBeans as secondary IDEs
  • Maven
  • JUnit

Does that mean that Nuxeo's business model is going to change? That your software won't be open source anymore at some point?

Absolutely not!
We are an open source software vendor. We create, develop, market and support an open source ECM platform, with the help of an extended communities of co-developers and contributors, and we sell to customers or partners services to help them use the platform in actual projects.
We have been successful with this business model since we have started creating CPS in 2002. We have absolutely no reason to change this model.

Does that mean that you're abandoning CPS?

No.
Nuxeo 5 is “CPS 5”. We're changing the name for branding reasons, and we're changing the underlying technology to better address developers and customers needs, but what we are doing is in the continuity of our previous goals and products, only more ambitious and better.

About Nuxeo 5

What is Nuxeo 5?

Nuxeo 5 is the next-generation ECM platform from Nuxeo. It has two parts: Nuxeo Enterprise Platform (EP) and Nuxeo Rich Client Platform (RCP).
Nuxeo EP is the server-side platform to build ECM solutions accessible from the browser or from a rich client. It’s the replacement of CPS Platform as you know it. Nuxeo RCP is a set of components for Eclipse RCP and Microsoft Office 2003, designed to create rich client ECM applications.
Both Nuxeo EP and Nuxeo RCP are based on Nuxeo Runtime, a component management and deployment framework that provides platform independence, extensibility, and a service oriented architecture, and Nuxeo Core, an embeddable content management kernel that provides the needed basic services: content types management, versionning, etc.
For more information: Nuxeo 5 Overview.

What is the license?

Nuxeo 5 is licensed under the business-friendly open source LGPL (FSF’s GNU Lesser General Public License). Some components (those that are developed jointly with the Eclipse Foundation and the Apache Foundation) will use the Eclipse Public License and the Apache License.

Is it Open Source?

Of Course! All software from Nuxeo is pure Open Source Software (OSS), governed by OSI- and FSF-approved licenses.
More information: Nuxeo’s Open Source Approach.

Where is the roadmap?

I can’t wait to see more! Where can I get more information?

More information on Nuxeo 5 is available on Nuxeo website and on the community portal. Do not hesitate to subscribe to mailing-lists and give feedback.
We like a lot hearing about you!

Cool, I'd like to participate! How can I help?

You are very welcome!
The Nuxeo 5 development model is open. You are really welcome if you'd like to participate, either as a core developer, a third-party component developer, a tester, or a documentation writer. Join the mailing-list and start! :-)
< Introduction Previous ı Next What about CPS? >
contact_us_side_en.gif
macaron_iloveecm_en.gif
nuxeo_connect_en.gif
Nuxeo 5.1 alias Memphis
Nuxeo Phone: +44 207 043 7933 | Email: contact@nuxeo.com
11-15 Betterton Street, London, WC2H 9BP, United Kingdom
Disclaimer | © 2007 Nuxeo. All rights reserved.