# A Review on Internet of Things for Defense and Public Safety
## 5 Building IoT for Tactical and Emergency Environments
### Computation
#### 5.4.3 Fog Computing  
Several research concepts, such as fog computing, cloudlets, mobile edge computing and IoT-centric clouds have been recently proposed to complement the distributed cloud architectures for IoT data analysis and security [145; 146; 147; 148]. Fog computing has the potential to increase the overall performance of IoT applications as it tries to perform part of high level services, which are offered by the cloud, inside local resources. This paradigm is depicted in Figure 14.  
So far researchers have focused mostly on how to extend elastic resource consumption paradigms and big data solutions to distributed cloud configurations, instead of proposing new methodologies, paradigms and tools to efficiently exploit the capabilities of IoT hardware. Fog computing can act as a bridge between smart devices and large-scale cloud computing and storage services. Because of their proximity to the end-users, it has the potential to offer services faster. There is a significant  
Figure 14: Fog computing paradigm. difference in scale between the fog and the cloud: the latter has massive computational, storage, and communications capabilities compared to the former. Mobile network operators are potential providers of fog computing since they can offer fog services like laaS, PaaS, or SaaS at their service network or even at a cell tower, or even a type of transversal service, that is IoT as a Service (IoTaaS). The main advantages of fog computing can be summarized as follows:  
* Location: fog resources provide less delay because they are positioned between smart objects and the cloud data-centers. * Distribution: it is possible to deploy many of such micro centers close to the end-users as their cost is a small fraction of a cloud data-center. * Scalability: the number of micro fog centers can be increased to cope with the increasing load and the increased number of end-users. * Density of devices: fog helps to provide resilient and replicated services. * Mobility support: fog resources act as a mobile cloud. * Real-time: it provides better performance for real-time interactive services. * Standardization: fog resources can interoperate with various cloud providers. * On-the-fly analysis: fog resources can perform data aggregation to send partially processed data as opposed to raw data to the cloud data center for further processing. One important aspect of cloud platforms is the ability to interact with different application protocols. IoTCloud [149] is a project aimed at providing a scalable and high performance cloud platform for IoT applications. Fog computing still needs research to resolve other issues like reliability, mobility and security of analytical data on the edge devices. [PERSON] et al. [150] presented a fog computing model that brings information-centric cloud capabilities to the edge to deliver services with reduced latency and bandwidth. This situation calls for the need of a better horizontal integration between different application layer protocols. Several attempts of integration have been made in recent literature. For example, Ponte [151] offers uniform open APIs to enable the automatic conversion between various IoT applications protocols such as HTTP, CoAP, and MQTT. Nevertheless, the capability to perform any-to-any automatic protocol conversion implies that the underlying packet communication tends to be more verbose in order to be application agnostic. Furthermore, Ponte, as many other protocol gateways, assumes the underlying devices to be TCP/IP enabled. Also, resource-constrained devices are not considered at all in this solution. The Kura project [152] is an M2M application platform that provides a Java/OSGi-based container for applications running in service gateways. Kura covers I/O access, data services, watchdog, network configuration and remote management. Scada [153] focuses on providing a way to connect different industrial devices to a common communication system. It aims to ease post-process and data visualization.