Table of Contents

Realizing Temporal Business Rules using JAsCo stateful aspects

Advisor: Maria Agustina Cibran
Promotor: Viviane Jonckers

Behoort tot Thesis and/or Apprenticeship Proposals 2005-2006

Context

Many object-oriented software applications contain implicit business rules. Although there exist many approaches that advocate the separation of rules, the rules’ connections still crosscut the core application functionality, which impedes reuse, either anticipated or not [1] [2] [3] [4]. Thus, in that previous work carried out at SSEL, Aspect-Oriented Programming [5] is successfully used to encapsulate the business rule connections. Moreover, ultimately business rules are implemented in a programming language, which decreases understandability and accessibility by domain experts. A high-level domain model for representing domain concepts, business rules about these concepts, and connections of business rules to the core application in terms of these concepts is proposed in [6]. AOP is used to realize the implementation of these high-level domain model and high-level business rules.

Among all the different kinds of business rules, we are particularly interested in temporal rules. We consider a rule to be temporal when either its condition, its action or the event that denotes the rule’s application time requires temporal information. The following examples of temporal business rules are taken from the context of an adaptive web application that incorporates data mining strategies in order to analyze the purchasing behavior of the customers and allow personalization [7]:

If the customer browses the promotions as his/her first action the customer is high promotion-prone

If the customer browses first either the books, the music or the videos and only then he/she accesses the promotions then customer is medium promotion-prone

These examples identify the situation where certain behaviors have to occur in a certain sequence in order to trigger the action of the rule. The dynamic AOP language JAsCo [8] offers support for stateful aspects [7], which allow aspects to be triggered on a protocol of expected pointcuts. Thus, stateful aspects appear to be a very interesting technology for implementing temporal rules.

Stage

The stage consists of three subtasks:

  1. Study JAsCo and, in particular, stateful aspects technology in JAsCo.
  2. Explore the use of stateful aspects to implement temporal rules and distill solutions for each different kind of temporal rule. The student will use as a starting point a categorization of temporal rules already provided by the advisor.
  3. (Semi-)automate the generation of the identified solutions in Eclipse [9] Wizards. Some Eclipse wizards were already developed at SSEL in order to generate the JAsCo aspects that encapsulate the business rules’ connection [10]. The student will extend/reuse these existing wizards in order to (semi-) automate the generation of the temporal rules and their connection.

Thesis

The wizards developed during the stage will give the student a good idea of how much can be automated in the generation of the temporal rules and their connection with a core application. However, these wizards are very tightly coupled with the concrete implementation where the rules are integrated; for instance, a specific method in the core application has to be pointed out in the wizards to denote the moment when to trigger the rules. One of the goals of this research is to specify the rules and their connection as independent as possible from a concrete core application, enhancing reusability of the business logic. At SSEL, research is being carried out to define a domain model and high-level BR language in terms of that model that allows the rules to be defined independently of implementation details [6].

The objective of the thesis is to investigate how to extend the current BR language in order to support temporal rules. In order to do this, the student will investigate which kinds of temporal features are needed in the language to express the kinds of temporal rules analyzed during the stage and propose a BR language extension. After these features are identified, the current implementation of the BR language and domain model will be extended to incorporate these extensions.

Requirements

Referenties

[1] M. A. Cibrán, M. D'Hondt and V. Jonckers, “Aspect-Oriented Programming for Connecting Business Rules”, Proceedings of BIS International Conference, Colorado Springs, USA, June 2003.

[2] M. A. Cibrán, M. D'Hondt, D. Suvee, W. Vanderperren and V. Jonckers, “JAsCo for Linking Business Rules to Object-Oriented Software”, Proceedings of CSITeA International Conference, Rio de Janeiro, Brazil, juin 2003.

[3] M. A. Cibrán, D. Suvee, M. D'Hondt, W. Vanderperren and V. Jonckers, « Integrating Rules with Object-Oriented Software Applications using Aspect-Oriented Programming », Proceedings of ASSE’04, Argentine Conference on Computer Science and Operational Research, Córdoba, Argentina, 2004.

[4] M. D'Hondt and V. Jonckers, “Hybrid Aspects for Weaving Object-Oriented Functionality and Rule-Based Knowledge”, Lancaster, UK, mars 2004.

[5] Aspect-Oriented Software Development website: http://www.aosd.net

[6] M. A. Cibrán and M. D'Hondt, “Mapping hig-level business rules to and through aspects”, 2ème Journée Francophone sur le Développement de Logiciels Par Aspects (JFDLPA 2005), September 2005, Lille, France (under evaluation)

[7] W. Vanderperren , D. Suvee, M. A. Cibrán and B. De Fraine, “Stateful Aspects in JAsCo”, Software Composition Workshop (LNCS), ETAPS 2005, Edinburgh, Scotland, April 2005.

[8] JAsCo website: http://ssel.vub.ac.be/jasco

[9] Eclipse website: http://www.eclipse.org

[10] J. Elsocht, “Wizard and code generation support for linking Business Rules to Object-Oriented applications using AOP”, Master’s thesis, Vrije Universiteit Brussel, Belgium, 2004.