Causing Communication Closure: Safe Program Composition with Non-FIFO Channels

  • Kai Engelhardt
  • Yoram Moses
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3724)


A semantic framework for analyzing safe composition of distributed programs is presented. Its applicability is illustrated by a study of program composition when communication is reliable but not necessarily FIFO . In this model, special care must be taken to ensure that messages do not accidentally overtake one another in the composed program. We show that barriers do not exist in this model. Indeed, no program that sends or receives messages can automatically be composed with arbitrary programs without jeopardizing their intended behavior. Safety of composition becomes context-sensitive and new tools are needed for ensuring it. A notion of sealing is defined, where if a program P is immediately followed by a program Q that seals P then P will be communication-closed—it will execute as if it runs in isolation. The investigation of sealing in this model reveals a novel connection between Lamport causality and safe composition. A characterization of sealable programs is given, as well as efficient algorithms for testing if Q seals P and for constructing a seal for a significant class of programs. It is shown that every sealable program that is open to interference on O(n2) channels can be sealed using O(n) messages.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Afek, Y., Attiya, H., Fekete, A., Fischer, M., Lynch, N., Mansour, Y., Wang, D.-W., Zuck, L.: Reliable communication over unreliable channels. Journal of the ACM 41(6), 1267–1297 (1994)CrossRefMathSciNetGoogle Scholar
  2. 2.
    Elrad, T., Francez, N.: Decomposition of distributed programs into communication-closed layers. Science of Computer Programming 2(3), 155–173 (1982)MATHCrossRefGoogle Scholar
  3. 3.
    Engelhardt, K., Moses, Y.: Safe composition of distributed programs communicating over order-preserving imperfect channels (June 2005) (submitted), see
  4. 4.
    Engelhardt, K., Moses, Y.: Single-bit messages are insufficient in the presence of duplication (June 2005) (in preparation), see
  5. 5.
    Fekete, A., Lynch, N.: The need for headers: An impossibility result for communication over unreliable channels. In: Baeten, J.C.M., Klop, J.W. (eds.) CONCUR 1990. LNCS, vol. 458, pp. 199–215. Springer, Heidelberg (1990)Google Scholar
  6. 6.
    Gerth, R., Shrira, L.: On proving communication closedness of distributed layers. In: Nori, K.V. (ed.) FSTTCS 1986. LNCS, vol. 241, pp. 18–20. Springer, Heidelberg (1986)Google Scholar
  7. 7.
    Janssen, W.: Layered Design of Parallel Systems. PhD thesis, University of Twente (1994)Google Scholar
  8. 8.
    Janssen, W.: Layers as knowledge transitions in the design of distributed systems. In: Brinksma, E., Steffen, B., Cleaveland, W.R., Larsen, K.G., Margaria, T. (eds.) TACAS 1995. LNCS, vol. 1019, pp. 304–318. Springer, Heidelberg (1995) number NS-95-2 in Notes Series, pp. 304–318, Department of Computer Science, University of Aarhus (May 1995) BRICS Google Scholar
  9. 9.
    Janssen, W., Poel, M., Zwiers, J.: Action systems and action refinement in the development of parallel systems. In: Groote, J.F., Baeten, J.C.M. (eds.) CONCUR 1991. LNCS, vol. 527, pp. 298–316. Springer, Heidelberg (1991)Google Scholar
  10. 10.
    Janssen, W., Zwiers, J.: From sequential layers to distributed processes, deriving a minimum weight spanning tree algorithm (extended abstract). In: Proceedings 11th ACM Symposium on Principles of Distributed Computing, pp. 215–227. ACM, New York (1992)CrossRefGoogle Scholar
  11. 11.
    Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 7, 558–565 (1978)CrossRefGoogle Scholar
  12. 12.
    Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann, San Francisco (1996)MATHGoogle Scholar
  13. 13.
    Poel, M., Zwiers, J.: Layering techniques for development of parallel systems. In: Probst, D.K., von Bochmann, G. (eds.) CAV 1992. LNCS, vol. 663, pp. 16–29. Springer, Heidelberg (1993)Google Scholar
  14. 14.
    Stomp, F.A., de Roever, W.-P.: A principle for sequential reasoning about distributed algorithms. Formal Aspects of Computing 6(6), 716–737 (1994)MATHGoogle Scholar
  15. 15.
    Wang, D.-W., Zuck, L.D.: Tight bounds for the sequence transmission problem. In: PODC 1989: Proceedings of the eighth annual ACM Symposium on Principles of Distributed Computing, pp. 73–83. ACM Press, New York (1989)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Kai Engelhardt
    • 1
  • Yoram Moses
    • 2
  1. 1.School of Computer Science and EngineeringThe University of New South Wales, and NICTASydneyAustralia
  2. 2.Department of Electrical EngineeringTechnionHaifaIsrael

Personalised recommendations