Using aspect-orientation to simplify concurrent programming
|
|||||||||||||||||||||||
ABSTRACTThe Java programming language offers several basic constructs for concurrent programming. Despite covering everything needed from a functional point of view, the constructs are difficult to use since they require a lot of infrastructural statements besides the real logic. This makes concurrent programming errorprone and difficult to reuse. It seems that abstractions are needed to ease the pain and to better support reusability.
This paper explores how to use and benefit from aspect-orientation (AO), particularly the AspectJ language, in this respect. AO promises a high potential for reuse due to a higher level of modularization since crosscutting concerns can better be modularized in aspects. This paper confirms higher reuse by presenting a collection of reusable aspects for solving specific problems in concurrent programming.
Having AspectJ-based implementations for recurring problems, this paper also summarizes some interesting experiences and takes the chance to present an industrial view on some criticisms of aspect-orientation.
AUTHORS
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Uwe D. Hohenstein | |||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Urs Gleim | |||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
|
1
|
Proc. of 2nd Int. Conf. on Aspect-Oriented Software Development, Boston 2003.
|
|
|
2
|
Ron Bodkin, Jason Furlong: Gathering Feedback on User Behaviour using AspectJ. In {CVK06}.
|
|
|
3
|
R. Bodkin: [email protected]: Performance monitoring with AspectJ. https://www.ibm.com/developerworks/java/library/j-aopwork10/
|
|
|
4
|
R. Bodkin: [email protected]: Next Steps with Aspects. http://www-128.ibm.com/developerworks/java/library/j-aopwork16
|
|
|
5
|
B. Burke: Implementing Middleware Using AOP. in Proc. 4th Conf. on Aspect-Oriented Software Development. AOSD 2005, Chicago, ACM Press
|
|
|
6
|
J. Bull, M. Westhead, M. Kambites, J. Obdrzálek: Towards OpenMP for Java. EWOMP 2000 workshop
|
|
|
7
|
||
|
8
|
M. Chapman, A. Vasseur, G. Kniesel (eds.): Proc. Of Industry Track 3rd Conf. on Aspect-Oriented Software Development, AOSD 2006, Bonn, ACM Press
|
|
| |
9
|
|
|
10
|
M. Danelutto, M. Pasin, M. Vanneschi, P. Dazzi, D. Laforenza, L. Presti: PAL: Exploiting Java Annotations for Parallelism. In: S. Gorlatch, M. Bubak, T. Priol (eds.): Achievements in European Research on Grid Systems. CoreGRID Integration Workshop 2006
|
|
| |
11
|
|
|
12
|
R. Filman, D. Friedman: Aspect-Oriented Programming is Quantification and Obliviousness. Workshop on Advanced Separation of Concerns, OOPSLA 2000
|
|
| |
13
|
Eduardo Figueiredo , Nelio Cacho , Claudio Sant'Anna , Mario Monteiro , Uira Kulesza , Alessandro Garcia , Sérgio Soares , Fabiano Ferrari , Safoora Khan , Fernando Castor Filho , Francisco Dantas, Evolving software product lines with aspects: an empirical study on design stability, Proceedings of the 30th international conference on Software engineering, May 10-18, 2008, Leipzig, Germany [doi>10.1145/1368088.1368124]
|
|
14
|
||
|
15
|
||
|
16
|
K. Govindraj, S. Narayanan et al.: On Using AOP for Application Performance Management. In {CVK06}
|
|
|
17
|
B. Goetz: Java Concurrency in Practice. Addison-Wesley 2007
|
|
| |
18
|
|
|
19
|
U. Hohenstein: Using Aspect-Orientation to Manage Database Statistics. In: {CVK06}
|
|
|
20
|
S. Hanenberg, R. Unland: Using and Reusing Aspects in AspectJ. In OOPSLA'01 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2001
|
|
|
21
|
S. Hanenberg and A. Schmidmeier: Idioms for Building Software Frameworks in AspectJ. In: AOSD'03 Workshop on Aspects, Components, and Patterns for Infrastructure Software, 2003
|
|
| |
22
|
Uwe Hohenstein , Regine Meunier , Christa Schwanninger, An aspect-oriented implementation of the EJB3.0 persistence concept, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.4-es, March 12-16, 2007, Vancouver, British Columbia, Canada [doi>10.1145/1233901.1233905]
|
|
23
|
||
|
24
|
R. Johnson: AOP in the wild: Killer applications and why AOP is perfect for the cloud. Invited talk at 9th Int. Conf. on AOSD 2010, France
|
|
|
25
|
A fine-grained parallel computation framework. http://javac.info/jsr166z
|
|
|
26
|
W. Joosen, F. Sanen, E. Truyen, Dissemination of AOSD expertise - support documentation. AOSD-Europe Project Deliverable No.: AOSD-Europe-KUL-8, Mar. 06
|
|
|
27
|
||
| |
28
|
|
|
29
|
G. Kiczales: Adopting AOP. In Proc. 4th Conf. on Aspect-Oriented Software Development; AOSD 2005, Chicago, ACM Press
|
|
|
30
|
R. Laddad: [email protected]: AOP and Metadata: A Perfect Match. https://www-128.ibm.com/developerworks/java/library/j-aopwork3
|
|
|
31
|
R. Laddad: AspectJ in Action: Practical Aspect-Oriented Programming (2nd ed.). Manning, Greenwich (2008)
|
|
|
32
|
||
| |
33
|
|
|
34
|
F. Munoz, B. Baudry, O. Barais: A classification of invasive patterns in AOP. In: 24th IEEE International Conference on Software Maintenance (ICSM'08), Beijing, China 2008.
|
|
|
35
|
K. Ostermann, M. Mezini, C. Bockisch: Expressive Pointcuts for Increased Modularity. In 19th European Conf. on Object-Oriented Programming (ECOOP05), Malaga (Spain) LNCS 3586
|
|
|
36
|
A. Przbylylek: What is Wrong With AOP? 5th Int. Conf. on Software and Data Technologies (ICSOFT10), Piraeus 2010
|
|
|
37
|
||
|
38
|
||
|
39
|
||
|
40
|
S. Soares, P. Borba: Implementing Modular and Reusable Aspect-Oriented Concurrency Control with AspectJ. In Brazilian Workshop on Aspect-Oriented Software Development (WASP 2005), Uberländia, Brazil 2005
|
|
|
41
|
||
|
42
|
S. Soares: An Aspect-Oriented Implementation Method. PhD thesis, Federal University of Pernambuco, Brazil 2004
|
|
| |
43
|
|
|
44
|
T. Tourwe, J. Brichau, K. Gybels: On the Existence of the AOSD-Evolution Paradox. In: Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT'03) at AOSD'03, Boston, Massachusetts
|
|
|
45
|
D. Wampler: Noninvasiveness and Aspect-Oriented Design: Lessons from Object-Oriented Design Principles. In: 6th International Conference on Aspect- Oriented Software Development (AOSD'07), Vancouver, Canada
|
|
|
46
|
D. Wiese, U. Hohenstein, R. Meunier: How to Convince Industry of Aspect-Orientation? 6th Int. Conf. on Aspect-Oriented Software Development, AOSD 2007, Vancouver, ACM Press
|
|
|
47
|
D. Wiese, R. Meunier: Large Scale Application of AOP in the Healthcare Domain: A Case Study. In 7th Int. Conf. on Aspect-Oriented Software Development, AOSD 2008, Brussels
|
|
| |
48
|
|
|
49
|
K. Yelick, L. Semenzato, G. Pike, C. Myamoto et al.: Titanium: A High-Performance Java Dialect. Concurrency: Practice and Experience. 10(11--13), 1998
|
CITED BY
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '11 Proceedings of the tenth international conference on Aspect-oriented software development companion table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| General Chairs | Paulo Borba Federal University of Pernambuco, Brazil | ||||||||||||||||||||||||||||||||||||||||||||||
| Program Chairs | Shigeru Chiba Tokyo Institute of Technology, Japan | ||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 29-40 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2011-03-21 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | Centro de Informatica - UFPE Centro de Informatica - UFPE | ||||||||||||||||||||||||||||||||||||||||||||||
| CNPq Conselho Nacional de Desenvolvimento Cientifico e Tecn | |||||||||||||||||||||||||||||||||||||||||||||||
| CAPES Coordençãao de Aperfeiçoamento de Pessoal de Nível Superior | |||||||||||||||||||||||||||||||||||||||||||||||
| FINEP Financiadora de Estudos e Projetos | |||||||||||||||||||||||||||||||||||||||||||||||
| FACEPE Fundacao de Amparo a Ciencia e Tecnologia do Estado de Pernambuco | |||||||||||||||||||||||||||||||||||||||||||||||
| PUC-Rio | |||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2011 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-4503-0606-5 doi>10.1145/1960314.1960324 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Core ideas | ||
| Modularity in continually evolving systems | ||
| Urjaswala Vora, Peeyush Chomal, Rahul Upadhyay, Vikram Khati | ||
| Pages: 1-2 | ||
| doi>10.1145/1960314.1960316 | ||
Full text: PDF
|
||
|
The design of a continually-evolving system deteriorates in proportion to the frequency of evolution as much as the complexity of evolution. Here we introduce a design paradigm, Temporal Control Flow Rule-based Architecture (TeCFRA), with a vision to ...
expand
|
||
| Portability as an aspect: rethinking modularity in mobile game development | ||
| Nan Niu, Vander Alves, Tanmay Bhowmik | ||
| Pages: 3-4 | ||
| doi>10.1145/1960314.1960317 | ||
Full text: PDF
|
||
|
This extended abstract overviews our modularity vision along a technical-organizational-ecosystem dimension. Our goal is to explore the benefits that modularity could provide to software vendors in the rapidly changing landscape of mobile game development. ...
expand
|
||
| SESSION: Industry track: keynote | ||
| Session details: Industry track: keynote | ||
| Kirk Knoernschild | ||
| doi>10.1145/3253048 | ||
| Modularity, agility, and architecture's paradox | ||
| Kirk Knoernschild | ||
| Pages: 5-6 | ||
| doi>10.1145/1960314.1960319 | ||
Full text: PDF
|
||
|
Attempts to architect more flexible software often results in the opposite - brittle software fraught with complexity. Something is missing. Complexity is the beast we must tame, and modularity is part of the answer. In this keynote, we'll examine the ...
expand
|
||
| SESSION: Industry track: session 1 | ||
| Session details: Industry track: session 1 | ||
| Flavia Rainone | ||
| doi>10.1145/3253049 | ||
| Experiences documenting and preserving software constraints using aspects | ||
| Roberto Silveira Silva Filho, François Bronsard, William M. Hasling | ||
| Pages: 7-18 | ||
| doi>10.1145/1960314.1960321 | ||
Full text: PDF
|
||
|
Software systems are increasingly being built as compositions of reusable artifacts (components, frameworks, toolkits, plug-ins, APIs, etc) that have non-trivial usage constraints in the form of interface contracts, underlying assumptions and design ...
expand
|
||
| ASystemC: an AOP extension for hardware description language | ||
| Yusuke Endoh | ||
| Pages: 19-28 | ||
| doi>10.1145/1960314.1960322 | ||
Full text: PDF
|
||
|
Hardware-design requirements are becoming increasingly complex. Accordingly, the hardware developer is also beginning to use modern programming languages instead of traditional hardware description languages. However, modularity of the current hardware ...
expand
|
||
| SESSION: Industry track: session 2 | ||
| Session details: Industry track: session 2 | ||
| Flavia Rainone | ||
| doi>10.1145/3253050 | ||
| Using aspect-orientation to simplify concurrent programming | ||
| Uwe D. Hohenstein, Urs Gleim | ||
| Pages: 29-40 | ||
| doi>10.1145/1960314.1960324 | ||
Full text: PDF
|
||
|
The Java programming language offers several basic constructs for concurrent programming. Despite covering everything needed from a functional point of view, the constructs are difficult to use since they require a lot of infrastructural statements besides ...
expand
|
||
| Flexible, dynamic injection of structured advice using byteman | ||
| Andrew E. Dinn | ||
| Pages: 41-50 | ||
| doi>10.1145/1960314.1960325 | ||
Full text: PDF
|
||
|
Byteman is a flexible, dynamic advice injection tool for Java. It uses an Event Condition Action rule script language to structure placement and control execution of injected Java code fragments. The Byteman agent can be loaded at application startup ...
expand
|
||
| TUTORIAL SESSION: Tutorials | ||
| Refactoring at the core of agile software development | ||
| Joseph Yoder | ||
| Pages: 51-52 | ||
| doi>10.1145/1960314.1960327 | ||
Full text: PDF
|
||
|
Refactoring code to make it more maintainable and extendable has become a more mainstream practice. Refactoring is the process of changing software without altering its external behavior. It is done in such as way to improve the structure of the code ...
expand
|
||
| The theory and practice of modern modeling language design for model-based software engineering | ||
| Bran V. Selic | ||
| Pages: 53-54 | ||
| doi>10.1145/1960314.1960328 | ||
Full text: PDF
|
||
|
This is a half-day tutorial dealing with the relatively new field of modeling language design.
expand
|
||
| Understanding programming technologies by analogy, examples, and abstraction: extended abstract (AOSD'11 tutorial) | ||
| Ralf Laemmel | ||
| Pages: 55-56 | ||
| doi>10.1145/1960314.1960329 | ||
Full text: PDF
|
||
|
We have a problem: there is a stunning number of programming technologies out there. There are silos of knowledge around these technologies and technical spaces. In fact, it is not even clear that this abundance can still be approached by computer scientists. ...
expand
|
||
| Rulemakers and toolmakers: adaptive object-models as an agile division of labor | ||
| Joseph Yoder | ||
| Pages: 57-58 | ||
| doi>10.1145/1960314.1960330 | ||
Full text: PDF
|
||
|
Agile practices liberate us from the straightjackets of top-down design. But, the ease with which requirements can change encou-rages users to overwhelm us with requests for features. The result: Featuritis, which promotes hasty construction of poorly ...
expand
|
||
| The aspect-oriented user requirements notation: aspects, goals, and scenarios | ||
| Gunter Mussbacher | ||
| Pages: 59-60 | ||
| doi>10.1145/1960314.1960331 | ||
Full text: PDF
|
||
|
This tutorial discusses aspect-oriented requirements engineering, focusing on scenario-based and goal-oriented requirements models with the Aspect-oriented User Requirements Notation (AoURN). AoURN is an extension of the User Requirements Notation (URN), ...
expand
|
||
| Modularizing crosscutting concerns with Ptolemy | ||
| Hridesh Rajan, Gary T. Leavens, Robert Dyer, Mehdi Bagherzadeh | ||
| Pages: 61-62 | ||
| doi>10.1145/1960314.1960332 | ||
Full text: PDF
|
||
|
This tutorial will provide an introduction to Ptolemy. Ptolemy is a programming language whose goals are to improve a software engineer's ability to separate conceptual concerns, while preserving encapsulation of object-oriented code and the ability ...
expand
|
||
| DEMONSTRATION SESSION: Demonstrations: session 1: demo track | ||
| Session details: Demonstrations: session 1: demo track | ||
| Joño Araújo | ||
| doi>10.1145/3253051 | ||
| Analyzing architectural conformance of layered aspect-oriented systems with ArchE Meter | ||
| Juliana Saraiva, Sérgio Soares, Fernando Castor | ||
| Pages: 63-64 | ||
| doi>10.1145/1960314.1960334 | ||
Full text: PDF
|
||
|
We present ArchE Meter, a tool that supports developers in understanding how the implementation of an aspect-oriented system conforms to its intended layered software architecture. Based on the principles of layered software architectures, ArchE Meter ...
expand
|
||
| Hist-Inspect: a tool for history-sensitive detection of code smells | ||
| Leandra Mara, Gustavo Honorato, Francisco Dantas Medeiros, Alessandro Garcia, Carlos Lucena | ||
| Pages: 65-66 | ||
| doi>10.1145/1960314.1960335 | ||
Full text: PDF
|
||
|
Hist-Inspect is a tool that allows the specification and evaluation of different configurations for detection strategies by means of a domain-specific language. The tool enables to easily adjust thresholds and combination of software metrics as well ...
expand
|
||
| Event-driven programming with EScala | ||
| Lucas Satabin, Mira Mezini | ||
| Pages: 67-68 | ||
| doi>10.1145/1960314.1960336 | ||
Full text: PDF
|
||
|
EScala is an extension of Scala with support for declarative event-driven programming. It provides mechanisms for declarative definition of events and employs aspect-oriented techniques for exposing implicitly existing events, which reduces the need ...
expand
|
||
| DEMONSTRATION SESSION: Demonstrations: session 2: demo track | ||
| Session details: Demonstrations: session 2: demo track | ||
| Nélio Cacho | ||
| doi>10.1145/3253052 | ||
| GenArch+: an extensible infrastructure for building framework-based software product lines | ||
| Elder Cirilo, Uirá Kulesza, Alessandro Garcia, Carlos Lucena | ||
| Pages: 69-70 | ||
| doi>10.1145/1960314.1960338 | ||
Full text: PDF
|
||
|
Software product line (SPL) engineering has been focused on tailor single products without programming new completion code. Systematic reuse as configuration potentially lead to significant gains but requires the configuration knowledge to be well conducted. ...
expand
|
||
| ReqSys: an eclipse plug-in for PL-AOVGraph and feature model mapping | ||
| Lidiane Oliveira dos Santos, Thais Vasconcelos Batista, Lyrene Fernandes da Silva | ||
| Pages: 71-72 | ||
| doi>10.1145/1960314.1960339 | ||
Full text: PDF
|
||
|
In this paper, we describe the features of the ReqSys tool, a tool to verify and map PL-AOVgraph models into feature models.
expand
|
||
| Proteum/AJ: a mutation system for AspectJ programs | ||
| Fabiano Cutigi Ferrari, Elisa Yumi Nakagawa, José Carlos Maldonado, Awais Rashid | ||
| Pages: 73-74 | ||
| doi>10.1145/1960314.1960340 | ||
Full text: PDF
|
||
|
Aspect-Oriented Programming (AOP) has introduced a complementary set of mechanisms which enhance the modularisation of crosscutting concerns. However, such mechanisms represent new potential sources of faults that may be systematically tackled with mutation ...
expand
|
||
| SESSION: Student research competition | ||
| Self-refining aspects for dynamic program analysis | ||
| Danilo Ansaloni | ||
| Pages: 75-76 | ||
| doi>10.1145/1960314.1960342 | ||
Full text: PDF
|
||
|
Accurate and efficient dynamic analysis tools are needed for understanding and improving performance of programs. However, such tools often produce perturbed and misleading results, since the inserted analysis code may interfere with runtime optimizations ...
expand
|
||
| Revealing architecturally-relevant flaws in aspectual decompositions | ||
| Isela Macia Bertran | ||
| Pages: 77-78 | ||
| doi>10.1145/1960314.1960343 | ||
Full text: PDF
|
||
|
Although aspect-oriented programming (AOP) aims to improve the software modularity, developers can unwittingly introduce code smells in their programs. Even though a few code smells for AOP have been reported in the literature, there is no evidence whether ...
expand
|
||
| Analyzing the effort on composing design models in industrial case studies | ||
| Kleinner Farias | ||
| Pages: 79-80 | ||
| doi>10.1145/1960314.1960344 | ||
Full text: PDF
|
||
|
The contributions of this research are briefly described as follows: an evaluation framework for model composition effort; practical knowledge about the values that the composition effort variables assume in realistic composition scenarios, i.e., the ...
expand
|
||
| Avoiding confusion with exception handling in aspect-oriented programming | ||
| Ismael Figueroa | ||
| Pages: 81-82 | ||
| doi>10.1145/1960314.1960345 | ||
Full text: PDF
|
||
| Towards a proper aspect-oriented model for distributed systems | ||
| Ismael Mejía | ||
| Pages: 83-84 | ||
| doi>10.1145/1960314.1960346 | ||
Full text: PDF
|
||
|
The adoption of Aspect Oriented Programming (AOP), and in general, of more sophisticated composition models is a recent trend in software engineering to address the problem of the correct modularization of cross-cutting concerns. However, most of these ...
expand
|
||
| On the proactive identification of mistakes on concern mapping tasks | ||
| Camila Nunes | ||
| Pages: 85-86 | ||
| doi>10.1145/1960314.1960347 | ||
Full text: PDF
|
||
| Exploiting modular access control for advanced policies | ||
| Rodolfo Toledo | ||
| Pages: 87-88 | ||
| doi>10.1145/1960314.1960348 | ||
Full text: PDF
|
||
|
In previous work we successfully modularized the Java access control architecture. The approach consists in expressing access control using restriction aspects scoped with an appropriate scoping strategy. In this work we briefly explore how restriction ...
expand
|
||