— Cloud computing is a technology that was developed a decade ago to provide uninterrupted, scalable services to users and organizations. Cloud computing also became an attractive feature for mobile users due to the limited features of mobile devices. The combination of cloud technologies with mobile technologies gave a new area of computing called mobile cloud computing. This combined technology is used to augment the resources existing in smart devices. In recent times Fog computing, Edge computing and Clone Cloud computing techniques have become the latest trends after mobile cloud computing, which have all been developed to address the limitations in cloud computing. This paper reviews these recent technologies in detail. This paper also addresses the differences in these technologies and how each of them are effective to organizations and developers. Keywords—fog computing; clone cloud; cloud computing; edge computing; mobile off-loading; crowdsourcing; Internet of Things; Machine learning; Distributed computing. I. INTRODUCTION Smart devices such as, smart phones, tablets, pcs, net-books etc. are trending in the market now a days. These devices are compact and small which makes them handy for use. Being small they have fewer resources than other devices. Mobile cloud computing came into use to address the drawbacks in these devices such as lack of storage, computational power and limited battery life of smart devices. It is being used in many areas such as healthcare, smart cities, agriculture etc. The data collected using Internet of Things (IoT) and sensing devices are transferred to remote cloud data centers for analysis (fusion, storage, and processing). It is considered as an extension to cloud computing but at the same time providing services to smart devices also. There are a number of limitations identified in these approaches as cloud data centers are often located at remote locations from the place of request. This make it more susceptible to suffer from lag, network resilience and link failures. Thus the objective of using mobile cloud computing fails because of these issues. Edge, Fog, and Clone clouds try to address these issues. However, many of these approaches are differentiated from each other in terms of usage, build techniques etc. The most recently developments in cloud computing are fog and edge computing. The big data analytics life cycle, which starts with raw data collection and moves to data analytics and decision making, requires intelligent co- ordination of activities between tiny IoT sensors, IoT gateways, and in-transit network devices in an cloud data-center. A comparison of these techniques is important to understand the advantages of using edge, fog and clone cloud in different systems. It also provides insights into band width reduction on cloud networks by using a split cloud application architecture. Edge Cloud, addresses this specific issues by augmenting the traditional data centers consisting of cloud models with service nodes placed at the network edges[1]. The proximity of edge nodes allows data processing to and from far remote clouds to be done at the edge. By processing data locally through accelerated data streams it is possible to reduce network traffic bottlenecks. Clone clouds and computational off-loading provide a distributed mechanism of application execution thereby augmenting the resources of the smart device with cloud resources[2]. A clone allows the dynamic execution of various applications by alternating between clone and device. Fog computing gives the user option of performing cloud operations at locations closer to point of interest. It uses existing networks, routers in nearby locations to perform operations just like cloud[3]. In this paper difference between these technologies and their build types is discussed. A comparative study is done on the different cloud technology approaches. The next section give a survey on edge, fog computing and the components of its built, that make it feasible for implementation. A comparative study on edge computing and fog computing is given. Section 3 discusses elastic computing and clone cloud computing. The advantages of using clone cloud in smart devices are also discussed. Section 4 gives the advantages of using fog and comparison with edge computing and advantages of distributed clone cloud computing with a comparative study is given. II. SURVEY ON EDGE COMPUTING AND FOG COMPUTING Edge computing is a terminology that came to be used to augment traditional data centers with service nodes at network edges. Fog computing is a complementary concept to edge computing. A. Edge Computing review Edge-centric computing is based on a decentralized model that interconnects heterogeneous cloud resources controlled by a 978-1-5386-0549-3/17/$31.00 ©2017 IEEE 44. 6 Proc. EECSI 2017, Yogyakarta, Indonesia, 19-21 September 2017 447 variety of entities. The concept of edge is based on the following elements. 1. Proximity: Similar to content distribution networks, it is easier to use close by nodes than far away nodes. 2. Intelligence: Use autonomous decision making in the edge helps in the miniaturization of systems. 3. Control: management of the application and the coordination also comes from the edge machines that can assign or delegate computation[1] . It is known that cloud computing and mobile computing are used together to harness mobile back-ends to augment the resources for smart devices. However, they suffer from lag, network resilience and link failures. IoT transfers a lot of data between cloud and mobile hence there is a need for high bandwidth connectivity and the computations in such applications are also data and resource intensive. Edge computing delivers low- latency, bandwidth-efficient, and resilient end user services. Using this service, users get a latency benefit for those who are away from the data centers. Edge computing provides traditional data center with extended capabilities to deploy application at the edge networks [4]. Proximity of users, low latency are significant advantages in times of network congestion. These features allows the mobile network operators, vendors as well as application service providers to improve existing services using edge and boost new ones enabling significant value addition to their respective business models. Figure 2.1 show an edge architecture through LAN and WAN networks connected to the cloud data center. Figure 2.1 Edge center architecture in LAN/WAN network A Follow Me Edge (FME) architecture is proposed by Taleb [5], where the service continuously follows the user to a service most close at the edge. Migration is done to ensure that not data is lost. The edge server which belongs to mobile network operators manage and control the edge server. Different mobile network operator have different set of edge server clusters. To realize the FME architecture the edge operator needs to keep updated information about resources and user locations. The SLA should enforce an integrated architecture where the edge operator handover, shared storage concept, and service migration are considered. A framework for Mobile edge computing to support diverse applications in smart city scenario, by way of reducing core network traffic through smart MEC is proposed in the paper. An open sensor platform developed on the basis of edge computing is Waggle [6] which uses sensors to measure air borne pollutants. It is an OpenStack based edge platform which consists of a node controller that manages sensor data cache, reads simple sensor values and manages network stack and encryption. The edge computing for the sensor platform addresses resilience, performance, isolation and data privacy. Thus edge computing acts as a decentralized cloud working at the edge of the network and helping with the devices lacking resources. The reviews above describe the use of edge computing in migration of resources and sensor monitoring. Use of edge in these system have proven better results. B. Fog Computing review Fog computing was first introduced by Cisco for wireless data transfer to distributed devices in an IoT network paradigm. In many research papers Fog computing is considered the same as edge computing. Similar to edge computing it is carried out closer to the end users networks. It is also a virtualized platform located between end users and cloud data centers hosted on the internet. Fog computing provides advantages in terms of reduction in delay, power consumption reduce data traffic over the network. The following figure 2.2 gives the three layer user fog cloud. Figure 2.2 Three layer user/fog/cloud[7] Cloudlets are used to provide services to mobile users with limited security [8] and distributed load balancing. It also reduces the number of hops between clients and servers. It provides the shortest possible distance to servers but also providing all the advantages of cloud computing. In fog computing, infrastructures are provided as resources for services at the edge of the network are called fog nodes which are similar to cloudlets. They can be resource-poor devices such as set-top- boxes, access points, routers, switches, base stations, and end devices, or resource-rich machines such as Cloudlet and IOx [3]. The paper [9] reviews the power consumption by cloud and fog resources. Mathematically it has been proven that using fog resources power consumption is minimum in different applications. As fog computing is a relatively new concept in cloud computing, the presence of secure sand-boxes for the implementation of fog applications bring about new challenges in terms of trust and privacy. Fog are a type of mini-clouds in the network for increasing resource availability, thus by doing so isolation and sandboxing mechanisms must be in place to ensure bidirectional trust among cooperating parties [10]. However, standardization mechanisms on the network should take place at the terminal, edge and node end of fog networks. There is also a lack of central entity controlling the fog hence it difficult to assert if a given device is indeed hosting a component. At the same time there are many open ended issues Proc. EECSI 2017, Yogyakarta, Indonesia, 19-21 September 2017 448 in edge computing where application deployment strategies, edge node security and failure recovery are some of the issues that need further research. C. Techniques for building fog and edge systems A Fog server is a virtualized device with build-in data storage, computing and communication facility. The purpose of Fog computing is to place a handful of compute, storage and communication resources in the close proximity of mobile users, and accordingly provide fast services to mobile users via the local short-distance wireless connections. Fog servers are adapted from existing network components, e.g., a cellular base station, Wi-Fi access point or femtocell router by upgrading the computing and storage resources and reusing the wireless interface. The main advantage of fog computing over cloud computing is that they are location aware, thus making them more accessible to end users. Fog provides system level horizontal architecture to distribute computing, storage, network resources from the cloud and back. It is like a cloud on the ground. Security is one of the biggest risks for fog computing. The use of network components as cloud services, give about security compromises and privacy leaks. Personal privacy is also at risk. Fog computing brings resources closer to end users and might enable finer-grained monitoring of human behavior, which could expose a higher degree of private information ranging from utility and transportation usage to personal health. In the case of edge computing light weight Linux containers are used for support primitive virtualization instead of hypervisor based hardware virtualization. Quantum component in OpenStack is used for managing the virtual networking in edge cloud. The Quantum server and agent communicate with the custom Quantum plugin. The quantum agent creates the underlay that interconnects the edges. Security is separately pro- vided through the VPN networks. Quantum agents communicates via an RPC connection with upload and download app specific keys. The paper by Chang [4] gives a general model of an edge cloud which can work with all types of edge services and also IoT platforms. Challenges are in edge analytics which require lightweight algorithms such as machine learning and data processing. Apache Quark gives this lightweight library for small edge devices to enable real time data analytics. Deep learning is also one of the areas where edge analytics are used [11]. As edge is in close proximity to end users it enables reduction of latency. It also provides radio network capability including access to network information and the integration with operator network services. These are some of the advantages of using edge computing. Table 1 shows a comparative study of Fog and Edge cloud computing. The next section gives a different perspective of cloud computing in terms of elastic execution between device and cloud. Further in the paper a comparison on clone cloud, fog and edge computing is discussed. III. CLONE CLOUD: ELASTIC EXECUTION MECHANISM IN THE CLOUD The main strengths of cloud computing is the services offered by cloud providers i.e. Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS). The concept of offloading data and computation in cloud computing, is used to address the inherent problems in mobile computing by leveraging cloud service providers to host the execution of mobile applications. This reduces the communication cost between mobile devices and surrogates. Examples such as crowd sourcing, image processing, use of GPS and internet data happen outside the device using mobile cloud computing. TABLE 1: COMPARISON BETWEEN FOG, EDGE COMPUTING Fog Computing Edge Computing 1. Deployed at the local premises of mobile users. Deployed as a traditional data centre with extended capabilities. 2. Virtualized device with build-in data storage, computing and communication facility. Uses an edge server similar to a traditional data centre server. 3. Can be adapted from existing system components It is completely built as new system or a mini cloud data centre. 4. Energy consumption of fog less than cloud services but overhead is high compared to cloud. Edge uses less resources than the cloud initial overhead to build is high compared to cloud 5. No central entity controlling the fog cloud Edge server using cloud technologies and virtualization used to control edge components. 6. May not be controlled by network operators, uses an ad-hoc distribution. Allows the mobile network operators improve existing services with edge. Augmented smartphone applications with clone cloud, address challenges in ways to off-load execution to the cloud infrastructure. Clone cloud technology was introduced in 2009 by [2] for off-loading execution from the smartphone to a computational infrastructure hosting in the cloud of smartphone clones. The idea was proposed on the simple concept that allows smartphones to host its expensive and exotic applications. The novelty of the approach is that replicas are loosely synchronized and virtualized on emulated devices. The framework is a cloud- based, fine-grained, thread-level, application practitioner that clones entire mobile platform at execution runtime into the cloud Virtual Machine and runs the mobile application inside the Virtual Machine without performing any change in the application code. This approach also replicates the whole smartphone image and run application code with few or no modifications in powerful VM replicas to transform a single Figure 3.1 Clone Cloud based architecture Proc. EECSI 2017, Yogyakarta, Indonesia, 19-21 September 2017 449 machine computation to a distributed computation semi- automatically. The aim of offloading is also to minimize the communication cost between the mobile device and its surrogates. The figure 3.1 shows a replica of clone cloud based architecture with a clone to distributed the process execution. A. Related Study on Clone Clouds The paper by Chang [12] perform cost analysis by using different resource allocation strategies in the cloud infrastructure using clone cloud strategies. The paper uses compute intensive java applications for elastic execution mechanisms in the cloud and they are compared for remote processing speed, cost and energy savings along-side the unmodified application. It also proves that comparing remote and local executions on netbooks and laptops were reduce from 5% to 50%. As compared to fog and edge computing elastic executions require reduced amounts of cloud services. Infrastructure development that is needed in fog and edge computing are not required in clone clouds. Elastic executions give more flexibility to developers and end users to choose cloud services at their choice. The advantages of using clone cloud is that they late bind the decision to off-load executions to the cloud infrastructure, thus giving more autonomy to end users. Many framework are developed for offloading computation on clone cloud such as by Kemp et. al. [13] presents a system to offload mobile device applications. Using the cuckoo framework the application generates code from the original application as a remote service identical to the local one with remote executions, where the remote versions are run on a multi- core computer instance, and takes full advantage of parallelism. If remote resources are not available (such as network connectivity) then the application can run on local resources entirely. The clone cloud uses Virtual machine migration to offload part of their application workload to a resource rich server through either 3G or Wi-Fi. The cost model analyses the cost of execution of the application on the device and the migration cost. Virtual migration report energy saving from 60% to 90% for different types of applications such as chess, games and face recognition systems. There are also many other elastic platforms for code off-load such as system level clone and delegated surrogates on the cloud. In all these mechanisms the most important requirement is the availability of network connectivity. The main idea of using clone cloud is significant faster execution than on device and minimum cost of sending data and code to cloud is significantly less than execution on the device. There are methods to achieve this which is considered next section. This section considers the constraints to partition the device for cloning the application in the cloud. B. Conditions to off-load on clones As the mobile cloud computing is dynamic in nature, many of the resources are likely to change regularly. Hence a cost- benefit analysis done to evaluate the benefits of offloading against the potential gain by evaluating the predicted cost of the execution with user specific requirements. The cost analysis is determined by using a profiler to keep track of devices energy used, network characteristics, and application characteristics. Based on the information from the profiler the application decides whether to offload the application or not. Some applications do allow an optimizer to decide which methods are to be migrated so that the cost of migration and execution is minimized [14]. Monitory cost is also one of the aspects to be considered while migrating applications to the cloud. The cost models of off-loading are mainly divided into three types namely: history based profiling, parametric, and stochastic. Also mobility is mobile cloud is one of the reasons for its disconnection. Clone cloud approaches have various ways of using cloud resources to enhance computing capabilities of mobile devices. It uses migration and re-integration methods to split modules of application between cloud and clone. Therefore, the overall performance and credibility of these augmentation approaches highly depend on the cloud-based resources characteristics. Performance, availability, elasticity, vulnerability to security attacks, reliability (delivering accurate services based on agreed terms and conditions), cost, and distance are major characteristics of the cloud service providers used for augmenting mobile devices [15]. From the section above it is seen that all these approaches are different from each TABLE 2 COMPARISON BETWEEN FOG, EDGE AND CLONE CLOUD MODELS Edge Computing Fog Computing Clone cloud 1. Close in distance to end user Close in distance to end user by utilized existing resource provisioning Uses Cloud Services 2. Latency benefit for users away from the data centres. Latency benefit for users away from data centers Application decides when to put data and execution to the clone (uses adaptive schemes to perform decision making). 3. It is a traditional data center with extended capabilities to deploy application at the edge networks. Cloudlets are used to provide services to mobile users with limited security , distributed load balancing Data and execution transfer mechanisms, to the cloud by provisioning the cloud servers. 4. Can work for all types of services including IoT platforms. Can provide services to all types of applications This scheme provides services at a distributed level 5. Provides its own security and load balancing Limited security, distributed load balancing. Distributed load balancing 6. Edge and cloud together forms a three layer service model Fog and cloud together form three layer service model It forms a two layer service model. 7. No cost analysis to transfer No cost analysis to transfer Overhead of cost analysis to obtain decision to offload 8. Call to edge resources need to be adjusted in the application Call to fog resources need to be adjusted in the application Complex application development 9. Resource allocation done by edge Resource allocation done by fog Low cost for surrogate resources utilization Proc. EECSI 2017, Yogyakarta, Indonesia, 19-21 September 2017 450 other. Elastic execution strategies use different approaches as compared to fog and edge computing. The next section summarizes these different cloud methodologies. IV. INVESTIGATIONS ON EDGE, FOG, CLONE CLOUD AND ELASTIC EXECUTION MODELS From the study presented above, it is seen that all these technologies give different types of cloud services. The final benefits are for the end user to use these services according to each one’s requirements. Edge computing, Fog computing are setup to limit the latency between cloud data centers and end devices. All data centers are connected by internet connections between users and cloud services, which are long, thin and susceptible to network failures. Internet access is provided by ISPs in different regions. Urban areas have good access to cellular towers because of the density of population and hence internet connectivity is also available in these areas. However there are reduced number of towers in rural areas hence internet access and access to cloud services are minimum. Thus it can be argued that with good access to cellular towers gives good internet connectivity in turn gives good access to cloud providers. From a business perspective the more data and computation obtained is of advantage as data is charged per minute to consumers. Hence limited and adequate use of internet is beneficial to all. Clone cloud based distributed execution strategies provides effective utilization of cloud resources from consumer perspective. The requirement for these types of services are not necessary is large cities and hubs where service providers operate in large numbers. In remote areas are further benefited by fog and edge computing due to limited connectivity issues. Logical network proximity is defined by low latency, low jitter and high bandwidth. Thus network proximity has a number of advantages in terms of reduced number of hops, fast responding cloud services, masking problem in cloud [16]. In urban areas network proximity is less while the counter is true in rural areas. Unlike the free surrogate resources, utilizing cloud infrastructure levies financial charges to the end-users. Mobile users pay for consumed infrastructure resources according to the SLAs negotiated with cloud vendors. In certain scenarios, users prefer local execution or application termination because of monetary cost of cloud infrastructures. However, user payment is an incentive for cloud vendors to maintain their services and deliver reliable, robust, and secure services to the mobile users [9]. Thus it can be concluded that, in cities and industrial hubs clone cloud base distributed cloud execution is beneficial while small towns and villages should take advantages of edge and fog computing. Table 2 gives the comparative study of all the different cloud execution mechanisms. V. CONCLUSIONS This paper gives an overview of the recent developments in the area of cloud computing and mobile cloud computing. The paper focuses of the recent concepts of fog, edge, clone and computational offloading to cloud services. Fog computing and edge computing are the latest in the development of cloud services, by bringing the cloud services closer to the end user. Thus reducing time of execution on cloud servers. These technologies are compared with existing technologies of clone cloud and computational off-loading mechanisms. Clone clouds are categorized into different types of augmentation strategies thus limiting the use of cloud resources. The recent approaches in cloud are suitable for users with limited connectivity issues and clone clouds are suitable for optimal use of cloud services. ACKNOWLEDGMENT I would like to thank the anonymous reviewers for the comments and suggestions.