JSR 168 has been gaining quite a momentum for the past year. Portlet is a very interesting concept to reuse web application modules (at a level higher than JSF), and to aggregate enterprise information in tiers on top of the data storage, which again increases reusability. For a project in planning, I am starting to evaluate several popular open source portal servers, and am reporting the ongoing experience in this blog entry.
All the experiments are done with Tomcat 5.5.9, JDK 1.5.0 on Win XP. Most packages include a HSQLDB, which is used. Otherwise a locally installed MySQL is used as the database.
- JBoss Portal-2.0: Installation is very easy and smooth – it took me about 10 minutes to install a fresh copy of JBoss AS, unzip the JBoss Portal into the deploy directory, set up a database, starts JBoss AS, voila! I didn’t even have to execute any sql scripts. The application does that the first time it starts. I have always liked this feature seen in most PHP applications.
Unfortunately with this release there are not a lot of portals bundled. There is a decent admin module (I’ll refer to logical functionalities as “modules” in order to distinguish them from “portlets”, because most functionalities would each consist of multiple portlets). It provides facilities to manage users/roles/permissions, and a CMS system residing in the expanded portal-cmd.sar file. The only other useful module is a forum that emulates phpBB – and does a fairly good job at it. However, while the JBoss Portal itself is under LGPL, the Forum module is under GPL, so you’d pretty much have to start from scratch if you plan to build a non-GPL portal.
There are still some quirks in window state control that needs to be ironed out. E.g., when I minimize a window, it becomes blank, but remains the same size. Most other products would have fold the window to a title bar, which seems to be more consistent with our desktop experience. Page rendering speed is OK, although page flipping is visible during window state changing. Memory wise, after the server starts up: free memory: 89.50 MB, total memory: 127.18. Even realizing this light footprint might have come from the fact that there is basically just a minimalist portlet container running without lots of portlets deployed, I am still surprised, even more later after having looked at jetspeed2 and liferay, which both only require a servlet container and are supposed to be lighter.
The last thing worth mentioning is that, not surprisingly, JBoss Portal relies on and only works with JBoss AS. You can tell that on the first look at the distribution package – everything is in a SAR file. This can be a big turn off for applications that only need a servlet container.
- Liferay Professional 3.2.0: I want to get this out first – Liferay is a cool product. You get out of box a complete portal server, with a rich feature set and fully functional. There is even a “Bible Journal” portlet on the default home page, which only showcases about 10 portlets out of the tons from news aggregation to calendar. You can add any of them at anytime by scrolling to the bottom and picking it from a dropdown list. Each user can manage pages in a personalized way, just like what you can do with My Yahoo or MSN, only more intuitive. Page rendering speed is decent. Minimizing a window only affects the column it resides in and does not cause the whole page to flash and flip, which makes the experience more like on a desktop GUI. It can be a bit of a resource hog – my Tomcat Manager reported “Free memory: 66.73 MB Total memory: 127.06 MB” right after startup. After playing around a while, the free memory took a serious dent and went down to 32.60 MB. Considering all the nice features I have just seen, I think it’s a fair price to pay (I just hope that Liferay scales well). Liferay also impresses me with its thorough support for almost all the popular application servers/servlet containers/databases. It’s not just another one of the after hours hobby projects. Those folks at Liferay LLC are serious about this thing.
Now, the “but” paragraph. I said “you get out of box a complete portal server” – that is, if you can get it out of the box. Not wanting to download and install the complete package that comes with a preconfigured Tomcat, I went ahead along the “Advanced Setup” trail. It wasn’t just my geeky nature. I wanted to evaluate whether Liferay could be dropped into an existing server just like any other web apps. It can, only after some hours of hair pulling and googling. Long story in short, the setup instructions I found in the documentation are for Tomcat 5.0.x. So I had to work around a few things (one being the data source config) to make it work in Tomcat 5.5.9. Still when I finally got to the point of having started Tomcat and trying to hit http://localhost:8080/, a 404 error page showed up. After more digging in the Liferay forums, I found these folks having the same problem and actually a solution for it. Once that last hurdle was out of the way and the login page showed up, all the rest has been fairly pleasant experience. Nonetheless, if, as the solution suggests, Liferay has to be deployed as the root application, it would be a major pain for whoever would like to provide liferay hosting service. From a more technical perspective, this unnecessary(seems to me at least) deployment constraint would also be a taint in the otherwise clean architecture. [edit:] I have since found out how to deploy Liferay to a non-root context. So this is not a problem any more.
More to come next week…