Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structuring Adaptive Applications using AspectJ and AOM

Similar presentations


Presentation on theme: "Structuring Adaptive Applications using AspectJ and AOM"— Presentation transcript:

1 Structuring Adaptive Applications using AspectJ and AOM
Ayla Dantas and Paulo Borba {add, Centro de Informática - UFPE

2 Motivation “A program is called adaptive if it
changes its behavior automatically according to its context.” WAAS’95 “The shift toward ubiquitous computing poses multiple novel technical, social, and organizational challenges, which include analyzing new families of nonfunctional requirements (such as configurability and adaptability).” CACM Dec 02 Centro de Informática - UFPE

3 Centro de Informática - UFPE
Problems… Adaptability may involve many system elements… … and several aspects Centro de Informática - UFPE

4 Centro de Informática - UFPE
Dictionary Example Basic Functionalities Centro de Informática - UFPE

5 Adaptability use cases
Centro de Informática - UFPE

6 Code scattering and tangling
Centro de Informática - UFPE

7 Centro de Informática - UFPE
How? How can we structure adaptive applications separating concerns and with a high degree of flexibility? Using AOP and AOM Centro de Informática - UFPE

8 Centro de Informática - UFPE
Using AOP AOP is a technology intended to provide clear separation of concerns Particular execution points (join points) can be identified using AOP Actions can be taken at those points, and may be defined in a modular unit of crosscutting implementation (aspect) Centro de Informática - UFPE

9 AspectJ Language pointcut showingScreen(): execution (public void
showScreen(byte)) ; before(): showingScreen(){ System.out.println( "A screen will be shown"); } public static final byte A. REGISTRATION_SCREEN=-3; Advice Inter-type declarations Centro de Informática - UFPE

10 Adaptive behavior with AspectJ
Centro de Informática - UFPE

11 Customizing using Aspects
Centro de Informática - UFPE

12 And for the dynamic adaptations…
Use Adaptive Object Models Centro de Informática - UFPE

13 Centro de Informática - UFPE
AOM Use Application Metadata Application behavior or characteristic represented as instances of EntityTypes, Entities, PropertyTypes, Properties and StrategyObject Centro de Informática - UFPE

14 Providing Dynamic Adaptability
Obtain AOM information, interpret it into application new behavior and change the application using Aspects Prepare metadata (e.g. XML) representing dynamic application behavior Make this information available Centro de Informática - UFPE

15 AdapPE Pattern Overview
Core Application functionalities Crosscut the application changing its behavior Monitors the context Adaptability implementation to be plugged to the application Provides data for dynamic adaptations Centro de Informática - UFPE

16 AdapPE Dynamics: Scenario I
Centro de Informática - UFPE

17 Centro de Informática - UFPE
Scenario II Centro de Informática - UFPE

18 AdapPE Example: J2ME Dictionary
Centro de Informática - UFPE

19 Centro de Informática - UFPE
Adaptability Aspects Customization Screens Internationalization Resources Monitoring Centro de Informática - UFPE

20 Interaction Between Pattern Elements
Centro de Informática - UFPE

21 And what about AOM and patterns?
Most AspectJ actions can be replaced by the Decorator(Wrapper) or the Adapter patterns Sometimes, a lot of refactoring is necessary in order to compose concerns A pure OO solution can lead to redudancy if we want flexibility As the number of adaptive concerns increase, in order to combine concerns, the system complexity will increase The code size (LOC) is bigger than for an AspectJ solution Centro de Informática - UFPE

22 Centro de Informática - UFPE
However… The use of AOP requires learning a new language, but in the case of AspectJ, just some new constructions as it is an extension for Java. In our experiment, the solution using aspects generates an executable file which is 16% bigger than a pure OO solution using GoF patterns. The execution time is sometimes bigger too (12.53% for the most used method) Centro de Informática - UFPE

23 Centro de Informática - UFPE
Conclusions We have good modularization with AspectJ Pure OO solutions generally require more changes, and can lead to complex systems AspectJ increases the bytecode size, but it is an acceptable increase Flexibility x Code Size The use of auxiliary classes is important Centro de Informática - UFPE

24 Centro de Informática - UFPE
Conclusions The necessity of refactoring still exists Aspects reuse can be explored AOM helps in providing dynamic adaptations J2ME and AspectJ Applicability for other platforms Centro de Informática - UFPE

25 Structuring Adaptive Applications using AspectJ and AOM
Ayla Dantas and Paulo Borba {add, Centro de Informática - UFPE


Download ppt "Structuring Adaptive Applications using AspectJ and AOM"

Similar presentations


Ads by Google