Designing a Grid Computing Environment Shell Engine

Designing a Grid Computing Environment Shell Engine

Designing a Grid Computing Environment Shell Engine Mehmet A. Nacar Marlon Pierce Geoffrey Fox Community Grids Lab, Community Grids Lab, Community Grids Lab, Indiana University Indiana University Indiana University [email protected] [email protected] [email protected] Abstract we initially implement as a command line interface, is inspired by the UNIX [2] shell environments, We describe the design and features of our Grid which provide a more user friendly environment for Computing Environments Shell system, or GCEShell. We interacting with the operating system than view computing Grids as providing essentially a globally programming directly with system level libraries. scalable distributed operating system that exposes low We view the emerging Open Grids Services level programming APIs. From these system-level Architecture (OGSA) [3,4] and Web service [5] commands we may build a higher level library of more infrastructures as providing a global operating user-friendly shell commands, which may in turn be system, extending ideas such as originally programmed through scripts. The GCEShell consists of a shell engine that serves as a container environment for incorporated in the Legion system [6]. As with managing GCEShell commands, which are client other operating systems, most users should not be implementations for remote Web Service/Open Grid expected to program at the system level. Instead, we Service Architecture services that resemble common see the need for a command hosting and UNIX shell operations. management environment that supports a number of useful shell-like commands: commands for listing Keywords: Grid Computing Environments, Web and manipulating remote files, commands for listing Services system resources, and so on. These shell commands should also support simple composition and 1. Introduction workflow through linkages (such as pipes and redirects) and ultimately through scripting Grid Computing Environments (GCEs) [1] provide a environments. user view of computational Grid technologies. GCEs are often associated with Web portals, but in 2. GCEShell Engine general may be any type of client management environment. GCEs also come in two primary The shell engine is the core application that varieties: Problem Solving Environments (PSEs), interprets commands, runs client commands, which provide custom interfaces for working with communicates with the servers (applications and specific sets of applications, visualization tools, etc; registries), and manages application lifecycles. The and shell-like system portals, which provide direct GCEShell engine essentially serves as a container access to basic commands such as file manipulation for client applications, analogous to server-side and command execution. In Ref. [1] these latter hosting environments [3]. portals are referred to as “GCEShell” portals. Our initial implementation of the GCEShell GCEShell environments may however be interface is as command line interface similar to separated from specific user interface rendering. We UNIX shells. It manages user command entries and consider here a general engine for managing Grid gives results back to standard output. Also, Web Service clients. This GCEShell engine, which command instances and each command’s status are stored at this stage. The shell engine spawns a new attributes and options. The Parser can also thread for each shell command so that user can distinguish delimiters between multiple commands coordinate each single command entry by itself and remove them. In our test implementation we using several commands like kill, ps, history, exit. mark each item in the command line as a token and collect them in a hash table. Parsing along syntax The GCEShell involves both local and remote rules is a quite well known subfield of computer commands. The shell engine makes several science and is reviewed in [9]. We are in the different manipulations, like if the given URI is process of replacing the test implementation with a local, the engine directly makes related command more formal parsing engine that will produce a parse calls. Otherwise, WSDL interfaces [7] are tree at the end of Step 2. We are currently evaluating discovered at the given URI that gives service third party parser packages such as ANTLR [10] and description. According to that information, service Java implementations of the DOM [11]. requests are made at given SOAP endpoint by using SOAP protocol [8]. The results of the parsing are next passed to the Workflow Manager in Step 3, which is responsible The shell engine aggregates all the objects that for executing the parsed command line. The test perform functionality to the shell container. These implementation represents this as a hashtable, but objects are commands, tasks, communication with we are in the process of converting this to use a servers, and workflows. In other words, the shell “parse tree” object as described above. The engine negotiates with servers, manages application workflow manager is then responsible for managing lifecycles, discovers services and communicates the execution of the clients and their arguments that with remote services. If the worst case happens, like it receives from the parser, Step 4. These clients may a service provider is down, there are several cases to be either local applications (such as shell history overcome that situation. First, the request may be commands) as shown in Step 4a, or clients that must repeated according to service priority and connect to remote applications, Step 4b. In the latter importance. This time slice should be restricted in case, the client must then interact with the remote terms of system performance dynamically. Finally, Web Service, Step 5. In both cases, the client if a part of command arguments fails, either entire applications implement a common shell command command fails or partial result given on demand. interface (see next section). Each command line is represented as a single object and is executed by a Figure 1 shows the shell engine’s principal single thread. The Workflow Manager is components. Each component in our responsible for creating new threads for each implementation is a Java interface with an command line it receives (represented as a parse implementing class. Arrows in the figure indicates tree). Each thread in turn must walk the tree and communications between modules. Broken arrows identify commands (nodes that only possess leaves) show relationship with Exception Handler. Bold and create “command objects” (detailed below) to arrows indicate execution steps. Following this execute the specific shell commands. These design simplifies development of the more command objects are executed in sequence if the complicated components (such as the command line command line has more than one command. parser) and also allows future reimplementation by Exceptions may occur at numerous places in this other developers. system and are handled by the Exception Handler. We address these issues below. We implemented Figure 1 also indicates the steps followed after event system model for this design that works in a command is issued to the shell. Here we between workflow manager and exception handler. summarize the execution steps for processing a user command. In Step 1, the user enters a command. WS Clients cover inspection of services, That command is caught by the shell engine and discoveries and service requests for grid services. divided into the tokens by the Parser in Step 2. The First of all, the service in the specified URI is Parser is responsible for checking the syntax of inspected and WSDL interface is found. After that command line. We follow a typical shell-like syntax the engine creates client stubs for that service and for command the command line: commands, makes remote procedure requests from SOAP endpoint. If an exception is thrown, the exception • Allowing process to sleep, suspend() handler deals with that. Unless it is succeeded, the method. service and so the command fails and gives an exit Commands are similar to jakarta-ant tasks and code and message as error. JXTA ShellCommands. A task can have multiple attributes. The value of an attribute might contain The Workflow Manager traces all parts of references to a property. These references will be command to be completed successfully. It combines resolved before the task is executed. A service completed parts in accordance with command line command can have a set of properties. These might and finally outputs are sent to GCEShell interface. be set in the properties file by outside the base shell. A property has a name and a value; the name is case- The base shell context is responsible for sensitive. Properties may be used in the value of creating child shell contexts to hold individual command names. commands and for managing the lifecycle of these child contexts. It also manages communications Commands will be well defined by interfaces, so between the child contexts; that is, the pipes and a developer might want to add more commands. To redirects are functions of the base context. Child do that, it is needed to implement classes that context threads must block until the command inherited from that interface. The only thing is to completes. If this is not implemented in the shell plug that new command into shell container, command itself (the client is decoupled from the updating property file giving command name and server and exits before the server process completes) package name pairs. Removing a command or then the child context will need to implement a replacing new ones are need similar configuration listener that gets notified when the command above. completes on the server. 4. Exceptions and Exception Handling The GCEShell engine’s design must provide a simple, well defined mechanism for adding new The most crucial expectation from any kind of shell shell commands. Command prototypes and base is to run forever, unless a user exits it. GCEShell has shell connections is specified. In future, we need to modular and integrated design, to prevent conflicts add dynamic class loading so that grid users could in terms of using services and crashes.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us