Abstract
System abstractions such as virtual memory simplify the construction of software by hiding details of the underlying system and by providing higher-level functionality on which to build. While the value of building systems as layers or hierarchies of abstractions has long been known, the application of this principle has been uneven when it comes to using it as the basis for architecting dependable distributed systems. This paper gives an overview of issues that arise when using abstractions in this area and proposes some approaches to addressing these issues. The latter include the use of translucent abstractions that expose some of the internal workings of the abstraction implementation, customizable abstractions that allow attributes to be matched to the application requirements and execution scenario, and an intrusion-stop process abstraction that potentially provides a basis for architecting survivable systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Dijkstra, E.W.: The structure of the THE multiprogramming system. Communications of the ACM 11, 341–346 (1968)
Day, J., Zimmermann, H.: The OSI reference model. Proceedings of the IEEE 71, 1334–1340 (1983)
Schlichting, R., Schneider, F.: Fail-stop processors: An approach to designing fault tolerant computing systems. ACM Transactions on Computer Systems 1, 222–238 (1983)
Schneider, F.: Byzantine generals in action: Implementing fail-stop processors. ACM Transactions on Computer Systems 2, 145–154 (1984)
Birman, K., Joseph, T.: Exploiting virtual synchrony in distributed systems. In: Proceedings of the 11th ACM Symposium on Operating System Principles, Austin, TX, pp. 123–138 (1987)
Chang, J., Maxemchuk, N.: Reliable broadcast protocols. ACM Transactions on Computer Systems 2, 251–273 (1984)
Cheriton, D., Zwaenepoel, W.: Distributed process groups in the V kernel. ACM Transactions on Computer Systems 2, 77–107 (1985)
Cristian, F., Aghili, H., Strong, R., Dolev, D.: Atomic broadcast: From simple message diffusion to Byzantine agreement. In: Proceedings of the 15th Symposium on Fault-Tolerant Computing, Ann Arbor, MI, pp. 200–206 (1985)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of ACM 21, 558–565 (1978)
Kopetz, H., Ochsenreiter, W.: Clock synchronization in distributed, real-time systems. IEEE Transactions on Computers C-36, 933–940 (1987)
Lampson, B.: Atomic transactions. In: Distributed Systems—Architecture and Implementation, pp. 246–265. Springer, Heidelberg (1981)
Liskov, B.: The Argus language and system. In: Paul, M., Siegert, H. (eds.) Distributed Systems: Methods and Tools for Specification. LNCS, vol. 190, pp. 343–430. Springer, Berlin (1985)
Schneider, F.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22, 299–319 (1990)
Alsberg, P., Day, J.: A principle for resilient sharing of distributed resources. In: Proceedings of the 2nd International Conference on Software Engineering, pp. 562–570 (1976)
Gray, J.: An approach to decentralized computer systems. IEEE Transactions on Software Engineering SE-12, 684–692 (1986)
Wheater, S.: Constructing Reliable Distributed Applications using Actions and Objects. PhD thesis, The University of Newcastle upon Tyne Computing Laboratory, Newcastle upon Tyne, England (1989)
Haerder, T., Reuter, A.: Principles of transaction-oriented database recovery. ACM Computing Surveys 15, 287–317 (1983)
Batory, D., Barnett, J., Garza, J., Smith, K., Tsukuda, K., Twichell, B., Wise, T.: GENESIS: An extensible database management system. IEEE Transactions on Software Engineering SE-14, 1711–1729 (1988)
Satyanarayanan, M., Mashburn, H., Kumar, P., Steere, D., Kistler, J.: Lightweight recoverable virtual memory. ACM Transactions on Computer Systems 12, 33–57 (1994)
Fischer, M., Lynch, N., Paterson, M.: Impossibility of distributed consensus with one faulty process. Journal of the ACM 32, 374–382 (1985)
Powell, D.: Failure mode assumptions and assumption coverage. In: Proceedings of the 22nd IEEE Symposium on Fault-Tolerant Computing, pp. 386–395 (1992)
Spolsky, J.: Joel on Software. Apress (2004)
Hiltunen, M., Schlichting, R., Ugarte, C.: Building survivable services using redundancy and adaptation. IEEE Transactions on Computers 52, 181–194 (2003)
Vogels, W.: Web services are not distributed objects. IEEE Internet Computing 7, 59–66 (2003)
Birman, K.: Like it or not, web services are distributed objects. Communications of the ACM 47, 60–62 (2004)
Deswarte, Y., Fabre, J.C., Fray, J.M., Powell, D., Ranea, P.G.: Saturne: A distributed computing system which tolerates faults and intrusions. In: Proceedings of the Workshop on Future Trends of Distributed Computing Systems in the 1990’s, Hong Kong, pp. 329–338 (1988)
Hayashibara, N., Defago, X., Yared, R., Katayama, T.: The ϕ accrual failure detector. In: Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems, pp. 66–78 (2004)
Chandra, T., Toueg, S.: Unreliable failure detectors for reliable distributed systems. Journal of the ACM 43, 225–267 (1996)
Ritchie, D.M.: A stream input-output system. AT&T Bell Laboratories Technical Journal 63, 311–324 (1984)
Shrivastava, S., Dixon, G., Parrington, G.: An overview of the Arjuna distributed programming system. IEEE Software 8, 66–73 (1991)
Schmidt, D., Box, D., Suda, T.: ADAPTIVE: A dynamically assembled protocol transformation, integration, and evaluation environment. Concurrency: Practice and Experience 5, 269–286 (1993)
Schlichting, R., Hiltunen, M.: The Cactus project (1999), http://www.cs.arizona.edu/cactus/
Das, R., Hiltunen, M., Schlichting, R.: Supporting configurability and real time in RTD channels. Software: Practice and Experience 31, 1183–1209 (2001)
Hiltunen, M., Immanuel, V., Schlichting, R.: Supporting customized failure models for distributed software. Distributed Systems Engineering 6, 103–111 (1999)
He, J., Hiltunen, M., Schlichting, R.: Customizing dependability attributes for mobile service platforms. In: Proceedings of the 2004 International Conference on Dependable Systems and Networks, pp. 617–626 (2004)
Rajagopalan, M., Hiltunen, M., Jim, T., Schlichting, R.: Authenticated system calls. In: Proceedings of the 2005 International Conference on Dependable Computing and Communication (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hiltunen, M.A., Schlichting, R.D. (2005). The Lost Art of Abstraction. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems III. Lecture Notes in Computer Science, vol 3549. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11556169_16
Download citation
DOI: https://doi.org/10.1007/11556169_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28968-5
Online ISBN: 978-3-540-31648-0
eBook Packages: Computer ScienceComputer Science (R0)