Section 29.4. EVALUATION OF THE ASPECT-ORIENTED APPROACH


29.4. EVALUATION OF THE ASPECT-ORIENTED APPROACH

The advantages and disadvantages of the aspect-oriented approach can be discussed by comparing the aspect-oriented solution discussed in Section 29.3 with the non-aspect-oriented approach described in Section 29.2.

The use of AOP to modularize the instance adaptation approach makes it possible to customize it to specific needs as changes are localized to the aspect. It also makes it possible to switch to an entirely new instance adaptation approach by replacing the existing aspect. Such changes are expensive, if at all possible, in the non-AO approach, as the instance adaptation approach is tangled with several other DBMS-level concerns. In case of the SADES implementation, all the instance adaptation customizations can be carried out at runtime, as the aspect weaver for the language supports dynamic weaving. This removes the need to bring the system offline to incorporate changes; in SADES, all evolution operations can also be carried out dynamically. A simulation-based approach using error handlers and a conversion-based approach employing update/backdate methods has been successfully implemented in SADES [32]. Encapsulation of the instance adaptation approach also opens up the possibility of multiple instance adaptation strategies coexisting in the system to support context-sensitive adaptation. These concepts are being explored in the AspOEv framework [11, 29] whose instance adaptation mechanism extends the one implemented in SADES.

In the case of the AspOEv framework, effective separation between the schema implementation model and the schema evolution model coupled with the use of aspects makes it possible to customize the evolution model employed by the system. This is a significant advantage, as schema evolution models in object-oriented database systems have traditionally been "fixed," resulting in organizations having to fit their evolution needs around the model and not vice-versa.

In a fashion similar to the instance adaptation approach, the use of AOP localizes changes to the instance adaptation routines. Furthermore, the impact of any changes to the instance adaptation approach is limited to the aspects encapsulating the instance adaptation routines. This makes customization cost-effective. This is in direct contrast with the non-AO approach, where changes to the instance adaptation approach can trigger the need for changes to many or all class versions in the system.

The use of AOP also results in cost-effective changes when manipulating relationships among schema entities, for example, inheritance or version derivation relationships between class versions. In SADES, this has resulted in significant reduction in change impactat times as high as a fourfold reduction [31]. The use of composition filters to modularize relationships also improves the extensibility of the system, as introduction of new metaclasses requires only introduction of new relationship objects. This extensibility has been exploited in SADES to seamlessly introduce a new metaclass Aspect that defines the structure of aspects specified in the SADES aspect language. This makes it possible to store the persistent aspects encapsulating the instance adaptation routines in the database.

The reliance on dynamic weaving and delegation-based approaches in the AO solution results in performance overhead at runtime. In particular, dynamic weaving of instance adaptation routines in SADES each time an incompatibility is encountered might be perceived to increase the maintenance overhead instead of reducing it. However, this is not the case. The overhead associated with dynamic weaving pays off in terms of localized changes and automatic propagation of changes through the weaver. Moreover, as discussed in [27], the SADES weaver uses on-demand and selective weaving to reduce the weaving overhead. An aspect is rewoven only if it has not been modified since the last time it was woven. This need to reweave is identified by a simple timestamp check.

In summary, the use of AOP to modularize crosscutting concerns in an object-oriented database system offers significant benefits in terms of improving the customizability, evolvability, and extensibility of the system and opens up possibilities for dynamic context-sensitive adaptation of the system behavior. However, the composition overhead, especially in the case of dynamic weaving and delegation, can be significant. Nevertheless, this can be reduced by applying code optimizations, for instance, using linguistic reflection [15], and improving weaver efficiency through on-demand, selective weaving [27].



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net