• simulator design;
  • design patterns;
  • secure multicast;
  • priority queue performance analysis


When evaluating new protocols and algorithms it is often desirable to be able to rapidly build a specialized simulator from scratch. The advantage of this approach is that software designers can avoid the often-steep learning curve associated with using existing simulators, and that specialized simulators can have significant computational advantages over general-purpose programs. The drawback is that simulators can be complex to develop and debug. This paper describes our experiences developing SESAME, a Java-based simulator designed to analyze multicast protocol performance. By using an appropriate set of design patterns we were able to rapidly develop a reusable and easy-to-implement framework for multicast algorithm and protocol analysis. We developed several useful approaches for rapid simulation development, including a multicast visualization tool and techniques for simulating concurrent processing within a computer network that substantially simplified code development and maintenance. Owing to performance concerns, we also ran an extensive series of performance tests of different priority queue implementations. Our design approach and the lessons that we learned in developing SESAME can be applied to rapid simulation development in general. Further, our performance results suggest that by using commercial off-the-shelf Java development environments it is possible to obtain sufficient performance for many time-sensitive applications such as discrete event simulation. Copyright © 2001 John Wiley & Sons, Ltd.