Abstract
Internet of Things (IoT) as a novel paradigm is an environment with a vast number of connected things and applications. The IoT devices are used to generate data, which transforms into useable information and provides applied resources to end-users and this process is the main goal of IoT. Therefore, one of the important subjects in the IoT is resource allocation which aims is load balancing and minimizing operational cost, and power consuming. In addition, the resources should be allocated in such a way to be a balanced efficiency that can increase the system performance, Quality of Service (QoS) and Service Level Agreement (SLA). Although the resource allocation is very important in the IoT, there is no systematic review in this field. Therefore, in this paper, a Systematic Literature Review (SLR) is provided and the resources allocation methods in the IoT and used algorithms are investigated. Different classification, including cost-aware, context-aware, efficiency-aware, load-balancing-aware, power-aware, QoS-aware, SLA-based and utilization-aware resource allocation mechanisms are organized to investigate the resource allocation techniques. We present several parameters and describe them in each category. In addition, the used parameters in different articles are evaluated and the major developments in each category are surveyed and are outlined the new challenges. Furthermore, an SLR is provided in each of these eight categories. In this paper, a structure of different technical keys in the scope of resource allocation in the IoT and its platforms are presented and the important areas for improving the resource allocation methods in the future is highlighted and the open issues about resource allocation in IoT to achieve a better utilization of this technology are focused. The future direction is useful for academic researchers that work on IoT. This study shows that an independent technique does not exist to address all issues and challenges in resource allocation for IoT.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
1 Introduction
Internet of Things (IoT) as a new paradigm uses the wireless/wired technologies to connect the variety of things or objects to the Internet [1,2,3,4]. The popularity of the IoT was created through the automated identification center at the Massachusetts Institute of Technology (MIT). Intelligent software agents, human beings, virtual data, and real-world objects are called ‘things’ in the network infrastructure. The networked autonomous actors share the basic information with others in real time [5,6,7]. It allows each network to connect objects to the global network and makes us realize that the Internet is expanding in the real world and covering all objects [8]. A node on the edge of a cyber-physical ecosystem is used to observe each IoT device. To achieve the goal, it makes its resources accessible by cooperating dynamically. The important aim is to perform one or more tasks assigned to the network [9].
The IoT becomes a specific ecosystem by sensors with small sizes and data center nodes. The IoT devices can monitor the environment with high dynamic performance and the data with a specific nature. A heterogeneous network considers the resource management as its important feature. The allocation and scheduling decisions are the key issues in resource management [10, 11]. The high efficiency of the network, as well as its maintenance, is ensured as a cost–benefit network. The resource allocation is an important issue because of the fairness in resource allocation that ensures the Quality of Service (QoS) standards. In this regard, different data streams are separated and different denial-of-service attacks are disputed to ensure a high standard of security, which is obtained by resource allocation. The available resources are considered as an exchangeable energy, processing power, and storage capabilities. This network has progressed in performance by allocating these IoT resources efficiently. The IoT has distributed and heterogeneous nature, therefore, its optimal resource allocation is not negligible [9, 12, 13]. However, there are many new challenges for resource allocation in the IoT, which needs new solutions. Resource discovery and monitoring play an important role in supporting the resource allocation.
Since resource allocation plays an important role in the IoT, this paper focuses on this problem from a broad perspective. The resource allocation in the IoT is the main challenge in which the users’ requirements are accommodated. There are many new challenges to resource allocation for IoT, in which the researchers should try more on resource allocation. The resource allocation in IoT is very important, but a systematic review of resource allocation techniques in the IoT is not done comprehensively. Therefore, the available resource allocation techniques in the IoT should be discussed systematically. The following issues are discussed in the rest of the paper:
-
An overview of the existing papers that discuss issues and challenges of resource allocation in the IoT.
-
A systematic study of the existing algorithms and other actions that are needed for allocating the resources in the IoT by emphasizing on their strengths and weaknesses.
-
Presenting a structure of different technical keys in the scope of resource allocation in the IoT and its platforms.
-
Highlighting the important areas for improving the resource allocation methods in the future.
After the introduction, the basic concepts and related terminologies about IoT such as architecture, elements, means, etc. are provided in Sect. 2. The related work, research method, and paper selection methodology are provided in Sects. 3 and 4, respectively. The selected resource allocation mechanisms are classified into eight main categories as described in Sect. 5. The reviewed mechanisms are compared together and are classified as shown in Sect. 6. The undeveloped issues and future developments are discussed in Sect. 7. The limitations and the conclusion of the article are discussed in Sect. 8. In addition, the existing abbreviations in the paper are shown in Table 1.
2 Background and basic concepts in IoT
Some basic definitions and fundamental concepts consist of different architectures; platforms, elements and the key requirement that are relevant to the IoT introduced in this section.
2.1 Proposed IoT architectures
The IoT through the internet interconnects many heterogeneous objects, so, a flexible architecture is required. Although the number of proposed architectures is increasing, they are not yet connected to a reference model [14]. The basic 3-layer model includes the application layers consist of the business application, a network layer for connectivity and sensing layer consist of physical sensors and controllers [3, 15, 16]. The authors of [3] have illustrated some common architectures. The 5-layer model has been widely used in many kinds of literature. Object layer or perception layer consists of physical and smart devices such as sensors, actuators, etc. Radio Frequency Identification (RFID), Global System for Mobile communications (GSM), Third Generation (3G) of wireless mobile telecommunications technology, Wireless Fidelity (Wi-Fi), Universal Mobile Telecommunications System (UMTS), infrared and etc. are considered as different technologies that are used to transfer the produced data in the object layer to the upper layer. A service is paired with its requester in the service management layer based on addresses and names. The smart devices with high qualities are prepared in the requested services by customers in the application layer. The detection requirements of customers are done in several markets such as healthcare, building, and smart home. The business or management layer is a place to manage all IoT activities and four underlying layers. The comparison of the expected output with the output of each layer will help to improve the privacy of the services and the users. The proposed IoT architectures have been illustrated in [17] as shown in Fig. 1.
The IoT includes the physical sensors and actuators, which are referred to the perception layer. The produced data in this layer is passed to the middleware layer by a network layer. The secure channels for moving data use some technologies such as RFID, Wireless Sensor Network (WSN), Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), and Long Term Evolution (LTE). Furthermore, the middleware layer tries to combine a service with its requester. The application layer provides the requested services for customers. The activities and services of IoT systems are managed to generate a business model and flowcharts, which are done on the business layer [17].
2.2 IoT platform
Sensors are one of IoT devices in the sensing layer for collecting data but the computing and energy resources have been limited through these sensors. The transformation process (changing data to valuable services or information) required by IoT applications are performed by some powerful devices [19]. The devices and users are connected by middleware infrastructure, which is called an IoT platform. Supporting data privacy and security, sharing heterogeneous devices, and supporting the Application Programming Interface (APIs) are the main features of the IoT platform.
The local and cloud-based platforms are two divisions of generally used platforms in the IoT [17]. In the local platform, the user and smart objects can connect locally to the server, but the users and smart objects in cloud platforms can connect to the cloud via the internet.
Two types of cloud models are cloud service and cloud deployment. Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and Software as a Service (SaaS) are three platforms of cloud service model [20]. The cloud deployment models have been identified in [21] as follows:
-
A private cloud is provisioned for use by an organization and is managed by the organization itself;
-
A community cloud is provisioned for use by a particular community of consumers that have the same concerns;
-
Public cloud is provisioned for public use;
-
Hybrid cloud includes two or more different cloud infrastructures;
-
Virtual private cloud uses a Virtual Private Network (VPN) technologies for allowing the business owners to setup the required network settings [21]. Indeed, the capacity for processing in the VPN has a very large capacity for processing and it can store things for a long time [11].
2.3 IoT elements
The IoT ecosystem is developed by understanding the main components of the IoT and their related standards and technologies. Identification, sensing, communication, computing, services, and semantics elements are required to present the functionality of the IoT as shown in Fig. 2 [3].
-
Communication is the basic part of IoT devices. The protocols such as General Packet Radio Service (GPRS), 3G, fourth Generation (4G) and fifth Generation (5G) of wireless mobile telecommunications technology, Third Generation Partnership Project (3GPP), LTE, Wi-Fi, and the IEEE 802.15.4e standard are good examples for communication in the IoT.
-
Computation part is very essential in the IoT because of providing real-time data processing and storing. An important platform in the IoT is cloud computing.
-
Identification is very important for matching services with the objects demands; it refers to the addressing methods such as IPv4, IPv6, etc. for network communication.
-
Semantic in the IoT is able to extract knowledge from machines.
-
Services should be matched with their demands by ensuring the identification of objects.
Sensing in the IoT refers to data collection and sending them locally or remotely to a database or to the cloud. The actuators, wearable sensors, and smart sensors are three classifications of sensors [17].
2.4 Fog computing in IoT
A new paradigm that is recently promoted by Cisco is fog computing known as edge computing that connects edge layer to cloud resources and extends the cloud services to the edge of the network [18, 22, 23]. Fog computing can satisfy low latency, improves QoS, support mobility for IoT applications and provide locational awareness. The location-awareness feature of fog can address mobility and security for IoT applications [18]. In addition, spreading the cloud services to the network’s edge nodes, can reduce data processing time and network traffic overhead and lead to a reduction in energy consumption [23, 24]. The closeness of fog computing to the end nodes is more than the cloud data-centers. The fog computing is offering the services by delivering better delay performance [3, 18, 25].
One new paradigm in the edge layer is wireless Fog-Caching that attracts more attention because of its intrinsic feature of reducing both content acquisition latency. Its aim is to avoid the resource-wasteful content duplication by locally caching the most popular data at the proximate serving Fog nodes [25, 26].
The IoT designers consider fog computing as an optimal choice because of the key features of fog computing such as location, scalability, and distribution, the density of devices, mobility support, standardization, and real-time capabilities. Delivering IoT services to end nodes is the important role of fog computing as is shown in Fig. 3 [27], but the resource estimation in fog is a challenge, therefore, a smart management is needed to direct the interaction of IoT smart objects, fog gateways, cloud nodes, and other elements [28].
2.5 Key requirements of IoT
The IoT paradigm has its own concepts and characteristics. Some of the important concepts are introduced in this section. At first glance, the IoT is a type of large-scale distributed system in which the components are highly heterogeneous compared to hardware, software and dynamic performance of their context [19]. The entity in the IoT is an object, a place, or person that defines communication between an application and a user. In addition, context is the situation of an entity, which is characterized using a type of information. Any object that can be allocated in a system is called a resource. The physical or virtual resources are presented by IoT infrastructure to be used by consumers. The specific tasks required by the application are completed through the IoT resources. The allocation of the required (virtual or physical) resources is used to accommodate the system that is the main goal of resource allocation. The tiers in the IoT system are classified into things, edge, and cloud as illustrated in Fig. 3. The allocating resources in the IoT consist of four steps, the first step selects the tier that should be used in the system. The second step is a task-mapping process in which the given task will be assigned to the selected node. The third step is the scheduling of computational tasks. Finally, the communication among the entities for the performance of tasks should be programmed on available communication channels. The providers and the clients require tasks to be programmed and scheduled in an efficient and cost-effective way (end users and applications) [19, 29].
The system stability and resources usage should be at the same level to optimize the resources allocation in the IoT [30]. One of the challenges in resource allocation is QoS limitations. The IoT system must guaranty the QoS and maximize the provider’s profit. Another resource allocation challenge is to provide a Service Level Agreement (SLA) established with a user. The SLA is a contract that identifies the QoS between a provider and a user [31]. The context awareness and heterogeneity are some important factors and preparing the dynamic application must be considered in the IoT system. Another major requirement of the IoT is opportunistic interactions. Having real-time processing capability and application priority to guarantee its requirements are vital parameters for IoT [19].
3 Related work
The resource allocation has been studied in some surveys and review papers related to cloud computing, healthcare, sensor networks, and other areas. There is only one survey paper that refers directly to the resource allocation problem in the IoT. In this section, we study some reviews and survey papers that work in the field of resource allocation to highlight the need for reviewing the resource allocation mechanisms in the IoT.
One of the most important surveys is carried out in [19]. In this literature review, the IoT resource allocation challenges are discussed from the architectural point of view. They have grouped works according to the number of tiers involved in resource allocation. The research that is discussed in this survey is classified in three categories: First, the works that focus on the cloud, then, the papers that distribute the workload between the IoT devices and the cloud, at last, the proposals that main factors are the IoT devices in the resource allocation. The architectures and infrastructures that support all the activities involved in such a process of resource management have more attention in the literature review. However, the papers that have worked on algorithmic optimization procedures for allocating resources in the IoT do not get much attention. Some works that address the resource allocation and scheduling issues in the IoT have not considered in this survey.
One of the survey papers that have reviewed different aspects of IoT technologies is [32]. In this paper, the existing published works in the IoT have been reviewed. The authors investigate the relationship between IoT and fog/edge computing and resource allocation issues in fog based IoT. The challenges of resources allocation in fog/edge computing-based IoT is divided as follows:
The first challenge is an allocation of resources between consisting nodes in fog computing. All nodes in the fog can be connected with each other; it means that they can send some requested services with low priority level to their neighbours, which have spare the resources to be processed. In the fog computing, fog node neither care about which resource-node helps it to provide the computing services nor about data from which that it processes, only achieving to the minimum cost (minimum delay, etc.). Based on the presented formulas in this paper, the fog node with the least cost can be realized in this infrastructure.
The second challenge that is addressed in [32] is resource allocation between fog/edge node and end-devices. Because of the limitation of the fog/edge node in computing and storing resources, providing the requested services by end-users is hard. To address this issue, a satisfaction function for each end-user is considered to evaluate the allocated resources for providing the requested service. Unfortunately, there is not an implementation in [32]. In addition, different aspects of IoT, including architecture, enabling technologies, security, and privacy are surveyed, but the authors did not pay attention to allocation resources in the IoT.
Briefly, some weaknesses of these articles have been listed as follows:
-
1.
The articles do not contain the newly proposed mechanisms.
-
2.
The method of article selection is not clear.
-
3.
Some selected articles do not highlight the motivating factors of IoT as same as QoS, SLA, and workload and so on for reviewing their proposed methods.
-
4.
The resource allocation methods do not implicate in some papers, and few researchers have not shown the survey results of different methods for solving the resource allocation problem.
-
5.
Many of these articles do not pay attention to optimize the procedures and algorithms for resource allocation.
A systematic review is prepared due to the mentioned reasons. All of these limitations are addressed in this review.
4 Research methodology
In this section, a complete and systematic study of resource allocation mechanism is performed using SLR that is focused on related researches to the IoT. The studies in the field of medicine create the SLR. Moreover, engineering and social science are the appropriate areas for using this methodological method [33, 34]. A systematic review uses a rigorous, replicable, scientific and transparent process compared to the traditional narrative review [35, 36]. The SLR provides a complete and exhaustive summary of related articles in the research domain and describes the findings of the collection of research studies [33, 37]. According to [38], the Research Questions (RQs) are included in the research methodology for a systematic review which are answered in the study. Different methods are used to search some research works such as the chosen digital libraries and search strings. The systematic reviews address these researches [39].
In the rest of this section, we have formalized the RQs about resource allocation in the IoT. The questions are identified and we describe the articles selection process and their classification. A complete search of the literature for relevant existing papers have been carried out to conduct a systematic review. In addition, the search process is continued by using a search engine for searching in online scientific databases.
4.1 Question formalization
Investigating and gathering all of the effective and trustworthy articles that have studied the resource allocation problem in the IoT is the main goal of a systematic review. The following RQs are used to address the key challenges of resource allocation:
RQ1 Why resource allocation is important in the IoT? How is resource allocation beneficial for the IoT?
Answer: The benefits and importance of resource allocation are discussed in Sect. 1.
RQ2 How is the strategy of searching and selecting articles?
Answer: The article selection strategy will be identified in Sect. 4.2.
RQ3 What are the classification of research methods and their examples?
Answer The answers to these questions are in Sect. 5.
RQ4 What are the existing algorithms, policies, and strategies for realizing the resource allocation in the IoT?
Answer Many techniques are considered in Sect. 5 to perform the resource allocation in the IoT with a full comparison, and categorization of available techniques.
RQ5 Which parameters must be considered during the resource allocation in the IoT? How can we achieve optimum resource allocation via available algorithms, strategies, and parameters?
Answer These questions will be answered in Sect. 6.
RQ7 Which issues for allocating resources in the IoT remain unaddressed?
Answer The open issues in Sect. 7 discuss the research gaps in this field.
4.2 Article selection process
The following four steps are included in the article selection strategy [37, 40]
Step 1 Automatic search based on the keyword by an electronic search using online scientific databases.
For defining the keywords and associating them, we have utilized the Boolean ‘OR’ and ‘AND’, then the automated search has done based on keywords. We have limited our search to terms that only appear in the title of the article using “Allintitle” phrase in google scholar. The following definition is for search statement by adding alternative spellings and synonyms of the main keywords:
(“IoT” AND “resource” AND “allocation”) OR (“internet of things” AND “resource” AND “allocation”)
Google scholar is used as a search engine to find the relevant articles. For a search query, different journals, conference papers, and books are searched and finally, 143 articles are selected.
Step 2 The article selection based on the title, abstract, conclusion, and quality of the publisher.
This review includes the articles and high-quality publications which are shown by selecting some certain practical screening criteria [37]. The researches in journal articles have limited the search field because they have provided the validated empirical results. All types of article, which are written in English, are considered. The revolution editorial note commentary, working papers, and book review articles are excluded during this stage; then 111 articles remain as shown in Fig. 4. The highest percentage of articles related to journals is 62%, 31% of research are surveyed, and eight books are found that consist of 7% of these articles.
Step 3 Articles analysis
The main goal of this step is to focus on high-quality publications. The articles are considered in the SLR that have had at least one of the following criteria:
-
The articles directly present the resource allocation method in the IoT.
-
The articles related to resource management in the IoT have investigated the resource allocation, too.
The studies considering at least one of the following criteria are excluded:
-
Working papers, revolution editorial note commentary, books, and review articles.
-
Papers that are not focused on the resource allocation in the IoT.
-
Papers that present other concepts of resource in the IoT ecosystem such as resource mapping, resource estimation, etc.
After applying these filters, we have selected the publications that have relevant features and the irrelevant articles, books, surveys, and SLRs are removed as well. Finally, based on inclusion criteria, 69 articles are selected, which are shown in Fig. 5. In addition, it illustrates the number of published journal articles based on the publication years. Fig 5 shows all publications that are published after 2009. Because of the novelty of this topic, we include all articles that are related to the research domain in 2009. The article selection flowchart is shown in Fig. 6.
Step 4 Final assessment
In this step, all parts of the selected articles in stage 3 are studied and the appropriate papers are selected for review. At first, the proposed method in the selected article must have been explained obviously and clearly. Secondly, the research aims and important features such as QoS and SLA parameters have been determined. Thirdly, it must contain a clear research methodology and define the objective function clearly in heuristic cases. Fourthly, it must provide the comparison with the latest methods. Finally, it provides and explains the dataset clearly. By applying these criteria, 39 articles are selected. Nineteen articles are selected from IEEE. 51.2% of the articles are related to IEEE, which is the highest. After that, 7.6% of the articles are related to Elsevier and 7.6% of the articles are related to Hindawi publication. 5.1% of them are related to Springer, 5.1% of them are related to Research Gate, and 5.1% are related to ariXiv, too. There are some articles in other publications. Fig 7 illustrates the published journal articles based on percent. The details of selected articles such as authors, journals, and publication years are defined in Table 2. The researchers can do the future works mindfully through the selection of these criteria [37].
5 Review of the selected papers
This section refers to 39 selected articles in which the main features of existing resource allocation methods for IoT and their findings are discussed. The techniques are categorized into eight main groups, including cost-aware, efficiency-aware, load-balancing-aware, QoS-aware, power-aware, context-aware, SLA-based, and utilization-aware resource allocation mechanism. The overall cost, which is the prices of resource, revenue, and profit, are more important in cost-aware resource allocation. The response and execution time should be reduced and the speed or bandwidth and priority should be increased to improve the performance in efficiency-aware resource allocation. The main emphasis of load balancing-aware method is on the workload to distribute the resources between several users in different data centers. The reduction of energy consumption in different layers of IoT is performed by power-aware resource allocation. The QoS-aware resource allocation is an emphasis on the service improvement for the users in term of throughput. The best services are moved by SLA-based resource allocation to fulfil the requirement of the users. The usage of IoT resources is increased by focusing on utilization-aware resource allocation.
Many parameters are used to compare the discussed methods, including availability, bandwidth, cost, context-aware, execution time, energy, performance, priority, QoS, reliability, response time, SLA time, throughput, utilization, and workload. These parameters are described below:
Availability It is operability, usability, or commutability of resources. The resource’s reliability, accessibility, serviceability, maintainability are joined together to create availability [100].
Bandwidth/Speed It shows the amount of data that can be sent on a connection in a specific period. In other words, it is the maximum rate of data transmission in the network.
Cost It is the amount of pay for using the resources in the IoT ecosystem or the expense for the users for resource utilization and revenue or profit for providers for providing resources for their users in the IoT ecosystem.
Execution Time It is required time that tasks or services are allocating or running as the demand of the objects or users in the IoT tiers [39].
Performance It is an amount of task that is accomplished on the demand of the things in different layers of the IoT ecosystem [101].
Power/Energy It is the power or energy required for the execution of tasks and preparing the requested resources in the IoT tiers.
Priority A service or task that has right or more important to be proceeded or executed before others because of its urgent requirement to the device or its layer in the IoT system.
Reliability It is the task ability to execute the required function in a specified period by reducing the failure rate and providing the assurance of completion [101, 102].
Response time: It is the time for responding to the service request when a task or service comes out from the waiting queue and starts the execution [102].
SLA It is an agreement or contract that specifies the obligations of cloud provider against its users and providers to avoid the SLA violence and deliver the best services to fulfill their user’s requirements [39].
Throughput It is the whole amount of tasks that are performed in the given time successfully [39].
Time It is a schedule or plan when tasks or resources should be allocated or be executed. It is a measurable period during which an action, process or condition exists or continues in the IoT environment.
Utilization It is the total amount of resources actually used and it tries to utilize the resources in the best way to maximize the revenue and profit and satisfy the users [39].
Workload It is the capability of processing or handling a work or process in a special time in the IoT ecosystem [21].
The categories are illustrated in Table 3 and the details of the classifications are presented in Fig. 8. The main goal and objective of this categorization are to provide a base of the resource allocation in the IoT for future investigation.
5.1 QoS-aware resource allocation
One of the most important parameters in the IoT ecosystems is to fulfill different QoS requirements and attain rapid resource allocation and deployment [103]. It indicates the distribution of resources in different IoT ecosystem layers which highlights the availability, recovery time, throughput, context-awareness, and SLA for IoT. It is needed for handling the conflicts of resource demands, high performance, reliability, and fault-tolerance. The QoS is necessary in order to avoid increasing the failure rates, poor resource utilization violence, and non-availability of the resource at the time of allocating resources [104].
The authors of [93] have proposed an operating procedure and a frame structure to solve the hidden node problem. They use biologically inspired (bio-inspired) algorithms in their paper. The reliability of the data transmission is increased and each node is able to share the two-hop neighbouring node’s firing-phase information with its neighbours. In addition, they can resolve two types of collision: data-channel allocation and control channel allocation collisions. As the comparison results show, the Multihop procedure has better performance compared to other existing procedures. If the density of the node is high and the number of nodes ‘neighbours is increased, the greater amount of control overhead is required.
The service providers have a tendency to use Machine-to-Machine (M2M) communications. In the [52], a resource sharing problem has been addressed for M2M traffic in 3GPP LTE standalone cell. The fixed transmission zones have an important role in this scheme. The Markovian model evaluates the delay in data transfer and the possibility of blocking. The calculation of model performance measures is done by proposing an analytical solution under the assumption of the simplified physical model and numerical results in the paper.
A new protocol for resource allocation is proposed in [76]. The nodes in this scenario are communicating in gossip or broadcast types for exchanging and updating values. The simulation results have been validated through the real experiments. The node’s dynamics have shown that the error rates and convergence when five packets sent by each node are less than 20% and for sending 20 packets are less than 5%. The performance of the proposed protocol based on a single task and a different frequency is analyzed. In this paper, is evaluated a varying number of nodes involved in task groups, the variance in the total frequency and overlapping among task groups. For maintaining a homogeneous allocation is required a coordination inter-task when there is an overlapping between different task groups.
The work in [47] has concentrated on reducing the Device-to-Device (D2D) interference when the cellular resources reuse in the downlink. There is an intrusion between D2D and cellular networks that are managed by presenting an efficient resource allocation method. First, the interference control method should be adopted to restrict the mutual interference. The rate of D2D communication and cellular communication are improved by assigning the resources to D2D users. As a result, the interference is controlled and the D2D communication interference is decreased which means that the throughput is improved by controlling the interference.
A consensus algorithm has been proposed in [62] and the proposed protocol is robust against errors in the node, so it is adaptive in dynamic scenarios where the network topology changes in runtime. In the proposed IoT scenario, the existing nodes in the same IoT task group need to adjust their task buffer and frequency occupancy. The authors have demonstrated that the network converges to a solution using the proposed protocol where the resources are allocated among nodes homogeneously. They have evaluated their experiments in simulation mode and in real scenarios and the algorithm converges with a percentage error of about 5%.
The comparison of QoS-aware resource allocation techniques is presented in Table 4, which is mentioned in the operating environment, algorithms, and strategies, improvement, and achievement, weakness or limitation. Table 5 presents more parameters and resources used for QoS-aware resource allocation in the IoT.
5.2 Context-aware resource allocation
A context-aware computing will be successful in the IoT paradigm due to its important role in dealing with very large data [105]. Edge computing supports the distributed and decentralized computing to reduce the dependency on the core of the network by increasing the number of devices. The possibility of providing edge computing to the end user has been uncovered by envisioning of fog computing in order to provide better QoS. Therefore, in [63], the context-aware has been defined for decentralized hybrid Peer-to-Peer (P2P) IoT network. In this regard, the exact QoS requirement is achieved. The simulation results have shown a higher utility. There is not any practical implementation in this paper.
The authors of [58] have analyzed a model for D2D resource allocation. They have modeled the resource allocation as a cooperative game between the base stations of two cells where a pair of D2D users is located. Each station bandwidth has been determined by developing an algorithm and the total utility of both stations are increased and maximized. The context-aware D2D resource allocation is used to select different methods for different system situations. The effectiveness of the proposed algorithm and protocol in cellular networks is shown through the numerical and analytical results.
The problem of cell association in IoT system has been studied in this paper [98] that some devices are deployed in a specific area that information is sent via uplink communication links to a set of Small Base Stations (SBSs). By considering the spatial correlation between the IoT devices, the goal is to prevent reporting of the same information to a given SBS that is formulated as a distributed two-level matching algorithm. The evaluation results have shown that, if the correlation level between the 250 IoT devices were increased, the number of devices that send the same information to the same SBSs would increase. The comparison results have shown that the proposed algorithm performs better than the classical cell-association mechanism.
The problem of resource allocation for D2D communications has been addressed by game theory in cellular networks in [65] between the BSs of two cells where a pair of D2D users is located for maximizing the total utility of BSs. The authors in their previous work [58] were introduced the location-awareness that expanded it. The resource allocation is modeled for a cooperative game. The context-aware D2D resource allocation is used to choose different methods for a system with different situations. However, this paper has a cloud-centric vision of the IoT paradigm.
The comparison of context-aware resource allocation techniques is shown in Table 6. The context-aware resource allocation has used more resources and parameters as shown in Table 7.
5.3 SLA-based resource allocation
The heterogeneous and dynamic nature of IoT makes the SLA as a key aspect between consumers and providers. Continuous Monitoring of QoS attributes should be done continuously to perform the SLAs. In addition, some factors such as trust (on the provider) should be considered for customers that may outsource its critical data [106].
Singh and Viniotis [13] have studied the conformance of commercially offered, volume-based, IoT SLAs as a resource allocation problem. They have proposed a resource allocation mechanism (that uses scheduling, buffering and rate limiting) to meet the SLA. Their evaluation shows that their solution is a lot of adaptation over an extended runtime without the need to specify information about input patterns and even work in additional traffic conditions. The length of the additional enforcement period is reduced by increasing the service capacity and decreasing the measurement time.
Choi and Lim [31] have carried out a research article about optimization resource allocation in the IoT. Two levels of SLA, class-based SLA, and job-based SLA are defined in this paper. In general, the SLA is defined in terms of various performance metrics, such as consistency, deadline along with the execution time of each job, service latency, and throughput. This study presents an algorithm for the determination of a new winner with consideration for the deadline of jobs to reduce the penalty cost for SLA and maximizing the profit. The provider’s profit and success rate of job completion are compared with a conventional mechanism by conducting the simulation with real workload data and comparing the performance of the conventional mechanism. This mechanism has about 26.8% more profit than CA-provision. Finally, it shows better performance.
The collaboration between cloud computing and fog is very important for modelling the IoT resource allocation and service delegation. The authors of [95] have proposed an algorithm for allocating resources to meet the QoS and SLA. They have modelled a new algorithm in which three conditions such as completion time, services size, and Virtual Machines (VMs) capacity are the important factors of decision rules of the linearized decision tree in order to manage and delegate the user request. The distribution of big data in the cloud and fog environment is optimized by the new strategy. The services delegation, management, resource allocation, and big data distribution can be improved by the proposed method and has better performance compared to some existing methods.
The conformance of the volume- based IoT SLA has been studied as a resource allocation problem in [81]. The SLA is performed by proposing a buffering, scheduling and rate limiting mechanism. Additional controls are provided by SLA for the providers to enforce it. As the results show, the length of the additional enforcement period is reduced by increasing the server capacity and the number of sub-periods and decreasing the total measurement time to conform to the SLA.
The comparison of SLA-based resource allocation techniques and more resources and parameters used for SLA-based resource allocation are presented in Tables 8 and 9, respectively.
5.4 Efficiency-aware resource allocation
The speed or bandwidth, priority and response time for allocation of resources in the IoT and execution time are improved via the efficiency-aware resource allocation.
A specific fog computing network with a set of Data Service Operators (DSOs) has been proposed in [96]. A set of fog nodes are controlled by one DSO to provide the data service for Data Service Subscribers (DSSs). Allocating the limited resources of Fog Nodes (FNs) to all the DSSs is one of the main challenges that aims to achieve an optimal performance. The resource allocation problem for the DSSs and DSOs’ pricing problem are analyzed by formulating a Stackelberg game in this paper. When the DSOs can know the expected amount of resource purchased by the DSSs, a many-to-many matching game is used to study the pairing problem between FNs and DSOs. Finally, the FNDSS problem is solved by using another layer of many-to-many matching between each of the serving DSSs and paired FNs in the same DSO. Based on the simulation results, the performance of the IoT based on network systems is improved.
A new dynamic resource allocation algorithms for IoT have been proposed in [61]. A real-time Software Defined Networking (SDN) controller platform is implemented for IoT. This paper shows an increase of 30–50% performance gains by serving the request number, revenue, and traffic prioritization.
An adaptive resource allocation algorithm has been proposed in [44] for improving the transmission accuracy and efficiency of sensing and actuating signals in the IoT. This method ensures the system stability that dynamically assigns the network bandwidth and priority among components according to their signals’ frequency domain characteristics. This algorithm can allocate the network resources according to the component’s individual need and improve the overall performance of the IoT system. A three Unmanned Ground Vehicle (UGV) path tracking IoT test-bed has been developed. The proposed algorithm compared to the conventional static algorithm can reduce the accumulated and maximum errors of UGV path tracking by over 60% with the same network bandwidth limitations.
Kim and Ko [67] have proposed a method for service resource allocation that data transmissions are reduced between the users’ mobile devices. A fitness function is used to perform a genetic algorithm ineffective way of decreasing the needed time for producing an optimal solution. The success rate to find near-optimal solutions is 97% and the proposed method requires less time compared to the brute approach.
Thomas and Irvine [70] have used the LTE for discovering the number of sensor nodes and the transmitted bytes per Resource Block (RB) by LTE. The simulation is performed with realistic parameters. The RBs and bandwidth that are used for simulation have been specified and the result shows that 29 sensor nodes can transmit one Kb data with less than 1 percentage packet lost in each second. It is equal to 21 bytes of data per RB compared to 181 bytes per RB for the continuous transmission. As the result shows, decreasing the number of bytes per RBs and achieving a good energy efficiency for LTE.
One of the challenges is how available resources can be allocated for clients in an effective and simple way in fog environment. The authors of [72] have focused on allocating computer resources in Fog by proposing an independent platform based on learning from the previous event. The “Smart Shadow” is proposed to support the mobile hosts’ devices. This work prepares a computational resource infrastructure and has a good performance in hosted applications on mobile devices. This infrastructure allows the mobile devices in a ubiquitous way to use the external computational resources.
The dynamic resources allocation is a significant challenge due to the uncertainty introduced by the network, QoS, and energy efficiency requirements. The authors of [88] have described a new algorithm for highly dense 4G networks bandwidth allocation in the uplink transmission for the Human-to-Human (H2H)/M2 M co-existence called Interval Type-2 Fuzzy Logic Adaptive (IT2FA). The proposed solution is based on type-2 fuzzy logic controller expert system to anticipate and manage the uncertainties. Different metrics such as bandwidth utilization, delay, and throughput are used to evaluate the proposed method performance.
The comparison of efficiency-aware resource allocation techniques and more parameters and resources used for efficiency-aware resource allocation are presented in Tables 10 and 11, respectively.
5.5 Cost-aware resource allocation
The aim of the resource allocation system is to ensure the application requirements in which the suitable and the lowest operational cost is provided by infrastructure [11]. The cost-aware resource allocation has been obligated for the services in all layers of the IoT ecosystem in an economical way.
The work in [9] has presented an accurate mathematical formula by assigning services to interfaces in one or more rounds with heterogeneous resources. The optimal solutions are presented for reasonable instance sizes. Two algorithms are developed by proving the Nondeterministic Polynomial time (NP) completeness of the problem in which the optimal solution for big instance sizes is estimated. The first algorithm has considered the average cost of interface resources that allocates the most demanding service requirements. The demanding resource is allocated in the second algorithm by choosing randomly among equally demanding shares. The efficacy of the number of rounds on the total cost is shown by multi-round Service to-Interface Assignment (SIA)’s results based on the policy. The difference in the cost between the policies of two boundaries (minimum rounds vs minimum cost) becomes more highlight by increasing the number of services.
A method in two phases based on the virtual machine pre-warm-up and resources pooling is used to optimize the proposed multi-agent architecture and the resource usage in [30]. The main aspect that highlights in this paper is related to the positive effect on the system performance and infrastructure audit. The Audit Agent on the entire infrastructure has performed the audit operations because they offer valuable information about system loading, the resources utilization, unauthorized access attempts, end users geographical distribution, and the amount of newly removed/added devices. The system should be aware of the position of resources to suggest the edge-computing services for the clients that are useful when a failure occurs in a local system. In this regard, a flexible alternative is offered by knowing an accurate location of resources and clients to manage and deploy the edge services when there is no local resource. In spite of the operation of the audit and its role for the resources usage optimization, one of the challenges of this paper is the security of audit.
The work in [56] has been established to analyze the lower and upper layers of network resource allocation and resource pricing problems by Stackelberg game model. This model verifies the existence of a Nash equilibrium point of the non-cooperative game between the upper layers. An iterative distributed algorithm has been proposed in the article that presents the iteration strategy of resources and prices. It makes the Stackelberg game in the entire network environment reach a Nash equilibrium. The effect of this algorithm in a variety of network resource management is proved by simulation.
Gateways and devices in the IoT are sometimes equipped with several heterogeneous network interfaces, which should be utilized by many services. In the work [68], a Mixed Integer Linear Program (MILP) is proposed for allocating the requested services demands to device’s heterogeneous interfaces. This paper provides the noticeable results by splitting of services to different interfaces. The authors have carried out several simulations to evaluate the cost and the number of splits for instances of 3 to 10 services by using suitable configuration of capacities, interfaces’ costs, and services’ demands. An important mention of the total cost is that a slow increase in the optimal cost appears when fewer splits will happen while the services increase simultaneously. On the other hand, when the utilization cost of interfaces is higher than the activation cost, the more splits of services occur. More splits happen by increasing the services.
The comparison of cost-aware resource allocation techniques is shown in Table 12. Further resources and parameters used for cost-aware resource allocation are presented in Table 13.
5.6 Power-aware resource allocation
The energy consumption and heat generation in data centers play an important role to deal with the problems in the power-aware resource allocation mechanisms [107]. The main reasons for energy consumption and the creation of futile heat are increasing the number of servers, fast growth of data center, loss, or wastage of idle power, huge load and highly demands [108]. Lower generation heat and reduced energy and cost savings are very necessary for IoT ecosystem.
The allocation of available resources to a large number of IoT users without increasing the overall throughput and energy reduction of the IoT system are the main goals of this paper [69]. Networks with many wireless technologies are used to provide the seamless services, which has been proposed by 3GPP and Unlicensed Mobile Access (UMA). A resource allocation algorithm is used on the IoT sensor system to find the shortest path and reduce the bandwidth cost, which has unbalanced the energy conditions. It calculates the amount of energy in equilibrium and in this case, the main power will be allocated to IoT devices.
The problem of distributed resource allocation for IoT system is studied in [66]. A group of heterogeneous nodes compromising both Human-Type Devices (HTDs) and Machine-Type Devices (MTDs) are discussed in this study. The optimal time allocation in terms of energy, latency, and the rate is found by considering the requirements of the IoT devices to meet their QoS requirements. In this regard, a realistic game-theoretic approach has been proposed. A steady performance is preserved through CH Equilibrium (CHE). In particular, for a network containing up to 4000 devices, the proposed CHE solution keeps the percentage of devices with satisfied QoS limitations above 96%, while the overall system performance is not significantly reduced. The comparison of the proposed CHE solution decreases the total energy to 78% by MTDs and doubles the total rate of HTDs. Without the practical implementation and only by simulation, the result is presented.
The authors of [84] have proposed a resource allocation strategy for Bit-Interleaved Coded Universal Filtered Multicarrier (BIC-UFMC) communications by using a scenario that is characterized by short packets. Code rate, power allocation, bit loading, and a number of multicarrier symbols are considered as the best Transmission Parameters (TPs), which are selected through a resource allocation strategy. The Good Put (GP) metric is maximized to define the number of bits per unit of time that are received correctly over a frequency-selective fading channel. The results are doubled: firstly, the best choice of the TPs is compared to the case of uniform power allocation and bit loading and a previous GP-based resource allocation solution to increase the GP performance of the BIC-UFMC system. Secondly, the resource allocation and BIC-UFMC are combined together, the frequency offset is considered to make this combination more robust than the uniform and classical cases. The short packets characterize the resource allocation strategy.
In [97], the problem of coalition formation among M2 M communication type devices and the resource management problem have been addressed. Each M2M device is characterized by its energy availability, as well as by differentiated interests to communicate with other devices based on the IoT application that they jointly serve. Some factors such as energy availability, interest, and physical ties are considered in the coalition formation process and the coalition-head selection. A holistic utility function is associated with each M2M device, in which a good way represents its degree of satisfaction with respect to QoS prerequisites fulfillment. The performance of the proposed method is evaluated by simulation and modeling. In addition, the authors have described the better performance in comparison to another state of the art method. Their purposed method is not implemented in the real world.
A new architecture has been proposed in [99] to address some challenges such as big data processing, huge power consumption and mass connections in IoT. The radio resource and computational resource management are investigated in this paper for increasing the system performance. The authors have focused on admission control, computational resource allocation, and power control. A dynamic stochastic network optimization is studied to maximize the system utility to improve the performance of the architecture. The evaluation results have shown that throughput is improved and end-to-end delay is reduced. In addition, an average throughput and delay trade-off are achieved.
The authors of [23] have aimed to improve the energy consumption by combining IoT and edge computing technologies. Reducing the energy consumption and delay per unit time of the sensor nodes by means of energy management are referenced in this work. The authors have described a small scale of the fog of everything and have focused on the performance tests using simulation and comparisons of their model in order to check it for supporting the resource-limited wireless or mobile IoT devices. The proposed model is tested under various mobility scenarios and the results have shown that the delay and energy consumption have been improved.
The authors of [25] have presented a new fog based architecture for supporting the smart city network architecture. The goal of this paper is improving power consuming and decrease the latency between objects with different capabilities. A multitier structure is proposed that the applications running on things jointly compute, route, and communicate with each other in the smart city environment. They have categorized the device communications in fog layer to three types to meet the QoS standards and managing the applications. The authors have validated and simulated their model in terms of the average of the CPU and network costs per processing time by comparing with D2D in similar work in terms of various communication costs and it is more power efficient than the D2D platform. The service providing in this proposed model is efficient and uses low energy. The simulation results have shown that the energy consumption is minimized for computing, intra-fog communication, and wired or wireless transmission between things in fog layer. The proposed model can be extended to cover 5G management for the stream applications in smart city and for making the robust frameworks. A real-time data processing solution together with using Mobile edge computing techniques are necessary.
The comparison of power-aware resource allocation techniques is shown in Table 14. Further resources and parameters used for power-aware resource allocation are presented in Table 15.
5.7 Utilization-aware resource allocation
The utilization-aware resource allocation is focused on increasing the usage of IoT resources, professionally. The profit and revenue in IoT are affected by optimal resource utilization. For this mean, the utilization-aware resource allocation techniques are very important to reduce the energy consumption and resources usage and fair distribution of resources [39].
Multiple, heterogeneous network interfaces are used to equip the devices and gateways. A large amount of services in the IoT utilizes these devices. Kumar and Harikrishna [12] have modelled the assigning services’ resource demands to a device’s interfaces. The presented hard problem uses the MILP model to have the optimal solutions. They have provided the insightful results to discuss the solutions by splitting the services between different interfaces. The numerical results have demonstrated the part of the actuation cost in the administrations’ parts and dispersion among the interfaces.
The allocation of spectrum resources is adaptively led to ensure the service requirements and realize the IoT services. The work [79] proposes a novella new solution for solving the resource allocation problem. A new bandwidth allocation algorithm is designed using the concept of Shapley value. Different system traffic and load conditions are important in maintaining a great IoT system performance in the proposed method compared to other existing methods. The performance balance in the proposed method is guaranteed by improving the overall system resource utilization compared to the existing methods. The dynamic reconfigurable network elements play an important role in using SDN as a talented technology to streamline network management. A solution is proposed to control the capabilities and strengthen the management of the IoT network by combining the SDN and IoT. The advantage of resource utilization and SDN technology in the IoT network can be further enhanced.
The resource allocation problem in the SDN-based IoT network has been proposed in [90]. The Semi-Markov Decision Process (SMDP) process is used to formulate the problem. Maximizing the expected average reward of the network is the main aim of this process. The problem of SMDP is solved by proposing a relative value iteration algorithm. It determines Machine Type Communications (MTC) which Gateways (MTCGs) or eNB should be selected for MTC packet transmission and the number of assigned resources for each wireless link. The system rewards are improved through the proposed algorithm compared to other comparative resource allocation schemes.
The work in [86] has proposed a hierarchy architecture. A gateway is used to connect the devices to the eNB in order to improve the network utilization. In addition, a multiclass resource allocation algorithm has been proposed for LTE based IoT communication. The proposed algorithm has better performance on both latency and data rate for different QoS applications both in the unsaturated and saturated environment.
The comparison of utilization-aware resource allocation techniques is shown in Table 16. Further resources and parameters used for utilization-aware resource allocation are presented in Table 17.
5.8 Load-balancing aware resource allocation
Load balancing is the main goal of resource allocation in which the resources should be assigned in a way to have balanced utilization across all resources of a particular type. [11]. The workload has more attention in load balancing-aware resource allocation, which distributes the resources to the several users in different layers of IoT. According to the optimal resource allocation, it is very convenient to access the resources on different layers and the condition of the high/low load is important in their operation [39].
A key challenge in this distributed system is how to allocate the bandwidth resources among the geo-distributed datacenters of this cloud efficiently. In order to address this challenge, the authors of [82] have optimized the transfer bandwidth resources among different geo-distributed data centers. For this mean, they have analyzed the interaction between the traffic of physical networks and the data flow of clouds datacenter, and then a game theory model and a dynamic resource allocation algorithm have been proposed. Compared to existing strategies, the evaluation results have shown that it can balance the workloads of physical networks, reduce the response delay of cloud applications, and possess an excellent adaptability. It can optimize the performance of physical networks and clouds datacenter, so it is suitable to allocate the resources for a dynamic internet environment. Unfortunately, this paper only focuses on the cloud layer.
The optimal allocation of resources to application tasks, the same as computing speed, available energy, storage capacity is more important than their relative distribution and does not load some objects [109]. Pilloni and Atzori [48] have focused on optimal assignment to the physical devices that perform the same task needed by the running applications. Some technologies have been developed for Virtual Object (VO). In this regard, more focus should be on these technologies. The current functionalities of VOs are developed to perform a distributed task allocation among objects. A distributed algorithm is proposed in which the VOs are transferred to reach a consensus resources allocation. The workload is distributed between the objects to cooperate with the same task and ensure that the Quality of Information (QoI) requirements are fulfilled. The performance of the system is compared to a static frequency allocation that have shown that network lifetime is improved to 27%.
The work in [54] has proposed a framework that makes use of VOs to manage the objects of an IoT system. Using VOs, the resources, functionalities, and capabilities available on the objects are virtualized and are exposed to other objects to cooperate for executing the deployed applications. The workload is distributed among the objects by developing a distributed algorithm for resources allocation. The network lifetime is improved to 62% according to the comparison of the system performance and static frequency allocation.
The IoT edge node should be the starting point of the captured data to avoid big data challenges such as high latency of cloud-based IoT. However, the data onboard cannot process completely due to the limitation of energy resources and available processing capabilities. The bandwidth allocation and computation offloading in edge nodes of IoT are studied in [83]. A new method is proposed for using the limited resources completely. The utilization of gateway’s bandwidth has increased up to 40% according to the experimental results for a health-monitoring case study. The battery lifetime of IoT edge devices has 1.5-hour improvement. Unfortunately, the result is limited to a health-monitoring case study.
The comparison of load balancing-aware resource allocation techniques is shown in Table 18. Further resources and parameters used for load balancing-aware resource allocation are presented in Table 19.
6 Results and comparison
A workload will be incurred to the IoT system by the processing of an application. In this case, the workload can be translated as the number of needed resources to provide the specific required tasks by the application. The workload includes the use of network bandwidth and sensing devices, the memory and processing load consumed by the application. [11].
Most popular techniques for allocating the resources in the IoT were described in the previous section. Eight main categories were described and the related papers were studied in Sect. 5. In this section, the main features of the approaches are studied and the important factors that have been improved in all of the mechanisms are shown briefly in Table 20.
Increasing the performance of the resource allocation of IoT is one of the most important goals in the described papers. In addition, increasing the QoS and its utilization are investigated in some studies. Reducing the amount of energy consumption, power and time are highlighted in these papers. The resource allocation is very important for the IoT ecosystem. An optimized resource allocation can be achieved by the assurance of availability, reliability, reducing the failure rate and SLA violence in the IoT ecosystem. The selected articles in Table 2 have checked the resource allocation parameters. The obtained results are explained in Sect. 5 and Fig. 9. It shows that the performance, utilization, cost, and QoS are the most beneficial parameters that are described by researchers in the field of resource allocation in the IoT.
Although some articles emphasize the SLA, workload, context-awareness, energy, latency, and bit rate, there is a strong necessity for concentrating on these parameters. Meanwhile, in the IoT ecosystem, the SLA, energy, and power are the most important parameters for resource allocation but a little number of scholars are applied to these parameters in their studies. In fact, in the IoT ecosystem, each layer is tried to reduce the expenditure (energy, storage etc.) for enhancing the revenues with maximum usage of resources competently. In addition, users always look for higher performances of the services with the least cost and time. Therefore, cost, energy, and power for sensor networks are the most essential parameters in the IoT resource allocation. However, there should be more focus on the throughput in the future research in the IoT ecosystem for cloud-centric IoT, data center, fair allocation, and enhancing the resource utilization in different layers of IoT.
The analysis of resource allocation techniques based on publication date is presented in Fig. 10. It shows that the majority of selected papers are published between 2015 to 2018 and only six out of 39 selected papers are published before 2015; it is emphasized that the references of this systematic review are new.
7 Open issues and future directions
The IoT ecosystem has the potential to provide different services to increase the productivity of this novel paradigm. Despite its potential benefits, there are still many challenges in the IoT paradigm and its large different concepts.
One major challenge in this context is to allocate the resources involved in an IoT ecosystem. The state of the art mechanisms in the area of resource allocation for IoT is discussed in this systematic review. Most studies that are reported in the current literature, either fully or partially consist of one or more solutions, optimization, or algorithm that are related to resource allocation in the IoT. We have classified them into eight groups, which are summarized in Sect. 5. There are still several research opportunities to be explored in the field of resource allocation in order to tackle all the challenges posed by the IoT ecosystems in this context.
Scholars in many types of research have mainly considered the simulator-based tools for evaluation of their proposed mechanism, so investigating the effects of the performance of the system in a large-scale environment and real IoT ecosystem would be interesting and necessary for the future studies. In addition, in some papers, only theoretical frameworks are presented, practical implementations or the simulation of the proposed mechanism are useful for proving the reality of their frameworks and it can open different views from their mechanism to the other researchers. We believe that there is a gap between the design time and the effective allocation at the time of execution and this gap must be reduced.
Optimization in resource allocation is the main challenge that needs many efforts for implementing in the IoT ecosystem. Many resource allocation activities focus on the algorithmic optimization procedures. However, finding out the optimal solution on time, in such a large and complex system, is non-trivial. Many works have applied the heuristic and metaheuristic approaches because of its simplicity and low response time even when providing the near-optimal solutions. Some solutions are linear programming [9]. The authors have recommended that the application of recent meta-heuristic optimization techniques have been proven more effective than the previous ones. Further, a meta-heuristics algorithm such as genetic algorithm can be improved in term of quality of solutions or convergence speed by combining it with another population-based, nature-based, biology-based, or some local search based heuristic and meta-heuristic algorithms. One of the advantages of combining two population-based meta-heuristic algorithms is that the shortcomings of one algorithm can be overcome by the strengths of another algorithm.
Furthermore, based on different studies in this review, it can be observed that the scholars do not consider some important parameters in their studies and enhancement is required to improve the performance of the existing technique. For example, some studies have considered the priority, workload, and energy consuming while some totally ignore these issues. An independent study is required that addresses all issues involved in resource allocation for IoT.
One major challenge in the IoT ecosystem is to manage efficiently the resources involved in this ecosystem. The resource modelling, discovery, estimation, allocation and monitoring are the main activities in the resource management system in IoT [11]. The resource allocation is the core of the resource management system, but the collaboration of the above activities is necessary to enable the proper and continuous operation of the resource management system in the IoT ecosystem. The resource model is a vital part of any resource management system since it defines the entities, properties, and relationships that build up the system, thus it drives the whole operation of the resource manager [19]. Then, it is interesting for researchers in the future. Before allocating the necessary resources, the resources must be discovered in the IoT ecosystem. The resource discovery in such a heterogeneous system is a challenge by aggravating the current lack of standardization of protocols and formats in the field.
Another activity that is necessary for the Resource Management System (RMS) of IoT systems is the resource monitoring. The execution environment is extremely dynamic, including variations related to the user, the network, the physical environment, and the devices. The monitoring of these environmental variations is essential to provide a high-quality service. Moreover, the monitoring of current resource usage is also necessary for keeping an optimum or near to optimize the resource allocation. Finally, estimating the number of resources is useful to the better assurance of the successful completion of the application. All activities from resource modeling, discovery, estimation, and monitoring are interested contexts as future works for researchers and scholars. With the expected ultra large scale of the IoT along with its dynamic and opportunist characteristics, it is necessary that RMS is endowed with self-management features [11].
We believe that the resource allocation in IoT would be upgraded to the self-allocation properties in the future. Monitoring the execution environment, learning from past and current behavior, self-adapting, self-healing, self-allocating, and self-optimizing are performed by systems with minimal external intervention and with self-management and self-allocation features that are the most promising solution to the challenges of resource allocation in the IoT and intelligent management of resources available across all layers. According to the context with minimal external intervention are the most promising solution to tackle all the resource allocations in IoT challenges and intelligently management the available resources in all layers.
One concept of IoT is the application of IoT to the manufacturing industry that is called the Industrial Internet of Things (IIoT) or Industry 4.0. The IIoT can greatly improve the connectivity, efficiency, scalability, and cost savings for industrial organizations [110,111,112,113].
The IIoT is a larger concept than IoT and the businesses that have embraced adopted the IIoT have had significant improvements inefficiency, profitability, and safety. It is estimated that in the future, successful companies will be able to increase their revenue through IoT by creating new business models and improving productivity. However, some challenges are surrounding the implementation of IIoT, data sharing, interoperability, reliability and resilience and security; unfortunately, few types of research address these important challenges [114,115,116].
Big data is the term for a collection of data sets is so complex and large that it becomes difficult to process using on-hand database management tools or traditional data processing applications [117]. The analysis, capture, curation, storage, search, sharing, transfer, and visualization are the big data challenges in IoT and IIoT and all of these challenges are related to the allocating resources and tasks in IoT that need to be addressed carefully [118].
The blockchain is one of the biggest innovative technologies that supports the cryptocurrency (a medium of exchange created and stored electronically in the blockchain, using encryption techniques to control the creation of monetary units and to verify the transfer of funds [119]) is used to provide privacy and security in peer-to-peer networks [120]. It runs Bitcoin (digital cash) with the potential to influence every industry from manufacturing to financial and educational institutions [121, 122]. In theory, the blockchain has several advantages; it can help to improve privacy and security, majorly via decentralization because the user identities remain private. The Blockchain uses all resources of devices in the process then robustness and scalability are offered in IoT [120].
However, using the blockchain in IoT have some challenges, for example, limitation in resources is a challenge for supporting the cryptocurrency mining because of high computational cost. Low latency and low traffic in IoT applications are eligible but mining of blocks is time-consuming and make high overhead traffic. In addition, the scalability issues that may lead to centralization and encryption in IoT is a big challenge because several devices are power-limited and resource-limited [123].
Network Function Virtualization (NFV) and SDN are novel paradigms and important trends in the networking industry. The idea behind the SDN in the network is separating the control plane from the data plane and creating a manageable and programmable network. The idea of NFV is to virtualize network services and deployments to use commodity servers for running the software versions of network services are called Virtual Network Functions (VNF) that previously were hardware-based. Some examples of VNFs include the encryption, firewalling, load balancing, and routing [124]. These two architectures are very important for changing the static network design into an open and intelligent network [125]. One challenge for IoT is designing an efficient SDN based architecture with NFV implementation. The deployment of network services, improving the programmability, security, and standardization are some identified challenges for future research in the SDN and NFV architectures [125, 126].
Many researchers have tried to progress 5G network architectural and standardization in academic and industrial contexts [127]. The 5G standard can enlarge the scope of coverage of IoT, but there are some challenges in 5G-IoT, for example, the security and trust communication concerns, scalability, D2D communication, deployment of IoT applications and supporting SDN in 5G-IoT are still technical challenges in this area [127, 128].
8 Conclusion
This paper presents a systematic and analytic review of resource allocation in IoT. By investigating the online databases, 143 articles are found. Finally, by using different filters, 39 articles are selected that their methods are directly related to the resource allocation in the IoT. The highest percentage of articles is 51.2%, which is related to IEEE, and 20 articles from IEEE are selected. After that, 7.6% of the articles are related to Elsevier and 7.6% of the articles are related to Hindawi publication. 5.1% of them are related to Springer, 5.1% of them are related to Research Gate, and 5.1% of them are related to ariXiv. There are some articles in other publications. The analysis of resource allocation techniques based on publication date have shown that the majority of selected papers are published between 2015 to 2018 and only six out of 39 selected papers are published before 2015 and they highlight the novelty of their subjects. The resource allocation techniques for IoT are categorized into eight main groups, including cost-aware, efficiency-aware, load balancing aware, power-aware, QoS-aware, context-aware, SLA-based and utilization-aware resource allocation mechanism. For each of these classes, we have reviewed and discussed the advantages and disadvantages of their mechanisms.
We have compared the collected literature by using some parameters such as availability, performance, bandwidth, cost, energy, QoS, SLA, throughput, etc. and then have highlighted some interesting lines for future works. It can be observed in many studies that the researchers do not consider some important parameters in their works and enhancement is required to improve the performance of the existing techniques. An independent study is required to address all issues involved in resource allocation for IoT.
We believe that the resource allocation in IoT would be upgraded to the self-allocation properties in the future. Then with the self-managing and self-allocation features, the systems are able to monitor the execution environment, learning from past and current behavior, self-adapting, self-healing, self-allocating, and self-optimizing according to the context with minimal external intervention. They are the most promising solutions to tackle all the resource allocations in IoT challenges and intelligently manage the available resources in all layers. The collected results of this systematic review can be a good reference for scholars in the resource allocation for IoT. Particularly, the key requirements for IoT, answers to the research questions, summarized resource allocation’s concepts, current issues, research terminologies, approaches and mechanisms in allocating resources for IoT ecosystem and the recommendation for future works are very important.
References
Yang, L., Yang, S.-H., Plotnick, L.: How the Internet of Things technology enhances emergency response operations. Technol. Forecast. Soc. Change 80, 1854–1867 (2013)
Horrow, S., Sardana, A.: Identity management framework for cloud based internet of things. In: Proceedings of the First International Conference on Security of Internet of Things, pp. 200–203 (2012)
Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M., Ayyash, M.: Internet of Things: a survey on enabling technologies, protocols, and applications. IEEE Commun. Surv. Tutor. 17, 2347–2376 (2015)
Pourghebleh, B., Navimipour, N.J.: Data aggregation mechanisms in the internet of Things: a systematic review of the literature and recommendations for future research. J. Netw. Comput. Appl. 97, 23–34 (2017)
Yan, Z., Zhang, P., Vasilakos, A.V.: A survey on trust management for Internet of Things. J. Netw. Comput. Appl. 42, 120–134 (2014)
Alaba, F.A., Othman, M., Hashem, I.A.T., Alotaibi, F.: Internet of Things security: a survey. J. Netw. Comput. Appl. 88, 10–28 (2017)
Lee, I., Lee, K.: The internet of Things (IoT): applications, investments, and challenges for enterprises. Bus. Horiz. 58, 431–440 (2015)
Mattern, F., Floerkemeier, C.: From the internet of computers to the Internet of Things. In: Sachs, K., Petrov, I., Guerrero, P. (eds.) From Active Data Management to Event-Based Systems and More, pp. 242–259. Springer, New York (2010)
Angelakis, V., Avgouleas, I., Pappas, N., Fitzgerald, E., Yuan, D.: Allocation of heterogeneous resources of an IoT device to flexible services. IEEE Internet Things J. 3, 691–700 (2016)
Bassi, A., Bauer, M., Fiedler, M., Kranenburg, R.V.: In: Hyttinen, P. (ed.) Enabling Things to Talk. Springer, New York (2013)
Delicato, F.C., Pires, P.F., Batista, T.: Resource Management for Internet of Things. Springer, New York (2017)
Kumar, A.K., Harikrishna, P.: Allocation of heterogeneous resources of an IoT device to flexible services. IEEE Internet Things J. 3(5), 69–700 (2016)
Singh, A., Viniotis, Y.: Resource allocation for IoT applications in cloud environments. In: 2017 International Conference on Computing, Networking and Communications (ICNC), pp. 719–723 (2017)
Krco, S., Pokric, B., Carrez, F.: Designing IoT architecture (s): a European perspective. In: 2014 IEEE World Forum on Internet of Things (WF-IoT), pp. 79–84 (2014)
Khan, R., Khan S. U., Zaheer, R., Khan S.: Future internet: the Internet of Things architecture, possible applications and key challenges. In: 2012 10th International Conference on Frontiers of Information Technology (FIT), pp. 257–260 (2012)
Wu, M., Lu, T.-J., Ling, F.-Y., Sun, J., Du, H.-Y.: Research on the architecture of Internet of Things. In: 2010 3rd International Conference on Advanced Computer Theory and Engineering (ICACTE), pp. V5-484–V5-487 (2010)
Marques, G., Garcia, N., Pombo, N.: A survey on IoT: architectures, elements, applications, QoS, platforms and security concepts. In: Mavromoustakis, C.X., Mastorakis, G. (eds.) Advances in Mobile Cloud Computing and Big Data in the 5G Era, pp. 115–130. Springer, New York (2017)
Rahmani, A.M., Liljeberg, P., Preden, J.-S., Jantsch, A.: Fog Computing in the Internet of Things: Intelligence at the Edge. Springer, New York (2017)
Delicato, F. C., Pires, P. F., Batista, T.: The resource management challenge in IoT. In: Resource Management for Internet of Things, pp. 7-18, Springer, New York (2017)
Kumar, D., Singh, A. S.: A survey on resource allocation techniques in cloud computing. In: 2015 International Conference on Computing, Communication & Automation (ICCCA), pp. 655–660 (2015)
Botta, A., De Donato, W., Persico, V., Pescapé, A.: Integration of cloud computing and the internet of things: a survey. Future Gener. Comput. Syst. 56, 684–700 (2016)
Bonomi, F.: Connected vehicles, the internet of things, and fog computing. In: The eighth ACM international workshop on Vehicular inter-networking (VANET), pp. 13–15, Las Vegas, USA (2011)
Baccarelli, E., Naranjo, P.G.V., Scarpiniti, M., Shojafar, M., Abawajy, J.H.: Fog of everything: energy-efficient networked computing architectures, research challenges, and a case study. IEEE Access 5, 9882–9910 (2017)
Chowdhery, A., Levorato, M., Burago, I., Baidya, S.: Urban IoT edge analytics. In: Fog Computing in the Internet of Things, pp. 101–120, Springer, New York (2018)
Naranjo, P. G. V., Pooranian, Z., Shojafar, M., Conti, M., Buyya, R.: FOCAN: a fog-supported smart city network architecture for management of applications in the internet of everything environments, J.ParallelDistrib.Comput., arXiv preprint arXiv:1710.01801, (2017)
Shojafar, M., Pooranian, Z., Naranjo, P.G.V., Baccarelli, E.: FLAPS: bandwidth and delay-efficient distributed data searching in Fog-supported P2P content delivery networks. J. Supercomput. 73, 5239–5260 (2017)
www.3gpp.org/DynaReport/23303.htm. (2014). 3GPP TS 23.303, Architecture enhancements to support proximity services (prose)
Naranjo, P.G.V., Baccarelli, E., Scarpiniti, M.: Design and energy-efficient resource management of virtualized networked Fog architectures for the real-time support of IoT applications. J. Supercomput. 74(6), 2470–2507 (2018)
Nazir, B., Ishaq, F., Shamshirband, S., Chronopoulos, A.T.: The impact of the implementation cost of replication in data grid job scheduling. Math. Comput. Appl. 23, 28 (2018)
Manate, B., Fortis, T.-F., Negru, V.: Optimizing cloud resources allocation for an Internet of Things architecture. Scalable Comput. 15, 345–355 (2015)
Choi, Y., Lim, Y.: Optimization approach for resource allocation on cloud computing for IoT. J. Distrib. Sens. Netw., Int (2016). https://doi.org/10.1155/2016/3479247
Lin, J., Yu, W., Zhang, N., Yang, X., Zhang, H., Zhao, W.: A survey on internet of things: architecture, enabling technologies, security and privacy, and applications. IEEE Internet Things J. 4, 1125–1142 (2017)
Soltani, Z., Navimipour, N.J.: Customer relationship management mechanisms: a systematic review of the state of the art literature and recommendations for future research. Comput. Hum. Behav. 61, 667–688 (2016)
Neghabi, A.A., Navimipour, N.J., Hosseinzadeh, M., Rezaee, A.: Load balancing mechanisms in the software-defined networks: a systematic and comprehensive review of the literature. IEEE Access 6, 14159–14178 (2018)
Becheikh, N., Landry, R., Amara, N.: Lessons from innovation empirical studies in the manufacturing sector: a systematic review of the literature from 1993–2003. Technovation 26, 644–664 (2006)
Aznoli, F., Navimipour, N.J.: Deployment strategies in the wireless sensor networks: systematic literature review, classification, and current trends. Wirel Pers. Commun. 95(2), 819–846 (2016)
Navimipour, N.J., Vakili, A.: Comprehensive and systematic review of the service composition mechanisms in the cloud environments. J. Netw. Comput. Appl. 81, 24–36 (2017)
Kitchenham, B., Brereton, O.P., Budgen, D., Turner, M., Bailey, J., Linkman, S.: Systematic literature reviews in software engineering–a systematic literature review. Inf. Softw. Technol. 51, 7–15 (2009)
Madni, S.H.H., Latiff, M.S.A., Coulibaly, Y., Abdulhamid, S.: Recent advancements in resource allocation techniques for cloud computing environment: a systematic review. Clust. Comput. (2016). https://doi.org/10.1007/s10586-016-0684-4
Charband, Y., Navimipour, N.J.: Online knowledge sharing mechanisms: a systematic review of the state of the art literature and recommendations for future research. Inf. Syst. Front. 6, 1131–1151 (2016)
Christin, D., Reinhardt, A., Mogre, P. S., Steinmetz, R.: Wireless sensor networks and the internet of things: selected challenges. In: Proceedings of the 8th GI/ITG KuVS Fachgespräch Drahtlose sensornetze, pp. 31–34 (2009)
Bandyopadhyay, D., Sen, J.: Internet of Things: applications and challenges in technology and standardization. Wirel. Pers. Commun. 58, 49–69 (2011)
Castellani, A. P., Bui, N., Casari, P., Rossi, M., Shelby, Z., Zorzi, M.: Architecture and protocols for the internet of things: A case study. In: 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), pp. 678–683 (2010)
Li, Z., Liu, K., Su, Y., Ma, Y.: Adaptive resource allocation algorithm for internet of things with bandwidth constraint. Trans. Tianjin Univ. 18, 253–258 (2012)
Liu, Q., Gao, L., Lou, P.: Resource management based on multi-agent technology for cloud manufacturing. In: 2011 International Conference on Electronics, Communications and Control (ICECC), pp. 2821–2824 (2011)
Peng, Z., Cui, D., Zuo, J., Li, Q., Xu, B., Lin, W.: Random task scheduling scheme based on reinforcement learning in cloud computing. Clust. Comput. 18, 1595–1607 (2015)
Chen, X., Chen, L., Zeng, M., Zhang, X., Yang, D.: Downlink resource allocation for device-to-device communication underlying cellular networks. In: 2012 IEEE 23rd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), pp. 232–237 (2012)
Pilloni, V., Atzori, L.: Consensus-based resource allocation among objects in the internet of things. Ann. Telecommun. (2017). https://doi.org/10.1007/s12243-017-0583-6
Wei, Q., Jin, Z.: Service discovery for internet of things: a context-awareness perspective. In: Proceedings of the Fourth Asia-Pacific Symposium on Internetware, p. 25 (2012)
Simão, J., Veiga, L.: A taxonomy of adaptive resource management mechanisms in virtual machines: recent progress and challenges. In: Cloud Computing, pp. 59–98, Springer, New York (2017)
Im, J., Kim, S., Kim, D.: IoT mashup as a service: cloud-based mashup service for the Internet of things. In: 2013 IEEE International Conference on Services Computing (SCC), pp. 462–469 (2013)
Shorgin, S., Samouylov, K.E., Gaidamaka, Y.V., Chukarin, A., Buturlin, I.A., Begishev, V.: Modeling radio resource allocation scheme with fixed transmission zones for multiservice M2 M communications in wireless IoT infrastructure. ACIIDS 2, 473–483 (2015)
Wu, D., Bao, L., Liu, C.H.: Scalable channel allocation and access scheduling for wireless internet-of-things. IEEE Sens. J. 13, 3596–3604 (2013)
Carta, A., Pilloni, V., Atzori, L.: Resource allocation using virtual objects in the Internet of Things: a QoI oriented consensus algorithm. In: 19th International Conference on Innovations in Clouds, Internet and Networks (2016)
Aazam, M., Khan, I., Alsaffar, A. A., Huh E.-N.: Cloud of things: integrating Internet of Things and cloud computing and the issues involved. In: 2014 11th International Bhurban Conference on Applied Sciences and Technology (IBCAST), pp. 414–419 (2014)
Lan, H.Y., Song, H.T., Liu, H.B., Zhang, G.Y.: Heterogeneous-oriented resource allocation method in Internet of Things. Appl. Mech. Mater. 427, 2791–2794 (2013)
Xu, J., Andrepoulos, Y., Xiao, Y., van Der Schaar, M.: Non-stationary resource allocation policies for delay-constrained video streaming: application to video over Internet-of-Things-enabled networks. IEEE J. Sel. Areas Commun. 32, 782–794 (2014)
Huang, J., Yin, Y., Yan, H., Zhao, M., Duan, Q.: Context-aware resource allocation for device-to-device communications in cloud-centric Internet of Things. J. Chongqing Univ. Posts Telecommun. 27, 484–492 (2015)
Cai, H., Da Xu, L., Xu, B., Xie, C., Qin, S., Jiang, L.: IoT-based configurable information service platform for product lifecycle management. IEEE Trans. Indus. Inf. 10, 1558–1567 (2014)
Kim, H.: Low power routing and channel allocation method of wireless video sensor networks for Internet of Things (IoT). In 2014 IEEE World Forum on Internet of Things (WF-IoT), pp. 446–451 (2014)
Wang, J., Cvijetic, N., Kanonakis, K., Wang, T., Chang, G.-K.: Novel optical access network virtualization and dynamic resource allocation algorithms for the internet of things. In: Optical Fiber Communication Conference, p. Tu2E. 3 (2015)
Colistra, G., Pilloni, V., Atzori, L.: Task allocation in group of nodes in the IoT: A consensus approach. In: 2014 IEEE International Conference On Communications (ICC), pp. 3848–3853 (2014)
Abedin, S. F., Alam, M. G. R., Il, S., Moon, C. S. H.: An optimal resource allocation scheme for Fog based P2P IoT Network. In: , pp. 395–397 (2015)
Fang, S., Da Xu, L., Zhu, Y., Ahati, J., Pei, H., Yan, J.: An integrated system for regional environmental monitoring and management based on internet of things. IEEE Trans. Indus. Inf. 10, 1596–1605 (2014)
Huang, J., Yin, Y., Duan, Q., Yan, H.: A game-theoretic analysis on context-aware resource allocation for device-to-device communications in cloud-centric internet of things. In: 2015 3rd International Conference on Future Internet of Things and Cloud (FiCloud), pp. 80–86 (2015)
Abuzainab, N., Saad, W., Hong, C.-S., Poor, H. V.: Cognitive hierarchy theory for distributed resource allocation in the Internet of Things, arXiv preprint arXiv:1703.07418, (2017)
Kim, M., Ko, I.-Y.: An efficient resource allocation approach based on a genetic algorithm for composite services in IoT environments. In: 2015 IEEE International Conference on Web Services (ICWS), pp. 543–550 (2015)
Angelakis, V., Avgouleas, I., Pappas, N., Yuan, D.: Flexible allocation of heterogeneous resources to services on an IoT device. In: 2015 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), pp. 99–100 (2015)
Usharani, S., Saravanan, D., Parthiban, R.: Resource allocation through energy in IOT network. IJSRCSEIT 2(3), 2456 (2017)
Thomas, D., Irvine, J.: Connection and resource allocation of IoT sensors to cellular technology-LTE. In: 2015 11th Conference on Ph. D. Research in Microelectronics and Electronics (PRIME), pp. 365–368 (2015)
Li, J., Qiu, M., Ming, Z., Quan, G., Qin, X., Gu, Z.: Online optimization for scheduling preemptable tasks on IaaS cloud systems. J. Parallel Distrib. Comput. 72, 666–677 (2012)
de Vasconcelos, D. R., de Castro Andrade, R. M., de Souza, J. N.: Smart shadow–an autonomous availability computation resource allocation platform for Internet of Things in the fog computing environment. In: 2015 International Conference on Distributed Computing in Sensor Systems (DCOSS), pp. 216–217 (2015)
Hassanalieragh, M., Page, A., Soyata, T., Sharma, G., Aktas, M., Mateos, G.: Health monitoring and management using Internet-of-Things (IoT) sensing with cloud-based processing: Opportunities and challenges. In: 2015 IEEE International Conference on Services Computing (SCC), pp. 285–292 (2015)
Gubbi, J., Buyya, R., Marusic, S., Palaniswami, M.: Internet of Things (IoT): a vision, architectural elements, and future directions. Future Gener. Comput. Syst. 29, 1645–1660 (2013)
Rui, J., Danpeng, S.: Architecture design of the Internet of Things based on cloud computing. In: 2015 Seventh International Conference on Measuring Technology and Mechatronics Automation (ICMTMA), pp. 206–209 (2015)
Colistra, G., Pilloni, V., Atzori, L.: The problem of task allocation in the Internet of Things and the consensus-based approach. Comput. Netw. 73, 98–111 (2014)
Kliem, A., Kao, O.: The Internet of Things resource management challenge. In: 2015 IEEE International Conference on Data Science and Data Intensive Systems (DSDIS), pp. 483–490 (2015)
Nahir, A., Orda, A., Raz, D.: Resource allocation and management in cloud computing. In: 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM), pp. 1078–1084 (2015)
Kim, S.: Asymptotic shapley value based resource allocation scheme for IoT services. Comput. Netw. 100, 55–63 (2016)
Yalong, W., Xi, L., Heli, Z., Ke, W.: Resource allocation scheme based on game theory in heterogeneous networks. J. China Univ. Posts Telecommun. 23, 57–88 (2016)
Singh, A., Viniotis, Y.: An SLA-based resource allocation for IoT applications in cloud environments. In: Cloudification of the Internet of Things (CIoT), pp. 1–6 (2016)
Yuan, X., Min, G., Yang, L.T., Ding, Y., Fang, Q.: A game theory-based dynamic resource allocation strategy in geo-distributed datacenter clouds. Future Gener. Comput. Syst. 76, 63–72 (2017)
Samie, F., Tsoutsouras, V., Bauer, L., Xydis, S., Soudris, D., Henkel, J.: Computation offloading and resource allocation for low-power IoT edge devices. In: 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT), pp. 7–12 (2016)l
Del Fiorentino, P., Vitiello, C., Lottici, V., Debels, E., Van Hecke, J., Moeneclaey M.: Resource allocation in short packets BIC-UFMC transmission for internet of things. In: 2016 IEEE Globecom Workshops (GC Wkshps), pp. 1–6 (2016)
do Nascimento, N.M., de Lucena, C.J.P.: FIoT: an agent-based framework for self-adaptive and self-organizing applications based on the Internet of Things. Inf. Sci. 378, 161–176 (2017)
Li, J., Sun, Q., Fan, G.: Resource allocation for multiclass service in IoT uplink communications. In: 2016 3rd International Conference on Systems and Informatics (ICSAI), pp. 777–781 (2016)
Zeng, X., Garg, S.K., Strazdins, P., Jayaraman, P.P., Georgakopoulos, D., Ranjan, R.: IOTSim: a simulator for analysing IoT applications. J. Syst. Archit. 72, 93–107 (2017)
Mardani, M. R., Mohebi, S., Bobarshad, H.: Robust uplink resource allocation in LTE networks with M2 M devices as an infrastructure of Internet of Things. In: 2016 IEEE 4th International Conference on Future Internet of Things and Cloud (FiCloud), pp. 186–193 (2016)
Sheikholeslami, F., Navimipour, N.J.: Service allocation in the cloud environments using multi-objective particle swarm optimization algorithm based on crowding distance. Swarm Evolut. Comput. 35, 53–64 (2017)
Xiong, X., Hou, L., Zheng, K., Xiang, W., Hossain, M.S., Rahman, S.M.M.: Smdp-based radio resource allocation scheme in software-defined internet of things networks. IEEE Sens. J. 16, 7304–7314 (2016)
da Mata, S.H., Guardieiro, P.R.: Resource allocation for the LTE uplink based on Genetic Algorithms in mixed traffic environments. Comput. Commun. 107, 125–137 (2017)
Aazam, M., St-Hilaire, M., Lung, C.-H., Lambadaris, I.: Pre-fog: Iot trace based probabilistic resource estimation at fog. In: 2016 13th IEEE Annual on Consumer Communications & Networking Conference (CCNC), pp. 12–17 (2016)
Kim, Y.-J., Choi, H.-H., Lee, J.-R.: A bioinspired fair resource-allocation algorithm for TDMA-based distributed sensor networks for IoT. Int. J. Distrib. Sens. Netw. (2016). https://doi.org/10.1155/2016/7296359
Rullo, A., Midi, D., Serra, E., Bertino, E.: Strategic security resource allocation for internet of things. In: 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS), pp. 737–738 (2016)
Alsaffar, A.A., Pham, H.P., Hong, C.-S., Huh, E.-N., Aazam, M.: An architecture of IoT service delegation and resource allocation based on collaboration between fog and cloud computing. Mob. Inf. Syst. (2016). https://doi.org/10.1155/2016/6123234
Zhang, H., Xiao, Y., Bu, S., Niyato, D., Yu, F.R., Han, Z.: Computing resource allocation in three-tier IoT fog networks: a joint optimization approach combining stackelberg game and matching. IEEE Internet Things J. 4(5), 1204–1215 (2017)
Tsiropoulou, E. E., Paruchuri, S. T., Baras, J. S.: Interest, energy and physical-aware coalition formation and resource allocation in smart IoT applications. In: 2017 51st Annual Conference on Information Sciences and Systems (CISS), pp. 1–6 (2017)
Hamidouche, K., Saad, W., Debbah, M.:Popular matching games for correlation-aware resource allocation in the internet of things. In: IEEE International Symposium on Information Theory (ISIT) submitted to IEEE (2017)
Li, S., Zhang, N., Lin, S., Kong, L., Katangur, A., Khan, M.K.: Joint admission control and resource allocation in edge computing for internet of things. IEEE Netw. 32, 72–79 (2018)
Hassan, S., Kamboh, A. A., Azam, F.: Analysis of cloud computing performance, scalability, availability, & security. In: 2014 International Conference on Information Science and Applications (ICISA), pp. 1–5 (2014)
Xiong, K., Perros, H.: Service performance and analysis in cloud computing. In: 2009 World Conference on Services-I, pp. 693–700 (2009)
Faragardi, H. R., Shojaee, R., Tabani, H., Rajabi, A.: An analytical model to evaluate reliability of cloud computing systems in the presence of QoS requirements. In: 2013 IEEE/ACIS 12th International Conference On Computer and Information Science (ICIS), pp. 315–321 (2013)
Duan, R., Chen, X., Xing, T.: A QoS architecture for IoT. In: 2011 International Conference on and 4th International Conference on Cyber, Physical and Social Computing Internet of Things (iThings/CPSCom), pp. 717–720 (2011)
Ardagna, D., Casale, G., Ciavotta, M., Pérez, J.F., Wang, W.: Quality-of-service in cloud computing: modeling techniques and their applications. J. Internet Serv. Appl. 5, 11 (2014)
Perera, C., Zaslavsky, A., Christen, P., Georgakopoulos, D.: Context-aware computing for the internet of things: a survey. IEEE Commun. Surv. Tutor. 16, 414–454 (2014)
Patel, P., Ranabahu, A. H., Sheth, A. P.: Service level agreement in cloud computing. https://corescholar.libraries.wright.edu/knoesis/78 (2009)
Buyya, R., Beloglazov, A., Abawajy, J.: Energy-efficient management of data center resources for cloud computing: a vision, architectural elements, and open challenges, arXiv preprint arXiv:1006.0308, (2010)
Beloglazov, A., Buyya, R.: Energy-efficient resource management in virtualized cloud data centers. In: Proceedings of the 2010 10th IEEE/ACM international conference on cluster, cloud and grid computing, pp. 826–831 (2010)
Marjani, M., Nasaruddin, F., Gani, A., Shamshirband, S.: Measuring transaction performance based on storage approaches of Native XML database. Measurement 114, 91–101 (2018)
Kagermann, H., Helbig, J., Hellinger, A., Wahlster W.: Recommendations for implementing the strategic initiative INDUSTRIE 4.0: Securing the future of German manufacturing industry; final report of the Industrie 4.0 Working Group: Forschungsunion (2013)
Hermann, M., Pentek, T., Otto, B.: Design principles for industrie 4.0 scenarios. In: 2016 49th Hawaii International Conference on System Sciences (HICSS), pp. 3928–3937 (2016)
Jasperneite, J.: Was hinter Begriffen wie Industrie 4.0 steckt. Comput. Autom. 12, 24–28 (2012)
Lasi, H., Fettke, P., Kemper, H.-G., Feld, T., Hoffmann, M.: Industry 4.0. Bus. Inf. Syst. Eng. 6, 239–242 (2014)
Daugherty, P., Banerjee, P., Negm, W., Allan, E.: Alter. 2015. “Driving Unconventional Growth through the Industrial Internet of Things.” Accenture,” ed
Choo, K.-K.R., Gritzalis, S., Park, J.H.: Cryptographic solutions for industrial Internet-of-Things: research challenges and opportunities. IEEE Trans. Indus. Inf. 14(8), 3567–3569 (2018)
Forsström, S., Buton, I., Eldefrawy, M., Jennehag, U., Gidlund, M.: Challenges of Securing the Industrial Internet of Things Value Chain. I: Workshop on Metrology for Industry 4.0 and IoT (2018)
Dey, N., Hassanien, A.E., Bhatt, C., Ashour, A., Satapathy, S.C.: Internet of Things and Big Data Analytics Toward Next-Generation Intelligence. Springer, New York (2018)
Reddy, B.R., Sujith, A.: A comprehensive literature review on data analytics in IIoT (Industrial Internet of Things). HELIX 8, 2757–2764 (2018)
(2016). What is Cryptocurrency? https://blockgeeks.com/guides/what-is-cryptocurrency/
Dorri, A., Kanhere, S. S., Jurdak, R.: Blockchain in internet of things: challenges and solutions. arXiv preprint arXiv:1608.05187 (2016)
Swan, M.: Blockchain: Blueprint for a new economy. O’Reilly Media Inc, Cambridge (2015)
Ron D., Shamir, A.: Quantitative analysis of the full bitcoin transaction graph. In: International Conference on Financial Cryptography and Data Security, pp. 6–24 (2013)
Banafa, A.: IoT and Blockchain Convergence: Benefits and Challenges, 10 Jan, 2017
Butler, B.: What’s the difference between SDN and NFV?, July 10, 2017
Bonfim, M. S., Dias, K. L., Fernandes, S. F.: Integrated NFV/SDN architectures: a systematic literature review, arXiv preprint arXiv:1801.01516 (2018)
Schiller, E., Nikaein, N., Kalogeiton, E., Gasparyan, M., Braun, T.: CDS-MEC: NFV/SDN-based application management for MEC in 5G Systems. Comput. Netw. 135, 96–107 (2018)
Li, S., Xu, L.D., Zhao, S.: 5G internet of things: a survey. J. Indus. Inf. Integr. (2018). https://doi.org/10.1016/j.jii.2018.01.005
Akpakwu, G.A., Silva, B.J., Hancke, G.P., Abu-Mahfouz, A.M.: A survey on 5G networks for the Internet of Things: communication technologies and challenges. IEEE Access 6, 3619–3647 (2018)
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Ghanbari, Z., Jafari Navimipour, N., Hosseinzadeh, M. et al. Resource allocation mechanisms and approaches on the Internet of Things. Cluster Comput 22, 1253–1282 (2019). https://doi.org/10.1007/s10586-019-02910-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-019-02910-8