Causing Communication Closure: Safe Program Composition with Non-FIFO Channels
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.
- 3.Engelhardt, K., Moses, Y.: Safe composition of distributed programs communicating over order-preserving imperfect channels (June 2005) (submitted), see ftp://ftp.cse.unsw.edu.au/pub/users/kaie/EM2005b.pdf
- 4.Engelhardt, K., Moses, Y.: Single-bit messages are insufficient in the presence of duplication (June 2005) (in preparation), see ftp://ftp.cse.unsw.edu.au/pub/users/kaie/EM2005c.pdf
- 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.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.Janssen, W.: Layered Design of Parallel Systems. PhD thesis, University of Twente (1994)Google Scholar
- 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.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
- 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