1. A system for data sharing, comprising: a platform as a service (PaaS) including a processor; a plurality of tenants on a cloud; a plurality of databases on the cloud, the plurality of databases belonging to the plurality of tenants respectively; the PaaS sets up a materialized shared space in the cloud, the materialized shared space including a set of resources provided by the PaaS to permit data sharing between a tenant application and at least one consumer application using a materialized shared space to permit a mobile application to access and update data associated with another mobile application; the processor running a sharing negotiation tool to facilitate a three-way sharing agreement to be reached among a data owner which is an application that shares data, a data consumer which is an application which wants access to data from the data owner and the platform; and a sharing middleware configured to provide the at least one consumer application with access to the data in the materialized shared space including a capacity planner to ensure that Service Level Agreement (SLA) guarantees are satisfied, and access is provided to all data owners and data consumers; wherein the sharing middleware determines an appropriate amount of resources to be allocated to the materialized shared space, comprising maintaining CP(Ri) Ci and SZ(Ri) Si, where Ri is a node, DB(Ri) is the set of databases that are hosted on Ri, Ci is a computing capacity of Ri, Si is a storage capacity of Ri, CP is defined as the capacity consumption of DiDB(Ri), SZ(Ri) is defined as the storage consumption of DiDB(Ri).