Abstract
With the rapid resource requirements of Internet of Things applications, cloud computing technology is regarded as a promising paradigm for resource provision. To improve the efficiency and effectiveness of cloud services, it is essential to improve the resource fairness and achieve energy savings. However, it is still a challenge to schedule the virtual machines in an energy-efficient manner while taking into consideration the resource fairness. In view of this challenge, a fair energy-efficient virtual machine scheduling method for Internet of Things applications is designed in this article. Specifically, energy and fairness are analyzed in a formal way. Then, a virtual machine scheduling method is proposed to achieve the energy efficiency and further improve the resource fairness during the executions of Internet of Things applications. Finally, experimental evaluation demonstrates the validity of our proposed method.
Introduction
Internet of Things (IoT), proposed by Prof. Ashton in 1999, has become one of the most popular technologies recently.1,2 In the past few years, the connotation of IoT has been deployed rapidly, and the applications of IoT continue expanding enormously as well. The IoT has many advanced features, such as intelligent processing, reliable transmission, and full perception. So with the development of IoT technology, IoT applications also increase explosively. IoT applications cover all kinds of areas, such as in U-Home, intelligent transportation, intelligent medical, smart grid, intelligent logistics, environmental protection, intelligent industry, intelligent agriculture, to name a few.3–5
During the process of IoT applications, cloud computing technology is regarded as a driver for IoT computation enhancement, energy efficient, and service implementation. 6 Generally, IoT applications can offload the massive computational tasks to the cloud platform to accomplish the large capacity storage and computation. 7 And the applications are able to obtain the necessary resources of cloud data centers; at the same time, users should pay for the resources. Therefore, the IoT can achieve a scalable computing between mobile client and the cloud.
The energy consumption for the execution of IoT applications is growing at a very high rate while deploying these applications to the cloud platform. And it is considerable that the IoT consists of computational and processing resources, which can be responded by the cloud infrastructure. The exponential growth in the number of IoT applications becomes available in the cloud environment, which leads to massive energy consumption in cloud systems. 8 What is more, the energy consumption in cloud data center has been a hot topic in Internet Data Center (IDC). So it is necessary to achieve energy savings for IoT applications in cloud environment.
In the cloud environment, the service providers allocate resources to IoT applications in the form of virtual machine (VM). And the resource requirements of IoT applications have many different types, including central processing unit (CPU)-intensive, input/output (I/O)-optimized VM instances, and so on. Meanwhile, to reserve network bandwidth to access the resource pool in cloud is necessary for data processing and storage. In this circumstance, all kinds of resources, such as bandwidth, computation and storage, need to be allocated fairly. 9 Generally, there are lots of resource requests for IoT applications at the same time, which results in the resource competition during resource management, and such unfair competition may interrupt the services. 3 Therefore, resource fairness should be taken into consideration during resource allocation for IoT applications in cloud environment.
However, to the best of our knowledge, few of the works for the VM scheduling have been done for IoT applications in the cloud environment, while taking both energy consumption and resource fairness into consideration. In view of this challenge, a fair energy-efficient VM scheduling method (FEM) for IoT applications is proposed in this article. Our main contributions are threefold. First, fairness analysis and energy consumption analysis in the cloud environment are presented, so that we can investigate the challenge in a formal manner. Second, a corresponding FEM is proposed to achieve the goals of energy savings and fairness enhancement. Finally, comprehensive experiments and simulations are conducted to demonstrate the validity of our proposed method.
The reminder of the article is organized as follows. Section “Resource fairness and energy consumption analysis in cloud environment” provides the fairness and energy consumption analysis in cloud environment. An FEM for IoT applications is proposed in section “An FEM for IoT applications.” Section “Experimental evaluation” presents the experiment results. Finally, section “Related work” discusses related work and section “Conclusion” concludes our work.
Resource fairness and energy consumption analysis in cloud environment
Resource fairness analysis
In cloud data centers, different types of physical machines (PMs) are deployed to provide resources for IoT applications. Denote P = {p1, p2, …, pN} as the PM list running in the data centers, where N is the number of PMs in P. Each PM is equipped with various physical resources, including CPU, memory, bandwidth, and so on. Suppose there are M types of resources contained among the PMs in P, denoted as R = {r1, r2, …, rM}.
The resource fairness for a PM is relevant to the resource utilization for each type of resource. The resource utilization of the PMs can be calculated according to the resource amount and resource usage. Generally, the resource amount and the resource usage can be measured by the number of resource units. Let prn,m be the resource in the nth PM pn with the mth resource type rm. For prn,m, the resource usage is denoted as un,m, and the resource amount is denoted as cn,m.
The submitted IoT applications should rent a definite amount of resources to respond to the application execution. IoT applications contain a large amount of tasks. Suppose there are W tasks contained in the applications, denoted as T = {t1, t2, …, tW}. All the tasks in T have personalized resource requests for different types of resources, including CPU, memory, and so on.
Definition 1 (resource request)
For tw (1 ≤ w ≤ W), the resource request, denoted as qw = {qw,1, qw,2, …, qw,M}, consists of the specific resource amount of each type of resource.
In q w , qw,m represents the requested resource amount of the mth (1 ≤ m ≤ M) resource type for task tw. As the resources in the cloud environment are provisioned in the form of VMs, the resource requests from IoT applications need to be presented by the VMs with specific resource amounts. The VMs allocated for the tasks in T are denoted as V = {v1, v2, …, VW}, where vw (1 ≤ w ≤ W) represents the VM for task tw.
The resource utilization of the PM pn for resource type rm, denoted as run,m, is calculated by
where
Then the resource utilization of pn for all the resources is calculated by
The resource fairness is closely related to the resource utilization for all types of resources and the resource utilization of each VM. The resource utilization of vw is relevant to the total resource usage of the VM, denoted as vuw, which is calculated by
Based on the fairness computation analysis in Ghodsi et al. 10 and Wang et al., 11 the resource fairness in PM vw is calculated by
Energy consumption analysis
For IoT applications submitted to the cloud platforms, they need a large amount of energy consumption to guarantee execution efficiency. In the large-scale data centers, the energy consumption by network devices, security devices, cooling systems, and so on has been considered to be more. As IoT applications consume a large number of physical resources, including computation, storage, and so on, we mainly focus on the energy consumption due to the execution of IoT applications. Efficient VM scheduling strategies can contribute to reduce the energy consumption in cloud data centers, since the energy consumed by the cooling system and other devices depends on the energy consumption in the servers. Thus, in this article, we try to achieve energy savings during the execution of IoT applications. In the cloud data centers, the energy consumption mainly refers to three aspects, including the PM base energy consumption, the energy consumption by the running VMs, and the energy consumption by VM communications.12,13 The unused resources on the PM also consume a certain amount of energy, but it is not the dominant part of the energy consumption. Thus, in our energy consumption model, the PM base energy consumption and the VM energy consumption are taken into consideration.
The PMs in the data centers have three modes, that is, active mode, idle mode, and sleep mode. The PM is in the active mode when it is employed for application execution. During the lifetime of IoT applications, the PMs should consume the base energy. The lifetime of a PM is determined by the occupation time of the VMs deployed on it. For pn, the lifetime, denoted as ln, is calculated by
where λw is the occupation time of vw.
Then the base energy consumption for all the PMs is calculated by
where αn is the base energy consumption rate of pn, that is, the energy consumption of pn per unit time.
The energy consumption by the running VMs is denoted as VE, which is calculated by
where βw is the energy consumption rate for vw in the active mode.
The VMs in the idle mode also consume a certain amount of energy, denoted as IE, which is calculated by
where βm is the energy consumption rate of sm in idle mode.
In addition, the energy consumption due to data transmission among VMs during task execution also should be taken into consideration. The energy consumption for the VM communications, denoted as TE, is calculated by
where Dw,w′ is the total data size transferred from vw to vw′, θw,w′ is the bandwidth between vw and vw′, and δw′ is the energy consumption rate for data transmission between vw and vw′.
After the above analysis, the total energy consumption for IoT application executions is calculated by
An FEM for IoT applications
PM resource monitoring and idle space detection
To facilitate VM scheduling for IoT applications, the task requests of IoT applications are quantified by each type of resources in section “Resource fairness analysis.” To schedule VMs in an energy-efficient and fair manner, the unused resources should be identified. Therefore, it is essential to monitor the resource usage for each type of resources. In this article, in order to monitor the usage for each type of resource in the PMs and detect idle resources further, a resource occupation table is defined as follows.
Definition 2 (resource occupation table)
The resource occupation table ROTn (1 ≤ n ≤ N) is used to keep a track of the VM occupation records in the PM pn, which are generated when pn is leveraged to respond to the resource requests for VM placement.
Generally, several VMs could be placed on the same PM, thus there are a set of VM occupation records contained in ROTn. Let zn be the number of VM occupation records in ROTn. For the ith (1 ≤ i ≤ zn) VM occupation record rotn,i, it is a three-tuple, which is defined by rotn,i = {rvn,i, stn,i, dtn,i}, where rvn,i is the VM that is placed on pn and stn,I, and dtn,i are the service start time and duration time for the VM on pn, respectively.
The resource occupation table of a PM is dynamically updated under two situations. On one hand, when a new VM is mapped on the PM, the PM will provide all the resources for the VM to support the task execution deployed on the VM, and the resource occupation is updated. On the other hand, the resource occupation table also needs to be updated when the VMs on the PM migrate to another PM, since the duration time of the VM is changed during VM running.
Algorithm 1 specifies the process of resource occupation table updating. In this algorithm, the new arrival VM will generate a new VM occupation record after the VM is mapped to this PM (Lines 1–4). Then if the VM on pn migrates to another PM during execution, the relevant occupation record is identified and updated (Lines 5–16).
Through statistics and analysis of the resource allocation table, the amount of each type of idle resources can be detected at any time. Let ian = {ian,1, ian,2, …, ian,m} be the resource set to record M types of resources, where ian,m (1 ≤ m ≤ M) is the idle amount of the resource with resource type rm.
Algorithm 2 specifies the process of idle resource detection. In this algorithm, to get the idle amount of each type of resource, we should traverse all the VM occupation records (Line 1). Then according to the VM and time attributes in these records, the finish time of each type of resource can be calculated (Lines 2 and 3). Furthermore, the occupied amount for all resources can be counted (Lines 4–9). After these steps, the final idle resource amount can be counted (Lines 11–13).
PM identification and classification
Each PM has a dominant resource. To better fit the resource requirements of the tasks in IoT applications, the PMs should be classified according to the dominant resource.
A cloud vendor provides a variety of VMs with different configurations for cloud renters. For example, Amazon EC2 provides various VM instance types to accommodate the demand performance of cloud renters, including CPU-optimized instances, high I/O instances, and so on. 14 Generally, if the dominant resource of a PM is CPU, this PM is employed to respond to the CPU-optimized VMs.
As there are M types of resources in the cloud data centers and each PM has a dominant resource, the PMs in P could be classified into M types. Let rsm be the PM collection with mth dominant resource. However, the PMs that have spare dominant resources can be selected for VM scheduling. In this article, a threshold ρ is employed to judge whether the PM is overload. To avoid PM overload, the PMs whose resource utilization are less than ρ are identified. Based on the PM resource monitoring and idle resource detection in section “PM resource monitoring and idle space detection,” the usage amount and the idle amount of each type of resource can be detected dynamically. The usage amount for each type is necessary to calculate the resource utilization of PM by equation (3). Then, according to the resource type and the resource utilization, the PMs are classified and identified to the relevant PM collection.
Algorithm 3 specifies the process of PM identification and classification. In this algorithm, we traverse all the PMs in P (Line 1), and the usage amount for each type of resource is detected by Algorithm 2 (Line 2). Based on the usage values for all types of resources, the resource utilization of the PM is calculated (Line 3). For further PM classification, the dominant resource type of pn should be identified (Line 4), and the idle resource of the dominant resource should also be detected (Line 5). Then the PM with enough spare dominant resources and whose resource utilization is not over the threshold ρ is identified and added to the relevant PM set (Lines 6–8). As the PMs with more idle resources will be chosen for VM scheduling, the PMs in the classified PM sets should be sort in the decreasing order of idle amount of the dominant resource (Lines 10–12).
Energy-efficient VM scheduling
VM live migration is one of the most essential technologies for cloud computing, which supports running VM mapped from one PM to another, and it avoids interrupting the running application. 15 For the running VMs in V, they can benefit from the VM live migration technology. By leveraging this technology, the VMs on the PMs with low-resource utilization will be moved to the PMs with high-resource utilization.
The resource requests of the tasks in IoT applications have various dominant resources. Thus, the VMs, rented for hosting the tasks, should be placed on the PMs with the same dominant resources. For example, a CPU-intensive VM should be mapped to a CPU-intensive PM for running. According to the specific analysis of PM identification and classification in section “PM identification and classification,” the PMs are classified by the resource type.
For the VMs running in the mth PM set rsm, the PMs are sorted in the decreasing order of the idle amount of the dominant resources. When all the VMs on a PM are all migrated to the other PMs, this PM would be empty, and it could be set to the sleep mode to achieve energy savings. The PMs with lowest resource utilization will be handled first. If all the VMs on this PM can be migrated to the PMs in rsm with higher PMs, a scheduling policy is generated.
Definition 3 (scheduling policy on PM)
A scheduling policy on a PM consists of a set of VM migration strategies, denoted as S = {s1, s2, …, sK}, where K is the number of VM migrations.
Definition 4 (VM migration strategy)
For the kth (1 ≤ k ≤ K) VM migration strategy in S, it is a four-tuple, denoted as sk = {mvk, opk, dpk, mtk}, where mvk is the migrated VM, opk is the origin PM the VM deployed, dpk is the destination PM where the VM migrated, and mtk is the migration time.
The PMs are handled according to the PM order in rsm. After each turn of VM scheduling policy generation, the resource utilization of all the PMs in rsm is updated. The PMs with no spare dominant resources are removed from rsm. And according to the generated scheduling policies on all PMs, the scheduling policy for each VM in V can be updated. Let X = {x1, x2, …, xw} be the VM scheduling policies for all VMs in V.
Definition 5 (VM scheduling policy)
For the wth (1 ≤ w ≤ W) VM scheduling policy xw in X, it is a three-tuple, denoted as xw = {spw, dpw, otw}, where spw, dpw, and otw represent the migration start time, the original PM, and the destination PM, respectively.
Algorithm 4 specifies the process of energy-efficient VM scheduling (EVS). In this algorithm, the PMs are identified and classified according to the resource types and the idle amount of the dominant resources by Algorithm 2 (Line 1). Then we traverse the obtained PM sets and handle the VMs for each PM set (Line 2). All the available VM scheduling policies are generated for each PM set (Lines 3–24).
Fairness-aware VM scheduling
After the EVS, the VMs are placed using least PMs with the same dominant resources. However, the resources in these PMs may not be fairly employed, since the main resources consumed are the dominant resources. To use the resource in a fair manner, fairness-aware VM scheduling is necessary.
To improve the resource fairness in the cloud environment for IoT applications, the part of VMs running on the PMs with the same dominant resource should be migrated to the other PMs with the other dominant resources. For example, if there is a PM with dominant resource CPU, and to execute the computing tasks in IoT applications, there are several CPU-optimized VMs running on it, and few of the I/O resources in this PM have been used. In order to improve the overall fairness in the whole data centers, the I/O-optimized VMs could be migrated to this PM. After fairness-aware scheduling, part of the running PMs, may be empty, and they can be set to sleeping mode to achieve further energy savings.
In section “PM identification and classification,” the running PMs are classified by the dominant resources. Full utilization of the idle resources on the PMs contributes to improving the fairness. Thus, the resource utilization for each type of resource should be obtained first. Then we get the resource type with the minimum resource utilization. For the PM sets in RS, the PM set whose dominant resources are with this obtained resource type is identified. The PMs in the identified PM set are sort in the increasing order of the fairness values, which can be calculated by formula (5). The PM with lower fairness values will have a higher priority to be processed, and the VMs on this PM are considered to be migrated away. All the VMs are sort in the increasing order of the amount of the dominant resources. The VMs with fewer resource requests will be handled first. After VM migration, the corresponding VM scheduling policies, the resource occupation table, and the PM mode are updated accordingly.
Algorithm 5 specifies the process of fairness-aware VM scheduling. In this algorithm, we traverse all the PM sets after processing by Algorithm 4 (Line 1). Then the numbers of PMs in each PM set are obtained for fairness analysis. Each PM in the PM set will be analyzed, especially on the resource utilization values for each type of resource, the resource type with minimum resource utilization value, and the PM set with the obtained resource type (Lines 4–6). Then the identified PM set is handled by the fairness values (Lines 7–10). Furthermore, the VMs are scheduled to migrate to the identified PMs with idle space (Lines 11–26).
Experimental evaluation
In this section, a number of simulations and experiments are conducted to evaluate the performance of our proposed FEM. The simulation framework CloudSim is employed to model the cloud infrastructure. For comparison analysis, the running state without migration is treated as a benchmark. Besides, the EVS method presented in section “Energy-efficient VM scheduling” is also employed for comparison analysis.
Experimental context
In the experiments, four types (type 1–type 4) of PMs are applied to construct the cloud simulation infrastructure, that is, type 1: HP ProLiant ML110 G4 (Intel Xeon 3040, dual-processor clocked at 1860 MHz, 4 GB of RAM), type 2: HP ProLiant ML110 G5 (Intel Xeon 3075, dual-processor clocked at 2660 MHz, 4 GB of RAM), type 3: HP ProLiant BL460c G6 (Intel Xeon 5630, quad-processor clocked at 2530 MHz, 8 GB of RAM), and type 4: HP ProLiant SL390s (G7 Intel Xeon 5649, hexa-processor clocked at 3060 MHz, 16 GB of RAM).12,13
The specification of these four types of PMs is listed in Table 1. In the simulated cloud environment, 1000 PMs are created and the amount of each type of the PMs is 250. Based on Beloglazov and Buyya, 16 the power consumption of type 1 and type 2 PMs is set to 86 and 93.7 W, separately. And based on the HP operation documents, the peak power consumption of type 3 and type 4 PMs for each processor is set to 80 and 95 W, separately.12,13 As the PM consumes nearly 60% of the power, the power consumption of type 3 and type 4 PMs is set to 192 and 342 W in this article, separately.12,13,17,18
Parameter settings.
PM: physical machine; VM: virtual machine.
There are five basic parameters in our experiment. For each parameter, its value domain is specified in Table 1. More specifically, six datasets of IoT applications with different scales are generated for our simulation. The dataset contains a number of VM running records for the running PMs, and the PM amounts for these six datasets in our experiments are set to 500, 1000, 1500, 2000, 2500, and 3000, respectively. Each data record in these datasets is described as an eight-tuple. An instance of a data record is (10, 7, 3, 2, 1, 0, 0, 0.5). And it means that the 10th task from IoT applications is running on the third VM deployed on the seventh server. This task requires the resources on the PM; “2” is the amount of the dominant resource. The resource requirements for the non-dominant resources are 1, 0, and 0, respectively. Besides, these resources constitute the VM, which needs to run 0.5 h on this PM.
Performance evaluation
In this section, performance evaluations on energy consumption and fairness are discussed to demonstrate the validity of our proposed method.
Performance evaluation w.r.t. energy consumption
As the running PMs need to consume the base energy, the number of running PMs is closely relevant to the energy consumption. Figure 1 shows the comparison of the number of PMs after scheduling using six different scales of datasets. As illustrated in Figure 1, we can find that after VM scheduling by leveraging the VM migration technique, FEM employs fewer PMs than benchmark and EVS.

Comparison of number of PMs after scheduling by benchmark, EVS, and FEM.
Based on the energy consumption analysis in section “Energy consumption analysis,” the energy consumption after IoT application executions can be obtained. Figure 2 shows the comparison of total energy consumption after scheduling by benchmark, EVS, and FEM. As shown in Figure 2, we can find that FEM can achieve more energy savings, compared with benchmark and EVS. For example, when the number of servers is 3000, the energy consumption caused by FEM is less than 1 GW h, but benchmark and EVS consume more than 1 GW h.

Comparison of total energy consumption after scheduling by benchmark, EVS, and FEM.
There are four types of PMs employed in our evaluations, and thus four types of dominant resources are presented in the experiment. For more specified analysis of energy consumption, the comparison analysis for different types of PMs should be presented. Figure 3(a)–(d) shows the comparison of energy consumption for different types of PMs by benchmark, EVS, and FEM. From these figures, we can find that FEM can save more energy than benchmark and EVS. For example, in Figure 3(a), when the type of dominant resource is four, for different scales of datasets, FEM saves more energy than benchmark and EVS.

Comparison of energy consumption for different types of PMs by benchmark, EVS, and FEM: (a) type of dominant resource = 1, (b) type of dominant resource = 2, (c) type of dominant resource = 3, and (d) type of dominant resource = 4.
Performance evaluation w.r.t. resource fairness
The resource fairness is decided by the utilization of the dominant resources and the PM average utilization. We investigate these values by benchmark, EVS, and FEM using six different datasets.
Figure 4 shows the comparison of average utilization of the dominant resource by benchmark, EVS, and FEM. As illustrated in Figure 4, FEM can achieve higher utilization of the dominant resources than benchmark and EVS. Although sometimes EVS can get utilization values similar to FEM, overall FEM is better than EVS.

Comparison of average utilization of dominant resource by benchmark, EVS, and FEM.
Figure 5 shows the comparison of average PM resource utilization by benchmark, EVS, and FEM. As illustrated in Figure 4, FEM can achieve higher PM resource utilization than benchmark and EVS. For example, when the number of servers is 500, the utilization achieved by FEM is nearly 70%, while the utilization values obtained by EVS and benchmark are nearly 30% and 10%, respectively. We can deduce that more non-dominant resources are spared on the PMs when using EVS, compared with FEM.

Comparison of average PM resource utilization by benchmark, EVS, and FEM.
Figure 6 shows the comparison of average fairness value after scheduling by benchmark, EVS, and FEM. From Figure 6, we can find that FEM can achieve higher fairness values compared with EVS and benchmark. For example, when the number of servers is 2000, the fairness value by FEM is about 3, but the fairness generated by EVS and benchmark (about 1.5 and 1, respectively) are much smaller than this value.

Comparison of average fairness value after scheduling by benchmark, EVS, and FEM.
Table 2 shows the improvements of resource fairness with EVS and FEM compared to benchmark. It is intuitive from Figure 6 and Table 2 that our proposed FEM can obtain the best fairness value.
Improvements of resource fairness with EVS and FEM compared to benchmark.
EVS: energy-efficient VM scheduling; FEM: fair energy-efficient VM scheduling method.
Related work
IoT applications have great development in all kinds of circumstances, and the capacity of computing and storage is limited for itself. So it has been deployed to the cloud platform to achieve the demand of the applications. They have been fully investigated in Wang et al., 8 Tomita and Kuribayashi, 9 Khan et al., 3 and Ghodsi et al., 10 to name a few.
Wang et al. 8 proposed an architecture that automates allocation and monitoring, and redistributes both cloud and cellular network resources to achieve economies of scale and automation in management of IoT applications. In order to deploy the smart city applications, Kaur et al. 19 addressed the convergent domain of cloud computing and IoT. Namal et al. 20 came up with an autonomic trust management framework in cloud-based and highly dynamic IoT applications to evaluate the level of trust.
The current researches mainly focus on realizing efficient resource allocation in IoT environments. Angelakis et al. 21 devised two algorithms to get the approximate optimal solution for an IoT device equipped with flexible services. Kim et al. 22 proposed a service resource allocation approach to minimize data transmissions between mobile devices and effectively deal with the constraints in IoT environments. Renner et al. 23 formulated a container-based resource allocation scheme for the IoT to increase the utilization and reduce the amount of generated network traffic.
What is more, there has been much work dealing with the fair resource allocation in cloud environment. Wang and colleagues 13 designed a multi-resource allocation mechanism, which provides many kinds of highly desirable properties. With this allocation mechanism, the authors achieved multi-resource fair allocation in heterogeneous cloud computing systems. Tang et al. 24 proposed a novel fair resource allocation mechanism for data-intensive computing in the cloud, and it successfully overcame the challenge of “big data.” Generally speaking, fairness and energy consumption are of importance to generate IoT applications on cloud platform. Thus, this article proposed the fair energy-efficient resource allocation for IoT applications in cloud environment.
Conclusion
In this article, we propose an FEM for IoT applications in cloud environment, which is based on VM migration technology. It aims to achieve the goal of energy savings and fairness improvement. We analyze the energy consumption and the resource fairness in the cloud environment to formalize our problem. And a corresponding VM scheduling method is designed to solve this problem. The experimental results demonstrate the validity of our method.
Footnotes
Academic Editor: Xuyun Zhang
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This research was partially supported by the National Science Foundation of China under grant nos 41275116 and 61672290. Besides, it has also been supported by the project of “Six Talent Peaks Project in Jiangsu Province” under grant no. XYDXXJS-040.
