IP Library Granted Patent US 10,229,265
Granted Patent B2
US 10,229,265 · App. 13/154,323 · Granted Mar 12, 2019

System and method for controlling inter-application association through contextual policy control

Inventors: Stuart Schaefer (Marblehead, MA); John Sheehan (Somerville, MA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/53G06F9/44505G06F9/545G06F21/62G06F21/6281G06F2209/542
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 10,229,265
App. No.
13/154,323
Granted
Mar 12, 2019
Kind
B2
Abstract

A method for controlling the interoperation of a plurality of software applications and resources includes intercepting communications from a first application to a second application or resource, directing the communication to a context management system, generating a candidate list of contexts for the communication, evaluating the candidate list according to at least one policy defined for these contexts to identify the resultant action and namespace for the communication, and performing the action as defined by the policies within the identified namespace. The method further includes tracking one or more versions of the second application, as well as tracking an evolution of application and/or resource names. The method further includes identifying one or more operations associated with a context on the candidate list, and executing the identified operations prior to a further communication.

Claims (57)

1. A method for defining alternate namespaces for a first application to be executed along with a second application, the method comprising:

obtaining a common name, the common name referring to different resources and is configured to be usable by the first application to access a first resource and the second application to access a second resource, wherein the first resource is in a different location than the second resource;

tracking changes of versions of at least one application wherein the version identifies that a first version and a second version of the same application comprise at least one computer instruction that is different;

identifying a first and second target namespace for the common name, wherein the first target namespace includes a first version of the at least one application and the second target namespace includes a second version of the at least one application;

dynamically generating, based on the common name, a first unique local name usable by the first application within the first target namespace to identify the first resource;

dynamically generating, based on the common name, a second unique local name usable by the second application within the second target namespace to identify the second resource;

providing the first application with access to the first resource identified by the first unique local name;

providing the second application with access to the second resource identified by the second unique local name; and

tracking an evolution of a name of the first and second application, a name of the first and second resource identified by the common name, or a name of the first and second resource identified by the first and second unique local name.

2. The method of claim 1 , further comprising:

tracking one or more versions of the first and second application.

3. The method of claim 1 , wherein the step of identifying the first and second target namespace comprises performing one or more distributed queries.

4. The method of claim 3 , wherein at least one query for the first and second target namespace is performed to a management system that tracks namespaces common to one or more systems.

5. The method of claim 1 , wherein the first and second resource identified by the common name or the first and second resource identified by the first and second unique local name comprises a file containing program instructions.

6. A method for defining alternate namespaces for a first application to be executed along with a second application, the method comprising:

obtaining a common name, the common name referring to different resources and is configured to be usable by the first application to access a first resource and the second application to access a second resource, wherein the first resource is in a different location than the second resource;

tracking changes of versions of at least one application wherein the version identifies that a first version and a second version of the same application comprise at least one computer instruction that is different;

identifying a first and second target namespace for the common name, wherein the first target namespace includes a first version of the at least one application and the second target namespace includes a second version of the at least one application;

dynamically generating, based on the common name, a first unique local name usable by the first application within the first target namespace to identify the first resource;

dynamically generating, based on the common name, a second unique local name usable by the second application within the second target namespace to identify the second resource;

providing the first application with access to the first resource identified by the first unique local name;

providing the second application with access to the second resource identified by the second unique local name; and

translating the first and second unique local name into a first and second absolute name such that access to the first and second resource identified by the first and second unique local name can be facilitated to a resource identified by a different local name in another namespace.

7. A system for defining an alternate namespace for a first application to be executed along with a second application, the system comprising:

a processor;

a memory having stored thereon instructions that, when executed on the processor, cause the system at least to:

intercept a call from the first application for a first resource of a common name that the first application uses to reference the first resource, the common name being usable by the second application to access a second resource;

identify a target namespace for the call, the target namespace comprising a domain or scope within which a unique name may be mapped to an identifiable resource;

dynamically generate, based on the common name, a local name identifying the first resource, the local name being uniquely usable by the first application within the target namespace;

provide the first application with access to the first resource identified by the local name; and

track an evolution of a name of the first and second application, a name of the first and second resource identified by the common name, or a name of the first and second resource identified by the first and second unique local name.

8. The system of claim 7 , further having stored in the memory instructions, that when executed by the processor, cause the system at least to: track one or more versions of the first application.

9. The system of claim 7 , wherein the instructions, that when executed by the processor, cause the system at least to identify the target namespace further cause the system at least to; perform one or more distributed queries.

10. The system of claim 9 , wherein at least one query for the target namespace is performed to a management system that tracks namespaces common to one or more systems.

11. A system for defining an alternate namespace for a first application to be executed along with a second application, the system comprising:

a processor;

a memory having stored thereon instructions that, when executed on the processor, cause the system at least to:

intercept a call from the first application for a first resource of a common name that the first application uses to reference the first resource, the common name being usable by the second application to access a second resource;

identify a target namespace for the call, the target namespace comprising a domain or scope within which a unique name may be mapped to an identifiable resource;

dynamically generate, based on the common name, a local name identifying the first resource, the local name being uniquely usable by the first application within the target namespace;

provide the first application with access to the first resource identified by the local name; and

translate the local name into an absolute name such that access to the first resource identified by the local name can be facilitated to a resource identified by a different local name in an alternate namespace.

12. A computer-readable memory device having stored thereon computer-readable instruction that upon execution on a computing device define an alternate namespace for a first application to be executed along with a second application, by causing the computing device at least to:

intercept a call from the first application for a first resource identified by a common name, the common name being usable by the second application to access a second resource,

identify a target namespace for the call;

dynamically generate, based on the common name, a local name identifying the first resource, the local name being uniquely usable by applications within the target namespace;

provide the first application with access to the first resource identified by the local name; and

track an evolution of a name of the first and second application, a name of the first and second resource identified by the common name, or a name of the first and second resource identified by the first and second unique local name.

13. The computer-readable memory device of claim 12 , further having stored instructions that when executed by the computing device cause the computing device at least to: track one or more versions of the first application.

14. The computer-readable memory device of claim 12 , wherein the instructions that when executed by the computing device cause the computing device at least to identify the target namespace further cause the computing device at least to: perform one or more distributed queries.

15. The computer-readable memory device of claim 14 , wherein at least one query for the target namespace is performed to a management system that tracks namespaces common to one or more systems.

16. The computer-readable memory device of dam 12 , wherein the first resource of the common name or the first resource identified by the local name is a file containing program instructions.

17. A computer-readable memory device having stored thereon computer-readable instruction that upon execution on a computing device define an alternate namespace for a first application to be executed along with a second application, by causing the computing device at least to:

intercept a call from the first application for a first resource identified by a common name, the common name being usable by the second application to access a second resource,

identify a target namespace for the call;

dynamically generate, based on the common name, a local name identifying the first resource, the local name being uniquely usable by applications within the target namespace; provide the first application with access to the first resource identified by the local name; and

translate the local name into an absolute name such that access to the first resource identified by the local name can be facilitated to a resource identified by a different local name in an alternate namespace.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2016
From: STUART SCHAEFER & JOHN SHEEHAN
To: SOFTRICITY, INC.
Reel/Frame 039399/0917 →
MERGER Recorded Aug 11, 2016
From: SOFTRICITY, INC.
To: MICROSOFT CORPORATION
Reel/Frame 039646/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
Continuity (3)
Division 11191595 · Jul 28, 2005
Provisional Application 60598234 · Aug 3, 2004
Related Publication 20110239227A1 · Sep 29, 2011