atarraya_logo (238K)
Current Version: 1.2 beta 3
Last update: September 2009


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:

  • [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, 2006.
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.

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:

  • 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 queue.
  • pushEvent(new event_float( ... )): it will generate just a single event on the queue.
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.

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).

How 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