An Integrated Approach for Designing and Developing Component-Based Real-Time Java Systems
Total Page:16
File Type:pdf, Size:1020Kb
Departement´ de formation doctorale en informatique Ecole´ Doctorale SPI Lille UFR IEEA SOLEIL: An Integrated Approach for Designing and Developing Component-based Real-time Java Systems THESE` present´ ee´ et soutenue publiquement le 14 September 2009 pour l’obtention du Doctorat de Universite´ Lille I Sciences et Technologies (specialit´ e´ informatique) par Aleˇs PLSEKˇ Composition du jury : Rapporteurs : M. Frantisekˇ PLA´ SILˇ , Professeur Charles University M. Laurent PAUTET, Professeur Telecom ParisTech Examinateurs : M. Pierre BOULET, Professeur Universit´eLille I M. Jean-Charles FABRE, Professeur INP Toulouse M. Franc¸ois TERRIER, Professeur CEA LIST Saclay Directeurs de th`ese: M. Lionel SEINTURIER, Professeur Universit´eLille I M. Philippe MERLE, Docteur INRIA Nord Europe INRIA LILLE -NORD EUROPE - Laboratoire d’Informatique Fondamentale de Lille Míši... i ii Acknowledgments I would like to start by thanking the members of the jury, especially my two reporters Prof. František Plášil and Prof. Laurent Pautet for their time and valuable comments on the document. I would also like to express my gratitude to the examiners, Prof. Pierre Boulet, Prof. Jean-Charles Fabre and Prof. François Terrier. Furthermore, I am especially indebted yo my two supervisors, Prof. Lionel Seinturier and Dr. Philippe Merle, for their guidance and advice during the course of my PhD. This work would not be possible without three other persons. Three years ago, Vladimir Mencl sent me an email about "a PhD position in Lille", and consequently he supported my can- didacy. I would never start without him. And during these last three years, Frederic Loiret dis- cussed and worked closely with me, day by day. Frederic, thank you for playing devil’s advocate for such a long time and for not only being a great colleague but also a real friend. Addition- ally, thanks to the first French guy I have ever met – Nicolas Pessemier, for letting me stay in his apartment during my first months in Lille. All of this happened thanks to the ADAM family, all the current and past members of the team, making the daily work such a pleasure and giving me so much energy and inspiration. To all of them I owe my gratitude: Xavier Blanc, Pierre Carton, Yann Davin, Corinne Davoust, Christophe Demarey, Malika Debuysschere, Nicolas Dolet, Jérémy Dubus, Guillaume Dufr˛ene, Maja D’Hondt, Johan Fabry, Areski Flissi, Damien Fournier, Guillaume Libersat, Michal Mal- ohlava, Anne-Françoise Le Meur, Garbriel Hermosillo and Patricia Jaimes Jimenez, Naouel Moha, Carlos Nougera and Angela Lozano, Ellen Van Paeschen, Alban Tiberghien, Carlos Parra, Ro- main Rouvoy, Daniel Romero, Tom Mens, Guillaume Waignier, and mostly to our protective angel navigating us through the waters of research, Laurence Duchien. During this three years I have had the luck of encountering numerous colleges who encour- aged me and to whom I could look up to. I’d like to graciously acknowledge them and to name at least a few: Alexander Bergel, Tom Van Cutsem, Tomas Kalibera, Marek Prochazka, Ondrej Roh- lik, Jiri Adamek, Pavel Parizek, Tomas Bures, Serena Fritsch, Alexander Katz, Rafael Tolezano, Luca Santinelli, and most importantly Oliver Schuetze. Specially, I would like to thank Prof. Jan Vitek for providing us the source codes of the Colli- sion Detector system. In a more personal level, I would like to thank my parents and family for their unconditional love and support. I will always remember all my friends in France who made me feel so wel- comed there, and thanks also to all my czech friends for staying in touch with me no matter the distance between us. Aleš Plšek August 2009 iii iv Abstract Over the last decade we witness a steady grow of complexities in real-time systems. Today, developers have to face real-time constraints in almost every software system, from embedded software to financial systems, internet services, and computer entertainment industry. To address this widespread challenge, the Real-Time Specification for Java (RTSJ) has been proposed. How- ever, RTJS itself introduces many nonintuitive rules and restrictions that doom its programming model to be highly error-prone. Moreover, in contrast to the approaches for mainstream soft- ware development, the engineering technologies, tools, and frameworks for real-time systems are nowhere near as groundbreaking. The vision behind this dissertation is to ultimately close the gap between real-time program- ming and today’s software technology. Therefore, this dissertation investigates scalable software engineering techniques for RTSJ programming. Our fundamental philosophy is to introduce high-level abstractions of RTSJ concepts in order to leverage development of real-time Java sys- tems. As the first contribution of this thesis, we introduce domain components - an approach to uni- fied expression and manipulation of domain-specific concerns along the software development lifecycle. We use the domain components to construct high-level abstractions of RTSJ specifics that ultimately allow developers to achieve full separation of functional and RTSJ-specific con- cerns in the development lifecycle. We thus allow developers to reuse and tailor the systems for variously constraining real-time requirements. Second, we propose SOLEIL- a component framework for development of RTSJ systems, the framework introduces a development methodology mitigating the complexities of the RTSJ pro- gramming model. Furthermore, we introduce the HULOTTE toolset for automatic instantiation of developed applications. In this process, the functional implementation is separated from RTSJ- specific code which is automatically instantiated. In consequence, the development process is fully transparent, RTSJ complexities are hidden from the developers, and the process itself highly resembles to the standard Java development. Finally, the domain component concept and the RTSJ rules and restrictions are defined in the Alloy language which allows us to formally verify that the development process and outcoming software systems are compliant with RTSJ. To validate the approach, we conduct several case studies challenging our proposal from dif- ferent perspectives. First, performed benchmarks show that the overhead of the SOLEIL frame- work is minimal in comparison to manually written object-oriented applications while providing more extensive functionality. Second, considering the state-of-the-art RTSJ programming meth- ods, we achieve better separation of functional and RTSJ concerns, thus increasing efficiency of the development process. Finally, we demonstrate universality of the domain component con- cept by showing its ability to address various domain-specific challenges. Keywords: CBSE, RTSJ, Real-Time Programming, Component Framework Résumé Au cours de la derniˇcre décennie, nous observons une croissance constante de la complexité des systˇcmestemps-réel. Aujourd’hui, les développeurs doivent faire face aux contraintes imposées par le domaine dans pratiquement toutes les classes de logiciels, des systˇcmesembarqués aux systˇcmesd’information ou multimédias. Pour faire face ´rce défi, les spécifications Java pour le temps-réel (RTSJ) ont été proposées. Cependant, ces spécifications introduisent de nombreuses rˇcgleset restrictions non-intuitives résultant en un modˇclede programmation hautement sujet aux erreurs. En outre, les technologies, outils et canevas de conception pour les systˇcmestemps- réel sont loin d’égaler ceux issus de l’ingénierie logicielle pour les processus de développement traditionnels. La vision qui sous-tend cette thˇcsetient ´rréduire l’écart entre la programmation temps-réel et les technologies innovantes issues de l’ingénierie logicielle. Notre philosophie est d’introduire des abstractions de haut-niveau en accord avec les concepts spécifiés par RTSJ pour faciliter le développement de systˇcmesJava temps-réel. Une premiˇcre contribution de cette thˇcseconsiste en l’introduction de "composants de domaine" permettant de maniˇcre unifiée l’expression et la manipulation de préoccupations spécifiques ´run domaine tout le long du cycle de vie du logiciel. Nous utilisons les composants de domaine pour capturer les concepts propres ´rRTSJ, permettant une séparation complˇcteentre les préoccupations fonctionnelles d’une application et celles rela- tives ´rRTSJ. En second lieu, nous proposons SOLEIL, un canevas de conception orienté composants pour le développement de systˇcmesRTSJ. Ce canevas introduit un cadre méthodologique allégeant la complexité introduite par le modˇclede programmation de RTSJ. En outre, nous présentons HULOTTE, un ensemble d’outils pour la génération des infrastructures développées avec notre approche. Grâce ´rce processus de génération, l’implantation des fonctionnalités des applications sont découplées des implantations spécifiques ´rRTSJ, ces derniˇcres étant générées automatique- ment. En conséquence, le processus de développement est entiˇcrement transparent, la complex- ité relative ´rRTSJ est cachée au développeur final. Le processus que nous proposons s’approche alors d’un processus classique de développement Java. Enfin, les concepts capturés par les com- posants de domaine ainsi que les rˇcgleset restrictions inhérentes ´rRTSJ sont formalisées ´rl’aide du langage Alloy, permettant de vérifier la compatibilité des logiciels développés avec notre ap- proche avec les spécification RTSJ. Mots-clés: Composant, Infrastructure orientée composant, Modélisation, Temps-réel, Java Temps- réel Table of Contents List of Tables xv Chapter 1 Introduction1