Here, at Nuxeo, we are thinking for a long
time at desktop applications for CPS. Why in this new full web,
ajaxified, world ? :-) Well, I think that for many applications and
features, a desktop application is still needed.

Here is some examples of features / requirements :

  • Disconnected client to work in the train, in the plane, on the beach

    • read, annotate, search in a document repository

    • use electronics forms when working outside the office

  • Deep integration with legacy desktop applications (what about having
    OpenOffice running inside a dedicated client to improve cooperative

  • Strong security : document signing, workflow action signing, etc.

  • Advanced text edition : interactive diff / merge

  • Advanced editors (photos, rich media, rich documents, etc.)

  • Reduce server loads doing many computation on the client

  • many, many more ideas :-)

We started to work, as some customers asked, on a desktop application.
One point was clear: limit the burden of deployment!

Rich Client ?

We studied deeply Flash, Mozilla
and Eclipse Rich Client Platform

Flash was not standalone enough and too tied to graphics.

Mozilla seemed fine, but the
current framework is too young (we were told by a proeminent Mozilla
developer to wait for Mozilla 2.0 before investing on the technology) and
not enough adapted to generic application, plus it needed us to write in C++
and had some fear about cross-platform compilation.

Eclipse RCP came then and we
quickly discovered that it proposes an amazingly "sexy" framework,
extensible, component-oriented and very well designed. But, besides those
technical considerations, we mainly found that Eclipse RCP proposes a new approach
and a new paradigm for desktop applications... very user-centric!

Eclipse RCP offers new concepts
(at least, for me) for desktop applications, maybe inspired by webapp :
actions, views, portlets, workspaces, perspectives, etc. Eclipse RCP comes,
of course, also with a lot of interesting points for deployment and
development: automatic on-line software update, lot of plug-ins, real
cross-platform compatibility, SWT (a very fast graphic toolkit for Java),

Perspectives ?

I think the most noticeable concept of Eclipse RCP to create applications
for user is the concept of Perspective. A perspective is a view of your work
space: portlet arrangement, toolbar, menu. It allows to offer several
different ways to present the application, depending on the usage context.
For example, you can have a perspective to edit a document, where the work
space is document-centric, and a perspective to browse the document
repository, where the work space is centered on navigation and searching.
Moreover, users can define very easily new perspectives, dragging and
dropping or adding portlets and then ask the application to save this

In short, it allows to adapt the application to user activity and working
habits. It's the first time I am aware of a desktop framework offering this
feature. Perspectives are designed to build user-centric / activity-centric
applications and that is what users like, when you place them in the heart
of the application usage paradigm. ;-)

Real-life projects

We now are working two projects based on CPS and Eclipse RCP. CPS is used as the document / content
manager and Eclipse RCP as the
framework to build a dedicated desktop application (let's call it Rich
Client to CPS). The Rich Client connect offers UI and local features. CPS offers document management core.
Best of both worlds ! ;-)

The first project is for AFP (French Press Agency) and
aims at building the new news items management back-office. In this project,
the Rich Client is the only CPS UI
the user sees. The Rich Client is used by journalists to read internal news
feeds, then write new documents, add / edit photos, manage the workflow and
the output feed (rubrics, etc.). CPS, stores documents, manage
permissions, serve the search, etc.

The second project is for the French
Institute of Statutory Auditors
(Compagnie Nationale des Commissaires
aux Comptes, CNCC) and aims at building a system to manage documents and
books authored and published by CNCC. CPS, here, is used to manage documents
(authored with and build books (collection of documents
organized in a hierarchy / table of content). The Rich Client is the
consultation interface of books : it synchronizes its local repository of
books with the server, indexes it (in an RDF Database - Sesame - for metadata and in Lucene
for full-text) and offers to the user the reading/browsing/searching

In both projects, the Rich Client proposes several perspectives,
depending on user activity (users can also create their own perspectives),
is auto-upgraded and communicates with CPS using HTTP and XML-RPC, RSS or

First feedbacks from customers are very interesting and encouraging
(users seem to really appreciate the interface). Feedback from our side is
that the framework is amazing and allows very fast development thanks to the
library of plugins and the quality of the software infrastructure offered.
More details about those projects will be available soon (as soon as I find
time to write on those :-)

The big picture for CPS Rich Client : the Personal Portal

Those projects, CNCC then AFP, are allowing us to create Eclipse plugins to communicate with
CPS. We took then some time to
plus those plugins together and offer a basic CPS client for offline work.
It will be the base for next projects.

Our goal is to create a "pluggable" Rich Client that can be the Unified
Rich Client for CPS so that users can work on CPS using this client or using a
browser depending on their activity. We would like to be able to share as
many features as we can between both client type: forms, portlets sources,
actions, etc. That's where XForms, ATOM, XML Schema and stuff are taking

Imagine that, with this Rich Client framework for CPS, you would be able to quickly add
a new feature and deploy it to all clients (for example a new application
for users). Maybe even you can put this plugin to CPS and when clients connects to CPS
plugins are installed, configured and available for the users. Users install
the Rich Client (that can't do anything), then connect to the CPS instance
and then get all components needed (an electronic form application, a
collaborative work application, etc.).

We think this Rich Client as the personal portal of users, where they can
do emails, calendaring, document sharing, specific corporate applications,
all backed and stored into the corporate Intranet and also available with
their browser. So fun ! :-)

Of course, all this code will be available as soon as we have some
generic and useful codebase as Open Source software under the ZPL or

I will write more soon and often about those topics that can open a new
world to document management, desktop applications and corporate

To finish, I would like to thank IBM, the Eclipse Foundation and all
Eclipse developers / contributors for creating and developing this amazing
framework... Thanks to all ! :-)

Technorati Tags: zope, rich client, , , ,

(Post originally written by Eric Barroca on the old Nuxeo blogs.)