# Process Automation in an IoT-Fog-Cloud Ecosystem: A Survey and Taxonomy
## 3 Challenges in the IoT Layer  
Many studies note the problems and challenges of data processing and task scheduling in the ecosystem. [PERSON] et al. [7] states the concept of fog nodes in processing light-weight data in the ecosystem and its deployments problems. The study notes the fog node deployment as an optimization problem in the ecosystem.  
[PERSON] et al. [24] depicts the types of heterogeneity in the ecosystem, such as heterogeneity in resource type and duration and how the heterogeneity causes problems in high-performance computing and simultaneous processing. [PERSON] and [PERSON] [25] counts the resource uncertainty and resource heterogeneity in cloud computing. [PERSON] et al. [26] also described the problems of computation and network resources arising from heterogeneity.  
[PERSON] et al. [27] discusses the problems of emerging sensor data on the Internet and the rising big data problems, which makes data analysis more challenging. [PERSON] et al. [28] shows the inefficiency of cloud computing and cloud resources and storages in data computation and task scheduling.  
Figure 4 shows the three main challenges of any IoT application:  
* Data offloading;
* Heterogeneity;
* Big data.  
Data offloading: As IoT applications are mostly real-time, latent data processing and management are not acceptable. One way of reducing the latency is to minimize the data transfer between the Cloud and IoT devices and facilitate computation in the Fog layer. Hosting IoT applications in the Fog layer while satisfying their QoS parameters without relying too much on Cloud resources is called Fog offloading. Providing good data offloading requires improved task hosting and task execution in the Fog layer with satisfying QoS timing parameters.  
Heterogeneity: Distributed small devices with light-weight computation power should compete with Cloud resources in order to make the Fog layer a better hosting environment for IoT related sensitive tasks. Each of these devices and hardware components come to the Internet with different architecture, hardware power, and capability. Heterogeneity exists in data, processors, software, and communication types. Data heterogeneity exists in two types: local data accessible to IoT and Fog layer, and global data accessible to all layers. Heterogeneity in the ecosystem's components includes IoT light-weights processing devices, sensor generator devices, cellphones, and end devices. Hardware platforms are also heterogeneous in the ecosystem and vary from IoT sensors, Fog gateways and processing units to sophisticated, high computational resources in Cloudlayer(data centers and servers). Software heterogeneity exists in tools, scripts, executing batch files, and machine learning applications.  
Big data: Enormous data stream resulted from connecting an ever-increasing number of sensors and objects to the Internet, causes hosting, scheduling, processing, and decision-making tasks hard-to-tackle.  
The automatic functions are defined in this paper to resolve the main challenges in any real-time IoT application. The communication types in the ecosystem are three types: machine-to-machine, machine-to-human, and human-to-human.