Context Awareness in Distributed Computing Systems

J Preden, Johannes Helander

Creating robust systems that deal with and consist of both the physical world and networked computing nodes is relevant to a large class of applications, such as consumer electronics, energy efficient homes, industrial automation, civic infrastructure and mechanical systems, such as airplanes and automobiles. Due to the importance of such cyber-physical systems to our everyday lives and economies, it is worthwile to investigate and develop new methodologies for programming such systems. While significant advances in programming large numbers of communicating tiny computers – such as sensor networks – have been made in the past decade, the progress has not been as fast as it was expected. The slow advancement of these systems is due to several reasons. Sensor networks are in close interaction with the physical world, having to react to the stimuli received from the physical world, all the while the computers in these systems are interacting with each other. The systems are highly dynamic: new nodes join and leave the network and the timing of message transmission depends on the ever changing environment and the relative location of nodes. Thus the configuration, topology and timing of interactions cannot be known before the system is actually operational, rendering traditional static analysis methods insufficient. The computation in these systems depends on the current and past interactions and is therefore different from that of classical deterministic computing systems. Distributed computing systems consisting of a large number of nodes connected to the real world tend to exhibit emergent behaviour, which the current state of art is not able to predict, analyze and account for. This article proposes that using context information in the computation may be part of the answer to dealing with the emergent behaviour and dynamicity of cyber-physical systems. The paper then presents some examples of what can be considered context information and how this context information can be used in the computation. Finally, the paper presents a general architecture for collecting and organizing context information.