A survey of Wireless Sensor Network technologies: research trends ...
A survey of Wireless Sensor Network technologies: research trends ...
A survey of Wireless Sensor Network technologies: research trends ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Technical Report<br />
UCAM-CL-TR-646<br />
ISSN 1476-2986<br />
Number 646<br />
Computer Laboratory<br />
A <strong>survey</strong> <strong>of</strong> <strong>Wireless</strong> <strong>Sensor</strong><br />
<strong>Network</strong> <strong>technologies</strong>:<br />
<strong>research</strong> <strong>trends</strong> and middleware’s role<br />
Eiko Yoneki, Jean Bacon<br />
September 2005<br />
15 JJ Thomson Avenue<br />
Cambridge CB3 0FD<br />
United Kingdom<br />
phone +44 1223 763500<br />
http://www.cl.cam.ac.uk/
c○ 2005 Eiko Yoneki, Jean Bacon<br />
Technical reports published by the University <strong>of</strong> Cambridge<br />
Computer Laboratory are freely available via the Internet:<br />
http://www.cl.cam.ac.uk/TechReports/<br />
ISSN 1476-2986
A <strong>survey</strong> <strong>of</strong> <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong> <strong>technologies</strong>:<br />
<strong>research</strong> <strong>trends</strong> and middleware’s role<br />
Eiko Yoneki and Jean Bacon<br />
University <strong>of</strong> Cambridge Computer Laboratory<br />
Cambridge CB3 0FD, United Kingdom<br />
{eiko.yoneki, jean.bacon}@cl.cam.ac.uk<br />
ABSTRACT<br />
<strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s (WSNs) provide a new paradigm for<br />
sensing and disseminating information from various environments,<br />
with the potential to serve many and diverse applications.<br />
Current WSNs typically communicate directly with a<br />
centralized controller or satellite. On the other hand, a smart<br />
WSN consists <strong>of</strong> a number <strong>of</strong> sensors spread across a geographical<br />
area; each sensor has wireless communication capability and<br />
sufficient intelligence for signal processing and networking <strong>of</strong> the<br />
data. The structure <strong>of</strong> WSNs are tightly application-dependent,<br />
and many services are also dependent on application semantics<br />
(e.g. application-specific data processing combined with data<br />
routing). Thus, there is no single typical WSN application, and<br />
dependency on applications is higher than in traditional distributed<br />
applications. The application/middleware layer must<br />
provide functions that create effective new capabilities for efficient<br />
extraction, manipulation, transport, and representation <strong>of</strong><br />
information derived from sensor data. In this paper, we report<br />
recent <strong>trends</strong> in wireless sensor network <strong>research</strong> including an<br />
overview <strong>of</strong> the various categories <strong>of</strong> WSN, a <strong>survey</strong> <strong>of</strong> WSN<br />
<strong>technologies</strong> and a discussion <strong>of</strong> existing <strong>research</strong> prototypes<br />
and industry applications. We focus on middleware technology,<br />
and describe details <strong>of</strong> some existing <strong>research</strong> prototypes, then<br />
address challenges and future perspectives on the middleware.<br />
This study highlights that middleware needs to provide a common<br />
interface for various functional components <strong>of</strong> WSN: detection<br />
and data collection, signal processing, data aggregation,<br />
and notification. By integrating sensing, signal processing, and<br />
communication functions, a WSN provides a natural platform<br />
for hierarchical information processing.<br />
1. INTRODUCTION<br />
The need to monitor and measure various physical phenomena<br />
(e.g. temperature, fluid levels, vibration, strain,<br />
humidity, acidity, pumps, generators to manufacturing<br />
lines, aviation, building maintenance and so forth) is common<br />
to many areas including structural engineering, agriculture<br />
and forestry, healthcare, logistics and transportation,<br />
and military applications. Wired sensor networks<br />
have long been used to support such environments and,<br />
until recently, wireless sensors have been used only when<br />
a wired infrastructure is infeasible, such as in remote and<br />
hostile locations. But the cost <strong>of</strong> installing, terminating,<br />
testing, maintaining, trouble-shooting, and upgrading a<br />
wired network makes wireless systems potentially attractive<br />
alternatives for general scenarios.<br />
Recent advances in technology have made possible the<br />
production <strong>of</strong> intelligent, autonomous, and energy efficient<br />
sensors that can be deployed in large numbers to form self<br />
organizing and self healing WSNs in a geographical area.<br />
Moreover, the dramatic reduction in the cost <strong>of</strong> this wireless<br />
sensor technology has made its widespread deployment<br />
feasible, and the urgent need for <strong>research</strong> into all aspects<br />
<strong>of</strong> WSNs has become evident. The WSN has great, longterm<br />
potential for transforming our daily lives, if we can<br />
solve the associated <strong>research</strong> problems.<br />
The sensors that, when distributed in the environment,<br />
comprise WSNs include cameras as vision sensors, microphones<br />
as audio sensors, and those capable <strong>of</strong> sensing ultrasound,<br />
infra-red, temperature, humidity, noise, pressure<br />
and vibration. Although the individual sensor’s sensing<br />
range is limited, WSNs can cover a large space by integrating<br />
data from many sensors. Diverse and precise information<br />
on the environment may thus be obtained. <strong>Sensor</strong><br />
networks are an emerging computing platform consisting<br />
<strong>of</strong> large numbers <strong>of</strong> small, low-powered, wireless motes<br />
each with limited computation, sensing, and communication<br />
abilities. It is still a challenge to realize a distributed<br />
WSN comprising: small and cost effective sensor modules;<br />
high speed, low latency and reliable network infrastructures;<br />
s<strong>of</strong>tware platforms that support easy and efficient<br />
installation <strong>of</strong> the WSN; and sensor information processing<br />
<strong>technologies</strong>.<br />
WSNs could potentially become a disruptive technology,<br />
for example because <strong>of</strong> social issues such as security and<br />
privacy, but the technological vision is for new and diverse<br />
types <strong>of</strong> applications for the social good. The environment<br />
can be monitored for fire-fighting, to detect marine<br />
ground floor erosion, and to study the effect <strong>of</strong> earthquake<br />
vibration patterns on bridges and buildings. Surveillance<br />
<strong>of</strong> many kinds can be supported, such as for intruder detection<br />
in premises. <strong>Wireless</strong> sensors can be embedded<br />
deeply within machinery, where wired sensors would not<br />
be feasible because: wiring would be too costly; could not<br />
reach the deeply embedded parts; would limit flexibility;<br />
would represent a maintenance problem; or would prevent<br />
mobility. Mobile items such as containers can be tagged,<br />
as can goods in a factory floor automation system. Smart<br />
price tags for foods could communicate with a refrigerator.<br />
Other classes <strong>of</strong> application include car-to-car or incar<br />
communication.<br />
But sensor network programming is difficult, and the<br />
human programming resource is costly. Complexities<br />
arise from the limited capabilities (processing, storage and<br />
transmission range) and energy resources <strong>of</strong> each node as<br />
well as the lack <strong>of</strong> reliability <strong>of</strong> the radio channel. As a result,<br />
application designers must make many complex, lowlevel<br />
choices, and build up s<strong>of</strong>tware to perform routing,<br />
time synchronization, node localization and data aggrega-<br />
3
tion within the sensor network. Unfortunately, little <strong>of</strong> this<br />
s<strong>of</strong>tware carries over directly from one application to another,<br />
since it encapsulates application-specific trade<strong>of</strong>fs<br />
in terms <strong>of</strong> complexity, resource usage, and communication<br />
patterns. No WSN application will therefore be seen<br />
as typical, and application-dependency will be higher than<br />
in traditional distributed applications.<br />
Recent WSN <strong>research</strong> has focused increasingly on the<br />
application layer and an API at an appropriate abstraction<br />
level is needed urgently. Such an API would hide<br />
from programmers the complexities <strong>of</strong> sensor nodes and<br />
routing. The middleware technology must provide such<br />
an abstract API. In WSNs, the task <strong>of</strong> middleware is to<br />
collect large amounts <strong>of</strong> data from sensors, and/or on the<br />
movement <strong>of</strong> sensors. It must then perform aggregation<br />
and management <strong>of</strong> data in appropriate formats for the<br />
target distributed applications. WSNs have recently received<br />
a lot <strong>of</strong> attention in the <strong>research</strong> literature; recent<br />
<strong>survey</strong> and overview papers are: [56, 227, 8, 52, 214, 69, 6,<br />
66, 10, 4, 180, 117]. These papers focus on operating systems,<br />
routing, or applications.<br />
In this paper we report the latest <strong>trends</strong> in WSN <strong>research</strong>,<br />
focusing on middleware technology and related areas,<br />
and including application design principles. However,<br />
we do not cover every possible WSN technology; for example,<br />
mobile, ad hoc, communication technology may be<br />
important for WSNs, but it is out <strong>of</strong> scope <strong>of</strong> this paper<br />
because it already has an established base and hardware.<br />
First, we give an overview <strong>of</strong> WSNs and design aspects <strong>of</strong><br />
applications, including existing <strong>research</strong> prototypes and industry<br />
applications. Secondly, we describe the technology<br />
supporting these sensor applications from the view <strong>of</strong> system<br />
architecture and network communication. We focus on<br />
the middleware technology, describing the current state <strong>of</strong><br />
<strong>research</strong> that supports sensor network environments. We<br />
then highlight outstanding issues and conclude with future<br />
perspectives on middleware technology.<br />
This paper continues as follows: section 2 describes characteristics<br />
<strong>of</strong> WSNs, section 3 describes applications design<br />
principles, section 4 describes <strong>technologies</strong> supporting<br />
WSNs, section 5 describes the recent hot topic programming<br />
paradigms, section 6 summarizes middleware <strong>technologies</strong>,<br />
section 7 describes future challenges, and we conclude<br />
in section 8.<br />
2. WIRELESS SENSOR NETWORKS<br />
A WSN is a collection <strong>of</strong> millimeter-scale, self-contained,<br />
micro-electro-mechanical devices. These tiny devices have<br />
sensors, computational processing ability (i.e.CPU power),<br />
wireless receiver and transmitter technology and a power<br />
supply. In a WSN a large number <strong>of</strong> sensor nodes usually<br />
span a physical geographic area. For example, the<br />
prototype <strong>of</strong> a future sensor node (mote) in the Smart<br />
Dust project [188], performs the wireless communication<br />
function, the sensor function, the power supply unit, and<br />
the information processing function on the MEMS (Micro<br />
Electro Mechanical System) chip, which has a scale only<br />
<strong>of</strong> several millimeters.<br />
Typical WSNs communicate directly with a centralized<br />
controller or a satellite, thus communication between the<br />
sensor and controllers is based on a single hop. In future,<br />
a WSN could be a collection <strong>of</strong> autonomous nodes or<br />
terminals that communicate with each other by forming a<br />
multi-hop radio network and maintaining connectivity in a<br />
decentralized manner by forming an ad hoc network. Such<br />
WSNs could change their topology dynamically when connectivity<br />
among the nodes varies with time due to node<br />
mobility. But current, real-world deployment usually consists<br />
<strong>of</strong> stationary sensor nodes.<br />
WSNs are intelligent compared with traditional sensors,<br />
and some WSNs are designed to use in-network processing,<br />
where sensed data can be gathered in situ and transformed<br />
to more abstract and aggregated high-level data before<br />
transmission. The combination <strong>of</strong> processing power, storage<br />
and wireless communication also means that data can<br />
be assimilated and disseminated using smart algorithms.<br />
The vast number <strong>of</strong> sensor nodes planned for many applications<br />
also implies a major portion <strong>of</strong> these networks<br />
would have to acquire self organization capability.<br />
Intuitively, a denser infrastructure would create a more<br />
effective sensor network. It can provide higher accuracy<br />
and has more energy available for aggregation. If not properly<br />
handled, a denser network can also lead to collisions<br />
during transmission, and network congestion. This will<br />
no doubt increase latency and reduce efficiency in terms<br />
<strong>of</strong> energy consumption. One distinguishing characteristic<br />
<strong>of</strong> WSNs is their lack <strong>of</strong> strong boundaries between sensing,<br />
communication and computation. Unlike the Internet,<br />
where data generation is mostly the province <strong>of</strong> end points,<br />
in sensor networks every node is both a router and a data<br />
source.<br />
Internet &<br />
Satellite<br />
Task Manager<br />
Node<br />
User<br />
High-level Interest<br />
(tasks/queries)<br />
Sink/<br />
Base Station<br />
Low-level<br />
tasks/queries<br />
E<br />
Cluster-Head<br />
or Aggregator<br />
Figure 1: WSN Overview<br />
D<br />
C<br />
B<br />
A<br />
<strong>Sensor</strong> Nodes<br />
<strong>Sensor</strong> Deployment Area<br />
2.1 WSNs vs. MANETs<br />
There are two major types <strong>of</strong> wireless ad hoc networks:<br />
mobile ad hoc networks (MANETs) and wireless sensor<br />
networks (WSNs). A MANET is an autonomous collection<br />
<strong>of</strong> mobile routers (and associated hosts) connected by<br />
bandwidth-constrained wireless links. Each node is envisioned<br />
as a personal information appliance such as a personal<br />
digital assistant (PDA) fitted out with a fairly sophisticated<br />
radio transceiver. The nodes are fully mobile.<br />
The network’s wireless topology may change rapidly and<br />
unpredictably. Such a network may operate in a standalone<br />
fashion, or may be connected to the larger Internet.<br />
Factors, such as variable wireless link quality, propagation<br />
path loss, fading, multiuser interference, power expended,<br />
and topological changes, significantly increase the<br />
complexity <strong>of</strong> designing network protocols for MANETs.<br />
Security, latency, reliability, intentional jamming, and recovery<br />
from failure are also <strong>of</strong> significant concern.<br />
A WSN consists <strong>of</strong> a number <strong>of</strong> sensors spread across<br />
a geographical area. Each sensor has wireless communication<br />
capability and sufficient intelligence for signal processing<br />
and networking <strong>of</strong> the data. A WSN can be deployed in<br />
remote geographical locations and requires minimal setup<br />
and administration costs. Moreover, the integration <strong>of</strong><br />
a WSN with a bigger network such as the Internet or a<br />
4
wireless infrastructure network increases the coverage area<br />
and potential application domain <strong>of</strong> the ad hoc network.<br />
Sensed information is relayed to a sink node by using multi<br />
hop communication. The sink node is a sensor node with<br />
gateway functions to link to external networks such as the<br />
Internet and sensed information is normally distributed via<br />
the sink node (see Fig.1).<br />
WSNs differ from MANETs in many fundamental ways.<br />
Viewing a WSN as a large-scale multi-hop ad hoc network<br />
may not be appropriate for many real-world applications.<br />
The communication overhead for configuring the network<br />
into an operational state is too large. The number <strong>of</strong> nodes<br />
in a WSN can be several orders <strong>of</strong> magnitude higher than<br />
the nodes in an ad hoc network and sensor nodes that<br />
are prone to failure are densely deployed. <strong>Sensor</strong> nodes<br />
mainly use broadcast, while most MANETs are based on<br />
the Peer-to-Peer (P2P) communication paradigm. Information<br />
exchange between end-to-end nodes will be rare<br />
in WSNs. They are limited in power, computational capacity<br />
and memory, and may not have global IDs. WSNs<br />
have a wide range <strong>of</strong> applications ranging from monitoring<br />
environments, sensitive installations, and remote data<br />
collection and analysis. In both MANETs and WSNs the<br />
nodes act both as hosts and as routers. They operate in a<br />
self organizing and adapting manner. Research and development<br />
in the areas <strong>of</strong> infrastructureless wireless networks<br />
have been advancing at a fast pace, and more effort needs<br />
to be dedicated in this direction for wide scale adoption<br />
and deployment. Current sensor hardware is resource and<br />
power constrained, but evolution <strong>of</strong> hardware and cost reduction<br />
will be improve rapidly. WSNs may eventually<br />
share the properties <strong>of</strong> MANETs.<br />
Processing sensor data: Processing the data gathered<br />
by sensors distinguishes sensor networks from MANETs.<br />
The end goal is the detection/estimation <strong>of</strong> some events <strong>of</strong><br />
interest, and not just communication. To handle and improve<br />
the detection performance, it is useful to perform fusion<br />
on the data from a single or multiple sensors. Data fusion<br />
requires the transmission <strong>of</strong> data and control messages<br />
and can be part <strong>of</strong> the WSN architecture. Collaborative<br />
sensor-data processing is another factor that distinguishes<br />
WSNs from MANETs. To improve the detection rate <strong>of</strong><br />
events <strong>of</strong> interest it is <strong>of</strong>ten useful to aggregate data from<br />
multiple sensors. This, again, requires the transmission <strong>of</strong><br />
data and control messages, and may put constraints on the<br />
network architecture. See also section 3.2.9 and 3.4.<br />
2.2 WSAN<br />
<strong>Wireless</strong> sensor and actor networks (WSANs) consist <strong>of</strong> a<br />
group <strong>of</strong> sensors and actors (actuators) linked by a wireless<br />
medium to perform distributed sensing and actuation<br />
tasks. In such a network, sensors gather information about<br />
the physical world, while actors take decisions and then<br />
perform appropriate actions upon the environment, which<br />
allows a user to effectively sense and act at a distance.<br />
However, due to the presence <strong>of</strong> actors, WSANs have some<br />
differences from WSNs. [188] gives a good summary <strong>of</strong> <strong>research</strong><br />
issues in WSANs. Unlike sensor nodes which are<br />
small, cheap devices with limited sensing, computation and<br />
wireless communication capabilities, actors must be more<br />
complex. Their function is more energy-consuming than<br />
sensing and actors are resource-rich nodes equipped with<br />
better processing capabilities, stronger transmission power<br />
and longer battery life than sensors. The number <strong>of</strong> sensor<br />
nodes deployed for collecting data on a phenomenon may<br />
be <strong>of</strong> the order <strong>of</strong> hundreds or thousands. However, such a<br />
dense deployment is not necessary for actor nodes due to<br />
the different coverage requirements and physical interaction<br />
methods <strong>of</strong> the acting task. Hence, there are far fewer<br />
actors than sensors in WSANs. To provide effective sensing<br />
and actuating, a distributed local coordination mechanism<br />
is necessary among sensors and actors.<br />
In WSANs, depending on the application, there may be<br />
a need to respond rapidly to sensor input. Moreover, so as<br />
to provide correct actions, sensor data must still be valid<br />
at the time <strong>of</strong> actuating. Therefore, the issue <strong>of</strong> real-time<br />
communication is important in WSANs since actions are<br />
performed on the environment in response to the sensing.<br />
WSANs are fast emerging as a new sensing paradigm<br />
based on the collaborative effort <strong>of</strong> large number <strong>of</strong> sensors<br />
deployed close to or inside the phenomenon to be observed<br />
and have the potential <strong>of</strong> providing diverse services<br />
to numerous applications.<br />
3. APPLICATION DESIGN PRINCIPLES<br />
A vision <strong>of</strong> future ubiquitous computing is that tiny processors<br />
and sensors will be integrated with everyday objects in<br />
order to make them smart. Smart objects can explore their<br />
environment, communicate with other smart objects, and<br />
interact with humans. Fig. 2 shows an application space<br />
and potential real applications <strong>of</strong> the distributed WSN that<br />
allow monitoring <strong>of</strong> a wide variety <strong>of</strong> environmental phenomena<br />
with adequate quality and scale.<br />
Dense - - - - Sparse<br />
<strong>Sensor</strong> Types<br />
¢ £¤¥¦§¨©¨¨©¦¨ ¦§ §¦§¨ ¡<br />
¦©©¨<br />
O bj ec t<br />
P er s o n<br />
R o o m<br />
B ui l di ng<br />
S t r eet<br />
C i t y<br />
C o unt r y<br />
Application Space<br />
¥ ¦§¥¦ ¦§¥© ¦¨¨¦ ©¨ !"#$%!&'!()* +,-'$")(#%!<br />
1/cm<br />
.'/0$#(1<br />
1/km<br />
Density<br />
*8'$*19)$' :'6#/*';$)/3#!4 ?@BCD EF=CG>?C<br />
1/m5')*(67 2)$3'(#!4<br />
Figure 2: Application Space<br />
Scale<br />
3.1 Potential Applications<br />
Current applications in <strong>research</strong> prototype environments<br />
or industry may be classified into the four categories below:<br />
3.1.1 Disaster/Crime Prevention and Military Applications<br />
Since 9/11, safety concerns about terrorism have increased<br />
dramatically and sensor network related <strong>research</strong> includes<br />
the detection and prevention <strong>of</strong> terrorist attacks. In [226],<br />
sensor networks are used for environmental monitoring: to<br />
detect distortion and structural problems in buildings in<br />
order to prevent disasters. Radiation sensors can be deployed<br />
in urban districts, for example at key road intersections,<br />
to detect terrorist attacks using radioactive substances<br />
[36]. Military WSNs can detect information about<br />
enemy movements, explosions, and other phenomena <strong>of</strong> interest<br />
and it is possible to calculate the position <strong>of</strong> a sniper<br />
using a sonic sensor [151, 199]. Many sensor network <strong>research</strong><br />
projects inside the United States have received the<br />
5
support <strong>of</strong> DARPA (SensIT [153]); it has become the central<br />
topic in sensor network applications [237].<br />
3.1.2 Environmental Applications<br />
WSNs can be used to detect and monitor regional environmental<br />
changes in plains, forests, oceans, flood-levels, precision<br />
agriculture etc. [153, 40, 46, 197, 38, 213]. The common<br />
characteristic <strong>of</strong> these applications is that sensor data<br />
are aggregated in the servers and distributed with the location,<br />
and other environmental information, to the users.<br />
An example is GlacsWeb [153] which monitors glaciers in<br />
order to observe changes, possibly caused by global warming.<br />
Burrel [40] uses sensors to control vineyards, and also<br />
records and analyzes movements during the work <strong>of</strong> farmers.<br />
Zhang [235] has developed ZebraNet for observing and<br />
tracing wild animals using sensors.<br />
3.1.3 Health Applications<br />
Telemonitoring <strong>of</strong> human physiological data, tracking and<br />
monitoring patients and doctors inside a hospital, and assistance<br />
<strong>of</strong> the elderly are in this category. Wearable and<br />
implantable sensors can monitor a broad variety <strong>of</strong> conditions<br />
<strong>of</strong> the patients continuously at all times. This will<br />
reduce delays in obtaining test results, thus having a direct<br />
bearing on patient recovery rates. For trauma patients’<br />
survival it is particularly important that physicians can<br />
make a rapid and accurate diagnosis and recommend appropriate<br />
treatment. Telemonitoring may also enable testing<br />
and commencement <strong>of</strong> treatment in remote locations,<br />
as well as assisting in the precise location <strong>of</strong> accident or<br />
disaster sites.<br />
3.1.4 Smart Spaces<br />
Home automation and smart environments aim to create<br />
an intellectual space by means <strong>of</strong> a large number <strong>of</strong> networked<br />
sensors [190, 218, 68, 116]. Smart-Its [98] is a <strong>research</strong><br />
project which uses sensors in the goods we use in<br />
daily life. Instead <strong>of</strong> bar-codes, where human interaction is<br />
necessary, creating autonomous sensor networks allows the<br />
position and quality <strong>of</strong> the goods (temperature humidity)<br />
to be detected in order to realize automated management<br />
systems. Managing inventory control, vehicle tracking and<br />
interactive museums could be in this category.<br />
3.2 Design Aspects<br />
Current applications for WSNs are mostly <strong>research</strong> prototypes<br />
or are custom made for a specific purpose. They<br />
are insufficiently mature to deploy widely in real world<br />
scenarios. At the current stage <strong>of</strong> <strong>research</strong>, there is still<br />
limited generic <strong>of</strong>f-the-shelf smart sensor nodes, and there<br />
is not yet a generic application, which fulfills vastly diverse<br />
objectives. There is no typical WSN structure and architecture,<br />
and the basic goals <strong>of</strong> a WSN largely depend on<br />
the application. Single-hop networks, potentially using existing<br />
infrastructures (e.g. GSM) and devices (e.g. mobile<br />
phones with embedded sensors), are most attractive to industry<br />
at present. When WSNs are deployed, applications<br />
are not stand-alone but are integrated into a larger computing<br />
infrastructure.<br />
The difficulty <strong>of</strong> sensor network <strong>research</strong> is constructing<br />
an open system that allows for the variety <strong>of</strong> realworld<br />
phenomena. Hardware constraints, such as the relation<br />
between capacity and power consumption, as well<br />
as other resources, must be taken into account. To deal<br />
with the complexity <strong>of</strong> sensor network <strong>research</strong>, Estrin et<br />
al. [69] suggest two design principles. First, a data centric<br />
design where the focus is managing sensor data instead<br />
<strong>of</strong> managing nodes. Secondly, an application-specific approach,<br />
where designing the physical and social characteristics<br />
<strong>of</strong> an application environment reduces the domain<br />
<strong>of</strong> discourse <strong>of</strong> the <strong>research</strong>. Much sensor network <strong>research</strong><br />
tends to focus on specific hardware with efficient, ingenious<br />
communication control algorithms and system control architectures<br />
that address the specific resource constraints.<br />
A generic architecture does not emerge.<br />
In this section, we identify different aspects <strong>of</strong> the characteristics<br />
<strong>of</strong> applications in order to help in designing<br />
WSN applications. The aspects we define are based on<br />
[182], extended with various data processing factors. Applying<br />
the right design approaches and <strong>technologies</strong> to the<br />
WSN applications is critical.<br />
Table 2 in the Appendix classifies the sample applications<br />
according to the above aspects (except Query ability,<br />
Reliability, Self configuration and Security). The applications<br />
listed in the following subsections are <strong>research</strong> prototypes,<br />
commercial products and experimental projects,<br />
and the scale <strong>of</strong> the applications varies. All information<br />
was obtained through online information and available<br />
documents. The actual <strong>survey</strong> included over 50 projects.<br />
Due to space limitations, only 12 are listed below, which<br />
show various aspects <strong>of</strong> WSN applications.<br />
3.2.1 Deployment<br />
<strong>Sensor</strong> nodes may be installed at specific locations or be<br />
placed randomly. After the initial deployment, sensors<br />
may be added or replaced, which affects node location,<br />
density, and the overall topology.<br />
Programs for each sensor node may be placed manually<br />
or automatically at runtime (see the programming<br />
paradigm in section 3.3).<br />
3.2.2 Mobility<br />
<strong>Sensor</strong> nodes may be attached to or carried by mobile entities.<br />
Mobility may be either an incidental side effect, or<br />
it may be a desired property <strong>of</strong> the system (e.g. to move<br />
nodes to interesting physical locations), in which case mobility<br />
may be either active (i.e. automotive) or passive (e.g.<br />
attached to a moving object not under the control <strong>of</strong> the<br />
sensor node). Mobility may apply to all nodes within a network<br />
or only to a subset <strong>of</strong> nodes. The degree <strong>of</strong> mobility<br />
may also vary from occasional movement with long periods<br />
<strong>of</strong> immobility in between, to constant travel. Mobility has<br />
a large impact on the expected degree <strong>of</strong> network dynamics<br />
and hence influences the design <strong>of</strong> networking protocols<br />
and distributed algorithms. The actual speed <strong>of</strong> movement<br />
may also have an impact.<br />
3.2.3 Infrastructure<br />
The various communication modalities can be used in different<br />
ways to construct a communication network. Two<br />
common forms are so-called infrastructure based networks<br />
and ad hoc networks. In infrastructure based networks,<br />
sensor nodes can only communicate directly with base stations.<br />
The number <strong>of</strong> base stations depends on the communication<br />
range and the area covered by the sensor nodes.<br />
In ad hoc networks, nodes can communicate directly with<br />
each other without an infrastructure. Nodes may act as<br />
routers, forwarding messages over multiple hops on behalf<br />
<strong>of</strong> other nodes.<br />
6
Note that cost should not be forgotten. State <strong>of</strong> the<br />
art technology allows a Bluetooth radio system to cost less<br />
than 10 dollars. The cost <strong>of</strong> a sensor node should be much<br />
less than 1 dollar in order for the sensor network to be<br />
feasible.<br />
3.2.4 <strong>Network</strong> Topology<br />
One important property <strong>of</strong> a WSN is its diameter, that is,<br />
the maximum number <strong>of</strong> hops between any two nodes in<br />
the network. In its simplest form, a WSN forms a singlehop<br />
network, with every sensor node being able to communicate<br />
directly with every other node. An infrastructure<br />
based network with a single base station forms a star network<br />
with a diameter <strong>of</strong> two. A multi-hop network may<br />
form an arbitrary graph, but <strong>of</strong>ten an overlay network with<br />
a simpler structure is constructed such as a tree or a set <strong>of</strong><br />
connected stars. The topology affects many network characteristics<br />
such as latency, robustness, and capacity. The<br />
complexity <strong>of</strong> data routing and processing also depends on<br />
the topology.<br />
Given the large number <strong>of</strong> nodes and their potential<br />
placement in difficult locations, it is essential that the network<br />
is able to self-organize; manual configuration is not<br />
feasible. Moreover, nodes may fail (either from lack <strong>of</strong> energy<br />
or from physical destruction), and new nodes may<br />
join the network. Therefore, the network must be able to<br />
reconfigure itself periodically . Furthermore, while individual<br />
nodes may become disconnected from the rest <strong>of</strong> the<br />
network, a high degree <strong>of</strong> connectivity must be maintained.<br />
3.2.5 Density and <strong>Network</strong> Size<br />
The effective range <strong>of</strong> the sensors defines the coverage area<br />
<strong>of</strong> a sensor node. The density <strong>of</strong> the nodes indicates the degree<br />
<strong>of</strong> coverage <strong>of</strong> an area <strong>of</strong> interest by sensor nodes. The<br />
network size affects reliability, accuracy, and data processing<br />
algorithms. The density can range from a few sensor<br />
nodes to a hundred in a region, which can be less than 10m<br />
in diameter. The density µ is calculated as in [39]:<br />
µ(R) = (NπR 2 )/A<br />
where N is the scattered sensor nodes in region A, and<br />
R is the radio transmission range. Generally, µ(R) gives<br />
the number <strong>of</strong> nodes within the transmission radius <strong>of</strong> each<br />
node in region A.<br />
3.2.6 Connectivity<br />
The communication ranges and physical locations <strong>of</strong> individual<br />
sensor nodes define the connectivity <strong>of</strong> a network. If<br />
there is always a network connection (possibly over multiple<br />
hops) between any two nodes, the network is said to be<br />
connected. Connectivity is intermittent if the network may<br />
be partitioned occasionally. If nodes are isolated most <strong>of</strong><br />
the time and enter the communication range <strong>of</strong> other nodes<br />
only occasionally, we say that communication is sporadic.<br />
Connectivity influences the design <strong>of</strong> communication protocols<br />
and data dissemination mechanisms.<br />
3.2.7 Lifetime<br />
Depending on the application, the required lifetime <strong>of</strong> a<br />
sensor network may range from a few hours to several<br />
years. The necessary lifetime has a high impact on the<br />
required degree <strong>of</strong> energy efficiency and robustness <strong>of</strong> the<br />
nodes, thereby requiring the minimisation <strong>of</strong> energy expenditure.<br />
3.2.8 Node Addressability<br />
This indicates whether or not the nodes are individually<br />
addressable. For example, the sensor nodes in a parking<br />
lot network should be individually addressable, so that the<br />
locations <strong>of</strong> all the free spaces can be determined. Thus, it<br />
may be necessary to broadcast a message to all the nodes<br />
in the network. If one wants to determine the temperature<br />
in a corner <strong>of</strong> a room, then addressability may not be so<br />
important. Any node in the given region can respond.<br />
3.2.9 Data Aggregation<br />
Data aggregation is the task <strong>of</strong> data summarisation while<br />
data are travelling through the sensor network. An excessive<br />
number <strong>of</strong> sensor nodes can easily congest the network,<br />
flooding it with information. The prevailing solution to<br />
this problem is to aggregate or fuse data within the WSN<br />
then transmit an aggregate <strong>of</strong> the data to the controller.<br />
There are three major ways <strong>of</strong> performing data aggregation:<br />
First, diffusion algorithms assume that data are<br />
transmitted from one node to the next, thus propagating<br />
through the network to the destination. Along the<br />
way data may be aggregated, mostly with simple aggregation<br />
functions and assuming homogeneous data. Second,<br />
streaming queries are based on SQL extensions for continuous<br />
querying. Here data are considered to be transient<br />
while the query is persistent. Third, event graphs work on<br />
streams <strong>of</strong> events and compose simple events into composite<br />
events based on an event algebra. The event algebras<br />
from reactive middleware have been extended with temporal<br />
constraints for event correlation and transmission<br />
probabilities for WSNs. Events are consumed according<br />
to event consumption modes.<br />
The different approaches above influence when and<br />
where aggregation <strong>of</strong> data in WSNs should be performed.<br />
This involves how to deal with time in distributed and unreliable<br />
environments, with state, asynchrony and unstable<br />
communication, redundancy and so forth. Different aggregation<br />
mechanisms require different resources and will<br />
therefore influence the routing strategy such as adapting<br />
the routing to the application or vice versa. Decisions must<br />
be made as to whether query processing is to be performed<br />
at sensor nodes or only at designated, resource rich nodes,<br />
placing simple filters at peripheral sensing nodes. Typical<br />
aggregation operations include MAX, MIN, AVG, SUM<br />
and many other well-known database management techniques.<br />
3.2.10 Query Ability and Propagation<br />
There are two types <strong>of</strong> addressing in sensor network; data<br />
centric, and address centric. In a data centric paradigm, a<br />
query will be sent to specific region in the network, whereas<br />
in addressing centric, the query will be sent to an individual<br />
node. A user may want to query an individual node<br />
or a group <strong>of</strong> nodes for information collected in the region.<br />
Depending on the amount <strong>of</strong> data fusion performed,<br />
it may not be feasible to transmit a large amount <strong>of</strong> the<br />
data across the network. Instead, various local sink nodes<br />
will collect data from a given area and create summary<br />
messages. A query may be directed to the sink node nearest<br />
to the desired location.<br />
3.2.11 Data Dissemination<br />
The ultimate goal <strong>of</strong> a WSN is to detect specified events <strong>of</strong><br />
interest in a sensor field and to deliver them to subscribers.<br />
Because <strong>of</strong> the overlap in the proximity ranges <strong>of</strong> sensors,<br />
7
the same phenomena might be recorded by multiple sensor<br />
nodes. Alternatively, systematic aggregation might<br />
lose all the data on the same phenomenon. End-to-end<br />
event transfer schemes that fit the characteristics <strong>of</strong> WSNs<br />
are needed, in the same way that delivery semantics <strong>of</strong><br />
asynchronous communication, such as publish/subscribe,<br />
is needed for wired distributed systems.<br />
The electric power consumed depends substantially on<br />
how the sensor data is handled and communicated. Because<br />
the capacity <strong>of</strong> the battery <strong>of</strong> the sensor node is very<br />
limited, it is necessary to consider the extent to which the<br />
demands <strong>of</strong> applications can be met. Adaptive communication<br />
protocols (Power aware Protocols, that consider<br />
power consumption, are actively being <strong>research</strong>ed.<br />
3.2.12 Real-Time<br />
Object tracking applications may need to correlate events<br />
from different source nodes in real-time. Real-time support<br />
(e.g. a physical event must be reported within a certain period<br />
<strong>of</strong> time) may be critical in WSNs. This aspect affects<br />
time synchronization algorithms, which may be affected by<br />
the network topology and the communication mechanism<br />
deployed.<br />
3.2.13 Reliability<br />
The reliability R k (t) or fault tolerance <strong>of</strong> a sensor node is<br />
modelled in [97] using the Poisson distribution to capture<br />
the probability <strong>of</strong> not having a failure within the time interval<br />
(0; t):<br />
R k (t) = exp(−λ k t)<br />
where λ k and t are the failure rate <strong>of</strong> sensor node k and<br />
the time period, respectively. The fault tolerance level depends<br />
on the application <strong>of</strong> the WSN.<br />
3.2.14 Self Configuration<br />
Given the large number <strong>of</strong> nodes and their scattered placement<br />
in hostile locations, it is essential that the network<br />
be able to self-organize. Moreover, nodes may fail<br />
from limitation <strong>of</strong> energy, from physical destruction or any<br />
other means, and new nodes may need to join the network.<br />
The nodes can also coordinate to exploit the redundancy<br />
provided by high density so as to extend the overall<br />
system lifetime. The large number <strong>of</strong> nodes deployed<br />
in these systems will preclude manual configuration, and<br />
the environmental dynamics will preclude design-time preconfiguration.<br />
Nodes will have to self-configure to establish<br />
a topology that provides communication under stringent<br />
energy constraints. The network must be able to continuously<br />
and periodically reconfigure itself so that it can continue<br />
to function properly and serve its purpose. A high<br />
degree <strong>of</strong> connectivity is essential.<br />
3.2.15 Security<br />
Threats to a WSN are described in [14] and classified into<br />
the following categories:<br />
• Passive Information Gathering: If communications<br />
between sensors, or between sensors and intermediate<br />
nodes or collection points are in clear, then an<br />
intruder with an appropriately powerful receiver and<br />
well designed antenna can passively pick <strong>of</strong>f the data<br />
stream.<br />
• Subversion <strong>of</strong> a Node: If a sensor node is captured<br />
it may be tampered with, interrogated electronically<br />
and perhaps compromised. Once compromised, the<br />
sensor node may disclose its cryptographic keying<br />
material, and access to higher levels <strong>of</strong> communication<br />
and sensor functionality may be available to the<br />
attacker. Secure sensor nodes, therefore, must be designed<br />
to be tamper pro<strong>of</strong> and should react to tampering<br />
in a fail-complete manner where cryptographic<br />
keys and program memory are erased. Moreover, a<br />
secure sensor needs to be designed for its emanations<br />
not causing sensitive information to leak from it.<br />
• False Node: An intruder might add a node to a system<br />
and feed false data or block the passage <strong>of</strong> true<br />
data. Typically, a false node is a computationally robust<br />
device that impersonates a sensor node. While<br />
such problems with malicious hosts have been studied<br />
in distributed systems, as well as ad-hoc networking,<br />
the solutions proposed there (group key agreements,<br />
quorums and per-hop authentication) are in general<br />
too computationally demanding for sensors.<br />
• Node Malfunction: A node in a WSN may malfunction<br />
and generate inaccurate or false data. Moreover,<br />
if the node serves as an intermediary, forwarding data<br />
on behalf <strong>of</strong> other nodes, it may drop or garble packets<br />
in transit. Detecting and culling these nodes from<br />
the WSN becomes an issue.<br />
• Node Outage: If a node serves as an intermediary or<br />
collection and aggregation point, what happens if the<br />
node stops functioning? The protocols employed by<br />
the WSN need to be robust enough to mitigate the<br />
effects <strong>of</strong> outages by providing alternate routes.<br />
• Message Corruption: Attacks against the integrity<br />
<strong>of</strong> a message occur when an intruder inserts itself<br />
between the source and destination and modifies the<br />
contents <strong>of</strong> a message.<br />
• Denial <strong>of</strong> Service: A denial <strong>of</strong> service attack on<br />
a WSN may take several forms. Such an attack<br />
may consist <strong>of</strong> jamming the radio link, exhausting<br />
resources or misrouting data. Karl<strong>of</strong> and Wagner<br />
[118] identify several DoS attacks including: Black<br />
Hole, Resource Exhaustion, Sinkholes, Induced Routing<br />
Loops, Wormholes, and Flooding that are directed<br />
against the routing protocol employed by the WSN.<br />
• Traffic Analysis: Although communications might be<br />
encrypted, an analysis <strong>of</strong> cause and effect, communications<br />
patterns and sensor activity might reveal<br />
enough information to enable an adversary to defeat<br />
or subvert the mission <strong>of</strong> the WSN. Addressing and<br />
routing information transmitted in clear <strong>of</strong>ten contributes<br />
to traffic analysis.<br />
Security aspects <strong>of</strong> wireless sensor networks have received<br />
little attention compared with other aspects. The main<br />
focus <strong>of</strong> WSN security has been on centralized communication<br />
approaches; there is a need to develop distributed<br />
approaches.<br />
3.3 Operational Paradigms<br />
An operational scenario for sensor networks, including data<br />
processing, requires consideration <strong>of</strong> complex combination<br />
8
<strong>of</strong> the aspects described in the previous section. Operational<br />
paradigms <strong>of</strong> sensor nodes vary and depend on the<br />
deployment <strong>of</strong> the sensor nodes and applications. Operational<br />
paradigms may be classified into the following categories<br />
[14], where it is assumed that a base station or sink<br />
node exists as part <strong>of</strong> WSNs.<br />
3.3.1 Single-hop to Sink<br />
<strong>Sensor</strong> nodes sense and transmit the data to the sink nodes<br />
(e.g. base station or cluster head nodes), which is within<br />
range <strong>of</strong> transmission, thus routing or coordination among<br />
nodes is not required. This paradigm, therefore, uses a centralized,<br />
point-to-point, single-hop communication model,<br />
as though the infrastructure supported wireless networks.<br />
The sensors take periodic measurements and transmit this<br />
data directly either immediately following data collection<br />
or when scheduled, at some periodic interval. A problem<br />
<strong>of</strong> this paradigm is that sensor nodes are out <strong>of</strong> communication<br />
when they are out <strong>of</strong> radio range from the sink<br />
nodes.<br />
3.3.2 Multi-hop to Sink<br />
This paradigm allows sensor nodes far away from the<br />
sink nodes to transmit data to neighbouring sensor nodes,<br />
which in turn forward the data toward the sink nodes. The<br />
forwarding process may involve multiple sensor nodes on<br />
the path between the source node and the collection point.<br />
Thus, this paradigm uses a centralized, multi-hop communication<br />
model. Regardless <strong>of</strong> the length <strong>of</strong> the path, the<br />
data eventually reaches the collection point. Coordination<br />
among nodes in routing the data to the base station is part<br />
<strong>of</strong> this paradigm.<br />
3.3.3 On-Demand Operation<br />
In this paradigm, sensors receive commands from a controller,<br />
either directly or via forwarding, and configure<br />
themselves based on the requests. Both the Single-hop<br />
to Sink and Multi-hop to Sink paradigms are many-to-one<br />
communication models, designed exclusively for non ondemand<br />
data transmission. On the other hand, in Ondemand<br />
Operation, commands may be broadcast from the<br />
controller (e.g. base station) to the entire WSN, or may be<br />
unicast to several sensor nodes in (one-to-many communication).<br />
Data transmission is expensive in a WSN, and non<br />
on-demand data transmissions may reduce the lifetime <strong>of</strong><br />
the WSN significantly. Also, transmissions may be unnecessary<br />
(e.g. 100 sensor nodes reporting directly to a sink<br />
that the temperature in the region is 35C). If transmissions<br />
could be regulated appropriately, then the lifetime <strong>of</strong> the<br />
WSN could be increased without affecting the quality <strong>of</strong><br />
information reaching the sink.<br />
Consider, for example, a group <strong>of</strong> sensor nodes that are<br />
deployed to monitor temperature. Upon deployment, all<br />
nodes begin operating in the idle mode, which is a low<br />
power mode. The controller broadcasts a wakeup to the<br />
group, which react to this command by making the transition<br />
to the active state. Subsequently, the controller broadcasts<br />
a get data command, which solicits data from the<br />
sensor nodes. Finally, the controller instructs the sensor<br />
nodes to idle and the cycle repeats periodically. Thus, the<br />
combination <strong>of</strong> the one-to-many and many-to-one communication<br />
models is more energy efficient than simply using<br />
the latter for non on-demand data transmission. If unicast<br />
messaging is employed, then some form <strong>of</strong> addressing <strong>of</strong><br />
each individual node needs to be employed. However, no<br />
guarantees on the unicast message actually reaching the<br />
intended recipient can be given, because none <strong>of</strong> the nodes<br />
in the WSN may be aware <strong>of</strong> either route(s) to the recipient<br />
or the topology <strong>of</strong> the WSN.<br />
3.3.4 Self Organization<br />
Upon deployment, the WSN self organizes, and a central<br />
controller(s) learns the network topology. Knowledge <strong>of</strong><br />
the topology may remain at the controller (e.g. base station)<br />
or it may be shared, in whole or in part, with the<br />
nodes <strong>of</strong> the WSN. This paradigm may include the use<br />
<strong>of</strong> more powerful sensors that serve as cluster heads for a<br />
small coalition within the WSN, and it requires a strong<br />
notion <strong>of</strong> routing. This paradigm extends the bidirectional<br />
communication model by introducing the concept <strong>of</strong> self organization.<br />
It consists <strong>of</strong> three primary tasks: node discovery,<br />
route establishment and topology maintenance. The<br />
accomplishment <strong>of</strong> these three tasks leads to the formation<br />
<strong>of</strong> a true WSN. While the previous paradigms used<br />
a centralized communication model, this and the following<br />
paradigms seek to employ a combination <strong>of</strong> centralized<br />
and distributed communication in order to allow the<br />
WSN to perform as efficiently as possible. Topology maintenance<br />
in a WSN is unlike that in any other wireless network.<br />
In WSNs, nodes may be stationary or mobile. When<br />
there is no mobility, the topology, once established, usually<br />
does not change. However, as nodes perform their<br />
assigned tasks they deplete and eventually exhaust their<br />
energy store, causing them to die. The WSN may be refreshed<br />
by the periodic addition <strong>of</strong> new nodes to the WSN.<br />
3.3.5 Data Aggregation<br />
This paradigm is that data aggregation is performed in<br />
order to reduce the traffic and conserve the power (see Data<br />
Aggregation in section 3.2.9). All sensor nodes transmit<br />
the data towards the base station (or sink nodes) in either<br />
an on-demand or non on-demand manner.<br />
3.3.6 Reacting Process<br />
All the above paradigms essentially consider gathering<br />
data and delivering them to sink nodes. Nodes in the<br />
WSN are not concerned with the semantics <strong>of</strong> the data<br />
obtained through the sensing task. Predicated upon their<br />
own measurements and upon the values <strong>of</strong> incoming data,<br />
requires that sensor nodes act based on those values. The<br />
action may be a calculation, or actions triggered by incoming<br />
data. If multi routing protocols are operated in<br />
the WSN, an action may be a decision on the choice <strong>of</strong><br />
protocol. Alternatively, the routing protocol may be performed<br />
based only on the geographical location, in which<br />
case the node processes accordingly. A sensor actuator<br />
node can analyze the data and react to change the state<br />
<strong>of</strong> the real world such as sending commands to actuators.<br />
WSAN belongs to this paradigm.<br />
3.4 Aggregation, Filtering and Correlation<br />
<strong>Sensor</strong> fusion is a combination <strong>of</strong> sensed data or data derived<br />
from sensed data such that the resulting information<br />
gives more information than individual sensed data.<br />
Sometimes, the information may be acquired from multiple<br />
sources (sensor, database, information gathered by<br />
human, etc.). Since sensor fusion algorithms <strong>of</strong>ten afford<br />
information about the measurement instant, or even coordinated<br />
distributed measurements, at a particular point<br />
in time, the employment <strong>of</strong> a time-triggered architecture<br />
9
for distributed sensor fusion systems is advantageous. Innetwork<br />
data aggregation in WSN summarizes sensor values<br />
in some or all <strong>of</strong> a sensor network, and it highlights<br />
an importance <strong>of</strong> data aggregation. Many aggregation operations<br />
come from database operations such as taking an<br />
average or maximum value in existing middleware (e.g.,<br />
TinyDB [146]). However, the aggregation process fundamentally<br />
depends on an application’s requirement, and to<br />
fulfil the request, a simple aggregation may not be enough.<br />
It may also involve event (data) filtering and correlation<br />
during processing sensor data. It is important to use approaches<br />
taken from global computing in the processing <strong>of</strong><br />
sensor data.<br />
Event Correlation is essential when the data is produced<br />
in a WSN and multi-step operation carries the data from<br />
event sources to the end-applications. These may reside<br />
in the Internet and it must be possible to combine information<br />
collected by wireless devices with higher level<br />
information or knowledge in distributed environments.<br />
In [230], we introduced a generic composite event semantics,<br />
which combines traditional event composition with<br />
the generic concept <strong>of</strong> data aggregation in wireless sensor<br />
networks. The main focus is on supporting time and<br />
space related issues such as temporal ordering, duplication<br />
handling, and interval-based semantics, especially for<br />
wireless network environments. We presented event correlation<br />
semantics defining precise and complex temporal<br />
relationships among correlated events using interval-based<br />
semantics.<br />
Event correlation is deployed sometimes as a part <strong>of</strong> applications,<br />
event notification services, or middleware services.<br />
Definition and detection <strong>of</strong> composite events vary,<br />
especially over distributed environments. Event composition<br />
operators do not necessarily have the same semantics<br />
in different network environments, while similar semantics<br />
might be expressed using different operators.<br />
Many event-based middlewares <strong>of</strong>fer content-based filtering.<br />
Here, subscribers use flexible querying languages<br />
to declare their interests with respect to event contents.<br />
Event filtering allows specific attribute values on an event<br />
type to be selected, while event correlation addresses the<br />
temporal and spatial relation among instances <strong>of</strong> event<br />
types. Filtering and correlation share many properties.<br />
WSNs led to new issues to be addressed in event correlation.<br />
Traditional networking <strong>research</strong> approached data<br />
aggregation as an application-specific technique that can<br />
be used to reduce the network traffic. Fig.3 highlights the<br />
relation among aggregation, filtering and correlation.<br />
TinyDB is an inquiry processing system for sensor networks<br />
and takes a data centric approach, where each node<br />
keeps its data, and nodes execute retrieval and aggregation<br />
(in-network aggregation), with on-demand based operation<br />
to deliver the data to external applications. TinyLIME<br />
[57] is enhancing LIME (Linda In Mobile Environments)<br />
to operate on TinyOS. In TinyLIME, a partitioned tuple<br />
space, as well as LIME is maintained on each sensor node,<br />
and a coordinated tuple space is formed when connecting<br />
with the base station within one hop. This works as<br />
middleware by <strong>of</strong>fering an abstract interface to the application.<br />
The current form <strong>of</strong> TinyLIME does not provide any<br />
data aggregation function. Only a data filtering function,<br />
based on the Linda/LIME operation, is provided at the<br />
base station node. On the other hand, TinyDB supports<br />
a data aggregation function via SQL query, but redundancy/duplication<br />
handling is not clear thus far.<br />
Aggregation<br />
Time, Space<br />
Correlation<br />
Events<br />
Event X<br />
Event Y<br />
Data Contents<br />
OPKQMR STUMKJKNOPKQMR HIIJKILMKN<br />
Event Instances<br />
Filtering<br />
Figure 3: Filtering, Aggregation and Correlation<br />
The coordination <strong>of</strong> nodes within WSN differs from the<br />
other wireless ad hoc networks, where the group <strong>of</strong> nodes<br />
act as a single unit <strong>of</strong> processors in many cases. For a<br />
single phenomenon, multiple events may be produced in<br />
order to avoid the loss <strong>of</strong> event instances, which is a totally<br />
different concept from traditional duplicate events.<br />
Middleware <strong>research</strong> for WSN has recently increased,<br />
but most <strong>research</strong> focuses on in-network operation for specific<br />
applications. A global view <strong>of</strong> event correlation, filtering<br />
and aggregation over whole distributed systems must<br />
be addressed. Aggregation should have three stages: local,<br />
neighbour, and global.<br />
4. TECHNOLOGIES SUPPORTING WSN<br />
The advance <strong>of</strong> WSN depends on a wide range <strong>of</strong> <strong>technologies</strong>,<br />
such as hardware, system s<strong>of</strong>tware and network<br />
communication. One <strong>of</strong> the difficult issues for WSNs is<br />
that the application requirements on WSNs differ from<br />
one application to another. In [135], 20 different properties<br />
are measured by commercial sensor systems using<br />
electrical, photonic, seismic, chemical and other transduction<br />
principles. Desirable, quantified properties are ease<br />
<strong>of</strong> installation, self identification, self diagnosis, reliability,<br />
time awareness, and locality awareness. The results show<br />
that it is not easy to define generic requirements on accuracy<br />
and sampling rate, for sensor nodes and networks.<br />
Fig. 4 outlines the <strong>technologies</strong> surrounding WSNs.<br />
Security<br />
Data Centric<br />
Localization<br />
Transport<br />
Routing<br />
Application<br />
Sensing/<strong>Wireless</strong> Devices<br />
Hardware<br />
Aggregation<br />
Data management<br />
System Architecture<br />
Position Optimization<br />
Calibration<br />
Power Control<br />
Figure 4: Technologies for WSNs<br />
This section describes various <strong>technologies</strong> supporting<br />
sensor networks. The issues related to the sensor node<br />
hardware is out <strong>of</strong> scope in this paper. We focus on the<br />
system and network communication <strong>technologies</strong> in this<br />
section and discuss the current state <strong>of</strong> these <strong>technologies</strong>.<br />
4.1 System Architecture<br />
10
This section describes a <strong>research</strong> trend in system architecture<br />
including operating systems, positioning and tracking<br />
targets, localization, time synchronization, security,<br />
and programming paradigms. We locate the programming<br />
models topic in section 5.<br />
4.1.1 System S<strong>of</strong>tware and Platform<br />
Many <strong>research</strong> groups in both academia and industry are<br />
currently devoted to the development <strong>of</strong> sensor platforms.<br />
One <strong>of</strong> the first and probably most popular platforms is<br />
Berkeley motes. TinyOS [96] is an operating system to<br />
control the hardware <strong>of</strong> motes. TinyOS is an open source<br />
project to provide microkernels. These include strippeddown<br />
versions <strong>of</strong> functional units in operating systems that<br />
can be selected to provide system support only when their<br />
functionality is needed. The bottom line is that due to<br />
severe restriction on various resources, the system should<br />
consist <strong>of</strong> only those functionalities needed, whether implemented<br />
in hardware or system s<strong>of</strong>tware.<br />
TinyOS provides lightweight thread support and efficient<br />
network interfaces. Two issues in particular are addressed:<br />
(1) to support concurrency, different flows <strong>of</strong> data must be<br />
kept moving simultaneously, and (2) the system must provide<br />
efficient modularity (i.e., hardware and applicationspecific<br />
components must combine with little processing<br />
and storage overhead). Users can select only the minimum<br />
component that the application needs from among<br />
these component groups. Components can be executed in<br />
parallel, and while waiting events, resource consumption<br />
(Neither Blocking nor Polling are done) is minimised.<br />
NesC [72], which is a C language extension can be used<br />
on TinyOS. NesC has the feature such as event driven,<br />
parallel execution, component orientation etc. and corresponds<br />
to the components and event processing <strong>of</strong> TinyOS.<br />
Greenstein et al. [59] <strong>of</strong>fer a component library SNACK<br />
(<strong>Sensor</strong> <strong>Network</strong> Application Construction Kit) to facilitate<br />
the development on TinyOS. Dai et al. [76] propose<br />
the file system ELF (Efficient Log structured Flash file<br />
system) for storage using flush memory.<br />
4.1.2 Localization<br />
When sensor information is obtained from a certain sensor<br />
node, its physical position is that at which the sensor information<br />
is obtained. Therefore, the position <strong>of</strong> the sensor<br />
node is essential information for analyzing sensor information.<br />
This information can be used for various algorithms<br />
such as location based routing [165].<br />
Various <strong>research</strong> has focussed on detecting the positions<br />
<strong>of</strong> sensor nodes. For example, Moore [158] proposes an<br />
algorithm that successfully locates nodes in a sensor network<br />
with noisy distance measurements, using no beacons<br />
or anchors. Shang [193] and Ji [111] use multi dimensional<br />
scaling (MDS) to identify positions. This uses connectivity<br />
information such as who is within communications range <strong>of</strong><br />
whom to derive the locations <strong>of</strong> the nodes in the network,<br />
and can take advantage <strong>of</strong> additional data, such as estimated<br />
distances between neighbours or known positions for<br />
certain anchor nodes, Moreover, Cheng [49] proposes the<br />
technique <strong>of</strong> a time based positioning scheme (TPS). TPS<br />
relies on TDoA (Time-Difference-<strong>of</strong>-Arrival) <strong>of</strong> RF signals<br />
measured locally at a sensor to detect range differences<br />
from the sensor to three base stations. These range differences<br />
are averaged over multiple beacon intervals before<br />
they are combined to estimate the sensor location through<br />
trilateration.<br />
Accurate positioning is a key for many sensor applications<br />
including surveillance networks, robotic sensors, location<br />
based routing in WSNs, smart spaces and environmental<br />
monitoring by mobile sensors. Although GPS can<br />
potentially provide accurate positioning, the complexity <strong>of</strong><br />
the required receivers may be too costly for inexpensive<br />
sensor nodes. Furthermore, the GPS signal is extremely<br />
weak and positioning can be unreliable inside buildings or<br />
under dense foliage. These drawbacks to GPS positioning<br />
have led to increasing interest in GPS-less distributed<br />
radio location methods for wireless sensor networks.<br />
4.1.3 Spatial Temporal Correlation<br />
WSNs are characterized by the dense deployment <strong>of</strong> sensor<br />
nodes that continuously observe physical phenomena. Because<br />
<strong>of</strong> high density in network topology and the nature<br />
<strong>of</strong> the physical phenomena, sensor observations are highly<br />
correlated in space and time domains.<br />
• Spatial Correlation: Typical WSN applications require<br />
spatially dense sensor deployment for reliable<br />
coverage.<br />
• Temporal Correlation: Event tracking may require<br />
sensor nodes to periodically perform observation and<br />
transmission <strong>of</strong> sensed data.<br />
The spatial and temporal correlations along with the collaborative<br />
nature <strong>of</strong> the WSN bring significant potential<br />
advantages for efficient communication protocols. Akyildiz<br />
et al. [9] proposes a theoretical framework to model the<br />
spatial and temporal correlations in sensor networks. The<br />
objective <strong>of</strong> this framework is to enable the development <strong>of</strong><br />
efficient communication protocols which exploit these advantageous<br />
intrinsic features <strong>of</strong> the WSN paradigm.<br />
An example <strong>of</strong> a communication abstraction is Spatial<br />
Programming [30] which uses Smart Messages to provide<br />
content-based spatial references to embedded resources.<br />
4.1.4 Position Optimisation<br />
Coverage is the spatial sensing range <strong>of</strong> a sensor node. This<br />
has to be coordinated among sensor nodes to avoid redundancy,<br />
and to take account <strong>of</strong> communication distance and<br />
other characteristics <strong>of</strong> sensing tasks. Research on positioning<br />
sensor nodes has taken different approaches. For<br />
example, sensor nodes can move to optimise their own positions<br />
[41, 198, 175, 219]. Batalin [22] proposes a sensor<br />
architecture that combines both fixed and mobile sensor<br />
nodes to achieve a spatio temporal environment coverage.<br />
Mobility allows the networked sensor system to always seek<br />
the most efficient spatio temporal sampling distribution to<br />
achieve a specified accuracy <strong>of</strong> environmental variable reconstruction.<br />
Further, mobility also permits the system<br />
to respond to initially unpredictable and variable environmental<br />
evolution. Recently Ravelomanana et al. [177]<br />
analysed various critical transmitting/sensing ranges for<br />
connectivity and coverage in three-dimensional sensor networks.<br />
Kumar et al. [127] formulate the coverage problem<br />
as a decision problem, and analyses to determine whether<br />
every point in the service area <strong>of</strong> the sensor network is covered<br />
by at least k sensors, where k is a predefined value.<br />
The sensing ranges <strong>of</strong> sensors can be unit disks or non unit<br />
disks. They present polynomial time algorithms, in terms<br />
<strong>of</strong> the number <strong>of</strong> sensors that can easily be translated to<br />
distributed protocols.<br />
11
4.1.5 Time Synchronization<br />
The management <strong>of</strong> time and time related operations in<br />
WSNs is essential to timestamp events, control an operation<br />
cycle, synchronize network operations and so forth.<br />
<strong>Network</strong> Time Protocol (NTP) [157] is an Internet standard.<br />
NTP allows for assignment <strong>of</strong> real-time timestamps<br />
with given maximal errors. Global and partial order <strong>of</strong><br />
events can be obtained with a certain accuracy based on<br />
timestamps. However, NTP requires frequent message exchange<br />
to synchronize a clock in each node, and existence<br />
<strong>of</strong> NTP server cannot be expected in WSN environments.<br />
This results in NTP not being suitable for WSNs and a new<br />
type <strong>of</strong> time synchronization is needed [201]. Dai et al. [58]<br />
propose an architecture TSync, where push and pull time<br />
synchronization mechanisms are combined. Maróti et al.<br />
[158] use flooding in multi hop sensor networks. Li et al.<br />
[137] discuss three methods to achieve global synchronization<br />
in a sensor network: a node based approach, a hierarchical<br />
cluster based method, and a fully locad diffusion<br />
based method. Their Diffusion Method is a synchronous<br />
and asynchronous implementation <strong>of</strong> diffusion based protocols.<br />
Prakash et al. [173] present a GPS based virtual global<br />
clock that is used for timestamping events, and deploys a<br />
similar concept 2g-precedence. Without the existence <strong>of</strong><br />
GPS, there is no means to synchronize the clocks <strong>of</strong> all<br />
the nodes in a deterministic fashion with an upper bound<br />
independent <strong>of</strong> the message propagation delay and system<br />
size. Logical time cannot be used to determine temporal<br />
ordering, because causal ordering <strong>of</strong> events in the<br />
real world must be obtained. Thus, physical time has to<br />
be used requiring clock synchronization. However, most<br />
<strong>of</strong> the synchronization algorithms rely on partitioned networks.<br />
Post-facto synchronization [65] is based on unsynchronized<br />
local clocks but limits synchronization to the<br />
transmit range <strong>of</strong> the mobile nodes. In [184], Römer takes<br />
a similar approach using unsynchronized clocks. The idea<br />
<strong>of</strong> the algorithm is not to synchronize the local computer<br />
clocks <strong>of</strong> the devices but instead to generate timestamps<br />
from a local clock. When such locally generated timestamps<br />
are passed between devices, they are transformed to<br />
the local time <strong>of</strong> the receiving device. Lucarelli et al. [143]<br />
builds protocols on the recent work <strong>of</strong> Hong, Cheow, and<br />
Scaglione [99] in which the synchronization update rules are<br />
mode led by a system <strong>of</strong> pulse coupled oscillators. They<br />
define a class <strong>of</strong> models that converge to a synchronized<br />
state based on the local communication topology <strong>of</strong> the<br />
sensor network only, thereby lifting the all-to-all communication<br />
requirement implicit in [99]. Under some rather<br />
mild assumptions <strong>of</strong> the connectivity <strong>of</strong> the network over<br />
time, these protocols still converge to a synchronized state<br />
when the communication topology is time varying.<br />
4.1.6 Object Tracing<br />
A standard problem <strong>of</strong> WSNs includes the problem <strong>of</strong> localization<br />
<strong>of</strong> one observation object (target) perceived by two<br />
or more sensors. For instance, to measure the position <strong>of</strong><br />
an intruder vehicle according to sensor information on each<br />
sensor node located in an area. Bergamo [24] proposes to<br />
identify the position using a sensor array <strong>of</strong> iPAQs. Cheng<br />
et al. [48] propose dynamic construction <strong>of</strong> clustering. Instead<br />
<strong>of</strong> assuming the same role for all the sensors, their<br />
vision is a hierarchical sensor network that is composed <strong>of</strong><br />
(1) a static backbone <strong>of</strong> sparsely placed high capability sensors<br />
which will assume the role <strong>of</strong> a cluster head (CH) upon<br />
triggering by certain signal events; and (2) moderately to<br />
densely populated low end sensors whose function is to provide<br />
sensor information to CHs upon request. A cluster is<br />
formed and a CH becomes active, when the acoustic signal<br />
strength detected by the CH exceeds a predetermined<br />
threshold. The active CH then broadcasts an information<br />
solicitation packet, asking sensors in its vicinity to join the<br />
cluster and provide their sensing information. The proposed<br />
dynamic clustering algorithm effectively eliminates<br />
contention among sensors and yields more accurate estimates<br />
<strong>of</strong> target locations as a result <strong>of</strong> better quality data<br />
collected and fewer collisions. Zhang et al. [235] propose a<br />
tree based approach to facilitate sensor nodes collaborating<br />
in detecting and tracking a mobile target. As the target<br />
moves, many nodes in the tree may become distant from<br />
the root <strong>of</strong> the tree, and hence a large amount <strong>of</strong> energy<br />
may be wasted for them to send their sensing data to the<br />
root. Hu et al. [102] introduce the sequential Monte Carlo<br />
Localization method and argue that it can exploit mobility<br />
to improve the accuracy and precision <strong>of</strong> localization. Gui<br />
et al. [78] propose a collaborative messaging scheme that<br />
wakes up and shuts down the sensor nodes with spatial and<br />
temporal preciseness. This approach quantifies the trade<strong>of</strong>f<br />
between power conservation and quality <strong>of</strong> surveillance<br />
while presenting guidelines for efficient deployment <strong>of</strong> sensor<br />
nodes for target tracking application. EnviroTrack [1]<br />
is the first programming support for sensor networks that<br />
explicitly supports tracking mobile objects (see details in<br />
6.2.3).<br />
4.1.7 Security<br />
<strong>Sensor</strong> network security is a critical issue but minimal <strong>research</strong><br />
has been done compared to other aspects <strong>of</strong> WSNs.<br />
<strong>Sensor</strong> nodes are resource-constrained and embedded in<br />
physical environments, where unlimited resource for the<br />
calculation can not be expected. A different technology<br />
from existing network security is required for WSNs. In<br />
[14], Avancha et al. provide a good summary <strong>of</strong> the direction<br />
<strong>of</strong> security <strong>research</strong> in WSNs. Wood [224] provides a<br />
<strong>survey</strong> <strong>of</strong> many kinds <strong>of</strong> denial <strong>of</strong> service attacks in sensor<br />
networks and discusses defence <strong>technologies</strong>. Perrig describes<br />
necessary <strong>technologies</strong> for the security for WSNs<br />
[171] and sumarises as follows.<br />
For network communication, desired <strong>technologies</strong> are<br />
sharing methods <strong>of</strong> encryption keys and encrypting methods<br />
[62], privacy, DoS (denial <strong>of</strong> service) attack, secure<br />
routing, discovery <strong>of</strong> malicious nodes and their restoration.<br />
[170] addresses secure communication in resource constrained<br />
sensor networks, introducing two low level secure<br />
building blocks. For system support, group management,<br />
invasion discovery and secure data aggregation are needed.<br />
Karl<strong>of</strong> implemented TinySec [119] as an encryption module<br />
for the link layer. TinySec has achieved operation on the<br />
resources <strong>of</strong> TinyOS that are very limited. Karl<strong>of</strong> [118] analyzed<br />
security flaws <strong>of</strong> various routing protocols on WSNs,<br />
and proposed countermeasures to enhance sensor network<br />
routing. To defend against the rushing attack, this paper<br />
proposed that every node only process beacon messages<br />
through bidirectional links as well as verified neighbour<br />
nodes. While the issue <strong>of</strong> intrusion tolerance has been<br />
known for quite some time, recent increase in the need<br />
for safety critical systems has significantly raised <strong>research</strong><br />
activity in this area. Recent projects addressing intrusion<br />
tolerance include [174, 187]. All these projects are aimed at<br />
12
providing intrusion tolerance capabilities in a traditional,<br />
resource rich computing environment.<br />
The use <strong>of</strong> hybrid models for communication security<br />
will enable easier integration <strong>of</strong> data aggregation and key<br />
management algorithms. This will also ensure flexibility<br />
and adaptability <strong>of</strong> the WSN; self healing mechanisms and<br />
the ability to react to changing conditions can also be easily<br />
integrated. Both centrad and distributed key management<br />
techniques for WSNs have been discussed in the literature.<br />
Research efforts directed toward this problem have shown<br />
that key distribution in WSNs can be energy efficient and<br />
secure under certain conditions.<br />
Distributed key management techniques are completely<br />
independent <strong>of</strong> any security architecture. For example, the<br />
work on secure pebblenets [21] is mainly concerned with<br />
choosing a key manager in every round, but does not address<br />
the issues involved in using the key for encryption,<br />
authentication or other security functions. On the other<br />
hand, the SPINS project [170] assumes pre-deployed keying<br />
in the entire security architecture. The ideal security<br />
model will consist <strong>of</strong> a combination <strong>of</strong> robust, energy efficient,<br />
secure key distribution mechanisms with well defined,<br />
comprehensive security architectures. A similar situation<br />
is observed when security architectures and data<br />
aggregation algorithms are considered. Current security<br />
architectures do not really consider the issue <strong>of</strong> integrating<br />
data aggregation algorithms; rather they assume that<br />
designated nodes, such as the controller or cluster heads,<br />
will perform the required aggregation functions. On the<br />
other hand, data aggregation algorithms assume complete<br />
and unhindered cooperation among all sensor nodes in the<br />
WSN as far as performing the aggregation functions is concerned.<br />
This assumption is non-trivial; a security protocol<br />
that supports such a cooperation model will not be scalable<br />
because pairwise communication security is required<br />
across the WSN. Thus, integration <strong>of</strong> energy efficient data<br />
aggregation algorithms with robust security architectures<br />
is essential in designing the ideal security model.<br />
Flexibility, adaptability and self healing mechanisms are<br />
essential to the functioning <strong>of</strong> a WSN and optimal resource<br />
use during its lifetime. None <strong>of</strong> the existing security architectures<br />
use the data associated with sensed environmental<br />
conditions to help detect the beginnings <strong>of</strong> attacks or<br />
<strong>of</strong> aberrant behaviour by nodes. This reduces the ability<br />
<strong>of</strong> the WSN to protect itself from attacks mounted within<br />
and outside the network. In fact, detecting and preventing<br />
attacks from within, i.e. attacks mounted by compromised<br />
nodes, is a harder problem than preventing external attacks<br />
such as jamming. Thus, the move toward the ideal<br />
security model calls for the design and development <strong>of</strong> compact,<br />
lightweight mechanisms to capture and reason over<br />
data describing environmental and security conditions.<br />
While there is little need for security in environmental<br />
monitoring, intelligent agriculture or radiation detection<br />
and other natural or wide range phenomenon, when a<br />
similar setting is used to monitoring human activities, the<br />
concern about privacy, and even safety, becomes a major<br />
factor. WSNs in assisted living or intelligent <strong>of</strong>fices, are<br />
valuable in terms <strong>of</strong> automation, remembering and remote<br />
assistance. But the same technology that allows doctors<br />
and relatives to monitor the condition <strong>of</strong> an elderly person<br />
can lead to breaches <strong>of</strong> privacy if data is processed<br />
in an improper manner or accessed by unauthorized persons.<br />
The capabilities <strong>of</strong> automated analysis and remote<br />
access make this new generation <strong>of</strong> sensing technology an<br />
even worse threat to individuals’ privacy. This issue can<br />
be addressed with a combination <strong>of</strong> technical measures and<br />
analytic frameworks from the perspective <strong>of</strong> law and psychology.<br />
Techniques such as tighter access control to the<br />
collected data, secure channel communications, options for<br />
users to voluntary opt out, or control <strong>of</strong> data granularity<br />
can all mitigate the privacy concern. Regarding the<br />
privacy issue from the perspective <strong>of</strong> law, Jacobs has suggested<br />
an analytic framework based on the Fourth Amendment<br />
and Supreme Court ruling, with an audience <strong>of</strong> concern,<br />
and the motivation <strong>of</strong> the reasoning process as the<br />
two axes <strong>of</strong> the paradigm [110].<br />
MANET Security: MANETs employ a distributed,<br />
multi-hop, node-centric communication model. In a<br />
MANET, users control their wireless devices, however the<br />
device itself has some degree <strong>of</strong> autonomy. The autonomy<br />
is best illustrated by a device’s choosing the most appropriate<br />
set <strong>of</strong> neighbouring devices to contact based on user<br />
requirements. Thus, communication in MANETs is node<br />
centric, rather than user centric. We may immediately<br />
observe that device authentication and data confidentiality<br />
are much more important than access control, which<br />
may not be relevant in certain situations. Unlike infrastructure<br />
supported wireless networks, the security problem<br />
confronted by a MANET is to mitigate the actions <strong>of</strong> malicious<br />
users who may attempt to disrupt communication in<br />
the network. Thus, security protocols in MANETs employ<br />
mechanisms such as certificates to authenticate users and<br />
encrypt data using symmetric or asymmetric algorithms.<br />
Due to the fact that MANETs allow multi-hop communications,<br />
most attacks are directed against the protocols that<br />
route data between intermediate nodes on the path from<br />
source to destination. Thus, network level security is the<br />
focus <strong>of</strong> attention in security <strong>research</strong> related to MANETs.<br />
Protocols and methods designed to address this issue include<br />
SEAD [100], Ariadne [101], security enhancements in<br />
AODV [26], secure position aided routing [43], secure ad<br />
hoc routing [168] and an on-demand secure routing protocol<br />
resilient to Byzantine failures [15]. End-to-end security<br />
is a non-trivial problem in MANETs because security protocols<br />
must rely on intermediate nodes which, depending<br />
upon their individual capabilities, may not contain all <strong>of</strong><br />
the mechanisms required by the protocols.<br />
4.2 <strong>Network</strong> and Communication Control<br />
This section describes <strong>research</strong> <strong>trends</strong> in network and communication<br />
control in WSNs. A more intensive <strong>survey</strong> <strong>of</strong><br />
network communication can be found in [4, 6]. The <strong>research</strong><br />
on network control includes that on communication<br />
methods, saving power consumption, congestion control,<br />
topology management, routing, and modelling. Current<br />
architectures for the Internet and ad hoc wireless networks<br />
may not be used for WSNs for the following reasons.<br />
• Number <strong>of</strong> sensor nodes in a WSN is much higher<br />
than an ad hoc network.<br />
• <strong>Sensor</strong> nodes failure rate is high.<br />
• <strong>Sensor</strong> nodes are more resource constrained.<br />
• <strong>Sensor</strong> nodes are limited in power.<br />
• The use <strong>of</strong> acknowledgement packets should be used<br />
sparingly.<br />
Thus, an architecture for WSNs will be:<br />
13
• Combine power and routing awareness.<br />
• Integrate data with network protocols.<br />
• Communicate power efficiently.<br />
• Share tasks among neighbour nodes.<br />
Several <strong>research</strong> projects have reported on new network<br />
control algorithms to solve sensor network specific problems<br />
such as constrained resources, localization and power<br />
consumption.<br />
4.2.1 Power Saving Communication Protocol<br />
<strong>Sensor</strong>s are meant to be left in a real environment for the<br />
long term and saving power consumption is an important<br />
issue. The function that consumes most power in WSNs is<br />
communication. Reducing power consumption requires optimisation<br />
across all layers, from the physical layer, channel<br />
coding, and media access control layer up through the<br />
routing, transport, and application layers. The MAC layer<br />
plays the most crucial role in the communication protocols<br />
for energy efficiency, especially for networks with low duty<br />
cycling radios. In [67, 172], a low power operation through<br />
a careful codesign approach combining a dedicated duty<br />
cycled radio with a low power MAC protocol is proposed.<br />
Reason et al. [178] introduce a technique <strong>of</strong> application<br />
aware radio duty cycling called on-demand spatial TDMA<br />
for a moderatesize, multi-hop, sensor network,.<br />
4.2.2 Congestion Control<br />
Congestion control in wired networks is usually done using<br />
end-to-end and network layer mechanisms acting in concert.<br />
However, this approach does not solve the problem<br />
in wireless networks because concurrent radio transmissions<br />
on different links interact with and affect each other,<br />
and because radio channel quality shows high variability<br />
over multiple timescales. WSNs are based on broadcasts<br />
as the main communication mechanism. Hull et al. [106]<br />
examine three techniques that span different layers <strong>of</strong> the<br />
traditional protocol stack: hop by hop flow control, rate<br />
limiting source traffic when transit traffic is present, and<br />
a prioritised medium access control (MAC) protocol. The<br />
combination <strong>of</strong> these techniques can improve network efficiency.<br />
Ee et al. [64] propose a distributed and scalable<br />
algorithm that eliminates congestion within a sensor network,<br />
and that ensures the fair delivery <strong>of</strong> packets to a<br />
central node, or base station. Kang et al. [115] show a<br />
method to estimate the communication capacity <strong>of</strong> endto-end<br />
in WSNs.<br />
4.2.3 Topology Management<br />
Heinzelman et al. [92] propose and analyze a low energy<br />
adaptive clustering hierarchy (LEACH). This is a protocol<br />
architecture for micro sensor networks that combines the<br />
ideas <strong>of</strong> energy efficient cluster based routing and media<br />
access together with application specific data aggregation<br />
to achieve good performance in terms <strong>of</strong> system lifetime,<br />
latency, and application perceived quality. LEACH includes<br />
a new, distributed cluster formation technique that<br />
enables self organization <strong>of</strong> large numbers <strong>of</strong> nodes, algorithms<br />
for adapting clusters and rotating cluster head positions<br />
to distribute the energy load evenly among all the<br />
nodes, and techniques to enable distributed signal processing<br />
to save communication resources. Sohrai et al. [206]<br />
propose a formation mechanism for wireless unattended<br />
ground sensor applications using a multi-cluster hierarchical<br />
topology (Rendezvous Clustering Algorithm), where a<br />
novel dual radio architecture is used. Smaragdakis et al.<br />
[203] propose SEP, a heterogeneity-aware protocol to prolong<br />
the time interval before the death <strong>of</strong> the first node,<br />
which is crucial for many applications where the feedback<br />
from the sensor network must be reliable. SEP is based on<br />
weighted election probabilities <strong>of</strong> each node becoming the<br />
cluster head according to the remaining energy in each<br />
node. Younis et al. [232] propose a similar approach,<br />
HEED (Hybrid Energy Efficient Distributed clustering),<br />
that periodically selects cluster heads according to a hybrid<br />
<strong>of</strong> their residual energy and a secondary parameter,<br />
such as a node’s proximity to its neighbours or node degree.<br />
Cerpa et al. [44] propose an adaptive self configuration<br />
topology mechanism, where the ASCENT algorithm<br />
is deployed. ASCENT only builds a subset <strong>of</strong> the nodes<br />
necessary to establish a routing forwarding backbone. In<br />
ASCENT, each node assesses its connectivity and adapts<br />
its participation in the multi-hop network topology based<br />
on the measured operating region. Initially a small number<br />
<strong>of</strong> active nodes participate in routing, the rest being in<br />
passive mode. Nodes in passive mode regularly turn to test<br />
mode and change to active mode when there are not many<br />
neighbour nodes and loss <strong>of</strong> the packets is high. Ma et al.<br />
[144] propose a hub spoke network topology that is adaptively<br />
formed according to the resources <strong>of</strong> its members.<br />
A protocol named Resource Oriented Protocol (ROP) was<br />
developed to build the network topology. This protocol<br />
principally divides the network operation into two phases.<br />
In the topology formation phase, nodes report their available<br />
resource characteristics, based on which a network<br />
architecture is built optimally.<br />
4.2.4 Routing<br />
Many routing protocols have been proposed [103, 95,<br />
215, 56], where the network topology changes frequently<br />
because <strong>of</strong> node failure and communication conditions.<br />
Helmy et al. [95] propose an architecture that is geared towards<br />
one shot frequent queries in sensor networks. Their<br />
approach aims at reducing the total energy cost <strong>of</strong> query<br />
resolution as opposed to searching for high quality routes.<br />
The architecture uses a hybrid approach, where each node<br />
collects information about nodes in its proximity, up to R<br />
hops away, using a link state protocol. Beyond this proximity,<br />
the novel notion <strong>of</strong> contacts that act as short cuts to<br />
reduce the degrees <strong>of</strong> separation between the request source<br />
and the target is introduced. Trakadas et al. [215] classify<br />
a selection <strong>of</strong> algorithms proposed for ad hoc networks according<br />
to their relevance and efficiency. A spatial position<br />
node from GPS or other coordination mechanisms can be<br />
used for geographic routing and there have been many proposals<br />
using this, such as [155, 191, 71]. Survey papers [4,<br />
6, 215] contain useful details <strong>of</strong> routing protocols in WSNs.<br />
Data routing approaches in WSNs fall into into three main<br />
categories, namely data centric, hierarchical and location<br />
based. A few other protocols follow the traditional network<br />
flow and QoS modelling methodology.<br />
There are some hybrid protocols that fit under more than<br />
one category as shown in Table 1. The table summarizes<br />
the classification <strong>of</strong> the hybrid protocols (see more detailed<br />
explanation in [6]. Protocols, which name the data and<br />
query the nodes based on some attributes <strong>of</strong> the data are<br />
categorized as data centric. Many <strong>research</strong>ers follow this<br />
paradigm in order to avoid the overhead <strong>of</strong> forming clus-<br />
14
Routing protocol Reference Data Centric Hierarchical Location<br />
Based<br />
QOS<br />
<strong>Network</strong><br />
Flow<br />
1. SPIN [90] ̌ ̌<br />
2. Directed Diffusion [108] ̌ ̌<br />
3. Rumor Routing [37] ̌ ̌<br />
4. Shah et al. [192] ̌ ̌<br />
5. GBR [189] ̌ ̌<br />
6. CADR [53] ̌<br />
7. COUGAR [61] ̌ ̌<br />
8. ACQUIRE [186] ̌<br />
9. LEACH [91] ̌ ̌<br />
10. TEEN&APTEEN [149] ̌ ̌ ̌<br />
11. PEGASIS [138] ̌ ̌<br />
12. Younis et al. [231] ̌ ̌<br />
13. Subramanian et al. [211] ̌ ̌<br />
14. MECN&SMECN [179] ̌ ̌<br />
15. GAF [228] ̌ ̌<br />
16. GEAR [233] ̌<br />
17. Chang et al. [45] ̌ ̌<br />
18. Kalpakis et al. [113] ̌ ̌<br />
19. Akkaya et al. [5] ̌ ̌<br />
20. SAR [205] ̌<br />
21. SPEED [86] ̌ ̌<br />
Aggregation<br />
Table 1: Classification <strong>of</strong> routing protocols in sensor networks<br />
ters, the use <strong>of</strong> specialized nodes etc. However, the naming<br />
schemes such as attribute value pairs might not be sufficient<br />
for complex queries and they are usually dependent<br />
on the application. Efficient standard naming schemes are<br />
one <strong>of</strong> the most interesting future <strong>research</strong> direction relating<br />
to this category. On the other hand, cluster based<br />
routing protocols group sensor nodes to relay the sensed<br />
data efficiently to the sink. The cluster heads are sometimes<br />
chosen as specialized nodes that are less energy constrained.<br />
A cluster head performs aggregation <strong>of</strong> data and<br />
sends it to the sink on behalf <strong>of</strong> the nodes within its cluster.<br />
The most interesting <strong>research</strong> issue regarding such protocols<br />
is how to form the clusters so that the energy consumption<br />
and contemporary communication metrics such<br />
as latency are optimised. The factors affecting cluster formation<br />
and cluster head communication are open issues for<br />
future <strong>research</strong>. Moreover, the process <strong>of</strong> data aggregation<br />
and fusion among clusters is also an interesting problem to<br />
explore.<br />
Protocols that utilize the location information and topological<br />
deployment <strong>of</strong> sensor nodes are classified as location<br />
based. The number <strong>of</strong> energy aware location based approaches<br />
found in the literature is rather small. The problem<br />
<strong>of</strong> intelligent utilization <strong>of</strong> the location information in<br />
order to aid energy efficient routing is the main <strong>research</strong><br />
issue. Spatial queries and databases using distributed sensor<br />
nodes and interacting with the location based routing<br />
protocol are open issues for further <strong>research</strong>.<br />
Although the performance <strong>of</strong> these protocols is promising<br />
in terms <strong>of</strong> energy efficiency, further <strong>research</strong> is needed<br />
to address issues such as Quality <strong>of</strong> Service (QoS) posed<br />
by video and imaging sensors and real-time applications.<br />
Energy aware QoS routing in sensor networks will ensure<br />
guaranteed bandwidth (or delay) through the duration <strong>of</strong><br />
connection as well as providing the use <strong>of</strong> the most energy<br />
efficient path. QoS routing in sensor networks has several<br />
applications including real-time target tracking in battle<br />
environments, emergent event triggering in monitoring applications<br />
etc.<br />
Currently, there is little <strong>research</strong> that looks at handling<br />
QoS requirements in an energy constrained environment<br />
like sensor networks. Another interesting issue for routing<br />
protocols is the consideration <strong>of</strong> node mobility. Most<br />
<strong>of</strong> the current protocols assume that the sensor nodes and<br />
the sink are stationary. However, there might be situations<br />
where the sink, and possibly the sensors, need to be mobile.<br />
In such cases, the frequent update <strong>of</strong> the position <strong>of</strong> the<br />
command node and the sensor nodes and the propagation<br />
<strong>of</strong> that information through the network may excessively<br />
drain the energy <strong>of</strong> nodes. New routing algorithms are<br />
needed in order to handle the overhead <strong>of</strong> mobility and<br />
topology changes in such an energy-constrained environment.<br />
Other possible future <strong>research</strong> for routing protocols<br />
includes the integration <strong>of</strong> sensor networks with wired networks<br />
(i.e. the Internet).<br />
4.2.5 Modelling<br />
The technology that estimates the performance <strong>of</strong> the sensor<br />
network beforehand is requested by modelling, and analyzing<br />
the operation <strong>of</strong> the sensor network <strong>of</strong> a real environment.<br />
That helps to investigate a theoretical performance<br />
<strong>of</strong> the network control in a real environment, where<br />
networks are more dynamic. For example, under ideal settings,<br />
drastic performance improvement over strictly address<br />
centric routing schemes is proven. While geographic<br />
routing has been shown to be correct and efficient when<br />
location information is accurate, its performance in the<br />
face <strong>of</strong> location errors is not well understood. Helmy et al.<br />
[207, 122] analyse the impact <strong>of</strong> inaccurate location information<br />
in geographic routing, which is caused by mobility<br />
<strong>of</strong> nodes. Zhou et al. [238] investigate an effect <strong>of</strong> radio<br />
irregularity on the communication performance in WSNs.<br />
They analyze the impact <strong>of</strong> radio irregularity on some <strong>of</strong><br />
the well-known MAC and routing protocols. A widely employed<br />
energy saving technique is to place nodes in sleep<br />
mode, corresponding to low power consumption and reduced<br />
operational capabilities. Chiasserini et al. [51] use a<br />
Markov model <strong>of</strong> a sensor network whose nodes may enter<br />
a sleep mode and investigate the system performance in<br />
terms <strong>of</strong> energy consumption, network capacity, and data<br />
delivery delay.<br />
15
4.2.6 Group Management<br />
A collaborative group is a useful concept to form groups by<br />
geographic proximity, roles, or resource availability. However<br />
managing groups in a distributed manner requires reliable<br />
communication and consensus. Kumer et al. [128]<br />
describe a data aggregation and consensus algorithm for<br />
object location and tracking applications in WSNs. This<br />
consensus algorithm permits ad hoc, in-network, group formation<br />
in response to a detected event. By reaching a consensus<br />
in the network, only a single message needs to be<br />
sent leading to significant savings in communication costs<br />
and prolonging the life <strong>of</strong> the network. The event is forwarded<br />
to the tracking application at a base station.<br />
5. PROGRAMMING PARADIGMS<br />
The area <strong>of</strong> high level languages for programming diverse,<br />
distributed networks <strong>of</strong> sensors has begun to receive attention<br />
during the last few years. This section describes<br />
<strong>research</strong> <strong>trends</strong> in programming models for WSNs.<br />
Currently, the majority <strong>of</strong> sensor network applications<br />
are implemented as complex, low level programs that specify<br />
the behaviour <strong>of</strong> individual sensor nodes. The most<br />
popular platform currently available for WSN programming<br />
is TinyOS. TinyOS provides a component based architecture<br />
that targets resource constrained nodes by <strong>of</strong>fering<br />
only a limited set <strong>of</strong> services, disallowing dynamic allocation,<br />
and providing a simple concurrency model. Typically<br />
the same application is deployed on every node.<br />
The embedded nature <strong>of</strong> WSNs requires the propagation<br />
<strong>of</strong> new program code over the network. For example,<br />
[105] addresses network programming (the programming <strong>of</strong><br />
nodes by disseminating code over the network). Each node<br />
maintains the most recent data by periodic broadcast. Distributed<br />
virtual machines is introduced to provide convenient<br />
high-level abstractions to application programmers,<br />
while implementing low level distributed protocols transparently<br />
in an efficient manner. This approach is taken<br />
in MagnetOS [142], which exports the illusion <strong>of</strong> a single<br />
Java virtual machine on top <strong>of</strong> a distributed sensor network.<br />
The application programmer writes a single Java<br />
program. The runtime system is responsible for code partitioning,<br />
placement, and automatic migration such that<br />
total energy consumption is minimized.<br />
The Maté virtual machine takes the same approach, being<br />
built on top <strong>of</strong> TinyOS, but allows more flexibility in<br />
terms <strong>of</strong> code mobility than TinyOS. This is achieved by<br />
allowing code to move and be updated through the network.<br />
However, Maté’s ability to allow code mobility is<br />
highly limited such as to version updating.<br />
While TinyOS targets small, highly resource constrained<br />
nodes, other programming frameworks instead address the<br />
needs <strong>of</strong> systems with larger, more capable nodes. <strong>Sensor</strong>Ware,<br />
a sensor network programming framework [33],<br />
addresses some <strong>of</strong> the challenges <strong>of</strong> mobile code by expressing<br />
its sensor network tasks as Tcl scripts written in<br />
a tasking language. Scripts can move from node to node<br />
through the network acting as mobile code based on an<br />
agent based model.<br />
Thus far there is no agreed solution. A high-level, global<br />
programming model, where the application can be specified<br />
in terms <strong>of</strong> system wide behaviour, which is then compiled<br />
down to the per-device program is desirable. The<br />
challenge in programming for WSNs is to coordinate the<br />
sensing, coolaborative processing, and data flow in the network,<br />
so that the required functionality is achieved. When<br />
an end user manually translates the global application behaviour<br />
in terms <strong>of</strong> local actions at each node, application<br />
logic will be tightly linked with the part <strong>of</strong> the program<br />
that coordinates lower level services such as resource<br />
management, routing, localization and so forth. This lack<br />
<strong>of</strong> separation between system level code and application<br />
level code results in high complexity <strong>of</strong> programming for<br />
WSNs. The limited computation, communication, and energy<br />
available on individual sensor nodes makes for difficult<br />
programming: that <strong>of</strong> decomposing complex, systemwide<br />
behaviour into the local actions to be taken at each node.<br />
This approach is top down and has the potential to significantly<br />
ease the burden <strong>of</strong> programming these large, complex<br />
systems.<br />
Programming for sensor networks brings two main issues;<br />
programming abstractions and programming support.<br />
The former is focused on providing programmers<br />
with abstractions <strong>of</strong> sensors and sensor data. The latter<br />
is providing additional runtime mechanisms that simplify<br />
program execution. Examples <strong>of</strong> such mechanisms include<br />
safe code execution, or reliable code distribution.<br />
Furthermore, in program development for sensor networks,<br />
it is impossible to debug on the real sensor network,<br />
where devices are resource poor and crash prone, and it<br />
is highly distributed with a large amount <strong>of</strong> information<br />
sharing and cooperative processing. Efforts for the simulation<br />
environment to confirm how the sensor network operates<br />
beforehand are TOSSIM simulation Environments<br />
[133] and Power TOSSIM [196]).<br />
5.1 Programming Abstraction<br />
Programming abstractions fall into two categories; application<br />
level and system level. The former defines and manipulates<br />
events at the desired level <strong>of</strong> semantic abstraction<br />
(e.g., latest position <strong>of</strong> target, location <strong>of</strong> all faulty sensors).<br />
The latter precisely specifies distributed computation and<br />
communication (e.g., apply f(x) to all x within 10m, send<br />
data item d to 10 nearest nodes) The trade<strong>of</strong>fs between<br />
these two models are expressiveness, efficiency, reusability<br />
and automation. Existing programming abstractions can<br />
be classified into the following categories.<br />
Data Based Model: The model follows a traditional<br />
query based approach such as TinyDB [146]. The code is<br />
split into two parts. The server side code deals with query<br />
parsing, query planning and optimisation, while the sensor<br />
side code is responsible for routing, query aggregation,<br />
partial data aggregation, and lifetime specification, and so<br />
forth. The approach is a straightforward extension <strong>of</strong> traditional<br />
queries, with sensor network specific modification<br />
to the query language, and to incorporate message routing<br />
and data aggregation. This model is applied to collect<br />
streaming numeric data.<br />
SELECT room_id, avg(light)<br />
FROM sensors<br />
GROUP room_id<br />
SAMPLE PERIOD 1h;<br />
room1<br />
room3<br />
Figure 5: Database based Model<br />
room2<br />
16
One <strong>of</strong> the more intriguing suggestions is cross layer<br />
modification to achieve better efficiency. This approach is<br />
not popular in traditional layered network protocol models,<br />
but may merit considerations in this case due to the<br />
limitation in resources and the pursuit <strong>of</strong> lightweight implementation.<br />
Fig.5 shows WSN as a distributed database.<br />
Agent Based Model: When writing an agent, the programmer<br />
can read or write the agents local variables both<br />
on the heap and in the nodes local variables. The agent can<br />
move to another node. An agent could read sensor values,<br />
actuate devices, and send arbitrary radio packets. Under<br />
this model, arbitrary algorithms can be implemented.<br />
Agent propagation (in a sense, routing) is a decision made<br />
by the programmer and coded into the agents self forwarding<br />
logic. The actuators in sensor networks need cooperative<br />
control to achieve the common goal. How sensing and<br />
actuating units should specify the conditions and reactions<br />
to follow can be defined in a formal language. The use <strong>of</strong><br />
such a language eases the programming <strong>of</strong> a distributed<br />
system, and provides simplicity by formal analysis and automated<br />
reasoning. Fig.6 shows mobile agent (active sensor)<br />
model.<br />
abstraction allows domain experts not familiar with programming<br />
to define the system behaviour using the terms<br />
they are familiar with, namely the various states. This approach<br />
bridges the gap between node centric programming<br />
and high-level processing. In contrast, Hood [222] proposes<br />
Neighbourhood oriented algorithms, where a node<br />
can identify a subset <strong>of</strong> nodes around it by a variety <strong>of</strong> criteria<br />
and share state with those nodes. This abstraction<br />
allows developers to design distributed algorithms in terms<br />
<strong>of</strong> the neighbourhood abstraction itself, instead <strong>of</strong> decomposing<br />
them into component parts such as messaging protocols,<br />
data caches, and neighbour lists. In applications<br />
that are already neighbourhood based, this abstraction is<br />
shown to facilitate good application design and to reduce<br />
algorithmic complexity, inter component coupling, and total<br />
lines <strong>of</strong> code.<br />
The above classification is one view, at an early stage <strong>of</strong><br />
<strong>research</strong> in this area. Fig.7 shows an example <strong>of</strong> a holistic<br />
view <strong>of</strong> the various functionalities in WSNs.<br />
Language ties<br />
services into tasks<br />
Figure 6: Mobile Agent Model<br />
Macroprogramming Model: Another approach to<br />
programming large, complex sensor networks is macroprogramming,<br />
which considers a WSN’s global behaviour,<br />
rather than the low level actions <strong>of</strong> individual nodes. End<br />
users specify tasks at a higher level, where the embedded<br />
system’s details <strong>of</strong> node communication protocols are<br />
hidden. PARCs PIECES framework [139] presents a state<br />
centric abstraction for programming a sensor network.<br />
PIECES emphasizes a state as the core concept in the<br />
model. It has the notion <strong>of</strong> collaboration groups that abstracts<br />
out common patterns in application specific communication<br />
and resource allocation. The number <strong>of</strong> nodes<br />
is typically quite large in sensor networks, and the complexity<br />
resulting from the large number <strong>of</strong> participants<br />
makes some form <strong>of</strong> higher level abstraction a necessity.<br />
The sensors are divided into groups based on their locations<br />
or functionalities, which allows programmers to deal<br />
with nodes as a group. The concept <strong>of</strong> principal is used<br />
to keep and maintain the state associated with physical<br />
phenomena, and each state has only one principal that<br />
stores, updates, and responds to queries as to the value <strong>of</strong><br />
the state. The task <strong>of</strong> programming the system becomes<br />
the task <strong>of</strong> how to define interaction between principals<br />
without worrying about the low level, per node operation<br />
and hurdles. An application developer specifies a computation<br />
as the creation, combination, and transformation<br />
<strong>of</strong> states, which naturally map to the vocabulary used by<br />
signal processing and control engineers. More specifically,<br />
an application program is written as algorithms for state<br />
update and observation, with input supplied by dynamically<br />
created collaboration groups. This higher level <strong>of</strong><br />
Figure 7: Layers <strong>of</strong> abstraction for application development<br />
on WSNs<br />
(from [18])<br />
This wide range <strong>of</strong> programming abstractions has introduced<br />
ideas such as in-network query processing [146, 145,<br />
33], event-based processing [120], native threaded virtual<br />
machines [220, 147, 183], and on-node script interpreting<br />
[33]. examples <strong>of</strong> macroprogramming methodologies for<br />
WSNs are TinyDB [146], Regiment [163], Kairos [79], ATaG<br />
[17], <strong>Sensor</strong>Ware [33], market based macroprogramming’s<br />
pricing [147], diffusion’s aggregation [108], and Semantic<br />
Streams [221]. TinyDB provides a declarative SQL-like<br />
query interface for sensor data, and ATaG <strong>of</strong>fers a mixed<br />
imperative declarative programming style and data driven<br />
flow. Regiment is a demand driven functional language<br />
with support for region based aggregation. Karios is an<br />
imperative, control driven programming paradigm providing<br />
a distributed shared memory abstraction to node level<br />
programming. Semantic Streams’ markup and declarative<br />
query language, based on Prolog, is used to specify queries<br />
over semantic information. The selection, writing and optimisation<br />
<strong>of</strong> low level modules to implement the querying<br />
is performed by a service composition framework, as<br />
described later. Complementary to the work on programming<br />
abstractions is network programming. Such systems<br />
enable high-level composition <strong>of</strong> sensor network applications<br />
(<strong>Sensor</strong>ware [33] and SNACK [76]), efficient distribu-<br />
17
tion <strong>of</strong> code (Deluge [105]), support for sandboxed application<br />
execution (Maté [132]), and techniques for automatic<br />
performance adaptation (Impala [140]). Rather than define<br />
a programming model, Application Specific Virtual Machines<br />
ASVMs [134] provide a way to implement and build<br />
the runtime underlying whichever model a user needs.<br />
For self configuration, various approaches are devised.<br />
Examples include coverage [202]; aggregator placement [31];<br />
clustering, routing and addressing [125, 205, 212]. [125] uses<br />
a fixed set <strong>of</strong> roles to build a network wide backbone infrastructure.<br />
However, none <strong>of</strong> these approaches are generic<br />
frameworks that support the assignment <strong>of</strong> user defined<br />
roles in an application specific manner. Only recently,<br />
neighbourhood programming abstractions [220, 222] have<br />
been proposed, where network neighbours can easily share<br />
variables.<br />
A goal <strong>of</strong> macroprogramming is to simplify sensor network<br />
application design by providing high-level programming<br />
abstractions and primitives that automatically compile<br />
down to the complex, low level operations implemented<br />
by each sensor node.<br />
The current <strong>research</strong> on programming models focusses<br />
on the configuration, propagation, and aggregation <strong>of</strong><br />
WSNs. Within the proposed models, function units <strong>of</strong><br />
sensor nodes are defined as roles, tasks, or services. The<br />
high-level representation <strong>of</strong> problems can be queries, service<br />
requests, composite events, or regular expressions. Expressiveness<br />
<strong>of</strong> high-level languages is an important aspect,<br />
and a distributed data processing framework is desirable.<br />
One <strong>of</strong> important issues is that end users’ semantic requests<br />
must be translated correctly into the operations in<br />
WSNs through programming. This requires expressiveness<br />
<strong>of</strong> languages and accurate mapping between requests and<br />
operations, and it may require ontology involvement. Semantic<br />
Web Services (SWS) address similar problems in<br />
their domain. Knowledge may be produced by the pattern<br />
<strong>of</strong> sensing behaviours, too. In SWS, semantically described<br />
modular programs are created so that they can automatically<br />
compose new services from the modular components.<br />
In WSNs thus far, in many <strong>research</strong> prototypes, queries<br />
have been simple enough to be decomposed. When real<br />
world applications use macroprogramming, this will be an<br />
issue to be solved.<br />
5.2 Amorphous Computing<br />
<strong>Sensor</strong>s can detect atomic pieces <strong>of</strong> information, and the<br />
information gathered from different devices will be analyzed<br />
and provide data that was impossible to obtain without<br />
these <strong>technologies</strong>. Combining regional sensed data<br />
from the different locations may spawn further information.<br />
Localized algorithms, in which simple local node behaviour<br />
achieves a desired global object, may be necessary<br />
for sensor network coordination. Modelling such systems<br />
is attempted by studying biological systems, distributed<br />
robotics, and amorphous computing. Amorphous computing,<br />
proposed by Abelson et al. [2], aims at discovering new<br />
approaches for programming and controlling a vast number<br />
<strong>of</strong> unreliable parts to achieve emergent global behaviours,<br />
such as some desired patterns. These are called computational<br />
entities, which are usually irregularly placed and<br />
locally interacting. This technology is especially suitable<br />
for such environments where the desired global behaviours<br />
can only be achieved based on local information and interactions<br />
among entities. [160] demonstrates how to form<br />
coordinate systems, arbitrary two and three dimensional<br />
shapes, arbitrary graphs <strong>of</strong> wires, and origami like folding<br />
patterns. Yet the Amorphous Computing effort has not to<br />
date provided a model for programming rather than pattern<br />
formation.<br />
5.3 Existing Programming Models<br />
In this section we describe existing programming models<br />
and paradigms (see also Middleware Technology in section<br />
6).<br />
Recent macroprogramming may fall into two classes:<br />
one focuses on providing the programmer abstractions<br />
that simplify the task <strong>of</strong> specifying nodes’ local behaviour<br />
within a distributed computation, while the second enables<br />
programmers to express the global behaviour <strong>of</strong> the<br />
distributed computation. In the former class, three different<br />
types <strong>of</strong> programming abstractions have been explored.<br />
For example, Liu et al. [140] and Cheong et al. [50]<br />
have considered node group abstractions that permit programmers<br />
to express communication within groups sharing<br />
some common group state. Data centric mechanisms are<br />
used to efficiently implement these abstractions. By contrast,<br />
Mainland et al. [220] and Whitehouse et al. [222]<br />
show that topologically defined group abstractions (neighbourhoods<br />
and regions respectively) are capable <strong>of</strong> expressing<br />
a number <strong>of</strong> local behaviours powerfully. Finally, the<br />
work on EnviroTrack [1] provides abstractions for physical<br />
objects in the environment, enabling programmers to<br />
express tracking applications.<br />
5.3.1 Kairos<br />
Kairos [79] <strong>of</strong>fers a network programming model that allows<br />
the programmer to express, in a centralized fashion,<br />
the desired global behaviour <strong>of</strong> a distributed computation<br />
on the entire sensor network. Kairos compile time and<br />
runtime subsystems expose a small set <strong>of</strong> programming<br />
primitives, while hiding from the programmer the details<br />
<strong>of</strong> distributed code generation and instantiation, remote<br />
data access and management, and inter node program flow<br />
coordination.<br />
Kairos provides abstractions for expressing the global<br />
behaviour <strong>of</strong> distributed computations. Kairos does not<br />
contain explicit abstractions for nodes, but rather expresses<br />
a distributed computation in a network independent<br />
way. Thus, it is similar to the work on SQLlike<br />
expressive but Turing incomplete query systems (e.g.,<br />
TinyDB [146, 145] and Cougar [61]).<br />
DFuse [126] provides support for expressing computations<br />
over logical topologies or task graphs, which are then<br />
dynamically mapped to a network instances. Exporting<br />
the network topology as an abstraction can impose some<br />
rigidity in the programming model. It can also add complexity<br />
to maintaining the mapping between the logical and<br />
the physical topology when nodes fail. Complementary to<br />
these approaches, node dependent abstractions allow a programmer<br />
to express the global behaviour <strong>of</strong> a distributed<br />
computation in terms <strong>of</strong> nodes and node state. This is an<br />
approach that Kairos is using.<br />
Regiment [163] takes a similar approach to Kairos. While<br />
Kairos focuses on a narrow set <strong>of</strong> flexible, languageagnostic<br />
abstractions, Regiment focuses on exploring how<br />
functional programming paradigms might be applied to<br />
programming sensor networks in the large, while Split-C<br />
[239] provides split local global address spaces to ease parallel<br />
programming. Kairos provides these through the remote<br />
variable access facility, but confines itself to the C<br />
18
Figure 8: Programming Architecture in Kairos<br />
( from [79])<br />
language that lacks a rich object oriented data model and<br />
a language level concurrency model. Therefore, the fundamental<br />
concepts in these two works are language specific.<br />
Fig.8 shows an overview <strong>of</strong> Kairos Programming Architecture.<br />
5.3.2 Abstract Task Graph<br />
The Abstract Task Graph (ATaG) [17] is a data driven<br />
programming model for end-to-end application development<br />
on networked sensor systems. An ATaG program<br />
is a system level, architecture independent specification <strong>of</strong><br />
the application functionality.<br />
Figure 9: Object Tracking in ATaG<br />
(from [17])<br />
The application is modelled as a set <strong>of</strong> abstract tasks<br />
that represent types <strong>of</strong> information processing functions<br />
in the system, and a set <strong>of</strong> abstract data items that represent<br />
types <strong>of</strong> information exchanged between abstract<br />
tasks. Input and output relationships between abstract<br />
tasks and data items are explicitly indicated as channels.<br />
Each abstract task is associated with user-provided code<br />
that implements the information processing functions in<br />
the system. Appropriate numbers and types <strong>of</strong> tasks can<br />
then be instantiated at compile time or runtime to match<br />
the hardware and network configuration, with each node<br />
incorporating the user-provided code, automatically generated<br />
glue code, and a runtime engine that manages all<br />
coordination and communication in the network. Fig.9<br />
shows a program for an object tracking. The ATaG programmer<br />
first models each behaviour in terms <strong>of</strong> a pattern<br />
<strong>of</strong> node level interaction. The next step is to identify the<br />
types <strong>of</strong> processing and the types <strong>of</strong> data in the system.<br />
SampleAndThreshold, Leader, and Supervisor are defined<br />
as abstract tasks, while TargetAlert and TargetInfo are abstract<br />
data. The input/output interfaces <strong>of</strong> the abstract<br />
tasks are shown in Fig.9. The final step is to associate<br />
annotations (shaded rounded rectangles) to indicate task<br />
placement and information flow patterns. In this example,<br />
TargetAlert is produced only if SampleAndThreshold detects<br />
an object, then TargetAlert is sent to all other nodes<br />
that might have detected the object. Leader determines<br />
if its own reading is the maximum <strong>of</strong> all readings received<br />
and TargetInfo is produced only if a node decides its own<br />
reading is the highest.<br />
5.3.3 Active <strong>Sensor</strong> <strong>Network</strong>s<br />
Rather than proposing a new programming approach to innetwork<br />
processing, Active <strong>Sensor</strong> <strong>Network</strong>s [134] proposes<br />
an architecture for implementing a programming model’s<br />
underlying runtime. The Maté virtual machine (a tiny<br />
bytecode interpreter) [132] is extended by generalizing its<br />
simple VM into an architecture for building application<br />
specific virtual machines (ASVMs). ASVMs address three<br />
<strong>of</strong> Maté’s main limitations: flexibility, concurrency, and<br />
propagation.<br />
Introducing lightweight scripting to a network makes it<br />
easy to process data at, or very close to, its source. This<br />
processing can improve network lifetime by reducing network<br />
traffic, and can improve scalability by performing local<br />
operations locally. Similar approaches have appeared<br />
before in other domains. Active disks proposed pushing<br />
computation close to storage as a way to deal with bandwidth<br />
limitations, active networks argued for introducing<br />
in-network processing to the Internet to aid the deployment<br />
<strong>of</strong> new network protocols, and active services suggested<br />
processing at IP end points.<br />
Figure 10: ASVM architecture<br />
(from [221])<br />
19
Active <strong>Sensor</strong> <strong>Network</strong> introduces dynamic computation<br />
into a sensor network. Active networking is most similar,<br />
but the differing goals and constraints <strong>of</strong> the Internet and<br />
sensor networks lead to very different solutions. Fig.10<br />
shows the ASVM functional decomposition. ASVMs have<br />
three major abstractions: handlers, operations and capsules.<br />
Handlers are code routines that run in response to<br />
system events, operations are the units <strong>of</strong> execution functionality,<br />
and capsules are the units <strong>of</strong> code propagation.<br />
ASVMs have a threaded execution model and a stack based<br />
architecture.<br />
5.3.4 Object State Machine (OSM)<br />
Kasten et al. propose Object State Machine (OSM) [120], a<br />
programming model and language for sensor nodes based<br />
on finite state machines. OSM provides an abstraction<br />
for managing the complexity <strong>of</strong> event triggered programming.<br />
OSM extends the event paradigm with states and<br />
transitions, such that the invocation <strong>of</strong> actions becomes a<br />
function <strong>of</strong> both the event and the program state. OSM introduces<br />
state attributes that allow sharing <strong>of</strong> information<br />
among actions. They can be considered local variables<br />
<strong>of</strong> a state with support for automatic memory management.<br />
OSM specifications can be compiled into sequential<br />
C code that requires only minimal runtime support, resulting<br />
in efficient and compact systems. OSM borrows the<br />
concept <strong>of</strong> hierarchical and parallel composition <strong>of</strong> state<br />
machines from Statecharts [83] as well as the concept <strong>of</strong><br />
broadcast communication <strong>of</strong> events within the state machine.<br />
From SyncCharts [12] it adopted the concept <strong>of</strong><br />
concurrent events. Variables are typically not fundamental<br />
entities in control oriented FSM models. Models that<br />
focus both on the transformative domain (data processing,<br />
stream processing) and the control oriented domain,<br />
typically include variables as intrinsic entities. Finite State<br />
Machines with Datapath (FSMD) [60] introduced variables<br />
to the FSM model in order to reduce the number <strong>of</strong> states<br />
that have to be declared explicitly. Like OSM, this model<br />
allows programmers to choose to specify program state explicitly<br />
(with machine states) or implicitly with variables.<br />
FSMD are flat, that is, they do not support hierarchy and<br />
concurrency, and variables have global scope and lifetime.<br />
On the contrary, variables in OSM are bound to a state hierarchy.<br />
OSM allows access to the values <strong>of</strong> events in computational<br />
actions. A valued event is visible in the scope<br />
<strong>of</strong> both the source and the target state <strong>of</strong> a transition (in<br />
out and in actions, respectively). A number <strong>of</strong> frameworks<br />
for programming individual sensor nodes have been proposed.<br />
With one exception, all frameworks fall into one <strong>of</strong><br />
two basic categories: event-based systems (such as Maté<br />
[132]) and multi-threaded systems (<strong>Sensor</strong>Ware [33]). Applications<br />
built according to either model have an implicit<br />
notion <strong>of</strong> program state. In contrast, in OSM program<br />
state can be modelled explicitly.<br />
5.3.5 Regiment<br />
Regiment [163, 164] is a functional macroprogramming language<br />
for sensor networks. The basic concept is similar<br />
to Kairos [79] providing programming abstraction by<br />
expressing the global behaviour <strong>of</strong> distributed computations.<br />
The essential data model in Regiment is based on<br />
region streams, which represent spatially distributed, time<br />
varying collections <strong>of</strong> node state. A region stream might<br />
represent the set <strong>of</strong> sensor values across all nodes in an<br />
area or the aggregation <strong>of</strong> sensor values within that area.<br />
Regions provide a means <strong>of</strong> expression spatial and logical<br />
relationships between sensor nodes, transparent data<br />
sharing between nodes, and efficient reduction operations<br />
within regions. Abstract regions expose the trade<strong>of</strong>f between<br />
resource usage and the accuracy <strong>of</strong> collective operations,<br />
allowing applications to tune energy and bandwidth<br />
consumption to meet accuracy targets.<br />
Regiment is a purely functional language, which gives<br />
the compiler considerable leeway in terms <strong>of</strong> realizing region<br />
stream operations across sensor nodes and exploiting<br />
redundancy within the network. Regiment allows the user<br />
to perform general operations (e.g., MAP, FOLD, and FIL-<br />
TER), which map a function over, aggregate over, or filter<br />
all the data in a region. The system determines where and<br />
when data is stored and operations are performed in the<br />
network.<br />
5.3.6 Semantic Streams<br />
Semantic Streams [221] is a framework that allows users<br />
to pose declarative queries over semantic interpretations<br />
<strong>of</strong> sensor data. For example, instead <strong>of</strong> querying raw sensor<br />
data, the user can query vehicle speeds; the system<br />
decides which sensor data and which operations to use to<br />
infer the vehicle speeds. The user can also place constraints<br />
on values such as the confidence with which the speed was<br />
measured or the amount <strong>of</strong> energy consumed to measure<br />
the speeds. This framework is designed to work in a shared<br />
sensor infrastructure, where multiple queries may coexist<br />
for extended periods <strong>of</strong> time, instead <strong>of</strong> a hand designed,<br />
single purpose sensor network. Semantic Streams takes a<br />
semantic service programming model and provides a service<br />
description language and a query processor that support<br />
the programming model.<br />
Figure 11: Planning and Execution in Semantic<br />
Streams<br />
(from [221])<br />
Semantic Streams is similar to the approaches described<br />
above in that the user issues a query specifying global behaviour.<br />
One main difference is that the user is required<br />
to understand which operations to run over the raw sensor<br />
data and how to interpret the meaning <strong>of</strong> the results.<br />
Semantic Streams allows the user to issue queries over semantic<br />
values directly without addressing which data or<br />
operations are to be used. The advantages <strong>of</strong> semantic<br />
queries are analogous to those <strong>of</strong> macroprogramming in<br />
general: the user <strong>of</strong> macroprogramming need not specify<br />
the best time and place to execute each operation, while<br />
the user <strong>of</strong> semantic queries need not specify which operations<br />
to run or which data to run them over. This allows<br />
the user to make less low level decisions while allowing<br />
the system an extra degree <strong>of</strong> freedom to optimise during<br />
execution. In Fig.11, the user first poses a query to<br />
the query processor, which derives an acceptable service<br />
20
graph. That graph is passed to the execution engine along<br />
with all variable unification and constraint sets resulting<br />
from planning. The execution engine may call back to the<br />
query processor during replanning.<br />
5.3.7 Abstract Region<br />
TinyDB [146], Cougar [108], and IrisNet [161] provide a<br />
high-level SQL or XML based query interface to sensor network<br />
data. Queries are deployed into the network, streaming<br />
results to one or more base stations, and aggregation<br />
is used to reduce communication overhead. systems have<br />
tremendous value and abstract away many details <strong>of</strong> communication,<br />
aggregation, and filtering. However, they are<br />
not well-suited for developers who wish to implement specific<br />
behaviour at a lower level than the query interface.<br />
For example, TinyDB is focused on relaying aggregate data<br />
along a spanning tree rooted at a base station. While<br />
this mechanism can support complex algorithms such as<br />
contour finding, TinyDB must expose an internal contour<br />
finding operator to queries. In [220], Abstract Regions ars<br />
proposed, providing a set <strong>of</strong> communication abstractions<br />
that can be used to implement higher-level services, such<br />
as queries. Their ultimate aim is creating a framework for<br />
programming sensor networks, and using abstract regions<br />
as a building block for a high-level programming language<br />
for sensor networks. They define Region as a group <strong>of</strong><br />
geographically or topological related nodes. The essential<br />
idea is to capture communication patterns, locality,<br />
and resource trade<strong>of</strong>f in a high level language that compiles<br />
down to the detailed behaviour <strong>of</strong> individual nodes.<br />
Shielding programmers from the details <strong>of</strong> message routing,<br />
in-network aggregation, and achieving a given fidelity<br />
under a fixed resource budget should greatly simplify application<br />
development for this new domain. At the same<br />
time, the communication abstraction should yield control<br />
over resource usage and make it possible for applications<br />
to balance the trade<strong>of</strong>f between energy/bandwidth consumption<br />
and the accuracy <strong>of</strong> collective operations. The<br />
notion <strong>of</strong> communicating within, and computing across,<br />
a neighbourhood (for a range <strong>of</strong> definitions <strong>of</strong> neighbourhood)<br />
is a useful concept for sensor applications. Similar<br />
concepts are evident in other communication models<br />
for sensor networks, although <strong>of</strong>ten exposed at a much<br />
higher level <strong>of</strong> abstraction. For example, directed diffusion<br />
[108] and TinyDB [146] embody similar concepts but<br />
lump them together with additional semantics. Abstract<br />
regions are fairly low level and are intended to serve as<br />
building blocks for these higher-level systems. Abstract<br />
regions can be used to implement a form <strong>of</strong> directed diffusion.<br />
Other communication abstractions include GHT<br />
[176], Spatial Programming [30], DIFS [75], and SPIN [90].<br />
These systems are generally focused on a specific communication<br />
or aggregation model rather than supporting a<br />
wide range <strong>of</strong> applications.<br />
5.3.8 Market Based Macroprogramming (MBM)<br />
Market based macroprogramming (MBM) [147] is a new<br />
paradigm for achieving globally efficient behaviour in sensor<br />
networks. Rather than programming the individual,<br />
low level behaviours <strong>of</strong> sensor nodes, MBM defines a virtual<br />
market where nodes sell actions (such as taking a<br />
sensor reading or aggregating data) in response to global<br />
price information. Nodes take actions to maximize their<br />
own utility, subject to energy budget constraints. The behaviour<br />
<strong>of</strong> the network is determined by adjusting the price<br />
vectors for each action, rather than by directly specifying<br />
local node actions, resulting in a globally efficient allocation<br />
<strong>of</strong> network resources. In this approach, individual<br />
sensor nodes act as self interested agents that operate in<br />
a virtual market, and receive pr<strong>of</strong>it for performing simple,<br />
local actions in response to globally-advertised price<br />
information. <strong>Sensor</strong> nodes run a very simple cost evaluation<br />
function, and global behaviour is induced throughout<br />
the network by advertising price information that drives<br />
nodes to react. The prices can be dynamically tuned by<br />
the centralized market maker to meet systemwide goals <strong>of</strong><br />
lifetime, accuracy, or latency based on the needs <strong>of</strong> the<br />
sensor network programmer.<br />
5.3.9 Generic Role Assignment<br />
Römer et al. have examined Generic Role Assignment<br />
[183], where sensor nodes are assigned user defined roles<br />
based on their capabilities. Almost any sensor network<br />
application requires some form <strong>of</strong> self configuration, where<br />
sensor nodes take on specific functions or roles in the network<br />
without manual intervention. These roles may be<br />
based on varying sensor node properties (e.g. available<br />
sensors, location, network neighbours) and may be used to<br />
support applications requiring heterogeneous node functionality<br />
(e.g., clustering, data aggregation). Their approach<br />
<strong>of</strong> role assignment is similar to cellular automata,<br />
where the state <strong>of</strong> a particle in a regular arrangement<br />
is completely defined by the previous values <strong>of</strong> a neighbourhood<br />
<strong>of</strong> particles around it. They argue that the<br />
assignment <strong>of</strong> user defined roles is a fundamental part<br />
<strong>of</strong> a wide range <strong>of</strong> sensor network applications. Consequently,<br />
a framework for assigning roles to sensor nodes in<br />
an application-specific manner could significantly ease sensor<br />
network programming, and outline the general structure<br />
<strong>of</strong> such a framework with a first approach to its realization.<br />
One possible way to implement Römer et al.’s<br />
approach could be on top <strong>of</strong> neighbourhood programming<br />
abstractions such as Abstract Region [220] or Hood [222].<br />
Fig.12 shows an overview <strong>of</strong> Generic Role Assignment architecture.<br />
Figure 12: Generic Role Assignment Architecture<br />
(from [183])<br />
5.3.10 Declarative Resource Naming (DRN)<br />
Declarative Resource Naming (DRN) [109] is influenced<br />
by Spatial Programming (SP) [30, 88]. SP shares a vision<br />
<strong>of</strong> programming for wireless networks <strong>of</strong> embedded<br />
systems as a unit, simplifying resource accesses as variable<br />
accesses, exposing the space property to the programmers,<br />
hiding network details, and supporting imperative<br />
programming. Spatial Programming uses Smart Messages<br />
to provide content-based spatial references to embedded<br />
resources. To simplify the programming <strong>of</strong> <strong>Wireless</strong><br />
<strong>Network</strong>s <strong>of</strong> Embedded Systems (WNES) [109] propose<br />
21
Declarative Resource Naming (DRN) to program WNES<br />
as a whole (i.e., macroprogramming) instead <strong>of</strong> several<br />
network-ed entities. DRN allows programmers to describe<br />
declaratively a set <strong>of</strong> desired resources by their runtime<br />
properties and to map this set to a variable. Using DRN,<br />
resource accesses are simplified to completely networktransparent<br />
accesses <strong>of</strong> variables. DRN provides both individual<br />
and group accesses to the desired set. Group accesses<br />
(i.e., parallel accesses) reduce total access time and<br />
energy consumption because <strong>of</strong> possible in-network processing.<br />
Additionally, we can associate each set with tuning<br />
parameters (e.g., timeout, energy budget) to bound<br />
access time or to tune resource consumption. However, SP<br />
supports only sequential resource accesses whereas DRN<br />
supports both sequential and parallel accesses. Accessing<br />
resources in parallel can significantly reduce the total access<br />
time and the overall energy consumption (by enabling<br />
in-network processing). Additionally, SP is purely imperative<br />
programming but DRN is a hybrid between declarative<br />
programming and imperative programming. Unlike<br />
the DRN binding, the SP binding is, by default, static,<br />
even though dynamic binding in SP is provided as an option.<br />
This problem is similar to that <strong>of</strong> TCP. Packet loss<br />
and unbound acknowledgement delay are handled using<br />
timeout.<br />
5.3.11 Maté<br />
Maté [132] is a byte code interpreter (VM) running on<br />
TinyOS, that provides safe program execution environments,<br />
runtime re-programming, and an event-driven<br />
stack-based architecture. The interpreter provides highlevel<br />
instructions (such as an atomic message send) which<br />
the machine can interpret and execute. Each virtual machine<br />
instruction executes in its own TinyOS task. Code is<br />
broken into capsules and it operates self distribution (diffusion)<br />
controlling identification and versions. However it<br />
maintains a static set <strong>of</strong> execution events, limited assembly<br />
level programming and single, centralized shared variables.<br />
It also provides reliability. The process <strong>of</strong> re-programming<br />
a sensor network is simple using Maté. When a new program<br />
is created and is to be deployed, it is given a newer<br />
version number and broadcast to the network. Once a capsule<br />
with a newer version is received, the mote will install<br />
it and forward it on to its neighbours. Over time the new<br />
program will disseminate through the network via broadcast.<br />
6. MIDDLEWARE TECHNOLOGY<br />
Middleware usually lies between the operating system and<br />
the application in traditional environments, where functionality<br />
<strong>of</strong> the operating system is well established. For<br />
WSNs, however, the interfaces <strong>of</strong> operating systems are<br />
still a <strong>research</strong> issue, and many applications execute hardware<br />
operations directly without operating system components.<br />
Thus, middleware for WSNs needs to have a clear<br />
future vision so that all <strong>technologies</strong> supporting WSNs fit<br />
properly with future middleware. In general, middleware<br />
for sensor networks can be defined as s<strong>of</strong>tware that provides<br />
data aggregation, control and management mechanism<br />
adapting to the target application’s need, where data<br />
are collected from sensor networks. Existing <strong>research</strong> on<br />
sensor networks has focused on the hardware technology,<br />
thus a bottom-up approach has been pursued. However,<br />
recent progress in sensor network technology, and an expansion<br />
<strong>of</strong> the associated <strong>research</strong> community, has brought<br />
a consensus that a general technique is required for accessing<br />
sensor data from external applications. But a middleware<br />
as a service-oriented, top-down, standard framework,<br />
linked with external applications, has not yet been<br />
advocated. Recent evolution <strong>of</strong> sensor network technology<br />
highlights the importance <strong>of</strong> data aggregation and management.<br />
This section describes the current state <strong>of</strong> middleware<br />
<strong>research</strong> on sensor networks.<br />
Blumenthal [29] describes the task <strong>of</strong> middleware for<br />
WSN is providing easy access from the complex sensor networks,<br />
and followings are four key requirements:<br />
• Scalable for resource constraints.<br />
• Generic for different applications with common interface.<br />
• Adaptive to reconfigure its structure.<br />
• Reflective to change the behaviour depending on the<br />
environments and circumstances.<br />
Römer [181] emphasises:<br />
• Event-based and data centric communication: Event<br />
based reactive communication protocols and contentbased<br />
communication are necessary, as for the<br />
WWW.<br />
• A holistic view <strong>of</strong> the Internet and sensor networks:<br />
The scope <strong>of</strong> middleware is not only to aggregate information<br />
from sensor nodes but also to cover devices<br />
and networks connected to the WSN.<br />
• Application knowledge in nodes: A mechanism to<br />
embed the application knowledge into the infrastructure<br />
and the WSN should be provided.<br />
• An adaptive fidelity algorithm: This requires infrastructure<br />
to provide appropriate mechanisms for selecting<br />
parameters, or whole algorithms, which solve<br />
a certain problem with the best quality under given<br />
resource constraints.<br />
• Automatic configuration: WSN nodes must operate<br />
unattended, which means that middleware for WSNs<br />
has to provide new levels <strong>of</strong> support for automatic<br />
configuration and error handling.<br />
Yu [234] describes design principles as follows:<br />
• Data centric: Data centric mechanisms for data processing<br />
and querying within the network should be<br />
provided. Due to its simplicity, flexibility, and robustness,<br />
cluster based network architecture has been<br />
widely used in the design and implementation <strong>of</strong> network<br />
protocols and collaborative signal processing<br />
applications for WSNs. A cluster based architecture<br />
is suitable for hosting the data centric processing<br />
paradigm from both geographical and system design<br />
perspectives.<br />
• Application knowledge: Integrating knowledge <strong>of</strong> applications<br />
into the services provided by the middleware<br />
is important. A trade<strong>of</strong>f needs to be explored<br />
between application specificity and generality <strong>of</strong> the<br />
middleware.<br />
• Localized algorithms: Localized algorithms should be<br />
used collectively to achieve a desired global objective<br />
while providing system scalability and robustness.<br />
Since the cluster based architecture localizes<br />
22
the interaction <strong>of</strong> sensor nodes, and hence the coordination<br />
and control overhead within a restricted<br />
vicinity, it is reasonable to regard each cluster as a<br />
basic function unit <strong>of</strong> the middleware. Consequently,<br />
the middleware performs as a distributed s<strong>of</strong>tware<br />
composed <strong>of</strong> multiple clusters.<br />
• Lightweight: Middleware should be lightweight in<br />
terms <strong>of</strong> the computation and communication requirements.<br />
• Trading QoS <strong>of</strong> application: Resource sharing when<br />
resources are limited means that it is very likely that<br />
the performance requirements <strong>of</strong> all the running applications<br />
cannot be satisfied simultaneously. Therefore,<br />
it is necessary for the middleware to trade the<br />
QoS <strong>of</strong> various applications against each other.<br />
The main functionality <strong>of</strong> middleware for sensor networks<br />
is to support the development, maintenance, deployment,<br />
and execution <strong>of</strong> sensing based applications. This includes<br />
mechanisms for formulating complex high-level sensing<br />
tasks, communicating these tasks to the WSN, coordination<br />
<strong>of</strong> sensor nodes to split a task and distribute it to<br />
the individual sensor nodes, data fusion for merging the<br />
sensor readings <strong>of</strong> the individual sensor nodes into a highlevel<br />
result, and reporting the result back to the task issuer.<br />
Moreover, appropriate abstractions and mechanisms<br />
for dealing with the heterogeneity <strong>of</strong> sensor nodes should<br />
be provided.<br />
In this section, we introduce existing middlewares for<br />
sensor networks based on the design principles described<br />
above. We classify middleware into several categories:<br />
First, with the distributed database approach, a data<br />
driven approach is described. Secondly, an event-based<br />
approach, to deal with real-time data in the sensor networks,<br />
and thirdly QoS oriented middleware is described.<br />
Fourthly, Internet oriented middleware aims at constructing<br />
the infrastructure <strong>of</strong> information processing and fifthly,<br />
an agent based approach is described Finally, we include<br />
traditional centralized sensor systems for contrast. All the<br />
approaches attempt to address the resource constrained<br />
nature <strong>of</strong> sensor network environments. The classification<br />
in this section is based on the the design principles discussed<br />
in previous sections. We focus on the application<br />
interface and the required resources, see also the programming<br />
model in section 5.<br />
6.1 Data Driven Approach<br />
This section introduces the <strong>research</strong> on a middleware<br />
framework based on the data driven approach. In future,<br />
a large number <strong>of</strong> sensor devices will be deployed, and<br />
the management <strong>of</strong> their data will become complex. The<br />
user should be able to access the necessary data without<br />
knowledge <strong>of</strong> the sensor network. Recently, the data driven<br />
approach to manage sensor data is increasing in popularity,<br />
where each node keeps the data, and those nodes execute<br />
retrieval and aggregation (in-network aggregation)<br />
with on-demand based operation to deliver the data to the<br />
external applications. This approach supports no asynchronous<br />
state formations. The data driven approach derives<br />
from a database abstraction, where applications define<br />
collective node states to represent portions <strong>of</strong> their<br />
world model. An important issue here is expressiveness<br />
to define certain collective node states based on the interface<br />
language, such as SQL queries. When queries become<br />
complex and dynamic, it will be too complex to bridge to<br />
atomic functions in WSN.<br />
6.1.1 Cougar<br />
In many existing sensor network frameworks, the sensor<br />
data has been assumed to be transmitted and stored in<br />
the gateway server according to a preprogrammed procedure.<br />
In such an approach, a different data collection<br />
scheme requires a change in the program. Moreover, the<br />
overhead due to load on the gateway server, and redundant<br />
data transmission, cannot be neglected. Cougar [61,<br />
229, 32] is an architecture that treats a sensor network as<br />
a distributed database, where a large number <strong>of</strong> sensor<br />
nodes are connected through a multi-hop wireless network<br />
and each node keeps sensor data. A query optimiser is located<br />
on the gateway node to generate distributed query<br />
processing plans after receiving queries from outside. The<br />
query plan is created according to catalog information and<br />
the query specification. Such a query plan specifies both<br />
the data flow (between sensors) and an exact computation<br />
plan (for each sensor). The plan is then disseminated to<br />
all relevant sensor nodes. Control structures are created<br />
to synchronize sensor behaviour, and the query is started.<br />
At run time, data records flow back to the gateway node<br />
as in-network computation happens on-the-fly. Bonnet [32]<br />
characterises, and emphasizes spatial and temporal continuity<br />
about query processing in sensor networks for Cougar<br />
development.<br />
• Monitoring queries are long running contnously.<br />
• The desired result <strong>of</strong> a query is typically a series <strong>of</strong><br />
notifications <strong>of</strong> system activity (periodic or triggered<br />
by special situations).<br />
• Queries need to correlate data produced simultaneously<br />
by different sensors.<br />
• Queries need to aggregate sensor data over time windows.<br />
• Most queries contain some condition restricting the<br />
set <strong>of</strong> sensors that are involved (usually geographical<br />
conditions).<br />
The usual relational database approach on query operation<br />
is not sufficient for real-time query processing, which the<br />
sensor network requires. Thus, in Cougar, it is proposed<br />
to divide the model <strong>of</strong> the sensor data into a user expression<br />
and an internal expression. First, the user expression<br />
is a query, and an Abstract Data Type (ADT) is defined<br />
for the sensor, and it proposes the query language <strong>of</strong> the<br />
syntax similar to SQL. For instance, query processing for<br />
a monitor can be described as follows.<br />
SELECT R.s.getTemp() FROM R<br />
WHERE R.floor = 3 AND $every(60);<br />
R means the ADT <strong>of</strong> the sensor, and temperature is described<br />
as (R.s.getTemp()) that is notified from the sensor,<br />
which exists on the third floor (R.floor=3) (every(60)) every<br />
60 seconds. Cougar interprets such an enquiry expression,<br />
and the mapping is done to an internal expression <strong>of</strong><br />
the enquiry execution plan (Query Execution Plan). The<br />
query processing that continues timewise by executing this<br />
enquiry execution plan can be achieved.<br />
6.1.2 SINA<br />
SINA (<strong>Sensor</strong> Information <strong>Network</strong>ing Architecture) [194,<br />
209] is a middleware architecture that abstracts the network<br />
<strong>of</strong> a sensor node as a distributed object for query<br />
23
operation, and task allocation. An overview <strong>of</strong> the middleware<br />
architecture is shown in Fig. 14. SINA aims to<br />
achieve scalability and low power consumption in sensor<br />
networks. SINA consists <strong>of</strong> the following function components.<br />
• Hierarchical clustering: The sensor nodes contain the<br />
function to build the hierarchical cluster structure<br />
dynamically.<br />
• Attribute based Name management: The sensor<br />
node is managed by the name based on the attribute<br />
but note ID. For instance,<br />
[type = temperature, location = NE,<br />
temperature = 103]<br />
means all the sensors indicating 103 degrees in the<br />
northeast division.<br />
• Position management: The position <strong>of</strong> the sensor<br />
node is measured, and managed by GPS etc.<br />
Figure 13: Response Implosion in SINA<br />
(from [209])<br />
6.1.3 TinyDB<br />
TinyDB [145, 94, 223, 73, 146] is an enquiry processing<br />
system for sensor networks that operates on TinyOS. In<br />
TinyDB, the concept <strong>of</strong> query processing (acquisitional<br />
query processing(ACQP)) is introduced. When query processing<br />
occurs the sensor node performs sensing in order to<br />
respond to the query. High level queries are decomposed<br />
and distributed to the networks. It is necessary to write a<br />
program in the C language, corresponding to the content<br />
<strong>of</strong> the query on TinyOS and its processing. In ACQP <strong>of</strong><br />
TinyDB, the SQL is enhanced for query processing and<br />
this query is converted to internal code, and executed for<br />
data retrieval and aggregation. For instance, the description<br />
that looks like the following SQL is used. Consider<br />
the following query:<br />
SELECTnodeid, light, temp<br />
FROM sensors<br />
SAMPLE PERIOD 1s FOR 10s<br />
Figure 14: SINA Middleware Model<br />
(from [194])<br />
Using the above functions, the execution environments <strong>of</strong><br />
SINA cooperate with each other among sensor nodes. This<br />
operation mechanism can be programmed by using SQTL<br />
(<strong>Sensor</strong> Query and Tasking Language). Internal processing<br />
<strong>of</strong> SQTL is converted into a script similar to the Query<br />
Execution Plan <strong>of</strong> Cougar, and executed in an execution<br />
engine: <strong>Sensor</strong> Execution Environment(SEE). SQTL is a<br />
query language that looks like SQL for the user application,<br />
and it can access sensor information by using SQTL.<br />
The following three primitive operations aim to achieve<br />
effective information aggregation:<br />
• Sampling Operation: When all the sensors respond<br />
simultaneously, there will be an explosion (response<br />
implosion) (Fig. 13 (a)), thus when the adjoining<br />
node responds, a probabilistic operation (Fig. 13 (b))<br />
either to respond or not is done.<br />
• Self orchestrated operation: An intentional operation<br />
delay for the response implosion.<br />
• Diffused computation operation: An operation that<br />
gives restricted communication only with a node that<br />
is adjacent (Fig. 13 (c)).<br />
This query specifies that each device should report its own<br />
id, light, and temperature readings (contained in the virtual<br />
table sensors) once per second for 10 seconds. Results<br />
<strong>of</strong> this query stream to the root <strong>of</strong> the network in<br />
an online fashion, via the multi-hop topology, where they<br />
may be logged or output to the user. The output consists<br />
<strong>of</strong> a stream <strong>of</strong> tuples, clustered into 1s time intervals.<br />
Each tuple includes a timestamp corresponding to the time<br />
it was produced. When a query is converted to internal<br />
codes, it optimises power consumption and communication<br />
in TinyDB. Fig. 15 lists the key new techniques introduced<br />
in TinyDB, summarizing what queries they apply to and<br />
when they are most useful.<br />
TinyDB approach is similar to Cougar, but it considers<br />
more optimisations in resource-constrained sensor network<br />
environments.<br />
6.1.4 DFuse: A Framework for Distributed Data<br />
Fusion<br />
DFuse [126] focuses on the following key problems:<br />
• What are basic processing elements that compose the<br />
data fusion?<br />
• How to assign the data aggregation tasks to specific<br />
sensor nodes dynamically?<br />
DFuse is a framework for data fusion application development<br />
on decentralized distributed sensor networks. The<br />
architecture <strong>of</strong> DFuse emphasizes the following two characteristics:<br />
24
Figure 15: Summary <strong>of</strong> acquisitional query processing techniques in TinyDB<br />
(from [145])<br />
Fusion API: The fusion API <strong>of</strong>fers programming ease for<br />
a complex sensor fusion application. The API allows any<br />
synthesis operation on stream data to be specified as a<br />
fusion function, ranging from simple aggregation (such as<br />
min, max, sum, or concatenation) to more complex perception<br />
tasks (such as analyzing a sequence <strong>of</strong> video images).<br />
The API consists <strong>of</strong> structure management, correlation<br />
control, computation management, memory management,<br />
status and feedback handling, and failure/latency<br />
handling. Integrated operations on a variety <strong>of</strong> stream data<br />
over a complex aggregation process such as the analysis <strong>of</strong><br />
the video images are enabled. In DFuse, the application<br />
is described as a brief data flow graph, called Task Graph<br />
where the Fusion API is used. The network is dynamically<br />
formed dynamically based on Task Graph, and optimisation<br />
is done afterwards by dynamic relocation described as<br />
follows.<br />
A distributed algorithm for fusion function placement<br />
and dynamic relocation: There is a combinatorially<br />
large number <strong>of</strong> options for placing the fusion functions<br />
in the network. Hence, finding an optimal placement that<br />
minimizes communication is difficult. Also, the placement<br />
needs to be reevaluated quite frequently considering the<br />
dynamic nature <strong>of</strong> WSNs. Their approach is a heuristic<br />
based algorithm to find a good (according to some predefined<br />
cost function) mapping <strong>of</strong> fusion functions to the<br />
network nodes. The mapping is reevaluated periodically<br />
to address dynamic changes in nodes power levels and network<br />
behaviour.<br />
DFuse uses a distributed role assignment algorithm for<br />
placing fusion points in the network. Role assignment is a<br />
mapping from a fusion point in an application task graph<br />
to a network node. The distributed role assignment algorithm<br />
is triggered at the root node. The inputs to the algorithm<br />
are an application task graph (assuming the source<br />
nodes are known), a cost function, and attributes specific<br />
to the cost function. The output is an overlay network<br />
that optimises the role to be performed by each node <strong>of</strong><br />
the network. A network node can play one <strong>of</strong> three roles:<br />
end point (source or sink), relay, or fusion point. An end<br />
point corresponds to a data source or a sink. The network<br />
nodes that correspond to end points and fusion points may<br />
not always be directly reachable from one another. In this<br />
case, data forwarding relay nodes may be used to route<br />
messages among them. The routing layer is responsible for<br />
assigning a relay role to any network node. The role assignment<br />
algorithm assigns only the fusion point roles. The<br />
cost function includes Minimize transmission cost (MT),<br />
Minimize power variance (MPV), and Minimize ratio <strong>of</strong><br />
transmission cost to power (MTP). For example, a fusion<br />
function f with m input data sources (fan-in) and n output<br />
data consumers (fan-out), the transmission cost for placing<br />
f on node k is formulated as:<br />
C MT(k, f) = ∑ m<br />
i=1<br />
t(sourcei) ∗ hopCount(inputi, k)<br />
+ ∑ n<br />
j=1<br />
t(f) ∗ hopCpount(k, outputj)<br />
Here, t(x) represents the transmission rate <strong>of</strong> the data<br />
source x, and hopCount(i, k) is the distance (in number<br />
<strong>of</strong> hops) between node i and k. The cost is optimised by<br />
moving the position at which a Fusion Point is allocated<br />
to minimize this cost function to the adjacent node. The<br />
example that the position <strong>of</strong> the node, where the Fusion<br />
Point is allocated, moves is shown in Fig. 16 Linear optimisation<br />
is performed in this example. If all the inputs to<br />
a fusion node are coming via a relay node (Figure 16(A)),<br />
and there is data contraction at the fusion point, then the<br />
relay node will become the new fusion node, and the old<br />
fusion node will transfer its responsibility to the new one<br />
(Figure 16(B)). In this case, the fusion point is moving<br />
away from the sink, and coming closer to the data source<br />
points. Similarly, if the output <strong>of</strong> the fusion node is going<br />
to a relay node, and there is data expansion, then again<br />
the relay node will act as the new fusion node. In this case,<br />
the fusion point is coming closer to the sink and moving<br />
away from the data source points.<br />
Figure 16: Linear Optimisation Example<br />
(from [126])<br />
DFuse shows that the operation time <strong>of</strong> the network is<br />
extended by power saving and stabilization effects by introducing<br />
dynamic role allocation with an evaluation experiment<br />
with iPAQ.<br />
6.1.5 TinyLIME<br />
TinyLIME [57] is extended from the decentralized data<br />
sharing middleware LIME. LIME is an extension <strong>of</strong> Linda,<br />
providing memory sharing. TinyLIME is enhanced for a<br />
mobile environment for a sensor network platform.<br />
25
Figure 17: Architecture Overview <strong>of</strong> TinyLIME<br />
(from [57])<br />
Linda: Linda enables two or more systems to share a tuple<br />
space using reading (rd), writing (out) and deleting (in).<br />
For instance, < “foo ′′ , 9, 27.5 > can be written by the operation<br />
out(< “foo ′′ , 9, 27.5 >) and and it can be read by<br />
the operation rd(< “foo ′′ , ?integer,?float >).<br />
LIME: A coordinated tuple space is formed from the partitioned<br />
tuple spaces that each distributed system maintains.<br />
This occurs only when the maintaining nodes connect<br />
to the LIME system.<br />
That is, communication via the shared memory space is<br />
possible only while the system maintains the mutual connections.<br />
For instance, the common tuple space that operates<br />
by building LIME into PDAs can be achieved only<br />
while the PDAs comprise an ad hoc network, and data exchange<br />
operations similar to Linda are possible.<br />
Abstraction <strong>of</strong> sensor network: The TinyLIME model<br />
has been designed and implemented for the Crossbow<br />
Mote platform, exploiting the functionalities <strong>of</strong> TinyOS.<br />
On standard hosts, TinyLIME is implemented as a layer<br />
on top <strong>of</strong> LIME without requiring any modification, therefore<br />
reasserting the versatility <strong>of</strong> the LIME model and middleware.<br />
In TinyLIME, a tuple space partition resides on<br />
each sensor node, and a coordinated tuple space is formed<br />
when connecting it with the host with one hop or multi<br />
hop (see Fig.17). The sensor data can be read by executing<br />
the read operation <strong>of</strong> Linda such as rd(p) for this<br />
coordinated tuple space. Thus, TinyLIME can abstract<br />
the collection <strong>of</strong> data from the sensor network as an operation<br />
on the shared memory space (tuple space). This<br />
works as middleware by <strong>of</strong>fering an abstracted interface to<br />
the application programmer in the sensor network.<br />
In TinyLIME, the client host accesses the sensor node<br />
through the class named MoteLimeTupleSpace. One tuple<br />
is usually shown by . The sensor data<br />
is read by executing the rd operation with template Mote-<br />
LimeTemplate along with this sensor type. The retrieval is<br />
demanded from the tuple space <strong>of</strong> the Base Station Host<br />
when there is no data appropriate to the tuple space. The<br />
Base Station is regularly updated with sensor data and<br />
exports it to the tuple space.<br />
6.2 Event Based Approach<br />
A main purpose <strong>of</strong> sensor use in applications is preventing<br />
disasters and crimes by observing abnormalities. When<br />
an abnormality is observed, an alert should be raised in<br />
real-time to the user, and it requires event driven data<br />
processing mechanism. In another scenario, applications<br />
need to continuously collect and integrate data generated<br />
from a large and physically dispersed contingent <strong>of</strong> sensor<br />
nodes. There are many devices exchanging data, whilst<br />
some information sources and sinks may not be present in<br />
the network at that moment. Therefore, request/response<br />
communication is not adequate. For example, a client that<br />
requests instantaneous updates <strong>of</strong> information would need<br />
to continuously poll the information providers leading to<br />
network overload and congestion. Moreover, as energy is<br />
a scarce resource, unnecessary information requests should<br />
be avoided.<br />
When designing real-time systems, the time triggered<br />
approach is expensive in the case where the expected<br />
rate <strong>of</strong> primitive event occurrence is low. An alternative<br />
is to use an event triggered approach where the<br />
execution is driven by the events. Event-driven communication<br />
is an asynchronous paradigm that decouples<br />
senders and receivers. Its clients are event publishers and<br />
event subscribers among which one-to-many and manyto-many<br />
communication is supported by a message transmission<br />
and notification service. An extension to this basic<br />
model allows messages to be associated with topics.<br />
In this case, subscribers only receive messages associated<br />
with the topic(s) to which they have subscribed. The<br />
publish/subscribe paradigm has become popular, because<br />
asynchronous and multipoint communication is well suited<br />
for constructing reactive distributed computing applications.<br />
26
This section describes middleware that aims at event<br />
processing for sensor networks and some middleware that<br />
uses a publish/subscribe paradigm.<br />
6.2.1 DSWare<br />
Data Service Middleware (DSWare) [136] is middleware<br />
which takes a data-centric approach by defining the common<br />
data service and group based service parts <strong>of</strong> various<br />
applications. DSWare lies between the application layer<br />
and the network layer providing a data service abstraction<br />
to applications.<br />
The real-time event service handles unreliability <strong>of</strong> individual<br />
sensor reports, correlation among different sensor<br />
observations, and inherent real-time characteristics <strong>of</strong><br />
events. The event service supports confidence functions,<br />
which are based on data semantics, including the relative<br />
importance <strong>of</strong> sub events and historical patterns. When<br />
the failure rate is high, the event service enables partial<br />
detection <strong>of</strong> critical events to be reported in a timely manner.<br />
DSWare performs routing in real-time taking power<br />
consumption into account. DSWare consists <strong>of</strong> six function<br />
components as shown in Fig.18.<br />
Figure 18: DSWare Framework<br />
(from [136])<br />
1) DataStorage: DSWare aims to distribute the data<br />
on specific sensor nodes or aggregated the data in groups<br />
for load balancing and to improve reliability.<br />
Data that describes different occurrences <strong>of</strong> some type<br />
<strong>of</strong> activity can be mapped to certain locations so that future<br />
queries for this type <strong>of</strong> data do not require flooding<br />
to the whole network. The Data Storage Component in<br />
DSWare provides similar mechanisms to store information<br />
according to its semantics with efficient data lookup, and<br />
it is robust under node failure. Correlated data can be<br />
stored in geographically adjacent regions to enable possible<br />
aggregation and in-network processing.<br />
2) Data Caching: The Data Caching Service provides<br />
multiple copies <strong>of</strong> the data most requested. This data is<br />
spread out over the routing path to reduce communication,<br />
increase availability and accelerate query execution.<br />
A simplified feedback control scheme is used to decide dynamically<br />
whether to place copies <strong>of</strong> the data around the<br />
frequently queried nodes.<br />
3) Group Management: The Group Management<br />
component uses cooperation between group members to<br />
achieve reliability <strong>of</strong> sensor information and detection and<br />
exclusion <strong>of</strong> abnormal sensor nodes. Normally functioning<br />
sensors within a geographic area provide similar sensor values.<br />
A value that most nodes in a group agree on should<br />
have higher confidence than a value that is in dispute or<br />
varies widely. Based on similar observations by nearby<br />
sensors in a sufficiently dense area, erroneous results from<br />
the particular sensor nodes can be recognized. The suspicious<br />
nodes can be discarded in later coordination and<br />
computations in order to provide more reliable measurements.<br />
Some tasks require cooperation <strong>of</strong> multiple sensors.<br />
Movement and speed approximations require more<br />
than one sensor to combine their observations to calculate<br />
the direction and velocity. When a region has adequate<br />
density <strong>of</strong> sensors, a portion <strong>of</strong> them can be put into sleep<br />
mode to save energy.<br />
4) Event Detection: An observation is the low level<br />
output <strong>of</strong> a sensing device during a sensing interval. It is a<br />
measurement <strong>of</strong> the environment. An event is an activity<br />
that can be monitored or detected in the environment and<br />
is <strong>of</strong> interest to the application. The types <strong>of</strong> event that<br />
can be detected and are potentially <strong>of</strong> interest are preregistered<br />
according to the specific applications. Events<br />
are categorized into different types and may also be atomic<br />
events and compound events. An atomic event refers to an<br />
event that can be determined based only on an observation<br />
<strong>of</strong> a sensor.<br />
Suppose we have registered the following events:<br />
A high temperature event represents the observation that<br />
the temperature is higher than a specified threshold. A<br />
light event represents an occurrence <strong>of</strong> a sharp change in<br />
the light intensity. An acoustic event represents the occurrence<br />
<strong>of</strong> an unusual sound matching a certain signature.<br />
An explosion event might be defined as the three events<br />
above being reported in the same region within a specified<br />
time interval.<br />
A confidence function specifies the relationships among<br />
sub events <strong>of</strong> a compound event with other factors that<br />
affect the decision such as relative importance, sensing reliability,<br />
historic data, statistical model, fitness <strong>of</strong> a known<br />
pattern and proximity <strong>of</strong> detections. In reality, an event always<br />
has meaningful contexts, which can be modelled using<br />
a Finite State Machine (FSM). For example, in a residential<br />
monitoring system, morning, afternoon, and evening<br />
can be states <strong>of</strong> this system. Moreover, each sub event<br />
has an absolute validity interval (avi) associated with it.<br />
The avi depicts the temporal consistency between the environment<br />
and its observed measurement. Continuing the<br />
explosion example, the temperature sub-event can have a<br />
longer avi because high temperature usually will last for a<br />
while, while the light sub-event may not last long because<br />
in an explosion, a sharp increase in the intensity <strong>of</strong> light<br />
would happen only for a short period <strong>of</strong> time. To register<br />
an event <strong>of</strong> interest, an application submits a request in<br />
the following SQL-like statement:<br />
The RANGE TY PE can be GROUP or AREA. The Detecting<br />
Range is the groups description (e.g., Group ID) or<br />
the areas coordinates range.The Subevent Set defines a set<br />
<strong>of</strong> sub events and their timing constraints, for instance as<br />
follows:<br />
27
Figure 19: Layered architecture and interfaces in Impala<br />
(from [141])<br />
5) Data Subscription: As a type <strong>of</strong> data dissemination<br />
service, Data Subscription queries are very common<br />
in sensor networks. These queries have their own characteristics,<br />
including relatively fixed data feeding paths,<br />
stable traffic loads for nodes on the paths, and possible<br />
merges <strong>of</strong> multiple data feeding paths. When several base<br />
stations subscribe for the data from the same node at different<br />
rates, the Data Subscription Service places copies <strong>of</strong><br />
the data at some intermediate nodes to minimize the total<br />
amount <strong>of</strong> communication. In Fig.20, when there are multiple<br />
subscribers (node 1 and node 2) for the data at node<br />
0, the Data Subscription Service detects the proximity <strong>of</strong><br />
the two paths and merges these two paths by placing a<br />
copy <strong>of</strong> the data at node 5 and lets node 5 send data to<br />
the two subscribers during each requesting interval.<br />
Figure 20: Data Subscription in DSWare<br />
(from [136])<br />
6) Scheduling: The Scheduling component schedules<br />
other components. Two most important scheduling options<br />
are energy aware and real-time scheduling.<br />
6.2.2 Impala<br />
Impala [141, 140] has been built as part <strong>of</strong> the ZebraNet,<br />
in which sensing nodes are placed on free ranging wildlife<br />
to perform long-term migration studies on a collection <strong>of</strong><br />
animals in an ecosystem. It is a middleware architecture<br />
that enables application modularity, adaptivity, and repairability<br />
in wireless sensor networks. Fig.19 shows the<br />
system architecture <strong>of</strong> Impala. The upper layer contains<br />
all the application protocols, while the lower layer contains<br />
three middleware agents: the Application Adapter, the Application<br />
Updater, and the Event Filter. Impala is essentially<br />
a runtime system that acts as a lightweight event<br />
and device manager for each mobile wireless sensor node<br />
in the system. The applications, the Application Adapter,<br />
and the Application Updater are all programmed into a<br />
set <strong>of</strong> event handlers, which are invoked by the Event Filter<br />
when the associated events are received. The Application<br />
Adapter changes the communication protocol according<br />
to the executing context. Improvements in performance,<br />
power consumption and robustness are achieved by<br />
adapting the communication protocol according to the runtime<br />
conditions. The Application Updater renews s<strong>of</strong>tware<br />
automatically. The Event Filter captures and dispatches<br />
events to the above system units and initiates chains <strong>of</strong> processing.<br />
Impala has five types <strong>of</strong> event: Timer Event for<br />
the timer, Packet Event signals that a network packet has<br />
arrived. Impala has two types <strong>of</strong> packets, application-toapplication<br />
packets and updater-to-updater packets. The<br />
intended receiver <strong>of</strong> the packet handles these events. Send<br />
Done Event for signalling that a network packet has been<br />
sent or its send has failed. (Data Event for signalling that<br />
the sensing device is ready to read, and Device Event for<br />
signalling that a device failure is detected. The Application<br />
Adapter handles these events.<br />
Adaptation is implemented through Impala’s eventbased<br />
programming model, and occurs in response to a<br />
range <strong>of</strong> events. Some events, like timer events, signal that<br />
time has passed since the last status check; the adapter<br />
may then choose to query application or system states in<br />
order to determine if any adaptation should be performed.<br />
Other events, like device events, have sources external to<br />
Impala and signal an external event for Impala to respond<br />
to, such as the failure <strong>of</strong> a particular radio transceiver; the<br />
adapter should then examine the impact <strong>of</strong> the failure and<br />
determine whether to dispatch another application to work<br />
around it.<br />
6.2.3 EnviroTrack<br />
EnviroTrack [1] is the first programming support for sensor<br />
networks that explicitly supports tracking mobile objects.<br />
Its abstractions and underlying mechanisms are well-suited<br />
to monitoring targets that move in the physical world. Dy-<br />
28
namic group administration is performed, and a leader<br />
is maintained by periodic message exchanges among the<br />
group. EnviroTrack is a middleware layer that exports<br />
a new address space in the sensor network (see Fig.21).<br />
In this space, physical events in the external environment<br />
are the addressable entities. This type <strong>of</strong> addressing is<br />
convenient for applications that need to monitor environmental<br />
events. For example, a surveillance application that<br />
monitors vehicle movement behind enemy lines may assign<br />
unique labels to individual vehicles. Their state can then<br />
be addressed by reference to these labels. Moreover, computing<br />
or actuation objects can be attached to individual<br />
addresses.<br />
Figure 22: EnviroTrack Programming Model<br />
(from [1])<br />
Group management services, shown at the bottom <strong>of</strong><br />
Fig.21 maintain coherence <strong>of</strong> context labels, where a group<br />
<strong>of</strong> sensors identifying the same entity in the environment<br />
produce a single context label. Fig.23 shows the outline <strong>of</strong><br />
an object tracking.<br />
Context: Puppy<br />
Figure 21: Middleware Architecture in Enviro-<br />
Track<br />
(from [1])<br />
The attached computation or actuation is then performed<br />
in the physical neighbourhood <strong>of</strong> the named entity.<br />
Hence, for example, a microphone could be turned on at<br />
some network address (e.g., one that names a vehicle in<br />
the external environment) to listen in on the corresponding<br />
environmental object. As the named vehicle moves,<br />
the middleware will turn on the appropriate nearby node<br />
microphones so that a non-interrupted audio stream is delivered<br />
to the receiver, despite the mobile nature <strong>of</strong> the<br />
source. Communication can also occur between two mobile<br />
endpoints. For example, a walking soldier with a PDA<br />
may track the position <strong>of</strong> a suspect vehicle detected elsewhere<br />
in the network. In essence, EnviroTrack supports:<br />
• Exporting a novel logical address space in which external<br />
environmental objects are the labelled entities.<br />
• Allowing arbitrary data, computation, or actuation<br />
to be attached to such logical network addresses.<br />
These data, computation, and actuation are encapsulated<br />
in an abstraction as tracking objects.<br />
The EnviroTrack middleware library implements a set <strong>of</strong><br />
protocols that <strong>of</strong>fload from an application developer the<br />
details <strong>of</strong> inter object communication and object mobility,<br />
as well as the maintenance <strong>of</strong> tracking objects and their<br />
state. It abstracts away the fact that computation associated<br />
with the object may be distributed and performed<br />
by all sensor nodes in the vicinity <strong>of</strong> the tracked physical<br />
entity. As the tracked entity moves, the identity and location<br />
<strong>of</strong> the sensor nodes in its neighbourhood change, but<br />
the tracking object representing it remains the same. The<br />
programmer thus interacts with a changing group <strong>of</strong> sensor<br />
nodes through a simple, uniquely addressable, object<br />
interface. Fig.22 shows the programming model.<br />
Leader<br />
Member<br />
Follower<br />
Node<br />
Figure 23: Tracking Objects in EnviroTrack<br />
Contexts are created when a node first senses a condition.<br />
The node immediately starts a leader election process<br />
in which it randomly chooses a small timeout value.<br />
A node which times out first sends a message informing its<br />
neighbours that it is leader. Upon receipt <strong>of</strong> this message,<br />
other nodes sensing the same condition become members.<br />
A nodes communication radius has to be larger than twice<br />
its sensing radius such that all nodes sensing the same<br />
target are within each others communication range. An<br />
elected group leader sends periodic heartbeats, which are<br />
received by all group members. Leader heartbeats have<br />
three purposes. First, they inform current members that<br />
the leader is alive. Should the leader die, a new leader election<br />
is started after a timeout. Second, they carry application<br />
state that must persist across leader hand<strong>of</strong>fs. This<br />
state is recorded by all member nodes. This mechanism allows<br />
new leaders to continue computations <strong>of</strong> failed leaders<br />
from the last state received. An application can explicitly<br />
create a persistent state primitive and read it. Finally,<br />
heartbeats are overheard past the groups perimeter thus<br />
informing neighbouring nodes <strong>of</strong> the existence <strong>of</strong> a context<br />
label. Nodes that cannot sense the target themselves<br />
but know <strong>of</strong> its existence from nearby leader heartbeats<br />
are called group followers. If these nodes subsequently<br />
sense the condition, they join the present group instead <strong>of</strong><br />
forming a new context label. The mechanism ensures that<br />
multiple spurious context labels do not emerge around the<br />
same target. When the leader gets out <strong>of</strong> sensory range<br />
from the target, it sends a leader hand<strong>of</strong>f message which<br />
initiates a new leader election. The resulting behaviour is<br />
that a group with a unique leader is created around each<br />
target. Membership changes and leader (and state) hand-<br />
29
<strong>of</strong>fs occur automatically as the target moves.<br />
6.2.4 CORTEX<br />
CORTEX [27] provides a programming model that supports<br />
the development <strong>of</strong> applications constructed from<br />
mobile sentient objects taking into account the provision <strong>of</strong><br />
incremental real-time and reliability guarantees as well as<br />
the design <strong>of</strong> an open, scalable system architecture that reflects<br />
the heterogeneous structure and performance <strong>of</strong> the<br />
networks. Publish/Subscribe based middleware for ad hoc<br />
networks is used by the sentient object model to disseminate<br />
context and other data.<br />
A sentient object is an encapsulated entity, with its interfaces<br />
being sensors and actuators. <strong>Sensor</strong>s are defined<br />
as entities that produce events in reaction to a real world<br />
stimulus, whilst actuators are defined as entities which consume<br />
events and react by attempting to change the state<br />
<strong>of</strong> the real world. The sentient object contains a sensory<br />
capture component, which performs sensor fusion based on<br />
Bayesian networks. It provides an efficient approach to intelligent<br />
reasoning based on a hierarchy <strong>of</strong> contexts. Fig.24<br />
shows a sentient object and its internals.<br />
about them using expert system logic (based on a CLIPS<br />
inference engine), and produce output events whereby they<br />
actuate the environment or interact with other objects.<br />
This example is exploring the area <strong>of</strong> autonomous vehicle<br />
navigation in which vehicles, represented as mobile sentient<br />
objects, have the objective <strong>of</strong> travelling along a given path,<br />
defined by a set <strong>of</strong> GPS way points. Every vehicle acts as<br />
a sentient object that cooperates with other vehicles (sentient<br />
objects) by inter vehicle communication mechanisms<br />
and with other infrastructure objects (e.g. traffic lights or<br />
speed signals).<br />
<strong>Sensor</strong><br />
<strong>Sensor</strong><br />
Consume<br />
External Environment<br />
<strong>Sensor</strong>y Context<br />
Capture Represen<br />
tation<br />
Sentient Object<br />
Event<br />
Inference<br />
Engine<br />
Stigmergic Coordination<br />
Produce<br />
Figure 24: Sentient Object Model<br />
(from [27])<br />
Actuator<br />
Actuator<br />
Internally, a sentient object consists <strong>of</strong> three major functional<br />
components:<br />
• The sensory capture component is responsible fusing<br />
the outputs <strong>of</strong> multiple sensors, and uses probabilistic<br />
models, including Bayesian networks, to deal with<br />
inherent sensor uncertainties.<br />
• The context representation component maintains a<br />
hierarchy <strong>of</strong> potential contexts in which an object<br />
can exist, and the current active context.<br />
• The inference engine component is a production rule<br />
based inference engine and supporting knowledge<br />
base, giving objects the ability to intelligently control<br />
actuation based on their context.<br />
The CORTEX middleware supports diverse application<br />
domains such as cooperating sentient vehicles [200] and<br />
smart living environments. A particular configuration <strong>of</strong><br />
the middleware for the mobile ad-hoc networks (MANETs)<br />
is shown in Fig.25. This configuration was targeted towards<br />
the cooperating sentient vehicles application, where<br />
context-aware, autonomous vehicles travel from a given<br />
source to destinations and cooperate with other vehicles<br />
to avoid collisions, obey road side traffic lights and give<br />
way to pedestrians.<br />
In more detail, sentient objects consume events from<br />
a variety <strong>of</strong> different sources including sensors and event<br />
channels, fuse them to derive higher-level contexts, reason<br />
Figure 25: CORTEX Middleware Architecture<br />
(from [27])<br />
6.2.5 Mires<br />
Mires [208] is middleware based on the publish/subscribe<br />
paradigm for messaging in WSN. The operation assumes<br />
a WSN, <strong>of</strong> hierarchical structure, communicating with the<br />
nodes <strong>of</strong> a wired network on which applications reside via<br />
a single sink node that is a gateway between the WSN and<br />
the applications. Initially, the nodes in the sensor network<br />
create advertisements for their available topics (e.g. temperature<br />
and humidity) collected from local sensors. Next,<br />
the advertisement messages are routed to the sink node using<br />
a multi-hop routing algorithm. A user application (e.g.<br />
via a graphical user interface) connected to the sink node<br />
is able to select (i.e. subscribe to) the advertised topics <strong>of</strong><br />
interest that are to be monitored. Messages corresponding<br />
to these subscriptions are then broadcast down to the<br />
sensor network nodes. After receiving the subscriptions,<br />
sensor nodes publish their collected data via the sink node<br />
to the network-based applications.<br />
Figure 26: Mires Overview<br />
(from [208])<br />
Additional services (e.g. a data aggregation service) may<br />
easily be integrated with the publish/subscribe service if<br />
they implement the appropriate interfaces. Fig.26 shows<br />
an overview <strong>of</strong> the Mires architecture. From the bottom<br />
to the top, the first block corresponds to the sensor nodes<br />
hardware components. It generally includes a micro controller<br />
unit, one or more sensors and a radio transceiver.<br />
These components are directly interfaced and controlled<br />
30
y the operating system (OS). The low level services provided<br />
by the OS can be accessed through standard interfaces.<br />
Mires has a simple architecture, however it implements<br />
high-level publish/subscribe by providing services<br />
and routing while hiding the low level complexity <strong>of</strong> the<br />
sensor network.<br />
6.2.6 Scope<br />
Scope [210] is a generic abstraction for the definition <strong>of</strong><br />
groups <strong>of</strong> nodes. Multi purpose WSNs will be heterogeneous<br />
in most cases: for each application only a specific<br />
type <strong>of</strong> sensor node or some parts <strong>of</strong> the monitored environment<br />
may be relevant. Scope proposes a middleware<br />
framework based on publish/subscribe messaging within<br />
the group <strong>of</strong> nodes, which can be in geographically close<br />
proximity, sensor type, and so forth. The multi purpose<br />
networks can be tackled from two directions. On the one<br />
hand, there are low level implementations that focus on<br />
programming individual sensors and their sensing/acting<br />
and communication facilities directly such as TinyOS. On<br />
the other hand, there is work on declarative query processors<br />
<strong>of</strong>fering high-level interfaces [146], which do not allow<br />
explicit control on the level <strong>of</strong> individual nodes. The difficulty<br />
lies in finding a good trade<strong>of</strong>f between the universality<br />
<strong>of</strong> such high-level interfaces and the degree to which<br />
application specific details can be passed and utilized for<br />
the optimisation <strong>of</strong> routing and resource scheduling. Scope<br />
aims to bridge the gap between high and low level interfaces<br />
and enable the partitioning <strong>of</strong> WSN functionality.<br />
Scope as a middleware building block facilitates the<br />
construction <strong>of</strong> tailored services in multi purpose WSNs.<br />
Fig.27 shows an abstract model <strong>of</strong> Scope applications in a<br />
WSN.<br />
6.3.1 MiLAN<br />
MiLAN (Middleware Linking Applications and <strong>Network</strong>s)<br />
[89, 150, 159] is middleware for sensor networks for applications<br />
that require QoS on the sensor information, such as<br />
monitoring patients for medical treatment. Here, QoS <strong>of</strong><br />
sensor information indicates its reliability, that is, a correct<br />
value from a sensor <strong>of</strong> reliability 1.0 without fail can be requested<br />
by an application. MiLAN allows sensor network<br />
applications to specify their quality needs, and adjusts<br />
the network characteristics to increase application lifetime<br />
while still meeting those quality needs. Fig.28 shows a<br />
high-level diagram <strong>of</strong> a system that employs MiLAN.<br />
Figure 28: MiLAN System Overview<br />
(from [89])<br />
Unlike traditional middleware that sits between the application<br />
and the operating system, MiLAN has an architecture<br />
that extends into the network protocol stack, as<br />
shown in Fig.29<br />
Figure 29: MiLAN Protocol Stack<br />
(from [89])<br />
Figure 27: Abstract Model <strong>of</strong> Scope Applications<br />
(from [210])<br />
6.3 QoS Oriented Approach<br />
In this section, middleware that aims to provide quality <strong>of</strong><br />
sensor data and reliability <strong>of</strong> the collected data, depending<br />
on application requirements, is described.<br />
As MiLAN is intended to sit on top <strong>of</strong> multiple physical<br />
networks, an abstraction layer is provided that allows<br />
network specific plug-ins to convert MiLAN commands to<br />
protocol-specific commands that are passed through the<br />
usual network protocol stack. Therefore, MiLAN can continuously<br />
adapt to the specific features <strong>of</strong> whichever network<br />
is being used for communication (e.g. determining<br />
scatternet formations in Bluetooth networks etc.) in order<br />
to best meet the applications’ needs over time.<br />
In order to determine how to best serve the application,<br />
MiLAN must know (1) the variables <strong>of</strong> interest to the application,<br />
(2) the required QoS for each variable, and (3)<br />
the level <strong>of</strong> QoS that data from each sensor or set <strong>of</strong> sensors<br />
can provide for each variable. Note that all <strong>of</strong> these may<br />
change based on the application’s current state. During<br />
initialization <strong>of</strong> the application, this information is conveyed<br />
from the application to MiLAN via State based Variable<br />
Requirements and QoS graphs. These sets <strong>of</strong> sensors<br />
define the application feasible set Fa, where each element<br />
in Fa is a set <strong>of</strong> sensors that provides QoS greater than<br />
or equal to the application-specified minimum acceptable<br />
QoS for each specified variable. For example, in a personal<br />
health monitor, for a patient in medium stress with<br />
a high heart rate, normal respiratory rate, and low blood<br />
pressure, the application feasible sets in Fa that MiLAN<br />
should choose to meet the specified application QoS are<br />
shown in Table 1. MiLAN must choose which element <strong>of</strong><br />
31
Figure 30: Dynamic Service Broker Framework in AutoSec<br />
(from [80])<br />
Fa should be provided to the application. This decision<br />
depends on network level information.<br />
MiLAN dynamically creates the combination <strong>of</strong> sensors<br />
to adapt to the application’s QoS request and improve<br />
physical resources (e.g. transmission distance and bandwidth).<br />
Thus, it has the function to adjust the trade-<strong>of</strong>f<br />
between QoS and the cost <strong>of</strong> the sensor network (for instance,<br />
energy consumption).<br />
6.3.2 QUASAR<br />
Unlike conventional distributed database systems, a sensor<br />
data architecture must handle extremely high data generation<br />
rates from a large number <strong>of</strong> small autonomous<br />
components. And unlike the emerging paradigm <strong>of</strong> data<br />
streams, it is infeasible to think that all this data can be<br />
streamed into the query processing site, due to server bandwidth<br />
and energy constraints <strong>of</strong> battery-operated wireless<br />
sensors. Then, Quality-Aware Sensing Architecture<br />
(QUASAR) [131, 82] proposes the sensor data architecture,<br />
that must become quality-aware, regulating the quality <strong>of</strong><br />
data at all levels <strong>of</strong> the distributed system, and supporting<br />
user applications’ quality requirements in the most efficient<br />
manner possible. For example, QUASAR aims to process<br />
the quality-aware queries (Q aQ s) such as “Retrieve the<br />
sensor IDs and temperatures (within + − 5o C) <strong>of</strong> all sensors<br />
whose temperature is above 30 o in a certain area R”.<br />
6.3.3 AutoSec<br />
Automatic Service Composition, AutoSeC [80], is a dynamic<br />
service broker framework for effective utilization <strong>of</strong><br />
resources within a distributed environment. Distributed<br />
applications have QoS requirements that can be translated<br />
into the underlying system level resources and, in this respect,<br />
AutoSeC does resource management within a sensor<br />
network by granting access control to applications in order<br />
to meet QoS requirements on a per sensor basis. Crucially,<br />
meeting these requirements entails the AutoSeC middleware<br />
dynamically choosing a combination <strong>of</strong> information<br />
collection and resource provisioning policies from a given<br />
set based on user needs and system state. Since the choice<br />
<strong>of</strong> policies is done by AutoSeC, the application developer<br />
or system administrator is relieved from the tedious task<br />
<strong>of</strong> having to make a choice from the set <strong>of</strong> policies that are<br />
available.<br />
Fig.30 presents an overview <strong>of</strong> the AutoSec framework.<br />
AutoSeCs directory service is centralized and stores system<br />
state information concerning three categories <strong>of</strong> parameters:<br />
(1) network parameters e.g. bandwidth, endto-end<br />
delay, (2) server parameters e.g. buffer capacity,<br />
CPU utilization, disk space, and (3) client parameters e.g.<br />
client connectivity, capacity etc. Each <strong>of</strong> these parameters<br />
can be represented by either one value or a range <strong>of</strong><br />
values with an upper and lower value. The information<br />
collection module determines whether to update the information<br />
repository with the current system image. This<br />
is influenced by the rate at which samples are collected.<br />
The higher the sampling interval, the higher the accuracy<br />
<strong>of</strong> the directory services information, and the higher the<br />
overhead introduced into the system. Hence the information<br />
collection module has to maintain a balance between<br />
the information accuracy and the overhead introduced by<br />
the directory service maintenance. The resource provisioning<br />
module uses information received from the directory<br />
service regarding the current system state to perform resource<br />
allocation. It uses intelligent mechanisms to choose<br />
appropriate resources e.g. servers, routing paths to service<br />
QoS based requests. It takes into account the current<br />
network and server utilization parameters provided by the<br />
directory service to allocate resources in a way that optimises<br />
overall system performance. Once new clients are<br />
assigned a path and/or server, they set up a connection<br />
to the assigned server on the assigned path. Routers and<br />
servers along the assigned path check their residual capacity<br />
and perform either <strong>of</strong> two actions; admit the connection<br />
and reserve resources or reject the request. Once the connection<br />
<strong>of</strong> a client to a server terminates, the client makes<br />
a termination request and the resources along the formerly<br />
assigned path are reclaimed by the resource provisioning<br />
module. The network monitoring modules are distributed,<br />
with each module monitoring parts <strong>of</strong> the entire network.<br />
Each module probes routers and servers to collect system<br />
state information. These probes consolidate the sample<br />
values collected by the routers and servers before they forward<br />
them to the monitor. The network monitoring modules<br />
finally transmit the information to the information<br />
collection module which performs updates on the direc-<br />
32
Figure 31: 3-level hierarchical cluster-based network<br />
(from [107])<br />
tory service. AutoSeCs dynamic service broker performs<br />
all the decision making functions regarding what combinations<br />
<strong>of</strong> resource provisioning and information collection<br />
policies that satisfy user requests and match current system<br />
conditions. It also decides when to switch between<br />
these policies at run-time.<br />
6.4 Internet Oriented Approach<br />
To date, work in the sensor network community has focused<br />
on collecting and aggregating data from specific networks<br />
with an associated base station. The problem <strong>of</strong><br />
delivering this data to external systems is typically left<br />
open. Unlike the traditional closed network setting for<br />
specific applications, middleware for multi purpose sensor<br />
networks should <strong>of</strong>fer a more open platform where various<br />
applications can access the sensor information. Use <strong>of</strong><br />
the Internet is an intuitive approach to achieve open sensor<br />
network middleware. In this section, middleware that aims<br />
to integrate sensor networks and the Internet is described.<br />
6.4.1 Web based query management<br />
In [107], a web based query and management programming<br />
model using a gateway is proposed. Basically all sensor<br />
readings go to a gateway, a powerful node that has connection<br />
to the outside world. Most <strong>of</strong> the data processing,<br />
aggregation, as well as query transformation and the web<br />
front end to the database module reside in the gateway.<br />
The system can be configured using the web front end via<br />
the gateway. A WSN is assumed with a 3-level regional<br />
hierarchy (shown in Fig.31), and the entire network employs<br />
3-level hierarchy: areas, clusters, and sensor nodes.<br />
To facilitate scalable operations in sensor networks, sensor<br />
nodes should be aggregated to form clusters based on<br />
their power levels and proximity. A cluster head is elected<br />
from the sensor nodes belonging to the same cluster, and<br />
is responsible for acquiring data from the sensor nodes in<br />
its cluster. An area consists <strong>of</strong> cluster heads. That is, the<br />
entire sensor network has some areas, an area has some<br />
clusters, and a cluster head has some sensor nodes. Such<br />
a 3-level hierarchical structure is useful for managing the<br />
sensor network regionally.<br />
6.4.2 Data Collection <strong>Network</strong> (DCN)<br />
The Hourglass project [195] proposes an Internet based<br />
infrastructure that handles aspects <strong>of</strong> naming, discovery,<br />
schema management, routing, and aggregating data from<br />
potentially many geographically diverse sensor networks,<br />
called Data Collection <strong>Network</strong> (DCN). DCN addresses<br />
the following problems:<br />
• Intermittent connectivity: How does a DCN manage<br />
communications with mobile or poorly connected entities<br />
that may exhibit intermittent connectivity with<br />
the rest <strong>of</strong> the infrastructure? How does the DCN<br />
ensure that the data flow is not disrupted during disconnection.<br />
• Management <strong>of</strong> resource: How does a DCN infrastructure<br />
become aware <strong>of</strong>, and broker access to, a<br />
wide range <strong>of</strong> sensor networks and services that may<br />
exist in different administrative domains, each with<br />
different interfaces and access rights?<br />
• Service composition: How do applications tie together<br />
a suite <strong>of</strong> services for processing data flowing<br />
from sensor networks? What is the model for<br />
mapping application data requirements onto individual<br />
services, and how are those services instantiated<br />
and managed? How do applications integrate<br />
application-specific processing into an existing DCN?<br />
• Supporting heterogeneity: How does a DCN infrastructure<br />
provide services in the presence <strong>of</strong> resourceconstrained<br />
devices? What minimal functionality is<br />
needed by all participants? How should a DCN accommodate<br />
devices <strong>of</strong> varying capabilities?<br />
An example <strong>of</strong> an Hourglass system structure with one<br />
realized circuit is shown in Fig.32. A circuit can be described<br />
by a set <strong>of</strong> circuit links between service providers<br />
(SPs) and the schema <strong>of</strong> data travelling over these links.<br />
Data flow in Hourglass is based on a circuit, which is a<br />
data path through the system that ensures that an application<br />
receives the data in which it is interested. A<br />
circuit includes intermediate services that perform operations<br />
on the data. Services are organized into distinct service<br />
providers that capture a single administrative domain.<br />
Each service provider includes a circuit manager, which is<br />
responsible for the set-up and management <strong>of</strong> circuits, and<br />
a registry, which aids service discovery. Hourglass services<br />
have well specified interfaces that are used to communicate<br />
33
Figure 32: Example <strong>of</strong> Hourglass System<br />
(from [195])<br />
with other services, the circuit manager, and the registry<br />
for circuit establishment, data routing, circuit disconnection,<br />
and service discovery. An existing entity can join an<br />
Hourglass system by implementing the core functionality<br />
required by these interfaces.<br />
The structure <strong>of</strong> a circuit is specified in the Hourglass<br />
Circuit Descriptor Language (HCDL). The HCDL is an<br />
XML defined language that applications use to define desired<br />
circuits to be established by Hourglass. An HCDL<br />
circuit description can exist in three forms: the nodes <strong>of</strong> an<br />
unrealized circuit are not tied to actual service instances<br />
in the system, a partially realized circuit contains some <strong>of</strong><br />
the bindings, whereas a fully realized circuit includes all <strong>of</strong><br />
the service endpoints for the services used by the circuit.<br />
An unrealized circuit includes constraints on the services<br />
that may be instantiated at a certain node in the circuit.<br />
It is the task <strong>of</strong> the circuit manager to resolve an unrealized<br />
circuit into a realized one, subject to the constraints<br />
imposed by the application. Data flowing along a circuit<br />
may be filtered, aggregated, compressed, or temporarily<br />
buffered by a set <strong>of</strong> services that exist in the Hourglass<br />
infrastructure. These primitives allow applications to construct<br />
powerful assemblies <strong>of</strong> sensor networks and infrastructure<br />
services. Circuits are constructed with the aid <strong>of</strong><br />
a registry that maintains information on resource availability<br />
and a circuit manager that assigns services and links<br />
to physical nodes in the network. In addition, Hourglass<br />
supports a set <strong>of</strong> in-network services such as filtering, aggregation,<br />
compression, and buffering stream data between<br />
source and destination.<br />
6.4.3 WISE<br />
WISE (Web-based Intelligent <strong>Sensor</strong> Explorer) [169, 104] is<br />
a framework to provide the services: (1) a publishing facility<br />
to allow sharing <strong>of</strong> real-time sensor data on the Web;<br />
(2) a search mechanism to enable unsolicited users to discover<br />
relevant sensors; and (3) an intelligent browser to<br />
provide the user interface to view, analyze, and query the<br />
sensor data streams in intelligible ways. The future Internet,<br />
where innumerable sensing systems will be deployed<br />
by numerous publishers, exposes different data which can<br />
be shared freely with a wide range <strong>of</strong> unsolicited users,<br />
much like the way web pages are publicly shared today.<br />
The Web Services approach is taken in WISE, because this<br />
technology has become mature, with well-defined specifications.<br />
Unlike existing work, the WISE environment is<br />
not a sensor database management system. Rather, it is<br />
an extension to the Web to enable exchange <strong>of</strong> sensor data<br />
and sharing <strong>of</strong> sensor applications. A summary <strong>of</strong> the differences<br />
between the current database approach and the<br />
proposed environment is shown in Fig.33.<br />
Figure 33: <strong>Sensor</strong> DB Management Systems and<br />
WISE<br />
(from [169])<br />
Fig.34 shows a high level WISE environment. To publish<br />
the data, the geographers provide relevant metadata for<br />
their sensors; and a service description as well as a WSDL<br />
file is automatically created on a <strong>Sensor</strong> Data Server (SDS)<br />
to hold the metadata. The service description is then uploaded<br />
to a UDDI registry. Sometime later, a biologist<br />
looking for related sensors enters search criteria into a local<br />
<strong>Sensor</strong> Data Browser (SDB). This s<strong>of</strong>tware connects to<br />
the UDDI registry and looks for relevant service descriptions.<br />
As the browser displays a list <strong>of</strong> relevant service<br />
descriptions on the screen, the biologist identifies the desired<br />
sensor and clicks on it. In response, the browser<br />
interacts with the SDS using the operations defined in a<br />
<strong>Sensor</strong> Stream Control Protocol (SSCP). As the browser<br />
gets the real-time stream using a <strong>Sensor</strong> Stream Transport<br />
Protocol (SSTP), it feeds the data to a Visualizer<br />
for display. The various components are described in the<br />
following subsections.<br />
6.4.4 IrisNet<br />
IrisNet [74, 162, 161] is middleware for globally distributed<br />
sensing systems. <strong>Sensor</strong>s themselves are resourceful and<br />
capable <strong>of</strong> providing dense sensor data such as video<br />
streams. The project follows a traditional two tier architecture,<br />
where sensor nodes are the leaves and servers<br />
are the core. IrisNet takes the design approach <strong>of</strong> building<br />
and querying wide area sensor databases. The system<br />
behaviour is programmable in the sense that senselets are<br />
34
Figure 34: High-level environment in Wise<br />
(from [169])<br />
placed on sensor nodes, which can filter, store, process and<br />
analyze the collected data locally. IrisNet <strong>of</strong>fers a programming<br />
interface where the service provider can easily add<br />
the new sensor service. Data are only transmitted when<br />
queried, and both query and response data are routed intelligently<br />
to the requesting user. This work deals with<br />
widely-deployed, resource-abundant, powered sensors like<br />
webcams and organizes them into a distributed database.<br />
The entire data-base is treated logically as a single XML<br />
document which is partitioned among multiple sites. The<br />
techniques proposed are effective for fragmenting and partitioning<br />
a database, routing and processing queries, and<br />
caching remote data locally. This work, however, does not<br />
consider streaming data and only works with a predefined<br />
database, i.e. all the sensors are assumed to be owned by<br />
the same organization.<br />
6.5 Agent Based Approach<br />
Frameworks for s<strong>of</strong>tware agent development within the<br />
agent community are well-developed and common; a representative<br />
example is the Java Agent Framework (JAF).<br />
The agent community has begun to consider the use <strong>of</strong><br />
agents for sensor network applications as well. In this<br />
section agent based middleware is described. Gator Tech<br />
Smart House [93] is an good example that exploits an agent<br />
technology and service oriented architecture at lower layers.<br />
The use <strong>of</strong> service oriented programmable spaces is<br />
broadening the traditional programmer model. They utilize<br />
OSGi platform building a surrogate service bundle.<br />
Smart house further specifies a programming model for<br />
smart environment embodied in a middleware. In which<br />
the implementation <strong>of</strong> a smart environment is divided into<br />
four layers, physical (sensor), sensor platform (sensor surrogate),<br />
context and knowledge (system level services) and<br />
application layers.<br />
6.5.1 <strong>Sensor</strong>ware<br />
<strong>Sensor</strong>Ware [33, 34] is a general middleware framework<br />
based on agent technology, where the mobile agent concept<br />
is exploited. Mobile control scripts in Tcl model<br />
network participants functionalities and behaviours and<br />
routing mechanisms to destination areas. Agents migrate<br />
to destination areas performing data aggregation reliably.<br />
The script can be very complex and diffusion gets slower<br />
when it reaches destination areas. <strong>Wireless</strong> ad hoc sensor<br />
networks have emerged as one <strong>of</strong> the key growth areas<br />
for wireless networking and computing <strong>technologies</strong>. So<br />
far these networks/systems have been designed with static<br />
and custom architectures for specific tasks, thus providing<br />
inflexible operation and interaction capabilities. <strong>Sensor</strong>ware’s<br />
vision is to create sensor networks that are open to<br />
multiple transient users with dynamic needs. The replication<br />
and migration <strong>of</strong> such scripts in several sensor nodes<br />
allows the dynamic deployment <strong>of</strong> distributed algorithms<br />
into the network. <strong>Sensor</strong>Ware, defines, creates, dynamically<br />
deploys, and supports such scripts. <strong>Sensor</strong>Ware is designed<br />
for iPAQ devices with megabytes <strong>of</strong> RAM. The verbose<br />
program representation and on-node Tcl interpreter<br />
can be acceptable overheads, however they are not yet on<br />
a mote.<br />
6.5.2 RUNES<br />
The project RUNES (Reconfigurable Ubiquitous <strong>Network</strong>ed<br />
Embedded Systems) [185] aims to enable the creation<br />
<strong>of</strong> large-scale, widely distributed, heterogeneous networked<br />
embedded systems that interoperate and adapt<br />
to their environments. A general goal is to provide an<br />
adaptive middleware platform and application development<br />
tools that allow programmers the flexibly to interact<br />
with the environment where necessary, whilst affording a<br />
level <strong>of</strong> abstraction that facilitates ease <strong>of</strong> application construction<br />
and use. The RUNES approach to middleware<br />
provision is to build the middleware in terms <strong>of</strong> a welldefined,<br />
language-independent component model which is<br />
supported by a minimal runtime API. The required heterogeneous<br />
realization <strong>of</strong> the component model Fig. 35, which<br />
is a local model, for various types <strong>of</strong> devices is achieved by<br />
providing different implementations <strong>of</strong> the runtime API,<br />
and by implementing components themselves in various<br />
ways. For example, on a PDA running a standard OS, components<br />
might be sets <strong>of</strong> Java classes or as Linux shared<br />
objects; whereas on a sensor motes micro controller, components<br />
might be implemented simply as segments <strong>of</strong> machine<br />
code.<br />
Figure 35: Elements <strong>of</strong> RUNES Component Model<br />
(from [185])<br />
This provides support for dynamic adaptation to changing<br />
conditions; a fundamental requirement in the contextaware<br />
scenarios typical <strong>of</strong> networked embedded systems.<br />
Moreover, the RUNES middleware reaches down into layers<br />
that typically belong to the network and the operating<br />
system, therefore providing a unified approach to configuration,<br />
deployment and reconfiguration at multiple levels<br />
<strong>of</strong> abstraction. Distribution is assumed to be built on top<br />
35
<strong>of</strong> this foundational layer. The component model itself is<br />
complemented by two further architectural elements: component<br />
frameworks and reflective meta models. A meta<br />
model can be used to manage system reconfiguration in<br />
a distributed environment. A high level view <strong>of</strong> the reconfiguration<br />
meta model is shown in Fig. 36. The meta<br />
model is based on principles <strong>of</strong> code mobility and can be<br />
used dynamically to transfer code, state and data between<br />
RUNES nodes.<br />
Figure 36: Reconfiguration Meta-Model<br />
(from [185])<br />
6.6 Centralized Approach<br />
In this section, as a contrast to the recent decentralized<br />
systems, traditional centralized sensing systems are introduced.<br />
These systems aim to support specific applications<br />
such as location systems.<br />
6.6.1 Active BAT<br />
Sentient computing is a type <strong>of</strong> ubiquitous computing<br />
which uses sensors to perceive its environment and react<br />
accordingly. A use <strong>of</strong> the sensors is to construct a world<br />
model, which allows location-aware or context-aware applications<br />
to be constructed. One <strong>research</strong> prototype <strong>of</strong> a<br />
sentient computing system was the work at AT&T Laboratories<br />
in the 1990s and the <strong>research</strong> continues at our<br />
Computer Laboratory by means <strong>of</strong> the Active BAT system<br />
[84]. This is a low power, wireless, indoor location<br />
system accurate up to 3cm. It uses an ultrasound time-<strong>of</strong>light<br />
trilateration technique to provide accurate physical<br />
positioning.<br />
Mobile transmitter<br />
(BAT)<br />
Ceiling<br />
Figure 37: Active BAT<br />
Fixed receivers<br />
Ultrasonic transponder<br />
Measure pulse time-<strong>of</strong>-flight<br />
Radio synchronised<br />
Users and objects carry Active BAT tags. In response to<br />
a request that the controller sends via short-range radio, a<br />
BAT emits an ultrasonic pulse to a grid <strong>of</strong> ceiling mounted<br />
receivers. At the same time that the controller sends the<br />
radio frequency request packet, it also sends a synchronized<br />
reset signal to the ceiling sensors using a wired serial<br />
network. Each ceiling sensor measures the time interval<br />
from reset to ultrasonic pulse arrival and computes its distance<br />
from the BAT. The local controller then forwards<br />
the distance measurements to a central controller, which<br />
performs the trilateration computation. Statistical pruning<br />
eliminates erroneous sensor measurements caused by a<br />
ceiling sensor hearing a reflected ultrasound pulse instead<br />
<strong>of</strong> one that travelled along the direct path from the BAT<br />
to the sensor. The SPIRIT (SPatially Indexed Resource<br />
Identification and Tracking) [84] provides a platform for<br />
maintaining spatial context based on raw location information<br />
derived from the Active BAT location system. It<br />
uses CORBA to access information and spatial indexing<br />
to deliver high-level events such as ’Alice has entered the<br />
kitchen’ to listening context aware applications. SPIRIT<br />
models the physical world in a bottom up manner, translating<br />
absolute location events for objects into relative location<br />
events, associating a set <strong>of</strong> spaces with a given object<br />
and calculating containment and overlap relationships<br />
among such spaces, by means <strong>of</strong> a scalable spatial indexing<br />
algorithm. However, this bottom-up approach is not<br />
as powerful in expressing contextual situations.<br />
6.6.2 SCAFOS<br />
SCAFOS [121] is a framework summarizing a vast rate <strong>of</strong><br />
low level sensor data into forms which can be used by highlevel<br />
applications. SCAFOS addresses similar problems to<br />
macroprogramming. It is based on the Active BAT, thus<br />
data comes from the centralized database, where sensor<br />
data is received from the Active BAT system. Primitive<br />
events, especially those arising from sensors, e.g., that a<br />
user is at position (x; y; z), are too low level to be meaningful<br />
to applications. Existing models for creating higherlevel,<br />
more meaningful events, from low level events, are<br />
insufficient to capture the user’s intuition about abstract<br />
system state. Furthermore, there is a strong need for usercentred<br />
application development, without undue programming<br />
overhead. Applications need to be created dynamically,<br />
and remain functional, independently <strong>of</strong> the distributed<br />
nature and heterogeneity <strong>of</strong> sensor driven systems<br />
and even while the user is mobile. Both issues combined<br />
necessitate an alternative model for developing applications<br />
in a real-time, distributed sensor driven environment<br />
such as Sentient Computing. SCAFOS provides powerful<br />
tools for inferring abstract knowledge from low level, concrete<br />
knowledge, verifying its correctness and estimating<br />
its likelihood. Such tools include Hidden Markov Models,<br />
a Bayesian Classifier, Temporal First Order Logic, the<br />
theorem prover SPASS and the production system CLIPS.<br />
Secondly, SCAFOS provides support for simple application<br />
development through the XML-based SCALA language.<br />
By introducing the new concept <strong>of</strong> a generalized event, an<br />
abstract event, defined as a notification <strong>of</strong> changes in abstract<br />
system state, expressiveness compatible with human<br />
intuition is achieved when using SCALA. The applications<br />
that are created through SCALA are automatically integrated<br />
and operate seamlessly in the various heterogeneous<br />
components <strong>of</strong> the context aware environment even while<br />
the user is mobile or when new entities or other applications<br />
are added or removed in SCAFOS.<br />
7. FUTURE CHALLENGES<br />
In this section, we describe the future perspectives for <strong>research</strong><br />
in WSNs.<br />
Hardware: Hardware <strong>research</strong> seems to be slowing down.<br />
Based on prototype hardware from current <strong>research</strong>, interest<br />
is moving to the development <strong>of</strong> commercial products.<br />
36
Figure 38: SOA Model<br />
Research interests are moving towards more applied areas.<br />
The world will surely change if Motes in millimeter squares,<br />
like smart dust, are achieved. However, the miniaturization<br />
<strong>of</strong> Mote by MEMS has yet to be realized and is by<br />
no means guaranteed. Contributions to sensor miniaturisation<br />
from Europe are desirable.<br />
7.1 System Architecture<br />
A great deal <strong>of</strong> <strong>research</strong> on system architecture is predicated<br />
on hardware assumptions (e.g. resource constrained<br />
devices such as Mote). Hardware progress will be dramatic,<br />
as in the past, so there should be more <strong>research</strong><br />
targeting the support <strong>of</strong> less resource-constrained hardware<br />
and focussing on building intelligent systems. For<br />
example, Batlin et al. [22] propose dynamic task allocation<br />
that applies <strong>research</strong> from intelligent robots and multi<br />
agent systems. Capturing the concept <strong>of</strong> WSNs in a wider<br />
view is important in expanding the sensor network <strong>research</strong><br />
area. Another example is that the synchronization update<br />
rules, led by a system <strong>of</strong> pulse-coupled oscillators, realizes<br />
the synchronization <strong>of</strong> states at all nodes [99]. Also, recent<br />
rapid progression <strong>of</strong> macroprogramming includes the<br />
use <strong>of</strong> amorphous computing. These new movements show<br />
understanding <strong>of</strong> WSN’s characteristics, especially, amorphous<br />
computing demonstrates system coordination. The<br />
current stage <strong>of</strong> amorphous computing has not yet been<br />
integrated with programming, but future progress is likely<br />
to be significant.<br />
7.2 <strong>Network</strong><br />
There is a lot <strong>of</strong> <strong>research</strong> that modifies and enhances existing<br />
network technology to adapt to the resource constrained<br />
sensor network environments. The recent ongoing<br />
macroprogramming <strong>research</strong> makes us reconsider the<br />
necessity <strong>of</strong> general network routing mechanisms, which<br />
may not be required under some macroprogramming. The<br />
goal <strong>of</strong> network communication and control is to provide<br />
simple and versatile abstractions for communication, data<br />
dissemination, and remote execution. The framework for<br />
network coordination can be used to implement algorithms<br />
for leader election, group management, and in-network aggregation.<br />
Thus, we expect to see not only an abstraction<br />
<strong>of</strong> networks but also abstractions <strong>of</strong> sensor data, application’s<br />
purposes, and so forth, that provide task-oriented<br />
communication mechanisms.<br />
7.3 Middleware<br />
The majority <strong>of</strong> current middleware for WSNs is based on<br />
the data centric approach, and a fundamental idea naturally<br />
came from database management systems (DBMS).<br />
The database community has taken the view that declarative<br />
programming, through a query language, provides<br />
the right level <strong>of</strong> abstraction for accessing, filtering, and<br />
processing relational data. The middlewares that take a<br />
database approach such as [146] provides an interface for<br />
data collection but they do not provide general purpose<br />
distributed computation. For example, it is complex to<br />
implement arbitrary aggregation and filtering operators<br />
and communication patterns with query languages. Thus,<br />
more general interfaces for global network programming<br />
are desirable.<br />
The evolution <strong>of</strong> DBMS as a middleware in wired networks<br />
led to CORBA and Web Services, that focus on<br />
the interfaces with other systems. This predicts that the<br />
evolution <strong>of</strong> middleware for WSNs will be towards an integrated<br />
application service. Research for sensor networks<br />
with different architectures, to operate cooperatively, will<br />
become important in the future. Moreover, standardization<br />
problems that past middleware technology faced will<br />
be repeated in WSNs.<br />
A service is an interesting concept to be applied in<br />
WSNs. It may be a role on a sensor node, or a function<br />
providing location information. Services allow cascading<br />
without previous knowledge <strong>of</strong> each other, and enable the<br />
solution <strong>of</strong> complex tasks, where functional blocks are separated<br />
in order to increase flexibility and enhance scalability<br />
<strong>of</strong> sensor network node functions. A key issue is to<br />
separate the s<strong>of</strong>tware from the underlying hardware and<br />
to divide the s<strong>of</strong>tware into functional blocks with a proper<br />
size and functionality.<br />
Thus far, much current sensor network <strong>research</strong> has been<br />
applied to environment monitoring systems, where the environments<br />
are extreme. However, sensor networks will be<br />
part <strong>of</strong> our daily life in future and we must control such<br />
surroundings (e.g. as smart spaces). Middleware <strong>research</strong><br />
is to control sensor networks in a daily scenario but interaction<br />
with the user has not yet been addressed. Estrin and<br />
others [69] summarize two design ideas below, which point<br />
out the importance <strong>of</strong> data centric and application specific<br />
design. They insist that the design principles should be<br />
fundamentally different from existing computer network<br />
design because <strong>of</strong> resource constraints in sensor network<br />
environments.<br />
• Data Centric: More consideration <strong>of</strong> the manage-<br />
37
ment <strong>of</strong> sensor data than only node management.<br />
• Application Specific: Consideration <strong>of</strong> application<br />
environments, physically and socially.<br />
Here, middleware technology based on the Human Centric<br />
approach to support our daily life is desirable. Such<br />
human centric middleware requires even more intelligent<br />
information processing systems. Current <strong>research</strong> on the<br />
allocation <strong>of</strong> a dynamic role to the sensor node is only a beginning<br />
<strong>of</strong> applying an intelligent, decentralized algorithm<br />
in this <strong>research</strong> area.<br />
There have been many efforts to provide programming<br />
paradigms or virtual machines, and progress in macroprogramming<br />
is significant. However, macroprogramming<br />
may be a approach or a technology to support and realize<br />
programming paradigms for WSNs but is not essential.<br />
Many existing middlewares take different approaches<br />
such as Spatial Programming using smart messages [30].<br />
Thus far, these two <strong>research</strong> communities are not working<br />
together. An appropriate integration <strong>of</strong> the traditional<br />
approach <strong>of</strong> middleware with new <strong>technologies</strong> will be desirable<br />
instead each technology attempting to support a<br />
specific application scenario. In other words, middleware’s<br />
mission is creating new paradigms to combine new <strong>technologies</strong><br />
for WSNs.<br />
Much <strong>research</strong> for middleware currently focusses on providing<br />
generic programming paradigms to ease application<br />
developers’ tasks, such as data processing or object monitoring.<br />
In future, WSNs will carry high bandwidth, low<br />
latency streaming data from a variety <strong>of</strong> sources, such as<br />
cameras and multimedia. This requires sophisticated innetwork<br />
processing (e.g. image fusion and object tracking).<br />
Providing various data fusion techniques in a generic manner<br />
will be a task <strong>of</strong> middleware for WSNs.<br />
To realize a vision <strong>of</strong> the sensor network as a ”Nerve<br />
system buried under the building and the city”, integrating<br />
intelligent distributed computing with middleware is<br />
necessary, and middleware <strong>research</strong> will become more important<br />
in the future.<br />
7.4 Service Oriented Architecture<br />
There has been an effort to architect middleware for WSNs<br />
using service oriented architecture (SOA) (RUNES [185],<br />
P2PComp [70], and one.world [77]). In this section, we<br />
describe a middleware architecture that envisages an integrated<br />
service oriented architecture. The middleware for<br />
WSNs should <strong>of</strong>fer an open platform for users to utilize<br />
seamlessly various resources in physically interacting environments,<br />
unlike the traditional closed network setting for<br />
specific applications.<br />
When designing the middleware for sensor networks, heterogeneity<br />
<strong>of</strong> information over global distributed systems<br />
must be considered. The sensed information by the devices<br />
is aggregated and combined into higher-level information<br />
or knowledge and may be used as context. The<br />
publish/subscribe paradigm becomes powerful in such environments.<br />
For example, a publisher node in event broker<br />
middleware can act as a gateway from a WSN, performing<br />
data aggregation and distributing filtered data to other<br />
networks based on contents. Event broker nodes that <strong>of</strong>fer<br />
data aggregation services can efficiently coordinate data<br />
flow. Especially with the distributed event-based middleware<br />
over peer-to-peer (P2P) overlay network environments,<br />
the construction <strong>of</strong> event broker grids will extend<br />
the seamless messaging capability over scalable heterogeneous<br />
network environments. Event Correlation will be a<br />
multi-step operation from event sources to the final subscribers,<br />
combining information collected by wireless devices<br />
into higher-level information. Service Oriented Architecture<br />
(SOA) is a well proven concept for distributed computing<br />
environments. It decomposes applications, data,<br />
and middleware into reusable services that can be flexibly<br />
combined in a loosely coupled manner. SOA maintains<br />
agents that act as s<strong>of</strong>tware services performing well-defined<br />
operations. This paradigm enables the users to be concerned<br />
only with the operational description <strong>of</strong> the service.<br />
All services have a network addressable interface and communication<br />
via standard protocols and data formats (i.e.,<br />
messages). SOA can deal with aspects <strong>of</strong> heterogeneity,<br />
mobility and adaptation, and <strong>of</strong>fers seamless integration<br />
<strong>of</strong> wired and wireless environments.<br />
Generic service elements are context model, trust and<br />
privacy, mobile data management, configuration, service<br />
discovery, event notification, and the following are the key<br />
issues addressed for our design.<br />
• Flexible discovery mechanisms for ad hoc networks,<br />
which provide the reliable discovery <strong>of</strong> newly or sporadically<br />
available services.<br />
• Support for adaptive communication modes, which<br />
provides an abstract communication model underlying<br />
different transport protocols. Notably, eventbased<br />
communication is suitable for asynchronous<br />
communication.<br />
Peer-to-peer networks and grids <strong>of</strong>fer promising paradigms<br />
for developing efficient distributed systems and applications.<br />
Grids are essentially P2P systems. The grid community<br />
recently initiated a development effort to align grid<br />
<strong>technologies</strong> with Web Services: the Open Grid Services<br />
Architecture (OGSA) [166] lets developers integrate services<br />
and resources across distributed, heterogeneous, dynamic<br />
environments and communities. The OGSA model<br />
adopts the Web Services Description Language (WSDL)<br />
to define the concept <strong>of</strong> a grid service using principles and<br />
<strong>technologies</strong> from both the grid and Web Services. The architecture<br />
defines standard mechanisms for creating, naming,<br />
and discovering persistent and transient grid-service<br />
instances. The convergence <strong>of</strong> P2P and Grid computing<br />
is a natural outcome <strong>of</strong> the recent evolution <strong>of</strong> distributed<br />
systems, because many <strong>of</strong> the challenging standards issues<br />
are quite closely related.<br />
The Open Services Gateway Initiative (OSGi) [167] is<br />
focused on the application layer and open to almost any<br />
protocol, transport or device layers. The three key aspects<br />
<strong>of</strong> the OSGi mission are multiple services, wide area networks,<br />
and local networks and devices. Key benefits <strong>of</strong><br />
the OSGi are that it is platform independent and application<br />
independent. In other words, the OSGi specifies an<br />
open, independent technology, which can link diverse devices<br />
in the local home network. The central component<br />
<strong>of</strong> the OSGi specification effort is the services gateway.<br />
The services gateway enables, consolidates, and manages<br />
voice, data, Internet, and multimedia communications to<br />
and from the home, <strong>of</strong>fice and other locations.<br />
7.4.1 Service Semantics<br />
Service semantics is an important issue, in addition to the<br />
service definition, so that services can be coordinated in the<br />
space. The model <strong>of</strong> the real world is <strong>of</strong> a collection <strong>of</strong> objects,<br />
where objects maintain state using sensor data, and<br />
38
Service Composition Open APIs<br />
Service<br />
Service Layer<br />
Service Service . . . Service<br />
OSGi Framework<br />
Service<br />
Service<br />
Management<br />
Layer<br />
(Service Semantics)<br />
Event Type<br />
Event Broker Layer<br />
Event Type<br />
OSGi Service<br />
Definition<br />
. . .<br />
<strong>Sensor</strong> Component Layer<br />
OSGi Service<br />
Definition<br />
Physical Layer<br />
Figure 39: Middleware Architecture with <strong>Wireless</strong> <strong>Sensor</strong> Data<br />
applications’ queries and subscriptions are a relevant sets<br />
<strong>of</strong> objects. Fig.40 shows an example <strong>of</strong> object mappings<br />
among applications, middleware and sensor components.<br />
Applications<br />
Service objects<br />
<strong>Sensor</strong>s<br />
Building<br />
Maintenance<br />
Temperature<br />
Emergency<br />
Alert<br />
System<br />
Position<br />
Social<br />
<strong>Network</strong><br />
Movie Forum<br />
Contact<br />
Person<br />
“Andy”<br />
Resource<br />
use<br />
Figure 40: Mapping Real World to Applications<br />
Objects are tightly linked to event types in an event<br />
broker. Exploiting semantics will let the pervasive space’s<br />
functionality and behaviour develop and evolve. Space specific<br />
ontologies will enable such exploitation <strong>of</strong> knowledge<br />
and semantics in ubiquitous computing.<br />
7.4.2 Layer Functionality<br />
The brief functionality <strong>of</strong> each layer is shown below (see<br />
Fig.39).<br />
Physical Layer: This layer consists <strong>of</strong> the various sensors<br />
and actuators.<br />
<strong>Sensor</strong> Component Layer: A sensor component layer<br />
can communicate with a wide variety <strong>of</strong> devices, sensors,<br />
actuators, and gateways and represent them to the rest<br />
<strong>of</strong> the middleware in a uniform way. A sensor component<br />
effectively converts any sensor or actuator in the physical<br />
layer to a s<strong>of</strong>tware service that can be programmed or<br />
composed into other services. Developers can thus define<br />
services without having to understand the physical world.<br />
Decoupling sensors and actuators from sensor platforms<br />
ensures openness and makes it possible to introduce new<br />
technology as it becomes available.<br />
Event Broker Layer: This layer is a communication<br />
layer between <strong>Sensor</strong> components and the Service layer.<br />
It supports asynchronous communication using the publish/subscribe<br />
paradigm. Event filtering, aggregation, and<br />
the correlation service is a part <strong>of</strong> this layer.<br />
Service Layer: This layer contains the Open Services<br />
Gateway Initiative (OSGi) framework, which maintains<br />
leases <strong>of</strong> activated services. Basic services represent the<br />
physical world through sensor platforms, which store service<br />
bundle definitions for any sensor or actuator represented<br />
in the OSGi framework. A sensor component registers<br />
itself with the service layer by sending its OSGi service<br />
definition. Application developers create composite<br />
services via the Service Management Layer’s functions to<br />
search existing services and using other services to compose<br />
new OSGi services. Canned services, which may be<br />
useful globally, could create a standard library.<br />
A context is represented as an OSGi service composition,<br />
where the context can be obtained. The context engine<br />
is responsible for detecting, and possibly recovering from,<br />
such states.<br />
Service Management Layer: This layer contains an<br />
ontology <strong>of</strong> the various services <strong>of</strong>fered, and the appliances<br />
and devices connected to the system. Service advertisement<br />
and discovery use service definitions and semantics<br />
to register or discover a service. Service definitions are<br />
tightly related to the event types used for communication<br />
in the Event Broker Layer including composite formats.<br />
The reasoning engine determines whether certain composite<br />
services are available.<br />
Application Interface: An application interface provides<br />
open interfaces for applications to manage services,<br />
including the management <strong>of</strong> contexts.<br />
8. CONCLUSIONS<br />
Middleware has been a key technology in supporting distributed<br />
systems by providing common communication<br />
mechanisms. For WSN applications, distributed programming<br />
abstractions and middleware will be important.<br />
However, to support resource-constrained devices, it may<br />
not be sufficient to extend existing approaches. Heavyweight<br />
middleware, with overloaded abstraction layers, will<br />
exceed the capabilities <strong>of</strong> WSNs. The structure <strong>of</strong> the<br />
WSN may also be highly application dependent, and many<br />
services are not independent <strong>of</strong> the application semantics<br />
(e.g. application specific data processing combined with<br />
data routing). Data aggregation, event correlation, realtime,<br />
asynchronous and intermittent communication are<br />
additional challenges.<br />
Design challenges for WSN applications may be categorized<br />
as follows. First, wireless networking: given the<br />
hardware limitations and physical environment in which<br />
39
the nodes must operate, along with application level requirements.<br />
The algorithms and protocols must be designed<br />
to provide a robust and energy efficient communication<br />
mechanism. Design <strong>of</strong> physical layer methods such<br />
as modulation, routing issues and mobility management<br />
must be solved. Second, applications/middleware: at the<br />
application/middleware layer, processes aim to create effective<br />
new capabilities for efficient extraction, manipulation,<br />
transport, and representation <strong>of</strong> information derived<br />
from sensor data. In most applications, WSNs have various<br />
functional components: detection and data collection,<br />
signal processing, data aggregation, and notification. By<br />
integrating sensing, signal processing, and communication<br />
functions, a WSN provides a natural platform for hierarchical<br />
information processing. It allows information to be<br />
integrated at different levels <strong>of</strong> abstraction, ranging from<br />
detailed microscopic examination <strong>of</strong> specific targets to a<br />
detailed view <strong>of</strong> the aggregate behaviour <strong>of</strong> targets. Any<br />
events in the environment can be processed on three levels:<br />
node, local neighbourhood, and global.<br />
The sensor network is an area <strong>of</strong> <strong>research</strong> where various<br />
<strong>technologies</strong> cover a wide field. However, it is not easy to<br />
coordinate these different <strong>research</strong> areas. Obtaining hardware<br />
is being improved while the development environment<br />
and management s<strong>of</strong>tware are not yet sufficient. Development<br />
is difficult without the accumulation <strong>of</strong> special knowhow<br />
on hardware and building an operating system in a<br />
sensor node. Building hardware, s<strong>of</strong>tware, and the middleware<br />
as reliable base components will be a key issue to<br />
communicate precisely among <strong>research</strong>ers, which will contribute<br />
to dramatic progress in sensor network <strong>research</strong>.<br />
We believe that the issues described in this paper touch<br />
on several directions for required <strong>research</strong> and <strong>technologies</strong><br />
for WSN applications. Their applications and potential<br />
benefits are wide-ranging and could ultimately break<br />
the barrier between the physical and digital worlds. There<br />
are huge obstacles to overcome, not only in terms <strong>of</strong> technology,<br />
but also in sociology, security and ecology before<br />
WSNs become the reality.<br />
Acknowledgement. This <strong>research</strong> is funded by EP-<br />
SRC (Engineering and Physical Sciences Research Council)<br />
under grant GR/557303. We would like to thank<br />
Jon Crowcr<strong>of</strong>t and Andrea Passarella (University <strong>of</strong> Cambridge)<br />
for constructive comments and suggestions.<br />
9. REFERENCES<br />
[1] Abdelzaher, T. et al. EnviroTrack: Towards an<br />
environmental computing paradigm for distributed<br />
sensor networks. Proc. ICDCS, 2004.<br />
[2] Abelson, H. et al. Amorphous Computing. CACM,<br />
43(5):7482, 2000.<br />
[3] Abrach, H. et al. MANTIS: system support for<br />
multimodAl NeTworks <strong>of</strong> in-situ sensors. Proc. WSNA,<br />
2003.<br />
[4] Al-Karaki, J.N. et al. Routing Techniques in <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s: A Survey. IEEE <strong>Wireless</strong><br />
Communications, Vol. 11, No. 6, pp.6-28, 2004.<br />
[5] Akkaya, K. et al. An Energy-Aware QoS Routing<br />
Protocol for <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc. MWN,<br />
2003.<br />
[6] Akkaya, K. et al. A <strong>survey</strong> on routing protocols for<br />
wireless sensor networks. Elsevier Ad Hoc <strong>Network</strong><br />
Journal, 2004.<br />
[7] Akyildiz, I. et al. <strong>Wireless</strong> sensor and actor networks:<br />
<strong>research</strong> challenges. Elsevier Ad Hoc <strong>Network</strong>s, 2,<br />
pp.351-367, 2004.<br />
[8] Akyildiz, I. et al. <strong>Wireless</strong> sensor networks: a <strong>survey</strong>.<br />
Elsevier Computer <strong>Network</strong>s, 38, 2002.<br />
[9] Akyildiz, I. et al. On Exploiting Spatial and Temporal<br />
Correlation. Proc. WiOpt, 2004.<br />
[10] Akyildiz, I. et al. A Survey on <strong>Sensor</strong> <strong>Network</strong>s. IEEE<br />
Communications Magazine, 2002.<br />
[11] Alan, C. et al. Communicating real-time state machines.<br />
IEEE Trans. S<strong>of</strong>tw. Eng., vol. 18, no. 9, pp. 805816,<br />
1992.<br />
[12] Andre, C. et al. Representation and analysis <strong>of</strong> reactive<br />
behaviors: A synchronous approach. Proc. CESA, 1996.<br />
[13] ARGO. ARGO - Global Ocean <strong>Sensor</strong> <strong>Network</strong>.<br />
www.argo.ucsd.edu..<br />
[14] Avancha, S. et al. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Kluwer<br />
Academic/Springer Verlag Publishers, 2003.<br />
[15] Awerbuch, B. et al. An On-Demand Secure Routing<br />
Protocol Resilent to Byzantine Failures. Proc. ACM<br />
Workshop on <strong>Wireless</strong> Security (WiSe), 2002.<br />
[16] Bakshi, A. et al. Algorithm design and synthesis for<br />
wireless sensor networks. Proc. ICPP, 2004.<br />
[17] Bakshi, A. et al. The Abstract Task Graph: A<br />
Methodology for Architecture-Independent<br />
Programming <strong>of</strong> <strong>Network</strong>ed <strong>Sensor</strong> Systems. Proc.<br />
EESR, 2005.<br />
[18] Bakshi, A. et al. System-level Support for<br />
Macroprogramming <strong>of</strong> <strong>Network</strong>ed Sensing Applications.<br />
Proc. Pervasive, 2005.<br />
[19] Balarin, F. et al. Hardware-s<strong>of</strong>tware co-design <strong>of</strong><br />
embedded systems: the POLIS approach. Kluwer<br />
Academic Publishers, 1997.<br />
[20] Baldus, H. et al. Reliable Set-Up <strong>of</strong> Medical<br />
Body-<strong>Sensor</strong> <strong>Network</strong>s. Proc. EWSN, 2004.<br />
[21] Basagni, S. et al. Secure Pebblenets. Proc. MobiHoc,<br />
2001.<br />
[22] Batalin, M.A. et al. Call and response: experiments in<br />
sampling the environment. Proc. SenSys, 2004.<br />
[23] Beckwith, R. et al. Pervasive Computing and Proactive<br />
Agriculture. Proc. PERVASIVE, 2004.<br />
[24] Bergamo, P. et al. Collaborative <strong>Sensor</strong> <strong>Network</strong>ing<br />
Towards Real-Time Acoustical Beamforming in<br />
Free-Space and Limited Reverberance. IEEE<br />
Transactions on Mobile Computing, Vol.3, No.3, pp.<br />
211-224, 2004.<br />
[25] Beutel, J. et al. Prototyping <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong><br />
Applications with BTnodes. Proc. EWSN, 2004.<br />
[26] Bhargava, S. et al. Security Enhancements in AODV<br />
Protocol for <strong>Wireless</strong> Ad Hoc <strong>Network</strong>s. Proc. Vehicular<br />
Technology Conference , 2001.<br />
[27] Biegel, G. and Cahill, V. A Framework for Developing<br />
Mobile, Context-aware Applications. Proc. PerCom,<br />
2004.<br />
[28] Blumenthal, J. et al. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s - New<br />
Challenges in S<strong>of</strong>tware Engineering. Proc. ETFA, 2003.<br />
[29] Blumenthal, J. et al. SeNeTs - Test and Validation<br />
Environment for Applications in Large-Scale <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s. Proc. INDIN, 2004.<br />
[30] Borcea, C. et al. Spatial programming using smart<br />
messages: Design and implementation. Proc. ICDCS,<br />
2004.<br />
[31] Bonfils, B. et al. Adaptive and decentralized operator<br />
placement for in-network query processing. Proc. IPSN,<br />
2003.<br />
[32] Bonnet, P. et al. Towards <strong>Sensor</strong> Database Systems.<br />
Proc. MDM, 2001.<br />
[33] Boulis, A. et al. Design and implementation <strong>of</strong> a<br />
framework for efficient and programmable sensor<br />
networks. Proc. MobiSys, 2003.<br />
[34] Boulis, A. et al. Aggregation in sensor networks: An<br />
energy - accuracy trade<strong>of</strong>f. Proc. IEEE workshop on<br />
<strong>Sensor</strong> <strong>Network</strong> Protocols and Applications, 2003.<br />
[35] Boussinot, F. et al. The ESTEREL Language. Proc.<br />
40
IEEE, vol. 79, no. 9, pp. 12931304, 1991.<br />
[36] Brennan, S.M. et al. Radiation Detection with<br />
Distributed <strong>Sensor</strong> <strong>Network</strong>s. IEEE Computer, Vol. 37,<br />
No. 8, pp. 57-59, 2004.<br />
[37] Braginsky, D. et al. Rumor Routing Algorithm for<br />
<strong>Sensor</strong> <strong>Network</strong>s. Proc. WSNA, 2002.<br />
[38] Britton, M. et al. The SECOAS project: Development<br />
<strong>of</strong> a self organizing,wireless sensor network for<br />
environmental monitoring. Proc. workshop SANPA,<br />
2004.<br />
[39] Bulusu, N. et al. Self-Configuration Localization<br />
Systems. PhD Dissertation, UCLA, 2002.<br />
[40] Burrell, J. et al. Vineyard Computing: <strong>Sensor</strong> <strong>Network</strong>s<br />
in Agricultural Production. IEEE Pervasive Computing,<br />
Vol.3, No.1, pp. 38-45, 2004.<br />
[41] Butler, Z. et al. Event-Based Motion Control for<br />
Mobile-<strong>Sensor</strong> <strong>Network</strong>s. IEEE Pervasive Computing,<br />
Vol.2, No.4, pp. 34-42, 2003.<br />
[42] Butler, Z. et al. <strong>Network</strong>ed Cows: Virtual Fences for<br />
Controlling Cows. WAMES, 2004.<br />
[43] Carter, S. et al. Secure Position Aided Ad hoc Routing<br />
Protocol. Proc. CCN02, 2002.<br />
[44] Cerpa, A. et al. ASCENT: Adaptive Self-Configuring<br />
sEnsor <strong>Network</strong>s Topologies. IEEE Transactions on<br />
Mobile Computing, Vol.3, No.3, pp. 272-285, 2004.<br />
[45] Chang, J.H. et al. Maximum Lifetime Routing in<br />
<strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc. ATIRP, 2000.<br />
[46] Chaudhary, S. et al. Architecture <strong>of</strong> <strong>Sensor</strong> based<br />
Agricultural Information System for Effective Planning<br />
<strong>of</strong> Farm Activities. Proc. SCC, 2004.<br />
[47] Chen,S . et al. Database-Centric Programming for<br />
Wide-Area <strong>Sensor</strong> Systems. Proc. DCOOS, 2005.<br />
[48] Chen, W. et al. Dynamic Clustering for Acoustic Target<br />
Tracking in <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. IEEE<br />
Transactions on Mobile Computing, Vol.3, No.3, pp.<br />
258-271, 2004.<br />
[49] Cheng, X. et al. TPS: A Time-Based Positioning<br />
Scheme for Outdoor <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
Infocom, 2004.<br />
[50] Cheong, E. et al. Tinygals: a programming model for<br />
event driven embedded systems. Proc. SAC, 2003.<br />
[51] Chiasserini, C.F. et al. Modeling the Performance <strong>of</strong><br />
<strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc. Infocom, 2004.<br />
[52] Chong, C. et al. <strong>Sensor</strong> <strong>Network</strong>s: Evolution,<br />
Opportunities and Challenges. Proc. IEEE, 91(8), 2003.<br />
[53] Chu, M. et al. calable Information-Driven <strong>Sensor</strong><br />
Querying and Routing for ad hoc Heterogeneous <strong>Sensor</strong><br />
<strong>Network</strong>s. International Journal <strong>of</strong> High Performance<br />
Computing Applications, 2002.<br />
[54] Costa, P. et al. The RUNES Middleware: A<br />
Reconfigurable Component-based Approach to<br />
<strong>Network</strong>ed Embedded Systems. Proc. PIMRC, 2005.<br />
[55] Culler, D. et al. Overview <strong>of</strong> <strong>Sensor</strong> <strong>Network</strong>s. IEEE<br />
Computer Magazine, August, 2004.<br />
[56] Culpepper, B.J. et al. Design and analysis <strong>of</strong> Hybrid<br />
Indirect Transmissions (HIT) for data gathering in<br />
wireless micro sensor networks. SIGMOBILE Mobile<br />
Computing and Communications Review, Vol.8, No.1,<br />
pp.6183, 2004.<br />
[57] Curino, C. et al. TinyLIME: Bridging Mobile and <strong>Sensor</strong><br />
<strong>Network</strong>s through Middleware. Proc. PerCom, 2005.<br />
[58] Dai, H. et al. TSync: a lightweight bidirectional time<br />
synchronization service for wireless sensor networks.<br />
ACM SIGMOBILE Mobile Computing and<br />
Communications Review, Vol.8, No.1, pp. 125 139,<br />
2004.<br />
[59] Dai, H. et al. ELF: an efficient log-structured flash file<br />
system for micro sensor nodes. Proc. SenSys, 2004.<br />
[60] Daniel, D. et al. Introduction to high level synthesis.<br />
IEEE Des. Test, vol. 11, no. 4, pp. 4454, 1994.<br />
[61] Demers, A. et al. The Cougar Project: a<br />
work-in-progress report. ACM SIGMOD,Vol. 32, No. 4,<br />
pp. 53-59, 2003<br />
[62] Du, W. et al. A Key Management Scheme for <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s Using Deployment Knowledge. Proc.<br />
Infocom, 2004.<br />
[63] Dunkels, . et al. Contiki - a Lightweight and Flexible<br />
Operating System for Tiny <strong>Network</strong>ed <strong>Sensor</strong>s. Proc.<br />
EmNetSI, 2004.<br />
[64] Ee, C.T. et al. Congestion control and fairness for<br />
many-to-one routing in sensor networks. Proc. SenSys,<br />
2004.<br />
[65] Elson, J. et al. Time Synchronization for <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s. Proc. Int. Parallel and Distributed<br />
Processing Symposium, 2001.<br />
[66] Elson, J. et al. <strong>Sensor</strong> networks: A bridge to the<br />
physical worlds. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s Book,<br />
Kluwer Academic Publishers, 2004.<br />
[67] Enz, C.C. et al. WiseNET: An Ultralow Power <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong> Solution. IEEE Computer, Vol. 37, No.<br />
8, pp.62-70,2004.<br />
[68] Essa, I.A. et al. Ubiquitous Sensing for Smart and<br />
Aware Environments. IEEE Personal Communications,<br />
pp.47-49, 2000.<br />
[69] Estrin, D. et al. Next Century Challenges: Scalable<br />
Coordination in <strong>Sensor</strong> <strong>Network</strong>s. Proc. MobiCom, 1999.<br />
[70] Ferscha, A. et al. A Light-Weight Component Model for<br />
Peer-to-Peer Applications. Proc. MDC, 2004.<br />
[71] Fang, Q. et al. Locating and Bypassing Routing Holes in<br />
<strong>Sensor</strong> <strong>Network</strong>s. Proc. Infocom, 2004.<br />
[72] Gay, D. et al. The nesC language: A holistic approach<br />
to networked embedded systems. Proc. SIGPLAN, 2003.<br />
[73] Gehrke, J. et al. Query Processing in <strong>Sensor</strong> <strong>Network</strong>s.<br />
IEEE Pervasive Computing, Vol.3, No.1, pp. 46-55,<br />
2004.<br />
[74] Gibbons, P.B. et al. IrisNet: An Architecture for a<br />
Worldwide <strong>Sensor</strong> Web. IEEE Pervasive Computing,<br />
Vol.2, No.4, pp. 22-33, 2003.<br />
[75] Greenstein, B. et al. A distributed index for features in<br />
sensor networks. Proc. SNPA, 2003.<br />
[76] Greenstein, B. et al. A sensor network application<br />
construction kit (SNACK). Proc. SenSys, 2004.<br />
[77] Grimm, T. et al. A system architecture for pervasive<br />
computing. Proc. ACM SIGOPS European Workshop,<br />
2000.<br />
[78] Gui, C. et al. Power conservation and quality <strong>of</strong><br />
surveillance in target tracking sensor networks. Proc.<br />
MobiCom, 2004.<br />
[79] Gummadi, R. et al. Macro-programming <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s using Kairos. Proc. DCOSS, 2005.<br />
[80] Han, Q. et al. AutoSeC: An Integrated Middleware<br />
Framework for Dynamic Service Brokering. IEEE<br />
Distributed Systems Online, Vol.2, No.7, 2001.<br />
[81] Han, C. et al. A dynamic operating system for sensor<br />
nodes. Proc. MobiSys, 2005.<br />
[82] Han, Q. et al. Energy Efficient Data Collection in<br />
Distributed <strong>Sensor</strong> Environments. Proc. ICDCS, 2004.<br />
[83] Harel, D. et al. Statecharts: A visual formalism for<br />
complex systems. Science <strong>of</strong> Computer Programming,<br />
vol. 8, no. 3, pp. 231274, 6 1987.<br />
[84] Harter, A. et al. The Anatomy <strong>of</strong> a Context-Aware<br />
Application. Proc. MobiCom, 1999.<br />
[85] Harvard Univ .<br />
http://www.eecs.harvard.edu/ werner/projects/volcano/.<br />
[86] He, T. et al. SPEED: A stateless protocol for real-time<br />
communication in sensor networks. Proc. ICDCS, 2003.<br />
[87] He, T. et al. Energy-efficient surveillance system using<br />
wireless sensor networks. Proc. MobiSys, 2004.<br />
[88] Heidemann, J. et al. Building efficient wireless sensor<br />
networks with low-level naming. Proc. ACM SOSP,<br />
2001.<br />
[89] Heinzelman, W. et al. Middleware to support sensor<br />
network applications. IEEE <strong>Network</strong>, Vol. 18, No.1,<br />
pp.6-14, 2004.<br />
41
[90] Heizelman, W. et al. Adaptive protocols for information<br />
dissemination in wireless sensor networks. Proc.<br />
Mobicom, 1999.<br />
[91] Heinzelman, W. et al. nergy-efficient communication<br />
protocol for wireless sensor networks. Proc. the Hawaii<br />
International Conference System Sciences, 2000.<br />
[92] Heizelman, W. et al. An application-specific protocol<br />
architecture for wireless microsensor networks. IEEE<br />
Transactions on <strong>Wireless</strong> Communications, Vol. 1,<br />
No.4, pp. 660-670, 2002.<br />
[93] Helal, S. et al. The Gator Tech Smart House: A<br />
Programmable Pervasive Space. IEEE Computer, Vol.<br />
38, No. 3, pp. 50-60, 2005.<br />
[94] Hellerstein, J.M. et al. eyond Average:Toward<br />
Sophisticated Sensing with Queries. Proc. IPSN, 2003.<br />
[95] Helmy, A. et al. CAPTURE: location-free<br />
contact-assisted power-efficient query resolution for<br />
sensor networks. ACM SIGMOBILE Mobile Computing<br />
and Communications Review, Vol.8, No.1, pp. 27 47,<br />
2004.<br />
[96] Hill, J. et al. System architecture directions for<br />
networked sensors. Proc. ACM Int. Conf.on<br />
Architectural Support for Programming Languages and<br />
Operating Systems, 2000.<br />
[97] Hoblos, G. et al. Optimal design <strong>of</strong> fault tolerant sensor<br />
networks. Proc. IEEE EEE International Conference on<br />
Control Applications, 2000.<br />
[98] Holmquist, L.E. et al. Building Intelligent Environments<br />
with Smart-Its. IEEE Computer Graphics and<br />
Applications, vol.24 No.1, pp. 56-64, 2004.<br />
[99] Hong, Y.W. et al. Time synchronization and reach-back<br />
communications with pulse-coupled oscillators for UWB.<br />
Proc. Ultra Wideband Systems and Technologies, 2003.<br />
[100] Hu, Y. et al. SEAD: Secure Ef.cient Distance Vector<br />
Routing for Mobile <strong>Wireless</strong> Ad Hoc <strong>Network</strong>s. Proc.<br />
WMCSA, 2002.<br />
[101] Hu, Y. et al. Ariadne: A Secure On-Demand Routing<br />
Protocol for Ad hoc <strong>Network</strong>s. Proc. MobiCom, 2002.<br />
[102] Hu, L. et al. Localization for mobile sensor networks.<br />
Proc. MobiCom, 2004.<br />
[103] Hu, X. et al. A novel route update design for wireless<br />
sensor networks. ACM SIGMOBILE Mobile Computing<br />
and Communications Review, Vol.8, No.1, pp. 18 26,<br />
2004.<br />
[104] Hua, K.A. et al. WISE: A Web-Based Intelligent <strong>Sensor</strong><br />
Explorer Framework for Publishing, Browsing, and<br />
Analyzing <strong>Sensor</strong> Data over the Internet. Proc. ICWE,<br />
2004.<br />
[105] Hui, J. et al. The dynamic behavior <strong>of</strong> a data<br />
dissemination protocol for network programming at<br />
scale. Proc. SenSys, 2004.<br />
[106] Hull, B. et al. Mitigating congestion in wireless sensor<br />
networks. Proc. SenSys, 2004.<br />
[107] Hwang, . et al. A Design and Implementation <strong>of</strong><br />
<strong>Wireless</strong> <strong>Sensor</strong> Gateway for Efficient Querying and<br />
Managing through World Wide Web. IEEE<br />
Transactions on Consumer Electronics, Vol. 49, No. 4,<br />
pp. 1090-1097, 2003.<br />
[108] Intanagonwiwat, C. et al. Directed diffusion: a scalable<br />
and robust communication paradigm for sensor<br />
networks. Proc. Int. Conf. on Mobile Computing and<br />
<strong>Network</strong>ing, 2000.<br />
[109] Intanagonwiwat, C. et al. Declarative Resource Naming<br />
for Macroprogramming <strong>Wireless</strong> <strong>Network</strong>s <strong>of</strong> Embedded<br />
Systems. Univ. Calif. San Diego Technical Report<br />
CS2004-0800, 2004.<br />
[110] Jacobs, A. et al. A Framework for Comparing<br />
Perspectives on Privacy and Pervasive Technologies.<br />
IEEE Pervasive Computing, Vol.2, No.4, 2003.<br />
[111] Ji, X. et al. ensor Positioning in <strong>Wireless</strong> Ad-hoc <strong>Sensor</strong><br />
<strong>Network</strong>s with Multidimensional Scaling. Proc. Infocom<br />
, 2004.<br />
[112] Juang, P. et al. Energy-Efficient Computing for Wildlife<br />
Tracking: Design Trade<strong>of</strong>fs and Early Experiences with<br />
ZebraNet. Proc. ASPLOS X, 2002.<br />
[113] Kalpakis, K. et al. Maximum lifetime data gathering<br />
and aggregation in wireless sensor networks. Proc.<br />
NETWORKS, 2002.<br />
[114] Kambil, A. et al. Auto-ID across the value chain: from<br />
dramatic potential to greater efficiency and pr<strong>of</strong>it. Tech.<br />
Rep. ACN-AUTOID-BC-001, MIT, 2002.<br />
[115] Kang, J. et al. End-to-end channel capacity<br />
measurement for congestion control in sensor networks.<br />
Proc. SANPA, 2004.<br />
[116] Kang, P. et al. Smart Messages: A Distributed<br />
Computing Platform for <strong>Network</strong>s <strong>of</strong> Embedded<br />
Systems. The Computer Journal, Vol. 47, No. 4, pp.<br />
475-494, 2004.<br />
[117] Karl, H. et al. A short <strong>survey</strong> <strong>of</strong> wireless sensor<br />
networks. Technical Report TKN-03-018, Technocal<br />
University Berlin, 2003.<br />
[118] Karl<strong>of</strong>, C. et al. Secure routing in wireless sensor<br />
networks: Attacks and countermeasures. Ad Hoc<br />
<strong>Network</strong>s, 1(2-3), 2003.<br />
[119] Karl<strong>of</strong>, C. et al. TinySec: a link layer security<br />
architecture for wireless sensor networks. Proc. SenSys,<br />
2004.<br />
[120] Kasten, O. et al. Beyond Event Handlers: Programming<br />
<strong>Wireless</strong> <strong>Sensor</strong>s with Attributed State Machines. Proc.<br />
IPSN, 2005.<br />
[121] Katsiri, E. et al. An Extended Publish/Subscribe<br />
Protocol for Transparent Subscriptions to Distributed<br />
Abstract State in <strong>Sensor</strong>-Driven Systems using Abstract<br />
Events. Proc. DEBS, 2004.<br />
[122] Kim, Y. et al. Modeling and analyzing the impact <strong>of</strong><br />
location inconsistencies on geographic routing in<br />
wireless networks. Proc. , Vol.8, No.1, pp. 48 60, 2004.<br />
[123] Klavins, E. Distributed Algorithms for Cooperative<br />
Control. IEEE Pervasive Computing, Vol. 3, No. 1, pp.<br />
56-65, 2004.<br />
[124] Kling, R. et al. Intel Mote: An Enhanced <strong>Sensor</strong><br />
<strong>Network</strong> Node. Proc. Int. Workshop on Advanced<br />
<strong>Sensor</strong>s, Structural Health Monitoring and Smart<br />
Structures, 2003.<br />
[125] Kochhal, M. et al. Role-based hierarchical self<br />
organization for wireless ad hoc sensor networks. Proc.<br />
WSNA, 2003.<br />
[126] Kumar, R. et al. DFuse: A Framework for Distributed<br />
Data Fusion. Proc. SenSys, 2003.<br />
[127] Kumar, S. et al. On k-coverage in a mostly sleeping<br />
sensor network. Proc. MobiCom, 2004.<br />
[128] Kumar, M. et al. Efficient data aggregation middleware<br />
for wireless sensor networks. Proc. MASS, 2004.<br />
[129] Kwon, T. J. et al. Efficient Flooding with Passive<br />
Clustering (PC) in Ad Hoc <strong>Network</strong>s. Computer<br />
Communication Review, 32(1):4456, 2002.<br />
[130] Lampe, M. et al. The Potential <strong>of</strong> RFID for Moveable<br />
Asset Management. Workshop on Ubiquitous<br />
Commerce, Ubicomp 03, 2003.<br />
[131] Lazaridis, I. et al. QUASAR: Quality Aware Sensing<br />
Architecture. ACM SIGMOD Record, 2004.<br />
[132] Levis, P. et al. Mat: a tiny virtual machine for sensor<br />
networks. Proc. USENIX/ACM ASPLOS X, 2002.<br />
[133] Levis, P. et al. TOSSIM: accurate and scalable<br />
simulation <strong>of</strong> entire TinyOS applications. Proc. SenSys,<br />
2003.<br />
[134] Levis, P. et al. Active <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
USENIX/ACM Symposium NSDI, 2005.<br />
[135] Lewis, P. et al. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s - Smart<br />
Environments: Technology Protocols and Applications.<br />
Chapter 2, Wiley-InterScience, 2005.<br />
[136] Li, S. et al. Event Detection Services Using Data Service<br />
Middleware in Distributed <strong>Sensor</strong> <strong>Network</strong>s. Proc. Int.<br />
Workshop on Information Processing in <strong>Sensor</strong><br />
<strong>Network</strong>s, 2003.<br />
42
[137] Li, Q. et al. Global Clock Synchronization in <strong>Sensor</strong><br />
<strong>Network</strong>s. Proc. Infocom, 2004.<br />
[138] Lindsey, S. et al. PEGASIS: Power Efficient GAthering<br />
in <strong>Sensor</strong> Information Systems. Proc. IEEE Aerospace<br />
Conference, 2002.<br />
[139] Liu, J. et al. State-Centric Programming for<br />
<strong>Sensor</strong>-Actuator <strong>Network</strong> System. IEEE Pervasive<br />
Computing, Vol.2, No.4, pp.50-62, 2003.<br />
[140] Liu, T. et al. Impala: a middleware system for managing<br />
autonomic, parallel sensor systems. Proc. ACM<br />
SIGPLAN, 2003.<br />
[141] Liu, T. et al. Implementing s<strong>of</strong>tware on<br />
resource-constrained mobile sensors: experiences with<br />
Impala and ZebraNet. Proc. MobiSys, 2004.<br />
[142] Liu, H. et al. Design and Implementation <strong>of</strong> a Single<br />
System Image Operating System for Ad Hoc <strong>Network</strong>s.<br />
Proc. MobiSys, 2005.<br />
[143] Lucarelli, D. et al. Decentralized synchronization<br />
protocols with nearest neighbor communication. Proc.<br />
SenSys, 2004.<br />
[144] Ma, Y. et al. System Lifetime Optimization for<br />
Heterogeneous <strong>Sensor</strong> <strong>Network</strong>s with a Hub-Spoke<br />
Topology. IEEE Transactions on Mobile Computing,<br />
Vol.3, No.3, pp. 286-294, 2004.<br />
[145] Madden, S. et al. TAG: a Tiny Aggregation Service for<br />
Ad-Hoc <strong>Sensor</strong> <strong>Network</strong>s. Proc. OSDI, 2002.<br />
[146] Madden, S. et al. TinyDB: An Acqusitional Query<br />
Processing System for <strong>Sensor</strong> <strong>Network</strong>s. ACM<br />
Transactions on Database Systems, Vol.30, No.1, 2005.<br />
[147] Mainland, G. et al. Using virtual markets to program<br />
global behavior in sensor networks. Proc. SIGOPS<br />
European Workshop, 2004.<br />
[148] Mainwaring, A. et al. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s for<br />
Habitat Monitoring. Proc. WSNA, 2002.<br />
[149] Manjeshwar, A. et al. TEEN : A Protocol for Enhanced<br />
Efficiency in <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
International Workshop on Parallel and Distributed<br />
Computing Issues in <strong>Wireless</strong> <strong>Network</strong>s and Mobile<br />
Computing, 2001.<br />
[150] Mark, A. et al. Providing Application QoS through<br />
Intelligent <strong>Sensor</strong> Management. Proc. SNPA, 2003.<br />
[151] Marti, M. et al. Shooter Localization in Urban Terrain.<br />
IEEE Computer, Vol. 37, No. 8, pp. 60-61, 2004.<br />
[152] Marti, M. et al. The flooding time synchronization<br />
protocol. Proc. SenSys, 2004.<br />
[153] Martinez, K. et al. Environmental <strong>Sensor</strong> <strong>Network</strong>s.<br />
IEEE Computer, Vol. 37, No. 8, pp. 50-56, 2004.<br />
[154] Martinez, K. et al. GLACSWEB: A <strong>Sensor</strong> Web for<br />
Glaciers. Proc. EWSN, 2004.<br />
[155] Melodia, T. et al. Optimal Local Topology Knowledge<br />
for Energy Efficient Geographical Routing in <strong>Sensor</strong><br />
<strong>Network</strong>s. Proc. Infocom, 2004.<br />
[156] Michahelles, F. et al. Applying Wearable <strong>Sensor</strong>s to<br />
Avalanche Rescue. Computers and Graphics,<br />
27(6):839-847, 2003.<br />
[157] Mills, D.L. Internet Time Synchronization: The<br />
<strong>Network</strong> Time Protocol. IEEE trans. Communications,<br />
39(10), 1991.<br />
[158] Moore, D. et al. Robust distributed network localization<br />
with noisy range measurements. Proc. SenSys, 2004.<br />
[159] Murphy, A. et al. MiLAN: Middleware Linking<br />
Applications and <strong>Network</strong>s. TR-795, University <strong>of</strong><br />
Rochester, Computer Science, 2002.<br />
[160] Nagpal, R. et al. Organizing a global coordinate system<br />
from local information on an ad hoc sensor network.<br />
Proc. workshop IPSN, 2003.<br />
[161] Nath, S. et al. IrisNet: An Architecture for Enabling<br />
<strong>Sensor</strong>-Enriched Internet Service. ntel Research<br />
Pittsburgh Technical Report IRP-TR-03-04, 2003.<br />
[162] Nath, S. et al. A Distributed Filtering Architecture for<br />
Multimedia <strong>Sensor</strong>s. Proc. BaseNets, 2004.<br />
[163] Newton, R. et al. Region Streams: Functional<br />
Macroprogramming for <strong>Sensor</strong> <strong>Network</strong>s. Proc. DMSN,<br />
2004.<br />
[164] Newton, R. et al. Building up to Macroprogramming:<br />
An Intermediate Language for <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
IPSN, 2005.<br />
[165] Niculescu, D. et al. Positioning in ad hoc sensor<br />
networks. IEEE <strong>Network</strong>, Vol. 18, No. 4, pp. 24- 29,<br />
2004.<br />
[166] Open Grid Services Architecture<br />
http://www.ggf.org/ogsa-wg/.<br />
[167] The OSGi Alliance The OSGi framework.<br />
http://www.osgi.org, 1999.<br />
[168] Papadimitratos, P. et al. Secure Routing for Mobile Ad<br />
hoc <strong>Network</strong>s. Proc. CNDS, 2002.<br />
[169] Peng, R. et al. A Web Services Environment for<br />
Internet-Scale <strong>Sensor</strong> Computing. Proc. SCC, 2004.<br />
[170] Perrig, A. et al. SPINS: Security Protocols for <strong>Sensor</strong><br />
<strong>Network</strong>s. <strong>Wireless</strong> <strong>Network</strong>s Journal (WINET),<br />
8(5):521.534, September 2002.<br />
[171] Perrig, A. et al. Security in wireless sensor networks.<br />
CACM, Vol. 47, No. 6, pp. 53-57, 2004.<br />
[172] Polastre, J. et al. Versatile low power media access for<br />
wireless sensor networks. Proc. SenSys, 2004.<br />
[173] Prakash, R. et al. Causality and the Spatial-Temporal<br />
Ordering in Mobile Systems. Mobile <strong>Network</strong>s and<br />
Applications, 9(5):507-516, 2004.<br />
[174] Ramasamy, H.V. et al. Quantifying the cost <strong>of</strong> providing<br />
intrusion tolerance in group communication systems.<br />
Proc. DSN, 2002.<br />
[175] Rao, R. et al. Purposeful Mobility for Relaying and<br />
Surveillance in Mobile Ad Hoc <strong>Sensor</strong> <strong>Network</strong>s. IEEE<br />
Transactions on Mobile Computing, Vol.3, No.3,<br />
pp.225-232, 2004.<br />
[176] Ratnasamy, A. et al. GHT: A geographic hash table for<br />
data-centric storage in sensornets. Proc. WSNA, 2002.<br />
[177] Ravelomanana, V. et al. Extremal Properties <strong>of</strong> Three<br />
Dimensional <strong>Sensor</strong> <strong>Network</strong>s with Application. IEEE<br />
Transactions on Mobile Computing, Vol.3, No.3, pp.<br />
246-257, 2004.<br />
[178] Reason, J.M. et al. A study <strong>of</strong> energy consumption and<br />
reliability in a multi-hop sensor network. ACM<br />
SIGMOBILE Mobile Computing and Communications<br />
Review, Vol.8, No.1, pp. 8497, 2004.<br />
[179] Rodoplu, V. et al. Minimum energy mobile wireless<br />
networks. IEEE Journal <strong>of</strong> Selected Areas in<br />
Communications, 1999.<br />
[180] Rentala, P. et al. Survey on <strong>Sensor</strong> <strong>Network</strong>s. Technical<br />
Report, UTDCS-33-02, University <strong>of</strong> Texas at Dallas,<br />
2002.<br />
[181] Römer, K. et al. Middleware Challenges for <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s. ACM Mobile Computing and<br />
Communication Review, October 2002.<br />
[182] Römer, K. et al. The Design Space <strong>of</strong> <strong>Wireless</strong> <strong>Sensor</strong><br />
<strong>Network</strong>s. IEEE <strong>Wireless</strong> Communications, 2004.<br />
[183] Römer, K. et al. Generic role assignment for wireless<br />
sensor networks. Proc. ACM SIGOPS European<br />
Workshop, 2004.<br />
[184] Römer, K. Time Synchronization in Ad Hoc <strong>Network</strong>s.<br />
ACM Symposium on Mobile Ad Hoc <strong>Network</strong>ing and<br />
Computing (MobiHoc01), 2001.<br />
[185] Reconfigurable Ubiquitous <strong>Network</strong>ed Embedded<br />
Systems . http://www.ist-runes.org, 2005.<br />
[186] Sadagopan, N. et al. The ACQUIRE mechanism for<br />
efficient querying in sensor networks. Proc.<br />
International Workshop on <strong>Sensor</strong> <strong>Network</strong> Protocol<br />
and Applications, 2003.<br />
[187] Sames, D. et al. Developing a heterogeneous intrusion<br />
tolerant corba system. Proc. DSN, 2002.<br />
[188] Satyanarayanan, M. et al. Of Smart Dust and Brilliant<br />
Rocks. IEEE Pervasive Computing, Vol.2, No.4, pp.2-4,<br />
2003.<br />
[189] Schurgers, C. et al. Energy efficient routing in wireless<br />
43
sensor networks. MILCOM Proceedings on<br />
Communications for <strong>Network</strong>-Centric Operations:<br />
Creating the Information Force, 2001.<br />
[190] Schramm, P. et al. A Service Gateway for <strong>Network</strong>ed<br />
<strong>Sensor</strong> Systems. IEEE Pervasive Computing, Vol.3,<br />
No.1, pp. 66-74, 2004.<br />
[191] Seada, K. et al. Energy-efficient forwarding strategies for<br />
geographic routing in lossy wireless sensor networks.<br />
Proc. SenSys, 2004.<br />
[192] Shah, R. et al. Energy Aware Routing for Low Energy<br />
Ad Hoc <strong>Sensor</strong> <strong>Network</strong>s. Proc. WCNC, 2002.<br />
[193] Shang, Y. et al. Improved MDS-Based Localization.<br />
Proc. Infocom, 2004.<br />
[194] Shen, C.C. et al. <strong>Sensor</strong> Information <strong>Network</strong>ing<br />
Architecture and Applications. E Personal<br />
Communications Magazine, Vol.8, No. 4. pp. 52-59,<br />
2001.<br />
[195] Shneidman, J. et al. Hourglass: An Infrastructure for<br />
Connecting <strong>Sensor</strong> <strong>Network</strong>s and Applications. Harvard<br />
Technical Report TR-21-04, 2004.<br />
[196] Shnayder, V. et al. Simulating the power consumption<br />
<strong>of</strong> large-scale sensor network applications. Proc. SenSys,<br />
2004.<br />
[197] Shum, L. et al. Distributed Algorithm Implementation<br />
and Interaction in <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
workshop SANPA, 2004.<br />
[198] Sibley, G.T. et al. Robomote: A Tiny Mobile Robot<br />
Platform for Large-Scale <strong>Sensor</strong> <strong>Network</strong>s. Proc. ICRA,<br />
2002.<br />
[199] Simon, G. et al. <strong>Sensor</strong> network-based counter sniper<br />
system. Proc. Sensys, 2004.<br />
[200] Sivaharan, T. et al. Cooperating Sentient Vehicles for<br />
Next Generation Automobiles. Proc. WAMES, 2004.<br />
[201] Sivrikaya, F. et al. Time synchronization in sensor<br />
networks: a <strong>survey</strong>. IEEE <strong>Network</strong>, Vol. 18, No. 4,<br />
pp.45- 50, 2004.<br />
[202] Slijepcevic, S. et al. Power efficient organization <strong>of</strong><br />
wireless sensor networks. Proc. ICC, 2001.<br />
[203] Smaragdakis, G. et al. SEP: A Stable Election Protocol<br />
for clustered heterogeneous wireless sensor networks.<br />
Proc. SANPA, 2004.<br />
[204] Sohrabi, K. et al. Protocols for Self Organization <strong>of</strong> a<br />
<strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>. Personal Communication<br />
Magazine, 7:1627, 2000.<br />
[205] Sohrabi, K. et al. Protocols for self-organization <strong>of</strong> a<br />
wireless sensor network. IEEE Personal<br />
Communications, Vol.7, No.5, pp.16-27, 2000.<br />
[206] Sohrabi, K. et al. Methods for Scalable Self-Assembly <strong>of</strong><br />
Ad Hoc <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s. IEEE Transactions<br />
on Mobile Computing, Vol.3,No.4, pp. 317-331, 2004.<br />
[207] Son, D. et al. The Effect <strong>of</strong> Mobility-Induced Location<br />
Errors on Geographic Routing in Mobile Ad Hoc and<br />
<strong>Sensor</strong> <strong>Network</strong>s: Analysis and Improvement Using<br />
Mobility Prediction. IEEE Transactions on Mobile<br />
Computing, Vol.3, No.3, pp. 233-245, 2004.<br />
[208] Souto, E. et al. A message-oriented middleware for<br />
sensor networks. Proc. workshop on Middleware for<br />
pervasive and ad-hoc computing, 2004.<br />
[209] Srisathapornphat, C. et al. <strong>Sensor</strong> Information<br />
<strong>Network</strong>ing Architecture. Proc. Int. Workshops on<br />
Parallel Processing , 2000.<br />
[210] Steffan, J. et al. Scoping in wireless sensor networks.<br />
Proc. workshop on Middleware for pervasive and ad-hoc<br />
computing, 2004.<br />
[211] Subramanian, L. et al. An Architecture for Building Self<br />
Configurable Systems. Proc. IEEE/ACM Workshop on<br />
Mobile Ad Hoc <strong>Network</strong>ing and Computing, 2000.<br />
[212] Subramanian, L. et al. An architecture for building<br />
selfconfigurable systems. Proc. MobiHoc, 2000.<br />
[213] Szewczyk, R. et al. An analysis <strong>of</strong> a large scale habitat<br />
monitoring application. Proc. SenSys, pp. 214 - 226,<br />
2004.<br />
[214] Tilak, S. et al. A Taxonomy <strong>of</strong> <strong>Wireless</strong> Micro-<strong>Sensor</strong><br />
<strong>Network</strong> Models. Mobile Computing and<br />
Communications Review, Vol.6, No.2, 2002.<br />
[215] Trakadas, P. et al. Efficient routing in PAN and sensor<br />
networks. ACM SIGMOBILE Mobile Computing and<br />
Communications Review, Vol.8, No.1, pp. 10 17, 2004.<br />
[216] UAV. The 29 Palms Experiment: Tracking vehicles with<br />
a UAV-delivered sensor network.<br />
tinyos.millennium.berkeley.edu/29Palms.htm.<br />
[217] Vahid, F. et al. SpecCharts: A VHDL Front-End for<br />
Embedded Systems. Proc. Trans. on CAD, vol. 14, no.<br />
6, pp.694706, 1995.<br />
[218] Wanat, R. et al. Enabling Ubiquitous Sensing with<br />
RFID. IEEE Computer, pp. 84-86, 2004.<br />
[219] Wang, G. et al. Movement-Assisted <strong>Sensor</strong> Deployment.<br />
Proc. Infocom, 2004.<br />
[220] Welsh, M. et al. Programming sensor networks with<br />
abstract regions. Proc. NSDI, 2004.<br />
[221] Whitehouse, K. et al. Hood: A neighborhood<br />
abstraction for sensor networks. Proc. MobiSys, 2004.<br />
[222] Whitehouse, K. et al. Semantic streams: A framework<br />
for declarative queries and automatic data<br />
interpretation. Technical Report MSR-TR-2005-45,<br />
Micros<strong>of</strong>t Research, 2005.<br />
[223] Woo, A. et al. <strong>Network</strong>ing support for query processing<br />
in sensor networks. CACM, Vol. 47, No. 6, pp. 47-52,<br />
2004.<br />
[224] Wood, A. et al. Denial <strong>of</strong> service in sensor networks.<br />
IEEE Computer, 35(10):54.62, 2002.<br />
[225] Wu, M. et al. Novel Component Middleware for<br />
Building Dependable Sentient Computing Applications.<br />
ACM Workshop on Component-oriented approaches to<br />
Context-aware computing, ECOOP, 2004.<br />
[226] Xu, N. et al. A wireless sensor network for structural<br />
monitoring. Proc. SenSys, 2004.<br />
[227] Xu, N. A Survey <strong>of</strong> <strong>Sensor</strong> <strong>Network</strong> Applications.<br />
University <strong>of</strong> Southern California, 2003.<br />
[228] Xu, Y. et al. Geography-informed energy conservation<br />
for ad hoc routing. Proc. MobiCom, 2001.<br />
[229] Yao, Y. et al. The Cougar Approach to In-<strong>Network</strong><br />
Query Processing in <strong>Sensor</strong> <strong>Network</strong>s. ACM SIGMOD,<br />
Vol. 31, No. 3, pp.9-18, 2002.<br />
[230] Yoneki, E. et al. Unified Semantics <strong>of</strong> Event Correlation<br />
over Time and Space in Hybrid <strong>Network</strong> Environments.<br />
Proc. CoopIS, 2005.<br />
[231] Younis, M. et al. Energy-Aware Routing in<br />
Cluster-Based <strong>Sensor</strong> <strong>Network</strong>s. Proc. MASCOT, 2002.<br />
[232] Younis, O. et al. Distributed Clustering in Ad-hoc<br />
<strong>Sensor</strong> <strong>Network</strong>s: A Hybrid, Energy-Efficient Approach.<br />
Proc. Infocom, 2004.<br />
[233] Yu, Y. et al. Geographical and Energy-Aware Routing:<br />
A Recursive Data Dissemination Protocol for <strong>Wireless</strong><br />
<strong>Sensor</strong> <strong>Network</strong>s. Technical Report, UCLA-CSD<br />
TR-01-0023, 2001.<br />
[234] Yu, Y. et al. Issues in designing middleware for wireless<br />
sensor networks. IEEE <strong>Network</strong>, Vol. 18, No.1, pp. 15-<br />
21, 2004.<br />
[235] Zhang, W. et al. Optimizing Tree Reconfiguration for<br />
Mobile Target Tracking in <strong>Sensor</strong> <strong>Network</strong>s. Proc.<br />
Infocom, 2004.<br />
[236] Zhang, P. et al. Hardware design experiences in<br />
ZebraNet. Proc. SenSys, 2004.<br />
[237] Zhao, F. et al. <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong>s : An<br />
Information Processing Approach. Morgan Kaufmann,<br />
2004.<br />
[238] Zhou, G. et al. Impact <strong>of</strong> radio irregularity on wireless<br />
sensor networks. Proc. MobiSys, 2004.<br />
[239] http://www.cs.berkeley.edu/projects/parallel/castle<br />
/split-c/.<br />
44
APPENDIX<br />
1.GreatDuck<br />
2.ZebraNet<br />
3.Glacier<br />
4.Hearding<br />
5.Ocean<br />
6.Grape<br />
7.Avalanche<br />
Dissemination<br />
manualonetime<br />
manualonetime<br />
manualonetime<br />
dense<br />
(10s-<br />
100s)<br />
dense<br />
(10s-<br />
100s)<br />
sparse<br />
(10s-<br />
100s)<br />
dense<br />
(10s-<br />
manualonetime<br />
random,<br />
iterative<br />
forward<br />
to satellite<br />
multi<br />
tier<br />
bcast<br />
bcast<br />
802.11x<br />
manualonetime<br />
manualonetime<br />
Mobility<br />
static<br />
all, continuous,<br />
passive<br />
all, continuous,<br />
passive<br />
all, continuous,<br />
passive<br />
all, continuous,<br />
base,<br />
GPS<br />
base,<br />
GPS,<br />
GSM<br />
base,<br />
GPS<br />
Topology<br />
star <strong>of</strong><br />
clusters<br />
graph<br />
start<br />
graph<br />
Density<br />
(Size)<br />
100s)<br />
satellite star sparse<br />
(1300)<br />
passive<br />
static base tree sparse<br />
(20m)<br />
(100s)<br />
all, continuous,<br />
passive<br />
8.VitalSign manual all, continuous,<br />
passive<br />
9.Tracking random all, occasional,<br />
passive<br />
10.ToolBox manual all, occasional,<br />
passive<br />
11.Supply manual all, occasional,<br />
passive<br />
rescuer’s<br />
PDA<br />
ad hoc<br />
start<br />
single<br />
hop<br />
dense<br />
(10s-<br />
100s)<br />
dense<br />
(10s)<br />
base star sparse<br />
(10s)<br />
12.Volcano manual static base star sparse<br />
(10s)<br />
Deployment<br />
Infrastructure<br />
base,<br />
gateway<br />
Connectivity<br />
Lifetime<br />
connected 7<br />
months<br />
global<br />
diffusion<br />
sporadic one year id global<br />
diffusion<br />
connected<br />
intermittent<br />
intermittent<br />
connected<br />
several<br />
months<br />
days to<br />
weeks<br />
id<br />
id<br />
global<br />
diffusion<br />
global<br />
diffusion<br />
4-5 years - neighbor<br />
global<br />
diffusion<br />
several<br />
months<br />
id<br />
global<br />
diffusion<br />
connected days id global<br />
diffusion<br />
connected days to<br />
months<br />
UAV graph sparse<br />
(10s-<br />
1000s)<br />
base star sparse<br />
(10s)<br />
intermittent<br />
(UAV)<br />
connected<br />
connected<br />
weeks to<br />
years<br />
months<br />
to years<br />
months<br />
to years<br />
id<br />
id<br />
id<br />
id<br />
composite<br />
event,<br />
diffusion<br />
composite<br />
event,<br />
diffusion<br />
global<br />
diffusion<br />
global<br />
diffusion<br />
Node<br />
Address<br />
id<br />
Aggregation<br />
send<br />
base<br />
send<br />
base<br />
send<br />
base<br />
send<br />
base<br />
to<br />
to<br />
to<br />
to<br />
bcast<br />
bcast<br />
send<br />
base<br />
send<br />
base<br />
connected days id streaming send to<br />
base<br />
to<br />
to<br />
RT<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
RT<br />
RT<br />
-<br />
-<br />
-<br />
Table 2: <strong>Wireless</strong> <strong>Sensor</strong> <strong>Network</strong> Application Classification<br />
1. Bird Observation on Great Duck Island: WSN<br />
is being used to observe the breeding behavior <strong>of</strong> a small<br />
bird called Leach’s Storm Petrel [148] on Great Duck Island.<br />
Nodes can measure humidity, pressure, temperature,<br />
and ambient light level. Burrow nodes are equipped with<br />
infrared sensors to detect the presence <strong>of</strong> the birds. The<br />
burrows occur in clusters and the sensor nodes form a multihop<br />
ad hoc network. The base station computer is connected<br />
to a database back-end system via a satellite link.<br />
<strong>Sensor</strong> nodes sample their sensors about once a minute and<br />
send their readings directly to the database back-end system.<br />
2. ZebraNet: A WSN is being used to observe the behavior<br />
<strong>of</strong> wild animals within a spacious habitat (e.g., wild<br />
horses, zebras, and lions) [112] at the Mpala Research Center<br />
in Kenya. Of particular interest is the behavior <strong>of</strong> individual<br />
animals. Animals are equipped with sensor nodes.<br />
An integrated GPS receiver is used to obtain estimates <strong>of</strong><br />
their position and speed <strong>of</strong> movement. Whenever a node<br />
enters the communication range <strong>of</strong> another node, the sensor<br />
readings and the identities <strong>of</strong> the sensor nodes are exchanged.<br />
At regular intervals, a mobile base station (e.g.,<br />
a car or a plane) moves through the observation area and<br />
collects the recorded data from the animals it passes.<br />
3. Glacier Monitoring: A WSN is being used to monitor<br />
sub-glacier environments at Briksdalsbreen, Norway<br />
[154]. A lengthy observation period <strong>of</strong> months to years<br />
is required. <strong>Sensor</strong> nodes are deployed in drill holes at<br />
different depths in the glacier ice and in the till beneath<br />
the glacier. <strong>Sensor</strong> nodes are equipped with pressure and<br />
temperature sensors and a tilt sensor for measuring the<br />
orientation <strong>of</strong> the node. <strong>Sensor</strong> nodes communicate with<br />
a base station deployed on top <strong>of</strong> the glacier. The base<br />
station measures supra-glacial displacements using differential<br />
GPS and transmits the data collected via GSM.<br />
4. Cattle Herding: A WSN is being used to implement<br />
virtual fences, with an acoustic stimulus being given to animals<br />
that cross a virtual fence line [42]. Movement data<br />
from the cows controls the virtual fence algorithm that<br />
dynamically shifts fence lines. For the first experiment,<br />
each sensor node consists <strong>of</strong> a PDA with a GPS receiver,<br />
a WLAN card, and a loudspeaker for providing acoustic<br />
stimuli to the cattle as they approach a fence. The nodes<br />
form a multi-hop ad hoc network, forwarding movement<br />
data to a base station The base station transmits fence<br />
coordinates to the nodes.<br />
45
5. Ocean Water Monitoring: The ARGO project [13]<br />
is using a WSN to observe the temperature, salinity, and<br />
current pr<strong>of</strong>ile <strong>of</strong> the upper ocean. The goal is a quantitative<br />
description <strong>of</strong> the state <strong>of</strong> the upper ocean and<br />
the patterns <strong>of</strong> ocean climate variability. The nodes are<br />
dropped from ships or planes. The nodes cycle to a depth<br />
<strong>of</strong> 2000m every ten days. Data collected during these cycles<br />
is transmitted to a satellite while nodes are at the<br />
surface.<br />
6. Grape Monitoring: A WSN is being used to monitor<br />
the conditions that influence plant growth (e.g., temperature,<br />
soil moisture, light, and humidity) across a large<br />
vineyard in Oregon [23]. In a first version <strong>of</strong> the system,<br />
sensor nodes are deployed across a vineyard in a regular<br />
grid about 20 meters apart. A temperature sensor is connected<br />
to each sensor node via a cable. A laptop computer<br />
is connected to the WSN via a gateway to display and log<br />
the temperature distribution across the vineyard. The sensor<br />
nodes form a two-tier multi-hop network, with nodes<br />
in the second tier sending data to a node in the first tier.<br />
7. Rescue <strong>of</strong> Avalanche Victims: A WSN is being used<br />
to assist rescue teams in saving people buried in avalanches<br />
[156]. The goal is to better locate buried people and to<br />
limit overall damage by giving the rescue team additional<br />
indications <strong>of</strong> the state <strong>of</strong> the victims and to automate the<br />
prioritization <strong>of</strong> victims (e.g., based on heart rate, respiration<br />
activity, and level <strong>of</strong> consciousness). For this purpose,<br />
people at risk (e.g., skiers, snowboarders, and hikers) carry<br />
a sensor node that is equipped with an oximeter (a sensor<br />
which measures the oxygen level in blood), and which permits<br />
heart rate and respiration activity to be measured.<br />
8. Vital Sign Monitoring: <strong>Wireless</strong> sensors are being<br />
used to monitor vital signs <strong>of</strong> patients in a hospital<br />
environment [20]. Compared to conventional approaches,<br />
solutions based on wireless sensors are intended to improve<br />
monitoring accuracy whilst also being more convenient for<br />
patients. Various medical sensors (e.g., electrocardiogram)<br />
may be subsequently attached to the patient.<br />
9. Tracking Military Vehicles: A WSN is being used<br />
to track the path <strong>of</strong> military vehicles (e.g., tanks) [216].<br />
<strong>Sensor</strong> nodes are deployed from an unmanned aerial vehicle<br />
(UAV). Magnetometer sensors are attached to the nodes in<br />
order to detect the proximity <strong>of</strong> tanks. Nodes collaborate<br />
in estimating the path and velocity <strong>of</strong> a tracked vehicle.<br />
Tracking results are transmitted to the unmanned aerial<br />
vehicle.<br />
10. Smart Tool Box: Tools are equipped with RFID<br />
tags, and the tool box contains a mobile RFID system (including<br />
a tag reader antenna integrated into the tool box)<br />
[130]. The tool box issues a warning for safety reasons if a<br />
worker attempts to leave the building site while any tools<br />
are missing from his or her box. The box also monitors<br />
how <strong>of</strong>ten and for how long tools have been in use.<br />
11. Smart Supply Chain: Smart identification technology<br />
can significantly improve the efficiency <strong>of</strong> supply<br />
chains and the internal logistics processes <strong>of</strong> companies<br />
[114]. In such scenarios, the automatic identification and<br />
localization <strong>of</strong> goods at instance level can help to prevent<br />
faulty deliveries. Every bottle <strong>of</strong> mineral water, the box<br />
containing the bottles, and the container for the boxes are<br />
tagged. RFID readers are installed along the supply chain<br />
to check whether the correct quantity <strong>of</strong> goods and the<br />
correct product instances have passed.<br />
12. Monitoring Volcanic Eruptions: WSN monitors<br />
eruptions at Volcano Tungurahua, an active volcano<br />
in central Ecuador. This network consisted <strong>of</strong> five<br />
tiny, low-power wireless sensor nodes, three equipped with<br />
a specially-constructed microphone to monitor infrasonic<br />
(low-frequency acoustic) signals emanating from the volcanic<br />
vent during eruptions. Over 54 hours <strong>of</strong> continuous<br />
infrasound data are collected, transmitting signals over a<br />
9 km wireless link back to a base station at the volcano<br />
observatory, (see [85] for more details).<br />
46