IP Library › Granted Patent US 8,788,510
Granted Patent B2
US 8,788,510 · App. 12/192,956 · Granted Jul 22, 2014

System, method, and computer program product for runtime invocation of an appropriate version of program instructions in an on-demand database

Inventor: Craig Weissman (San Francisco, CA)
Assignee: salesforce.com, 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,788,510
App. No.
12/192,956
Granted
Jul 22, 2014
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for runtime invocation of an appropriate version of program instructions in an on-demand database service. These mechanisms and methods for providing such runtime invocation can enable embodiments to ensure that new versions of developed applications will operate in the same application environment of a previous version. The ability of embodiments to provide such runtime invocation may lead to an improved application migration development/runtime framework, etc.

Claims (39)

1. A method, comprising:

receiving, in an application, program instructions of the application at an on-demand database service, the program instructions including a plurality of different portions,

where each portion of program instructions comprises a different version of the application,

where at least one of the versions is an update to another one of the versions;

determining which of the different versions of the application is to be invoked by applying a test included with the program instructions to version information associated with a subscriber of the on-demand database service; and

invoking one of the portions of the program instructions in the application that comprises the determined version of the application for invoking the determined version of the application.

2. The method of claim 1 , wherein a first portion of the program instructions in the received application is invoked if it is determined that a first version of application is to be invoked, and a second portion of the program instructions in the received application is invoked if it is determined that a second version of the application is to be invoked.

3. The method of claim 2 , wherein the first version of the application and the second version of the application differ with respect to at least one method.

4. The method of claim 2 , wherein the first version of the application and the second version of application differ with respect to at least one class.

5. The method of claim 2 , wherein the first version of the application and the second version of the application differ with respect to at least one variable.

6. The method of claim 2 , wherein the first version of the application is a previous version and the second version of the application is a later version that is the update to the previous version.

7. The method of claim 6 , wherein the first version of the application is marked in accordance with a predetermined format.

8. The method of claim 1 , wherein the on-demand database service includes a multi-tenant on-demand service.

9. The method of claim 1 , wherein the application is pushed to a plurality of subscribers.

10. The method of claim 9 , wherein the application is pushed to a plurality of subscribers asynchronously.

11. The method of claim 1 , wherein it is determined that a first version of the application is to be invoked in response to a determination that a version of the application a subscriber of the on-demand database service is running, from the point of view of the subscriber, is the first version, and wherein it is determined that the second version of the application is to be invoked in response to a determination that the version of the application the subscriber of the on-demand database service is running, from the point of view of the subscriber, is the second version.

12. The method of claim 1 , wherein the application, including the plurality of different portions of program instructions each comprising a different version of the application, is received by one of a plurality of subscribers of an on-demand database service at a storage area of the on-demand database service that is associated with the organization, such that invoking the one of the portions of the program instructions in the application that comprises the determined version of the application is performed at the on-demand database service.

13. A non-transitory machine-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to carry out the steps of:

receiving, in an application, program instructions of the application at an on-demand database service, the program instructions including a plurality of different portions,

where each portion of program instructions comprises a different version of the application,

where at least one of the versions is an update to another one of the versions;

determining which of the different versions of the application is to be invoked by applying a test included with the program instructions to version information associated with a subscriber of the on-demand database service; and

invoking one of the portions of the program instructions in the application that comprises the determined version of the application for invoking the determined version of the application.

14. An apparatus, comprising:

a computer processor; and

one or more stored sequences of instructions which, when executed by the computer processor, cause the computer processor to carry out the steps of:

receiving, in an application, program instructions of the application at an on-demand database service, the program instructions including a plurality of different portions,

where each portion of program instructions comprises a different version of the application,

where at least one of the versions is an update to another one of the versions;

determining which of the different versions of the application is to be invoked by applying a test included with the program instructions to version information associated with a subscriber of the on-demand database service; and

invoking one of the portions of the program instructions in the application that comprises the determined version of the application for invoking the determined version of the application.

15. A method for transmitting code for use in a multi-tenant database system on a transmission medium, the method comprising:

transmitting code for receiving, in an application, program instructions of the application at an on-demand database service, the program instructions including a plurality of different portions,

where each portion of program instructions comprises a different version of the application,

where at least one of the versions is an update to another one of the versions;

transmitting code for determining which of the different versions of the application is to be invoked by applying a test included with the program instructions to version information associated with a subscriber of the on-demand database service; and

transmitting code for invoking one of the portions of the program instructions in the application that comprises the determined version of the application for invoking the determined version of the application.

16. The method of claim 15 , wherein a first portion of the program instructions is invoked if it is determined that a first version of the application is to be invoked, and a second portion of the program instructions is invoked if it is determined that a second version of the application is to be invoked.

17. The method of claim 16 , wherein the first version of the application and the second version of the application are both included with the application.

Assignments (2)
CHANGE OF NAME Recorded Aug 4, 2026
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 076118/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2008
From: WEISSMAN, CRAIG
To: SALESFORCE.COM, INC.
Reel/Frame 021765/0105 →
Continuity (2)
Provisional Application 60956629 · Aug 17, 2007
Related Publication 20090049288A1 · Feb 19, 2009