140 likes | 228 Views
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. Topics. g-AAI - Authentication and Authorization g-EFS - Data management with EFS
E N D
Goodies and Gimmicksfor 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
Topics • g-AAI - Authentication and Authorization • g-EFS - Data management with EFS • g-PRM - The Problem Reporting Mechanism
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-AAI - Workflow • Requesting a token with anAuthTokenRequest • that contains anIAuthenticationTokenDescription • which is specific for anIAuthenticationToken • and holds the parameters of the token to be created. • TheAuthTokenProvider • looks up all existing tokens in theAuthTokenManager • and returns a matching token or asks the user to create a new one with theAuthTokenWizardif no matching token could be found.
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-EFS - The Connection Wizard Local Connection Remote (GSIFTP) Connection
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-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-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-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-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.