Grid Portlets Technology Update

advertisement
Grid Portlets
Technology Update
Portals & Portlets 2006
Michael Russell <russell@man.poznan.pl>
Poznan Supercomputing and Networking Center
http://www.man.poznan.pl
Portals & Portlets - Monday 17 July 2006
Agenda
• Grid Portlets 1.3
• Introduction to Vine & Portlet Vine
• Future Plans
Portals & Portlets - Monday 17 July 2006
GridSphere’s Grid Portlets (1.3)
• Original goal of GridSphere project was to support Grid
portal development.
• However, the GridSphere portlet container itself contains
no support for Grid technologies.
• Instead, GridSphere Project has developed support for
Grid related functionality in a web application we call Grid
Portlets.
• Grid Portlets can also be used to develop applicationspecific Grid portal applications.
Portals & Portlets - Monday 17 July 2006
What Grid Portlets contains
• Grid Portlets offers a collection of portlet services that
provide a high-level API and model of the Grid.
• Grid Portlets contains a set of portlets that provide basic
Grid functionality.
• Our portlets were not meant as a complete solution for
Grid portals, but rather to showcase the Grid Portlet
Services API.
• Grid Portlets is distributed with support for GT2 services
(Mds2, GRAM, GridFTP, etc).
Portals & Portlets - Monday 17 July 2006
The Portlets
• Credential Manager Portlet
• File Browser Portlet
• Job Submission Portlet
• Resource Browser Portlet
• Resource Registry Portlet
Portals & Portlets - Monday 17 July 2006
Resource Registry Portlet
• Administrators can use the Resource Registry Portlet to
specify what resources to make available to portal
users.
Portals & Portlets - Monday 17 July 2006
Resource Browser Portlet
• Users can then see the resources that have been made
available with the Resource Browser Portlet.
• The Resource Browser Portlet provides a simple
collection of user interfaces for viewing resources.
• As we’ll see later, the Resource Browser Portlet also
supports the ability to display custom user interfaces
for viewing resources.
Portals & Portlets - Monday 17 July 2006
Resource Browser Portlet
• The Resource Browser Portlet provides a generic
framework for listing and viewing resources (and
eventually editing, deleting, searching, etc).
• The Resource Browser Portlet offers an environment for
viewing resource profiles
•
A resource profile defines a collection of user interfaces for
listing and viewing resources of a given type.
•
The Resource Browser Portlet will display the appropriate
interfaces given the set of resources and profiles deployed to
the portal.
Portals & Portlets - Monday 17 July 2006
Example profile: GridScreen
• Grid Portlets provides the ability to display custom HTML
and images in its genericre .
Portals & Portlets - Monday 17 July 2006
Credential Manager Portlet
• Users can retrieve credentials from a MyProxy
credential repository and enable their credentials for
“single sign-on” to computing resources at login time.
Portals & Portlets - Monday 17 July 2006
File Browser Portlet
• Users can browse files on remote computing resources
in a manner similar to how they might browse files on
their desktop. We have made it relatively simple to
create new directories, transfer and delete files all with
simple HTML interfaces.
Portals & Portlets - Monday 17 July 2006
Support for logical files
• Support for logical files in one browser interface! So,
instead of “registering” a physical file, they would
“upload” or “import” a file.
Portals & Portlets - Monday 17 July 2006
Job Submission Portlet
• Users define jobs using the job
submission portlet. The Job
Submission Portlet presents a
generic interface for specifying a
job.
• As we’ll see later, Grid Portlets
supports the ability to add
custom user interfaces for
specifying and monitoring jobs.
Portals & Portlets - Monday 17 July 2006
Selecting a job resource
• Moreover, the Job Submission Portlet naturally supports
wizards. The generic job user interface that come with
Grid Portlets is implemented as wizard.
Portals & Portlets - Monday 17 July 2006
Viewing job history & output
Portals & Portlets - Monday 17 July 2006
Action Component Model
• Our Grid Portlets extend from Action Component
Portlet.
• Action Component Portlet acts as a controller for resuable
JSP based components called Action Components.
• The UIs in Grid Portlets can be reused in other portlet web
applications.
• The Resource Browser Portlet and the Job Submission
Portlet allow developers to plugin in their own action
components for viewing resources and submitting jobs.
Portals & Portlets - Monday 17 July 2006
Important Services
• Credential Manager Service
• Credential Retrieval Service
• File Browser Service
• Job Submission Service
• Resource Registry Service
Portals & Portlets - Monday 17 July 2006
Example Grid Portlets 1.X Code
• Copying a set of files with the File Browser Service.
FileBrowser srcBrowser = fileBrowserService.createFileBrowser(user, srcHost);
FileLocation srcLocation = srcBrowser.createFileLocation(srcPath);
FileBrowser dstBrowser = fileBrowserService.createFileBrowser(user, dstHost);
FileLocation dstLocation = dstBrowser.createFileLocation(dstPath);
FileCopy copy = srcBrowser.copy(srcLocation, dstLocation);
copy.waitFor();
if (copy.getTaskStatus().equals(TaskStatus.FAILED)) {
throw new TaskException(copy.getTaskStatusMessage());
}
Portals & Portlets - Monday 17 July 2006
Support for other Grid infrastructures
• Support for additional Grid technologies can be added by
creating a Grid portlets project and implementing the
Grid portlet services API.
• Past projects include:
•
GT3 Portlets
•
GT4 Portlets
•
gLite Portlets
•
GridLab Portlets
Portals & Portlets - Monday 17 July 2006
Grid Portlets Usage
• In the last year since Grid Portlets 1.0 was released, the
Grid portlet service model has really started to take off.
• Many people began by using our Credential Manager
Service and started using our Job and File portlet services
as well.
• The GT4 Portlets project was created almost entirely by
contributors.
• Some people are using our Action Component model
without much advertisement on our part.
Portals & Portlets - Monday 17 July 2006
Grid Portlets 1.X Problems
• Problems & Goals
•
Enable developers to run and test Grid portlet services
outside of a servlet / portlet container
•
Add transparent support for multiple VOs (major
reengineering required)
•
Make it easier to plugin new security mechanisms
•
Address several internal limitations (persistence)
•
Improve the UI (support for AJAX, etc)
Portals & Portlets - Monday 17 July 2006
Moving To PSNC
• The Grid Portlets project moved to PSNC in February 2006.
• Inherited a great team with several years of experience in
Grid programming.
• Working on exciting projects!
•
•
•
HPC Europa (Job submission, Credential tools)
InteliGrid (Support for VOs, GAS)
OMII-Europe (interoperability, integration, testing!)
• Adding support for new technologies in OMII, etc...
•
•
•
•
EGEE (Glite Already have started, CREAM services next ;-)
Unicore (Already have done ;-)
JSDL (Already have done ;-)
OGSA-DAI
Portals & Portlets - Monday 17 July 2006
Vine & Portlet Vine
• Grid Portlets 1.X has been refactored into 2 new code
bases:
•
Vine - A base API that includes built-in support for security,
persistence and classes for modeling “resources” within
“domains”.
•
Portlet Vine - Builds on top of Vine to provide visual
support for Vine in JSR 168 compliant containers.
• Vines are configured and deployed by creating a
Vineyard. For example, a portlet vineyard makes it easy
to deploy portlet vines to a servlet & portlet container
environment.
Portals & Portlets - Monday 17 July 2006
Vine
• Vine is a modular, robust, extensible service oriented
application framework.
• Inherited & greatly improved upon the Resource / Task
model of Grid Portlets. Core Vine contains no Grid
code.
• Provides transparent support for multiple VOs (modeled
as “domains”), multiple security mechanisms
(authentication), much more.
• More stable, with shutdown hooks, improved
managment of database connections, etc.
• No dependencies on GridSphere. Can be deployed
standalone or in any application container.
Portals & Portlets - Monday 17 July 2006
Vine Projects
• Vine is developed and deployed from one or more Ant
build projects.
• Vine projects contain a set of build configurations and a
directory structure for adding source code, libraries,
configuration files, shell scripts, media files, etc.
• Unified model for configuration: same for standalone,
servlet, portlet, signed apps, etc.
• The main Vine project provides ant targets for creating
and upgrading Vine projects to support the latest Vine
build targets.
Portals & Portlets - Monday 17 July 2006
Some Additional Features
• Vine supports the ability to create the Vine database
dynamically and update database schema at startup time.
• Vine can be installed to run from a specific location on a
system for use among multiple users (i.e. from
$VINE_HOME).
• Vine can be deployed from Java Web Start with the help
of our Jar Signer project and will dynamically setup a
vine user environment, with tools for extracting
configuration files and other data from the jars deployed
with it.
Portals & Portlets - Monday 17 July 2006
Resource, the key concept
• Resource is the central concept in Vine.
• A resource is simply defined as anything that can be
utilized, i.e. a computer, a web service, a person, a book.
• A resource has a distinguished name composed of the
resource names of its parent resources and its own
resource name.
•
“/Domain=root/HostResource=rage1.man.poznan.pl/Service
Resource=ssh2”
• Resources have a set of attributes that describe or
parameterize the resource for use within an application.
Portals & Portlets - Monday 17 July 2006
Basic Idea…
Portals & Portlets - Monday 17 July 2006
Tasks modeled as resources
Portals & Portlets - Monday 17 July 2006
Domains define the application
• A domain is a resource that contains a set of resources
and “sub domains”.
• All Vine services operate within a given domain.
• All Vine applications have a “root” domain, and sub-
domains defined therein. Sub-domains of root can define
their own resources, visible only to that domain.
• Sub-domains can also define “domain rules” for including
or excluding resources from their parent domains
• Domains can be registered at startup time through an XML
based resource registry as well as at runtime...
Portals & Portlets - Monday 17 July 2006
The Root Domain
Portals & Portlets - Monday 17 July 2006
Domains configuration
• Domains defined in a
•
•
common directory, with
sub-domains defined in
sub-directories.
Note that domains can
still contain overlapping
sets of resources.
But this structure makes
it easy to add / remove
domain defintions.
Portals & Portlets - Monday 17 July 2006
Sub-domains
• Here is a simple example of a sub-domain definition for
PSNC.
• We are saying only include those resources that have
“PSNC” or “PolishGridCA” in their resource name.
• All resources in the parent domain (in this case, the “root”
domain) that satisfy these requirements will be included in
the PSNC domain.
Portals & Portlets - Monday 17 July 2006
Vine Services
• Vine contains several core services, most of which are
concerned with initializing a Vine application when it is first
invoked.
• The most important service is the Resource Manager.
• The Resource Manager is utilized by all other services in
Vine projects to manage resource information.
Portals & Portlets - Monday 17 July 2006
Resource Manager
• Resource Manager provides methods for listing,
creating, updating and saving resource (entries) in the
Vine database.
// Get resource manager service
ResourceManager resourceManager = (ResourcerManager)
serviceContext.createService(ResourceManager.KEY);
// Create a host resource
HostResourceProvider hostResource = (HostResourceProvider)
resourceManager.createResource(HostResource.KEY);
// Set the host name of this resource
hostResource.setHost(”rage1.man.poznan.pl”);
// Save the host resource
resourceManager.saveResource(hostResource);
Portals & Portlets - Monday 17 July 2006
So for example...
• We also might want to use the Resource Manager to list all
active file tasks submitted by a user (in a given domain).
// Get resource manager service
ResourceManager resourceManager = (ResourcerManager)
serviceContext.createService(ResourceManager.KEY);
// List all active file tasks
List fileTaskList = resourceManager.getResourcesByTypeQuery(FileTask.KEY,
“resource.StatusValue=’ACTIVE’”);
Portals & Portlets - Monday 17 July 2006
Vine Philosophy
• Functionality is added in layers, Grid Vine for example,
provides its own feature-rich API built upon Vine concepts.
• Functionality is added by defining new types of resources.
• Users then deploy which sets of resources they want to
support for a given application.
• Users create domains to define the problem space in
which an application operates.
• A domain defines all the resources an application has to
work with, and hence the overall capabilities the
application provides.
Portals & Portlets - Monday 17 July 2006
Vine Projects
• Some of the Vine projects that have been created:
•
Grid Vine - Models Grid concepts
•
Groupware Vine - Models organizations, persons, etc.
•
GT2 Vine - Implements various Grid resources and concepts
with GT2
•
SRB Vine - Implements “file resource” concepts from Grid
Vine
•
Unicore Vine - Implements “info resource” concepts from
Grid Vine
•
Certificate Manager - Provides GUI application for
requesting certificates and creating credentials for use in
particular domains.
Portals & Portlets - Monday 17 July 2006
Comparing the two APIs
Grid Vine (NEW)
FileBrowser srcBrowser = fileResourceManager.createFileBrowser(srcHost);
FileLocation srcLocation = srcBrowser.createFileLocation(srcPath);
FileBrowser dstBrowser = fileBrowserService.createFileBrowser(dstHost);
FileLocation dstLocation = dstBrowser.createFileLocation(dstPath);
FileCopy copy = srcBrowser.copy(srcLocation, dstLocation);
copy.waitFor();
if (copy.getTaskStatus().equals(TaskStatus.FAILED)) {
throw new TaskException(copy.getTaskStatusMessage());
}
Grid Portlets (OLD)
FileBrowser srcBrowser = fileBrowserService.createFileBrowser(user, srcHost);
FileLocation srcLocation = srcBrowser.createFileLocation(srcPath);
FileBrowser dstBrowser = fileBrowserService.createFileBrowser(user, dstHost);
FileLocation dstLocation = dstBrowser.createFileLocation(dstPath);
FileCopy copy = srcBrowser.copy(srcLocation, dstLocation);
copy.waitFor();
if (copy.getTaskStatus().equals(TaskStatus.FAILED)) {
throw new TaskException(copy.getTaskStatusMessage());
}
Portals & Portlets - Monday 17 July 2006
Portlet Vine
• Portlet Vine builds upon the Action Component Portlet
development model and includes 2 central portlets:
•
Resource Registry Portlet
•
•
Extended to provide support for defining the root and subdomains.
Resource Browser Portlet
•
Lists resources within the active domain.
Portals & Portlets - Monday 17 July 2006
Portlet Vine Projects
• The following projects have been created:
•
Grid Portlets 2.0
•
GT2 Portlets 2.0
•
GS Portlets
•
•
•
•
•
Credential Manager Portlet
File Browser Portlet
Job Submission Portlet
Defines GT2 resource profiles
Provides new “domain login portlet”
• More will come very soon!
•
•
•
GT4 Portlets 2.0
Unicore Portlets
EGEE Portlets
Portals & Portlets - Monday 17 July 2006
Domain Login Portlet...
• Packaged with the GS Portlets Project
• Enables users to select a domain (VO) to login to.
• But we can adapt this approach to other portlet
containers!
Portals & Portlets - Monday 17 July 2006
Certificate Manager Application
• Builds upon Vine to allow users to “activate” credentials
•
for a particular domain.
Each domain can have its own collection of certificate
authorities, certificate repositories (MyProxy), etc.
Portals & Portlets - Monday 17 July 2006
Future Plans
• Vine, Porlet Vine and related projects scheduled for
release in September 2006.
• This will include a Grid Portlets 2.0 release, based on the
Vine application framework.
• Grid Portlets 2.0 will include significantly enhanced UIs
•
•
•
Interactivity (AJAX)
Use or introduction of more sophisticated UI tools
Polished look & feel (borrow from Windows, Mac OS X, etc)
• Completely new model for representing applications in
store... prototype in Septemeber 2006, release end of
year (Grid Portlets 3.0?)
• Explore Vine in other portal frameworks, other language
environments (Ruby on Rails), etc.
Portals & Portlets - Monday 17 July 2006
Can I use Vine now?
• Vine IS being used in HPC-Europa, but not ready for
general release quite yet (need documentation!).
• Email me for instructions for how to access & use Vine
from our Subversion server:
•
svn co https://svn.gridsphere.org/vine/vine/trunk
vine
• Information will be announced before the end of August
describing the overall vision of Vine and documentation on
how to access and use from SVN.
• Vine may be released before Portlet Vine.
Portals & Portlets - Monday 17 July 2006
Download