Communication Abstractions for Distributed Systems

This thesis presents techniques for reducing the complexity of communication in distributed systems. It presents a set of simple standards and tools that provide an efficient and consistent programming interface that can be used to implement a great variety of communication interactions both within and between various types of paradigms, abstractions, and entities. It also provides a framework based on these standards and tools, with which arbitrary communication systems can be constructed. Various communication paradigms and issues are examined in order to identify and categorize the fundamental aspects of communication. These fundamental aspects are then redefined and organized into a set of communication abstractions which is simple and general, rigorous and flexible, low-level and extensible. The generic communication model based on this set provides a framework for arbitrary communication systems. Further, the model utilizes the efficiencies of a single memory domain while providing a universal interface between various types of paradigms, abstractions, and entities across a wide spectrum of environments. The framework provided in the generic communication model is used to develop a specific model called the Buffer and Queue Model which provides a single efficient and consistent communications programming interface. The Buffer-Queue protocol extends this consistent programming interface transparently to a distributed environment. Finally, a few examples are presented using Buffers and Queues that illustrate how various complex communication facilities may easily be developed and how the use of a common fundamental base makes intermixing of locally defined user interfaces and conversion between higher-level protocols a relatively straightforward task.

[1]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[2]  Willy Zwaenepoel,et al.  Distributed process groups in the V Kernel , 1985, TOCS.

[3]  Eric G. Manning,et al.  SHOSHIN OS: A MESSAGE-BASED OPERATING SYSTEM FOR A DISTRIBUTED SOFTWARE TESTBED. , 1983 .

[4]  Joshua S. Auerbach TACT: A Protocol Conversion Toolkit , 1990, IEEE J. Sel. Areas Commun..

[5]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[6]  Nicholas Carriero,et al.  Matching Language and Hardware for Parallel Computation in the Linda Machine , 1988, IEEE Trans. Computers.

[7]  Alfred C. Weaver,et al.  The Xpress transfer protocol (XTP)—a tutorial , 1990, CCRV.

[8]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[9]  R. E. Johnson,et al.  The Conduit: A Communication Abstraction in C++ , 1990, C++ Conference.

[10]  Hector Garcia-Molina,et al.  Message ordering in a multicast environment , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[11]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[12]  Alessandro Forin,et al.  Architectural support for multilanguage parallel programming on heterogeneous systems , 1987 .

[13]  W. Morven Gentleman,et al.  Message passing between sequential processes: The reply primitive and the administrator concept , 1981, Softw. Pract. Exp..

[14]  Willy Zwaenepoel,et al.  Optimistic implementation of bulk data transfer protocols , 1989, SIGMETRICS '89.

[15]  David L. Presotto,et al.  Publishing: a reliable broadcast communication mechanism , 1983, SOSP '83.

[16]  Jonathan M. Smith,et al.  A taxonomy-based comparison of several distributed shared memory systems , 1990, OPSR.

[17]  Jeffrey M. Jaffe,et al.  SNA Networks of Small Systems , 1985, IEEE J. Sel. Areas Commun..

[18]  Roy H. Campbell,et al.  The Design of a Multiprocessor Operating System , 1987, C++ Workshop.

[19]  R. J. Cyper Communications architecture for distributed systems , 1978 .

[20]  Floyd E. Ross,et al.  An overview of FDDI: the fiber distributed data interface , 1989, IEEE J. Sel. Areas Commun..

[21]  Larry L. Peterson,et al.  Preserving Context Information in an IPC Abstraction , 1987, SRDS.

[22]  Robert Balzer,et al.  PORTS: a method for dynamic interprogram communication and job control , 1971, AFIPS '71 (Spring).

[23]  Kenneth P. Birman,et al.  Exploiting Replication , 1988 .

[24]  M. E. Crandall,et al.  Names , 1924, Living I Was Your Plague.

[25]  Thomas A. Standish Data Structure Techniques , 1980 .

[26]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[27]  Jon Postel,et al.  User Datagram Protocol , 1980, RFC.

[28]  Richard W. Watson,et al.  Identifiers (Naming) in Distributed Systems , 1980, Advanced Course: Distributed Systems.

[29]  Andrew S. Tanenbaum,et al.  Distributed operating systems , 2009, CSUR.

[30]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[31]  Jon Postel,et al.  Transmission Control Protocol , 1981, RFC.

[32]  Sun Microsystems,et al.  XDR: External Data Representation standard , 1987, RFC.

[33]  Paul R. Calder,et al.  The Design and Implementation of InterViews , 1993, C++ Workshop.

[34]  Samuel T. Chanson,et al.  Process groups and group communications: classifications and requirements , 1990, Computer.

[35]  Willy Zwaenepoel Protocols for large data transfers over local networks , 1985, SIGCOMM '85.

[36]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[37]  Dennis M. Ritchie,et al.  A stream input-output system , 1990 .

[38]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[39]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[40]  Umakishore Ramachandran,et al.  Coherence of Distributed Shared Memory: Unifying Synchronization and Data Transfer , 1989, International Conference on Parallel Processing.

[41]  Brett D. Fleisch,et al.  Mirage: a coherent distributed shared memory design , 1989, SOSP '89.

[42]  David R. Cheriton,et al.  A Decentralized Naming Facility , 1986 .

[43]  David P. Reed,et al.  Naming and synchronization in a decentralized computer system , 1978 .

[44]  Larry L. Peterson,et al.  Design of the x-kernel , 1988, SIGCOMM '88.

[45]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[46]  David L. Black,et al.  The duality of memory and communication in the implementation of a multiprocessor operating system , 1987, SOSP '87.

[47]  H. Zimmermann,et al.  OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection , 1980, IEEE Transactions on Communications.

[48]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[49]  David R. Cheriton,et al.  Problem-oriented Shared Memory: A Decentralized Approach to Distributed System Design , 1986, IEEE International Conference on Distributed Computing Systems.

[50]  Andrew S. Tanenbaum,et al.  Computer Networks , 1981 .

[51]  James Gettys,et al.  The X window system , 1990 .

[52]  Henri E. Bal,et al.  Distributed programming with shared data , 1988, Proceedings. 1988 International Conference on Computer Languages.

[53]  David R. Cheriton,et al.  VMTP: a transport protocol for the next generation of communication systems , 1986, SIGCOMM '86.

[54]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[55]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[56]  Bjarne Stroustrup,et al.  The C++ Programming Language, First Edition , 1986 .

[57]  Gordon Bell,et al.  Ethernet: Distributed Packet Switching for Local Computer Networks , 1976 .

[58]  Satoshi Matsuoka,et al.  Using tuple space communication in distributed object-oriented languages , 1988, OOPSLA 1988.

[59]  Mark S. Ackerman,et al.  The X Toolkit: More Bricks for Building User-Interfaces or Widgets for Hire , 1988, USENIX Winter.

[60]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[61]  Zvonko G. Vranesic,et al.  Computer Organization , 1984 .

[62]  Roy H. Campbell,et al.  Virtual Memory and Backing Storage Management in Multiprocessor Operating Systems Using Object-Oriented Design Techniques , 1989, OOPSLA.

[63]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.