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. A hierarchical graphics
system is provided for use with documentation and programming, and for
support of monitoring. Monitoring in Jade is also supported by an extensible
mechanism which allows for multiple views of the same process. The non-
determinism of distributed systems may be controlled in order to provide
repeatability of executions and to aid in testing and debugging. Finally,
the formal specification of inter-process events in Jade is supported by a
communications protocol verifier, allowing run-time consistency checking.
Together, these tools provide a powerful environment for software
prototyping and simulation.