It is always a little amusing, and overwhelming to wander over to the CMS Matrix site and try to figure out from their listings which of the over 1000 different content management systems listed has the specific set of characteristics that are necessary for a particular client. (As an aside, they seem to have implemented a new Web 2.0 style user interface, which is really, really slow. I mean really, really, really slow. I thought Web 2.0 was about performance!) Anyway, I digress.
My particular hot button in the selection of a competent CMS/Portal system is its ability to handle flexible groups with granular permissions. By that I mean it should support a large organization, with different groups, and in each group, different people can assume different roles/responsibilities. The check boxes on the CMS matrix often sound like the right sort of indicator, but once I dig into the systems that it recommends, I usually come away disappointed. What is meant by "Granular Permissions", "Sub-sites", etc. mean different things to different people, and even in the matrix there is no consistency.
After my last foray into matrix confusion, I took a pause, and a deep breath, and decided to have another look at a system that was in principle one of my favorites in the past, even though it has never quite had the features necessary to solve my clients problems. The system is the Liferay Portal. There are several things I liked about it when I evaluated it in the past. One was its ability to handle a complex organizational structure. Another was its ability to have many instances of each content type. Where simple CMS systems may allow for a single forum for example, Liferay Portal allows for many forums, and they can be localized in each part of the organization. And another feature I liked was that its URLs are structured in a way that makes sense to PEOPLE, not some artifact of MVC routing based on module/controller/action. And I love the portlet concept, which was in some ways a predecessor to the current widget craze, but based on real server architecture.
The thing I didn't like about it was its dependence on J2EE, with the complex hosting requirements and daunting XML configuration requirements just to make it work. Chalk it up to personal preference, but I absolutely hate having to sort through directories searching for just the right configuration option (in XML) to make the system work the way I want it to. That was one reason I moved away from J2EE systems in the past. Personally I love Java, but just couldn't stand the nightmare of configuration required to make the systems work. In contrast many popular PHP-based CMS systems run the user through a simple web-based configuration script, after which it just works.
I have been hearing rumblings from the Java community about adopting some of the principles espoused by the Ruby on Rails community, especially regarding "Convention over Configuration", so I thought it might be time for another look at my old friend the Liferay Portal.
At first glance, I have to say it has developed in the ~18 months since I last looked at it into quite a nice system. In fact it now has capabilities that I wasn't even dreaming about until I saw them on its feature list. It has grown to include many of the latest things from the web world, and it still has all of the enterprise connection capabilities provided by the application servers. And it supports more application servers than I will ever have a need, or desire to use. (In fact if anyone can tell me which I should be using, it would save me a lot of time and a lot of XML configuration headaches trying them out.)
And surprise of surprises, I was able to download the Liferay Portal demo bundle (Tomcat-based), and it actually ran with no fuss on my Windows Vista system! I never run web apps on Windows. Most of the time I work on Linux, because it is such a pain to make open source stuff work on Windows (especially Perl!). Boy, that was what I loved most about Java! It really does work anywhere.
Then I decided to push the envelop, and see if it would work behind an Apache server. Another thing I didn't like about Java based CMS systems in the past was their inability to work in an Apache environment. After installing the missing mod_proxy family of modules, and messing with the virtual host site configuration file, in less than 2 hours I had the demo Liferay Portal running along side a dozen other sites behind Apache 2. Awesome!
Unfortunately, this is as far as it goes for now. I attempted to replace the out of the box demo database server with MySQL, and ended up back in the J2EE/XML configuration swamp. After reading the various documents offered on the Liferay website, and after reading the one book I found on the Liferay Portal on Amazon, my enthusiasm has dropped almost as much as it did watching the San Jose Sharks in the first round of the NHL playoffs, after they won the presidents trophy this year. (They are down 3 games to 1 at the time this post was written.) The worst part is that the procedure for reconfiguring the Liferay Portal demo bundles to work on other database systems seems to have changed in a recent release, and the different documents all describe different procedures to make it work, none of which actually seem to work. Hopefully this roadblock will be short lived, but that will have to wait for another day.
Using Google Sites to Manage Meetings & Events
6 months ago

2 comments: