Automatic composition of systems from components with anonymous dependencies specified by semantic-unaware properties

  • Ioana Şora
  • Frank Matthijs
  • Yolande Berbers
  • Pierre Verbaeten
Part of the The Kluwer International Series in Engineering and Computer Science book series (SECS, volume 732)


In this paper, we discuss a method of composing a system from components with anonymous dependencies. We make observations based on our experience with defining and implementing a composition mechanism for layered architectures. We propose a manner of specifying component descriptions by means of semantic-unaware properties, an application-domain independent formalism for describing the client-specific configuration requests in terms of desired properties, and a composition algorithm that works well in these conditions.

Secondly, we argue that the composition method should be independent from the application domain, only architecture-style dependent. In order to permit the user to specify the application requirements in a higher-level abstraction that considers the domain-specific semantics, we recommend a two-phase composition process comprising the deployment of domain-specific front-end tools for the “translation” of requirements. We illustrate with an example of automatic composition of protocol stacks within DiPS [13], our Distrinet Protocol Stack framework for building network subsystems. The integration of an automatic composition module into DiPS has validated our approach as a simple but powerful tool for customizing software to support client-specific requirements.


Architectural Style Layered Architecture Composition Process Component Description Good Composition 
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.
    Noriki Amano, Takuo Watanabe, “An Approach for Constructing Dynamically Adaptable Component-based Software Systems using LEAD++”, OOPSLA′99 Workshop on Reflection and Software Engineering, 1999.Google Scholar
  2. 2.
    Gordon S. Blair, Geoff Coulson, Phillippe Robin, and Michael Papathomas, “An Architecture for Next Generation Middleware”, in Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware′98), Lake District, UK, Editors: Davies, N., Raymond, K., Seitz, J., Springer-Verlag, 1998.Google Scholar
  3. 3.
    Don Batory, Gang Chen, Eric Robertson, Tao Wang, “Design Wizards and Visual Programming Environments for GenVoca Generators”, IEEE Transactions on Software Engineering, Vol. 26, No.5, May 2000.Google Scholar
  4. 4.
    Don Batory, Bart Geraci, “Validating Component Composition and Subjectivity in GenVoca Generators”, IEEE Transactions on Software Engineering, Vol.23, No.2, Feb. 1997.Google Scholar
  5. 5.
    D. Batory, S. O’Malley, “The Design and Implementation of Hierarchical Software Systems with Reusable Components”, ACM Transactions on Software Engineering and Methodology, October 1992.Google Scholar
  6. 6.
    Krzystof Czarnecki, Ulrich Eisenecker, “Components and Generative Programming”, in Proceedings of ESEC/FSE′99, LNCS 1687, Springer, 1999, pp. 2–19.Google Scholar
  7. 7.
    Krzystof Czarnecki, Ulrich Eisenecker, “Synthesizing Objects”, in Proceedings of ECOOP′99, LNCS 1628, Springer, 1999, pp. 18–42.Google Scholar
  8. 8.
    Sunshil Da Silva, Danilo Florissi, Yechiam Yemini, “Composing Active Services in NetScript”, DARPA Active Networks Workshop, 1998.Google Scholar
  9. 9.
    Richard Hayton, Matthew Faupel, “FlexiNet: Automating Application Deployment and Evolution”, Workshop on Compositional Software Architectures, Monterey, California, January 6–8, 1998.Google Scholar
  10. 10.
    Paola Inverardi, Alexander Wolf, Daniel Yankelevich, “Checking Assumptions in Component Dynamics at the Architectural Level”, in Proceedings of the 2nd International Conference on Coordination Models and Languages, LNCS 1282, Springer, 1997.Google Scholar
  11. 11.
    Fabio Kon, Automatic Configuration of Component-Based Distributed Systems, PhD Thesis, University of Illinois at Urbana-Champaign, 2000.Google Scholar
  12. 12.
    Fabio Kon, Roy Campbell, “Dependence Management in Component-Based Distributed Systems”, IEEE Concurrency 8(1), Jan–March 2000.Google Scholar
  13. 13.
    Frank Matthijs, Component Framework Technology for Protocol Stacks, PhD Thesis, Katholieke Universiteit Leuven, Belgium, December 1999.Google Scholar
  14. 14.
    Sam Michiels, Tom Mahieu, Frank Matthijs, and Pierre Verbaeten, “Dynamic protocol stack composition: Protocol independent addressing”, in Proceedings of the 4th ECO OP Workshop on Object-Orientation and Operating Systems, ECOOP-OOOSWS2001, June 2001.Google Scholar
  15. 15.
    Sam Michiels, Frank Matthijs, Dirk Walravens, Pierre Verbaeten, “DiPS: A Unifying Approach for Developing System Software”, in Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII), May 2001.Google Scholar
  16. 16.
    Jeff Magee, N. Dulay, Susan Eisenbach, Jeff Kramer, “Specifying Distributed Software Architectures”, in Proceedings of the 5th European Software Engineering Conference (ESEC95), LNCS 989, Springer, 1995, pp. 137–153.Google Scholar
  17. 17.
    Nenad Medvidovic, Richard Taylor, “A Classification and Composition Framework for Software Architecture Description Languages”, IEEE Transactions on Software Engineering, Vol. 26, No. l, January 2000.Google Scholar
  18. 18.
    Mira Mezini, Karl Lieberherr, “Adaptive Plug-and-Play Components for Evolutionary Software Development”, in Proceedings of OOPSLA′98, Special Issue of Sigplan Notices, October 1998, pp. 97–116.Google Scholar
  19. 19.
    Nikos Parlavantzas, Geoff Coulson, Mike Clarke, and Gordon Blair, “Towards a Reflective Component Based Middleware Architecture”, in Workshop on Reflection and Metalevel Architectures, Sophia Antipolis and Cannes, France, June 2000.Google Scholar
  20. 20.
    Mary Shaw, Robert DeLine, Gregory Zelesnik, “Abstractions and Implementations for Architectural Connections”, in Proceedings of the International Conference on Configurable Distributed Systems, Annapolis, Maryland, 1996.Google Scholar
  21. 21.
    S. W. O’Malley and L. L. Peterson, “A dynamic network architecture”. ACM Transactions on Computer Systems, 10(2), May 1992.Google Scholar
  22. 22.
    Jean-Guy Schneider, Oscar Nierstrasz, “Components, Scripts and Glue”, in Software Architecture — Advances and Applications, Leonor Barroca, John Hall and Patrick Hall (Eds.), Springer, 1999.Google Scholar
  23. 23.
    S. Terzis, P. Nixon, “Component Trading: The basis for a Component-Oriented Development Framework”, 4th International Workshop on Component-Oriented Programming (WCOP 99) at ECOOP 99, June 1999.Google Scholar
  24. 24.
    Eddy Truyen, Bo N. Joergensen, Wouter Joosen, “Customization of Object Request Brokers through Dynamic Reconfiguration”, in Proceedings of TOOLS Europe 2000, Mont-St-Michel, France, 2000, pp. 97–116.Google Scholar
  25. 25.
    Michel Wermelinger, “Towards a Chemical Model for Software Architecture Reconfiguration”, in Proceedings of the 4th Intl. Conf. on Configurable Distributed Systems, IEEE Computer Society Press, 1998.Google Scholar

Copyright information

© Springer Science+Business Media New York 2003

Authors and Affiliations

  • Ioana Şora
    • 1
  • Frank Matthijs
    • 1
  • Yolande Berbers
    • 1
  • Pierre Verbaeten
    • 1
  1. 1.Department of Computer ScienceKatholieke Universiteit LeuvenLeuvenBelgium

Personalised recommendations