Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
18.11.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!