Section: Overall Objectives

Overall objectives

The overall goal of the Sardes project-team is to develop software engineering and software infrastructure (operating system, virtual machine, middleware) foundations for the construction of provably dependable, self-manageable distributed systems.

To contribute to the above goal, the project-team has three major objectives:

  1. To develop component-based software technology, that allows the construction of efficient, dynamically configurable systems, and that relies on a well-defined formal foundation.

  2. To develop a “language-based” approach to the construction of configurable, provably dependable operating systems and distributed software infrastructures.

  3. To develop algorithms and control techniques required to build scalable, self-manageable distributed systems.

In line with these objectives, the project-team organizes its research along four major areas:

  • Languages and foundations for component systems Work in this area focuses on language support and semantical foundations for distributed component-based systems, with two main goals: (1) the development of a new generation of reflective software component technology with a formal semantical basis, and extensive language support in the form of architecture description and programming languages for dynamic distributed software architectures; (2) the study of process calculus foundations and coinductive proof techniques for distributed component-based programs.

  • System support for multiscale systems Work in this area focuses on operating system and middleware services required for the construction of component-based systems at different scales (multicore systems on chip, and peer-to-peer systems), with two main goals: (1) to develop algorithms and operating system functions required for the support of efficient event-based concurrency and component reconfiguration in MPSoCs; (2) to develop algorithms and middleware functions required for the deployment, configuration and operation of applications in realistic peer-to-peer environments, typically exploiting an epidemic approach.

  • Control for adaptive and self-managed systems Workk in this area focuses on the exploitation and development of discrete and continuous control techniques for the construction of adaptive component-based system. Application domains considered for this theme are, respectively, embedded systems and performance management for application server clusters.

  • Virtual machine for component systems Work in this area focuses on the development of a component-based virtual machine for embedded systems, with two main goals: (1) to develop an extended instruction set for component support, including support for dynamic configuration, orthogonal component persistence, and isolation; (2) to develop a native implementation of the virtual machine, on resource-constrained hardware.