Skip to main content

The Lost Art of Abstraction

  • Conference paper
Architecting Dependable Systems III

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3549))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Dijkstra, E.W.: The structure of the THE multiprogramming system. Communications of the ACM 11, 341–346 (1968)

    Article  MATH  Google Scholar 

  2. Day, J., Zimmermann, H.: The OSI reference model. Proceedings of the IEEE 71, 1334–1340 (1983)

    Article  Google Scholar 

  3. Schlichting, R., Schneider, F.: Fail-stop processors: An approach to designing fault tolerant computing systems. ACM Transactions on Computer Systems 1, 222–238 (1983)

    Article  Google Scholar 

  4. Schneider, F.: Byzantine generals in action: Implementing fail-stop processors. ACM Transactions on Computer Systems 2, 145–154 (1984)

    Article  Google Scholar 

  5. 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)

    Google Scholar 

  6. Chang, J., Maxemchuk, N.: Reliable broadcast protocols. ACM Transactions on Computer Systems 2, 251–273 (1984)

    Article  Google Scholar 

  7. Cheriton, D., Zwaenepoel, W.: Distributed process groups in the V kernel. ACM Transactions on Computer Systems 2, 77–107 (1985)

    Article  Google Scholar 

  8. 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)

    Google Scholar 

  9. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of ACM 21, 558–565 (1978)

    Article  MATH  Google Scholar 

  10. Kopetz, H., Ochsenreiter, W.: Clock synchronization in distributed, real-time systems. IEEE Transactions on Computers C-36, 933–940 (1987)

    Article  Google Scholar 

  11. Lampson, B.: Atomic transactions. In: Distributed Systems—Architecture and Implementation, pp. 246–265. Springer, Heidelberg (1981)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Schneider, F.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22, 299–319 (1990)

    Article  Google Scholar 

  14. 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)

    Google Scholar 

  15. Gray, J.: An approach to decentralized computer systems. IEEE Transactions on Software Engineering SE-12, 684–692 (1986)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. Haerder, T., Reuter, A.: Principles of transaction-oriented database recovery. ACM Computing Surveys 15, 287–317 (1983)

    Article  MathSciNet  Google Scholar 

  18. 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)

    Article  Google Scholar 

  19. Satyanarayanan, M., Mashburn, H., Kumar, P., Steere, D., Kistler, J.: Lightweight recoverable virtual memory. ACM Transactions on Computer Systems 12, 33–57 (1994)

    Article  Google Scholar 

  20. Fischer, M., Lynch, N., Paterson, M.: Impossibility of distributed consensus with one faulty process. Journal of the ACM 32, 374–382 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  21. Powell, D.: Failure mode assumptions and assumption coverage. In: Proceedings of the 22nd IEEE Symposium on Fault-Tolerant Computing, pp. 386–395 (1992)

    Google Scholar 

  22. Spolsky, J.: Joel on Software. Apress (2004)

    Google Scholar 

  23. Hiltunen, M., Schlichting, R., Ugarte, C.: Building survivable services using redundancy and adaptation. IEEE Transactions on Computers 52, 181–194 (2003)

    Article  Google Scholar 

  24. Vogels, W.: Web services are not distributed objects. IEEE Internet Computing 7, 59–66 (2003)

    Article  Google Scholar 

  25. Birman, K.: Like it or not, web services are distributed objects. Communications of the ACM 47, 60–62 (2004)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. Chandra, T., Toueg, S.: Unreliable failure detectors for reliable distributed systems. Journal of the ACM 43, 225–267 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  29. Ritchie, D.M.: A stream input-output system. AT&T Bell Laboratories Technical Journal 63, 311–324 (1984)

    Google Scholar 

  30. Shrivastava, S., Dixon, G., Parrington, G.: An overview of the Arjuna distributed programming system. IEEE Software 8, 66–73 (1991)

    Article  Google Scholar 

  31. Schmidt, D., Box, D., Suda, T.: ADAPTIVE: A dynamically assembled protocol transformation, integration, and evaluation environment. Concurrency: Practice and Experience 5, 269–286 (1993)

    Article  Google Scholar 

  32. Schlichting, R., Hiltunen, M.: The Cactus project (1999), http://www.cs.arizona.edu/cactus/

  33. Das, R., Hiltunen, M., Schlichting, R.: Supporting configurability and real time in RTD channels. Software: Practice and Experience 31, 1183–1209 (2001)

    Article  MATH  Google Scholar 

  34. Hiltunen, M., Immanuel, V., Schlichting, R.: Supporting customized failure models for distributed software. Distributed Systems Engineering 6, 103–111 (1999)

    Article  Google Scholar 

  35. 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)

    Google Scholar 

  36. Rajagopalan, M., Hiltunen, M., Jim, T., Schlichting, R.: Authenticated system calls. In: Proceedings of the 2005 International Conference on Dependable Computing and Communication (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics