1. A method for hosting, at a provider, a plurality of tenants over a network, the method comprising: determining which of a plurality of data structures are shared by the plurality of tenants, and determining which of the plurality of data structures are specific to a first tenant of the plurality of tenants; generating a shared designation to identify a data structure as being shared by the plurality of tenants, and generating a tenant-specific designation to identify a data structure as being specific to the first tenant; appending the shared designation to a shared data structure determined as being shared by the plurality of tenants, and appending the tenant-specific designation to a tenant-specific data structure determined as being specific to the first tenant; storing, at the provider, the shared data structure; storing, at a tenant server of the first tenant, the tenant-specific data structure for access by the first tenant; storing, at a module, metadata including locations of the shared data structure and the tenant-specific data structure; receiving, at the module, a data request from a tenant terminal of the first tenant; retrieving, in response to the data request and based on the metadata; the shared data structure from the provider when the data request is for the shared data structure; and the tenant-specific data structure from the tenant server when the data request is for the tenant-specific data structure; and sending the retrieved data structure to the tenant terminal in response to the data request.