<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="review-article">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">jsan</journal-id>
      <journal-title>Journal of Sensor and Actuator Networks</journal-title>
      <abbrev-journal-title abbrev-type="publisher">JSAN</abbrev-journal-title>
      <abbrev-journal-title abbrev-type="pubmed">JSAN</abbrev-journal-title>
      <issn pub-type="epub">2224-2708</issn>
      <publisher>
        <publisher-name>MDPI</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3390/jsan1010059</article-id>
      <article-id pub-id-type="publisher-id">jsan-01-00059</article-id>
      <article-categories>
        <subj-group>
          <subject>Review</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Techniques and Challenges of Data Centric Storage Scheme in Wireless Sensor Network</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name>
            <surname>Ahmed</surname>
            <given-names>Khandakar</given-names>
          </name>
        </contrib>
        <contrib contrib-type="author">
          <name>
            <surname>Gregory</surname>
            <given-names>Mark A.</given-names>
          </name>
          <xref rid="c1-jsan-01-00059" ref-type="corresp">*</xref>
        </contrib>
      </contrib-group>
      <aff id="af1-jsan-01-00059">School of Electrical and Computer Engineering, RMIT University, Melbourne VIC 3001, Australia; Email: <email>khandakar.ahmed@rmit.edu.au</email></aff>
      <author-notes>
        <corresp id="c1-jsan-01-00059"><label>*</label> Author  to whom correspondence should be addressed; Email: <email>mark.gregory@rmit.edu.au</email>; Tel.: +61-3-9925-2000; Fax: +61-3-9925-2007.</corresp>
      </author-notes>
      <pub-date pub-type="epub">
        <day>12</day>
        <month>06</month>
        <year>2012</year>
      </pub-date>
      <pub-date pub-type="collection"><month>03</month>
        <year>2012</year>
      </pub-date>
      <volume>1</volume>
      <issue>1</issue>
      <fpage>59</fpage>
      <lpage>85</lpage>
      <history>
        <date date-type="received">
          <day>19</day>
          <month>04</month>
          <year>2012</year>
        </date>
        <date date-type="rev-recd">
          <day>28</day>
          <month>05</month>
          <year>2012</year>
        </date>
        <date date-type="accepted">
          <day>04</day>
          <month>06</month>
          <year>2012</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>©  2012 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
        <copyright-year>2012</copyright-year>
        <license xmlns:xlink="http://www.w3.org/1999/xlink" license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/3.0/">
          <p>This article is an open-access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p>
        </license>
      </permissions>
      <abstract>
        <p>Storing, collecting and querying data across miniaturized battery powered Wireless Sensor Networks (WSN) is a key research focus today. Distributed Data-Centric Storage (DCS), an alternate to External Storage (ES) and Local Storage (LS), is thought to be a promising and efficient storage and search mechanism. There has been a growing interest in understanding and optimizing WSN DCS schemes in recent years, where the range query mechanism, similarity search, load balancing, multi-dimensional data search, as well as limited and constrained resources have driven this line of research. In this paper, an extensive state-of-the-art study is provided including the prime WSN DCS schemes, challenges that inspired these schemes, as well as drawbacks and shortcomings of existing solutions. In contrast to previous surveys that briefly discuss the contribution of a few WSN DCS mechanisms, we provide a thematic taxonomy in which schemes are classified according to the problems dealt with including range query, similarity search, data aggregation, sensor network field non-uniformity, multi-replication, load balancing and routing algorithm. </p>
      </abstract>
      <kwd-group>
        <kwd>Greedy Perimeter Stateless Routing</kwd>
        <kwd>Distributed Hash Table</kwd>
        <kwd>Data Centric Storage</kwd>
        <kwd>spatial temporal similarity search</kwd>
        <kwd>range queries</kwd>
        <kwd>multi-replication</kwd>
        <kwd>non-uniformity of sensor network field</kwd>
        <kwd>Load Balanced Data Centric Storage</kwd>
        <kwd>Geographic Hash Table</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec sec-type="intro">
      <title>1. Introduction</title>
      <p>Research into sensor networks has increased over the last twenty years. A logical extension of the research carried out into sensor networks has been into the use of wireless transmission to form Wireless Sensor Networks (WSN). WSN is now being used for unattended monitoring of infrastructure including road, rail, bridges, factories <italic>etc.</italic>; a range of environments such as forests, ocean life, <italic>etc.</italic>; and even humans. Both mobile ad-hoc networks and WSN are infrastructure-less with a dynamic nature for the number of nodes and their mobility pattern, however, WSN has become more exigent with two additional challenges: limited resources and an extremely large number of nodes in a defined space. The prime focus of WSN is sensed data, specific to an application, and thereafter the identity of a sensor is not as important as the data associated with it. The nature of WSN has led to research into efficient data storage and retrieval methods.</p>
      <p>There are three canonical data storage and retrieval methods [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>,<xref ref-type="bibr" rid="B2-jsan-01-00059">2</xref>] referred to as External Storage (ES), Local Storage (LS) and Data-Centric Storage (DCS). In ES [<xref ref-type="bibr" rid="B3-jsan-01-00059">3</xref>,<xref ref-type="bibr" rid="B4-jsan-01-00059">4</xref>,<xref ref-type="bibr" rid="B5-jsan-01-00059">5</xref>,<xref ref-type="bibr" rid="B6-jsan-01-00059">6</xref>] nodes send data to the base station or gateway without prior processing or waiting for any query, and thus generated traffic is highly directed from many nodes towards one or a few sink nodes creating a potential bottleneck or hotspot surrounding the base station. The excessive traffic, created due to the continuous reporting of sensor data, leads to the high consumption of energy per node reducing the overall lifetime of the network. ES approaches may also have an unbalanced energy consumption rate among nodes due to the variation of distances between base station and sensor node. Furthermore, since the sink node is solely responsible to aggregate/fuse data and answer all queries, ES may result in delayed service. In LS [<xref ref-type="bibr" rid="B7-jsan-01-00059">7</xref>,<xref ref-type="bibr" rid="B8-jsan-01-00059">8</xref>,<xref ref-type="bibr" rid="B9-jsan-01-00059">9</xref>,<xref ref-type="bibr" rid="B10-jsan-01-00059">10</xref>,<xref ref-type="bibr" rid="B11-jsan-01-00059">11</xref>] each node keeps its sensed data locally and uses flooding for queries consuming a significant amount of energy resources. Since the query node does not know the target node that stores the data of interest, it executes a blind query to all sensor nodes for data retrieval. In DCS, an event name is hashed to find the geographic location where data is sent to be stored. Data with the same event name is stored at the node closest to the same geographical location. Hence, queries with a particular name can be forwarded directly to the node storing the named data avoiding flooding. In [<xref ref-type="bibr" rid="B7-jsan-01-00059">7</xref>], this approach has been shown as an energy-efficient data dissemination technique when compared to LS and ES. </p>
      <p>The key design constraint in WSN is the limited energy budget of a wireless sensor node together with the requirement for a long lifetime. In typical wireless sensor applications, the node’s radio consumption dominates the total energy consumption. In [<xref ref-type="bibr" rid="B12-jsan-01-00059">12</xref>], it is identified that a common node continuously powered on drains an AA battery of 300 mAh in four days where the typical operation target is several years. Thus providing the guarantee of longevity under the specified energy and complexity constraints is one of the prime concerns for a WSN design. DCS [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>,<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>,<xref ref-type="bibr" rid="B14-jsan-01-00059">14</xref>,<xref ref-type="bibr" rid="B15-jsan-01-00059">15</xref>] achieves this design goal by storing events in specified locations and uses data and communication naming abstractions rather than network addresses. Networks are usually divided into regions or sections where each region (or rendezvous nodes) represents a particular event or data type. Geographic Hash Table (GHT) [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>] is the first DCS mechanism, proposed in 2002, where Ratnasamy, <italic>et al.</italic> use Distributed Hash Table (DHT) in order to map an event name to geographical spatial locations. It was proposed to select one (or more) rendezvous node(s), based on the event type, as the target node to store data. This reduces both storage and query cost. Subsequent research has been carried out targeting different challenges including non-uniformity of the network, multi-dimensional attributes, range query, data aggregation and similarity searches. However, consolidated research covering all the issues does not appear to have occurred yet.</p>
      <p>A previous milestone survey [<xref ref-type="bibr" rid="B16-jsan-01-00059">16</xref>] focused on briefly describing the contribution of the relevant DCS techniques. The survey classified the DCS schemes according to multi-replication, storage policies and routing. The survey, however, did not cover the requirements and challenges involved in data storage and retrieval methods such as similarity search, data aggregation, range query, multi-replication, non-uniformity of the network, load balancing and so on, rather it briefly depicted different DCS schemes. Hence, this classification may be altered to present the DCS approaches according to the problems dealt with. In this paper we provide a thematic classification that presents DCS schemes in a different light. Rather than classifying the DCS schemes according to specific techniques, a classification is proposed according to the problems the DCS schemes attempt to solve, thus providing a more efficient understanding of the proposed solutions. Furthermore, beyond an orthodox classification approach, this paper categorizes the routing algorithms used in the DCS schemes into two types of generalized routing that are referred to as point-to-point routing and spanning tree based routing.</p>
      <p>The rest of the paper is organized as follows: <xref ref-type="sec" rid="sec2-jsan-01-00059">Section 2</xref> briefly discusses a few challenges and the design drivers in the DCS research field. Different DCS approaches in the current state-of-the-art are briefly described and analyzed in <xref ref-type="sec" rid="sec3-jsan-01-00059">Section 3</xref> while <xref ref-type="sec" rid="sec4-jsan-01-00059">Section 4</xref> presents the classification of the DCS schemes based on the challenges illustrated in <xref ref-type="sec" rid="sec2-jsan-01-00059">Section 2</xref> including range query, similarity search, data aggregation, sensor network field non-uniformity, multi-replication, load balancing and routing algorithm. Finally, <xref ref-type="sec" rid="sec5-jsan-01-00059">Section 5</xref> draws conclusions. Throughout the paper cost metrics is considered in terms of energy, and it is measured as the number of MAC-layer hops.</p>
    </sec>
    <sec id="sec2-jsan-01-00059">
      <title>2. Taxonomy and Design Drivers</title>
      <p>A data storage scheme in WSN faces diverse challenges in offering data storage, search and query services. A few of the WSN data storage schemes manage multi-dimensional attribute, range queries, similarity search, data aggregation, non-uniformity of sensor network field, multi-replication and load-balancing of storage among sensor nodes. In the last half of this decade, these challenges and improved functionalities in the field of data mapping, routing and searching technique were the driving force behind the acceleration of research in this field and a number of alternate approaches and solutions for WSN. This section briefly presents a few of these challenges to assist with understanding the taxonomy of DCS schemes presented in <xref ref-type="sec" rid="sec4-jsan-01-00059">Section 4</xref>.</p>
      <sec id="sec2dot1-jsan-01-00059">
        <title>2.1. Multi-Dimensional Attribute</title>
        <p>Heterogeneous WSN is the outcome of recent advances in sensor hardware design, where the sensor may have multiple capabilities in terms of computing, power supplies, communicating and sensing [<xref ref-type="bibr" rid="B17-jsan-01-00059">17</xref>,<xref ref-type="bibr" rid="B18-jsan-01-00059">18</xref>]. Hence, a heterogeneous network currently is able to detect multiple attributes of the environment such as humidity, temperature, level of a particular gas in the atmosphere, <italic>etc.</italic> For example, in an air pollution measuring application, the measurement data may be the fusion of several parameters such as temperature, level of carbon monoxide, level of smoke, <italic>etc.</italic> In such an application, it is reasonable to have storage and search mechanism for multi-dimensional queries. For example, scientists analyzing the growth of marine microorganisms, in a sea environment surveillance application, might be interested in the multiplex events that occurred within certain temperature and light conditions, e.g., “find all events that have temperatures above 22 Celsius degrees and light levels above 15 Fluxes”.</p>
      </sec>
      <sec id="sec2dot2-jsan-01-00059">
        <title>2.2. Range <italic>versus</italic> Point Queries</title>
        <p>Range query is another challenge for DCS schemes. For example, a user may be interested in a range rather than a specific point value. For example, air pollution may occur if the level of carbon monoxide is in the range of 30 L/mol to 90 L/mol. A possible query is to find all of the sensing points where the level of carbon monoxide falls into the possible air pollution range. With range queries, users can drill down to improve their search efficiency for the events of interest. The example query presented above illustrates this and may be used by an environmental scientist carrying out a study in a particular forest to identify if carbon monoxide levels cause air pollution and perhaps also to map the results across the region under study with other parameters to identify causal links or to draw a conclusion [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>].</p>
      </sec>
      <sec id="sec2dot3-jsan-01-00059">
        <title>2.3. Similarity Search</title>
        <p>Due to sensor hardware imprecision and environmental parameter variations, the similarity search problem in WSN has received considerable research attention. In certain applications or circumstances in addition to an exact match, it is necessary to search within a specified similarity range. For example, a multi-dimensional query on the attributes temperature, carbon monoxide, forest name, location, and smoke level with values 100°| 150 L/mol| Melaleuca| North| 130 L/mol may also wish to identify a similar set of values 90°| 150 L/mol| Melaleuca| South| 130 L/mol. A similarity search may also be useful in many applications such as identifying similar ocean current flows or wildlife activities during habitat monitoring [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]. A traditional approach for a similarity search may be inefficient for the highly energy-constrained sensor network. A possible approach is to search for similar data to the query without collecting data from all of the sensors.</p>
      </sec>
      <sec id="sec2dot4-jsan-01-00059">
        <title>2.4. Data Aggregation</title>
        <p>Based on the data stored in sensors, DCS networks can facilitate data aggregation in a fully distributed way. By using data aggregation, traffic generated by producer nodes can be reduced before answering consumer queries. Monitoring building integrity during earthquakes by engineers, habitat monitoring by biologists, monitoring temperature and power usage in data centers by a cluster computer administrator are examples of sensor applications depending on the ability to extract summary (aggregate) data rather than raw data from the network.</p>
      </sec>
      <sec id="sec2dot5-jsan-01-00059">
        <title>2.5. Non-Uniformity of Sensor Network Field</title>
        <p>In some deployments, sensors may not be uniformly distributed, which means that some sections or zones may be densely populated while others are not. In mobile WSN, sensors may move from one place to another creating additional non-uniformity. In the current state of the art, most DCS schemes are proposed with uniformly distributed sensors. This assumption leads to data losses in overburdened sensors.</p>
      </sec>
      <sec id="sec2dot6-jsan-01-00059">
        <title>2.6. Multi-Replication</title>
        <p>Multi-replication reduces the data loss that happens due to node failure or node mobility from one rendezvous zone to another. Furthermore, multi-replication may facilitate data fusion and aggregation. In the literature, most of the DCS schemes fail to meet the key issue of recovering lost data during data replication.</p>
      </sec>
      <sec id="sec2dot7-jsan-01-00059">
        <title>2.7. Load Balancing</title>
        <p>In WSN certain popular events may generate higher data traffic volumes than other events and hence may overburden certain nodes, sections or zones and lead to data loss while others may be left with a light storage load or remain empty. Therefore, it is important to balance the storage load among the sensors to prevent imposing too high a storage load on some nodes.</p>
      </sec>
    </sec>
    <sec id="sec3-jsan-01-00059">
      <title>3. DCS Scheme Families</title>
      <p>The number of DCS schemes has grown over the last decade. An important aspect of the review of DCS schemes is identifying the key DCS schemes in the literature. This section includes a description of the leading DCS schemes along with their variations in data mapping for storage, routing and searching technique.</p>
      <sec id="sec3dot1-jsan-01-00059">
        <title>3.1. Geographic Hash Table</title>
        <p><italic>Geographic Hash Table (GHT)</italic> [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>] was the first DCS scheme proposed in 2002 by Ratnasamy, <italic>et al.</italic> The motivation for this research was to make effective use of the vast amount of data gathered by large-scale sensor networks using scalable, self-organizing and energy-efficient data dissemination algorithms. Ratnasamy, <italic>et al.</italic> use a Distributed Hash Table (DHT) [<xref ref-type="bibr" rid="B20-jsan-01-00059">20</xref>] in order to hash keys, for example event name or type, into geographic co-ordinates and store this event in sensor nodes in a geographic location closer to the co-ordinates. Greedy Perimeter Stateless Routing (GPSR) [<xref ref-type="bibr" rid="B21-jsan-01-00059">21</xref>] was used to store and/or retrieve data from a sensor node. GHT uses the function <italic>put </italic>(<italic>k</italic>, <italic>d</italic>), where <italic>k </italic>is a hash key used as the destination geographical location and <italic>d</italic> is the data, to forward a data packet to the location <italic>k</italic> using GPSR. The closest sensor node to the geographical location <italic>k</italic> is chosen as the home node, where data is stored for this event type. Similarly, when a consumer wants to consume/query data of an event type (for this particular case e.g., <italic>humidity</italic>), GHT again maps the event type to the hash key <italic>k</italic> and uses <italic>get(k)</italic> to forward the query to the corresponding spatial/geographical location <italic>k</italic>. The home node then replies by providing stored data for that event type. In <xref ref-type="fig" rid="jsan-01-00059-f001">Figure 1</xref>, sensors are represented by ‘<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i001.tif"/>’. A producer node senses a value and forwards it to home node denoted by ‘<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i002.tif"/>’. In turn, another consumer node uses the same hash function and retrieves the stored data from the home node. When storing data, represented by ‘<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i004.tif"/>’, the producer node sends data to the target node and in the retrieval process, denoted by ‘<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i005.tif"/>’, the query is first forwarded to the home node and replies are then sent back to consumer.</p>
        <fig id="jsan-01-00059-f001" position="anchor">
          <label>Figure 1</label>
          <caption>
            <p>Geographic Hash Table [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g001.tif"/>
        </fig>
      </sec>
      <sec id="sec3dot2-jsan-01-00059">
        <title>3.2. Similarity Data Storage (SDS)</title>
        <p><italic>Similarity Data Storage (SDS)</italic> [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>] proposes an efficient spatial-temporal similarity search scheme for both static and dynamic WSN. Efficient data aggregation and query, similarity search for multi-attribute data and spatial temporal search are identified as three major challenges faced by DCS schemes. SDS is an important approach that utilizes spatial-temporal and similarity search functionalities and aims to reduce overhead, energy consumption and search latency. In SDS, a deployed large-scale WSN field is considered as a rectangular field. The entire field is divided into small rectangular zones. Each zone has a dedicated sensor node named as zone head. It is assumed that each node in the network is configured with three information elements: (1) Number of zones horizontally <italic>n<sub>x</sub></italic> and vertically <italic>n<sub>y</sub></italic>., (2) the zone ID assignments scheme—IDs are assigned within the zone sequentially from left to right, and (3) the zone ID and geographical location. A node in the zone with <italic>ID<sub>i</sub></italic> can calculate its Euclidean distance from another zone <italic>ID<sub>j</sub></italic> using <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i007.tif"/>, where <italic>δx<sub>i,j</sub></italic> = (<italic>ID<sub>j</sub></italic> − <italic>ID<sub>i</sub></italic>)%<italic>n<sub>x</sub></italic> and <italic>δy<sub>i,j</sub></italic> = (<italic>ID<sub>j</sub></italic> − <italic>ID<sub>i</sub></italic>)/<italic>n<sub>x</sub></italic>. A head node in a zone is responsible for communication with other zones. All other nodes inside a zone are connected with the head node.</p>
      </sec>
      <sec id="sec3dot3-jsan-01-00059">
        <title>3.3. Similarity Search Algorithm</title>
        <p><bold>The Similarity Search Algorithm (SSA)</bold> [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>] was proposed by Chung, <italic>et al.</italic> based on the Hilbert Curve over a DCS structure. SSA is successful in searching similar data without collecting data from all of the network sensors. Being motivated from the Hilbert Curve concept, the authors divide the network recursively into <italic>4<sup>l</sup></italic> square quadrants where <italic>l</italic> denotes the number of levels. The center (indexing node) of each square quadrant (cell) is denoted by <italic>I</italic>. It is important to select the indexing nodes to avoid performance degradation due to too many indexing nodes and on the other hand a lack of enough storage space due to too few indexing nodes. If the total memory space for storing data is <italic>A </italic>and the memory size of each sensor is <italic>z, </italic>then the number of indexing nodes <italic>n</italic> can be defined as: <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i008.tif"/>. So, the number of levels <italic>l</italic> is defined by: <italic>l</italic> = <italic>log</italic><sub>4</sub><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i009.tif"/>. The entire data range of an event is referred to by <italic>R</italic> where <italic>R<sub>L</sub></italic> and <italic>R<sub>U</sub>, </italic>respectively, denote the lower bound and upper bound. <italic>R</italic> is divided into <italic>n</italic> equal sub-ranges each being equal to <italic>r i.e.</italic>, <italic>n.r = R.</italic> So, the data sub-range for which <italic>I<sub>ID</sub></italic> is responsible is defined as <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i010.tif"/>. <xref ref-type="fig" rid="jsan-01-00059-f002">Figure 2</xref> illustrates level 1 and level 2 assuming that the data range <italic>R </italic>of an event is (0, 1). Detected events are mapped to a particular segment if the event falls in the range of that cell. Two parameters <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i011.tif"/> are used to record the minimum and maximum values of each segment. Initially these two parameters are set to 0. When data is inserted into an index node, the values are updated accordingly. For example, if a sensor detects an event with a value of 0.2 then the data is sent to <italic>I<sub>0</sub></italic> as it belongs to the range [0, 0.25] and both parameters <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i011.tif"/> of this cell will be updated to<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i012.tif"/>. Being a mini-repository of an entire distributed database, each sensor has knowledge of its local data and hence lacks global knowledge of the entire sensor database. The distributed nature of the data throughout the sensor network is one of the major challenges when processing similarity search queries. To overcome this challenge, the adjacent index nodes in SSA along the Hilbert curve have data of similar values and thereby avoid the need to collect data from all of the sensors in the network. This data mapping based on the concept of the Hilbert curve is simple and easy to implement. However, when storing multidimensional attributes it is not clear whether SSA maintains a separate Hilbert curve or not and in this case how it responds to the multidimensional queries. </p>
        <fig id="jsan-01-00059-f002" position="anchor">
          <label>Figure 2</label>
          <caption>
            <p>Level 1 and Level 2 Hilbert Curve [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g002.tif"/>
        </fig>
      </sec>
      <sec id="sec3dot4-jsan-01-00059">
        <title>3.4. Dynamic Load Balancing</title>
        <p>In <italic>Dynamic Load Balancing (DLB)</italic> [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>], Liao, <italic>et al.</italic> mention unbalanced distribution of data among sensors as one of the major constraints for most of the DCS techniques. To address this issue, Liao, <italic>et al.</italic> propose a grid-based DLB approach that relies on two schemes: (1) A cover-up scheme to deal with the problem of a storage node whose memory space is depleted and (2) multi-threshold levels to achieve load balancing in each grid and all nodes get load balanced. DLB divides the whole network into a grid with cells of the same size in such a way that all the nodes inside a cell are within one hop distance. Each grid is numbered with positive coordinates (X, Y) called grid IDs. A sensor node can calculate its grid ID (X, Y) using the following equation:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i014.tif"/> and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i015.tif"/>    (1) </p>
        <p>Each node has a virtual grid ID and virtual co-ordinates that are initially equal to the actual grid ID and co-ordinates. Initially, each node broadcasts a message within its grid by limited broadcast to exchange the information to build a ‘<italic>Grid_Node</italic>’ table. A producer node uses the hash function on the event type to map the event type into a grid and transform the event type into a grid ID using the above equation. The center of the grid is called a grid point. The node, after detecting an event, sends a <italic>Put</italic> packet to the grid ID and uses GPSR to forward this packet to the node closest to the grid point.</p>
      </sec>
      <sec id="sec3dot5-jsan-01-00059">
        <title>3.5. Load Balanced Data-Centric Storage</title>
        <p><italic>Load Balanced Data-Centric Storage (LB-DCS)</italic> [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>] is an organic approach that relies on the home perimeter for data replication and thereby overcomes the unbalanced load constraint in DCS-GHT [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>]. LB-DCS functions on top of three mechanisms: (i) A density estimation protocol that is used to estimate the network density <italic>f</italic>, which is included in <italic>put</italic> and <italic>get</italic> protocols; (ii) a modified hashing function that includes <italic>f</italic> in its parameter list; and (iii) a storage protocol enforcing QoS in the selection of the number of replicas for data storage. In [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>,<xref ref-type="bibr" rid="B25-jsan-01-00059">25</xref>], the authors show that depending on the event type, the number of local replicas should be different. So, when a producer node produces any event it also specifies a value in terms of the parameter <italic>q</italic> to specify the number of replicas. The <italic>put </italic>primitive takes <italic>q </italic>along with two other parameters: datum <italic>d</italic> and meta-datum <italic>k.</italic> Depending on the value of <italic>q</italic>, the home node selects <italic>q</italic> neighbor nodes using the <italic>ball</italic> method to replicate that event. This dispersal method is iterative. A home node, <italic>H</italic> (with co-ordinates <italic>X<sub>H</sub></italic>, <italic>Y<sub>H</sub></italic>) considers a ball with a radius <italic>r </italic>(randomly selected value). The home node sends a request for storage to all sensors within the range of this ball denoted by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i016.tif"/>    (2)</p>
        <p>In turn, when a sensor receives a storage request it acknowledges the request to <italic>H. H</italic> calculates the number of acknowledgments (<italic>q'</italic>) received from the nearest sensors. If <italic>q' &lt; q</italic>, then <italic>H</italic> sends a storage request to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i017.tif"/> sensors. This time it considers only the sensors in <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i018.tif"/>. This process continues until <italic>H</italic> receives <italic>q </italic>acknowledgements or exhausts sensors within the perimeter. Apart from this QoS, the authors also include non-uniform hashing that can be used to balance the load even in non-uniform distribution such as a Gaussian distribution of sensor nodes in a network. In such a non-uniform WSN, LB-DCS applies two distributed protocols, referred to as <italic>proactive </italic>(Broadcast) and <italic>reactive </italic>(Stripes and Fatstripes), to compute the density approximation <italic>f</italic> of each zone. The density approximation is used to bias the hash function enabling the distribution of target co-ordinate pairs for storage according to the network distribution. For non-uniform hashing, the <italic>Rejection Method</italic> [<xref ref-type="bibr" rid="B26-jsan-01-00059">26</xref>] has been used in LB-DCS<italic>.</italic></p>
      </sec>
      <sec id="sec3dot6-jsan-01-00059">
        <title>3.6. Tug-of-War</title>
        <p>In <italic>Tug-of-War (ToW)</italic> [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>], the authors propose a data-centric mechanism where queries and events meet at a point that is selected based on the relative frequencies of events and queries. ToW operates in two modes referred to as <italic>write-one-query-all </italic>and <italic>write-all-query-one</italic>. The former allows a sensor to store an event in the nearest mirror image but queries need to be disseminated to all mirror images. Conversely, in the latter operation node events must be stored in all mirror images to facilitate a query node that disseminates the query to the nearest mirror image. ToW takes its motivation from the Structured Replication (SR) mechanism in GHT. In SR, to alleviate a node’s load, a detected event is stored in the nearest mirror image. This mechanism alleviates the storage cost but as a query node has no idea which image node may have the data, the query node needs to query all of the images and this increases the query cost. Like SR-GHT, a home node and a set of <italic>4<sup>r</sup></italic>− <italic>1</italic> mirror images are assigned in ToW for each event class <italic>c </italic>and here <italic>r</italic> is referred to as the system resolution. The mode a sensor node will operate depends on <italic>r.</italic> The system resolution is determined based on the relative query frequency and events detected for a particular class of event. To minimize the communication cost, ToW adjusts the rendezvous point on the fly on an optimal basis. With a given system resolution, nodes define the mode of operation while in the selected mode nodes need to find an optimal value of <italic>r</italic> in order to minimize the communication cost. In <italic>write-one-query-all</italic> mode, the total communication cost <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i019.tif"/> per unit interval is defined by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i020.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i021.tif"/>    (3)</p>
        <p>By using an optimal <italic>r</italic>, the cost of ToW in this mode per event is defined by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i022.tif"/>    (4)</p>
        <p>Here, <italic>C<sub>e</sub></italic>, <italic>C<sub>q</sub></italic>, <italic>f<sub>e</sub></italic>, <italic>f<sub>q</sub>, k </italic>and <italic>n </italic>denote storage cost, query cost, event frequency, query frequency, number of the event detection node and total number of nodes deployed in the network, respectively. With the given value of <italic>k</italic>, <italic>f<sub>e</sub></italic>, and <italic>f<sub>q</sub></italic>,<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i023.tif"/>is minimized by the following value of <italic>r</italic>:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i024.tif"/>    (5)</p>
        <p>Similarly, in <italic>write-all-query-one </italic>mode, the total communication cost is denoted by <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i025.tif"/> and the optimal value of <italic>r </italic>is defined by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i026.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i027.tif"/>    (6)</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i028.tif"/>    (7)</p>
        <p>Using an optimal <italic>r</italic>, the cost of ToW in this mode per event is defined by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i029.tif"/>    (8)</p>
        <p>Thus, in order to determine the mode of operation, the resolution must be non-negative. With the given value of <italic>k</italic>, <italic>f<sub>e</sub></italic>, and <italic>f<sub>q</sub></italic>, if a nonzero optimal system resolution <italic>r </italic>exists in one mode then in other mode no non-zero optimal <italic>r</italic> can exist. Hence, finding a non-zero optimal <italic>r</italic> in a mode is essential to determine the mode of operation. </p>
      </sec>
      <sec id="sec3dot7-jsan-01-00059">
        <title>3.7. Quadratic Adaptive Replication</title>
        <p>In <bold>Quadratic Adaptive Replication (QAR)</bold> [<xref ref-type="bibr" rid="B16-jsan-01-00059">16</xref>], the authors recognize multi-replication as one of the most important DCS research areas and propose to enhance ToW by a flexible solution that permits selecting a more adaptive number of replicas. ToW is based on a geometric replication formula that calculates the number of replicas, <italic>N<sub>r</sub> = 4<sup>d</sup></italic>, where <italic>d</italic> is the network-depth. Thus, the main drawback of ToW is its inflexibility in selecting the number of replicas, which are limited to 1, 4, 16, 64, and so on. In contrast, QAR calculates the number of replicas as <italic>N<sub>r</sub> = d<sup>2</sup></italic> allowing the number of replicas to grow in a quadratic fashion. Furthermore, QAR provides a mathematical model that can find the optimal number of rendezvous nodes based on the ratio of consumption and production traffic.</p>
      </sec>
      <sec id="sec3dot8-jsan-01-00059">
        <title>3.8. Double Rulings</title>
        <p>Considering <bold>information brokerage</bold> as one of the prime concerns, the authors in [<xref ref-type="bibr" rid="B28-jsan-01-00059">28</xref>] propose a <bold>Double Rulings</bold> scheme storing data replica at a curve instead of one or multiple isolated sensors. In this approach, information hints can be left along the trail when data travels from source to a rendezvous node at no extra communication cost. Hence, discovering relevant data also becomes easier for the consumer. The scheme provides greater flexibility to design a network’s retrieval strategy subject to the current network load and energy level. The paper presented a number of possible retrieval mechanism such as GHT retrieval, distance-sensitive retrieval, aggregated retrieval and double rulings retrieval. The flexibility in retrieval curves removes the possibility of having bottlenecks around the rendezvous node since the retrieval curve may not necessarily visit the rendezvous node. A local recovery scheme is achieved by storing data on the boundary when the sensors in a certain region are destroyed. Compared to SR-GHT, the double rulings scheme improves data robustness by imposing much lower communication costs for replication through the organization of replicas along a closed curve. The paper also proposed a new routing technique referred to as greedy routing on a curve, which adds extra complexity when implemented. Furthermore, flat replica in sensor nodes along the replication curve deplete the storage capacity of the network quicker than other schemes. </p>
      </sec>
      <sec id="sec3dot9-jsan-01-00059">
        <title>3.9. Distributed Erasure Coding in DCS</title>
        <p>In contrast to pure replication, Michele Albano <italic>et al</italic> propose an alternate approach by incorporating erasure coding in DCS. In [<xref ref-type="bibr" rid="B29-jsan-01-00059">29</xref>], the authors use the Redundant Residue Number System (RRNS) to encode data into a set of fragments based on <italic>n out of m</italic> code that guarantees the survival of the data in the event of the loss of a limited number of fragments (up to <italic>m-n</italic>). The <italic>put(d:k) </italic>primitive function first selects a set of sensors <italic>N<sub>k</sub></italic> to store the data based on the number of fragments to be computed, then it multicasts a storage request of <italic>d:k</italic> to the sensors in <italic>N<sub>k</sub></italic><sub>.</sub>. Prior to sending the storage request, each sensor <italic>p </italic>(<italic>p </italic>belongs to <italic>N<sub>k</sub></italic>) is assigned with a module denoted by <italic>m(p)</italic>, which is used to compute the fragments. The assigned module is randomly chosen from a library of <italic>m = n + r</italic> pairwise prime moduli <italic>m<sub>1</sub>,</italic><italic>….,m<sub>n + r</sub></italic>. Once a sensor <italic>p </italic>is assigned with a module <italic>m(p)</italic> for storing the pair <italic>d:k</italic>, it stores <italic>x:k </italic>in its memory where <italic>x </italic>is the fragment given by the residue of <italic>d </italic>module <italic>m(p)</italic>. Upon receiving a request from a query node for data <italic>d:k</italic> stored by sensors in <italic>N<sub>k</sub></italic>, the reconstruction might happen using one of two strategies. In the first strategy, each sensor in <italic>N<sub>k</sub></italic> retrieves the fragment <italic>x:k</italic> that corresponds to <italic>d:k</italic> and sends it to the query node. In the second strategy, one sensor in <italic>N<sub>k</sub></italic> reconstructs <italic>d:k </italic>after collecting all of the fragments <italic>x:k </italic>from <italic>N<sub>k</sub></italic> and sends this reconstructed data to the query node. The first method ensures reliable data reconstruction at the cost of high energy consumption, on the other hand, the second method trades off energy consumption with reliability requiring only local communication in reconstructing the data, and only one final packet is sent to the sink.</p>
      </sec>
      <sec id="sec3dot10-jsan-01-00059">
        <title>3.10. Distributed Index for Features</title>
        <p><bold>Distributed Index for Features (DIFS)</bold> [<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>] in sensor networks is designed to provide communication load balance across the index keeping the search efficiency of a quad tree [<xref ref-type="bibr" rid="B31-jsan-01-00059">31</xref>]. DIFS also uses a geographic hash similar to GHT [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>]. DIFS constructs a multiply rooted hierarchical index that differs from traditional binary and quaternary trees. In DIFS, a non-root node can have multiple parents. Nodes are responsible for storing information for a specific range within a particular geographic region. A node covering a small area stores a wider range of values while a node covering a large area stores a smaller range of values. DIFS efficiently supports range queries related to values distributed in a range. Unlike QUAD tree, each child in DIFS has <italic>bfact</italic> parents where <italic>bfact = 2<sup>i</sup></italic>, <italic>i </italic><italic>≥ 1</italic>. The range of values in the histogram of a child is <italic>bfact</italic> times the range of values maintained by its parents. The range of index values decreases by the factor <italic>bfact</italic> as it progresses up the index hierarchy. Suppose an event is detected and the value of an attribute (say flux density) is 57 and this attribute value is to be recorded in the index. This attribute value would be recorded in a local leaf node covering a range of 0~255 (considering the range of flux density 0~255) and would also be stored in the parent of the local leaf node that covers a range of 0~63, in a grandparent covering 48~63 and in a great grandparent with a value range of 56~59. Here, a value of <italic>bfact = 4</italic> and hence the range of values covered by the grandparent is one fourth of that covered by the parent while the geographic area covered by grandparent is four times that of the parent and so on.</p>
        <fig id="jsan-01-00059-f003" position="anchor">
          <label>Figure 3</label>
          <caption>
            <p>An Illustration of the Distributed Index for Features (DIFS) Hierarchy.</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g003.tif"/>
        </fig>
        <p>In <xref ref-type="fig" rid="jsan-01-00059-f003">Figure 3</xref>, the width and height of the total covering region of a network is eight units (<italic>w = 8 </italic>and <italic>l = 8</italic>). Considering <italic>bfact = 2</italic>, the dimension of the system-specified minimum covering region for this case is 1 (<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i031.tif"/>, where <italic>h </italic>is the number of levels) and 1 (<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i032.tif"/>). Suppose that an event has been found in the vicinity of geographical co-ordinates (7.5, 4.5) with an <italic>attribute</italic> value of 8. For the time being, it is assumed that nothing is known a priori about the expected distribution of the attribute except that it always falls in the range [0~8]. The hash for the key “<italic>attribute:0:8</italic>” will return a location somewhere in the bounding box defined by the corner (7, 4) and (8, 5). So, a message containing the string “<italic>attribute</italic>”, the co-ordinates (7.5, 4.5) and the value 8 will be sent to leaf-level (level 0) index node, say <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i033.tif"/>. Since, <italic>bfact = 2</italic>, the level 0 leaf index node will forward a histogram containing a count for values 7~8 to a level 1 index <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i034.tif"/>covering the region (6, 4) to (8, 6). The level 1 node will then forward a histogram containing counts for values 4~8 to a level 2 node,<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i035.tif"/> covering the region (4, 4) to (8, 8). This process continues until the value is forwarded to node <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i036.tif"/>covering the entire network bounded by (0, 0) and (8, 8). </p>
        <p>DIFS provides communication efficiency and fast searching of data by name, value range and location. Furthermore, a communication bottleneck at the root of the search tree is avoided using multiple parents of a child thereby maintaining the search efficiency that can be achieved by drilling down through a search tree using a hierarchical approach.</p>
      </sec>
      <sec id="sec3dot11-jsan-01-00059">
        <title>3.11. Practical Data-Centric Storage</title>
        <p>In <bold>PathDCS</bold> [<xref ref-type="bibr" rid="B32-jsan-01-00059">32</xref>] messages are routed to locations using a tree-structure, and the path to a location is identified using landmarks, which are shared reference points. The interesting novelty of this approach is that an event type is mapped to a path instead of mapping the event type to a spatial location. The path is defined by an initial landmark and then followed by a set of procedural directions. The landmarks are also called beacon nodes, which are elected randomly or manually configured. Standard tree construction techniques are used to build trees rooted at each of these beacon nodes. This ensures that all nodes know how to reach the beacons. A path consists of a sequence of <italic>b<sub>i</sub></italic> pairs <italic>(b<sub>i</sub>, l<sub>i</sub>)</italic>, where <italic>b<sub>i</sub></italic> is a beacon and <italic>l<sub>i</sub></italic> is a length. A beacon node <italic>b<sub>i</sub></italic> is the beacon whose identifier is closest to the hash function <italic>h(k, i)</italic>. The packet is first routed to beacon <italic>b<sub>1</sub></italic>, and then it is sent <italic>l<sub>2</sub></italic> hops toward beacon <italic>b<sub>2</sub></italic> using the tree rooted at <italic>b<sub>2</sub></italic>, and so on, until it arrives at the previous <italic>i </italic>− <italic>1</italic> segment. The packet is then sent <italic>l<sub>i</sub></italic> hops toward the next beacon <italic>b<sub>i</sub></italic>. In addition, the first segment length <italic>l<sub>1</sub></italic> is equal to the distance to the first beacon <italic>b<sub>1</sub></italic>, whereas segment lengths for <italic>i &gt; 1</italic> are given by:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i037.tif"/>    (9) </p>
        <p>The PathDCS algorithm has two parameters: the total number of beacon nodes denoted by <italic>B</italic> and the number of path segments <italic>P</italic>. The performance of PathDCS largely depends on these two parameters and by varying the number of <italic>B</italic>, PathDCS trades off the control traffic overhead due to tree construction versus load on the beacons. Data is also been locally replicated by flooding within k-hops of the destination. </p>
      </sec>
      <sec id="sec3dot12-jsan-01-00059">
        <title>3.12. Hierarchical Voronoi Graph Based Routing</title>
        <p>A <italic>Hierarchical Voronoi Graph Based Routing (HVGR)</italic> [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>], the Voronoi graph is used to construct and maintain a virtual hierarchy of sensor nodes. The Voronoi approach is a self-organizing hierarchical graph that is constructed without the help of GPS or other geo-location devices. The network is divided into different levels of regions based on landmarks. A landmark selection algorithm is used to select at most <italic>m<sub>i</sub></italic>(<italic>i = 1</italic>, <italic>2</italic>, ….) landmarks in an (<italic>i </italic>− <italic>1</italic>)<italic><sup>th</sup></italic> level region. Then the network is divided into first level sub-regions based on first level landmarks. Each node in the first level sub-regions broadcasts a <italic>landmark</italic> packet to the entire network. By receiving this packet every node estimates its distance from all first level sub-region <italic>landmarks. </italic>Each node selects one <italic>landmark</italic> as its representative. Then each first level sub-region is again divided into second level sub-regions with second level <italic>landmarks.</italic> Each sensor node again chooses the closest <italic>landmark</italic> as its second representative. This process continues until the last level sub-regions are small enough so that each node knows all other nodes in its sub-region as shown in <xref ref-type="fig" rid="jsan-01-00059-f004">Figure 4</xref>.</p>
        <fig id="jsan-01-00059-f004" position="anchor">
          <label>Figure 4</label>
          <caption>
            <p>Region Oriented Routing [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g004.tif"/>
        </fig>
        <p>For landmark selection the authors use the optimized random landmark selection algorithm [<xref ref-type="bibr" rid="B34-jsan-01-00059">34</xref>]. According to this algorithm, a random node, say ‘<italic>L<sub>1</sub>’</italic>, starts the landmark selection process becoming the master landmark of first level landmark nodes. It then selects <italic>m<sub>1</sub></italic>− <italic>1</italic> nodes for <italic>m<sub>1</sub></italic> first level networks. Each first level landmark then again acts as master and continues the selection process in its zone to select a second level master node for the second level of the network. A master landmark node stops the landmark selection process once it finds that all sensor nodes in its region are within its communication range. <xref ref-type="fig" rid="jsan-01-00059-f004">Figure 4</xref> shows an example of the basic routing algorithm that is used to route packets from the source (<italic>S</italic>) to the destination (<italic>D</italic>). The first level landmark for the destination is <italic>L<sub>1</sub></italic>. The packet first moves hop by hop toward <italic>L<sub>1</sub></italic> until it reaches the edge of first level region, <italic>R<sub>1</sub></italic>. Now, nodes in <italic>R<sub>1</sub></italic> know the second level landmark and the packet now moves hop by hop toward the second level landmark, <italic>L<sub>2</sub></italic>. Again once it reaches the node <italic>B</italic> of region 2 in <xref ref-type="fig" rid="jsan-01-00059-f004">Figure 4</xref>, the packet starts moving toward <italic>L<sub>3</sub></italic>. Finally, the packet reaches the lowest level sub region whose entry node ‘<italic>C</italic>’ knows the path of the destination and forwards the packet to the destination. The interesting part of this algorithm is it never overwhelms the landmark, as the packets never go to the landmark, rather the packets move toward the landmark until the packets reach any node within the region. </p>
      </sec>
      <sec id="sec3dot13-jsan-01-00059">
        <title>3.13. Data Storage and Range Query for Multidimensional Attribute</title>
        <p><bold>Multidimenstional Attribute (MDA)</bold> [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>] proposes an energy-efficient &amp; scalable multi-dimensional range query mechanism (<italic>MDA<sub>s</sub></italic>) to retrieve and store data. It builds an in-network distributed data structure by mapping multi-dimensional attributes to their corresponding range spaces. The authors consider a few assumptions in their work: (1) The sensors are uniformly and densely deployed; (2) each node can sense multiple events; and (3) each node maintains a neighbor table via periodic beacon message exchanges and knows its own geographic location. A source node detects an event with a set of attribute values, <italic>E = {a<sub>1, </sub>a<sub>2</sub>... a<sub>n</sub>}</italic>. It is assumed that all attribute values are scalar and normalized to (0~1). An event is assigned with a <italic>k</italic> bit code where <italic>k = 2m</italic>. If 0 &lt; <italic>a<sub>i</sub></italic> &lt; 0.5, the <italic>i</italic><sup>th</sup> bit code is assigned to 0 otherwise 1. For <italic>x<sub>j</sub>=a<sub>2j</sub>-1</italic> and <italic>y<sub>j</sub>=a<sub>2j</sub></italic> the attribute values of <italic>E </italic>are assigned by a serial bit code <italic>B = {x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub></italic><italic>……x<sub>m</sub>, y<sub>m</sub>}</italic>. For example, an event <italic>E = {0.8,0.7,0.4,0.3}</italic> is assigned by a four bit code <italic>B={ x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>}={1,1,0,0}</italic>. Assignment of code <italic>B</italic> can be achieved by generalizing 0 &lt; <italic>a<sub>i</sub></italic> &lt; 0.5 and 0.5 &lt; <italic>a<sub>i</sub></italic> &lt; 1 to 0 &lt; 2<italic>a<sub>i</sub></italic> &lt; 1 and 1 &lt; 2<italic>a<sub>i</sub></italic> &lt; 2, respectively:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i038.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i039.tif"/>    (10) </p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i040.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i041.tif"/>    (11) </p>
        <p>This code <italic>B</italic> is mapped to a range space <italic>R</italic> = [<italic>x<sub>low</sub></italic> – <italic>x<sub>up</sub></italic>, <italic>y<sub>low</sub></italic> − <italic>y<sub>up</sub></italic>]. Hence, it is necessary to calculate (<italic>x<sub>low</sub></italic>, <italic>y<sub>low</sub></italic>) and (<italic>x<sub>up</sub>, y<sub>up</sub></italic>) to find the range space <italic>R</italic>. </p>
        <p>In code <italic>B, x = x<sub>1</sub>, x<sub>2</sub></italic><italic>… x<sub>m</sub></italic> are used to calculate <italic>X</italic> of <italic>R </italic>and <italic>y = y<sub>1</sub>, y<sub>2</sub></italic><italic>… y<sub>m</sub></italic> are used to calculate <italic>Y </italic>of <italic>R</italic>. In code <italic>B</italic>, if <italic>x<sub>1 </sub>= 1</italic> its value is in between 0.5 and 1; if <italic>x<sub>2 </sub>= 1</italic> its value is in between 0.5 and 0.5 + (0.5)<sup>2</sup>. So, <italic>X<sub>low</sub></italic> = <italic>x<sub>1</sub>(0.5) + x<sub>2</sub>(0.5)<sup>2 </sup>+ </italic><italic>……. + x<sub>m</sub>(0.5)<sup>m</sup></italic>. Similarly <italic>Y<sub>low</sub></italic> = <italic>y<sub>1</sub>(0.5) + y<sub>2</sub>(0.5)<sup>2 </sup>+</italic><italic>……. + y<sub>m</sub>(0.5)<sup>m</sup>. </italic></p>
        <p>Again, <italic>X<sub>up </sub></italic>is defined by:</p>
        <p>X<sub>up</sub>= 1 − (x<sub>1</sub>(0.5) +x<sub>2</sub>(0.5)<sup>2 </sup>+……. + x<sub>m</sub>(0.5)<sup>m</sup>)</p>
        <p>So, <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i042.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i043.tif"/></p>
        <p>So,<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i044.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i045.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i046.tif"/>    (12) </p>
        <p>Example: </p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i047.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i048.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i049.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i050.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i051.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i052.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i054.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i055.tif"/></p>
        <p> <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i056.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i057.tif"/> </p>
        <p>Hence, the range space is defined by <italic>R</italic> = (0.5–0.625, 0.875–1). <xref ref-type="fig" rid="jsan-01-00059-f005">Figure 5</xref> illustrates the <italic>MDA<sub>s</sub></italic> storage and query process.</p>
        <fig id="jsan-01-00059-f005" position="anchor">
          <label>Figure 5</label>
          <caption>
            <p>Multidimensional Range Query Mechanism (MDAs) [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g005.tif"/>
        </fig>
      </sec>
    </sec>
    <sec id="sec4-jsan-01-00059">
      <title>4. Classification Based on Taxonomy and Design Drivers</title>
      <sec id="sec4dot1-jsan-01-00059">
        <title>4.1. Range Query</title>
        <p>In [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>,<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>,<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>,<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>,<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>,<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>], the range query mechanism is implemented in different format. Chung <italic>et al.</italic> [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>] propose an efficient technique, illustrated in <xref ref-type="sec" rid="sec3dot3-jsan-01-00059">Section 3.3</xref>, for a DCS similarity search that includes both a point and range query. A range query is divided into sub-queries and then the sub-queries are forwarded to their corresponding indexing node. For example, the level of carbon monoxide found in the air in a forest may be represented by levels that range from 50 L/mol to 150 L/mol. This range is split equally into four (<italic>4<sup>1</sup>=4</italic>, four index node referred as <italic>I<sub>0, </sub>I<sub>1, </sub>I<sub>2</sub>, I<sub>3</sub></italic>) sub-ranges [50, 75), [75, 100), [100, 125), [125, 150]. Hence, if a range query is to find data within [60, 80), then the sub-ranges of <italic>I<sub>0</sub></italic> and <italic>I<sub>1</sub></italic> are located as they cover the given query. </p>
        <p>Li, <italic>et al.</italic> [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>], proposed a method called DIM, which includes both a point and a range query in a multidimensional DCS model. In DIM, each sensor is linked as a node in a tree structure where each node represents a range of values. A root node represents the entire range of values and splits into two equal parts for left and right child nodes. This process continues for each non-leaf node until leaf nodes are reached. </p>
        <p>DIFS [<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>], referring to <xref ref-type="sec" rid="sec3dot10-jsan-01-00059">Section 3.10</xref>, performs a data fusion based on data conveyance through the network. The routing is designed on top of a quad tree in a manner that balances the communication load across the index, and the range is maintained along the sensor node hierarchy. </p>
        <p>In MDA [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>], described in <xref ref-type="sec" rid="sec3dot13-jsan-01-00059">Section 3.13</xref>, a range query is split into a <italic>k</italic>-dimension range of multiple sub-queries. After splitting, each attribute sub-query is assigned with a bit code and tuples of <italic>k</italic>-bit codes, referred to as code <italic>B</italic>, are produced. The code <italic>B</italic> are then mapped to range space <italic>R</italic> and data is stored in nodes located in the mapped <italic>R.</italic> The state-of-the-art approaches in the field of range query DCS are summarized in <xref ref-type="table" rid="jsan-01-00059-t001">Table 1</xref>.</p>
        <table-wrap id="jsan-01-00059-t001" position="anchor">
          <object-id pub-id-type="pii">jsan-01-00059-t001_Table 1</object-id>
          <label>Table 1</label>
          <caption>
            <p>Summary of Range-Query Data-Centric Storage (DCS) Schemes. </p>
          </caption>
          <table>
            <thead>
              <tr>
                <th colspan="2" align="center" valign="middle">Mechanisms</th>
                <th align="center" valign="middle">Schemes</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td colspan="2" align="center" valign="middle">Bit Code Mapping</td>
                <td align="center" valign="middle">MDA [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>]</td>
              </tr>
              <tr>
                <td rowspan="2" align="center" valign="middle">Tree Structure</td>
                <td align="center" valign="middle">Multiply Rooted Hierarchical Index</td>
                <td align="center" valign="middle">DIFS [<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>]</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Binary Tree</td>
                <td align="center" valign="middle">DIM [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>]</td>
              </tr>
              <tr>
                <td colspan="2" align="center" valign="middle">Others</td>
                <td align="center" valign="middle">SSA [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>]</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec id="sec4dot2-jsan-01-00059">
        <title>4.2. Similarity Search</title>
        <p>In SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>], described in <xref ref-type="sec" rid="sec3dot2-jsan-01-00059">Section 3.2</xref>, a data item denoted by <italic>d </italic>consists of keywords denoted by <italic>v<sup>d</sup></italic>. Thus, the data item <italic>d</italic> is represented by <italic>d</italic> = (<italic>v<sub>1</sub><sup>d</sup></italic>, <italic>v<sub>2</sub><sup>d</sup></italic>,………, <italic>v<sub>m</sub><sup>d</sup></italic>). For a similarity search, the following formula is proposed in SDS to calculate the similarity between data items <italic>d<sub>1</sub></italic> and <italic>d<sub>2</sub></italic>:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i059.tif"/>    (13) </p>
        <p>Here, <italic>m</italic> is the number of attributes, <italic>w<sub>i</sub></italic> is the weight for each attribute based on their significance as shown in <xref ref-type="table" rid="jsan-01-00059-t002">Table 2</xref> and <italic>B(i, j)</italic> is a Boolean function returning 1 if <italic>v<sub>i</sub><sup>d1</sup>=v<sub>i</sub><sup>d2</sup></italic> and 0 otherwise.</p>
        <table-wrap id="jsan-01-00059-t002" position="anchor">
          <object-id pub-id-type="pii">jsan-01-00059-t002_Table 2</object-id>
          <label>Table 2</label>
          <caption>
            <p>Example of Weight Settings [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>].</p>
          </caption>
          <table>
<thead>
              <tr>
                <th align="center" valign="middle">Attribute</th>
                <th align="center" valign="middle">Keywords</th>
                <th align="center" valign="middle">Weight</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center" valign="middle">Object</td>
                <td align="center" valign="middle">Car, Plane, Truck, 
                <italic>etc.</italic></td>
                <td align="center" valign="middle">0.3</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Model</td>
                <td align="center" valign="middle">F-16, F-17, 
                <italic>etc.</italic></td>
                <td align="center" valign="middle">0.2</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Color</td>
                <td align="center" valign="middle">Red, Purple, etc</td>
                <td align="center" valign="middle">0.1</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Direction</td>
                <td align="center" valign="middle">North, South, etc</td>
                <td align="center" valign="middle">0.1</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Division</td>
                <td align="center" valign="middle">Air-Force, 
                <italic>etc.</italic></td>
                <td align="center" valign="middle">0.1</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Pressure</td>
                <td align="center" valign="middle">Integer</td>
                <td align="center" valign="middle">0.1</td>
              </tr>
              <tr>
                <td align="center" valign="middle">Speed</td>
                <td align="center" valign="middle">Float</td>
                <td align="center" valign="middle">0.1</td>
              </tr>
              <tr>
                <td align="center" valign="middle">..</td>
                <td align="center" valign="middle">..</td>
                <td align="center" valign="middle">..</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>For example, a data item in a WSN application is characterized by five attribute lists such as object, model, color, direction and division with the weight value shown in <xref ref-type="table" rid="jsan-01-00059-t002">Table 2</xref>. Consider the following two data items denoted by <italic>d<sub>1</sub></italic> and <italic>d<sub>2</sub></italic>:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i060.tif"/></p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i061.tif"/></p>
        <p>Hence,</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i062.tif"/></p>
        <p>SDS uses Locality-Sensitive Hashing (LSH) [<xref ref-type="bibr" rid="B37-jsan-01-00059">37</xref>] to transform <italic>d</italic> to a series of hash values. Using LSH, data items that have common keywords will have the same hash value while similar data items will have similar hash values. For example, if the difference between <italic>d<sub>1</sub>, d<sub>2, </sub></italic>and <italic>d<sub>3</sub></italic> is <italic>d<sub>1 </sub>&gt; d<sub>2 </sub>&gt; d<sub>3, </sub></italic>their hash values conform to <italic>h<sub>d1 </sub>&gt; h<sub>d2 </sub>&gt; h<sub>d3</sub>, </italic>where <italic>h<sub>d </sub></italic>is the hash value of d. A data item with a hash value <italic>h</italic> is mapped to the first zone with <italic>ID </italic><italic>≥ h. </italic>For example, if the value of <italic>h<sub>d1</sub></italic>returned by LSH is five, then the value of <italic>h<sub>d2 </sub></italic>(<italic>d<sub>1</sub></italic> and <italic>d<sub>2</sub></italic>refer to the data item shown above) would approximately be 6.67 or 3.75. Hence, <italic>d<sub>1</sub></italic> will be stored in the zone with <italic>ID </italic><italic>≥ 5</italic> and <italic>d<sub>2</sub></italic> will be stored in the zone with <italic>ID </italic><italic>≥ 3.75 </italic>or <italic>ID </italic><italic>≥ 6.67</italic>. Thus, a query denoted by <italic>d<sub>q</sub></italic> with 80% similarity will search in zones with IDs: <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i063.tif"/>.</p>
        <p>In SSA [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>], referring to <xref ref-type="sec" rid="sec3dot3-jsan-01-00059">Section 3.3</xref>, when data is queried, the query is first sent to the specific cell, with the range of this cell in the queried data. The SSA similarity search mechanism contains two phases known as the similarity search query resolving phase and the query probing phase. The query resolving phase determines an indexing node that is most likely to provide an answer for the query. If the answer does not match exactly then the query probing phase is initiated to find the closest possible answer.</p>
        <p>In the query resolving phase, the function <italic>locate </italic>(<italic>V<sub>q</sub></italic>) is used to find the target node <italic>I<sub>T</sub></italic> with the indexing node <italic>I<sub>ID</sub></italic> such that <italic>R<sub>L</sub></italic> + (<italic>I<sub>ID</sub></italic>− 1)∙<italic>r </italic>≤ <italic>V<sub>q</sub></italic> &lt; <italic>R<sub>L</sub></italic> + <italic>I<sub>ID</sub></italic><italic>∙r</italic>, where <italic>V<sub>q</sub></italic> is the search value given by the query. The query is then forwarded to the Target Node <italic>I<sub>T</sub></italic> to retrieve data. If an exact match to <italic>V<sub>q</sub></italic> is found, then the query execution is finished, otherwise the query probing phase comes in action. In the query probing phase there can be the two following possible cases:</p>
		 <list list-type="bullet">
		  <list-item>
        <p>Case 1: <italic>I<sub>T</sub></italic> is non-empty and <italic>vI<sub>T</sub> s</italic> is the most similar local data in <italic>I<sub>T</sub></italic>.
		 <list list-type="simple">
		  <list-item>
        <p>○ Sub-case 1: If <italic>vI<sub>T</sub> s</italic> is larger than <italic>v<sub>q</sub></italic>, then all data in <italic>I<sub>T+1 </sub></italic>must be even greater than <italic>v<sub>q</sub></italic>. But in <italic>I<sub>T-1 </sub></italic>there may be a <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i064.tif"/> that is closer to <italic>v<sub>q</sub></italic>.</p>
		  </list-item>
		  <list-item>
        <p>○ Sub-case 2: If <italic>vI<sub>T</sub> s</italic> is smaller than <italic>v<sub>q</sub></italic>, then all data in <italic>I<sub>T-1</sub></italic> must not be more similar to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i065.tif"/> than <italic>vI<sub>T</sub> s</italic> is. But in <italic>I<sub>T+1</sub></italic> there may be a <italic>vI<sub>T+1 </sub>s</italic> that is closer to <italic>v<sub>q</sub></italic>.</p>
		  </list-item>
		  </list>
		 </p>
		  </list-item>
		  <list-item>
        <p>Case 2: <italic>I<sub>T</sub></italic> is empty (<italic>i.e.</italic>, no data stored). <italic>v<sub>q</sub></italic> has to be sent to both neighbors (<italic>i.e.</italic>, <italic>I<sub>T</sub></italic><sub>−<italic>1</italic></sub> and <italic>I<sub>T+1</sub></italic>) of <italic>I<sub>T</sub></italic> to find the most similar data.</p>
		  </list-item>
		  </list>
        <p>In SSA, three functions are proposed referred as backward probing, forward probing and bi-directional probing where backward probing and forward probing are used to deal with Case 1 and bi-directional probing is used for Case 2.</p>
      </sec>
      <sec id="sec4dot3-jsan-01-00059">
        <title>4.3. Data Aggregation</title>
        <p>In [<xref ref-type="bibr" rid="B38-jsan-01-00059">38</xref>], the authors propose four application profiles where two are aggregation profiles called <italic>ConsAggr</italic> and <italic>ProdAggr</italic>. Data aggregation is proposed using replication nodes proposed in QAR, see <xref ref-type="sec" rid="sec3dot7-jsan-01-00059">Section 3.7</xref>. In <italic>ConsAggr</italic> the profile consumer queries dominate production queries. In this profile, events produced in a given area are aggregated using the replication node for that area. In contrast, with the <italic>ProdAggr</italic> profile the production traffic dominates consumption traffic. Replicas aggregate events received from producers to achieve an effective overall traffic reduction. In Resilient Data Centric Storage (RDCS) [<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>], three types of event query called <italic>List, Summary</italic> and <italic>Attribute</italic>-based are proposed for the DCS scheme. A query request for all stored data for a particular event type is referred to as a <italic>List</italic> while a query request for aggregated or summarized data for a particular event type is called a <italic>Summary</italic> query. On the other hand, an <italic>Attribute</italic>-based query requests data for all events that match certain constraints based on attribute values. However, it is not mentioned how the monitor node will aggregate data for an event type to give a response to the summary query. TinyDB [<xref ref-type="bibr" rid="B9-jsan-01-00059">9</xref>], madwise [<xref ref-type="bibr" rid="B39-jsan-01-00059">39</xref>] and TAG [<xref ref-type="bibr" rid="B40-jsan-01-00059">40</xref>] are some of the aggregation mechanisms proposed mainly for WSN databases, which can be adapted to DCS networks as well.</p>
      </sec>
      <sec id="sec4dot4-jsan-01-00059">
        <title>4.4. Sensor Network Field Non-Uniformity</title>
        <p>Load Balanced Data Centric Storage (LB-DCS) [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>], <xref ref-type="sec" rid="sec3dot5-jsan-01-00059">Section 3.5</xref>, deals with non-uniformity of the sensor network based on two mechanisms. At first it estimates network distribution and then exploits data dissemination methods based on the estimation. A closest sensor node, called the <italic>sentinel</italic>, to the <italic>watch point</italic>, which is the region center, is responsible to identify its neighbors by sending broadcast messages. Every <italic>sentinel </italic>node sends its own region’s sampling density estimation toward other <italic>sentinel </italic>nodes using both <italic>proactive</italic> (Broadcast) and <italic>reactive</italic> protocols (Stripes and FatStripes).</p>
      </sec>
      <sec id="sec4dot5-jsan-01-00059">
        <title>4.5. Multi-Replication</title>
        <p>From GHT on [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>], illustrated in <xref ref-type="sec" rid="sec3dot1-jsan-01-00059">Section 3.1</xref>, a home node is called a hotspot if too many events with the its key are detected. To address this issue the authors have extended GHT by employing Structured Replication (SR) referred to as SR-GHT. SR-GHT introduces a hierarchical scheme where one node can have 4<sup>d</sup>− 1 mirror images of the root home node.</p>
        <fig id="jsan-01-00059-f006" position="anchor">
          <label>Figure 6</label>
          <caption>
            <p>Structured Replication [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g006.tif"/>
        </fig>
        <p>The hierarchy depth is denoted by <italic>d</italic>. As shown in <xref ref-type="fig" rid="jsan-01-00059-f006">Figure 6</xref>, a decomposition of two (<italic>d = 2</italic>) is deployed having 4<sup>2</sup>− 1 (15) mirror images at different levels. A producer node can store the detected event to its closest mirror node reducing the storage cost to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i066.tif"/> from <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i067.tif"/>. In the retrieval phase, GHT needs to forward queries to all mirror images. The query is first sent to the root node, which then forwards it to all mirror images in level 1 and then level 1 nodes forward this query to level 2 mirror images. This again increases the retrieval cost to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i068.tif"/> from <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i066.tif"/>. <xref ref-type="table" rid="jsan-01-00059-t003">Table 3</xref> shows a summary of multi-replication DCS schemes based on their functionalities.</p>
        <table-wrap id="jsan-01-00059-t003" position="anchor">
          <object-id pub-id-type="pii">jsan-01-00059-t003_Table 3</object-id>
          <label>Table 3</label>
          <caption>
            <p>Summary of Multi-Replication DCS Schemes. </p>
          </caption>
          <table>
            <thead>
              <tr>
                <th align="left" valign="middle"> </th>
                <th align="left" valign="middle">Schemes</th>
                <th align="left" valign="middle">Policy</th>
                <th align="left" valign="middle">RoutingAmong Replica Nodes</th>
                <th align="left" valign="middle">Remark</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" valign="middle">1</td>
                <td align="left" valign="middle">SR-GHT [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>]</td>
                <td align="left" valign="middle">Hierarchical Grid Replication Mechanism (4d)</td>
                <td align="left" valign="middle">Recursive Hierarchical</td>
                <td align="left" valign="middle">As data never replicated to all nodes, basic data lost problem exists</td>
              </tr>
              <tr>
                <td align="left" valign="middle">2</td>
                <td align="left" valign="middle">SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]</td>
                <td align="left" valign="middle">Head node stores copy of all client data</td>
                <td align="left" valign="middle">N/A</td>
                <td align="left" valign="middle">Single point of head zone failure. Head zone energy depletes quicker than others</td>
              </tr>
              <tr>
                <td align="left" valign="middle">3</td>
                <td align="left" valign="middle">ToW [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>]</td>
                <td align="left" valign="middle">Hierarchical Grid Replication Mechanism (4d)</td>
                <td align="left" valign="middle">Combing</td>
                <td align="left" valign="middle">Extends SR-GHT by adding two modes of operation. It inherits drawbacks from SR-GHT</td>
              </tr>
              <tr>
                <td align="left" valign="middle">4</td>
                <td align="left" valign="middle">SSA [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>]</td>
                <td align="left" valign="middle">Create mirror of index node using Mirror Hilbert Curve &amp; Mirror Mapping Function</td>
                <td align="left" valign="middle">Not Specified</td>
                <td align="left" valign="middle">It doesn’t explain how data would be mirrored rather just a proposal is mentioned by couple of lines</td>
              </tr>
              <tr>
                <td align="left" valign="middle">5</td>
                <td align="left" valign="middle">RDCS [<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>]</td>
                <td align="left" valign="middle">Each zone has at most one replica node of mirror node</td>
                <td align="left" valign="middle">GPSR</td>
                <td align="left" valign="middle">Selection of mirror node is not specified clearly.</td>
              </tr>
              <tr>
                <td align="left" valign="middle">6</td>
                <td align="left" valign="middle">QAR [<xref ref-type="bibr" rid="B16-jsan-01-00059">16</xref>]</td>
                <td align="left" valign="middle">Hierarchical Grid Replication Mechanism with Quadratic Evolution (d2)</td>
                <td align="left" valign="middle">Combing</td>
                <td align="left" valign="middle">Inherits drawbacks from SR-GHT</td>
              </tr>
              <tr>
                <td align="left" valign="middle">6</td>
                <td align="left" valign="middle">Double Rulings [<xref ref-type="bibr" rid="B28-jsan-01-00059">28</xref>]</td>
                <td align="left" valign="middle">Stores data replica at a curve instead of one or multiple isolated sensors</td>
                <td align="left" valign="middle">Greedy Routing on a Curve</td>
                <td align="left" valign="middle">Can only employ 2 global replicas while tow and qar are adaptable to traffic load with multiple replicas</td>
              </tr>
              <tr>
                <td align="left" valign="middle">7</td>
                <td align="left" valign="middle">Dynamic Random Replication [<xref ref-type="bibr" rid="B41-jsan-01-00059">41</xref>]</td>
                <td align="left" valign="middle">Replicate data in randomly selected set of data replication nodes</td>
                <td align="left" valign="middle">Minimum Spanning Tree</td>
                <td align="left" valign="middle">Two major limitations: static WSN and consideration of homogenous spatial applications</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>In SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>], <xref ref-type="sec" rid="sec3dot2-jsan-01-00059">Section 3.2</xref>, the head node keeps a copy of all data to be replicated, which may be unrealistic due to storage space availability, and if any head node fails, then data cannot be recovered from the head node. ToW [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>] also replicates the root node into 4<sup>d</sup>− 1 mirror images like GHT but the authors used a combing routing protocol, taking advantage of the grid structure (see <xref ref-type="fig" rid="jsan-01-00059-f006">Figure 6</xref>) to create a shorter replication tree for transferring messages among replica nodes. Like GHT and ToW, QAR also proposes replication of the home node but in a more adaptable quadratic evolution <italic>N<sub>r</sub></italic> = <italic>d<sup>2</sup></italic>. QAR also provides an analytical model defining the optimal number of replicas (<italic>N<sub>r</sub><sup>*</sup></italic>), thus minimizing the overall network traffic. However, Unlike GHT, ToW and QAR replicate producer data to all replicas in their second mode of operation. Nevertheless, the mode of operation is not deterministic since the mode of operation depends on the resolution (see <xref ref-type="sec" rid="sec3dot6-jsan-01-00059">Section 3.6</xref>) and hence ToW and QAR might also suffer from the data loss problem during their first mode of operation, <italic>i.e.</italic>, <italic>write_one_query_all.</italic> SSA [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>] creates a mirror of the index node using a mirror Hilbert Curve and mirror mapping function. However, the replication process is not explained in the paper. RDCS [<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>] proposes at most one mirror node for each zone, which will keep a copy of the zone’s index node. An index node stores all data directed toward its responsible zone and therefore creation of a hotspot surrounding the index node is possible. Nevertheless, the hotspot issue has not been mentioned in the selection process for the mirror node. Dynamic random replication for DCS [<xref ref-type="bibr" rid="B41-jsan-01-00059">41</xref>] and double rulings [<xref ref-type="bibr" rid="B28-jsan-01-00059">28</xref>], described in <xref ref-type="sec" rid="sec3dot8-jsan-01-00059">Section 3.8</xref>, are two important research outcomes related to multi-replication research for DCS. Relative to previous work, random replication is a simpler and more flexible technique that enables an effective reduction of network traffic. The schemes, specifically, consider the case where nodes can determine the current set of <italic>N<sub>r</sub></italic> replicas associated with a given application by generating <italic>N<sub>r</sub></italic> random spatial locations with a hash function <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i069.tif"/>, where <italic>app </italic>is the application’s name and <italic>epoch</italic> is a shared time identifier employed to change replicas over time. The paper demonstrates that by placing a replica node randomly in the network it is possible to outperform ToW, QAR and GHT. Also by changing replication nodes over time it is possible to equalize the energy burdens across the network and hence a 60% improvement in network lifetime may be possible. However, the wireless network in the model is assumed to be static and the application is considered to be spatially homogenous.</p>
      </sec>
      <sec id="sec4dot6-jsan-01-00059">
        <title>4.6. Load Balancing</title>
        <p>In DLB [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>], <xref ref-type="sec" rid="sec3dot4-jsan-01-00059">Section 3.4</xref>, to balance the load among sensors in a grid, a scheme named the ‘cover-up’ scheme is used. According to this scheme every node of a grid has storage threshold levels. For instance, a sensor node has two threshold levels, e.g., 1<sup>st</sup> level = 30 and 2<sup>nd</sup> level = 60. A grid point forwards packets to the closest grid node for storage. When the node closest to the grid point reaches the first threshold level it modifies its virtual co-ordinate to (∞, ∞) in order to hide its original location. Hence, the geographic routing protocol forwarding event data to a storage node will ignore the original closest node and find a new node that is the next closest node to the grid point. This process continues until all nodes reach their first threshold level. The last node, farthest from the center, reaching this threshold broadcasts that the first threshold has been reached and the second threshold storage level is established. However, following this mechanism, at some point,all of the nodes within a grid could become saturated. If this occurs, the paper proposes an extended grid that uses adjacent grids to the saturated one to select a new home node.</p>
        <p>The authors introduce two types of load balancing schemes in SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]: (1) storage load balancing and (2) routing load balancing. In storage load balancing, the storage load is balanced among different zones. Every zone maintains a threshold, denoted by <italic>φ</italic>, of the percentage of a zone’s used storage to indicate when a zone is at risk of being overloaded. When a zone’s storage crosses <italic>φ</italic>, it starts forwarding all storage requests to a lightly loaded neighbor zone. Every zone calculates its storage status <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i070.tif"/>and forwards this status to its neighbor zones periodically. In routing load balancing instead of routing packets using one specific route, SDS calculates more than one shortest route between a source or relay and destination. This reduces congestion in any specific route. The calculated shortest path between <italic>H<sub>a</sub></italic> (<italic>X<sub>a</sub></italic>, <italic>Y<sub>a</sub></italic>) and <italic>H<sub>b</sub></italic> (<italic>X<sub>b</sub></italic>, <italic>Y<sub>b</sub></italic>), as shown in <xref ref-type="fig" rid="jsan-01-00059-f007">Figure 7</xref>, is not unique. For simplification let us consider |<italic>X<sub>a</sub></italic> – <italic>X<sub>b</sub></italic>| = |<italic>Y<sub>a</sub></italic> – <italic>Y<sub>b</sub></italic>| and then the maximum number of inflexion points in the horizontal and vertical routing process is <italic>C</italic> = |<italic>X<sub>a</sub></italic> – <italic>X<sub>b</sub></italic>|∙<italic>C</italic>. The number of choices in choosing <italic>j</italic> inflexion points among C is <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i071.tif"/>, which is equivalent to the problem of putting <italic>C</italic> ball into <italic>j</italic> boxes. There are <italic>2<sup>j</sup></italic> possible routes for each choice with <italic>j</italic> inflexion points, hence the maximum number of possible shortest routes between <italic>H<sub>a</sub></italic> and <italic>H<sub>b</sub></italic> is <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i072.tif"/>. When two nodes frequently communicate to each other, each query issuer randomly chooses one at each time from the list of all the shortest paths calculated.</p>
        <fig id="jsan-01-00059-f007" position="anchor">
          <label>Figure 7</label>
          <caption>
            <p>Multiple Shortest Routes [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>].</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-g007.tif"/>
        </fig>
        <p>In HVGR [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>], <xref ref-type="sec" rid="sec3dot12-jsan-01-00059">Section 3.12</xref>, for balancing the load among sensor nodes, the name based routing approach is modified. During the landmark selection, the network is divided unevenly. For example, an event <italic>E</italic> has a probability 1/<italic>m<sub>1</sub></italic> of being assigned to the first level landmarks (<italic>L<sub>1</sub></italic>, <italic>L<sub>2</sub></italic>,…). If the network is divided unevenly (<italic>L<sub>1 </sub>&gt; L<sub>2</sub></italic>), <italic>L<sub>2</sub></italic> is more likely to be overloaded earlier than <italic>L<sub>1</sub></italic>. Hence the load is balanced by assigning a task to regions in proportion to the region size. An event is stored in a node in <italic>L<sub>k</sub></italic>’<italic>s</italic> first level region if:</p>
        <p><inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i074.tif"/>    (14) </p>
        <p>Here, <italic>N<sub>i</sub></italic> is the number of nodes in landmark <italic>L<sub>i</sub></italic><italic>’s </italic>first level region and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i075.tif"/>.</p>
        <p>In LB-DCS [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>], for handling load balancing across a dynamic network, the hash function includes a network density estimation <italic>f</italic>. To estimate sensor density, the WSN is divided into <italic>n x n</italic> non-overlapping square regions with a side length <italic>p</italic>. A sensor node closest to the center of a zone is referred to as a watch point and is called a sentinel node. Each sentinel node broadcasts a request to its neighbors to count them. The number of neighbors is used as an estimation of the local density in the region. One <italic>proactive </italic>(Broadcast) and two <italic>reactive</italic> protocols (Stripes and FatStripes) are used to deliver the estimate computed by sentinels to other sensor nodes. After collecting estimates a sensor uses <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i076.tif"/>and <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i077.tif"/>to calculate the density in each region and the final approximation based on the first computation, respectively. Here, <italic>w<sub>ij</sub></italic> is the density estimated by the sentinel for the <italic>i</italic>, <italic>j</italic> region and <italic>m </italic>is the number of neighbors in this region. In two situations referred to as <italic>false zeroes </italic>and <italic>over reporting</italic>, <italic>d ' i,j </italic>might give a misleading density estimation value. A region with sparse nodes near the watch point or a concentration of nodes near the border may report a zero or very low density representing <italic>false zeroes.</italic> In another situation, a region with a high concentration of nodes near a watch point and sparse nodes near borders may report a higher density than normal representing <italic>over reporting.</italic> To overcome these situations the final approximation <italic>d<sub>i,j </sub></italic>is computed as a weighted mean of the approximation computed in the first step for region <italic>ij</italic>. <xref ref-type="table" rid="jsan-01-00059-t004">Table 4</xref> shows a summary of load balancing DCS schemes based on their functionalities.</p>
        <table-wrap id="jsan-01-00059-t004" position="anchor">
          <object-id pub-id-type="pii">jsan-01-00059-t004_Table 4</object-id>
          <label>Table 4</label>
          <caption>
            <p>Summary of Load Balancing DCS Schemes.</p>
          </caption>
                    <table>
            <thead>
              <tr>
                <th align="left" valign="middle">Functionalities</th>
                <th align="left" valign="middle">Schemes</th>
                <th align="left" valign="middle">Method Used</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" valign="middle">Intra-Zone Load Balance</td>
                <td align="left" valign="middle">DLB [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>]</td>
                <td align="left" valign="middle">Cover-up Scheme</td>
              </tr>
              <tr>
                <td rowspan="5" align="left" valign="middle">Inter-Zone Load Balance</td>
                <td align="left" valign="middle">SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]</td>
                <td align="left" valign="middle">Measuring Storage Usage Status (<inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i078.tif"/>)</td>
              </tr>
              <tr>
                <td align="left" valign="middle">DLB [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>]</td>
                <td align="left" valign="middle">Extended Grid (Cover up grid)</td>
              </tr>
              <tr>
                <td align="left" valign="middle">HVGR [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>]</td>
                <td align="left" valign="middle">Proportional Assignment of Storage Task to Regions</td>
              </tr>
              <tr>
                <td align="left" valign="middle">LB-DCS [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>]</td>
                <td align="left" valign="middle">Sampling Density, Broadcast, Stripes, FatStripes</td>
              </tr>
              <tr>
                <td align="left" valign="middle">KDDCS [<xref ref-type="bibr" rid="B42-jsan-01-00059">42</xref>]</td>
                <td align="left" valign="middle">Weighted Split Median</td>
              </tr>
              <tr>
                <td align="left" valign="middle">Routing Load Balance</td>
                <td align="left" valign="middle">SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]</td>
                <td align="left" valign="middle">Distributing Routing Load to All Possible Routes Equals to <inline-graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jsan-01-00059-i079.tif"/></td>
              </tr>
            </tbody>
          </table>

        </table-wrap>
      </sec>
      <sec id="sec4dot7-jsan-01-00059">
        <title>4.7. Routing Algorithm</title>
        <p>The DCS scheme might incur high update traffic due to the lack of an optimally synchronized routing algorithm. Initial research in DCS focused on designing an efficient technique that could be used to map data to the rendezvous node/zone rather than concentrating on developing an optimal packet routing technique. Most of the DCS methods, for data storage and search routing, rely on a locating system (e.g., GPS) that places an energy burden on the WSN. However, in the last quarter of this decade a few <italic>DCS</italic> techniques were proposed putting focus on enhancement of packet routing. These different routing algorithms can broadly be divided into two categories namely point-to-point routing and tree based hierarchical routing. In point-to-point routing the deployed network field is divided into zones or sectors and data usually propagates from one zone or rendezvous node to another in a multi-hop point-to-point fashion. In contrast, tree based hierarchical routing relies on a tree-construction technique dividing the whole network into a tree-structure and provides a mapping of data transfer paths with minimal assumption about the underlying infrastructure. DIM [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>], KDDCS [<xref ref-type="bibr" rid="B42-jsan-01-00059">42</xref>] are developed based on <italic>K-D</italic> trees while HVGR [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>] and PathDCS [<xref ref-type="bibr" rid="B32-jsan-01-00059">32</xref>] were developed on top of hierarchical Voronoi Graph and path based tree structure respectively. <xref ref-type="table" rid="jsan-01-00059-t005">Table 5</xref> summarizes DCS schemes based on these two types of routing algorithm used.</p>
        <table-wrap id="jsan-01-00059-t005" position="anchor">
          <object-id pub-id-type="pii">jsan-01-00059-t005_Table 5</object-id>
          <label>Table 5</label>
          <caption>
            <p>Summary of DCS Schemes Based on Routing Algorithm.</p>
          </caption>
          <table>
            <thead>
              <tr>
                <th colspan="2" align="left" valign="middle">Routing Algorithm</th>
                <th align="left" valign="middle">Schemes</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td rowspan="5" align="left" valign="middle">Point-to-Point Routing</td>
                <td align="left" valign="middle">GPSR</td>
                <td align="left" valign="middle">MDA [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>], GHT [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>], DLB [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>], DIM [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>], D-GHT [<xref ref-type="bibr" rid="B43-jsan-01-00059">43</xref>], LB-DCS [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>], Q-NIGHT [<xref ref-type="bibr" rid="B25-jsan-01-00059">25</xref>], SSA [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>], Tug-of-War [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>], RDCS [<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">Logical Stateless Routing (LSR)</td>
                <td align="left" valign="middle">KDDCS [<xref ref-type="bibr" rid="B42-jsan-01-00059">42</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">CAR-POOLING</td>
                <td align="left" valign="middle">SDS [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">COMBING</td>
                <td align="left" valign="middle">Tug-of-War [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">Recursive Hierarchical Routing</td>
                <td align="left" valign="middle">SR-GHT [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>]</td>
              </tr>
              <tr>
                <td rowspan="4" align="left" valign="middle">Tree Based Hierarchical Routing</td>
                <td align="left" valign="middle">GPSR</td>
                <td align="left" valign="middle">DIFS [<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>], DIM [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">PATH BASED TREE STRUCTURE</td>
                <td align="left" valign="middle">PathDCS [<xref ref-type="bibr" rid="B32-jsan-01-00059">32</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">HIERARCHICAL VORONOI GRAPH BASED ROUTING</td>
                <td align="left" valign="middle">HVGR [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>]</td>
              </tr>
              <tr>
                <td align="left" valign="middle">VPCR</td>
                <td align="left" valign="middle">GEM [<xref ref-type="bibr" rid="B44-jsan-01-00059">44</xref>]</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
    </sec>
    <sec id="sec5-jsan-01-00059">
      <title>5. Conclusion</title>
      <p>As it has become apparent, significant research has occurred since 2002 on WSN DCS schemes. Since WSN may be deployed in large-scale networks with thousands of sensors, efficient data storage and retrieval mechanisms are of pivotal importance. The key DCS schemes have been classified in this paper and summarized for convenience in <xref ref-type="table" rid="jsan-01-00059-t006">Table 6</xref>. In the current literature, identified DCS schemes do not provide solutions for all the challenges mentioned in <xref ref-type="sec" rid="sec2-jsan-01-00059">Section 2</xref>. Some key challenges such as similarity, spatial-temporal similarity search and the non-uniformity of sensor networks are addressed only in a few papers and conclusive approaches are yet to be found. Other challenges are still open. </p>
      <table-wrap id="jsan-01-00059-t006" position="anchor">
        <object-id pub-id-type="pii">jsan-01-00059-t006_Table 6</object-id>
        <label>Table 6</label>
        <caption>
          <p>Summary of DCS Schemes Highlighting Their Key Features.</p>
        </caption>
        <table>
          <thead>
            <tr>
              <th align="left" valign="middle"> </th>
              <th align="left" valign="middle">Title</th>
              <th align="left" valign="middle">Routing Category</th>
              <th align="left" valign="middle">Dimension (attribute)</th>
              <th align="left" valign="middle">Range <italic>vs.</italic> Point Query</th>
              <th align="left" valign="middle">Data Aggregation</th>
              <th align="left" valign="middle">Similarity Search</th>
              <th align="left" valign="middle">Multi Replication</th>
              <th align="left" valign="middle">Load Balance</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" valign="middle">1</td>
              <td align="left" valign="middle">Geographic Hash Table (GHT) [<xref ref-type="bibr" rid="B1-jsan-01-00059">1</xref>]</td>
              <td align="left" valign="middle">Point-to-PointRouting</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">2</td>
              <td align="left" valign="middle">Data Storage and Range Query Mechanism for Multi-dimensional Attributes. [<xref ref-type="bibr" rid="B35-jsan-01-00059">35</xref>]</td>
              <td align="left" valign="middle">Point-to-PointRouting</td>
              <td align="left" valign="middle">Multi</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">3</td>
              <td align="left" valign="middle">Distributed Spatial-Temporal Data Storage Scheme. [<xref ref-type="bibr" rid="B19-jsan-01-00059">19</xref>]</td>
              <td align="left" valign="middle">Point-to-PointRouting</td>
              <td align="left" valign="middle">Multi</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">4</td>
              <td align="left" valign="middle">Load Balanced and Efficient Hierarchical Data-Centric Storage. [<xref ref-type="bibr" rid="B33-jsan-01-00059">33</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">5</td>
              <td align="left" valign="middle">Dynamic Load Balancing Approach [<xref ref-type="bibr" rid="B23-jsan-01-00059">23</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">6</td>
              <td align="left" valign="middle">Load Balanced Data-Centric Storage (LB-DCS) [<xref ref-type="bibr" rid="B24-jsan-01-00059">24</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">7</td>
              <td align="left" valign="middle">Tug-of-War [<xref ref-type="bibr" rid="B27-jsan-01-00059">27</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">8</td>
              <td align="left" valign="middle">Efficient Mechanism for Similarity Search [<xref ref-type="bibr" rid="B22-jsan-01-00059">22</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Both</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">9</td>
              <td align="left" valign="middle">DIFS: A Distributed Index for Features in Sensor Network [<xref ref-type="bibr" rid="B30-jsan-01-00059">30</xref>]</td>
              <td align="left" valign="middle">DCS Based on Tree-Structure</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">10</td>
              <td align="left" valign="middle">PathDCS [<xref ref-type="bibr" rid="B32-jsan-01-00059">32</xref>]</td>
              <td align="left" valign="middle">DCS Based on Tree-Structure</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Point</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">11</td>
              <td align="left" valign="middle">DIM [<xref ref-type="bibr" rid="B13-jsan-01-00059">13</xref>]</td>
              <td align="left" valign="middle">DCS Based on Tree-Structure</td>
              <td align="left" valign="middle">Multi</td>
              <td align="left" valign="middle">Both</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">12</td>
              <td align="left" valign="middle">GEM [<xref ref-type="bibr" rid="B44-jsan-01-00059">44</xref>]</td>
              <td align="left" valign="middle">DCS Based on Tree-Structure</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">13</td>
              <td align="left" valign="middle">KDDCS [<xref ref-type="bibr" rid="B42-jsan-01-00059">42</xref>]</td>
              <td align="left" valign="middle">DCS Based on Tree-Structure</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
            </tr>
            <tr>
              <td align="left" valign="middle">14</td>
              <td align="left" valign="middle">RDCS [<xref ref-type="bibr" rid="B36-jsan-01-00059">36</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">Range</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">No</td>
            </tr>
            <tr>
              <td align="left" valign="middle">15</td>
              <td align="left" valign="middle">Modeling Data Aggregation [<xref ref-type="bibr" rid="B38-jsan-01-00059">38</xref>]</td>
              <td align="left" valign="middle">Point-to-Point Routing</td>
              <td align="left" valign="middle">Single</td>
              <td align="left" valign="middle">N/A</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
              <td align="left" valign="middle">Yes</td>
              <td align="left" valign="middle">No</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>There is also a strong need to have an efficient compatible routing algorithm specifically designed for DCS. Most DCS schemes utilize GPSR routing and research is occurring into developing routing protocols based on tree and hierarchical structures. An optimal approach for large WSN is yet to be found.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="B1-jsan-01-00059">
        <label>1.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Ratnasamy</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Karp</surname>
              <given-names>B.</given-names>
            </name>
            <name>
              <surname>Yin</surname>
              <given-names>L.</given-names>
            </name>
            <name>
              <surname>Yu</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Estrin</surname>
              <given-names>D.</given-names>
            </name>
            <name>
              <surname>Govindan</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Shenker</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>GHT: A Geographic Hash Table for Data-centric Storage</article-title>
          <source>Proceedings of the 1st ACM International Workshop on Wireless Sensor Networks and Applications</source>
          <conf-loc>Atlanta, GA, USA</conf-loc>
          <conf-date>28 September 2002</conf-date>
          <fpage>78</fpage>
          <lpage>87</lpage>
        </citation>
      </ref>
      <ref id="B2-jsan-01-00059">
        <label>2.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Campobello</surname>
              <given-names>G.</given-names>
            </name>
            <name>
              <surname>Leonardi</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Palazzo</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>A Novel Reliable and Energy-Saving Forwarding Technique for Wireless Sensor Networks</article-title>
          <source>Proceedings of the Tenth ACM international Symposium on Mobile Ad Hoc Networking and Computing</source>
          <conf-loc>New Orleans, LA, USA</conf-loc>
          <conf-date>18-21 May 2009</conf-date>
          <fpage>269</fpage>
          <lpage>278</lpage>
        </citation>
      </ref>
      <ref id="B3-jsan-01-00059">
        <label>3.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Pottie</surname>
              <given-names>G.J.</given-names>
            </name>
            <name>
              <surname>Kaiser</surname>
              <given-names>W.J.</given-names>
            </name>
          </person-group>
          <article-title>Wireless integrated network sensors</article-title>
          <source>Commun. ACM</source>
          <year>2000</year>
          <volume>43</volume>
          <fpage>51</fpage>
          <lpage>58</lpage>
          <pub-id pub-id-type="doi">10.1145/332833.332838</pub-id>
        </citation>
      </ref>
      <ref id="B4-jsan-01-00059">
        <label>4.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Saroiu</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Gummadi</surname>
              <given-names>P.K.</given-names>
            </name>
            <name>
              <surname>Gribble</surname>
              <given-names>S.D.</given-names>
            </name>
          </person-group>
          <article-title>A Measurement Study of Peer-to-Peer File Sharing Systems</article-title>
          <source>Proceedings of the Multimedia Computing and Networking (MMCN)</source>
          <conf-loc>San Jose, CA, USA</conf-loc>
          <conf-date>January 2002</conf-date>
          <fpage>152</fpage>
          <lpage>157</lpage>
        </citation>
      </ref>
      <ref id="B5-jsan-01-00059">
        <label>5.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Yao</surname>
              <given-names>Y.</given-names>
            </name>
            <name>
              <surname>Tang</surname>
              <given-names>X.</given-names>
            </name>
            <name>
              <surname>Lim</surname>
              <given-names>E.-P.</given-names>
            </name>
          </person-group>
          <article-title>In-Network Processing of Nearest Neighbor Queries for Wireless Sensor Networks</article-title>
          <source>Proceedings of the 11th International Conference on Database Systems for Advanced Applications</source>
          <conf-date>Singapore, 12–15 April 2006</conf-date>
          <fpage>35</fpage>
          <lpage>49</lpage>
        </citation>
      </ref>
      <ref id="B6-jsan-01-00059">
        <label>6.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Szewczyk</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Polastre</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Mainwaring</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Culler</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>Lessons from a Sensor Network Expedition</article-title>
          <source>Proceedings of European Workshop Wireless Sensor Network</source>
          <conf-loc>Berlin, Germany</conf-loc>
          <conf-date>19-21 January 2004</conf-date>
          <fpage>307</fpage>
          <lpage>322</lpage>
        </citation>
      </ref>
      <ref id="B7-jsan-01-00059">
        <label>7.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Intanagonwiwat</surname>
              <given-names>C.</given-names>
            </name>
            <name>
              <surname>Govindan</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Estrin</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>Directed Diffusion: A Scalable and Robust Communication Paradigm for Sensor Networks</article-title>
          <source>Proceedings of the 6th Annual International Conference on Mobile Computing and Networking</source>
          <conf-loc>Boston, MA, USA</conf-loc>
          <conf-date>6-11 August 2000</conf-date>
          <fpage>56</fpage>
          <lpage>67</lpage>
        </citation>
      </ref>
      <ref id="B8-jsan-01-00059">
        <label>8.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Zhang</surname>
              <given-names>W.</given-names>
            </name>
            <name>
              <surname>Cao</surname>
              <given-names>G.</given-names>
            </name>
            <name>
              <surname>Porta</surname>
              <given-names>T.L.</given-names>
            </name>
          </person-group>
          <article-title>Data dissemination with ring-based index for wireless sensor networks</article-title>
          <source>IEEE Trans. Mob. Comput.</source>
          <year>2007</year>
          <volume>6</volume>
          <fpage>832</fpage>
          <lpage>847</lpage>
          <pub-id pub-id-type="doi">10.1109/TMC.2007.1019</pub-id>
        </citation>
      </ref>
      <ref id="B9-jsan-01-00059">
        <label>9.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Madden</surname>
              <given-names>S.R.</given-names>
            </name>
            <name>
              <surname>Franklin</surname>
              <given-names>M.J.</given-names>
            </name>
            <name>
              <surname>Hellerstein</surname>
              <given-names>J.M.</given-names>
            </name>
            <name>
              <surname>Hong</surname>
              <given-names>W.</given-names>
            </name>
          </person-group>
          <article-title>TinyDB: An acquisitional query processing system for sensor networks</article-title>
          <source>ACM Trans. Database Syst.</source>
          <year>2005</year>
          <volume>30</volume>
          <fpage>122</fpage>
          <lpage>173</lpage>
          <pub-id pub-id-type="doi">10.1145/1061318.1061322</pub-id>
        </citation>
      </ref>
      <ref id="B10-jsan-01-00059">
        <label>10.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Ye</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Luo</surname>
              <given-names>H.</given-names>
            </name>
            <name>
              <surname>Cheng</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Lu</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Zhang</surname>
              <given-names>L.</given-names>
            </name>
          </person-group>
          <article-title>A Two-tier Data Dissemination Model for Large-scale Wireless Sensor Networks</article-title>
          <source>Proceedings of the 8th Annual International Conference on Mobile Computing and Networking</source>
          <conf-loc>Atlanta, GA, USA</conf-loc>
          <conf-date>23-26 September 2002</conf-date>
          <fpage>148</fpage>
          <lpage>159</lpage>
        </citation>
      </ref>
      <ref id="B11-jsan-01-00059">
        <label>11.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Ye</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Zhong</surname>
              <given-names>G.</given-names>
            </name>
            <name>
              <surname>Lu</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Zhang</surname>
              <given-names>L.</given-names>
            </name>
          </person-group>
          <article-title>Gradient broadcast: A robust data delivery protocol for large scale sensor networks</article-title>
          <source>Wirel. Netw.</source>
          <year>2005</year>
          <volume>11</volume>
          <fpage>285</fpage>
          <lpage>298</lpage>
          <pub-id pub-id-type="doi">10.1007/s11276-005-6612-9</pub-id>
        </citation>
      </ref>
      <ref id="B12-jsan-01-00059">
        <label>12.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Langendoen</surname>
              <given-names>K.</given-names>
            </name>
          </person-group>
          <article-title>Medium access control in wireless sensor networks</article-title>
          <source>Medium Access Control Wirel. Netw.</source>
          <year>2008</year>
          <volume>2</volume>
          <fpage>535</fpage>
          <lpage>560</lpage>
        </citation>
      </ref>
      <ref id="B13-jsan-01-00059">
        <label>13.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Li</surname>
              <given-names>X.</given-names>
            </name>
            <name>
              <surname>Kim</surname>
              <given-names>Y.J.</given-names>
            </name>
            <name>
              <surname>Govindan</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Hong</surname>
              <given-names>W.</given-names>
            </name>
          </person-group>
          <article-title>Multi-dimensional Range Queries in Sensor Networks</article-title>
          <source>Proceedings of the 1st International Conference on Embedded Networked Sensor Systems</source>
          <conf-loc>Los Angeles, CA, USA</conf-loc>
          <conf-date>5-7 November 2003</conf-date>
          <fpage>63</fpage>
          <lpage>75</lpage>
        </citation>
      </ref>
      <ref id="B14-jsan-01-00059">
        <label>14.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Ganesan</surname>
              <given-names>D.</given-names>
            </name>
            <name>
              <surname>Estrin</surname>
              <given-names>D.</given-names>
            </name>
            <name>
              <surname>Heidemann</surname>
              <given-names>J.</given-names>
            </name>
          </person-group>
          <article-title>DIMENSIONS: Why do we need a new data handling architecture for sensor networks?</article-title>
          <source>ACM SIGCOMM Comput. Commun. Rev.</source>
          <year>2003</year>
          <volume>33</volume>
          <fpage>143</fpage>
          <lpage>148</lpage>
          <pub-id pub-id-type="doi">10.1145/774763.774786</pub-id>
        </citation>
      </ref>
      <ref id="B15-jsan-01-00059">
        <label>15.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Ganesan</surname>
              <given-names>D.</given-names>
            </name>
            <name>
              <surname>Cerpa</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Ye</surname>
              <given-names>W.</given-names>
            </name>
            <name>
              <surname>Yu</surname>
              <given-names>Y.</given-names>
            </name>
            <name>
              <surname>Zhao</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Estrin</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>Networking issues in wireless sensor networks</article-title>
          <source>J. Parallel Distrib. Comput.</source>
          <year>2004</year>
          <volume>64</volume>
          <fpage>799</fpage>
          <lpage>814</lpage>
          <pub-id pub-id-type="doi">10.1016/j.jpdc.2004.03.016</pub-id>
        </citation>
      </ref>
      <ref id="B16-jsan-01-00059">
        <label>16.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Rumín</surname>
              <given-names>Á.C.</given-names>
            </name>
            <name>
              <surname>Pascual</surname>
              <given-names>M.U.</given-names>
            </name>
            <name>
              <surname>Ortega</surname>
              <given-names>R.R.</given-names>
            </name>
            <name>
              <surname>López</surname>
              <given-names>D.L.</given-names>
            </name>
          </person-group>
          <article-title>Data centric storage technologies: Analysis and enhancement</article-title>
          <source>Sensors</source>
          <year>2010</year>
          <volume>10</volume>
          <fpage>3023</fpage>
          <lpage>3056</lpage>
          <pub-id pub-id-type="doi">10.3390/s100403023</pub-id>
        </citation>
      </ref>
      <ref id="B17-jsan-01-00059">
        <label>17.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Chatzigiannakis</surname>
              <given-names>I.</given-names>
            </name>
            <name>
              <surname>Kinalis</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Nikoletseas</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>An Adaptive Power Conservation Scheme for Heterogeneous Wireless Sensor Networks with Node Redeployment</article-title>
          <source>Proceedings of the Seventeenth Annual ACM Symposium on Parallelism in Algorithms and Architectures</source>
          <conf-loc>Las Vegas, NV, USA</conf-loc>
          <conf-date>17-20 July 2005</conf-date>
          <fpage>96</fpage>
          <lpage>105</lpage>
        </citation>
      </ref>
      <ref id="B18-jsan-01-00059">
        <label>18.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Shih</surname>
              <given-names>K.P.</given-names>
            </name>
            <name>
              <surname>Wang</surname>
              <given-names>S.S.</given-names>
            </name>
            <name>
              <surname>Chen</surname>
              <given-names>H.C.</given-names>
            </name>
            <name>
              <surname>Yang</surname>
              <given-names>P.H.</given-names>
            </name>
          </person-group>
          <article-title>CollECT: Collaborative event detection and tracking in wireless heterogeneous sensor networks</article-title>
          <source>Comput. Commun.</source>
          <year>2008</year>
          <volume>31</volume>
          <fpage>3124</fpage>
          <lpage>3136</lpage>
          <pub-id pub-id-type="doi">10.1016/j.comcom.2008.04.016</pub-id>
        </citation>
      </ref>
      <ref id="B19-jsan-01-00059">
        <label>19.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Shen</surname>
              <given-names>H.</given-names>
            </name>
            <name>
              <surname>Zhao</surname>
              <given-names>L.</given-names>
            </name>
            <name>
              <surname>Li</surname>
              <given-names>Z.</given-names>
            </name>
          </person-group>
          <article-title>A distributed spatial-temporal similarity data storage scheme in wireless sensor networks</article-title>
          <source>IEEE Trans. Mob. Comput.</source>
          <year>2011</year>
          <volume>10</volume>
          <fpage>982</fpage>
          <lpage>996</lpage>
          <pub-id pub-id-type="doi">10.1109/TMC.2010.214</pub-id>
        </citation>
      </ref>
      <ref id="B20-jsan-01-00059">
        <label>20.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Rowstron</surname>
              <given-names>A.I.T.</given-names>
            </name>
            <name>
              <surname>Druschel</surname>
              <given-names>P.</given-names>
            </name>
          </person-group>
          <article-title>Pastry: Scalable, Decentralized Object Location,and Routing for Large-Scale Peer-to-Peer Systems</article-title>
          <source>Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms</source>
          <conf-loc>Heidelberg, Germany</conf-loc>
          <conf-date>12-16 November 2001</conf-date>
          <fpage>329</fpage>
          <lpage>350</lpage>
        </citation>
      </ref>
      <ref id="B21-jsan-01-00059">
        <label>21.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Karp</surname>
              <given-names>B.</given-names>
            </name>
            <name>
              <surname>Kung</surname>
              <given-names>H.T.</given-names>
            </name>
          </person-group>
          <article-title>GPSR: Greedy Perimeter Stateless Routing for Wireless Networks</article-title>
          <source>Proceedings of the 6th Annual International Conference on Mobile Computing and Networking</source>
          <conf-loc>Boston, MA, USA</conf-loc>
          <conf-date>6-11 August 2000</conf-date>
          <fpage>243</fpage>
          <lpage>254</lpage>
        </citation>
      </ref>
      <ref id="B22-jsan-01-00059">
        <label>22.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Chung</surname>
              <given-names>Y.-C.</given-names>
            </name>
            <name>
              <surname>Su</surname>
              <given-names>I.F.</given-names>
            </name>
            <name>
              <surname>Lee</surname>
              <given-names>C.</given-names>
            </name>
          </person-group>
          <article-title>An efficient mechanism for processing similarity search queries in sensor networks</article-title>
          <source>Inf. Sci.</source>
          <year>2011</year>
          <volume>181</volume>
          <fpage>284</fpage>
          <lpage>307</lpage>
          <pub-id pub-id-type="doi">10.1016/j.ins.2010.08.031</pub-id>
        </citation>
      </ref>
      <ref id="B23-jsan-01-00059">
        <label>23.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Liao</surname>
              <given-names>W.-H.</given-names>
            </name>
            <name>
              <surname>Shih</surname>
              <given-names>K.-P.</given-names>
            </name>
            <name>
              <surname>Wu</surname>
              <given-names>W.-C.</given-names>
            </name>
          </person-group>
          <article-title>A grid-based dynamic load balancing approach for data-centric storage in wireless sensor networks</article-title>
          <source>Comput. Electr. Eng.</source>
          <year>2010</year>
          <volume>36</volume>
          <fpage>19</fpage>
          <lpage>30</lpage>
          <pub-id pub-id-type="doi">10.1016/j.compeleceng.2009.04.003</pub-id>
        </citation>
      </ref>
      <ref id="B24-jsan-01-00059">
        <label>24.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Albano</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Chessa</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Nidito</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Pelagatti</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>Dealing with nonuniformity in data centric storage for wireless sensor networks</article-title>
          <source>IEEE Trans. Parallel Distrib. Syst.</source>
          <year>2011</year>
          <volume>22</volume>
          <fpage>1398</fpage>
          <lpage>1406</lpage>
          <pub-id pub-id-type="doi">10.1109/TPDS.2011.18</pub-id>
        </citation>
      </ref>
      <ref id="B25-jsan-01-00059">
        <label>25.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Albano</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Chessa</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Nidito</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Pelagatti</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>Q-NiGHT: Adding QoS to Data Centric Storage in Non-Uniform Sensor Networks</article-title>
          <source>Proceedings of the 2007 International Conference on Mobile Data Management</source>
          <conf-loc>Mannheim, Germany</conf-loc>
          <conf-date>7-11 May 2007</conf-date>
          <fpage>166</fpage>
          <lpage>173</lpage>
        </citation>
      </ref>
      <ref id="B26-jsan-01-00059">
        <label>26.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Von Neumann</surname>
              <given-names>J.</given-names>
            </name>
          </person-group>
          <article-title>Various techniques used in connection with random digits</article-title>
          <source>Appl. Math Ser.</source>
          <year>1951</year>
          <volume>12</volume>
          <fpage>36</fpage>
          <lpage>38</lpage>
        </citation>
      </ref>
      <ref id="B27-jsan-01-00059">
        <label>27.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Joung</surname>
              <given-names>Y.-J.</given-names>
            </name>
            <name>
              <surname>Huang</surname>
              <given-names>S.-H.</given-names>
            </name>
          </person-group>
          <article-title>Tug-of-War: An Adaptive and Cost-Optimal Data Storage and Query Mechanism in Wireless Sensor Networks</article-title>
          <source>Lect. Note. Comput. Sci.</source>
          <year>5067</year>
          <fpage>237</fpage>
          <lpage>251</lpage>
        </citation>
      </ref>
      <ref id="B28-jsan-01-00059">
        <label>28.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Sarkar</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Zhu</surname>
              <given-names>X.</given-names>
            </name>
            <name>
              <surname>Gao</surname>
              <given-names>J.</given-names>
            </name>
          </person-group>
          <article-title>Double Rulings for Information Brokerage in Sensor Networks</article-title>
          <source>Proceedings of the 12th Annual International Conference on Mobile Computing and Networking</source>
          <conf-loc>Los Angeles, CA, USA</conf-loc>
          <conf-date>24-29 September 2006</conf-date>
          <fpage>286</fpage>
          <lpage>297</lpage>
        </citation>
      </ref>
      <ref id="B29-jsan-01-00059">
        <label>29.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Albano</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Chessa</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>Distributed Erasure Coding in Data Centric Storage for Wireless Sensor Networks</article-title>
          <source>Proceedings of the IEEE Symposium on Computers and Communications, (ISCC 2009)</source>
          <conf-loc>Sousse, Tunisia</conf-loc>
          <conf-date>5-8 July 2009</conf-date>
          <fpage>22</fpage>
          <lpage>27</lpage>
        </citation>
      </ref>
      <ref id="B30-jsan-01-00059">
        <label>30.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Greenstein</surname>
              <given-names>B.</given-names>
            </name>
            <name>
              <surname>Estrin</surname>
              <given-names>D.</given-names>
            </name>
            <name>
              <surname>Govindan</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Ratnasamy</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Shenker</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>DIFS: A Distributed Index for Features in Sensor Networks</article-title>
          <source>Proceedings of the First IEEE International Workshop on Sensor Network Protocols and Applications</source>
          <conf-loc>Anchorage, AK, USA</conf-loc>
          <conf-date>11 May 2003</conf-date>
          <fpage>163</fpage>
          <lpage>173</lpage>
        </citation>
      </ref>
      <ref id="B31-jsan-01-00059">
        <label>31.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Finkel</surname>
              <given-names>R.A.</given-names>
            </name>
            <name>
              <surname>Bentley</surname>
              <given-names>J.L.</given-names>
            </name>
          </person-group>
          <article-title>Quad trees a data structure for retrieval on composite keys</article-title>
          <source>Acta Informa.</source>
          <year>1974</year>
          <volume>4</volume>
          <fpage>1</fpage>
          <lpage>9</lpage>
          <pub-id pub-id-type="doi">10.1007/BF00288933</pub-id>
        </citation>
      </ref>
      <ref id="B32-jsan-01-00059">
        <label>32.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Ee</surname>
              <given-names>C.T.</given-names>
            </name>
            <name>
              <surname>Ratnasamy</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Shenker</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>Practical Data-centric Storage</article-title>
          <source>Proceedings of the 3rd Conference on Networked Systems Design &amp; Implementation</source>
          <conf-loc>San Jose, CA, USA</conf-loc>
          <conf-date>April 2006</conf-date>
          <volume>3</volume>
          <fpage>24</fpage>
          <lpage>24</lpage>
        </citation>
      </ref>
      <ref id="B33-jsan-01-00059">
        <label>33.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Yao</surname>
              <given-names>Z.</given-names>
            </name>
            <name>
              <surname>Yan</surname>
              <given-names>C.</given-names>
            </name>
            <name>
              <surname>Ratnasamy</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>Load Balanced and Efficient Hierarchical Data-Centric Storage in Sensor Networks</article-title>
          <source>Proceedings of the 5th Annual IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks</source>
          <conf-loc>San Francisco, CA, USA</conf-loc>
          <conf-date>June 2008</conf-date>
          <fpage>560</fpage>
          <lpage>568</lpage>
        </citation>
      </ref>
      <ref id="B34-jsan-01-00059">
        <label>34.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Zhao</surname>
              <given-names>Y.</given-names>
            </name>
            <name>
              <surname>Li</surname>
              <given-names>B.</given-names>
            </name>
            <name>
              <surname>Zhang</surname>
              <given-names>Q.</given-names>
            </name>
            <name>
              <surname>Chen</surname>
              <given-names>Y.</given-names>
            </name>
            <name>
              <surname>Zhu</surname>
              <given-names>W.</given-names>
            </name>
          </person-group>
          <article-title>Efficient Hop ID based Routing for Sparse <italic>Ad Hoc</italic> Networks</article-title>
          <source>Proceedings of the 13th IEEE International Conference on Network Protocols</source>
          <conf-loc>Boston, MA, USA</conf-loc>
          <conf-date>6-9 November 2005</conf-date>
          <fpage>179</fpage>
          <lpage>190</lpage>
        </citation>
      </ref>
      <ref id="B35-jsan-01-00059">
        <label>35.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Liao</surname>
              <given-names>W.H.</given-names>
            </name>
            <name>
              <surname>Chen</surname>
              <given-names>C.C.</given-names>
            </name>
          </person-group>
          <article-title>Data storage and range query mechanism for multi-dimensional attributes in wireless sensor networks</article-title>
          <source>Communications</source>
          <year>2010</year>
          <volume>4</volume>
          <fpage>1799</fpage>
          <lpage>1808</lpage>
        </citation>
      </ref>
      <ref id="B36-jsan-01-00059">
        <label>36.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Ghose</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Grossklags</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Chuang</surname>
              <given-names>J.</given-names>
            </name>
          </person-group>
          <article-title>Resilient Data-Centric Storage in Wireless Ad-Hoc Sensor Networks</article-title>
          <source>Proceedings of the 4th International Conference on Mobile Data Management</source>
          <conf-loc>Melbourne, Australia</conf-loc>
          <conf-date>21-24 January 2003</conf-date>
          <fpage>45</fpage>
          <lpage>62</lpage>
        </citation>
      </ref>
      <ref id="B37-jsan-01-00059">
        <label>37.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Shen</surname>
              <given-names>H.</given-names>
            </name>
            <name>
              <surname>Li</surname>
              <given-names>T.</given-names>
            </name>
            <name>
              <surname>Schweiger</surname>
              <given-names>T.</given-names>
            </name>
          </person-group>
          <article-title>An Efficient Similarity Searching Scheme Based on Locality Sensitive Hashing</article-title>
          <source>Proceedings of the 3rd International Conference on Digital Telecommunications (ICDT)</source>
          <publisher-name>Bucharest, Romania</publisher-name>
          <publisher-loc>29 June-5 July 2008</publisher-loc>
        </citation>
      </ref>
      <ref id="B38-jsan-01-00059">
        <label>38.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Cuevas</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Uruena</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Cuevas</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Romeral</surname>
              <given-names>R.</given-names>
            </name>
          </person-group>
          <article-title>Modelling data-aggregation in multi-replication data centric storage systems for wireless sensor and actor networks</article-title>
          <source>Communications</source>
          <year>2011</year>
          <volume>5</volume>
          <fpage>1669</fpage>
          <lpage>1681</lpage>
        </citation>
      </ref>
      <ref id="B39-jsan-01-00059">
        <label>39.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Amato</surname>
              <given-names>G.</given-names>
            </name>
            <name>
              <surname>Baronti</surname>
              <given-names>P.</given-names>
            </name>
            <name>
              <surname>Chessa</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <article-title>MaD-WiSe: Programming and Accessing Data in a Wireless Sensor Networks</article-title>
          <source>Proceedings of the International Conference on Computer as a Tool, (EUROCON 2005)</source>
          <conf-loc>Beograd, Yugoslavia</conf-loc>
          <conf-date>21-24 November 2005</conf-date>
          <volume>2</volume>
          <fpage>1846</fpage>
          <lpage>1849</lpage>
        </citation>
      </ref>
      <ref id="B40-jsan-01-00059">
        <label>40.</label>
        <citation citation-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Madden</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Franklin</surname>
              <given-names>M.J.</given-names>
            </name>
            <name>
              <surname>Hellerstein</surname>
              <given-names>J.M.</given-names>
            </name>
            <name>
              <surname>Hong</surname>
              <given-names>W.</given-names>
            </name>
          </person-group>
          <article-title>TAG: A tiny AGgregation service for ad-hoc sensor networks</article-title>
          <source>SIGOPS Oper. Syst. Rev.</source>
          <year>2002</year>
          <volume>36</volume>
          <fpage>131</fpage>
          <lpage>146</lpage>
          <pub-id pub-id-type="doi">10.1145/844128.844142</pub-id>
        </citation>
      </ref>
      <ref id="B41-jsan-01-00059">
        <label>41.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Cuevas</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>Uruena</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>de Veciana</surname>
              <given-names>G.</given-names>
            </name>
          </person-group>
          <article-title>Dynamic Random Replication for Data Centric Storage</article-title>
          <source>Proceedings of the 13th ACM international Conference on Modeling, Analysis, and Simulation of Wireless and Mobile Systems</source>
          <conf-loc>Bodrum, Turkey</conf-loc>
          <conf-date>17-21 October 2010</conf-date>
          <fpage>393</fpage>
          <lpage>402</lpage>
        </citation>
      </ref>
      <ref id="B42-jsan-01-00059">
        <label>42.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Aly</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Pruhs</surname>
              <given-names>K.</given-names>
            </name>
            <name>
              <surname>Chrysanthis</surname>
              <given-names>P.K.</given-names>
            </name>
          </person-group>
          <article-title>KDDCS: A Load-Balanced In-Network Data-Centric Storage Scheme for Sensor Networks</article-title>
          <source>Proceedings of the 15th ACM International Conference on Information and Knowledge Management</source>
          <conf-loc>Arlington, VA, USA</conf-loc>
          <conf-date>6-11 November 2006</conf-date>
          <fpage>317</fpage>
          <lpage>326</lpage>
        </citation>
      </ref>
      <ref id="B43-jsan-01-00059">
        <label>43.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Thang Nam</surname>
              <given-names>L.</given-names>
            </name>
            <name>
              <surname>Wei</surname>
              <given-names>Y.</given-names>
            </name>
            <name>
              <surname>Xiaole</surname>
              <given-names>B.</given-names>
            </name>
            <name>
              <surname>Dong</surname>
              <given-names>X.</given-names>
            </name>
          </person-group>
          <article-title>A Dynamic Geographic Hash Table for Data-centric Storage in Sensor Networks</article-title>
          <source>Proceedings of the Wireless Communications and Networking Conference, (WCNC 2006)</source>
          <conf-loc>Las Vegas, NV, USA</conf-loc>
          <conf-date>3-6 April 2006</conf-date>
          <volume>4</volume>
          <fpage>2168</fpage>
          <lpage>2174</lpage>
        </citation>
      </ref>
      <ref id="B44-jsan-01-00059">
        <label>44.</label>
        <citation citation-type="confproc">
          <person-group person-group-type="author">
            <name>
              <surname>Newsome</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Song</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>GEM: Graph EMbedding for Routing and Data-Centric Storage in Sensor Networks without Geographic Information</article-title>
          <source>Proceedings of the 1st International Conference on Embedded Networked Sensor Systems</source>
          <conf-loc>Los Angeles, CA, USA</conf-loc>
          <conf-date>5-7 November 2003</conf-date>
          <fpage>76</fpage>
          <lpage>88</lpage>
        </citation>
      </ref>
    </ref-list>
  </back>
</article>
