Multiparty Communication Types for Distributed Applications
September 25, 2003
Communication is an important and complex component of distributed applications. It requires considerable effort and expertise to implement communication patterns in distributed applications. Therefore, it is prudent to separate the two tasks of implementing the communication and implementing the application's main functionality which needs the communication. Traditionally this separation is achieved through a standard interface. A good example is the Message Passing Interface (MPI) for message-passing parallel programs. It takes considerable experience, effort and general agreement in the community to define such an interface. However, a standard interface is not flexible enough for the rapidly changing requirements of distributed applications. We propose that the separation of communication and application specific functionality should be achieved through the abstraction of communication types. In this paper we present a communication type system for multiparty communication. The type system can be used to express the communication requirements of an application, describe an implementation of a communication type, and make a match between these two. Our type system is only a single component of a framework for multiparty communication that we are developing.