IP Library Granted Patent US 8,745,489
Granted Patent B2
US 8,745,489 · App. 11/469,428 · Granted Jun 3, 2014

Shell input/output segregation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,745,489
App. No.
11/469,428
Granted
Jun 3, 2014
Kind
B2
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.

Claims (36)

1. At a client in a network computing environment, a method of ensuring that commands sent from the client are properly executed at a remote command-line shell processor by separating commands from input and output streams, the method comprising:

establishing a shell session with the remote command-line shell processor, wherein the shell session is initiated by the client in the network computing environment;

after the shell session has been established, sending from the client an execution request message to the remote command-line shell processor that includes a command, wherein the command is sent as a unit that includes a command name and one or more switches;

receiving an acknowledgement at the client from the remote command-line processor that the command has properly been received;

in response to receiving the acknowledgement, sending to the remote command-line processor input from the client for the command as one or more input streams of data, wherein the input is distinct from the command name and one or more switches of the command, and wherein the one or more input streams of data is two or more characters; and

in response to execution of the command using the input at the remote command-line shell processor, receiving at the client one or more output streams of data from the remote command-line shell processor, wherein the output is distinct from the command name and one or more switches of the command, and wherein the one or more output streams of data is two or more characters.

2. The method of claim 1 , wherein the acknowledgement that the command has properly been received includes a command identifier, which is included in the one or more input streams of data in order to appropriately identify the input as corresponding to the command.

3. The method of claim 2 , further comprising receiving at the client 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 from the client 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 from the client for changing a shell operation flow at the remote command-line shell processor 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 one or more input streams of data is dynamically adjusted relative to a rate of flow for the one or more output streams of data.

7. At a remote command-line shell processor in a network computing environment, a method of ensuring that commands sent from a client are properly executed at the remote command-line shell processor by separating commands from input and output streams, the method comprising:

establishing a shell session with the client, wherein the shell session is initiated from the client to the remote command-line shell processor;

after the shell session has been established, receiving at the remote command-line shell processor an execution request message from the client that includes a command, wherein the command is received as a unit that includes a command name and one or more switches;

sending from the remote command-line shell processor an acknowledgement to the client that the command has properly been received by the command-line shell processor;

in response to sending the acknowledgement, receiving at the remote command-line shell processor input from the client for the command as one or more input streams of data, wherein the input is distinct from the command name and one or more switches of the command, and wherein the one or more input streams of data is two or more characters;

executing, at the remote command-line shell processor, the command using the input; and

in response to execution of the command using the input, sending to the client one or more output streams of data from the remote command-line shell processor, wherein the output is distinct from the command name and one or more switches of the command, and wherein the one or more output streams of data is two or more characters.

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 input streams of data in order to appropriately identify the input as corresponding to the command.

9. The method of claim 8 , further comprising sending from the command-line shell processor 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 at the command-line shell processor 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 at the command-line shell processor for changing a 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 one or more input streams of data is dynamically adjusted relative to a rate of flow for the one or more output streams of data.

13. At a client in a network computing environment, a computer storage memory device for implementing a method of ensuring that commands sent from the client are properly executed at a remote command-line shell processor by separating commands from input and output streams, the computer storage memory device having stored thereon computer executable instructions that, when executed by a processor, can cause the client to perform the following:

establish a shell session with the remote command-line shell processor;

after the shell session has been established, send from the client an execution request message to the remote command-line shell processor that includes a command, wherein the command is sent as a unit that includes a command name and one or more switches;

receive an acknowledgement at the client that the command has properly been received;

in response to receiving the acknowledgement, send to the remote command-line shell processor input from the client for the command as one or more input streams of data, wherein the input is distinct from the command name and one or more switches of the command, and wherein the one or more input streams of data is two or more characters; and

in response to execution of the command using the input at the remote command-line shell processor, receive at the client one or more output streams of data, wherein the output is distinct from the command name and one or more switches of the command, and wherein the one or more output streams of data is two or more characters.

14. The computer storage memory device of claim 13 , wherein the acknowledgement that the command has properly been received includes a command identifier, which is included in the one or more streams of input data in order to appropriately identify the input as corresponding to the command.

15. The computer storage memory device of claim 14 , further comprising receiving at the client 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 storage memory device of claim 15 , wherein upon completion of the execution of the command, a close shell message is sent from the client for closing the shell session.

17. The computer storage memory device of claim 13 , wherein prior to the completion of executing the command, one or more asynchronous signal messages are sent from the client for changing a shell operation flow at the remote command-line shell processor such that the execution of the command is terminated, paused, resumed, exited, or delayed.

18. The computer storage memory device of claim 13 , wherein a rate of flow for the one or more input streams of data is dynamically adjusted relative to a rate of flow for the one or more output streams of data.

19. The computer storage memory device of claim 13 , wherein the computer storage memory device is selected from the group consisting of ROM, EEPROM, and CD-ROM.

20. The computer storage memory device of claim 13 , wherein the computer storage memory device is RAM devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →