A distributed sensor network is composed of various sensor nodes that are randomly deployed in an inaccessible area to collaboratively perform a task. After deployment, sensor nodes operate in an unattended manner by coordinating themselves. Because each sensor node has limited resources such as the memory space and computation power, they must coordinate among them to collaboratively perform a task. In order to efficiently coordinate sensors in a sensor network, it is essential to have an explicit representation to describe the configuration of the sensor nodes in the network. In addition, the sensor nodes are subject to failure due to limited battery power and other unexpected environmental conditions. The failure of sensor nodes may affect other nodes that are dependent on the failed nodes, and this causes significant problems in accomplishing the task assigned to the sensor network. Therefore, it is required that the sensor nodes need to have an adaptation ability to cope with the node failure by changing their service functions and configurations among them.
There have been many efforts to provide architecture-based adaptation mechanisms for software systems in general. These approaches typically define an architectural model that describes configuration among software components, and implement an adaptation mechanism based on this model. The adaptation mechanisms allow software systems to solve problems based on predefined repair strategies and reconfiguration rules with minimizing human intervention. To enable sensor nodes to coordinate by themselves and cope with the node failure, we adopt the architecture-based adaptation mechanisms into software systems for sensor networks.
In this thesis, we show how these architecture-based approaches can be applied into sensor networks to support the coordination and adaptation capabilities. We represent configurations of sensor nodes in a global configuration view and configurations of software components with...