Section: New Software and Platforms
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 in the Figure 2 .
DiaSuite is developed as a research project by the Inria/LaBRI Phoenix research group. The DiaSuite approach covers the development life-cycle of a pervasive computing application. It takes the form of a methodology, supported by (1) a high-level design language and (2) a suite of tools covering the development life-cycle of a pervasive computing application. Specifically, we have developed a design language dedicated to describing pervasive computing systems and a suite of tools providing customized support for each development stage of a pervasive computing system, namely, implementation (e.g., programming support), testing (e.g., unit test, 2D simulator), and deployment (e.g., distribution platforms like SIP and Web Services).