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

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.