Documente Academic
Documente Profesional
Documente Cultură
https://doi.org/10.1007/s12652-018-0914-0
ORIGINAL RESEARCH
Abstract
A decentralized optimization policy for service placement in fog computing is presented. The optimization is addressed to
place most popular services as closer to the users as possible. The experimental validation is done in the iFogSim simula-
tor and by comparing our algorithm with the simulator’s built-in policy. The simulation is characterized by modeling a
microservice-based application for different experiment sizes. Results showed that our decentralized algorithm places most
popular services closer to users, improving network usage and service latency of the most requested applications, at the
expense of a latency increment for the less requested services and a greater number of service migrations.
1 Introduction IoT and cloud generates new problems, as for example the
increase in the service latency that is a critical requirement
The emerging of application development for Internet of for some e-health or gaming IoT applications (Dastjerdi and
Things (IoT) has revitalized the popularity of wearables, Buyya 2016). Fog computing emerged to cover these limi-
logistics, smart cities, or e-health environments (Atzori et al. tations and it opened a broad range of renewed challenges
2010; Li et al. 2015; Ko et al. 2016; Darwish et al. 2017). in topics such as security, reliability, sustainability, scaling,
The number of users in these systems, and their performance IoT marketplaces, or resource management (Varghese and
requirements, is increasing continuously. Those requirement Buyya 2017; Mahmud et al. 2018; Chiang and Zhang 2016).
increments were initially satisfied by integrating IoT and Fog computing exploits resource capacities of networking
cloud architectures (Botta et al. 2016; Diaz et al. 2016). The components to allocate services or to store data. Therefore,
combination of both technologies allows, firstly, IoT appli- firstly, services are closer to the clients and, secondly, data
cations to dispose of unlimited computational and storage do not need to be transfered in its whole to the cloud. Both
capacities, and secondly, to expand the scope of cloud sys- issues have a notable performance impact, reducing the net-
tems by dealing with real-life components (Cavalcante et al. work latency and usage. Resource managers are important
2016; Darwish and Hassanien 2017). But the integration of components to improve this performance.
On the one hand, fog data managers need to deal with the
This research was supported by the Spanish Government selection of the data that is stored in the cloud providers and
(Agencia Estatal de Investigación) and the European Commission which is stored in fog devices. For the latter case, placement
(Fondo Europeo de Desarrollo Regional) through Grant Number policies need to be considered to optimize the use of the
TIN2017-88547-P (MINECO/AEI/FEDER, UE).
storage capacities of the fog layer. On the other hand, fog
* Carlos Guerrero service orchestrators need to decide the allocation of the
carlos.guerrero@uib.es services in the fog devices to improve the Quality of Service
Isaac Lera (QoS) and the usage of the fog layer considering scalability
isaac.lera@uib.es and dynamicity requirements (Wen et al. 2017). They should
Carlos Juiz deal with the placement and scalability of user-shared ser-
cjuiz@uib.es vices by creating, in the fog devices, additional instances of
services already available in the cloud.
1
Computer Science Department, University of Balearic
Islands, Crta. Valldemossa km 7.5, E07122 Palma, Spain
13
Vol.:(0123456789)
C. Guerrero et al.
IoT environments, as for example smart cities, usually defined for environments such as industrial IoT, smart cit-
have thousands, even millions, of devices, clients or ser- ies, eHealth, or mobile micro-cloud.
vices. Centralized management could reach in a non-afforda- The characteristics of the related work have been sum-
ble optimization. Previous solutions to solve the Fog Service marized in Table 1, by indicating the IoT scope for which
Placement Problem (FSPP) are based on centralized solu- the solution was proposed (column Scope), the optimiza-
tions, with the following main drawbacks: (a) scalability, tion purpose (column Objective functions), the elements
as the execution time of a global optimization algorithm that the optimization algorithm manages to improve the
is usually increased as the number of devices to manage is objective functions (column Decision variables), if the
increased; (b) network overhead, as the fog devices need to broker manager is centralized or not (column Broker),
send their performance data to the centralized broker; (c) the optimization algorithm (column Alg.), and the tech-
reliability, as the broker is a single point of failure (SPOF); nique or tool used in the validation (column Val.). The
(d) decision latency, as the decisions need to be transmitted related studies are grouped in terms of their optimization
from the centralized broker to each device; and (e) hetero- algorithms.
geneity, as the central broker needs to deal with data from We explain the related researches grouped by their opti-
very different types of fog devices, and the communication mization algorithms.
protocol or the orchestrating mechanism could be also very Linear programming is a common approach for resource
different. optimization. Arkian et al. (2017) formulated a mixed-
We propose to address the problem of service placement integer non-linear program that was linearized into a mixed
in a decentralized way, where each device takes the local integer linear program for the optimization of cost. Gu et al.
optimization decisions, by considering only its own resource (2017) also used this optimization approach. They integrated
and usage data and consequently, the execution time is inde- medical cyber-physical systems and fog computing and opti-
pendent of the number of devices, the performance data is mized the cost by considering the base station association,
not send between devices, SPOF are avoid, the decision task distribution and virtual machine placement. The work
are taken locally and all the resources and the inputs of the of Velasquez et al. (2017) was addressed to reduce the num-
algorithm are homogeneous inside of the same device. We ber of service migrations and the network latency.
propose to base the decisions of the algorithm in placing the Huang et al. (2014a) presented a quadratic program-
most popular services as closer as possible to the clients, ming formulation for the problem of reducing the power
using the hop distance as the indicator of this proximity. consumption in fog architectures by co-locating neighbor-
We raise two research questions: (RQ1) Is it possible to ing services on the same devices. Huang et al. (2014b) also
define a local and decentralized optimization algorithm that presented a previous work where the problem was modeled
would be able to place the most popular services in the fog as a Maximum Weigthed Independen Set problem (MWIS).
devices with smallest hop distances to the clients?; (RQ2) Souza et al. (2016) studied an allocation algorithm based
Would this placement policy result in an optimization of the on Integer Linear Programming that minimized the service
performance of the fog computing architecture in terms of, latencies in a fog computing environment, while the ful-
for example, service latency or network usage? fillment of capacity requirements were guaranteed. Skarlat
The three main contributions of our work are: (a) an up- et al. (2017b) studied the service placement problem by con-
to-date brief survey of researches addressed to optimize the sidering the QoS requirements of the applications executed
Fog Service Placement Problem (FSPP); (b) a decentralized in a fog architecture. Zeng et al. (2016) proposed to manage
and low overhead proposal to reduce the network usage in a the task scheduling, the task storage placement and the I/O
fog computing architecture; (c) an experimental validation balanced use to reduce the task completion time in software-
based on a microservice-based application. defined embedded systems. Barcelo et al. (2016) formulated
a service placement optimization to reduce power consump-
tion in IoT environments as a minimum mixed-cost flow
2 Related work problem.
A second set of studies were implemented with genetic
Previous fog service management algorithms have algorithms (GA). Wen et al. (2017) presented a parallel GA
explored a wide range of optimization techniques, such to reduce the response time. Skarlat et al. (2017a) introduced
as heuristics, greedy algorithms, linear programming, or the concept of fog colonies for a hierarchical optimization
genetic algorithms, between others. These service man- process. Each colony used a GA to decide the services that
agers have defined several aspects of the fog resources, were placed in the colonies and which ones were propagated
such as placement, scheduling, allocation, provisioning, to neighbor colonies. Yang et al. (2016) compared three opti-
or mapping for services, resources, clients, tasks, virtual mization algorithms based on a greedy heuristic, a linear
machines, or even fog colonies. These solutions have been programming and a GA. Additionally, a model to predict
13
A lightweight decentralized service placement policy for performance optimization in fog…
Table 1 Summary of the brief survey for Fog Service Placement Problem approaches
Authors Scopea Objective functions Decision variables Brokerb Alg.c Val.d
the distribution of user’s future requests was also presented proposal optimized price and time costs to complete a
to adapt the service location. task. Their simulation results showed a higher efficiency
Linear programming and GA are the most popu- than static allocation strategies. Urgaonkar et al. (2015a)
lar solutions, but there are also an important number of addressed the objective of minimizing the operational
related researches exploring other alternatives, such as, costs of service placement in fog, while the performance
Petri nets, Markov decision or new and own algorithms. was guaranteed. They modeled the scenario as a sequential
Ni et al. (2017) proposed to use priced timed Petri nets decision using a Markov Decision Process (MDP), decou-
(PTPNs) for resource allocation in fog computing. Their pling de problem into two independent MDPs and, finally,
13
C. Guerrero et al.
optimizing with the Lyapunov technique. Brogi et al. pre- Taneja and Davy (2017) proposed a service placement
sented the tool FogTorch in two research works (Brogi and algorithm for efficient use of the network and power con-
Forti 2017; Brogi et al. 2017). The first one presented the sumption. The algorithm sequentially assigned the highest
model for the QoS-aware deployment of multicomponent demanding application modules to the nodes with biggest
IoT applications in fog infrastructures. The second one capacities. Wang et al. (2017) proposed, a first optimization
presented the results of using Monte Carlo simulations in stage modeled as linear graphs to be later extended to tree
the FogTorch tool, classifying the deployments in terms application models using algorithms with polynomial-loga-
of QoS and resource consumptions. Do et al. (2015) pro- rithmic ratios. Bittencourt et al. (2017) compared three ser-
posed a decentralized algorithm for resource allocation in vice allocation algorithms to illustrate that these strategies
fog environments for the specific case of video streaming. depend on the demand coming from mobile users and can
Their solution was based on the proximal algorithm and take advantages of fog proximity and cloud elasticity. Farris
alternating direction method of multipliers. The model et al. (2015) proposed that the edge nodes orchestrated the
was validated analytically. Colistra et al. (2014) adapted provisioning of resources in micro-cloud federations using a
the consensus algorithm to allow devices to cooperate in decomposer module. Deng et al. (2015) studied the trade-off
the distributed resource allocation problem to adequately between power consumption and delay in fog computing.
share the resources. Wang et al. (2015) presented a ser- They decomposed the initial allocation problem into three
vice placement algorithm that used predicted costs for subproblems independently solved with convex optimiza-
look-ahead optimizing the total provider cost for a given tion, ILP and Hungarian method. Saurez et al. (2016) pre-
period of time. The authors validated their proposal using sented a service migration algorithm based on the mobility
real-world user-mobility traces in simulations. Urgaonkar pattern of the sensors and the dynamic computational needs
et al. (2015b) also proposed a solution for this last scenario of the applications. The solution was built using contain-
but considering a MDP. Billet and Issarny (2014) formu- ers and the experimental results showed improvements in
lated the task allocation problem in IoT as a binary linear the migration latencies. Venticinque and Amato (2018) pre-
optimization that its computational cost was reduced by sented a methodology based on three phases: Benchmarking,
including a heuristic and a greedy algorithm. Evaluation and Testing. This methodology helps developers
Ni et al. (2017) proposed to use priced timed Petri nets to meet application requirements and to optimize perfor-
(PTPNs) for resource allocation in fog computing. Their mance and utilization of available resources.
proposal optimized price and time costs to complete a task. The developers of the iFogSim simulator implemented
Urgaonkar et al. (2015a) addressed the objective of minimiz- a decentralized service placement policy called Edge-
ing the operational costs of service placement in fog, while wards (Gupta et al. 2017). It placed the services in each
the performance was guaranteed. They modeled the sce- single path between clients and the cloud. The services were
nario as a sequential decision using a Markov Decision Pro- placed in a First-In-First-Allocated policy. Services from
cess (MDP), decoupling the problem into two independent different paths were merged if they were placed in the same
MDPs and, finally, optimizing with the Lyapunov technique. device and migrated to upper devices if necessary. Addition-
Brogi et al. presented the tool FogTorch in two research ally, instances from other paths in upper devices of a candi-
works (Brogi and Forti 2017; Brogi et al. 2017). The first date service were considered and it was placed in the upper
one presented the model for the QoS-aware deployment of device to merge both instances even when closer devices
multicomponent IoT applications in fog infrastructures. The had enough resources. Despite the placement algorithm
second one presented the results of using Monte Carlo simu- was decentralized, it needed some general information of
lations in the FogTorch tool, classifying the deployments the placement status, such as the already placed services for
in terms of QoS and resource consumptions. Colistra et al. each path between the clients and the cloud. Their experi-
(2014) adapted the consensus algorithm to allow devices to ments compared the results with the allocation of all the
cooperate in the distributed resource allocation problem to services in the cloud provider.
adequately share the resources. Wang et al. (2015) presented Most of those previous works were modeled as a central-
a service placement algorithm that used predicted costs for ized broker or orchestrator that needs information from all
look-ahead optimizing the total provider cost for a given the components in the system (fog devices, clients, cloud,
period of time. The authors validated their proposal using services) and takes global decisions to optimize the service
real-world user-mobility traces in simulations. Urgaonkar placement. Problems with the scalability and the computa-
et al. (2015b) also proposed a solution for this last scenario tional complexity of the algorithm are clear when the num-
but considering a MDP. Billet and Issarny (2014) formulated ber of elements is very high such as, for example, in smart
the task allocation problem in IoT as a binary linear optimi- cities. Decentralized service orchestration in fog computing
zation that its computational cost was reduced by including arises as a current open challenge. It is necessary to define
a heuristic and a greedy algorithm. solutions that deal with a smaller number of elements, as in
13
A lightweight decentralized service placement policy for performance optimization in fog…
Fig. 1 Fog computing architecture Fig. 2 Example of network delay benefits for a service migration
scheme within the shortest path
13
C. Guerrero et al.
4 Problem statement
4.1 System model
Fig. 4 Decentralized service placement manager The Fog Service Placement Problem (FSPP) considers a set
of clients Cn that request applications that are hosted in a
which will keep the same application makespan. This strat- cloud provider Dcloud . The applications are modeled as a
egy is reinforced with the idea that once that a service has set of services modules, Sx that are related through a many-
been migrated to an upper devices due to not enough free to-many consumption relationships, cons ∶ {Sx } → {Sx� } ,
resources, the placement of any of the remaining services as the microservice-based application development model
will be also very unlikely in the lower device. defines (Balalaie et al. 2016). This model has been also pro-
We propose to execute a decentralized service broker in posed to deploy applications in fog computing (Vogler et al.
each device to implement our strategy. Figure 4 shows the 2016; Krylovskiy et al. 2015; Saurez et al. 2016). Appli-
components of the device broker: Service Usage Monitor cations are defined as a directed graph, where the nodes
(SUM), gathers information of the services’ performance are the services and the edges indicate the services that are
and resource usage and the information about the services requested by other ones, i.e. their interoperability.
interoperability; Service Migration (SM), sends allocation For an easier explanation of our algorithm in Sect. 4.2,
requests to other devices; Service Placement Request Man- we also consider the transitive closure of a service repre-
ager (SPRM), is the local and decentralized optimization sented as TS+ . In graph theory, the transitive closure of a node
algorithm that decides if a given service is allocated or, on
x
is the set of nodes than can be achieve from that node, i.e.,
the contrary, migrated to other device; and Service Popular-
there is at least one path between both nodes (Munro 1971).
ity Monitor (SPM), gathers information about the request
In our particular case, the transitive closure of a service rep-
rate of each service.
resents all the services that need to be executed when the
When a new client is connected to one leaf device, or
service is requested. Figure 5 shows an example of an appli-
gateway, one Service Allocation Request (SAR) is sent to
cation and each of the transitive closures, TS+ , obtained for
the gateway for each service the client requires. All these x
requests are received by the SPRM and it decides if the ser- each service.
vice is placed in the current device or whether the SAR is The clients request the applications in the cloud pro-
shifted to upper devices, based on the algorithm explained vider through a set of interconnected network devices, Di .
13
A lightweight decentralized service placement policy for performance optimization in fog…
are able to allocate service modules to reduce the network special device where resources are unlimited as they can be
latency or hop distance between clients and services. The scaled horizontally as much as it is necessary. The cloud
physical interconnections of the devices create a graph struc- resource capacity is defined as Rcloud = ⟨∞⟩ . The total
ture where the nodes are the devices and the edges are the resource usage of a device, RuD , can be consequently calcu-
i
direct network links between devices. lated as the sum of the resource consumptions of all its allo-
For a clearer explanation of the algorithm in Sect. 4.2, we cated services multiplied by the request rate of each
also defined SPcloud
S
as the shortest path between a device and services:
x
cloud provider. Additionally, we defined the father of a Table 2 summarizes the list of the variables defined in the
device, father(D1 ) , as the first device in the shortest path to system model, that are used in the following sections of the
the cloud provider. article.
Several instances, Sx , of the same service, Sx , can be
y
13
C. Guerrero et al.
Algorithm 1 shows the pseudo code of our optimization following service subsets: 𝕄Di = { {S1 , S2 , S5 , S6 }, {S2 , S6 },
policy. The SAR is only considered when the candidate ser- {S5 , S6 }, {S6 } }.
vice is not already allocated in the device (Line 1). The ser- Our proposal migrates the candidates by ascending order
vice is directly allocated when the device is the cloud provider of the request rates. This is done in line 19 of Algorithm 1,
(Line 3) or it has enough free resources (Line 6). Additionally, where , Mmin , is the services’ subset in 𝕄Di with the smallest
the service allocation can be done only if the total capacity of request rate, and ΛMmin this smallest request rate. Thus, the
the device is enough to satisfy the requirements of the service sets in 𝕄Di are sequentially selected and deallocated from
(Line 10), on the contrary, the SAR is shifted to the upper the less requested one to the most popular, until the freed
father device (Line 12). resources are enough to allocate the candidate service in
If those previous conditions are met, it is necessary to the device (Line 19) or until the remaining candidates have
deallocate other services from the device. Since our policy higher request rates (Line 28).
migrates all the interoperated services, instead of a sin- The deallocation is not done straightforward, because
gle service, the set of candidates for the migration, 𝕄Di , is the algorithm needs to guarantee that the sets of services
formed by all the possible subsets of interoperated services with lower rates release enough resources to satisfy the
that are currently allocated in the device. Each subset of this requirements of the candidate service. Thus, a list of pre-
candidates’ set is obtained from the intersection between the released services, 𝕄deallocate , is created (Line 22) and they
services allocated in the device and each of their transitive are finally deallocated only if the freed resources are enough
closures: (Lines 29–31).
The request rate of a services’ subset, ΛMSx , is calculated
Di
{ }
just by the summation of the single request rates, for that fog
D
𝕄Di = MS i , ∀ Sx ∈ alloc(Di ) ,
x
(3)
device, of each service in the MS i:
D
where
x
{ } D
∀ Sx ∈ MS i
D
MS i = alloc(Di ) ∩ TS+ . (4) D
MS i
∑ x
D (5)
x x Λ x = 𝜆S i
x
13
A lightweight decentralized service placement policy for performance optimization in fog…
13
C. Guerrero et al.
13
A lightweight decentralized service placement policy for performance optimization in fog…
(a) (b)
(c) (d)
where TDlat,D ′ is the network latency between the devices that variations in the number of levels of fog devices between
the users and the cloud provider to evaluate the influence of
i i
13
C. Guerrero et al.
(a) (b)
(c) (d)
(a) (b)
(c) (d)
Fig. 9 Results for service latency for the service loop edge, frontend, orders, accounts of the applications with the highest and the lowest request
rates
13
A lightweight decentralized service placement policy for performance optimization in fog…
(a) (b)
(c) (d)
Figure 10 represents the total number of migrations per- services and consequently a migration consist on removing
formed during the service placement process. It is important the current service instance and downloading a new instance
to remember that the applications are defined as stateless from the cloud to the new device.
13
C. Guerrero et al.
Fig. 12 Number of services
in the devices with regard to
their topology distribution.
Experiment with 2 applications,
2 users, and 2 levels of fog
devices
The last set of figures (Figs. 11, 12, 13) represent the rate), the number of services in a device and the CPU usage.
relationship of the distance between the IoT devices and the Those distributions are represented in one independent plot
service placement distribution, measured in terms of the hop for each experiment size. Consequently, they are grouped in
count, in regard with the popularity of the services (request sets of five plots, one for each single size of a variation set.
13
A lightweight decentralized service placement policy for performance optimization in fog…
Thus, there are four sets of five plots of figures for each of between 23 and 362%, with an mean value of 114%. Sec-
the three cases (request rate, number of services, and CPU ondly, the analysis of the service latency is separately done
usage). We present only some representative cases of those for the case of the applications with the highest and the
plots, particularly, we include the cases for the children lowest request rates. In general terms, our policy shows an
variations. improvement of the service latency for the application with
Figure 11 shows the CPU usage of the devices by clas- the highest rate, at the expense of degradation for the appli-
sifying the devices by their distance from the IoT devices cation with the lowest request rate in some experiments.
(sensors). The distance is measured in terms of hop count The benefit of our policy for the application with the
(x-axis) and the CPU usage is the rate between consumed highest request rate is observed in Fig. 9 where the series
and total resources (y-axis). Each point of the plot represents Pop (highest) are the ones with the smallest values. Our pol-
a device with its corresponding usage value. The number of icy’s improvement is measured in a speedup around 300 and
each point indicates the total number of samples (devices) 500%, obtaining even an speedup of 1300% for the second
with the same hop count and CPU usage. The figure includes last case of the number of users variations.
the results for the experiment with a size of 2 applications, The degradation of our policy for the less requested
2 users per IoT gateway, 2 fog devices levels and a range of application is observed, mainly, for the experiments where
1–5 children devices per device. the number of applications is increased, i.e. the cases with
Figure 12 is very similar to the previous one, with the higher workload in the system. On the contrary, our policy
only difference that it represents the number of services allo- is better even for the low requested services when the work-
cated in the devices instead of the CPU usage. load of the system is low. This is expected since the more
Finally, Fig. 13 represents how the services are distrib- application replicas, the more devices allocating services,
uted across the devices in the topology (classified by the and consequently, the less requested applications are much
hop count with the user) with regard to their request rate further from the clients, and their latencies are increased.
(y-axis). The request rate is measured in terms of frequency Edgeward policy shows improvements ranging from 60 to
(the inverse of the time unit). Consequently, each point of 250% for this second type of applications in the high work-
the plot represent a service with its allocation in the topol- load experiments.
ogy (the hop count of the device where it is allocated) and From the analysis of the number of migrations required
its request rate. for the deployment of the services (Fig. 10), it is observed
that our solution clearly needs a higher number of migra-
tions (or service deployments from the cloud provider). This
7 Discussion generates a higher network usage due to the download of the
services from the cloud provider. It is important to highlight
We use the weighted average hop count as an indicator of that this process is just performed during the deployment
the proximity between the clients and the most popular ser- of the application. This migration cost is made up with the
vices. On the contrary, the arithmetic average hop count is benefits of our service distribution, except for the cases with
an indicator of the proximity between all the services and high rates of application deployments.
the clients, independently of their request ratios. Therefore, It is important to highlight that the number of devices
the first research question (RQ1) is answered by the analysis does not influence in the latency neither the hop count in
of the series labeled as weighted in Fig. 7. This metric is, in the experiments for the variation in the number of levels
general terms, smaller for the case of our policy than for the or children. This is explained because all the service place-
Edgewards, obtaining an overall improvement of the 12%. ments are done in devices in the lowest levels, and devices
There are only two cases in which the Edgewards policy from upper levels are not necessary and, consequently,
shows smaller values (2 users, 3 levels and 2 applications). the service latency is constant as the number of devices
On the contrary, Edgewards policy shows smaller values for is increased. This is also validated with the results of, for
the arithmetic average hop count. It means that our policy example, Fig. 12, where the number of allocated services is
obtains better proximity for the most requested services, at 0 for the devices with a hop count higher than 2. On the con-
the expense of increasing the overall distance of the ser- trary, the network usage is influenced because the number of
vices. We finally observe that cases with only 1 user can connections between the devices is varied, and this metric is
be managed by placing all the services in the leaf devices influenced by the number of those connections.
(gateways), since the hop count value is 1.0. Figure 12 also shows us that our policy migrates more
The second research question (RQ2) is answered by the services to upper devices, than the Edgewards algorithm.
analysis of results in Figs. 8 and 9. Firstly, our policy’s This is because we do not migrate only one service but also
network usage is always smaller than the Edgewards. The all the consumed services ( MS i ) to avoid device loops in the
D
x
improvement in this metric is measured with an speedup
13
C. Guerrero et al.
13
A lightweight decentralized service placement policy for performance optimization in fog…
Deng R, Lu R, Lai C, Luan TH (2015) Towards power consumption- Saurez E, Hong K, Lillethun D, Ramachandran U, Ottenwälder B
delay tradeoff by workload allocation in cloud-fog computing. In: (2016) Incremental deployment and migration of geo-distributed
2015 IEEE International Conference on Communications (ICC), situation awareness applications in the fog. In: Proceedings of
pp 3909–3914. https://doi.org/10.1109/ICC.2015.7248934 the 10th ACM International Conference on Distributed and
Diaz M, Martin C, Rubio B (2016) State-of-the-art, challenges, and Event-based Systems, DEBS ’16. ACM, New York, pp 258–
open issues in the integration of internet of things and cloud com- 269. https://doi.org/10.1145/2933267.2933317. http://doi.acm.
puting. J Netw Comput Appl 67(Supplement C):99 – 117. https org/10.1145/2933267.2933317
://doi.org/10.1016/j.jnca.2016.01.010. http://www.sciencedirect. Skarlat O, Nardelli M, Schulte S, Borkowski M, Leitner P (2017a)
com/science/article/pii/S108480451600028X Optimized IoT service placement in the fog. Serv Oriented Com-
Do CT, Tran NH, Pham C, Alam MGR, Son JH, Hong CS (2015) put Appl. https://doi.org/10.1007/s11761-017-0219-8
A proximal algorithm for joint resource allocation and minimiz- Skarlat O, Nardelli M, Schulte S, Dustdar S (2017b) Towards qos-
ing carbon footprint in geo-distributed fog computing. In: 2015 aware fog service placement. In: 2017 IEEE 1st International Con-
International Conference on Information Networking (ICOIN), pp ference on Fog and Edge Computing (ICFEC), pp 89–96. https://
324–329. https://doi.org/10.1109/ICOIN.2015.7057905 doi.org/10.1109/ICFEC.2017.12
Farris I, Militano L, Nitti M, Atzori L, Iera A (2015) Federated edge- Souza VBC, Ramrez W, Masip-Bruin X, Marn-Tordera E, Ren G,
assisted mobile clouds for service provisioning in heterogeneous Tashakor G (2016) Handling service allocation in combined
iot environments. In: 2015 IEEE 2nd World Forum on Internet fog-cloud scenarios. In: 2016 IEEE International Conference
of Things (WF-IoT), pp 591–596. https://doi.org/10.1109/WF- on Communications (ICC), pp 1–5. https://doi.org/10.1109/
IoT.2015.7389120 ICC.2016.7511465
Gu L, Zeng D, Guo S, Barnawi A, Xiang Y (2017) Cost efficient Taneja M, Davy A (2017) Resource aware placement of IoT application
resource management in fog computing supported medical cyber- modules in fog-cloud computing paradigm. In: 2017 IFIP/IEEE
physical system. IEEE Trans Emerg Topics Comput 5(1):108– Symposium on Integrated Network and Service Management
119. https://doi.org/10.1109/TETC.2015.2508382 (IM), pp 1222–1228. https: //doi.org/10.23919/ INM.2017.798746 4
Guerrero C, Lera I, Juiz C (2013) Performance improvement of Urgaonkar R, Wang S, He T, Zafer M, Chan K, Leung KK (2015a)
web caching in web 2.0 via knowledge discovery. J Syst Softw Dynamic service migration and workload scheduling in edge-
86(12):2970–2980. https://doi.org/10.1016/j.jss.2013.04.060. clouds. Perform Eval 91(Supplement C):205–228. https://doi.
http://www.sciencedirect.com/science/article/pii/S016412121 org/10.1016/j.peva.2015.06.013. http://www.sciencedirect.com/
3001209 science/article/pii/S0166531615000619 (special Issue: Perfor-
Guerrero C, Lera I, Juiz C (2017) Genetic algorithm for multi-objective mance 2015)
optimization of container allocation in cloud architecture. J Grid Urgaonkar R, Wang S, He T, Zafer M, Chan K, Leung KK (2015b)
Comput. https://doi.org/10.1007/s10723-017-9419-x. Dynamic service migration and workload scheduling in edge-
Gupta H, Vahid Dastjerdi A, Ghosh SK, Buyya R (2017) ifogsim: clouds. Perform Eval 91(C):205–228. https://doi.org/10.1016/j.
a toolkit for modeling and simulation of resource management peva.2015.06.013
techniques in the internet of things, edge and fog computing Vakali A, Pallis G (2003) Content delivery networks: status and
environments. Softw Pract Exper 47(9):1275–1296. https://doi. trends. IEEE Int Comput 7(6):68–74. https://doi.org/10.1109/
org/10.1002/spe.2509. MIC.2003.1250586
Huang Z, Lin KJ, Yu SY, Hsu JY (2014a) Co-locating services in iot Varghese B, Buyya R (2017) Next generation cloud computing: new
systems to minimize the communication energy cost. J Innov Digit trends and research directions. Future Gener Comput Syst. https
Ecosyst 1(1):47–57. https://doi.org/10.1016/j.jides.2015.02.005. ://doi.org/10.1016/j.future .2017.09.020. http://www.scienc edire ct.
http://www.sciencedirect.com/science/article/pii/S235266451 com/science/article/pii/S0167739X17302224
5000061 Velasquez K, Abreu DP, Curado M, Monteiro E (2017) Service place-
Huang Z, Lin KJ, Yu SY, Hsu JY (2014b) Building energy efficient ment for latency reduction in the internet of things. Ann Telecom-
internet of things by co-locating services to minimize commu- mun 72(1):105–115. https://doi.org/10.1007/s12243-016-0524-9
nication. In: Proceedings of the 6th International Conference on Venticinque S, Amato A (2018) A methodology for deployment of iot
Management of Emergent Digital EcoSystems, MEDES ’14, vol application in fog. J Ambient Intell Human Comput. https://doi.
18. ACM, New York, pp 101–108. https://doi.org/10.1145/26682 org/10.1007/s12652-018-0785-4
60.2668270 Vogler M, Schleicher JM, Inzinger C, Dustdar S (2016) A scalable
Ko IY, Ko HG, Molina AJ, Kwon JH (2016) Soiot: Toward a user- framework for provisioning large-scale iot deployments. ACM
centric iot-based service framework. ACM Trans Internet Technol Trans Internet Technol 16(2):11. https://doi.org/10.1145/28504
16(2):8. https://doi.org/10.1145/2835492 16. http://doi.acm.org/10.1145/2850416
Krylovskiy A, Jahn M, Patti E (2015) Designing a smart city internet Wang S, Urgaonkar R, Chan K, He T, Zafer M, Leung KK (2015)
of things platform with microservice architecture. In: 2015 3rd Dynamic service placement for mobile micro-clouds with pre-
International Conference on Future Internet of Things and Cloud, dicted future costs. In: 2015 IEEE International Conference on
pp 25–30. https://doi.org/10.1109/FiCloud.2015.55 Communications (ICC), pp 5504–5510. https://doi.org/10.1109/
Li S, Xu LD, Zhao S (2015) The internet of things: a survey. Inf Syst ICC.2015.7249199
Front 17(2):243–259 Wang S, Zafer M, Leung KK (2017) Online placement of multi-compo-
Mahmud R, Kotagiri R, Buyya R (2018) Fog computing: a taxonomy, nent applications in edge computing environments. IEEE Access
survey and future directions. Springer, Singapore, pp 103–130 5:2514–2533. https://doi.org/10.1109/ACCESS.2017.2665971
Munro I (1971) Efficient determination of the transitive closure Weaveworks, ContainerSolutions (2016) Socks shop—a microservices
of a directed graph. Inf Process Lett 1(2):56–58. https://doi. demo application. https://microservices-demo.github.io/
org/10.1016/0020-0190(71)90006-8. http://www.sciencedirect. Wen Z, Yang R, Garraghan P, Lin T, Xu J, Rovatsos M (2017) Fog
com/science/article/pii/0020019071900068 orchestration for internet of things services. IEEE Internet Com-
Ni L, Zhang J, Jiang C, Yan C, Yu K (2017) Resource allocation strat- put 21(2):16–24. https://doi.org/10.1109/MIC.2017.36
egy in fog computing based on priced timed petri nets. IEEE
Internet Things J 4(5):1216–1228. https : //doi.org/10.1109/
JIOT.2017.2709814
13
C. Guerrero et al.
Yang L, Cao J, Liang G, Han X (2016) Cost aware service placement software-defined embedded system. IEEE Trans Comput
and load dispatching in mobile cloud systems. IEEE Trans Com- 65(12):3702–3712. https://doi.org/10.1109/TC.2016.2536019
put 65(5):1440–1452. https://doi.org/10.1109/TC.2015.2435781
Zeng D, Gu L, Guo S, Cheng Z, Yu S (2016) Joint optimization of Publisher’s Note Springer Nature remains neutral with regard to
task scheduling and image placement in fog computing supported jurisdictional claims in published maps and institutional affiliations.
13