Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A generic component model for building systems software

Published: 10 March 2008 Publication History

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).
[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).
[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).
[4]
Bruneton, E. and Riveill, M. 2000. JavaPod: An adaptable and extensible component platform. Proceedings of the Reflective Middleware 2000, (New York, NY).
[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).
[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).
[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).
[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.
[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.
[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).
[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.
[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.
[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.
[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).
[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.
[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.
[17]
Gamma, E., Helm, R., Johnson, R., and Vissides, J. 2004. Design patterns: Elements of reusable object-oriented software. Addison-Wesley, Reading, MA.
[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.
[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).
[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.
[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).
[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.
[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.
[24]
Intel. 2004. Intel IXP1200/2400 Network Processors. Go online to http://www.intel.com/IXA.
[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).
[26]
Johnson, E. J. and Kunze, A. R. 2003. IXP2400/2800 programming: The complete microengine coding guide. Intel Press, Santa Ceara, CA.
[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).
[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.
[29]
Kon, F., Costa, F., Campbell, R., and Blair, G. 2002. The case for reflective middleware. Communi. ACM 45, 6, 33--38.
[30]
Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of OOPSLA'87 ACM SIGPLAN Not. 22, 147--155.
[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.
[32]
Microsoft. 2005. Net Home Page. Go online to http://www.microsoft.com/net.
[33]
Mozilla Organization. 2005. XPCOM project. Go online to http://www.mozilla.org/projects/xpcom.
[34]
Network Processing Forum. 2005. Go online to http://www.npforum.org/.
[35]
Object Management Group. 1995. The Common Object Request Broker: Architecture and Specification, 2.0 ed. MG, Needham, MA.
[36]
Object Management Group. 1999. CORBA components final submission. OMG Document orbos/99-02-05. OMG, Needham, MA.
[37]
Parlavantzas, N. 2005. Constructing modifiable middleware with component frameworks. Ph.D. dissertation. Computing Department, Lancaster University, Lancaster, U.K.
[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).
[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).
[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.
[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.
[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.
[43]
Sun Microsystems. 2005. Go online to http://java.sun.com/products/ejf/index.html.
[44]
Szyperski, C. 1998. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Reading, MA.
[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.
[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.

Cited By

View all
  • (2024)BrickOS: specialized kernels for heterogeneous hardware resourcesSCIENTIA SINICA Informationis10.1360/SSI-2022-041354:3(491)Online publication date: 11-Mar-2024
  • (2023)A Self-Distributing System Framework for the Computing Continuum2023 32nd International Conference on Computer Communications and Networks (ICCCN)10.1109/ICCCN58024.2023.10230110(1-10)Online publication date: Jul-2023
  • (2022)Exploiting the Potential of the Edge-Cloud Continuum with Self-distributing Systems2022 IEEE/ACM 15th International Conference on Utility and Cloud Computing (UCC)10.1109/UCC56403.2022.00046(255-260)Online publication date: Dec-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

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

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Component-based software
  2. computer systems implementation

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)29
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)BrickOS: specialized kernels for heterogeneous hardware resourcesSCIENTIA SINICA Informationis10.1360/SSI-2022-041354:3(491)Online publication date: 11-Mar-2024
  • (2023)A Self-Distributing System Framework for the Computing Continuum2023 32nd International Conference on Computer Communications and Networks (ICCCN)10.1109/ICCCN58024.2023.10230110(1-10)Online publication date: Jul-2023
  • (2022)Exploiting the Potential of the Edge-Cloud Continuum with Self-distributing Systems2022 IEEE/ACM 15th International Conference on Utility and Cloud Computing (UCC)10.1109/UCC56403.2022.00046(255-260)Online publication date: Dec-2022
  • (2021)A CSP-Based Approach for Managing the Dynamic Reconfiguration of Software ArchitectureInternational Journal of Information Technologies and Systems Approach10.4018/IJITSA.202101010914:1(156-173)Online publication date: 1-Jan-2021
  • (2021)A model-driven middleware approach to reduce the semantic gap between application domains and the generic infrastructure of smart cities2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C53483.2021.00108(672-677)Online publication date: Oct-2021
  • (2021)A Programming Language for Sound Self-Adaptive Systems2021 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS)10.1109/ACSOS52086.2021.00036(145-150)Online publication date: Sep-2021
  • (2020)Towards Automatic SW Integration in Dependable Embedded SystemsProceedings of the 2020 International Conference on Embedded Wireless Systems and Networks10.5555/3400306.3400317(85-96)Online publication date: 17-Feb-2020
  • (2020)Dynamic Reconfiguration of Smart Sensors: A Semantic Web Based ApproachIEEE Sensors Journal10.1109/JSEN.2019.294723620:3(1619-1629)Online publication date: 1-Feb-2020
  • (2020)An intelligent and generic approach for detecting human emotions: a case study with facial expressionsSoft Computing - A Fusion of Foundations, Methodologies and Applications10.1007/s00500-019-04411-724:11(8467-8479)Online publication date: 1-Jun-2020
  • (2019)An Optimized Component Selection Algorithm for Self-Adaptive Software Architecture Using the Component RepositoryInternational Journal of Software Science and Computational Intelligence10.4018/IJSSCI.201904010411:2(51-61)Online publication date: Apr-2019
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media