Paper Review: End-to-End Arguments in System Design
This paper presents the end-to-end argument, a design principle aiding the
placement of functions within a distributed computing system. Specifically, the
paper suggests moving functionality, which adds little value at a significant
cost, from the lower-levels to applications residing in end-systems.
The paper argues a function can only be correctly implemented with the knowledge
and help of the application in the end-system and thus cannot be implemented in
the communication-subsystem alone. As a result, functions provided in the lower
layer must also be provided by the application. This argument lends itself to
the notion that any feature which resides in the lower-level must provide a
significant performance enhancement to offset the cost of redundancy.
The end-to-end argument is supported through a classical example, a file
transfer, and then further supported by applying it to an array of other functions.
The paper is careful in that it presents a scenario in which it is beneficial to
implement a feature in the lower-level. It describes an unreliable network in
which a considerable performance enhancement is achieved by providing a basic
error checking function. This example highlights the notion that the end-to-end
argument is a guideline rather than a hard-and-fast rule.
The end-to-end argument was not a completely novel idea; however, the paper
presents a significant contribution to networking research by formalizing the
concept and providing a standard reference point for systems designers. The
paper sets a modest goal of introducing a formal design principle as a guideline
and provides significant evidence to support the concept.
-- Nadeem Abji
Received on Thu Sep 14 2006 - 03:55:55 EDT
This archive was generated by hypermail 2.2.0 : Thu Sep 14 2006 - 09:06:15 EDT