Web Application Load Simulator -- Acknowledgements
LoadSim has taken great advantage of the open source development process. Basically, if I had to write all of the components to make LoadSim possible it wouldn't exist. Like many programmers I am basically lazy and if something exists that will do the job I need done I will use it (and, of course, the developer of the software I need has given me the legal right to do so). Here is the list of projects that I have used to aid in the development of LoadSim:
- HTTPClient. This provides the basic client side HTTP implementation.
- JAS. Sometime back I was experimenting with dynamic class generation. As part of this experimentation I wrote a (very) basic ORB that uses dynamic remote proxy generation. JAS provides an API for creating class files (without having to use a Java compiler). To support the remote management of simulations I decided to see if my little ORB worked. Well, it did, so that is the ORB I am using.
- JMeter. About a year ago I used JMeter for some basic load testing. I found the core engine to be good but JMeter didn't support the complex form data and querystring data that I needed for doing load testing of complex web applications. So, like the lazy programmer that I am I used the JMeter code as a starting point for LoadSim. I have tried to keep the copyrights in the relevant code, but if I have left one out it is inadvertent, and if anyone is aware of any transgressions along these legal lines please let me know.
- Jacl. The original design and implementation of LoadSim used Tcl (Jacl is the 100% Java implementation of Tcl) quite extensively for both the specification and control of simulations. Basically, I didn't want to write my own scripting languages, so I used Jacl, which is quite easy to extend with new commands. The current version of LoadSim uses XML to define the simulations. See below for an explanation as to why I made this change. Jacl is still used for controlling the simulations and will be used to calculate statistics and to publish the results.
- Xerces Java. I switched from specifying simulations using a Tcl to using an XML-based file. This change was made so that it would be easier to write a GUI based frontend to LoadSim. LoadSim uses Xerces to parse the XML file and to create the DOM tree.