Home
Posted 11 Dec 2007 by Jeff Potts

The Endeca Partner Community solution ("EDeN") was assembled from content management, portal, blog, and search components. Specifically, Alfresco, Liferay, Wordpress, and Endeca's Information Access Platform. Let's look at the responsibilities of each of these components and then a bit about how they integrate.

Content Management -- Alfresco

The Alfresco repository holds all file-based content that gets published to EDeN. This includes things like whitepapers, tech notes, and product documentation.

Only a subset of the documents stored in Alfresco are published to EDeN. Alfresco's content model was extended to support Endeca-specific metadata, Endeca-specific content types, and an "EDeN Publishable" aspect. Content managers who want to publish content to EDeN add content to Alfresco, tag it appropriately, and then submit it through a workflow. If it is approved, the content's "publishable" aspect is set and the content gets picked up for publishing from within the portal.

So the customizations to Alfresco included:

  • Extending the content model
  • Writing custom workflows using the embedded JBPM engine
  • Tweaking the web client UI to make it easier for content managers to enter metadata and enable or disable content for portal publication
None of the Alfresco WCM functionality was leveraged to manage the content--it all resides in Alfresco's core document store. But, now that Endeca has Alfresco in-house, they can use Alfresco's WCM functionality to manage their corporate web site when they're ready.

Portal -- Liferay

Liferay is used for user profile management, portlet-level personalization, and forums. Out of the total work spent on implementing the solution, the most effort was allocated to customizing and configuring Liferay. Essentially, the work included:

  • Customizing the Liferay user profile with additional Endeca-specific metadata (and removing unwanted metadata that came out of the box with Liferay).
  • Skinning the portal with the EDeN look-and-feel.
  • Tweaking the functionality of the forums portlet.
  • Developing specific portlets such as the one used to display Alfresco content
We looked at the Liferay blog portlet but it wasn't able to meet even minimal requirements for what Endeca needed to do which is why we elected to incorporate a standalone blog server for the blogs component.

Blogs -- WordPress MU

EDeN has multiple blogs in which Endeca leadership discuss company and product direction and industry news. Originally, we went with Apache Roller in an effort to stick with an all-Java stack. Ultimately, Endeca decided they were more comfortable with WordPress MU, so we switched.

When Roller was the blog component, all blog interactions happened from within Liferay through the ATOM protocol. After we switched to WordPress, we did some things from Liferay (such as grab a summary from each WordPress blog to present within a portlet) and let WordPress do the rest. When users interact with the blog they are actually using WordPress although the UI makes it seem as if they are still within the Liferay portal.

Search -- Endeca Information Access Platform

All EDeN content, regardless of whether it is in Alfresco or Liferay or WordPress, is indexed by Endeca's Information Access Platform. This facilitates full-text search, guided navigation, and content "spotlighting" which is essentially a form of content-level personalization based on the user's expressed interest areas.

Endeca wrote an adapter for indexing Alfresco content (and metadata) and used their JDBC adapter for indexing Liferay and WordPress content.

Component Assembly -- Getting the components to work together

Endeca already had user IDs and passwords from its support system. We loaded these into a directory and then configured Alfresco and Liferay to authenticate against LDAP.

Custom Liferay portlets use the Alfresco Web Services API to query and return content stored in the repository.

Liferay talks to WordPress via JDBC to get blog summary information. As mentioned, once a user clicks on a blog link, WordPress takes over. One other piece of glue needed was some code that allows Liferay to share the credentials of authenticated users with WordPress. This allows blog comments to be tied to users without requiring a second login.

Leverageable Investement

The openness of all components involved means Endeca can continue to expand upon their initial community offering with less effort (and much less cost) than what would have been required on a closed-source stack. And, together with an internal Wiki solution they've recently rolled out, they have a great start on a killer Enterprise 2.0 stack.