1 / 45

Grid Portlets Technology Update

Grid Portlets Technology Update. Portals & Portlets 2006. Michael Russell <russell@man.poznan.pl> Poznan Supercomputing and Networking Center http://www.man.poznan.pl. Agenda. Grid Portlets 1.3 Introduction to Vine & Portlet Vine Future Plans. GridSphere’s Grid Portlets (1.3).

Télécharger la présentation

Grid Portlets Technology Update

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Grid PortletsTechnology Update • Portals & Portlets 2006 Michael Russell <russell@man.poznan.pl> Poznan Supercomputing and Networking Center http://www.man.poznan.pl

  2. Agenda • Grid Portlets 1.3 • Introduction to Vine & Portlet Vine • Future Plans

  3. 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.

  4. 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).

  5. The Portlets • Credential Manager Portlet • File Browser Portlet • Job Submission Portlet • Resource Browser Portlet • Resource Registry Portlet

  6. Resource Registry Portlet • Administrators can use the Resource Registry Portlet to specify what resources to make available to portal users.

  7. 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.

  8. 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.

  9. Example profile: GridScreen • Grid Portlets provides the ability to display custom HTML and images in its genericre .

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. Viewing job history & output

  16. 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.

  17. Important Services • Credential Manager Service • Credential Retrieval Service • File Browser Service • Job Submission Service • Resource Registry Service

  18. 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()); }

  19. 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

  20. 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.

  21. 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)

  22. 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

  23. 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.

  24. 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.

  25. 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.

  26. 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.

  27. 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/ServiceResource=ssh2” • Resources have a set of attributes that describe or parameterize the resource for use within an application.

  28. Basic Idea…

  29. Tasks modeled as resources

  30. 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...

  31. The Root Domain

  32. 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.

  33. 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.

  34. 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.

  35. 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);

  36. 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’”);

  37. 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.

  38. 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.

  39. 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()); }

  40. 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.

  41. 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

  42. 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!

  43. 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.

  44. 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.

  45. 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.

More Related