This case presents a middleware framework that supports the development
of large concurrent and distributed systems.
In Part II, Part III and Part IV of this topic we have developed a number of
software applications that simulate or are structured as distributed systems.
They address two typical application domains, i.e. control systems
(Chapters 9, 10, 11 and 13) and information systems (Chapters 14, 15 and
16) and are usually structured as client -server systems: server components
offer services to remote client components.
This case study abstracts the common features that characterize those
distributed systems with the aim of building a software infrastructure that
provides mechanisms for remote service creation, allocation and execution.
Focus: separation of commonalties and variabilities in a family of similar
applications; factorization of common functionalities and features; design
of a reusable framework.
OO techniques: abstraction, generalization, inheritance.
Java features: Sockets, Remote Method Invocation.
Background: the requirements analysis builds on the specifications of
most of the previous case studies.
Distributed systems are networks of distributed software components (in the
literature they are sometimes referred to as “agents”, but we prefer to call
them “control modules”) that manage local resources (such as manufactur-
ing equipments, knowledge bases, computational facilities, etc.), carry out
problem-solving plans autonomously, exchange information with other
control modules, and delegate to them the execution of specific services.
Internet-based distributed systems are large open systems that can
dynamically scale up when new services (e.g. web-control of a mobile robot
for outdoor surveillance) and new interconnections (e.g. business relation-
ships across enterprise boundaries) become available. In this scenario,
hand-held devices, such as personal digital assistants (PDAs), smart phones,
and car navigators, are likely to replace traditional desktop computers as the
preferential access point to internet services.