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