GridSphere: A Portal

feelingmomInternet και Εφαρμογές Web

7 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

89 εμφανίσεις

All Hands Meeting 2005

GridSphere: A Portal
Framework

By: Jason Novotny

Jnovotny@ncmir.ucsd.edu

Presented by: Ramil Manansala

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.

Portal Bridges Users and Services




Application Portals


A Portal is only as good as the underlying deployed
infrastructure


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

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

What is a Portlet?


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


Standardized packaging model to share portlet applications among
portal vendors

www.gridsphere.org

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


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! :
-
)


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)


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.

Portlet

Container

Portlets

Rendered output

init

render

destroy

processAction

Portal

Browser

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

Specifying caching information

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>

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>

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

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

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.

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

New GridSphere features


GS portlet development model including portlet services, visual tags/beans
made compliant with other containers!

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

GridSphere in Action!


One step installation
--

just “ant install”

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

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

OpenGridPortals.org

GridSphere Project Sponsors


University of California, San Diego


BIRN Portal Project to provide tools to biomedical researchers


Define processes, procedures and establish best practices so that the
BIRN is reliable, scalable and extensible to biomedical research
programs
-

able to support the work of thousands of researchers.



Push the envelop of biomedical informatics and computer science by
causing the development of new techniques in databases, information
retrieval, visualization and computational processing.


Telescience Portal controlling large scale microscopes, data
management



GridSphere Project Sponsors


BIRN Project


Enabling collaborative research at 33 research institutions
comprised of 41 research groups


GridSphere Project Sponsors


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


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…


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.


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!