IP Library Granted Patent US 8,413,139
Granted Patent B2
US 8,413,139 · App. 12/402,351 · Granted Apr 2, 2013

Programming model for application and data access and synchronization within virtual environments

Inventors: Dharma Shukla (Sammamish, WA); Abhay Parasnis (Sammamish, WA); Raymond Enders (Seattle, WA); Arash Ghanaie-Sichanie (Bothell, WA); Israel Hilerio (Kenmore, WA); Farookh Mohammed (Woodinville, WA); Aditya Bhandarkar (Redmond, WA)
Assignee: Microsoft Corporation
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,413,139
App. No.
12/402,351
Granted
Apr 2, 2013
Kind
B2
Abstract

Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser.

Claims (82)

1. A computer-readable storage device encoding instructions that, when executed on a processor of a computer having a computing environment, cause the computer to apply an operation of an application executing within a virtual environment, the instructions comprising:

a computing environment component that, when executed on the processor outside of the virtual environment, applies the operation to the computing environment and to apply at least one service to the computing environment including a synchronization service configured to synchronize at least a portion of the computing environment on the computer with a copy of at least a portion of the computing environment, and

a virtual environment interface that, when executed on the processor within the virtual environment, delivers the operation to the computing environment component on behalf of the application.

2. The computer-readable storage device of claim 1 :

the virtual environment comprising a browser, and

the virtual environment interface comprising a browser plug-in configured to interface with the computing environment component.

3. The computer-readable storage device of claim 1 :

the operation specifying a retrieving of at least one data object from the computing environment to be used by the application;

the computing environment component configured to:

retrieve the at least one data object from the computing environment, and

deliver the at least one data object to the virtual environment interface; and

the virtual environment interface configured to:

receive the at least one data object from the computing environment component, and

deliver the at least one data object to the application.

4. The computer-readable storage device of claim 3 :

at least one data object comprising a remote data object stored in a portion of the computing environment hosted by a remote computer, and

retrieving the at least one data object comprising retrieving the at least one remote data object from the remote computer.

5. The computer-readable storage device of claim 1 :

the operation specifying a writing of at least one data object to the computing environment by the application;

the virtual environment interface configured to deliver the at least one data object to the computing environment component; and

the computing environment component configured to:

receive the at least one data object, and

write the at least one data object to the computing environment.

6. The computer-readable storage device of claim 5 :

at least one data object comprising a remote data object to be stored in a portion of the computing environment hosted by a remote computer, and

writing the at least one data object comprising: delivering the at least one data object to the remote computer for storing in the portion of the computing environment.

7. The computer-readable storage device of claim 1 , the virtual environment interface comprising a programmatic interface comprising:

at least one operation configured to write a data object to the computing environment, and

at least one operation configured to read a data application in the computing environment.

8. The computer-readable storage device of claim 1 , the computing environment component comprising a programmatic interface comprising at least one operation relating to at least one service.

9. The computer-readable storage device of claim 1 :

the computing environment hosted by a computing environment host, and

the synchronization service configured to synchronize the computing environment with the copy hosted by the computing environment host.

10. The computer-readable storage device of claim 1 , the copy of the computing environment stored on a second computer represented in the computing environment.

11. The computer-readable storage device of claim 10 :

the computing environment comprising at least one application resource of an application that is not installed on the second computer, and

the synchronization service configured to send the at least one application resource to the second computer to be installed on the second computer.

12. The computer-readable storage device of claim 1 :

the computing environment comprising at least one application resource of an application that is not installed in the computing environment on the computer, and

the computing environment component configured, upon receiving the application resource from the copy of the computing environment during synchronizing, to install the application in the computing environment on the computer using the application resource.

13. The computer-readable storage device of claim 1 :

the operation associated with a permission based on at least one permission criterion, and

the computing environment component configured to perform at least one operation on behalf of the application comprising:

verifying the at least one permission criterion, and

upon verifying the at least one permission criterion, performing the at least one operation on the computing environment on behalf of the application.

14. The computer-readable storage device of claim 1 , the virtual environment configured to:

detect an instance of the computing environment component accessible to the computer; and

upon failing to detect an instance of the computing environment component, install an instance of the computing environment component on the computer.

15. The computer-readable storage device of claim 1 , the virtual environment configured to:

detect an instance of the virtual environment interface accessible to the computer; and

upon failing to detect an instance of the virtual environment interface, install an instance of the virtual environment interface on the computer.

16. The computer-readable storage device of claim 15 :

the computing environment comprising a deployable computing environment hosted by a computing environment host configured to execute an application on behalf of the computer; and

the virtual environment configured, upon failing to detect an instance of the computing environment component or an instance of the virtual environment interface, to:

send the application to the computing environment host, and

upon receiving output of the application from the computing environment host, render the output within the virtual environment.

17. A computer-readable storage device encoding instructions that, when executed on a processor of a computer having a computing environment, cause the computer to apply an operation of an application executing within a virtual environment comprising a browser the instructions comprising:

a computing environment component that, when executed on the processor outside of the virtual environment:

applies the operation to the computing environment on behalf of the application;

applies at least one service to the computing environment, including a synchronization service configured to synchronize at least a portion of the computing environment on the computer with a copy of the computing environment hosted by a computing environment host;

exposes to the virtual environment interface a programmatic interface comprising:

at least one operation configured to write a data object to the computing environment, and

at least one operation configured to read a data application in the computing environment, and

at least one operation relating to at least one service; and

upon receiving application resource of an application that is not installed in the computing environment on the computer, installs the application in the computing environment on the computer using the application resource; and

a virtual environment interface comprising a browser plug-in that, when executed on the processor within the virtual environment, delivers the operation to the computing environment component on behalf of the application.

18. A method of apply an operation of an application executing within a virtual environment on a computer having a processor and a computing environment, the method comprising:

executing on the processor, outside of the virtual environment, a first instruction set configured to:

apply the operation to the computing environment; and

apply at least one service to the computing environment including a synchronization service configured to synchronize at least a portion of the computing environment on the computer with a copy of at least a portion of the computing environment; and

executing on the processor, within the virtual environment, a second instruction set configured to deliver the operation to a computing environment component on behalf of the application.

19. The method of claim 18 :

the virtual environment comprising a browser, and

the second instruction set comprising a browser plug-in configured to interface with the first instruction set.

20. The method of claim 18 :

the operation specifying a retrieving of at least one data object from the computing environment to be used by the application;

the first instruction set configured to:

retrieve the at least one data object from the computing environment, and

deliver the at least one data object to the virtual environment interface; and

the second instruction set configured to:

receive the at least one data object from the computing environment component, and

deliver the at least one data object to the application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2009
From: SHUKLA, DHARMA; PARASNIS, ABHAY; ENDRES, RAYMOND; GHANAIE-SICHANIE, ARASH; HILERIO, ISRAEL; MOHAMMED, FAROOKH; BHANDARKAR, ADITYA
To: MICROSOFT CORPORATION
Reel/Frame 023043/0248 →
Continuity (1)
Related Publication 20100235830A1 · Sep 16, 2010