Liferay Enterprise Portal The project, the product and how to extend it

Liferay Enterprise Portal
The project, the product and how to
extend it
Jorge Ferrer
Software Architect
Liferay Inc.
Agenda
1. The Liferay Project
2. Liferay Portal
1. Introduction to Portals and Portlets
2. Characteristics
3. Out of the box functionality & Demo
3. Extending Liferay
The Liferay Project
Fast Facts

Project started January 2000, eighth year in development

Liferay Inc. 40+ employees in U.S., Europe and Asia providing commercial
support, training and professional services. Still Hiring !!

Annual revenue growth of 130-140%

Member, JSR-286 committee (with IBM, BEA, others)

Open source Java portal leader in downloads, activity and Implementations

About 100 active volunteer contributors

InfoWorld’s 2007 Best Technology Winner for Open Source Portal

Top ten open source products to watch (French press - JDNet Solutions)
The Open Source Advantage
Open source puts your business at the center of your technology initiative. Your product can
be customized to the specific needs of your business without tying you in to any specific
vendor and their associated license costs.

Open source is a superior development
model that leads to more robust code,
increased innovation, and faster
development cycles.

Each customer’s investment in the
product is multiplied to the entire user
community. The ROI on your
participation is multiplied exponentially

Zero-cost licensing allows that budget to
be applied toward customization,
resulting in better user acceptance and a
product that fits your business

Open source means flexibility and control
– the code is in your hands and ready to
customize

Lower risk – Any vendor, open source or
commercial, can change course and
discontinue product support. Open
source ensures you have access to code
regardless of vendor strategy
Why Liferay?

MIT Open Source License - Invest in Development


Interoperability Protects IT Investment



Incorporates latest technologies gaining acceptance from industry leaders
(Struts, Tiles, Spring, Hibernate, Web Services, AJAX, SOA)
Immediate Usability and ROI



100% compliance to industry standards
Compatible with every major platform (IBM, BEA, JBoss, MS, Oracle)
Innovation Using Proven Technologies


No license fees or restrictions on use
4.2 includes 60+ portlets to get portal running quickly
Developer tools help IT deliver portal value proposition
Commercial Professional Services

Peace of mind for business–critical uses
Client Stories
Client
Discovery Education is the academic division of Discovery
Communications Inc.
Deliverables
One Place, an educational portal for schools to create and deliver
professional and user-created video and web content.

One Place built on Liferay Portal and Liferay Journal CMS

Customized by Liferay Professional Services

Content Management and Collaborative Learning

WebCasting

Federated Search

Single Sign On
Client Stories
“Liferay Portal was by far the most cost effective and
efficient portal technology we considered.”
– Steve Bergman, CIO
Goodwill Industries International
Client
Goodwill Industries International, one of the world’s largest nonprofit organizations. Last year, local Goodwills collectively
provided employment and training services to more than 720,000 individuals and generated revenues of $2.65 billion.
Deliverables
Public web site and intranet

Public website Goodwill.org published and managed using Liferay Journal CMS

MyGoodwill intranet enables worldwide collaboration and real-time learning

Low acquistion and maintenance costs

Key Features:
 Collaborative chat and message board
 Blogs for knowledge sharing
 Visitor-updateable Wikis
 Interface to Computer-Based Training modules
 Document repository

Expert Professional Services:
 Customizations estimated at six to eight weeks were done over one weekend
Client Stories
“Liferay’s turnaround on our project was exceptional. Thanks
to their ideas and input, the end result is an excellent
working relationship and a quality site that exceeded
HanseMerkur’s expectations.” – Dr. Horst Karaschewski,
Head of Application Development
HanseMerkur
Client
HanseMerkur is the second-oldest insurance company in Germany offering a full range of insurance coverage. Deliverables
HanseMerkur.de

Scalability – Liferay Portal’s CMS easily manages HanseMerkur’s 350+ pages of mixed content. Liferay Portal
enables HanseMerkur to add hardware incrementally to comfortably scale the site in complexity and size.

Enhanced marketing potential – Search Engine Optimization (SEO) now enables the site to automatically and
dynamically optimize its visibility on leading Web search engines, keeping the HanseMerkur brand at the forefront
of consumer minds.

Improved site functionality – The portal acts as an aggregator of services and allows the end-user to complete
an insurance policy via the website.
Liferay Clients & Deployments
Telecom
 Covad Communications
 Deutsch Telecom
 LG, Inc.
 O2 (UK) Limited
 Pantech USA
 Peer 1 Communications
Software/Technology
 Actuate
 Borland Software
 FireScope
 IBM France
 LogicBlaze
 Symantec
Not-for-Profit / Government
 Case Foundation
 Christian Science Monitor
 Goodwill Industries International
 International Fund for
Agriculture Development (UN Agency)
 NASA
Financial Services
 Employers Direct Insurance Company
HanseMerkur (Germany)
 Noridian Mutual Insurance Company
 Sparkasse KölnBonn (Germany)
Undisclosed:
 American Financial Services Group
 Large German Investment Bank
 Pioneering Online Brokerage
Retail/Services
 AutoZone
 HSBC Stars On Ice
 Jason's Deli
 Mitsubishi-Fuso
 Oakwood Worldwide
 Pepsi
Education
 Discovery Education
 Madrid School System
 Utah Education Network
 Washington University in St. Louis
Portals and Portlets
What is a Portal?

Screenshot of Yahoo
What is a Portal?
A site that provides several a single point of access to:


Information

Aplications: collaboration, content management, ...

Business Process

And more
Providing for each of them


Integration

Personalization

Single Sign On

Security

Search and navigation

And more
What is a portlet?

Portlets are web components--like
servlets--specifically designed to be
aggregated in the context of a composite
page. Usually, many portlets are invoked to
in the single request of a portal page

In Java defined by JSR-168

In preparation new spec. JSR-268
What is a portlet?
Do I need a portal?
Yes




Integration of several applications
Need personalization services
Can benefit from extra services
provided by the portal

Authorization, ...
No


You only have ONE application
What is Liferay Portal?
Liferay is the leading open source portal platform, built to efficiently deliver
enterprise-wide application and content integration. A Liferay-enabled
enterprise brings all aspects of the business (sales, supply chain, HR,
engineering, marketing, business development) into one framework. The result
is unprecedented gains in business intelligence, operational efficiency, and
individual productivity.
Characteristics of Liferay (1/2)
The full power of Open Source


With a business friendly license (MIT)
Vendor neutral


Works on all major vendors and dbs
Integration platform (SOA)


Strong support for web services, workflow, ESB, ...
Collaboration platform


Virtual communities, chat, wiki, ...
Big user community


Self-sustaining ecosystem that has grown over the
course of 6 years
Characteristics of Liferay (2/2)
Standards Compliant


JSR-168, JSR-170, WebDAV, SOAP, ...

Benchmarked security and scalability

Only portal compliant with all major IT
infrastructures

60+ Out of the Box Portlets

Flexible look & feel customization

Modern Architecture

Spring, Hibernate, Lucene, Axis, ...
Business Needs
Enterprise Intranet
Liferay Portal provides the tools needed to give users secure access to sensitive company
information and applications. Liferay not only manages groups within an organization (for example,
Executives, Marketing, Human Resources), it also ensures that people within those groups only
see what they're allowed to see.
Meanwhile, a Liferay administrator can get applications and content to the whole portal community
quickly and easily without having to maintain several different sites.
Business Needs
Corporate Extranet
Liferay Portal helps an organization create secure websites (extranets) for its clients or partners. For
example, a supplier of aftermarket automobile parts may work with several retail resellers that need to
access the company's inventory to order parts and check shipment status. Liferay makes it easy to
manage each reseller's access rights, content, and functionality, and quickly create branded extranets
for new resellers.
Business Needs
Web Publishing and Content
Management
Effective content management systems
(CMS) are a vital part of any organization.
In fact, content management is a natural fit
for a portal because of the need for secure
access and permissions (ie, who should be
able to delete a document from the
system?), distinct roles (writer, editor,
designer, administrator), and workflow
(edit, approve, publish).
Liferay Portal offers a built-in web
publishing and content management
solution, featuring full roles-based editorial
workflow, localization support, templates for
quick layout changes, and integrated
portlet-based publishing. It also offers a
standards-based document library to store
Office, PDF, image and other files.
Business Needs
Liferay Portal offers comprehensive
tools to help developers integrate
enterprise assets with an
integrated enterprise service bus,
workflow engine, web services
support (SOAP and REST), and
developer tools like an Eclipse
plug-in and Liferay Service Builder.
Liferay's coming Content
Interaction API will be designed to
create a unified interface for
working with content in Liferay
Portal regardless of source. Users
will be able to manage and publish
content from third-party systems
like Alfresco, Magnolia, Microsoft
Sharepoint, or Vignette with the
same interface used for Liferay's
built-in CMS.
Demo Time!
Highlighted Features
Personal communities
Virtual communities




Create them
Delegate their management
Collaboration portlets






Wiki
Blogs
Shared calendar
Message Boards
Chat
Highlighted Features
Content Management System






Journal
Document Library
Image Gallery
Tagging
Staging
Highlighted Features
Virtual hosting


Per Community


Easy creation of websites
Per Portal


Independent users, communities, data, ...
ASP support
Highlighted Features
WebOS




The Portal as an OS for the web
Freeform & desktop theme
Plugin Management System
Extending Liferay
How to extend Liferay Portal
1.
2.
3.
4.
Configuration
Themes & Layout templates
Portlets
Extension points (ext environment)


portal.properties
Spring
Configuration
portal.properties




Contains the main configuration options
Contains explanations for each prop.
Can be extended through
portal-ext.properties
system.properties



Contains the system related options
Can be extended through
system-ext.properties
Themes
A theme allows



Changing the look and feel of the
website
Customizing the main navigation
Each theme can be applied to



Each community website
Each page within the website
Layout Templates



A Layout Template defines the areas
of the page where portlets can be
placed
Developed in Velocity
Most used configurations provided
out-of-the-box
Portlet Development
Direct JSR-286 API


Similar to servlet but two phases
Bridges to existing tools


Struts, PHP, Ruby
JSF


Liferay provides examples for SUN RI,
MyFaces and ICEFaces
New frameworks include support for
portlets


Struts 2, Spring MVC
Developing a portlet
public class HelloWorld extends GenericPortlet{
protected void doView(
RenderRequest request,RenderResponse response)
throws PortletException, IOException {
response.setContentType("text/html");
response.getWriter().println(
"Hello world Portlet");
}
}
Developing a portlet


/WEB-INF/web.xml
/WEB-INF/portlet.xml
<portlet>
<description>HelloWorldDescription</description>
<portlet-name>HelloWorld</portlet-name>
<display-name>Hello World</display-name>
<portlet-class>com.test.HelloWorld</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
</portlet>
Developing a portlet
Understanding the two phases


Action: modifies state


The portal should not reinvoke it
Render: only shows content


The portal can invokes it many times
The portal can cache the result
Developing a portlet
public class HelloWorld extends GenericPortlet{
protected void processAction(
ActionRequest request,ActionResponse response)
throws PortletException, IOException {
String name = request.getParameter(“name”);
String msg = request.getParameter(“msg”);
SignBookService.addHello(name, msg);
response.setRenderParameter(“success”);
}
}
Legacy App Integration
Strategies for integrating existing
applications:






Iframe based solution
Proxy
Portlet bridges
Portlet as entry point or summary
Convert to portlet
SSO solutions:




Basic auth
Form
CAS
Extension Points

Most used provided through
portal.properties
 Example: authentication
Full customization through Spring



ext-spring.xml
Allows creating a custom:




Implementation of any service
Implementation of persistance classes
Transaction Manager (JTA)
DataSource configuration
Reusable Services
When developing on top of Liferay
keep in mind:




Most of Liferay's functionality is
provided through a Business Service
Layer
The Service Layer can be invoked
through Java, Http, SOAP, ...
You can create your own services with
ServiceBuilder
Most used services


UserService, GroupService
Conclusions
Use a portal platforms when several
applications have to be integrated
Portals offer advanced services: use
them
Out-of-the-box functionality allows
you to:






Get to production very fast
Concentrate on what matters you most
Extensibility is a key feature of a
portal platform

www.liferay.com (Company)

www.liferay.com/web/guest/downloads (Download)

demo.liferay.net/ (Demo)

www.liferay.com/web/guest/devzone/forums (Forums)

www.liferay.com/web/guest/stories (Success Stories)
For more information, contact:
Jorge Ferrer
Software Architect
Liferay, Inc.
Enterprise. Open Source. For Life.
[email protected]