System for supporting a multi-tenant data architecture
First Claim
1. A computer-implemented method comprising:
- receiving an authentication request from a user affiliated with a tenant, wherein each tenant in a set of tenants is associated with a separate database in a set of databases, and further wherein the authentication request includes an identifier corresponding to the tenant;
extracting the identifier from the authentication request;
retrieving a tenant-specific context from a hash table based on the identifier;
rendering a tenant-specific user interface to the user based on the identifier;
receiving an input from the user, wherein the input requires an operation to be performed on a database associated with the tenant in the set of databases;
obtaining, from the tenant-specific context, a tenant-agnostic service object that comprises;
a first set of class methods corresponding to a set of tenant-agnostic operations for performing on any of the set of databases; and
a tenant-specific data access object comprising a second set of class methods corresponding to a set of operations specific to the database associated with the tenant;
invoking, on the tenant-agnostic service object, a first class method from the first set of class methods;
invoking, on the tenant-specific data access object, a second class method from the second set of class methods, wherein the second class method corresponds to the first class method, andperforming the operation on the database based on the second class method.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention relates to a system that enables a single software application instance to support multiple tenants, wherein each tenant is associated with a separate database. First, the software application instance receives an input, wherein the input requires an operation to be performed on a database of one of the supported tenants. Next, the software application instance identifies the tenant with which the input is associated. The software application instance then obtains a context associated with the tenant. From the context, the software application instance obtains a service object. Finally, the software application invokes a method provided by the service object'"'"'s class. This enables a data access object, which is encapsulated within the service object, to perform the operation on the database.
65 Citations
15 Claims
-
1. A computer-implemented method comprising:
-
receiving an authentication request from a user affiliated with a tenant, wherein each tenant in a set of tenants is associated with a separate database in a set of databases, and further wherein the authentication request includes an identifier corresponding to the tenant; extracting the identifier from the authentication request; retrieving a tenant-specific context from a hash table based on the identifier; rendering a tenant-specific user interface to the user based on the identifier; receiving an input from the user, wherein the input requires an operation to be performed on a database associated with the tenant in the set of databases; obtaining, from the tenant-specific context, a tenant-agnostic service object that comprises; a first set of class methods corresponding to a set of tenant-agnostic operations for performing on any of the set of databases; and a tenant-specific data access object comprising a second set of class methods corresponding to a set of operations specific to the database associated with the tenant; invoking, on the tenant-agnostic service object, a first class method from the first set of class methods; invoking, on the tenant-specific data access object, a second class method from the second set of class methods, wherein the second class method corresponds to the first class method, and performing the operation on the database based on the second class method. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-program product for use in conjunction with a computer system, the computer-program product comprising a non-transitory computer-readable storage medium and a computer-program mechanism including:
-
instructions for receiving an authentication request from a user affiliated with a tenant, wherein each tenant in a set of tenants is associated with a separate database in a set of databases, and further wherein the authentication request includes an identifier corresponding to the tenant; instructions for extracting the identifier from the authentication request; instructions for retrieving a tenant-specific context from a hash table based on the identifier; instructions for rendering a tenant-specific user interface to the user based on the identifier; instructions for receiving an input from the user, wherein the input requires an operation to be performed on a database associated with the tenant in the set of databases; instructions for obtaining, from the tenant-specific context, a tenant-agnostic service object that comprises; a first set of class methods corresponding to a set of tenant-agnostic operations for performing on any of the set of databases; and a tenant-specific data access object comprising a second set of class methods corresponding to a set of operations specific to the database associated with the tenant; instructions for invoking, on the tenant-agnostic service object, a first class method from the first set of class methods, instructions for invoking, on the tenant-specific data access object, a second class method from the second set of class methods, wherein the second class method corresponds to the first class method; and instructions for performing the operation on the database based on the second class method. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer system, comprising:
-
a processor; a memory; and a program module, wherein the program module is stored in the memory and configured to be executed by the processor, the program module including instructions wherein the instructions include; instructions for receiving an authentication request from a user affiliated with a tenant, wherein each tenant in a set of tenants is associated with a separate database in a set of databases, and further wherein the authentication request includes an identifier corresponding to the tenant; instructions for extracting the identifier from the authentication request; instructions for retrieving a tenant-specific context from a hash table based on the identifier; instructions for rendering a tenant-specific user interface to the user based on the identifier; instructions for receiving an input from the user, wherein the input requires an operation to be performed on a database associated with the tenant in the set of databases; instructions for obtaining, from the tenant-specific context, a tenant-agnostic service object that comprises; a first set of class methods corresponding to a set of tenant-agnostic operations for performing on any of the set of databases; and a tenant-specific data access object comprising a second set of class methods corresponding to a set of operations specific to the database associated with the tenant; instructions for invoking, on the tenant-agnostic service object, a first class method from the first set of class methods; instructions for invoking, on the tenant-specific data access object, a second class method from the second set of class methods, wherein the second class method corresponds to the first class method; and instructions for performing the operation on the database based on the second class method. - View Dependent Claims (12, 13, 14, 15)
-
Specification