TRANSFERRING COMMAND-LINES AS A MESSAGE

Abstract
Embodiments described herein are based on the principle that shells execute commands as units of characters. Accordingly, embodiments herein provide for a sending side with enough intelligence to isolate each command, examine it, perform some levels of validation, and deliver a structured representation of the command to the remote processor before doing any network operations. More specifically, embodiments herein provided for a mechanism of identifying a command and encapsulating the command into a single message (e.g., a SOAP, HTTPS, or other type message), which is then sent to a remote shell for processing as an entire unit. Accordingly, embodiments herein treat the command as a single unit, rather than as a character-oriented transmission.
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. In a networking computing system, a method of remotely operating a shell process by transferring commands as a message based protocol rather than as a character-oriented transmission, the method comprising: identifying a command to be executed remotely at a command-line shell processor, which processes commands as units that includes one or more of a command name, one or more switches, or other information needed for successful execution;creating an execution message for attaching the command as a unit thereto when requesting execution of the command by the command-line shell processor; andsending the execution message to the remote command-line shell process for processing the command without having to send the command on a character-by-character basis.
  • 2. The method of claim 1, wherein the command requires input for execution at the remote command-line shell process and wherein the input is sent as one or more streams of data separate from the execution message.
  • 3. The method of claim 2, wherein prior to sending the input, the method further comprises: receiving, in response to the execution message, a command identifier within a response message that acknowledges the receipt of the command; andincluding in the input the command identifier for identifying the one or more streams as input into the command.
  • 4. The method of claim 1, 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.
  • 5. The method of claim 1, further comprising: sending one or more asynchronous signal messages to the remote command-line shell process for changing the shell operation flow such that the execution of the command is one or more of terminated, paused, resumed, exited, delayed, or an input or output rate is otherwise adjusted.
  • 6. The method of claim 1, wherein prior to sending the command the method further comprises: creating an open message for requesting opening the command-line shell;sending the open message to the command-line shell processor; andreceiving in response to the open message an open shell response that includes an acknowledgment for the opening of the command-line shell.
  • 7. The method of claim 6, wherein the open shell response further includes an identifier for the command-line shell opened that is also included in the execution message for the command sent in order to identify a session for the command-line shell.
  • 8. In a networking computing system, a method of executing command-lines received as a message based protocol rather than as a character-oriented transmission, the method comprising: receiving an execution message that includes a command, which comprises one or more of a command name, one or more switches, or other information needed for successful execution;extracting the command from the execution message; andautomatically executing the command at a command-line shell process without having to receive a character string for executing the command.
  • 9. The method of claim 8, wherein the command requires input for execution at the command-line shell processor and wherein the input is received as one or more streams of data separate from the execution message.
  • 10. The method of claim 9, wherein prior to receiving the input, the method further comprises: sending, in response to the execution message, a command identifier within a response message that acknowledges the receipt of the command; andidentifying in the input the command identifier for identifying the one or more streams as input into the command.
  • 11. The method of claim 8, 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.
  • 12. The method of claim 8, further comprising: receiving one or more asynchronous signal messages for changing the shell operation flow such that the execution of the command is one or more of terminated, paused, resumed, exited, delayed, or an input or output rate is otherwise adjusted.
  • 13. The method of claim 8, wherein prior to sending the command the method further comprises: receiving an open message for requesting opening the command-line shell;in response to the open message, initializing the command-line shell; andsending a open shell response that includes an acknowledgment for the opening of the command-line shell.
  • 14. The method of claim 13, wherein the open shell response further includes an identifier for the command-line shell opened that is also included in the execution message for the command sent in order to identify a session for the command-line shell.
  • 15. In a networking computing system, a computer program product used in implementing a method of remotely operating a shell process by transferring commands as a message based protocol rather than as a character-oriented transmission, 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 networking computing system to perform the following: identify a command to be executed remotely at a command-line shell processor, which processes commands as units that includes one or more of a command name, one or more switches, or other information needed for successful execution;create an execution message for attaching the command as a unit thereto when requesting execution of the command by the command-line shell processor; andsend the execution message to the remote command-line shell process for processing the command without having to send the command on a character-by-character basis.
  • 16. The computer program product of claim 15, wherein the command requires input for execution at the remote command-line shell process and wherein the input is sent as one or more streams of data separate from the execution message.
  • 17. The computer program product of claim 16, wherein prior to sending the input, the computer program product further comprising executable instructions that cause the networking computing system to perform the following: receive, in response to the execution message, a command identifier within a response message that acknowledges the receipt of the command; andinclude in the input the command identifier for identifying the one or more streams as input into the command.
  • 18. The computer program product of claim 15, 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.
  • 19. The computer program product of claim 15 comprising executable instructions that cause the networking computing system to perform the following: send one or more asynchronous signal messages to the remote command-line shell process for changing the shell operation flow such that the execution of the command is one or more of terminated, paused, resumed, exited, delayed, or an input or output rate is otherwise adjusted.
  • 20. The computer program product of claim 15, wherein prior to sending the command the computer program product further comprising executable instructions that cause the networking computing system to perform the following: create an open message for requesting opening the command-line shell;send the open message to the command-line shell processor; andreceive in response to the open message an open shell response that includes an acknowledgment for the opening of the command-line shell.
Provisional Applications (1)
Number Date Country
60773954 Feb 2006 US