Review 4

From: Charles Reis (creis@cs.washington.edu)
Date: Tue Oct 12 2004 - 22:44:17 PDT

  • Next message: Alan L. Liu: "Review of End-to-End Arguments in System Design"

    End-To-End Arguments in System Design
    Saltzer, Reed, Clark, 1984

    The end-to-end argument takes the position that many services and mechanisms desired in systems building (especially networks) cannot be completely achieved in the lower or central parts of the system or network. Since there are always opportunities for things to go wrong at higher layers, applications fundamentally must have their own techniques for dealing with issues like reliability and security, and so any implementations at a lower level are necessarily redundant and should exist only when justified for performance benefits.

    This argument tends to run somewhat counter to other guiding principles of computer science, such as the desire to abstract common functionality into a central location. Having each application implement its own security mechanisms, for example, multiplies the opportunities for bugs and poor implementations. Yet the end-to-end approach keeps the network or underlying system simple and easily extensible, and it remains true that applications often need to handle concerns in very specific ways, best addressed by the application developer. Additionally, when functionality is common between applications, it can be abstracted into libraries (such as OpenSSL) instead of the core of the network itself.

    The paper does a good job defining the end-to-end argument and illustrating it with examples, in an attempt to preserve this design principle for keeping core systems simple.


  • Next message: Alan L. Liu: "Review of End-to-End Arguments in System Design"

    This archive was generated by hypermail 2.1.6 : Tue Oct 12 2004 - 22:44:20 PDT