1 / 25

Structuring Adaptive Applications using AspectJ and AOM

Structuring Adaptive Applications using AspectJ and AOM. Ayla Dantas and Paulo Borba {add, phmb}@cin.ufpe.br. Centro de Informática - UFPE. Motivation. “A program is called adaptive if it changes its behavior automatically according to its context.” WAAS’95.

vilina
Download Presentation

Structuring Adaptive Applications using AspectJ and AOM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Structuring Adaptive Applications using AspectJ and AOM Ayla Dantas and Paulo Borba {add, phmb}@cin.ufpe.br Centro de Informática - UFPE

  2. Motivation “A program is called adaptiveif 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. Problems… Adaptability may involve many system elements… … and several aspects Centro de Informática - UFPE

  4. 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. 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. 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 • pointcut showingScreen(): • execution (publicvoid • 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. 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. Scenario II Centro de Informática - UFPE

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

  19. 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. 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. 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. 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, phmb}@cin.ufpe.br Centro de Informática - UFPE

More Related