Skip to main content

Improving Dependability of Component-Based Systems via Multi-versioning Connectors

  • Conference paper
  • First Online:
Architecting Dependable Systems

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2677))

Abstract

The promise of architecture-based software development is that complex systems can be built and evolved reasonably quickly and reliably using coarse-grained components. However, practice has shown that many problems of traditional software development still persist in a component-based setting, and even that new problems are introduced. A class of such problems steins from the opportunity to perform system upgrade at the component level. The problems include errors in the functionality introduced by a new version of a component, decreased reliability of a new component version, inefficiency of components designed for reuse, component interaction mismatches, and so on. This paper presents an approach intended to alleviate the problems caused by component upgrades. Our approach focuses on software architectures both at system design and implementation levels. Specifically, our approach leverages explicit software connectors, called multi-versioning connectors (M-V-Cs), in ensuring dependable system composition and evolution, possibly during runtime. M-V-Cs unintrusively collect and analyze the execution statistics of one or more running components versions, and address three aspects of dependability: correctness, reliability, and efficiency. Our approach has been implemented and evaluated in the context of a family of architectural implementation platforms. We illustrate our approach with the help of an example application developed in coordination with a third-party organization.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Agha. Adaptive Middleware. Communications of the ACM. 45(6). June 2002.

    Google Scholar 

  2. R. Allen and D. Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, pp. 213–249, July 1997.

    Article  Google Scholar 

  3. N. Altman et. al. Simplex in a Hostile Communications Environment: The Coordinated Prototype. Technical Report CMU/SEI-99-TR-016.

    Google Scholar 

  4. A. Avizienis. The N-Version Approach to Fault-Tolerant Software. IEEE Transactions on Software Engineering, 11(12):1491–1501, 1985.

    Article  Google Scholar 

  5. D. Batory and S. O’Malley. The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology, 1(4), October 1992.

    Article  Google Scholar 

  6. T.J. Biggerstaff. The Library Scaling Problem and the Limits of Concrete Component Reuse. IEEE International Conference on Software Reuse, November 1994.

    Google Scholar 

  7. T.J. Biggerstaff and A.J. Perlis. Software Reusability, volumes I and II. ACM Press/Addison Wesley, 1989.

    Google Scholar 

  8. S. Brilliant, J. Knight, and N. Leveson. Analysis of Faults in an N-Version Software Experiment. IEEE Transactions on Software Engineering, 16(2): 238–247, 1990.

    Article  Google Scholar 

  9. C. Burrows and I. Wesley. Ovum Evaluates Configuration Management, Burlington, Massachusetts: Ovum Ltd., 1998.

    Google Scholar 

  10. K.M. Chandy and L. Lamport, Distributed Snapshots: Determining Global States of Distributed Systems, ACM Transactions on Computer Systems, 3(1):63–75, February 1985.

    Article  Google Scholar 

  11. R. Conradi and B. Westfechtel. Version Models for Software Configuration Management. ACM Computing Surveys, 30(2): p. 232–282, 1998.

    Article  Google Scholar 

  12. J. E. Cook and J. A. Dage, Highly Reliable Upgrading of Components. In Proceedings of the 1999 International Conference on Software Engineering (ICSE’99), pages 203–212, Los Angeles, CA, May 1999.

    Google Scholar 

  13. C. Cugola, E. Di Nitto, and A. Fuggetta. Exploiting an Event-Based Infrastructure to Develop Complex Distributed Systems. In Proceedings of the 20th International Conference on Software Engineering, Kyoto, Japan, April 1998.

    Google Scholar 

  14. E.M. Dashofy, N. Medvidovic, and R.N. Taylor. Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures. In Proceedings of the 21st International Conference on Software Engineering (ICSE’99), pp. 3–12, Los Angeles, CA, May 16–22, 1999.

    Google Scholar 

  15. D. Garlan, R. Allen, and J. Ockerbloom. Architectural Mismatch, or, Why It’s Hard to Build Systems out of Existing Parts. In Proceedings of the 17th International Conference on Software Engineering (ICSE 17), Seattle, WA, April 1995.

    Google Scholar 

  16. A. van der Hoek, M. Rakic, R. Roshandel, and N. Medvidovic. Taming Architectural Evolution. In Proceedings of ESEC/FSE 2001, Vienna, September 2001.

    Google Scholar 

  17. P. Inverardi and M. Tivoli, Automatic Synthesis of Deadlock Free Connectors for COM/DCOM Applications. In Proceedings of 8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Vienna, Austria, September 2001.

    Google Scholar 

  18. J. Knight and N. Leveson. An Experimental Evaluation of the Assumption of Independence in Multi-Version Programming. IEEE Transactions on Software Engineering, 12(1):96–109, 1986.

    Article  Google Scholar 

  19. F. Kon, F. Costa, G. Blair, and R.H. Campbell. The Case for Reflective Middleware. Communications of the ACM. 45(6). June 2002.

    Google Scholar 

  20. G.E. Krasner and S.T. Pope. A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object-Oriented Programming, 1(3):26–49, August/September 1988.

    Google Scholar 

  21. C.W. Krueger. Software Reuse. ACM Computing Surveys, pages 131–183, June 1992.

    Google Scholar 

  22. N. Medvidovic, R.F. Gamble, and D.S. Rosenblum. Towards Software Multioperability: Bridging Heterogeneous Software Interoperability Platforms. In Proceedings of the 4th Interntl. Software Architecture Workshop (ISAW-4), Limerick, Ireland, June 4–5, 2000.

    Google Scholar 

  23. N. Medvidovic, N.R. Mehta and M. Mikic-Rakic, A Family of Software Architecture Implementation Frameworks, In Proceedings of the The Third Working IEEE/IFIP Conference on Software Architecture 2002, Montreal, Canada, August 2002.

    Google Scholar 

  24. N. Medvidovic, P. Oreizy, and R.N. Taylor. Reuse of Off-the-Shelf Components in C2-Style Architectures. In Proceedings of the 1997 Symposium on Software Reusability (SSR’97), pages 190–198, Boston, MA, May 17–19, 1997. Also in Proceedings of the 1997 International Conference on Software Engineering (ICSE’97), pages 692–700, Boston, MA, May 17–23, 1997.

    Google Scholar 

  25. N. Medvidovic, D.S. Rosenblum, and R.N. Taylor. A Language and Environment for Architecture-Based Software Development and Evolution. In Proc. of the 1999 International Conference on Software Engineering, pp. 44–53, Los Angeles, CA, May 1999.

    Google Scholar 

  26. N. Medvidovic and R.N. Taylor. Exploiting Architectural Style to Develop a Family of Applications. IEE Proceedings Software Engineering, vol. 144, no. 5–6, pages 237–248 (October–December 1997).

    Article  Google Scholar 

  27. N.R. Mehta, N. Medvidovic, and S. Phadke. Towards a Taxonomy of Software Connectors. In Proceedings of the 22nd International Conference on Software Engineering (ICSE 2000), pages 178–187, Limerick, Ireland, June 4–11, 2000.

    Google Scholar 

  28. M. Mikic-Rakic and N. Medvidovic. Architecture-Level Support for Software Component Deployment in Resource Constrained Environments. In Proceedings of First International IFIP/ACM Working Conference on Component Deployment. Berlin, Germany, June 2002.

    Google Scholar 

  29. P. Oreizy, N. Medvidovic, and R.N. Taylor. Architecture-Based Runtime Software Evolution in Proceedings of the 20th International Conference on Software Engineering (ICSE’98), pp. 177–186, Kyoto, Japan, April 1998.

    Google Scholar 

  30. R. Orfali, D. Harkey, and J. Edwards. The Essential Distributed Objects Survival Guide. John Wiley & Sons, Inc., NY, 1996.

    Google Scholar 

  31. D.E. Perry and A.L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, pages 40–52, October 1992.

    Article  Google Scholar 

  32. R. Sessions. COM and DCOM: Microsoft’s Vision for Distributed Objects. John Wiley & Sons, Inc., NY, 1997.

    Google Scholar 

  33. M. Shaw. Architectural Issues in Software Reuse: It’s Not Just the Functionality, It’s the Packaging. In Proceedings of IEEE Symposium on Software Reusability, April 1995.

    Google Scholar 

  34. M. Shaw, R. DeLine, D. V. Klein, T. L. Ross, D. M. Young and G. Zelesnik. Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering, April 1995.

    Google Scholar 

  35. M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.

    Google Scholar 

  36. Sun Microsystems, Inc. Java 2 Enterprise Edition Specification v1.2. http://java.sun.com/j2ee.

  37. R. N. Taylor, N. Medvidovic, K. M. Anderson, E. J. Whitehead, Jr., J. E. Robbins, K. A. Nies, P. Oreizy, and D. L. Dubrow. A Component-and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering, pages 390–406, June 1996.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Medvidovic, N., Mikic-Rakic, M., Mehta, N. (2003). Improving Dependability of Component-Based Systems via Multi-versioning Connectors. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems. Lecture Notes in Computer Science, vol 2677. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45177-3_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-45177-3_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40727-0

  • Online ISBN: 978-3-540-45177-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics