From Endogenous to Exogenous Coordination Using Aspect-Oriented Programming

  • Sirio Capizzi
  • Riccardo Solmi
  • Gianluigi Zavattaro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2949)


One of the main goals of coordination models and languages is to support a clear and distinct separation between computation and coordination in applications based on cooperating components. Nevertheless, this separation is not always reflected at the level of the source code. This is the case for the so-called endogenous coordination models and languages (see e.g. Linda) that provide coordination primitives that must be incorporated within a computational language. In this way, there is no piece of source code identifiable as the coordination module, thus losing the advantages of a distinct design and development.

In this paper, we investigate aspect-oriented programming as a technology for supporting the modularization of the coordination part even if an endogenous coordination model is considered. More precisely, we propose to encapsulate the coordination actions inside aspects while describing the single points of the computational part in which coordination comes into play as join points. Following this approach, we show that we can rewrite a distributed application, moving from an underlying endogenous data-driven to an endogenous event-driven coordination model, simply by replacing the coordination aspects and leaving the computational code unchanged.


Coordination Model Expression Tree Tuple Space Coordination Part Coordination Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Arbab, F.: What Do You Mean, Coordination?. In: The March 1998 Issue of the Bulletin of the Dutch Association for Theoretical Computer Science (NVTI), Available at
  2. 2.
    Arbab, F., Herman, I., Spilling, P.: An Overview of Manifold and its Implementation. Concurrency - Practice and Experience 5(1), 23–70 (1993)CrossRefGoogle Scholar
  3. 3.
    Bettini, L., Bono, V., Venneri, B.: Coordinating Mobile Object-Oriented Code. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 56–71. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  4. 4.
    Bracha, G., Cook, W.: Mix-in Based Inheritance. In: Proc. of of the Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA 1990), pp. 303–311. ACM Press, New York (1990)Google Scholar
  5. 5.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley Professional Computing Series (1994)Google Scholar
  6. 6.
    Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)CrossRefzbMATHGoogle Scholar
  7. 7.
    Gelernter, D., Carriero, N.: Coordination Languages and Their Significance. Communications of the ACM 35(2), 97–107 (1992)CrossRefGoogle Scholar
  8. 8.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  9. 9.
    Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Framework for AOP in Java. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 1. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  10. 10.
    Popovici, A., Gross, T., Alonso, G.: Dynaminc Weaving for Aspect Oriented Programming. In: Proc. of em1st International Conference on Aspect-Oriented Software Development (AOSD 2002), Enschede, The Netherlands (April 2002)Google Scholar
  11. 11.
    Roman, G.-C., McCann, P.J., Plun, J.Y.: Mobile UNITY: reasoning and specification in mobile computing. ACM Transactions on Software Engineering and Methodology 6(3), 250–282 (1997)CrossRefGoogle Scholar
  12. 12.
    Wyckoff, P., McLaughry, S., Lehman, T., Ford, D.: T spaces. IBM Systems Journal 37(3), 454–474 (1998)CrossRefGoogle Scholar
  13. 13.
    Waldo, J., et al.: Javaspace specification - 1.0. Technical report, Sun Microsystems (March 1998)Google Scholar
  14. 14.
    Hapner, M., et al.: Java Message Service specification - 1.1. Technical report, Sun Microsystems (April 2002)Google Scholar
  15. 15.
    Xerox Corporation. The AspectJ Programming Guide (1998-2000),

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Sirio Capizzi
    • 1
  • Riccardo Solmi
    • 1
  • Gianluigi Zavattaro
    • 1
  1. 1.Dipartimento di Scienze dell’InformazioneUniversità di BolognaBolognaItaly

Personalised recommendations