430 likes | 517 Views
Technology Update on GridSphere. Jason Novotny (jnovotny@ucsd.edu) Oliver Wehrens (wehrens@aei.mpg.de) Michael Russell (russell@man.poznan.pl). Agenda. Past, Present & Future GridSphere Features Technologies. Past, Present & Future. The GridSphere Portal.
E N D
Technology Update on GridSphere Jason Novotny (jnovotny@ucsd.edu) Oliver Wehrens (wehrens@aei.mpg.de) Michael Russell (russell@man.poznan.pl)
Agenda • Past, Present & Future • GridSphere Features • Technologies
The GridSphere Portal • Originally funded by the EU GridLab project spanning 3 years since 2002 • Overall goal to build the best open source standards compliant portal designed to meet the needs of the Grid community • Bringing together best of breed technologies from both web and grid world • Building a community of users and developers and continuing to add new exciting scenarios
How it all started... • Think back to 2002… • Early Grid Portal projects: Grid Portal Development Kit, HotPage, Astrophysics Simulation Collaboratory • GPDK and HotPage received significant attention as early interfaces to the Grid • Introducing Web Portals and portlet concept • Jetspeed 1 early portal demonstrating power and concept of portlets • Commercial application vendors providing in-house portlet-like solutions • No real standards and landscape was quickly evolving….
A few key milestones... • Spring 2002: Completed design document and analysis of existing portal / grid solutions • August 2002: Wrote the first line of code • December 2002: Functional portal prototype using Portlet API borrowed from IBM WebSphere API • 2003: GridSphere evolves into highly functional portal complete with core set of portlets, sophisticated service model and visual tag library • January 2004: JSR 168 Portlet API implementation • February 2004: GS appears in IBM developerWorks article • March 2004: GS passes Sun Technology Compatibility Kit • November 2004: OGCE is JSR 168 compliant and can be dropped into GridSphere portal demonstrating true interoperability! • December 2005: We are part of the Expert Group for the next Portlet specification (JSR 286)
Community • 250+ subscribers to the mailinglist • Many Project around the world adopted it • HPC Europa, D-Grid, P-Grade, BIRN, Telescience, Australian Virtual Observatory, UK E-Science ... • Help from many countries • e.g. we got localization in chinese, arabic and japanese and code contributions for GT 4 • Lots of workshop/talks • UK E-Science workshops, APAC workshop Gold Coast, GGF Brussels/Seoul , Supercomputing, Portal workshops in Baton Rouge, Edinburgh and San Diego ... • Next workshops: July, Portals and Portlets 2006 Edinburgh UK, November GCE 2006 at Supercomputing Tampa USA
Source Code • Website: http://www.gridsphere.org • Includes documentation, news, partners • Subversion: http://svn.gridsphere.org • All code is now in subversion, free access • Bugtracker: http://bugs.gridsphere.org • Jira bugtracking system • Mailinglists • https://www.gridlab.org/mailman/listinfo/gridsphere-dev • https://www.gridlab.org/mailman/listinfo/gridsphere-users
Current Funding • Core developers now have their own teams • Jason Novotny leading the BIRN portal team at SDSU, USA • Michael Russell leading the Portal Efforts at PSNC in Poland (including HPC Europa, OMII) • Oliver Wehrens leading the development of portals within the german national D-Grid initiative, also member of the portal team at Center for Computation and Technology (CCT), Louisiana State University, USA
Biomedical Information Research Network • Goal: Enable new understanding of neurological disease by integrating data across multiple scales from macroscopic brain function to its molecular and cellular underpinnings • Migrating from Perl to GridSphere • Protected content will be available w/ single sign on. • 160+ public pages • 600~ protected pages • Collaboration Work Space • User Information Management • Enhanced Project Management • Collaboration Tools • Using technnologies like GAMA, Myproxy, SRB
Poznan Supercomputing and Networking Center • GGF Involvement • Co-founded European Grid Forum which later lead to GGF • Co-founded Grid Scheduling Architecture Research Group • Involved in Simple Application Grid API (SAGA) Working Group • Gridge Toolkit, includes... • GridSphere • Grid Resource Management System (GRMS) • Grid Authorization Service (GAS) • Current EU Projects • BeInGrid, HPC-Europa, InteliGrid, OMII-Europe, BREIN, QoSCosGrid...
D-Grid • Many german research institutions participated in various Grid projects • National Grid initiative were started by many countries • In 2005 the german government funded an e-Science project covering • Grid computing • Knowledge management • e-Learning
D-Grid (cont) • Project is funded in the first phase till 2008 • Several communities are part of the Grid Computing division • Astronomy • Climate • Engineering • Life Science • High Energy Physics • The ‘Integration project’ provides knowledge and help to the communities • GridSphere was choosen to be the portal platform for all these communities
Easy to customize • In self defined Tabs a user can organize the portlets he wants to have • 1/2/3 column predefined layout is available • Administrator can add more flexible layouts
GridSphere Features • Portlet API passed Sun TCK and is 100% JSR 168 compliant • Additional Portlet API implementation nearly fully compatible with IBM's WebSphere 4.2. • 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.
GridSphere Features (II) • 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 • Support for Spring Framework • Persistence of data provided using Hibernate for database support
GridSphere Features (III) • Portlet Bridge support (Struts, JSF) • 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. And now Arabic, Chinese, Japanese as well • Open-source and 100% free! :-)
GridSphere Portal Framework • The primary goal of the GridSphere Project is to develop a Grid portal framework that we call GridSphere Grid Portal. • GridSphere Portal Framework is a JSR-168 compliant portlet container that offers a set of core portlets that provide the base functionality we think is required for all Web portals. • It also provides a framework for developing and packaging portlets as well as additional libraries to make portlet development easier
GridSphere Grid Portlets • The GridSphere Portal Framework is a portlet container which is designed to be web application independent. Indeed, one of the key advantages of the Portlet API is the reuse of web applications. • Thus, the GridSphere Portal Framework does not contain any support for using Grid technologies. • Instead, GridSphere’s Grid related functionality is contained in a web application we call Grid Portlets. • GridSphere Grid Portlets, together with the GridSphere Portal Framework, offers a generic Grid portal and can be used to develop application-specific Grid portal applications.
Questionnaire • We did a questionnaire end of last year • Spring Framework support • Java Server Faces support • More complex examples, tutorials • Easier authentication • More portlets with GridSphere (Wiki, CMS, ... ) • Support for more (Grid) Middleware (Unicore, LSF, PBS, Condor...) • Support for more Application Servers (Weblogic, Websphere) • Struts, Tapestry support • IDE Support (Eclipse, IntelliJ IDEA) • We work and will work on the feature request, we are committed to make this the best grid portal toolkit
What is AJAX? • Asynchronous Javascript and XML • (coined 2005) • Makes use of XMLHttpRequest object in modern browsers to fetch data w/o page refresh • Relies on Javascript/CSS/DOM
Why use AJAX? • No need to refresh entire page in many situations-- saves time • Functionality like auto complete (Google Suggest) or form validation can be made much more responsive enhancing usability • DOM manipulation allows websites to offer more of a “desktop” environment “drag and drop”, progress bars, etc.
GridSphere + AJAX • Current issues with portlet development • No standard to add external CSS • No standard to add external JavaScript • No standard for how to reference a portlet in the DOM • 2 main usage scenarios: • Portlet developers could themselves use AJAX to create more dynamic and responsive portlets • GridSphere could use AJAX to dynamically update portlet without refreshing entire portal page
AJAX enabled portlets (1) • 1st use case (portlet developer uses AJAX) • GS provides proprietary mechanisms to include CSS and JS • Uses renderResponse.setProperty(…) method of JSR 168 Portlet API • CSS_HREF - sets an external CSS stylesheet to add to page header • JAVASCRIPT_SRC - sets external javascript libraries to be included • BODY_ONLOAD - allows javascript methods to be included as onload attribute to HTML body tag
AJAX enabled portlets (2) • 2nd case (GS uses AJAX behind the scenes) • Using UI actionlink and actionsubmit tags, boolean attribute “useAjax” is provided • Add tag to JSP code e.g: • This results in action being triggered in portlet, and only markup for portlet is returned • XMLHttpRequest is used to return markup fragment and DOM handling inserts modified markup <ui:actionlink action=“myAction” useAjax=“true”> Hi there</ui:actionlink>
New UI widgets • Javascript provides more interactive client side capabilities • Downside is that code can be nasty to debug and issues with browser versions remain • Solution: Wrap into UI tags! • Example components that use JS: • Slider • Progress bar • Color chooser • Tree menus • Calendar Rich editors • etc.
Calendar Widget • Uses Simple Calendar Widget: http://www.garrett.nildram.co.uk/calendar/scw.htm • Tag usage example: • Date can be retrieved in portlet code: <ui:calendar beanId="myCal"/> CalendarBean myCal = event.getCalendarBean(“myCal”); String date = myCal.getDate(); Works in IE and Firefox, Safari coming soon!
Text Editor widget • Provides rich text editor with standard features • Usage similar to CalendarTag: • Works in Firefox and IE 6+ <ui:texteditor beanId="myTE"/> TextEditorBean myCal = event.getTextEditorBean(“myTE”); String richtext = myTE.getValue();
Portlet Tag • Portlets are normally added to layout descriptor • How can we add portlets to a legacy website? • May not want use GridSphere layout/look and feel • May want to just simply add a portlet to a website (non-portal) <portlet-tab label="helloportlet"> <title lang="en">Hello</title> <table-layout> <row-layout> <column-layout width="50%"> <portlet-frame> <portlet-class> jsrtutorial#ActionHelloPortlet </portlet-class> </portlet-frame> </column-layout>
Portlet Tag (cont.) • Answer: The UI Portlet Tag! • Can be used in any legacy JSP page • Label used for linking, bookmarking • PortletId uses GS convention for portlet naming i.e. <webapp name>#<portlet name> <%@ taglib uri="/portletUI" prefix="ui" %> <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> <%@ taglib uri="/portletAPI" prefix="portletAPI" %> <portletAPI:init/> <ui:portlet label=”mylabel" portletId="demo#AnyPortlet"/>
GridSphere 2.x • Final GridSphere 2.2 release will contain • Tracking statistics for clicks on portlets • Spanish locale • New widgets for UI tag lib, like TextEditorWidget and CalendarWidget • Certificate login for portal • Fixed some CSS bugs • AJAX support for rendering only selected layout components • Improved DB performance using EHcache library • Improved role/group management • Administrators can confirm user self generated accounts
GridSphere 3.0 • Scheduled for release in Summer 2006 • License • API changes • Customization changes • JSR 286 • New portlets • Improved CSS Support • Improved documentation
License • GridSphere Portal Framework and GridPortlets used to have the GridSphere Open License (GOL) • This was basically just the Globus License • Some people asked why we do not have a recognized license • We are switching to Apace 2.0 license with the next major release • Basically: You can use GridSphere for anything you want, you just have to include the license
API changes • We will deprecate the old IBM Websphere portlet API • We encourage everybody to use JSR 168/286 portlet API • Refactoring of the namespace (org.gridlab.gridsphere to org.gridsphere) • This will cause a need to reimport the correct classes in the portlets (your IDE can do that) • Some changes in internal classes
Customization • Easier customization of the portlet url • Better css support • More themes • More colors • More flexible • A Guide for customization
JSR 286 • We are part of the Expert Group JSR 286 • The first public draft is expected in may (now) • The final specification is expected to be done in Jan 2007 • We will work as soon as possible to get GridSphere JSR 286 compliant • Early versions might be in SVN by the time the first public release is out (depending on the policy of the JCP)
New portlets • We do not have any ‘extra’ portlet besides the core ones in GridSphere • This allows us to have a clear focus on the core framework • We might have an separate portlet package with additional portlets in the future • Those can contain a wiki or a notebook portlet • This is not decided yet and depends on user requirements
Documentation • Will improve documentation • Writing on a guide with a full portlet coding example • Explanation of some questions we see on the mailinglists • Redo the Administrators and Users Guide • Work has been started on that already
Open • We are always open to new suggestions • New features • Improvements • Code contribution • Bugreports ;-) • Ideas • Contact me Jason Novotny jnovotny@ucsd.edu