SHELL SESSIONS

Information

  • Patent Application
  • 20070192502
  • Publication Number
    20070192502
  • Date Filed
    August 31, 2006
    18 years ago
  • Date Published
    August 16, 2007
    17 years ago
Abstract
Embodiments described herein are based on the principle that shells execute commands as units of characters sent within a message. Accordingly, embodiments herein provide for establishing a remote processing session for commands by using a binding mechanism that binds a series of commands to a remote shell using a message rather than a binary stream of data. More specifically, embodiments herein provided for a mechanism of encapsulating both a command and a binding mechanism (e.g., a shell identifier and/or shell token) into a single message. Accordingly, the binding mechanism can be used throughout the lifetime of the session and allows for modeling the shell processor session (its lifetime) as a series of commands, rather than as a series of characters. In addition, note that because the binding mechanism for the shell sessions is sent within messages, the problems associated with binary or character-by-character establishment of current shell sessions are overcome.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:



FIG. 1 illustrates a network that utilizes message protocol handlers for remote command-line shell processing in accordance with example embodiments;



FIG. 1B illustrates the use of an open message and return shell identifier for establishing a command session in accordance with example embodiments;



FIG. 1C illustrates using a message to send a command unit to a shell processor for execution in accordance with example embodiments;



FIG. 1D illustrates the streaming of the output for an executed command in accordance with example embodiments;



FIG. 1E illustrates the separation of the input stream message from the command message in accordance with example embodiments;



FIG. 1F illustrates the use of messages for transmitting control operations for a shell session in accordance with example embodiments;



FIG. 1G illustrates the use of a close message for terminating a command session in accordance with example embodiments; and



FIG. 2 illustrates a flow diagram for a protocol used in executing command-lines at a remote shell in accordance with example embodiments.


Claims
  • 1. At a remote device in a network computing environment, a method of establishing a command-line shell processing session by providing a binding mechanism within a message rather than a binary stream of data in order to bind the shell to a series of commands, the method comprising: receiving a request message to open a shell at a remote command-line processor;providing a binding mechanism for use in transferring commands to the shell for execution; andreceiving an execution request message to execute a command, wherein the execution request message includes the command as a unit and the binding mechanism.
  • 2. The method of claim 1, wherein the binding mechanism is a shell identifier, shell token, or both.
  • 3. The method of claim 1, wherein in response to the received execution request message the method further comprises: sending a response message that includes a command identifier for use in identifying input, output, or other signal messages related to the execution of the command.
  • 4. The method of claim 1, wherein the response message includes a status report of the execution of the command.
  • 5. The method of claim 1, wherein the command requires input for execution at the command-line shell processor, wherein the input is received as one or more streams of data separate from the execution message, and wherein the input includes both the shell and the command identifiers.
  • 6. The method of claim 1, wherein the execution of the command produces an output, and wherein the output is sent to a client as one or more streams of data that include both the shell and the command identifiers.
  • 7. The method of claim 1, further comprising: receiving one or more asynchronous signal messages that include both the shell and command identifiers for changing the shell operation flow such that the execution of the command is terminated, paused, resumed, exited, or delayed.
  • 8. The method of claim 1, wherein the command requires an input stream and the execution of the command produces an output stream, and wherein a rate of flow for the input stream is dynamically adjusted relative to a rate of flow for the output stream.
  • 9. At a client device in a network computing environment, a method of establishing a remote processing session for commands by using a binding mechanism that binds a series of commands to a remote shell using a message rather than a binary stream of data, the method comprising: sending a request message to open a shell at a remote command-line processor;receiving a binding mechanism for use in transferring commands to the shell for execution;sending an execution request message to execute a command, wherein the execution request message includes the command as a unit and the binding mechanism.
  • 10. The method of claim 9, wherein the binding mechanism is a shell identifier, shell token, or both.
  • 11. The method of claim 9, wherein in response to the received execution request message the method further comprises: sending a response message that includes a command identifier for use in identifying input, output, or other signal messages related to the execution of the command.
  • 12. The method of claim 9, wherein the response message includes a status report of the execution of the command.
  • 13. The method of claim 9, wherein the command requires input for execution at the shell, wherein the input is sent as one or more streams of data separate from the execution message, and wherein the input includes both the shell and the command identifiers.
  • 14. The method of claim 9, wherein the execution of the command produces an output, and wherein the output is received at a client as one or more streams of data that include both the shell and the command identifiers.
  • 15. The method of claim 9, further comprising: sending one or more asynchronous signal messages that include both the shell and command identifiers for changing the shell operation flow such that the execution of the command is terminated, paused, resumed, exited, or delayed.
  • 16. The method of claim 9, wherein the command requires an input stream and the execution of the command produces an output stream, and wherein a rate of flow for the input stream is dynamically adjusted relative to a rate of flow for the output stream.
  • 17. At a remote device in a network computing environment, a computer program product for implementing a method of establishing a command-line shell processing session by providing a binding mechanism within a message rather than a binary stream of data in order to bind the shell to a series of commands, the computer program product comprising one or more computer readable media having stored thereon computer executable instructions that, when executed by a processor, can cause the remote device to perform the following: receive a request message to open a shell at a remote command-line processor;provide a binding mechanism for use in transferring commands to the shell for execution; andreceive an execution request message to execute a command, wherein the execution request message includes the command as a unit and the binding mechanism.
  • 18. The computer program product of claim 17, wherein the binding mechanism is a shell identifier, shell token, or both.
  • 19. The computer program product of claim 17, wherein in response to the received execution request message the computer program product further comprising executable instructions that cause the command-line processor to perform the following: send a response message that includes a command identifier for use in identifying input, output, or other signal messages related to the execution of the command.
  • 20. The computer program product of claim 17, wherein the command requires input for execution at the command-line shell processor, wherein the input is received as one or more streams of data separate from the execution message, and wherein the input includes both the shell and the command identifiers.
Provisional Applications (1)
Number Date Country
60773954 Feb 2006 US