Wireless Sensor Networks are moving out of the laboratory and into the field.
For a number of reasons there is often a need to update sensor node software, or node
configuration, after deployment. The need for over-the-air updates is driven both by the
scale of deployments, and by the remoteness and inaccessibility of sensor nodes. This need
has been recognized since the early days of sensor networks, and research results from the
related areas of mobile networking and distributed systems have been applied to this area.
In order to avoid any manual intervention, the update process needs to be autonomous.
This paper presents a comprehensive survey of software updating in Wireless Sensor
Networks, and analyses the features required to make these updates autonomous. A new
taxonomy of software update features and a new model for fault detection and recovery are
presented. The paper concludes by identifying the lacunae relating to autonomous software
updates, providing direction for future research.