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]
© Copyright 2024