29
All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny [email protected]

All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny [email protected]

Embed Size (px)

Citation preview

Page 1: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

All Hands Meeting 2005

GridSphere: A Portal Framework

Jason Novotny

[email protected]

Page 2: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

What is a Portal?

“A portal is a web based application that commonly provides personalization, single sign on, content aggregation from different sources and hosts the presentation layer of Information Systems”(JSR 168)

Grid/Science Portals build upon the familiar Web portal model, such as Yahoo or Amazon, to deliver the benefits of Grid computing to virtual communities of users, providing a single access point to Grid services and resources.

Page 3: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Portal Bridges Users and Services

Page 4: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Application Portals

A Portal is only as good as the underlying deployed infrastructure

Portal development often involves debugging underlying middleware

Many application portals are stovepipe solutions that provide a complete solution with very little customization capabilities• Separation of presentation and login• Generally hard coding of underlying Grid infrastructure

details Lack of real usability has made it difficult to test and evaluate

user interfaces Scientific portals require much more support for persistence and

robust transactions than ordinary eCommerce style portals Web application development still remains a tedious task with

little in the way of reusable components, forcing developers to constantly “re-invent” the wheel

Page 5: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Portal / Content Management 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 (JSR-127) ratified • Specifies an event based user interface for web presentation

development

JSR 170 Content Management API • Jakarta Jackrabbit project provides open source implementation

Page 6: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

What is a Portlet?

Standardized packaging model to share portlet applications among portal vendors

Builds off Servlet API and spec. so no major surprises for existing Java portal developers

Supports window states and mode settings like desktop environment API provides useful methods for storing per user data and configuration

settings

Page 7: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

www.gridsphere.org

Page 8: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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• Template project generation and build scripts makes life

easier for developers 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

Page 9: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

GridSphere 2.0 Feature List ... Persistence of data provided using Hibernate OQL for

database support• Supports many databases including hsqlDB, MySQL, Postgres,

Prototype 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, Arabic and Chinese!

Pluggable authentication modules allows admin to select among supported modules, or develop new ones: Hashed password, JAAS (GridPortlets has MyProxy auth module)

Open-source and 100% free! :-)

Page 10: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

What makes GridSphere different?

Already many other OS portals out there:• Jetspeed2, uPortal, StringBeans, Exo, Liferay, Jboss

A handy template build system using Ant:• ant new-project

Lightweight: no EJB, based on popular, robust libraries e.g. Hibernate for persistence

Ability to add support for new authentication schemes with pluggable auth modules descriptor

Visual UI tags and beans makes presentation development much easier

Support for the Grid!! • GridPortlets offered as add-on webapp• Provides Library and collection of portlets for:

Credential management, job execution, data transfer (gridftp)

Page 11: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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.

Page 12: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Portlet Life-Cycle

The GridSphere portlet container loads and instantiates portlet classes.

Portlet Container

PortletsRendered output

init

render

destroy

processAction

Portal

Browser

Page 13: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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 attributesSupported markups, portlet modes and window statesDisplay name and title informationSecurity role informationSupported localesSpecifying caching information

Page 14: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

GridSphere Presentation

Portal uses header and double layer tabbed pane to organize content

Portal layout specified as XML descriptor:<portlet-tab>

<title>Examples</title>

<portlet-tabbed-pane style="sub-menu">

<portlet-tab>

<title lang=”en”>Hello</title>

<portlet-panel>

<grid-layout>

<portlet-frame>

<portlet-class>org.gridlab.gridsphere.portlets.examples.HalloWelt.1</portlet-class>

</portlet-frame>

</grid-layout>

</portlet-panel>

</portlet-tab>

</portlet-tabbed-pane>

</portlet-tab>

Page 15: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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" %><portlet:defineObjects/>

<ui:form action="login">

<ui:inputfield name="username" size="8" maxlength="20"/>

<ui:passwordfield name="password" size="8" maxlength="20"/>

</ui:form>

Page 16: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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

Page 17: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

GridSphere Security

Access control based on 4 defined role priorities within a group:• Guest < User < Admin < Super

A guest is anyone that has not logged in and has access to public website

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

Page 18: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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.

Page 19: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

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

Page 20: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

New GridSphere features GS portlet development model including portlet services, visual tags/beans

made compliant with other containers!

Page 21: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

New GridSphere features

Integration with Jakarta Portals-bridges project• Can now use existing Struts applications in GridSphere!

Can now add new roles• Associated with existing role priorities of Guest, Admin, User and

Super• Portlet web applications can provide role descriptor

Added new tracking portlet and tag attributes for monitoring user actions in the portal• Can monitor most popular functions and even download

statistics in Excel format New layout developments using pure CSS and XHTML Support for JAAS authentication module

Page 22: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

GridSphere in Action!

One step installation-- just “ant install”

Page 23: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Ingredients of a successful OS project

A primary goal has been to engage global community• GGF hosted GridSphere tutorials • UK eScience GridSphere workshop March 2004• Thousands of downloads all over the world

80% commercial / 20% academic

Adopt standard / open source engineering practices• Mail lists (over 200 users subscribed)• CVS • JIRA Bug tracker bugs.gridsphere.org

Listening to users and developers• New features added depending on community

demand

Page 24: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Open Grid Portals

www.opengridportals.org formed after March Mardi Gras workshop to build grid portlet community

Advertise projects developing grid portal solutions

Advertise portlet development in specific application domains e.g. astrophysics, earth science, biosciences

Provide repository / references to reusable grid portlets

Provide knowledge exchange in grid portal development / deployment

Page 25: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

OpenGridPortals.org

Page 26: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

GridSphere Project Sponsors

University of San Diego• BIRN portal project to provide tools to biomedical researchers• Telescience portal controlling large scale microscopes, data

management Albert Einstein Institute, Berlin, Germany

• Astrophysics portal allowing researchers to submit and analyze scientific simulations, resource monitoring, job tracking

• Possible Max Planck wide portal collaboration Poznan Supercomputing and Networking Center, Poland

• Involved in many major EU funded projects• Intelli Grid project• HPC Europa

Page 27: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Ongoing Collaborations Cactus portal at Albert Einstein Institute

• Interface to Cactus numerical relativity application / provide physicists with interface for launching jobs & viewing results

Grid Portal at Canadian National Research Council • Provide controlled remote access to NMR spectroscopy

instruments GEON earth sciences portal used to manage/visualize/analyze

vast amount of geoscience data and large scale databases GeneGrid portal at Belfast eScience Center

• Goal is to create a “virtual bioinformatics laboratory” • major involvement with lifesciences and biotechnology

companies Pgrade portal at SZTAKI Hungary & Univ. Westminster UK

• Creation, execution and monitoring of complex workflows Many, many more…

Page 28: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Wishlist of Development Areas Single Sign On Standards / Identity Solutions

• Liberty / (Grid)Shibboleth / OpenSAML / pubcookie / JOSSO / CredEx

Plugging into existing user/account databases More flexible / custom portal layout components Provide mechanism for existing websites/portals to just add portlets as

needed and not require entire GS portal Possible migration to Spring service framework Performance / load testing xWiki portlet integration More responsive UI’s using AJAX technologies

• XMLHttpRequest + JavaScript• AJAX Tag Library available

Continue to focus on standards / emerging technologies• WSRP(?)• JSF already supported (one of the first to do so)• Content management and repository standards JSR 170 / Jakarta Slide

• (Grid) Business Process Management Eclipse plugins / IDE integration / drag and drop etc.

Page 29: All Hands Meeting 2005 GridSphere: A Portal Framework Jason Novotny Jnovotny@ncmir.ucsd.edu

Conclusion

GridSphere environment allows for distributed portal development

Portlet model is a widely supported standard and offers higher-level abstraction for development of end-user functionality

GridSphere provides a standards compliant portlet implementation plus much, much more! :-)

Grid portlets provides core set of portlets for grid functionality as well as API for developing new grid enabled portlets and user interfaces

GridSphere has received world wide acclaim and a growing number of collaborations as a top grid portal platform!