Many applications today require physical measurement by a large number of sensors or coordinated operations by a large number of robots. Examples of such applications include disaster release in dangerous locations, environment surveillance in large remote areas, medical supervision over distances and many others. The communication network those applications could be distributed over a large geographical area or of a large number of nodes or both.
Methods and systems for hierarchical sensor network are presented in the current disclosure. The hierarchical network architecture can be used to organize large sensor or robot networks over large areas, while maintaining low power consumption and distributed control.
In one example aspect, a sensor network is disclosed. The system includes a proposer node that is a sensor node capable of gathering and processing sensory information and communicating with other nodes in the network. The system includes a set of proxy acceptor nodes that are sensor nodes. Each proxy acceptor node and the proposer node are communicatively connected by a first topology. The system includes a set of cluster proposer nodes that are sensor nodes. A proxy acceptor is connected to, or is also, an associated cluster proposer, each cluster proposer has its set of cluster acceptors and each cluster proposer and its set of cluster acceptors are connected by an individual topology.
In another example aspect, a method performed by a sensor node is disclosed. The method includes activating a sensor node in a sensor network, sending a message to other connected sensor nodes indicating a power level of the sensor node, receiving messages from other connected sensor nodes indicating power levels of other connected sensor nodes, and determining the sensor node to function as a proposer to form a cluster, initiate a consensus protocol, and reach a consensus, or as an acceptor to be a part of a cluster waiting for a consensus forming protocol message from a proposer.
In yet another example aspect, a communication network is disclosed. The network includes an upper layer cluster of a plurality of member communication nodes and a plurality of lower layer clusters, each comprising one or more member nodes. Each node in the upper layer cluster is communicatively coupled with a node in a different one of the plurality of lower layer clusters. Each cluster is formed based upon a voting performed by its member nodes. A cluster is a logical group of nodes that communicate application layer data with other member nodes of the same cluster.
In another example aspect, a method of operating a communication node in a distributed network of multiple communication nodes in which communication nodes are logically organized in an upper layer cluster and a plurality of lower layer clusters such that one node from each of the lower layer cluster is communicatively coupled to a different node from the upper layer cluster is disclosed. The method includes communicating with a first set of communication nodes to form the upper layer cluster, communicating with a lower layer communication node that is not in the first set of nodes to establish a communication coupling to a lower layer cluster of which the lower layer communication node is a member, and facilitating message communication between the upper layer cluster and the lower layer cluster.
These, and other features, are further described in the present document and Appendix A, which forms a part of the present description.
Like reference symbols indicate like elements throughout the specification and drawings.
In applications such as sensor networks or other applications where a large number of communication nodes are deployed, it may be desirable to be able to deploy nodes and sustain ongoing operation without having to actively manage network operations such as node power management and group management. A network of sensors is one such example. Communication nodes in such a network may perform both communication operations, e.g., signal transmissions and/or reception and also perform a sensing operation in which the node senses a physical attribute such as temperature, humidity, air pressure, radio activity, light intensity, and so on. For such sensor networks, each network node should be capable of autonomous actions, such as gathering and processing sensory information and communicating with other nodes in the network. The network nodes require simple node equipment, low power consumption, yet simple in maintenance, easy in deployment with flexible topology, and without stringent latency budget.
Many Internet of Things (IoT) applications in the future will require sensor measurement or robotic operation in a large autonomous network with up to hundreds or even millions nodes. For instance, in disaster release in dangerous locations, environment surveillance of inaccessible area, remote medical supervision, just to quote a few. Such applications require a communications network of large number of nodes over extended geographical area. The network shall be able to operate autonomously and maintain consistence in actions across nodes. Given the nature and circumstance of the deployment, the hardware as well as software are expected to be identical on all nodes, so that operation without maintenance is possible at a low cost. Such a network is referred to as large sensor network (LSN) and its deployment often involves unknown random node locations and it is designed for latency tolerant services. To meet those requirements, a distributed network protocol is necessary, because in a distributed network every node is equivalent to every other node and there is no permanent centralized control functions built in. In specifics, a distributed network, seen from outside as an entity, is autonomous. Such network is robust against node fault and is self-adaptive to the change of network topology. Fault tolerance of the distributed network is achieved by means of distributed networking based on identical node design. The self-adaptivity is enabled by the underlying consensus protocol. Distributed networking has the potential to avoid complex transceiver hardware and system control software and, as such, can reduce power consumption and operation maintenance and, eventually, the total system cost.
Network architectures describe the way to organize a number of network nodes, while communication technologies provide the communication means among network nodes. Current network architectures and communication technologies can include, for instance, Wi-Fi alias IEEE802.11g, Bluetooth alias IEEE802.15.1, ZigBee alias IEEE802.15.4, or IEEE802.11ad for millimeter wave and many others. All these technologies are designed for short range communication, on top of which application specific network protocols can be implemented. It is often the case that the standard technologies may contain functions that are not needed for a given application while missing functions that are specific to the application.
Current research in sensor network focuses mostly on lower OSI layers and small networks, where a master-slave relation between nodes is all that are needed to set up a network. This principle of networking applies to wireless network on licensed frequency band, e.g. 3GPP and 3GPP2, as well as on ad-hoc network on unlicensed frequency band, e.g. IEEE 802. For LSN, these technologies encounter scalability issues, because those technologies rely on centralized networking, in which there are distinguished nodes serving as the master, or base station, and those nodes are known before the network setup. In LSN application, however, node locations are unknown prior to the deployment and the network is set up autonomously even when almost half the nodes fail. To make this possible, hardware and software in a distributed network will have to have identical capability, so that every node can replace any other node to provide required service. Therefore, while the current technologies show quite acceptable performance in small networks, no concept is available today for distributed operation expected by LSN. Moreover, these current technologies cause issues in energy consumption as well as in operation reliability for large sensor networks used in applications such as disaster release in dangerous locations, environment surveillance in large remote areas, medical supervision over distances and many others.
In search of a network protocol that can meet the operation requirement of LSN, the recent successful deployment of Paxos in the large scale data center network by Google and Amazon is worth mentioning. Paxos allows all nodes in the network to share the same information and every one can replace any other node in its function. Being proposed 30 years ago, Paxos has been studied for more than 20 years, but mostly in terms of feasibility as applied to computer networks. More discussions appear in the recent years regarding its implementation due to the increasing interest in the information industry. Performance study is, however, so far unknown yet, partly because the implementation is complex and the performance depends on the software implementation. Even in the few known deployments, the number of nodes involved is in the order of two digits, which is much less than that expected by LSN applications. What is more important in this context is the channel: the data center network is based on reliable communication channels made of high quality optical transport facilities, where the reliability exceeds six nines following decimal point after zero. Thus the protocol there is almost independent of the quality of the communication channel. Applications to large number of nodes with unreliable channels is unknown so far and hence worth a theoretical study in view of its feasibility.
The techniques described in the present document can be used to overcome these operational limitations, and others, with present day distributed network and sensor network technologies.
For each node in the upper layer cluster 251, it is connected to a node in a lower layer cluster. For example, the node 263 is connected to a node in the lower layer cluster 259. The node 265, node 267, and node 269 are each connected to a node in the cluster 257, cluster 255, and cluster 253, respectively. The example only shows two layers of hierarchy. More than two layers of hierarchy can be formed, depending on the number of sensor nodes and the applications.
The sensor network 250 is an example of distributed sensor network, where no central control is needed. Such a network can operate without a permanent hub, while still maintaining consistent operations, appearing as a single node to the outsider. One problem in distributed computing is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database, agreeing on the identity of a leader, state machine replication, and atomic broadcasts. The Paxos protocol is one protocol used to achieve consensus in a distributed network. However, for a distributed hierarchical network 250, Paxos protocol would not apply. Therefore there is a need for a new consensus protocol for the distributed hierarchical network 250.
Paxos is a protocol of achieving consensus for asynchronous distributed computers and processors. There, the central task is to populate state information, coined as “ballot value”, to all nodes in the network in a consistent manner. A consensus is achieved when all participating nodes in the network agree on the same value for a ballot. This is made possible when more than half of the nodes respond to the solicited ballot and the responses are received by the ballot initiator.
As shown in
1. Quorum: When responses from a majority of acceptors are received by the proposer, a quorum is present. Hence Paxos on a network with 2f+1 nodes can tolerate maximum f faulty nodes. When quorum is present for a ballot in all phases of the protocol, a consensus is said to be achieved for this ballot.
1. Phase 1A: A PREPARE message is sent out by the propose to all acceptors, where the message contains a ballot number.
2. Phase 1B: Upon reception of a PREPARE message, each acceptor compares the received ballot number with the highest ballot number it has accepted so far. It sends back the highest ballot number if it is bigger than the received ballot. Otherwise it keeps the ballot and sends back a promise.
3. Phase 2A: When responses are received with quorum, the proper checks whether an already accepted ballot is among the responses. When a quorum of the responding acceptors is present within a given time, the proposer delivers the ballot to all learners. Otherwise, it has to repeat the procedure by restarting Phase 1A with an updated ballot number, or Phase 2A.
4. Phase 2B: Upon receiving the complete ballot, the acceptor compares it with its own record of the highest numbered accepted, or promised, ballot. The acceptor then determines to either send a CONFIRM to the proposer, a rejection, or just skips if it has already promised a ballot of the same or larger number. If no ACCEPT message is received before the expiration of a specified waiting time, the acceptor can start an election to bring about a new proposer.
The consensus protocol applied to distributed computer network is designed to cope with node fault that is caused by the processors, while a distributed LSN encounters node fault that is caused by both processors and communication channels. Given that radio channel is subject to variation in much greater magnitude than the aptitude of the processors which are normally characterized by given mean time to fault, the application of consensus protocol to wireless channels faces not only an additional fault source, but a complete new challenge due to complexity of the rather fast time varying unreliable channels. When the two fault sources are observed together, the channel weighs over the processor, so that the variation of channel is the primary concern in LSN. Hence, channel quality is the main focus when talking about node fault. According to the discussion among the software developers, Paxos is notorious for difficult to implement. This discourages network performance study by means of simulation using implemented protocol, and justifies a study based on analytical means. Applied to LSN, Paxos suffers under scalability problem in at least three aspects:
1. Capacity: In order for every node in LSN to have identical capability, it is necessary that the received power density is the same regardless where the transmitting node is. By AWGN assumption for multiple access channel, the maximum data rate for m users is upper bounded by:
where ri is the data rate of the ith node, C(x)=0.5 ln(1+x) the Shannon capacity function for AWGN channel, W the received signal power density and Nthe noise power density. Since the nodes are identical in capability of providing the same service, ri=r for i=0, 1, . . . m. Thus
As the node density of a LSN is finite, large m implies large distance between some nodes within the LSN. The above inequality implies, however, that the required received power will increase faster than m when m→∞, in order to maintain the same communication capacity. Thus, the capability of a distributed LSN is power limited. For time orthogonal usage of channel this limitation translates into a latency lower bound that is proportional to the number of nodes. By code division orthogonal channels, this limitation expresses itself in prohibitive near-far-effect.
2. Complexity: Another limitation is posed by the applicable frequency spectrum, due to technology or regulation, which makes it impossible to resolve the capacity issue by means of increasing frequency band. More effective algorithms, such as advanced channel code, interference cancellation, multi-in-multi-out technique or phased array antenna, can help only partly. Moreover, they are limited by the low cost requirement of LSN, because advanced algorithms and efficient transceivers will also increase the complexity and the cost, in addition to power consumption.
3. Power Consumption: In order to meet the requirement that every node can communicate with every other, the design shall assure sufficient transmit power for radio connection between any two nodes within an LSN. The model for the attenuation of the signal power is well known in the wireless technology (Steele ed., 1992). In this respect, the channel in LSN can only be worse, because nodes can be separated by objects that scatter and absorb electromagnetic energy differently than that of current wireless network. For a generic study,
where Wt is the transmit power, r the distance between transmitter and receiver with attenuation exponential β≧2 and vr a random variable accounting for the variation of the propagation environment. Then, ideally, the expected transmit power should be adapted to the distance by
w
t(r)=Wrrβ+vt (4)
with a random variable vt of zero mean, which accounts for the variation of the hardware limitations, and Wr the expected minimum received power. For LSN, it is however recommended that the capability of power adjustment by the transmitter be limited to a minimum, due to complexity and cost concern. Therefore, Equation (4) serves only as a reference for the power levels to be used. Since E{wt}=Wrrβ depends on the transmitter amplifier, where E refers to statistic expectation, it is upper limited a maximum imposed by the hardware, say E{wt}<Wmax. Thus, the maximum spatial dimension of the LSN is bounded by
D<(Wmax/Wr)1/β (5)
In addition, the low cost requirement will further shrink the size of D. This turns out to be the major constraint for applying Paxos to LSN.
The channel impact on the Paxos performance plays out through the quorums. A node is characterized by its state, which can be measured per round, where a round is the round trip time between the acceptor and the proposer. Hence a round can also refer to the event that a message is sent by the proposer and acknowledged, or unacknowledged, by the acceptor. The outcome of this event is the node state, and it has two values: Fault or Not Fault. An independent identical distribution (IID) of state is assumed for all nodes. By this assumption, a study is based on the probability space (Ω,,P) where Ω is the fault event set, is the associated algebra on Ω and P: Ω[0,1]⊂ the probability measure. Then, p=P(A)∈[0,1] is the probability of the fault event A⊂Ω, and the event that exactly k nodes are faulty flows the binomial distribution
where
A quorum occurs when more than m/2 acceptors have responded and the responses are received. Therefore, its probability is
for m mutual independent nodes, i.e. the probability that less than m/2 nodes are faulting. The mapping
Q:[0,1]×m+1[0,1] (8)
with Q(0,m)=1 and Q(1,m)=0 is shown in
1. Phase 1A: Proposer u0 of the upper layer sends out PREPARE to proxy acceptors. At the same time, it sets a timer or a counter.
2. Phase 1B: A proxy acceptor forwards the PREPARE message to the associated cluster proposer. The cluster proposer sends the PREPARE to cluster acceptors. The cluster proposer also sets a timer or a counter at the same time.
3. Phase 1C: Cluster acceptors respond to the cluster proposer with promise or rejection, and starts another timer.
4. Phase 1D: The cluster proposer, upon presence of a quorum, relays the message back to the proxy acceptor. If the timer expires without quorum, the cluster proposer repeats Phase 1B. The cluster proposer can resign as a cluster proposer after failing to reach a quorum for a pre-determined number of times.
5. Phase 1E: The proxy acceptor forwards the cluster response to the upper layer proposer u0. If the proxy acceptor does not receive the message before its timer expires, it initiates an election.
6. Phase 2A: Proposer u0, upon presence of quorum in Phase 1, sends out an ACCEPT message with complete ballot information to all proxy acceptors. If no quorum is present, it repeats Phase 1A with updated ballot number. The proposer can resign as a proposer after failing to reach a quorum for a pre-determined number of times.
7. Phase 2B: A proxy acceptor relays the ACCEPT message to its associated cluster proposer. The cluster proposer forwards the ACCEPT message to the cluster acceptors. The cluster proposer also starts another timer.
8. Phase 2C: Cluster acceptors respond to ACCEPT with CONFIRM messages if the ballot number matches.
9. Phase 2D: The cluster proposer, upon presence of quorum, forwards the CONFIRM to proxy acceptor. When no quorum is present before expiration of the timer, the cluster proposer repeats Phase 2B. The cluster proposer can resign as a cluster proposer after failing to reach a quorum for a pre-determined number of times.
10. Phase 2E: The proxy acceptor forwards the cluster quorum to proposer u0. Proposer u0, upon presence at upper layer, sends a DELIVER message to all learners including proxy acceptors. When no quorum is present at upper layer before the timer expires, the proposer u0 repeats Phase 2A.
A two-layer network consists of m nodes in total, equally divided into s clusters. Each cluster is a subnetwork of m/s nodes. Then the quorum probability of a cluster (sub-network) is computed by
Q
l(p,s,m):=Q(p,m/s) (9)
where the subscript “l” indicates the lower layer. The consensus protocol can progress if and only if there is quorum among the clusters. The consensus is measured by the upper layer quorum probability
Q
u(p,s,m):=Q(q,s) (10)
with cluster fault probability
q=1−Ql(p,s,m) (11)
where subscript “u” indicates the upper layer. This definition manifests the fact that a cluster behaves like an acceptor towards the network above it and q is seen by the upper layer as the fault probability of the proxy acceptor.
The function Qu(p,s,m) decreases with increasingp for fixed s and m, and it decreases with increasing s for fixed m and p. In order to compare the performance of one-layer with that of two-layer architectures, the difference
Q(p,m)−Qu(p,s,m)=Ql(p,1,m)−Qu(p,s,m) (12)
of the quorum probabilities of the respective architectures of the same nodes is observed. The two-layer architecture imposes no change to quorum probability for moderate to small channel fault probability p. Slight reduction of quorum probability occurs for large s and p. The chosen range for p in this example serves the sole purpose of study; the node fault probability in reality should be in the small range.
In some embodiments, a method performed by a sensor node may include activating a sensor node in a sensor network, sending a message to other connected sensor nodes indicating a power level of the sensor node, receiving messages from other connected sensor nodes indicating power levels of other connected sensor nodes, and determining the sensor node to function as a proposer to form a cluster, initiate a consensus protocol, and reach a consensus, or as an acceptor to be a part of a cluster waiting for a consensus forming protocol message from a proposer. In some embodiments, the determining operation includes comparing all the received messages from other connected sensor nodes indicating received power levels of other connected sensor nodes. For example, in some embodiments, the determination of a proposer in a network or cluster, e.g., a subnetwork, is the result of a contention resolution protocol such as Aloha, CSMA, etc. with certain adaptation. Any node can become proposer: in some cases, to break the tie, even the IP address can be used to determine the chosen node. In this sense, it is also a random result of the contention resolution protocols. Each node may maintain a list of the reception quality from all nodes, or the first few nodes, based on the reception quality. This list is determined by reception of uplink and downlink from each node and for high power and low power. The one-to-multiple relation is determined by an algorithm such as a modified stable marriage algorithm.
Each node in the distributed network may be capable of using either high power level or low power level. Depending on the association with upper-layer network or lower-layer network, a node may actually either use a high transmit power or a low transmit power mode. For example, upper-layer network typically uses high transmit power and lower layer network uses low transmit power.
Since the node location is random based on the requirement, it is assumed that it has a spatial distribution g(r,θ) where (r,θ) is the polar coordinates of the location on plane. Thus, the mean power needed for a planar LSN of area A is determined by
∫Awt(r)g(r,θ)rdrdθ (13)
Assuming the uniform spatial distribution, which reduces g(r,θ) to a constant g0∈(0, 1). Further assuming the LSN consisting of a disk with diameter D, then, the mean transmit power is expected to be
where the remaining integral on the right hand is
for integer n with I0=π2 and I1=1. The total mean transmit power of the (single-layer) network is m·E{wi|D}.
Now, since m nodes are distributed uniformly in plane and the same area is divided into s smaller equal cells, the nodes are divided into s equal sub-populations, each belonging to a smaller cell of diameter D/√{square root over (s)}.The transmit power needed by a node in such a smaller cell is expected to be
As result of the partition, the nodes within a cluster have a shorter mutual distance than those in different clusters. Communication in lower layer, i.e. within a cluster, requires less power that in upper layer between clusters. According to the requirement on simple node equipment, two levels of transmit power for each node is assumed: high and low. This is the minimum number of power levels that a network of two layers can have. As each cluster has m/s nodes, among which only one serves as cluster proposer, i.e. proxy acceptor, there are s proxy acceptors that use the high power level, while all the other nodes use the low power level. The total mean transmit power of the two-layer network is
(m−s)E{wt|D/√{square root over (s)}}+sE{wt|D} (16)
The ratio of transmit powers of the two architectures is
Obviously the partition requires s being integer and even dividing m. For the time being, however, some embodiments take f(x,m,β) as a function of the continuous variable x∈[1,m], to find the second derivation
for x∈[1,m]. Thus, f(x,•,•) is a convex function and achieves its minimum for some x∈(0,m). Hence the boundary values are also extreme values and equation (17) is less than one for all non-trivial s∈(1,m). Therefore, it can be concluded that the expected total transmit power of a two-layer network is less than that of a one-layer network for all non-trivial partitions. Whether the reduction of transmit power leads to reduction in power consumption still depends on the channel usage and, as such, is also related to latency.
Application of large sensor network (LSN) may involve either planar network (2D) or three dimensional network (3D), hence the ratio of transmit powers of the two layers becomes in some embodiments:
To complete a ballot, Paxos requires two round trips at least, one for Phase-1 and one for Phase-2. Assume the MAC layer can handle multiple-access so that queuing delay can be accounted for by a constant, which can be assumed zero, as long as we are interested in latency dynamics. Then, the number k of protocol rounds is used to measure the latency. A round is thus a time unit that has the duration of a round trip. According to hierarchical Paxos, the probability of ultimate quorum for a ballot is
where A is the quorum event of the upper layer network and Bi(j) is the quorum event of cluster i∈{1,2, . . . s} of the lower layer network. The index j refers to random subset of size s/2+1 and index ik for k=1,2, . . . , s/2+1 indicates element of this subset. Determination of this probability and using it to compute the expected delay is not trivial, even with uniformly distributed binary channel. Some embodiments choose to give an estimate of the delay based on the assumption that upper-layer network and the lower-layer networks are independent. This assumption excludes the interaction between the two layers, hence removes the potential ping-pong effects between them in achieving the quorum. Therefore, estimate made with this assumption represents a lower bound for the accumulated latency:
where τu and τl are the delay of upper layer and of lower layer, respectively, with i being the index of cluster. For identical distribution of node fault, the expectation of latency turns out to be a constant across all clusters, which is the maximum itself. Since geometrical distribution applied to fault probability yields the latency measured in rounds k, and each ballot requires at least two rounds to finish, a latency lower bound for the ballot can be estimated as
where Qu and Ql are the upper layer quorum probability and the lower layer quorum probability, as defined by equation (10) and (9), respectively. Hence, when a network of m nodes is partitioned into s clusters, the expected latency lower bound is
T(p,s,m)=Ql−2(p,s,m)+Qu−2(p,s,m) (22)
for s>1 up to a constant factor, and for s=1 we have simply T(p,1,m)=Q−2(p,m). It is readily seen that T(p,s,m) increases with p for fixed s and m, because both Ql(p,s,m) and Qu(p,s,m) decrease with p. As a first approximation, the latency change can be quantified for s>1 by the difference between the minimum latencies in the two different architectures, divided by the minimum latency of the flat architecture. This is
h(p,s,m) increases with increasing p and s, where function e−h(p,s,m) is plotted and has a range of (0, 1). The mapping to exponential function helps visualization of the trends. Obviously the two-layer architecture introduces delay, because for s>1 h(p,s,m)>0, or equivalently e−h(p,s,m)<1.
A priori determination of the expected cluster size using optimization would help each node to set the list length, hence facilitate the cluster forming. Design of the optimized cluster network could utilize the ratio of transmit powers as well as the latency change of the two layers.
In some embodiments, a weight parameter a can be used to bias the design preference, such that
F(p,s,m,α,β)=α·f(s,β)+(1−α)·e−h(p,s,m) (25)
The design can prefer the importance of transmit power reduction or prefer the importance of protocol latency reduction. Since Equation (25) is convex with respect to s and, as such, it has minimum for some s∈[1,m], it can be used to optimize the network partition as following:
1. For given m and β, start with some a value and node quality p, based on commercial goal and technical circumstances.
2. Plot the curve F(p, s, m, α, β) as a function s, and find s=smin such that F(p, smin, m, α, β)<F(p, s, m, α, β) for all s∈(1,m).
3. Find 1<s<m that is the closest to and is feasible for the given network topology. The feasibility is subject to the law of spatial packing or planar tiling that applies, or any other constraint of reality.
In some embodiments, a sensor network may include a proposer, which is a sensor node capable of gathering and processing sensory information and communicating with other nodes in the sensory network, a set of proxy acceptors, which are sensor nodes, wherein each node of the set of proxy acceptors and the proposer are communicatively coupled by a first topology, a set of cluster proposers, which are sensor nodes, wherein each proxy acceptor is communicatively coupled to a corresponding cluster proposer, and a set of cluster acceptors corresponding to each cluster proposer, wherein each cluster proposer and its set of cluster acceptors are connected by an individual topology. In some embodiments the proposer and the cluster proposer and proxy acceptors have more transmit power than the cluster acceptors. In some embodiments, the first topology and the set of individual topologies demonstrate independent expected latency. In some embodiments, as described herein, the formation of the first topology and the set of individual topologies is optimized based on transmit power reduction and latency reduction. In some embodiments, a cluster acceptor is closest to its cluster proposer among any other cluster proposers and the proposer. In some embodiments, each cluster proposer has a similar number of cluster acceptors. In some embodiments, a sensor node is either pre-programmed to be a proposer at deployment, or randomly chosen to be a proposer. In some embodiments, each of the sensor nodes, e.g., the proposer, the proxy acceptor, the cluster proposer, the cluster acceptor, etc. may be implemented using a processor and a memory that stores instructions for the processor to implement. The sensor node may further include circuitry for wireless communication with other sensor nodes. Each sensor node may further include a sensory element such as a transducer.
At 1606, each upper layer cluster node may be communicatively coupled to one node from one of the lower layer clusters. In some embodiments, the upper layer cluster node and the corresponding lower layer cluster node may be one and the same node. Alternatively, these may be two different nodes, which communicate over a wireless communication channel.
The methods 1700 and 1800 may use a consensus based method for the formation of the upper layer cluster or the lower layer cluster. In methods 1700 and 1800, the communication between two communication nodes that are members of two different lower layer clusters may happen as follows for node A in lower layer cluster A and node B in lower layer cluster B: Node A in lower layer cluster A may communicate messages with node X in the lower layer cluster, which may in turn communicate with node Y in the upper layer cluster, which may communicate with node Z in the upper layer cluster, which may communicate with node W in the lower layer cluster in which node B lies and node W may communicate with node B.
In some embodiments, one of the upper layer cluster nodes may be designated as a proxy node for communication by all nodes in the distributed network with outside nodes, e.g., application servers for sensor networks. Messages from outside nodes may be received by the proxy node, which then may forward the messages to the upper layer node that is communicatively coupled to a lower layer node from a lower layer cluster to which the intended receiving node of the message belongs to. The message is then forwarded on to the receiving node. Similarly, messages from each lower layer node may traverse through a first “gateway” node that relays the messages from lower layer cluster to the upper layer cluster, and on to the proxy node in the upper layer cluster, which then relays the message to the outside node. In some embodiments, a communication apparatus for operation in a distributed network of multiple communication nodes in which communication nodes are logically organized in an upper layer cluster and a plurality of lower layer clusters in such that one node from each of the lower layer cluster is communicatively coupled to a different node from the upper layer cluster includes a processor and a memory. The memory stores instructions that cause the communication apparatus to implement a method by which the communication apparatus communicates with a first set of communication nodes to form a lower layer cluster; communicates with an upper layer communication node that is not in the first set of nodes to establish a communication coupling to an upper layer cluster of which the upper layer communication node is a member and facilitates a message communication between the upper layer cluster and the lower layer cluster, as described herein. In some embodiments, the communication to form the upper layer cluster includes establishing a consensus among nodes to form the upper layer cluster. In some embodiments, the operation of establishing the communication coupling includes using a timer based control to complete the establishing.
It will be appreciated that various techniques for operating a distributed network of communication nodes have been disclosed. A node may comprises, e.g., a transceiver, a processor and a memory that stores program code used by the processor and data (e.g., signal quality lists) used during operation.
It will also be appreciated that the disclosed techniques can be used to organize a distributed network of communication nodes in a multi-level hierarchy of clusters in which nodes in a lower layer cluster communicate with nodes in an upper layer cluster or other lower layer clusters through a single node that has a cross-cluster communication link. The formation of clusters could be based on operational criteria such as received signal quality, transmission power of the nodes, and so on.
It will further be appreciated that the disclosed techniques can advantageously lead to sensor networks in which communication is performed using clusters, thereby saving resources such as transmission power, transmission bandwidth and so on.
The disclosed and other embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
While this patent document contains many specifics, these should not be construed as limitations on the scope of an invention that is claimed or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination. Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results.
Only a few examples and implementations are disclosed. Variations, modifications, and enhancements to the described examples and implementations and other implementations can be made based on what is disclosed.
This patent document claims the benefit of priority of U.S. Provisional Patent Application No. 62/091,611, filed on Dec. 14, 2014. The entire content of the before-mentioned patent application is incorporated by reference as part of the disclosure of this document.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/065644 | 12/14/2015 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62091611 | Dec 2014 | US |