10th IEEE International Conference on Collaborative Computing: Networking, Applications and Worksharing

Research Article

Programmer-Controlled Application-Level Multicast

Download641 downloads
  • @INPROCEEDINGS{10.4108/icst.collaboratecom.2014.257266,
        author={Prasun Dewan},
        title={Programmer-Controlled Application-Level Multicast},
        proceedings={10th IEEE International Conference on Collaborative Computing: Networking, Applications and Worksharing},
        publisher={IEEE},
        proceedings_a={COLLABORATECOM},
        year={2014},
        month={11},
        keywords={group communication collaboration toolkits multicast collaboration awareness consistency sessions},
        doi={10.4108/icst.collaboratecom.2014.257266}
    }
    
  • Prasun Dewan
    Year: 2014
    Programmer-Controlled Application-Level Multicast
    COLLABORATECOM
    IEEE
    DOI: 10.4108/icst.collaboratecom.2014.257266
Prasun Dewan1,*
  • 1: University of North Carolina at Chapel Hill
*Contact email: dewan@cs.unc.edu

Abstract

Group communication abstractions provide application-level multicasting to communicate information among distributed processes. A variety of such abstractions have been provided to implement synchronous collaborative applications but they do not allow control over the multicast of information to the selected group of processes. We have developed a new abstraction that overcomes this limitation. It defines a two-level grouping of distributed processes, with one level defining the users interacting with a specific collaborative application, and the other defining the set of collaborative applications a set of users is sharing simultaneously to perform some collaborative task. It allows information to be sent directly to the receiving processes or through a centralized relayer. In either case, programmer-choosable and replaceable send and receive filters provide consistency guarantees. The abstraction provides message passing rather than remote procedure calls, and supports asynchronous sending and receiving of messages. It is designed to support both centralized and replicated architectures. The abstraction has been implemented on top of the Java Remote Method Invocation layer and has been used to implement a broad range of collaboration functions.