PhD Thesis presented in the Universidad Politécnica de Valencia (Spain) on 13th June 2011. Supervisors: Jennifer Pérez, Jose A. Carsí. Full PhD Thesis available on: http://issi.dsic.upv.es/publications/articles?view=371 and http://hdl.handle.net/10251/11038
Abstract:
Change is an intrinsic property of software. A software system, during its lifetime, may require several updates, improvements, or new features. If these change requirements are not addressed, the risk of becoming a useless system increases. In fact, this is a challenging issue of safety- and mission-critical software systems, which cannot be stopped to perform maintenance or evolution operations due to their continuous operation. To reduce the aging of these critical systems, they must be provided with mechanisms enabling their dynamic evolution, i.e. the support of changes on their structure and behaviour while they remain in operation. This thesis is concerned with the design of a framework to build architecture-based, dynamically evolvable, software systems.
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