This project was ambitious: it was dealing with new technologies (open control of an ATM network and RSVP protocol) and the amount of code to implement was important.
Even if I had to simplify the control architecture, it has always been done in a way fulfilling two conditions. Firstly, implementing a missing feature should be easy: there are methods for each tasks, so adding a feature often means implementing a method; when it is not the case, comments indicate where to put the new code and what it should do. Secondly, anybody could read the code and understand what is going on: the code is well documented, with explicit variable and method names.
The control architecture implements correctly execute basic functions of the RSVP protocol. Its performance is reasonable compared to other RSVP implementations as well as standard ATM signalling, taking into account that it uses open control which inevitably slows down control operations. It has especially shown that running RSVP over an open control ATM network could be efficient, e.g. for resources renegotiation.
We can now see that the choice of Java was not bad. The code is readable, the debugging was easy, the performance is fair. It was also very educational since it is one of the first RSVP implementations in Java; other ones are currently being developed at ISI and at the Institute of the Italian National Research Council's Netlab.
It would be interesting to continue this project. Resv Error message processing could be implemented with blockade state. Then, the control architecture could be interfaced with a real ATM switch. Finally, multicast and IPv6 supports could be added.