Alfresco is a content management system with a free community edition and a commercial version. This page is focused on the free open community edition for Web accessible applications.
I tried following the documentation in Alfresco. From what I can see, Alfresco is not what we normally call a CMS, content management system. Instead it connects to an external CMS named OpenCMIS to provide a Web interface.
Alfresco performs content management more like Microsoft Exchange where you have a content repository that is not readily accessible then you connect the repository to different computers and their users through various interface applications. Exchange keeps documents as files and can provide access in everything including file browsers, office applications, dedicated applications, and as data input for custom applications. I am looking for a page comparing Alfresco with the alternatives including Exchange. From what I have found so far, Alfresco looks like you have to use Alfresco tools for everything.
Alfresco has a repository exchange module for exchanging data with other content repositories. This is an equivalent to a Microsoft product performing the same type of exchange. The exchange from Microsoft is not real time data requests, instead it is the shuffling of content back and forth using scheduled copy processes. You end up with a copy of the data in each repository but not instantly. I did not find an exact description of what happens in Alfresco.
Integrating all your applications into one repository would be better in the long run so you only have one copy of the content. When looking at Alfresco for a new project or as an an alternative to Microsoft Exchange, plan long term and evaluate Alfresco as a total replacement, not as a parallel system that hangs around forever. You might run the two in parallel for a couple of years while converting computers and people but that just increases overall costs. You only start saving money when you shut down your old expensive proprietary system.
The best content management systems have a Web interface as standard because that gives you the maximum flexibility with security and easy access from other applications. Just about every application can access data through the Web using Web services, WebDAV, and the almost endless variations. Microsoft Exchange is a pig to install and administer because of all the extra things you have to plug in for access and connectivity. Alfresco appears to follow a similar model to Exchange with one advantage, the Alfresco community edition is free while Exchange and all the add ons for Exchange require additional license management plus many add additional licensing costs.
Alfresco calls itself an ECM, Enterprise Content Management, and promotes the following features as the advantages of an ECM over a standard CMS. Keep their definition in mind when looking at products labelled ECM because each ECM has a different list of features to make the ECM
- Document Management
- Records Management
- Knowledge Management
- Web Content Management
Some enterprises have lots of subsidiaries and the one thing they need is the ability to build lots of Web sites using the one server and one set of software. Drupal is a content management system ideal for multiple sites from one software. I have not found the equivalent in Alfresco or the bits you have to plug in to add a Web site to Alfresco. There is an interface module to connect Drupal to Alfresco and that may be the best solution for multiple Web sites.
Sales oriented organisations like CRM (Customer Relationship Management or plain contact management) and the best CRM systems are Web based. You can build your CRM using Drupal plus add on modules or use a dedicated application with SugarCRM and Vtiger leading the field. An ECM should be integrated with CRM because CRM can include delivery of custom documents to customers and the return of custom documents from customers. You want exactly one authoritative document, not several floating around in different repositories. I did not find documentation of that type of connection.
Marketing enterprises favour presentation over content. A document is useless if prospective customers cannot read it. In modern systems, content is generated on the web for the web then spreads out to other areas. That makes the web version authoritative. You have to build version management into your Web publishing workflow. You can then copy the content into Alfresco for archiving and offline search. In the long term you are better off building more function into your Web system. Alfresco would be of more interest to someone accepting a lot of external documents, perhaps a wholesaler accepting lots of specification sheets and service manuals from suppliers then distributing them out to resellers.
Manufacturers have a big choice of applications and most have web interfaces. The main ones are classified as ERP, Enterprise Resource Planning. If you put Alfresco along side the bigger manufacturing oriented systems, there would be little use for Alfresco. The main use would be in sales and marketing areas where a well developed CMS, say Drupal, would give you more benefit faster.
Manufacturers might also look at the CRM alternatives mentioned above. If most of your manufacturing is custom designed, the design documents might generate enough work to warrant Alfresco along side an ERP system. When most products are your own designs and your range is small relative to the number of sales, a CRM will give you far more benefit.
Alfresco, Microsoft Exchange, and alternatives, are often sold as the glue connecting different systems. The ideal connection would be instant real time. Most glue software shuffles copies of stuff in the background and has hidden costs including network upgrades to keep the traffic flowing at a reasonable speed. The biggest cost is often the requirement to hire a person specialising in a different technology.
Alfresco is based on Java. If your existing people work with Java then Alfresco should be a low overhead addition.
In a Microsoft based Information technology department, Exchange benefits from everyone using the same operating system and interfaces as your existing system, giving you a low people cost because you have fewer specialists. Microsoft Exchange does cost money but costs less than trying to add a Java server and a backup Java server and a Java support person.
When you existing systems are web oriented, your IT systems will be based on PHP and related technologies. Alfresco is a high cost add-on because you will have to hire a Java expert then install separate everything for Java.
Will I install it?
Alfresco has too many dependencies to install for my existing projects. Where Alfresco looks interesting as a way to provide one extra function, there is almost always an open source add-on module for a CMS that could provide the same function through a minor enhancement.
There were several previous projects where an Alfresco style glue application would be a quick way to connect systems but none of the projects used Java and the cost of adding a Java support person was more than the cost of writing connection code. Plus the cost of writing connection code is one off, while the cost of the additional support person is ongoing.
Alfresco could have added versioning to some previous projects but the versioning would be useless if the users had to jump to a different application to use the versions. Alfresco was never going to be a good fit.
What about that time I worked on a Java based web site? Well, I worked on more than one Java based web site. They were proprietary, not open. They needed upgrading. It was quicker to replace those Java based Web sites with PHP code or a CMS. In each case the only Java in use was for the one Web site and the separate maintenance was a noticeable disruption. Replacement saved time and money in several areas. The cost of Alfresco would include all the disruption cased by a separate technology and, in those environments, would be similar to the cost of Microsoft Exchange.
Should you install it?
Start with the following warning from the Alfresco Community then think about how you will support an implementation. In Australia, good Java developers are the most expensive information technology developers and are twice as expensive as good PHP developers. Comparing equivalent Web applications, you need twice as many Java developers compared to PHP developers and the Java projects take longer to complete. I compared some recent jobs advertised for Java and PHP developers. Comparing equivalent levels of complexity and experience, the low end of the Java developer pay scale was $20000 higher than the high end of the PHP developer pay scale. If you do not need all the features of Alfresco, look for a PHP based application. When you do need all the features of Alfresco and do not have the staff on board to support the community edition, compare the cost of the commercial edition.
Alfresco Community is unsupported and intended for developers and technical enthusiasts in non-critical environments.
Java is the first requirement.
The Tomcat Web server is next and is installed by the Alfresco automated installation. The Alfresco documentation says Alfresco will run with other application servers but the documentation does not say how you configure Alfresco to work with other application servers. If all your other Web applications run under Apache or the alternatives to Apache, including Lighttpd and Nginx, you might want to look for an Apache based ECM.
Alfresco works with MySQL. Modern Web applications use a flexible database layer that connects with MySQL, PostgreSQL, Oracle, and other databases so you can share data with other applications. If you are already using a database other than MySQL, you might want to reduce support problems and future development costs by looking for an ECM with a flexible database interface.
Alfresco uses OpenOffice to convert documents from one format to another. Linux distributions are replacing Openoffice with LibreOffice. I presume Alfresco will switch to LibreOffice.
If you do everything in Java and have a special requirement not handled by your CMS, CRM, ERP, and all your other applications, look at Alfresco. For everyone else, Alfresco will be at the bottom of a long list of possible solutions.