Skip to main content

AOP: Does It Make Sense? The Case of Concurrency and Failures

  • Conference paper
  • First Online:
ECOOP 2002 — Object-Oriented Programming (ECOOP 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2374))

Included in the following conference series:

Abstract

Concurrency and failures are fundamental problems in distributed computing. One likes to think that the mechanisms needed to address these problems can be separated from the rest of the distributed application: in modern words, these mechanisms could be aspectized. Does this however make sense?

This paper relates an experience that conveys our initial and indeed biased intuition that the answer is in general no. Except for simple academic examples, it is hard and even potentially dangerous to separate concurrency control and failure management from the actual application.

We point out the very facts that (1) an aspect- oriented language can, pretty much like a macro language, be beneficial for code factorization (but should be reserved to experienced programmers), and (2) concurrency and failures are particularly hard to aspectize because they are usually part of the phenomenon that objects should simulate. They are in this sense different than other concerns, like for instance tracing, which might be easier to aspectize.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Madsen, O. L.; Møller-Pederson, B.: “What object-oriented programming may be-and what it does not have to be”. In Gjessing, S.; Nygaard, K. (Eds.), 2nd European Conference on Object-Oriented Programming (ECOOP’ 88), pp. 1–20, Olso, Norway, August 1988, Lecture Notes in Computer Science 322, Springer Verlag.

    Chapter  Google Scholar 

  2. Elrad, T.; Aksit, M.; Kiczales, G.; Lieberherr, K.; Ossher, H.: “Discussing Aspects of AOP”. Communications of the ACM 44(10), pp. 33–38, October 2001.

    Google Scholar 

  3. Gray, J.; Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.

    MATH  Google Scholar 

  4. Guerraoui, R. “AOP = SMP (Structured Macro Programming)”, Panel at the 14th European Conference on Object-Oriented Programming (ECOOP’ 2000), Cannes, France, June 2000.

    Google Scholar 

  5. Shannon, B.; Hapner, M.; Matena, V.; Davidson, J.; Pelegri-Llopart, E.; Cable, L.: Java 2 Platform Enterprise Edition: Platform and Component Specification. The Java Series, Addison Wesley, Reading, MA, USA, 2000.

    Google Scholar 

  6. Kienzle, J.: Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming. Ph.D. Thesis #2393, Swiss Federal Institute of Technology, Lausanne, Switzerland, April 2001.

    Google Scholar 

  7. Kienzle, J.; Romanovsky, A.; Strohmeier, A.: “Open Multithreaded Transactions: Keeping Threads and Exceptions under Control”. In Proceedings of the 6th International Worshop on Object-Oriented Real-Time Dependable Systems, Universita di Roma La Sapienza, Roma, Italy, January 8th–10th, 2001, pp. 209–217, IEEE Computer Society Press, 2001.

    Google Scholar 

  8. Kiczales, G.; Hilsdale, E.; Hugunin, J.; Kersen, M.; Palm, J.; Griswold, W. G.: “An Overview of AspectJ”. In 15th European Conference on Object-Oriented Programming (ECOOP 2001), pp. 327–357, June 18–22, 2001, Budapest, Hungary, 2001.

    Google Scholar 

  9. Kienzle, J.; Jiménez-Peris, R.; Romanovsky, A.; Patiño-Martinez, M.: “Transaction Support for Ada”. In Reliable Software Technologies-Ada-Europe’2001, Leuven, Belgium, May 14–18, 2001, pp. 290–304, Lecture Notes in Computer Science 2043, Springer Verlag, 2001.

    Chapter  Google Scholar 

  10. Lee, P. A.; Anderson, T.: “Fault Tolerance-Principles and Practice”. In Dependable Computing and Fault-Tolerant Systems, Springer Verlag, 2 ed., 1990.

    Google Scholar 

  11. Hoare, C. A. R.: “Parallel Programming: an Axiomatic Approach”. In Bauer, F. L.; Samelson, K. (Eds.), Proceedings of the International Summer School on Language Hierarchies and Interfaces, pp. 11–42, Marktoberdorf, Germany, July 1975, Lecture Notes in Computer Science 46, Springer Verlag.

    Chapter  Google Scholar 

  12. Horning, J. J.; Randell, B.: “Process Structuring”. ACM Computing Surveys 5(1), pp. 5–30, March 1973.

    Google Scholar 

  13. Brinch Hansen, P.: Operating System Principles. Prentice Hall, 1973.

    Google Scholar 

  14. Hoare, C. A. R.: “Monitors: An Operating Systems Structuring Concept”. Communications of the ACM 17(10), pp. 549–557, October 1974.

    Google Scholar 

  15. Herlihy, M.; Wing, J.: “Linearizability: a correctness condition for concurrent objects”. ACM Transactions on Programming Languages and Systems 12(3), pp. 463–492, July 1990.

    Google Scholar 

  16. Papadimitriou, C.: “The serializability of concurrent database updates”. Journal of the ACM 26(4), pp. 631–653, October 1979.

    Google Scholar 

  17. Romanovsky, A. B.; Shturtz, I. V.: “Unplanned recovery for non-program objects”. Computer Systems Science and Engineering 8(2), pp. 72–79, April 1993.

    Google Scholar 

  18. Daynés, L.: “Implementation of automated fine-granularity locking in a persistent programming language”. Software — Practice & Experience 30(4), pp. 325–361, April 2000.

    Google Scholar 

  19. Romanovksy, A.; Kienzle, J.: “Action-Oriented Exception Handling in Cooperative and Competitive Object-Oriented Systems”. In Romanovsky, A.; Dony, C.; Knudsen, J. L.; Tripathi, A. (Eds.), Advances in Exception Handling Techniques, pp. 147–164, Lecture Notes in Computer Science 2022, Springer Verlag, 2001.

    Chapter  Google Scholar 

  20. Lampson, B. W.; Sturgis, H. E.: “Crash Recovery in a Distributed Data Storage System”. Technical report, XEROX Research, Palo Alto, June 1979.

    Google Scholar 

  21. Bernstein, P. A.; Goodman, N.: “Concurrency Control in Distributed Database Systems”. ACM Computing Surveys 13(2), pp. 185–221, June 1981.

    Google Scholar 

  22. Bernstein, P. A.; Hadzilacos, V.; Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.

    Google Scholar 

  23. Kung, H. T.; Robinson, J. T.: “On Optimistic Methods for Concurrency Control”. ACM Transactions on Database Systems 6(2), pp. 213–226, June 1981.

    Google Scholar 

  24. Ramamritham, K.; Chrysanthis, P. K.: “Advances in Concurrency Control and Transaction Processing”. Los Alamitos, California, 1997.

    Google Scholar 

  25. Liskov, B.: “Distributed Programming in Argus”. Communications of the ACM 31(3), pp. 300–312, March 1988.

    Google Scholar 

  26. Shrivastava, S. K.: “Lessons Learned from Building and Using the Arjuna Distributed Programming System”. In Birman, K.; Mattern, F.; Schiper, A. (Eds.), Theory and Practice in Distributed Systems, pp. 17–32, Lecture Notes in Computer Science 938, 1995.

    Chapter  Google Scholar 

  27. Guerraoui, R.; Capobianchi, R.; Lanusse, A.; Roux, P.: “Nesting Actions through Asynchronous Message Passing: the ACS Protocol”. In Madsen, O. L. (Ed.), 6th European Conference on Object-Oriented Programming (ECOOP’ 92), pp. 170–184, Utrecht, The Netherlands, June 1992, Lecture Notes in Computer Science 615, Springer Verlag.

    Chapter  Google Scholar 

  28. Patiño-Martinez, M.; Jiménez-Peris, R.; Arévalo, S.: “Integrating Groups and Transactions: A Fault-Tolerant Extension of Ada”. In Reliable Software Technologies-Ada-Europe’98, Uppsala, Sweden, June 8–12, 1998, pp. 78–89, Lecture Notes in Computer Science 1411, 1998.

    Chapter  Google Scholar 

  29. Atkinson, M. P.; Daynés, L.; Jordan, M. J.; Printezis, T.; Spence, S.: “An orthogonally persistent Java”. ACM SIGMOD Record 25(4), pp. 68–75, December 1996.

    Google Scholar 

  30. Daynès, L.: “Extensible Transaction Management in PJava”. In Proceedings of the First International Workshop on Persistence and Java, University of Glasgow, UK, September 1996.

    Google Scholar 

  31. Weihl, W. E.: “Local Atomicity Properties: Modular Concurrency Control for Abstract Data Types”. ACM Transactions on Programming Languages and Systems 11(2), pp. 249–283, April 1989.

    Google Scholar 

  32. Guerraoui, R.: “Atomic Object Composition”. In Tokoro, M.; Pareschi, R. (Eds.), 8th European Conference on Object-Oriented Programming (ECOOP’ 94), pp. 118–138, Bologna, Italy, June 1994, Lecture Notes in Computer Science 821, Springer Verlag.

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kienzle, J., Guerraoui, R. (2002). AOP: Does It Make Sense? The Case of Concurrency and Failures. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-47993-7_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43759-8

  • Online ISBN: 978-3-540-47993-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics