what prevents to realize the CaaS is its distributed and wide deployment nature. To address such a problem, virtualization can provide flexible and programmable virtual caching capability to the InSPs and NSPs, in order to serve end-users with QoS guaranteed service [@Li]. By such, the content can be flexibly chunked, distributed, and stored based on the its popularity, traffic diversity and the user demands.

It is also worth noticing that besides the caching for content delivery, cache can be applied to complement the big data analytic. Consequently, CaaS can be merged with DKaaS, to address the questions of matching between cache and data in the wireless networks, i.e., problems of where, what data and when to cache [@Bi]. Furthermore, due to the development of smart phone industry, today’s terminals also have large storage capacities, which are rapidly growing but typically under-utilized. The highly developed computing units of these devices are also capable of processing much more complicated tasks [@Chang2]. To enable the distributed cache provisioning of these devices, accurate knowledge of the end-user demands is crucial.

Computing-as-a-Service (ComaaS)
-------------------------------

In the traditional networks, the dedicated computing resources are implemented at BS level, which resulted in a networks with an over-provisioning 