Remotely-hosted interactive client-server session

US9606844B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9606844-B2
Application numberUS-201113247761-A
CountryUS
Kind codeB2
Filing dateSep 28, 2011
Priority dateSep 28, 2011
Publication dateMar 28, 2017
Grant dateMar 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments are directed to interacting with a server in a read-eval-print loop (REPL) environment. In an embodiment, a client computer system receives a proxy object from a remotely-hosted server. The server maintains an execution context with which the client computer system interacts. The client system presents the received proxy object to the user for interaction with the object. The user input indicates how the data in the proxy object is to be processed. The interaction allows the user to manipulate the remotely-hosted data through the local computer system. The client system then, based on the user interaction, sends a user-initiated command to the remotely-hosted server using the proxy object. The user-initiated command indicates various portions of data hosted on the server that are to be returned to the user. The data received from the remotely-hosted server is then displayed at the client computer system.

First claim

Opening claim text (preview).

We claim: 1. At a client computer system including at least a processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for iteratively interacting with a server in a read-eval-print loop (REPL) environment, wherein the server is remotely-hosted, the method comprising: receiving at the client computer system a proxy object from the server, the proxy object associated with a session established with the server, the established session is initiated within an integrated development environment (IDE) at the client computer system, the server maintaining an execution context associated with the session with which the client computer system iteratively interacts and performs operations on remotely-hosted data on the server, the execution context storing a plurality of name/value pairs for variables declared by a user and storing a list of loaded and available libraries consumable by the client computer system, and the proxy object comprising data from within the server execution context; presenting the proxy object to the user for interaction with the proxy object, wherein user input indicates how the data in the proxy object is to be processed and indicates a function to be provided by the server through the REPL environment, the function provided by the server being provided to the user through the proxy object, the interaction allowing the user to manipulate the remotely-hosted data through the client computer system; based on the user interaction, the client computer system sending a second proxy object containing a user-initiated command to the server, the user-initiated command including a type identifier and indicating that both one or more portions of data hosted on the server and a result of executing the function on the server are to be returned to the user through the REPL environment, wherein the one or more portions of data hosted on the server comprising programming objects; and displaying, at the client computer system, the result of executing the function received through the REPL environment from the server, and integrating, by the processor, the programming objects in the IDE. 2. The method of claim 1 , wherein the established session allows the user to develop software code using the remotely-hosted data on the server. 3. The method of claim 1 , wherein the user implements the execution context to interact with content hosted on the server. 4. The method of claim 1 , wherein the IDE is appended to the REPL environment, such that functions and variables defined in the IDE are automatically available to the REPL environment. 5. The method of claim 1 , wherein the IDE is serialized and sent to the server to annotate the established session with a state of the IDE. 6. The method of claim 1 , wherein data received from the server is displayed in a rich, contextual manner on the client computer system. 7. The method of claim 1 , wherein one or more user-defined software functions are sent to the server for storage and subsequent retrieval by the user. 8. The method of claim 1 , wherein an initial user-initiated command includes a type identifier that identifies a type of command, enabling the server to parse and store the initial user-initiated command. 9. The method of claim 1 , wherein data retrieved by the server is cached for subsequent retrieval. 10. The method of claim 1 , wherein functions stored on the server are configured for late-bound access using a dictionary lookup. 11. At a server computer system including at least one processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for iteratively and interactively processing commands received in a read-eval-print loop (REPL) environment, the method comprising the server computer system performing the following operations: establishing a session with a client computer, the established session is initiated within an integrated development environment (IDE) at the client computer; maintaining a running execution context associated with the session and associated with the client computer, the running execution context allowing a user to iteratively interact with and perform iterative operations on data remotely-hosted on the server computer system, the execution context storing a plurality of name/value pairs for variables declared by the user and storing a list of loaded and available libraries consumable by the client computer; sending a proxy object to the client computer, the proxy object associated with the session and the running execution context, and the proxy object enabling the user to send commands to and receive data from the running execution context through the REPL environment; receiving a second proxy object containing a user-initiated command including a type identifier and indicating that both one or more portions of data hosted on the server computer system and a result of executing a function on the server computer system are to be returned to the user through the REPL environment, wherein the one or more portions of data hosted on the server computer system comprising programming objects; processing the user-initiated command within the running execution context and storing resulting state information on the server computer system; sending processed data to the user within a proxy result object through the REPL environment, the proxy result object comprising the processed data, allowing the user to interact locally with the processed data via the proxy result object; and displaying, at the client computer, the result of executing the function received through the REPL environment, and integrating, by the client computer, the programming objects in the IDE. 12. The method of claim 11 , wherein the processed data comprises a rendered visualization. 13. The method of claim 12 , wherein the rendered visualization allows the user to interact graphically with the visualization. 14. The method of claim 12 , wherein upon determining that the rendered visualization comprises a set of points on a graph, the server computer system calculates a visualization graph and sends a corresponding image to the user. 15. The method of claim 11 , wherein one or more user-defined software functions are received at the server computer system and are persistently stored for subsequent retrieval by the user. 16. The method of claim 11 , wherein the type identifier identifies a type of command that enables the server computer system to parse and store the user-initiated command. 17. A computer system comprising the following: one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes a client computer system to perform a method for visually interacting with a rendered visualization in a read-eval-print loop (REPL) environment, the method comprising the following: receiving at the client computer system a proxy object from a server, the server is remotely-hosted, the proxy object associated with a session established with the server, the established session is initiated within an integrated development environment (IDE) at the client computer system, the server maintaining an execution context associated with the session with which the client computer system iteratively interacts and performs iterative operations on data remotely-hosted on the server, the execution context storing a plurality of name/value pairs for variables declared

Assignees

Inventors

Classifications

  • Intelligent editors · CPC title

  • Physics · mapped topic

  • specially adapted for terminal emulation, e.g. Telnet · CPC title

  • involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

  • Client-server · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9606844B2 cover?
Embodiments are directed to interacting with a server in a read-eval-print loop (REPL) environment. In an embodiment, a client computer system receives a proxy object from a remotely-hosted server. The server maintains an execution context with which the client computer system interacts. The client system presents the received proxy object to the user for interaction with the object. The user i…
Who is the assignee on this patent?
Ng Samuel, Lam John F, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/54. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).