skip to main content
research-article

A generic component model for building systems software

Published:10 March 2008Publication History
Skip Abstract Section

Abstract

Component-based software structuring principles are now commonplace at the application level; but componentization is far less established when it comes to building low-level systems software. Although there have been pioneering efforts in applying componentization to systems-building, these efforts have tended to target specific application domains (e.g., embedded systems, operating systems, communications systems, programmable networking environments, or middleware platforms). They also tend to be targeted at specific deployment environments (e.g., standard personal computer (PC) environments, network processors, or microcontrollers). The disadvantage of this narrow targeting is that it fails to maximize the genericity and abstraction potential of the component approach. In this article, we argue for the benefits and feasibility of a generic yet tailorable approach to component-based systems-building that offers a uniform programming model that is applicable in a wide range of systems-oriented target domains and deployment environments. The component model, called OpenCom, is supported by a reflective runtime architecture that is itself built from components. After describing OpenCom and evaluating its performance and overhead characteristics, we present and evaluate two case studies of systems we have built using OpenCom technology, thus illustrating its benefits and its general applicability.

References

  1. Bencomo, N., Blair, G., Coulson, G., Grace, P., and Rashid, A. 2005. Reflection and aspects meet again: Runtime reflective mechanisms for dynamic aspects. In Proceedings of the First Middleware '05 Workshop on Aspect Oriented Middleware Development (AOMD 05, Grenoble, France). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Blair, G., Coulson, G., and Grace, P. 2004. Research directions in reflective middleware: The Lancaster Experience. In Proceedings of the 3rd Workshop on Reflective and Adaptive Middleware (RM2004; co-located with Middleware 2004, Toronto, Ontario, Canada). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bruneton, E., Coupaye, T., Leclerc, M., Quema, V., and Stefani, J. B. 2004. An open component model and its support in Java. In Proceedings of the 7th International Symposium on Component-Based Software Engineering (ICSE-CBSE7, Edinburgh, Scotland).Google ScholarGoogle Scholar
  4. Bruneton, E. and Riveill, M. 2000. JavaPod: An adaptable and extensible component platform. Proceedings of the Reflective Middleware 2000, (New York, NY).Google ScholarGoogle Scholar
  5. Campbell, A. T., Chou, S., Kounavis, M.E., Stachtos, V. D., and Vicente, J. B. 2002. NetBind: A binding tool for constructing data paths in network processor-based routers. In Proceedings of the 5th IEEE International Conference on Open Architectures and Network Programming (OPENARCH' 02).Google ScholarGoogle Scholar
  6. Clarke, M., Blair, G. S., and Coulson, G. 2001. An efficient component model for the construction of adaptive middleware. In Proceedings of the IFIP/ACM Middleware 2001 (Heidelberg, Germany). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Costa, P., Coulson, G., Gold, R., Lad, M., Mascolo, C., Mottola, L., Picco, G. P., Sivaharan, T., Weerasinghe, N., and Zachariadis, S. 2007. The RUNES middleware for networked embedded systems and its application in a disaster management scenario. In Proceedings of the 5th Annual IEEE International Conference on Pervasive Computing and Communications (PERCOM'07, White Plains, NY). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Coulson, G., Baichoo, S., and Moonian, O. 2002a. A retrospective on the design of the GOPI middleware platform. ACM Multimed J. 8, 3, 340--352. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Coulson, G., Blair, G. S., Clarke, M., and Parlavantzas, N. 2002. The design of a highly configurable and reconfigurable middleware platform. ACM Distrib. Comput. J. 15 2, 109--126. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Coulson, G., Blair, G. S., and Grace, P. 2004. On the performance of reflective systems software. In Proceedings of the International Workshop on Middleware Performance (MP 2004, Phoenix, AZ); satellite workshop of the IEEE International Performance, Computing and Communications Conference (IPCCC 2004).Google ScholarGoogle ScholarCross RefCross Ref
  11. Coulson, G., Blair, G. S., Hutchison, D., Joolia, A., Lee, K., Ueyama, J., Gomes, A.T., and Ye, Y. 2003. NETKIT: A software component-based approach to programmable networking. ACM SIGCOMM Comput. Communi. Rev. 33, 5, 55--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dowling, J. and Cahill, V. 2001. The k-component architecture meta-model for self-adaptive software. In Proceedings of Reflection 2001. Lecture Notes in Computer Science, vol. 2192. Springer, Berlin, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Emmerich, W. 2002. Distributed component technologies and their software engineering implications. In Proceedings of the 24th International Conference on Software Engineering (Orlando, FL). 537--546. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Fassino, J.-P., Stefani, J.-B., Lawall, J., and Muller, G. 2002. THINK: A software framework for component-based operating system kernels. In Proceedings of the Usenix Annual Technical Conference (Monterey, CA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Ford, B., Back, G., Benson, G., Lepreau, J., Lin, A., and Shivers, O. 1997. The Flux OSKit: A substrate for kernel and language research. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (Saint Malo, France). ACM Press, New York, NY, 38--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Furmento, N., Mayer, A., McGough, S., Newhouse, S., Field, T., and Darlington, J. 2002. ICENI: Optimisation of component applications within a grid environment. J. Parallel Comput. 28, 12, 1753--1772. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gamma, E., Helm, R., Johnson, R., and Vissides, J. 2004. Design patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Garlan, D., Monroe, R. T., and Wile, D. 2000. Acme: Architectural description of component-based systems. In Foundations of Component-Based Systems, G. T. Leavens and M. Sitaraman (Eds), Cambridge University Press, Cambridge, U.K. 47--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Grace, P., Blair, G. S., and Samuel, S. 2003. ReMMoC: A reflective middleware to support mobile client interoperability. In Proceedings of the Symposium on Distributed Objects and Applications (DOA 2003, Catania, Sicily, Italy).Google ScholarGoogle Scholar
  20. Grace, P., Coulson, G., Blair, G. S., and Porter, B. 2005. Deep middleware for the divergent grid. In Proceedings of IFIP/ACM/USENIX Middleware 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Hansson, H., Akerholm, M., Crnkovic, I., and Torngren, M. 2004. SaveCCM---a component model for safety-critical real-time systems. In Proceedings of the IEEE Euromicro Conference (Special Session on Component Models for Dependable Systems). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Helander, J. and Forin, A. 1998. MMLite: A highly componentized system architecture. In Proceedings of the 8th ACM SIGOPS European Workshop (Sintra, Portugal). 96--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Hughes, D., Greenwood, P., Blair, G., Coulson, G., Pappenberger, F., Smith, P., and Beven, K. 2006. An intelligent and adaptable grid-based flood monitoring and warning system. In Proceedings of the UK eScience All Hands Meeting.Google ScholarGoogle Scholar
  24. Intel. 2004. Intel IXP1200/2400 Network Processors. Go online to http://www.intel.com/IXA.Google ScholarGoogle Scholar
  25. Joergensen, B. N., Truyen, E., Matthijs, F., and Joosen, W. 2000. Customization of object request brokers by application specific policies. In Proceedings of IFIP Middleware 2000 (New York, NY). Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Johnson, E. J. and Kunze, A. R. 2003. IXP2400/2800 programming: The complete microengine coding guide. Intel Press, Santa Ceara, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Joolia, A., Batista, T., Coulson, G., and Tadeu A. 2005. Mapping ADL specifications to an efficient and reconfigurable runtime component platform. In Proceedings of the 5th Working IEEE/IFIP Conference of Software Architecture (WICSA 5, Pittsburgh, PA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Karlin, S. and Peterson, L. 2001. VERA: An extensible router architecture. In Proceedings of the IEEE Conference on Open Architectures and Network Programming (OPENARCH 2001, Anchorage, AK). 3--14.Google ScholarGoogle Scholar
  29. Kon, F., Costa, F., Campbell, R., and Blair, G. 2002. The case for reflective middleware. Communi. ACM 45, 6, 33--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of OOPSLA'87 ACM SIGPLAN Not. 22, 147--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Magoutis, K., Brustoloni, J. C., Gabber, E., Ng, W. T., and Silberschatz, A. 2000. Building appliances out of reusable components using pebble. In Proceedings of the SIGOPS European Workshop 2000 (Kolding, Denmark), 211--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Microsoft. 2005. Net Home Page. Go online to http://www.microsoft.com/net.Google ScholarGoogle Scholar
  33. Mozilla Organization. 2005. XPCOM project. Go online to http://www.mozilla.org/projects/xpcom.Google ScholarGoogle Scholar
  34. Network Processing Forum. 2005. Go online to http://www.npforum.org/.Google ScholarGoogle Scholar
  35. Object Management Group. 1995. The Common Object Request Broker: Architecture and Specification, 2.0 ed. MG, Needham, MA.Google ScholarGoogle Scholar
  36. Object Management Group. 1999. CORBA components final submission. OMG Document orbos/99-02-05. OMG, Needham, MA.Google ScholarGoogle Scholar
  37. Parlavantzas, N. 2005. Constructing modifiable middleware with component frameworks. Ph.D. dissertation. Computing Department, Lancaster University, Lancaster, U.K.Google ScholarGoogle Scholar
  38. Parlavantzas, N., Coulson, G., and Blair, G.S. 2003. An extensible binding framework for component-based middleware. In Proceedings of the 7th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2003, Brisbane, Australia). Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Rashid, R., Baron, B., Forin, A., Golub, D., Jones, M., Julin, D., Orr, D., and Sanzi, R. 1989. Mach: A foundation for open systems. In Proceedings of the 2nd Workshop on Workstation Operating Systems (WWOS2).Google ScholarGoogle Scholar
  40. Reid, A., Flatt, M., Stoller, L., Lepreau, J., and Eide, E. 2000. Knit: Component composition for systems software. In Proceedings of the 4th Conference on Operating Systems Design and Implementation (OSDI). 47--360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Roman, M., Mickunas, D., Kon, F., and Campbell, R. H. 2000. LegORB. In Proceedings of the IFIP/ACM Middleware 2000 Workshop on Reflective Middleware. IBM Palisades Executive Conference Center, Yorktown Heights, NY.Google ScholarGoogle Scholar
  42. Stewart, D., Volpe, R., and Khosla, P. 1993. Design of dynamically reconfigurable real-time software using port-based objects. Robotics Institute, Rep. No. CMU-RI-TR-93-11. Carnegie Mellon University, Pittsburgh, PA.Google ScholarGoogle Scholar
  43. Sun Microsystems. 2005. Go online to http://java.sun.com/products/ejf/index.html.Google ScholarGoogle Scholar
  44. Szyperski, C. 1998. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Van Ommering, R., Van Der Linden, F., Kramer, J., and Magee, J. 2000. The Koala component model for consumer electronics software. IEEE Comput. 33, 3, 78--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Winter, M., Genbler, T., Christoph, A., Nierstrasz, O., Ducasse, S., Wuyts, R., Arevalo, G., Muller, P., Stich, C., and Schonhage, B. 2002. Components for embedded software: the PECOS approach. In Proceedings of the 2002 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'02, Grenoble, France). ACM Press, New York, NY, 19--26. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A generic component model for building systems software

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Computer Systems
              ACM Transactions on Computer Systems  Volume 26, Issue 1
              February 2008
              153 pages
              ISSN:0734-2071
              EISSN:1557-7333
              DOI:10.1145/1328671
              Issue’s Table of Contents

              Copyright © 2008 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 10 March 2008
              • Accepted: 1 November 2007
              • Revised: 1 March 2007
              • Received: 1 January 2006
              Published in tocs Volume 26, Issue 1

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article
              • Research
              • Refereed

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!