In Chapter 10 (Mobile robot exploration) the remote controller issues a
sequence of commands to the onboard controller and subsequently verifies
that they have been executed or some anomalous situation occurred. This is
an example of deferred synchronous interaction.
As the computational resources provided in user devices (e.g. mobile
phones) can vary considerably and may not satisfy the resource require-
ments of complex communication platforms like Java RMI, the MMI frame-
work should enable the development of control modules that support the
most appropriate communication mechanisms and protocols from a number
of alternatives such as TCP Sockets and HTTP connections. In previous
case studies all of these communication protocols were exploited to build
In Chapter 13 (Supervisory control and data acquisition system) the
control modules and the supervisory console use Java RMI to invoke methods
on remote objects.
In Chapter 14 (Supermarket operation support system) the counter
terminals and the central server communicate using TCP Sockets.
In Chapters 15 (Geographic information system) the client is an applet
that communicates with the GIS application server through a TCP Socket
In Chapters 16 (Ubiquitous email) HTTP users read their emails using a
variety of client devices connected to the remote server through the internet.
Depending on the type of device, different communication protocols are used
(e.g. HTTP or WAP).
A middleware framework for distributed computing consists of an integrated
set of service components that allow distributed systems to operate together.
Typically, middleware frameworks offer at least the following services:
Distributed event management supports dynamic notification of events
raised by remote objects.
Location-transparent access to remote objects allows distributed objects
to cooperate regardless of their network location, of the operating plat-
forms where they are executed, and possibly of their implementation
Distributed object location allows client objects to determine at run time
which server objects offer the functionality they need. Client and server
objects can appear and disappear on the network dynamically.
Persistency and transaction management supports persistent storage,
access to distributed data, data replication and data consistency.
Using a middleware framework consists in developing end-user applica-
tions by delegating the execution of common functionalities to middleware