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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
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.
Gray, J.; Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, San Mateo, California, 1993.
Guerraoui, R. “AOP = SMP (Structured Macro Programming)”, Panel at the 14th European Conference on Object-Oriented Programming (ECOOP’ 2000), Cannes, France, June 2000.
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.
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.
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.
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.
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.
Lee, P. A.; Anderson, T.: “Fault Tolerance-Principles and Practice”. In Dependable Computing and Fault-Tolerant Systems, Springer Verlag, 2 ed., 1990.
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.
Horning, J. J.; Randell, B.: “Process Structuring”. ACM Computing Surveys 5(1), pp. 5–30, March 1973.
Brinch Hansen, P.: Operating System Principles. Prentice Hall, 1973.
Hoare, C. A. R.: “Monitors: An Operating Systems Structuring Concept”. Communications of the ACM 17(10), pp. 549–557, October 1974.
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.
Papadimitriou, C.: “The serializability of concurrent database updates”. Journal of the ACM 26(4), pp. 631–653, October 1979.
Romanovsky, A. B.; Shturtz, I. V.: “Unplanned recovery for non-program objects”. Computer Systems Science and Engineering 8(2), pp. 72–79, April 1993.
Daynés, L.: “Implementation of automated fine-granularity locking in a persistent programming language”. Software — Practice & Experience 30(4), pp. 325–361, April 2000.
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.
Lampson, B. W.; Sturgis, H. E.: “Crash Recovery in a Distributed Data Storage System”. Technical report, XEROX Research, Palo Alto, June 1979.
Bernstein, P. A.; Goodman, N.: “Concurrency Control in Distributed Database Systems”. ACM Computing Surveys 13(2), pp. 185–221, June 1981.
Bernstein, P. A.; Hadzilacos, V.; Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
Kung, H. T.; Robinson, J. T.: “On Optimistic Methods for Concurrency Control”. ACM Transactions on Database Systems 6(2), pp. 213–226, June 1981.
Ramamritham, K.; Chrysanthis, P. K.: “Advances in Concurrency Control and Transaction Processing”. Los Alamitos, California, 1997.
Liskov, B.: “Distributed Programming in Argus”. Communications of the ACM 31(3), pp. 300–312, March 1988.
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.
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.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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