  Mobile edge computing is beneficial to reduce service response time and core
network traffic by pushing cloud functionalities to network edge. Equipped with
storage and computation capacities, edge nodes can cache services of
resource-intensive and delay-sensitive mobile applications and process the
corresponding computation tasks without outsourcing to central clouds. However,
the heterogeneity of edge resource capacities and inconsistence of edge storage
and computation capacities make it difficult to jointly fully utilize the
storage and computation capacities when there is no cooperation among edge
nodes. To address this issue, we consider cooperation among edge nodes and
investigate cooperative service caching and workload scheduling in mobile edge
computing. This problem can be formulated as a mixed integer nonlinear
programming problem, which has non-polynomial computation complexity. To
overcome the challenges of subproblem coupling, computation-communication
tradeoff, and edge node heterogeneity, we develop an iterative algorithm called
ICE. This algorithm is designed based on Gibbs sampling, which has provably
near-optimal results, and the idea of water filling, which has polynomial
computation complexity. Simulations are conducted and the results demonstrate
that our algorithm can jointly reduce the service response time and the
outsourcing traffic compared with the benchmark algorithms.
