Java Reference
In-Depth Information
Decision point
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
communication.
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.
Decision point
How do remote control modules communicate and cooperate?
server communication
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
-
Control
module
Control
module
Client
Service
Client
Service
startService(
)
startService()
start()
start()
query()
stopService()
stop()
return
return
deferred synchronous
communication
synchronous
communication
Figure 19.3
Synchronous and deferred synchronous communication