US20030163448A1 - Scripting service for translating browser requests into command line interface (CLI) commands - Google Patents
Scripting service for translating browser requests into command line interface (CLI) commands Download PDFInfo
- Publication number
- US20030163448A1 US20030163448A1 US10/085,796 US8579602A US2003163448A1 US 20030163448 A1 US20030163448 A1 US 20030163448A1 US 8579602 A US8579602 A US 8579602A US 2003163448 A1 US2003163448 A1 US 2003163448A1
- Authority
- US
- United States
- Prior art keywords
- cli
- commands
- client
- translating
- requests
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Definitions
- the present invention relates generally to data processing systems and more particularly to a scripting service for translating browser requests into command line interface (CLI) commands.
- CLI command line interface
- CLIs provide an efficient interface for users to perform tasks but are often difficult to use.
- a user In order to effectively use a CLI, a user must be familiar with what commands are available for use with the CLI. In addition, the user must know the syntax of the command, including what options are available with the command.
- GUIs Graphical user interfaces
- CLIs Graphical user interfaces
- Embodiments of the present invention address the difficulties found with such user interfaces by providing the user with a scripting service that translates browser requests into CLI commands.
- the translated CLI commands may be displayed to the user to help the user understand the relationship between browser requests and CLI commands.
- the translated commands may be persistently stored and organized into a script.
- Such scripts may be subsequently executed by a CLI client. This allows repetitious tasks to be performed once, captured in a script and then executed as needed.
- a management application is run on an electronic device that is interfaced with the network.
- the management application is responsible for managing items.
- a request is received by the management application from a web browser client (i.e., from a device that is running a web browser).
- the request is translated into one or more CLI commands.
- the CLI commands may be stored for later use and may be displayed on a display device for the user to view.
- the requests are received at a web server from a client using a web browser.
- the requests are translated into CLI commands and recorded in a script.
- the script is forwarded to the client for display on a display device.
- an electronic device includes a network interface for interfacing with the network.
- the electronic device also includes a management application for servicing requests from clients received from the network via the network interface.
- the electronic device additionally includes a scripting service for receiving the requests from the clients and translating the requests into CLI commands.
- FIG. 1 depicts a distributed environment that is suitable for practicing the illustrative embodiment of the present invention.
- FIG. 2 depicts components that are employed in translating a request into one or more CLI commands in the illustrative embodiment.
- FIG. 3 is a flow chart providing an overview of the steps that are performed in processing a request originating from a web browser client.
- FIG. 4 is a flow chart illustrating the steps that are performed to translate a request originating from a web browser client into a CLI command.
- FIG. 5 illustrates the hierarchy of a portion of a registration descriptor that identifies a CLI command supported by an application.
- FIG. 6 is a flow chart illustrating the steps that are performed to execute a script by the illustrative embodiment of the present invention.
- the illustrative embodiment provides a scripting service for translating browser requests originating from a web browser client into CLI commands.
- the CLI commands may be displayed on a display device so that a user understands the mapping between activity with a web browser and corresponding CLI commands.
- the translated commands may be stored in a script in persistent storage. Subsequently, the script may be passed to a CLI client to execute the script.
- the illustrative embodiment is designed for use with web-based applications where a client communicates with a server over a network.
- the illustrative embodiment will be described with respect to a web-based management application that is responsible for managing items in a storage area network. Nevertheless, those skilled in the art will appreciate that the present invention is not limited to such an environment where a management application manages a storage area network. Instead, the present invention may be practiced with other varieties of applications where the scripting service would be useful.
- FIG. 1 depicts a distributed environment 10 that is suitable for practicing the illustrative embodiment to the present invention.
- a web server 12 is interfaced with a network 20 .
- Clients 14 , 16 , and 18 are also interfaced with the network 20 and communicate with the web server 12 over the network.
- the web server 12 includes a management application 22 for managing items.
- the management application 22 is responsible for managing components within the storage area network (SAN).
- Plug-in applications 24 may register to embellish or enhance the functionality provided by the management applications 22 .
- the registration service is described in co-pending application entitled, “Registration Service for Registering Plug-in Applications with a Management Application.”
- the plug-in applications 24 register with the management application 22 and then may be used in conjunction with the management application.
- the management application and plug-in applications are written in the JAVA programming language and thus, there is a JAVA virtual machine (JVM) 26 on the web server 12 .
- JVM JAVA virtual machine
- the server 12 need not be a web server; rather it may be another variety of server or peer.
- the network 20 may take many forms including that of a package switch network, such as the Internet, and intranet or extranet, or another variety of network including but not limited to a wireless network, local area network, or the like.
- the clients 14 , 16 and 18 may run on a variety of different machines including but not limited to personal computers, workstations, Internet appliances, personal digital assistants, intelligent pagers, cellular phones, electronic books, or the like.
- the applications need not be written in the JAVA programming language, but rather may be written in other programming language, including scripting language and high level languages.
- FIG. 2 depicts the interaction between clients and the management application 22 of the illustrative embodiment.
- the browser client 42 has a web browser, such as Microsoft Internet Explorer, Netscape Navigator, or a JAVA web browser from Sun Microsystems, Inc. running on the client machine.
- the web browser has a GUI that a user may use to interact with a web server 12 and the management application 22 . It is presumed that the browser client 42 can communicate over the network 20 by issuing hypertext transfer protocol (HTTP) requests.
- HTTP is a response/request protocol where a server provides responses in response to requests from clients.
- the second variety of client is a CLI client 44 .
- the CLI client 44 provides the user with a CLI.
- the user types commands on the command line to interact with the web server 12 . It is presumed that these commands are packaged into HTTP requests that are forwarded to the web server 12 .
- HTTP is discussed as an exemplary protocol that works with packaged switched networks such as the Internet.
- the management application 22 is implemented in the illustrative embodiment as a servlet.
- the servlet container 40 is an object that contains a number of additional components. These additional components include a scripting service 50 that is responsible for translating of requests originating from the browser client 42 into CLI commands. As will be described in more detail below, the resulting translated commands may be organized into a script 62 that may be stored persistently.
- the servlet container 40 also includes a controller servlet 54 that acts as an interface with the clients 42 and 44 .
- the controller servlet 54 acts as a sort of “traffic cop” for determining where a request should be forwarded for appropriate handling.
- JSPs JAVA server pages
- JSPs include executable code that may generate dynamic web content.
- the servlet container 40 may also include a number of JavaBeans 60 .
- JavaBeans are reusable components that conform to a model specified by Sun Microsystems, Inc.
- the JavaBeans 60 provide componentized units of functionality that help to respond to client requests.
- the servlet container 40 may also include action classes 56 .
- An action class is a variety of action that is associated with a given type of HTTP request.
- Sun Microsystems, Inc. has defined a number of packages that define functionality for supporting HTTP. These packages include support for request dispatchers that dispatch HTTP requests to destinations and HTTP handlers that receive the request and generate the appropriate response. For each variety of HTTP response, there is an associated action having a given action class that defines what entity should handle the HTTP request. The appropriate entity is then called to respond to the request.
- the entity may be a servlet, a JavaBeans component, a JSP or combination thereof.
- the servlet container 40 additionally includes a registration service 52 .
- the registration service is responsible for registering plug-in applications with the management application.
- Plug-in applications provide a registration descriptor in the form of an extensible mark-up language (XML) file.
- the registration service parses the XML file to complete the registration.
- the XML file contains information regarding the functionality provided by the plug-in applications. This information includes what CLI commands are supported by the application.
- the portion of the registration descriptor XML file that relates to the CLI commands will be discussed in more detail below. The interaction among the components will be described in more detail below when the particulars of operation of the management application scripting service are set forth.
- FIG. 3 provides an overview of the steps that are performed in the illustrative embodiment of the present invention.
- a web browser client 42 submits a request to the management application 22 (step 70 in FIG. 3).
- a client user may request a given action by selecting a menu item. This is translated by the web browser, into an HTTP request that is sent to the management application 22 .
- the resulting request is received by the controller servlet 54 .
- the scripting may be set either “on” or “off” by a user. If the scripting is set “off,” (see step 72 in FIG. 3) there is not translation of the web browser client request into a CLI command. Thus, the request is processed as it normally would be processed (step 78 in FIG. 3).
- the controller servlet 54 passes the request to the appropriate action class 56 , which may create, or invoke JavaBeans 60 and may cause the JSP 58 to generate a response to the browser client 42 .
- the scripting service 50 translates the request into a CLI command (step 74 in FIG. 3).
- the CLI command may then be stored persistently, either locally at web server 12 , or remotely back with the client.
- the CLI command may be displayed on the display device such as the display devices 45 or 47 that are shown in FIG. 2 (step 76 in FIG. 3).
- the result 62 may be sent to the browser client 42 for display or may be stored in persistent storage.
- the original request is processed by the scripting service 50 returning the request to the controller servlet 54 for processing (step 78 in FIG. 3).
- FIG. 4 sets forth in more detail the steps performed by the scripting service 50 in translating the web browser client request into a CLI command.
- the scripting service 50 must determine what application handles the variety of requests that have been received (step 90 in FIG. 4).
- the scripting service 50 may consult with the registration service 52 to determine what application handles the variety of request.
- the registration descriptors of plug-in applications provide information regarding what application handles the variety of request.
- the registration service 52 needs to look up the application in information that is extracted from the registration descriptors. The request may be handled directly by the management application 22 or by the plug-in applications 24 .
- the scripting service 50 gets a reference to the CLI element of the application that handles the request from the registration service 52 (step 92 in FIG. 4).
- the CLI element is associated with a given CLI application.
- the registration descriptor is organized as an XML file.
- FIG. 5 depicts a portion of the hierarchical organization of the XML file that is pertinent to the illustrative embodiment.
- the registration descriptor file includes a number of hierarchically organized tags. These tags include a root tag 80 that is associated with the application.
- the AppName tag 82 holds information regarding the name of the plug-in application.
- the browserElement tag 84 holds information regarding browser requests that are serviced by the application.
- the CLI element tag 86 holds information regarding a CLI command that is supported by the application.
- Each command has a subcommand tag 130 .
- the subcommand tag 130 includes a nametag 132 that specifies the name of the command and a requestPath tag 134 that specifies the requestPath of the command.
- HTTP requests may include a requestPath that identifies the resource upon which to apply the request.
- the sharedAction tag 136 is for instances where two different browser requests are so similar that they can be handled by the same action class. The presence of this tag indicates such case.
- the id tag 138 contains a key attribute and a value attribute. These attributes are further used to define a request of uniform resource identifier (URI) so that the action class can call the proper methods.
- the optionElement tag 140 is provided for each option that may be associated with a given CLI command.
- the optionElement tag includes a number of additional tags, including the nameTag 142 that holds the name of the option.
- the type flag 144 identifies whether the option is a string value or a Boolean value.
- the string type indicates that the option takes a value and the Boolean type indicates the option toggle some functionality on and off.
- the flag tag 146 identifies the character or characters that are passed to the command to activate the option.
- the description tag 148 holds a string that describes the option.
- the optional tag 150 indicates whether the option is required or whether the option is optional.
- the multiple tag 152 indicates whether the option takes multiple arguments or a single argument.
- the default tag 154 holds a default value for the option if any.
- the sensitive tag 156 indicates whether the value contained in this option is sensitive or not.
- the hidden tag 158 indicates options a user may not be interested in seeing in a help session.
- the request path from the HTTP request is passed to the CLI reference and a request is made for a reference for the subcommand that matches the request path (see step 94 in FIG. 4). In other words, a request is made to see what subcommand is associated with the request path specified in the HTTP browser request.
- the scripting service 50 determines which of the options are present in the current request (step 96 in FIG. 4) and builds the command option list (step 98 in FIG. 4). The subcommand is combined with the option list to generate a well-formed CLI command (step 100 in FIG. 4).
- FIG. 6 is flow chart that illustrates the steps that are performed to execute the script.
- the script file is passed as an argument to the CLI client 44 (step 180 in FIG. 6).
- the file is then retrieved by the CLI client 44 (step 182 in FIG. 6).
- the CLI client then proceeds to execute the commands in the script in sequence so as to fully execute the script (step 184 in FIG. 6).
- the CLI session tool that runs at the CLI client 44 is described in more detail in co-pending application, entitled, “Command Line Interface (CLI) Session Tool.”
Abstract
A scripting service receives requests from a browser client that includes an executing web browser. The request is then translated into a command line interface (CLI) command. The CLI command may be displayed for a user to understand how browser requests are translated into corresponding CLI commands. In addition, a translated command may be stored in a script of other translated commands. The script may be stored persistently for subsequent use. The script may also be passed to a CLI client for execution. The scripting service is especially well adapted for use with web based application such as a management application that manages items in a distributed environment.
Description
- This application is related to co-pending application, entitled “Registration Service for Registering Plug-in Applications with a Management Console,” application Ser. No. ______ (Attorney Docket No. SMQ-083), and co-pending application entitled, “Command Line Interface (CLI) Session Tool,” application Ser. No. ______ (Attorney Docket No. SMQ-085), which were filed on even date herewith, assigned to a common assignee with the present application and explicitly incorporated by reference herein.
- The present invention relates generally to data processing systems and more particularly to a scripting service for translating browser requests into command line interface (CLI) commands.
- CLIs provide an efficient interface for users to perform tasks but are often difficult to use. In order to effectively use a CLI, a user must be familiar with what commands are available for use with the CLI. In addition, the user must know the syntax of the command, including what options are available with the command.
- Graphical user interfaces (GUIs) have become increasingly popular because they are easier to use than CLIs. A well-designed GUI enables a use to intuitively determine how to perform various tasks. Unfortunately, some GUIs may not be as powerful as the CLIs. In addition, some GUIs may require a rather cumbersome chain of actions to perform an activity that can be more efficiently invoked via a single CLI command.
- Embodiments of the present invention address the difficulties found with such user interfaces by providing the user with a scripting service that translates browser requests into CLI commands. The translated CLI commands may be displayed to the user to help the user understand the relationship between browser requests and CLI commands. The translated commands may be persistently stored and organized into a script. Such scripts may be subsequently executed by a CLI client. This allows repetitious tasks to be performed once, captured in a script and then executed as needed.
- In accordance with one aspect of the present invention, a management application is run on an electronic device that is interfaced with the network. The management application is responsible for managing items. A request is received by the management application from a web browser client (i.e., from a device that is running a web browser). The request is translated into one or more CLI commands. The CLI commands may be stored for later use and may be displayed on a display device for the user to view.
- In accordance with a further aspect of the present invention, the requests are received at a web server from a client using a web browser. The requests are translated into CLI commands and recorded in a script. The script is forwarded to the client for display on a display device.
- In accordance with an additional aspect of the present invention, an electronic device includes a network interface for interfacing with the network. The electronic device also includes a management application for servicing requests from clients received from the network via the network interface. The electronic device additionally includes a scripting service for receiving the requests from the clients and translating the requests into CLI commands.
- An illustrative embodiment of the present invention will be described below relative to the following drawings.
- FIG. 1 depicts a distributed environment that is suitable for practicing the illustrative embodiment of the present invention.
- FIG. 2 depicts components that are employed in translating a request into one or more CLI commands in the illustrative embodiment.
- FIG. 3 is a flow chart providing an overview of the steps that are performed in processing a request originating from a web browser client.
- FIG. 4 is a flow chart illustrating the steps that are performed to translate a request originating from a web browser client into a CLI command.
- FIG. 5 illustrates the hierarchy of a portion of a registration descriptor that identifies a CLI command supported by an application.
- FIG. 6 is a flow chart illustrating the steps that are performed to execute a script by the illustrative embodiment of the present invention.
- The illustrative embodiment provides a scripting service for translating browser requests originating from a web browser client into CLI commands. The CLI commands may be displayed on a display device so that a user understands the mapping between activity with a web browser and corresponding CLI commands. In addition, the translated commands may be stored in a script in persistent storage. Subsequently, the script may be passed to a CLI client to execute the script.
- The illustrative embodiment is designed for use with web-based applications where a client communicates with a server over a network. The illustrative embodiment will be described with respect to a web-based management application that is responsible for managing items in a storage area network. Nevertheless, those skilled in the art will appreciate that the present invention is not limited to such an environment where a management application manages a storage area network. Instead, the present invention may be practiced with other varieties of applications where the scripting service would be useful.
- FIG. 1 depicts a
distributed environment 10 that is suitable for practicing the illustrative embodiment to the present invention. In thisenvironment 10, aweb server 12 is interfaced with anetwork 20.Clients network 20 and communicate with theweb server 12 over the network. Theweb server 12 includes amanagement application 22 for managing items. For illustrative purposes, it is presumed that themanagement application 22 is responsible for managing components within the storage area network (SAN). Plug-inapplications 24 may register to embellish or enhance the functionality provided by themanagement applications 22. The registration service is described in co-pending application entitled, “Registration Service for Registering Plug-in Applications with a Management Application.” The plug-inapplications 24 register with themanagement application 22 and then may be used in conjunction with the management application. In the illustrative embodiment, it is presumed that the management application and plug-in applications are written in the JAVA programming language and thus, there is a JAVA virtual machine (JVM) 26 on theweb server 12. - Those skilled in the art will appreciate that the configuration depicted in FIG. 1 is intended to be merely illustrative and not limiting of the present invention. The
server 12 need not be a web server; rather it may be another variety of server or peer. Thenetwork 20 may take many forms including that of a package switch network, such as the Internet, and intranet or extranet, or another variety of network including but not limited to a wireless network, local area network, or the like. Theclients server 12 as depicted in FIG. 1. In some cases, however, there may be fewer than three clients. Still further, the applications need not be written in the JAVA programming language, but rather may be written in other programming language, including scripting language and high level languages. - FIG. 2 depicts the interaction between clients and the
management application 22 of the illustrative embodiment. Two varieties of clients are depicted in FIG. 2: abrowser client 42 and aCLI client 44. Thebrowser client 42 has a web browser, such as Microsoft Internet Explorer, Netscape Navigator, or a JAVA web browser from Sun Microsystems, Inc. running on the client machine. The web browser has a GUI that a user may use to interact with aweb server 12 and themanagement application 22. It is presumed that thebrowser client 42 can communicate over thenetwork 20 by issuing hypertext transfer protocol (HTTP) requests. HTTP is a response/request protocol where a server provides responses in response to requests from clients. - The second variety of client is a
CLI client 44. TheCLI client 44 provides the user with a CLI. The user types commands on the command line to interact with theweb server 12. It is presumed that these commands are packaged into HTTP requests that are forwarded to theweb server 12. Those skilled in the art will appreciate that the present invention does not require that HTTP be utilized, but rather HTTP is discussed as an exemplary protocol that works with packaged switched networks such as the Internet. - The
management application 22 is implemented in the illustrative embodiment as a servlet. Theservlet container 40 is an object that contains a number of additional components. These additional components include ascripting service 50 that is responsible for translating of requests originating from thebrowser client 42 into CLI commands. As will be described in more detail below, the resulting translated commands may be organized into ascript 62 that may be stored persistently. Theservlet container 40 also includes acontroller servlet 54 that acts as an interface with theclients controller servlet 54 acts as a sort of “traffic cop” for determining where a request should be forwarded for appropriate handling. A number of JAVA server pages (JSPs) 58 may be provided for generating appropriate web page responses that are forwarded to thebrowser client 42 in response to requests. JSPs include executable code that may generate dynamic web content. Theservlet container 40 may also include a number ofJavaBeans 60. JavaBeans are reusable components that conform to a model specified by Sun Microsystems, Inc. TheJavaBeans 60 provide componentized units of functionality that help to respond to client requests. - The
servlet container 40 may also includeaction classes 56. An action class is a variety of action that is associated with a given type of HTTP request. Sun Microsystems, Inc. has defined a number of packages that define functionality for supporting HTTP. These packages include support for request dispatchers that dispatch HTTP requests to destinations and HTTP handlers that receive the request and generate the appropriate response. For each variety of HTTP response, there is an associated action having a given action class that defines what entity should handle the HTTP request. The appropriate entity is then called to respond to the request. The entity may be a servlet, a JavaBeans component, a JSP or combination thereof. - The
servlet container 40 additionally includes aregistration service 52. The registration service is responsible for registering plug-in applications with the management application. Plug-in applications provide a registration descriptor in the form of an extensible mark-up language (XML) file. The registration service parses the XML file to complete the registration. The XML file contains information regarding the functionality provided by the plug-in applications. This information includes what CLI commands are supported by the application. The portion of the registration descriptor XML file that relates to the CLI commands will be discussed in more detail below. The interaction among the components will be described in more detail below when the particulars of operation of the management application scripting service are set forth. - FIG. 3 provides an overview of the steps that are performed in the illustrative embodiment of the present invention. Initially, a
web browser client 42 submits a request to the management application 22 (step 70 in FIG. 3). For example, a client user may request a given action by selecting a menu item. This is translated by the web browser, into an HTTP request that is sent to themanagement application 22. The resulting request is received by thecontroller servlet 54. The scripting may be set either “on” or “off” by a user. If the scripting is set “off,” (seestep 72 in FIG. 3) there is not translation of the web browser client request into a CLI command. Thus, the request is processed as it normally would be processed (step 78 in FIG. 3). Specifically, thecontroller servlet 54 passes the request to theappropriate action class 56, which may create, or invokeJavaBeans 60 and may cause theJSP 58 to generate a response to thebrowser client 42. In contrast, if the scripting is “on” (seestep 72 in FIG. 3), thescripting service 50 translates the request into a CLI command (step 74 in FIG. 3). The CLI command may then be stored persistently, either locally atweb server 12, or remotely back with the client. In addition, the CLI command may be displayed on the display device such as thedisplay devices step 76 in FIG. 3). Theresult 62 may be sent to thebrowser client 42 for display or may be stored in persistent storage. The original request is processed by thescripting service 50 returning the request to thecontroller servlet 54 for processing (step 78 in FIG. 3). - FIG. 4 sets forth in more detail the steps performed by the
scripting service 50 in translating the web browser client request into a CLI command. Initially, thescripting service 50 must determine what application handles the variety of requests that have been received (step 90 in FIG. 4). In that regard, thescripting service 50 may consult with theregistration service 52 to determine what application handles the variety of request. In particular, the registration descriptors of plug-in applications provide information regarding what application handles the variety of request. Hence, theregistration service 52 needs to look up the application in information that is extracted from the registration descriptors. The request may be handled directly by themanagement application 22 or by the plug-inapplications 24. Thescripting service 50 gets a reference to the CLI element of the application that handles the request from the registration service 52 (step 92 in FIG. 4). The CLI element is associated with a given CLI application. In order to better appreciate the role of the CLI element, it is helpful to review the organization of the registration descriptor for an application. As was mentioned above, the registration descriptor is organized as an XML file. - FIG. 5 depicts a portion of the hierarchical organization of the XML file that is pertinent to the illustrative embodiment. The registration descriptor file includes a number of hierarchically organized tags. These tags include a
root tag 80 that is associated with the application. TheAppName tag 82 holds information regarding the name of the plug-in application. ThebrowserElement tag 84 holds information regarding browser requests that are serviced by the application. TheCLI element tag 86 holds information regarding a CLI command that is supported by the application. Each command has asubcommand tag 130. Thesubcommand tag 130 includes anametag 132 that specifies the name of the command and arequestPath tag 134 that specifies the requestPath of the command. HTTP requests may include a requestPath that identifies the resource upon which to apply the request. - The
sharedAction tag 136 is for instances where two different browser requests are so similar that they can be handled by the same action class. The presence of this tag indicates such case. - The
id tag 138 contains a key attribute and a value attribute. These attributes are further used to define a request of uniform resource identifier (URI) so that the action class can call the proper methods. The optionElement tag 140 is provided for each option that may be associated with a given CLI command. The optionElement tag includes a number of additional tags, including thenameTag 142 that holds the name of the option. Thetype flag 144 identifies whether the option is a string value or a Boolean value. The string type indicates that the option takes a value and the Boolean type indicates the option toggle some functionality on and off. Theflag tag 146 identifies the character or characters that are passed to the command to activate the option. - The
description tag 148 holds a string that describes the option. Theoptional tag 150 indicates whether the option is required or whether the option is optional. Themultiple tag 152 indicates whether the option takes multiple arguments or a single argument. Thedefault tag 154 holds a default value for the option if any. Thesensitive tag 156 indicates whether the value contained in this option is sensitive or not. Thehidden tag 158 indicates options a user may not be interested in seeing in a help session. - After the reference of CLI element of the application is obtained from the registration service in
step 92 in FIG. 4, the request path from the HTTP request is passed to the CLI reference and a request is made for a reference for the subcommand that matches the request path (seestep 94 in FIG. 4). In other words, a request is made to see what subcommand is associated with the request path specified in the HTTP browser request. - The
scripting service 50 then determines which of the options are present in the current request (step 96 in FIG. 4) and builds the command option list (step 98 in FIG. 4). The subcommand is combined with the option list to generate a well-formed CLI command (step 100 in FIG. 4). - Once the CLI command is formed, it is added to a script that may be stored persistently. Portions of the script may be displayed on the display device, as has been discussed above. In addition, the script may be executed subsequently. FIG. 6 is flow chart that illustrates the steps that are performed to execute the script. The script file is passed as an argument to the CLI client44 (
step 180 in FIG. 6). The file is then retrieved by the CLI client 44 (step 182 in FIG. 6). The CLI client then proceeds to execute the commands in the script in sequence so as to fully execute the script (step 184 in FIG. 6). The CLI session tool that runs at theCLI client 44 is described in more detail in co-pending application, entitled, “Command Line Interface (CLI) Session Tool.” - While the present invention has been described with reference to an illustrative embodiment thereof, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the intended scope of the present invention as defined in the appended claims.
Claims (22)
1. In an electronic device interfaced with a network, a method, comprising the steps of:
running a management application on the electronic device for managing items;
receiving a request at the management application from a web browser client; and
translating the request into one or more command line interface (CLI) commands.
2. The method of claim 1 further comprising the step of:
storing the CLI commands that result from the translating.
3. The method of claim 1 further comprising the step of forwarding the CLI commands that result from the translating to a CLI client.
4. The method of claim 1 , wherein the electronic device includes a display and wherein the CLI commands that result from the translating are output on the display.
5. The method of claim 1 further comprising the steps of:
receiving additional requests at the management application from the web browser client; and
translating the additional requests into CLI commands.
6. The method of claim 5 further comprising storing the CLI commands resulting from the translating of the additional requests in a script.
7. The method of claim 6 further comprising the step of executing the script.
8. The method of claim 1 further comprising the step of responding to the request independently of the translating.
9. The method of claim 1 , wherein the management application has a plug-in application registered with the management application to provide enhanced functionality and wherein the plug-in application provides information to the management application regarding how to translate the request into the one or more CLI commands.
10. The method of claim 1 , wherein the management application manages items in a storage area network (SAN).
11. On a web server, a method, comprising the steps of:
receiving requests from a client using a web browser;
translating the requests into command line interface (CLI) commands;
recording the commands in a script; and
forwarding the script to the client for display on a display device.
12. The method of claim 11 further comprising the step of sending responses to the client in response to the requests.
13. The method of claim 11 further comprising the step of:
providing a CLI client that submits requests to the web server from a client machine, said CLI client including a CLI for entering commands;
passing the script to the CLI; and
executing the script.
14. The method of claim 11 further comprising the step of persistently storing the script.
15. An electronic device, comprising:
a network interface for interfacing with a network;
a management application for servicing requests from clients received from the network via the network interface; and
a scripting service for receiving the requests from said clients and translating the requests into command line interface (CLI) commands.
16. The electronic device of claim 15 further comprising a storage for storing the CLI commands.
17. A medium for use in an electronic device that is interfaced with a network, said electronic device running a management application for managing items, said medium holding instructions for performing a method, comprising the steps of:
running a management application on the electronic device for managing items;
receiving a request at the management application from a web browser client; and
translating the request into one or more command line interface (CLI) commands.
18. The medium of claim 18 , wherein the method further comprises the step of:
storing the CLI commands that result from the translating.
19. The medium of claim 18 , wherein the method further comprises the step of:
of forwarding the CLI commands that result from the translating to a CLI client.
20. The medium of claim 18 , wherein the method further comprises the step of:
displaying the CLI commands on a display device.
21. The medium of claim 18 , wherein the method further comprises the steps of:
receiving additional requests at the management application from the web browser client; and
translating the additional requests into CLI commands.
22. The medium of claim 18 , wherein the method further comprises the steps of
receiving requests from a client using a web browser;
translating the requests into command line interface (CLI) commands;
recording the commands in a script; and
forwarding the script to the client for display on a display device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/085,796 US20030163448A1 (en) | 2002-02-26 | 2002-02-26 | Scripting service for translating browser requests into command line interface (CLI) commands |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/085,796 US20030163448A1 (en) | 2002-02-26 | 2002-02-26 | Scripting service for translating browser requests into command line interface (CLI) commands |
Publications (1)
Publication Number | Publication Date |
---|---|
US20030163448A1 true US20030163448A1 (en) | 2003-08-28 |
Family
ID=27753718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/085,796 Abandoned US20030163448A1 (en) | 2002-02-26 | 2002-02-26 | Scripting service for translating browser requests into command line interface (CLI) commands |
Country Status (1)
Country | Link |
---|---|
US (1) | US20030163448A1 (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024843A1 (en) * | 2002-07-31 | 2004-02-05 | Smith Christopher T. | Method for provisioning distributed web applications |
US20070016948A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Immunizing HTML browsers and extensions from known vulnerabilities |
US7406693B1 (en) * | 2001-09-10 | 2008-07-29 | Ncr Corporation | Method of controlling applications |
WO2008091862A1 (en) * | 2007-01-22 | 2008-07-31 | Collactive, Inc. | System and method for guiding non-technical people in using web services |
US20080244514A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Scriptable object model for network based services |
US20090055738A1 (en) * | 2007-08-23 | 2009-02-26 | Acedo Mario F | Techniques for Providing Dynamic Help Content for a Command Line Interface |
US20090172541A1 (en) * | 2008-01-02 | 2009-07-02 | Acedo Mario F | Method and system for providing dynamic context assist for a command line interface |
US20090199187A1 (en) * | 2008-01-31 | 2009-08-06 | International Business Machines Corporation | Concurrent execution of multiple primitive commands in command line interface |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US8185737B2 (en) | 2006-06-23 | 2012-05-22 | Microsoft Corporation | Communication across domains |
US8239939B2 (en) | 2005-07-15 | 2012-08-07 | Microsoft Corporation | Browser protection module |
US8347265B1 (en) * | 2007-03-27 | 2013-01-01 | Network Appliance, Inc. | Method and apparatus for generating a command line interpreter |
US20140101280A1 (en) * | 2012-10-05 | 2014-04-10 | Olaf Schmidt | Generic serializer framework |
US8856907B1 (en) | 2012-05-25 | 2014-10-07 | hopTo Inc. | System for and methods of providing single sign-on (SSO) capability in an application publishing and/or document sharing environment |
US8863232B1 (en) | 2011-02-04 | 2014-10-14 | hopTo Inc. | System for and methods of controlling user access to applications and/or programs of a computer |
US20150169292A1 (en) * | 2013-12-18 | 2015-06-18 | Fujitsu Limited | Computer-readable recording medium storing program for managing scripts, script management device, and script management method |
US20150254121A1 (en) * | 2014-03-06 | 2015-09-10 | International Business Machines Corporation | Command execution results verification |
US9239812B1 (en) | 2012-08-08 | 2016-01-19 | hopTo Inc. | System for and method of providing a universal I/O command translation framework in an application publishing environment |
US9268727B1 (en) * | 2012-06-28 | 2016-02-23 | EMC Company | Method and apparatus for command abstraction |
US9398001B1 (en) | 2012-05-25 | 2016-07-19 | hopTo Inc. | System for and method of providing single sign-on (SSO) capability in an application publishing environment |
US9419848B1 (en) | 2012-05-25 | 2016-08-16 | hopTo Inc. | System for and method of providing a document sharing service in combination with remote access to document applications |
US10019570B2 (en) | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US10303531B2 (en) * | 2014-07-28 | 2019-05-28 | Red Hat, Inc. | Console application through web service |
US10574724B2 (en) | 2017-01-06 | 2020-02-25 | Western Digital Technologies, Inc. | Automatic discovery of management nodes and generation of CLI using HA module |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991814A (en) * | 1997-07-10 | 1999-11-23 | Alcatel | Method and apparatus for controlling command line transfer to a network element |
US6141660A (en) * | 1998-07-16 | 2000-10-31 | International Business Machines Corporation | Command line interface for creating business objects for accessing a hierarchical database |
US20030051008A1 (en) * | 2001-08-29 | 2003-03-13 | Gorthy Scott B. | System and method for generating a configuration schema |
-
2002
- 2002-02-26 US US10/085,796 patent/US20030163448A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991814A (en) * | 1997-07-10 | 1999-11-23 | Alcatel | Method and apparatus for controlling command line transfer to a network element |
US6141660A (en) * | 1998-07-16 | 2000-10-31 | International Business Machines Corporation | Command line interface for creating business objects for accessing a hierarchical database |
US20030051008A1 (en) * | 2001-08-29 | 2003-03-13 | Gorthy Scott B. | System and method for generating a configuration schema |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406693B1 (en) * | 2001-09-10 | 2008-07-29 | Ncr Corporation | Method of controlling applications |
US20040024843A1 (en) * | 2002-07-31 | 2004-02-05 | Smith Christopher T. | Method for provisioning distributed web applications |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US20070016948A1 (en) * | 2005-07-15 | 2007-01-18 | Microsoft Corporation | Immunizing HTML browsers and extensions from known vulnerabilities |
US8239939B2 (en) | 2005-07-15 | 2012-08-07 | Microsoft Corporation | Browser protection module |
US8225392B2 (en) | 2005-07-15 | 2012-07-17 | Microsoft Corporation | Immunizing HTML browsers and extensions from known vulnerabilities |
US8489878B2 (en) | 2006-06-23 | 2013-07-16 | Microsoft Corporation | Communication across domains |
US8335929B2 (en) | 2006-06-23 | 2012-12-18 | Microsoft Corporation | Communication across domains |
US8185737B2 (en) | 2006-06-23 | 2012-05-22 | Microsoft Corporation | Communication across domains |
WO2008091862A1 (en) * | 2007-01-22 | 2008-07-31 | Collactive, Inc. | System and method for guiding non-technical people in using web services |
US8347265B1 (en) * | 2007-03-27 | 2013-01-01 | Network Appliance, Inc. | Method and apparatus for generating a command line interpreter |
US20080244514A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Scriptable object model for network based services |
EP2143019A4 (en) * | 2007-03-29 | 2011-01-26 | Microsoft Corp | Scriptable object model for network based services |
EP2143019A1 (en) * | 2007-03-29 | 2010-01-13 | Microsoft Corporation | Scriptable object model for network based services |
US10019570B2 (en) | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US20090055738A1 (en) * | 2007-08-23 | 2009-02-26 | Acedo Mario F | Techniques for Providing Dynamic Help Content for a Command Line Interface |
US8694886B2 (en) | 2008-01-02 | 2014-04-08 | International Business Machines Corporation | Providing dynamic context assist for a command line interface |
US20090172541A1 (en) * | 2008-01-02 | 2009-07-02 | Acedo Mario F | Method and system for providing dynamic context assist for a command line interface |
US20090199187A1 (en) * | 2008-01-31 | 2009-08-06 | International Business Machines Corporation | Concurrent execution of multiple primitive commands in command line interface |
US8161455B2 (en) | 2008-01-31 | 2012-04-17 | International Business Machines Corporation | Concurrent execution of multiple primitive commands in command line interface |
US9165160B1 (en) | 2011-02-04 | 2015-10-20 | hopTo Inc. | System for and methods of controlling user access and/or visibility to directories and files of a computer |
US9465955B1 (en) | 2011-02-04 | 2016-10-11 | hopTo Inc. | System for and methods of controlling user access to applications and/or programs of a computer |
US8863232B1 (en) | 2011-02-04 | 2014-10-14 | hopTo Inc. | System for and methods of controlling user access to applications and/or programs of a computer |
US9401909B2 (en) | 2012-05-25 | 2016-07-26 | hopTo Inc. | System for and method of providing single sign-on (SSO) capability in an application publishing environment |
US9398001B1 (en) | 2012-05-25 | 2016-07-19 | hopTo Inc. | System for and method of providing single sign-on (SSO) capability in an application publishing environment |
US9419848B1 (en) | 2012-05-25 | 2016-08-16 | hopTo Inc. | System for and method of providing a document sharing service in combination with remote access to document applications |
US8856907B1 (en) | 2012-05-25 | 2014-10-07 | hopTo Inc. | System for and methods of providing single sign-on (SSO) capability in an application publishing and/or document sharing environment |
US9268727B1 (en) * | 2012-06-28 | 2016-02-23 | EMC Company | Method and apparatus for command abstraction |
US9239812B1 (en) | 2012-08-08 | 2016-01-19 | hopTo Inc. | System for and method of providing a universal I/O command translation framework in an application publishing environment |
US20140101280A1 (en) * | 2012-10-05 | 2014-04-10 | Olaf Schmidt | Generic serializer framework |
US9286036B2 (en) * | 2013-12-18 | 2016-03-15 | Fujitsu Limited | Computer-readable recording medium storing program for managing scripts, script management device, and script management method |
US20150169292A1 (en) * | 2013-12-18 | 2015-06-18 | Fujitsu Limited | Computer-readable recording medium storing program for managing scripts, script management device, and script management method |
US20150254121A1 (en) * | 2014-03-06 | 2015-09-10 | International Business Machines Corporation | Command execution results verification |
US10169127B2 (en) * | 2014-03-06 | 2019-01-01 | International Business Machines Corporation | Command execution results verification |
US10303531B2 (en) * | 2014-07-28 | 2019-05-28 | Red Hat, Inc. | Console application through web service |
US10574724B2 (en) | 2017-01-06 | 2020-02-25 | Western Digital Technologies, Inc. | Automatic discovery of management nodes and generation of CLI using HA module |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030163448A1 (en) | Scripting service for translating browser requests into command line interface (CLI) commands | |
US11714665B2 (en) | Method and apparatus for composite user interface creation | |
US8321852B2 (en) | System and method for extending a component-based application platform with custom services | |
US7546298B2 (en) | Software, devices and methods facilitating execution of server-side applications at mobile devices | |
US7865528B2 (en) | Software, devices and methods facilitating execution of server-side applications at mobile devices | |
US6209029B1 (en) | Method and apparatus for accessing data sources in a three tier environment | |
EP1818820A1 (en) | System and method for installing custom services on a component-based application platform | |
US7246351B2 (en) | System and method for deploying and implementing software applications over a distributed network | |
US8219970B2 (en) | XML push and remote execution of a wireless applications | |
EP1126681A2 (en) | A network portal system and methods | |
US7920852B2 (en) | Compression of data transmitted between server and mobile device | |
JP4995367B2 (en) | High performance bookmarks for small footprint device applications | |
JP2004516579A (en) | Method and system for requesting information from a network client | |
US20030163570A1 (en) | Command line interface session tool | |
US20090025011A1 (en) | Inter-process communication at a mobile device | |
US20030167320A1 (en) | Registration service for registering plug-in applications with a management console | |
CA2436118A1 (en) | Policy implementation | |
US20090132908A1 (en) | Apparatus, program and method for accepting a request from a client computer via a network and executing a web application | |
US20060069704A1 (en) | Disconnectible applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SUN MICROSYSTEMS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KILEMBA, SHADRACK K.;HENDLEY, PAUL M.;PEREZ, ANDRES;REEL/FRAME:012664/0051 Effective date: 20020221 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |