SlideShare a Scribd company logo
1 of 62
DYNAMIC EVOLUTION
AND RECONFIGURATION OF
SOFTWARE ARCHITECTURES
THROUGH ASPECTS

Cristóbal Costa-Soria



Supervisors
Dr. Jose A. Carsí Cubel
Dr. Jennifer Pérez Benedí   Valencia, 13th June 2011
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             2
Motivation

INTRODUCTION
                       Software systems are subject to changes
Motivation              during their lifetime
Related Work
Objectives                  – Context adaptations, improvements, updates, or new
CONTEXT                       features
PRISMA ADL
Case Study
                            – Sometimes as a consequence of their use or aging
DYNAMIC PRISMA         Change is challenging in systems that are
Dynamic
Reconfiguration         continuously operating
Dynamic Type
Evolution                   – Management and control of critical infrastructures
Evolution
Semantics
                              (military, energy, health, transports)
CONCLUSIONS &               – 24/7 business SLA (cloud infrastructures, banking
FURTHER WORK                  systems, manufacturing industry systems)
                            – Not reachable systems (autonomous robots in space
                              missions)


     Valencia, 13th June 2011                  Cristóbal Costa-Soria               3
Introduction: Dynamic Evolution

INTRODUCTION
                       Dynamic Evolution
Motivation                  A process of gradual change that is performed on a previously
Related Work
                            operational software system to correct, improve, extend or
Objectives
                            reduce part of its functionality, which occurs during its
CONTEXT                     execution, without disturbing those parts of the system
PRISMA ADL
Case Study
                            unaffected by the change, and which preserves the system’s
                            integrity.
DYNAMIC PRISMA
Dynamic
Reconfiguration        Different granularities of dynamic change
Dynamic Type
                            – Fine: variables, statements or methods
                                                                         int a=2;
                                                                         calc(a,20);
Evolution                                                                sen(20,a);
                                                                         a+3;

Evolution
Semantics
                            – Medium: classes, modules or components
CONCLUSIONS &               – Coarse: composites, software architectures
FURTHER WORK



                      This thesis focuses on evolving software architectures

                                  But also on evolving the architecture building blocks
     Valencia, 13th June 2011                    Cristóbal Costa-Soria                      4
Dynamism at the Architectural Level

INTRODUCTION
                       Why a software architecture-based approach?
Motivation                  – High abstraction level for describing dynamic changes
Related Work
Objectives                      • Code is modularized by means of architectural elements
CONTEXT
                                • Improvement of maintenance and reusability
PRISMA ADL                  – Allows varying the level of system description
Case Study
                                • Complexity is reduced
DYNAMIC PRISMA
Dynamic                     – Architecture Description Languages provide support for
Reconfiguration
Dynamic Type
                                • System modelling
Evolution                       • Code-generation
Evolution
Semantics                       • Formal Analysis
CONCLUSIONS &
FURTHER WORK
                                      Composite Component

                                        Component                    Component            Port


                                                       Connector                 Connector
     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011          5
Evolving Software Architectures

INTRODUCTION
                       Dynamic Change in Software Architectures
Motivation                  – Dynamic Reconfiguration
Related Work
Objectives                      Changes performed at runtime in the organisation of a
                                composite system, involving the creation and removal of
CONTEXT
PRISMA ADL
                                architectural instances and/or the links among them.
Case Study

DYNAMIC PRISMA                         Composite Component
Dynamic
Reconfiguration
Dynamic Type                             Component                 Component
                                                                                       Port
Evolution
Evolution
Semantics                                             Connector    Component   Connector

CONCLUSIONS &
FURTHER WORK
                            – Dynamic Evolution of Architectural Types
                                Changes performed at runtime in the architectural types
                                that a composite system is build from, involving the
                                introduction of new types, the modification of instantiated
                                types, or the removal of existing types and their instances
     Valencia, 13th June 2011                        Cristóbal Costa-Soria                    6
Evolving Software Architectures

INTRODUCTION
                       Both levels of dynamism are complementary and
Motivation              beneficial for the construction of highly dynamic
Related Work
Objectives              software architectures
CONTEXT                     – Dynamic Reconfiguration for structural changes
PRISMA ADL
Case Study

DYNAMIC PRISMA              – Dynamic Type Evolution for behavioural changes
Dynamic
Reconfiguration
Dynamic Type
Evolution                              Plasticity
Evolution                 Makes the structure malleable at runtime
Semantics
                                within some constraints
CONCLUSIONS &
FURTHER WORK                                                    Flexibility
                                                         Makes the elements entirely
                                                          modifiable at runtime

                                This thesis addresses how to combine them for
     Valencia, 13th June 2011
                                       designing highly Costa-Soria systems
                                                 Cristóbal
                                                           dynamic                     7
Dynamic Evolution Concerns

INTRODUCTION
                       Dynamic Reconfiguration and Type Evolution are
Motivation              orthogonal to system functionality
Related Work
Objectives                  – Crosscutting concerns of flexible and dynamic systems
CONTEXT                     – Should be isolated to improve reuse and maintenance
PRISMA ADL
Case Study

DYNAMIC PRISMA
                                     Aspect-Oriented Software Development
Dynamic
Reconfiguration
                                        – Separates crosscutting concerns by means
Dynamic Type                              of aspects and weavings
Evolution
Evolution
<<sense>>
Semantics

CONCLUSIONS &                        Evolution Concerns 
FURTHER WORK        <<act>>
                                      encapsulated into aspects
                                        – Makes their system integration transparent
                                        – Facilitates their maintenance

     Valencia, 13th June 2011                  Cristóbal Costa-Soria                   8
Related work

INTRODUCTION
                       Desired attributes for Evolution Frameworks
Motivation
Related Work
                            – Degree of formality                                   Based on a formal language or
                                                                                  focused on a specific technology?
Objectives                      Formal
CONTEXT
                            – Level of dynamism                                  Structural or behavioural changes?

PRISMA ADL                      Reconfiguration and Type Evolution               How are the changes driven
Case Study                  –   Activeness                                        (internally or externally)?
                                Proactive and Reactive                        Where are the evolution concerns
DYNAMIC PRISMA
Dynamic                     –   Separation of evolution concernsdefined? Are the specifications and
                                                                              mechanisms explicitly isolated ?
Reconfiguration                 Evolution specifications and mechanisms are isolated from other concerns
Dynamic Type
Evolution
                            –   Evolution management                             Centralized or Distributed?

Evolution                       Distributed                                       Which degree of self-awareness is
Semantics                   – Introspection                                                  provided?
CONCLUSIONS &                   Aware of its structure and state                  What degree of expressiveness is
FURTHER WORK                – Types of change                                               supported?
                                Additions, removals, updates, linkings How the consistency of the system
                                                                       and unlinkings
                            – Consistency management                            is preserved before and after
                                Safe stopping, State transfer,        Transactional management
                                                                                      dynamic changes?


     Valencia, 13th June 2011                 Cristóbal Costa-Soria, Valencia 13th June 2011                      9
State of the Art

INTRODUCTION
                       Analysis from different perspectives
Motivation                  – Formal specification of dynamic reconfigurations
Related Work
Objectives                  – Technological approaches covering dynamic change
CONTEXT                       support
PRISMA ADL
Case Study
                            – Self-adaptive approaches
DYNAMIC PRISMA              – Decentralized approaches
Dynamic
Reconfiguration
                            – Aspect-oriented management of evolutions
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011
State of the Art

INTRODUCTION
                       Challenges
Motivation                  – Gap among formal ADLs and technological approaches
Related Work
Objectives
                              covering dynamic evolution
CONTEXT                     – Dynamic Reconfiguration and Type Evolution are
PRISMA ADL                    supported, but not combined together
Case Study
                            – Few approaches support both proactive and reactive
DYNAMIC PRISMA
Dynamic                       changes
Reconfiguration
Dynamic Type                – Evolution concerns (specifications and mechanisms)
Evolution                     are not completely isolated from other concerns
Evolution
Semantics                   – Limited support for consistency management
CONCLUSIONS &                 mechanisms
FURTHER WORK


                                            Any approach covers
                                         all the attributes analysed



     Valencia, 13th June 2011                   Cristóbal Costa-Soria              11
State of the Art

INTRODUCTION
Motivation
Related Work
Objectives

CONTEXT
PRISMA ADL
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011   Cristóbal Costa-Soria   12
Research objectives
                      To provide a framework to make easy the design,
INTRODUCTION
Motivation
                      development, and maintenance of architecture-based
Related Work          software systems which are capable of changing their
Objectives
                      structure and behaviour at runtime
CONTEXT
PRISMA ADL
Case Study
                            – Bridge the gap among formal dynamic ADLs and
DYNAMIC PRISMA
Dynamic
                              dynamic change mechanisms
Reconfiguration
                            – Support both degrees of architectural dynamism, both
Dynamic Type
Evolution                     proactively and reactively:
Evolution
Semantics
                                • Dynamic Reconfiguration of Software Architectures
                                • Dynamic Evolution of Architectural Types
CONCLUSIONS &
FURTHER WORK                – Preserve the separation of evolution concerns
                            – Automate the development of evolvable systems



     Valencia, 13th June 2011                    Cristóbal Costa-Soria                13
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             14
Architectural Model: PRISMA

INTRODUCTION
                       The Dynamic Evolution framework has been
Motivation              applied on PRISMA Architectural Model
Related Work
Objectives
                       Advantages for dynamic evolution
CONTEXT
PRISMA ADL                  – Allows modelling functional decomposition of systems
Case Study
                            – Allows modelling crosscutting concerns  Aspects
DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK

                          Composite Architectural Element     Simple Architectural Element


                                             Isolate evolution concerns

     Valencia, 13th June 2011
Architectural Model: PRISMA

INTRODUCTION
                       Allows modelling behaviour of architectural
Motivation              elements
Related Work
Objectives                  – Architectural element: observable process with state
CONTEXT                       and behaviour
PRISMA ADL
Case Study
                            – Services: described in modal logic of actions (Stirling,
                                1992)
DYNAMIC PRISMA
Dynamic                     – Interactions: π-Calculus with priorities (Milner, 1993)
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics
                                                Interleave actions
                                           required to perform evolution
CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011                     Cristóbal Costa-Soria                  16
Architectural Model: PRISMA

INTRODUCTION
                       Supported by a Model-Driven Development
Motivation              framework
Related Work
Objectives
                                 PRISMA
CONTEXT                                                      Type Modelling Tool                  Model Compiler
                                Meta-Model
PRISMA ADL
Case Study




                                                                                                                   PRISMACASE
DYNAMIC PRISMA
Dynamic
Reconfiguration                                     Automate the generation of
Dynamic Type
Evolution
                                                        evolvable systems
                                Configuration
Evolution                       Modelling Tool                C# Code Generation                  Generic UGI
Semantics

CONCLUSIONS &
FURTHER WORK




                                                   PRISMA Middleware (PRISMANET)

                                                          .NET FRAMEWORK
     Valencia, 13th June 2011                    Cristóbal Costa-Soria, Valencia 13th June 2011                           17
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             20
Case Study: Agrobot

INTRODUCTION
                       An Autonomous Robot for
Motivation              Plague Control
Related Work
Objectives                  – Patrols a delimited area, looks for threats, applies
CONTEXT                       pesticides only when needed
PRISMA ADL
Case Study
                            – Autonomous: continuously operating guided by high-
                              level tasks, self-managed
DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011           Cristóbal Costa-Soria, Valencia 13th June 2011   21
Agrobot Architecture

INTRODUCTION
                   Hierarchically composed
Motivation           – A composition of composite components
Related Work
Objectives

CONTEXT
PRISMA ADL
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics
                                 composed_of
CONCLUSIONS &
FURTHER WORK




                                                               22
Agrobot: Types and Instances

INTRODUCTION
                       Typed Architecture
Motivation
Related Work
Objectives

CONTEXT                                                                              Type
PRISMA ADL
Case Study
                                                                                     Level
DYNAMIC PRISMA
Dynamic
Reconfiguration                                  instance_of
                                  instance_of
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK
                                                                                    Instance
                                                                                      Level




     Valencia, 13th June 2011      Cristóbal Costa-Soria, Valencia 13th June 2011        23
Dynamic Requirements of the Agrobot

INTRODUCTION
                       The Agrobot is autonomous and 24/7 operative
Motivation                  – Day: monitors weather conditions, supervises growing
Related Work
Objectives
                              crops, recharges itself
CONTEXT                     – Night: processes data collected, keeps active
PRISMA ADL                    surveillance, monitors weather conditions
Case Study

DYNAMIC PRISMA

                       Performs self-control and self-maintenance tasks
Dynamic
Reconfiguration
Dynamic Type
Evolution                   – In parallel to other tasks, to avoid disrupting other tasks
Evolution
Semantics                   – Provided through Autonomic Reconfiguration and
CONCLUSIONS &
                              Dynamic Type Evolution
FURTHER WORK

                         Required for software updating and hot               Required for fault-tolerance
                         swapping of Agrobot tools and devices              support and energy management




     Valencia, 13th June 2011                           Cristóbal Costa-Soria                                24
Dynamic Requirements: VisionSystem

INTRODUCTION
                       Fault-tolerance support
Motivation                  – Critical element to guarantee movement
Related Work
Objectives                  – Failure in a component  use of alternative versions
CONTEXT                         Dynamic Reconfiguration of the architecture
PRISMA ADL
Case Study

DYNAMIC PRISMA                                              Reconfig
Dynamic                                                     .
Reconfiguration
Dynamic Type
Evolution
Evolution                       faultyOutput!(out “ImageProcCard”)
Semantics

CONCLUSIONS &
FURTHER WORK
                       Dynamic updating support
                            – Updating of the image processing algorithms
                                  • The image processing algorithms do not behave correctly
                                    in some situations (low light levels)
                            – Without disrupting Cristóbal Costa-Soria
     Valencia, 13th June 2011
                                                  current operations                          25
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             26
Dynamic Reconfiguration

INTRODUCTION
                       Reconfiguration management model
Motivation                  – Each composite component is provided with self-
Related Work
Objectives
                              management properties to autonomously reconfigure
CONTEXT
                              its internal composition
PRISMA ADL                      • Benefits scalability
Case Study
                            – Self-management properties are isolated and
DYNAMIC PRISMA
Dynamic
                              encapsulated into different aspects
Reconfiguration                 • Benefits maintenance
Dynamic Type
Evolution
       A
Evolution     P        Based in an Autonomic Control loop (MAPE)
Semantics
                            – Self-management of system resources:
CONCLUSIONS &
     M     E
FURTHER WORK                   Monitorization  Analysis  Planning  Effect
                            – Adapted for the management of a software architecture

                                        Autonomic Reconfiguration
     Valencia, 13th June 2011   The managed resource is the system architecture       27
Autonomic Reconfiguration
                       From the Autonomic Control loop
INTRODUCTION
Motivation
                        To Autonomic Reconfiguration of Composite Components
Related Work             – Monitoring
Objectives
                                • Monitorization of the architecture and its running state
CONTEXT
PRISMA ADL                  – Reconfiguration Analysis
Case Study                      • Analysis of reconfiguration needs (e.g. for self-healing)
DYNAMIC PRISMA
Dynamic
                            – Reconfiguration Coordination
Reconfiguration                 • Coordinates the set of dynamic reconfiguration actions to
Dynamic Type                      perform on the architecture
Evolution
Evolution                   – Reconfiguration Effector
Semantics
                                • Effects the changes on the architecture at runtime
CONCLUSIONS &
FURTHER WORK
                                                                           Reconfiguration
                                                                           Policies
                                                                           Reconfiguration
                                                                           Mechanisms

     Valencia, 13th June 2011                      Cristóbal Costa-Soria                      28
Improving Maintenance: Modularity
                     Modules
INTRODUCTION
Motivation                 – In Autonomic Computing, the                   A   P
Related Work                 MAPE control loop is
Objectives
                             implemented in different
                                                                           M   E
CONTEXT                      modules
PRISMA ADL
Case Study                 – Modules are highly dependent
DYNAMIC PRISMA
                             on each other
Dynamic
Reconfiguration      Aspects
Dynamic Type
Evolution
                           – Aspects can be defined
Evolution                    independently of each other
Semantics                       • Semantics: Separation of
CONCLUSIONS &                     Concerns
FURTHER WORK                    • Explicit separation of
                                  relationships (weavings)
                                • Usage of interception
                                  mechanisms: before, after,
                                  insteadOf
     Valencia, 13th June 2011                      Cristóbal Costa-Soria           29
Aspects in PRISMA ADL

INTRODUCTION
                         Aspects
Motivation                    – An aspect defines provided and required services, and
Related Work
Objectives
                                each service is treated as a hook to be intercepted
CONTEXT
PRISMA ADL
                         Weavings
Case Study                    – Weaving specifications describe how aspect services
DYNAMIC PRISMA                  are bound together
Dynamic
Reconfiguration
                                   • If a weaving is removed, simply no behaviour is executed
Dynamic Type
Evolution                                                            createImageProcSoftware(params,AEid)!
Evolution
Semantics

CONCLUSIONS &                                                              createArchElement(“ImgProcSW”,params,AEid)?
     Name of the
FURTHER WORK
    target aspect
     Service to be executed                           Weaving type
                                 Weavings

       Name of the                ReconfCoord.createArchElement(“ImgProcSW”,params,AEid)
     source aspect                   insteadOf
                                  ReconfAnalysis.createImageProcSoftware(params,AEid);
Service to be intercepted        End_Weavings;
      Valencia, 13th June 2011                            Cristóbal Costa-Soria                                    30
Autonomic Reconfiguration In
   Composite Components
INTRODUCTION
                         Any composite component that can reconfigure
Motivation                itself has a component called Evolver
Related Work
Objectives                      – Reconfiguration Aspects are encapsulated in a
CONTEXT                           component called Evolver
PRISMA ADL
Case Study               Each component can reconfigure itself
DYNAMIC PRISMA            independently of the other systems
Dynamic
Reconfiguration                 – Distributed management not centralized
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011                     Cristóbal Costa-Soria           31
Example:
   Agrobot Reconfiguration Scenario
                         Fault-tolerance support in the VisionSystem
INTRODUCTION
Motivation                      – Critical element to guarantee movement and plague
Related Work                      inspection of the Agrobot
Objectives
                                – Reconfigured to introduce alternative components in
CONTEXT
PRISMA ADL                        case of failures
Case Study

DYNAMIC PRISMA
                         Main reconfiguration trace:
Dynamic
Reconfiguration
                                                           Reconfig
Dynamic Type                                               .
Evolution
Evolution
Semantics

CONCLUSIONS &                          faultyOutput!(out “ImageProcCard”)
FURTHER WORK




     Valencia, 13th June 2011                                                           32
Monitoring Aspect

INTRODUCTION
                             Provides Introspection services
Motivation                      – Capture/Intercept Events that take place in the
Related Work
Objectives
                                  architecture
CONTEXT                         – Provide information about the current configuration
PRISMA ADL
Case Study
                                – Status of the architectural elements
  Monitoring Aspect                            { Idle | Active | Blocking | Blocked }
     ...
DYNAMIC PRISMA
     Services
Dynamic
        in beforeServiceRequest(elemID: string, serviceName: string, output params: list);
Reconfiguration
        in afterServiceRequest(elemID: string, serviceName: string, output params: list);
Dynamic Type
        in insteadOfServiceRequest(elemID: string, serviceName: string, condition: string,
Evolution replacingService: string, output params: list);
Evolution monitoredServices(output serviceList: list);
        in
Semantics
      in getArchElementInstances(typeName: string, output instances: list);
      in getAttachedArchElems(archElemID: string, attachType: string,
CONCLUSIONS &
           output attachedArchElemIDs: list);
FURTHER WORK
      in getArchElementProperties(archElemID: string, output properties: list,
           output portsList: list);
      in getAttachmentProperties(connectionID: string,
           output instance1: string, output instance2: string);
      ...
      in getStatus(elementID: string, output status: string);
      in getElementsOfStatus(status: string, output elemIDList: list);
    ...
  End_Aspect;
     Valencia, 13th June 2011                         Cristóbal Costa-Soria                  33
Reconfiguration Analysis Aspect

INTRODUCTION
                                 Encapsulates the Reconfiguration Policies of
Motivation                        a composite component
Related Work
Objectives                         – Event-Condition-Action Policies
CONTEXT                            – Defined at design time (programmed reconfiguration)
PRISMA ADL
Case Study
                                 Described in terms of Domain-Specific
DYNAMIC PRISMA
Dynamic
                                  reconfiguration services
Reconfiguration
                createImageProcSoftware(params, out ID)
Dynamic Type    attachImageProcSoftware_VideoCaptureCard(imgProcSWID, videoCaptureID, out attID)
Evolution       detachImageProcCard_VideoCaptureCard(imgProcCardID, videoCaptureID)
Evolution
Semantics
                                   – Define the plasticity of the architecture
CONCLUSIONS &
FURTHER WORK                           • Reconfigurations must be type-conformant
                                       • Avoids instances of non-allowed types, the removal
                                         of critical instances, or invalid linkings
                                   – Automatically generated by the MDD platform

     Valencia, 13th June 2011                      Cristóbal Costa-Soria                       34
Reconfiguration Analysis Aspect

INTRODUCTION
                          Specification using PRISMA AOADL
Motivation                     – Based on a π -calculus notation
Related Work
  ReconfigurationAnalysis aspect VisionSysRecAnalysis
Objectives
  ...
   [Headers of domain-specific reconfig. operations]
   ...
CONTEXT
   Triggers
                                                                    Reconfiguration Triggers
PRISMA ADL
      REPAIRIMAGEPROCESSUNIT when
        {eventParams==["ImageProcCard"]}
Case Study
                                                                     (Events & Conditions)
        beforeEvent!(“faultyOutput”, out eventParams);                  when the reconfiguration
      ... PRISMA
DYNAMIC                                                                 process will be activated
Dynamic
   Transactions
Reconfiguration
      RepairImageProcessingUnit():
      // Configuration transaction for replacing an imageProcCard
Dynamic Type
      // component by an imageProcSoftware component
Evolution
        REPAIRIMAGEPROCESSINGUNIT ::=
Evolution oldImProcCardID = imageProcCard-list[0] -->
Semantics VCCConnID=VCC-Conn-list[0] -->
          IPCConnID=IPC-Conn-list[0] --> RECONF;
CONCLUSIONS ::=
        RECONF &
                                                                                              Configuration
          create-ImageProcSoftware!(cameraPos, output newImProcID) -->
FURTHER WORK
          attach-Att_VCCConn_IPCSW!(VCCConnID, newImProcID,
             output newAttID) -->                                                             Transactions
          attach-Att_IPCSW_IPCConn!(newImProcID, IPCConnID,
             output newAttID) -->
                                                                                                (Actions)
          detach-Att_VCCConn_IPC!(VCCConnID, oldImProcCardID) -->                            how the architecture
          detach-Att_IPC_IPCConn!(oldImProcCardID, IPCConnID) -->                            must be reconfigured
          destroy-ImageProcCard!(oldImProcCardID) -->
        END;
      ...
   ... [more transactions]
      Valencia, 13th June 2011
 End_Aspect VisionSysRecAnalysis;                         Cristóbal Costa-Soria                                 37
Reconfiguration Coordination Aspect

INTRODUCTION
                                Coordinates the reconfiguration process
Motivation                           – Execution inside a transactional context
Related Work
Objectives                                 • All reconfiguration operations are successful or the
                                             entire process is rollbacked
CONTEXT
PRISMA ADL                           – Triggers the execution of low-level services from
Case Study
                                       Monitoring and Reconf.Effector aspects to:
DYNAMIC PRISMA
                                           • Identify the affected elements and its dependencies
Dynamic
Reconfiguration
 Transactions
                                           • Drive the affected elements to reach quiescence
Dynamic Type
 BeginConfigurationTransaction():
Evolution
    BEGINCONFIG::=
                                           • Perform atomic reconfiguration operations
Evolution                                  • Check that
       NewTransactionalContext(output transactionID) --> END; the target configuration has been
 CreateArchElem(typeName, params, output newID):
Semantics
                                              achieved
    CREATE::= CreateInstance!(typeName, params, output newID) --> CHECK;
    CHECK::= CheckConsistence(output transState) -->
CONCLUSIONS & if {transState=“ROLLBACK”} then RollbackConfigurationTransaction()
FURTHER WORK archElementsCreated.add(newID) --> END;
              else
 CreateAttachment(attachType, srcAE-ID, trgAE-ID, output attID):
    ATTACH::=
     ...
 ... //Other high-level reconfig. operations
 DestroyArchElem(typeName, id):
    STOP ::= StopElement!(id) -->
              GetStatus!(id, output status) -->
              if {status=“Blocked”} then STOPCONNECTIONS else STOP;
    STOPCONNECTIONS ::= GetConnectionsOfArchElem!(id, output connectionList) -->
      Valencia, 13th June 2011 connectionList do ( StopElement!(conn) )
             for each conn in                               Cristóbal Costa-Soria                   38
              --> REMOVECONNECTIONS;
Reconfiguration Effector Aspect

INTRODUCTION
                            Provides generic reconfiguration services
Motivation                      – Changes the architecture at a low level, without
Related Work
Objectives
                                  taking into account the status of the elements or the
CONTEXT
                                  interactions among them
PRISMA ADL
                           ReconfigurationEffector Aspect
Case Study
                             ...
                             Services
DYNAMIC PRISMA
                                 in StartElement(elemID: string);
Dynamic                          in StopElement(elemID: string);
Reconfiguration                  in PassivateElement(elemToPassivate: string, blockedElement: string);
Dynamic Type
Evolution                       in CreateInstance(typeName: string, initParams: list,
                                     output instanceID: string);
Evolution                       in DestroyInstance(instanceID: string);
Semantics                       in Connect(instance1: string, port1: string, instance2: string,
                                                port2: string, output connectionID: string);
CONCLUSIONS &                   in Disconnect(connectionID: string);
FURTHER WORK
                                in SerializeState(instanceID: string, output state: string);
                                in CreateInstanceFromSerializedState(typeName: string,
                                     serializedState: string, output instanceID: string);
                                in ConvertStateFromPreviousVersion(typeName: string, oldType: string,
                                     oldState: string, newRequiredValues: list,
                                     output transformedState: string);
                             ...
                           End_Aspect;
     Valencia, 13th June 2011                          Cristóbal Costa-Soria                             39
Dynamic PRISMA Implementation
                            VisionSystem              ReconfigurationCoordination
INTRODUCTION            ReconfigurationAnalysis                 Aspect
Motivation                      Aspect
Related Work
Objectives

CONTEXT
PRISMA ADL
Case Study

           MonitoringAspect
DYNAMIC PRISMA                                                            ReconfigurationEffector
Dynamic                                                                           Aspect
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011                     Cristóbal Costa-Soria                             40
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             41
Agrobot: VisionSystem Updating

INTRODUCTION
                           After the delivery of Agrobot units, a critical
Motivation                  update has been requested
Related Work
Objectives                       – The image processing algorithms do not behave
CONTEXT                            correctly in specific contexts (low light levels)
PRISMA ADL
Case Study
                                 – VisionSystem must be dynamically updated
                                       • Without disrupting current operations
DYNAMIC PRISMA
Dynamic
Reconfiguration            Updating of ImageProcSoftware Component
Dynamic Type
Evolution                        – Replacement of functional aspect ImgProcSwController
Evolution
Semantics               ImageProcSoftware                                              ImageProcSoftware
                                                                   Type
CONCLUSIONS &                                                    Evolution
FURTHER WORK

              VideoIn                                 ImageOut               VideoIn                           ImageOut

                                     weavings                                                       weavings




     Valencia, 13th June 2011                                                                                     42
Type and Instances: Example

INTRODUCTION
                       Architectural Type
Motivation                  – Define structure, behaviour, and constraints of an
Related Work
Objectives
                              architectural element
CONTEXT
                                • Specifications  High-level description
PRISMA ADL                      • Executable code  Generated from specifications
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type                                                                   is_compiled_to
Evolution
Evolution                                                                    Image                 Type
                                                                                           Type
Semantics                                                                     Proc
                                                                            Software
                                                                                           Spec    Level
CONCLUSIONS &
FURTHER WORK




                                                                                                  Instance
                                                                                                    Level

     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011                 43
Type and Instances: Example

INTRODUCTION
                       Architectural Type
Motivation                  – Define structure, behaviour, and constraints of an
Related Work
Objectives
                              architectural element
CONTEXT
                                • Specifications  High-level description
PRISMA ADL                      • Executable code  Generated from specifications
Case Study

DYNAMIC PRISMA         Architectural Instances
Dynamic
Reconfiguration
                            – Perform computations and manage a state
Dynamic Type                    • Created from compiled types                    is_compiled_to
Evolution
Evolution                                                                       Image                   Type
                                                                 new(…)                         Type
Semantics                                                                        Proc
                                                              destroy(…)       Software
                                                                                                Spec    Level
CONCLUSIONS &
FURTHER WORK
                                                                            is_instance_of


                                                                                          ImageProc
                                    Dynamic Evolution of Architectural Types                Sw-2       Instance
                                                                                                         Level
                                Changes both the specification and the executable code
                                                                ImageProc
                                                                  Sw-1
     Valencia, 13th June 2011             Cristóbal Costa-Soria, Valencia 13th June 2011                     44
Evolvable Types: Reflective Model

INTRODUCTION
                       Computational Reflection (Maes, 1987)
Motivation                  The ability of a software artefact to introspect
Related Work
Objectives
                            and change itself at runtime
CONTEXT
PRISMA ADL
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution                                                                           provides an editable
Evolution                          reflection                                       specification of the
Semantics                                                                           running artefact
CONCLUSIONS &                                                                       changes are reflected on
FURTHER WORK
                                                                                    the running artefact

                                                                      reification




     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011                        45
Evolvable Types: Reflective Model

INTRODUCTION
                       Each evolvable type is provided with reflective
Motivation              capabilities: Reify & Reflect services
Related Work
Objectives                  – Its specification can be inspected and changed
CONTEXT                       at runtime
PRISMA ADL
Case Study
                            – Its running instances will be evolved to the new version
DYNAMIC PRISMA         Reflective capabilities are provided by
Dynamic
Reconfiguration         a type meta-instance
Dynamic Type                                                           ImageProcSoftwareMETA
Evolution
                                               reify(out SimpleSpec)
Evolution                                     reflect(in SimpleSpec)           Image                   Type
                                                                                               Type
Semantics                                                                       Proc
                                                           new(…)                              Spec    Level
                                                                              Software
CONCLUSIONS &                                           destroy(…)
FURTHER WORK
                                                                           is_instance_of


                                                                                         ImageProc
                                                                                           Sw-2       Instance
                                                                                                        Level
                                                               ImageProc
                                                                 Sw-1
     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011                     46
Evolving Types at Runtime

INTRODUCTION
                        Evolution process
Motivation                   1. Reification
Related Work
Objectives                          • Reify() returns a data structure with the reification of the
                                      type and a set of evolution services to change it.
CONTEXT
PRISMA ADL
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type                                                                ImageProcSoftwareMETA
Evolution       update(...) {                    reify(out SimpleSpec)
Evolution                                       reflect(in SimpleSpec)              Image                   Type
                    R = ImageProcessingCard.reify()                                                 R
                                                                                                    Type
Semantics                                                                            Proc
                                                               new(…)                               Spec    Level
                                                                                   Software
CONCLUSIONS &                                               destroy(…)
FURTHER WORK
                                                                                is_instance_of


                   }                                                                          ImageProc
                                                                                                Sw-2       Instance
                                                                                                             Level
                                 Component
                                  Updater                           ImageProc
                                                                      Sw-1
      Valencia, 13th June 2011                Cristóbal Costa-Soria, Valencia 13th June 2011                     48
Evolving Types at Runtime

INTRODUCTION
                        Evolution process
Motivation                   1. Reification
Related Work
Objectives                          • Reify() returns a data structure with the reification of the
                                      type and a set of evolution services to change it.
CONTEXT
PRISMA ADL                   2. Edition of the specification
Case Study

DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type                                                                 ImageProcSoftwareMETA
Evolution        update(...) {                    reify(out SimpleSpec)
Evolution                                        reflect(in SimpleSpec)              Image                   Type
                     ImageProcSoftware.Reify(out R)                                                  Type
Semantics       R                                                                     Proc
                     R.getAspects(…)                            new(…)                               Spec    Level
                                                                                    Software
CONCLUSIONS &        R.removeAspect(…)                       destroy(…)
FURTHER WORK           R.removeWeaving(…)
                       R.addAspect(…)
                       R.addPort(…)
                                                                                 is_instance_of


                   }                                                                           ImageProc
                         R                                                                       Sw-2       Instance
                                                                                                              Level
                                 Component
                                  Updater                            ImageProc
                                                                       Sw-1
      Valencia, 13th June 2011                 Cristóbal Costa-Soria, Valencia 13th June 2011                     49
Evolving Types at Runtime

INTRODUCTION
                       Evolution process
Motivation                  1. Reification
Related Work
Objectives                         • Reify() returns a data structure with the reification of the
                                     type and a set of evolution services to change it
CONTEXT
PRISMA ADL                  2. Edition of the specification
Case Study
                            3. Reflection
DYNAMIC PRISMA
Dynamic                        • Reflect() introduces the new (incremental) specification
Reconfiguration                   and performs the changes on the type and its instances
Dynamic Type                                                           ImageProcSoftwareMETA
Evolution       update(...) {                    reify(out SimpleSpec)
Evolution                                       reflect(in SimpleSpec)              Image
                    ImageProcSoftware.Reify(out R)                          Image          Type Type
Semantics                                                                    Proc Proc
                    R.getAspects(…)                            new(…)            Software’ Spec Level
                                                                           Software
CONCLUSIONS &       R.removeAspect(…)                       destroy(…)
FURTHER WORK          R.removeWeaving(…)
                      R.addAspect(…)
                      R.addPort(…)
                                                                                  is_instance_of

                      ImageProcSoftware.Reflect(R,…)
                  }                                                                           ImageProc
                                            R                                                   Sw-2      Instance
                                                                     Propagate changes                      Level
                                Component
                                 Updater                              ImageProc
                                                                        Sw-1
     Valencia, 13th June 2011                   Cristóbal Costa-Soria, Valencia 13th June 2011                  50
Evolvable Types: The Internals
  Type reification, introspection
  services, and the different type              ImageProcSoftwareMETA
                                                             Type
                                                                                          Image             InstanceFactoryPort
INTRODUCTION
  versions                                                              Spec                                   - New(...)
                                                                                           Proc
                                                                                                               - Destroy(…)
Motivation                                                                               Software
Related for the creation and destruction
                                                                                                                                          Type
  Code Work                                        (weavings)
  of type instantiations (executable
Objectives
                                                                                                                                          Level
                                                                                                            ReificationPort
  code of the type)                                                                                            - Reify(out SimpleSpec)
CONTEXT                                                                                                     EvolutionPort
PRISMA ADL
  Reflects changes to the type-level.                                                                         - Reflect(in SimpleSpec)

  Encapsulates code-generation
Case Study
  patterns that produce new type           Type
                                           IntrospectionPort    InstanceMonitoringPort
DYNAMIC PRISMA
  versions.
Dynamic
  Keeps the connection with instance-
Reconfiguration
  level: manages instance                                                                           is_instance_of
Dynamic Type
  population, propagates
Evolution
  evolutions, and supervises
Evolution
  asynchronous Evolution.
Semantics

CONCLUSIONS &
FURTHER WORK                                                                                                                             Instance
                                                                                                                                           Level
                                                                           ImageProcSw-1: ImageProcSoftware




                                                                 VideoIn                                                ImageOut


       Valencia, 13th June 2011                                                             weavings                                          51
Evolvable Types: The Internals
  Type reification, introspection
  services, and the different type                   ImageProcSoftwareMETA
                                                                                                Image              InstanceFactoryPort
INTRODUCTION
  versions                                                                                                            - New(...)
                                                                                                 Proc
                                                                                                                      - Destroy(…)
Motivation                                                                                     Software
Related for the creation and destruction
                                                                                                                                                 Type
  Code Work                                             (weavings)
  of type instantiations (executable
Objectives
                                                                                                                                                 Level
                                                                                                                   ReificationPort
  code of the type)                                                                                                   - Reify(out SimpleSpec)
CONTEXT                                                                                                            EvolutionPort
PRISMA ADL
  Reflects changes to the type-level.                                                                                - Reflect(in SimpleSpec)

  Encapsulates code-generation
Case Study
  patterns that produce new type                Type
                                                IntrospectionPort    InstanceMonitoringPort
DYNAMIC PRISMA
  versions.
Dynamic
  Keeps the connection with instance-
Reconfiguration                                                                  TypeIntrospectionPort    MetaInstancePort
  level: manages instance population,
Dynamic Type
  propagates evolutions, and
Evolution
  supervises asynchronous Evolution.                                                                            weavings
Evolution                                       Instance                                          Instance
Semantics                                      Evolution                                          Evolution
                                                                                                  Planning
                                             Mechanisms
CONCLUSIONS &                                (the fixed part)
FURTHER WORK                                                                                                                                    Instance
                                                                                     <<sense>>                <<modify>>
                                                                                                                                                  Level
  Every instance adapts its                                                     ImageProcSw-1: ImageProcSoftware
  structure asynchronously
                                             Instance User-
                                               defined
                                             Functionality
                                                                      VideoIn                                                  ImageOut
                                           (the variable part)
       Valencia, 13th June 2011                                                                    weavings                                          52
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             53
Description of Evolution Semantics

INTRODUCTION
                       Complexity of the Asynchronous Type Evolution
Motivation                  – A lot of low-level details (safe stopping, transactional
Related Work
Objectives
                              support) makes its evaluation difficult
CONTEXT                     – Need for a high-abstraction level tool to evaluate its
PRISMA ADL                    behaviour over time
Case Study

DYNAMIC PRISMA                    Typed Graph Transformations
Dynamic
Reconfiguration
Dynamic Type
                       Evolution operations described by means of
Evolution
Evolution
                        graph transformation rules
Semantics                   –   Asynchronous evolution of types and instances
CONCLUSIONS &
FURTHER WORK
                            –   Type conformance
                            –   Version management
                            –   Order of evolutions
                            –   Consistency of instance-level interactions
     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011   55
Evolution Semantics

INTRODUCTION
                       Trasformation rules described in
Motivation              Architecture-based Concrete Syntax
Related Work
Objectives                  – More concise and easier to understand:
CONTEXT                       concepts from the area of software architectures
PRISMA ADL
Case Study             Two kinds of transformation rules
DYNAMIC PRISMA              – Evolution operations
Dynamic
Reconfiguration                 • Operate at the type-level
Dynamic Type
Evolution
                                • Reflect the change on the type specification by means of
Evolution                         evolution tags
Semantics
                            – Reconfiguration operations
CONCLUSIONS &
FURTHER WORK                    • Operate at the instance-level
                                • Only the evolution tags driving to the next version are
                                  considered
                                • Reflect the change on the instance by modifying its
                                  elements or attributes
     Valencia, 13th June 2011             Cristóbal Costa-Soria, Valencia 13th June 2011     56
Evolution Semantics

INTRODUCTION
                       Update Architectural Type: type-level operation
Motivation                  – Replaces a type by another
Related Work
Objectives                  – Keeps existing connections
CONTEXT                     – Coherence of interactions
PRISMA ADL
Case Study
                                • Ports of new type must be syntactically and semantically
                                  compatible with existing interactions
DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011            Cristóbal Costa-Soria, Valencia 13th June 2011      57
Evolution Semantics

INTRODUCTION
                       Replace Architectural Element: instance-level
Motivation                  –   Evolution of an instance to a new version
Related Work
Objectives                  –   Migrates/transforms previous state
CONTEXT                     –   Updates existing connections
PRISMA ADL
Case Study                  –   Precondition: Quiescent status
DYNAMIC PRISMA
Dynamic
Reconfiguration
Dynamic Type
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011             Cristóbal Costa-Soria, Valencia 13th June 2011   58
Outline
    Introduction
     – Motivation
     – Related works
     – Research objectives
    Context
     – PRISMA ADL
     – Case study: Agrobot
    Dynamic PRISMA Framework
     – Dynamic Reconfiguration
     – Dynamic Evolution of Architectural Types
     – Description of Evolution Semantics
    Conclusions and Further Research             63
Conclusions

INTRODUCTION
                       Dynamic PRISMA takes a step forward in the
Motivation              development of dynamic evolvable systems
Related Work
Objectives                  – Applied to a formal ADL: PRISMA
CONTEXT                     – Semantics described in a platform-independent way
PRISMA ADL
Case Study
                       Dynamic PRISMA contributes with:
DYNAMIC PRISMA
Dynamic
                            – The combination of Dynamic Reconfiguration
Reconfiguration               and Type Evolution
Dynamic Type
Evolution                       • Increases system Plasticity and Flexibility
Evolution
Semantics                   – Identification and encapsulation of
CONCLUSIONS &
                              Dynamic Evolution concerns into different aspects
FURTHER WORK                    • Proactive specifications
                                • Type-level change mechanisms
                                • Instance-level change mechanisms


     Valencia, 13th June 2011                      Cristóbal Costa-Soria          64
Conclusions

INTRODUCTION
                       Dynamic PRISMA contributes with:
Motivation                  – A model for Autonomic Reconfiguration
Related Work
Objectives                      • Each composite can reconfigure its structure at runtime
                                  according to either internal or external stimuli
CONTEXT
PRISMA ADL                  – A model for the Asynchronous Reflective Evolution
Case Study
                              of Types
DYNAMIC PRISMA
                                • Each type is self-described and able to transform itself
Dynamic
Reconfiguration                 • Each instance transforms itself asynchronously,
Dynamic Type                      when it is ready for evolution
Evolution
Evolution
Semantics

CONCLUSIONS &
FURTHER WORK




     Valencia, 13th June 2011                     Cristóbal Costa-Soria                      65
Conclusions

INTRODUCTION
                       Validation of Dynamic PRISMA Framework
Motivation                  – PRISMANET middleware
Related Work
Objectives                      • Identification of constraints related to:
                                    – Transactional management
CONTEXT
PRISMA ADL                          – Safe stopping
Case Study                          – State transfer
DYNAMIC PRISMA
Dynamic
Reconfiguration             – Typed Graph Transformations
Dynamic Type                    • Identification and resolution of issues related to:
Evolution
Evolution                           – Management of type conformance
Semantics                           – Order of evolution processes
CONCLUSIONS &                       – Coherence of interactions
FURTHER WORK

                            – Case study: Agrobot VisionSystem
                                • Understanding and feedback


     Valencia, 13th June 2011                       Cristóbal Costa-Soria               66
Further Research

INTRODUCTION
                       Model-Driven Development of evolvable systems
Motivation
Related Work           Proactive Non-Programmed Evolutions
Objectives
                            – According to high-level goals
CONTEXT
PRISMA ADL
Case Study
                       Coordination of autonomic reconfigurations
DYNAMIC PRISMA
                        among distributed Evolvers
Dynamic
Reconfiguration        Formal analysis and verification
Dynamic Type
Evolution                   – Automated generation of state transfer functions
Evolution
Semantics                   – Automated evaluation of semantic compatibility among
CONCLUSIONS &                 types when dealing with dynamic additions or updates
FURTHER WORK
                            – Runtime verification of system properties against
                              dynamic evolutions
                       Real-time evaluation of the dynamic evolution
                        mechanisms
     Valencia, 13th June 2011                   Cristóbal Costa-Soria                67
Contributions

INTRODUCTION
                       Projects
Motivation                  – This thesis has been funded by the Spanish National
Related Work
Objectives
                              Program for Research, Development and Innovation:
CONTEXT
                                 • DYNAMICA (DYNamic and Aspect-Oriented Modeling for
PRISMA ADL                         Integrated Component-based Architectures)
Case Study                       • META (A Technological and Formal Framework for Model
DYNAMIC PRISMA                     Management in Model Engineering)
Dynamic
Reconfiguration
                                 • MULTIPLE (Multimodeling Approach For Quality-Aware
Dynamic Type                       Software Product Lines)
Evolution
Evolution
Semantics
                       Publications: 27
CONCLUSIONS &
                            –   Journals and Book Chapters: 2 + 2
FURTHER WORK
                            –   International Conferences and Workshops: 8 + 2
                            –   National Conferences and Workshops: 5 + 5
                            –   Ms. Science Thesis: 3

     Valencia, 13th June 2011                    Cristóbal Costa-Soria                    68
Contributions

INTRODUCTION
                       Publications
Motivation                  – Journals and Book Chapters
Related Work
                                • C. Costa-Soria, J. Pérez, J.A. Carsí. An Aspect-Oriented Approach for
Objectives
                                  Supporting Autonomic Reconfiguration of Software Architectures. Special
CONTEXT                           Issue on Autonomic and Self-Adaptive Systems, Informatica (Slovenia),
PRISMA ADL                        vol. 35, issue 1, pp. 15-27. February 2011.
Case Study                      • C. Costa-Soria, R. Heckel. Modelling the Asynchronous Dynamic
                                  Evolution of Architectural Types. Weyns, D.; Malek, S.; De Lemos, R.;
DYNAMIC PRISMA
                                  Andersson, J. (eds.): Self-Organizing Architectures. Lecture Notes on
Dynamic                           Computer Science Series, vol. 6090, pp. 198-229. Springer-Verlag, Berlin
Reconfiguration
                                  Heidelberg, July 2010.
Dynamic Type
Evolution                                    *Revised and Extended best papers from SOAR’09 Workshop
Evolution                       • N. Ali, J. Pérez, C. Costa, I. Ramos, J.A. Carsí. Replicación distribuida en
Semantics                         arquitecturas software orientadas a aspectos utilizando ambientes
                                  (“Distributed Replication in Aspect-Oriented Software Architectures Using
CONCLUSIONS &
FURTHER WORK
                                  Ambients”). IEEE Latin America Transactions, Special Edition JISBD’06,
                                  vol. 5, issue 4, pp. 231-237. IEEE Region 9, July 2007. (in Spanish)
                                • N. Ali, J. Pérez, C. Costa, I. Ramos, J.A. Carsí. Mobile Ambients in
                                  Aspect-Oriented Software Architectures. K. Sacha (ed.): Software
                                  Engineering Techniques: Design for Quality. IFIP Series, vol. 227, pp. 37-
                                  48. Springer, October 2006.

     Valencia, 13th June 2011                           Cristóbal Costa-Soria                                    69
Contributions

INTRODUCTION
                       Publications
Motivation                  – International Conferences
Related Work
                                • J. Pérez, J. Díaz, C. Costa-Soria, J. Garbajosa. Plastic Partial
Objectives
                                  Components: A Solution to Support Variability in Architectural
CONTEXT                           Components. Joint 8th Working IEEE/IFIP Conf. on Software Architecture
PRISMA ADL                        & 3rd European Conf. on Software Architecture (WICSA/ECSA 2009), pp.
Case Study                        221-230. Cambridge, UK, 14-17 Sept, 2009
                                           *Conference Ranking CORE: A
DYNAMIC PRISMA
                                • C. Costa-Soria, D. Hervás-Muñoz, J. Pérez, J.A. Carsí. A Reflective
Dynamic
Reconfiguration                   Approach for Supporting the Dynamic Evolution of Component Types. 14th
Dynamic Type
                                  IEEE International Conference on Engineering of Complex Computer
Evolution                         Systems (ICECCS'09), pp. 301-310. Potsdam, Germany, 2-4 June 2009.
Evolution                                  *Conference Ranking CORE: A. Ranking CSCR: 0.88
Semantics                       • C. Costa-Soria, J. Pérez, J.A. Carsí. Handling the Dynamic
CONCLUSIONS &                     Reconfiguration of Software Architectures using Aspects. 13th IEEE
FURTHER WORK                      European Conference on Software Maintenance and Reengineering
                                  (CSMR’09), pp. 263-266. Kaiserslautern, Germany, 24-27 March 2009.
                                           *Conference Ranking CiteSeer: 0.36 (top 59.29%), CORE: C
                                • C. Costa, J. Pérez, J.A. Carsí. Managing Dynamic Evolution of
                                  Architectural Types. 2nd European Conference on Software Architecture
                                  (ECSA’08). LNCS, vol. 5292, pp. 281-289. Springer, Heidelberg, 2008
                                           *Conference acceptance ratio: 28%. Ranking CORE: A
     Valencia, 13th June 2011                                                                          70
Contributions

INTRODUCTION
                       Publications
Motivation                  – International Conferences
Related Work
                                • C. Costa, N. Ali, J. Pérez, J.A. Carsí, I. Ramos. Dynamic Reconfiguration
Objectives
                                  of Software Architectures Through Aspects. First European Conference on
CONTEXT                           Software Architecture (ECSA’07). Lecture Notes on Computer Science,
PRISMA ADL                        vol. 4758, pp. 279-283. Springer, Heidelberg, 2007
Case Study                                 *Conference acceptance ratio: 30%. Ranking CORE: A
                                • C. Costa, J. Pérez, J.A. Carsí. Dynamic Adaptation of Aspect-Oriented
DYNAMIC PRISMA
                                  Components. 10th International Symposium on Component-Based
Dynamic
Reconfiguration                   Software Engineering (CBSE’07). Lecture Notes on Computer Science,
Dynamic Type
                                  vol. 4608, pp. 49-65. Springer, Heidelberg, 2007.
Evolution                                  *Conference acceptance ratio: 22%. Ranking CORE: A
Evolution                       • C. Costa, N. Ali, C. Millán, J.A. Carsí. Transparent Mobility of Distributed
Semantics                         Objects using .NET. 4th International Conference on .NET Technologies.
CONCLUSIONS &                     Pilsen, Czech Republic, June 2006.
FURTHER WORK                               *Conference Ranking CORE: C
                                • J. Pérez, N. Ali, C. Costa, J.A. Carsí, I. Ramos. Executing Aspect-
                                  Oriented Component-Based Software Architectures on .NET Technology.
                                  3rd International Conference on .NET Technologies. Pilsen, Czech
                                  Republic, June 2005
                                           *Conference Ranking CORE: C

     Valencia, 13th June 2011                                                                                    71
Thank you very much for your attention

          Cristóbal Costa-Soria

          Information Systems and Software Engineering Research Group
          Department of Information Systems and Computation
          Universidad Politécnica de Valencia
          Spain

          Home page:          http://issi.dsic.upv.es/~ccosta
          Email:              cricosso@upv.es
          The PRISMA project: http://prisma.dsic.upv.es

More Related Content

Similar to Dynamic Evolution and Reconfiguration of Software Architectures through Aspects. PhD Thesis Dissertation

Pattern-based Evolution
Pattern-based EvolutionPattern-based Evolution
Pattern-based EvolutionAakash Ahmad
 
Pattern-based Evolution
Pattern-based EvolutionPattern-based Evolution
Pattern-based EvolutionAakash Ahmad
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)David Rosenblum
 
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and MethodologyWSO2
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 
Resilience and Security @ Scale: Lessons Learned
Resilience and Security @ Scale: Lessons LearnedResilience and Security @ Scale: Lessons Learned
Resilience and Security @ Scale: Lessons LearnedJason Chan
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Intro To CA 2E Change Management
Intro To CA 2E Change ManagementIntro To CA 2E Change Management
Intro To CA 2E Change ManagementADC Austin Tech
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? IJORCS
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011RNeches
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureVikas Dhyani
 

Similar to Dynamic Evolution and Reconfiguration of Software Architectures through Aspects. PhD Thesis Dissertation (20)

Pattern-based Evolution
Pattern-based EvolutionPattern-based Evolution
Pattern-based Evolution
 
Pattern-based Evolution
Pattern-based EvolutionPattern-based Evolution
Pattern-based Evolution
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
[WSO2Con USA 2018] Deep-dive into Agile Architecture and Methodology
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Resilience and Security @ Scale: Lessons Learned
Resilience and Security @ Scale: Lessons LearnedResilience and Security @ Scale: Lessons Learned
Resilience and Security @ Scale: Lessons Learned
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Intro To CA 2E Change Management
Intro To CA 2E Change ManagementIntro To CA 2E Change Management
Intro To CA 2E Change Management
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Sa 008 patterns
Sa 008 patternsSa 008 patterns
Sa 008 patterns
 
System Design
System DesignSystem Design
System Design
 
Software Engineering 101
Software Engineering 101Software Engineering 101
Software Engineering 101
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Dynamic Evolution and Reconfiguration of Software Architectures through Aspects. PhD Thesis Dissertation

  • 1. DYNAMIC EVOLUTION AND RECONFIGURATION OF SOFTWARE ARCHITECTURES THROUGH ASPECTS Cristóbal Costa-Soria Supervisors Dr. Jose A. Carsí Cubel Dr. Jennifer Pérez Benedí Valencia, 13th June 2011
  • 2. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 2
  • 3. Motivation INTRODUCTION  Software systems are subject to changes Motivation during their lifetime Related Work Objectives – Context adaptations, improvements, updates, or new CONTEXT features PRISMA ADL Case Study – Sometimes as a consequence of their use or aging DYNAMIC PRISMA  Change is challenging in systems that are Dynamic Reconfiguration continuously operating Dynamic Type Evolution – Management and control of critical infrastructures Evolution Semantics (military, energy, health, transports) CONCLUSIONS & – 24/7 business SLA (cloud infrastructures, banking FURTHER WORK systems, manufacturing industry systems) – Not reachable systems (autonomous robots in space missions) Valencia, 13th June 2011 Cristóbal Costa-Soria 3
  • 4. Introduction: Dynamic Evolution INTRODUCTION  Dynamic Evolution Motivation A process of gradual change that is performed on a previously Related Work operational software system to correct, improve, extend or Objectives reduce part of its functionality, which occurs during its CONTEXT execution, without disturbing those parts of the system PRISMA ADL Case Study unaffected by the change, and which preserves the system’s integrity. DYNAMIC PRISMA Dynamic Reconfiguration  Different granularities of dynamic change Dynamic Type – Fine: variables, statements or methods int a=2; calc(a,20); Evolution sen(20,a); a+3; Evolution Semantics – Medium: classes, modules or components CONCLUSIONS & – Coarse: composites, software architectures FURTHER WORK This thesis focuses on evolving software architectures But also on evolving the architecture building blocks Valencia, 13th June 2011 Cristóbal Costa-Soria 4
  • 5. Dynamism at the Architectural Level INTRODUCTION  Why a software architecture-based approach? Motivation – High abstraction level for describing dynamic changes Related Work Objectives • Code is modularized by means of architectural elements CONTEXT • Improvement of maintenance and reusability PRISMA ADL – Allows varying the level of system description Case Study • Complexity is reduced DYNAMIC PRISMA Dynamic – Architecture Description Languages provide support for Reconfiguration Dynamic Type • System modelling Evolution • Code-generation Evolution Semantics • Formal Analysis CONCLUSIONS & FURTHER WORK Composite Component Component Component Port Connector Connector Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 5
  • 6. Evolving Software Architectures INTRODUCTION  Dynamic Change in Software Architectures Motivation – Dynamic Reconfiguration Related Work Objectives Changes performed at runtime in the organisation of a composite system, involving the creation and removal of CONTEXT PRISMA ADL architectural instances and/or the links among them. Case Study DYNAMIC PRISMA Composite Component Dynamic Reconfiguration Dynamic Type Component Component Port Evolution Evolution Semantics Connector Component Connector CONCLUSIONS & FURTHER WORK – Dynamic Evolution of Architectural Types Changes performed at runtime in the architectural types that a composite system is build from, involving the introduction of new types, the modification of instantiated types, or the removal of existing types and their instances Valencia, 13th June 2011 Cristóbal Costa-Soria 6
  • 7. Evolving Software Architectures INTRODUCTION  Both levels of dynamism are complementary and Motivation beneficial for the construction of highly dynamic Related Work Objectives software architectures CONTEXT – Dynamic Reconfiguration for structural changes PRISMA ADL Case Study DYNAMIC PRISMA – Dynamic Type Evolution for behavioural changes Dynamic Reconfiguration Dynamic Type Evolution Plasticity Evolution Makes the structure malleable at runtime Semantics within some constraints CONCLUSIONS & FURTHER WORK Flexibility Makes the elements entirely modifiable at runtime This thesis addresses how to combine them for Valencia, 13th June 2011 designing highly Costa-Soria systems Cristóbal dynamic 7
  • 8. Dynamic Evolution Concerns INTRODUCTION  Dynamic Reconfiguration and Type Evolution are Motivation orthogonal to system functionality Related Work Objectives – Crosscutting concerns of flexible and dynamic systems CONTEXT – Should be isolated to improve reuse and maintenance PRISMA ADL Case Study DYNAMIC PRISMA  Aspect-Oriented Software Development Dynamic Reconfiguration – Separates crosscutting concerns by means Dynamic Type of aspects and weavings Evolution Evolution <<sense>> Semantics CONCLUSIONS &  Evolution Concerns  FURTHER WORK <<act>> encapsulated into aspects – Makes their system integration transparent – Facilitates their maintenance Valencia, 13th June 2011 Cristóbal Costa-Soria 8
  • 9. Related work INTRODUCTION  Desired attributes for Evolution Frameworks Motivation Related Work – Degree of formality Based on a formal language or focused on a specific technology? Objectives Formal CONTEXT – Level of dynamism Structural or behavioural changes? PRISMA ADL Reconfiguration and Type Evolution How are the changes driven Case Study – Activeness (internally or externally)? Proactive and Reactive Where are the evolution concerns DYNAMIC PRISMA Dynamic – Separation of evolution concernsdefined? Are the specifications and mechanisms explicitly isolated ? Reconfiguration Evolution specifications and mechanisms are isolated from other concerns Dynamic Type Evolution – Evolution management Centralized or Distributed? Evolution Distributed Which degree of self-awareness is Semantics – Introspection provided? CONCLUSIONS & Aware of its structure and state What degree of expressiveness is FURTHER WORK – Types of change supported? Additions, removals, updates, linkings How the consistency of the system and unlinkings – Consistency management is preserved before and after Safe stopping, State transfer, Transactional management dynamic changes? Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 9
  • 10. State of the Art INTRODUCTION  Analysis from different perspectives Motivation – Formal specification of dynamic reconfigurations Related Work Objectives – Technological approaches covering dynamic change CONTEXT support PRISMA ADL Case Study – Self-adaptive approaches DYNAMIC PRISMA – Decentralized approaches Dynamic Reconfiguration – Aspect-oriented management of evolutions Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011
  • 11. State of the Art INTRODUCTION  Challenges Motivation – Gap among formal ADLs and technological approaches Related Work Objectives covering dynamic evolution CONTEXT – Dynamic Reconfiguration and Type Evolution are PRISMA ADL supported, but not combined together Case Study – Few approaches support both proactive and reactive DYNAMIC PRISMA Dynamic changes Reconfiguration Dynamic Type – Evolution concerns (specifications and mechanisms) Evolution are not completely isolated from other concerns Evolution Semantics – Limited support for consistency management CONCLUSIONS & mechanisms FURTHER WORK Any approach covers all the attributes analysed Valencia, 13th June 2011 Cristóbal Costa-Soria 11
  • 12. State of the Art INTRODUCTION Motivation Related Work Objectives CONTEXT PRISMA ADL Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria 12
  • 13. Research objectives To provide a framework to make easy the design, INTRODUCTION Motivation development, and maintenance of architecture-based Related Work software systems which are capable of changing their Objectives structure and behaviour at runtime CONTEXT PRISMA ADL Case Study – Bridge the gap among formal dynamic ADLs and DYNAMIC PRISMA Dynamic dynamic change mechanisms Reconfiguration – Support both degrees of architectural dynamism, both Dynamic Type Evolution proactively and reactively: Evolution Semantics • Dynamic Reconfiguration of Software Architectures • Dynamic Evolution of Architectural Types CONCLUSIONS & FURTHER WORK – Preserve the separation of evolution concerns – Automate the development of evolvable systems Valencia, 13th June 2011 Cristóbal Costa-Soria 13
  • 14. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 14
  • 15. Architectural Model: PRISMA INTRODUCTION  The Dynamic Evolution framework has been Motivation applied on PRISMA Architectural Model Related Work Objectives  Advantages for dynamic evolution CONTEXT PRISMA ADL – Allows modelling functional decomposition of systems Case Study – Allows modelling crosscutting concerns  Aspects DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Composite Architectural Element Simple Architectural Element  Isolate evolution concerns Valencia, 13th June 2011
  • 16. Architectural Model: PRISMA INTRODUCTION  Allows modelling behaviour of architectural Motivation elements Related Work Objectives – Architectural element: observable process with state CONTEXT and behaviour PRISMA ADL Case Study – Services: described in modal logic of actions (Stirling, 1992) DYNAMIC PRISMA Dynamic – Interactions: π-Calculus with priorities (Milner, 1993) Reconfiguration Dynamic Type Evolution Evolution Semantics  Interleave actions required to perform evolution CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria 16
  • 17. Architectural Model: PRISMA INTRODUCTION  Supported by a Model-Driven Development Motivation framework Related Work Objectives PRISMA CONTEXT Type Modelling Tool Model Compiler Meta-Model PRISMA ADL Case Study PRISMACASE DYNAMIC PRISMA Dynamic Reconfiguration  Automate the generation of Dynamic Type Evolution evolvable systems Configuration Evolution Modelling Tool C# Code Generation Generic UGI Semantics CONCLUSIONS & FURTHER WORK PRISMA Middleware (PRISMANET) .NET FRAMEWORK Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 17
  • 18. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 20
  • 19. Case Study: Agrobot INTRODUCTION  An Autonomous Robot for Motivation Plague Control Related Work Objectives – Patrols a delimited area, looks for threats, applies CONTEXT pesticides only when needed PRISMA ADL Case Study – Autonomous: continuously operating guided by high- level tasks, self-managed DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 21
  • 20. Agrobot Architecture INTRODUCTION  Hierarchically composed Motivation – A composition of composite components Related Work Objectives CONTEXT PRISMA ADL Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics composed_of CONCLUSIONS & FURTHER WORK 22
  • 21. Agrobot: Types and Instances INTRODUCTION  Typed Architecture Motivation Related Work Objectives CONTEXT Type PRISMA ADL Case Study Level DYNAMIC PRISMA Dynamic Reconfiguration instance_of instance_of Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Instance Level Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 23
  • 22. Dynamic Requirements of the Agrobot INTRODUCTION  The Agrobot is autonomous and 24/7 operative Motivation – Day: monitors weather conditions, supervises growing Related Work Objectives crops, recharges itself CONTEXT – Night: processes data collected, keeps active PRISMA ADL surveillance, monitors weather conditions Case Study DYNAMIC PRISMA  Performs self-control and self-maintenance tasks Dynamic Reconfiguration Dynamic Type Evolution – In parallel to other tasks, to avoid disrupting other tasks Evolution Semantics – Provided through Autonomic Reconfiguration and CONCLUSIONS & Dynamic Type Evolution FURTHER WORK Required for software updating and hot Required for fault-tolerance swapping of Agrobot tools and devices support and energy management Valencia, 13th June 2011 Cristóbal Costa-Soria 24
  • 23. Dynamic Requirements: VisionSystem INTRODUCTION  Fault-tolerance support Motivation – Critical element to guarantee movement Related Work Objectives – Failure in a component  use of alternative versions CONTEXT  Dynamic Reconfiguration of the architecture PRISMA ADL Case Study DYNAMIC PRISMA Reconfig Dynamic . Reconfiguration Dynamic Type Evolution Evolution faultyOutput!(out “ImageProcCard”) Semantics CONCLUSIONS & FURTHER WORK  Dynamic updating support – Updating of the image processing algorithms • The image processing algorithms do not behave correctly in some situations (low light levels) – Without disrupting Cristóbal Costa-Soria Valencia, 13th June 2011 current operations 25
  • 24. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 26
  • 25. Dynamic Reconfiguration INTRODUCTION  Reconfiguration management model Motivation – Each composite component is provided with self- Related Work Objectives management properties to autonomously reconfigure CONTEXT its internal composition PRISMA ADL • Benefits scalability Case Study – Self-management properties are isolated and DYNAMIC PRISMA Dynamic encapsulated into different aspects Reconfiguration • Benefits maintenance Dynamic Type Evolution A Evolution P  Based in an Autonomic Control loop (MAPE) Semantics – Self-management of system resources: CONCLUSIONS & M E FURTHER WORK Monitorization  Analysis  Planning  Effect – Adapted for the management of a software architecture Autonomic Reconfiguration Valencia, 13th June 2011 The managed resource is the system architecture 27
  • 26. Autonomic Reconfiguration  From the Autonomic Control loop INTRODUCTION Motivation To Autonomic Reconfiguration of Composite Components Related Work – Monitoring Objectives • Monitorization of the architecture and its running state CONTEXT PRISMA ADL – Reconfiguration Analysis Case Study • Analysis of reconfiguration needs (e.g. for self-healing) DYNAMIC PRISMA Dynamic – Reconfiguration Coordination Reconfiguration • Coordinates the set of dynamic reconfiguration actions to Dynamic Type perform on the architecture Evolution Evolution – Reconfiguration Effector Semantics • Effects the changes on the architecture at runtime CONCLUSIONS & FURTHER WORK Reconfiguration Policies Reconfiguration Mechanisms Valencia, 13th June 2011 Cristóbal Costa-Soria 28
  • 27. Improving Maintenance: Modularity  Modules INTRODUCTION Motivation – In Autonomic Computing, the A P Related Work MAPE control loop is Objectives implemented in different M E CONTEXT modules PRISMA ADL Case Study – Modules are highly dependent DYNAMIC PRISMA on each other Dynamic Reconfiguration  Aspects Dynamic Type Evolution – Aspects can be defined Evolution independently of each other Semantics • Semantics: Separation of CONCLUSIONS & Concerns FURTHER WORK • Explicit separation of relationships (weavings) • Usage of interception mechanisms: before, after, insteadOf Valencia, 13th June 2011 Cristóbal Costa-Soria 29
  • 28. Aspects in PRISMA ADL INTRODUCTION  Aspects Motivation – An aspect defines provided and required services, and Related Work Objectives each service is treated as a hook to be intercepted CONTEXT PRISMA ADL  Weavings Case Study – Weaving specifications describe how aspect services DYNAMIC PRISMA are bound together Dynamic Reconfiguration • If a weaving is removed, simply no behaviour is executed Dynamic Type Evolution createImageProcSoftware(params,AEid)! Evolution Semantics CONCLUSIONS & createArchElement(“ImgProcSW”,params,AEid)? Name of the FURTHER WORK target aspect Service to be executed Weaving type Weavings Name of the ReconfCoord.createArchElement(“ImgProcSW”,params,AEid) source aspect insteadOf ReconfAnalysis.createImageProcSoftware(params,AEid); Service to be intercepted End_Weavings; Valencia, 13th June 2011 Cristóbal Costa-Soria 30
  • 29. Autonomic Reconfiguration In Composite Components INTRODUCTION  Any composite component that can reconfigure Motivation itself has a component called Evolver Related Work Objectives – Reconfiguration Aspects are encapsulated in a CONTEXT component called Evolver PRISMA ADL Case Study  Each component can reconfigure itself DYNAMIC PRISMA independently of the other systems Dynamic Reconfiguration – Distributed management not centralized Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria 31
  • 30. Example: Agrobot Reconfiguration Scenario  Fault-tolerance support in the VisionSystem INTRODUCTION Motivation – Critical element to guarantee movement and plague Related Work inspection of the Agrobot Objectives – Reconfigured to introduce alternative components in CONTEXT PRISMA ADL case of failures Case Study DYNAMIC PRISMA  Main reconfiguration trace: Dynamic Reconfiguration Reconfig Dynamic Type . Evolution Evolution Semantics CONCLUSIONS & faultyOutput!(out “ImageProcCard”) FURTHER WORK Valencia, 13th June 2011 32
  • 31. Monitoring Aspect INTRODUCTION  Provides Introspection services Motivation – Capture/Intercept Events that take place in the Related Work Objectives architecture CONTEXT – Provide information about the current configuration PRISMA ADL Case Study – Status of the architectural elements Monitoring Aspect { Idle | Active | Blocking | Blocked } ... DYNAMIC PRISMA Services Dynamic in beforeServiceRequest(elemID: string, serviceName: string, output params: list); Reconfiguration in afterServiceRequest(elemID: string, serviceName: string, output params: list); Dynamic Type in insteadOfServiceRequest(elemID: string, serviceName: string, condition: string, Evolution replacingService: string, output params: list); Evolution monitoredServices(output serviceList: list); in Semantics in getArchElementInstances(typeName: string, output instances: list); in getAttachedArchElems(archElemID: string, attachType: string, CONCLUSIONS & output attachedArchElemIDs: list); FURTHER WORK in getArchElementProperties(archElemID: string, output properties: list, output portsList: list); in getAttachmentProperties(connectionID: string, output instance1: string, output instance2: string); ... in getStatus(elementID: string, output status: string); in getElementsOfStatus(status: string, output elemIDList: list); ... End_Aspect; Valencia, 13th June 2011 Cristóbal Costa-Soria 33
  • 32. Reconfiguration Analysis Aspect INTRODUCTION  Encapsulates the Reconfiguration Policies of Motivation a composite component Related Work Objectives – Event-Condition-Action Policies CONTEXT – Defined at design time (programmed reconfiguration) PRISMA ADL Case Study  Described in terms of Domain-Specific DYNAMIC PRISMA Dynamic reconfiguration services Reconfiguration createImageProcSoftware(params, out ID) Dynamic Type attachImageProcSoftware_VideoCaptureCard(imgProcSWID, videoCaptureID, out attID) Evolution detachImageProcCard_VideoCaptureCard(imgProcCardID, videoCaptureID) Evolution Semantics – Define the plasticity of the architecture CONCLUSIONS & FURTHER WORK • Reconfigurations must be type-conformant • Avoids instances of non-allowed types, the removal of critical instances, or invalid linkings – Automatically generated by the MDD platform Valencia, 13th June 2011 Cristóbal Costa-Soria 34
  • 33. Reconfiguration Analysis Aspect INTRODUCTION  Specification using PRISMA AOADL Motivation – Based on a π -calculus notation Related Work ReconfigurationAnalysis aspect VisionSysRecAnalysis Objectives ... [Headers of domain-specific reconfig. operations] ... CONTEXT Triggers Reconfiguration Triggers PRISMA ADL REPAIRIMAGEPROCESSUNIT when {eventParams==["ImageProcCard"]} Case Study (Events & Conditions) beforeEvent!(“faultyOutput”, out eventParams); when the reconfiguration ... PRISMA DYNAMIC process will be activated Dynamic Transactions Reconfiguration RepairImageProcessingUnit(): // Configuration transaction for replacing an imageProcCard Dynamic Type // component by an imageProcSoftware component Evolution REPAIRIMAGEPROCESSINGUNIT ::= Evolution oldImProcCardID = imageProcCard-list[0] --> Semantics VCCConnID=VCC-Conn-list[0] --> IPCConnID=IPC-Conn-list[0] --> RECONF; CONCLUSIONS ::= RECONF & Configuration create-ImageProcSoftware!(cameraPos, output newImProcID) --> FURTHER WORK attach-Att_VCCConn_IPCSW!(VCCConnID, newImProcID, output newAttID) --> Transactions attach-Att_IPCSW_IPCConn!(newImProcID, IPCConnID, output newAttID) --> (Actions) detach-Att_VCCConn_IPC!(VCCConnID, oldImProcCardID) --> how the architecture detach-Att_IPC_IPCConn!(oldImProcCardID, IPCConnID) --> must be reconfigured destroy-ImageProcCard!(oldImProcCardID) --> END; ... ... [more transactions] Valencia, 13th June 2011 End_Aspect VisionSysRecAnalysis; Cristóbal Costa-Soria 37
  • 34. Reconfiguration Coordination Aspect INTRODUCTION  Coordinates the reconfiguration process Motivation – Execution inside a transactional context Related Work Objectives • All reconfiguration operations are successful or the entire process is rollbacked CONTEXT PRISMA ADL – Triggers the execution of low-level services from Case Study Monitoring and Reconf.Effector aspects to: DYNAMIC PRISMA • Identify the affected elements and its dependencies Dynamic Reconfiguration Transactions • Drive the affected elements to reach quiescence Dynamic Type BeginConfigurationTransaction(): Evolution BEGINCONFIG::= • Perform atomic reconfiguration operations Evolution • Check that NewTransactionalContext(output transactionID) --> END; the target configuration has been CreateArchElem(typeName, params, output newID): Semantics achieved CREATE::= CreateInstance!(typeName, params, output newID) --> CHECK; CHECK::= CheckConsistence(output transState) --> CONCLUSIONS & if {transState=“ROLLBACK”} then RollbackConfigurationTransaction() FURTHER WORK archElementsCreated.add(newID) --> END; else CreateAttachment(attachType, srcAE-ID, trgAE-ID, output attID): ATTACH::= ... ... //Other high-level reconfig. operations DestroyArchElem(typeName, id): STOP ::= StopElement!(id) --> GetStatus!(id, output status) --> if {status=“Blocked”} then STOPCONNECTIONS else STOP; STOPCONNECTIONS ::= GetConnectionsOfArchElem!(id, output connectionList) --> Valencia, 13th June 2011 connectionList do ( StopElement!(conn) ) for each conn in Cristóbal Costa-Soria 38 --> REMOVECONNECTIONS;
  • 35. Reconfiguration Effector Aspect INTRODUCTION  Provides generic reconfiguration services Motivation – Changes the architecture at a low level, without Related Work Objectives taking into account the status of the elements or the CONTEXT interactions among them PRISMA ADL ReconfigurationEffector Aspect Case Study ... Services DYNAMIC PRISMA in StartElement(elemID: string); Dynamic in StopElement(elemID: string); Reconfiguration in PassivateElement(elemToPassivate: string, blockedElement: string); Dynamic Type Evolution in CreateInstance(typeName: string, initParams: list, output instanceID: string); Evolution in DestroyInstance(instanceID: string); Semantics in Connect(instance1: string, port1: string, instance2: string, port2: string, output connectionID: string); CONCLUSIONS & in Disconnect(connectionID: string); FURTHER WORK in SerializeState(instanceID: string, output state: string); in CreateInstanceFromSerializedState(typeName: string, serializedState: string, output instanceID: string); in ConvertStateFromPreviousVersion(typeName: string, oldType: string, oldState: string, newRequiredValues: list, output transformedState: string); ... End_Aspect; Valencia, 13th June 2011 Cristóbal Costa-Soria 39
  • 36. Dynamic PRISMA Implementation VisionSystem ReconfigurationCoordination INTRODUCTION ReconfigurationAnalysis Aspect Motivation Aspect Related Work Objectives CONTEXT PRISMA ADL Case Study MonitoringAspect DYNAMIC PRISMA ReconfigurationEffector Dynamic Aspect Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria 40
  • 37. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 41
  • 38. Agrobot: VisionSystem Updating INTRODUCTION  After the delivery of Agrobot units, a critical Motivation update has been requested Related Work Objectives – The image processing algorithms do not behave CONTEXT correctly in specific contexts (low light levels) PRISMA ADL Case Study – VisionSystem must be dynamically updated • Without disrupting current operations DYNAMIC PRISMA Dynamic Reconfiguration  Updating of ImageProcSoftware Component Dynamic Type Evolution – Replacement of functional aspect ImgProcSwController Evolution Semantics ImageProcSoftware ImageProcSoftware Type CONCLUSIONS & Evolution FURTHER WORK VideoIn ImageOut VideoIn ImageOut weavings weavings Valencia, 13th June 2011 42
  • 39. Type and Instances: Example INTRODUCTION  Architectural Type Motivation – Define structure, behaviour, and constraints of an Related Work Objectives architectural element CONTEXT • Specifications  High-level description PRISMA ADL • Executable code  Generated from specifications Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type is_compiled_to Evolution Evolution Image Type Type Semantics Proc Software Spec Level CONCLUSIONS & FURTHER WORK Instance Level Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 43
  • 40. Type and Instances: Example INTRODUCTION  Architectural Type Motivation – Define structure, behaviour, and constraints of an Related Work Objectives architectural element CONTEXT • Specifications  High-level description PRISMA ADL • Executable code  Generated from specifications Case Study DYNAMIC PRISMA  Architectural Instances Dynamic Reconfiguration – Perform computations and manage a state Dynamic Type • Created from compiled types is_compiled_to Evolution Evolution Image Type new(…) Type Semantics Proc destroy(…) Software Spec Level CONCLUSIONS & FURTHER WORK is_instance_of ImageProc Dynamic Evolution of Architectural Types Sw-2 Instance Level Changes both the specification and the executable code ImageProc Sw-1 Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 44
  • 41. Evolvable Types: Reflective Model INTRODUCTION  Computational Reflection (Maes, 1987) Motivation The ability of a software artefact to introspect Related Work Objectives and change itself at runtime CONTEXT PRISMA ADL Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution provides an editable Evolution reflection specification of the Semantics running artefact CONCLUSIONS & changes are reflected on FURTHER WORK the running artefact reification Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 45
  • 42. Evolvable Types: Reflective Model INTRODUCTION  Each evolvable type is provided with reflective Motivation capabilities: Reify & Reflect services Related Work Objectives – Its specification can be inspected and changed CONTEXT at runtime PRISMA ADL Case Study – Its running instances will be evolved to the new version DYNAMIC PRISMA  Reflective capabilities are provided by Dynamic Reconfiguration a type meta-instance Dynamic Type ImageProcSoftwareMETA Evolution reify(out SimpleSpec) Evolution reflect(in SimpleSpec) Image Type Type Semantics Proc new(…) Spec Level Software CONCLUSIONS & destroy(…) FURTHER WORK is_instance_of ImageProc Sw-2 Instance Level ImageProc Sw-1 Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 46
  • 43. Evolving Types at Runtime INTRODUCTION  Evolution process Motivation 1. Reification Related Work Objectives • Reify() returns a data structure with the reification of the type and a set of evolution services to change it. CONTEXT PRISMA ADL Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type ImageProcSoftwareMETA Evolution update(...) { reify(out SimpleSpec) Evolution reflect(in SimpleSpec) Image Type R = ImageProcessingCard.reify() R Type Semantics Proc new(…) Spec Level Software CONCLUSIONS & destroy(…) FURTHER WORK is_instance_of } ImageProc Sw-2 Instance Level Component Updater ImageProc Sw-1 Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 48
  • 44. Evolving Types at Runtime INTRODUCTION  Evolution process Motivation 1. Reification Related Work Objectives • Reify() returns a data structure with the reification of the type and a set of evolution services to change it. CONTEXT PRISMA ADL 2. Edition of the specification Case Study DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type ImageProcSoftwareMETA Evolution update(...) { reify(out SimpleSpec) Evolution reflect(in SimpleSpec) Image Type ImageProcSoftware.Reify(out R) Type Semantics R Proc R.getAspects(…) new(…) Spec Level Software CONCLUSIONS & R.removeAspect(…) destroy(…) FURTHER WORK R.removeWeaving(…) R.addAspect(…) R.addPort(…) is_instance_of } ImageProc R Sw-2 Instance Level Component Updater ImageProc Sw-1 Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 49
  • 45. Evolving Types at Runtime INTRODUCTION  Evolution process Motivation 1. Reification Related Work Objectives • Reify() returns a data structure with the reification of the type and a set of evolution services to change it CONTEXT PRISMA ADL 2. Edition of the specification Case Study 3. Reflection DYNAMIC PRISMA Dynamic • Reflect() introduces the new (incremental) specification Reconfiguration and performs the changes on the type and its instances Dynamic Type ImageProcSoftwareMETA Evolution update(...) { reify(out SimpleSpec) Evolution reflect(in SimpleSpec) Image ImageProcSoftware.Reify(out R) Image Type Type Semantics Proc Proc R.getAspects(…) new(…) Software’ Spec Level Software CONCLUSIONS & R.removeAspect(…) destroy(…) FURTHER WORK R.removeWeaving(…) R.addAspect(…) R.addPort(…) is_instance_of ImageProcSoftware.Reflect(R,…) } ImageProc R Sw-2 Instance Propagate changes Level Component Updater ImageProc Sw-1 Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 50
  • 46. Evolvable Types: The Internals Type reification, introspection services, and the different type ImageProcSoftwareMETA Type Image InstanceFactoryPort INTRODUCTION versions Spec - New(...) Proc - Destroy(…) Motivation Software Related for the creation and destruction Type Code Work (weavings) of type instantiations (executable Objectives Level ReificationPort code of the type) - Reify(out SimpleSpec) CONTEXT EvolutionPort PRISMA ADL Reflects changes to the type-level. - Reflect(in SimpleSpec) Encapsulates code-generation Case Study patterns that produce new type Type IntrospectionPort InstanceMonitoringPort DYNAMIC PRISMA versions. Dynamic Keeps the connection with instance- Reconfiguration level: manages instance is_instance_of Dynamic Type population, propagates Evolution evolutions, and supervises Evolution asynchronous Evolution. Semantics CONCLUSIONS & FURTHER WORK Instance Level ImageProcSw-1: ImageProcSoftware VideoIn ImageOut Valencia, 13th June 2011 weavings 51
  • 47. Evolvable Types: The Internals Type reification, introspection services, and the different type ImageProcSoftwareMETA Image InstanceFactoryPort INTRODUCTION versions - New(...) Proc - Destroy(…) Motivation Software Related for the creation and destruction Type Code Work (weavings) of type instantiations (executable Objectives Level ReificationPort code of the type) - Reify(out SimpleSpec) CONTEXT EvolutionPort PRISMA ADL Reflects changes to the type-level. - Reflect(in SimpleSpec) Encapsulates code-generation Case Study patterns that produce new type Type IntrospectionPort InstanceMonitoringPort DYNAMIC PRISMA versions. Dynamic Keeps the connection with instance- Reconfiguration TypeIntrospectionPort MetaInstancePort level: manages instance population, Dynamic Type propagates evolutions, and Evolution supervises asynchronous Evolution. weavings Evolution Instance Instance Semantics Evolution Evolution Planning Mechanisms CONCLUSIONS & (the fixed part) FURTHER WORK Instance <<sense>> <<modify>> Level Every instance adapts its ImageProcSw-1: ImageProcSoftware structure asynchronously Instance User- defined Functionality VideoIn ImageOut (the variable part) Valencia, 13th June 2011 weavings 52
  • 48. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 53
  • 49. Description of Evolution Semantics INTRODUCTION  Complexity of the Asynchronous Type Evolution Motivation – A lot of low-level details (safe stopping, transactional Related Work Objectives support) makes its evaluation difficult CONTEXT – Need for a high-abstraction level tool to evaluate its PRISMA ADL behaviour over time Case Study DYNAMIC PRISMA  Typed Graph Transformations Dynamic Reconfiguration Dynamic Type  Evolution operations described by means of Evolution Evolution graph transformation rules Semantics – Asynchronous evolution of types and instances CONCLUSIONS & FURTHER WORK – Type conformance – Version management – Order of evolutions – Consistency of instance-level interactions Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 55
  • 50. Evolution Semantics INTRODUCTION  Trasformation rules described in Motivation Architecture-based Concrete Syntax Related Work Objectives – More concise and easier to understand: CONTEXT concepts from the area of software architectures PRISMA ADL Case Study  Two kinds of transformation rules DYNAMIC PRISMA – Evolution operations Dynamic Reconfiguration • Operate at the type-level Dynamic Type Evolution • Reflect the change on the type specification by means of Evolution evolution tags Semantics – Reconfiguration operations CONCLUSIONS & FURTHER WORK • Operate at the instance-level • Only the evolution tags driving to the next version are considered • Reflect the change on the instance by modifying its elements or attributes Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 56
  • 51. Evolution Semantics INTRODUCTION  Update Architectural Type: type-level operation Motivation – Replaces a type by another Related Work Objectives – Keeps existing connections CONTEXT – Coherence of interactions PRISMA ADL Case Study • Ports of new type must be syntactically and semantically compatible with existing interactions DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 57
  • 52. Evolution Semantics INTRODUCTION  Replace Architectural Element: instance-level Motivation – Evolution of an instance to a new version Related Work Objectives – Migrates/transforms previous state CONTEXT – Updates existing connections PRISMA ADL Case Study – Precondition: Quiescent status DYNAMIC PRISMA Dynamic Reconfiguration Dynamic Type Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria, Valencia 13th June 2011 58
  • 53. Outline  Introduction – Motivation – Related works – Research objectives  Context – PRISMA ADL – Case study: Agrobot  Dynamic PRISMA Framework – Dynamic Reconfiguration – Dynamic Evolution of Architectural Types – Description of Evolution Semantics  Conclusions and Further Research 63
  • 54. Conclusions INTRODUCTION  Dynamic PRISMA takes a step forward in the Motivation development of dynamic evolvable systems Related Work Objectives – Applied to a formal ADL: PRISMA CONTEXT – Semantics described in a platform-independent way PRISMA ADL Case Study  Dynamic PRISMA contributes with: DYNAMIC PRISMA Dynamic – The combination of Dynamic Reconfiguration Reconfiguration and Type Evolution Dynamic Type Evolution • Increases system Plasticity and Flexibility Evolution Semantics – Identification and encapsulation of CONCLUSIONS & Dynamic Evolution concerns into different aspects FURTHER WORK • Proactive specifications • Type-level change mechanisms • Instance-level change mechanisms Valencia, 13th June 2011 Cristóbal Costa-Soria 64
  • 55. Conclusions INTRODUCTION  Dynamic PRISMA contributes with: Motivation – A model for Autonomic Reconfiguration Related Work Objectives • Each composite can reconfigure its structure at runtime according to either internal or external stimuli CONTEXT PRISMA ADL – A model for the Asynchronous Reflective Evolution Case Study of Types DYNAMIC PRISMA • Each type is self-described and able to transform itself Dynamic Reconfiguration • Each instance transforms itself asynchronously, Dynamic Type when it is ready for evolution Evolution Evolution Semantics CONCLUSIONS & FURTHER WORK Valencia, 13th June 2011 Cristóbal Costa-Soria 65
  • 56. Conclusions INTRODUCTION  Validation of Dynamic PRISMA Framework Motivation – PRISMANET middleware Related Work Objectives • Identification of constraints related to: – Transactional management CONTEXT PRISMA ADL – Safe stopping Case Study – State transfer DYNAMIC PRISMA Dynamic Reconfiguration – Typed Graph Transformations Dynamic Type • Identification and resolution of issues related to: Evolution Evolution – Management of type conformance Semantics – Order of evolution processes CONCLUSIONS & – Coherence of interactions FURTHER WORK – Case study: Agrobot VisionSystem • Understanding and feedback Valencia, 13th June 2011 Cristóbal Costa-Soria 66
  • 57. Further Research INTRODUCTION  Model-Driven Development of evolvable systems Motivation Related Work  Proactive Non-Programmed Evolutions Objectives – According to high-level goals CONTEXT PRISMA ADL Case Study  Coordination of autonomic reconfigurations DYNAMIC PRISMA among distributed Evolvers Dynamic Reconfiguration  Formal analysis and verification Dynamic Type Evolution – Automated generation of state transfer functions Evolution Semantics – Automated evaluation of semantic compatibility among CONCLUSIONS & types when dealing with dynamic additions or updates FURTHER WORK – Runtime verification of system properties against dynamic evolutions  Real-time evaluation of the dynamic evolution mechanisms Valencia, 13th June 2011 Cristóbal Costa-Soria 67
  • 58. Contributions INTRODUCTION  Projects Motivation – This thesis has been funded by the Spanish National Related Work Objectives Program for Research, Development and Innovation: CONTEXT • DYNAMICA (DYNamic and Aspect-Oriented Modeling for PRISMA ADL Integrated Component-based Architectures) Case Study • META (A Technological and Formal Framework for Model DYNAMIC PRISMA Management in Model Engineering) Dynamic Reconfiguration • MULTIPLE (Multimodeling Approach For Quality-Aware Dynamic Type Software Product Lines) Evolution Evolution Semantics  Publications: 27 CONCLUSIONS & – Journals and Book Chapters: 2 + 2 FURTHER WORK – International Conferences and Workshops: 8 + 2 – National Conferences and Workshops: 5 + 5 – Ms. Science Thesis: 3 Valencia, 13th June 2011 Cristóbal Costa-Soria 68
  • 59. Contributions INTRODUCTION  Publications Motivation – Journals and Book Chapters Related Work • C. Costa-Soria, J. Pérez, J.A. Carsí. An Aspect-Oriented Approach for Objectives Supporting Autonomic Reconfiguration of Software Architectures. Special CONTEXT Issue on Autonomic and Self-Adaptive Systems, Informatica (Slovenia), PRISMA ADL vol. 35, issue 1, pp. 15-27. February 2011. Case Study • C. Costa-Soria, R. Heckel. Modelling the Asynchronous Dynamic Evolution of Architectural Types. Weyns, D.; Malek, S.; De Lemos, R.; DYNAMIC PRISMA Andersson, J. (eds.): Self-Organizing Architectures. Lecture Notes on Dynamic Computer Science Series, vol. 6090, pp. 198-229. Springer-Verlag, Berlin Reconfiguration Heidelberg, July 2010. Dynamic Type Evolution *Revised and Extended best papers from SOAR’09 Workshop Evolution • N. Ali, J. Pérez, C. Costa, I. Ramos, J.A. Carsí. Replicación distribuida en Semantics arquitecturas software orientadas a aspectos utilizando ambientes (“Distributed Replication in Aspect-Oriented Software Architectures Using CONCLUSIONS & FURTHER WORK Ambients”). IEEE Latin America Transactions, Special Edition JISBD’06, vol. 5, issue 4, pp. 231-237. IEEE Region 9, July 2007. (in Spanish) • N. Ali, J. Pérez, C. Costa, I. Ramos, J.A. Carsí. Mobile Ambients in Aspect-Oriented Software Architectures. K. Sacha (ed.): Software Engineering Techniques: Design for Quality. IFIP Series, vol. 227, pp. 37- 48. Springer, October 2006. Valencia, 13th June 2011 Cristóbal Costa-Soria 69
  • 60. Contributions INTRODUCTION  Publications Motivation – International Conferences Related Work • J. Pérez, J. Díaz, C. Costa-Soria, J. Garbajosa. Plastic Partial Objectives Components: A Solution to Support Variability in Architectural CONTEXT Components. Joint 8th Working IEEE/IFIP Conf. on Software Architecture PRISMA ADL & 3rd European Conf. on Software Architecture (WICSA/ECSA 2009), pp. Case Study 221-230. Cambridge, UK, 14-17 Sept, 2009 *Conference Ranking CORE: A DYNAMIC PRISMA • C. Costa-Soria, D. Hervás-Muñoz, J. Pérez, J.A. Carsí. A Reflective Dynamic Reconfiguration Approach for Supporting the Dynamic Evolution of Component Types. 14th Dynamic Type IEEE International Conference on Engineering of Complex Computer Evolution Systems (ICECCS'09), pp. 301-310. Potsdam, Germany, 2-4 June 2009. Evolution *Conference Ranking CORE: A. Ranking CSCR: 0.88 Semantics • C. Costa-Soria, J. Pérez, J.A. Carsí. Handling the Dynamic CONCLUSIONS & Reconfiguration of Software Architectures using Aspects. 13th IEEE FURTHER WORK European Conference on Software Maintenance and Reengineering (CSMR’09), pp. 263-266. Kaiserslautern, Germany, 24-27 March 2009. *Conference Ranking CiteSeer: 0.36 (top 59.29%), CORE: C • C. Costa, J. Pérez, J.A. Carsí. Managing Dynamic Evolution of Architectural Types. 2nd European Conference on Software Architecture (ECSA’08). LNCS, vol. 5292, pp. 281-289. Springer, Heidelberg, 2008 *Conference acceptance ratio: 28%. Ranking CORE: A Valencia, 13th June 2011 70
  • 61. Contributions INTRODUCTION  Publications Motivation – International Conferences Related Work • C. Costa, N. Ali, J. Pérez, J.A. Carsí, I. Ramos. Dynamic Reconfiguration Objectives of Software Architectures Through Aspects. First European Conference on CONTEXT Software Architecture (ECSA’07). Lecture Notes on Computer Science, PRISMA ADL vol. 4758, pp. 279-283. Springer, Heidelberg, 2007 Case Study *Conference acceptance ratio: 30%. Ranking CORE: A • C. Costa, J. Pérez, J.A. Carsí. Dynamic Adaptation of Aspect-Oriented DYNAMIC PRISMA Components. 10th International Symposium on Component-Based Dynamic Reconfiguration Software Engineering (CBSE’07). Lecture Notes on Computer Science, Dynamic Type vol. 4608, pp. 49-65. Springer, Heidelberg, 2007. Evolution *Conference acceptance ratio: 22%. Ranking CORE: A Evolution • C. Costa, N. Ali, C. Millán, J.A. Carsí. Transparent Mobility of Distributed Semantics Objects using .NET. 4th International Conference on .NET Technologies. CONCLUSIONS & Pilsen, Czech Republic, June 2006. FURTHER WORK *Conference Ranking CORE: C • J. Pérez, N. Ali, C. Costa, J.A. Carsí, I. Ramos. Executing Aspect- Oriented Component-Based Software Architectures on .NET Technology. 3rd International Conference on .NET Technologies. Pilsen, Czech Republic, June 2005 *Conference Ranking CORE: C Valencia, 13th June 2011 71
  • 62. Thank you very much for your attention Cristóbal Costa-Soria Information Systems and Software Engineering Research Group Department of Information Systems and Computation Universidad Politécnica de Valencia Spain Home page: http://issi.dsic.upv.es/~ccosta Email: cricosso@upv.es The PRISMA project: http://prisma.dsic.upv.es