Keywords

1 Introduction

In the current era of the smart world, we are and will be surrounded by a broad set of smart objects, thus gradually, day by day, entering into and forming part of an ever smart environment. In these days, significant research and industrial activities are focusing on making everything much smarter. Many of these activities are using cutting-edge technologies. In this endeavor, the Internet of Things (IoT) [9] is the most promising and enabling technology. In these days, almost all of the computing and small electronic devices have the facilities to connect to the Internet. Indeed, in [15], authors already provided various statistics to represent the increment rate and future trends of using the IoT devices. So following these trends and statistics, it is clear that, as we are gradually entering into the smart environment, the number of IoT devices is also drastically increasing. By looking at the smart environment system, it is noticeable that all these massive numbers of IoT devices and other computing devices are highly distributed and scattered over the network. For that reason, correct management of this massive amount of devices intended to provide latency-sensitive services to the end users efficiently - is one of the most challenging tasks. To that end, the Fog-to-Cloud (F2C) concept recently came up aimed at optimizing resource utilization while efficiently executing services.

In order to better understand what the F2C paradigm is, we represent in Fig. 1 our view of smart city. In this figure, a smart city may consist of multiple numbers of Fog Areas, each consisting of several heterogeneous IoT devices and other computing devices. Most interestingly, all these devices are diverse in nature. So, the management of this vast number of devices intended to provide real-time services delivery efficiently is the most crucial issue. By considering these challenges and problems, our primary intention is to find out a suitable and proper resource management strategy particularly suiting the F2C paradigm. By identifying the resource and service classification and also by focusing on the functionalities of the different management module (i.e., categorization, resource sharing, resource collector etc.), in this paper, we are proposing the outlined structure for managing the resources in the system. This adequate resource management strategy architecture is envisioned as the initial step for defining the proper resource management strategy in the F2C.

Fig. 1.
figure 1

The Fog-to-Cloud (F2C) computing paradigm in a smart city.

The rest of the paper is organized as follows. We discuss the background of our research work in Sect. 2. The core concepts of the F2C computing are presented in Sect. 3. In Sect. 4, we present the resource management architecture for the coordinated F2C paradigm. Following the previous sections, in Sect. 5 we briefly discuss the future directions of our work by focusing on the various aspects of designing the cost model in the F2C paradigm. Finally, some concluding remarks of our research work are given in Sect. 6.

2 State of the Art

With the recent advancement in modern technology and considering the smart city scenario, many applications need real-time service provisioning support and a massive amount of processing and storage capacity. So to fulfill these requirements, the new coordinated F2C system has emerged. In this system, IoT, fog, and cloud technologies are potentially equal and play the crucial role to bring more efficiency in the smart city scenario. Most importantly, in a smart city scenario, the diversity and heterogeneity in the system resources and services generate key challenges in building an efficient resource management strategy in the F2C paradigm.

In [14], to improve the efficiency of fog resource utilization and satisfy the users’ QoS requirements, the authors proposed a dynamic resource allocation strategy for fog computing based on ‘priced timed Petri nets’. Whereas in [10], considering the IoT devices and the fog computing platform the authors proposed a simulator. The simulator toolkit measures the impact of a resource management strategy in fog computing by considering the latency, network congestion, energy consumption, and cost. Defining the cost model is one of the critical tasks of any computing platform. In [1], authors proposed a cost model for the fog computing platform, where they proposed the process for determining the cost of accessing the resources to execute some tasks. Considering the virtualization techniques, in [2], the authors proposed an architecture and a strategy for resources provisioning in fog computing environment. Authors in [8] proposed the linear programming based heuristic algorithm to build a cost-efficient resource management strategy for the framework, which they have considered. In that algorithm, they addressed the computation complexity in a fog computing supported medical cyber-physical system.

Similarly, in the cloud computing paradigm, some research has been done to tackle the cloud resource allocation and scheduling problem, both in academia [22] and industry [21]. In [4, 20], authors designed some work-flows for allocating the cloud resources and achieve some specific goals. Furthermore, in [23], a resource management strategy has been described by considering the application performance and cost. Whereas in [18], the authors proposed a scheduling algorithm for cloud resources to enhance the cloud resource utilization and guaranteeing some execution deadlines. In [11], the authors presented a distributed cloud resource allocation algorithm by optimizing the service response time. Also, in [16], authors proposed a combinatorial double auction-based model for allocating cloud resources.

Finally, like as the fog and cloud paradigms, in some other related computing paradigms, some research has been done to find out the most efficient resource management strategy. For instance, in [6], the authors proposed an auction-based market-oriented resource scheduling algorithm for managing the resources in a grid computing platform. Some research work has also been done on the combined, fog to cloud, or cloud-edge platforms, to manage the system resources. For example, by minimizing the service-latency, authors in [19] proposed the QoS-aware service allocation problem in the combined fog-to-cloud architecture. Also, in [17], for a performance-sensitive application, the authors presented a framework for managing the cloud-edge resources and guaranteeing the QoS factor of their considering system. Though several numbers of research works have been already conducted on tackling the resources in different individual computing paradigms, we have not still found any comprehensive, cost-effective strategy to managing the resources in such coordinated F2C computing platform.

3 Architectural View: The F2C Framework

In smart cities, the combined F2C computing paradigm has emerged as a reference architecture for optimizing resource utilization and improving services execution. The main rationale for F2C is to combine the whole set of resources brought in by putting together cloud computing and fog computing [5], seeking for higher QoS delivery and a much better resource utilization. By following Fig. 1, it can be easily identified that in a modern smart city several Fog Areas may be defined to build the coordinated F2C platform. Each Fog Area builds upon a vast amount of different IoT devices and considers a particular node is acting as a fog service provider and thus responsible for providing the fog services to the users of the corresponding Fog Area. This particular node is known as Leader Fog Node. Similarly, many different cloud providers may control the provisioning of cloud facilities to the citizens of a smart city.

Fig. 2.
figure 2

Fog-to-Cloud (F2C) computing architecture: Hierarchical representation.

In [12], the authors represent the F2C platform as a combined, hierarchical and layered architecture, where cloud resources reside at the top layer and fog resources at the bottom, right above the IoT devices. Indeed, according to the envisioned architecture, the IoT layer resides at the bottom of the layered architecture and includes the whole set of IoT devices. The architecture considers several intermediate fog layers, which are built by grouping various edge devices. Hence, in this section, by considering all the key potential issues in the smart city scenario, we represent the hierarchical structure of the F2C architecture as shown in Fig. 2. Following the hierarchical structure and considering the depicted smart city scenario we argue that for each Fog Area, the Leader Fog Node is acting as a gateway for coordinating with the upper layer resources.

Also in the same paper [12], authors highlighted the need to have a comprehensive devices control and management strategy to build an efficient F2C system in their research work. As mentioned previously, we identify heterogeneity as the main challenge of managing the vast amount of devices. So, in this paper, by knowing the system resources and services, we present the model for managing the system resources and efficiently providing services delivery in the F2C paradigm. Consequently, in the next section, we describe the proposed model for the resource management strategy in the F2C paradigm. Moreover, we briefly discuss the various modules involved in the resource management strategy of the F2C paradigm.

4 Proposed Model: Resource Management Strategy for the F2C Paradigm

Before we intensely focus on the resource allocation strategy in the F2C platform, it is relevant to briefly discuss on the various modules and aspects, which are mandatory to build a proper plan for managing the resources in the F2C paradigm. Consequently, in this section, we represent the strategical model for managing resources in the F2C platform.

Fig. 3.
figure 3

Resource management strategy in the F2C paradigm.

In Fig. 3, we represent the framework for managing the resources in the Fog-to-Cloud (F2C) computing platform. According to the diagram, there are several components or modules are working together to achieve the proper resource management strategy in the F2C paradigm. Considering the various potential issues in a smart city scenario, in the next, we briefly discuss the functionalities of each component or module.

4.1 Categorization Module

As earlier mentioned, the most significant challenge, for managing resources in a smart city scenario is the diversity and variety of the whole set of resources from the edge up to the cloud. Simultaneously, many different services may be considered in a smart city scenario. Undoubtedly, by successfully and efficiently providing all these services to its citizens, the city becomes much more smarter. Unfortunately, services have different characteristics (i.e., free or chargeable services), contexts (i.e., governmental, health, educational, etc.) and even different requirements (i.e., resource requirements for executing the services). That kind of diversity creates notable difficulties to build up the proper resource management strategy in the F2C paradigm for an appropriate matching with the smart services. So, before forming the appropriate resource management strategy, it is pretty relevant to identify the classification and categorization of the system resources and services involved in the F2C paradigm. Hence, in this subsection, we first put the focus on the resource categorization, and later on, we briefly represent the service categorization.

Resource Categorization. The enormous diversity and heterogeneity of the system resources create some serious challenges for managing them into the F2C paradigm. For that reason, it is essential to know the system resources properly by understanding their characteristics and build a proper catalogue of them. Following the hierarchical structure of the coordinated F2C platform in a real smart city scenario, it can be easily identified that the devices working at the lower layer (i.e., IoT or fog layer) are mostly resource-constrained devices. Thus, their computation, storage and processing capabilities are different from those at upper layers (i.e., cloud layer) devices. Most interestingly, in the F2C visualized scenario this evaluation is even more elaborated, leveraging the various layers foreseen for fog. Indeed, according to the hierarchical structure of the F2C platform, different layers include devices with different characteristics. Thus, considering all these potential issues and the hierarchical layered structure of the F2C paradigm, we propose to define a novel taxonomy for characterizing the different F2C resources.

In Fig. 4 we represent the categorization model of the F2C system resources. Initially, in the F2C system, several attributes and characteristics are considered to classify the system resources, including Device attributes (i.e., hardware, software, network specification, etc.), IoT components & Attached components (i.e., sensors, actuators, RFID tags, or additional attached device components), Security & Privacy aspects (i.e., device hardware security, network security and data security), Cost Information (i.e., chargeable device, non-chargeable device), and History & Behavioral information (i.e., participation role, mobility, life span, reliability, information of the device location, etc.).

Fig. 4.
figure 4

Generalized resource categorization model in the F2C paradigm.

Service and Task Categorization. In any computing platform, before knowing the characteristics of services, it is relevant to identify the definition of ‘Service’ and ‘Task’ because in the context of a system both of them are quite closely related to each other. In [3], according to the authors, the ‘Task’ means performing some certain job(s) or function(s). Whereas, in [7], the authors define the ‘Service’ is a composite made up of small blocks of functionalities. According to them, the system is providing the service to the users, by executing some task. Therefore, following the F2C computing platform in the smart city environment, we found that service characterization is the composite form of two steps: one is the service classification, and the other is task classification. Combining these two steps, we get the proper taxonomic model for service-task in the F2C platform.

In addition, as said before, diversity also refers to the services concept. Formally speaking, in order to provide service(s), it is necessary to execute some task(s) or perform some job(s). And, to that end, it is necessary to meet some specific requirements (i.e., resource components requirements, time requirements etc.). Interestingly, each of the tasks having various kind of requirements. In Fig. 5, we represent the combined form of service-task categorization model in the F2C paradigm. By considering all the potential issues in a smart city and also following the various characteristics and attributes of the services, initially, we classify the services according to five different aspects: Context of services (i.e., governmental, educational, transport, etc. related services), Service location (from where the services are offered, i.e., cloud or fog etc.), Secure & Reliableness (i.e., based on the security preferences, services can be classified), Data Characteristics (i.e., based on the amount of data processing requirement, services can also be classified), and Cost information (i.e., based on the service offering cost, services can be further classified into chargeable or non-chargeable services). As earlier mentioned, in any system services are offered by executing some task(s). Therefore, not only services in the F2C system should be classified according to their characteristics and attributes, but similarly, tasks can also be classified according to their Execution requirements (i.e., network bandwidth capacity, time requirements, processor requirements, etc.) and their Priority (i.e., high, medium, or low). So combining the service and task classifications in the considering system, we represent the Service-Task Categorization model in the F2C paradigm.

Fig. 5.
figure 5

Generalized service and task categorization model in the F2C paradigm.

In the F2C paradigm, both of the categorization models help to identify the characteristics and attributes of the resources and services. Explicitly, that helps to define the proper resource-service mapping mechanism and build the proper resource management strategy in the coordinated F2C platform.

4.2 Resource Sharing Module

Following the smart city scenario, it can be easily identified that many citizens in the smart city, are only using the F2C system for only accessing some smart services. Whereas, many of them are joining the F2C system by contributing their devices to execute some task, in order to provide the service. Also, some of them may enter into the F2C system for accessing the facilities as well as contributing their devices to execute the task. So, mainly in the F2C system, devices may participate as either ‘Consumer’, ‘Contributor’, or ‘Both’. For each device, before contributing their resource components to the F2C system, it is necessary to define the resource sharing model. Based on the owner preference, system policies, and availability of their resource-components, a resource sharing model can be determined. For a specific device, the sharing model can be defined as the abstract or ‘shareable-amount’ view of the whole set of available resource components of the corresponding device. In the F2C paradigm, the virtualization technology enables the provision to make such an abstraction for a particular device. In the F2C platform, the responsibility of the Resource Sharing Module is to provide the information about the amount of participating resource-components to the system. Explicitly that information also helps to manage the system resources efficiently, and adequately provide the services.

4.3 Resource Collector Module

Before deciding and allocating the proper and suitable resources for executing the task and providing the service, it is essential to have an overview of the available amount of resource-components. Initially, the Resource Collector Module obtains the information about the resource characteristics from the Resource Categorization Module. However, the Resource Sharing Module is enriching the Resource Collector Module by providing the information about the actual amount of participating resource-components. In the F2C platform, this module is in-charge of continuous monitoring the status of currently available participating resources, and also it is continuously generating a landscape of the system and providing the information about the characteristics.

4.4 Smart Box and Perceptive Module

In the proposed F2C resource management framework, the Smart Box is one of the most important and intelligent composite components. The sole function of this component is to allocate the best available resource to execute the requested task(s) and provide the service(s). In the F2C architecture, togetherly the Mapper Module, Cost Model, and Forecasting Module define the Smart Box.

Initially, for the first time (i.e., the first time a resource is executing a new task or first time a new resource is performing a task), the resource in the F2C system is allocated based on the predefined Cost Model. Considering the hierarchical distributed F2C architecture in a smart city scenario, we identified that it is a pretty challenging job to define a proper Cost Model in such a distributed paradigm. Following [8, 13] and considering all the potential critical issues in a smart city scenario, we identify that the Cost Model in the F2C paradigm could be defined by considering various aspects, i.e., the system deployment cost, resource usage cost, SLA, etc. In addition, we can find that there is a trade-off between cost and QoS parameters; for example, the higher security requirement cost for a system means that the QoS metrics should be degraded. Following these various aspects we identified that the cost of the F2C system could be mainly classified as following: Deployment cost - cost for deploying the system; Task execution cost - can be measured by following the resource usage for executing the task, i.e., bandwidth usage cost, power cost, computation cost, etc.; SLA related cost - the cost which is calculated by negotiation agreement for services, between the service providers and users. Also, we can classify the cost, according to the dependency on the QoS parameter. So considering all these potential issues the Cost Model can be designed in the F2C system and which helps to denote the resources by providing some weight on them. Finally, based on this weights, the appropriate and best resource should be allocated to execute the task(s) and provide the service(s).

For building an efficient and enhanced resource allocation mechanism, it is necessary to understand the historical information of past execution. For this reason, in the running F2C system it is essential to keep tracking the information of resource usage for executing the task(s). So, following Fig. 3, it can be easily identified that the Perceptive Module is always monitoring the task-service execution procedure in the F2C paradigm and collecting the actual information of resource usage during task(s) execution. After collecting this information, the Perceptive Module is continuously updating this information to the Smart Box. Based on the past execution information, available resource information, and information about the service-task requirements, the Forecasting Module predicts the updated resource usage for executing the newly requested task(s). Using some machine learning techniques the Forecasting Module will be able to predict the resource usage for executing the newly requested task(s) and then passes this information to update the Cost Model. Now after getting this information, the Cost Model calculates the new cost of the resource(s) and denoted with the new weight. After that, the Mapper Module will be able to propose new and more accurate allocation options for task(s) execution.

5 Future Directions and Opportunities

In the previous section, we have proposed the strategical architecture for resource management in the F2C platform, as part of a smart city management scenario. We have presented the different modules of the architecture which are potentially involved in building the model. We have seen that there are several technical issues to be addressed, such as virtualization techniques, defining and managing user and system policies and preferences, and analyzing the effectiveness of different cost models, just to name a few. In fact, by focusing on various service-oriented system architectures, we found that cost is one of the most important aspects to be considered. As we have already seen, an enormous number of devices are participating in the F2C platform and contributing their resource-components to provide some services, so it is pretty relevant that these resources might get some revenue for providing the services in the F2C system. So, we believe that it is necessary to define the generalized cost model for the F2C system that might help to find and to allocate the most appropriate resource(s), in order to execute some task. In the F2C platform, also by considering the cost model and policies, it is possible to create the various strategy for managing the resources. By comparing the different resource management strategies, it is possible to build the generalized, approximate and optimal solutions for managing the resources in the F2C paradigm.

6 Conclusion

In this paper, we have proposed the strategical architecture for managing the resources in a coordinated Fog-to-Cloud computing platform. The proposed model is illustrated in a smart city scenario for the sake of better understanding. We also briefly described the different modules and their functionalities envisioned in the proposed model. By addressing the various challenges in the smart city scenario, we have defined the resource and service-task categorization module for the F2C system. This work is presented as the initial step to determine and design a comprehensive resource management strategy in the F2C paradigm, but still, lots of work and many challenges remain to be addressed.