Systems and methods for accessing a shared space in a provider-tenant environment
The present invention discloses methods and systems for hosting tenants in a computer-based environment in which a provider stores a shared data structure. Each of the tenants may store shared-metadata referencing the shared data structure, while a first tenant may store a tenant-specific data structure specific to the first tenant for access by the first tenant. Based on the shared-metadata and in response to a data request from the first tenant, the system may the query the provider or the first tenant for requested data and provide the requested data based on the querying.
1. A computer-implemented method for hosting, at a provider, a plurality of tenants over a network, the method comprising:
analyzing, at the provider, attributes of a plurality of data structures;
based on the analysis, determining which of the plurality of data structures is a tenant-specific data structure specific to a first tenant of the plurality of tenants, and determining which of the plurality of data structures is a shared data structure shared by the plurality of tenants;
generating a tenant-specific designation to identify a data structure of the plurality of data structures as being specific to the first tenant, and generating a shared designation to identify a data structure of the plurality of data structures as being shared by the plurality of tenants;
appending the tenant-specific designation to the tenant-specific data structure, and appending the shared designation to the shared data structure;
storing, at the provider, the shared data structure;
generating shared-metadata based on the shared data structure stored at the provider;
storing, at the first tenant, the tenant-specific data structure specific to the first tenant for access by the first tenant;
querying, based on the shared-metadata and in response to a data request from the first tenant, at least one of a provider server and a tenant server of the first tenant for the requested data;
storing, at the first tenant, the shared-metadata defining an attribute of at least one of the shared data structure and the tenant-specific data structure;
querying the provider or the first tenant dependent on whether the attribute indicates the requested data structure is a shared data structure or a tenant-specific data structure; and
providing the requested data based on the querying.
2. The computer-implemented method of claim 1 , further comprising:
querying, based on the attribute, the provider and the first tenant for the requested data.
3. The computer-implemented method of claim 1 , further comprising:
storing, at a second tenant of the plurality of tenants, a tenant-specific data structure specific to the second tenant for access by the second tenant; and
storing, at the provider, the tenant-specific data structure specific to the first tenant and the tenant-specific data structure specific to the second tenant.
4. The computer-implemented method of claim 1 , wherein querying further comprises:
querying the provider if the attribute indicates the requested data structure is stored at the provider; and
querying the first tenant if the attribute indicates the requested data is stored at the first tenant.
5. The computer-implemented method of claim 1 , wherein the attribute indicates whether a particular data structure is shared by the plurality of tenants or specific to the first tenant.
6. The computer-implemented method of claim 1 , further comprising:
updating, by the provider, the shared-metadata based on data structure changes at the provider.
7. The computer-implemented method of claim 1 , further comprising:
enabling the first tenant to have read-only access to the shared data structure.
8. A system, comprising at least a processor and a database, wherein the system comprises:
means for analyzing, at the provider, attributes of a plurality of data structures;
means for determining, based on the analysis, which of the plurality of data structures is a tenant-specific data structure specific to a first tenant of the plurality of tenants, and determining which of the plurality of data structures is a shared data structure shared by the plurality of tenants;
means for generating a tenant-specific designation to identify a data structure of the plurality of data structures as being specific to the first tenant, and generating a shared designation to identify a data structure of the plurality of data structures as being shared by the plurality of tenants;
means for appending the tenant-specific designation to the tenant-specific data structure, and appending the shared designation to the shared data structure;
means for storing, at the provider, the shared data structure;
means for generating shared-metadata based on the shared data structure stored at the provider;
means for storing, at the first tenant, the tenant-specific data structure specific to the first tenant for access by the first tenant;
means for storing, in a respective tenant server at each of the plurality of tenants, the shared-metadata referencing the shared data structure;
means for querying, based on the shared-metadata and in response to a data request from the first tenant, at least one of a provider server and the respective tenant server of the first tenant for the requested data;
means for storing, at the first tenant, the shared-metadata defining an attribute of at least one of the shared data structure and the tenant-specific data structure;
means for querying the provider if the attribute indicates the requested data structure is a shared data structure;
means for querying the first tenant if the attribute indicates the requested data is a tenant-specific data structure; and
means for providing the requested data based on the querying.
9. The system of claim 8 , wherein the provider further comprises:
means for querying, based on the attribute, the provider and the first tenant for the requested data.
10. The system of claim 8 , wherein the provider further comprises:
means for storing, at a second tenant of the plurality of tenants, a tenant-specific data structure specific to the second tenant for access by the second tenant; and
means for storing, at the provider, the tenant-specific data structure specific to the first tenant and the tenant-specific data structure specific to the second tenant.
11. The system of claim 8 , wherein the provider further comprises:
means for querying the provider if the attribute indicates the requested data structure is stored at the provider; and
means for querying the first tenant if the attribute indicates the requested data is stored at the first tenant.
12. The system of claim 8 , wherein the attribute indicates whether a particular data structure is shared by the plurality of tenants or specific to the first tenant.
13. The system of claim 8 , wherein the provider further comprises:
means for updating, by the provider, the shared-metadata based on data structure changes at the provider.
14. The system of claim 8 , wherein the provider further comprises:
means for enabling the first tenant to have read-only access to the shared data structure.
15. The system of claim 8 , wherein the provider further comprises:
means for enabling a tenant to access the at least one shared data structure and means for forbidding the tenant from writing data to the provider.
16. A computer-implemented method for hosting, at a provider, a plurality of tenants over a network, comprising:
analyzing, at the provider, attributes of a plurality of data structures;
based on the analysis, determining which of the plurality of data structures is a tenant-specific data structure specific to a first tenant of the plurality of tenants, and determining which of the plurality of data structures is a shared data structure shared by the plurality of tenants;
generating a tenant-specific designation to identify a data structure of the plurality of data structures as being specific to the first tenant, and generating a shared designation to identify a data structure of the plurality of data structures as being shared by the plurality of tenants;
appending the tenant-specific designation to the tenant-specific data structure, and appending the shared designation to the shared data structure;
storing, at the provider, the shared data structure;
generating shared-metadata based on the shared data structure stored at the provider;
storing, in a respective tenant server at each of the plurality of tenants, the shared-metadata referencing the shared data structure;
querying, in response to a data request from one of the plurality of tenants, a provider server for the stored shared data structure based on the shared-metadata;
storing, at the first tenant, the shared-metadata defining an attribute of at least one of the shared data structure and the tenant-specific data structure;
querying the provider if the attribute indicates the requested data structure is a shared data structure;
querying the first tenant if the attribute indicates the requested data is a tenant-specific data structure; and
providing the requested data based on the querying.