RBO Protocol: Broadcasting Huge Databases for Tiny Receivers
We propose a protocol (called RBO) for broadcasting long streams of single-packet messages over radio channel for tiny, battery powered, receivers. The messages are labeled by the keys from some linearly ordered set. The sender repeatedly broadcasts …
Authors: Marcin Kik
1 RBO Protocol: Broadcasting Huge Databases for T in y Recei vers Marcin Kik Abstract —W e propose a protocol (called RBO) for broadcast- ing long streams of single-packet messages over radio channel for tiny , battery po wered, receivers. The messages are labeled by the keys from some linearly ordered set. The sender repeatedly broadcasts a sequence of many (possibly millions) of messages, while each receiv er is interested in reception of a message with a specified key within this sequence. The transmission is arranged so that the receiver can wake up in arbitrary moment and find the nearest transmission of its searched message. Even if it does not know the position of the message in the sequence, it needs only to receive a small number of (the headers of) other messages to locate it properly . Thus it can save energy by keeping the radio switched off most of the time. W e show that bit-re versal permu- tation has “recursiv e bisection properties” and, as a consequence, RBO can be implemented very efficiently with only constant number of d log 2 n e -bit variables, where n is the total number of messages in the sequence. The total number of the required receptions is at most 2 d log 2 n e + 2 in the model with perfect synchronization. The basic procedur e of RBO (computation of the time slot for the next required reception) requires only O (log 3 n ) bit-wise operations. W e propose implementation mechanisms f or realistic model (with imperfect synchronization), f or operating systems (such as e.g. TinyOS). Index T erms —Radio network, broadcast scheduling, energy efficiency . I . I N T RO D U C T I O N Recursiv e Bisection Ordering (RBO) Protocol is a protocol, based on a very simple ranking algorithm [1], for a powerful sender and energetically tiny receiv ers. The sender repeatedly broadcasts a sequence of messages. Each message is labeled by a ke y . The time interv als between subsequent starts of message transmissions in the sequence are equal. W e call them time slots . At arbitrary time moment the user of RBO (i.e. some application running on the receiv er device) may ask the RBO module to recei ve a message with some specified key . Since then, the task of the RBO module is to receiv e the nearest transmission of the message labeled with this key and deliv er this message to the user . The simplest strategy would be keeping the radio switched on and listen to all messages until the searched one is receiv ed. Ho wev er , radio consumes a lot of energy while it is switched on and the recei ver device has a limited energy source (i.e. battery). If the whole sequence contains millions of messages, then we may need to wait many hours until the searched message is transmitted. Therefore we need a strategy that minimizes the total radio working time and does receive the nearest transmission of the searched message. M. Kik is with the Institute of Mathematics and Computer Science of Wroclaw Uni versity of T echnology , ul. W ybrzeze W yspianskie go 27 50-370 Wroclaw , Poland (e-mail: Marcin.Kik@pwr .wroc.pl). This work was supported by MNiSW grant N N206 1842 33. Finding broadcast scheduling that optimizes energy con- sumption in the battery po wered recei vers becomes one of the main problems in di verse modern applications. An example is a very recent algorithm of finding optimal scheduling of broadcast bursts for mobile TV channels [2]. Other example are wireless networks of battery powered sensors. Nodes of such network consist of possibly simple processor , a very limited memory , specialized sensing or mea- surement tools, and radio receiver and transmitter . Usually , the task of such network is reporting the measurements or detected ev ents to the base station. The radio recei ver can be used for forwarding packets from the other more distant sensors, since the range of the sensor’ s transmitter is in many cases shorter than the distance to the base station (to sav e the energy). The other application of the radio recei ver can be receiving control messages from the base station. Howe ver , keeping the radio recei ver switched on all the time would consume too much energy . T echniques for sensor networks such as Lo w Power Listening (LPL, [3]), where the receiv er samples for short periods radio channel and continues listening if it detects any transmission, while the sender transmits a sequence of few copies of the message to ensure one successful reception, are appropriate for an extensi vely used channel. On the other hand, RBO is appropriate for a channel with continuous stream of messages, where each recei ver wants to receive only fe w of them. Also the sleeping intervals for LPL are constant (and so are the energy savings), while RBO flexibly adapts the sleeping interv als. They can be very long for very long sequences of messages. RBO can be used for transmission of public large databases that can be accessed by battery powered devices such as palm- tops. Howe ver , the efficiency and simplicity of its implementa- tion makes it also useful for very weak de vices such as sensors. For example, it enables sending control commands to a great multitude of sensors ov er a single radio channel. Each receiv er can use RBO to filter its own messages without any prior knowledge about the transmission schedule. In such system, we can add/remove receiv ers without affecting the beha vior of the other receiv ers. Thus, we hav e a simple and fle xible mechanism for time-di vision multiplexing of messages on a single radio channel. Note that in future we may face the problem of broadcasting of a very large amounts of infor- mation to multitude of energy constrained de vices scattered in our solar system. The only transmission medium would be limited number of radio channels. Another application of the RBO can be centralized channel access control for upload transmissions (e.g. for overcro wded channel): The base station broadcasts only the headers, while the rest of the time slot can be used for transmission by 2 the (unique) o wner of the ke y from the header . It can also be considered for broadcasting interrogation signals for re- porting selectiv e readings from sensors or battery powered (gas/water) meter devices. This could be generalized to the idea of distributed algorithms performed by sensors (such as e.g. routing to wards the base station) assisted by a po werful base station broadcasting control/synchronization commands organizing the distributed computation. T ransmitting large database for battery po wered recei vers has been considered by Imielinski, V iswanathan and Badrinath in [4], [5], and [6]. They proposed se veral techniques based on hashing and inclusion of indexing informations in data stream that let the recei ver energetically efficient searching for data. Specific variants of the problem and efficienc y measures hav e also been considered: Broadcast scheduling minimizing latency in the presence of errors has been considered in [7]. In [8] data-caching for energy sa ving has been proposed. Energy efficient indexing for for se veral types of data formats has been proposed in [9], [10], [11]. W e believ e that, in many applications, RBO can be a more implementable and robust solution. In RBO, each message, consisting of the header and data field, is of the same type, and occasional losses of messages do not cause sev ere conse- quences. The RBO protocol is based on a simple ranking algorithm for single hop radio network proposed in [1]. The sender sorts the messages by their keys and then permutes them by a special permutation (called recur sive bisection ordering or r bo ). Such sequence is periodically broadcast. The receivers’ RBO protocol keeps an interval [ minR , maxR ] of possible ranks of the searched k ey in the transmitted sequence. Initially [ minR, maxR ] = [0 , n − 1] , where n is the length of the sequence. RBO tries to receive only the messages with the keys ranked in [ minR, maxR ] . Each such message is either the searched one or it can be used for further updating (shrinking) of the interv al. It has been sho wn in [1] that no more than 4 lg 2 n messages are required to locate the rank of the key in the sequence if the sequence is retransmitted in rounds, ev en when the search is started in arbitrary time slot. In this paper we sho w that a simple bit-re versal permutation (famous for its application in FFT [12]) has the essential “recursiv e bisection” properties of the (recursiv ely defined) r bo . This enables very efficient and simple implementation of the functions needed by the RBO protocol. Hence, RBO can be implemented on very weak devices with tiny memory resources (such as e.g. sensors). In section II we show the properties of bit-reversal permu- tation that are relev ant for our protocol. W e also present the outline of the underlying algorithm. In section III we sho w precise upper bound on the number of necessary receptions required to reach the searched message. The bound is 2 d lg 2 n e + 2 . Due to the simpler permutation and more detailed proof, this bound is lower than the one in [1]. W e show an example, when 2 d lg 2 n e − 1 receptions are required. W e also include experimental results of the simulations, in the case when the communication is unreliable. In section IV we propose simple and ef ficient algorithm for computing the time-slot of the next message that should be receiv ed by the receiv er . The algorithm enables computations for very long sequences of messages (possibly many millions or more) ev en on very weak processors. It requires O (log 3 n ) bit-wise operations and a constant number of d log 2 n e -bit variables. In section V we discuss the implementation of the protocol on real devices. A prototype of the protocol with a simple demonstration application has been implemented in Jav a lan- guage and is a vailable at [13]. This implementation is designed to be easily transformable to T in yOS ([14], [15]): the required modules of Tin yOS, hardware components and radio channel has been modelled by appropriate objects. RBO protocol of fers split-phase interface to the user . The user issues a command to find a message with gi ven ke y and, after some time is signalled the call-back with the results of the search. In the meantime RBO switches the radio receiver on and off: on the one hand – to save energy , on the other hand – to ensure the reception of all the messages required for the search. Also the basic protocol functions have been implemented with no recursion and optimized up to the bitwise operations. I I . P R E L I M I N A R I E S A N D R E L E V A N T P RO P E RT I E S O F B I T - R E V E R S A L There is a single br oadcaster and arbitrary number of receiv ers. The broadcaster has a set of n messages to be broadcast labeled by ke ys from some linearly ordered universe. The keys do not hav e to be distinct. The broadcaster sorts the messages by the v alues of their keys. By a rank we mean a position index of an item in this sorted sequence. (The positions are numbered from 0 to n − 1 .) Then the broadcaster broadcasts in a round-robin fashion the sorted sequence of messages permuted by a fixed permutation π , i.e.: the message with rank x is broadcast in the time slots that are congruent modulo n to π ( x ) . On the other hand, each recei ver can at arbitrary time slot start the Algorithm 1 described below (technical re-formulation of ranking proposed in [1]) to recei ve the message with a specified key . W e assume that the length of the transmitted sequence is n = 2 k , for some positiv e integer k . (If the actual number of messages is not a power of two, then we can duplicate some of them to obtain a sequence of length 2 k .) For k ≥ 0 and x ∈ { 0 , . . . , 2 k − 1 } we define: r evB its k ( x ) = k − 1 X i =0 2 i · x k − 1 − i , where x i = b x/ 2 i c mo d 2 . Note that if ( x k − 1 , . . . , x 0 ) 2 is a binary representation of x , then ( x 0 , . . . , x k − 1 ) 2 is a binary representation of r ev B its k ( x ) . W e call r ev B its k a k -bit- r ever sal permutation . W e argue, that bit-reversal is a good choice, for the permu- tation π mentioned above, for the following reasons: • The low energetic costs of the radio operation of the receiv er (see Section III). • The simplicity and efficiency of the implementation of the function nextS l otI n (see Section IV and [13]). 3 • Also the results of simulations (see Figure 2) show the robustness of the algorithm to random loses of messages, e.g. caused by external interferences. A natural efficient solution to the problem of finding a key in the sorted sequence is application of the binary searc hing . W e can define an (almost) balanced binary search tree on 2 k nodes. As the first approach we define a permutation bs k (see the upper left graph on Figure 1). For k ≥ 0 , let bs k ( binary sear ch ordering ) be a permutation of { 0 , . . . , 2 k − 1 } defined as follows: • bs 0 ( x ) = 0 , and, • bs k +1 ( x ) = (1 − ( x mod 2)) · bs k ( b x/ 2 c ) + ( x mo d 2) · (2 k + b x/ 2 c ) . The domain of the permutation corresponds to ranks , while its range corresponds to time slots . In the definition of bs k +1 , for each ev en rank x , only the component: “ (1 − ( x mod 2)) · bs k ( b x/ 2 c ) ” can be non-zero, and, for each odd rank x , only the component: “ ( x mod 2) · (2 k + b x/ 2 c ) ” can be non-zero. Thus, all the e ven ranks, permuted by bs k − 1 (ignoring the least significant – parity – bit), are placed before the odd ones – the leaves of binary searc h tree . Th upper-left graph on Figure 1 is the graph of bs k for k = 5 . The axis of the range (the vertical axis) is directed downwards . The line segments form the binary search tree. A node ( x, y ) on the graph is on the level d lg 2 ( y + 1) e of the binary search tree. If the sender transmits a sorted sequence of length 2 k permuted by bs k and the receiv er starts listening in time slot zero, then it needs to receive no more than k keys to locate its searched ke y . Howe v er , if the receiv er starts at arbitrary time, then it may be forced to receive many messages. (Consider the case, when the receiver starts in time slot 2 k − 1 and the searched key is greater than all the keys of the sequence.) In binary sear ch it is essential, that all the nodes from one level precede all the nodes from the next level. Ho we ver , the ordering of the nodes within each lev el may be arbitrary . Note that r evB its satisfies the following recurrences: • r ev B its 0 ( x ) = 0 , for x = 0 , and, • r ev B its k +1 ( x ) = rev B its k ( b x/ 2 c ) + ( x mod 2) · 2 k , for 0 ≤ x ≤ 2 k +1 − 1 . In the definition of rev B its k +1 , both the set of odd ranks (mapped to the time slots { 2 k , . . . , 2 k +1 − 1 } – the leav es) and the set of the even ranks (mapped to the time slots { 0 , . . . , 2 k − 1 } – the part of the tree above the leav es) are both permuted recursi vely by r evB its k (ignoring the parity bit) within their ranges of time slots. Hence, by the recursion, each lev el l (of size d 2 l − 1 e ) is recur sively permuted by r ev B its l − 1 . The nodes within lev el l of the binary search tree form a binary search tree and the same holds for the sub-lev els of the lev el. The binary search tree for r ev B its 5 and the trees for its lev els (the first le vel of recursion) are sho wn on the graphs on Figure 1. The binary searc h tr ee of r ev B its k has k + 1 levels : 0 , . . . , k . By the level of the time slot t we mean d lg 2 ( t + 1) e , and by the level of the rank x we mean d lg 2 ( r evB its k ( x ) + 1) e . For each rank x on lev el l , we have 0 ≤ x < 2 k and x = 2 k − l + i x · 2 k − l +1 , for some integer i x called coordinate of x within level l . Note that i x = b x/ 2 k − l +1 c . Fig. 1. The graphs of permutations: bs 5 with embeded tree (upper left), rev B its 5 (upper right), rev B its 5 with embeded tree (lower left), and with the trees on the first recursion le vel (lower right). On the graphs, the axis of domain (corresponding to ranks ) is directed rightwards, while the axis of the range (corresponding to time ) is directed do wnwards. W e use notation ( a 1 , a 2 , . . . , a m ) to denote a sequence of the elements a 1 , a 2 , . . . , a m . Thus, () denotes an empty sequence. For sequences α 1 and α 2 , let α 1 · α 2 denote the concatenation of α 1 and α 2 . Let | α | denote the length of the sequence α . For a decreasing sequence α of numbers from { 0 , . . . , k } , we define the set Y k α as follows: 1) Y k () = { 0 , 1 , . . . , 2 k − 1 } . 2) for 0 ≤ l ≤ lg 2 | Y k α | , Y k α · ( l ) = { y | d lg 2 ( y − min Y k α + 1) e = l } . W e use Y k α to denote the subsets of time slots. Y k () is the set of all the time-slots and Y k α · ( l ) is the set of time slots on the l th lev el of the binary search tree Y k α . The following properties are simple consequence of the definition: Lemma 2.1: 1) | Y k α · (0) | = 1 and, for 0 < l ≤ lg 2 | Y k α | , | Y k α · ( l ) | = 2 l − 1 . 2) Y k α is a disjoint union of the sets Y k α · ( l ) , where 0 ≤ l ≤ lg 2 | Y k α | . 3) y ∈ Y k α · ( l ) if and only if min Y k α + b 2 l − 1 c ≤ y < min Y k α + 2 l . 4) min Y k ( l 0 ,l 1 ,...,l r ) = P r i =0 b 2 l i − 1 c . Let X k α = r ev B its k ( Y k α ) – the set of the ranks of the time slots Y k α . Let us define step k α as follows: • if α = () then step k α = 1 , else • if α = α 0 · ( l ) then step k α = 2 k − l +1 . Lemma 2.2: For each X k α , we hav e: 1) x ∈ X k α if and only if x = (min X k α + i · step α ) mo d 2 k , for some integer i . 2) step α ≥ min X k α + 1 . 3) max X k α + step α ≥ 2 k . Pr oof: If α = () , then X k α = { 0 , 1 , . . . , 2 k − 1 } and the lemma follows. Otherwise, α = α 0 · ( l ) , for some α 0 4 and l . If l ∈ { 0 , 1 } , then | X k α | = 1 , step α ∈ { 2 k +1 , 2 k } and the lemma follows. Otherwise, y ∈ Y k α if an only if min Y k α 0 + 2 l − 1 ≤ y < min Y k α 0 + 2 l . Note that α is decreasing and, by Lemma 2.1(4), min Y k α = min Y k α 0 + 2 l − 1 is di visible by 2 l − 1 . In other words: Y k α (respectiv ely , in X k α ) is the set of all the numbers that have the k − l + 1 most significant (re- spectiv ely , least significant) bits identical to min Y k α (respec- tiv ely , rev B its k (min Y k α ) ). Hence, X k α = r evB its k ( Y k α ) = { x | 0 ≤ x < 2 k ∧ x mod 2 k − l +1 = r ev B its k (min Y k α ) } . Since step α = 2 k − l +1 , we hav e • step α > r ev B its k (min Y k α ) = min X k α and • x ∈ X k α if and only if x = (min X k α + i · step α ) mo d 2 k , for some integer i . Thus the lemma follo ws. Notice that, for l > 0 , x ∈ X k α · ( l ) if and only if x − step k α · ( l ) / 2 ∈ S l − 1 i =0 X k α · ( i ) . (The ranks from the lev el X k α · ( l ) are equidistantly interleaved with the ranks from all previous levels S l − 1 i =0 X k α · ( i ) .) Thus: Lemma 2.3: For l ≥ 0 , x ∈ S l i =0 X k α · ( i ) if and only if x = (min S l i =0 X k α · ( i ) + j · 2 k − l ) mo d 2 k , for some integer j . For integer x and set of ranks X , let δ ( x, X ) = min( {∞} ∪ { d > 0 | x + d ∈ X } ) , and, for non-empty X , let minS tep ( X ) = min( { δ ( x, X ) | x ∈ X } ) . If X is a singleton, then minS tep ( X ) = ∞ . From Lemmas 2.2 and 2.3, we have: Lemma 2.4: 1) minS tep ( X α ) ≥ step α , and 2) minS tep ( S l i =0 X k α · ( i ) ) ≥ 2 k − l . W e also state the following simple fact: Lemma 2.5: If 2 · minS tep ( X ) > r 2 − r 1 , then | [ r 1 , r 2 ] ∩ X | ≤ 2 . A. Outline of the Pr otocol The most important function used by the RBO protocol is nextS l otI n k defined, for 0 ≤ t < 2 k , 0 ≤ r 1 ≤ r 2 < 2 k , as follows: nextS l otI n k ( t, r 1 , r 2 ) = ( t + τ k ( t, r 1 , r 2 )) mo d 2 k , where τ k ( t, r 1 , r 2 ) = min { d > 0 : r 1 ≤ r ev B its k (( t + d ) mo d 2 k ) ≤ r 2 } . (I.e. the number of the ne xt slot after t with rank in [ r 1 , r 2 ] .) The sender simply sorts the sequence of messages by the keys and permutes it by the permutation r evB its k . Then it repeatedly broadcasts such sequence. The receiver contains variables minr (initiated to 0 ), maxr (initiated to n − 1 ) and the searched key κ . The underlying algorithm for the receiv er is outlined in Algorithm 1. Thus, the interval [ minr , maxr ] of possible ranks of the searched key κ shrinks until it becomes empty or the searched ke y is found. The sleeping periods between subsequent receptions rapidly increase as the length of the interval decreases. I I I . B O U N D S O N T I M E A N D E N E R G Y Theor em 3.1: Let n = 2 k , for some positive integer k . Let κ 0 , . . . , κ n − 1 be a sorted sequence of keys. Let κ be arbitrary searched key , let t 0 be arbitrary time slot, 0 ≤ t 0 < n , repeat receiv e message m ; (* m contains a key m.κ and m.r ank – the rank of m.κ *) if m.κ = κ then report the found message m and stop; if m.κ < κ ∧ minr ≤ m.r ank then minr ← m.r ank + 1 ; if m.κ > κ ∧ maxr ≥ m.r ank then maxr ← m.r ank − 1 ; if minr ≤ maxr then let t = r evB its k ( m.r ank ) ; sleep (and skip all transmissions) until the time slot nextS l otI n k ( t, minr, maxr ) ; until minr > maxr ; report the absence of κ ; Algorithm 1: Outline of the receiv er’ s algorithm. and, let minr 0 = 0 and maxr 0 = n − 1 . For i ≥ 0 , let t i +1 = nextS lotI n ( t i , minr i , maxr i ) , and, • if κ < κ rev B its ( t i +1 ) then minr i +1 = minr i and maxr i +1 = r ev B its ( t i +1 ) − 1 , else • if κ > κ rev B its ( t i +1 ) then minr i +1 = r ev B its ( t i +1 ) + 1 and maxr i +1 = maxr i , else • minr i +1 = minr i and maxr i +1 = maxr i . Let e = min { i > 0 | minr i ≥ maxr i ∨ κ rev B its ( t i ) = κ } . W e hav e: 1) e ≤ 2 lg 2 n + 2 , and 2) t e is at most n time slots after t 0 . Pr oof: Note that t 1 = ( t 0 + 1) mo d n , and t 1 , t 2 , . . . , t e are the reception time slots required by the search for κ started just before t 1 . If κ ∈ { κ 0 , . . . , κ n − 1 } , then the sequence ( t 1 , t 2 , . . . , t e − 1 , t e ) is a prefix of the sequence of time slots used for searching for some κ 0 6∈ { κ 0 , . . . , κ n − 1 } with the same rank as κ . Therefore we consider only the case: κ 6∈ { κ 0 , . . . , κ n − 1 } . Note that { κ t 1 , κ ( t 1 +1) mo d n , . . . , κ ( t 1 + n − 1) mo d n } con- tains all the keys κ 0 , . . . , κ n − 1 . Hence, the bound on time (part 2) is v alid. Now consider the part 1 (the bound on energy). Let U denote the set of the (used) time slots { t 1 , t 2 , . . . , t e − 1 , t e } . Let T i be the set of all the time slots since t 1 until ( t i +1 − 1) mo d n : T 0 = ∅ and, for 1 ≤ i < e , T i = { ( t 1 + d ) mo d n | 0 ≤ d < d i } , where d i = min { x ≥ 0 | t i +1 = ( t 1 + x ) mod n } . Let R i = r ev B its k ( T i ) be the ranks of the time slots T i . Lemma 3.1 follo ws from the definition of nextS l otI n k and minr i and maxr i : Lemma 3.1: The values minr i − 1 and maxr i + 1 are the most precise bounds on the rank of κ from the subset R i ∪ {− 1 , n } : 1) minr i − 1 = max ( {− 1 } ∪ { x | κ x < κ ∧ x ∈ R i } ) , and 2) maxr i + 1 = min ( { n } ∪ { x | κ x > κ ∧ x ∈ R i } ) , and 3) (since κ 6∈ { κ 0 , . . . , κ n } ) maxr i + 1 = minr i − 1 + δ ( minr i − 1 , { n } ∪ R i ) . Lemma 3.2 states that each Y k α ⊆ T i imposes bounds on the length of the interval [ minr i , maxr i ] . 5 Lemma 3.2: maxr i + 1 ≤ minr i − 1 + min { step k α | Y k α ⊆ T i } . Pr oof: By Lemma 3.1(3), maxr i + 1 = minr i − 1 + δ ( minr i − 1 , { n }∪ R i ) . Let Y k α ⊆ T i . Since X k α ⊆ R i , we ha ve δ ( minr i − 1 , { n } ∪ R i ) ≤ δ ( minr i − 1 , { n } ∪ X k α ) ≤ step k α . The last inequality follo ws from Lemma 2.2: • if minr i − 1 < min X k α , then, by Lemma 3.1(1), minr i − 1 ≥ − 1 and, by Lemma 2.2(2), min X k α ≤ step k α − 1 , • if minr i − 1 ≥ max X k α , then, by Lemma 3.1(1), minr i − 1 < n and, by Lemma 2.2(3), n − max X k α ≤ step k α . • otherwise, minr i − 1 is between two consecuti ve elements in X k α which are at the distance step k α , by Lemma 2.2(1). Let β be the shortest sequence, such that min Y k β = t 1 . If β = () , then t 1 = 0 and we start binary search from the global root. (Thus each of t 1 , . . . , t e is on distinct lev el and, hence, e ≤ k + 1 .) Otherwise, let β 0 = β and, for j ≥ 0 , let β j +1 be defined as follows: • if β j = () , then β j +1 is not defined, else • if β j = α · ( l 0 , l , l − 1 , . . . , l − m ) , where l + 1 < l 0 and m ≥ 1 , then β j +1 = α · ( l 0 , l + 1) , else • if β j = ( l , l − 1 , . . . , l − m ) , where l < k and m ≥ 1 , then β j +1 = ( l + 1) , else • if β j = ( k , k − 1 , . . . , k − m ) , where m ≥ 0 , then β j +1 = () , else • β j +1 = α · ( l + 1) , where β j = α · ( l ) . Let l ast = min { j | β j = () } . For 0 ≤ j ≤ l ast , let f j (the foot of β j ) be defined as follows: • if β j = α · ( l ) , for some α and l , then let f j = l , else • (i.e. when β j = () ) let f j = k + 1 . Note that f 0 > 0 , since min Y α · (0) = min Y α . The following lemma follows directly from the definitions of β j and l ast . Lemma 3.3: 1) f 0 > 0 , and 2) for 0 ≤ j < l ast , f j + 1 + | β j | − | β j +1 | = f j +1 , and 3) f last = k + 1 . Notice that l ast ≤ k , since f 0 > 0 , and f j < f j +1 (since | β j | ≥ | β j +1 | ). The sequence of time slots ( t 1 , ( t 1 + 1) mod n, . . . , t e ) is a prefix of the sequence σ 0 · . . . · σ last , where σ i is the sorted sequence of time slots from Y k β i . Moreover σ 0 · . . . · σ last − 1 and σ last are increasing sequences of consecutive integers: Lemma 3.4: 1) min Y k β 0 = t 1 , and 2) for 0 ≤ j < l ast − 1 , max Y k β j + 1 = min Y k β j +1 , and 3) max Y k β last − 1 = n − 1 , and 4) for 0 ≤ i ≤ l ast , ∅ 6 = Y k β j = { t | min Y k β j ≤ t ≤ max Y k β j } , and 5) Y k β last = { 0 , 1 , . . . , n − 1 } . W e will show the bounds on the sizes of the intersections U ∩ Y k β j . Lemma 3.5: | U ∩ Y k β 0 | ≤ lg 2 | Y k β 0 | + 1 = max { 1 , f 0 } ≤ f 0 + 1 . Pr oof: t 1 is the root of the binary search tree Y k β 0 and the number of lev els of this tree is lg 2 | Y k β 0 | + 1 = max { 1 , f 0 } ≤ f 0 + 1 . Consider the case, when | β j | = | β j +1 | ≥ 1 . Lemma 3.6: If | β j | = | β j +1 | then | U ∩ Y k β j +1 | ≤ 2 ≤ f j +1 − f j + 1 . Pr oof: W e have β j = α · ( l ) and β j +1 = α · ( l + 1) , for some α and l . If l = 0 , then | Y k β j +1 | = 1 . Oth- erwise, let S = U ∩ Y k β j +1 (time slots used in Y k β j +1 ). If S = ∅ then | U ∩ Y k β j +1 | = 0 . If S 6 = ∅ , then let s = min { i | t i ∈ S } . By Lemma 3.4, we have Y k β j ⊆ T s − 1 . By Lemma 3.2, maxr s − 1 − minr s − 1 < step k β j = 2 · step k β j +1 . In Y k β j +1 we use only the time slots with the ranks in [ minr s − 1 , maxr s − 1 ] . Hence | S | ≤ | [ minr s − 1 , maxr s − 1 ] ∩ X k β j +1 | . By Lemma 2.4(1), minS tep ( X k β j +1 ) ≥ step k β j +1 and, by Lemma 2.5, | [ minr s − 1 , maxr s − 1 ] ∩ X k β j +1 | ≤ 2 = ( l + 1) − l + 1 = f j +1 − f j + 1 . Note that if we have ranked κ in the le vels Y k α · (0) , . . . , Y k α · ( l ) , then we hav e to check at most one rank on each level Y k α · ( l 0 ) with l 0 > l , since we simply make a continuation of binary search in the binary search tree Y k α : Lemma 3.7: If S l i =0 Y k α · ( i ) ⊆ T e − 1 , then, for each l 0 such that l < l 0 ≤ lg 2 | Y k α | , we hav e | U ∩ Y k α · ( l 0 ) | ≤ 1 . Consider the case, when | β j | > | β j +1 | ≥ 1 . Lemma 3.8: If | β j | > | β j +1 | ≥ 1 then | U ∩ Y k β j +1 | ≤ 2 + | β j | − | β j +1 | ≤ f j +1 − f j + 1 . Pr oof: Let m = | β j |−| β j +1 | . Let S = U ∩ Y k β j +1 . If S = ∅ then | U ∩ Y k β j +1 | = 0 . If S 6 = ∅ , then let s = min { i | t i ∈ S } . By definition, there is a sequence α and a level number l , such that β j = α · ( l , l − 1 , . . . , l − m ) and β j +1 = α · ( l + 1) . W e split the binary search tree Y k β j +1 into upper part Y 0 and lower part Y 00 as follows: Let Y 0 = S l − m i =0 Y k α · ( l +1 ,i ) and Y 00 = S l i = l − m +1 Y k α · ( l +1 ,i ) . Note that Y k β j +1 = Y 0 ∪ Y 00 . By Lemma 3.4, we have Y k β j ⊆ T s − 1 . Let X 0 = r ev B its k ( Y 0 ) . In Y 0 we use only the time slots from [ minr s − 1 , maxr s − 1 ] , thus | U ∩ Y 0 | ≤ | [ minr s − 1 , maxr s − 1 ] ∩ X 0 | . By Lemma 2.4(2), minS tep ( X 0 ) ≥ 2 k − ( l − m ) = step k β j / 2 . By Lemma 3.2, maxr s − 1 − minr s − 1 < step k β j . Hence, by Lemma 2.5 we hav e | [ minr s − 1 , maxr s − 1 ] ∩ X 0 | ≤ 2 . Finally , note that, if U ∩ Y 00 6 = ∅ , then Y 0 ⊆ T e − 1 and, by Lemma 3.7, | U ∩ Y 00 | ≤ m . And 2+ m = ( l +1) − ( l − m )+1 = f j +1 − f j +1 . For j < l ast , let c j = | U ∩ Y k β j | . From Lemmas 3.5, 3.6, and 3.8, we hav e: Lemma 3.9: c 0 ≤ f 0 + 1 , and, for 0 < j < last , c j ≤ f j − f j − 1 + 1 . W e still need a bound on the number of time slots used since the time slot 0. Let U 0 = { t ∈ U | t < t 1 } (equal to U \ S last − 1 j =0 Y k β j ). Lemma 3.10: | U 0 | ≤ k − f last − 1 + 2 . Pr oof: If U 0 = ∅ then the lemma follows. Consider the case U 0 6 = ∅ : Let l = f last − 1 . W e split the global binary search tree Y k () into upper part Y 0 and lower part Y 00 as follows: Let Y 0 = S l j =0 Y k ( j ) and Y 00 = S k j = l +1 Y k ( j ) . Let i 0 = max { i | t i ≥ t 1 } (i.e. the index of the last used time slot before the time slot 0). Let X 0 = r ev B its k ( Y 0 ) . Since the used time slots in U 0 hav e ranks in [ minr i 0 , maxr i 0 ] , we have | U 0 ∩ Y 0 | ≤ | [ minr i 0 , maxr i 0 ] ∩ X 0 | . Since Y k β last − 1 ⊆ T i 0 , we hav e, by Lemma 3.2, maxr i 0 − minr i 0 < step k β last − 1 . Since, 6 Fig. 2. A verage energy used, for 10 ≤ k ≤ 25 , for probabilities of successfull reception p ∈ { 0 . 5 , 0 . 75 , 1 } . by Lemma 2.4(2), minS tep ( X 0 ) ≥ 2 k − l = step k β last − 1 / 2 , we hav e, by Lemma 2.5, | [ minr i 0 , maxr i 0 ] ∩ X 0 | ≤ 2 . Finally , note that, if U 0 ∩ Y 00 6 = ∅ , then Y 0 ⊆ T e − 1 and, by Lemma 3.7, | U 0 ∩ Y 00 | ≤ k − l . Now , we can bound | U | : Lemma 3.11: | U | ≤ 2 · k + 2 . Pr oof: W e hav e | U | = P last − 1 j =0 c j + | U 0 | . By Lemma 3.9, we ha ve P last − 1 j =0 c j ≤ f 0 +1+ P last − 1 j =1 ( f j − f j − 1 +1) = last + f last − 1 . By Lemma 3.10, we have: | U 0 | ≤ k − f last − 1 + 2 . Since l ast ≤ k , we have ( l ast + f last − 1 ) + ( k − f last − 1 + 2) ≤ 2 k + 2 . Lemma 3.11 completes the proof of Theorem 3.1. Remark. Note that the bound is quite precise: Consider the case when κ n/ 2 < κ < κ n/ 2+1 and t 1 = min Y k (2) . Then, on each lev el Y k (2) , . . . , Y k ( k ) , we are using two slots and (in the next round) we are using one slot in Y k (1) . Thus the total number of the used slots is 2( k − 1) + 1 = 2 k − 1 . Theorem 3.1 states the bound on energy under the as- sumption that ev ery message is recei ved with probability p = 1 . On Figure 2 we present results of simulations of the basic algorithm under the assumption that the probability of successful reception is p . (If the reception is unsuccessful, then a unit of ener gy is used in the corresponding time slot, ho wev er the interv al [ minr , maxr ] is not updated.) The horizontal axis is k , where 2 k is the length of the broadcast sequence, and the v ertical axis is the av erage energy used by the receiv er in 100000 tests. In each test, a random starting time slot t 0 , 0 ≤ t 0 < 2 k , and a key (not present in the broadcast sequence) with random rank between 0 and 2 k hav e been uniformly selected. Since the key is not present in the sequence, the expected time is bounded by (1 /p 2 − 1 / 2) · 2 k . I V . C O M P U TA T I O N O F nextS lotI n The function nextS l otI n k ( t, r 1 , r 2 ) is recomputed by RBO whenev er it has to find the next time slot after t , such that the rank of the key transmitted in this slot is contained in the interval [ r 1 , r 2 ] . If the rank of the searched key is between r 1 and r 2 , then RBO can skip all the messages transmitted between time slots t + 1 and nextS l otI n k ( t, r 1 , r 2 ) − 1 . Efficient computation of this function reduces the time and the energy used by the processor of the receiver de vice. If 2 k / ( r 2 − r 1 ) is not too lar ge (e.g. below one hundred) then the distance between consecuti ve elements of rev B its ([ r 1 , r 2 ]) is not large and we may naively check sequentially the ranks of the time slots ( t + 1) mo d 2 k , ( t + 2) mod 2 k , . . . . Otherwise, if r 2 − r 1 is a small number , then we may apply r everse searching among time slots r evB its ( r 1 ) , . . . , rev B its ( r 2 ) , for the nearest successor of t . W e propose polylogarithmic time computation of nextS l otI n , that should be applied when both 2 k / ( r 2 − r 1 ) and r 2 − r 1 are large. The implementation of this algorithm in programming language can be found in [13]. Here we describe its idea and a more intuitiv e pseudo-code. First, let us see how to compute the (globally) minimal time slot t , such that r evB its k ( t ) ∈ [ r 1 , r 2 ] . Let minRev B its k ( r 1 , r 2 ) = min rev B its k ( { x | r 1 ≤ x ≤ r 2 } ) . Note that if x is (the rank of) the node of the binary search tree, then the left (respectiv ely , right) child of x is x L = x − 2 k − l − 1 (respectiv ely , x R = x + 2 k − l − 1 ), where l is the le vel of x . W e can compute minRev B its k by following the the path in the binary search tree until we enter the interv al [ r 1 , r 2 ] (see Algorithm 2). By symmetry of r evB its k , we hav e that function minR evB its k ( r 1 , r 2 ) x ← 0 ; s ← 2 k − 1 ; while x < r 1 or x > r 2 do if x < r 1 then x ← x + s else x ← x − s s ← s/ 2 ; retur n r ev B its ( x ) ; Algorithm 2: Computing minR evB its maxRev B its k ( r 1 , r 2 ) = max rev B its k ( { x | r 1 ≤ x ≤ r 2 } ) is equal to 2 k − minRev B its k (2 k − r 2 , 2 k − r 1 ) . Here is the outline of our algorithm for computing nextS l otI n k ( t, r 1 , r 2 ) : 1) If r ev B its k ( t ) is only one side of the interval [ r 1 , r 2 ] , then remove it: • If r 1 < r 2 then: – if r evB its k ( t ) = r 1 , then r 1 ← r 1 + 1 , – else if r ev B its k ( t ) = r 2 , then r 2 ← r 2 − 1 . 2) If [ r 1 , r 2 ] is a singleton then there is no choice: • If r 1 = r 2 then return r evB its k ( r 1 ) . 3) If t is still before the first slot ranked in [ r 1 , r 2 ] in this round, the return the first slot ranked in [ r 1 , r 2 ] : • Let tF ir st = minRev B its k ( r 1 , r 2 ) . • If t < tF irst then retur n tF ir st . 4) If t + 1 is after the last slot ranked in [ r 1 , r 2 ] , then return the first slot ranked in [ r 1 , r 2 ] in the next round of broadcasting: • Let tLast = maxRev B its k ( r 1 , r 2 ) . • If tLast ≤ t then retur n tF irst . 5) Here, tF ir st ≤ t < tLast . • Find minimal le vel l , such that l ≥ d lg 2 ( t + 1) e and minL = min { i | 2 k − l + i · 2 k − l +1 ≥ r 1 } is not greater than maxL = max { i | 2 k − l + i · 2 k − l +1 ≤ r 2 } . Such l is the first lev el (starting from the lev el of t ) that intersects [ r 1 , r 2 ] and { minL, . . . , maxL } are the 7 coor dinates within the level l of this intersection. Note that minL = d ( r 1 − 2 k − l ) / 2 k − l +1 e = b ( r 2 + 2 k − l − 1) / 2 k − l +1 c , and maxL = b ( r 2 − 2 k − l ) / 2 k − l +1 c . The number of nodes abov e the level l (and also the size of the level l ) is 2 l − 1 . • Let abov eL = 2 l − 1 . • Let tF ir stL = minRev B its l − 1 ( minL, maxL ) (the first time slot of the lev el l ranked within the level l in [ minL, maxL ] ). 6) abov eL + tF irstL is the global number of the first time slot of the lev el l ranked within the level l in [ minL, maxL ] . Check whether t is still before this time slot: • If t < abov eL + tF irstL then retur n aboveL + tF irstL . 7) Here l is the level of t , since we did not return in previous step. • Let tLastL = maxRev B its l − 1 ( minL, maxL ) . 8) If t ≥ abov eL + tlastL then (we have to find the first slot in [ r 1 , r 2 ] below the lev el l ): a) Find minimal lev el l 1 > l , such that minL 1 = min { i | 2 k − l 1 + i · 2 k − l 1 +1 ≥ r 1 } is not greater than maxL 1 = max { i | 2 k − l 1 + i · 2 k − l 1 +1 ≤ r 2 } . ( l 1 is the next lev el after l that intersects [ r 1 , r 2 ] .) b) Let abov eL 1 = 2 l 1 − 1 (the number of nodes above the level l 1 ). c) Let tF irstL 1 = minRev B its l 1 − 1 ( minL 1 , maxL 1 ) . d) Return abov eL 1 + tF irstL 1 . 9) Here tF ir stL ≤ t − abov eL < tLastL and we search within the lev el l ( tail recursion ): • Return abov eL + nextS l otI n l − 1 ( t − abov eL, minL, maxL ) . The depth of the recursion is at most k , since each level has no more than a half of the nodes of the tree. Step 8a is performed only on the last recursion. In step 5, t is above lev el l only on the last recursion. Thus, the algorithm performs O ( k ) elementary operations such as r evB its , minRev B its , maxRev B its or arithmetic operations. Since each such oper- ation needs O ( k 2 ) bit operations, the total cost is O (log 3 n ) of bitwise operations. W e replace tail r ecursion by iterati ve version (see the code of plogNextSlotIn at [13]). Thus RBO uses only constant number of d log 2 n e -bit variables. V . I M P L E M E N TA T I O N O F T H E P R OT O C O L W e propose an outline of practical implementation of RBO for realistic model, where the clocks of the sender and of the recei ver are not perfectly synchronized. W e also hav e to take into account the possible delays in processing the receiv ed messages by the underlying system protocols. W e hav e arbitrarily selected the set of av ailable RBO services. In the case of tin y devices such as sensors, it is customary that the code of the protocol implementation is modified and tailored to the particular needs of the (single) application run on the device. A. RBO Message F ormat The RBO message consists of a header and an arbitrary payload. The header contains the following fields: • seq uenceI d : The identifier of the sequence. If sequence of keys changes it should be changed. Zero is reserved for inv alid identifier - should not be used. • l ogS eq uenceLeng th : Logarithm to the base of 2 of the sequence length. The length of the sequence is integer power of two. • timeS lotLeng th : Time interval between the starts of consecutiv e message transmissions (e.g. in milliseconds). • k ey : The key of the message. • r ank : The rank of the k ey in the transmitted se- quence. Thus the time slot of this message is r evB its log Seq uenceLength ( r ank ) . B. Sender’ s P art of the RBO If the length n of the sequence to be transmitted is not an integer power of two, then some of the messages should be doubled to extend the length to the power of two n 0 = 2 d lg 2 n e . Note that the distance between consecuti ve occurrences of the doubled keys in periodic broadcasting reduces to 2 d lg 2 n e− 1 , while the distance between occurrences of the not doubled keys increases to 2 d lg 2 n e . T o compensate for this “injustice”, we can increase the length of the sequence to e ven higher power of two by creating more balanced numbers of copies of the messages. The sender broadcasts in rounds the sequence of messages sorted by the ke ys and permuted by the r evB its permutation. The messages should hav e properly filled in header fields. Whenev er the sequence of keys changes, the field sequenceI d must be changed unless l ogS eq uenceLeng th is changed. C. Receiver’ s P art of the RBO The RBO module on the receiv er’ s device of fers to its user application a split-phase interface. Such interface (see [14]) consists of the commands to be called by the user and events to be signalled to the user by the protocol. The user (i.e. the running application) issues a command sear ch ( k ey ) that initi- ates the search and returns immediately . As soon as the search is finished, the ev ent call-back searchD one ( messag e, err or ) is posted to be signaled to the user , where messag e is the buf fer containing the searched message (if found), and er ror is the status of the search result: • SUCCESS (the message has been found), • KEY_NOT_PRESENT (the k ey is not in the sequence), • TIMEOUT (no RBO messages has been received for long time), • BAD_MESSAGE (an RBO message with seq uenceI d = 0 has been receiv ed), • FAILED_RADIO (problems detected when switching the radio on/off). The user can also pause the current search with the command stop () (to be resumed later) or abandon it with the command r eset () (forgetting all partial results of the search). 8 LISTENING SLEEPING IDLE Fig. 3. State diagram of the RBO recei ver protocol. On the other hand RBO uses the system modules and interfaces that provide the timers ( timeoutT imer , sleeping T imer ), and the means (e.g. deli vered by the T inyOS module ActiveMessageC ) of packet reception (e.g the interface Receive ) and of switching the radio on and off (e.g. the interface SplitControl ). RBO can be in one of the three states: • IDLE (when RBO is not used), • LISTENING (when radio is switched on), • SLEEPING (when radio is switched off until sleeping T imer fires). The possible state transitions are displayed on Figure 3. In transition to LISTENING , a sl eepingT imer is canceled, timeoutT imer is set and the radio is switched on. (Actually , a split-phase process of switching the radio on is initiated.) In transition to SLEEPING , the timeoutT imer is canceled, sleeping T imer is set and radio is switched off. In transition to IDLE , the timers are canceled. RBO has following variables: • sear chedK ey – the recently searched key , • l ogS eq uenceLeng th and seq uenceI d (initiated to zero) – recently receiv ed in RBO message, • minRank and maxR ank – learned lower and upper bound on the rank of sear chedK ey . The user’ s command search ( k ey ) compares k ey to sear chedK ey and initiates searching: • If k ey < sear chK ey , then set minRank to zero. • If k ey > searchK ey , then set maxR ank to 2 log Seq uenceLength − 1 . • Set sear chedK ey to k ey and switches RBO to LISTENING state. (Thus we may take adv antage from the most recent search.) The stop and r eset commands switch RBO to IDLE . (Moreov er , r eset sets seq uenceI d to zero.) RBO implements callbacks of the ev ents signalled by the timers and the interfaces Receive and SplitControl . The timeouT imer e vent f ir ed () in the state LISTENING causes RBO transition to the state IDLE and sig- nalling sear chDone ( . . . , TIMEOUT ) to the user . The sleeping T imer event f ired in the state SLEEPING causes RBO transition to the state LISTENING and switching the radio on. The (most essential) ev ent r eceived ( messag e ) (re- ception of the messag e ) signalled by the radio Receive interface to RBO in state LISTENING is served by RBO as follows (we use notation messag e.name to denote the field in the message header and name to denote variable of RBO): 1) timeoutT imer is canceled. 2) If messag e.seq uenceI d = 0 , then RBO switches to IDLE and signals sear chDone ( messag e, BAD_MESSAGE ) , and returns. 3) If messag e.sequenceI d 6 = seq uenceI d or messag e.log S eq uenceLeng th 6 = log S eq uenceLeng th , then • set seq uenceI d to messag e.seq uenceI d , • set log S eq uenceLeng th to messag e.log S eq uenceLeng th and • (forget old bounds) set minRank to 0 and maxRank to 2 k − 1 , where k = l og S eq uenceLength . 4) If messag e.k ey = sear chedK ey then RBO switches to IDLE and signals sear chDone ( messag e, SUCCESS ) , and returns. 5) Try to update the bounds on the rank: • If messag e.k ey > searchedK ey and messag e.rank ≤ maxRank then set maxRank to messag e.r ank − 1 , else • if messag e.k ey < sear chedK ey and messag e.rank ≥ minRank then set minRank to messag e.rank + 1 . 6) T est for absence of the ser chedK ey : • If minRank > maxRank , then RBO switches to IDLE and signals searchD one ( messag e, KEY_NOT_PRESENT ) , and returns. 7) Compute the time remaining to the next useful message: • Let k = log S eq uenceLeng th and now = r ev B its k ( messag e.rank ) and next = nextS l otI n k ( now , minRank , maxRank ) . • If now < next then let sl otsT oN ext = next − now , else let slotsT oN ext = 2 k − now + next . • Let r emaing T ime = sl otsT oN ext · messag e.timeS lotLeng th . 8) If r emaining T ime is greater then a threshold (i.e. minS l eepingT ime ), then RBO sets sleeping T imer to r emainingT ime − rel ativeM arg in − timeM arg in , switches the radio off and transits to state SLEEPING , where timeM ar g in is some constant margin (e.g. few milliseconds) that should compensate for radio switching on and off delays and the delay in message process- ing, and r elativ eT imeM ar g in = r emaining T ime/d should compensate for not ideal synchronization of the sender’ s and receiv er’ s clocks. (If d is a power of two, then the division may be replaced by a binary shift.) 9) Otherwise (i.e. when r emaining T ime < minS l eepingT ime ), only the timeoutT imer is restarted. 10) RBO returns. W e skip the descriptions of the implementations of the callbacks startD one and stopD one of the interface SplitControl used for switching the radio on and off. In practice RBO may receiv e some o verhead messages due to the hardware delays and to keep synchronization with the sender . The proper balancing of the parameters (such as minS l eepingT ime , and the absolute and the relative time margins) that control the tradeoff between the energy savings and the reliability can be subject of real life experiments. V I . C O N C L U S I O N This paper proposes an efficient solution to the problem of transmitting very long streams of uniform messages for selectiv e reception by battery powered receiv ers. 9 W e proposed an implementation of the protocol based on a very simple basic algorithm (Algorithm 1) and an efficient algorithm for computation of its essential function nextSlotIn . Thus, the protocol can be implemented on devices with very weak processors and with very limited memory . Note, that we can “plug-in” arbitrary permutation instead of bit-rev ersal in the basic algorithm. W e ha ve shown that, for the bit-rev ersal permutation, the number of necessary receptions is bounded by 2 d log 2 n e + 2 . On the other hand we hav e shown an example, where 2 d log 2 n e − 1 receptions are necessary . It is interesting question, whether there exist any permutation, for which the respecti ve bounds are lower than for bit-rev ersal. Howe v er , log 2 n is an ob vious lo wer bound and the simplicity of bit-re versal is a great adv antage in possible implementa- tions. The tests for unreliable transmissions (Figure 2) show that the expected energetic costs are very low ev en if the probability of successful reception is much lo wer than one. A C K N O W L E D G M E N T The author would like to thank Jacek Cicho ´ n for helpful comments. R E F E R E N C E S [1] M. Kik, “Ranking and sorting in unreliable single hop radio network, ” in ADHOC-NO W , ser . Lecture Notes in Computer Science, D. Coudert, D. Simplot-Ryl, and I. Stojmenovic, Eds., v ol. 5198. Springer, 2008, pp. 333–344. [2] C.-H. Hsu and M. M. Hefeeda, “Broadcasting video streams encoded with arbitrary bit rates in energy-constrained mobile tv networks, ” Networking, IEEE/ACM T ransactions on , vol. 18, no. 3, pp. 681 –694, june 2010. [3] K. K. David Moss, Jonathan Hui, “Low power listening, ” www.tinyos.net/tinyos-2.x/doc/html/tep105.html . [4] T . Imielinski, S. V isw anathan, and B. R. Badrinath, “Energy effi- cient indexing on air , ” in SIGMOD Conference , R. T . Snodgrass and M. Winslett, Eds. A CM Press, 1994, pp. 25–36. [5] ——, “Power efficient filtering of data an air , ” in EDBT , ser . Lecture Notes in Computer Science, M. Jarke, J. A. B. Jr ., and K. G. Jeffery , Eds., vol. 779. Springer, 1994, pp. 245–258. [6] ——, “Data on air: Organization and access, ” IEEE T rans. Knowl. Data Eng. , vol. 9, no. 3, pp. 353–372, 1997. [7] N. H. V aidya and S. Hameed, “Scheduling data broadcast in asymmetric communication en vironments, ” W ir eless Networks , v ol. 5, no. 3, pp. 171– 182, 1999. [8] Y . Leu and J.-J. Hung, “ An energy efficient re-access scheme for data caching in data broadcast of a mobile computing environment, ” Inf. Sci. , vol. 177, no. 24, pp. 5538–5557, 2007. [9] Y . D. Chung, S. Y oo, and M.-H. Kim, “Energy- and latency-efficient processing of full-text searches on a wireless broadcast stream, ” IEEE T rans. Knowl. Data Eng. , vol. 22, no. 2, pp. 207–218, 2010. [10] Y . D. Chung and J. Y . Lee, “ An indexing method for wireless broadcast xml data, ” Inf. Sci. , vol. 177, no. 9, pp. 1931–1953, 2007. [11] Y . D. Chung, “ An indexing scheme for energy-efficient processing of content-based retriev al queries on a wireless data stream, ” Inf. Sci. , vol. 177, no. 2, pp. 525–542, 2007. [12] T . H. Cormen, C. E. Leiserson, and R. L. Riv est, Intr oduction to Algorithms . The MIT Press and McGraw-Hill Book Company , 1989. [13] http://sites.google.com/site/rboprotocol/ . [14] P . Levis and D. Gay , T inyOS Pr ogramming . New Y ork, NY , USA: Cambridge University Press, 2009. [15] Tin yOS, http://www.tinyos.net/ .
Original Paper
Loading high-quality paper...
Comments & Academic Discussion
Loading comments...
Leave a Comment