Distributed Aspects: better separation of crosscutting concerns in distributed software systems
This thesis shows that abstractions provided by current mainstream Object Oriented (OO) languages are not enough to address the modularization of distributed and concurrent algo- rithms, protocols, or architectures. In particular, we show that code implementing concurrent and distributed algorithms...
Main Author: | |
---|---|
Language: | ENG |
Published: |
Université de Nantes
2009
|
Subjects: | |
Online Access: | http://tel.archives-ouvertes.fr/tel-00484760 http://tel.archives-ouvertes.fr/docs/00/48/47/60/PDF/PHDThesisLuisDanielBenavidesNavarro-DistributedAspects-07012009.pdf |
id |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-00484760 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-004847602013-10-15T03:02:33Z http://tel.archives-ouvertes.fr/tel-00484760 http://tel.archives-ouvertes.fr/docs/00/48/47/60/PDF/PHDThesisLuisDanielBenavidesNavarro-DistributedAspects-07012009.pdf Distributed Aspects: better separation of crosscutting concerns in distributed software systems Benavides Navarro, Luis Daniel [INFO:INFO_SE] Computer Science/Software Engineering distributed aspects AOP distributed programming This thesis shows that abstractions provided by current mainstream Object Oriented (OO) languages are not enough to address the modularization of distributed and concurrent algo- rithms, protocols, or architectures. In particular, we show that code implementing concurrent and distributed algorithms is scattered and tangled in the main implementation of JBoss Cache, a real industrial middleware application. We also show that not only code is tangled, but also conceptual algorithms are hidden behind object-based structures (i.e., they are not visible in the code). Additionally, we show that such code is resilient to modularization. Thus, we show that several cycles of re-engineering (we study the evolution of three different version of JBoss Cache) using the same set of OO abstractions do not improve on the modularization of distributed and concurrent code. From these findings we propose a novel Aspect Oriented programming language with explicit support for distribution and concurrency (AWED). The language uses aspects as main abstractions and propose a model for distributed aspects and remote pointcuts, extending sequential approaches with support for regular sequences of distributed events. The language also proposes advanced support for the manipulation of groups of host, and the fine-grained deterministic ordering of distributed events. To evaluate the proposal we perform several experiments in different domains: refactoring and evolution of replicated caches, development of automatic toll systems, and debugging and testing of distributed applications. Finally, using this general model for distribution we provide two additional contributions. First, we introduce Invasive Patterns, an extension to traditional communication patterns for distributed applications. Invasive Patterns present an aspect-based language to express protocols over distributed topologies considering different coordination strategies (Architec- tural programming). The implementation of this approach is leveraged by the distributed features of AWED and is realized by means of a transformation into it. Second, we add the deterministic manipulation of distributed messages to our model by means of causally ordered protocols. 2009-01-19 ENG PhD thesis Université de Nantes |
collection |
NDLTD |
language |
ENG |
sources |
NDLTD |
topic |
[INFO:INFO_SE] Computer Science/Software Engineering distributed aspects AOP distributed programming |
spellingShingle |
[INFO:INFO_SE] Computer Science/Software Engineering distributed aspects AOP distributed programming Benavides Navarro, Luis Daniel Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
description |
This thesis shows that abstractions provided by current mainstream Object Oriented (OO) languages are not enough to address the modularization of distributed and concurrent algo- rithms, protocols, or architectures. In particular, we show that code implementing concurrent and distributed algorithms is scattered and tangled in the main implementation of JBoss Cache, a real industrial middleware application. We also show that not only code is tangled, but also conceptual algorithms are hidden behind object-based structures (i.e., they are not visible in the code). Additionally, we show that such code is resilient to modularization. Thus, we show that several cycles of re-engineering (we study the evolution of three different version of JBoss Cache) using the same set of OO abstractions do not improve on the modularization of distributed and concurrent code. From these findings we propose a novel Aspect Oriented programming language with explicit support for distribution and concurrency (AWED). The language uses aspects as main abstractions and propose a model for distributed aspects and remote pointcuts, extending sequential approaches with support for regular sequences of distributed events. The language also proposes advanced support for the manipulation of groups of host, and the fine-grained deterministic ordering of distributed events. To evaluate the proposal we perform several experiments in different domains: refactoring and evolution of replicated caches, development of automatic toll systems, and debugging and testing of distributed applications. Finally, using this general model for distribution we provide two additional contributions. First, we introduce Invasive Patterns, an extension to traditional communication patterns for distributed applications. Invasive Patterns present an aspect-based language to express protocols over distributed topologies considering different coordination strategies (Architec- tural programming). The implementation of this approach is leveraged by the distributed features of AWED and is realized by means of a transformation into it. Second, we add the deterministic manipulation of distributed messages to our model by means of causally ordered protocols. |
author |
Benavides Navarro, Luis Daniel |
author_facet |
Benavides Navarro, Luis Daniel |
author_sort |
Benavides Navarro, Luis Daniel |
title |
Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
title_short |
Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
title_full |
Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
title_fullStr |
Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
title_full_unstemmed |
Distributed Aspects: better separation of crosscutting concerns in distributed software systems |
title_sort |
distributed aspects: better separation of crosscutting concerns in distributed software systems |
publisher |
Université de Nantes |
publishDate |
2009 |
url |
http://tel.archives-ouvertes.fr/tel-00484760 http://tel.archives-ouvertes.fr/docs/00/48/47/60/PDF/PHDThesisLuisDanielBenavidesNavarro-DistributedAspects-07012009.pdf |
work_keys_str_mv |
AT benavidesnavarroluisdaniel distributedaspectsbetterseparationofcrosscuttingconcernsindistributedsoftwaresystems |
_version_ |
1716604321796194304 |