IP Library › Granted Patent US 8,095,940
Granted Patent B2
US 8,095,940 · App. 11/231,370 · Granted Jan 10, 2012

Method and system for locating and accessing resources

Assignee: Citrix Systems, Inc.
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,095,940
App. No.
11/231,370
Filed
Sep 19, 2005
Granted
Jan 10, 2012
Kind
B2
Examiner
CAO, DIEM K
Art Unit
2196
USPC
719/320
Abstract

In a method for accessing resources provided by an operating system, a request for a resource is received by an application program executing inside an environment. A first identifier associated with the resource is acquired. A registry is consulted, responsive to an association between a first identifier associated with the resource and a second identifier associated with the resource, the association associated with the environment. The resource and an environment on which to launch the resource are identified, responsive to consulting the registry. The second identifier is associated with the resource, with the environment, and with the environment on which to launch the resource. A registry key for the resource is stored in the registry, the registry key comprising the second identifier. The request for the resource is redirected to the identified instance of the resource, responsive to the second identifier. The request for the resource is responded to using the instance of the resource located in the environment on which the resource resides. The requested resource is launched in the identified environment, responsive to the second identifier.

Claims (51)

1. A method for accessing resources provided by an operating system, the method comprising the steps of:

(a) receiving, by an application program executing inside an isolation environment comprising an application isolation layer and a user isolation layer, a request for a resource;

(b) acquiring a first identifier associated with the resource;

(c) consulting a registry, responsive to the request for the resource, for an association between the first identifier and a second identifier associated with the isolation environment;

(d) identifying the resource and an application scope provided by the application isolation layer on which to launch the resource, responsive to consulting the registry;

(e) associating the second identifier with the resource, the isolation environment, and the application scope on which to launch the resource;

(f) storing in the registry a registry key for the resource, the registry key comprising the second identifier;

(g) redirecting the request for the resource to the application scope, responsive to the second identifier;

(h) responding to the request for the resource using an instance of the resource located in the application scope on which the resource resides; and

(i) launching, responsive to the second identifier, the requested resource in the application scope of the isolation environment.

2. The method of claim 1 , wherein step (a) comprises making, by an application program executing in an isolation environment comprising an application isolation layer and a user isolation layer, a request for a resource.

3. The method of claim 1 , wherein step (c) further comprises consulting a registry in the isolation environment on which the application program resides.

4. The method of claim 1 , wherein step (c) further comprises consulting a second registry in a second isolation environment comprising a second application isolation layer and a second user isolation layer.

5. The method of claim 4 , wherein step (d) further comprises identifying the second isolation environment on which the resource resides.

6. The method of claim 1 , wherein step (c) further comprises consulting a registry, responsive to failing to receive a second identifier from the association.

7. The method of claim 1 , wherein step (e) further comprises associating the second identifier with the resource, the isolation environment, the application scope on which to launch the resource, and a description of a method for launching the resource into second isolation environment comprising a second application isolation layer and a second user isolation layer.

8. The method of claim 1 , wherein step (g) further comprises transmitting to a second process the second identifier.

9. The method of claim 8 , wherein step (g) further comprises executing, by the second process, the resource.

10. The method of claim 1 , wherein step (g) further comprises communicating, by the application program with the resource.

11. The method of claim 1 , wherein step (g) further comprises making, by the resource, a modification to a display region associated with the application program.

12. The method of claim 1 , further comprising the application isolation scope and a user isolation scope provided by the user isolation layer each comprising an instance of the resource.

13. The method of claim 1 , further comprising the application program storing the association of the first identifier and the resource in the registry.

14. The method of claim 13 , further comprising storing the first identifier with information needed to launch the resource.

15. The method of claim 1 , further comprising a mapping table storing the association of the first identifier and the resource, the second identifier, and launch parameters for the resource.

16. The method of claim 15 , further comprising dynamically creating an association between a resource and an isolation scope to the second identifier.

17. The method of claim 1 , wherein step (a) further comprises the request specifying an isolation scope to be used.

18. The method of claim 1 , further comprising executing a resource into a isolation scope according to a pre-determined preference listing.

19. A system for accessing resources provided by an operating system executing on a computer processor, comprising:

a processor;

a resource provided by an operating system executing on a computer processor;

an application program executing inside an isolation environment comprising an application isolation layer and a user isolation layer, receiving a request for the resource;

an association between a first identifier associated with the resource and a second identifier associated with the isolation environment;

a hook process

acquiring the first identifier associated with the resource;

identifying the resource and an application scope provided by the application isolation layer on which to execute the resource;

storing in the association the second identifier;

storing a registry key for the resource; and

a second process, redirecting to the resource, responsive to the second identifier, the request for the resource, and launching, reponsive to the second identifier, the requested resource in the application scope of the isolation environment.

20. The system of claim 19 , wherein the resource further comprises a COM server.

21. The system of claim 19 , wherein the resource further comprises at least one registry entry in the isolation environment on which the resource resides.

22. The system of claim 19 , wherein the resource resides on a second isolation environment comprising a second application isolation layer and a second user isolation layer.

23. The system of claim 22 , wherein the application program further comprises executing inside second application scope provided by the second isolation environment.

24. The system of claim 19 , wherein the application program comprises executing inside the application scope of the isolation environment.

25. The system of claim 19 , wherein the application program executing inside the isolation environment comprises making a request for a resource.

26. The system of claim 19 , wherein the association further comprises a mapping from the first identifier identifying at least one resource and second isolation environment comprising a second application isolation layer and a second user isolation layer in which the resource resides to the second identifier.

27. The system of claim 19 , wherein the hook process further comprises consulting the association, responsive to the first identifier.

28. The system of claim 19 , wherein the hook process further comprises determining, responsive to consulting the association, to consult a registry within second isolation environment comprising a second application isolation layer and a second user isolation layer.

29. The system of claim 19 , wherein the hook process further comprises determining, responsive to consulting the association, to consult a registry within the application scope.

30. The system of claim 19 , wherein the hook process further comprises determining, responsive to consulting the association, to consult a registry within the second isolation environment.

31. The system of claim 19 , wherein the hook process further comprises identifying the resource and second isolation environment on which it resides, responsive to consulting the registry.

32. The system of claim 19 , wherein the hook process and the second process are the same process.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2006
From: BISSETT, NICHOLAS ALEXANDAR; ROYCHOUDHRY, ANIL; MAZZAFERRI, RICHARD JAMES
To: CITRIX SYSTEMS, INC.
Reel/Frame 016962/0561 →
Continuity (1)
Related Publication 20070067321A1 · Mar 22, 2007