SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
Università degli Studi dell’Aquila




Alfonso Pierantonio, Davide Di Ruscio
Dipartimento di Informatica
Università degli Studi dell’Aquila (Italy)
alfonso.pierantonio@univaq.it
2
    →   Linux distributions are
        among the most complex
        software ecosystems




                                                                 →   More than 29,000
                                                                     interdependent packages
    →   Keynote at SLE11 by Krzysztof
        ca. 10,000 features only in the
        kernel
    GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-
    Driven Techniques
3




                             explicit dependencies among linux packages


    GTTSE 2011
    Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
4
    Free and Open Source Software
        → From tarballs to distributions
        → Package technology

    Problem: upgrade failures
    Abstracting the System
        → Modeling languages for describing the System
        → Maintainer Script Analysis

        → Injectors

    Analyzing the System
        → Upgrade simulator
        → Fault detector

    Conclusions
    GTTSE 2011
    Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
5

    Today
    Alfonso Pierantonio
        → A gentle introduction
        → Models of Complex Systems



    July 6, 2011 – 14:45
    Davide Di Ruscio
        → Concrete Artifacts
        → Demo




    GTTSE 2011
    Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
6

    Free and Open Source Software
    FOSS distributions are among the most complex
    software systems known, being made of thousands
    components evolving rapidly without centralized
    coordination


    Large numbers (components/developers)
        → SourceForge.net contains more than 123,736 projects,
          1,342,153 “users”
        → Debian GNU/Linux is distribuited with more than
          29,000 pre-compiled packages

    GTTSE 2011
    Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
7

    Free and Open Source Software
    Numbers like that have the potential to radically
    change the way we produce and study software, in
    particular the complex systems of the future




           complexity               dependencies
8

    In the beginning it was the tarball
    Before the advent of distributions, the peculiar way
    to install free software on client machine was:

                                                         server     client
                                                           side     side

       bazaar            proj 1                                                          user
                                      proj 2                                             installations


                             proj n




    GTTSE 2011
    Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
9
    To answer these problems, GNU/Linux distributions have
    born as intermediaries between FOSS projects and their
    users


FOSS      proj 1                                          server   client
bazaar                proj 2                                side   side

                                                                                   user
             proj n                                                                installations




                                package
                               management
                                                                        meta-
                                                                       installer
            distribution
               editors


                                            package repository
10

     Free and Open Source Software
     FOSS distributions are among the most complex
     software systems known, being made of thousands
     components evolving rapidly without centralized
     coordination


     FOSS components are provided in packaged form by
     distribution editors
     Packages define the granularity at which components
     are managed using package manager applications

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
11

     GNU/Linux distributions
     Central notion in distributions (to abstract over the
     complex underlying infrastructure):
         →   package, together with package management software


                                   package
                                 management


                 distribution
                   editors


                                                   package repository




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
12

     GNU/Linux distributions
     Central notion in distributions (to abstract over the
     complex underlying infrastructure):
         →   package, together with package management software


                                   package
                                 management


                 distribution
                   editors



                       And yet, doing things right can be
                                                   package repository



                             extremely difficult!

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
13

     Installation intricacies
     In state of the art distributions:
         → knowing if the installation process terminates without errors
           is undecidable (reason: configuration scripts) … today
         → there is no guarantee that distribution repositories contains
           only installable packages
         → a large number of errors faced by users are dependency
           resolution errors
                  ─ more than 29,000 packages (and 10,000 sources) in Debian
                  ─ more than 200.000 inter-package relationships




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
14




     PROBLEM: UPGRADE FAILURES
15




     → each phase can fail – it actually happens quite often!
     → efforts should be made to identify errors as early as
       possible, if not predict
16

     Upgrade failures
     Essentially they can fail for the following classes of
     problems
         →   Consistency breach due to administrator operations at a
             finer level of granularity than that of packages
                  ─ eg. needed resources are manipulated or removed from the
                     command-line
         → Implicit dependencies are not considered in the
           installation/removal script in the upgraded packages
         → Script erroneous behavior




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
17


                              Installing package
                              libapache-mod-ssl
     Configuration 1




                       > apt-get install libapache-mod-ssl




          +


     Configuration 2
18
19
20
21




                                                                       once mod_ssl is
                                                                  installed, it is enabled in
                                                                           apache




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
22


                                removing package
                                libapache-mod-ssl
     Configuration n+1




            -            > apt-get remove libapache-mod-ssl




      Configuration n
23




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
24




                                                 It disables mod_ssl in apache.

                                                 What happens if the maintainer
                                                 does not write this statement ?




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
25

                                               An “inconsistent” configuration is
                                               reached and it is detected only at
                                               run-time:

                                               the package dependency
                                               metadata are not enough !




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
26

     Problem: Upgrade failures
     Current tools are able to predict a limited set of
     upgrade failures before deployment


     When trying to predict upgrade failures, existing tools
     only consider static package metadata and the
     behaviour of the maintainer scripts is completely
     ignored
         →   This leaves a wide range of failures unpredicted



     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
27

     Upgrade failures classification
     Static deploy-time occur when a static requirement is
     violated during the upgrade.
         →   the low-level package manager fails at deploy-time, aborting the
             upgrade process
     Dynamic deploy-time occur when a maintainer script fails
         →   such failures can originate from errors ranging from syntax to
             failures in external tools
         →   they are not addressed by state of the art package managers
     Undetected failures remain undetected through upgrade
     deployment
         →   the upgrade has been completed successfully, but the obtained
             system configuration contains undetected incoherences

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
28




     IDEA : ABSTRACTING AND ANALYZING THE SYSTEM
29

     Idea
     Extracting relevant information from a linux box
     («snapshot») at a given moment of time
     Analysis and upgrade
     simulation on the
     «snapshot»

                  injectors



                                           «snapshot»


      Linux box
30

     Ingredients 1
     Modeling languages for describing the several aspects of a
     linux distribution
         →   Packages
                  ─ including maintainer scripts
         →   System Configuration
                  ─ Installed packages
                  ─ Configuration files
                  ─ MIME-type handlers
                  ─ Alternatives
                  ─ etc

     Injectors for harvesting the system and building the models
         →   collection of injectors

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
31

     Ingredients 2
     Modeling language for the maintainer scripts
         → scripts are written in POSIX languages whose semantics is far
           from being simple, although
         → maintainer scripts does not harness the full expressivity of
           such languages (template-based “macro-language”)


     Maintainer scripts as
     models
         →   which semantics ?


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
32

     Ingredients 3
     Transformational semantics for simulating the
     behavior of the maintainer scripts on the system
     «snapshot»
         →   M2M transformations obtained by «compiling» the
             maintainer scripts into ATL


     Fault detector, a general mechanism for performing
     queries over the «snapshot» for digging the model and
     search for inconsistencies


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
33




       Configuration 1
                                                  ?
                                              Configuration 2
                         package injection
     system injection




                              M2M
                         transformation
                         M2M transformation




        «snapshot» 1                           «snapshot» 2
34




     A model-based approach is introduced to support the
     package upgrades and enhance the failure detection
     possibilities:
      → the simulator is used to predict the effect of maintainer
        script executions (deploy-time failures)
      → the fault detector is used to deal with undetected failures
35




                                                          EVOSS

     A model-based approach is introduced to support the
     package upgrades and enhance the failure detection
     possibilities:
      → the simulator is used to predict the effect of maintainer
        script executions (deploy-time failures)
      → the fault detector is used to deal with undetected failures
36




     MAINTAINER SCRIPT ANALYSIS
37

     Rigourous maintainer script analysis (1/2)
     Script analysis for Debian and RPM based distributions
     To support the analysis and represent the results a
     database of scripts has been developed
         →   Already known templates have been identified
                  ─ By taking into account annotations in the scripts (when available,
                    eg. in case of Debian scripts)
                  ─ Exact match of existing templates in the scripts
         →   New templates have been identified
                  ─ By using an “exact match” between scripts
                  ─ By analyzing block statements (if, while, case, for, etc.)
                  ─ by using a similarity based approach


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
38

     Rigourous maintainer script analysis 2/2




                                     http://evoss.di.univaq.it
39




     INJECTORS
40




                                            Used to represent in terms of
                                            models packages and system
                                            configurations

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
41

     Configuration and package injectors




     By means of the model injection, given a linux system a
     corresponding model is obtained
     Injectors inspect software artifacts and inject relevant
     information into corresponding models
     The process is driven by the metamodels
     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
42

     Configuration injector
                    Debian          Mandriva              Caixa Magica       Ubuntu
                  Model Injector   Model Injector
                                                    …     Model Injector   Model Injector



                                               Mancoosi
                                      Model Injection Infrastructure



                                     Mancoosi Model Management



     cfginject [-d <distribName>] [-full]
      →   It creates a system configuration model starting from a real system. It is
          possible :
             ─ to specify the distribution name
             ─ to force the complete regeneration of the model. By default incremental
               changes of the model are performed in order to keep the system and the
               corresponding model synchronized

DEMO
43

     Package injector




     pkginject         [--installed]
                       [--package <package file name>]
                       [--cachedir]
      →   It creates package models. By default, a model for each installed
          package is created (--installed)
      →   It is possible to inject only one package by specifying the package file
          name (--package)
      →   It is also possible to inject all the packages which are in the cachedir (--
          cachedir)
DEMO
44




     UPGRADE SIMULATOR
45

     Upgrade Simulator




                                                                     Used to simulate system
                                                                     configuration upgrades


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
46




                           Input
                                                                                             Output
                    Upgrade plan:                                                             New
               {(p1,u1),(p2,u2)…,(pn,un)}                                                 Configuration
                                                                                             Model
                     Configuration                         Upgrade
                        Model                              Simulator                         Error
                                                                                             Model


                                {p1, p2, …, pn}
                                                                Package Model1
                                      Package                   Package Model2
                                     Injection                            …
                                                                Package Modeln




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
47



                                                    Configuration
                 Upgrade plan:                         Model
           {(p1,u1),(p2,u2)…,(pn,un)
                           }

                                                     For 1≤i ≤ n :                        Package Model1
                                                     retrieve the
                                                      state of pi                         Package Model2
                                                                                               …
                                               ui       pi state                          Package Modeln


                                           For each pi simulate
                                            upgrade scenario                                  New
                                                                                          Configuration
                                                                      valid simulation       Model
                                                                       error found
                                                                                             Error
                                            Upgrade Simulator                                Model



     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
48


                                                           install        Not installed
                       Configuration
                          Model                                                                    Package Modeli



                                                             preinst install
                                    “Files are unpacked”    OK                            FAILED


                                                                 FAILED
                            postinst configure                                    postrm abort-install

                                               Half-configured
                                          OK                                                  OK

                                                            Upgrade scenario                                     FAILED
                            Installed

                                   New                        Not installed
                                                                                                       Half installed
                               Configuration                                                          “Reinst required”
                                  Model
                                    Error
                                    Model


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
49




       Package                                                    Script Simulator
        Model
          Script
         Script
         Script                                              Retrieval of Model
                                                              transformations
            St1
            St2
            …                          Repository of
            Stn                           Model                                           Model transformation
                                     transformations                                         orchestration
     Configuration                                                                            generation
        Model
                                                                    Model
            New                                                 transformation
        Configuration
           Model
                                                                 orchestration
                                                                   execution
            Error
            Model


     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
50




               Configuration
                                                                 Tst1
                  Model

                                                                              CM1
                   Script
                                                                  Tst2
                     st1
                                                                                           Orchestration
                     st2                    Error                             CM2             of model
                      …                     Model                                         transformations
                     stn                                         …
                                                                            CMn-1
                     New
                 Configuration                                   Tstn
                    Model




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
51




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
52




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
53



                                                                                swi-prolog
                                                                                  5.6.58
     <?xml version="1.0" encoding="UTF-8"?>                                    [Not-Installed]
     <selectionStates xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <selectionState type="install">                                                   install
                       <param name="package" value="swi-prolog"/>
                       <param name="version" value="5.6.58"/>
                                                                                swi-prolog
                       <param name="architecture" value="all"/>
                                                                                  5.6.58
      </selectionState>                                                          [Installed]
      <selectionState type="remove">
                       <param name="package" value="swi-prolog"/>                       remove
                       <param name="version" value="5.6.58"/>
                       <param name="architecture" value="all"/>                 swi-prolog
      </selectionState>                                                           5.6.58
      <selectionState type="install">                                           [ConfigFiles]
                       <param name="package" value="swi-prolog"/>
                       <param name="version" value="5.6.58"/>                           install
                       <param name="architecture" value="all"/>
      </selectionState>                                                         swi-prolog
      <selectionState type="install">                                             5.6.58
                       <param name="package" value="swi-prolog"/>                [Installed]
                       <param name="version" value="5.7.59"/>
                       <param name="architecture" value="all"/>                         upgrade
      </selectionState>
     </selectionStates>                                                         swi-prolog
                                                                                  5.7.59
                                                                                 [Installed]
                            Sample upgrade plan

DEMO
54




     FAULT DETECTOR
55




                                                Used to check system configurations for faults
                                                that might give place to failures in the real
                                                system

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
56

     Fault detector
     Discovering implicit dependencies among packages: we are
     able to discover dependencies that are not declared into the
     package's meta-information
     Discovering missing configuration files: according to the system
     configuration model, some configuration files are required but
     they are not available in the system
     Discovering Mime-type dangling handlers: according to the
     available information, the considered system should be able to
     manage a mime type, but the corresponding handler is missing
     in the system
     Discovering missing services: the init.d file contains services
     that should start at the system start-up; by querying the
     configuration model, it is possible to detect missing services
     …

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
57

     Fault detector architecture
                              MANCOOSI Server

     -Libraries (.jar files) and OCL queries                User machine
     -Catalogue of faults
     -Catalogue of solutions

                                               FD-Server    FD-Client




                                               Web Portal




                                                                User




DEMO
58

     Conclusions 1
     The prediction of the package upgrade impact has
     been enhanced: a larger number of cases which lead
     to faulty behaviors can be detected
     The core ingredients have been defined
         → Modeling languages for the different aspects
         → Injectors: system configuration and packages

         → Transformational Script Semantics
                  ─ based on ATL
         →   Fault detection: query-based global knowledge base
                  ─ OCL and JAR queries to detect faults
                  ─ Contribution from the community



     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
59

     Conclusions 2
     The main difficulty is in building the model injectors
         →   labor intensive, deep platform knowledge required,
             ad-hoc techniques
         →   Interesting (academic) tools available
                  ─ GRA2MOL – grammarware / modelware bridging
                  ─ WIRES* – Model transformation orchestration
     Monolithic real scale metamodels
         →   Maintenance of the developed metamodels has been an issue:
             interdependencies, ripple effects
         →   Difficult stabilization of the support tools
     Model comparison for validating the simulation
         →   EMF Compare

     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
60

     Conclusions 3
     This work has been done within the
         →   EU FP7 ICT STREP MANCOOSI
             http://www.mancoosi.org


     Industrial partners
         → Mandriva
         → Caixa Magica

         → IBM Ilog




     GTTSE 2011
     Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
61
62




     Questions?

           Università degli Studi dell’Aquila
63
64
       Upgrade plan:
     {(p1,u1),…,(pn,un)            Package
                                  Package                        Upgrade
                                  Package            CM1       4.Simulator
              }                     Model
                                    Model
                                   Model



     1.Upgrade                   Package           System
         Planner                2. Injector       3.Injector       CM2

                   (p,u)                            Real
                                                   System
                                  Packages
            5.Upgrade

          Upgraded Real                System
                                    6. Injector     CM3
             System




     Delta                      Configurations
     Model                 7.     compare
65

Mais conteúdo relacionado

Semelhante a Managing the evolution of F/OSS with Model Driven Techniques

Improving Rollback in Linux via DSL approach & distributing
Improving Rollback in Linux via DSL approach & distributing Improving Rollback in Linux via DSL approach & distributing
Improving Rollback in Linux via DSL approach & distributing johngt
 
Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Roberto Di Cosmo
 
Yocto vs. Debian white paper
Yocto vs. Debian white paperYocto vs. Debian white paper
Yocto vs. Debian white paperMads Doré
 
Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]johngt
 
Project-Builder.org Presentation
Project-Builder.org PresentationProject-Builder.org Presentation
Project-Builder.org Presentationguestdd2966
 
Building Toward an Open and Extensible Autonomous Computing Platform Utilizi...
Building Toward an Open and Extensible  Autonomous Computing Platform Utilizi...Building Toward an Open and Extensible  Autonomous Computing Platform Utilizi...
Building Toward an Open and Extensible Autonomous Computing Platform Utilizi...Phil Cryer
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备Rex Tsai
 
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...ijesajournal
 
Building complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexBuilding complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexCARA_Lyon
 
Project-Builder.org presentation
Project-Builder.org presentationProject-Builder.org presentation
Project-Builder.org presentationBruno Cornec
 
FUSE and beyond: bridging filesystems paper by Emmanuel Dreyfus
FUSE and beyond: bridging filesystems paper by Emmanuel DreyfusFUSE and beyond: bridging filesystems paper by Emmanuel Dreyfus
FUSE and beyond: bridging filesystems paper by Emmanuel Dreyfuseurobsdcon
 
The Right Way to Patch Management for Linux - JetPatch.pdf
The Right Way to Patch Management for Linux - JetPatch.pdfThe Right Way to Patch Management for Linux - JetPatch.pdf
The Right Way to Patch Management for Linux - JetPatch.pdfJetPatch
 
Improvements in the OOo Release
Improvements in the OOo ReleaseImprovements in the OOo Release
Improvements in the OOo ReleaseAlexandro Colorado
 
Software evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating systemSoftware evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating systemArpita Naik
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simekNguyen Vinh
 
UnBBayes Plugin Framework
UnBBayes Plugin FrameworkUnBBayes Plugin Framework
UnBBayes Plugin FrameworkRommel Carvalho
 
Moeller bosc2010 debian_taverna
Moeller bosc2010 debian_tavernaMoeller bosc2010 debian_taverna
Moeller bosc2010 debian_tavernaBOSC 2010
 

Semelhante a Managing the evolution of F/OSS with Model Driven Techniques (20)

Improving Rollback in Linux via DSL approach & distributing
Improving Rollback in Linux via DSL approach & distributing Improving Rollback in Linux via DSL approach & distributing
Improving Rollback in Linux via DSL approach & distributing
 
Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)
 
Yocto vs. Debian white paper
Yocto vs. Debian white paperYocto vs. Debian white paper
Yocto vs. Debian white paper
 
Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]Transactional Roll-backs and upgrades [preview]
Transactional Roll-backs and upgrades [preview]
 
Project-Builder.org Presentation
Project-Builder.org PresentationProject-Builder.org Presentation
Project-Builder.org Presentation
 
Building Toward an Open and Extensible Autonomous Computing Platform Utilizi...
Building Toward an Open and Extensible  Autonomous Computing Platform Utilizi...Building Toward an Open and Extensible  Autonomous Computing Platform Utilizi...
Building Toward an Open and Extensible Autonomous Computing Platform Utilizi...
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
 
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...
Enhanced Embedded Linux Board Support Package Field Upgrade – A Cost Effectiv...
 
Building complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and FlexBuilding complex and modular RIAs with OSGi and Flex
Building complex and modular RIAs with OSGi and Flex
 
Project-Builder.org presentation
Project-Builder.org presentationProject-Builder.org presentation
Project-Builder.org presentation
 
FUSE and beyond: bridging filesystems paper by Emmanuel Dreyfus
FUSE and beyond: bridging filesystems paper by Emmanuel DreyfusFUSE and beyond: bridging filesystems paper by Emmanuel Dreyfus
FUSE and beyond: bridging filesystems paper by Emmanuel Dreyfus
 
The Right Way to Patch Management for Linux - JetPatch.pdf
The Right Way to Patch Management for Linux - JetPatch.pdfThe Right Way to Patch Management for Linux - JetPatch.pdf
The Right Way to Patch Management for Linux - JetPatch.pdf
 
Improvements in the OOo Release
Improvements in the OOo ReleaseImprovements in the OOo Release
Improvements in the OOo Release
 
Software evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating systemSoftware evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating system
 
Ap 06 4_10_simek
Ap 06 4_10_simekAp 06 4_10_simek
Ap 06 4_10_simek
 
UnBBayes Plugin Framework
UnBBayes Plugin FrameworkUnBBayes Plugin Framework
UnBBayes Plugin Framework
 
Deft v7
Deft v7Deft v7
Deft v7
 
Bug tracking - fossa2010
Bug tracking - fossa2010Bug tracking - fossa2010
Bug tracking - fossa2010
 
Bug tracking - fossa2010
Bug tracking - fossa2010Bug tracking - fossa2010
Bug tracking - fossa2010
 
Moeller bosc2010 debian_taverna
Moeller bosc2010 debian_tavernaMoeller bosc2010 debian_taverna
Moeller bosc2010 debian_taverna
 

Mais de Alfonso Pierantonio

Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Alfonso Pierantonio
 
Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Alfonso Pierantonio
 
Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Alfonso Pierantonio
 
Presentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaPresentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaAlfonso Pierantonio
 
MDE Adoption: a three legged chair
MDE Adoption:  a three legged chairMDE Adoption:  a three legged chair
MDE Adoption: a three legged chairAlfonso Pierantonio
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Alfonso Pierantonio
 
Model Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringModel Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringAlfonso Pierantonio
 
Automated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAutomated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAlfonso Pierantonio
 
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsMise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsAlfonso Pierantonio
 
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Alfonso Pierantonio
 
What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?Alfonso Pierantonio
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
 

Mais de Alfonso Pierantonio (14)

2023-04 OA 2.pptx
2023-04 OA 2.pptx2023-04 OA 2.pptx
2023-04 OA 2.pptx
 
Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...
 
Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach
 
Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes)
 
Presentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaPresentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'Aquila
 
MDE Adoption: a three legged chair
MDE Adoption:  a three legged chairMDE Adoption:  a three legged chair
MDE Adoption: a three legged chair
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
 
Model Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringModel Management in Model-Driven Engineering
Model Management in Model-Driven Engineering
 
Automated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAutomated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodels
 
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsMise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
 
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
 
What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?
 
Model evolution and versioning
Model evolution and versioningModel evolution and versioning
Model evolution and versioning
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven Development
 

Último

Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research DiscourseAnita GoswamiGiri
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesVijayaLaxmi84
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 

Último (20)

Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research Discourse
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their uses
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 

Managing the evolution of F/OSS with Model Driven Techniques

  • 1. Università degli Studi dell’Aquila Alfonso Pierantonio, Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell’Aquila (Italy) alfonso.pierantonio@univaq.it
  • 2. 2 → Linux distributions are among the most complex software ecosystems → More than 29,000 interdependent packages → Keynote at SLE11 by Krzysztof ca. 10,000 features only in the kernel GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model- Driven Techniques
  • 3. 3 explicit dependencies among linux packages GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 4. 4 Free and Open Source Software → From tarballs to distributions → Package technology Problem: upgrade failures Abstracting the System → Modeling languages for describing the System → Maintainer Script Analysis → Injectors Analyzing the System → Upgrade simulator → Fault detector Conclusions GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 5. 5 Today Alfonso Pierantonio → A gentle introduction → Models of Complex Systems July 6, 2011 – 14:45 Davide Di Ruscio → Concrete Artifacts → Demo GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 6. 6 Free and Open Source Software FOSS distributions are among the most complex software systems known, being made of thousands components evolving rapidly without centralized coordination Large numbers (components/developers) → SourceForge.net contains more than 123,736 projects, 1,342,153 “users” → Debian GNU/Linux is distribuited with more than 29,000 pre-compiled packages GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 7. 7 Free and Open Source Software Numbers like that have the potential to radically change the way we produce and study software, in particular the complex systems of the future complexity dependencies
  • 8. 8 In the beginning it was the tarball Before the advent of distributions, the peculiar way to install free software on client machine was: server client side side bazaar proj 1 user proj 2 installations proj n GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 9. 9 To answer these problems, GNU/Linux distributions have born as intermediaries between FOSS projects and their users FOSS proj 1 server client bazaar proj 2 side side user proj n installations package management meta- installer distribution editors package repository
  • 10. 10 Free and Open Source Software FOSS distributions are among the most complex software systems known, being made of thousands components evolving rapidly without centralized coordination FOSS components are provided in packaged form by distribution editors Packages define the granularity at which components are managed using package manager applications GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 11. 11 GNU/Linux distributions Central notion in distributions (to abstract over the complex underlying infrastructure): → package, together with package management software package management distribution editors package repository GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 12. 12 GNU/Linux distributions Central notion in distributions (to abstract over the complex underlying infrastructure): → package, together with package management software package management distribution editors And yet, doing things right can be package repository extremely difficult! GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 13. 13 Installation intricacies In state of the art distributions: → knowing if the installation process terminates without errors is undecidable (reason: configuration scripts) … today → there is no guarantee that distribution repositories contains only installable packages → a large number of errors faced by users are dependency resolution errors ─ more than 29,000 packages (and 10,000 sources) in Debian ─ more than 200.000 inter-package relationships GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 14. 14 PROBLEM: UPGRADE FAILURES
  • 15. 15 → each phase can fail – it actually happens quite often! → efforts should be made to identify errors as early as possible, if not predict
  • 16. 16 Upgrade failures Essentially they can fail for the following classes of problems → Consistency breach due to administrator operations at a finer level of granularity than that of packages ─ eg. needed resources are manipulated or removed from the command-line → Implicit dependencies are not considered in the installation/removal script in the upgraded packages → Script erroneous behavior GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 17. 17 Installing package libapache-mod-ssl Configuration 1 > apt-get install libapache-mod-ssl + Configuration 2
  • 18. 18
  • 19. 19
  • 20. 20
  • 21. 21 once mod_ssl is installed, it is enabled in apache GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 22. 22 removing package libapache-mod-ssl Configuration n+1 - > apt-get remove libapache-mod-ssl Configuration n
  • 23. 23 GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 24. 24 It disables mod_ssl in apache. What happens if the maintainer does not write this statement ? GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 25. 25 An “inconsistent” configuration is reached and it is detected only at run-time: the package dependency metadata are not enough ! GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 26. 26 Problem: Upgrade failures Current tools are able to predict a limited set of upgrade failures before deployment When trying to predict upgrade failures, existing tools only consider static package metadata and the behaviour of the maintainer scripts is completely ignored → This leaves a wide range of failures unpredicted GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 27. 27 Upgrade failures classification Static deploy-time occur when a static requirement is violated during the upgrade. → the low-level package manager fails at deploy-time, aborting the upgrade process Dynamic deploy-time occur when a maintainer script fails → such failures can originate from errors ranging from syntax to failures in external tools → they are not addressed by state of the art package managers Undetected failures remain undetected through upgrade deployment → the upgrade has been completed successfully, but the obtained system configuration contains undetected incoherences GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 28. 28 IDEA : ABSTRACTING AND ANALYZING THE SYSTEM
  • 29. 29 Idea Extracting relevant information from a linux box («snapshot») at a given moment of time Analysis and upgrade simulation on the «snapshot» injectors «snapshot» Linux box
  • 30. 30 Ingredients 1 Modeling languages for describing the several aspects of a linux distribution → Packages ─ including maintainer scripts → System Configuration ─ Installed packages ─ Configuration files ─ MIME-type handlers ─ Alternatives ─ etc Injectors for harvesting the system and building the models → collection of injectors GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 31. 31 Ingredients 2 Modeling language for the maintainer scripts → scripts are written in POSIX languages whose semantics is far from being simple, although → maintainer scripts does not harness the full expressivity of such languages (template-based “macro-language”) Maintainer scripts as models → which semantics ? GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 32. 32 Ingredients 3 Transformational semantics for simulating the behavior of the maintainer scripts on the system «snapshot» → M2M transformations obtained by «compiling» the maintainer scripts into ATL Fault detector, a general mechanism for performing queries over the «snapshot» for digging the model and search for inconsistencies GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 33. 33 Configuration 1 ? Configuration 2 package injection system injection M2M transformation M2M transformation «snapshot» 1 «snapshot» 2
  • 34. 34 A model-based approach is introduced to support the package upgrades and enhance the failure detection possibilities: → the simulator is used to predict the effect of maintainer script executions (deploy-time failures) → the fault detector is used to deal with undetected failures
  • 35. 35 EVOSS A model-based approach is introduced to support the package upgrades and enhance the failure detection possibilities: → the simulator is used to predict the effect of maintainer script executions (deploy-time failures) → the fault detector is used to deal with undetected failures
  • 36. 36 MAINTAINER SCRIPT ANALYSIS
  • 37. 37 Rigourous maintainer script analysis (1/2) Script analysis for Debian and RPM based distributions To support the analysis and represent the results a database of scripts has been developed → Already known templates have been identified ─ By taking into account annotations in the scripts (when available, eg. in case of Debian scripts) ─ Exact match of existing templates in the scripts → New templates have been identified ─ By using an “exact match” between scripts ─ By analyzing block statements (if, while, case, for, etc.) ─ by using a similarity based approach GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 38. 38 Rigourous maintainer script analysis 2/2 http://evoss.di.univaq.it
  • 39. 39 INJECTORS
  • 40. 40 Used to represent in terms of models packages and system configurations GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 41. 41 Configuration and package injectors By means of the model injection, given a linux system a corresponding model is obtained Injectors inspect software artifacts and inject relevant information into corresponding models The process is driven by the metamodels GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 42. 42 Configuration injector Debian Mandriva Caixa Magica Ubuntu Model Injector Model Injector … Model Injector Model Injector Mancoosi Model Injection Infrastructure Mancoosi Model Management cfginject [-d <distribName>] [-full] → It creates a system configuration model starting from a real system. It is possible : ─ to specify the distribution name ─ to force the complete regeneration of the model. By default incremental changes of the model are performed in order to keep the system and the corresponding model synchronized DEMO
  • 43. 43 Package injector pkginject [--installed] [--package <package file name>] [--cachedir] → It creates package models. By default, a model for each installed package is created (--installed) → It is possible to inject only one package by specifying the package file name (--package) → It is also possible to inject all the packages which are in the cachedir (-- cachedir) DEMO
  • 44. 44 UPGRADE SIMULATOR
  • 45. 45 Upgrade Simulator Used to simulate system configuration upgrades GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 46. 46 Input Output Upgrade plan: New {(p1,u1),(p2,u2)…,(pn,un)} Configuration Model Configuration Upgrade Model Simulator Error Model {p1, p2, …, pn} Package Model1 Package Package Model2 Injection … Package Modeln GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 47. 47 Configuration Upgrade plan: Model {(p1,u1),(p2,u2)…,(pn,un) } For 1≤i ≤ n : Package Model1 retrieve the state of pi Package Model2 … ui pi state Package Modeln For each pi simulate upgrade scenario New Configuration valid simulation Model error found Error Upgrade Simulator Model GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 48. 48 install Not installed Configuration Model Package Modeli preinst install “Files are unpacked” OK FAILED FAILED postinst configure postrm abort-install Half-configured OK OK Upgrade scenario FAILED Installed New Not installed Half installed Configuration “Reinst required” Model Error Model GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 49. 49 Package Script Simulator Model Script Script Script Retrieval of Model transformations St1 St2 … Repository of Stn Model Model transformation transformations orchestration Configuration generation Model Model New transformation Configuration Model orchestration execution Error Model GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 50. 50 Configuration Tst1 Model CM1 Script Tst2 st1 Orchestration st2 Error CM2 of model … Model transformations stn … CMn-1 New Configuration Tstn Model GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 51. 51 GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 52. 52 GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 53. 53 swi-prolog 5.6.58 <?xml version="1.0" encoding="UTF-8"?> [Not-Installed] <selectionStates xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <selectionState type="install"> install <param name="package" value="swi-prolog"/> <param name="version" value="5.6.58"/> swi-prolog <param name="architecture" value="all"/> 5.6.58 </selectionState> [Installed] <selectionState type="remove"> <param name="package" value="swi-prolog"/> remove <param name="version" value="5.6.58"/> <param name="architecture" value="all"/> swi-prolog </selectionState> 5.6.58 <selectionState type="install"> [ConfigFiles] <param name="package" value="swi-prolog"/> <param name="version" value="5.6.58"/> install <param name="architecture" value="all"/> </selectionState> swi-prolog <selectionState type="install"> 5.6.58 <param name="package" value="swi-prolog"/> [Installed] <param name="version" value="5.7.59"/> <param name="architecture" value="all"/> upgrade </selectionState> </selectionStates> swi-prolog 5.7.59 [Installed] Sample upgrade plan DEMO
  • 54. 54 FAULT DETECTOR
  • 55. 55 Used to check system configurations for faults that might give place to failures in the real system GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 56. 56 Fault detector Discovering implicit dependencies among packages: we are able to discover dependencies that are not declared into the package's meta-information Discovering missing configuration files: according to the system configuration model, some configuration files are required but they are not available in the system Discovering Mime-type dangling handlers: according to the available information, the considered system should be able to manage a mime type, but the corresponding handler is missing in the system Discovering missing services: the init.d file contains services that should start at the system start-up; by querying the configuration model, it is possible to detect missing services … GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 57. 57 Fault detector architecture MANCOOSI Server -Libraries (.jar files) and OCL queries User machine -Catalogue of faults -Catalogue of solutions FD-Server FD-Client Web Portal User DEMO
  • 58. 58 Conclusions 1 The prediction of the package upgrade impact has been enhanced: a larger number of cases which lead to faulty behaviors can be detected The core ingredients have been defined → Modeling languages for the different aspects → Injectors: system configuration and packages → Transformational Script Semantics ─ based on ATL → Fault detection: query-based global knowledge base ─ OCL and JAR queries to detect faults ─ Contribution from the community GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 59. 59 Conclusions 2 The main difficulty is in building the model injectors → labor intensive, deep platform knowledge required, ad-hoc techniques → Interesting (academic) tools available ─ GRA2MOL – grammarware / modelware bridging ─ WIRES* – Model transformation orchestration Monolithic real scale metamodels → Maintenance of the developed metamodels has been an issue: interdependencies, ripple effects → Difficult stabilization of the support tools Model comparison for validating the simulation → EMF Compare GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 60. 60 Conclusions 3 This work has been done within the → EU FP7 ICT STREP MANCOOSI http://www.mancoosi.org Industrial partners → Mandriva → Caixa Magica → IBM Ilog GTTSE 2011 Alfonso Pierantonio – Managing the evolution of F/OSS with Model-Driven Techniques
  • 61. 61
  • 62. 62 Questions? Università degli Studi dell’Aquila
  • 63. 63
  • 64. 64 Upgrade plan: {(p1,u1),…,(pn,un) Package Package Upgrade Package CM1 4.Simulator } Model Model Model 1.Upgrade Package System Planner 2. Injector 3.Injector CM2 (p,u) Real System Packages 5.Upgrade Upgraded Real System 6. Injector CM3 System Delta Configurations Model 7. compare
  • 65. 65