Introduction To Grid Portals (A Tutorial) : Rob Allan E-Science Centre CCLRC, Daresbury Laboratory
Introduction To Grid Portals (A Tutorial) : Rob Allan E-Science Centre CCLRC, Daresbury Laboratory
(A Tutorial)
Rob Allan
E-Science Centre
CCLRC, Daresbury Laboratory
Rob Allan
Portal Tutorial
Learning Outcomes
We will study Grid portals, which are Web-based facilities that provide
a personalised, single point of access to Grid resources that support
the end user in one or more tasks. From this chapter, you will learn:
• What is a Grid portal and what kind of roles will it plays in the Grid?
• First-generation Grid portals.
• Second generation Grid portals.
• The features and limitations of first generation Grid portals.
• The features and benefits of second generation Grid portals.
1. Introduction
2. First Generation Grid Portals
3. Second Generation Grid Portals
4. Summary
5. Further Reading and Testing
Acknowledgements
• Mark Baker and Hong Ong (Portsmouth)
• Matthew Dovey and Mike Fraser (Oxford)
• Stephan Marceau (IBM)
• Jason Novotny and Mike Russell (GridLab)
• Dharmesh Chohan and Xiao Dong Wang (Daresbury)
• Rob Crouchley and Adrian Fish (Lancaster)
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
What is a Portal?
• Personalization
– Different set of Portlets creating content for different users
• Single sign on
• Content aggregation
– Aggregation is the action of integrating content from different
sources
• Hosts the presentation layer
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Customisable Portal Interfaces
HPCPortal
DataPortal
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
InfoPortal, MDS Browser
and Active Map
Operational
monitoring:
resource-centric
and site-centric
views of Grid
resource and
network status
http://www.grids.ac.uk/InfoPortal
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Why Portals?
We can consider two main types of Grid users, system developers and
end users. System developers are those who build Grid systems using
middleware packages such as Globus, UNICORE, or Condor. The end
users are the scientists and engineers who use the Grid to solve their
domain-specific problems perhaps via a portal.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Institutions need Autonomy and
Security
Grid Core
Middleware Consumer
Workplace: clients: PC,
desktop e.g. Globus TV, video,
clients AG
• HPCPortal. R.J. Allan, A.J. Richards and R.P. Tyer. Proc. AHM
2003. http://www.grids.ac.uk/HPCPortal/
• The XCAT science portal. S. Krishnan, R. Bramley, D. Gannon, M.
Govindaraju, R. Indurkar, A. Slominski, B. Temko, J. Alameda, R.
Alkire, T. Drews and E. Webb: In Proc. of SC 2001.
• A Computational Web Portal for the Distributed Marine Environment
Forecast System. T. Haupt, P. Bangalore, G. Henley: HPCN Europe
2001: 104-113.
• The Hotpage Portal, https://hotpage.npaci.edu/
• JiPANG, a Jini-based computing portal system.T. Suzumura, S.
Matsuoka, H. Nakada: In Proc. of SC 2001.
• The DSG PORTAL, http://dsg.port.ac.uk/dsgPortal/
• The Gateway system: uniform web based access to remote resources.
T. Haupt, E. Akarsu, G. Fox, C-H. Youn: Concurrency - Practice and
Experience 12(8): 629-642 (2000).
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
More…
• Grappa, http://iuatlas.physics.indiana.edu/grappa/
• The Astrophysics Simulation Collaboratory Portal: A Science Portal
Enabling Community Software Development. G. Allen, G. Daues, I.
Foster, G. Laszewski, J. Novotny, M. Russell, E. Seidel, J. Shalf. Proc.
of the 10th IEEE Intl. Symp. on High Perf. Dist. Comp 2001.
• The GENIUS Portal https://genius.ct.infn.it/ This is being used in the
EGEE project for its training and dissemination
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
1st Generation Portals
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Properties
• A three-tiered architecture, consisting of an interface tier of a Web
browser, a middle tier of Web servers, and a third tier of backend
services and resources, such as databases, high performance
computers, disk storage, and specialized devices.
• A user makes a secure connection from their browser to a Web
server.
• The Web server then obtains a proxy credential from a proxy
credential server and uses that to authenticate the user.
• When the user completes defining the parameters of the task they
want to execute, the portal Web server launches an application
manager, which is a process that controls and monitors the actual
execution of Grid task(s).
• The Web server delegates the user’s proxy credential to the
application manager, so that it may act on the user’s behalf.
In some systems, the application manager publishes an event/message
stream to a persistent event channel-archive, which describes the
state of an application’s execution and can be monitoredPresenter
by
Robthe user
Name
Allan
through their browser. Facility
Portal Name
Tutorial
Grid Services Provided
• Authentication: When users access the Grid via a portal, the portal
can authenticate users with their usernames and passwords. Once
authenticated, a user can request the portal to access Grid resources
on the user’s behalf.
• Job Management: A portal provides users with the ability to manage
their job tasks (serial or parallel), i.e., launching their applications via
the Web browser in a reliable and secure way, monitoring the status
of tasks and pausing or cancelling tasks if necessary.
• Data Transfer: A portal allows users to upload input data sets
required by tasks that are to be executed on remote resources.
Similarly the portal allows results sets and other data to be
downloaded via a Web browser to a local desktop.
• Information Services: A portal uses discovery mechanisms to find
the resources that are needed and available for a particular task.
Information that can be collected about resources includes static and
dynamic information such as OS or CPU type, current CPU load, free
memory or file space, and network status. In addition, other details
such as job status and queue information can also be retrieved.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Implementation
The first generation Grid portals mainly use GT2 to provide Grid
services. One main reason for this is that Globus provides a complete
package and a standard way for building Grid enabled services.
• A dynamic graphical user interface (GUI) based on HTML pages, with
JSP (Java Server Pages), or JavaScript. Common Gateway Interface
(CGI) and Perl are also used by some portals. CGI is an alternative to
JSP for dynamically generating Web contents.
• The secure connection from a browser to backend server is via
Transport Layer Security (TLS) and Secure HTTP (S-HTTP).
• Typically, a Java Servlet or Java Bean on the Web server services
requests from a user and accesses backend resources.
• MyProxy and GT2 GSI are used for user authentication. MyProxy
provides credential delegation in a secure manner.
• GT2 GRAM is used for job submission.
• GT2 MDS is used for gathering information on various resources.
• GT2 GSIFTP or GT2 GridFTP for data transfer.
• The Java CoG provides the access to the corresponding
Globus services for Java programs. Presenter Name
Rob Allan
Facility
Portal Name
Tutorial
MyProxy
myproxy.grid-support.ac.uk
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Using MyProxy
1. Execute myproxy-init command on the computer where your Grid
credential is located to delegate a proxy credential on a MyProxy
server. The delegated proxy credential normally has a lifetime of one
week. The communication between the computer and the MyProxy
server is securely managed by TLS. You need to supply a user name
and pass phrase for the identity of your Grid credential. Then you
need to supply another different MyProxy pass phrase to secure the
delegated proxy credential on the MyProxy server.
2. Log into the Grid portal with the same username and MyProxy pass
phrase used for delegating the proxy credential.
3. The portal uses myproxy-get-delegation command to retrieve a
delegated proxy credential from the MyProxy server using your
username and MyProxy pass phrase.
4. The portal accesses Grid resources with the proxy credential on your
behalf.
5. The operation of logging out of the portal will delete your delegated
proxy credential on the portal. If you forget to log off,
Presenter Name
then the proxy credential will expire at the lifetime specified.
Rob Allan
Facility Name
Portal Tutorial
Java CoG Kit
The Java Commodity Grid (CoG) Kit provides access to GT2 services
through Java APIs. The goal of the Java CoG Kit is to provide Grid
developers with the advantage to utilize much of the Globus
functionality, as well as, access to the numerous additional libraries
and frameworks developed by the Java community. Currently GT3
integrates part of Java CoG, e.g., many of the command-line tools in
GT3 are implemented with the Java CoG.
The Java CoG has been focused on client-side issues. Grid services that
can be accessed by the toolkit include:
• An information service compatible with the GT2 MDS implemented
with Java Native Directory Interface JNDI;
• A security infrastructure compatible with the GT2 GSI implemented
with the iaik security library;
• A data transfer mechanism compatible with a subset of the GT2
GridFTP and/or GSIFTP;
• Resource management and job submission with the GT2 GRAM
Gatekeeper;
• Advanced reservation compatible with GT2 GARA;
Presenter Name
• A MyProxy server managing user credentials. Rob Allan
Facility Name
Portal Tutorial
GridPort and HPCPortal
GridPort 2.0 (GP2) is a Perl based Grid portal toolkit. The purpose of
GP2 was to facilitate the easy development of application specific
portals. GP2 is a collection of services, scripts and tools that allow
developers to connect Web-based interfaces to backend Grid
services. The scripts and tools provide consistent interfaces between
the underlying infrastructure, which are based on Grid technologies
such as GT2, and standard Web technologies such as CGI.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
GridPort Layers
• Client Layer: represents the consumers of Grid portals, typically Web
browsers, PDAs, or even applications capable of pulling data from a Web
server. Clients interact with a GP2 portal via HTML form elements and use
secure HTTP to submit requests.
• Portal Layer: consists of portal-specific codes. Application portals run on
standard Web servers and handle client requests and provide responses to
those requests. One instance of GP2 can support multiple concurrent
application portals, but they must exist on the same Web server where they
share the same instance of the GP2 libraries. This allows the application
portals to share portal-related user and account data and thereby makes
possible a single-login environment. GP2 portals can also share libraries, file
space, and other services.
• Portal Services Layer: GP2 and other portal toolkits or libraries reside at
the portal services layer. GP2 performs common services for application
portals including the management of session state, portal accounts, and Grid
information services with GT2 MDS.
• Grid Services Layer: consists of those software components and services
that are needed to handle user requests to access the Grid. GP2 employs
simple, reusable middleware technologies, e.g., GT2 GRAM for job submission
to remote resources; GT2 GSI and MyProxy for security and authentication;
GT2 GridFTP and the San Diego Supercomputer Center (SDSC) Storage
Resource Broker (SRB) for distributed file collection and management [56];
and Grid Information Services based primarily on proprietary GP2
information provider scripts and the GT2 MDS. Presenter Name
Rob Allan
Facility
Portal Name
Tutorial
Distributed Component Architecture
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Adding Value to the Infrastructure
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
GridPort, HPCPortal and GROWL
GP2 can be used in two ways. The first approach requires that GT2 be
installed, because GP2 scripts wrap the GT2 command line tools in the
form of Perl scripts executed from CGI-Bin. GT2 GRAM, GSIFTP,
MyProxy are used to access backend Grid services. The second
approach does not require GT2, but relies on the CGI scripts that
have been configured to use a primary GP2 Portal as a proxy for
accessing GP2 services, such as user authentication, job submission,
and file transfer. The second approach allows a user to quickly deploy
a Web server configured with a set of GP2 CGI scripts to perform
generic portal operations.
HPCPortal uses the C API in the Globus toolkit for MDS, GridFTP and
GRAM. There is a front-end CGI script which passes data from the
user’s form interface to the back end Globus code which in turn
submits the remote job. The front and back end services can be
connected using a web service call so do not need to be located on the
same server (previous figure).
GROWL uses the same back end services but provides a C programming
API to the user in the form of a function liibrary. Presenter Name
Rob Allan
Facility
Portal Name
Tutorial
GPDK and the Java™ World
GPDK is another Grid portal toolkit that uses Java Server Pages (JSP)
for portal presentation and Java Beans to access back end Grid
resources via GT2. Beans in GPDK are mostly derived from the Java
CoG kit.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Java Services in GPDK
Grid service beans in GPDK can be classified as follows. These beans can
be used for the implementation of Grid portals.
• Security: The security bean, MyproxyBean, is responsible for
obtaining delegated credentials from a MyProxy server. The
MyproxyBean has a method for setting the username, password, and
designated lifetime of a delegated credential on the Web server. In
addition, it allows delegated credentials to be uploaded securely to
the Web server.
• User Profiles: User profiles are controlled by three beans:
UserLoginBean, UserAdminBean and the UserProfileBean.
– The UserLoginBean provides an optional service to authenticate
users to a portal. Currently, it only sets a username/password and
checks a password file on the Web server to validate user access.
– The UserAdminBean provides methods for serializing a
UserProfileBean and validating a user's profile.
– The UserProfileBean maintains user information including
preferences, credential information, submitted job history, and
computational resources used. The UserProfileBean is generally
instantiated with session scope to persist for the duration
Presenter of the
Name
Rob Allan
user's transactions on the portal. Facility
PortalName
Tutorial
More…
• Job Submission: The JobBean contains all the necessary functions used in
submitting a job including memory requirements, name of executble code,
arguments, number of processors, maximum wall clock or CPU time, and the
submission queue. A JobBean is passed to a JobSubmissionBean that is
responsible for actually launching the job. Two varieties of the
JobSubmissionBean currently exist. The GramSubmissionBean submits a job
to a GT2 GRAM gatekeeper that can either run the job interactively or
submit it to a scheduling system if one exists. The JobInfoBean can be used
to retrieve a job related timestamped information including the job ID,
status, and outputs. The JobHistoryBean uses multiple JobInfo beans to
provide a history of information about jobs that have been submitted. The
history information can be stored in the user's profile.
• File Transfer: The FileTransferBean provides methods for transferring
files. Both GSIFTPTranferBean and the GSISCPTransferBean can be used
to securely copy files from source to destination hosts using a user's
delegated credential. The GSISCPTransferBean requires that GSI enabled
SSH [57] be deployed on machines to which file transfer via the GSI
enhanced “scp”. The GSIFTPTransferBean implements a GSI enhanced FTP
for third-party file transfers.
• Information Services: The MDSQueryBean provides methods for querying a
Lightweight Directory Access Protocol (LDAP) server by setting and
retrieving object classes and attributes such as OS type, memory, and CPU
load for various resources. LDAP is a standard for accessing information
directories on the Internet. Currently, the MDSQueryBean makes Presenter use
Rob Allan of the
Name
Mozilla Directory SDK [27] for interacting with a LDAP server. Facility
PortalName
Tutorial
Comparison of 1st Generation Portals
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
What are the Restrictions?
First generation Grid portals have been focused on providing basic task-
oriented services, such as user authentication, job submission, monitoring,
data transfer. However, they are typically tightly coupled with Grid
middleware tools such as Globus. The main limitations of first generation
portals can be summarized as follows.
• Lack of Customization: Portal developers instead of portal users normally
build portals because the knowledge and expertise required to use the portal
toolkits, as described in this chapter, is beyond the capability of most Grid
end users. When end users access the Grid via a portal, it is almost
impossible for them to customize the portal to meet their specific needs,
e.g., to add or remove some portal services.
• Restricted Grid Services: First generation Grid portals are tightly coupled
with specific Grid middleware technologies such as Globus, which results in
restricted portal services. It is hard to integrate Grid services provided by
different Grid middleware technologies via a portal of this generation.
• Static Grid Services : A Grid environment is dynamic in nature with more
and more Grid services are being developed. However, first generation
portals can only provide static Grid services in that they lack a facility to
easily expose newly created Grid services to users. Presenter Name
Rob Allan
Facility
Portal Name
Tutorial
2nd Generation Portals
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
What is a Portlet (in a nutshell)?
• A Java technology based Web component, managed by a Portlet
container, that processes requests and generates dynamic content;
• Used by Portals as pluggable user interface components that provide a
presentation layer;
• The content generated by a Portlet is also called a fragment
– A piece of markup (e.g., HTML, XHTML, WML) adhering to certain
rules and can be aggregated with other fragments to form a
complete document
• The content of a Portlet is normally aggregated with the content of
other portlets to form the Portal page;
• The lifecycle of a Portlet is managed by the Portlet container;
• Integration component between applications and Portals that enables
delivery of an application through a Portal;
• Eliminates vendor specific Portlet API;
• Applications can be delivered through any Portal almost immediately.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Client-Portlet Interaction
• Web clients interact with Portlets via a request/ response paradigm
implemented by the Portal;
• Normally, users interact with content produced by Portlets
– example by following links or submitting forms
– resulting in Portlet actions being received by the Portal, which
are forwarded by it to the Portlets targeted by the user's
interactions
• The content generated by a Portlet may vary from one user to
another depending on the user configuration for the Portlet;
• Portlet contains an implementation of Model-View-Control (MVC)
pattern.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet MVC Pattern
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlets vs. Servlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlets differ from Servlets
• Portlets can not:
– send redirects
– send errors to browsers directly
– forward requests
– write arbitrary markup to the output stream to assure that they
don’t distract the Portal Web application which uses them
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Advantages
Portlets also have many standard features that are not available to Java
servlets. One key feature is the built-in support to automatically use
different JSP interfaces with different user devices. This allows
users to write portlets that work on many devices, such as desktop
computers with modern Web browsers, or palmtop computers with
limited Web browsers, or alternatively Personal Digital Assistants
(PDAs), or Web-enabled wireless phones. Users do not need to
provide portability via the lowest common denominator. By reusing the
same underlying business logic, the portal server will choose the most
appropriate rendering for each client. Users can even have multiple
portlet controllers, which allows different page/ action sequences to
be used for each device type.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
JSR-168 Portlet Specification
• Developed as part of the Java Community Process
• Released August 2003
• Specification: http://www.jcp.org/en/jsr/detail?id=168
• Enables interoperability among Portlets and Portals
• Defines a set of APIs for Portlets
• Addresses standardization for
– Preferences
– User information
– Portlet requests and responses
– Deployment packaging
– Security
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
What is the Portlet Specification?
Defines:
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Life Cycle
The basic lifecycle of a portlet includes the following three parts:
• Initialisation, using the init class to initialise a portlet and put it into
service.
• Request Handling, processing different kinds of actions and
rendering content for different clients.
• Termination, using the destroy class to remove a portlet from a
portal page.
The portlet receives requests based on the user interaction with the
portlet or portal page. The request processing is divided into two
phases:
• Action processing: If a user clicks on a link in a portlet, an action is
triggered. The action processing must be finished before any
rendering of the portlets on the page is started. In the action phase,
the portlet can change the state of the portal.
• Rendering content: In the rendering phase, the portlet produces its
markup content to be sent back to the client. Rendering should not
change any state of the portlet. It refreshes a page without
modifying the portlet state. Rendering multiple portletsPresenter
on a page Name
can
be performed in parallel. Rob Allan
Facility Name
Portal Tutorial
Portlet Events
The typical sequence of events to access a Web page via portlets is given
below.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Life Cycle Methods
init()
– Called when the Portlet is instantiated by the container
– Intended to contain logic that prepares the Portlet to serve
requests
destroy()
– Called when the container destroys the Portlet
– to contain logic that cleans up when Portlet is no longer needed or
the server shuts down
processAction()
– Called after the user submits changes to a Portlet
– to process input from a user action
render()
– Called whenever the Portlet is redrawn by the desktop
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Specialized Render Methods
(GenericPortlet)
Developers can extend GenericPortlet and implement as many of these
specialized render methods as are necessary for their Portlet
doView
• to contain logic that displays the View page for the Portlet
doEdit
• to contain logic that displays the Edit page for the Portlet
doHelp
• to contain logic that displays the Help page for the Portlet
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Other Portlet Modes
Notes:
• In addition to these window states, JSR-168 allows the Portal to define
vendor-specific window states
• A Portlet can be called in any of these three window states, but is free
Presenter to
Name
Rob Allan
produce the same markup for all three states Facility Name
Portal Tutorial
Example
The figure shows a Web page with two portlets. A portlet on a portal has
its own window, a portlet title, portlet content (body) which can be
rendered with portlet.getContent() method, and some actions to
close, maximize or minimize the portlet.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Persistent Store
The Portlet can store persistent data for a specific user by using the
PortletPreferences object:
• Preferences can be read and written in the action phase, and read in
the render phase
• The preferred mode to write preferences is the Edit mode, which
provides the user with a customization screen
• The preferences can be either strings or string array values
associated with a key of type string
• Preferences can be preset with default values in the deployment
descriptor
• Preferences and the Portlet's definition in the deployment
descriptor together define a Portlet, sometimes called a Portlet
entity
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Session Scope
As Portlet applications are Web applications, they use the same session
as Servlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
The Portlet Container
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
More…
The Container
• Provides a runtime environment for Portlets implemented according
to the Portlet API
– Example Pluto
• In this environment Portlets can be instantiated, used and finally
destroyed
• Not a stand-alone container like the Servlet container
• Is implemented as a thin layer on top of the Servlet container
• Reuses the functionality provided by the Servlet container
Container Contract
• Much like Java Servlet extensions run inside a Servlet container
• Define a Portlet container that manages Portlets
• Contract is defined for the container to call methods during a
Portlet’s life cycle
• The Portlet developer can implement these methods to provide the
desired functionality
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Architecture Picture
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Container Separation
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portal Implements SPIs
The Portal must implement SPIs defined for the Portlet container.
Therefore,
• Runtime Interface (RI) introduces container services:
– pluggable components that can be registered at the container to
either extend or provide basic functionality
• The RI includes the following built-in container services:
– Information provider
• Gives the Portlet container information about the Portal and
its framework (URL generation with navigational state, Portlet
context, Portlet mode, and window-state handling)
– Factory manager
• how to get an implementation through a factory
– Log service
– Config service
• how to get configuration values
– Property manager (optional)
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Container Architecture
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Deployment
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Deployment
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Pluto
References
• Pluto http://jakarta.apache.org/pluto
• Pluto Eclipse plugin http://plutoeclipse.sourceforge.net/
Presenter Name
Rob Allan
Facility
Portal Name
Tutorial
WSRP
Web Services for Remote Portals (WSRP) defines a standard for
interactive, user-facing Web services that plug and play with
portals.
References
• WSRP Specification
http://www.oasis-open.org/committees/wsrp
• Open Source implementation of WSRP is called OASIS Presenter Name
Rob Allan
http://www.oasis-open.org/ Facility
PortalName
Tutorial
Potted History
OASIS TC
WebServices Web Service for Remote Portals
OASIS TC
WSIA Family
WSRP as the initial spec.
OASIS TC
Web Service User Interface
Web Service for Interactive Applications
uPortal
WebService channel
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Integrated Portals
GSI
Data Systems
DataPortal
Web Services
GridFTP
Web Services
HPCPortal
Web Services
Visualisation
HPC Systems
Platform
specific, Java C# WSRP Impl. on
Portlet API „Portlet API“ ... plain J2EE or .NET
local
Portlet APIs (JSR 168) (.NET) platform
Goal:
Portlets written to Portlet API can be published as WSRP services
WSRP services can be integrated through Portlet Proxies written Presenter
to Portlet API
Name
Rob Allan
Facility
Portal Name
Tutorial
WSRP Services Plug&Play with Portals
Registry
Find Publish
Portals
Portals
Clients WSRP
Clients Portals
WSRP
Portals
Portals
Services
WSRP
Portals
Web
Web Portals
Services
Web
Web
Web Services
Web
Web
Web Clients
Clients
Clients Portals Bind
Web
WebClients
Clients Portals
Portals
Portals
Clients
Clients
Clients Portals
Clients
Clients
e.g.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
WSRP and related Standards
Voice ...
(X)HTML WML cHTML
XML
WSRP WSRP/WSIA
Common Base WSIA
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Local and Remote Portlets
JetSpeed API
WebService
Server
WebService SOAP
Client
UDDI
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Simple WSRP Service – View only
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Interactive WSRP Service with transient
conversational State
• API
– getMarkup
– performInteraction/performBlockingInteraction
– releaseSessions
– initCookies
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Interactive WSRP Service with persistent
Entity
• API
– clonePortlets
– getMarkup
– performInteraction/performBlockingInteraction
– initCookies
– releaseSessions
– destroyPortlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Persistent Entity and Session State
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Other API
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Overview of WSRP
• ServiceDescription
– getServiceDescription
• Markup
• Portlet Management
– getMarkup
– getPortletDescription
– performBlockingInteraction
– clonePortlet
– releaseSessions
– destroyPortlets
– initCookies
– getPortletPropertyDescription
– getPortletProperties
• Registration – setPortletProperties
– register
– deregister
– modifyRegistration
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
JSR-168 and WSRP
• JSR-168 aligns closely with the WSRP
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
WSRP and JSR-168
Whereas JSR-168 defines a set of Java APIs that allows portlets to run
on any compliant portals, WSRP allows Web services to be exposed as
portlets in a plug-and-play fashion.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Distributed Portlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portal Grid
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
WSRP4J
WSRP4J can act as a bridge between JSR-168 and WSRP. It can both
export a portlet as a Web service and consume such a service
converting it into a pluggabe portlet.
Reference
• http://ws.apache.org/wsrp4j/
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portal Frameworks supporting Portlets
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
GridSphere
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Portlet Descriptor
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Developing Grid Portals with Portlets
Reference:
See proceedings of NeSC Workshop “Portals and Portlets 2003”
http://www.nesc.ac.uk/technical_papers/UKeS-2003-01/
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Extending the Model
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Continued…
The model is that a Grid Portlet interacts with a Grid service provided
by Grid middleware such as Globus to access backend resources.
Since Grid services provided by difference service providers using
different Grid middleware technologies can be exposed as standard
portlets, portals built from portlets are loosely coupled with Grid
middleware technologies.
Portal frameworks such as Jetspeed, WebSphere Portal, ad GridSphere
have been widely used for building Web portals with portlets.
They are being integrated with Grid services for constructing Grid
portals with Grid Portlets.
Currently no framework exists that can provide an integrated
development environment (IDE) in which a Grid portal can be visually
built with Grid Portlets that are associated with backend Grid
services.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
NMI Portal and OGCE
Reference
• http://collab.sakaiproject.org/portal
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Alliance Portal Services
• A Proxy Manager: portlet utility that allows users to load GSI proxy
credentials into their account via MyProxy.
• An LDAP Browser: portlet interface to access the contents of the
LDAP servers.
• A GridFTP Client: portlet provides the basic client functions of Grid
FTP with a user-friendly interface.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
More…
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Proxy List
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
LDAP Browser
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Job Launcher
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
GridFTP
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
Web Content in MyWorkspace
Presenter Name
Rob Allan
Facility
PortalName
Tutorial
State of the Art – Sakai
Sakai is an evolution of CHEF
• Java architecture re-factored to make use of new technology, such as Java
ServerFaces
• Partnership of 5 large US teaching institutions
• Log into http://collab.sakaiproject.org/portal using (id=guest, passwd=guest)
to see some of the available tools
• Principally aimed at educational portal development, course management,
workgroup management etc. - adopted by U. Michigan, Indiana U., MIT,
Stanford etc.
• But easily customised for e-Science projects, e.g. OGCE, NEESGrid
• Collaborative tools for research support
• Workflow engine
• Open Knowledge Initiative OSID (Open Services Interface Definitions)
• Tool portability profile to enable automonous development
• Around 27 FTEs with funding from institutions and the Andrew Mellon
Foundataion.
• Built on Java portlet standard JSR-168 plus CHEF v2/ uPortalPresenter
v3 framework
Name
Rob Allan
Facility
Portal Name
Tutorial
Sakai Timelines
Portal Technology
Jetspeed 2.0
uPortal 3.0 Java
Websphere É Swing
JSR-168 Technology
Sakai
Legacy Sakai GUI Sakai GUI
NEESGrid
CHEF 1 CHEF 2
Science of Collaboratories
SPARC
1st Generation
• First generation portals are tightly coupled with Grid middleware
technologies and can only provide static and restricted Grid services.
• First generation Grid portals lack the ability to be customised in that
portals can only be built by Grid system developers instead of users.
It is difficult for end users to modify an existing portal of this
generation to meet their specific needs.
• Portlet technology is gaining attention from the Grid community and
being used to build second-generation Grid portals.
2nd Generation
• Second generation Grid portals are focused on portlets that support
user customisability in that Grid users can build their personalized
portals. Portals of this generation can provide extensible and dynamic
Grid services.
• The Portlet API from JSR-168 is the portlet standard for writing
portable portlets.
Presenter Name
Rob Allan
Facility
PortalName
Tutorial