IP Library › Granted Patent US 11,232,223
Granted Patent B2
US 11,232,223 · App. 15/264,091 · Granted Jan 25, 2022

Providing web application components within remote systems

Inventors: Doug Chasman (Pittsford, NY); Jeffrey Lloyd Sauls, Jr. (San Rafael, CA)
Assignee: salesforce.com, inc.
G06F21/6227G06F16/958G06F16/986G06F21/31H04L63/083H04L63/101H04L67/1097
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 11,232,223
App. No.
15/264,091
Filed
Sep 13, 2016
Granted
Jan 25, 2022
Kind
B2
Examiner
HOANG, KEN
Art Unit
2168
USPC
707/785
Abstract

Disclosed are examples of systems, apparatus, methods and computer program products for providing components for building web applications within remote systems. A component database for web application components and an application database for web applications can be maintained in a multi-tenant database system. A first request can be processed to provide a web application for use at a remote site associated with a developer. Authorization of the remote site by the multi-tenant database can be determined based on a list of allowed remote sites for web applications. Data associated with the web application can then be sent to the remote site. A second request can be processed to provide a component for use at the remote site, indicating a component location of the remote site. Data associated with the first component can then be sent to the remote site. The data can be capable of causing an instance of the first component to be included at the component location of the remote site.

Claims (55)

1. A system comprising:

a multi-tenant database system implemented using a server system, the multi-tenant database system configurable to cause:

maintaining a component database storing component data objects identifying a plurality of components for web applications;

maintaining an application database different from the component database and storing application data objects identifying a plurality of web applications useable by developers, each of the plurality of web applications being dependent on one or more of the components;

processing a first request identifying one of the web applications for use at a remote site associated with a requesting developer, the first request received from a client machine;

determining, based on a list of allowed remote sites for the plurality of web applications and using a resource sharing object configured for selective addition of sites to the list of allowed remote sites for the plurality of web applications, that the remote site associated with the requesting developer is authorized by the multi-tenant database system with respect to the web application identified by the first request;

sending data associated with the web application identified by the first request to the remote site associated with the requesting developer;

processing a second request to provide a first one of the components for use at the remote site associated with the requesting developer, the second request received from the client machine, the second request indicating at least a first component location, the first component location indicating a first specified region of the remote site associated with the requesting developer;

authenticating, based on a session identifier (ID) in the second request, a communication session between the multi-tenant database system and the remote site associated with the requesting developer, the session ID identifying the communication session as an established session between the multi-tenant database system and the remote site; and

sending, responsive to authenticating the communication session, data associated with the first component to the remote site associated with the requesting developer, the data associated with the first component configurable to cause an instance of the first component to be included at the remote site associated with the requesting developer at the first component location.

2. The system of claim 1 , the multi-tenant database system further configurable to cause:

determining, via an authorization protocol, that the client machine is authenticated at the multi-tenant database system; and

sending an access token to the client machine, the access token including the session identifier.

3. The system of claim 2 , wherein the authorization protocol includes at least one of: OAuth, SAML, or OpenID.

4. The system of claim 2 , wherein the session identifier is implemented as a unique session identification number.

5. The system of claim 1 , wherein the determining that the remote site is authorized by the multi-tenant database system with respect to the web application is performed using Cross-Origin Resource Sharing (CORS).

6. The system of claim 1 , wherein the second request to provide the first one of the components for use at the remote site further indicates one or more component parameters, the one or more component parameters associated with one or more records in the multi-tenant database system.

7. The system of claim 1 , the multi-tenant database system further configurable to cause:

processing a third request to provide a second one of the components for use at the remote site, the third request received from the client machine, the third request indicating at least a second component location, the web application being associated with the second component, the second component location indicating a second specified region of the remote site; and

sending data associated with the second component to the remote site, the data configurable to cause an instance of the second component to be included at the remote site at the second component location.

8. The system of claim 1 , wherein the data associated with the web application includes at least one of a list of resources associated with the web application and a list of definitions associated with the web application.

9. A method comprising:

maintaining, at a multi-tenant database system, a component database storing component data objects identifying a plurality of components for web applications;

maintaining, at a multi-tenant database system, an application database different from the component database and storing application data objects identifying a plurality of web applications useable by developers, each of the plurality of web applications being dependent on one or more of the components;

processing a first request identifying one of the web applications for use at a remote site associated with a requesting developer, the first request received from a client machine;

determining, based on a list of allowed remote sites for the plurality of web applications and using a resource sharing object configured for selective addition of sites to the list of allowed remote sites for the plurality of web applications, that the remote site associated with the requesting developer is authorized by the multi-tenant database system with respect to the web application identified by the first request;

sending data associated with the web application identified by the first request to the remote site associated with the requesting developer;

processing a second request to provide a first one of the components for use at the remote site associated with the requesting developer, the second request received from the client machine, the second request indicating at least a first component location, the first component location indicating a first specified region of the remote site associated with the requesting developer;

authenticating, based on a session identifier (ID) in the second request, a communication session between the multi-tenant database system and the remote site associated with the requesting developer, the session ID identifying the communication session as an established session between the multi-tenant database system and the remote site; and

sending, responsive to authenticating the communication session, data associated with the first component to the remote site associated with the requesting developer, the data associated with the first component configurable to cause an instance of the first component to be included at the remote site associated with the requesting developer at the first component location.

10. The method of claim 9 , further comprising:

determining, via an authorization protocol, that the client machine is authenticated at the multi-tenant database system; and

sending an access token to the client machine, the access token including the session identifier.

11. The method of claim 10 , wherein the authorization protocol includes at least one of: OAuth, SAML, or OpenID.

12. The method of claim 9 , wherein the determining that the remote site is authorized by the multi-tenant database system with respect to the web application is performed using Cross-Origin Resource Sharing (CORS).

13. The method of claim 9 , wherein the second request to provide the first one of the components for use at the remote site further indicates one or more component parameters, the one or more component parameters associated with one or more records in the multi-tenant database system.

14. The method of claim 9 , further comprising:

processing a third request to provide a second one of the components for use at the remote site, the third request received from the client machine, the third request indicating at least a second component location, the web application being associated with the second component, the second component location indicating a second specified region of the remote site;

sending data associated with the second component to the remote site, the data configurable to cause an instance of the second component to be included at the remote site at the second component location.

15. The method of claim 9 , wherein the data associated with the web application includes at least one of a list of resources associated with the web application and a list of definitions associated with the web application.

16. A computer program product comprising computer-readable program code capable of being executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code comprising instructions configurable to cause:

maintaining, at a multi-tenant database system, a component database storing component data objects identifying a plurality of components for web applications;

maintaining, at a multi-tenant database system, an application database different from the component database and storing application data objects identifying a plurality of web applications useable by developers, each of the plurality of web applications being dependent on one or more of the components;

processing a first request identifying one of the web applications for use at a remote site associated with a requesting developer, the first request received from a client machine;

determining, based on a list of allowed remote sites for the plurality of web applications and using a resource sharing object configured for selective addition of sites to the list of allowed remote sites for the plurality of web applications, that the remote site associated with the requesting developer is authorized by the multi-tenant database system with respect to the web application identified by the first request;

sending data associated with the web application identified by the first request to the remote site associated with the requesting developer;

processing a second request to provide a first one of the components for use at the remote site associated with the requesting developer, the second request received from the client machine, the second request indicating at least a first component location, the first component location indicating a first specified region of the remote site associated with the requesting developer;

authenticating, based on a session identifier (ID) in the second request, a communication session between the multi-tenant database system and the remote site associated with the requesting developer, the session ID identifying the communication session as an established session between the multi-tenant database system and the remote site; and

sending data associated with the first component to the remote site associated with the requesting developer, the data associated with the first component configurable to cause an instance of the first component to be included at the remote site associated with the requesting developer at the first component location.

17. The computer program product of claim 16 , the program code comprising instructions further configurable to cause:

determining, via an authorization protocol, that the client machine is authenticated at the multi-tenant database system; and

sending an access token to the client machine, the access token including the session identifier.

18. The computer program product of claim 17 , wherein the authorization protocol includes at least one of: OAuth, SAML, and OpenD.

19. The computer program product of claim 16 , wherein the determining that the remote site is authorized by the multi-tenant database system with respect to the web application is performed using Cross-Origin Resource Sharing (CORS).

20. The computer program product of claim 16 , wherein the second request to provide the first one of the components for use at the remote site further indicates one or more component parameters, the one or more component parameters associated with one or more records in the multi-tenant database system.

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 Sep 14, 2016
From: CHASMAN, DOUG; SAULS, JEFFREY LLOYD, JR
To: SALESFORCE.COM, INC.
Reel/Frame 039742/0152 →
Continuity (1)
Related Publication 20180075250A1 · Mar 15, 2018
Cited By (1)
US 12,405,948