Ieee Network04
Ieee Network04
Ieee Network04
Abstract
Current trends in computing include increases in both distribution and wireless con-
nectivity, leading to highly dynamic, complex environments on top of which appli-
cations must be built. The task of designing and ensuring the correctness of
applications in these environments is similarly becoming more complex. The unified
goal of much of the research in distributed wireless systems is to provide higher-
level abstractions of complex low-level concepts to application programmers, eas-
ing the design and implementation of applications. A new and growing class of
applications for wireless sensor networks require similar complexity encapsulation.
However, sensor networks have some unique characteristics, including dynamic
availability of data sources and application quality of service requirements, that
are not common to other types of applications. These unique features, combined
with the inherent distribution of sensors, and limited energy and bandwidth
resources, dictate the need for network functionality and the individual sensors to
be controlled to best serve the application requirements. In this article we describe
different types of sensor network applications and discuss existing techniques for
managing these types of networks. We also overview a variety of related middle-
ware and argue that no existing approach provides all the management tools
required by sensor network applications. To meet this need, we have developed a
new middleware called MiLAN. MiLAN allows applications to specify a policy for
managing the network and sensors, but the actual implementation of this policy is
effected within MiLAN. We describe MiLAN and show its effectiveness through the
design of a sensor-based personal health monitor.
Adaptive Non-adaptive
Corba
Linda
LIME
Reactive Proactive Jinl
Enables Enables
Middleware reactive Middleware proactive
reactive applications proactive applications
Data/resource Code
Flexible to management management
Specialized existing
network network
Limbo Odyssey protocols protocols
Fargo Spectra
QoS aware
middleware
DSWare
Cougar MiLAN AutoSec Impala
SINA
■ Figure 3. Relationships among different middleware. In this figure, “middleware reactive” refers to middleware that reacts itself to
changes in network behavior, whereas “middleware proactive” refers to middleware that proactively changes the network functionality.
Similarly, “enables reactive applications” refers to middleware that provides hooks so that applications can react to changes in the envi-
ronment, whereas “enables proactive applications” refers to middleware that accepts information from the application about how to
respond to changes in the network.
energy constraints of sensor networks, and their supporting Middleware for Sensor Networks
protocols are heavyweight when compared to protocols tai-
lored to sensor networks. Recently, much work has targeted the development of middle-
Some middleware acknowledge the changing properties of ware specifically designed to meet the challenges of wireless
wireless networks and attempt to modify their own behavior sensor networks, focusing on the long-lived and resource-con-
to match the conditions detected within the network. For strained aspects of these systems.
example, both Limbo [17] and FarGo [18] reorder data Both the Cougar [24] and SINA [25] systems provide a dis-
exchanges or relocate components to respond to changing tributed database interface to the information from a sensor
network conditions such as bandwidth availability or link relia- network with database-style queries. Power is managed in
bility. At a lower level, Mobiware [19] supports various levels Cougar by distributing the query among the sensor nodes to
of QoS by adapting streams within the network with active fil- minimize the energy consumed to collect the data and calcu-
ters deployed in the routers. Other middleware systems pro- late the query result. To support the database queries, SINA
vide hooks to allow the applications to adapt. For example, incorporates low-level mechanisms for hierarchical clustering
applications built on the Odyssey platform [20] can register of sensors for efficient data aggregation as well as protocols
for notification of changes in the underlying network data that limit the retransmission of similar information from geo-
rate. Similarly, the Spectra [21] component of Aura [22] moni- graphically proximate sensor nodes.
tors the network conditions and the accessible computation AutoSec [26], Automatic Service Composition, manages
resources, deciding where computation should be performed resources in a sensor network by providing access control for
based on the network transmission required to complete them applications so that QoS requests are maintained. This
as well as the expense of the computation on mobile versus approach is similar to middleware for standard networks
fixed nodes. These advances are applicable to wireless sensor because resource constraints are met on a per-sensor basis,
networks; however, they do not integrate any of the specific but the techniques for collecting the current resource utiliza-
data aggregation protocols of sensor networks, nor do they tion are tailored to the sensor network.
consider the details of the low-level wireless protocols. DSWare [27] provides a similar kind of data service abstrac-
Among existing distributed computing middleware, QoS- tion as AutoSec, but instead of the service being provided by
Aware Middleware [23] provides the closest example of a a single sensor, it can be provided by a group of geographical-
middleware that can support sensor network applications. ly close sensors. Therefore, DSWare can transparently man-
This middleware is responsible for managing local operating age sensor failures as long as enough sensors remain in an
system resources based on application requirements specified area to provide a valid measurement.
to the middleware. The application’s QoS information is com- While these middleware for sensor networks focus on the
piled into a QoS profile to guide the middleware in making form of the data presented to the user applications, Impala
resource use decisions. [28], designed for use in the ZebraNet project, considers the
oS gra ph
Sensor Q
Determine le
ed variab
network State-bas ents graph
type requirem
State A
Node discov B
ery
/* application: set variable requirements */
Calculate int define_variable_graph (SVRG *svrg);
FN
FN
/* sensor: push data */
int send_data (int dest_milan_id, int data_length,
Tradeoff char *data)
among
FA∩FN
fi
/* application : set system state */
int update_state (int state);
Configure f i
(a) (b)
■ Figure 5. a) A high-level overview of MiLAN operation. Segment A repeats when the application changes its state based on data
received from the sensors. Segment B repeats when sensors arrive in the network. Segment C repeats as data arrives from each sensor,
and represents the normal operation of MiLAN conveying information from the sensors to the application. b) Partial MiLAN API.
Applications represent their Sensor QoS graph to MiLAN using the SQoS structure and the define_qos_graph function, and they repre-
sent their State-based Variable Requirements graph to MiLAN using the SVRG structure and the define_variable_graph function. After
initialization, sensors send data to the application using the send data function and applications receive the data from MiLAN via an
upcall from the recv_data function. Applications specify to MiLAN that they have changed state through the update_state function.
range or sensors go offline when they move away or run out • The required QoS for each variable
of energy. We assume that application performance can be • The level of QoS that data from each sensor or set of sen-
described by the QoS of different variables of interest to the sors can provide for each variable
application, where the QoS of the different variables depends Note that all of these may change based on the application’s
on which sensors provide data to the application. For exam- current state. As shown in Fig. 5, during initialization of the
ple, in the personal health monitor, variables such as blood application, this information is conveyed from the application
pressure, respiratory rate, and heart rate may be determined to MiLAN via “State-based Variable Requirements” and
based on measurements obtained from any of several sensors “Sensor QoS” graphs. Examples of these graphs are shown in
[29]. Each sensor has a certain QoS in characterizing each of Figs. 6 and 7, respectively. Figure 6a, an abstract State-based
the application’s variables. For example, a blood pressure sen- Variable Requirements graph, shows the required QoS for
sor directly measures blood pressure, so it provides a quality each variable of interest based on the current state of the sys-
of 1.0 1 in determining this variable. In addition, the blood tem and the variables of interest to the application, where
pressure sensor can indirectly measure other variables such as these states are based on the application’s analysis of previ-
heart rate, so it provides some quality, although less than 1.0, ously received data. For a particular state (a combination of
in determining these variables. The quality of the heart rate system state, level A, and variable state, level B), the State-
measurement would be improved through high-level fusion of based Variable Requirements graph defines the required QoS
the blood pressure measurements with data from additional for each relevant variable. Because variables (level C) can be
sensors such as a blood flow sensor. named in multiple variable states (level B), MiLAN must
In order to determine how to best serve the application, extract the maximum QoS for each selected variable to satisfy
MiLAN must know: the requirements for all variable states. Figure 6b shows the
• The variables of interest to the application State-based Variable Requirements graph for the personal
health monitor. This application has two states, a system state
that includes the patient’s overall stress level, as well as multi-
1 Quality is mapped to a specific reliability in determining the variable ple states for each variable that can be monitored. The State-
from the sensor’s data, with 1.0 corresponding to 100 percent reliability. based Variable Requirements graph specifies to MiLAN the
BP HR
Norm Norm
System state V2 state .3 .3
B Blood Heart
SV1=1 SV1=2 SV1=M SV2=1 SV2=N pressure rate Heart rate
High/ High
Norm low (+ECG)
Blood pressure Respiratory rate
q1 q2 q3 q5 High Norm Low High/
q4 Norm low
.3 .8 .8
.3
C Vi Vj Vk .8 .3 .3
.8 .7 .3 .8 .3 .3 .3 1.0 1.0
Blood Blood Resp Blood Heart Blood ECG Blood
pressure O2 rate O2 rate O2 diag. pressure
(a) (b)
■ Figure 6. The State-based Variable Requirements graph for specifying the variables and required QoS when the application is in vari-
ous states: a) abstract example; b) example for the personal health monitor application. This graph illustrates only a subset of the appli-
cation’s possible states.
application’s minimum acceptable QoS for each variable (e.g., sensors satisfy all of the application’s QoS requirements for
blood pressure or respiratory rate) based on the current state each variable. These sets of sensors define the application fea-
of the patient. For example, the figure shows that when a sible set FA, where each element in FA is a set of sensors that
patient is in a medium stress state and the blood pressure is provides QoS greater than or equal to the application-speci-
low, the blood oxygen level must be monitored at a quality fied minimum acceptable QoS for each specified variable. For
level of .7 and the blood pressure at a quality level of .8. example, in the personal health monitor, for a patient in
For a given application, the QoS for each variable can be medium stress with a high heart rate, normal respiratory rate,
satisfied using data from one or more sensors. The application and low blood pressure, the application feasible sets in FA that
specifies this information to MiLAN through the Sensor QoS MiLAN should choose to meet the specified application QoS
graph (Fig. 7a). When multiple sensors are combined to pro- are shown in Table 1. MiLAN must choose which element of
vide a certain quality level to the variable, we refer to this as a F A should be provided to the application. This decision
single virtual sensor. Figure 7b shows the Sensor QoS graph depends on network-level information.
for the personal health monitor. This graph illustrates the
important variables to monitor when determining a patient’s Network
condition and indicates the sensors that can provide at least The properties of specific network types as well as the current
some quality to the measurement of these variables. Each line condition of the network can constrain the set of feasible sets
between a sensor (or virtual sensor) and a variable is labeled to a subset of those in FA. As shown in Fig. 5, it is the network
with the quality the sensor (or virtual sensor) can provide to plugin’s job to determine which sets of nodes (sensors) can be
the measurement of that variable. For example, using data supported by the network, as well as other protocol-specific
from a blood pressure sensor, the heart rate can be deter- information, such as what role each node must play.
mined with a .7 quality level, but combining this with data MiLAN uses a service discovery protocol (such as SDP [30]
from a blood flow sensor increases the quality level to 1.0. or SLP [31]) to find new nodes and learn when nodes are no
Given the information from these graphs as well as the cur- longer accessible (due to mobility or exhausting their energy
rent application state, MiLAN can determine which sets of resources). The service discovery protocol must return impor-
qs
qs5
■ Figure 7. The Sensor QoS graph for specifying which sensors, or sets of sensors, can provide what level of QoS for each variable: a)
abstract example; b) example for the personal health monitor application. This graph illustrates only a subset of the variables that
should be considered by the application.