SlideShare a Scribd company logo
1 of 27
Download to read offline
Integrating Adaptation Mechanisms
Using Control Theory Centric
Architecture Models: A Case Study
ICAC’14, Philadelphia, 18.6.2014
Philippe Collet Romain Rouvoy
University Lille 1 / LIFL

INRIA Lille

France
Université Nice Sophia
Antipolis I3S - CNRS UMR 7271

France
University Lille 1 / LIFL

INRIA Lille

France
Filip Křikava
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
SELF-ADAPTIVE SOFTWARE SYSTEMS, FEEDBACK CONTROL
• Increasing complexity of software systems, uncertain operating environment
• A shift towards self-adaptive software systems
• systems adjusting themselves in accordance with higher-level goals
• Feedback control loops (FCLs) provide a generic mechanism for engineering
self-adaptive software systems
Monitoring Reconfiguration
Decision Making
sensors effectors
Target System
events actions
measures decisions
system outputs
(response time,
utilization, throughput)
system control inputs
(queue size, scheduling
policy, concurrency level)
achieve externally specified goals
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
• Engineering self-adaptive software systems is challenging
• Example: web server self-optimization (MC based on MEM)
CHALLENGES
FCL control challenges
control engineers
FCL integration challenges
software engineers
2500
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
(b) SISO data, (c) MIMO data
MC varying
Experimental input-output data used for system ID.
1 = 0.485 · MEMk + 3.63 £ 10°4
· MCk (3)
when performing two separate SISO identifications, it is as-
ng parameters do not interact. However, from Figure 7(b), we
wave has a significant effect on CPU. Hence, our assumption is
he need for MIMO techniques in system identification.
fication
Apache MIMO models shown in Figure 3(b) and Figure 3(c).
del requires simultaneously varying both KA and MC in order to
2500
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
(b) SISO data, (c) MIMO data
MC varying
Experimental input-output data used for system ID.
1 = 0.485 · MEMk + 3.63 £ 10°4
· MCk (3)
when performing two separate SISO identifications, it is as-
ng parameters do not interact. However, from Figure 7(b), we
wave has a significant effect on CPU. Hence, our assumption is
he need for MIMO techniques in system identification.
fication
Apache MIMO models shown in Figure 3(b) and Figure 3(c).
del requires simultaneously varying both KA and MC in order to
ween the parameters. As before, discrete sine waves are used.
Controller
Apache
Web
Server
MEMMCMEM⇤
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
0
0.5
1
CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
0
0.5
1CPU
0
0.5
1
MEM
0
10
20
KA
0 500 1000 1500 2000 2500
0
500
1000
Time (s)
MC
(a) SISO data, (b) SISO data, (c) MIMO data
KA varying MC varying
Figure 7: Experimental input-output data used for system ID.
MEMk+1 = 0.485 · MEMk + 3.63 £ 10°4
· MCk (3)
As mentioned earlier, when performing two separate SISO identifications, it is as-
umed that the two tuning parameters do not interact. However, from Figure 7(b), we
an see that the MC sine wave has a significant effect on CPU. Hence, our assumption is
valid. This motivates the need for MIMO techniques in system identification.
.2.2 MIMO Identification
Next, we consider the Apache MIMO models shown in Figure 3(b) and Figure 3(c).
entifying a MIMO model requires simultaneously varying both KA and MC in order to
apture interactions between the parameters. As before, discrete sine waves are used.
owever, their frequencies should be relatively prime so that good coverage of the input
pace is obtained (as in Figure 6).
Figure 7(c) plots the results of the MIMO identification experiments. Using this data,
first-order linear MIMO model is constructed, as shown in Equation 4. Note that A
nd B are matrices instead of scalars. The matrix approach provides a way to model
e combined effect of tuning parameters on utilizations. Specifically, all elements of
e second matrix (B) are non-zero (although the effect of KA on MEM is much less than
s effect on CPU).
CPUk+1
MEMk+1
∏
=
∑
0.537 °0.109
°0.0256 0.630
∏
·
∑
CPUk
MEMk
∏
+
∑
°84.5 4.39
°2.48 2.81
∏
£10°4
·
∑
KAk
MCk
∏
(4)
.3 Model Evaluation
Two model evaluations are done. The first is one-step prediction in which the value
a metric at time k + 1 is predicted based on measured values at time k. The second
multi-step prediction in which the value at k + 1 is predicted based on the prediction
time k. Throughout, we focus on CPU since the low variability of MEM makes it
latively easy to predict.
Figure 8 plots predicted versus measured values for one-step predictions of CPU. A
erfect model would have all observations (the diamonds) on the line of unit slope. Part
) plots the SISO results using the SISO data. The fit is quite good; R2
= 0.934. Part
When |a| < 1, the system is stable and the a terms will remain bounded
s of k. As noted above, the model can predict steady-state values of the output
stant inputs u by finding fixed-points of Equation 5.
er dynamic property that can be determined by the pole is speed of response.
proaches zero, the speed of response to changes in the input becomes faster. If
en yk+1 = b · uk. Hence, it takes one time step for the output, y, to converge
nges in the input. As |a| approaches one, it takes more time steps for the output
ge to a steady-state after changes in the input. This can be seen in Figure 9 in
CP U = 0.595 > 0.485 = aMEM , and MEM settles faster than CPU.
nal property that can be determined by the pole is whether the system will
n an oscillatory manner to changes in the input. If a < 0, then the behavior
stem will be oscillatory due to the aj
terms in Equation 5; when j is even, the
ositive, and when j is odd, the term is negative.
vector case, the scalar parameters a and b in Equation 5 are replaced by matri-
d B. The solution to this vector time-series equation is similar to Equation 5.
se, the response of the system is governed by the eigenvalues of A, which are
in the vector case. Note that in the vector case, the poles can be complex (with
and imaginary parts). The presence of an imaginary part can cause oscillations
he real part is positive. With multiple poles, the “slowest” or dominant poles
se whose magnitude is closest to one) determine settling times. The poles of
O model of Equation 4 are 0.513 and 0.654, indicating that this model predicts
response than that predicted by the SISO model.
trol Design
ection describes our methodology for designing feedback controllers and ap-
o Apache for the architectures shown in Figure 3. Section 4.1 introduces the
logy. Section 4.2 applies this methodology to designing SISO controllers, and
4.3 to MIMO design with LQR. Section 4.4 discusses controller robustness to
n workloads.
esign Methodology
ethodology for controller design uses a proportional integral (PI) controller.
of its robustness, PI control is widely used in mechanical engineering and
ontrol. PI control operates according to the following control law
uk = KP ek + KI
k°1X
j=1
ej, (6)
is a tuning parameter, and ek = rk ° yk is the control error. For the Apache
rk is the desired policy (CPU§
and/or MEM§
), and yk is the measured metric
d/or MEM). For SISO control, the policies (CPU§
, MEM§
) are considered indi-
for MIMO control they are considered together.
trol has two parameters: KP , the proportional gain, and KI, the integral gain.
of thumb, the proportional term is used to increase the speed of response and
[Hellerstein et al., 2004]
• Design decision mechanism
• data collection
• model construction and evaluation
• controller design
API
LOGS
CONFIG FILES
COMMANDS
AOP
PROFILER
• Prepare experimental environment
• identify system outputs (sensors)
• identify system control inputs (effectors)
// Type definitions ---------------------------------------
typedef struct { // Positional ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float Io,Do; // state vars
float CSo; // for locks
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDpos_DATA;
typedef struct { // Incremental ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float CSo,Do; // state vars
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDinc_DATA;
typedef struct { // 1st order t.f. w/o zeroes
float mu,T,Ts; // parameters
float xo; // state vars
float u,y; // I/O vars
} TF1P0Z_DATA;
// Dynamic systems (init and run) -------------------------
void isapidpos_coldinit(ISAPIDpos_DATA *pd,
float K, float Ti, float Td,
float N, float b, float c,
float CSmin, float CSmax, float Ts,
char TS, char Fp, char Fm)
{
pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td;
pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c;
pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts;
pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm;
pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0;
pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0;
pd-&gt;HI = 0; pd-&gt;LO = 0;
}
void isapidpos(ISAPIDpos_DATA *pd)
{
float DSP,DPV,P,I,D;
if (pd-&gt;TS==0) { // Automatic mode
DSP = pd-&gt;SP-pd-&gt;SPo;
DPV = pd-&gt;PV-pd-&gt;PVo;
P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV);
I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV);
D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td
*(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts);
pd-&gt;CS = P+I+D;
if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp)
|(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm))
pd-&gt;CS = pd-&gt;CSo;
}
else { // Tracking mode (can override locks)
pd-&gt;CS = pd-&gt;TR;
D = 0; }
// Antiwindup
if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax;
if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin;
pd-&gt;Io = pd-&gt;CS-P-D;
// Saturation signalling
// Type definitions ---------------------------------------
typedef struct { // Positional ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float Io,Do; // state vars
float CSo; // for locks
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDpos_DATA;
typedef struct { // Incremental ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float CSo,Do; // state vars
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDinc_DATA;
typedef struct { // 1st order t.f. w/o zeroes
float mu,T,Ts; // parameters
float xo; // state vars
float u,y; // I/O vars
} TF1P0Z_DATA;
// Dynamic systems (init and run) -------------------------
void isapidpos_coldinit(ISAPIDpos_DATA *pd,
float K, float Ti, float Td,
float N, float b, float c,
float CSmin, float CSmax, float Ts,
char TS, char Fp, char Fm)
{
pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td;
pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c;
pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts;
pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm;
pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0;
pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0;
pd-&gt;HI = 0; pd-&gt;LO = 0;
}
void isapidpos(ISAPIDpos_DATA *pd)
{
float DSP,DPV,P,I,D;
if (pd-&gt;TS==0) { // Automatic mode
DSP = pd-&gt;SP-pd-&gt;SPo;
DPV = pd-&gt;PV-pd-&gt;PVo;
P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV);
I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV);
D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td
*(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts);
pd-&gt;CS = P+I+D;
if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp)
|(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm))
pd-&gt;CS = pd-&gt;CSo;
}
else { // Tracking mode (can override locks)
pd-&gt;CS = pd-&gt;TR;
D = 0; }
// Antiwindup
if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax;
if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin;
pd-&gt;Io = pd-&gt;CS-P-D;
// Saturation signalling
// Type definitions ---------------------------------------
typedef struct { // Positional ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float Io,Do; // state vars
float CSo; // for locks
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDpos_DATA;
typedef struct { // Incremental ISA PID
float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters
float CSo,Do; // state vars
float SPo,PVo; // input mem
float SP,PV,TR,CS; // I/O vars
char TS,Fp,Fm,HI,LO;
} ISAPIDinc_DATA;
typedef struct { // 1st order t.f. w/o zeroes
float mu,T,Ts; // parameters
float xo; // state vars
float u,y; // I/O vars
} TF1P0Z_DATA;
// Dynamic systems (init and run) -------------------------
void isapidpos_coldinit(ISAPIDpos_DATA *pd,
float K, float Ti, float Td,
float N, float b, float c,
float CSmin, float CSmax, float Ts,
char TS, char Fp, char Fm)
{
pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td;
pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c;
pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts;
pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm;
pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0;
pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0;
pd-&gt;HI = 0; pd-&gt;LO = 0;
}
void isapidpos(ISAPIDpos_DATA *pd)
{
float DSP,DPV,P,I,D;
if (pd-&gt;TS==0) { // Automatic mode
DSP = pd-&gt;SP-pd-&gt;SPo;
DPV = pd-&gt;PV-pd-&gt;PVo;
P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV);
I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV);
D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td
*(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts);
pd-&gt;CS = P+I+D;
if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp)
|(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm))
pd-&gt;CS = pd-&gt;CSo;
}
else { // Tracking mode (can override locks)
pd-&gt;CS = pd-&gt;TR;
D = 0; }
// Antiwindup
if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax;
if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin;
pd-&gt;Io = pd-&gt;CS-P-D;
// Saturation signalling
• Implementation
• integration into target system
• consisten monitoring
• coordinated reconfiguration
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
INTEGRATING ADAPTATION MECHANISMS
• Adhoc Implementations
• Extensive handcrafting of non-trivial code
• Low level of FCL abstraction
• Low FCL visibility
• Limited verification and reasoning
• Giving raise to accidental complexities
• Reusing and adapting existing work
• Often target specific types of adaptation problems [Bertran’12]
• Require the use of certain adaptation mechanism [Garlan’04]
• Applicable to single domain [Rouvoy’08] or technology [Asadollahi’09]
• Do not support remoting or complex control schemes [Adamczyk’08,
Gorton’06]
• Overall lack of supporting control theory based controller
• Limiting their applicability
API
LOGS
CONFIGURATIONS
COMMANDS
AOP
PROFILER
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
OVERVIEW
Monitoring Reconfiguration
Decision Making
sensors effectors
Target System
events actions
measures decisions
Controller Target System
Transduc
er
+
-
=
mX
i=1
1
d
=
m
d
⇥(N) =
µ =
m
d
µ
d =
m
(N)µ
API
LOGS
CONFIGURATIONS
COMMANDS
AOP
PROFILER
Feedback Control Definition Language1
The ZNN.COM case study2
Systematic integration of self-adaptive mechanisms into software
systems through control theory centric architecture models
Generality Visibility Composition
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
1Feedback Control Definition Language
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
FEEDBACK CONTROL DEFINITION LANGUAGE - IN A NUTSHELL
Controller
Apache
Web
Server
MEMMCMEM⇤
Apache adaptation example - adjusts the maximum number of connections
to be processed simultaneously (MC) based on the difference between
reference (MEM*) and measured memory usage (MEM) [Hellerstain’04].
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
FEEDBACK CONTROL DEFINITION LANGUAGE (FCDL) - IN A NUTSHELL
Controller
Apache
Web
Server
MEMMCMEM⇤
Apache adaptation example - adjusts the maximum number of connections
to be processed simultaneously (MC) based on the difference between
reference (MEM*) and measured memory usage (MEM) [Hellerstain’04].
(effector)
(controller)
(processor)
(sensor)
memUsage
: ProcessMem
controller
: IController
mcConf
: SetApacheConf
out outputin input
out output
scheduler
: PeriodTrigger
out output
in input
in input
MEM
MEM
MC
-refMem
-kI
ps -o pmem= $(cat /var/run/httpd.pid)
/etc/apache2/httpd.conf
/etc/init.d/apachectl
u(t) = u(k 1) + Kie(k)
- initialPeriod
- httpdConfPath- pid
(target system)
↵ = h self; + (input); * (output?) i
(provided sensor) (provided effector)
in input
setRefMemrefMem
out output
MEM⇤ MEM⇤
• Domain-specific modeling language
• Network of Adaptive Elements (AEs)
• actor-like element
• push/pull communication
• properties
• specifies implementations
• supports reflection
• defines interaction contracts
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
THE ZNN.COM CASE STUDY
2
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
THE ZNN.COM CASE STUDY
http://www.hpi.uni-potsdam.de/giese/public/selfadapt/exemplars/model-problem-znn-com/
• A news service model
• Web-based N-tier client-server
• Originally used for Rainbow evaluation [Cheng’09]
• Acknowledged SEAMS case-study
• Partially used by others (e.g., DYNAMICO, Zenshin, AdaptCases)
!
• Objective
• “To serve the content within reasonable response time and quality in the
event of traffic spikes caused by highly popular news.“
!
• Challenges
• content adaptation (e.g. serving reduced content quality),
• service differentiation (e.g. prioritizing premium customers),
• infrastructure adaptation (e.g. adapting the size of the server pool)
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Idea: service time = fixed overhead + data-size dependent overhead
QoS management control of web servers by content delivery adaptation
[Abdelzaher et al., 1999, 2002]
...
serve from
tree #2
serve from
tree #1
Rejection
Level
Minimum Content Full Content
Goal: maintain server load around some pre-set value
/1/photo.jpg
/2/photo.jpg
/photo.jpg
full quality
degraded quality
normal load
overload
Prerequisite: preprocessed content (different quality and size)
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
Generality Visibility Composition
Using FCDL
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Compute severity of adaptation (G)
Compute the requests rate (R), bandwidth (W) and utilization (U)
Compute the number of requests (r) and size of responses (w)1
2
3
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Compute the number of requests (r) and size of responses (w)1
accessLog
: FileTailer
out lines
file=/var/log/apache2/access.log
access_log
active sensor FileTailer {
push out port lines: String
!
property file: String
}
processor Accumulator {
push in port input: long
pull out port sum: long
}
processor AccessLogParser {
push in port lines: String
push out port size: int
push out port requests: int
}
Generality
Visibility
requestCounter
: Accumulator
responseSizeCounter
: Accumulator
in input
out sum out sum
in lines
out sizeout requests
accessLogParser
: AccessLogParser
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
access_log
active processor PeriodTrigger<T> {
pull in port input: T
push out port output: T
!
property initialPeriod = 10.seconds
}
requestCounter
: Accumulator
responseSizeCounter
: Accumulator
scheduler
: PeriodTrigger
loadMonitor
: LoadMonitor
in input
out sum out sum
in requests in size
out utilization
in input
out output
initialPeriod=10s
accessLog
: FileTailer
in lines
out lines
file=/var/log/apache2/access_log
out sizeout requests
accessLogParser
: AccessLogParser
Compute the requests rate (R), bandwidth (W) and utilization (U)2
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
Generality
Visibility
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
content_treeaccess_log
Compute severity of adaptation (G)3
controller IController {

in push port input: double

out push port output: double

!
property KI: double
property reference: double
property loBnd: double
property upBnd: double
}
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
utilController
: IController
in input
requestCounter
: Accumulator
responseSizeCounter
: Accumulator
scheduler
: PeriodTrigger
loadMonitor
: LoadMonitor
in input
out sum out sum
in requests in size
out utilization
in input
out output
in input
out output
initialPeriod=10s
adaptor
: ContentAdaptor
in contentTree
accessLog
: FileTailer
in lines
out lines
file=/var/log/apache2/access_log
out sizeout requests
accessLogParser
: AccessLogParser
KI=?
reference=?
Generality
Visibility
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Composition
composite ApacheQOS {
!
feature accessLog = new FileTailer {
file = “/var/log/apache2/access_log”
}
!
feature accessLogParser = new AccessLogParser
feature requestCounter = new Accumulator
feature responseSizeCounter = new Accumulator
feature loadMonitor = new LoadMonitor
feature scheduler = new PeriodTrigger<Double>
feature utilController = new IController {
reference = 0.8
}
feature adaptor = new ContentAdaptor
!
connect accessLog.lines to
accessLogParser.lines
connect accessLogParser.size to
responseSizeCounter.input
connect accessLogParser.requests to
requestsCounter.input
connect requestCounter.output to
loadMonitor.requests
connect responseSizeCounter.output to
loadMonitor.size
connect loadMonitor.utilization to
scheduler.input
connect scheduler.output to
utilController.utilization
connect utilController.contentTree to
adaptor.contentTree
}
Complete model
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
ApacheQOS
utilController
: IController
in input
requestCounter
: Accumulator
responseSizeCounter
: Accumulator
scheduler
: PeriodTrigger
loadMonitor
: LoadMonitor
in input
out sum out sum
in requests in size
out utilization
in input
out output
in input
out output
system
layer
control
layer
initialPeriod=10s
adaptor
: ContentAdaptor
in contentTree
accessLog
: FileTailer
in lines
out lines
file=/var/log/apache2/access_log
out sizeout requests
accessLogParser
: AccessLogParser
KI=?
reference=?
Generality Visibility
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Generality
Visibility
ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
ApacheQOS
control
: QOSControl
in contentTree
apache
: ApacheWebServer
in requests
in size
out requests
out size
out contentTree
control
layer
system
layer
QOSControl utilController
: IController
utilization
: UtilizationMonitor
out contentTree
scheduler
: PeriodTrigger
out utilization
in input out output
in input
out outputin requests in size
in requests in size
adaptor
: ContentAdaptor
outsize
in contentTree
out size
outrequests
out requests
incontentTree
ApacheWebServer
accessLog
: FileTailer
accessLogParser
: AccessLogParser
in lines
out lines
file=/var/log/apache2/access_log
Composition
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
ZNN.COM - ADAPTIVE CONTROL
• Using the reflection support for adaptive control
AdaptiveApacheQOS
out utilization
controllayer
meta-control
layer
systemlayer
in contentTree
in requests
in size
out requests
out size
out contentTree
provided in KI
control
: QOSControl
out KI
in utilization
in contentTree
KI
server
: ApacheWebServer
adaptiveControl: AdaptiveControl
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
ILLUSTRATION - DISTRIBUTED CONTENT DELIVERY ADAPTATION
• QoS management control of a pool of web servers using content
delivery adaptation.
• Load balancer schedules requests to a server with highest QoS.
Znn.com
Client 1
Client 2
Client N
Forwards
requests to s
Server cluster
...
Load Balancer
...
S
G1
G2
Gn
s 2 S such that Gs = max (G1, . . . , Gn)
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
LocalApacheQOS
out contentTree
contentTreeWithHost
: Tuple2
hostname
: Hostname
Si
out output
out hostname
in input2
in input1
in input
Gi
contentTreePub
: EventBusPublisher
server
: ApacheQOS
(Si, Gi)
scheduler
: PeriodTrigger
in input
out output
(Si, Gi)
contentTree
: Queue
in input
out output
Gi
outcontentTree
ApacheQOS
in contentTree
in requests
in size
out requests
out size
out contentTree
server
: ApacheWebServer
control
: QOSControl
LoadBalancerControl
contentTree
: MapStore
ctrl
: LoadBalancerController
contentTreeMin
: MapMaxKey
lbForwardHost
: FileWriter
out output out outputin input
in input
Siout output in value
in hostname
out hostname
8
><
>:
S1 : G1
...
Sn : Gn
9
>=
>;
contentTreeSub
: EventBusSubscriber
scheduler
: PeriodTrigger
in input
out output
Si Si
(Si, Gi)
Load Balancer
si
ILLUSTRATION - DISTRIBUTED CONTENT DELIVERY ADAPTATION
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
ILLUSTRATION - RESOURCE MANAGEMENT
ServerPoolControl
contentTree
: MapStore
serverPoolController
: IController
contentTreeAvg
: MapAvgValue
clusterManager
: ClusterManager
out output out output
n
in input
in input
out output in numOfServers
in input
out output
8
><
>:
S1 : G1
...
Sn : Gn
9
>=
>;
scheduler
: PeriodTrigger
in input
out output
(Si, Gi)
G G
contentTreeSub
: EventBusSubscriber
Load Balancer
…
s1
sn
G1
Gn
n = n + KIE = n + KI(G⇤
G)
n
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
ZNN.COM - SYSTEM IDENTIFICATION
• Support for FCL design - black-box modeling
• Open control loops for data collection
SystemIdentification
out output
log
: FileWriter
in value
out utilization
in requests
in size scheduler
: PeriodTrigger
in input out output
sample: Tuple2
in input2
in input1
gQueue: Queue
out output
out requests
out size
in contentTree
contentTree: SineWaveserver: ApacheWebServer
(U, G) (U, G)
utilization
: UtilizationMonitor
in input
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Modeling
VerificationCode Generation
• Reference implementation of FCDL based on Eclipse Modeling Framework
• Eclipse IDE-based prototype to facilitate the use of FCDL - ACTRESS
IMPLEMENTATION
accessLogParser accessLog adaptor
apache control
requestCounter
responseSizeCounter
loadMonitor
utilization
scheduler utilController
ApacheQOS
ACTRESS Runtime
actor
actor with
event listener
composite
actor
containment
message
passing
ApacheQOS utilController
: IController
in input
requestCounter
: Accumulator
responseSizeCounter
: Accumulator
scheduler
: PeriodTrigger
loadMonitor
: LoadMonitor
in input
out sum out sum
in requests in size
out utilization
in input
out output
in input
out output
out requests
out size
initialPeriod=10s
in contentTree
server
: ApacheWebServer
KI=?
reference=?
• Model well-formedness
• User-defined structural constraints
(OCL)
• Architecture verification
(completeness, consistency,
determinacy)
• Temporal properties (PROMELA/SPIN)
• xFCDL (Extended FCDL)
• Textual DSL for authoring
FCDL models
• Modularity, Java
interoperability, Xbase
• Eclipse IDE support
• ACTRESS runtime
• based on Java/AKKA
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
Conclusions
3
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
SUMMARY
• Combining self-adaptive software systems with principles of MDE to provide
systematic and tooled approach for integrating control mechanisms into
software systems.
!
• A proof of concept implementation and tools facilitating the language use
including modeling, code synthesis and verification support.
ICAC’14, 18.6.2014
Integrating Adaptation Mechanisms Using Control Theory Centric
Architecture Models: A Case Study
FUTURE WORK
• Address ACTRESS limitations - a new MPS-based implementation
• More robust FCDL - support data units, input output assertions
• ZNN.COM challenge
• From a case study to a benchmark
• Easily reusable (docker packaging)
• INRIA Lille Non-A team in charge of a new controller
• Evaluation agains two base lines
• Apache mod_proxy
• Amazon elastic load balancer
Thank you
Filip Křikava
filip.krikava@inria.fr

More Related Content

What's hot

Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Chun Xia
 
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...Lionel Briand
 
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...Lionel Briand
 
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsLionel Briand
 
Testing of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesTesting of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesLionel Briand
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsLionel Briand
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsLionel Briand
 
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...NECST Lab @ Politecnico di Milano
 
Detecting soft errors by a purely software approach
Detecting soft errors by a purely software approachDetecting soft errors by a purely software approach
Detecting soft errors by a purely software approachMd. Hasibur Rashid
 
Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Lionel Briand
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Peter Tröger
 
HAWQ-V3: Dyadic Neural Network Quantization
HAWQ-V3: Dyadic Neural Network QuantizationHAWQ-V3: Dyadic Neural Network Quantization
HAWQ-V3: Dyadic Neural Network Quantizationjemin lee
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Lionel Briand
 
Change Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsChange Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsLionel Briand
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Peter Tröger
 
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Peter Tröger
 
Integer quantization for deep learning inference: principles and empirical ev...
Integer quantization for deep learning inference: principles and empirical ev...Integer quantization for deep learning inference: principles and empirical ev...
Integer quantization for deep learning inference: principles and empirical ev...jemin lee
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learningSung Kim
 
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive SystemsTesting the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive SystemsLionel Briand
 
ECG beats classification using multiclass SVMs with ECOC
ECG beats classification using multiclass SVMs with ECOCECG beats classification using multiclass SVMs with ECOC
ECG beats classification using multiclass SVMs with ECOCYomna Mahmoud Ibrahim Hassan
 

What's hot (20)

Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4
 
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...
HITECS: A UML Profile and Analysis Framework for Hardware-in-the-Loop Testing...
 
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...
Comparing Offline and Online Testing of Deep Neural Networks: An Autonomous C...
 
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
 
Testing of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesTesting of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven Strategies
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
 
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...
DEEP-mon: Dynamic and Energy Efficient Power monitoring for container-based i...
 
Detecting soft errors by a purely software approach
Detecting soft errors by a purely software approachDetecting soft errors by a purely software approach
Detecting soft errors by a purely software approach
 
Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.Software Engineering Research: Leading a Double-Agent Life.
Software Engineering Research: Leading a Double-Agent Life.
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
 
HAWQ-V3: Dyadic Neural Network Quantization
HAWQ-V3: Dyadic Neural Network QuantizationHAWQ-V3: Dyadic Neural Network Quantization
HAWQ-V3: Dyadic Neural Network Quantization
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...
 
Change Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsChange Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language Requirements
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)
 
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
 
Integer quantization for deep learning inference: principles and empirical ev...
Integer quantization for deep learning inference: principles and empirical ev...Integer quantization for deep learning inference: principles and empirical ev...
Integer quantization for deep learning inference: principles and empirical ev...
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learning
 
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive SystemsTesting the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
 
ECG beats classification using multiclass SVMs with ECOC
ECG beats classification using multiclass SVMs with ECOCECG beats classification using multiclass SVMs with ECOC
ECG beats classification using multiclass SVMs with ECOC
 

Viewers also liked

Model Manipulation Using Embedded DSLs in Scala
Model Manipulation Using Embedded DSLs in ScalaModel Manipulation Using Embedded DSLs in Scala
Model Manipulation Using Embedded DSLs in ScalaFilip Krikava
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsFilip Krikava
 
Domain specific languages in eclipse with Xtext (Zeus, UGent)
Domain specific languages in eclipse with Xtext (Zeus, UGent)Domain specific languages in eclipse with Xtext (Zeus, UGent)
Domain specific languages in eclipse with Xtext (Zeus, UGent)Sigasi
 
Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Filip Krikava
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeKarsten Thoms
 
Generating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsGenerating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsKarsten Thoms
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and ScalaFilip Krikava
 
Xtext project and PhDs in Gemany
Xtext project and PhDs in GemanyXtext project and PhDs in Gemany
Xtext project and PhDs in GemanyTech Talks @NSU
 
Building a Python IDE with Xtext
Building a Python IDE with XtextBuilding a Python IDE with Xtext
Building a Python IDE with XtextSebastian Zarnekow
 
Xbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for JavaXbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for Javameysholdt
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Dr. Jan Köhnlein
 

Viewers also liked (11)

Model Manipulation Using Embedded DSLs in Scala
Model Manipulation Using Embedded DSLs in ScalaModel Manipulation Using Embedded DSLs in Scala
Model Manipulation Using Embedded DSLs in Scala
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
 
Domain specific languages in eclipse with Xtext (Zeus, UGent)
Domain specific languages in eclipse with Xtext (Zeus, UGent)Domain specific languages in eclipse with Xtext (Zeus, UGent)
Domain specific languages in eclipse with Xtext (Zeus, UGent)
 
Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio Code
 
Generating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsGenerating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLs
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
 
Xtext project and PhDs in Gemany
Xtext project and PhDs in GemanyXtext project and PhDs in Gemany
Xtext project and PhDs in Gemany
 
Building a Python IDE with Xtext
Building a Python IDE with XtextBuilding a Python IDE with Xtext
Building a Python IDE with Xtext
 
Xbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for JavaXbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for Java
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
 

Similar to Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study

Optimal and Power Aware BIST for Delay Testing of System-On-Chip
Optimal and Power Aware BIST for Delay Testing of System-On-ChipOptimal and Power Aware BIST for Delay Testing of System-On-Chip
Optimal and Power Aware BIST for Delay Testing of System-On-ChipIDES Editor
 
An Unmanned Rotorcraft System with Embedded Design
An Unmanned Rotorcraft System with Embedded DesignAn Unmanned Rotorcraft System with Embedded Design
An Unmanned Rotorcraft System with Embedded DesignIOSR Journals
 
IRJET- Design and Characterization of MAEC IP Core
IRJET- Design and Characterization of MAEC IP CoreIRJET- Design and Characterization of MAEC IP Core
IRJET- Design and Characterization of MAEC IP CoreIRJET Journal
 
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTC
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTCCONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTC
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTCcsandit
 
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT MissileZac Darcy
 
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT MissileZac Darcy
 
Process Control Final Report
Process Control Final ReportProcess Control Final Report
Process Control Final ReportLogan Williamson
 
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSO
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSOA Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSO
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSOINFOGAIN PUBLICATION
 
Modeling, simulation and control of a robotic arm
Modeling, simulation and control of a robotic armModeling, simulation and control of a robotic arm
Modeling, simulation and control of a robotic armcesarportilla8
 
M ODEL P REDICTIVE C ONTROL U SING F PGA
M ODEL  P REDICTIVE  C ONTROL  U SING  F PGAM ODEL  P REDICTIVE  C ONTROL  U SING  F PGA
M ODEL P REDICTIVE C ONTROL U SING F PGAijctcm
 
Iaetsd position control of servo systems using pid
Iaetsd position control of servo systems using pidIaetsd position control of servo systems using pid
Iaetsd position control of servo systems using pidIaetsd Iaetsd
 
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...inventy
 
Explicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemExplicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemeSAT Journals
 
Explicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemExplicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemeSAT Publishing House
 
Optimal and pid controller for controlling camera’s position in unmanned aeri...
Optimal and pid controller for controlling camera’s position in unmanned aeri...Optimal and pid controller for controlling camera’s position in unmanned aeri...
Optimal and pid controller for controlling camera’s position in unmanned aeri...Zac Darcy
 
Design and Implementation of Model Reference Adaptive Controller using Coeffi...
Design and Implementation of Model Reference Adaptive Controller using Coeffi...Design and Implementation of Model Reference Adaptive Controller using Coeffi...
Design and Implementation of Model Reference Adaptive Controller using Coeffi...IOSR Journals
 
Online and Offline Testing Of C-Bist Using Sram
Online and Offline Testing Of C-Bist Using SramOnline and Offline Testing Of C-Bist Using Sram
Online and Offline Testing Of C-Bist Using Sramiosrjce
 
Iaetsd design and implementation of multiple sic vectors
Iaetsd design and implementation of multiple sic vectorsIaetsd design and implementation of multiple sic vectors
Iaetsd design and implementation of multiple sic vectorsIaetsd Iaetsd
 
Trajectory Control With MPC For A Robot Manipülatör Using ANN Model
Trajectory Control With MPC For A Robot Manipülatör Using  ANN ModelTrajectory Control With MPC For A Robot Manipülatör Using  ANN Model
Trajectory Control With MPC For A Robot Manipülatör Using ANN ModelIJMER
 

Similar to Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study (20)

Optimal and Power Aware BIST for Delay Testing of System-On-Chip
Optimal and Power Aware BIST for Delay Testing of System-On-ChipOptimal and Power Aware BIST for Delay Testing of System-On-Chip
Optimal and Power Aware BIST for Delay Testing of System-On-Chip
 
An Unmanned Rotorcraft System with Embedded Design
An Unmanned Rotorcraft System with Embedded DesignAn Unmanned Rotorcraft System with Embedded Design
An Unmanned Rotorcraft System with Embedded Design
 
IRJET- Design and Characterization of MAEC IP Core
IRJET- Design and Characterization of MAEC IP CoreIRJET- Design and Characterization of MAEC IP Core
IRJET- Design and Characterization of MAEC IP Core
 
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTC
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTCCONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTC
CONTROL OF AN INDUCTION MOTOR WITH DOUBLE ANN MODEL BASED DTC
 
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
 
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
2-DOF Block Pole Placement Control Application To: Have-DASH-IIBITT Missile
 
Process Control Final Report
Process Control Final ReportProcess Control Final Report
Process Control Final Report
 
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSO
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSOA Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSO
A Novel Hybrid Approach for Stability Analysis of SMIB using GA and PSO
 
Modeling, simulation and control of a robotic arm
Modeling, simulation and control of a robotic armModeling, simulation and control of a robotic arm
Modeling, simulation and control of a robotic arm
 
M ODEL P REDICTIVE C ONTROL U SING F PGA
M ODEL  P REDICTIVE  C ONTROL  U SING  F PGAM ODEL  P REDICTIVE  C ONTROL  U SING  F PGA
M ODEL P REDICTIVE C ONTROL U SING F PGA
 
Iaetsd position control of servo systems using pid
Iaetsd position control of servo systems using pidIaetsd position control of servo systems using pid
Iaetsd position control of servo systems using pid
 
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...
Analytical Evaluation of Generalized Predictive Control Algorithms Using a Fu...
 
Explicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemExplicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic system
 
Explicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic systemExplicit model predictive control of fast dynamic system
Explicit model predictive control of fast dynamic system
 
922214 e002013
922214 e002013922214 e002013
922214 e002013
 
Optimal and pid controller for controlling camera’s position in unmanned aeri...
Optimal and pid controller for controlling camera’s position in unmanned aeri...Optimal and pid controller for controlling camera’s position in unmanned aeri...
Optimal and pid controller for controlling camera’s position in unmanned aeri...
 
Design and Implementation of Model Reference Adaptive Controller using Coeffi...
Design and Implementation of Model Reference Adaptive Controller using Coeffi...Design and Implementation of Model Reference Adaptive Controller using Coeffi...
Design and Implementation of Model Reference Adaptive Controller using Coeffi...
 
Online and Offline Testing Of C-Bist Using Sram
Online and Offline Testing Of C-Bist Using SramOnline and Offline Testing Of C-Bist Using Sram
Online and Offline Testing Of C-Bist Using Sram
 
Iaetsd design and implementation of multiple sic vectors
Iaetsd design and implementation of multiple sic vectorsIaetsd design and implementation of multiple sic vectors
Iaetsd design and implementation of multiple sic vectors
 
Trajectory Control With MPC For A Robot Manipülatör Using ANN Model
Trajectory Control With MPC For A Robot Manipülatör Using  ANN ModelTrajectory Control With MPC For A Robot Manipülatör Using  ANN Model
Trajectory Control With MPC For A Robot Manipülatör Using ANN Model
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"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
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study

  • 1. Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study ICAC’14, Philadelphia, 18.6.2014 Philippe Collet Romain Rouvoy University Lille 1 / LIFL
 INRIA Lille
 France Université Nice Sophia Antipolis I3S - CNRS UMR 7271
 France University Lille 1 / LIFL
 INRIA Lille
 France Filip Křikava
  • 2. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study SELF-ADAPTIVE SOFTWARE SYSTEMS, FEEDBACK CONTROL • Increasing complexity of software systems, uncertain operating environment • A shift towards self-adaptive software systems • systems adjusting themselves in accordance with higher-level goals • Feedback control loops (FCLs) provide a generic mechanism for engineering self-adaptive software systems Monitoring Reconfiguration Decision Making sensors effectors Target System events actions measures decisions system outputs (response time, utilization, throughput) system control inputs (queue size, scheduling policy, concurrency level) achieve externally specified goals
  • 3. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study • Engineering self-adaptive software systems is challenging • Example: web server self-optimization (MC based on MEM) CHALLENGES FCL control challenges control engineers FCL integration challenges software engineers 2500 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC (b) SISO data, (c) MIMO data MC varying Experimental input-output data used for system ID. 1 = 0.485 · MEMk + 3.63 £ 10°4 · MCk (3) when performing two separate SISO identifications, it is as- ng parameters do not interact. However, from Figure 7(b), we wave has a significant effect on CPU. Hence, our assumption is he need for MIMO techniques in system identification. fication Apache MIMO models shown in Figure 3(b) and Figure 3(c). del requires simultaneously varying both KA and MC in order to 2500 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC (b) SISO data, (c) MIMO data MC varying Experimental input-output data used for system ID. 1 = 0.485 · MEMk + 3.63 £ 10°4 · MCk (3) when performing two separate SISO identifications, it is as- ng parameters do not interact. However, from Figure 7(b), we wave has a significant effect on CPU. Hence, our assumption is he need for MIMO techniques in system identification. fication Apache MIMO models shown in Figure 3(b) and Figure 3(c). del requires simultaneously varying both KA and MC in order to ween the parameters. As before, discrete sine waves are used. Controller Apache Web Server MEMMCMEM⇤ 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC 0 0.5 1 CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC 0 0.5 1CPU 0 0.5 1 MEM 0 10 20 KA 0 500 1000 1500 2000 2500 0 500 1000 Time (s) MC (a) SISO data, (b) SISO data, (c) MIMO data KA varying MC varying Figure 7: Experimental input-output data used for system ID. MEMk+1 = 0.485 · MEMk + 3.63 £ 10°4 · MCk (3) As mentioned earlier, when performing two separate SISO identifications, it is as- umed that the two tuning parameters do not interact. However, from Figure 7(b), we an see that the MC sine wave has a significant effect on CPU. Hence, our assumption is valid. This motivates the need for MIMO techniques in system identification. .2.2 MIMO Identification Next, we consider the Apache MIMO models shown in Figure 3(b) and Figure 3(c). entifying a MIMO model requires simultaneously varying both KA and MC in order to apture interactions between the parameters. As before, discrete sine waves are used. owever, their frequencies should be relatively prime so that good coverage of the input pace is obtained (as in Figure 6). Figure 7(c) plots the results of the MIMO identification experiments. Using this data, first-order linear MIMO model is constructed, as shown in Equation 4. Note that A nd B are matrices instead of scalars. The matrix approach provides a way to model e combined effect of tuning parameters on utilizations. Specifically, all elements of e second matrix (B) are non-zero (although the effect of KA on MEM is much less than s effect on CPU). CPUk+1 MEMk+1 ∏ = ∑ 0.537 °0.109 °0.0256 0.630 ∏ · ∑ CPUk MEMk ∏ + ∑ °84.5 4.39 °2.48 2.81 ∏ £10°4 · ∑ KAk MCk ∏ (4) .3 Model Evaluation Two model evaluations are done. The first is one-step prediction in which the value a metric at time k + 1 is predicted based on measured values at time k. The second multi-step prediction in which the value at k + 1 is predicted based on the prediction time k. Throughout, we focus on CPU since the low variability of MEM makes it latively easy to predict. Figure 8 plots predicted versus measured values for one-step predictions of CPU. A erfect model would have all observations (the diamonds) on the line of unit slope. Part ) plots the SISO results using the SISO data. The fit is quite good; R2 = 0.934. Part When |a| < 1, the system is stable and the a terms will remain bounded s of k. As noted above, the model can predict steady-state values of the output stant inputs u by finding fixed-points of Equation 5. er dynamic property that can be determined by the pole is speed of response. proaches zero, the speed of response to changes in the input becomes faster. If en yk+1 = b · uk. Hence, it takes one time step for the output, y, to converge nges in the input. As |a| approaches one, it takes more time steps for the output ge to a steady-state after changes in the input. This can be seen in Figure 9 in CP U = 0.595 > 0.485 = aMEM , and MEM settles faster than CPU. nal property that can be determined by the pole is whether the system will n an oscillatory manner to changes in the input. If a < 0, then the behavior stem will be oscillatory due to the aj terms in Equation 5; when j is even, the ositive, and when j is odd, the term is negative. vector case, the scalar parameters a and b in Equation 5 are replaced by matri- d B. The solution to this vector time-series equation is similar to Equation 5. se, the response of the system is governed by the eigenvalues of A, which are in the vector case. Note that in the vector case, the poles can be complex (with and imaginary parts). The presence of an imaginary part can cause oscillations he real part is positive. With multiple poles, the “slowest” or dominant poles se whose magnitude is closest to one) determine settling times. The poles of O model of Equation 4 are 0.513 and 0.654, indicating that this model predicts response than that predicted by the SISO model. trol Design ection describes our methodology for designing feedback controllers and ap- o Apache for the architectures shown in Figure 3. Section 4.1 introduces the logy. Section 4.2 applies this methodology to designing SISO controllers, and 4.3 to MIMO design with LQR. Section 4.4 discusses controller robustness to n workloads. esign Methodology ethodology for controller design uses a proportional integral (PI) controller. of its robustness, PI control is widely used in mechanical engineering and ontrol. PI control operates according to the following control law uk = KP ek + KI k°1X j=1 ej, (6) is a tuning parameter, and ek = rk ° yk is the control error. For the Apache rk is the desired policy (CPU§ and/or MEM§ ), and yk is the measured metric d/or MEM). For SISO control, the policies (CPU§ , MEM§ ) are considered indi- for MIMO control they are considered together. trol has two parameters: KP , the proportional gain, and KI, the integral gain. of thumb, the proportional term is used to increase the speed of response and [Hellerstein et al., 2004] • Design decision mechanism • data collection • model construction and evaluation • controller design API LOGS CONFIG FILES COMMANDS AOP PROFILER • Prepare experimental environment • identify system outputs (sensors) • identify system control inputs (effectors) // Type definitions --------------------------------------- typedef struct { // Positional ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float Io,Do; // state vars float CSo; // for locks float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDpos_DATA; typedef struct { // Incremental ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float CSo,Do; // state vars float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDinc_DATA; typedef struct { // 1st order t.f. w/o zeroes float mu,T,Ts; // parameters float xo; // state vars float u,y; // I/O vars } TF1P0Z_DATA; // Dynamic systems (init and run) ------------------------- void isapidpos_coldinit(ISAPIDpos_DATA *pd, float K, float Ti, float Td, float N, float b, float c, float CSmin, float CSmax, float Ts, char TS, char Fp, char Fm) { pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td; pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c; pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts; pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm; pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0; pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0; pd-&gt;HI = 0; pd-&gt;LO = 0; } void isapidpos(ISAPIDpos_DATA *pd) { float DSP,DPV,P,I,D; if (pd-&gt;TS==0) { // Automatic mode DSP = pd-&gt;SP-pd-&gt;SPo; DPV = pd-&gt;PV-pd-&gt;PVo; P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV); I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV); D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td *(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts); pd-&gt;CS = P+I+D; if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp) |(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm)) pd-&gt;CS = pd-&gt;CSo; } else { // Tracking mode (can override locks) pd-&gt;CS = pd-&gt;TR; D = 0; } // Antiwindup if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax; if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin; pd-&gt;Io = pd-&gt;CS-P-D; // Saturation signalling // Type definitions --------------------------------------- typedef struct { // Positional ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float Io,Do; // state vars float CSo; // for locks float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDpos_DATA; typedef struct { // Incremental ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float CSo,Do; // state vars float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDinc_DATA; typedef struct { // 1st order t.f. w/o zeroes float mu,T,Ts; // parameters float xo; // state vars float u,y; // I/O vars } TF1P0Z_DATA; // Dynamic systems (init and run) ------------------------- void isapidpos_coldinit(ISAPIDpos_DATA *pd, float K, float Ti, float Td, float N, float b, float c, float CSmin, float CSmax, float Ts, char TS, char Fp, char Fm) { pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td; pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c; pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts; pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm; pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0; pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0; pd-&gt;HI = 0; pd-&gt;LO = 0; } void isapidpos(ISAPIDpos_DATA *pd) { float DSP,DPV,P,I,D; if (pd-&gt;TS==0) { // Automatic mode DSP = pd-&gt;SP-pd-&gt;SPo; DPV = pd-&gt;PV-pd-&gt;PVo; P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV); I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV); D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td *(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts); pd-&gt;CS = P+I+D; if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp) |(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm)) pd-&gt;CS = pd-&gt;CSo; } else { // Tracking mode (can override locks) pd-&gt;CS = pd-&gt;TR; D = 0; } // Antiwindup if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax; if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin; pd-&gt;Io = pd-&gt;CS-P-D; // Saturation signalling // Type definitions --------------------------------------- typedef struct { // Positional ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float Io,Do; // state vars float CSo; // for locks float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDpos_DATA; typedef struct { // Incremental ISA PID float K,Ti,Td,N,b,c,CSmin,CSmax,Ts; // parameters float CSo,Do; // state vars float SPo,PVo; // input mem float SP,PV,TR,CS; // I/O vars char TS,Fp,Fm,HI,LO; } ISAPIDinc_DATA; typedef struct { // 1st order t.f. w/o zeroes float mu,T,Ts; // parameters float xo; // state vars float u,y; // I/O vars } TF1P0Z_DATA; // Dynamic systems (init and run) ------------------------- void isapidpos_coldinit(ISAPIDpos_DATA *pd, float K, float Ti, float Td, float N, float b, float c, float CSmin, float CSmax, float Ts, char TS, char Fp, char Fm) { pd-&gt;K = K; pd-&gt;Ti = Ti; pd-&gt;Td = Td; pd-&gt;N = N; pd-&gt;b = b; pd-&gt;c = c; pd-&gt;CSmin = CSmin; pd-&gt;CSmax = CSmax; pd-&gt;Ts = Ts; pd-&gt;TS = TS; pd-&gt;Fp = Fp; pd-&gt;Fm = Fm; pd-&gt;Io = 0.0; pd-&gt;Do = 0.0; pd-&gt;SPo = 0.0; pd-&gt;PVo = 0.0; pd-&gt;CS = 0.0; pd-&gt;HI = 0; pd-&gt;LO = 0; } void isapidpos(ISAPIDpos_DATA *pd) { float DSP,DPV,P,I,D; if (pd-&gt;TS==0) { // Automatic mode DSP = pd-&gt;SP-pd-&gt;SPo; DPV = pd-&gt;PV-pd-&gt;PVo; P = pd-&gt;K*(pd-&gt;b*pd-&gt;SP-pd-&gt;PV); I = pd-&gt;Io+pd-&gt;K*pd-&gt;Ts/pd-&gt;Ti*(pd-&gt;SP-pd-&gt;PV); D = (pd-&gt;Td*pd-&gt;Do+pd-&gt;K*pd-&gt;N*pd-&gt;Td *(pd-&gt;c*DSP-DPV))/(pd-&gt;Td+pd-&gt;N*pd-&gt;Ts); pd-&gt;CS = P+I+D; if ((pd-&gt;CS&gt;pd-&gt;CSo & pd-&gt;Fp) |(pd-&gt;CS&lt;pd-&gt;CSo & pd-&gt;Fm)) pd-&gt;CS = pd-&gt;CSo; } else { // Tracking mode (can override locks) pd-&gt;CS = pd-&gt;TR; D = 0; } // Antiwindup if (pd-&gt;CS&gt;pd-&gt;CSmax) pd-&gt;CS = pd-&gt;CSmax; if (pd-&gt;CS&lt;pd-&gt;CSmin) pd-&gt;CS = pd-&gt;CSmin; pd-&gt;Io = pd-&gt;CS-P-D; // Saturation signalling • Implementation • integration into target system • consisten monitoring • coordinated reconfiguration
  • 4. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study INTEGRATING ADAPTATION MECHANISMS • Adhoc Implementations • Extensive handcrafting of non-trivial code • Low level of FCL abstraction • Low FCL visibility • Limited verification and reasoning • Giving raise to accidental complexities • Reusing and adapting existing work • Often target specific types of adaptation problems [Bertran’12] • Require the use of certain adaptation mechanism [Garlan’04] • Applicable to single domain [Rouvoy’08] or technology [Asadollahi’09] • Do not support remoting or complex control schemes [Adamczyk’08, Gorton’06] • Overall lack of supporting control theory based controller • Limiting their applicability API LOGS CONFIGURATIONS COMMANDS AOP PROFILER
  • 5. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study OVERVIEW Monitoring Reconfiguration Decision Making sensors effectors Target System events actions measures decisions Controller Target System Transduc er + - = mX i=1 1 d = m d ⇥(N) = µ = m d µ d = m (N)µ API LOGS CONFIGURATIONS COMMANDS AOP PROFILER Feedback Control Definition Language1 The ZNN.COM case study2 Systematic integration of self-adaptive mechanisms into software systems through control theory centric architecture models Generality Visibility Composition
  • 6. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study 1Feedback Control Definition Language
  • 7. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study FEEDBACK CONTROL DEFINITION LANGUAGE - IN A NUTSHELL Controller Apache Web Server MEMMCMEM⇤ Apache adaptation example - adjusts the maximum number of connections to be processed simultaneously (MC) based on the difference between reference (MEM*) and measured memory usage (MEM) [Hellerstain’04].
  • 8. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study FEEDBACK CONTROL DEFINITION LANGUAGE (FCDL) - IN A NUTSHELL Controller Apache Web Server MEMMCMEM⇤ Apache adaptation example - adjusts the maximum number of connections to be processed simultaneously (MC) based on the difference between reference (MEM*) and measured memory usage (MEM) [Hellerstain’04]. (effector) (controller) (processor) (sensor) memUsage : ProcessMem controller : IController mcConf : SetApacheConf out outputin input out output scheduler : PeriodTrigger out output in input in input MEM MEM MC -refMem -kI ps -o pmem= $(cat /var/run/httpd.pid) /etc/apache2/httpd.conf /etc/init.d/apachectl u(t) = u(k 1) + Kie(k) - initialPeriod - httpdConfPath- pid (target system) ↵ = h self; + (input); * (output?) i (provided sensor) (provided effector) in input setRefMemrefMem out output MEM⇤ MEM⇤ • Domain-specific modeling language • Network of Adaptive Elements (AEs) • actor-like element • push/pull communication • properties • specifies implementations • supports reflection • defines interaction contracts
  • 9. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study THE ZNN.COM CASE STUDY 2
  • 10. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study THE ZNN.COM CASE STUDY http://www.hpi.uni-potsdam.de/giese/public/selfadapt/exemplars/model-problem-znn-com/ • A news service model • Web-based N-tier client-server • Originally used for Rainbow evaluation [Cheng’09] • Acknowledged SEAMS case-study • Partially used by others (e.g., DYNAMICO, Zenshin, AdaptCases) ! • Objective • “To serve the content within reasonable response time and quality in the event of traffic spikes caused by highly popular news.“ ! • Challenges • content adaptation (e.g. serving reduced content quality), • service differentiation (e.g. prioritizing premium customers), • infrastructure adaptation (e.g. adapting the size of the server pool)
  • 11. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Idea: service time = fixed overhead + data-size dependent overhead QoS management control of web servers by content delivery adaptation [Abdelzaher et al., 1999, 2002] ... serve from tree #2 serve from tree #1 Rejection Level Minimum Content Full Content Goal: maintain server load around some pre-set value /1/photo.jpg /2/photo.jpg /photo.jpg full quality degraded quality normal load overload Prerequisite: preprocessed content (different quality and size) ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION Generality Visibility Composition Using FCDL
  • 12. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Compute severity of adaptation (G) Compute the requests rate (R), bandwidth (W) and utilization (U) Compute the number of requests (r) and size of responses (w)1 2 3 ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
  • 13. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Compute the number of requests (r) and size of responses (w)1 accessLog : FileTailer out lines file=/var/log/apache2/access.log access_log active sensor FileTailer { push out port lines: String ! property file: String } processor Accumulator { push in port input: long pull out port sum: long } processor AccessLogParser { push in port lines: String push out port size: int push out port requests: int } Generality Visibility requestCounter : Accumulator responseSizeCounter : Accumulator in input out sum out sum in lines out sizeout requests accessLogParser : AccessLogParser ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION
  • 14. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study access_log active processor PeriodTrigger<T> { pull in port input: T push out port output: T ! property initialPeriod = 10.seconds } requestCounter : Accumulator responseSizeCounter : Accumulator scheduler : PeriodTrigger loadMonitor : LoadMonitor in input out sum out sum in requests in size out utilization in input out output initialPeriod=10s accessLog : FileTailer in lines out lines file=/var/log/apache2/access_log out sizeout requests accessLogParser : AccessLogParser Compute the requests rate (R), bandwidth (W) and utilization (U)2 ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION Generality Visibility
  • 15. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study content_treeaccess_log Compute severity of adaptation (G)3 controller IController {
 in push port input: double
 out push port output: double
 ! property KI: double property reference: double property loBnd: double property upBnd: double } ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION utilController : IController in input requestCounter : Accumulator responseSizeCounter : Accumulator scheduler : PeriodTrigger loadMonitor : LoadMonitor in input out sum out sum in requests in size out utilization in input out output in input out output initialPeriod=10s adaptor : ContentAdaptor in contentTree accessLog : FileTailer in lines out lines file=/var/log/apache2/access_log out sizeout requests accessLogParser : AccessLogParser KI=? reference=? Generality Visibility
  • 16. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Composition composite ApacheQOS { ! feature accessLog = new FileTailer { file = “/var/log/apache2/access_log” } ! feature accessLogParser = new AccessLogParser feature requestCounter = new Accumulator feature responseSizeCounter = new Accumulator feature loadMonitor = new LoadMonitor feature scheduler = new PeriodTrigger<Double> feature utilController = new IController { reference = 0.8 } feature adaptor = new ContentAdaptor ! connect accessLog.lines to accessLogParser.lines connect accessLogParser.size to responseSizeCounter.input connect accessLogParser.requests to requestsCounter.input connect requestCounter.output to loadMonitor.requests connect responseSizeCounter.output to loadMonitor.size connect loadMonitor.utilization to scheduler.input connect scheduler.output to utilController.utilization connect utilController.contentTree to adaptor.contentTree } Complete model ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION ApacheQOS utilController : IController in input requestCounter : Accumulator responseSizeCounter : Accumulator scheduler : PeriodTrigger loadMonitor : LoadMonitor in input out sum out sum in requests in size out utilization in input out output in input out output system layer control layer initialPeriod=10s adaptor : ContentAdaptor in contentTree accessLog : FileTailer in lines out lines file=/var/log/apache2/access_log out sizeout requests accessLogParser : AccessLogParser KI=? reference=? Generality Visibility
  • 17. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Generality Visibility ZNN.COM - LOCAL CONTENT DELIVERY ADAPTATION ApacheQOS control : QOSControl in contentTree apache : ApacheWebServer in requests in size out requests out size out contentTree control layer system layer QOSControl utilController : IController utilization : UtilizationMonitor out contentTree scheduler : PeriodTrigger out utilization in input out output in input out outputin requests in size in requests in size adaptor : ContentAdaptor outsize in contentTree out size outrequests out requests incontentTree ApacheWebServer accessLog : FileTailer accessLogParser : AccessLogParser in lines out lines file=/var/log/apache2/access_log Composition
  • 18. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study ZNN.COM - ADAPTIVE CONTROL • Using the reflection support for adaptive control AdaptiveApacheQOS out utilization controllayer meta-control layer systemlayer in contentTree in requests in size out requests out size out contentTree provided in KI control : QOSControl out KI in utilization in contentTree KI server : ApacheWebServer adaptiveControl: AdaptiveControl
  • 19. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study ILLUSTRATION - DISTRIBUTED CONTENT DELIVERY ADAPTATION • QoS management control of a pool of web servers using content delivery adaptation. • Load balancer schedules requests to a server with highest QoS. Znn.com Client 1 Client 2 Client N Forwards requests to s Server cluster ... Load Balancer ... S G1 G2 Gn s 2 S such that Gs = max (G1, . . . , Gn)
  • 20. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study LocalApacheQOS out contentTree contentTreeWithHost : Tuple2 hostname : Hostname Si out output out hostname in input2 in input1 in input Gi contentTreePub : EventBusPublisher server : ApacheQOS (Si, Gi) scheduler : PeriodTrigger in input out output (Si, Gi) contentTree : Queue in input out output Gi outcontentTree ApacheQOS in contentTree in requests in size out requests out size out contentTree server : ApacheWebServer control : QOSControl LoadBalancerControl contentTree : MapStore ctrl : LoadBalancerController contentTreeMin : MapMaxKey lbForwardHost : FileWriter out output out outputin input in input Siout output in value in hostname out hostname 8 >< >: S1 : G1 ... Sn : Gn 9 >= >; contentTreeSub : EventBusSubscriber scheduler : PeriodTrigger in input out output Si Si (Si, Gi) Load Balancer si ILLUSTRATION - DISTRIBUTED CONTENT DELIVERY ADAPTATION
  • 21. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study ILLUSTRATION - RESOURCE MANAGEMENT ServerPoolControl contentTree : MapStore serverPoolController : IController contentTreeAvg : MapAvgValue clusterManager : ClusterManager out output out output n in input in input out output in numOfServers in input out output 8 >< >: S1 : G1 ... Sn : Gn 9 >= >; scheduler : PeriodTrigger in input out output (Si, Gi) G G contentTreeSub : EventBusSubscriber Load Balancer … s1 sn G1 Gn n = n + KIE = n + KI(G⇤ G) n
  • 22. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study ZNN.COM - SYSTEM IDENTIFICATION • Support for FCL design - black-box modeling • Open control loops for data collection SystemIdentification out output log : FileWriter in value out utilization in requests in size scheduler : PeriodTrigger in input out output sample: Tuple2 in input2 in input1 gQueue: Queue out output out requests out size in contentTree contentTree: SineWaveserver: ApacheWebServer (U, G) (U, G) utilization : UtilizationMonitor in input
  • 23. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Modeling VerificationCode Generation • Reference implementation of FCDL based on Eclipse Modeling Framework • Eclipse IDE-based prototype to facilitate the use of FCDL - ACTRESS IMPLEMENTATION accessLogParser accessLog adaptor apache control requestCounter responseSizeCounter loadMonitor utilization scheduler utilController ApacheQOS ACTRESS Runtime actor actor with event listener composite actor containment message passing ApacheQOS utilController : IController in input requestCounter : Accumulator responseSizeCounter : Accumulator scheduler : PeriodTrigger loadMonitor : LoadMonitor in input out sum out sum in requests in size out utilization in input out output in input out output out requests out size initialPeriod=10s in contentTree server : ApacheWebServer KI=? reference=? • Model well-formedness • User-defined structural constraints (OCL) • Architecture verification (completeness, consistency, determinacy) • Temporal properties (PROMELA/SPIN) • xFCDL (Extended FCDL) • Textual DSL for authoring FCDL models • Modularity, Java interoperability, Xbase • Eclipse IDE support • ACTRESS runtime • based on Java/AKKA
  • 24. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study Conclusions 3
  • 25. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study SUMMARY • Combining self-adaptive software systems with principles of MDE to provide systematic and tooled approach for integrating control mechanisms into software systems. ! • A proof of concept implementation and tools facilitating the language use including modeling, code synthesis and verification support.
  • 26. ICAC’14, 18.6.2014 Integrating Adaptation Mechanisms Using Control Theory Centric Architecture Models: A Case Study FUTURE WORK • Address ACTRESS limitations - a new MPS-based implementation • More robust FCDL - support data units, input output assertions • ZNN.COM challenge • From a case study to a benchmark • Easily reusable (docker packaging) • INRIA Lille Non-A team in charge of a new controller • Evaluation agains two base lines • Apache mod_proxy • Amazon elastic load balancer