IP Library Granted Patent US 7,103,625
Granted Patent B1
US 7,103,625 · App. 09/680,563 · Granted Sep 5, 2006

Virtual resource ID mapping

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 7,103,625
App. No.
09/680,563
Granted
Sep 5, 2006
Kind
B1
Abstract

The present invention provides virtual mapping of system resource identifiers in use by a software application for the purpose of making the running state of an application node independent. By adding a layer of indirection between the application and the resource, new system resources are reallocated and then can be mapped to the application's existing resource requirements while it is running, without the application detecting a failure or change in resource handles. This layer of indirection makes the application's system resource identifier (system RID) transparent to the application. RID's are usually numeric in form, but can also be alphanumeric. RID's are unique to a machine, and can be reused once all claims to a specific RID have been given up.

Claims (36)

1. In a computer network, a method of implementing a virtual layer around a software application instance in communication with an operating system, the method comprising:

registering an application by associating a unique application identifier with the application, and passing said application identifier to a software module that processes transitions between the application and the operating system;

allocating a resource in response to a resource request by the application;

allocating a resource identifier associated with said resource in response to said request;

allocating a virtual resource identifier associated with said resource in response to said request;

translating a combination of said application identifier and said resource identifier to said virtual resource identifier when the resource identifier is passed from the operating system to the application; and

translating a combination of said application identifier and said virtual resource identifier to said resource identifier when the virtual resource identifier is passed from the application to the operating system.

2. The method of claim 1 further comprising creating an entry in a virtual resource translation table in response to said resource request, wherein said entry describes the association between said application identifier, said resource identifier, and said virtual resource identifier.

3. The method of claim 1 further comprising associating a plurality of resource identifiers and a plurality of resources with said virtual resource identifier.

4. The method of claim 3 wherein said plurality of resources are a plurality of ports.

5. The method of claim 1 further comprising associating said virtual resource identifier with a new resource identifier and a new resource in response to said application being restored from one or more snapshots.

6. A system comprising hardware adapted to execute program instructions from a computer readable medium, the program instructions including an operating system, a first software module, and a second software module, wherein:

the operating system is operable to:

allocate a resource in response to a resource request by an application; and

allocate a resource identifier associated with said resource in response to said request;

the first software module is operable to:

register the application by associating a unique application identifier with the application; and

pass said application identifier to the second software module that processes transitions between the application and the operating system; and

the second software module is operable to:

allocate a virtual resource identifier associated with said resource in response to said request;

translate a combination of said application identifier and said resource identifier to said virtual resource identifier when the resource identifier is passed from the operating system to the application; and

translate a combination of said application identifier and said virtual resource identifier to said resource identifier when the virtual resource identifier is passed from the application to the operating system.

7. The system of claim 6 wherein said second software module is configured to update a translation table with an entry describing the association between said application identifier, said resource identifier, and said virtual resource identifier.

8. The system of claim 6 wherein said second software module is operable to associate a plurality of resource identifiers and a plurality of resources with said virtual resource identifier.

9. The system of claim 8 wherein said plurality of resources are a plurality of ports.

10. The system of claim 6 wherein said second software module is operable to associate said virtual resource identifier with a new resource identifier and a new resource in response to said application being restored from one or more snapshots.

11. A computer readable medium including program instructions executable to implement a method comprising:

registering an application by associating a unique application identifier with the application;

receiving a resource identifier associated with a resource allocated by an operating system in response to a resource request by an application;

allocating a virtual resource identifier associated with said resource in response to said request;

translating a combination of said application identifier and said resource identifier to said virtual resource identifier when the resource identifier is passed from the operating system to the application; and

translating a combination of said application identifier and said virtual resource identifier to said resource identifier when the virtual resource identifier is passed from the application to the operating system.

12. The computer readable medium of claim 11 wherein the method further comprises creating an entry in a virtual resource translation table in response to said resource request, wherein said entry describes the association between said application identifier, said resource identifier, and said virtual resource identifier.

13. The computer readable medium of claim 11 wherein the method further comprises associating a plurality of resource identifiers and a plurality of resources with said virtual resource identifier.

14. The computer readable medium of claim 13 wherein said plurality of resources are a plurality of ports.

15. The computer readable medium of claim 11 wherein the method further comprises associating said virtual resource identifier with a new resource identifier and a new resource in response to said application being restored from one or more snapshots.

Assignments (15)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
AGREEMENT AND PLAN OF MERGER Recorded Apr 10, 2006
From: EJASENT, INC.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017773/0439 →
SECURITY INTEREST Recorded Jan 22, 2002
From: EJASENT, INC.
To: GATX VENTURES, INC.; SILICON VALLEY BANK
Reel/Frame 012493/0729 →