IP Library Granted Patent US 12705038
Granted Patent B2
US 12705038 · App. 18/104,227 · Granted Aug 11, 2026

Code packaging for flexible deployment within a multi-tenant system

Inventors: Vivek Viswanathan (Clovis, CA); Christopher James Wall (Denver, CO); Dileep Burki (San Francisco, CA); Joseph Wegner (Chicago, IL); Mars Hall (San Francisco, CA); Natasha Gupta (Denver, CO)
Assignee: Salesforce, Inc.
G06F8/61
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 12705038
App. No.
18/104,227
Granted
Aug 11, 2026
Kind
B2
Abstract

A multi-cloud system permits installation of software by an independent software vendor (ISV) in different manners, such as within a user space of an organization tenant of the multi-cloud system, a space of the ISV within the multi-cloud system, or a space of the multi-cloud system itself. Packaging and installation functionality of the multi-cloud system performs necessary configurations so that an ISV can simply specify how its code is to be made available to users via the multi-cloud system, without itself needing to create different configurations depending on the desired manner of usage.

Claims (77)

1 . A computer-implemented method comprising:

receiving, by an app store of a multi-tenant system (MTS), first code, second code, and third code for one or more software authored by one or more independent software vendors (ISVs) registered with the MTS, and a plurality of selections by the one or more ISV in a graphical user interface (GUI), the plurality of selections specifying a plurality of instructions for making the first code, second code, and third code for the one or more software available to customers in a customer organization installation, an ISV installation, and an MTS installation;

storing a plurality of entries for the first code, second code, and third code in the app store;

receiving a plurality of requests from the app store for the first code, second code, and third code from a customer;

reviewing the respective instruction for making the first code, second code, and third code available to determine which of the customer organization installation, the ISV installation, and the MTS installation was selected;

for the first code where the instruction specifies the customer organization installation:

installing the first code within a space of the MTS belonging to the customer;

receiving a runtime request of the customer to use functionality of the first code; and

executing first code for the functionality within the space of the MTS belonging to the customer;

for the second code where the instruction specifies the ISV installation:

establishing a link to a service on a system of the ISV in which the second code is embodied;

receiving a runtime request of a customer to use functionality of the second code; and

redirecting the runtime request via the link to the service on the system of the ISV; and

for the third code where the instruction specifies the MTS installation:

installing the third code within a space of the MTS belonging to the MTS itself;

executing third code for the functionality within the space of the MTS belonging to the MTS.

2 . The computer-implemented method of claim 1 , further comprising:

providing a customer graphical user interface displaying information about the software and comprising a user interface element indicating that a customer wishes to obtain the software for use with the MTS; and

in response to selection of the user interface element, configuring the software to run on the MTS according to the selection by the ISV.

3 . The computer-implemented method of claim 1 , further comprising packaging the software for use on the MTS, the packaging inputting the software and outputting software metadata, a software image, and a software reference.

4 . The computer-implemented method of claim 1 , wherein installing the code within a space of the MTS belonging to the customer comprises creating a container for the first customer in which to run the code.

5 . The computer-implemented method of claim 1 , wherein installing the first code within a space of the MTS belonging to the customer permits the first customer to execute the first code but not to view the first code.

6 . The computer-implemented method of claim 1 , wherein:

for the second code where the instruction specifies the ISV installation, the second code is configured to provide proper configured inter-organization isolation, and

for the third code where the instruction specifies the MTS installation, the third code does not itself provide inter-organization isolation.

7 . A non-transitory computer-readable storage medium storing instructions that when executed by a computer processor perform actions comprising:

receiving, by an app store of a multi-tenant system (MTS), first code, second code, and third code for one or more software authored by one or more independent software vendors (ISVs) registered with the MTS, and a plurality of selections by the one or more ISV in a graphical user interface (GUI), the plurality of selections specifying a plurality of instructions for making the first code, second code, and third code for the one or more software available to customers in a customer organization installation, an ISV installation, and an MTS installation;

storing a plurality of entries for the first code, second code, and third code in the app store;

receiving a plurality of requests from the app store for the first code, second code, and third code from a customer;

reviewing the respective instruction for making the first code, second code, and third code available to determine which of the customer organization installation, the ISV installation, and the MTS installation was selected;

for the first code where the instruction specifies the customer organization installation:

installing the first code within a space of the MTS belonging to the customer;

receiving a runtime request of the customer to use functionality of the first code; and

executing first code for the functionality within the space of the MTS belonging to the customer;

for the second code where the instruction specifies the ISV installation:

establishing a link to a service on a system of the ISV in which the second code is embodied;

receiving a runtime request of a customer to use functionality of the second code; and

redirecting the runtime request via the link to the service on the system of the ISV; and

for the third code where the instruction specifies the MTS installation:

installing the third code within a space of the MTS belonging to the MTS itself;

executing third code for the functionality within the space of the MTS belonging to the MTS.

8 . The non-transitory computer-readable storage medium of claim 7 , the actions further comprising:

providing a customer graphical user interface displaying information about the software and comprising a user interface element indicating that a customer wishes to obtain the software for use with the MTS; and

in response to selection of the user interface element, configuring the software to run on the MTS according to the selection by the ISV.

9 . The non-transitory computer-readable storage medium of claim 7 , the actions further comprising packaging the software for use on the MTS, the packaging inputting the software and outputting software metadata, a software image, and a software reference.

10 . The non-transitory computer-readable storage medium of claim 7 , wherein installing the code within a space of the MTS belonging to the customer comprises creating a container for the first customer in which to run the code.

11 . The non-transitory computer-readable storage medium of claim 7 , wherein installing the first code within a space of the MTS belonging to the customer permits the first customer to execute the first code but not to view the first code.

12 . The non-transitory computer-readable storage medium of claim 7 , wherein:

for the second code where the instruction specifies the ISV installation, the second code is configured to provide proper configured inter-organization isolation, and

for the third code where the instruction specifies the MTS installation, the third code does not itself provide inter-organization isolation.

13 . A multi-tenant system (MTS) comprising:

a computer processor; and

a non-transitory computer-readable storage medium storing instructions that when executed by the computer processor perform actions comprising:

receiving, by an app store of the multi-tenant system (MTS), first code, second code, and third code for one or more software authored by one or more independent software vendors (ISVs) registered with the MTS, and a plurality of selections by the one or more ISV in a graphical user interface (GUI), the plurality of selections specifying a plurality of instructions for making the first code, second code, and third code for the one or more software available to customers in a customer organization installation, an ISV installation, and an MTS installation;

storing a plurality of entries for the first code, second code, and third code in the app store;

receiving a plurality of requests from the app store for the first code, second code, and third code from a customer;

reviewing the respective instruction for making the first code, second code, and third code available to determine which of the customer organization installation, the ISV installation, and the MTS installation was selected;

for the first code where the instruction specifies the customer organization installation:

installing the first code within a space of the MTS belonging to the customer;

receiving a runtime request of the customer to use functionality of the first code; and

executing first code for the functionality within the space of the MTS belonging to the customer;

for the second code where the instruction specifies the ISV installation:

establishing a link to a service on a system of the ISV in which the second code is embodied;

receiving a runtime request of a customer to use functionality of the second code; and

redirecting the runtime request via the link to the service on the system of the ISV; and

for the third code where the instruction specifies the MTS installation:

installing the third code within a space of the MTS belonging to the MTS itself;

executing third code for the functionality within the space of the MTS belonging to the MTS.

14 . The multi-tenant system of claim 13 , the actions further comprising:

providing a customer graphical user interface displaying information about the software and comprising a user interface element indicating that a customer wishes to obtain the software for use with the MTS; and

in response to selection of the user interface element, configuring the software to run on the MTS according to the selection by the ISV.

15 . The multi-tenant system of claim 13 , the actions further comprising packaging the software for use on the MTS, the packaging inputting the software and outputting software metadata, a software image, and a software reference.

16 . The multi-tenant system of claim 13 , wherein installing the code within a space of the MTS belonging to the first customer comprises creating a container for the customer in which to run the code.

17 . The multi-tenant system of claim 13 , wherein installing the first code within a space of the MTS belonging to the customer permits the first customer to execute the first code but not to view the first code.

18 . The multi-tenant system of claim 13 , wherein:

for the second code where the instruction specifies the ISV installation, the second code is configured to provide proper configured inter-organization isolation, and

for the third code where the instruction specifies the MTS installation, the third code does not itself provide inter-organization isolation.