Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Grid Portlets Technology Update

VIEWS: 3 PAGES: 45

									      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 application-
   specific 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 sub-
           domains.

   •   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
       •   Credential Manager Portlet
       •   File Browser Portlet
       •   Job Submission Portlet

   •   GT2 Portlets 2.0
       •   Defines GT2 resource profiles

   •   GS Portlets
       •   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

								
To top