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 within a sensor node in a local configuration view based on an architecture-based representation model.
통신기술의 발달과 하드웨어의 소형화 추세에 힘입어, 수많은 경량의 센서 노드들이 무선통신으로 연결되어 사람이 접근하기 어려운 환경에서도 응용서비스를 수행하는 센서 네트워크에 대한 관심이 고조되고 있다. 센서 네트워크의 노드들은 가령 전쟁터에서 탱크의 움직임을 감지한다던가 하는 임무를 수행하기 위해 사람이 접근하기 힘든 필드에 임의로 뿌려지게 되는데, 이러한 노드의 다량성과 사람의 접근불가성으로 인해 센서 네트워크는 무인 운용이 가능하도록 설계되고 배치되어야 하며 이를 위해서는 적응성 있는 소프트웨어의 설계가 필수적이다.
파손 또는 배터리 소진으로 특정 센서 노드가 동작을 멈추면 인접한 노드들이 해당 기능을 대체하여야 하며 전체 네트워크은 재구성되어야 한다. SensorWare와 Mate [1, 2]와 같은 재프로그래밍 메커니즘은 환경변화에 맞게 사용자가 새로운 프로그램을 전달하는 방법을 제안하고 있지만 노드의 파손으로 인한 환경적인 변화에 대처할 수 있는 방법을 제공하지 못하고 있다. 소프트웨어 컴포넌트의 동적 재구성 방법을 이용해 센서네트워크에서의 적응형 소프트웨어를 지원하는 [3]은 파손된 노드로 인한 손실을 인접노드가 자신의 컴포넌트를 재구성하여 이 손실을 보안하는 방법을 제안하였다. 하지만 노드의 파손으로 인한 네트워크의 재구성을 고려하고 있지 않으며 컴포넌트의 재구성 명령을 결정하기 위해 사용자의 개입이 요구된다. [4, 5]에서 기술된 센서네트워크를 위한 자가구성시스템은 센서노드들의 구성관계를 아키텍쳐로 표현하고 스스로 네트워크를 구성할 수 있는 알고리즘을 제안하고 있으나 이 접근 방법 역시 노드의 파손에 대처하기 위한 방법을 제시하고 못하고 있다.
본 논문은 센서네트워크에서 환경적인 변화에 대처하는 수단을 제공하기 위해 [6, 7, 8]에서 연구되고 있는 아키택쳐 기반 적응형 시스템을 채택하였고 여기서 제안하는 아키택처 기반 표현방법을 이용하여 각 센서 노드가 아키텍쳐 상의 컴포넌트로, 노드들 간의 연결(무선통신)이 커넥터로 표현된 전역구조뷰(global configuration view)를 제공하였다. 또한 센서노드의 소프트웨어 컴포넌트와 이들의 구성관계를 지역구조뷰(local configuration view)로 표현하였다.
전역구조뷰는 컨피겨레이션 노드에 의해 관리되고 특정 노드의 파손이 일어났을 때 적응전략을 바탕으로 하여 이를 대치할 만한 노드를 찾도록 도와준다. 만약 적절한 노드를 찾지 못했을 경우 파손된 노드와 가장 유사한 서비스를 제공하는 노드를 선택해 이 노드의 역할을 바꾸게 함으로써 대체 노드를 제공할 수 있다. 노드의 역할 변경은 소프트웨어의 컴포넌트의 재구성을 통해 행해질 수 있는데 이때 지역구조유가 이용되며 컴포넌트 메니저에 의해 재구성이 이루어진다.