Concurrent Programming in Java
© 1996-1999 Doug Lea
4.5 Active Objects
Follow-ups
Readings and Resources
CSP has proven to be a successful approach to the design and
analysis of systems that can be usefully expressed as bounded sets
of identityless, interfaceless processes communicating via
synchronous channels. CSP was introduced in:
-
Hoare, C. A. R. Communicating Sequential Processes, Prentice Hall,
1985.
An updated account appears in:
-
Roscoe, A. William. The Theory and Practice of Concurrency,
Prentice Hall, 1997.
Several of the texts listed in Chapter 1 (including the book by
Burns and Welling in §1.2.5.4) discuss CSP
in the course of describing constructs in occam and Ada.
Release 1.0 of the JCSP
package will soon be available.
Other related formalisms, design techniques, languages, and
frameworks have adopted different base assumptions that adhere more
closely to the characteristics of other concurrent systems and/or to
different styles of analysis. These include Milner's CCS and
pi-calculus, and Berry's Esterel. See:
-
Milner, Robin. Communication and Concurrency, Prentice Hall, 1989.
-
Berry, Gerard. "The Foundations of Esterel", in Gordon Plotkin,
Colin Stirling, and Mads Tofte (eds.), Proof, Language and
Interaction, MIT Press, 1998.
As package support becomes available for these and related
approaches to concurrent system design, they become attractive
alternatives to the direct use of thread-based constructs in the
development of systems that are best viewed conceptually as
collections of active objects. For example,
Triveni is an approach
based in part on Esterel, and is described in:
-
Colby, Christopher, Lalita Jategaonkar Jagadeesan, Radha
Jagadeesan, Konstantin Läufer, and Carlos Puchol. "Objects and
Concurrency in Triveni: A Telecommunication Case Study in Java",
USENIX Conference on Object-Oriented Technologies and Systems
(COOTS), 1998.
Triveni is supported by a Java programming language package (see the
online supplement). Among its main differences from CSP is that
active objects in Triveni communicate by issuing events. Triveni
also includes computation and composition rules surrounding the
interruption and suspension of activities upon reception of events,
which adds to expressiveness especially in real-time design
contexts.
Doug Lea
Last modified: Mon Oct 18 07:11:53 EDT 1999