HDA: A hierarchical data aggregation scheme for sensor networks

HDA: A hierarchical data aggregation scheme for sensor networks

Computer Communications 29 (2006) 1292–1299 www.elsevier.com/locate/comcom HDA: A hierarchical data aggregation scheme for sensor networks Bin Zhou a...

425KB Sizes 0 Downloads 40 Views

Computer Communications 29 (2006) 1292–1299 www.elsevier.com/locate/comcom

HDA: A hierarchical data aggregation scheme for sensor networks Bin Zhou a,*, Lek Heng Ngoh b, Bu Sung Lee a, Cheng Peng Fu a a

School of Computer Engineering, Nanyang Technological University, Singapore 639798, Singapore b Networking Department, Institute for Infocomm Research, Singapore 119613, Singapore Available online 14 November 2005

Abstract Sensor networks are wireless networks that can obtain and process physical world information from scattered sensor devices. Due to the limited power, slow processor, and less memory in each device, routing protocols of sensor networks must be designed carefully. Recently, a data-centric scheme called directed diffusion has been proposed to provide efficient data transmission over sensor networks. In this paper, we enhance this scheme by a hierarchical data aggregation technique (HDA). Experiments demonstrate that our enhanced scheme can save transmission energy up to 50% over directed diffusion, without any reliability or delivery efficiency being compromised. At the same time, our scheme can facilitate greater data-level aggregation in data-centric routing. q 2005 Elsevier B.V. All rights reserved. Keywords: Sensor networks; Location-centric; Data-centric; Directed diffusion; Hierarchical data aggregation

1. Introduction Sensor networks [2–4] are composed of many low cost, densely deployed sensor nodes with wireless communication capability. They have been used to obtain information in many environments [5–7]. However, the performance of sensor networks is largely limited by sensor’s low battery power, less computing capacity, restricted memory, and small transmission range. Therefore many schemes, particularly, routing schemes in sensor networks are carefully designed to provide highly efficient communications among the sensor nodes [8]. For example, there have been a number of location-centric protocols [9,10] proposed to provide data transmission control over sensor networks. In these protocols, each node knows its own position information (e.g. through GPS), and data are transmitted based on such information. More recently, a datacentric scheme called directed diffusion is proposed [1]. Unlike location-centric schemes, each sensor node in directed diffusion needs not to know its position information. All its decisions about data transmission are based on its knowledge about the neighboring nodes. However, directed diffusion (DD) generates some unnecessary traffic during data transmission, due to its flat structure. This shortcoming will be studied in detail in Section 2. To

solve such problems, we propose a hierarchical data aggregation scheme (HDA) to enhance directed diffusion [11]. In HDA, nodes between the sink and the source are arranged in different levels (i.e. hierarchy). Packets are only transmitted between two nodes in neighboring levels. We call the relationship of these two nodes ‘parent’ and ‘child’. In addition, two new principles are introduced into our proposal: parent-select aggregation and data distribution. All these new features can save energy significantly without any reliability or delivery efficiency being sacrificed. Furthermore, the flexibly defined attribute can facilitate greater data-level aggregation during transmission. All these features are described in detail in Sections 3 and 4. The rest of the paper is organized as follows. In Section 2, we briefly review the original directed diffusion scheme, and study its limitations. Section 3 presents our hierarchical scheme in detail. Simulation-based performance studies are conducted in Section 4. Section 5 gives some related work. Finally we conclude our work in Section 6. 2. Review: directed diffusion In this section, we first review the original directed diffusion in brief, and then point out its limitations. 2.1. Basic scheme

* Corresponding author. E-mail address: [email protected] (B. Zhou).

0140-3664/$ - see front matter q 2005 Elsevier B.V. All rights reserved. doi:10.1016/j.comcom.2005.10.006

In directed diffusion, whenever a sink node wants to extract some information from sensor networks, it will first send out its query. The query is carried by an interest message in directed

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

1293

Fig. 1. Directed diffusion. (a) Interest propagation. (b) Initial gradients setup. (c) Data delivery along reinforced path.

diffusion, and the interest message will be flooded through the whole sensor networks to ensure every node in the network will receive it. During interest message flooding, gradients are established between neighboring nodes. Here a gradient is a reply link to a neighbor from which the interest was received. After that, if some nodes (called sources) have matched data, they will return sample sensed data, which is called exploratory data, through the gradients established before. As these exploratory data reach the sink from different gradients, several paths are established between sink and source. From these multiple paths, the sink will select one path to the source, by sending message reinforcement. Finally, the real data will return from the source, following the selected path. Fig. 1, redrawn from Ref. [1], summarizes the directed diffusion protocol. Note that messages in directed diffusion such as interest, exploratory data, and reinforcement are generated periodically. Thus directed diffusion can keep updating paths between sink and source whenever some nodes fail.

When exploratory data message is returned from the source to the sink, each node has to rely such message to all its neighbors, because it does not know which neighbor can really pass the message to the sink. As a result, even if the sink and the source are near with each other, many other unnecessary nodes in the networks are involved in this communication, as shown in Fig. 2(a). If there are multiple sources and one sink, directed diffusion will do in-network data aggregation. However, such aggregation is opportunistic and may not efficient because the sink only selects the path based on a limited information (e.g. which neighbor sends back the exploratory data more quickly), as shown in Fig. 2(b). Moreover, if there are one source and multiple sinks, directed diffusion also involves unnecessary data transmissions due to the same reasons, as shown in Fig. 2(c). In fact, the most efficient way is: only one copy of the data is sent from the source to a node which is nearest with those sinks, and then distributed by that node to different sinks, as illustrated in Fig. 2(c).

2.2. Limitations 3. HDA: hierarchical data aggregation scheme As we have described, one node will create gradients with all its neighbors during the interest flooding. These gradients are used later to select a path for data transmission. However, such gradients can only provide limited information (for example, a node can only know which neighbor is nearest with it based on the sequence of interests it receives). In other words, to a node, each neighbor is almost identical. This will result in some limitations with directed diffusion in terms of the total amount of traffic generated, and hence energy-inefficiency.

To sum up, the main caused of the limitations of directed diffusion highlighted here is that, the knowledge of one node about its neighbors is insufficient, as it does not know which neighbor is nearer with the sink and which is nearer with the source; it does not know which neighbor can aggregate the data more efficiently; it does not know which neighbor can distribute its data to different sinks more efficiently, etc. To solve such problems, we proposed a hierarchical data

Fig. 2. Limitations in directed diffusion. (a) Unnecessary exploratory data. (b) Inefficient data aggregation. (c) Inefficient data distribution.

1294

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

Fig. 3. Overview of HDA.

Fig. 4. Hierarchy construction.

aggregation scheme called hierarchical data aggregation scheme (HDA). Instead of relying on a flat structure, our HDA scheme automatically introduces a hierarchical structure: all sensor nodes are arranged in different levels starting from the sink. As shown in Fig. 3, the sink node is in level 0, nodes that are one hop far from the sink are in level 1, whereas nodes that are two hops far from the sink are in level 2 and so on. As a result, the lower level a node is in, the nearer it is with the sink. Nodes in level NK1 are called ‘parents’ of nodes in level N, and nodes in level NC1 are called ‘children’ of nodes in level N. In other words, our hierarchical structure is a multi-parent–multi-child tree. Besides the hierarchical structure, our scheme also introduces two new principles: (1) parent-select aggregation. When sending a data message, each child selects a preferred parent to send to, i.e. the path is selected from source to sink. Notice that this is quite different from directed diffusion, in which the path is selected from sink to source. (2) Data distribution. When there are multiple sinks, a source only needs to send out one copy of the data, and this copy will be distributed to different sinks by some intermediate nodes during transmission. We describe the HDA in detail next. Specifically, we divided HDA into four components: hierarchy construction, attribute establishment, and parentselect aggregation, as well as data distribution. Note that, although the names of the messages in our scheme are similar to those in directed diffusion (i.e. interest, exploratory data, reinforcement and data), their usages are quite different.

its child. Any other interests with different level numbers (i.e. neither N nor NC2) should be ignored. Thus as the interests flood throughout the whole network, each node has a knowledge about all its parents and children. Similar to DD, HDA interest message is periodically disseminated throughout the sensor network, to maintain and update the hierarchical structure. Specifically, a node will record a timestamp for each parent. When it receives a new interest from a parent, it will update the timestamp of that parent if it is exist in the list or add that new parent to its parent list if it is not exist yet. This is to ensure that the hierarchy can keep renewable and scalable. Those timestamps are also used in parent-select aggregation, as described in Section 3.3.

3.1. Hierarchy construction Interest messages are broadcast by one node to all its neighbors. In each interest message, we add a field named as level. It denotes which level this message will reach next hop. It is initiated to be level 1 by the sink and get incremented by each node that forwards this interest, as shown in Fig. 4. When a node firstly receives an interest, it regards what the level field denotes as its level (say level N), and records the neighbor sending this interest to be its parent. After that, if another interest message containing the same level field (level N) is received, the node adds the sender of such message to its parent list. On the other hand, if an arriving interest message contains a level field NC2, then the message should be sent from the next level (NC1) node and hence the sender should be

3.2. Attribute establishment Although in the hierarchical structure each child has multiple parents, only one parent needs to be chosen when transmitting data. The attribute of the parent is used here to decide the choice. Attributes can contain characteristics of the parent such as energy, memory, or even more complicated value. Here, to gain more energy saving, we use an example attribute to record the number of sources covered under the sub-tree rooted by the node. We first describe how this attribute is established and demonstrate the effect of this attribute later in Section 3.3. This attribute is established as following: when the source receives the interest, and it has the appropriate data to offer, it will send back the exploratory data. Note that these exploratory data are only transmitted from each child to all its parents and never be diffused within the same level. Thus the communication is constrained in a small scope between sink and source, as described in Fig. 2(a). In our proposal, there is also an additional field in the exploratory data that identifies the source from which the data is sent. When the exploratory data pass through a node, the node will record such sources’ IDs. The number of these sources represents how many sources are in the sub-tree rooted by this node, and it should be the attribute of the node. Fig. 5(a) shows the procedure and the number beside the node denotes its attributes. After the sink receives the exploratory data, it will respond with the reinforcement. Since each parent has established the attribute, it utilizes reinforcement messages to inform its children about its own attribute, by adding a field in the message to denote it. The reinforcements are transmitted from

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

Fig. 5. Attribute establishment. (a) Exploratory data—counting the attribute. (b) Reinforcement—advertising the attribute.

each parent to all its children, thus allowing every child to know the attributes of its parents, as shown in Fig. 5(b). Exploratory data and reinforcement are also periodically exchanged between the sources and the sink, but the period is always longer than that of interest. When the child receives a new reinforcement from its parent, it will update its parent attribute. 3.3. Parent-select aggregation Once a source receives the reinforcement, it sends out the actual sensed data. When a data is transmitted from the child to the parent, the child chooses the parent whose attribute is best in all the ‘alive’ parents. Here ‘alive’ parents mean those parents whose interest messages have been heard by the child node recently. To ensure that, the child node calculates the difference of its parent timestamp and the current time. If the difference is smaller than the period of interest flooding (say 5 s), then it means the parent is alive. During data transmission, the selected parent may fail. In this case, its timestamp will not be updated in the next interest flooding and the difference of the timestamp and the current time will be larger than 5 s. Then the child will notice it is not alive anymore and turn to choose another ‘alive’ to transmit the data again. The simulation results in Section 4.1 show that: although the hierarchical structure is not reliable than the flat one, this principle of parent-select aggregation helps our scheme gain much in reliability to outperform directed diffusion. At the same time, the attribute we define here actually means the number of sources whose data maybe pass through this parent, so the best attribute means the strongest gathering

Fig. 6. Parent choice and data aggregation.

1295

Fig. 7. Using energy status as the attribute. (a) First round. (b) Second round.

capability. Letting such nodes perform data-level aggregating can lead to maximum efficiency and realize the efficient path in Fig. 2(b). Fig. 6 shows the procedure of choosing parents and aggregating data. Note that, if we use another characteristic, e.g. the amount of energy left in the node, to be the attribute of the parent, the data aggregation still works. However, such data aggregation provides another result: gain the energy balance during longterm transmission [12]. This is because children always choose the parent that has the highest energy level in turn to transmit the data. Thus more parents are involved in the transmission and more nodes share the total dissipated energy, gaining energy balance, as shown in Fig. 7. Our experimental results in Section 4.2 demonstrate this point. 3.4. Data distribution So far we describe the scenario in which there are one sink and multiple sources. We shall now elaborate how our scheme deals with multiple sinks. In this case, each sink will have an individual hierarchical structure in the sensor network. Specifically, each sink spreads its own interests to the network, and then every node obtains the information of its parents and children based on such separate interests. As a result, the node knows its hierarchy position for each sink, e.g. a node may be in level 2 for one sink and in level 5 for another sink. Note that, if these sinks are on the same side and near with each other, there is a high probability that the source will select the same parent to transmit the data to different sinks, as shown in Fig. 8. Here the source is in level 3 for sink 1 and in level 2 for sink 2 and sink 3. However, no matter what level it belongs to, its best attribute parents for different sink are the same. In

Fig. 8. Data distribution.

1296

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

4.1. Comparative evaluation In this simulation, we study our scheme performance such as energy efficiency, deliver efficiency and reliability, under different network sizes ranging from 50 to 250 nodes, and compare with directed diffusion. Fifty nodes are randomly spread in a 160!160 m square field. As the number of nodes increases, we either extend the square or maintain it, keeping a fixed density or a fixed field. The duration of simulations is 100 s.

Fig. 9. Energy efficiency.

this case, we employ another HDA principle—data distribution. When a data is wanted by different sinks but its next hop is the same, the child will send only one copy of that data to the next node, listing sinks which wants that data in the packet’s header. Based on this list, the next node can distribute the data to different parents if needed. Thus, we can avoid retransmitting many copies of a same data to the next hop at a time, as described in Fig. 2(c). Fig. 8 shows how the data distribution principle works in our scheme.

4. Performance evaluation In this section, we study the performance of our proposed algorithm (HDA) as compared to directed diffusion (DD) by ns-2 [13,14]. In all scenarios of the experiments, we use the same parameters as in Ref. [1] such as idle-time power dissipation of 35 mW, receive power dissipation of 395 mW, and transmit power dissipation of 660 mW. The radio range is set to 40 m. The interest rate of sinks is 1 event per 5 s; exploratory data rate of sources is 1 event per 50 s; and the data rate of sources is 2 events per 1 s.

4.1.1. Energy efficiency At first we employ a common scenario: there are five sinks and five sources randomly in the whole square field. Average dissipated energy measures the ratio of total dissipated energy per node in the network to the number of distinct event seen by sinks. From Fig. 9 we can see HDA can reduce much energy consumption comparing with directed diffusion. This is because HDA has overcome three limitations as we described before: (1) with hierarchical structure, exploratory data are constrained in a small scope between sink and source; (2) parent-select aggregation principle provides stronger aggregating capability than DD; (3) data distribution principle reduces more unnecessary data transmission when there are multiple sinks. We also study the impact of different number of sources and sinks over the energy consumption. In this case, the network size is fixed as 100 nodes. At first, one sink and various numbers of sources are randomly placed when studying the impact of sources. Then, one source and various numbers of sinks are randomly placed when studying the impact of sinks. As depicted in Fig. 10, HDA always performs better whenever sources or sinks increase. 4.1.2. Delivery efficiency The common scenario is used here: five sinks and five sources are randomly scattered in the whole square field. Distinct-event delivery ratio measures the ratio of the actual number of events received by the sink to the theoretic number

Fig. 10. Impact of (a) sources and (b) sinks over energy consumption.

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

1297

4.1.4. Memory consumption As described before, our scheme solves DD’s problems by making a node to obtain more information about its neighbors. As a result, our scheme requires more memory for a sensor node than DD, to record such information. In this section, we study the memory consumption in our scheme as compared with DD. In directed diffusion, a node only needs to record the gradients of all its neighbors, no matter how many sinks exist. In our scheme, however, a node must record the information of its parents and children for each sink. Assume the node uses 4 bytes to record the ID of each neighbor/parent/child, and uses 8 bytes to record the gradient/attribute. As a result, a node in DD needs Fig. 11. Delivery efficiency.

of events should be received. This metric can denote the drop probability caused by contention during transmission. Fig. 11 shows shat, as the scale increases, DD’s performance decreases faster than our proposal. This is because there are much more packets transmitted in directed diffusion than those in HDA, which can cause serious contentions.

ð4 C 8Þ !N bytes memory during communications, where N is the number of its neighbors. On the other hand, a node in HDA needs iZM X ðð4 C 8Þ !pi C 4 !qi Þ iZ1

4.1.3. Reliability The common scenario is used here again: five sinks and five sources are randomly scattered in the whole square field. In order to simulate the reliability, we let 20% of the nodes in the network fail randomly during the simulation. Fig. 12 shows the results. Delivery ratio here measures the ratio of the number of the events received by the sinks when failures occur to the number of events received by the sinks when there is no failure. From the figure we can see, although DD’s flat structure outperforms HDA’s hierarchical structure, the parent-select aggregation principle can make HDA be more stable: once an essential node fails, DD needs wait for the next exploratory round (50 s) to find another way, but our proposal only waits for the next interest round (5 s) to let children choose another parent to transmit the data.

bytes memory, where pi and qi are the numbers of its parents and children for the ith sink, respectively. Our simulations give the numeric results. At first, we employ the common scenario: five sinks and five sources are randomly placed in the whole square field. Average memory consumption measures the average used memory per node involved in the communication. As shown in Fig. 13, our schemes demands about 100 bytes more memory than DD anytime. We also study the impact of sources and sinks over memory consumption. At first, one sink and various numbers of sources are randomly placed when studying the impact of sources. Then, one source and various numbers of sinks are randomly placed when studying the impact of sinks. Fig. 14 shows that, the number of sinks has heavy impact on our scheme: more sinks always cause more memory consumption. This is because we must record the information for each sinks.

Fig. 12. Reliability.

Fig. 13. Memory consumption.

1298

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

Fig. 14. Impact of (a) sources and (b) sinks over energy consumption.

Although HDA consumes more memory than DD when sinks increase, such consumption is not a heavy burden for a sensor node, whose memory size is normally 32–512 kbytes [15]. Furthermore, unlike energy, memory in a node is reusable, thus it is reasonable to trade-off memory consumption for energy efficient. 4.2. Impact of applicable attribute This simulation studies the impact of different attribute used in data aggregation. Two types of attributes are used here. One is the number of sources contained in the sub-tree rooted by the parent, as used before. We call it energy-saving attribute. The other one is the amount of energy left in one node. Because it can get energy balance, we called it energy-balance attribute. The scenario is as follows: 50 nodes are randomly placed in 160!160 m square field. One sink (node 0) is in the top position and five sources (node 1–5) are randomly in the bottom 1/4 area. The duration of long-term simulations is 1000 s. We observe the energy consumed by the intermediate

nodes (node 6–49) involved in data transmission, including attribute establishment and data aggregation. A typical sample during experiment is shown in Fig. 15. Dissipated energy ratio measures the ratio of the energy used by each node during data transmission to the total energy involved. We can see that using energy-balance attribute can cause more nodes into data transmission and thus make the energy consumption more equitable, but the total energy consumption is larger because its degree of aggregation is lower than that using energy-saving attribute. The average results of the simulation are listed in Fig. 16. 5. Related work Sensor network is regard as a new technology in the near future [16]. Many evolutions have made sensor network more efficient and more useful [17]. Our work in this paper is also informed and influenced by a number of other proposals. Preceding data-centric routing protocols, there have been some hierarchy-like schemes on location-centric protocols.

Fig. 15. Impact of applicable attribute. (a) Using energy-saving attribute. (b) Using energy-balance attribute.

B. Zhou et al. / Computer Communications 29 (2006) 1292–1299

1299

References

Fig. 16. Comparison of energy-saving and energy-balance scenarios.

Paper [9] divides the network into several regions (source, destination, and forwarding). Messages are unicast to an arbitrary node in the specific region and then may be broadcast to any node of the region. When routed within the region, messages are collected from each node to the manager nodes using delivery tree rooted at nodes in a manager sub-region. TTDD [10] is another location-centric proposal, which is a two-tier data dissemination approach. The data source proactively builds a grid structure throughout the sensor field. The query from the sink traverses two tiers to reach a source. The lower tier is within the local grid and query is flooding to the nearest dissemination node on the grid edge, and these dissemination nodes on the edge (known as the higher tier) then pass the query to the source or the dissemination node that has received the source’s data. In this way the dissemination path is built up. Directed diffusion (DD) [1] gives us a paradigm for datacentric routing. Our scheme borrows heavily from directed diffusion. The four phases in the scheme are piggyback with four steps of DD (interest, exploratory data, reinforcement, and data). When constructing the hierarchy, our proposal is similar to that in Ref. [18], which is used to build up a multicast tree. Also, the paper [19] prompted us to propose a multiple-parent tree structure to provide multiple paths for children to select. The attribute usage in our scheme are enlightened by the Semantic Routing Tree (SRT) [20], which is a mechanism for query dissemination in upper application layer. The difference is that the attribute of SRT is used to disseminate the query efficiently, while we have generalized it for data aggregation. 6. Conclusion In this paper, we designed a hierarchical data aggregation scheme (HDA) for sensor networks, which is derived from the basic directed diffusion. Based on hierarchy dividing, each node has more information to know about its neighbors such as who are parents or who are children. With two new principles—parent-select aggregation and data distribution— embedded, our scheme can save much more transmission energy than directed diffusion, without any reliability or delivery efficiency being sacrificed. Moreover, the flexibly defined attributes make our scheme friendlier for applicationlevel data aggregation.

[1] C. Intanagonwiwat, R. Govindan, D. Estrin, J. Heidemann, F. Silva, Directed diffusion for wireless sensor networking, IEEE/ACM Transactions on Networking 11 (2002) 2–16. [2] W. Heinzelman, A. Chandrakasan, H. Balakrishnan, Energy-efficient communication protocols for wireless microsensor networks, Proceedings of Hawaiian International Conference on Systems Science, January 2000. [3] A. Manjeshwar, D.P. Agrawal, TEEN: a routing protocol for enhanced efficiency in wireless sensor networks, Parallel and Distributed Processing Symposium, Proceedings 15th International, 2001, pp. 2009–2015. [4] K. Sohrabi, J. Gao, V. Ailawadhi, G.J. Pottie, Protocols for selforganization of a wireless sensor network, IEEE Personal Communications 7 (2000) 16–27. [5] G.J. Pottie, W.J. Kaiser, Wireless integrated network sensors, Communications of ACM May (2000). [6] D. Estrin, R. Govindan, J. Heidemann, S. Kumar, Next century challenges: scalable coordination in sensor networks, Proceedings of the Fifth Annual ACM/IEEE International Conference on Mobile Computing and Networking (MOBICOM), 1999, pp. 263–270. [7] L. Schwiebert, S.K.S. Gupta, J. Weinmann, Research challenges in wireless networks of biomedical sensors, The Seventh Annual International Conference on Mobile Computing and Networking, July 2001. [8] W.R. Heinzelman, J. Kulik, H. Balakrishman, Adaptive protocols for information dissemination in wireless sensor networks, Proceedings of the Fifth Annual ACM/IEEE International Conference on Mobile Computing and Networking, August, 1999, pp. 174–185. [9] K.C. Wang, P. Ramanathan, Location-centric networking in distributed sensor networks in: S. Iyengar, R. Brooks (Eds.), Frontiers in Distributed Sensor Networks, CRC Press, in press. [10] H. Luo, F. Ye, J. Cheng, S. Lu, L. Zhang, TTDD: Two-Tier Data Dissemination in Large-Scale Wireless Sensor Networks. ACM Kluwer Mobile Networks and Applications (MONET), Special Issue on ACM MOBICOM, 2003. [11] B. Zhou, L.H. Ngoh, B.S. Lee, C.P. Fu, A hierarchical scheme for data aggregation in sensor network, Twelfth IEEE International Conference on Networks, November 2004. [12] Rahul C. Shah, Jan M. Rabaey, Energy aware routing for low energy ad hoc sensor networks, Wireless Communications and Networking Conference, 2002. [13] Fabio Silva, John Heidemann, Ramesh Govindan, Network Routing Application Programmer’s Interface (API) and Walk Through 9.0.1. http://www.isi.edu/scadds/papers/nr_api_9_0_1.pdf, December 2002. [14] S. Bajij, L. Breslau, D. Estrin, K. Fall, S. Floyd, P. Haldar, M. Handley, A. Helmey, J. Heidemann, P. Huang, S. Kumar, S. McCanne, R. Rejaie, P. Sharma, K. Varadhan, Y. Xu, H. Yu, D. Zappala, Improving simulation for network research, University of Southern California, Los Angeles, Technical Report 99-702b, 1999. [15] Phil Levis, David Culler, Mate´: a virtual machine for tiny networked sensors, Tenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-X), October 2002. [16] M. Weiser, The computer for the 21st century, Scientific American (1991) 66–75. [17] Chee-Yee Chong, Srikanta P. Kumar, Sensor networks: evolution, opportunities, and challenges, Proceedings of the IEEE 91 (8) (2003). [18] J. Mirkovic, G.P. Venkataramani, S. Lu, L. Zhang, A self-organizing approach to data forwarding in large-scale sensor networks, Proceedings of IEEE International Conference on Communications (ICC), June 2001. [19] Deepak Ganesan, Ramesh Govindan, Scott Shenker, Deborah Estrin, Highly-resilient, energy-efficient multipath routing in wireless sensor networks, Mobile Computing and Communications Review 5 (4) October 2001. [20] Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, The design of an acquisitional query processor for sensor networks, SIGMOD, June 2003.