Concurrent Programming in Java
© 1996-1999 Doug Lea  



4.5 Active Objects


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: An updated account appears in: Several of the texts listed in Chapter 1 (including the book by Burns and Welling in § 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:

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: 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