TY - JOUR
T1 - A generic component model for building systems software
AU - Coulson, Geoff
AU - Blair, Gordon
AU - Grace, Paul
AU - Taiani, Francois
AU - Joolia, Ackbar
AU - Lee, Kevin
AU - Ueyama, Jo
AU - Sivaharan, Thirunavukkarasu
PY - 2008/3/1
Y1 - 2008/3/1
N2 - 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.
AB - 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.
KW - Component-based software
KW - Computer systems implementation
UR - http://www.scopus.com/inward/record.url?scp=40549141440&partnerID=8YFLogxK
U2 - 10.1145/1328671.1328672
DO - 10.1145/1328671.1328672
M3 - Article
AN - SCOPUS:40549141440
SN - 0734-2071
VL - 26
JO - ACM Transactions on Computer Systems
JF - ACM Transactions on Computer Systems
IS - 1
M1 - 1
ER -