For those who had the opportunity to attend DevCon 2011, TSG presented this case study about developing myInfinitec, a portal provided to teachers to access resources to aid in working with special needs children. The slides from our DevCon 2011 presentation may be accessed here. The following will discuss lessons learned during initial development, including the following topics:
- Authentication between Liferay, Alfresco and Adobe Connect
- Communication between Alfresco and Liferay
- Usage of the Liferay SDK
- OpenSearch Integration
Authentication between Liferay and Alfresco
There are two approaches to consider when deciding how to authenticate between Liferay and Alfresco. Is there a need for users to have accounts in both Liferay and Alfresco? In the case of myInfinitec, Alfresco was used only to serve up content to be accessed through the Liferay interface. For this reason, a user was created with read-only permissions in Alfresco and this user was used in all communication between Liferay and Alfresco. At any point a connection was required, credentials for the read-only user were passed to the standard Alfresco login webscript.
Authentication between Liferay and Adobe Connect
Adobe Connect was utilized to host video content and quizzes for myInfinitec. Through myInfinitec, teachers are able to watch instructional videos and take quizzes in order to receive certifications in different areas related to special education. Upon reaching the Online Classroom page in the Liferay portal, Adobe’s Breeze API was leveraged to check if the user already had an account in Adobe Connect. If the user did not already exist, an account would automatically be created for that user with the appropriate permissions to view the videos and quizzes.
The Adobe Breeze API was also leveraged for generating offline reports of the users’ quiz results. The quiz data was combined with custom user data from Liferay into an Excel spreadsheet for analysis by UCP administrators to provide to their subscribers.
Communication between Liferay Portlets and Alfresco Webscripts
Most of the Liferay portlets created for myInfinitec required communication with Alfresco Web Scripts. Within the portlets, calls were made to the Alfresco Web Scripts and the response templates generated by Alfresco were rendered directly into the views of the Liferay portlets. This allowed us to move and rearrange content within a Liferay page using its dynamic page authoring tools. This is one of the benefits of using a portal framework, the modular approach to arrange content on a page (similar to Sharepoint or .NET Web Parts).
Usage of the Liferay SDK
As an open source portal platform, Liferay does provides a very useful SDK that allows customizations of your portal as little or as much as needed. The SDK provides simple methods to build and deploy portlets, themes, hooks (used to override basic portal functionality), an extension environment (used to override complex portal functionality), among other things. Most of these items can be hot deployed, which means no restart of the web application server is required. While the documentation around the SDK is sometimes lacking, the Liferay wikis and forums are extensive if one is willing to take the time to search.
The myInfinitec portal provides a large number of resources to teachers, so the ability to search content in both Liferay and Alfresco was extremely important. Alfresco and Liferay both use the OpenSearch format for exposing content to other systems so the integration was rather straightforward. A search portlet was added to the Liferay portal that was aimed at the Alfresco OpenSearch endpoint. Any time a user uses the search function, both Liferay and Alfresco will report their results and display them to the user.
Because a custom content model was created for all myInfinitec content, the OpenSearch query template was modified to pull back all of the custom content types that were defined. The Alfresco OpenSearch ATOM template was customized to provide custom hyperlinks based on the content type. This allowed us to direct the user to the various destinations from one set of results. For example, if a user’s search returned both videos and downloadable content, the hyperlinks for each result would properly direct them to either the video classroom or the document itself.
TSG continues to provide develop additional features and functionality to the site, including a special education mobile application database, a simplified registration process, and further expanding community features to connect educators within the myInfinitec community. Both Alfresco and Liferay provide a robust and flexible architectural platform which should meet UCP’s needs for quite some time.
For more details on our implementation and to download the Alfresco Case Study, please visit our website.