Document Actions
04/26/2006
Open Source ECM: CPS Platform 4 "YellowCake" Teaser
NUXEO-CPS4-LogicArchitecture.png
CPS 4 Architecture Overview

CPS Platform v3.4 is already the most complete Enterprise Content Management platform in the open source market. Its large feature scope offers a great choice of functional components to address the whole ECM scope. This leads CPS to be used for many different document-centric applications like paper and electronic mail management for large organizations, pure document management for the nuclear industry, collaboration platform, civil-state acts management, web content management, knowledge base management, record management, intranets, and a lot more...

Our R&D team has been working for a few months on the next major release of CPS: CPS 4 (codenamed YellowCake). The goals are to open CPS to other technologies, leverage major industry standards, enable high-end scalability and keep all the good features and technical coherence already present in the framework. We have worked a lot on prototyping and experimenting some deep improvements to the core infrastructure.

I am really excited to present and open it to the community now, after some time of raw-thinking and prototyping. I hope you will like what you will read below as much as I do. Do not hesitate to send comments on the mailing-list.

Goals

Here are YellowCake's main targets :

  • High-end scalability: 10+ million documents, 5+ terabytes of data, thousands of users in one instance.
  • Open, Integrate and Extend: enable developers to write CPS components in all major languages and technologies and allow the use of an external message broker (JMS) to plug CPS in the enterprise's information system. Creating components in plain old Python (POP :-), Java, C# or PHP that can react to events and/or control CPS will be dramatically easy. Let customer and developer choose their technologies!
  • Definitely standard-based: XMLSchemas to describe content types, JCR level2 compliant repository, JSR-168 portlets for integration in J2EE portals, XForms for content forms, web-services, RDF for relations, etc.
  • Leverage best-of-breed open source components from Apache, JBoss, Eclipse, etc.
  • Seamless migration from CPS 3: provide tools to automatically migrate configuration and content from CPS 3-based applications to the YellowCake infrastructure (thanks to CPS 3's current configuration infrastructure).

New infrastructure components

We plan to keep all good features and concepts from CPS 3 (CPSSchemas, CPSDocument, CPSRepository, CPSDirectory, CPSWorkflow, overall technical architecture, applicative components, etc.). We are just extending and improving them to embrace industry-standard and existing technologies.

  • CPSRepository: a Java Content Repository (JCR) compliant content repository that will enable CPS content to be directly accessed from a JCR level2 compliant API. Relying on the robust Apache Jackrabbit, it will allow us to share maintenance costs of this common pieces of infrastructure with the open-source community, while focusing on extending the platform for the benefit of our customers, users and developers. Note: Nuxeo has joined the JSR-283 (aka JCR 2) expert group.
  • Capsule: Capsule is the JCR-wrapping component that enables Zope and CPS to interact with a JCR content repository. Capsule can transparently store and retrieve CPS content objects into Jackrabbit (or any JCR level 2 database). It relies on Jackrabbit for content storage and retrieval.
    Capsule takes care of Zope and Jackrabbit transactions integration (handling XA transactions in Zope). From a technical point of view, Capsule is based on ZODB.Persistence and ZODB.Connection. It acts as a ZODB mount point, that provide transparent access to the JCR.
    To ease the migration and minimize impacts on existing CPS components/applications, CPSSchemas will be kept backward compatible and will load its schemas directly from Jackrabbit. Content types will be defined using XMLSchema and dynamically loaded into Jackrabbit at runtime to create NodeTypeDefinitions. To read more about Capsule technical specs, please consult the SVN repository, for now: nuxeo.capsule and nuxeo.jcr.
  • CPSRemoting: bidirectional cross-language integration service that will allow external components to interact and to provide services within the CPS Platform. CPSRemoting exposes an easy-to-use high-level API and distribute CPS events to external event services. It is the bridge between CPS and all other components of your information system. Take any C++, Java, Python, or .NET component, then write a simple interface and plug it into the CPS component registry. That is all you require to extend or to integrate CPS Platform!
  • NXLucene and CPSLuceneCatalog: NXLucene is a webservice-enabled indexing server based on Lucene that provides to any application a remote indexing and search service.
    CPSLuceneCatalog is a backward-compatible PortalCatalog/ZCatalog replacement for CPS, relaying on NXLucene. It enables any CPS 3.4 instance to instantly use the power of Lucene as its indexing/search service. Furthermore NXLucene and CPSLuceneCatalog can be used to index several CPS instances (and virtually any application) in the same indexing engine, hence providing unified search across all content-stores. Typical performances on a real-world application (the French law: +190k documents, 50+ fields/document): <5ms to get results from NXLucene and <0.15s to display results in the CPS UI. NXLucene offers XML-RPC and SOAP interfaces (and will soon provide ICE too).
    For more information, see: NXLucene website and source code (NXLucene, nuxeo.lucene, CPSLuceneCatalog).
  • CPSMessaging: CPS EventService is one of the key components of the current CPS 3 infrastructure, allowing a global publish/subscribe event system within the CPS platform. For YellowCake, we are replacing it with CPSMessaging, that extend the concept to plug CPS onto an external JMS-compliant message bus (JBoss Messaging or ActiveMQ). It will dramatically eases existing application integration. For example, thanks to CPSMessaging, you can integrate CPS with your JMS-based message bus (or ESB).
  • CPSPortlets: JSR-168 compatibility is being added to CPS portlet engine. This will enable CPS to be easily integrated into any JSR-168 compliant portal.
  • CPSAudit: a global auditing and logging service, that log all events that occur in the platform into an SQL database. CPSAudit is used, for example, to track content history, workflow actions, and user actions (replacing current CPS mechanisms). CPSAudit is designed to easily create custom reports using any graphical reporting tool (like Eclipse BIRT). CPSAudit can be leverage to create, for example, FDA / SarBox compliant audit reports.

New applicative-level components

Along these core improvements to the CPS infrastructure, new applicative level components are on the way and will be the topic of a future post (give me 5 days :-).
Here is the teaser: reporting, retention management, rich client, physical archive management, Microsoft Office integration, etc.

Join in!

Nuxeo's team and the CPS community would be delighted to get feedback and answer questions.
To get more informations and join the community:

We hope to see you there soon!

Posted by Eric Barroca @ 04/26/2006 08:15 PM. - Categories: cps, ecm, nuxeo -  0 comments
Nuxeo joins JSR-283 and the AIIM's iECM project

Following our goal in opening CPS Platform to industry standards, I am pleased to announce that Nuxeo has joined the JSR-283 (aka Java Content Repository 2) expert group and the iECM project at AIIM.

Florent Guillaume will represent Nuxeo in the JSR-283 expert group. He will bring more than 5 years of experience building content repositories, versionning systems and managing content for large organizations.

The iECM project, hosted by the AIIM, aims at creating a new international standard to ease ECM systems interoperability. The project statement says :

Interoperable Enterprise Content Management (iECM) will create an interoperability framework that enables information sharing across organizational and system boundaries.

I am delighted to represent Nuxeo in this project and work together with all major ECM software vendors to create this new interoperability standard. I really hope it will benefit to our customer and minimize the vendor-locking in this market.
At Nuxeo, we think that Open source is less about source code public availability (still, it's required) than about reducing vendor-lockin for customers benefit. Who cares about your source code if there is no documentation and if all data are locked in your repository?

Interoperability is definitely one of the key benefits of open source!

I cannot wait to see how open source and standards will transform the ECM market (when proprietary vendor will no more be able to use interfaces and content lock-in to keep their customers).

Open competition is on the way, for all ECM customers benefit... And we are working on it! :-)

Posted by Eric Barroca @ 04/26/2006 03:27 AM. - Categories: cps, ecm, nuxeo, python, web -  0 comments
Last modified: 01/31/2006 03:23 AM

Nuxeo Bloggers: Log in!
Search Nuxeo Blogs
About this blog

Eric Barroca
Executive VP of Operations
eb@nuxeo.com
Subscribe !

Subscribe to this blog (ATOM / RSS)

Subscribe in NewsGator Online

Photos and Pictures
Nuxeo - Indesko - Nuxeo 5 Project
All content is copyrighted by their author.
CPSSkins is Copyright © 2003-2006 by Jean-Marc Orliaguet. | CPS is Copyright © 2002-2006 by Nuxeo SAS.