The Horus and Ensemble projects: accomplishments and limitations

The Horus and Ensemble efforts culminated a multi-year Cornell research program in process group communication used for fault-tolerance, security and adaptation. Our intent was to understand the degree to which a single system could offer flexibility and yet maintain high performance, to explore the integration of fault tolerance with security and real-time mechanisms, and to increase trustworthiness of our solutions by applying formal methods. Here, we summarize the accomplishments of the effort and evaluate the successes and failures of the approach.

[1]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[2]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[3]  Edgar T. Irons A syntax directed compiler for ALGOL 60 , 1983, CACM.

[4]  Michael R. Lowry,et al.  Deductive Composition of Astronomical Software from Subroutine Libraries , 1994, CADE.

[5]  Roy Friedman,et al.  Using Group Communication Technology to Implement a Reliable andScalable Distributed IN Coprocessor , 1996 .

[6]  Esti Yeger Lotem,et al.  The AS/400 cluster engine: A case study , 1999, Proceedings of the 1999 ICPP Workshops on Collaboration and Mobile Computing (CMC'99). Group Communications (IWGC). Internet '99 (IWI'99). Industrial Applications on Network Computing (INDAP). Multime.

[7]  Bernadette Charron-Bost,et al.  On the impossibility of group membership , 1996, PODC '96.

[8]  Donald E. Knuth,et al.  Examples of formal semantics , 1971, Symposium on Semantics of Algorithmic Languages.

[9]  Robbert van Renesse,et al.  A security architecture for fault-tolerant systems , 1994, TOCS.

[10]  Robbert van Renesse Masking the overhead of protocol layering , 1996, SIGCOMM 1996.

[11]  Nancy A. Lynch,et al.  Specifications and Proofs for Ensemble Layers , 1999, TACAS.

[12]  Steven McCanne,et al.  A reliable multicast framework for light-weight sessions and application level framing , 1995, SIGCOMM '95.

[13]  Michael K. Reiter,et al.  How to securely replicate services , 1992, TOPL.

[14]  Richard Edwin Stearns,et al.  Syntax-Directed Transduction , 1966, JACM.

[15]  W. Bibel,et al.  Automated deduction : a basis for applications , 1998 .

[16]  Kenneth P. Birman,et al.  A review of experiences with reliable multicast , 1999, Softw. Pract. Exp..

[17]  Mark Garland Hayden,et al.  The Ensemble System , 1998 .

[18]  Kenneth P. Birman,et al.  The design and architecture of the Microsoft Cluster Service-a practical approach to high-availability and scalability , 1998, Digest of Papers. Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing (Cat. No.98CB36224).

[19]  Miriam Leeser,et al.  Verifying a Logic Synthesis Tool in Nuprl: A Case Study in Software Verification , 1992, CAV.

[20]  Peter Lee,et al.  Advanced Languages for Systems Software: The Fox Project in 1994 , 1994 .

[21]  Donald E. Knuth,et al.  An empirical study of FORTRAN programs , 1971, Softw. Pract. Exp..

[22]  E. T. Irons,et al.  The structure and use of the syntax directed compiler , 1963 .

[23]  Sanjoy Paul,et al.  Reliable Multicast Transport Protocol (RMTP) , 1997, IEEE J. Sel. Areas Commun..

[24]  Robert W. Floyd,et al.  On the nonexistence of a phrase structure grammar for ALGOL 60 , 1962, CACM.

[25]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[26]  Danny Dolev,et al.  Optimized Rekey for Group Communication Systems , 2000, NDSS.

[27]  Donald E. Knuth,et al.  Mathematical Analysis of Algorithms , 1971, IFIP Congress.

[28]  Christoph Kreitz,et al.  A Proof Environment for the Development of Group Communication Systems , 1998, CADE.

[29]  Kenneth P. Briman A review of experiences with reliable multicast , 1999 .

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

[31]  Christoph Kreitz Automated Fast-Track Reconfiguration of Group Communication Systems , 1999, TACAS.

[32]  Srinivasan Keshav,et al.  An Engineering Approach to Computer Networking: ATM Networks , 1996 .

[33]  Mohamed G. Gouda,et al.  Secure group communications using key graphs , 1998, SIGCOMM '98.

[34]  Jason Hickey,et al.  Non-Restoring Integer Square Root: A Case Study in Design by Principled Optimization , 1994, TPCD.

[35]  Paul Walton Purdom,et al.  The Analysis of Algorithms , 1995 .

[36]  Donald E. Knuth,et al.  TeX: The Program , 1986 .

[37]  Danny Dolev,et al.  Ensemble Security , 1998 .

[38]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[39]  Christoph Kreitz,et al.  Building reliable, high-performance communication systems from components , 2000, OPSR.

[40]  Damien Doligez,et al.  The Objective Caml system release 2.04 , 2002 .

[41]  Rico Piantoni,et al.  Implementing the Swiss Exchange trading system , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[42]  Robert L. Constable,et al.  Proofs as programs , 1985, TOPL.

[43]  Bradford B. Glade A scalable architecture for reliable publish/subscribe communication in distributed systems , 1998 .

[44]  Karsten P. Ulland,et al.  Vii. References , 2022 .

[45]  David B. MacQueen Reflections on Standard ML , 1993, Functional Programming, Concurrency, Simulation and Automated Reasoning.

[46]  Kenneth P. Birman,et al.  Bimodal multicast , 1999, TOCS.

[47]  Karl Crary Type-Theoretic Methodology for Practical Programming Languages , 1998 .

[48]  Mark Bickford,et al.  An Object-Oriented Approach to Verifying Group Communication Systems , 1999 .

[49]  Edgar T. Irons,et al.  “Structural connections” in formal languages , 1964, CACM.

[50]  Kenneth P. Birman,et al.  Exploiting virtual synchrony in distributed systems , 1987, SOSP '87.

[51]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[52]  Tracy Larrabee,et al.  Mathematical Writing , 1989, MAA notes.

[53]  Mark Hayden,et al.  Distributed communication in ML , 2000, J. Funct. Program..

[54]  Christoph Kreitz Formal Reasoning about Communication Systems I: Embedding ML into Type Theory. , 1997 .

[55]  K. Culik,et al.  WELL TRANSLATABLE GRAMMARS AND ALGOL-LIKE LANGUAGES, , 1968 .

[56]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[57]  Robbert van Renesse Masking the Overhead of Protocol Layering , 1996, SIGCOMM.

[58]  Larry L. Peterson,et al.  RPC in the x-Kernel: evaluating new design techniques , 1989, SOSP '89.

[59]  David A. Karr Specification, composition, and automated verification of layered communication protocols , 1997 .

[60]  Peter E. Lauer,et al.  Functional Programming, Concurrency, Simulation and Automated Reasoning , 1993, Lecture Notes in Computer Science.