GridSphere: A portal framework, J Novotny, M Russell, O Wehrens

Tags: portal users Group Manager, administrator approval, presentation development, Web Services for Remote Portlets, web applications, Servlet API, Presentation Components, content Portal, visual component, render, Core services, Layout Engine, Presentation tags, Portlet, portal, service, portlets, service framework, mapping objects, persistent objects, Portlet Services, persistence classes, Security Access control, Oliver Wehrens, Jason Novotny, Michael Russell, Albert Einstein Institute Introduction, Login Capabilities
Content: GridSphere: A Portal Framework Jason Novotny [email protected] Michael Russell [email protected] Oliver Wehrens [email protected] Albert Einstein Institute
Introduction Web based portals provide a customizable user environment. Portals act as a gateway between users and services Portal standards have evolved to enable separation of business functions from application server Portlets are the driving concept to deliver reusable web functionality
Portal standards JSR 168 Portlet API ratified August 2003 Similar to Servlet API in providing reusable web applications Ratified by vendors including BEA, Sun, IBM, Oracle, Plumtree and others... WSRP (web services for Remote Portlets) ratified by OASIS committee Specifies how web services can be consumed by standards compliant portals Java Server Faces ratified Specifies an event based user interface for web presentation development
Portlets Standardized packaging model makes it easier to share portlet applications among portal vendors. Supports window states and mode settings like desktop environment
Portlet Implementations Current vedors offer compliant portals or fix-it packs... IBM WebSphere Oracle 10g Portal Sun Application Server Jakarta Pluto open-source implementation of Portlet API Used by Jetspeed, uPortal, wsrp4j Jetspeed 2 still not out... Emerging open source projects Exo and Liferay And GridSphere...
GridSphere 2.0 Feature List Portlet API passed Sun TCK and is 100% JSR 168 compliant Additional Portlet API implementation nearly fully compatible with IBM's WebSphere 4.2. (GridSphere 2.0) Support for the easy development and integration of new portlet applications Higher-level model for building complex portlets using visual beans and the GridSphere User Interface (UI) tag library. Flexible XML based portal presentation description can be easily modified to create customized portal layouts. Built-in support for Role Based access control (RBAC) separating users into guests, users, admins and super users. Sophisticated portlet service model that allows for creation and reusability of new business logic with support for persistence of data
GridSphere 2.0 Feature List ... Persistence of data provided using Hibernate OQL for database support Integrated Junit/Cactus unit tests for complete server side testing of portlet services including the generation of Test Reports. GridSphere core portlets: Login, Logout, Locale settings Profile personalization and Layout customization Administration portlets for creation of users, groups, portlet management and portal layout customization Localization support in the Portlet API implementation and portlets support French, English, German, Czech, Polish, Hungarian and Italian. Open-source and 100% free! :-)
GridSphere Implementation The GridSphere portlet container is implemented as a web application and requires a hosting environment such as the Jakarta Tomcat container. Many additional libraries are used and deployed to the servlet container during installation.
Portlet Life-Cycle The GridSphere portlet container loads and instantiates portlet classes.
Rendered output
initialized
render
processAction
destroy
GridSphere Portlet Portal Container
Portlets
JSR 168 Portlet Interfaces Portlet, GenericPortlet All portlets must implement Portlet interface or subclass from GenericPortlet that define portlet lifecycle methods PortletConfig Provides portlet with its initial configuration RenderRequest, ActionRequest Encapsulates the a request sent by client RenderResponse, ActionResponse Represents response to client PortletContext Defines portlets view of the portlet container in which portlet is runninng PortalContext Provides vendor information and portal properties
PortletRequest additions PortletPreferences Contains user-specific persistent data PortletSession Holds user-specific information needed to provide personalized view PortletWindow Defines "window" in which portlet is displayed PortletMode Defines "mode" in which portlet is operating User information defined in request attribute as a map of key value pairs
Portlet Modes View The standard view of a portlet on a Web page Edit Allows portlet to capture user-specific parameterization, which leads to personalized view of the portlet Help A portlet should provide online-help with this mode Configure (not required by spec. but supported) Allows a portlet to display its own configuration mode Generally, you want to restrict access to this mode to portal administrators
Portlet Deployment Descriptor A Portlet Deployment Descriptor provides the portlet container with portlet configuration information Defines a collection of portlet definitions as an XML schema e.g. portlet.xml A portlet definition defines configuration information valid for a single portlet/servlet for all users Specifies portlet deployment attributes Supported markups, portlet modes and window states display name and title information security role information Supported locales Time for portlet to expire cached output
Deployment Descriptor (cont) A TextMessagingPortlet TextMessagingPortlet TextMessaging org.gridlab.gridsphere.extras.portlets.textmessaging.TextMessagingPortlet 60 text/html help text/wml edit help en TextMessaging TextMessaging textmessaging GUEST auth-user
GridSphere Lifecycle
client request
init()
Core services
action()
action()
render()
Layout Engine render()
init() processAction() TabbedPane Tab Frame TitleBar etc... doView()
GridSphere Servlet
Users Layout
Portlets
GridSphere Presentation Portal uses header and double layer tabbed pane to organize content Portal layout specified as XML descriptor: Examples Hello org.gridlab.gridsphere.portlets.examples.HalloWelt.1
Presentation Components Layout component library similar to Java AWT or Swing Basic layout components: PortletTabbedPane PortletTab PortletFrame PortletTitleBar PortletPanel PortletGridLayout Some components act as containers for other components e.g. PortletPanel All components have init, action and render lifecycle methods Follows the Composite Design Pattern Components are marshalled/unmarshalled to XML using Castor libraries
Presentation Tag Library GridSphere provides value-added UI JSP tag library Goal is to minimize HTML usage UI tags can provide platform independence e.g. support HTML and WML Example tag usage in JSP: <%@ taglib uri="/portletUI" prefix="ui" %> <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> Field Name="username" size="8" maxlength="20"/>
Presentation tags continued Additional "container" tags make it possible to quickly create interfaces that hide CSS/HTML from presentation design <%@ taglib uri="/portletUI" prefix="ui" %> <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
Visual Bean Model For each visual tag, there is a visual bean counterpart that provides access to the visual component from the portlet. A visual bean is obtained from a FormEvent object public void doViewUserFiles(RenderFormEvent event) throws PortletException { log.debug("in LoginPortlet: doViewUser"); RenderRequest request = event.getRenderRequest(); ListBoxBean lb = event.getListBoxBean("filelist"); lb.clear(); String userid = (String)request.getAttribute("userid"); String[] list = userStorage.getFileList(userid); ... }
Portlet Services A "portlet service" moves logic from a portlet to a reusable service that may be used by other portlets PortletService is the base interface for all portlet services. PortletService instances are created by a PortletServiceFactory. Similar to Portlets, PortletService objects are configured at initialization with a PortletServiceConfig object. A service may be created per instance or cached PortletServices can make use of GridSphere provided persistence classes. Similar to Spring service framework
Portlet Services Descriptor Portlet Manager Service Provides Administration Capabilities for Portlet Web Applications org.gridlab.gridsphere.services.core.registry.PortletManagerService org.gridlab.gridsphere.services.core.registry.impl.PortletManagerServiceImpl Login Service Provides Login Capabilities org.gridlab.gridsphere.services.core.user.LoginService org.gridlab.gridsphere.services.core.user.impl.LoginServiceImpl
Persistence GridSphere Framework includes basic support for persistent objects using PersistenceManager singleton PersistenceManager uses open-source Hibernate libraries which provides mechanisms for mapping objects to SQL and an object query language (OQL) Hibernate supports many databases including hsqlDB, MySQL, Postgres, Oracle, etc.. Every portlet app manages its own database keeping data independent
GridSphere Security Access control based on 4 defined roles within a group: Guest < User < Admin < Super A guest is anyone that has not logged in An admin has permissions to manage users in the group and edit group layout Super is the portal administrator A group defines a set of deployed portlets with access restrictions Users can be in multiple groups, but can only add portlets that they have access to
Core User Portlets Login/Logout portlet Enables user to logon/logout Allows user to refresh password if forgotten Configurable option enables new users to request an account . Locale portlet Simple locale chooser in the portal banner offers support for 7 languages User profile portlet Enables users to configure personal information e.g. name, email, locale, preferences Layout configuration portlet Enables users to customize their layout by creating new tabs which portlets can be easily added to. GlobusWorld 2004
Core Administrative Portlets User Manager Portlet Enables admins to create/delete/edit portal users Group Manager Portlet Enables admins to add/remove users to/from portlet groups Enables admins to select whether a group is public or private (public means anyone can join, private requires an administrator approval) Portlet Manager Portlet Enables admins to start, stop, or redeploy a portlet application Layout Manager Portlet Enables admins to edit existing group layouts GlobusWorld 2004
Extra Portlets GridSphere provides "extras" portlet application: Text Messaging portlet communicates to IM users photo album portlet allows users to upload and display photos Poll portlet to create polls and display results Chart portlets demonstrating a chart service that uses JFreeChart to display plots, timeseries graphs, etc. Commander portlet manages secure portal filesystem to upload, download and transfer files
Future Directions Integrate JSF into portlet development Develop a WSRP "consumer" portlet using WSRP4J Support JSR 170, content management Further improve upon the GridSphere portlet development model Continue seeking collaborations with other groups requiring portal frameworks

J Novotny, M Russell, O Wehrens

File: gridsphere-a-portal-framework.pdf
Author: J Novotny, M Russell, O Wehrens
Published: Tue Jul 13 14:30:58 2004
Pages: 28
File size: 0.83 Mb


, pages, 0 Mb

Laurie Anderson for dummies, 22 pages, 0.91 Mb
Copyright © 2018 doc.uments.com