Computation Offloading: Overview, Frameworks and Challenges | Synapse