1. A computer-implemented method for hosting, at a provider server, application software for a plurality of tenants, the method comprising: storing, at the provider server, a shared data structure associated with the application software, wherein each of the plurality of tenants has access to the shared data structure; distributing, to each of the plurality of tenants, respective tenant-specific data structures for storing data unique to each respective tenant for storage at each respective tenant; defining the shared data structure and the tenant-specific data structures in a data dictionary; storing, at respective tenant servers, shared-metadata comprising definitions from the data dictionary and information reflecting a storage location of the shared data structure; providing, in response to a request from the application software and using the shared-metadata, data associated with the shared data structure to a first tenant of the plurality of tenants; and determining the storage location of the shared data structure based on the information.