The Role of Software Architecture in Configuring Middleware: The ScalAgent Experience

  • Vivien Quéma
  • Emmanuel Cecchet
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3144)


Middleware has emerged as an important architectural component in modern distributed systems. It provides many solutions allowing to hide the management of the distribution of services and computations to the developers. However, its configuration becomes more and more complex, since it must fit application requirements, while adapting to the underlying system capacities. In this paper we propose a customization tool to automate the configuration of the ScalAgent message-oriented middleware. The tool uses the application description (into an Architecture Description Language) to determine and configure the set of middleware modules required to ensure non-functional properties required by the application. It is controlled by an algorithm that tries to minimize some non-functional property management costs. Our performance measurements clearly show the customization advantages.


Middleware architecture description languages configuration components 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Astley, M., Sturman, D., Agha, G.: Customizable Middleware for Modular Distributed Software. Communications of the ACM 44(5) (May 2001)Google Scholar
  2. 2.
    Kon, F., Costa, F., Blair, G., Campbell, R.H.: The Case for Reflective Middleware. Communications of the ACM 45(6), 33–38 (2002)CrossRefGoogle Scholar
  3. 3.
    Clarke, M., Blair, G., Coulson, G., Parlavantzas, N.: An Efficient Component Model for the Construction of Adaptive Middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 160–178. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    Narasimhan, P., Moser, L., Melliar-Smith, P.: Eternal – A Component-based Framework for Transparent Fault-Tolerant CORBA. Software Practice and Experience, Theme Issue on Enterprise Frameworks 32(8), 771–788 (2002)zbMATHCrossRefGoogle Scholar
  5. 5.
    Truyen, E., Vanhaute, B., Joosen, W., Verbaeten, P., Jørgensen, B.N.: Dynamic and Selective Combination of Extensions in Component-Based Applications. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), Toronto, Canada (May 2001)Google Scholar
  6. 6.
    Hauck, F., Becker, U., Geier, M., Meier, E., Rastofer, U., Steckermeier, M.: AspectIX: a quality-aware, object-based middleware architecture. In: 3th IFIP International Working Conference on Distributed Applications and Interoperable Systems (DAIS 2001), Krakow, Poland (2001)Google Scholar
  7. 7.
    Issarny, V., Kloukinas, C., Zarras, A.: Systematic Aid for Developing Middleware Architectures. Communications of the ACM, Issue on Adaptive Middleware 45(6), 53–58 (2002)Google Scholar
  8. 8.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., 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.
    Pal, P., Loyall, J., Schantz, R., Zinky, J., Shapiro, R., Megquier, J.: Using QDL to Specify QoS Aware Distributed (QuO) Application Con.guration. In: Proceedings the 3rd IEEE International Symposium on Object-Oriented Real-time distributed Computing (ISORC 2000), Newport Beach, CA (March 2000)Google Scholar
  10. 10.
    Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for Software Architecture and Tools to Support Them. Software Engineering 21(4), 314–335 (1995)CrossRefGoogle Scholar
  11. 11.
    Bellissard, L., de Palma, N., Féliot, D.: The Olan Architecture Definition Language. C3DS Technical Report, volume 24 (2000)Google Scholar
  12. 12.
    Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A Language and Environment for Architecture-Based Software Development and Evolution. In: Proceedings of the 21st International Conference on Software Engineering (ICSE1999), pp. 44–53 (1999)Google Scholar
  13. 13.
    Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., Mann, W.: Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, Special Issue on Software Architecture 21(4), 336–355 (1995)Google Scholar
  14. 14.
    Allen, R., Garlan, D., Douence, R.: Specifying Dynamism in Software Architectures. In: Proceedings of the Workshop on Foundations of Component-Based Software Engineering, Zurich, Switzerland (September 1997)Google Scholar
  15. 15.
    Agha, G.A.: Actors: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge (1986) ISBN 0-262-01092-5Google Scholar
  16. 16.
    Bellissard, L., de Palma, N., Freyssinet, A., Herrmann, M., Lacourte, S.: An Agent Plateform for Reliable Asynchronous Distributed Programming. In: Symposium on Reliable Distributed Systems (SRDS 1999), Lausanne, Switzerland (October 1999)Google Scholar
  17. 17.
    Fischer, M.J., Michael, A.: Sacrifying Serializability to Attain High Availability of Data in an Unreliable Network. In: ACM Symposium on Principles of Database Systems, Los Angeles, March 1982, pp. 70–75 (1982)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Vivien Quéma
    • 1
  • Emmanuel Cecchet
    • 1
  1. 1.Sardes project, LSR-IMAG laboratory, INRIA Rhône-AlpesSaint-Ismier CedexFrance

Personalised recommendations