IP Library Granted Patent US 8,516,464
Granted Patent B2
US 8,516,464 · App. 12/608,062 · Granted Aug 20, 2013

Computer system and method for resolving dependencies in a computer system

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,516,464
App. No.
12/608,062
Granted
Aug 20, 2013
Kind
B2
Abstract

A computer system and a method are disclosed for use in automatically deploying an application program to execute with one or more library resources. The computer system includes a deployment unit which deploys the application program into a runtime execution environment. When a predetermined trigger condition is detected, the deployment unit clones a first library resource to create a clone, transforms the application to depend upon the clone and resolves the dependencies of the application using the clone. In one embodiment, the trigger condition relates to a pinning situation, whereby a library upon which the application program depends cannot be wired to the application program to resolve the dependency. Here, the clone now satisfies that dependency. In another embodiment, the trigger condition is a mandatory cloning property that requires the library to be cloned. The mandatory cloning property may also be user-specified through a user interface.

Claims (48)

1. A computer system, comprising:

one or more processors; and

memory, wherein the one or more processors is configured to

support a runtime environment arranged to execute a plurality of application programs with respect to a plurality of resources, wherein each of the plurality of application programs has a set of dependencies upon one or more of the plurality of resources, and

deploy the plurality of application programs into the runtime environment according to the set of dependencies by detecting a trigger condition in relation to a first resource of the plurality of resources when deploying one of the plurality of application programs with respect to the first resource, wherein the first resource upon which the one of the plurality of application programs depends is pinned to a second resource of the plurality of resources or another of the plurality of application programs by wiring;

cloning the first resource to create a first cloned resource, in response to the trigger condition being detected;

transforming the dependencies of the one of the plurality of application programs to replace a first set of dependencies on the first resource and instead with a second set of dependencies on the first cloned resource, and

creating a set of wirings between the one of the plurality of application programs and the plurality of resources upon which the one of the plurality of application programs depends, including creating wirings with the first cloned resource according to the transformed dependencies of the one of the plurality of application programs.

2. The computer system of claim 1 , wherein the one or more processors is configured to determine that one or more dependencies associated with the one of the plurality of application programs cannot be resolved successfully and recursively resolve the one or more dependencies before starting the one of the plurality of application programs in the runtime environment.

3. The computer system of claim 2 , wherein the one or more processors is configured to detect the trigger condition where the cloning of the first resource has caused another of the plurality of resources to become pinned.

4. The computer system of claim 1 , wherein the one or more processors is configured to identify one or more of the plurality of resources as being excluded resources which should not be cloned and detect an exception condition when the first resource is one of the excluded resources.

5. The computer system of claim 4 , wherein the one or more processors is configured to detect the exception condition when the first resource has a singleton property indicating that the first resource should not be cloned.

6. The computer system of claim 4 , wherein the one or more processors is configured to report the exception condition.

7. The computer system of claim 4 , wherein the one or more processors is configured to mark the first resource as one of the excluded resources in response to a received user command.

8. The computer system of claim 1 , wherein the one or more processors is configured to detect the trigger condition when the first resource is associated with a mandatory cloning property indicating that cloning of the resource is mandatory.

9. The computer system of claim 8 , wherein the one or more processors is configured to associate the first resource with the mandatory cloning property in response to a received user command.

10. The computer system of claim 1 , wherein the plurality of resources comprise a plurality of libraries.

11. The computer system of claim 1 , wherein the one or more processors is configured to resolve the dependencies of the one of the plurality of application programs by creating a network of wirings between bundles in the plurality of application programs and bundles in the plurality of resources.

12. A method of resolving dependencies in a computer system, the method comprising:

detecting a trigger condition in relation to a first resource provided on the computer system, wherein the first resource upon which a first application program depends is pinned to a second resource or a second application program by wiring;

creating a clone of the first resource in response to detecting the trigger condition;

transforming a dependency of the first application program on the first resource to instead depend on the clone of the first resource; and

resolving the dependency of the first application program using the clone.

13. The method of claim 12 , further comprising:

installing the first application program onto the computer system;

resolving one or more bundles of the first application program to satisfy a set of dependencies of the bundles with respect to a plurality of resources of the computer system, wherein the plurality of resources include the first resource;

configuring the first application program with respect to the plurality of resources according to configuration in each of the bundles;

starting the bundles in a runtime execution environment of the computer system; and

executing the first application program in the runtime execution environment of the computer system in combination with the plurality of resources.

14. A non-transitory computer readable medium having programming instructions for resolving dependencies in a computer system, the computer readable medium comprising:

programming instructions for detecting a trigger condition in relation to a first resource provided on the computer system, wherein the first resource upon which a first application program depends is pinned to a second resource or a second application program by wiring;

programming instructions for creating a clone of the first resource in response to detecting the trigger condition;

programming instructions for transforming a dependency of the first application program on the first resource to instead depend on the clone of the first resource; and

programming instructions for resolving the dependency of the first application program using the clone.

15. The computer readable medium of claim 14 , further comprising:

programming instructions for installing the first application program onto the computer system;

programming instructions for resolving one or more bundles of the first application program to satisfy a set of dependencies of the bundles with respect to a plurality of resources of the computer system, wherein the plurality of resources include the first resource;

programming instructions for configuring the first application program with respect to the plurality of resources according to configuration in each of the bundles;

programming instructions for starting the bundles in a runtime execution environment of the computer system; and

programming instructions for executing the first application program in the runtime execution environment of the computer system in combination with the plurality of resources.

16. The method of claim 12 , further comprising:

determining that one or more dependencies associated with the first application program cannot be resolved; and

recursively resolving the one or more dependencies before starting the first application program.

17. The method of claim 16 , wherein the detecting a trigger condition comprises detecting another of the plurality of resources has become pinned due to the creating of the clone of the first resource.

18. The method of claim 12 , further comprising:

identifying one or more of the plurality of resources as being excluded resources which should not be cloned; and

detecting an exception condition when the first resource is one of the excluded resources.

19. The method of claim 12 , wherein the first resource is associated with a mandatory cloning property.

Assignments (3)
CHANGE OF NAME Recorded Apr 1, 2014
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 032588/0795 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2013
From: VMWARE, INC.
To: GOPIVOTAL, INC.
Reel/Frame 030682/0694 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2009
From: HARROP, ROB; NORMINGTON, GLYN; COLYER, ADRIAN MARK
To: VMWARE, INC.
Reel/Frame 023440/0886 →