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

Full description

Bibliographic Details
Main Author: Benavides Navarro, Luis Daniel
Language:ENG
Published: Université de Nantes 2009
Subjects:
AOP
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