Jade is an environment that supports the development of distributed
software. Components may be written in any of a number of different
languages. A common inter-process communication protocol provides a
uniform interface among the components. A window system allows the
user to interact with many different processes at once and allows for
multiple views of the same process. A hierarchical graphics system is
provided for use with documentation and programming, and for support
of monitoring. The non-determination of distributed systems may be
controlled in order to provide repeatability of executions and to aid
in prototyping real-time distributed software. Finally, the formal
specification of inter-process events in Jade is supported by a
communications protocol verifier, allowing run-time consistency checking.
We describe these tools and their use in the development of distributed
software for the control of a simulated system of parking lots.