=Liferay Overview - Intalio Conf

download =Liferay Overview - Intalio Conf

of 52

Transcript of =Liferay Overview - Intalio Conf

  • 8/8/2019 =Liferay Overview - Intalio Conf

    1/52

    Liferay PortalOverview

    Presenter: Joseph Shum

  • 8/8/2019 =Liferay Overview - Intalio Conf

    2/52

    Liferay Portal is the world's leading open source

    enterprise portal solution using the latest inJava and Web 2.0 technologies.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    3/52

    Thought Leadership and Innovation

    Created in 2000 and open sourced in 2002 First portal to introduce Web OS First portal to deploy AJAX enabled user interfaces Members of the JSR 286 (Portlet Specification) & JSR 314 (Java

    ServerFaces Specifications) Committees

    Active Community

  • 8/8/2019 =Liferay Overview - Intalio Conf

    4/52

    Thought Leadership and Innovation

    Ready to go

    Built in Content Management System(CMS)andCollaboration Suite

    Out-of-the-box usablilitychoose fromover 60 portlets and over 20 themes

    Out-of-the-box development tools Out-of-the-box support for22

    languages

    Runs on all major application servers,databases and operating systems(over 700 deployment configurations)

    Business-friendly MIT License

    Liferay Portalis the world's leading open source enterprise portal solution using the latest in Java

    and Web 2.0 technologies.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    5/52

    Easy to use

    Award-winning AJAX-enabled userinterface (e.g. Web OS)

    Community-centric services for easycreation of extranets, intranets, and

    social networks

    Familiar desktop UI and conventions Delegable granular security and role

    based authorizations

    Liferay Portalis the world's leading open source enterprise portal solution using the latest in Java

    and Web 2.0 technologies.

    Thought Leadership and Innovation

  • 8/8/2019 =Liferay Overview - Intalio Conf

    6/52

    Thought Leadership and Innovation

    Technically sound

    Service Oriented Architecture(SOA) with web services support

    LDAP support and integration Portal as a Platform services for

    rapid portal development anddeployment

    Secure enterprise applicationintegration framework

    Ready integration:

    Liferay Portalis the world's leading open source enterprise portal solution using the latest in Java

    and Web 2.0 technologies.

    PentahoIntalio

    TerracottaICEfaces

    jQuery

    Business IntelligenceBusiness Process Management

    Scalability and high availabilityRich Internet applicationsDynamic user experiences

    Standards Compliant: JSR-286, JSR-170, JBI, WSRP

  • 8/8/2019 =Liferay Overview - Intalio Conf

    7/52

    Thought Leadership and Innovation

  • 8/8/2019 =Liferay Overview - Intalio Conf

    8/52

    Thought Leadership and Innovation

    Active Community

    Over1 Million downloads & over60,000 downloads per month Over 5800 registered community participants Over 50 active community contributors

    Growing, Profitable Company

  • 8/8/2019 =Liferay Overview - Intalio Conf

    9/52

    Active Community

    Over 1 Million downloads and over60,000 downloads per month

    66% of downloads LiferayPortal

    33% of downloads Liferay IDE& Plug-ins

    1.3 million total downloads todate

    Over 5800 registered communitymembers

    Over 50 active volunteer contributors

    Liferay Portal is the most widely

    downloaded, Open Source Portal in the

    world.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    10/52

    Application Servers

    Databases

    Operating Systems

    Liferay Portal supports ALL major app servers, databases, and operating systems, with over 700

    deployment configurations.

    Technologies Used Apache ServiceMix, Ehcache, Hibernate, Java J2EE/JEE, jBPM, jQuery, ICEfaces JavaScriptFramework, Lucene, MuleSource ESB, PHP, Ruby, Seam, Spring Framework & AOP, Struts &Tiles, Tapestry, Velocity

    Standards JSR-286, JSR-127, JSR-170Seats on the JSR-286 (Portlet 2.0) and JSF-314 (JSF 2.0) committees

    AJAX, iCalendar & Microformats, WebDAV OpenSearch, Open platform with support for web services including: JSON, Hessian, Burlap,REST, RMI, WSRP

    Languages Liferay Portal supports I18N for any language, out-of-the-box, and ships with default translations for22 languages. Additional languages can be added very easily.

    Arabic, Catalan (Spain), Chinese (Simplified), Chinese (Traditional), Czech, Dutch, English (US),

    Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Persian, Portuguese,Russian, Spanish, Swedish, Turkish, Vietnamese

    Out-of-the-Box Collaboration Suite Content Management System Developer Tools

    Product Detail

  • 8/8/2019 =Liferay Overview - Intalio Conf

    11/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    12/52

    Overview for Intalio Conference

    Presentation Outline

    What is Liferay Portal? What are the JSR 168 and JSR 286 specs and why do we need them? What does Liferay Portal add on top of the spec implementation?

    Liferay Portal features What is a portlet?

    Portal/Portlet Lifecycle Portlet Mode, Window State, Preferences Portlet development

    Portal integration points

  • 8/8/2019 =Liferay Overview - Intalio Conf

    13/52

    Overview for Intalio Conference

    What is Liferay Portal?

    Liferay Portal is the world's leading open source enterprise portalsolution using the latest in Java and Web 2.0 technologies.

    Runs on all major application servers & servlet containers,databases, and operating systems with over 700 deploymentcombinations

    JSR 168 and JSR 286 compliant Out-of-the-box usability with over 60 portlets pre-bundled Built-in Content Management System (CMS) Built-in Collaboration suite Personalized pages for all users

  • 8/8/2019 =Liferay Overview - Intalio Conf

    14/52

    Overview for Intalio Conference

    What is Liferay Portal?

    Hot-Deployable Theme/Portlet Architecture with OnlineSoftware Catalog

    Freeform / WebOS layout Just-in-time Portlet rendering Fine-grained permissions system

  • 8/8/2019 =Liferay Overview - Intalio Conf

    15/52

    Overview for Intalio Conference

    What are JSR 168 and JSR 286?

    JSR 168 and JSR 286 are Portlet Specifications They were created out of a need to have a specification for displaying

    multiple applications on the same page.

    The specs define the lifecycle of a portlet as well as itscharacteristics/look and feel.

    They standardize the way portlets are developed.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    16/52

    Overview for Intalio Conference

    User Management Permissions

    Liferay Portal Membership

    Roles

    Pages Community RolesCommunities

    Pages Organizational RolesOrganizations

    User Groups

    Users

  • 8/8/2019 =Liferay Overview - Intalio Conf

    17/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    18/52

    Overview for Intalio Conference

    Custom Templates and Layouts

  • 8/8/2019 =Liferay Overview - Intalio Conf

    19/52

    Overview for Intalio Conference

    What is a portlet?

    A portlet is a web component that processes requests and generatesdynamic content.

    The content generated by a portlet is also called a fragment (e.g.HTML, XHTML, WML) and can be aggregated with other fragments toform a complete document.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    20/52

    Overview for Intalio Conference

    What is a portlet?

    Portlets as fragments of an HTML page:

  • 8/8/2019 =Liferay Overview - Intalio Conf

    21/52

    Overview for Intalio Conference

    Portlet Lifecycle

    Portlets are different from servlets in that they have a 2 phasecommit.

    With servlets, the service() method processes all requests. With portlets, the processAction() method processes the requests

    and the render() method draws the contents of the portlet on thepage.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    22/52

    Overview for Intalio Conference

    Portlet Lifecycle

    init() Initializes the Portlet

    processAction() process input from a user action.

    render() Renders the content output.

    destroy() Cleans up the portlet

  • 8/8/2019 =Liferay Overview - Intalio Conf

    23/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    24/52

    Overview for Intalio Conference

    Liferay Implementation

    Portal RequestLifecycle (1)PortalRequestProcessor

    Portlet RequestLifecycle (x)PortletRequestProcessor

    These extend TilesRequestProcessor in Struts!

  • 8/8/2019 =Liferay Overview - Intalio Conf

    25/52

    Overview for Intalio Conference

    Portlet Characteristics

    Portlets have additional characteristics that make them differentfrom Servlets

    Portlet Modes Window States Portlet Preferences

  • 8/8/2019 =Liferay Overview - Intalio Conf

    26/52

    Overview for Intalio Conference

    Portlet Modes

    Each portlet has a current mode, which indicates the functionthe portlet is performing.

    All JSR 168 compliant portals should support the View, Edit andHelp modes.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    27/52

    Overview for Intalio Conference

    Window States

    Window states indicate the amount of portal page space thatwill be assigned to a portlet.

    All spec compliant portals should support the minimized,maximized and normal window states.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    28/52

    Overview for Intalio Conference

    Portlet Preferences

    Portlets can be configured to provide a custom view or behaviorfor different users.

    For example, a weather portlet can show the temperature inChicago for one user and the temperature in LA for anotheruser.

    These configurations are represented as a persistent set ofname-value pairs and are referred to as portlet preferences.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    29/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    30/52

    Overview for Intalio Conference

    Portlet Development Plugins

    Types: Portlets, Themes, Layout Templates Developed as independent software components Distributed and deployed as WAR files Can be organized in plugin repositories Liferay provides the Plugins SDK to help with development of

    plugins.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    31/52

    Overview for Intalio Conference

    Portlet Development Extension

    Allows management of: Configuration files Custom source code Custom JSPs Modified JSPs

    Provides different sublevels of extensibility

  • 8/8/2019 =Liferay Overview - Intalio Conf

    32/52

    Overview for Intalio Conference

    Portlet Development Extension

    Allows management of: Configuration files Custom source code Custom JSPs Modified JSPs

    Provides different sublevels of extensibility

  • 8/8/2019 =Liferay Overview - Intalio Conf

    33/52

    Overview for Intalio Conference

    Portlet Development Extension

    portal(-ext).properties Main configuration options: deployment, themes, hibernate,

    cache, instance settings, users, groups, language, session, auth,

    integration, events, ...

    system(-ext).properties Convenient way to provide and extend the Java System

    properties used by Liferay

    The extension points or hooks allow creating custom classes for themost common extensibility needs

    Configurable through portal.properties Examples: Authentication chain, Upgrade and verification processes,

    Deployment processes, Database access and caching, User fieldsgeneration and validation, session events, permissions, modellisteners, ext-spring.xml.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    34/52

    Overview for Intalio Conference

    Portlet Development Source

    Liferay Portal is distributed with Source Code under the businessfriendly MIT license.

    Recommended method: Sponsored Development Alternative: Develop for project and contribute back

  • 8/8/2019 =Liferay Overview - Intalio Conf

    35/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    36/52

    Overview for Intalio Conference

    Plugins

    The Plugins SDK is a simple environment for thedevelopment of Liferay plugins.

    Portlet, theme and layout development usedportlets, themes and layouts.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    37/52

    Overview for Intalio Conference

    Plugins

    The

  • 8/8/2019 =Liferay Overview - Intalio Conf

    38/52

    Overview for Intalio Conference

    Plugins

    The

  • 8/8/2019 =Liferay Overview - Intalio Conf

    39/52

    Overview for Intalio Conference

    Plugins

    The

  • 8/8/2019 =Liferay Overview - Intalio Conf

    40/52

    Overview for Intalio Conference

    Plugins

    Portlets can make use of any application framework thatLiferay supports

    Struts JSF Spring Tapestry Flex

  • 8/8/2019 =Liferay Overview - Intalio Conf

    41/52

    Overview for Intalio Conference

    Plugins

    Portlets can make use

    Flex

  • 8/8/2019 =Liferay Overview - Intalio Conf

    42/52

    Overview for Intalio Conference

    Extension

    The Extension Environment allows for complete customization ofLiferay.

    Internal portlets can be modified. Liferay's .jsp pages can be changed. Customizations are kept separate from the Liferay source. The Liferay source code does not have to be modified.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    43/52

    Overview for Intalio Conference

    Extension

    Developers have a clear upgrade path. The combination of the MIT license and the extension

    environment means that organization-specific customizations donot need to be contributed back to the Liferay project.

  • 8/8/2019 =Liferay Overview - Intalio Conf

    44/52

    Overview for Intalio Conference

    Extension

  • 8/8/2019 =Liferay Overview - Intalio Conf

    45/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    46/52

    Overview for Intalio Conference

    Extension

    The Extension Environment allows for complete

  • 8/8/2019 =Liferay Overview - Intalio Conf

    47/52

    Overview for Intalio Conference

    Extension

  • 8/8/2019 =Liferay Overview - Intalio Conf

    48/52

    Overview for Intalio Conference

    Extension

  • 8/8/2019 =Liferay Overview - Intalio Conf

    49/52

  • 8/8/2019 =Liferay Overview - Intalio Conf

    50/52

    Overview for Intalio Conference

    Portal Integration Points

    Filters

  • 8/8/2019 =Liferay Overview - Intalio Conf

    51/52

    Overview for Intalio Conference

    Portal Architecture

  • 8/8/2019 =Liferay Overview - Intalio Conf

    52/52