{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,11]],"date-time":"2026-03-11T01:31:18Z","timestamp":1773192678257,"version":"3.50.1"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2008,2,1]],"date-time":"2008-02-01T00:00:00Z","timestamp":1201824000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2008,2]]},"abstract":"<jats:p>\n            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\n            <jats:italic>OpenCom<\/jats:italic>\n            , 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.\n          <\/jats:p>","DOI":"10.1145\/1328671.1328672","type":"journal-article","created":{"date-parts":[[2008,3,12]],"date-time":"2008-03-12T22:35:44Z","timestamp":1205361344000},"page":"1-42","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":188,"title":["A generic component model for building systems software"],"prefix":"10.1145","volume":"26","author":[{"given":"Geoff","family":"Coulson","sequence":"first","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Gordon","family":"Blair","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Paul","family":"Grace","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Francois","family":"Taiani","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Ackbar","family":"Joolia","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Kevin","family":"Lee","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Jo","family":"Ueyama","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]},{"given":"Thirunavukkarasu","family":"Sivaharan","sequence":"additional","affiliation":[{"name":"Lancaster University, Lancaster, England"}]}],"member":"320","published-online":{"date-parts":[[2008,3,10]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1101560.1101567"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028613.1028627"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the 7th International Symposium on Component-Based Software Engineering (ICSE-CBSE7","author":"Bruneton E.","unstructured":"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). 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)."},{"key":"e_1_2_1_4_1","volume-title":"Proceedings of the Reflective Middleware","author":"Bruneton E.","year":"2000","unstructured":"Bruneton , E. and Riveill , M . 2000. JavaPod: An adaptable and extensible component platform . Proceedings of the Reflective Middleware 2000 , (New York, NY). Bruneton, E. and Riveill, M. 2000. JavaPod: An adaptable and extensible component platform. Proceedings of the Reflective Middleware 2000, (New York, NY)."},{"key":"e_1_2_1_5_1","volume-title":"Proceedings of the 5th IEEE International Conference on Open Architectures and Network Programming (OPENARCH' 02)","author":"Campbell A. T.","unstructured":"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) . 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)."},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the IFIP\/ACM Middleware 2001","author":"Clarke M.","unstructured":"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). 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)."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/PERCOM.2007.36"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/s005300200056"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/s004460100064"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/PCCC.2004.1395177"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/963985.963991"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of Reflection","volume":"2192","author":"Dowling J.","year":"2001","unstructured":"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. 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."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/581339.581405"},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the Usenix Annual Technical Conference","author":"Fassino J.-P.","unstructured":"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). 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)."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/268998.266642"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(02)00187-4"},{"key":"e_1_2_1_17_1","unstructured":"Gamma E. Helm R. Johnson R. and Vissides J. 2004. Design patterns: Elements of reusable object-oriented software. Addison-Wesley Reading MA.   Gamma E. Helm R. Johnson R. and Vissides J. 2004. Design patterns: Elements of reusable object-oriented software. Addison-Wesley Reading MA."},{"key":"e_1_2_1_18_1","volume-title":"Acme: Architectural description of component-based systems. In Foundations of Component-Based Systems, G. T. Leavens and M. Sitaraman (Eds)","author":"Garlan D.","year":"2000","unstructured":"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. 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."},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the Symposium on Distributed Objects and Applications (DOA","author":"Grace P.","year":"2003","unstructured":"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). 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)."},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of IFIP\/ACM\/USENIX Middleware","author":"Grace P.","year":"2005","unstructured":"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 . 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."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/1018420.1019739"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/319195.319210"},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the UK eScience All Hands Meeting.","author":"Hughes D.","unstructured":"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. 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."},{"key":"e_1_2_1_24_1","unstructured":"Intel. 2004. Intel IXP1200\/2400 Network Processors. Go online to http:\/\/www.intel.com\/IXA.  Intel. 2004. Intel IXP1200\/2400 Network Processors. Go online to http:\/\/www.intel.com\/IXA."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/338283.338356"},{"key":"e_1_2_1_26_1","unstructured":"Johnson E. J. and Kunze A. R. 2003. IXP2400\/2800 programming: The complete microengine coding guide. Intel Press Santa Ceara CA.   Johnson E. J. and Kunze A. R. 2003. IXP2400\/2800 programming: The complete microengine coding guide. Intel Press Santa Ceara CA."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/WICSA.2005.42"},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the IEEE Conference on Open Architectures and Network Programming (OPENARCH","author":"Karlin S.","year":"2001","unstructured":"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. 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."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/508448.508470"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/38765.38821"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/566726.566769"},{"key":"e_1_2_1_32_1","unstructured":"Microsoft. 2005. Net Home Page. Go online to http:\/\/www.microsoft.com\/net.  Microsoft. 2005. Net Home Page. Go online to http:\/\/www.microsoft.com\/net."},{"key":"e_1_2_1_33_1","unstructured":"Mozilla Organization. 2005. XPCOM project. Go online to http:\/\/www.mozilla.org\/projects\/xpcom.  Mozilla Organization. 2005. XPCOM project. Go online to http:\/\/www.mozilla.org\/projects\/xpcom."},{"key":"e_1_2_1_34_1","unstructured":"Network Processing Forum. 2005. Go online to http:\/\/www.npforum.org\/.  Network Processing Forum. 2005. Go online to http:\/\/www.npforum.org\/."},{"key":"e_1_2_1_35_1","volume-title":"The Common Object Request Broker: Architecture and Specification, 2.0 ed","author":"Object Management Group","unstructured":"Object Management Group . 1995. The Common Object Request Broker: Architecture and Specification, 2.0 ed . MG , Needham, MA . Object Management Group. 1995. The Common Object Request Broker: Architecture and Specification, 2.0 ed. MG, Needham, MA."},{"key":"e_1_2_1_36_1","volume-title":"CORBA components final submission. OMG Document orbos\/99-02-05","author":"Object Management Group","unstructured":"Object Management Group . 1999. CORBA components final submission. OMG Document orbos\/99-02-05 . OMG , Needham, MA . Object Management Group. 1999. CORBA components final submission. OMG Document orbos\/99-02-05. OMG, Needham, MA."},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the 7th IEEE International Enterprise Distributed Object Computing Conference (EDOC","author":"Parlavantzas N.","year":"2003","unstructured":"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). 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)."},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the 2nd Workshop on Workstation Operating Systems (WWOS2).","author":"Rashid R.","unstructured":"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). 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)."},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the 4th Conference on Operating Systems Design and Implementation (OSDI). 47--360","author":"Reid A.","unstructured":"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 . 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."},{"key":"e_1_2_1_41_1","volume-title":"LegORB. In Proceedings of the IFIP\/ACM Middleware 2000 Workshop on Reflective Middleware. IBM Palisades Executive Conference Center","author":"Roman M.","unstructured":"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. 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."},{"key":"e_1_2_1_42_1","unstructured":"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.  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."},{"key":"e_1_2_1_43_1","unstructured":"Sun Microsystems. 2005. Go online to http:\/\/java.sun.com\/products\/ejf\/index.html.  Sun Microsystems. 2005. Go online to http:\/\/java.sun.com\/products\/ejf\/index.html."},{"key":"e_1_2_1_44_1","volume-title":"Component Software: Beyond Object-Oriented Programming","author":"Szyperski C.","year":"1998","unstructured":"Szyperski , C. 1998 . Component Software: Beyond Object-Oriented Programming . Addison-Wesley , Reading, MA . Szyperski, C. 1998. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.825699"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/581630.581634"}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1328671.1328672","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1328671.1328672","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T14:51:58Z","timestamp":1750258318000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1328671.1328672"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,2]]},"references-count":45,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2008,2]]}},"alternative-id":["10.1145\/1328671.1328672"],"URL":"https:\/\/doi.org\/10.1145\/1328671.1328672","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"value":"0734-2071","type":"print"},{"value":"1557-7333","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,2]]},"assertion":[{"value":"2006-01-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2007-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2008-03-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}