The increasing complexity of embedded systems
is due, but not limited, to the increasing quality and
quantity of the resources involved (e.g. Multi-core
processing units). It is interesting to note that such
resources are there in the first place to tackle the in-
creasing complexity brought onto the system by ever-
increasing requirements and functionality (realized by
software). Another approach to handle such complex-
ity and, as a result give rise to different complexity, is
to distribute the system or to increase its connectivity.
Increasing the connectivity of systems at various lev-
els gives rise to potential benefits that is addressed by
trends such as the Internet of Things, Cyber-Physical
System (Lee, 2008) and Cyber Biosphere (Rammig,
2008). Hence, simple computational and communi-
cation units connected with similar units give rise to
complex behavior which is also the basic concept of
swarms (Dorigo and Birattari, 2007). An example
where units (or nodes) that are relatively simple at
the individual level but combine to create more com-
plex behavior, is a group of communicating mobile
robots called bebots (Herbrechtsmeier et al., 2009).
The Bebots consist of a relatively simple architecture
and communicate via an ad-hoc network. Another
more common example is a sensor network, which
relies on very simple but large number of stationary
sensing nodes, possibly distributed over a vast area to
gather information. Thus it is inevitable that the vast
global network mentioned above will consist of com-
putationally constrained units.
The ability of systems to adapt while being con-
nected to a global network presents new opportuni-
ties. Qualities such as fault tolerance and load sharing
may be extended to nodes in the network that initially
were devoid of them. Conversely, an open adaptable
system that does not limit its adaptation to pre-defined
and pre-containing states needs to be connected to
one or more sources that may provide the necessary
components to switch to the new state. Extending
computationally constrained nodes with the ability to
adapt is in itself challenging, which increases when
timely behavior is required due to real-time require-
ments. The system must then guarantee all dead-
lines implying the need for deterministic adaptation.
The question when to adapt becomes an important
one with real-time deadlines involved. In literature
we find two common techniques namely (a) adapt at
once and (b) adapt on demand. In the former, all
the required adaptation steps are scheduled in a sin-
gle block. The duration of this block is not fixed and
depends on the amount of adaptation. In the latter,
adaptation takes place only when the functionality, to
be directly effected by the adaptation, is accessed. In
the first case, the duration of the adaptation is unpre-
dictable, whereas in the second case, access times be-
come unpredictable since an access may trigger adap-
tation.
In this paper we present an approach to tackle the
issue of runtime adaptation on computationally con-
strained systems with real-time constraints. Our focus
is on systems with only a single general purpose pro-
cessor, with the responsibility to run the system and
application software. In section 2, we introduce our
Framework followed by the architecture and evalua-
tion in sections 3 and 4 respectively. Related work is
then found in section 5 followed by the conclusion in
section 6.
2 FRAMEWORK
The inevitable presence of computationally con-
strained systems in emerging paradigms such as the
Internet of Things, has already been emphasized
above. This section introduces a framework that en-
ables such systems to adapt during runtime and par-
take in the dynamics of the global network thus cre-
ated. To achieve this the framework, viewed from the
bottom up, provides a supporting mechanism to (a)
enable the behavior to execute and (b) enable the sys-
tem to deterministically adapt. Adaptation may in-
clude changes to the current behavior of the system,
as well as addition of new behavior. These tasks are
the responsibility of the Middleware. To facilitate the
work of the Middleware and pave way for efficient
behavioral reconfiguration, a behavioral model is pro-
vided. The model lays forth the anatomy of the appli-
cation designed for the embedded system enabling the
behavior to be captured in a desired structure. Further,
the model lays down rules of communication that al-
low for efficient connection reconfiguration between
the behavioral units. The idea is to support the adapta-
tion process with applications having features making
them inherently adaptive. Hence in order to under-
stand the tasks of the Middleware, a brief description
of the behavioral model is first provided.
2.1 Behavioral Model
Embedded systems tend to be application specific, the
question how an application should be implemented,
instead of what it implements, is addressed by the be-
havioral model. The result is an application behaving
desirably from a structural point of view, and commu-
nicating between its constituent components without
any explicit connections. This is achieved without the
need to dictate or even know its functional behavior.
In our model, the behavior is seen as a composition of
PECCS 2012 - International Conference on Pervasive and Embedded Computing and Communication Systems
470