Date of Original Version



Technical Report

Rights Management

All Rights Reserved

Abstract or Description

Abstract: "Multicast or group communication is an important part of modern distributed systems, but programming language support for such communciation is uncommon. Remote procedure call uses a familiar programming language abstraction to support unicast request-response communciation; what should the corresponding abstraction be for multicast communication? The essential and desirable properties of a language construct for multicast communication are presented first. Essential prperties include type safety, expressive power, and efficiency. Desirable properties include use of familiar control and data structures, appropriate semantic level, and first-class treatment of multicast operations in progress.The main contribution of the paper is the introduction of a spectrum of abstractions for multicast communication, in increasing order of both desirability and semantic level: functional mapping, iterators, and streams. Examples of distributed algorithms from the literature are used to illustrate the expressive power of each mechanism. Streams in particular provide first-class status for multicast communciation in progress, and can be implemented efficiently in typical multicast communication architectures."