IP Library Granted Patent US 9,864,528
Granted Patent B2
US 9,864,528 · App. 14/516,561 · Granted Jan 9, 2018

Data object observation among domain-restricted containers

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 9,864,528
App. No.
14/516,561
Granted
Jan 9, 2018
Kind
B2
Abstract

A device may feature a set of containers from different domains, where the containers are restricted from interoperation due to domain restrictions. The device may provide a communication interface that enables simple communication between containers, such as string-based message-passing. While adequate for some uses, it may be difficult to utilize the communication interface in an ad-hoc manner for more complex uses, such as enabling a first container to observe state changes in an object within a second container. Instead, the device may receive a request by an observing container to create an observed container that is associated with a different domain, and to observe a data object within the observed container. Accordingly, the device may monitor the data object on behalf of the observing domain, and upon detecting an update, may transmit a notification of the update to the observing domain through the communication interface between the domain-restricted containers.

Claims (68)

1. A method of coordinating domain-restricted containers on a device having a processor, the method comprising:

executing, on the processor, instructions that cause the device to:

responsive to receiving, from an observing container that is an isolation construct and that is restricted to an observing container domain, a creating request to create an observed container that is an isolation construct and that is restricted to an observed container domain:

create the observed container, and

provide a communication interface that enables communication between the observing container and the observed container within the device; and

responsive to receiving an observing request from the observing container to observe a data object within the observed container:

monitor the data object on behalf of the observing container; and

responsive to detecting an update of the data object within the observed container, notify the observing container through the communication interface of the update of the data object.

2. The method of claim 1 , wherein executing the instructions further causes the device to, responsive to receiving an observing request from an observing container to observe a second data object in a second container that is not associated with the observing container domain and was not created by the observing container, refuse the observing request by the observing container to observe the second container.

3. The method of claim 1 , wherein:

the creating request by the observing container specifies an observed container content of the observed container including the data object; and

receiving the observing request from the observing container further comprises: receiving the creating request from the observing container to create the observed container content including the data object.

4. The method of claim 3 , wherein:

the creating request by the observing container further comprises a content location of the observed container content; and

creating the observed container further comprises:

loading the observed container content from the content location; and

creating the observed container according to the observed container content.

5. The method of claim 1 , wherein:

the observing container further comprises an observing container version of the data object; and

receiving the observing request further comprises: receiving, from the observing container, a creating request to synchronize the data object of the observed container with the observing container version of the data object.

6. The method of claim 1 , wherein creating the observed container further comprises: notifying the observed container domain of the data object of the observed container that is observable by the observing container.

7. The method of claim 1 , wherein executing the instructions further causes the device to notify the observing container of observable data objects within the observed container.

8. The method of claim 7 , wherein notifying the observing container further comprises: responsive to receiving, from the observing container domain, a notification of observable data objects within the observed container, transmit the notification to the observing container.

9. A memory device storing instructions that, when executed on a processor of a computing device, cause the computing device to coordinate domain-restricted containers, by:

responsive to receiving, from an observing container that is an isolation construct and that is restricted to an observing container domain, a creating request to create an observed container that is an isolation construct and that is restricted to an observed container domain:

creating the observed container, and

providing a communication interface that enables communication between the observing container and the observed container within the computing device; and

responsive to receiving an observing request from the observing container to observe a data object within the observed container:

monitoring the data object on behalf of the observing container; and

responsive to detecting an update of the data object within the observed container, notifying the observing container through the communication interface of the update of the data object.

10. The memory device of claim 9 , wherein:

the creating request by the observing container further specifies a notification callback function of the observing container; and

notifying the observing container of the update of the data object further comprises:

responsive to detecting the update of the data object within the observed container, invoking the notification callback function of the observing container.

11. The memory device of claim 10 , wherein:

the observing request by the observing container specifies a notification callback name of the notification callback function; and

invoking the notification callback function further comprises: initiating a message through the communication interface specifying the notification callback name of the notification callback function.

12. The memory device of claim 9 , wherein:

notifying the observing container of the update of the data object further comprises: notifying the observing container that the update of the data object has occurred; and

executing the instructions further causes the computing device to, responsive to receiving a request from the observing container to provide the update, provide the update of the data object to the observing container.

13. The memory device of claim 9 , wherein notifying the observing container of the update of the data object further comprises: transmitting the update of the data object to the observing container.

14. The memory device of claim 13 , wherein transmitting the update further comprises:

generating a delta of the update of the data object from a previous version of the data object before the update; and

transmitting only the delta of the update to the observing container.

15. The memory device of claim 9 , wherein:

the observing container further comprises an observing container version of the data object; and

executing the instructions further causes the computing device to, responsive to detecting the update of the data object, apply the update to the observing container version of the data object.

16. The memory device of claim 9 , wherein executing the instructions further causes the computing device to, responsive to receiving a second update of the data object from the observing container, apply the second update to the data object within the observed container.

17. The memory device of claim 16 , wherein:

the observing container further comprises an observing container version of the data object;

executing the instructions further causes the computing device to monitor the observing container version of the data object to detect the second update; and

receiving the second update of the data object further comprises: detecting the second update of the observing container version of the data object.

18. A device that coordinates domain-restricted containers, comprising:

a processor; and

a memory storing:

a virtual environment hosting an observing container that is an isolation construct and that is restricted to an observing container domain, and an observed container that is an isolation construct and that is restricted to an observed container domain; and

instructions that, when executed on the processor, provide a system comprising:

a communication interface that enables communication between the observing container and the observed container within the device; and

an observing interface that:

responsive to receiving an observing request from the observing container to observe a data object within the observed container, monitors the data object on behalf of the observing container; and

responsive to detecting an update of the data object within the observed container, notifies the observing container through the communication interface of the update of the data object.

19. The device of claim 18 , wherein the communication interface further comprises a string messaging interface that enables exchange of string messages between the observing container and the observed container.

20. The device of claim 19 , wherein notifying the observing container of the update through the communication interface further comprises:

serializing the update from the observed container into a string-serialized update message;

transmitting the string-serialized text message through the string messaging interface from the observed container; and

responsive to receiving the string-serialized update message for the observing container through the string messaging interface:

deserializing the string-serialized update message to regenerate the update; and

deliver the update to the observing container.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →