Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Coordinating distributed objects
Frølund S., MIT Press, Cambridge, MA, 1996. Type: Book (9780262061889)
Date Reviewed: Mar 1 1998

The actors model consists of a collection of asynchronous objects that execute concurrently. It was first described in 1977 by Carl Hewitt as a model of computation, in which “actors interact [in] a purely local way by sending messages to one another.” Each actor has two complementary aspects: the action it should take when it is sent a message, and its acquaintances, that is, the finite collection of actors that it knows about directly [1]. Frølund describes a model in which each actor has a single thread of control, so at most one method can be executed at a time. Each actor has an input queue in which incoming messages are stored until they can be dispatched. Actors can form an asynchronous distributed system, with each operating independently, possibly on differing hardware.

In a foreword, Gul Agha, the author’s advisor for the doctoral work that is the basis of this book, says that Frølund’s “insightful observation is that coordination between components often involves temporal constraints between events at those components.” Frølund has constructed a synchronizer that allows an abstract, reusable specification over coordination constraints. It can reduce code without sacrificing execution efficiency. The abstract nature of the specification can support coordination of distributed objects that are not tied to any specific host language. As an example, he suggests widely distributed automatic teller machines (ATMs), which are tied to a central bank database. The word “coordination” was consciously chosen instead of “synchronization” to signal the difference between a synchronizer and other synchronization techniques such as semaphores and monitors, which assume that processes (such as ATMs) sharing a common resource are realized in a common programming language running under a common operating system.

Objects may operate with quite different time constraints when coordinated by synchronizers, which, having no state, are not actors. Frølund’s examples include systems with multiple synchronizers coordinating subsystems of various sizes.

The book starts with a brief introduction to object-oriented programming, actors, and coordination. This is followed by a general discussion of synchronization constraints, including specification, inheritance, priorities, garbage collection, and approaches other than synchronizers.

A chapter on synchronizers includes such applications as the dining philosophers, coordinated robots, multimedia, and virtual reality. Virtual reality is presented to a user via a head-mounted stereo display and is created by overlaying a video stream with 3D graphics. The system is described by a series of actors: the head device, a model, scene descriptions for each eye, 3D images rendered from the scene descriptions, and video frames.

Semantics are formally presented for a simple extension of the lambda-calculus called Language with Objects and Synchronizers (LOS), adding greatly to its integrity. The extensions include commands for actor creation, message passing, and synchronizer instantiation.

Frølund discusses the implementation of an LOS prototype in C++ using the Broadway library. Examples are given in pseudocode. He claims that this presentation is a “somewhat inefficient projection of the actual implementation.”

In the “Conclusions,” Frølund reviews the main differences between synchronizers and synchronization. Synchronization constraints occur on a per-object basis and are specified as part of an object; synchronizers describe constraints for a group of objects. Performance and programming ease, as well as coordinating asynchronous distributed processes, were of prime importance in constructing synchronizers. Future research directions are mentioned.

The book concludes with a well-thought-out glossary, a reference list, and two indexes.

This work is easy to read and gives a full description of the conception and implementation of a Ph.D. project. It satisfies the reader by taking on a manageable piece of an important topic. Frølund makes no mention of the availability of his C++ code and documentation of LOS. I hope a diligent student would be able to obtain them.

Reviewer:  D. Appleby Review #: CR120942 (9803-0117)
1) Hewitt, C. Viewing control structures as patterns of passing messages. J. Artif. Intell. 8, 3 (1977), 323–364.
Bookmark and Share
 
Distributed Applications (C.2.4 ... )
 
 
Concurrent, Distributed, And Parallel Languages (D.3.2 ... )
 
 
Distributed Programming (D.1.3 ... )
 
 
Operational Semantics (F.3.2 ... )
 
 
Semantics (D.3.1 ... )
 
 
Virtual Reality (I.3.7 ... )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Distributed Applications": Date
The art of distributed applications
Corbin J., Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387972473)
Jun 1 1992
Client-server computing
Sinha A. Communications of the ACM 35(7): 77-98, 1992. Type: Article
Jan 1 1994
APPC/MVS distributed application support
Voss F. IBM Systems Journal 31(2): 381-408, 1992. Type: Article
May 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud, Inc.®
Terms of Use
| Privacy Policy