In the OSS document management (DMS) space there are two primary choices: Alfresco and KnowledgeTree (KT). Other systems that do content management, like Plone or Drupal, are often suggested as DMSs, but in my opinion while they maybe great for managing websites they aren’t really designed for a business DMS.
The primary reason for a DMS over a file share is to improve the sharing and auditing of business documents. For this there are some key considerations:
- Methods for easily organising and storing documents
- Security and protection
- Ability to add meta-data
- Option to search inside documents
- Version control and transaction tracking
- A document work flow system
Both Alfresco and KT provide the above in their core feature sets for both their OSS and commercial packages. The second aspect which is important in the consideration of any new business application are:
- Easy to maintain application
- Easy for the workers to use application
There are a few other reviews out there, but nothing in depth. Since I’ve spent only a week installing and testing Alfresco and KT, this also is not a very detailed review of document management practice. For now this is purely my impressions of both installation and modeling future business practice.
Both Alfresco and KT provide all the primary functionality required to run a good business DMS. They both have the concepts of users, groups and roles; KT also providing the option for units. Users and document access can be managed with a scale of simple to complex protection options. Meta-data and global internal document search options are available. In KT versioning is on by default and with Alfresco it can be added easier by defining inheritable aspects against locations. Finally, both have solid work flow systems.
- Java based CIFS server
- Document symlinks
- Inline previews
- Powerflow aspect and work flow functionality
- Good set of additional built-in language translations
- Strong methods for internal document conversion using aspects
- Lack of clear and up to date documentation
- Multiple XML files in several locations for configuration
- Pricing is not open
- Installation is a PITA
- Long term maintenance of a OSS installation could be an worry
- Easy to install – 10 minutes
- Easy to configure and maintain
- Very good documentation
- Basics done well
- Seems to have a strong community
- UI could be more usable
- Additional translations provided by community and could be out of date
- Webdav access not ideal, requires buying commercial version for proprietary KTexplorer tool
With a mind to the above, I’ll I intent to focus on three of the main differences between Alfresco and KT – Java vs PHP, CIFS vs Proprietary KTExplorer, and Extra Features.
Java vs PHP
A java application might naturally be considered more scalable than a php application. Not only in the perceived greater depth of clustering options, but with basic stuff like dealing with large files. While clustering is not something that I considered, Alfresco does have a cluster options in the commercial version. It might also be possible to use load balances to scale both Alfresco and KT, but again not part of my consideration. More importantly a basic part of scalability for a DMS is dealing with large files. Both Alfresco (java) and KT (php) work fine – in fact php aside I was able to upload a 100MB PDF to KT via both the web and ktexplorer interfaces.
The other aspect of a Java vs PHP application is maintenance – which is easier and and more flexibility? For an experienced sysadmin with good documentation, it is likely that neither is a concern. While a Java Application Servers (JAS) can require more time to management than similar LAMP system, JAS systems do run well – Zimbra being a classic example for both commercial and community versions. Lack of good documentation will kill the maintainability of any application and future system worry is a devil for any sysadmin.
In this case it is an important component of consideration.
For Alfresco the first stage installation to disk of the OSS version is straight forward. The commercial version requires an X gui, so I wasn’t able to try the evaluation version on my headless xen domain. The next step is less that a happy event, Alfresco is a PITA in the ass to configure. Documentation is not clear and fragmented, needing to the use of both google and forum trolling get a good handle on best practice. Issues I faced were: figuring out how to cleanly change the resource location (URL), dealing with keytool or using apache to get SSL working, running ports that seemed to be part of the new WCM system but with no way of turning them off or rebinding, and no clear process to set up Active Directories as an authentication provider. In fact the freely available documentation in general, was poor.
The biggest issue I discovered was changing the database from the embedded HSQL to Mysql.
Starting from a basic install of the OSS version, for a couple days I read the wiki documentation and trolled the forum building a list of practices so I was able run the system the way I needed – CIFS server and Apache proxy included. The next step was moving to Mysql. It should be noting that in both Alfresco and KT the database is used for indexes and application information, actual document files are stored in the file system.
Following the README.mysql, I changed the xml db config from HSQL to the Mysql driver. Alfresco then restarted broken. Later after log file googles, and a wiki/forum search that lack direction, I decided to try rebuilding the data repository. No luck.
So like any good sysadmin in that situation I gave up.
Getting nowhere after two days of work is never productive so I went on to the KT part of my investigation.
Later, I went back and did a clean reinstall of Alfresco. This time, before starting Alfresco I changed the config so it first started on Mysql rather than HSQL – this time it worked. But I was not happy.
Alfresco comes by default with HSQL in the OSS version, and it recommends that Mysql be used in production. I think that the commercial version comes setup with Mysql, but I haven’t tried it. Regardless of how the commercial version work, difficultly at this stage for a OSS version poses some concerns. The question I ask myself is comes backs to system trust – “what happens if I need to do some special?”. Special cases happen quite often with computers, lack of good documentation is the killer.
No matter how good or stable a application – if you can’t read it, you can’t fix it.
In contrast, KT installs the complete lamp – mysql, php and apache – system to disk. It took me only 10 minutes to get from thedownload to a running system – including the time to answer a few questions about system defaults. The main application system config.ini was well documented and easier to read and all of the application level configuration was done from within the web interface. Even Active Directories was easy. In about an hour I had a basic system running with a couple users, some made up test cases – ready for the acid test with my brother in China.
Quite a solid contrast.
CIFS vs Proprietary Explorer
The second aspect is CIFS vs KTExplorer. Alfresco has an in-built java based CIFS server derived from jlan. It works well, is straight forward to config and has a clever method was auto creating folder to web URLs and _checkin/out.exe shortcuts in the CIFS filesystem.
This is, I think, the biggest selling feature of Alfresco and is in both the OSS and commercial versions.
On the KT OSS side it has a php based webdav access. With safemode turned off, it is possible to use netdrive, webdrive or webfolders to access the KT system via a file explorer. It is not as easy to use a Alfresco, and although being well documented does not have complete functionality.
For the commercial version there is the proprietary protocol tool KTExplorer (KTE). It lacks some features, but the basics work well. For interacting with a large document set it is much easier to use than the web interface. It is not quite as easier to access as a CIFS system, but a good point to note is that during the above mentioned acid test to China my brother found KTE to be quite snappy. CIFS access over the vpn from China to file servers in NZ at times can be slow. Based on this test he thinks KTE will ofter him an improvements on his current work process.
Access the DMS via CIFS or KTE is an important decision point between Alfresco vs KT.
When you open to read a document in KTE it downloads it to My Documents\My KnowledgeTree Documents\Downloaded, when you check out to edit a document in KTE it puts them in My Documents\My KnowledgeTree Documents\CheckedOut and locks the version in the DMS. Depending on company policy this might actually be a better system than via a file explorer.
The often difficult aspect of training work process discipline is an important part in any decision on specific business tool use. Access via file explorer can make life too easier for workers, who then end up not using the DMS and leaving files in their personal My Documents. Being forced to interact via the thin wedge that KTE provides might make a difference in training good habits. In theory with Alfresco it is possible to take over My Documents via CIFS, this might lead to other issues with Windows.
The best option is to test each case yourself on the basis of how your document management culture functions.
The final aspect is the extras. KT has all the basic functionality: work flows, version control, global inside document searchs. Alfresco does have some useful extras: inline previews, a powerful aspect based control allowing – among other things – auto-transformation of documents, a complete (web) content management system, and – I think – a nicer web interface.
The usefulness of these features should be reviewed in context to each document culture.
Six months ago when I first started investigating a DMS, Alfresco was my top choice. After the last week of testing my view has changed. KT have a solid product for both the OSS and commercial versions. Their documentation is very clear with a good depth and their community seems quite active. While Alfresco is a very good product as well, their support of the OSS version is not convincing enough for me to consider their commercial package.
I still have a few questions to ask Jam Software, but for now the commercial version of KnowledgeTree is my likely choice.