Multi-tenant hosted application system
First Claim
1. A system for providing a hosted application, the system comprising:
- at least two scale groups, each scale group being configured to support at least one tenant, wherein each scale group comprises a shared middle-tier and a shared database-tier for providing the hosted application to the tenants assigned thereto, and wherein the scale groups are configured todetermine whether a request has been received for a tenant that has been moved to a different scale group,create a new temporary sub-domain corresponding to the different scale group for the tenant in response to determining that a request has been received for a tenant that has been moved to a different scale group, andredirect the request for the tenant to the new temporary sub-domain;
a shared configuration database that is shared by tenants of the hosted application and configured to store mapping data to map an individual assignment of at least two of the tenants of the hosted application to one of the at least two scale groups and tenant customizations for the hosted application; and
a site-wide server computer configured to receive a request for the hosted application from one of the at least two tenants, to search the shared configuration database for mapping data indicating the one of the at least two scale groups associated with the one of the at least two tenants, and to redirect the request to the one of the at least two scale groups associated with the one of the at least two tenants.
2 Assignments
0 Petitions
Accused Products
Abstract
Technologies are described herein for implementing a hosted multi-tenant application system. The server computers utilized to provide the hosted application are organized into logical groupings of server computers called scale groups. One or more tenants are assigned to each scale group. When a new tenant is provisioned, the tenant is assigned to a scale group and a database server in the assigned scale group creates a database for the tenant. An association between the tenant and the scale group is also created in a shared configuration database. When a request is received from a tenant to access the hosted application, the shared configuration database is consulted to locate the scale group hosting the tenant. Once the appropriate scale group has been located, the request is redirected to the appropriate scale group for processing.
42 Citations
17 Claims
-
1. A system for providing a hosted application, the system comprising:
-
at least two scale groups, each scale group being configured to support at least one tenant, wherein each scale group comprises a shared middle-tier and a shared database-tier for providing the hosted application to the tenants assigned thereto, and wherein the scale groups are configured to determine whether a request has been received for a tenant that has been moved to a different scale group, create a new temporary sub-domain corresponding to the different scale group for the tenant in response to determining that a request has been received for a tenant that has been moved to a different scale group, and redirect the request for the tenant to the new temporary sub-domain; a shared configuration database that is shared by tenants of the hosted application and configured to store mapping data to map an individual assignment of at least two of the tenants of the hosted application to one of the at least two scale groups and tenant customizations for the hosted application; and a site-wide server computer configured to receive a request for the hosted application from one of the at least two tenants, to search the shared configuration database for mapping data indicating the one of the at least two scale groups associated with the one of the at least two tenants, and to redirect the request to the one of the at least two scale groups associated with the one of the at least two tenants. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for providing a hosted application, the method comprising:
-
providing at least two scale groups, each scale group being configured to support at least one tenant; storing, at a shared configuration database that is shared by tenants of the hosted application including the at least two scale groups, mapping data to map an individual assignment of at least two tenants of the hosted application to one of the at least two scale groups and tenant customizations for the hosted application; receiving, at a site-wide computer, a request for the hosted application from one of the at least two tenants; in response to receiving the request, searching the shared configuration database for mapping data indicating the one of the at least two scale groups associated with the one of the at least two tenants, the scale group comprising a database storing a private unshared database associated with the tenant; redirecting the request for the hosted application from the site-wide server computer to the one of the at least two scale groups associated with the one of the at least two tenants; providing a response to the redirected request for the hosted application from the one of the at least two scale groups associated with the one of the at least two tenants; determining if the one of the at least two tenants has been moved to a different scale group; creating a new temporary sub-domain corresponding to an address for the different scale group in response to determining that the one of the at least two tenants has been moved to the different scale group; and redirecting the request or the one of the at least two tenants to the new temporary sub-domain. - View Dependent Claims (14, 15)
-
-
16. A system for providing a hosted application to tenants, the system comprising:
-
a plurality of site-wide server computers configured to receive, from a tenant, a request for the hosted application comprising at least two scale groups, each scale group being configured to support at least one tenant, to redirect the request to an assigned scale group associated with the tenant, the assigned scale group comprising a database server storing a private unshared database associated with the tenant, wherein each of the site-wide server computers is assigned to at least one of a portal role for providing a non-tenant specific user interface, a name role for providing network addresses corresponding to sub-domains that are unique to each of the tenants, a configuration role for retrieving configuration information including mapping data to map an individual assignment of at least two tenants of the hosted application to one of the at least two scale groups from a shared configuration database that is shared by the tenants of the hosted application and providing configuration information to one or more other roles, an administration role for performing administrative tasks within the system, and a router role for redirecting one or more actions to a scale group; and a plurality of geographically distributed scale groups including the assigned scale group, each of the scale groups comprising a logical grouping of scale group server computers assigned to at least one of an application role for providing the hosted application to the tenant, an asynchronous processing role for executing asynchronous processes assigned by the application role, a scale group configuration role for maintaining scale group configuration information, and a database role for maintaining data for tenants assigned to the scale group, the data comprising tenant customizations associated with the hosted application. - View Dependent Claims (17)
-
Specification