A Reference Architecture for Component-Based Self-Adaptive...
Transcript of A Reference Architecture for Component-Based Self-Adaptive...
A Reference Architecture for
Component-Based
Self-Adaptive Software Systems
Lorena Castañeda Bueno
Advisor: Gabriel Tamura
• Today’s software applications face
unpredictable context changes, including
business goals changes in organizations
• Software systems must fulfill these
changes in requirements in a very short
time, and especially at runtime.
• Software adaptation is expensive and
takes a lot of time and effort.
2
Motivation
Lets see an example…
Motivation
Mobile Banking Service
�Manage Accounts
�Payments
�Transfers
new
Secure and Fast
Too much time!
�Security protocols
�Cryptography
3
THIS REQUIRES SYSTEMS THAT CAN BE MORE
SELF-MANAGEABLE
• Software engineering for Self-Adaptive Systems
community have made significant efforts to propose
self-adaptive systems, however:
– Not general enough to fit the different systems to build
self-adaptive software
– Adaptation mechanisms merged with the target system.
– Feedback loops are not explicit in most of these
proposals.
Motivation
4
1. Background
2. The Problem
3. Solution and Contributions
4. Evaluation
5. Conclusions and Future Work
5
Presentation outline
Knowledge Areas:
1. Autonomic Computing and Software Adaptation
2. Self-adaptive Software System Approaches
3. Component-Based Software Engineering
4. Software Architecture, Reference Models and
Reference Architectures
6
Background
1. Autonomic Computing and Software
Adaptation
• Self-managed systems:
– The capability to run routine tasks and maintenance
without the intervention of the system administrator.
• Adaptation refers to the capability of changing the
software structure and behavior to meet the
changing business requirements.
• Feedback is the process to return an output of the
system to check if the control objectives are being
achieved
7
Control loop
• Control loop is the feedback
mechanism to control the dynamic
behavior of the system, supported in
four activities:
– Collect – Relevant data from
the system and environment
– Analyze – the collected data
– Decide – how to adapt in
order to reach a desirable
state
– Act – realize in the system the
decisions made by the control
8“Software engineering for self-adaptive systems: A research roadmap” B. H. Cheng et al.
2. Self-adaptive software system
approaches
1. IBM’s autonomic computing - ACRA
2. Kramer and Magee, three layer reference
architecture
3. Garlan, the Rainbow Framework based on
reusable architecture and external adaptation
4. Parra’s Cappucino architecture
5. Solomon’s autonomic system
6. DYNAMICO reference model
9
Autonomic computing reference
architecture (ACRA) - IBM
10
Level 1
Level 2
Level 3
Level 4
Level 5
An Architectural blueprint for autonomic computing, IBM, 2005
LEVEL 3 - Autonomic manager
• It is the component that
implements the control loop:
1. Monitor
2. Analyzer
3. Planner
4. Executer
5. These four elements
communicate to and
collaborate with each other
and exchange appropriate
Knowledge and information.
11
LEVEL 2 – Touchpoints
• Components that expose the state and management
operations for a managed resource
12
Managed Resources
Data sources Other systems
To effect
changes
(operations)
To sense
changes
(properties
and events)
Target System
DYNAMICO: A Reference Model for Governing Control
Objectives and Context Relevance in Self-Adaptive
Software Systems
13
Control
objectives
Adaptation
Control
Context
control
Villegas, N.M., Tamura, G., Müller, H.A., Duchien, L., Casallas, R, LNCS Vol.7475, 2012
3. Component-Based software engineering
� Software elements Independently
developed and deployed
� Hides all the complexity of the
software implementation
� Components reuse
� Permits easy replacement
14Component-based software engineering, George Heineman and William
Councill, 2007
SOFTWARE
COMPONENT
• An architecture in software defines the elements that
compose the system and the relationship between those
elements.
15
4. Software Architecture, Reference
Models and Reference Architectures
Software Architecture In Practice, Len Bass and Paul Clements and Rick Kazman, 2003
Decomposition of
a well known type
of problem
A set of elements in
component types and the
relationships among them
Mapping between a Reference
Model, Architectural Patterns and
the data flow among them
2. THE PROBLEM
16
Changing context and software adaptation
The Problem
Different systems, data types
configurations
Self-Adaptation merged
with the Target System
Feedback loops are
not explicit
To build self-adaptive systems
with heterogeneous available
systems
The necessity to
manage adaptation
mechanism
Measure the output
of the system and
evaluate adaptation
17
3. PROPOSED SOLUTION
18
Our Reference Architecture
PROJECT GOALS:
1. To design and implement a component-
based reference architecture for
component-based self-adaptive software
systems.
– Separation of concerns
– Distribution
– Extensibility
2. To evaluate our proposal In an specific
case of study
19
20
1. Pipes and Filters
2. Event-Based
3. Blackboard
An Introduction to software architecture, David Garlan and Mary Shaw, 1994
1. Control Feedback loop
2. DYNAMICO
+
++ Data Flow
Our high level goal is to
provide software engineers
with a guide to design
software architectures for
self-adaptive systems
21
Architecture Data Flow
Target SystemAdaptation
mechanism
THE INFORMATION IS
CONTEXT RELATED
Architecture Data Flow
CONTEXT METAMODEL
by Villegas et al.
Our reference
architecture context
metamodel
22
Context-Driven Adaptive Monitoring for Supporting SOA Governance, Villegas and Müller, 2010
Architecture Data Flow
CONTEXT METAMODEL subset
23Context-Driven Adaptive Monitoring for Supporting SOA Governance,
Villegas and Müller, 2010
Diagnosis
Context Data
Context Event
information
Adaptation
Actions
Commands
24
Our Architecture Data Flow Proposal
Architecture Data Flow
25
Registration
request
(Tx/min)
In the last minute
115 (Tx/min)
Current Tx/min is 115.
Desired Tx/min for today is 100
115 > 100 -> Adaptation is required
A SLO describes that for a given day, the Maximum
of Transactions per minute allowed is 100, if more
then adaptation is required
26
+
++ Data Flow
27
Our Reference Architecture for Component-Based
Self-Adaptive Software Systems Implementation
� Adaptation Mechanism
� Human Interaction
� Context Interaction
27
28
Registration
request
115 Registration
request in the last
minute
Monitoring
policies
Analyzing
Policies
SLO: Max 100
Current : 115
Desired: 100
Adaptation
Planning
policiesAdaptation
Actions
Commands
Our Reference Architecture for Component-Based
Self-Adaptive Software Systems Implementation
General Representation
29
An Interface to
expose services
An Abstract class to
define basic
behavior
A Specific
implementation
Java Implementation
3030
4. EVALUATION
31
Evaluate a concrete architecture derived from our Reference Architecture
�A Case of Study
� Explore its extensibility to support dynamic adaptation of SCA Software Applications
� Explore its distribution executing the components separately
Evaluation
32
Reliable Videoconference Service (RVCS)
33
Vid
eo
-Co
nfe
ren
ce S
yste
m
Vid
eo
-co
nfe
ren
ce c
lie
nt
Establishment of Service
Conditions (QoS)
Registers and Attends
A concrete SCA Architecture derivation
from our Reference Architectura
34
Service Component Architecture, Assembly Model Specification. Specification Version
1.0, Beisiegel, M. and Blohm, H. and Booz, D. and Edwards, M. and Hurley, O., 2007
Each component is
described in its
own composite
One composite file to
group all components
35
Testing Deployment Configuration
Not implemented
Test Cases and Results
36
Test Results
37
Amount of
Requests
Evaluation
criteriaSLO
Fulfillment
Adaptation
Requirement
Test 2 Results
38
Test 2 Results
39
Test 3 Results
40
�A Case of Study
� Extensibility: SCA Software Applications
�Distribution: Separating MAPE-K from Sensor and Effector
Evaluation Results
41
5. CONCLUSIONS AND FUTURE
WORK
42
Conclusions (I)
Our reference architecture provides a generic
framework to implement adaptation mechanisms for
software systems.
• Separation of concerns enabling the evaluation,
maintenance and analysis of the adaptation process in a self-
adaptive system.
• Data flow modeling using an extensive context metamodel
43
Conclusions (II)
Based on components, this reference architecture also
provides
– component reuse,
– the ability to be extensible and interoperable,
which can help software engineers to specialize,
extend and grow the functionalities of each
component, according to the necessities of the specific
target system.
44
Conclusions (III)
As an SCA-compliant implementation, our reference
architecture fulfills the goal of being extensible
Each SCA component of the reference architecture is
defined in its own composite file in order to fulfill
the distribution capability
45
Future Work
• Security between the Target System and the MAPE-K
• AMC development to assist humans in the definition
of SLOs.
• Include V&V modeling in the Reference Architecture
• V&V after adaptation
• Planner and Executer extensions
46
• [1] Len Bass, Paul Clements, and Rick Kazman. Software Architecture In Practice. Addison-Wesley,
2003.
• [2] M. Beisiegel, H. Blohm, D. Booz, M. Edwards, and O. Hurley. Service Component Architecture,
Assembly Model Specication. Specication Version 1.0. 2007.
• [3] B. H. Cheng, R. Lemos, H. Giese, P. Inverardi, J. Magee, J. Andersson, B. Becker, N. Bencomo, Y.
Brun, B. Cukic, G. Marzo Serugendo, S. Dustdar, A. Finkelstein, C. Gacek, K. Geihs, V. Grassi, G.
Karsai, H. M. Kienle, J. Kramer, M. Litoiu, S. Malek, R. Mirandola, H. A. M uller, S. Park, M. Shaw, M.
Tichy, M. Tivoli, D. Weyns, , and J. Whittle. Software engineering for self-adaptive systems: A
research roadmap. Software engineering for self-adaptive systems, LNCS 5525:1 { 26, 2009.
• [4] Microsoft Corp. Introducing Windows Communication Foundation in .NET Framework 4.
http://msdn.microsoft.com/library/ee958158.aspx (Last visited: Jan/2012).
• [5] R. Dawson, R. Desmarais, H.M. Kienle, and H.A M uller. Monitoring in Adaptive Systems Using
Reection. ACM/IEEE, SEAMS 2008:81 { 88, 2008.
• [6] A.G. Ganek and T.A. Corbi. The dawning of the autonomic computing era. IBM Systems journal,
42(1):5{18, 2003.
• [7] David Garlan, Shang-Wen Chen, An-Cheng Huang, Bradley Schmerl, and Peter Steekiste.
Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer,
37(10):46{54, 2004.
References
47
• [8] David Garlan and Mary Shaw. An Introduction to software architecture. School of computer science. Carnegie Mellon University, 1994.
• [9] H. Giese, Y. Brun, J. D. M. Serugendo, C. Gacek, H. Kienle, H. M uller, M. Pezze, , and M. Shaw. Engineering self-adaptive systems through feedback loops. Springer-Verlag, LNCS 5525:47 { 69, 2009.
• [10] George Heineman and William Councill. Component-based software engineering. Addisonwesley, 2007.
• [11] J. L. Hellerstein, Y. Diao, S. Parekh, , and D. M. Tilbury. Feedback Control of Computing Systems. John Wiley and Sons, 2004.
• [12] IBM. An Architectural blueprint for autonomic computing. Autonomic computing, 2005.
• [13] Oracle Inc. Java EE at a Glance. http://www.oracle.com/technetwork/java/javaee/overview/ index.html (Last visited: Jan/2012).
• [14] J.O. Kephart and D.M. Chess. The vision of autonomic computing. IEEE Computer, 36 No.1:41 { 50, 2003.
• [15] J Kramer and J Magee. Self-managed Systems: an Architectural Challenge. IEEE Computer, pages 259 { 268, 2007.
References
48
• [16] Philip K McKinley, Seyed Masoud Sadjadi, and Betty H.C. Cheng. Composing Adaptive
Software. IEEE Computer, July 2004.
• [17] H. Müller, M. Pezze, , and M. Shaw. Visibility of control in adaptive systems. Proceedings
of the 2nd international workshop on Ultra-large-scale software-intensive systems, ULSSIS
2008:23 {26, 2008.
• [18] H . A. Müller, H. M. Kienle, and U. Stege. Autonomic computing: Now you see it, now you
dontdesign and evolution of autonomic software systems. Lecture Notes in Computer
Science, 5413:32 { 54, 2009.
• [19] OASIS Organization. Service Component Architecture (SCA) Specication.
ttp://www.oasisopencsa.org/sca (Last visited: Jan/2012).
• [20] Carlos Parra, Xavier Blanc, and Laurence Duchien. Context Awareness for Dynamic
Service- Oriented Product Lines. In John McGregor and Dirk Muthig, editors, 13th
International Software Product Line Conference, volume 1, pages 131{140, San Francisco,
Etats-Unis, August 2009. Acceptance rate: 30/83 (36%). Rank (CORE) : B.
• [21] Bogdan Solomon, Dan Ionescu, Marin Litoiu, and Mircea Mihaescu. A real-time adaptive
control of autonomic computing environments. CASCON, pages 124 { 136, 2007.
• [22] Thomas Stahl and Markus Vlter. Model-Driven Software Development. Jhon Wiley and
Sons, Ltd, 2006.
References
49
• [23] Clemens Szyperski. Component Software. Beyond Object-Oriented Programming.
Addisonwesley, 2007.
• [24] G. Tamura, C. Demarey, R. Casallas, and L. Duchien. QoS-CARE: A Framework for selfreliable
QoS Contract Preservation through Self-Reconguration. Preprint submitted to JSS Special Issue State
of the Art in Self-Adaptive Systems, 2012.
• [25] Gabriel Tamura. QoS-CARE: A Reliable System for Preserving QoS Contracts through Dy-namic
Reconguration. Phd thesis, University of Lille 1 - Science and Technology and Universidad de Los
Andes, May 2012.
• [26] Gabriel Tamura, Rubby Casallas, Anthony Cleve, and Laurence Duchien. QoS contractaware
reconguration of component architectures using e-graphs. In Proceedings of the 7th international
conference on Formal Aspects of Component Software, FACS'10, pages 34{52, Berlin, Heidelberg,
2012. Springer-Verlag.
• [27] Vijay Tewari and Milan Milenkovic. Standards for Autonomic Computing. Intel technology
journal, 10 No.4:275 { 284, 2006.
• [28] D. Truex, R. Baskerville, and H Klein. Growing Systems in Emergent Organizations. Com-
munications of the ACM, 42 No. 8:117 { 123, 1999.
References
50
• [29] N.M. Villegas and H.A M uller. Context-Driven Adaptive Monitoring for Supporting
SOA Governance. Proceedings of the 4th International Workshop on a Research Agenda
for Mainte-nance and Evolution of Service-Oriented Systems (MESOA 2010), Carnegie
Mellon University Software Engineering Institute, 2010.
• [30] Norha M. Villegas, Gabriel Tamura, Hausi A. M uller, Laurence Duchien, and Rubby
Casallas.DYNAMICO: A Reference Model for Governing Control Objectives and Context
Relevance in Self-Adaptive Software Systems. In Software Engineering for Self-Adaptive
Systems 2, volume 7475 of LNCS, pages 282 { 310. Springer, 2012.
References
51
52