Transcript Folie 1

Goodies and Gimmicks
for a user-friendly access to Grids
Mathias Stümpert (Karlsruhe Institute of Technology)
Ariel Garcia (Karlsruhe Institute of Technology)
March 18th, 2008
EclipseCon 2008
Santa Clara
© 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0 | 2007-03-18
Topics
• g-AAI - Authentication and Authorization
• g-EFS - Data management with EFS
• g-PRM - The Problem Reporting Mechanism
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-AAI - Authentication and Authorization Infrastructure
• Provides an abstraction layer and an extension point for
plugging in any type of authentication token
• Provides tokens for:




Globus proxies (X509)
VOMS proxies (X509 with extensions)
GRIA key stores
Open for other tokens (SSH, Shibboleth...)
• Provides mechanism for creating tokens on demand:
 of a specific type and
 with specific parameters
• Tokens are stored (not persistent!) for re-use
• Common graphical user interface for all tokens
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-AAI - Workflow
• Requesting a token with an
AuthTokenRequest
• that contains an
IAuthenticationTokenDescription
• which is specific for an
IAuthenticationToken
• and holds the parameters of the
token to be created.
• The
AuthTokenProvider
• looks up all existing tokens in the
AuthTokenManager
• and returns a matching token or asks
the user to create a new one with the
AuthTokenWizard
if no matching token could be found.
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-EFS - Data management with g-Eclipse
• One of the main use-cases for Grids is data management
• g-Eclipse integrates existing EFS implementations into its
views:




browse an EFS
copy&paste/drag&drop data among different EFSes
Create/delete files/folders
Open, edit and save back files
• g-Eclipse itself implements EFS for
 GridFTP/GSIFTP (Globus middleware)
 SRM (gLite middleware)
 LFC (gLite middleware)
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-EFS - The Exploring Perspective
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-EFS - The Connection Wizard
Local Connection
Remote (GSIFTP) Connection
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - The traditional ways
• Accessing Grids is difficult and error-prone
• Error messages are often rather cryptic
• Traditional error reporting (exception handling)
supports only plain descriptive texts as error
messages
• Eclipse way uses CoreException and IStatus which
already gives more information about




the type of the error (warning, error, ...)
details of the error (error code)
where the error happened (plug-in ID)
contexts (MultiStatus)
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - The g-Eclipse way
• g-Eclipse deals with problems, not with errors
• Therefore g-Eclipse defines the ProblemException,
which
 inherits from CoreException - i.e. supports IStatus - and
 may have an associated IProblem
• An IProblem is comprised of:





a description (String)
one or more optional reasons (String)
one or more optional solutions (ISolution)
an optional mailto-field for sending error reports
an exception, plug-in id, etc. (i.e. IStatus)
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - Offering solutions for problems
• Solutions are comprised of
 a description (String) and
 an optional solver (ISolver)
• Solutions are either active (if a solver is defined) or
passive
• Passive solutions are just plain text giving the user
hints how to solve a problem
• Active solutions can trigger an action in the UI that
solves or at least may help the user to solve a problem
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - Defining problems and solutions
• Problems and solutions may be defined either
 programmatically, i.e. via the API, or
 declaratively, i.e. with the help of an extension point
• The extension point allows to
 specify problems
 specify solutions
 make solutions active by either
 specifying an ISolver for the solution or by
 tagging the solution with a predefined solver tag
 Predefined tags exist for
 opening a preference page
 opening a view
 assign solutions to a problem and vice versa. This means that
solutions may be re-used by different problems
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - Features
• Problems and solutions are defined in plugin.xml
• Problems are propagated with an exception
• Already defined problems can be used by other plug-ins
• Solutions can be added to existing problems
 in code by catching a ProblemException and adding a solution
to the problem
 from other plug-ins by defining a solution and linking it to the
problem (backward-link)
• Reasons can be added to existing problems
 in code by catching a ProblemException and adding a reason
to the problem.
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - How it looks like
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0
g-PRM - How it looks like
g-Eclipse - Goodies and Gimmicks | © 2008 by M. Stümpert, A. Garcia; made available under the EPL v1.0