Many applications, for example in the area of telecomputing,
banking and multimedia (but also in high performance computing
and operating systems), require support
for distribution and concurrency.
Due to their complexity,
these applications are likely candidates for
an object-oriented approach.
However, with regard to their distributed nature,
some marriage between object-oriented computing
and distributed/concurrent computing must be realized.
Distribution and concurrency
6
- active objects
- objects versus processes
- concurrent extensions of C++
- inheritance on processes
Additional keywords and phrases:
threads, distribution, transparency, communication, synchronization, rendezvous, active objects, exceptions, fault tolerance,
transactions
slide: Distribution and concurrency
In this chapter, we will discuss a number of issues
involved in combining objects and processes.
First, we explore the notion of active objects,
that is objects having (possibly multiple) process threads.
Then, we look at some extensions of C++
supporting active objects, and investigate what
problems are involved in synchronization and communication.
One of the (important) unresolved issues in combining
processes with the traditional object model
is how to employ inheritance to refine the behavior of
active objects.
To deal with this problem, we
need to extend our notion of behavior to include
aspects of synchronization.
Finally, we will discuss the infra-structure needed
for distributed computing and how this affects
the object model of a (distributed) object-oriented language.