Collaborative Portal Server (CPS)
CPS (Collaborative Portal Server) is
developed by French open source software company Nuxeo SAS and an
external community of developers. The software is distributed under the
GPL. CPS was first developed in 2003 to fill a gap between what could
be done on a basic platform of Zope and the Content Management
Framework (CMF) and true "Enterprise Content Management" solutions
such as what was being offered in the proprietary software market. The
CPS application, along with other Nuxeo products, is based on the CPS
Platform which has been architected as a comprehensive ECM framework.
From a functional perspective, CPS is somewhat similar to Plone. Like
Plone, CPS is designed to handle documents and web based formats such
as pages and news items and has a strong role based access framework.
However, the CPS Platform adds a layer of infrastructure that Plone
does not have.
ARCHITECTURE
CPS is a newer project than Plone and, while it lacks the benefits of Plone's huge development and user communities (extensive documentation, active mailing lists, and an extremely polished UI), CPS has some key architectural differentiators and is more closely aligned with the cutting edge of Zope development including Zope 3. New add-on products are being constructed using the Five Project, which allows new Zope 3 features to be used on a Zope 2.x instance.One key differentiator is the way that CPS stores content. Rather than use the Zope Object Database (ZODB) object hierarchy to organize the site, CPS separates the storage and placement of objects. Users place objects on the site by reference (called "proxies") while the objects themselves are stored transparently behind the scenes. This architecture allows more flexibility for features like versioning, single sourcing, localization, and multiple workflow states of assets. The repository abstraction layer has potential to enable alternative storage mechanisms such as external databases.
Another key architectural differentiator is that CPS has implemented an event-driven framework to trigger functionality and integrate components. This allows for looser coupling than standard Zope architectures, which typically depend on acquisition or inheritance to share functionality.
CPS also benefits from several infrastructure components that are provided by the CPS framework. CPSDirectory creates a virtual directory that can be backed by disparate sources such as an LDAP directory and a relational database. CPSSchemas and CPSDocument work together to implement an MVC (Model View Controller) architectural pattern which is commonly used in Java web applications. CPSRelation manages relationships between objects in the repository.
CREATE AND STORE
The primary interface for creating file-based content within CPS is by uploading files through the web interface. CPS does not support WebDAV primarily because of its unique way of storing content in the ZODB (see architecture section). However, CPS does support Zope's ExternalEditor product, which gives the user the experience of working on a local file while the server copy is being updated with every save.Basic metadata support is built into most content types and additional attributes can be added through CPS CPSTypeMaker GUI. CPSTypeMaker allows fields to be defined with different validation, including what is required and valid values. CPSTypeMaker supports field level ACL and a selection of different storage engines. A content taxonomy can be applied using CPSâ vocabularies framework, which allows administrators to define controlled lists of words that can be used for lookups in forms. Vocabularies can be designated for specific locations within the system, allowing for distributed controlled vocabulary management which is often necessary in large organizations.
COLLABORATION
CPS is built on top of a robust versioning system. Every time an asset is checked out, a new version, called a revision, is created within the repository. Previous revisions can be viewed (called âconsultedâ) or reverted to through the user interface. Specific revisions of a document can be published to different sections.The CPS workflow framework CPSWorkflow is more elaborate than DCWorkflow which comes embedded in Zopeâs Content Management Framework and is used by Plone. Like DCWorkflow, CPSWorkflow consists of a collection of states and transitions. However, CPSWorkflow allows assets to be assigned to a workflow based on their location (rather than just their content type) and allows multiple assets to be processed as a group. Workflow âStacksâ represent collections of tasks that can be dynamically assigned to a workflow job. The âproxyâ architecture of the CPS repository allows an asset to exist in multiple states which enables advanced workflow patterns such as branch and merge.
CPSâ event-driven architecture enables powerful subscription system where users can subscribe to be notified of various events in the system such as adding, deleting, submitting, accepting, or rejecting content.
ORGANIZING
While The CPS Framework can be modeled to achieve any strategy for organizing content, out of the box CPS is organized into Workspaces and Sections. For most content types, content is created and refined in a Workspace and then submitted for publication to one or more Sections which could be accessible to the un-authenticated or restricted based on access control rules. By default, users are given their own private workspaces. Additional workspaces can be established for teams and controlled by CPSâ role based access control framework. Sections are managed by section reviewers and managers which have permission to accept or reject content that has been submitted to their section. This allows content to be easily placed in multiple locations rather than creating duplicates of the same assets.SEARCH & ACCESS
Like most Zope-based systems, an asset's URL is composed of its placement within the folder hierarchy. This makes URLs readable, navigable and allows for easy bookmarking. Both Sections and Workspaces are subject to CPS role-based access control framework. Sections can be designated as viewable by anonymous visitors to support public access. By default, Microsoft, OpenOffice, and PDF file formats are searchable through a full-text index.USABILITY
Users looking for a simple folder-based document management system might be a little overwhelmed when first introduced to CPS because it has so many features beyond simple document management. The Workspace/Section paradigm may not be appropriate for all business uses. However, that can be changed with some configuration.The feature that CPS users may miss the most is the ability to browse the repository with familiar file management tools such as Windows Explorer. ExternalEditor integration will close this gap to some extent by allowing familiar editors to interface directly with the repository.