Rice University work in Wireless Sensor Network Arena
What should the software API accomplish? The first response was to describe a target node set by a set of characteristics such as geography (e.g. all the nodes on Level 2), functionality (e.g. all the temperature reading nodes), condition (e.g. all the nodes that have full memories), etc.
Also, distances need to be measured in both physical distance and the number of hops to reach the destination. Sometimes, one can program the physical distance into the system while other times, one doesn’t know the exact distance but wants to make several hops (from one unit to the next) to reach the destination.
Since the nodes can move in some applications, it’s important to know where the nodes are right now – so localization is important.
To conserve energy, the software API may want to implement different receive modes. For example, a node can act as an intermediate communicator which simply passes data along, or it could act as an aggregator by collecting data from other nodes, or it could act as an analyzer which applies an algorithm to the collected data.
In a resource-constrained environment like a wireless network, the user needs the ability to adjust the “Level of effort” so he can tradeoff reliability vs. best effort. If the data still does not reach its destination, then some action can be taken such as changing the spreading code, or increasing the signal power.
It’s interesting to note that most applications the Rice team investigated require major reliability.
Finally, the team mentioned the need for a hierarchical API to describe the various classes of devices and levels (i.e. gateways, hubs, and nodes). This gives the user the ability to place the code at the right level to perform the application.