What can you do in Atarraya?:
- Create random deployments, with variable number of nodes, Tx range, area of deployment,
number of sinks, etc, and restrict it to connected graphs only.
- Use the simulator to test a topology control protocol and get statistics like number of
active nodes, energy spent, average number of neighbors, etc.
- Create and Save several deployments for experimentation
- It’s a free tool designed in Java, so you can develop your own protocol or your own data
structures and use the simulator.
What do you need to use Atarraya?:
- Atarraya was developed using Java 6 and NetBeans 5.5, so it is strongly recommended
that you use these
products in order to save some time in adaptation.
What if you find bugs in Atarraya?:
- The developers are not responsible
for the problems that the use of the simulator may bring to your
computer/system/project. However, it would be interesting to know the
bugs in order to solve them! Please contact us and share your
experience and code.
Have you implemented some known/published protocols?
We have implemented two protocols that are based on the following published papers:
In addition, we have included a set of topology maintenance protocols that are compatible with the topology
construction protocols offered. It is encouraged that the new protocols designed in Atarraya should be compatible
also in order to provide a much better option for comparisons.
- [CDS Rule K] J. Wu, M. Cardei, F.
Dai, and S. Yang. Extended dominating set and its applications in ad
hoc networks using cooperative communication. IEEE Transactions on
Parallel and Distributed Systems, 17(8):pp. 851-864, 2006.
- [ECDS] Z. Yuanyuan, X. Jia, and H. Yanxiang. Energy
efficient distributed connected dominating sets construction in
wireless sensor networks. In Proceeding of the 2006 ACM International
Conference on Communications and Mobile Computing, pages pp. 797-802,
Is there any restriction on the topology algorithms which can be implemented and simulated with this simulator?
As far as we know, no. WI only have implemented CDS-based (Connected
Dominating Set) algorithms, but any other kind could be implemented. We
still have problems updating the visual representation of the graph for
changes in the TX range, but in the data structure it can be done. The
algorithm must be adapted into a event format. Everything is an event:
a message, a timeout, etc. If you can model your protocol in an
event-based way, this simulator will work.
- The simulator works with events.
- One event can be basically a message, a timeout, etc.
- Every event will be executed on the time you define in the future.
- Every event has a generator or source node and a destination node.
- To model messages, the event has different source and destination IDs, so the event will be executed by the destination.
- To model a timeout, the event has the same source and destination IDs, so the event will be executed on the same source node.
How do you write a protocol in Atarraya?
The protocols are modeled as objects of the type EventHandler. You can
find the class in the source code. The design of a protocol is based on
the following methods:
The rest of the methods that you will
use have to do with the information on the nodes or in the panel that
updates the graphical representation.
- broadcast( ... ): it will receive
multiple parameters that the simulator will use to generate events to
all neighbors of the node that executes this method, and put the in the
- pushEvent(new event_float( ... )): it will generate just a single event on the queue.
Is it possible to set different transmission range for different nodes?
Yes. You can create heterogeneous topologies, where nodes have
different transmission ranges and energy reserve. We have not performed
any experiment that involves changing the transmission range on the
fly, but the data structures should support it.
Does a node know its neighbors? Or even the number of its neighbors?
Yes. Each node has a neighbor list, with exact information about
position, id, etc. However, in our implementations we always assumed
that the node "does not know" this information, so we work based on the
neighbors list that the node can create based on Hello messages. This
new list will be stored in any of the other two temporary structures
that the node has (candidates and children).
to set the transmission range for a node, does the sink node do it?
(Centralized) can it be done in a distributed manner, where every node
sets its own?
The transmission range starts being
homogeneous for every node in the network. A new TX diameter can be
assigned to the node during execution. It probably would be convenient
to change the neighbor's list because the broadcast procedure is based
on the neighbor's list.
Is there any available documentation that I can use to see if
the simulator will suit my needs?
The only sources of documentation available are: A paper in
SIMUTools 2009 about Atarraya, and the book "Topology Control in
Wireless Sensor Networks", in which we explain how to design protocols
and use the simulator.
Back to home