Application remoting using network vector rendering
First Claim
1. A computer-implemented method for improving one or more computer technologies, comprising:
- under control of a server computing device that is remotely located, separate, and distinct from a client computing device;
receiving from the client computing device a request to initiate a first remote application in the server computing device while the client computing device executes a client application, the request indicating one or more characteristics of the client computing device or the client application;
instantiating an instance of the first remote application in the server computing device, the server computing device having a rules engine;
executing the rules engine to determine a first appropriate interception technique for intercepting rendering commands from the first remote application instance based on evaluation of one or more hierarchical rules against one or more characteristics of the first remote application, the one or more characteristics of the client computing device, or the client application;
intercepting first render commands associated with the first remote application instance;
providing to the client computing device the first render commands to cause the client application to render one or more portions of the output of the first remote application instance based on the first render commands;
receiving from the client computing device an indication of a user action based on an event intercepted by the one or more files; and
causing the client application to update on the client computing device the output received from the first remote application instance by providing to the client computing device one or more second render commands based on the received indication of the user action.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and techniques for application isolation by remote-enabling applications are provided. Example embodiments provide an Adaptive Rendering Application Isolation System (“ARAIS”), which transparently and dynamically enables applications to run in an isolated execution environment yet be rendered locally in a manner that minimizes the amount of data to be transferred and the latency caused by expensive computation and/or by overburdening available bandwidth by remoting rendering using draw commands over rendering using pixel pushing or other techniques. In one embodiment, the ARAIS includes an orchestrator server which comprises remoting level determination logic and rules engine, pre-computed graphics libraries, connection support logic, data repositories for objects such as a render cache, whitelists, blacklists, client privileges, and application information, and one or more secure containers running remote application instances. These components cooperate to deliver isolation-ready technology to client applications.
147 Citations
30 Claims
-
1. A computer-implemented method for improving one or more computer technologies, comprising:
under control of a server computing device that is remotely located, separate, and distinct from a client computing device; receiving from the client computing device a request to initiate a first remote application in the server computing device while the client computing device executes a client application, the request indicating one or more characteristics of the client computing device or the client application; instantiating an instance of the first remote application in the server computing device, the server computing device having a rules engine; executing the rules engine to determine a first appropriate interception technique for intercepting rendering commands from the first remote application instance based on evaluation of one or more hierarchical rules against one or more characteristics of the first remote application, the one or more characteristics of the client computing device, or the client application; intercepting first render commands associated with the first remote application instance; providing to the client computing device the first render commands to cause the client application to render one or more portions of the output of the first remote application instance based on the first render commands; receiving from the client computing device an indication of a user action based on an event intercepted by the one or more files; and causing the client application to update on the client computing device the output received from the first remote application instance by providing to the client computing device one or more second render commands based on the received indication of the user action. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A computer-implemented method for improving one or more computer technologies, comprising:
under control of a server computing device that is remotely located, separate, and distinct from a client computing device; receiving from the client computing device a request to initiate a first remote application in the server computing device while the client computing device executes a client application, the request indicating one or more characteristics of the client computing device or the client application; instantiating an instance of the first remote application in the server computing device, the server computing device having a rules engine; executing the rules engine to determine a first appropriate interception technique for intercepting rendering commands from the first remote application instance based on evaluation of one or more hierarchical rules against one or more characteristics of the first remote application or the one or more characteristics of the client computing device or the client application; determining and providing one or more files to the client computing device on demand based on the received request and the first determined appropriate interception technique, the one or more files including application remoting information that modifies the client application executing on the client computing device to display output of the first remote application instance, wherein the one or more files are configured to be automatically loaded in the client application, and the application remoting information is configured to intercept events from an event loop to listen for events associated with the client application and invoke render handling code, is configured to initiate a connection from the client application to the first remote application instance, includes the render handling code in a compiled instance of a graphics library that is logically associated with the first determined appropriate interception technique, the compiled instance of the graphics library being configured to cause render commands to be rendered in the same manner on the client application as on the first remote application instance to ensure consistent rendering on the client application and on the first remote application instance; intercepting first render commands associated with the first remote application instance; providing to the client computing device the first render commands to facilitate the one or more loaded files to cause the client application to render one or more portions of the output of the first remote application instance based on the first render commands; receiving from the client computing device an indication of a user action based on an event intercepted by the one or more files; and causing the client application to update on the client computing device the output received from the first remote application instance by providing to the client computing device one or more second render commands based on the received indication of the user action. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
Specification