DiaSuite -- A Tool-Based Development Methodology For Pervasive Computing Applications

Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it.

A Tool-based Development Methodology

DiaSuite is a suite of tools covering the development life-cycle of a pervasive computing application:

  • Defining an application area. First, an expert defines a catalog of entities, whether hardware or software, that are specific to a target area. These entities serve as building blocks to develop applications in this area. They are gathered in a taxonomy definition, written in the taxonomy layer of the DiaSpec language.
  • Designing an application. Given a taxonomy, the architect can design and structure applications. To do so, the DiaSpec language provides an application design layer. This layer is dedicated to an architectural pattern commonly used in the pervasive computing domain. Describing the architecture application allows to further model a pervasive computing system, making explicit its functional decomposition.
  • Implementing an application. We leverage the taxonomy definition and the architecture description to provide dedicated support to both the entity and the application developers. This support takes the form of a Java programming framework, generated by the DiaGen compiler. The generated programming framework precisely guides the developer with respect to the taxonomy definition and the architecture description. It consists of high-level operations to discover entities and interact with both entities and application components. In doing so, it abstracts away from the underlying distributed technologies, providing further separation of concerns.
  • Testing an application.DiaGen generates a simulation support to test pervasive computing applications before their actual deployment. An application is simulated in the DiaSim tool, without requiring any code modification. DiaSim provides an editor to define simulation scenarios and a 2D-renderer to monitor the simulated application. Furthermore, simulated and actual entities can be mixed. This hybrid simulation enables an application to migrate incrementally to an actual environment.
  • Deploying a system. Finally, the system administrator deploys the pervasive computing system. To this end, a distributed systems technology is selected. We have developed a back-end that currently targets the following technologies: Web Services, RMI, SIP and OSGI. This targeting is transparent for the application code. The variety of these target technologies demonstrates that our development approach separates concerns into well-defined layers.

This development cycle is summarized below.

 

DiaSpec: a Domain-Specific Language for Networked Entities

The core of the DiaSuite development environment is the domain specific language called DiaSpec and its compiler DiaGen.

A Two-Level Design Language

DiaSpec is composed of two layers.

  • The Taxonomy Layer allows the declaration of entities that are relevant to the target application area. An entity consists of sensing capabilities, producing data, and actuating capabilities, providing actions. Accordingly, an entity description declares a data source for each one of its sensing capabilities. As well, an actuating capability corresponds to a set of method declarations. An entity declaration also includes attributes, characterizing properties of entity instances. Entity declarations are organized hierarchically allowing entity classes to inherit attributes, sources and actions. A taxonomy allows separation of concerns in that the expert can focus on the concerns of cataloging area-specific entities. The entity developer is concerned about mapping a taxonomical description into an actual entity, and the application developer concentrates on the application logic.
  • The Architecture Layer is based on an architectural pattern commonly used in the pervasive computing domain. It consists of context components fueled by sensing entities. These components process gathered data to make them amenable to the application needs. Context data are then passed to controller components that trigger actions on entities. Using an architecture description enables the key components of an application to be identified, allowing their implementation to evolve with the requirements (e.g., varying light management implementations in a controller component to optimize energy consumption).

The DiaSpec Compiler

DiaGen is the DiaSpec compiler that performs both static and runtime verifications over DiaSpec declarations and produces a dedicated programming framework that guides and eases the implementation of components. The generated framework is independent of the underlying distributed technology. As of today, DiaGen supports multiple targets: Local, RMI, SIP, Web Services and OSGI.

DiaSim: a Parametrized Simulator for Pervasive Computing Applications

Pervasive computing applications involve both software and integration concerns. This situation is problematic for testing pervasive computing applications because it requires acquiring, testing and interfacing a variety of software and hardware entities. This process can rapidly become costly and time-consuming when the target environment involves many entities. To ease the testing of pervasive applications, we are developing a simulator for pervasive computing applications: DiaSim. To cope with widely heterogeneous entities, DiaSim is parameterized with respect to a DiaSpec specification describing a target pervasive computing environment. This description is used to generate with DiaGen both a programming framework to develop the simulation logic and an emulation layer to execute applications. Furthermore, a simulation renderer is coupled to DiaSim to allow a simulated pervasive system to be visually monitored and debugged. The simulation renderer is illustrated below.

 

 

DiaSuiteBox: an Open Orchestration Platform

The DiaSuiteBox platform runs an open-ended set of applications leveraging a range of appliances and web services. Our solution consists of a dedicated development environment, a certifying application store, and a lightweight runtime platform. This solution is based on the DiaSuite project.

The DiaSuiteBox platform can be embedded in a small plug-computer or deployed in the cloud. Thanks to the application store and the developer community, the platform is fed by a full offer of new innovative applications. During the submission process, an application is automatically analyzed and checked in order to be certified. The user is ensured the behavior of its applications are innocuous and correct with respect to the provided information. Finally, DiaSuiteBox provides an extensible software architecture. This allows the easily connect new device technologies to the platform. For example, the support for new wireless communication technologies such as Zigbee, Z-Wave or Sigfox can be easily added to the DiaSuiteBox platform.

The DiaSuite manual can be found here.

 


Contributors

 


Artefacts

 


Publications

2015

Conference papers

titre
Orchestrating Masses of Sensors: A Design-Driven Development Approach
auteur
Milan Kabáč, Charles Consel
article
14th International Conference on Generative Programming: Concepts & Experience (GPCE'15), Oct 2015, Pittsburgh, Pennsylvania, United States. GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, 〈10.1145/2814204.2814226〉
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-01225665/file/main.pdf BibTex

2014

Journal articles

titre
DiaSuite: a Tool Suite To Develop Sense/Compute/Control Applications
auteur
Benjamin Bertran, Julien Bruneau, Damien Cassou, Nicolas Loriant, Emilie Balland, Charles Consel
article
Science of Computer Programming, Fourth special issue on Experimental Software and Toolkits, Elsevier, 2014, Science of Computer Programming, 79, 〈10.1016/j.scico.2012.04.001〉
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00702909/file/diasuite.pdf BibTex

2013

Journal articles

titre
DiaSim: A Simulator for Pervasive Computing Applications
auteur
Julien Bruneau, Charles Consel
article
Software: Practice and Experience, Wiley, 2013, 43 (8), 〈10.1002/spe.2130〉
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00715745/file/simulation.pdf BibTex

Conference papers

titre
Design-Driven Development Methodology for Resilient Computing
auteur
Quentin Enard, Miruna Stoicescu, Emilie Balland, Charles Consel, Laurence Duchien, Jean-Charles Fabre, Matthieu Roy
article
CBSE'13: Proceedings of the 16th International ACM Sigsoft Symposium on Component-Based Software Engineering, Jun 2013, Vancouver, Canada. 2013
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00814298/file/paper.pdf BibTex
titre
Design-driven Development of Dependable Applications: A Case Study in Avionics
auteur
Quentin Enard, Stéphanie Gatti, Julien Bruneau, Young-Joo Moon, Emilie Balland, Charles Consel
article
César Benavente-Peces and Joaquim Filipe. PECCS - 3rd International Conference on Pervasive and Embedded Computing and Communication Systems, Feb 2013, Barcelona, Spain. SciTePress, 2013
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00794329/file/autopilot.pdf BibTex
titre
A Case for Human-Driven Software Development
auteur
Emilie Balland, Charles Consel, Bernard N'Kaoua, Hélène Sauzeon
article
ICSE'13: Proceedings of the 35th International Conference on Software Engineering (NIER track), May 2013, San Francisco, United States. 2013
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00814296/file/paper.pdf BibTex

2012

Journal articles

titre
Towards a Tool-based Development Methodology for Pervasive Computing Applications
auteur
Damien Cassou, Julien Bruneau, Charles Consel, Emilie Balland
article
IEEE TSE: Transactions on Software Engineering, IEEE Computer Society, 2012, 38 (6), pp.1445-1463. 〈10.1109/TSE.2011.107〉
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00683210/file/TSE-2010-06-0178.R3_Cassou.pdf BibTex

Conference papers

titre
An Experimental Study of A Design-driven, Tool-based Development Approach
auteur
Quentin Enard, Christine Louberry, Charles Consel, Xavier Blanc
article
User Evaluation for Software Engineering Researchers (USER), 2012, Zurich, Switzerland. 2012, 〈10.1109/USER.2012.6226581〉
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00715759/file/userEval.pdf BibTex
titre
Virtual Testing for Smart Buildings
auteur
Julien Bruneau, Charles Consel, Marcia O'Malley, Walid Taha, Wail Masry Hannourah
article
IE 2012 - 8th International Conference on Intelligent Environments, Jun 2012, Guanajuato, Mexico. 2012
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-00715753/file/uic2010.pdf BibTex

2011

Conference papers

titre
A Step-wise Approach for Integrating QoS throughout Software Development
auteur
Stéphanie Gatti, Emilie Balland, Charles Consel
article
FASE'11: Proceedings of the 14th European Conference on Fundamental Approaches to Software Engineering, Mar 2011, Sarrebruck, Germany. Springer, 6603, pp.217-231, 2011, Lecture Notes in Computer Science
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00561619/file/fase2011.pdf BibTex
titre
DiaSuite:A Paradigm-Oriented Software Development Approach (invited paper)
auteur
Charles Consel
article
20th ACM SIGPLAN workshop on Partial evaluation and program manipulation : PEPM'11, Jan 2011, Austin, TX, United States. ACM, pp.77-78, 2011, Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation. 〈10.1145/1929501.1929515〉
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00581652/file/pepm36kn-1.pdf BibTex
titre
Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications
auteur
Damien Cassou, Emilie Balland, Charles Consel, Julia Lawall
article
ICSE'11 - 33rd International Conference on Software Engineering, May 2011, Honolulu, HI, United States. ACM, ICSE'11: Proceedings of the 33rd International Conference on Software Engineering, pp.431-440, 2011, 〈10.1145/1985793.1985852〉
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00537789/file/icse2011.pdf BibTex

Reports

titre
Design-driven Development of Safety-critical Applications: A Case Study In Avionics
auteur
Julien Bruneau, Quentin Enard, Stéphanie Gatti, Emilie Balland, Charles Consel
article
[Technical Report] 2011
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00638203/file/autopilot.pdf BibTex

2010

Conference papers

titre
A Visual, Open-Ended Approach to Prototyping Ubiquitous Computing Applications
auteur
Zoé Drey, Charles Consel
article
Proceedings of the 8th IEEE Conference on Pervasive Computing and Communications (PERCOM'10), Mar 2010, Mannheim, Germany. 2010
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00484083/file/pantagruel-demo.pdf BibTex
titre
Open Platforms: New Challenges for Software Engineering
auteur
Emilie Balland, Charles Consel
article
PSIEtA'10: Proceedings of the International Workshop on Programming Support Innovations for Emerging Distributed Applications, Oct 2010, Reno, United States. ACM Digital Library, 2010
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00533721/file/psieta10.pdf BibTex
titre
A Domain-Specific Approach to Architecturing Error Handling in Pervasive Computing
auteur
Julien Mercadal, Quentin Enard, Charles Consel, Nicolas Loriant
article
OOPSLA: Conference on Object Oriented Programming Systems Languages and Applications, Oct 2010, Reno, United States. 2010
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00486930/file/p47-mercadal-1.pdf BibTex

2009

Conference papers

titre
A Generative Programming Approach to Developing Pervasive Computing Systems
auteur
Damien Cassou, Benjamin Bertran, Nicolas Loriant, Charles Consel
article
GPCE '09: Proceedings of the 8th international conference on Generative programming and component engineering, Oct 2009, Denver, CO, United States. ACM, pp.137-146, 2009
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00405819/file/gpce42-cassou.pdf BibTex
titre
DiaSim: A Parameterized Simulator for Pervasive Computing Applications
auteur
Wilfried Jouve, Julien Bruneau, Charles Consel
article
IEEE International Conference on Pervasive Computing and Communications, 2009 (Demo), Mar 2009, Galveston, United States. 2009
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00441351/file/diasim-percom-demo.pdf BibTex
titre
DiaSim: A Parameterized Simulator for Pervasive Computing Applications
auteur
Julien Bruneau, Wilfried Jouve, Charles Consel
article
6th International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services (Mobiquitous'09), Jul 2009, Toronto, Canada. IEEE, 2009
Accès au texte intégral et bibtex
https://hal.inria.fr/inria-00403421/file/DiaSim.pdf BibTex

Other publications

titre
A Parameterized Simulator for Pervasive Computing Applications
auteur
Julien Bruneau, Alexandre Blanquart, Nicolas Loriant, Charles Consel
article
Demonstration at ICPS'09. 2009
Accès au bibtex
BibTex