A formal treatment of an abstract channel implementation using java sockets and TCP

  • Authors:
  • Chryssis Georgiou;Peter M. Musial;Alexander A. Shvartsman;Elaine L. Sonderegger

  • Affiliations:
  • University of Cyprus, Nicosia, Cyprus;Veromodo: Inc., Brookline, MA;University of Connecticut, Storrs, CT;University of Connecticut, Storrs, CT

  • Venue:
  • Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Abstract models and specifications can be used in the design of distributed applications to formally reason about their safety properties. However, the benefits of using formal methods are offset by the challenging process of mapping the functionality of an abstract specification to the low-level executable code for target distributed platforms. Formal specification and practical implementation of communication channels is one such challenge. This work provides the first formal specification of an abstract asynchronous communication channel with support for dynamic creation and tear down of communication links between participating network nodes, and its implementation using Java sockets and TCP. The specifications are formulated using Input/Output Automata formalism, and it is proved that the resulting implementation preserves the safety properties of the abstract channel. The approach presented here can be used to implement algorithms for dynamic systems, where communicating nodes may join, leave, and experience arbitrary delays, and it can directly benefit automated code generation.