Despite many research studies carried out in fog computing and the recent development in the IoT, there are still many challenges and research issues that must be carefully studied regarding the utilization of fog paradigm in the IoT era.
Standards & Programming Languages
Initially, fog computing has been utilized to extend cloud-based services closer to IoT devices. Since the structure of fog and cloud are different, it is highly required to modify and improve the existing standards and
related programming languages in order to enable cloud-based services in fog paradigm. In addition, it is extremely important to develop efficient networking protocols and user interfaces for the management of a large
number of connected devices in fog-based IoT systems.
Scalability is a crucial issue that has to be considered by researchers for large-scale systems such as fog-based IoT applications. The lack of real-world data on fog-based systems may result in algorithms that are not suitable for real-world scenarios. Therefore, it is beneficial to investigate optimal algorithms that describe the complexity of the fog-based systems. Moreover, the local interactions within the fog-based IoT networks can result in instability of global states in most distributed systems. Mechanisms to overcome this challenge will significantly enhance the performance of the fog-based IoT networks. Furthermore, in fog-based systems, only
necessary and urgent requests are managed by the fog and the other tasks are sent out to the cloud for further processing. Therefore, it is important to determine the point where the fog achieves the optimal resource utilization based on the type of service, the number of users, and available resources.
Fog devices provide an efficient platform for multiple heterogeneous technologies offering various services to the end-users in the IoT era. However, an important challenge is how to link resources across multiple
platforms. Therefore, it will be extremely important to investigate efficient algorithms, regarding scheduling, matching and synchronization tasks, for proper resource utilization of resource-constrained IoT devices.
Deployment is an important issue in fog-based IoT systems as it may cause latency if it is not done properly.
The decision regarding the deployment of fog layer in the IoT architecture should be made according to different requirements such as the number of sensors, type and amount of task that will be carried out in the fog
layer, and the capability of fog devices. It is of utmost importance to investigate how these requirements will be fulfilled. Moreover, another important issue during deployment is related to application and resource scaling. According to the requirement of the application and resource, scaling and shrinking can be utilized if they do not interrupt the existing services. In this regard, placement may affect the deployment of fog
computing paradigm .
Fog nodes have to handle a vast number of services coming from various end devices (e.g. sensors). One approach in this regard is the deployment of fog nodes in the environment based on the demand. However, this
solution will dramatically increase the number of computationally active fog nodes and hence, increase the total power consumption of the system. Therefore, in fog networks, efficient power management is crucial in dealing with a large number of available services. In addition, for the power management within fog network, it can be an effective solution to consolidate fog nodes by moving jobs from one node to another in some applications.
Therefore, it is important to investigate the techniques regarding this issue in fog-based systems.
Moreover, fog devices are often power-constrained. Therefore, it is important to manage energy usage within the fog-based IoT ecosystem using optimal power control techniques. As the communication in the fog-based IoT ecosystem is mostly machine-oriented, it results in a drastic increase in energy consumption of IoT devices.
Therefore, further research needs to be carried out in order to improve energy efficiency within the framework of fog-based IoT.
Security & Privacy
Security and privacy are also one of the most important challenges in the realization of fog-based systems.
Since fog nodes are located between end-users and cloud data centres, the security vulnerability of fog computing is relatively high. For instance, in some cases, data which are coming from end devices (e.g. sensors)
are related to users’ situations and interests. Therefore, one of the most important concerns regarding security in fog computing is related to appropriate privacy assurance that needs be thoroughly investigated. One of the most dangerous attacks in fog-based IoT architecture is Distributed Denial of Service (DDoS) attack. DDoS attacks may be generated from IoT end-devices. For instance, different malicious devices may start many fake
service requests simultaneously. This makes it impossible for the IoT end-devices to handle real service requests due to limited processing capabilities since they are busy with those fake service requests. Another
important security attack in fog-based IoT environments is Man-in-the-Middle Attack (MMA). This attack easily utilizes fog-based IoT infrastructures to reveal private and sensitive information such as the identity and location of the IoT end-devices . It is also possible to physically compromise hardware components such as IoT end-devices, sensor devices, and RFID tags. This type of attack is called a physical attack. The capability of physical attacks depends on the location of deployment and the level of protection given to such devices.
Blockchain & Software-Defined Networking (SDN)
The Blockchain technology is capable of delivering a secure foundation for regulating data as well as information transactions between independently functioning devices in fog-based IoT environments.
Blockchain introduces secure transmission and storage by digitally signed documents in order to enhance privacy and protection. Therefore, it is very important to research more into this technology in order to provide
and enhance mechanisms regarding transferring data directly among IoT devices for secure communication using a reliable method such as a time-stamped contractual handshake .
In addition, Software Defined Networking (SDN) is a technology that can be integrated with fog technology to provide efficient data sharing and reliable resource cooperation. SDN can also add more functionalities such as
intelligence to the fog-based IoT networks . Moreover, SDN can be used to secure fog-based IoT architectures. For example, the authors in  proposed a hybrid network architecture utilizing SDN and
Blockchain for smart cities. Therefore, it would be beneficial to conduct research into SDN and its integration with Blockchain to provide efficient architecture towards sustainable smart cities.
In fog computing, latency management is necessary in order to ensure an acceptable level of Quality of Service (QoS). Therefore, research into various latency management approaches will help to provide lowest latency in
service delivery and ensure better QoS in the entire system. Another important issue in fog computing is related to resource estimation. It helps in allocation of computational resources based on different policies so that
proper resources for further computation can be allocated. Therefore, extensive research into various resource estimation policies in terms of different factors such as user characteristics and experienced QoE would be
beneficial in order to achieve desired QoS.
Sustainability & Interoperability
Sustainability is referred to the use of renewable energy resources, energy harvesting and energy-efficient designs to decrease the total carbon footprint . This is an important requirement when designing fog-based
IoT architectures for smart cities. In smart cities, it is expected to have dense IoT end-devices and fog computing servers. Thus, the infrastructure design of smart cities would face significant energy limitations.
Therefore, it is extremely important to conduct research into various ways to improve the energy efficiency of fog-based IoT systems without degrading QoS. This can be done using energy-efficient caching techniques.
Interoperability is another important requirement to turn the vision of fog-based IoT and sustainable smart cities into reality. The challenge of interoperability for fog-based IoT systems in sustainable smart cities arises
because of a huge number of heterogeneous IoT devices operating with different protocols. The fog-based IoT architecture should be able to provide interoperability in order to enable seamless operation in such a way that different systems and devices can understand and use each other’s functions properly. Therefore, further research needs to be conducted in order to design frameworks that support interoperability for fog-based IoT
systems in sustainable smart cities.