# Software-Defined Vehicular Cloud Networks: Architecture, Applications and Virtual Machine Migration
## 1 Introduction
Furthermore, SDVN integrated with network slicing, artificial neural network, and 5G technologies improves both on-demand routing protocols and bandwidth utilization [14; 15; 16]. The communication efficiency is improved using SDVN integrated 5G with edge computing [17; 18]. SDVN provides better performance of location awareness services through Cloud-Radio Access Network (C-RAN) and Mobile Edge Computing (MEC) [19; 20]. In brief, the architecture of SDVN improves resource utilization, selection of best routes, and facilitates network programming for next-generation vehicular networks. SDVN, Virtual Machine (VM) replication, and migration are joined together to improve the bandwidth of cloud-based vehicular applications. SDN-based Vehicular Cloud (SVC/SDVC) [21; 22] uses VM service to enable the distribution of software updates on vehicles based on SDN and cloud computing. SDVC architecture considers vehicles to host virtualization services that enable a VM to migrate from one RSU to another. In fact, the SDN controller is responsible for VM migration and replication. Furthermore, existing works on SDVN-based cloud computing integrate EC to connect information providers and information consumers on an individual level [9]. In fact, individual levels of information providers and consumers mainly focus on resource management, loss of connectivity, and placement of SDN controller and their sub-SDN controller to enhance connectivity [9]. Therefore, none of these works discuss the migration of vehicle's VM service in SDVC and its related applications. Although the concept of SDN can meet the improved demands of VANETs such as high throughput, low communication latency, high mobility, routing overhead, etc., the current available literature that discusses the migration of VMs over SDVC is limited. To the best of our knowledge, this paper is the first to discuss how VM would be managed in SDVC. In this paper, we discuss the working methodology of the state-of-the-art VM migration over SDN-enabled vehicular cloud computing integrated with MEC and VC. We also investigate the SDN-based vehicular cloud architecture by providing an extensive discussion of its functional system components to control the VM migration approach, mobility prediction, and heterogeneity of wireless interfaces equipped in vehicles. Then, we present the assistance of control layer to manage cloud-based vehicular applications on the basis of their ability to share computation, storage and bandwidth resources. Finally, an array of VM strategies and other design based VM migration techniques that require the attention of the researchers are presented. The design of VM migration modules to be executed into SDN controllers would allow predictable control of MEC forwarding devices during VM migration in SDVC. The main contributions of this article are as follows:  
* Firstly, we provide a comprehensive literature review on network and computation technologies for supporting SDN-based Vehicular Cloud (SDVC) such as VM migration, SDN, vehicular cloud computing, and cellular-to-everything (C-V2X) communication mode. * Secondly, we provide an extensive description of SDVC in which the network forwarding devices such as vehicles and RSUs are decoupled from the control plane. The SDVC's control plane is abstracted and managed by application functions available at either the edge or central cloud infrastructure. * Thirdly, we outline and discuss potential cloud-based vehicular applications assisted by the SDVC. We further describe the ability of SDVC's network control plane to manages several VM migration scenarios due to the high vehicle mobility in VC. * Lastly, we provide a detailed comparison of existing frameworks in SDVC that integrate the VM migration approach, VM strategies, and different emulator/simulator networks used to evaluate VM frameworks' use cases. The remainder of the paper is organized as follow. The background of technologies behind SDVC is detailed in Section 2.