This section describes only the technical workpackages of the MANCOOSI project. The workpackages omitted from this section concern project management, dissemination, and collaboration with other projects.
A model describing a complex system and the interdependencies occurring among its assets can be of crucial relevance for the management of system configurations. In fact, it permits to analyze rigorous descriptions to verify that configuration scripts provided with packaged components can safely be performed with respect to the abstraction of the system provided by the model. Also, the evolution and the modifications the system underwent during its life cycle can consistently be recorded. Models can be used to perform “upgrades from external sources”, that is to inspect the state of the system and to understand what is needed by an unpackaged software in order to be recompiled and installed in the system.
The specification of precise models that can be automatically analyzed and manipulated requires a precise definition of the abstract syntax of models and the interrelationships between model elements. In particular, metamodeling allows the construction of a collection of concepts within a certain domain formalized in a metamodel which describes the common properties of its instances according to the underlying semantics. A model is said to conform to its metamodel like a program conforms to the grammar of the programming language in which it is written.
A complex system may be composed of many loosely coupled machines. Similarly, knowledge about the properties of software pieces may be distributed among various external sources. A flexible model that accounts for such distributed scenarios allows for comprehensive system management.
By using well known metamodeling formalisms and technologies (e.g., OMG’s Meta-Object Facility, Eclipse Modeling Framework), in conjunction with distributed P2P data management technology, one of the objectives of this work package is to build a metamodel that enables the modeling of the relevant aspects of a complex system. Since it is not possible to specify in detail every single part of systems, trade-offs between model completeness and usefulness must also be evaluated in order to have a good model that fits well with them. Systems will be described under software and hardware perspectives even though, due to inherent limitations in hardware description and metadata, a limited set of drivers/hardware will be taken into account. The reference platform will be GNU/Linux systems where a high degree of complexity is already present, and which constitute a challenging target to be investigated.
The models that conform to the metamodel above should be “versionable”, i.e., models should be “diff-friendly” and it should be easy to represent changes from a version to another in order to isolate possible “failure points” and conflicts. Current approaches to model versioning are often limited to UML and proprietary representation, thus this work package will provide the support for representing model differences that will be taken into account by WP3 to manage the evolution that a system undergoes throughout its life-cycle. The evolution of the system must necessarily reflect how configuration scripts adopted while installing or removing a package affect the overall state of the system. Thus, one of the goals of this work package is to investigate how to keep both the system and the model synchronized. In other words, the model describing the system after a package installation or removal is automatically obtained by a model transformation which captures the modifications due to the package configuration script.
The main objective of this package is to provide the technology for handling system evolution in a correct and safe way. By using the model developed in work package 2, the goal is to provide tools and algorithms to keep track of the evolution of the system and to revert the system to previous (working) states and retrieve it in an efficient way (for instance, using if applicable P2P technology).
We want to develop a transactional model of upgradeability that will allow to roll-back some parts of a possibly long upgrade history, restoring the relevant part of the previous configuration. Roll-back should then not only support the possibility of safely fall-back on the previous configuration of the system in case the upgrade process is interrupted, but the possibility of rolling back at any time in the future.
Three different levels of changes can be monitored: changes introduced by the copy of the files included in the new version of the package, changes introduced by the installation scripts and changes introduced by the user or by the applications after the installation.
As mentioned above, in the general case complex systems may be composed of many loosely coupled machines and we will strive to account for such a distributed setting.
The transactional update framework may be further extended to provide a better hardware support: drivers may be included in the packages and package constrains provide a mechanism for triggering a new driver installation when new hardware is added or removed. Since a complete hardware support would depend on having specific metadata on every hardware related package, WP3 will only address a testbed with a limited set of drivers.
This workpackage is in charge of developing tools and algorithms to solve the upgradeability problem based on state-of-the-art knowledge coming from the academic partners.
Different state-of-the-art techniques could apply to tackle the upgradeability problem with more or less success. We want to be able to test a large number of optimization algorithms and tools on instances of upgrade problems, to capitalize the experience coming from the research community. A modular platform is a key issue in this process : such a flexibility is a requirement to allow for a quick integration and evaluation of a wide range of different possible techniques and algorithms on actual instances of upgrade problems, that will be provided partly by WP5. A significant part of the partner’s efforts will be devoted to the development of the Mancoosi modular platform.
The Mancoosi tools will also benefit from the partner’s research efforts to develop dedicated algorithms. Though different techniques might pretend to solve the upgradeability problem, a subtle tradeoff between efficiency and the quest for a proper solution is required to give the right answer to this problem. Thus, the design of a "fine grain" cooperative framework for the different solvers is required to handle large systems of heterogeneous constraints. Exchange of failure information is a critical issue in such a framework. To achieve this aim, we will develop new dedicated algorithms for the upgradeability problem.
Finally, the competition organized through WP5 will give us the opportunity to compare our tools and algorithms at an international level. This competition is a mean to evaluate our work in a challenging context and to gather new results and ideas to improve the Mancoosi tools and algorithms.
The main objective of this work package is to capitalize the experience coming from the research community, to attract researchers from all over the world to study this problem, and to foster development of more advanced tools. For this, we will set up an infrastructure allowing to test a large number of optimization algorithms and tools on instances of upgrade problems, and run an annual international competition. This will include in particular the definition the Common Upgradeability Description Format (CUDF), a common, standard format for describing instances and solutions of upgradeability problems.
Running competitions of automated tools is a well established practice that has effectively promoted great improvements in tools in different areas over the past years, for instance for the termination of computational systems, theorem provers, and SAT solvers.