Abstract
The use of components significantly helps in development of real-time embedded systems. There have been a number of component frameworks developed for this purpose, and some of them have already became well established in this area. Even though these frameworks share the general idea of component-based development, they significantly differ in the range of supported features and maturity. This makes it relatively difficult to select the right component framework and thus poses a significant obstacle in adoption of the component-based development approach for developing real-time embedded systems. To provide guidance in choosing a component framework, or at least relevant concepts when building a custom framework, we present a survey, which illustrates distinguishing features and provides comparison of selected modern component-based frameworks for real-time embedded systems. Compared to other existing surveys, this survey focuses specifically on criteria connected with real-time and embedded systems. Further, to be practically relevant, we restrict the survey only to the frameworks that support the full development life cycle (i.e. from design till execution support). In this context, the survey illustrates the complexity of development in each framework by giving specification and code samples.
Similar content being viewed by others
Notes
Available at http://www.idt.mdh.se/pride/.
According to the email communication with the implementation author, it is no longer being actively developed.
References
Anne M, He R, Jarboui T, Lacoste M, Lobry O, Lorant G, Louvel M, Navas J, Olive V, Polakovic J, Poulhies M, Pulou J, Seyvoz S, Tous J, Watteyne T (2009) Think: view-based support of non-functional properties in embedded systems. In: Proceedings of ICESS-09, Zhejiang, China, pp 147–156. May 2009
AUTOSAR GbR (2005) Autosar-technical overview. Technical report, AUTOSAR GbR
Balek D, Plasil F (2001) Software connectors and their role in component deployment. In: Proceedings of DAIS’01, Krakow, Poland, vol 198 of IFIP conference proceedings, Kluwer, pp 69–84 Sept 2009
Barros T, Ameur-Boulifa R, Cansado A, Henrio L, Madelaine E (2009) Behavioural models for distributed fractal components. Ann Telecommun 64(1–2):25–43
Baumeister H, Hacklinger F, Hennicker R, Knapp A, Wirsing M (2006) A component model for architectural programming. ENTCS Proc FACS 2005 160:75–96
Behnam M, Nolte T, Sjodin M, Shin I (2010) Overrun methods and resource holding times for hierarchical scheduling of semi-independent real-time systems. IEEE Trans Ind Inf 6(1):93–104
Berthomieu B, Bodeveix J-P, Chaudet C, Zilio S, Filali M, Vernadat F (2009) Formal verification of aadl specifications in the topcased environment. In: Proceedings of Ada-Europe ’09, Brest, France, vol 5570 of LNCS. Springer, pp 207–221, June 2009
Borde E, Carlson J, Feljan J, Lednicki L, Lévêque T, Maras J, Petričić A, Sentilles S (2011) PRIDE—an environment for component-based development of distributed real-time embedded systems. In: Proceedings of WICSA 2011, Boulder, Colorado, USA, pp 351–354. IEEE CS, June 2011
Borde E, Haik G, Pautet L (2009) Mode-based reconfiguration of critical software component architectures. In: Proceedings of DATE ’09, Nice, France, pp 1160–1165, April 2009
Bruneton E, Coupaye T, Stefani J-B (2004) The fractal component model specification. http://fractal.ow2.org/specification/
Bures T, Carlson J, Crnkovic I, Sentilles S, Vulgarakis A (2008) ProCom—the progress component model reference manual, version 1.0. Technical report, Mälardalen University, June 2008
Bures T, Hnetynka P, Malohlava M (2009) Using a product line for creating component systems. In: Proceedings of the 2009 ACM symposium of applied computing (SAC’09), Honolulu, Hawaii, USA. ACM Press, pp 501–508. Mar 2009
Bures T, Hnetynka P, Plasil F(2006) SOFA 2.0: balancing advanced features in a hierarchical component model. In: Proceedings of SERA 2006, Seattle, USA, pp 40–48. Aug 2009
Bures T, Hnetynka P, Plasil F, Klesnil J, Kmoch O, Kohan T, Kotrc P (2007) Runtime support for advanced component concepts. In: Proceedings of SERA 2007, Busan, Korea. IEEE CS, pp 337–345. Aug 2007
Burns A (1999) The ravenscar profile. Ada Lett. XIX(4):49–52
Buttazo GC (2005) Hard real-time computing systems: predictable scheduling algorithms and applications, 2nd edn. Springer, Berlin
Cervantes H, Favre J-M (2002) Comparing JavaBeans and OSGi towards an integration of two complementary component models. In: Proceedings of EUROMICRO’02, Dortmund, Germany. IEEE CS, pp 17–23. Dec 2002
Chaki S, Ivers J, Lee P, Wallnau K, Zeilberger N (2007) Model-driven construction of certified binaries. In: Proceedings of MoDELS 2007, Nashville, USA, vol 4735 of LNCS. Springer, pp 666–681. Oct 2007
Chkouri M Y, Robert A, Bozga M, Sifakis J (2008) Translating AADL into BIP—application to the verification of real-time systems. In: Proceedings of workshops and symposia at MODELS 2008, Toulouse, France, vol 5421 of LNCS. Springer, pp 5–19. Oct 2008
Crnkovic I, Chaudron M, Sentilles S, Vulgarakis A (2007) A classification framework for component models. In: Proceedings of the 7th conference on software engineering and practice in Sweden, Oct 2007
Crnkovic I, Larsson M (2002) Building reliable component-based software systems. Artech House, INC, Norwood
Crnkovic I, Sentilles S, Vulgarakis A, Chaudron M (2011) A classification framework for software component models. IEEE Trans Softw Eng 37(5):593–615
de Jonge M (2009) Developing product lines with third-party components. ENTCS Proc LDTA 2008 238(5):63–80
Fassino J-P, Stefani J-B, Lawall J, Muller G (2002) Think: a software framework for component-based operating system kernels. In: Proceedings of the 2002 USENIX annual technical conference, Monterey, California, USA, USENIX. pp 73–86. June 2002
Feiler PH, Gluch DP, Hudak JJ (2006) The architecture analysis and design language (AADL): an introduction, Feb 2006
Fellner KJ, Turowski K (2000) Classification framework for business components. In: Proceedings of HICSS-33, Maui, Hawaii. IEEE CS. vol 8, pp 1–10. Jan 2000
Genßler T, Stich C, Christoph A, Winter M, Nierstrasz O, Ducasse S, Wuyts R, Arévalo G, Schönhage B, Müller P (2002) Components for embedded software: the PECOS approach. In: Proceedings of CASES ’02, Grenoble, France, ACM Press. pp 19–26. Oct 2002
Hänninen K, Mäki-Turja J, Nolin M, Lindberg M, Lundbäck J, Lundbäck K-L (2008) The Rubus component model for resource constrained real-time systems. In: Proceedings of SIES 2008, Montpellier, France, IEEE. pp 177–183. June 2008
Hansson H, Åkerholm M, Crnkovic I, Törngren M (2004) SaveCCM – a component model for safety-critical real-time systems. In: Proceedings of EUROMICRO’04, Rennes, France, IEEE. pp 627–635. Aug 2004
Hatcliff J, Deng X, Dwyer M B, Jung G, Ranganath V P (2003) Cadena: an integrated development, analysis, and verification environment for component-based systems. In: Proceedings of ICSE 2003, Portland, Oregon, USA, IEEE CS. pp 160–173. May 2003
Hirsch D, Kramer J, Magee J, Uchitel S (2006) Modes for software architectures. In: Proceedings of EWSA 2006, Nantes, France, vol 4344 of LNCS, Springer, pp 113–126. Sept 2006
Hissam S, Ivers J, Plakosh D, Wallnau K C (2005) Pin component technology (V1.0) and Its C Interface. Technical report CMU/SEI-2005-TN-001, CMU SEI, April 2005
Hnetynka P, Murphy L, Murphy J (2011) Comparing the service component architecture and fractal component model. Comput J 54(7):1026–1037
Hosek P, Pop T, Bures T, Hnetynka P, Malohlava M (2010) Comparison of component frameworks for real-time embedded systems. In: Proceedings of CBSE 2010, Prague, Czech Republic, vol 6092 of LNCS, Springer, pp 21–36. June 2010
Ji Eun Kim, Rogalla O, Kramer S, Hamann A (2009) Extracting, specifying and predicting software system properties in component based real-time embedded software development. In: Proceedings of ICSE 2009, Vancouver, Canada, IEEE, pp 28–38. May 2009
Klobedanz K, Kuznik C, Thuy A, Müller W (2010) Timing modeling and analysis for autosar-based software development - a case study. In: Proceedings of DATE 2010, Dresden, Germany, pp 642–645, March 2010
Kotonya G, Sommerville I, Hall S (2003) Towards a classification model for component-based software engineering research. In: Proceedings of EUROMICRO’03, Belek-Antalya, Turkey, pp 43–52. IEEE CS, Sept 2003
Lasnier G, Zalila B, Pautet L, Hugues J (2009) Ocarina: An environment for AADL models analysis and automatic code generation for high integrity applications. In: Proceedings of Ada-Europe 2009, Brest, France, vol 5570 of LNCS, Springer, Berlin, Heidelberg. pp 237–250. June 2009
Lau KK, Wang Z (2007) Software component models. IEEE Trans Softw Eng 33(10):709–724
Maaskant H (2005) A Robust Component Model For Consumer Electronic Products. In: Dynamic and robust streaming in and between connected consumer-electronic devices, volume 3 of Philips Research Book Series, Springer, Netherlands, pp 167–192
Magee J, Kramer J (1996) Dynamic structure in software architectures. In: Proceedings of SIGSOFT FSE’96, San Francisco, CA, USA. ACM, pp 3–14. Oct 1996
Malohlava M, Plasil F, Bures T, Hnetynka P (2012) Interoperable domain-specific languages families for code generation. Softw Pract Exper (accepted for publication)
Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93
Mencl V, Bures T (2005) Microcomponent-based component controllers: a foundation for component aspects. In: Proceedings of APSEC 2005, Taipei, Taiwan, IEEE CS, pp 729–737. Dec 2005
Merle P, Stefani J-B (2008) A formal specification of the Fractal component model in Alloy. Technical report 6721, INRIA, Nov 2008
Microsoft. Component object model (1993). http://www.microsoft.com/com/
Möller A, Åkerholm M, Fredriksson J, Nolin M (2004) Evaluation of component technologies with respect to industrial requirements. In: Proceedings of EUROMICRO’04, Rennes, France. IEEE CS, pp 56–63. Aug 2004
Nierstrasz O, Arévalo G, Ducasse S, Wuyts R, Black A P, Müller P O, Zeidler C, Genssler T, Born R (2002) A component model for field devices. In: Proceedings of CD’02, Berlin, Germany. Springer, pp 200–209
OMG (2006) CORBA component model specification. OMG document formal/06-04-01, OMG, Apr 2006
OMG (2006) Deployment and configuration of component-based distributed applications, v4.0. OMG document formal/06-04-02, Apr 2006
Ommering R, Linden F, Kramer J, Magee J (March 2000) The Koala component model for consumer electronics software. Computer 33(3):78–85
Perry DE, Wolf AL (October 1992) Foundations for the study of software architecture. ACM SIGSOFT Softw Eng Notes 17(4):40–52
Plasil F, Visnovsky S (November 2002) Behavior protocols for software components. IEEE Trans Softw Eng 28(11):1056–1076
Pop T, Plasil F, Outly M, Malohlava M, Bures T (2012) Property networks allowing oracle-based mode-change propagation in hierarchical components. In: Proceedings of CBSE 2012, Bertinoro, Italy. ACM, pp 93–102. June 2012
Prochazka M, Ward R, Tuma P, Hnetynka P, Adamek J (2009) A component-oriented framework for spacecraft on-board software. In: Proceedings of DASIA 2008, DAta Systems In Aerospace, Palma de Mallorca, number 665 in ESA SP. European Space Agency, May 2009
Ranganath V P, Childs A, Greenwald J, Dwyer MB, Hatcliff J, Singh G (2003) Cadena: enabling CCM-based application development in eclipse. In: Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange, Anaheim, CA, USA. ACM, pp 20–24. Oct 2003
Rausch A, Reussner R, Mirandola R, Plasil F (eds) (2008) The common component modeling example: comparing software component models, vol 5153 of LNCS. Springer, Aug 2008
Renault X, Kordon F, Hugues J (2009) Adapting models to model checkers, a case study: analysing AADL using time or colored petri nets. In: Proceedings of RSP ’09, Paris, France, IEEE CS, pp 26–33. June 2009
Rodriguez A-I, Ferrero F, Alana E, Panunzio M, Vardanega T, Grenham A (2012) The component layer of COrDeT on-board software architecture. In: Proceedings of DASIA, (2012) Dubrovnik. Croatia, May 2012
Schmidt D C, Gokhale A, Natarajan R, Neema E, Bapty T, Parsons J, Gray J, Nechypurenko A, Wang N (2002) Cosmic: an mda generative tool for distributed real-time and embdedded component middleware and applications. In: Proceedings of the OOPSLA 2002 workshop on generative techniques in the context of model driven architecture. ACM
Siewert S (2006) Real-time embedded components and systems. Cengage Learning, Rockland
Singhoff F, Legrand J, Nana L, Marcé L (2004) Cheddar: a flexible real time scheduling framework. ACM SIGAda Ada Lett XXIV(4):1–8
Szyperski C (2002) Component software: beyond object-oriented programming (Hardcover), 2nd edn. Addison-Wesley Professional, Reading
Vulgarakis A, Suryadevara J, Carlson J, Seceleanu C, Pettersson P (2009) Formal semantics of the ProCom real-time component model. In: Proceedings of EUROMICRO SEAA’09, Patras, Greece. IEEE, pp 478–485. Aug 2009
Wang N, Schmidt DC, Gokhale A, Gill CD, Natarajan B, Rodrigues C, Loyall JP, Schantz RE (2003) Total quality of service provisioning in middleware and applications. Microprocess Microsyst 27:45–54
Yin H, Carlson J, Hansson H (2012) Towards mode switch handling in component-based multi-mode systems. In: Proceedings of CBSE 2012, Bertinoro, Italy. ACM, pp 183–188. June 2012
Acknowledgments
This work was partially supported by the Grant Agency of the Czech Republic Project P202/11/0312, partially supported by the Charles University GAUK Project 378111, and partially supported by Charles University institutional funding SVV-2013- 267312.
Author information
Authors and Affiliations
Corresponding author
Additional information
P. Hošek and M. Malohlava work done while at Charles University, Faculty of Mathematics and Physics.
Rights and permissions
About this article
Cite this article
Pop, T., Hnětynka, P., Hošek, P. et al. Comparison of component frameworks for real-time embedded systems. Knowl Inf Syst 40, 127–170 (2014). https://doi.org/10.1007/s10115-013-0627-9
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10115-013-0627-9