Situation Detection for Mixed Cloud-Edge (Fog) Computing Infrastructures

Fog computing infrastructures are highly dynamic and constant to continuous changes. For example, they may add or retract dynamically new computing nodes including devices at the extreme edge of the network, depending on the computing requirements of the application or services that are deployed on them. Hence, there is a need for facilitating situation awareness, i.e. capability to detect situations requiring attention. For example, detect situations that require some kind of infrastructure adaptation or re-configuration. Ye, Dobson & McKeever, in their 2012 paper entitled “Situation identification techniques in pervasive computing: A review”, published in Pervasive and mobile computing, 8(1), 36-66, point out that, unlike other ICT domains, situations in fog computing infrastructures are highly related to sensor data, domain knowledge on environments and applications. Sensor data occur in large volumes, in different modalities, and are highly inter-dependent, dynamic and uncertain. Situations are in a rich structural and temporal relationship, and they evolve in diffuse boundaries. In addition, the complexity of domain knowledge and applications makes studying situations a very challenging task.

Ye, Dobson & McKeever surveyed both specification- and learning-based approached for realizing situation detection. Specification-based approaches represent expert knowledge in logic rules and apply reasoning engines to infer proper situations from current sensor input. Learning-based approaches are used to learn complex associations between situations and sensor data. Most of the examined learning techniques are supervised learning, such as naïve Bayes, Bayesian networks, HMMs, CRFs, and so on. These techniques learn the models and parameters from training data that usually requires a human to label a situation to sensor data that are observed during the occurrence of this situation. Compared to specification-based approaches, a distinguishable features of the learning-based approaches is their ability in uncovering a pattern or correlation underlying data.

Since, the fog environments targeted by PrEstoCloud combine multi-cloud and edge resources, we need a mechanism to detect situations from heterogeneous devices and services with very different capabilities in terms of computational resources and provide the ability to control and customize the execution environment. For example edge devices may have very low computational resources or a very restricted (due to security reasons) environment for custom applications. Very often those devices have low network bandwidth, unpredictable disconnections from the network and data transmission spikes that are caused by external events (such as social events, weather conditions or other). In this environment we need infrastructure and mechanisms for data-driven event detection. Therefore, PrEstoCloud opted for an approach that relies on complex event processing technologies, which are capable of processing in real-time a large number of events generated by a variety of distributed cloud and edge computing resources as well as other data generating sensors. A complex event is an event derived from a group of events using either aggregation of derivation functions. Information enclosed in a set of related events can be represented (i.e., summarized) through such a complex event.

The first version of the PrEstoCloud SDM can be found at:

https://gitlab.com/prestocloud-project/situation-detection-mechanism.git.

We designed the SDM component (Figure 1) so as it is modular and can be easily deployed as a Docker container or a set of Docker containers. We designed SDM to be independent of CEP libraries and we have shown that it can operate with both the Siddhi and Drools CEP libraries.

Figure 1 – PrEstoCloud Situation Detection Mechanism Architecture

Testing of SDM revealed that it is capable to detect situations defined as complex event patterns. Specifically, we tested SDM in conjunction with both Drools and Siddhi in two scenarios: first, we stress-tested it using the PerfTest load-testing tool of RabbitMQ and, second, to detect situations in computer network traffic in a real production computing environment. Tests indicated that SDM can be used to detect situations expressed as complex event patterns; that is SDM provides detection capabilities for situations that are few and can be modelled manually. Our tests have shown that Siddhi can scale better than Drools. During the course of the project, we will evaluate the spec complex event based approach and, if needed, we will augment it with learning-based methods and techniques to cope with more and more complex situations, which can be manually specified as well as with imperfect sensors.