It is essential for system designers to feasibly and reasonably organize placements of functions among the different modules of a distributed computer system in order to achieve enhanced performance results. While doing so, it is not only sound but also beneficial in the application development if system designers are guided with established system design principles.
In the paper, “End-to-End Arguments in System Design” by J.H. Saltzer, D.P. Reed and D.D. Clark [1], a design principle called end-to-end argument was presented. The paper provided numerous examples of end-to-end arguments such as “careful file transfer”, “data encryption” and “duplicate message suppression” among others. The end-to-end argument opposes low-level function implementation whereas it suggests that functions be carefully placed at the endpoints. But is it always true that functions are strategically better placed at the higher-levels? Also, how do we identify the endpoints?
In some of the examples discussed, it is apparent that realizing the potential threats and applying the possible adjustments are very important in the design process. Such tradeoffs like reliability and performance exist. Do we really have to choose performance over reliability or can we get both?
In the paper, “End-to-End Arguments in System Design” by J.H. Saltzer, D.P. Reed and D.D. Clark [1], a design principle called end-to-end argument was presented. The paper provided numerous examples of end-to-end arguments such as “careful file transfer”, “data encryption” and “duplicate message suppression” among others. The end-to-end argument opposes low-level function implementation whereas it suggests that functions be carefully placed at the endpoints. But is it always true that functions are strategically better placed at the higher-levels? Also, how do we identify the endpoints?
In some of the examples discussed, it is apparent that realizing the potential threats and applying the possible adjustments are very important in the design process. Such tradeoffs like reliability and performance exist. Do we really have to choose performance over reliability or can we get both?
References:
[1] J. H. Saltzer, D.P. Reed and D. D. Clark, "End-to-end arguments in system design," ACM Transactions in Computer Systems, vol. 2, no. 4, pp. 277-288, November 1984.
No comments:
Post a Comment