140 likes | 235 Views
Learn about user-friendly access to Grids, including Authentication and Authorization Infrastructure, Data Management with EFS, and Problem Reporting Mechanism in EclipseCon 2008. Understand new ways to handle errors, access data, and offer solutions in a grid environment.
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.