# Energy Storage Overflow-Aware Data Delivery Scheme for Energy Harvesting Wireless Sensor Networks
## 3 ESO-Aware Data Delivering Scheme
### An Example of Alleviating ESO  
In Figure 1, each node's energy storage capacity is unified to 1. The notation \"\(\triangleleft\)a, \(b\), \(c\)\(\triangleright\)\" beside a node means that: the node's current residual energy is \(a\), the incoming energy (i.e., the predicted energy to be harvested) is \(b\), and ESO is c. For instance, notation \"S <0.5, 0.3, 0\(\triangleright\)\" in Figure 1a means that node S is with residual energy of 0.5 unit of energy (UoE), incoming energy of 0.3 UoE, and ESO of 0 UoE. In addition, an arrow in the figure stands for a wireless link, and the number beside the arrow stands for the energy consumption for delivering one unit of data. In Figure 1a, delivering one unit of data over wireless links of S\(\rightarrow\)A, S\(\rightarrow\)B, and S\(\rightarrow\)C expends 0.6, 0.5, and 0.6 UoE, respectively.  
A routing protocol with the goal of saving energy usually chooses the route with the minimum energy consumption. As a result, it chooses the minimal energy consumption route S\(\rightarrow\)B\(\rightarrow\)sink to deliver data, which expends 0.5 UoE per unit of data. After one unit of data is delivered to the sink via this route, variation in the residual energy and ESO of all the nodes is shown in Figure 1b. This figure indicates that nodes A and C are fully charged, i.e., their residual energy is 1 UoE, and node A produces ESO of 0.2 UoE because only 0.1 UoE out of the incoming energy (0.3 UoE) can be stored while node C produces ESO of 0.1 UoE. In addition, node B consumes 0.3 UoE but harvests 0.2 UoE, causing its residual energy to be 0.4 UoE. Similarly, node S has residual energy of 0.6 UoE. Thus, the total residual energy in the BF-WSN is 3 UoE.  
In fact, the total residual energy and ESO can be improved if we let node S split data into multiple pieces and then deliver these pieces over multiple routes to the sink. This idea is illustrated in Figure 2, where node S breaks one unit of data into two pieces as 2/3 and 1/3 of the data, respectively, and the two pieces go through routes S\(\rightarrow\)A\(\rightarrow\)sink and S\(\rightarrow\)C\(\rightarrow\)sink (the two routes contain the nodes with incoming energy), respectively. Thus, links of S\(\rightarrow\)A and A\(\rightarrow\)sink in the upper route expend 0.2 UoE each since only 2/3 units of data are delivered, while each of the links in the lower route consumes 0.1 UoE due to only 1/3 units of data being delivered. Hence, after the data are simultaneously delivered to the sink through the two routes, the residual energy of node S remains unchanged since the incoming energy (0.3 UoE) can be consumed in delivering two portions of the one unit of data that go through two separated routes. Additionally, node A consumes 0.2 UoE out of the incoming energy, and the left 0.1 UoE is stored, which makes its residual energy 1 UoE. The residual energy of other nodes can be similarly obtained. It should be pointed out that, with this scheme, no ESO is introduced and the total residual energy is 3.2 UoE. That is, both ESO and total residual energy in this scheme are better than the previous one.  
In summary, ESO can be reduced and the total residual energy can be increased by delivering data over multiple routes, which helps in extending network lifetime and delivering more data. This is the main idea underlying our EAMP.