Thursday, February 12, 2009

How to Select an Open-Source Java Portal for your Enterprise

As usual, I'm spending a lot of time trying to select the appropriate open-source java-based portal for my enterprise (e.g. "company"). I say "as usual", because I've been doing this for a couple of years now. With this vast experience under my belt, I thought it appropriate to share my strategy and process with you all.

1. Determine Your Requirements

This is the best part of portal research! You should write down every cool idea you can think of. Dare to dream big!

Ok, now start crossing stuff off until you're left with the following:

Requirement #1: Portal must work.
Requirement #2: Portal must include Amazing Google Maps Mashup portlet, RSS Reader portlet, and Analog Clock portlet.

There, now you've chosen some realistic requirements.

2. Observe the Desolate Playing Field.

Ok, there are really only a few choices here, so let's not complicate things too much.

Contender #1: Liferay.
Contender #2: Jboss.
Contender #3: eXo.
Contender #4: GridSphere.
Contender #5: StringBeans.
Contender #6: Jetspeed and the like.

3. Choose Liferay

It's just the obvious choice. It looks good. It's easy to create layouts. It has an analog clock portlet. Oops, analog clock isn't available on the latest version. Oh well, it still has Google Maps and an RSS reader, which are both critical to business operations.

But seriously, it has a crapload of portlets and is fairly easy to get running.

4. Fall Out of Love with Liferay

Ok, you know that one feature that you left in your requirements even though I told you to cross it off? You know how you're all excited about Liferay having a sweet portlet that satisfies that requirement? Well, that feature is probably broken.

5. Hate Liferay

This is a big step in our process. It takes a little while to get to this point, and it's important to simply confront the fact that you hate Liferay. Listen, it's ok. Don't feel bad for the way you feel. We've all asked questions in the Liferay forums, and we've all experienced that 90% of them go unanswered. We've all been trapped by a bug fix over here that breaks something over there. Yes, my friend, that portlet really did disappear after you upgraded, and it might not be coming back for several months. No, the code comments aren't just hiding somewhere.

6. Visit JBoss Website

Jboss Portal is it. This is a big company sponsored project. We all know about it. Hell, we have unopened email somewhere deep in our inbox from a RedHat salesman trying to sell us this amazing free software. Look at this site, it's so awesomely corporate.

7. View JBoss Portal Demo on JBoss website.

8. Download eXo Portal.... and stuff

So you've heard a lot about eXo, and holy crap the featureset is huge. This one product can do everything you need, and everything you didn't know you needed. Except it's not just one product, it's a half dozen different products. Oh, but there's an "all-in-one" product, cool. Wait a minute... how the hell does this thing work... let's look at the documentation...

9. Visit Gridsphere Website.

Quick, find a screenshot. I'll wait.

10. Check out StringBeans.

Wha?

11. Look at JetSpeed, uPortal, and All the Other Products That Would Appeal to those Guys Who Use vi and Brag About It.

12. Go Back to Liferay

By this time you've forgotten all the bad times, and Liferay is starting to look pretty hot again. Maybe this time it'll work out. Maybe it was just you. Maybe Liferay has really changed this time.

13. Repeat this Process ad nauseam.

Meanwhile, you're still using Sharepoint.

18 comments:

Thomas Heute said...

About JBoss Portal, I think you missed the point, and maybe we shouldn't have put a demo portal at all.

What we provide is a portal *framework* this is not as visual as a portal *solution*. We provides API to help you build a portal with your own theme and applications that can integrate in an existing infrastructure.

The demo portal is just there to show some features (such as JSR-286 events and shared render parameters or Seam and RichFaces support). So, no, it doesn't look like a corporate portal such as our customers put in place for their needs, but the value is not there, the value is in the code.

If you stopped at the demo, you missed the meat.

smileham said...

So hideously, awfully true!

I'm back to at least a grudging respect of Liferay now, it's a great piece of software, you've just got to know what to expect.

Anonymous said...

You are selecting a framework, not a set of portlets. By virtue of being compliant to the JSR standard any decent portlet *should* run in any portal.
On a few occasions, once recently, I've been pulled into portal evaluations. In general I've found liferay's portal features are reasonably impressive. The sticking point that removed it from further consideration was performance. We found that liferay's performance does not compare favorably to JBoss or uPortal's performance (both are very respectable). In fact it was horrible by comparison. Even with the help of a liferay engineer and a great deal of liferay's goodies turned off or removed, it simply did not perform or scale well.

SM2K said...

Yes I realize that these portals are intended to be frameworks to build on.

However, to be attractive for adaption in an intranet type environment, I believe a portal should be packaged with enough basic features to get off the ground without much effort. Including portlets for things that "everybody" wants, like a wiki, message boards, file repo, etc, is rather important when you don't want to spend your time making these things work. It's also important to provide at least a somewhat attractive theme for much the same reason.

I don't want to spend my time searching for portlets for simple, commonplace features or waste my effort trying to make the portal look decent for typical users.

The current state of open source portlets is pretty dismal, and getting them to integrate fully (including searchability, user management specific to the portal, etc) with a portal isn't a trivial task.

What I want is a portal package that can replace most of the features of Sharepoint Services (ugh) so that I can work on more interesting things, like writing portlets specific to our business.

All of this is what makes Liferay such an attractive option. Ideally, I would just install it, do some configuration and setup work, and get on to more important things. Heck, even its default theme is nice enough that I can live with it. Unfortunately, the process of getting Liferay running, including all of those nice little features, is full of pitfalls.

Unknown said...

Ha, great post! I've been re-looking at Portlets again recently and came to the same conclusion, the whole space still sucks like its 2003.

I threw up my own rant here:
http://primordial.wordpress.com/2009/02/13/the-sorry-state-of-java-portlets/

I also got to spend some time as a SharePoint user while working at Microsoft a couple years ago, and while it still kinda sucks, it's at least usable. I can't believe no one had just ripped it off to create a portlet-based SharePoint. And you portal vendors...don't bother with any follow-up comments saying you have a solution as good as Sharepoint, cause you don't.

Tug Grall said...

I believe you are missing an important point when you talk about Portal. Like any project you must ask first what are the requirements of you enterprise around "A portal"?

I doubt that an enterprise portal is limited to an RSS reader and GMap ;). It is for sure a sort of portal, but for me this is not targeted to the enterprise.

Which kind of features do you need first, for which type of portal?
- integration portal: need to provide applications to my users (based on their profile)
- content oriented portal: need to facilitate content publication (web and document types)

Usually you start with one or the other and quickly the both types are merging - this will be a proof that your poral will be a success-.

To be able to achieve that you need:
- a powerful and open framework: so you can integrate applications. This is the goal of the Portlet API (JSR168/286). This is where the power of the Portlet Bridges, as Thomas said, is very important. You can also do a lightweight integration with Gadgets/Widgets. Most of the portal, and I am surprised that you did not mention it, are Gadget consumer. eXo Portal for example has a very interesting feature since it is not only a Google gagdet consumer, but it does also integrate an Open Social container. (to deploy, run Gadgets and Social Application as part of your Portal)

- an good integration with content provider: Since most of the time the "Enterprise Portal" will be based on application and content it is important to be able to publish, and share content easily in it. This is where the integration to an Enterprise Content Management system is very important. To leverage, at low integration cost the both features.

Finally when you have all these together you can focus on the main goal of your Enteprise Portal: collaboration. And you do not want to waste time and money during "technical integration point" (How can I plug my my content management and portal together, what are the security models of these various tools, ...).

To finish on generalities, and move to eXo Portal, since I am working for eXo Platform, I must react. eXo Portal is the Portal "framework" on which you can created integration portal. (powered by JSR-286, WSRP2, JCR, and Open Social). On the top of that you can deploy an complete and integrated solution for collaboration work: ECM (WebContent Management, Document Management, and Workflow), Collaboration Suite (WebMail, Shared Calendar and Contacts), Knowledge Suite (Forum and FAQ). (You can also WebOS that provides a rich user interface to interact with application on the Web). The technical documentation of the eXo offering is available at http://wiki.exoplatform.org


You can take a look to some of our sites:
- http://www.exoplatform.org powered by ECM/WCM
- http://forum.exoplatform.org and http://faq.exoplatform.org (integrated to the site as portlets)

Some demos:
- http://ks.exoplatform.org
- http://cs.exoplatform.org


Regards
Tug

SM2K said...

Since you work for eXo, I must respectfully let you know that I found your documentation extremely lacking. I spent at least an hour just getting eXo to work with MySQL, and the solution in your documentation didn't match the solution that actually worked for me. (e.g. using UTF-8 simply does not work because of the limitations on key length. I had to use latin1.)

When I finally got eXo up and running and started to play around with it, I realized that I would have to do a whole lot of work to get something up that will actually be usable for my organization. Again, the documentation does not provide a clear path for how this should be accomplished. It's a bunch of loosely coupled wiki pages (some of which I couldn't even access without logging in?).

Anyhow, I don't think I'm missing the point of a what a "portal" is. I'm making a completely different point:

Enough with the frameworks already. The open source community isn't going to compete with commercial offerings in the SMB market if it doesn't provide a solution that can go head-to-head with something like Sharepoint. I believe this solution must come out of the Portal community because the concept of a "Portal" is the closest fit.

If frameworks were the answer, then we should see a proliferation of applications that take advantage of the the frameworks. The current state of portlets is pathetic, perhaps worse now than years past with various portlet "exchange" sites disappearing.

P.S. Google gadgets don't count. Neither does facebook integration. My company doesn't "dig" it's internal blogs. These features are not appropriate for internal facing websites.

Bryan Cheung said...

Hi, this is Bryan Cheung from Liferay. Thanks for your hilariously honest post. I'll be the first to admit that while Liferay is a great product (as are many of the other open source portal servers), there are a lot of things we haven't quite gotten right yet. There are days I hate Liferay as well. :) That said, we are aware of the issues you raised (forum response, code stability, deprecation, code comments). These are issues that we discuss and address here at Liferay. For example, there is a long-running debate in the development team about code comments; some engineers strongly believe that code should be written so clearly as to be self-commenting.

Regarding a Sharepoint alternative (which many have touched upon), we are putting together a solution for team workspaces with document management called Social Office. It's intended to be an end-user focused solution that takes Liferay's features and packages them specifically for the Sharepoint use case.

It's still in beta and there are a lot of features we need to add to make it a complete solution, but the reception so far has been very positive.

SM2K said...

Bryan, thank you for your comments!

I must say however that I'm a bit appalled that there would be any debate about whether code comments are necessary. Certainly good code will allow the reader to understand the "what", but comments help with the "why". There is simply no way to read "perfect code" and understand why the developer chose to use the particular constructs and algorithms he chose.

We've all read about self-commenting code in best practice books and whatnot, but the intent is not to completely do away with comments... just to make comments more constructive. That is, don't comment the initialization of an array with "initializing the array", because the code is already telling us what is happening. You might, however, leave a comment that says "using an array here instead of a List measurably improves performance."

Writing code that requires no comments is as impossible a goal as writing code that doesn't require tests because the developer has decided to make his code self-bug-free.

Really, just some basic class and method descriptions would help enormously.

Bryan Cheung said...

Thanks for the quick response. We've arrived in principle at a path toward incorporating comments, so look for that in the coming releases.

In general, do you feel that things are improving over time? What are the biggest showstoppers for you for adopting Liferay more widely?

SM2K said...

Hi Bryan,

I guess I'd say that the things that have held me back more than anything from adopting Liferay at my company are as follows:

1) Bugs bugs bugs bugs bugs. I find myself running into walls frequently whenever I try to put a demo together with whatever happens to be the latest version of Liferay. I've been doing this since 4.x.

2) The permissions system is too complex...powerful to the point of being limiting. Communities, organizations, user groups, roles, private and public pages, etc. There's a hilarious diagram of the system in the administrator's guide that makes me chuckle every time I see it because while it's intended to make things easier to understand, it really just demonstrates how complicated it is. Why can't I add a user group to an organization? When I add a user group to a community, what roles do the users have? Thank goodness for the new control panel...managing all this was even worse prior to it.

3) Lack of communication in the forums. It's getting better, but so many questions go unanswered. I've been trying to participate as much as possible lately, but am still frustrated. This problem comes up frequently in blog posts about Liferay.

4) Lack of documentation. Information is scattered in blogs and wiki posts and forum posts. It's not easy. 5.2.1 was a good example of this problem: you released the product with changes to the database setup, an incomplete portlet lineup, and a bunch of sample data that can't be removed via the interface. This information should have been in a conspicuous location so we'd all be more aware of what's happening. General descriptions of portlet functionality would be great also...for instance the "recent documents" portlet which in 4.x showed recently uploaded documents, and at some point changed to showing recently downloaded documents. Little things like that are frustrating to figure out on your own!

5) Performance.

6) Lack of code comments and API documentation. Examples are good, and the latest developer's guide is good.

All that said, I will admit that I'm very close to actually rolling out Liferay here. I've jumped in head first and have fixed some of the bugs and am really trying to make this work out.

Thomas said...

Thank you for this great Blog-Post. At the moment I am in a quite similar situation. I know this post is 6 months old - I have one question. You said Sharepoint Server is kinda okay. So you are not afraid of getting in touch with Microsoft. I examined Liferay and Dotnetnuke. dnn is in some aspects better than liferay - in others not.

Do you have any oppinion about dnn?

Anonymous said...

Can anyone recommend the best MSP utility for a small IT service company like mine? Does anyone use Kaseya.com or GFI.com? How do they compare to these guys I found recently: N-able N-central remote pc control
? What is your best take in cost vs performance among those three? I need a good advice please... Thanks in advance!

Rachat de credit said...

Thank you it has been a wonderful help, now to select an open-source java portal for our enterprise is simple and easy with the help of your guidance. Kudos

Anonymous said...

for Scheduled Castes and then Scheduled [url=http://www.salevivi.com]ルイヴィトン バッグ[/url]opportunity to give thanks to your pet The [url=http://www.salevivi.com]スーパーコピー 財布[/url]century Todays men are extremely aware of [url=http://www.salevivi.com]ルイヴィトン バッグ[/url]service decoration materials of its http://www.salevivi.com[/url] crashes Q What is a Tether The tether is http://www.salevivi.com[/url] sub-clause has been included to exempt a

Anonymous said...

iPad two is smaller and lighter, and expenses significantly less http://www.baidu.com time being. Voice activated GPS systems loose its signal

Anonymous said...

This post will help the internet visitors for setting up new web
site or even a blog from start to end.

Also visit my web-site :: http://www.mediadeling.no/index.php?do=/profile-11742

Anonymous said...

I'm curious to find out what blog system you have been working with? I'm experiencing some
small security problems with my latest website and I would like to find something more safe.

Do you have any solutions?

Check out my homepage: forex expert advisors