Publications

Towards microservices architecture to transcode videos in the large at low costs, 2016 International Conference on Telecommunications and Multimedia (TEMU), 25-27 July, Heraklion, Crete, Greece, INSPEC Accession Number: 16263932, IEEE 2016, Pages: 1-6, DOI: 10.1109/TEMU.2016.7551918

Authors: Olivier Barais, Johann Bourcier, Yérom-David Bromberg, Christophe Dion

Abstract: The increasing popularity of videos over Internet, combined with the wide heterogeneity of various kinds of end users' devices, imposes strong requirements on the underlying infrastructure and computing resources to meet the users expectations. In particular, designing an adequate transcoding workflow in the cloud to stream videos at large scale is: (i) costly, and (ii) complex. By inheriting key concepts from the software engineering domain, such as separation of concerns and microservice architecture style, we are giving our experience feedbacks of building both a low cost and efficient transcoding platform over an ad hoc computing cloud built around a rack of Raspberry Pis.

ScapeGoat: Spotting Abnormal Resource Usage in Component-based Reconfigurable Software Systems, Journal of Systems and Software, Volume 122, Elsevier, December 2016, Pages 398–415, DOI: 10.1016/j.jss.2016.02.027

Authors: I. Gonzalez-Herrera, J. Bourciera, E. Dauberta, W. Rudametkinb, O. Baraisa, F. Fouquetc, J.M. Jézéquela, B. Baudrye

Abstract: Modern component frameworks support continuous deployment and simultaneous execution of multiple software components on top of the same virtual machine. However, isolation between the various components is limited. A faulty version of any one of the software components can compromise the whole system by consuming all available resources. In this paper, we address the problem of efficiently identifying faulty software components running simultaneously in a single virtual machine. Current solutions that perform permanent and extensive monitoring to detect anomalies induce high overhead on the system, and can, by themselves, make the system unstable. In this paper we present an optimistic adaptive monitoring system to determine the faulty components of an application. Suspected components are finely analyzed by the monitoring system, but only when required. Unsuspected components are left untouched and execute normally. Thus, we perform localized just-in-time monitoring that decreases the accumulated overhead of the monitoring system. We evaluate our approach on two case studies against a state-of-the-art monitoring system and show that our technique correctly detects faulty components, while reducing overhead by an average of 93%.

A Generative Middleware for Heterogeneous and Distributed Services, 2016 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE), 5-8 April, 2016, Venice, Italy, INSPEC Accession Number: 16104262, IEEE 2016, Pages: 107-116, DOI: 10.1109/CBSE.2016.12

Authors: Brice Morin, Franck Fleurey, Knut Eilif Husa, Olivier Barais

Abstract: Modern software-based services increasingly rely on a highly heterogeneous and dynamic interconnection of platforms and devices offering a wide diversity of capabilities ranging from cloud server with virtually unlimited resources down to microcontrollers with only a few KB of RAM. This paper motivates the fact that no single software framework or software engineering approach is suited to span across this range, and proposes an approach which leverages the latest advances in model-driven engineering, generative techniques and models@runtime in order to tame this tremendous heterogeneity. This paper presents a set of languages dedicated to the integration, deployment and continuous operation of existing libraries and components already available and implemented in various languages. The proposed approach is validated on an industrial case study in the eHealth domain, implemented by an industrial partner that provide an qualitative evaluation of the approach. This case study involves a large number of sensors, devices and gateways based on Rasperry Pi, Intel Edison and Arduino.

KevoreeJS: Enabling dynamic software reconfiguration in the Browser, 2016 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE), 5-8 April, 2016, Venice, Italy, INSPEC Accession Number: 16104249, IEEE 2016, Pages: 49-58, DOI: 10.1109/CBSE.2016.20

Authors: Maxime Tricoire, Olivier Barais, Manuel Leduc, Francois Fouquet, Gerson Sunyé, Brice Morin, Johann Bourcier, Grégory Nain, Ludovic Mouline 

Abstract: The architecture of classic productivity software are moving from a traditional desktop-based software to a client server architecture hosted in the Cloud. In this context, web browsers behave as application containers that allow users to access a variety of Cloud-based applications and services, such as IDEs, Word processors, Music Collection Managers, etc. As a result, a significant part of these software run in the browser and accesses remote services. A lesson learned from development framework used in distributed applications is the success of pluggable architecture pattern as a core architecture concept, i.e., a Software Architecture that promotes the use of Pluggable Module to dynamically plug. Following this trend, this paper discusses the main challenges to create a component-based platform supporting the development of dynamically adaptable single web page applications. This paper also presents an approach called KevoreeJS based on models@runtime to control browser as component platform which address some of these challenges. We validate this work by presenting the design of a dashboard for sensor based system and highlighting the capacity of KevoreeJS to dynamically choose the placement of code on the server or client side and how KevoreeJS can be used to dynamically install or remove running components.

Squirrel: Architecture Driven Resource Management, Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC'16), April 4-8, 2016, Pisa, Italy, ISBN: 978-1-4503-3739-7, ACM, 2016, Pages: 1329-1336, DOI: 10.1145/2851613.2851768

Authors: Inti Gonzalez-Herrera, Johann Bourcier, Walter Rudametkin, Olivier Barais, Francois Fouquet 

Abstract: Resource management is critical to guarantee Quality of Service when various stakeholders share the execution environment, such as cloud or mobile environments. In this context, providing management techniques compatible with standard practices, such as component models, is essential. Resource management is often realized through monitoring or process isolation (using virtual machines or system containers). These techniques (i) impose varying levels of overhead depending on the managed resource, and (ii) are applied at different abstraction levels, such as processes, threads or objects. Thus, mapping components to system-level abstractions in the presence of resource management requirements can lead to sub-optimal systems. We propose Squirrel, an approach to tune component deployment and resource management in order to reduce management overhead. At runtime, Squirrel uses an architectural model annotated with resource requirements to guide the mapping of components to system abstractions, providing different resource management capabilities and overhead. We present an implementation of Squirrel, using a Java component framework, and a set of experiments to validate its feasibility and overhead. We show that choosing the right component-to-system mappings at deployment-time reduces performance penalty and/or volatile main memory use.

A Novelty Search-based Test Data Generator for Object-oriented ProgramsProceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation (GECCO Companion '15), 11-15 July, 2015, Madrid, Spain, ISBN: 978-1-4503-3488-4, ACM, 2015, Pages: 1359-1360, DOI: 10.1145/2739482.2764716

Authors: Mohamed Boussaa, Olivier Barais, Gerson Sunye, and Benoit Baudry 

Abstract: In search-based structural testing, meta-heuristic search techniques have been frequently used to automate test data generation. In this paper, we introduce the use of novelty search algorithm to the test data generation problem based on statement-covered criterion. In this approach, we seek to explore the search space by considering diversity as the unique objective function to be optimized. In fact, instead of having a fitness-based selection, we select test cases based on a novelty score showing how different they are compared to all other solutions evaluated so far.

A Novelty Search Approach for Automatic Test Data Generation, 8th International Workshop on Search-Based Software Testing (SBST) 2015, 18-19 May, 2015, Firenze, Italy, IEEE, 2015, Pages: 40-43.

Authors: Mohamed Boussaa, Olivier Barais, Gerson Sunye, Benoit Baudry

Abstract: In search-based structural testing, metaheuristic search techniques have been frequently used to automate the test data generation. In Genetic Algorithms (GAs) for example, test data are rewarded on the basis of an objective function that represents generally the number of statements or branches covered. However, owing to the wide diversity of possible test data values, it is hard to find the set of test data that can satisfy a specific coverage criterion. In this paper, we introduce the use of Novelty Search (NS) algorithm to the test data generation problem based on statement-covered criteria. We believe that such approach to test data generation is attractive because it allows the exploration of the huge space of test data within the input domain. In this approach, we seek to explore the search space without regard to any objectives. In fact, instead of having a fitness-based selection, we select test cases based on a novelty score showing how different they are compared to all other solutions evaluated so far.

Taming Heterogeneity and Distribution in sCPSIEEE/ACM 1st International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS), 17 May 2015, Florence, Italy, INSPEC Accession Number:15378544, IEEE, 2015, Pages: 40-43, DOI: 10.1109/SEsCPS.2015.15

Authors: Brice Morin, Franck Fleurey, Olivier Barais 

Abstract: Smart Cyber Physical Systems (sCPS) are composed by a highly heterogeneous interconnection of platforms and devices offering a wide diversity of capabilities ranging from cloud server with virtually unlimited resources down to microcontrollers with only a few KB of RAM. This paper motivates the fact that no single software framework or software engineering approach is suited to span across this range, and proposes an approach which leverages the latest advances in model-driven engineering and models runtime in order to manage the heterogeneous and distributed nature of sCPS.

Multitier Diversification in Web-Based Software Applications, IEEE Software (journal article), Volume 32 (Issue 1), IEEE, Jan.-Feb. 2015, Pages 83-90 DOI: 10.1109/MS.2014.150

Authors: Allier, S. ; Barais, O. ; Baudry, B. ; Bourcier, J. ; Daubert, E. ; Fleurey, F. ; Monperrus, M. ; Hui Song ; Tricoire, M.

Abstract: Web application development benefits massively from modular architectures and reuse. This excellent software engineering practice is also the source of a new form of monoculture in application-level co de, which creates a potential risk for dependability. Researchers propose using software diversification in multiple components of Web applications to reconcile the tension between reuse and dependability. This article identifies key enablers for the effective diversification of software, especially at the application-code level. It's possible to combine different software diversification strategies, from deploying different vendor solutions to fine-grained code transformations, to provide different forms of protection.

Development and testing of a wearable multisensor device enabling continuous monitoring, 2014 IEEE-EMBS International Conference on Biomedical and Health Informatics (BHI), 1-4 June 2014, Valencia, Spain, Page(s): 213 - 218, DOI: 10.1109/BHI.2014.6864342

Authors: Trine M. Seeberg-IEEE Member, Jon Vedum-IEEE Member, Mariann Sandsund, Hanne O. Austad, Anders E. Liverud, Astrid-Sofie B. Vardøy, Ingrid Svagård, Frode Strisland

Abstract: This paper reports on the development and testing of a wearable device intended as a component in an ambulatory system for health monitoring of physical rehabilitation patients. The device measures heart rate, skin temperature, activity level and posture on the user’s chest. The wearable device has been run through a set of verification tests and the accuracy has been validated in controlled environment on 12 healthy volunteers. A long term user pilot with 5 congestive heart failure patients and their nurses was performed to test the whole system. The conclusion from the performed tests is that the developed wearable multisensor monitoring device is reliable, accurate, easy to use and fit for the purpose.

Scapegoat: An Adaptive Monitoring Framework for Component-Based Systems, 2014 IEEE/IFIP Conference on Software Architecture (WICSA), 7-11 April 2014, Sydney, NSW, Page(s): 67 - 76, DOI: 10.1109/WICSA.2014.49

Authors: Gonzalez-Herrera, I.; Bourcier, J. ; Daubert, E. ; Rudametkin, W. ; Barais, O. ; Fouquet, F. ; Jezequel, J.-M

Abstact: Modern component frameworks support continuous deployment and simultaneous execution of multiple software components on top of the same virtual machine. However, isolation between the various components is limited. A faulty version of any one of the software components can compromise the whole system by consuming all available resources. In this paper, we address the problem of efficiently identifying faulty software components running simultaneously in a single virtual machine. Current solutions that perform permanent and extensive monitoring to detect anomalies induce high overhead on the system, and can, by themselves, make the system unstable. In this paper we present an optimistic adaptive monitoring system to determine the faulty components of an application. Suspected components are finely instrumented for deeper analysis by the monitoring system, but only when required. Unsuspected components are left untouched and execute normally. Thus, we perform localized just-in-time monitoring that decreases the accumulated overhead of the monitoring system. We evaluate our approach against a state-of-the-art monitoring system and show that our technique correctly detects faulty components, while reducing overhead by an average of 80%.

Designing and evolving distributed architecture using kevoree, Proceedings of the 10th international ACM Sigsoft conference on Quality of software architectures (QoSA '14), Pages 147-148, ACM, New York, NY, USA ©2014, ISBN: 978-1-4503-2576-9, DOI: 10.1145/2602576.2611461

Authors: François Fouquet, Grégory Nain, Erwan Daubert, Johann Bourcier, Olivier Barais, Noël Plouzeau, Brice Morin

Abstract: Modern software applications are distributed and often operate in dynamic contexts, where requirements, assumptions about the environment, and usage profiles continuously change. These changes are difficult to predict and to anticipate at design time. The running software system should thus be able to react on its own, by dynamically adapting its behavior, in order to sustain a required quality of service. A key challenge is to provide the system with the necessary flexibility to perform self-adaptation, without compromising dependability. Models@Runtime is an emerging paradigm aiming at transferring traditional modeling activities (focusing on quality, verification, and so on) performed by humans, to the running system. In this trend, Kevoree provides a models@ runtime platform to design heterogeneous, distributed and adaptive applications based on the component based software engineering paradigm. At the end of this tutorial, applicants will be able to develop and assemble new components and communication channel to design complex self-adaptable distributed architectures by reusing existing piece of code.

Co-development of heterogeneous and distributed services with ThingMLEclipseCon 2014, San Francisco, USA

Authors: Franck Fleurey, Brice Morin, OIivier Barais

AbstractThis lightning talk introduces ThingML, an open source, practical model-driven software engineering toolchain composed of a text-based editor developed with the Eclipse Modeling Framework and EMFText, and a set of compilers implemented in Scala.

Latest News

TelluCloud innovation developed in the HEADS project at EC's stand in CEBIT 2017

Mar 20

We are very glad to announce that Tellu AS has officially been selected as one of the top inn

HEADS Safe@Home case study at Telenor EXPO

Dec 15

HEADS project consortium is setting up a stand of eHealth services related to the HEADS Safe@Home case study at...

HEADS upcoming meeting and tutorial, and Deutsche Welle presence

Nov 14

On 22-24 November 2016, HEADS project consortium is hosting its 11th plenary meeting at the...