To communicate via a shared object, a component sets the shared object s value. The shared object notifies all other connected components that the shared object s value has changed. They, in turn, read the shared object s value and perform the appropriate action. In other words, shared objects provide a data flow mechanism. The plug of the component that creates the shared object is an output plug , while the plugs of the other components that connect to it are input plugs .
Protocols are an alternative way inter-component communication is implemented.
A protocol is the specification of the set of methods that a component must implement in order to communicate with another component. E.g., consider a joystick component. However, both methods were implemented, because, depending on the nature of the plug and the programmer s perception, it is more appropriate to view some plugs conceptually as shared objects, and other plugs as implementing a protocol. Given that this platform stopped being supported in 1997, our additional requirements for web support, and the current turn of the programming world towards the Java platform, the current version of the mechanism was re-implemented in Java. The mechanism is being used for the interconnection of educational software components which are being developed in the course of various projects 2 .