How does the control module support multiple synchronization modes?
Concrete control modules extend class DProcess by implementing specific
interface methods that clients can invoke to request an activity's execution.
If the communication between the client and the control module is syn-
chronous, the client invokes a method that returns only when the activity is
terminated. This situation is represented in Figure 19.3 (left-hand side). The
remote interaction between supervisory console and mixer controller
described in Prototype 3 of Chapter 13 is an example of synchronous
If the communication is deferred synchronous, when the client requests
an activity's execution it immediately receives back a reference to the
activity object and uses it for subsequent interactions with the activity
(see Figure 19.3 right-hand side).
We will deal with asynchronous communication in Prototype 2.
How do remote control modules communicate and cooperate?
paradigm between remote control modules using the RMI mechanism.
Class DActivity and DProcess extend java.rmi.UnicastRemoteObject to give
remote access to their methods. Every subclass of DActivity implements
application-specific interfaces that client objects use to handle service exe-
cution. Figure 19.4 shows class MyService that specializes class DActivity and
implements method doMyService() of interface MyServiceInterface . Similarly,
class MyServer extends DProcess and implements method startMyService() of
The MMI framework implements the client
Figure 19.3 Synchronous and deferred synchronous communication