When last surveying open source Web CMSes (content management systems) I provided some common-sense advice. For example, it's important to look for not just functionality but also frequent updates, a healthy user community, and the availability of professional support. Some points are still true today, but new offerings may get you rethinking the role of these products in your enterprise.
That point is one of my takeaways in my most recent foray into the world of open source CMSes, during which I looked at the latest offerings from Alfresco, DotNetNuke, Drupal and Joomla, and Plone.
The one constant among these offerings, as with any open source area, is there's no such thing as free. You'll still need to budget for datacenter staff to install and maintain applications, consider costs for custom programming and commercial add-ons, and factor in training. Today's CMSes, however, are friendlier for IT staff to maintain and generally don't have the extreme end-user learning requirements of a few years ago.
Another positive is more standardization, which may translate to lower development costs. For example, Alfresco's based on a JSR-170 repository, integrates with JSR-168 portals, and can be extended by those with Java skills.
Still, think carefully about each product's nucleus,and how that fits with your existing infrastructure, commercial or open source. The other solutions in this roundup -- DotNetNuke, Drupal and Joomla, and Plone -- were respectively constructed with VB.Net, PHP, or Zope (Python). You can certainly find programmers and other support resources skilled in each technology.,You may find it more difficult, however, to integrate your PHP-based CMS with other systems compared to working with a .Net or Java foundation.
Another potential shortcoming of open source products – especially in high-performance environments -- is the underlying database. There's nothing inherently bad about MySQL (that Dupal, Joomla, and Plone use). But in certain situations (or even just an IT bias), a CMS's database may influence your selection. So remember that you may need to include the license and hardware cost for Microsoft SQL Server, which Alfresco and DotNetNuke support.
Still, across these products you'll probably discover overall cost savings compared to their commercial counterparts. That, and open source products' continuous feature and usability improvements, can make them a very good fit for particular enterprise Web or document management projects.
Alfresco Community Release 2.1
Another plus for Alfresco is its flexible licensing with the FLOSS (Free/Libre and Open Source Software-only) exception. This lets you embed the Alfresco JSR-170 content repository into other projects -- without having to license the entire Alfresco community package.
Installation went fast for both Windows and Linux, and you can run Alfresco with JBoss Portal 2.2 or Apache Tomcat. For most of my testing I used Windows Server 2003 and Tomcat. The main Alfresco work area continues to be well organized, with breadcrumbs to jump around quickly and summary areas that show available actions. Additionally, each user can create custom views to their documents and tasks. On top of this, Alfresco 2.1's portlet container enables users to access their spaces, tasks, documents, and Web Forms from JSR-168-compliant portals.
After creating user accounts and shared spaces (which can be further broken down by language), I started my Web Content Management (WCM) tests by using Adobe Dreamweaver CS3 to design Web pages and style sheets. Further, the CIFS (Common Internet File System) feature let me drag and drop these assets, existing Web pages, and rich media into the repository. I liked the new Web 2.0 user interface that let me conveniently zoom into a folder or content in any space – then preview Microsoft Office files, images, and video.
You may not need to do a lot of development because there's a nice library of sample forms for entering content (articles, news flashes, and multimedia) and site components (navigation, recent items, RSS feeds, site maps, and mashups) that add functionality to pages. I also published Alfresco content to WordPress and TypePad blogs.
Administration, a traditional Alfresco strength, is now even better. Using wizards, I quickly built a library of custom SmartWebForms. These enabled content contributions to enter and submit material in the correct format. Editorial workflows (created the same way) kept reviewers informed, using e-mail notification, of pages they needed to approve. As before, Alfresco includes extensive rules that automate both routine and complex tasks. For example, in a few steps I created a rule to watch a space for newly approved documents and convert them into PDF files.
Other changes in Version 2.1 let me check for broken links, set a time when content is to be published, and expire content.
The previous version enhanced content deployment in some important ways. For example, I published a Web site to multiple servers. For even more efficiency, Alfresco's transactional deployment function pushed recent content updates (rather than publishing a whole folder or site section). Additionally, the software now tracks these individual changes and there's immediate rollback to prior versions of a site.
Effortless document capture
Underlying WCM is Alfresco Document Management, which I accessed from the common work area. Users can also interact with documents from other interfaces they may already know, including shared drives, portals, WebDAV, and FTP.
A smart folder structure similar to what you'd find when working with Web content holds documents – which enabled me to create rules to reduce manual processing. For instance, after users responded to an "approve/reject" e-mail, Alfresco moved the draft document to the appropriate folder and performed any additional steps.
I liked the way Alfresco automatically extracted metadata from documents and then categorized them. Afterward, the Google-like OpenSearch (available from Internet Explorer 7 or Firefox) helps users find material quickly in the repository.
Records management (which meets U.S. Department of Defense 5015.2 requirements, but is not yet certified), works much like document management, and thus is likely to have a high adoption rate among end-users. For instance, documents can be dragged into the Alfresco repository from Office, Exchange, and Open Office desktop applications. I set up Alfresco to automatically classify records based on predefined types and then assign retention and archive policies. Further, it's easy to perform full-text searches or queries by file plans, categories, or types.
Image management relies on the same JSR-170 content repository and also let me reuse business policy rules I'd created for Web content and documents. There's also metadata extraction plus transformation among many image formats including TIFF, JPEG, GIF, PNG, Office, PDF, and Flash.
Combining document, Web, records, and image management, Alfresco 2.1 is a full-fledged EMC (enterprise content manager). Although such breadth often signals extra complexity in commercial offerings, Alfresco doesn't succumb to this problem. Using Web 2.0 techniques (such as lightweight scripting), native Office integration, and one common Web interface, users submit material to the common repository. And with integration throughout the modules, administrators can reuse components, such as business rules for publishing content.
DotNetNuke's built-in features -- generally broad and centrally managed -- make it appropriate for quickly deploying small Web sites or intranets. This solution is well-suited for moderate-sized e-commerce sites because it supports banner ads and referral programs.
Moreover, DotNetNuke's ASP.Net foundation contributes to its extensibility and usability. Therefore, you might consider it for larger, custom corporate Web projects. One notable enterprise feature is multiple portals within one software instance -- each site with its own identity and access rights.
DotNetNuke doesn't exaggerate its usability statements. Within an hour of downloading the software I had a functional site that incorporated many of this product's more advanced features. One tip is to get DotNetNuke's automated installer utility that you'll find hidden in the company's download area; even if you're familiar with creating .Net sites, this tool may save you time -- it automatically installed .Net prerequisites and configured IIS for me.
Overall site settings, security roles, and user settings are all easily managed from a single administration menu. More important, finding your way around the forms doesn't require much experience. For example, customizing the user registration form to make certain fields mandatory just requires checking off a few boxes.
I followed the same process for other global selections, including changing the look of the portal. (The built-in style sheet editor is available if you want to make more extensive changes). I was especially impressed with the granularity of these options. For instance, I applied one style to a certain section of my site that was designed as an extranet, while public areas received a different visual treatment.
Developing and managing the general structure of your site is equally straightforward. The Pages area let me reorder how pages appeared within the site navigation and move them down to different levels -- changes that were immediately reflected in my site's navigation.
A DotNetNuke page starts as a blank canvas with panes where you easily position modules. After deciding on the main sections of my site, I easily dropped modules in place and then dragged them into different arrangements until I was satisfied with the appearance. I created page layouts with a main HTML area, list of links to the right, and a login area under the top banner. Once a design is set, it's easy to reuse it on child pages or elsewhere in your site, which is done using the Page function menu.
Other standard modules include wiki, blogs, discussions, IFrame, News feeds (RSS), FAQs, event calendar, and announcements. Importantly, each module can be permissioned, thereby keeping itvisible only to registered users who have a particular role.
With my layouts done, entering and editing content for these modules progressed quickly. The rich-text editor equaled other commercial and open source products, including a convenient image gallery browser. Also beyond the basics: the ability to set publish and content-expiration times, and a way to recover deleted pages from the recycle bin.
Still, DotNetNuke lacks CMS features that are available in Alfresco and Plone. Case in point: You won't find built-in versioning or workflow.
Nonetheless, DotNetNuke surpasses other products in e-commerce, as demonstrated by a number of modules. These range from inserting ads based on your Google AdSense account and a basic online store (which uses PayPal payment processing) to very detailed reports about visitors who sign up on your site based on referrals from affiliate sites. Moreover, I enabled banner advertising, uploaded images, and easily tracked metrics for each vendor.
In general, when a core module didn't offer a particular feature, I was able to find a workaround in the DotNetNuke discussion forum or substitute in the DotNetNuke community download area. Many of these third-party solutions require purchase, but the prices are typically reasonable, with most priced between £50 and £300.
Compared to the other products, the only other weakness I see is authentication, which may be addressed in DotNetNuke 4.6. The product's road map calls for support of OpenID, Active Directory, and perhaps Microsoft's LiveID (when they go live with the service). LDAP is planned for a later upgrade.
Like most open source CMSes, DotNetNuke 4.5.5 offers much to like along with a smattering of omissions. In the plus column go high usability, a large number of stock modules, and a penchant for commerce. But you give up some enterprise management functions, especially versioning, formal workflow, and authentication.
Drupal CMS lets you publish a variety of content to corporate Web sites and intranets -- or build community portals with discussion boards and blogs. Beyond a collaborative authoring environment, Drupal handles tasks such as newsletter posting, podcasting, picture galleries, along with file uploads and downloads.
The system provides good personalization, which lets you control content and its presentation based on each user's preferences. Underlying features are also generally strong, which range from version control and a news aggregator to site-access statistics reports.
Drupal requires some extra time and skills to set up, which mainly involving installing PHP, and a database server and empty database, then manually updating some configuration files. Several handbooks and site recipes (step-by-step instructions) should cut this initial effort to under a day. (I also found a kind-hearted community member who'd packaged Apache, Tomcat, PHP, Drupal, and other essentials in an automated installer for Windows Server).
Drupal's core installation includes essential modules that are easily enabled from an administration page. That said, there are likely features you'll want to add on, such as advanced workflow. So set aside an additional day or so to tweak Drupal to your needs. The overall learning process will likely take at few weeks -- more than other products but certainly less time than if you rolled your own CMS.
The system's user management let me create different user roles quickly, which controlled what they could do on the site. Additionally, I changed the look of my test site by applying different themes. While still in the admin area, I constructed menus and the type of information that appeared in other page blocks (such as the right-hand margin).
Content is added in several ways: as individual pages, stories (news articles), pages within "books" (which are used for longer documentation), and blog entries. In each case I used uncomplicated forms to enter text; unfortunately, Drupal lacks a rich-text editor, so you'll have to stick with plain text or manually add HTML markup code. Another option for posting content is employing blogging software, such as Red Sweater Software's MarsEdit for the Mac or Word 2007.
Drupal's built-in taxonomy system let me tag pages with appropriate topics, categories, and terms.
The software offers several navigation options, including using the aforementioned categories to automatically populate menus. True, this takes additional setup work in the Site Building administration area to initially populate the taxonomy. But I think it's worth doing because it reduced ongoing site maintenance for me. Alternately, you can manually customize site navigation.
I found that other aspects of Drupal follow this same basic formula: There's not much you can't do, but it may take installing a module or some additional steps. For example, translating text is best done with a stand-alone editor. Or consider search: There's an internal site search system, but you need to manually schedule the indexing jobs.
Some of the more interactive features I liked include the news aggregator, which gathers content from news sites and Weblogs; RSS feeds of your Drupal content; and user authentication using an LDAP server.
Drupal has attracted interest among users and developers over the past four years. Usability -- for administrators and content editors -- might be better and the range of functions could be expanded.This application's modular design, however, lets community members keep it updated and in the CMS race.
If there were celebrity breakups in the open source community, Mambo would provide great tabloid fodder. After disagreeing with Mambo Foundation management in 2005, the core developers jumped ship, forked development, and Joomla resulted. Technically, both systems continue to be enhanced, and modules created for one system generally work with the other.Joomla administration, though, is more improved and, based on discussion board activity, Joomla appears to have the momentum right now. There's also more tangible backup, where some hosting providers market Joomla as their site-building solution.
Joomla satisfies Web publishing needs that range from small business Web sites to corporate portals and extranets. The central package is relatively easy to install and those with basic skills can manage a Website. As delivered, this CMS includes fundamental components such as news articles, polls, blogs, calendars, search, and RSS feeds. Add-ons and extensions (some that require purchase), include document management and e-commerce engines.
Joomla lets registered front-end users enter content while back-end administrators change design templates, alter page layouts, add modules, and manage users. My administration testing started at the Web control panel, which has four areas for arranging content, installing features, and handling overall system maintenance. I understood how to use most functions, such as creating folders and uploading media, right away.
The harder part of this CMS is learning the menu system and also managing the various content containers. Still, I believe after a week of reading and experimentation that even relative newcomers could have a small production-ready site -- and that time that can be compressed if you're experienced with a commercial CMS, such as Ektron, Eprise or Red Dot. That's because Joomla Web sites follow common design and publishing methodologies used in the enterprise.
First I created sections, which represent an overall page. Similarly, I customized various individual modules, including RSS feeds, polls, contact lists, and mass mailings. Lastly, templates combine HTML and CSS to define the look of pages. After modifying the templates with built-in editors, I employed the Module Positions screen (that has 50 slots) to position objects until I had the look I wanted.
Additionally, the administration Web interface clearly lists all of your elements and when they were published, and provides access to other functions (such as user permissions, server, configuration, along with wizards to install new modules). Thus, I believe reasonably complex sites can be maintained by IT staff with modest training.
Yet I found a few places where I wondered what the developers were thinking. For example, your site's home page is managed from the Menu Manager, which is normally used to create menus that appear on the top and side of each page.
Supporting front-line users
For day-to-day tasks, Joomla is generally accessible. To mirror a typical enterprise workflow, I created roles for authors, editors, and publishers. Authors didn't have any trouble submitting content using a three-part Web form that has expected features to format text, insert links and images, and create tables; other parts of the forms let you define metadata and the time content should be published. Editors follow the same process to modify articles. Publishers may perform all the jobs done by the lower roles, in addition to pushing content to the live site.
There isn't any formal workflow or notifications in the basic system, but publishers can review a list of content and quickly see its state (such as unpublished). In addition, there's basic content control, such as check-in and check-out.
More sophisticated workflow was one of more than 1,000 extensions I spotted for Joomla -- with the majority available under GNU GPL or Creative Commons licenses. Hence, I think without much extra work or expense you can customize your installation for vertical markets or special needs.
Joomla developers quickly built on the legacy of Mambo, especially improving administration. What the basic system lacks in functionality can usually be fixed by installing a component. Version 1.5 (which was in Release Candidate 1 stage during testing) appears to address concerns about the complexity of the menu system while injecting more Web 2.0 functions (such as more design latitude in how pages appear).
Plone does one thing -- Web content management -- and does it with aplomb. That's why you'll find well-known U.S. and international organizations in most industries running their Web sites, internets, and extranets with Plone.
This CMS has outstanding multilingual content management (with localized workflow), a powerful page editor, and flexible navigation. Version 3.0 introduces an inline editor, link checking, a portlets engine (for including content from other Web sites), and versioning, supports the search engine Sitemap protocol and wiki markup, and has full-text indexing of Word and PDF documents.
Setting up and customizing Plone isn't taxing. By following the well-done documentation and tutorials, I updated the visual design of my test Plone site in a few hours, all accomplished using the Web Developer Extension for Firefox along with an excellent Plone download, DIYPloneStyle. It's also relatively easy to add more advanced functionality (such as having navigation sections that are automatically generated from the contents of a folder) with a few style sheet changes.
On the administration side, Plone provides a range of enterprise-friendly functions, from authentication using OpenID, Active Directory, or LDAP to granular permissions for groups, roles, and workflows. All this is controlled from the Zope Management Interface, though I wish it was integrated into the rest of the system. That said, individuals can easily control who can view, edit, and approve their content -- without going through an administrator.
With design done, my testing moved to managing content. Again, Plone doesn't demand any extraordinary skills. For example, the folder view and AJAX-based drag-and-drop let me quickly reorder content, which was then reflected in the site's navigation. Site maps are automatically generated and updated. What's more, any collection (a grouping of content that developers create without writing code) or search result can be turned into an RSS feed.
The desktop-style page editor (based on the Kupu editor) is notable for converting Microsoft's text markup into clean XHTML and also for a great asset browser that previews images and links. Plone 3.0's inline editing was a big help for quick updates because you don't have to open a separate interface: Just click on the text area requiring revisions.
This CMS has lots of multilingual features. Besides more than 25 user interface languages, it's one of the few to support right-to-left languages (such as Arabic, Hebrew, and Persian). I also admired the split-screen editor, which assisted in translations. Plus, an add-on handles standard XLIFF content export and import, which is important when working with translation agencies.
Beneath Plone 3.0 there's a catalog of features that check the integrity of your sites and deliver a pleasant publishing experience. Link checking automatically alerted me when I tried to delete a page that other sites referenced. Further, I employed the automatically generated table of contents, which created and linked to chapters based on the headers in a long document.
Rules and versioning don't quite match Alfresco but are nonetheless useful. For instance, I defined a rule to move a file from one location to another for archiving after a certain time. The workflow system alerted users when something was changed, such as document revisions that required approval. And I appreciated this application's automatic locking and unlocking, which ensures two people don't overwrite each other's changes.
Plone 3.0 doesn't have a wiki.The software, however, allows wiki markup in any type of content (including Word and PDF documents that are transformed into Web pages), which eliminated the need to manually create links to other content. Plus, you can apply access control to these documents, just as with any standard Plone page.
With this release, Plone 3.0 adds important CMS capabilities such as versioning, inline editing, workflows, and OpenID support. It's true that some of these features require add-on modules that might consume server resources. Still, with a caching proxy (the organization's CacheFu project ships with Plone) there's very little else to criticize.
Stepping back and looking ahead
After my intensive test schedule with these five products, there were a few surprises along with verification of what I generally suspected all along.
The lightweight Drupal has a decent following and special features, such as taxonomies, but comparatively weaker CMS functions (lacking rich-text editing, for example) and a somewhat unfriendly development environment mean Durpal is playing catch-up. Joomla, after breaking from Mambo, swept up many core developers and swayed community members to switch, too. Collectively, they've turned Joomla into a very relevant project. With improvements planned for Version 1.5, I'm optimistic about this CMS.
DotNetNuke (the .Net reincarnation of PHPnuke) wasn't originally on my short list, but I'm glad I reconsidered. Although it's Windows-only, this ASP.Net application proved scalable and has a real affinity for handling midrange commerce activities. Plone is a step above, combining multilingual features, workflow, and automated navigation.
With a strong organization behind it and a slew of features, Alfresco's Community Edition stood out in this comparison. That would be true solely considering its content management, but as these applications branch out into document and records management, Alfresco has already staked a claim in the extended ECM space.