About the new platformAbout the Java technology switchWhy 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:
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:
Products:
Development tools:
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 5What 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?Please see: Nuxeo EP Roadmap and Nuxeo RCP 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? > |
|
|
|