research-article

A Lightweight Method for Automated Design of Convergence in Network Protocols

Published:01 December 2012Publication History
Skip Abstract Section

Abstract

Design and verification of Self-Stabilizing (SS) network protocols are difficult tasks in part because of the convergence property that requires an SS protocol to recover to a set of legitimate states from any state in its state space. Once an SS protocol reaches a legitimate state, it remains in the set of legitimate states as long as there are no faults, called the closure property. Distribution issues exacerbate the design complexity of SS protocols as processes should collaborate and take local actions that result in global convergence. Most existing design techniques are manual, and mainly focus on protocols whose global state can be corrected if the local states of all processes are corrected, called the locally correctable protocols. After manual design, an SS protocol has to be verified for closure and convergence. Previous work observes that verifying SS protocols is a harder problem than designing them as developers have to ensure the correctness of closure and convergence functionalities and their noninterference. An algorithmic method for the design of convergence generates protocols that are correct by construction, thereby eliminating the need for verification.

In order to facilitate the design of SS protocols, this article presents a lightweight method for algorithmic addition of convergence to finite-state nonstabilizing protocols, including nonlocally correctable protocols. The proposed method enables the reuse of design efforts in the development of different self-stabilizing protocols. Moreover, for the first time (to the best of our knowledge), this article presents an algorithmic method for the addition of convergence to symmetric protocols that consist of structurally similar processes. The proposed approach is supported by a software tool that automatically adds convergence to nonstabilizing protocols. We have used the proposed method/tool to automatically generate several self-stabilizing protocols with up to 40 processes (and 340 states) in a few minutes on a regular PC. Surprisingly, our tool has synthesized both protocols that are the same as their manually designed versions as well as alternative solutions for well-known problems in the literature (e.g., Dijkstra’s token ring, maximal matching, graph coloring, agreement and leader election in a ring). Moreover, the proposed method has helped us detect a design flaw in a manually designed self-stabilizing protocol.

References

  1. Abujarad, F. and Kulkarni, S. S. 2009. Multicore constraint-based automated stabilization. In Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems. 47--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Afek, Y., Kutten, S., and Yung, M. 1997. The local detection paradigm and its application to self-stabilization. Theoret. Comput. Sci. 186, 1--2, 199--229. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Arora, A., Gouda, M., and Varghese, G. 1996. Constraint satisfaction as a basis for designing nonmasking fault-tolerant systems. J. High Speed Netw. 5, 3, 293--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Arora, A. and Gouda, M. G. 1993. Closure and convergence: A foundation of fault-tolerant computing. IEEE Trans. Softw. Eng. 19, 11, 1015--1027. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Arora, A. and Gouda, M. G. 1994. Distributed reset. IEEE Trans. Comput. 43, 9, 1026--1038. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Attie, P. and Emerson, A. 2001. Synthesis of concurrent programs for an atomic read/write model of computation. ACM Trans. Program. Lang. Syst. 23, 2, 187--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Attie, P. and Emerson, E. 1998. Synthesis of concurrent systems with many similar processes. ACM Trans. Program. Lang. Syst. 20, 1, 51--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Attie, P. C., Anish A., and Emerson, E. A. 2004. Synthesis of fault-tolerant concurrent programs. ACM Trans. Prog. Lang. Syst. 26, 1, 125--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Awerbuch, B., Patt-Shamir, B., and Varghese, G. 1991. Self-stabilization by local checking and correction. In Proceedings of the 31st Annual IEEE Symposium on Foundations of Computer Science. 268--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Beauquier, J., Tixeuil, S., and Datta, A. K. 1999. Self-stabilizing census with cut-through constraint. In Proceedings of the International Conference on Distributed Computing Systems (ICDCS). 70--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bloem, R., Chatterjee, K., Greimel, K., Henzinger, T. A., and Jobstmann, B. 2010. Robustness in the presence of liveness. In Proceedings of the International Conference on Computer Aided Verification (CAV). 410--424. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bloem, R., Greimel, K., Henzinger, T. A., and Jobstmann, B. 2009. Synthesizing robust systems. In Proceedings of the International Conference on Formal Methods in Computer-Aided Design (FMCAD). 85--92.Google ScholarGoogle Scholar
  13. Bonakdarpour, B. and Kulkarni, S. S. 2007. Exploiting symbolic techniques in automated synthesis of distributed programs with large state space. In Proceedings of the 27th International Conference on Distributed Computing Systems. IEEE Computer Society, Los Alaminos, CA, 3--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Bonakdarpour, B. and Kulkarni, S. S. 2008. Revising distributed UNITY programs is NP-complete. In Proceedings of the 12th International Conference on Principles of Distributed Systems (OPODIS). 408--427. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Brown, G., Gouda, M., and Wu, C.-L. 1989. Token systems that self-stabilize. IEEE Trans. Comput. 38, 6, 845--852. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Bryant, R. 1986. Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35, 8, 677--691. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Cho, K. and Lim, J. 1998. Synthesis of fault-tolerant supervisor for automated manufacturing systems: A case study on photolithography process. IEEE Trans. Robotics Automat. 14, 2, 348--351.Google ScholarGoogle ScholarCross RefCross Ref
  18. Cottenier, T., van den Berg, A., and Elrad, T. 2007. Motorola WEAVER: Aspect and model-driven engineering. J. Object Tech. 6, 7, 51--88.Google ScholarGoogle ScholarCross RefCross Ref
  19. Dijkstra, E. W. 1974. Self-stabilizing systems in spite of distributed control. Commun. ACM 17, 11, 643--644. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Dijkstra, E. W. 1990. A Discipline of Programming. Prentice-Hall.Google ScholarGoogle Scholar
  21. Dolev, S. and Herman, T. 1995. Superstabilizing protocols for dynamic distributed systems. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing. 255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Dolev, S. and Welch, J. L. 2004. Self-stabilizing clock synchronization in the presence of byzantine faults. J. ACM 51, 5, 780--799. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ebnenasir, A. 2005. Automatic synthesis of fault-tolerance. Ph.D. thesis, Michigan State University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Ebnenasir, A. and Farahat, A. 2010. Towards an extensible framework for automated design of self-stabilization. Tech. rep. CS-TR-10-03, Michigan Technological University. http://www.cs.mtu.edu/html/tr/10/10-03.pdf.Google ScholarGoogle Scholar
  25. Ebnenasir, A., Kulkarni, S. S., and Arora, A. 2008. FTSyn: A framework for automatic synthesis of fault-tolerance. Int. J. Softw. Tools Tech. Transfer 10, 5, 455--471. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Emerson, E. and Clarke, E. 1982. Using branching time temporal logic to synthesize synchronization skeletons. Sci. Comput. Program. 2, 3, 241--266.Google ScholarGoogle ScholarCross RefCross Ref
  27. Emerson, E. and Sistla, A. 1996. Symmetry and model checking. Formal Meth. Syst. Design 9, 1, 105--131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Garg, V. K. 1993. Parallel and distributed algorithms for supervisory control of discrete event systems. In Proceedings of 32nd IEEE Conference on Decision and Control. 2236--2241.Google ScholarGoogle ScholarCross RefCross Ref
  29. Gentilini, R., Piazza, C., and Policriti, A. 2003. Computing strongly connected components in a linear number of symbolic steps. In Proceedings of the 14th Annual ACM-SIAM Symposium on Discrete Algorithms. 573--582. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Gouda, M. 1995. The triumph and tribulation of system stabilization. In Proceedings of the Distributed Algorithms (WDAG’95), J.-M. Helary and M. Raynal Eds., Lecture Notes in Computer Science, vol. 972. Springer-Verlag, 1--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Gouda, M. 2001. The theory of weak stabilization. In Proceedings of 5th International Workshop on Self-Stabilizing Systems. Lecture Notes in Computer Science, vol. 2194. 114--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Gouda, M. 2002. Multiphase stabilization. IEEE Trans. Softw. Eng. 28, 2, 201--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Gouda, M. G. and Acharya, H. B. 2009. Nash equilibria in stabilizing systems. In Proceedings of the 11th International Symposium on Stabilization, Safety, and Security of Distributed Systems. 311--324. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Gouda, M. G. and Multari, N. 1991. Stabilizing communication protocols. IEEE Trans. Comput. 40, 4, 448--458. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Holzmann, G. 1997. The model checker SPIN. IEEE Trans. Softw. Eng. 23, 5, 279--295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Huang, S.-T. 1993. Leader election in uniform rings. ACM Trans. Prog. Lang. Syst. 15, 3, 563--573. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Katz, S. and Perry, K. 1993. Self-stabilizing extensions for message passing systems. Distrib. Comput. 7, 17--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Kulkarni, S. S. and Arora, A. 2000. Automating the addition of fault-tolerance. In Formal Techniques in Real-Time and Fault-Tolerant Systems, Springer-Verlag, 82--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Kupferman, O. and Vardi, M. 2001. Synthesizing distributed systems. In Proceedings of the 16th IEEE Symposium on Logic in Computer Science. 389--398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Lafortune, S. and Lin, F. 1992. On tolerable and desirable behaviors in supervisory control of discrete event systems. Disc. Event Dynam. Syst.: Theory Appl. 1, 1, 61--92.Google ScholarGoogle ScholarCross RefCross Ref
  41. Leal, W. and Arora, A. 2004. Scalable self-stabilization via composition. In Proceedings of the IEEE International Conference on Distributed Computing Systems. 12--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Lin, F. and Wonham, W. M. 1990. Decentralized control and coordination of discrete-event systems with partial observation. IEEE Trans. Automat. Control 35, 12, 1330--1337.Google ScholarGoogle ScholarCross RefCross Ref
  43. ling Yen, I. and Bastani, F. B. 1995. A highly safe self-stabilizing mutual exclusion algorithm. In Proceedings of the 2nd Workshop on Self-Stabilizing Systems. 301--305.Google ScholarGoogle Scholar
  44. Liu, Z. and Joseph, M. 1992. Transformation of programs for fault-tolerance. Formal Asp. Comput. 4, 5, 442--469.Google ScholarGoogle ScholarCross RefCross Ref
  45. Manna, Z. and Wolper, P. 1984. Synthesis of communicating processes from temporal logic specifications. ACM Trans. Program. Lang. Syst. 6, 1, 68--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Pnueli, A. and Rosner, R. 1989. On the synthesis of a reactive module. In Proceedings of the 16th ACM Symposium on Principles of Programming Languages. ACM, New York, 179--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Pnueli, A. and Rosner, R. 1990. Distributed reactive systems are hard to synthesis. In Proceedings of 31st IEEE Symposium on Foundation of Computer Science. IEEE Computer Society, Los Alamitos, CA, 746--757. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Ramadge, P. and Wonham, W. 1989. The control of discrete event systems. Proc. IEEE 77, 1, 81--98.Google ScholarGoogle ScholarCross RefCross Ref
  49. Rohloff, K. R. 2004. Computations on distributed discrete-event systems. Ph.D. thesis, University of Michigan, MI. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Rudie, K., Lafortune, S., and Lin, F. 2003. Minimal communication in a distributed discrete-event systems. IEEE Trans. Automat. Cont. 48, 6, 957--975.Google ScholarGoogle ScholarCross RefCross Ref
  51. Rudie, K. and Wonham, W. 1992. Think globally, act locally: Decentralized supervisory control. IEEE Trans. Automat. Cont. 37, 11, 1692--1708.Google ScholarGoogle ScholarCross RefCross Ref
  52. Rumbaugh, J., Jacobson, I., and Booch, G. 1999. The Unified Modeling Language Reference Manual. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Somenzi, F. 1998. CUDD: CU decision diagram package release 2.3. 0. University of Colorado at Boulder.Google ScholarGoogle Scholar
  54. Staber, S., Jobstmann, B., and Bloem, R. 2005. Finding and fixing faults. In Proceedings of the 13th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods. 35--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Stomp, F. 1993. Structured design of self-stabilizing programs. In Proceedings of the 2nd Israel Symposium on Theory and Computing Systems. 167--176.Google ScholarGoogle ScholarCross RefCross Ref
  56. Thomas, W. 1995. On the synthesis of strategies in infinite games. In Proceedings of the 12th Annual Symposium on Theoretical Aspects of Computer Science. 1--13.Google ScholarGoogle ScholarCross RefCross Ref
  57. Thomas, W. 2002. Infinite games and verification (extended abstract of a tutorial). In Proceedings of the 14th International Conference (CAV). Lecture Notes in Computer Science, vol. 2404, 58--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Varghese, G. 1993. Self-stabilization by local checking and correction. Ph.D. thesis, MIT/LCS/TR-583. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Varghese, G. 1994. Self-stabilization by counter flushing. In Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing. 244--253. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Wallmeier, N., Hütten, P., and Thomas, W. 2003. Symbolic synthesis of finite-state controllers for request-response specifications. In Proceedings of CIAA, Lecture Notes in Computer Science, vol. 2759, 11--22. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Lightweight Method for Automated Design of Convergence in Network Protocols

                        Recommendations

                        Comments

                        Login options

                        Check if you have access through your login credentials or your institution to get full access on this article.

                        Sign in

                        Full Access

                        • Published in

                          cover image ACM Transactions on Autonomous and Adaptive Systems
                          ACM Transactions on Autonomous and Adaptive Systems  Volume 7, Issue 4
                          Special Section: Extended Version of SASO 2011 Best Paper
                          December 2012
                          167 pages
                          ISSN:1556-4665
                          EISSN:1556-4703
                          DOI:10.1145/2382570
                          Issue’s Table of Contents

                          Copyright © 2012 ACM

                          Publisher

                          Association for Computing Machinery

                          New York, NY, United States

                          Publication History

                          • Published: 1 December 2012
                          • Accepted: 1 April 2012
                          • Revised: 1 January 2012
                          • Received: 1 March 2011
                          Published in taas Volume 7, Issue 4

                          Permissions

                          Request permissions about this article.

                          Request Permissions

                          Check for updates

                          Qualifiers

                          • research-article
                          • Research
                          • Refereed

                        PDF Format

                        View or Download as a PDF file.

                        PDF

                        eReader

                        View online with eReader.

                        eReader
                        About Cookies On This Site

                        We use cookies to ensure that we give you the best experience on our website.

                        Learn more

                        Got it!