SHELL INPUT/OUTPUT SEGREGATION

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. At a client in a network computing environment, a method of ensuring that commands are properly executed at a remote command-line shell processor by separating the command from input and output streams, the method comprising: sending an execution request message that includes a command to a command-line shell processor for execution, wherein the command is sent as a unit that includes one or more of a command name, one or more switches, or other information needed for a successful execution thereof,upon receiving acknowledgement that the command has properly been received by the command-line shell processor, sending input for the command as one or more streams of data; andin response to the execution of the command using the streamed input, receiving one or more streams of output data from the command-line shell processor.
  • 2. The method of claim 1, wherein the acknowledgement that the command has properly been received by the command-line shell processor includes a command identifier, which is included in the one or more streams of data for the input in order to appropriately identify the input as corresponding to the command.
  • 3. The method of claim 1, wherein prior to sending the execution request message, a shell session is established by sending an open shell request message and receiving a shell identifier, which is included within the execution request message in order to appropriately identify the command as being part of the shell session.
  • 4. The method of claim 3, wherein upon completion of the execution of the command, a close shell message is sent to the command-line shell processor for closing the shell session.
  • 5. The method of claim 1, wherein prior to the completion of executing the command, one or more asynchronous signal messages are sent for changing the shell operation flow such that the execution of the command is terminated, paused, resumed, exited, or delayed.
  • 6. The method of claim 1, wherein a rate of flow for the input stream is dynamically adjusted relative to a rate of flow for the output stream.
  • 7. At a remote shell processor in a network computing environment, a method of ensuring that commands are properly executed at a remote command-line shell processor by separating the command from input and output streams, the method comprising: receiving at a command-line shell processor an execution request message that includes a command, wherein the command is received as a unit that includes one or more of a command name, one or more switches, or other information needed for a successful execution thereof;sending an acknowledgement that the command has properly been received by the command-line shell processor;after sending the acknowledgement, receiving input for the command as one or more streams of data; andin response to the execution of the command using the streamed input, sending one or more streams of output data from the command-line shell processor.
  • 8. The method of claim 7, wherein the acknowledgement that the command has properly been received by the command-line shell processor includes a command identifier, which is included in the one or more streams of data for the input in order to appropriately identify the input as corresponding to the command.
  • 9. The method of claim 7, wherein prior to receiving the execution request message, a shell session is established by receiving an open shell request message and sending a shell identifier, which is included within the execution request message in order to appropriately identify the command as being part of the shell session.
  • 10. The method of claim 9, wherein upon completion of the execution of the command, a close shell message is received for closing the shell session.
  • 11. The method of claim 7, wherein prior to the completion of executing the command, one or more asynchronous signal messages are received for changing the shell operation flow such that the execution of the command is terminated, paused, resumed, exited, or delayed.
  • 12. The method of claim 7, wherein a rate of flow for the input stream is dynamically adjusted relative to a rate of flow for the output stream.
  • 13. At a client in a network computing environment, a computer program product for implementing a method of ensuring that commands are properly executed at a remote command-line shell processor by separating the command from input and output streams, 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 client to perform the following: send an execution request message that includes a command to a command-line shell processor for execution, wherein the command is sent as a unit that includes one or more of a command name, one or more switches, or other information needed for a successful execution thereof,upon receiving acknowledgement that the command has properly been received by the command-line shell processor, send input for the command as one or more streams of data; andin response to the execution of the command using the streamed input, receive one or more streams of output data from the command-line shell processor.
  • 14. The computer program product of claim 13, wherein the acknowledgement that the command has properly been received by the command-line shell processor includes a command identifier, which is included in the one or more streams of data for the input in order to appropriately identify the input as corresponding to the command.
  • 15. The computer program product of claim 13, wherein prior to sending the execution request message, a shell session is established by sending an open shell request message and receiving a shell identifier, which is included within the execution request message in order to appropriately identify the command as being part of the shell session.
  • 16. The computer program product of claim 15, wherein upon completion of the execution of the command, a close shell message is sent to the command-line shell processor for closing the shell session.
  • 17. The computer program product of claim 13, wherein prior to the completion of executing the command, one or more asynchronous signal messages are sent for changing the shell operation flow such that the execution of the command is terminated, paused, resumed, exited, or delayed.
  • 18. The computer program product of claim 13, wherein a rate of flow for the input stream is dynamically adjusted relative to a rate of flow for the output stream.
Provisional Applications (1)
Number Date Country
60773954 Feb 2006 US