Un- fortunately, the software development community currently lacks design methods and tools for rigorously construct- ing dynamically adaptive software.
An Aspect-Oriented Approach to Dynamic Adaptation Z. Yang, B. H. C. Cheng , R. E. K. Stirewalt, J. Sowell, S. M. Sadjadi, P. K. McKinley Software Engineering and Network Systems Laboratory Department of Computer Science and Engineering Michigan State University East Lansing, Michigan 48824
"!! #$ %%'" ()*+,! .-/0"1 ()21 "%,231
ABSTRACT
65.57865," 9:57" ; "%'%RD""8] ; "2 d7" ._@%,%M"%,ze()5 !"()"=fe {""2'V$ 57!+8=5'_+%,9Es2 !V;o! "v+()5'&_\B578EG(D "1v|0'; Ea2,. !=' 0EaZ^&?%'"_\"!5 ()"=^"()(:2, V$) 2,"=!V !+8*X%,"}() ,%,z.%~=!yEGy2 !V 2, ; ,z%''.()+"!!V% 5,_\NEa$[1 4 >5.578?5'57"> '"(D&)5,5,\8 yEG?5'"5.& R w' d5,(UEa % 5,z.%d%, H :%''.()W%,5',"1 w".%' WN w' ]5 5 !&+NW2 5,57B%'' ()[%'; 5,&+N9"()5,!+&%19 +%' =BF2 , @ w,()5 ! 8w, ) ! ]",Ea " +,D5,5 ! F , ]5.&+ +5 = (D"L"= R.%M!_\Xe"!!+7_\ ,Ea "," J"3 .%y",g%' I .&W[),&[=]Y% %z""2,) ()(:2, &; >"5. !V+ "1BP"&_\ [9^=F7 !9b .
, "2,V$X . ")%, ()!+!VX>2 X+()1PA`(D$ .!!+ Y S" X2 Ly8 ,RN(D*\d ,P w'; ,d5 5,!+&Jk\h\k8q ro ()(:2, &+31vP"&_\8\V9B%'VEa; !> = F ,+b2, ^EGW!+!""57 %,","""1
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. WOSS ’02, Nov 18-19, 2002, Charleston, SC, USA. Copyright 2002 ACM 1-58113-609-9/02/0011 ... 5.00
H. 2 !V3F"%'VEafkBq.mom 95," +B" %,V,2 %, F > %,5'O ,2,!g%y=""2':.%YF .&> 57 ?&D5,5,5'V; 1 ,F w,()5,!P%' ^>5, b?",Ea " +,N" >_\ %'5,57 "6S".%'+,P".%'O=""2'IF ," 5.&"5.=bEa(K2 =2,%P W&"()5,FD"()(?2 ,+" %,2' ) ?"3 %zd%, ()!+!Vz% 5,_\? 57 ? EG6
"'EG " @2 5:() (:7 S@ ='2,
,"V6" 2 ,N" 8,5'31 A}*\ Y ]f'"(D!!y(D*',d5'()]%,5'; %'fF " " : ^ ,)nj7nu8j ^" %f>^= %'' ()[% 5'Ps1 ,1=""2'V$=0\TS&Es2 !V;o! "&9 ;Z 2, )R 2,1 4 ,@5 57 b w'5 !"^ ] ='57 + .&]57" ;2,:57" 0.%f[_ )D w".%RY w'; b5,(CF :%,5,&>+'Ea2 2'^ %I W57= =0 F% 5')* "!s1vA^92,?() ,F%,5,&N*\8; !\8 ,"*'
" %,V>E, >%,5,&I2 !
@%,8 () VE9P%,5,&R ,2 !+%f7]57 EG()%d.%f w'""2, F ,0"; "57.%,, :EF ,d".%':&H.%S1 4 2 "9 "".%O5, .DO2,:5 5'\8 eIY" "%') D%,5' !+f ()]EF" %,V ? %O8+ ? %XY()5 !"()"= ?] ¡=¢'£¤£ ¡Y.%Y¥\¤'£ ¡d"!+ "7Ea(¦F R# X ,N%,5'X*\ !B&)!!=&%1D§B"2,N ":"'; %,Vf.%)8+d !g"[D7@!\%,%D.%)2 ,!+%'%)B2
()6 ,f% 5,&+c*\ ! V"!VE0:% 5,_\1zd5 5,!+% 2,f5 5, Jy"Y2.%eJF ,8 J[P2,%e RAb !+ 2 ]A@57"8 V&> w" %)>, $ *N",Ea " +,N5,; 5,!+"+=X f .&D%''.()!!Vc%,5': 57& , ""2'ZdEa2'"bb ""%,%S1 4 ,> (D.%' WE
,?5 57 0W ""%X@EG!!+F"1?T" ; ^=%,2 "3 ,BAb ;; 2 ()"=[N ,+ £f()8 %f 57" _\"!V=1 4 "I72,.% _+ !"FF+!!37]_+!+ !WEG02,WP W %,WEGF ]57" 9["&_"9+? J"%'F6 ,+957+="2'16AJ+()!+
57+="2' @%, H %)EG,¡=¢ 1 2,z". !e e5'""c%, H VQE) e5'( 57RPF ,8 C%''.()X% 5,C(D"M= "2,1¦A 5'; ( +?(D%'P% 5';o%O=O w" %, YV?F c, "%' D]=%,2,""I.%X8w,5,!V>% 5,&+O,Eg2 82, .%.->/B5 ^=I ]% 5'd*\ ,"!s1 4 F w" W578EG()"%7,@P()%,VEa' ) ,>.!
5'(R7 , ; &Ea >!!+"%X PnuIq 10kl:6,2,W& I=Y["&_ dO 57" [ ^(D*\"9 @5,( % 5,;o%'NFV D"57" [ ?5."2,!+@"," 31BT57""VH."!!V=7P57"8@ ()5,"F"%' Eg()"="!!%khtmonu8=F dD7b _"D+f.%D2 .% &"()"=W .&>)=2 =VH.%z2 P57="2,"1)xZX2,>5,; 5'\8 6%'_+ N"()5'"]"%,N ]5'&_'+%'"],Ea2 2' 2,5 57F2 ) z !V$L+, 2-& ()_RH.!V "^ .& "d ,"f702 "%D?57 EG( %,5,&,;%''.()!!V, PH !8IY '5,W:%," '5'
3 A D
G L P Y
X
` 3/c f3 3 3/A 3/D 3gG 3/L 3/P 3\X 3/Y 3/` Afc hA 3 AfA AfD
£)@ ¡!,£#¥$C¢CB ¤£\¥¤\ =¤E(8FB !'¥¤¥H ¥(I¥=¤¢"#.J2, ;o;z7 !\%,%%,% 8¦7" ._DX ,Y%,5,;o%'c5'(R F, % 5'f2 !"]ss1 13nj7hmGrsmsj.Zk\n rsmojD5 VBP7 %,%,%NI @%,5,&P* "!s= , "=N . ,? @%,5'; O!)EG? >57" 1 4 )8*zFV X ,D% 5,&; R* "!.%'+""^ .&b Y%,VS b% 5,R"," () =]+_::Rf%,VS "=>% 5'X(D 8I %z2,!+ . F , W 0$ )"()57 "=^&I !Vf"2 5 !%fEG@ _\ f 31 4 ,@ %'%N7w, .%'+"F F"!"()"=9 .
%' H.,%>%,2,,0%'"_\"!5,()"=() 2'6(D"]7[!\%,% F2,d()]%, 57".%'+,:P ] ,@d ,02 !] 1 4 f w'5 !I :+%,"S[> w".%'%zD,';$% 5,_\>"'; EG8" ",e5,5 !MFV M2,5 57)EGf" 2,R"()(:2, ; 1 4 ? !Fs ,;Z%,5,_\b5 5 !&+!!+FI)2 8 I#X %z!_\:f ,Ea "," P2,5.%Rd .%R w2.! ,Ea(DOy > ! f2 >O )()D2 51 4 5,5 !z[@ 2 !Vb2 D(?2 !Vb=*\ >so1 17 , _ "!++¤'£\¥¤\ =¤]d"()(:2, >&_\ W ,:, $ *71
FV ~(?2 !VY=*\ Y=L y .z= RFV CH.!V .,"1 " ;f=%,2 D ,)H.!V N . I .:d%,8; 5 "%IIv2' F35,_
% &F() (:7 SE' 9" "!+" ¡ =£¡=¤ % ¡"!,£"#\¥$GF ,8 X"!+"Y2,% ¡81BAbEa8 ["&_ > ^57" ^=> ,@ W"%'# E"!+ ¡ =£¡\¤RG"57" _\ ! ¡"!'£#\¥$
F!!7"= e ,2,z!!% '£"¤" '¥=£&¡M f z !I%,8; , >E[ ,"N")"!+"> "_ ](D+,%X,"%'+,,1DA@% %'; !!V=[7 c"R"!+ y ¡"!,£"#\¥$c.% ¡ =£¡=¤ c w" %,%FV ~ e57 H¤ '£"¤" '¥=£&¡b@2JQs FIWH.2,& .&382, 3[ EG8" "9[ 6£"¤" ''¥=£&¡ ,2,""1 4 ?%'_+ :yv+2,d08w, "2,% S T58>)9)w " X_\=&; ) .&[(D&8 ,"
, £?57="2'1 4 ^%,_"@()" .&9 :_\=&NE* =£]:@(:2,!V+"9=*\
#"8 P 0"]"%']@ S _\"!VD"5 !+ %dFV P 0!+,"
&¢ H¤ '£¤" ''¥=£&¡7 (R1P,>"!+V$=[D2 D57" "92 '£¤" ''¥=£&¡ ¡=¤ """ S>[_\Wd+'Ea2 2'W2 5'; 57DEaP%''.()+R% 5,&+ fEGP%,VS D "b2 I" 2,V$ %O0=T71xZX ,N wI"8+3v D%,"8+7) , %,5'; ,BH 2,+= 9%,V"8!IFV ,¤'£¥¤ =¤ '#$" "
f%,5';?TV 58q 5*9Fq\VTV9)=7:9?U k4)4C[O7:="S.;7O5*9
!
"
m F9?S
7:="S.[:[
wFS.4);Vw
2.4 Phase II: Achieving Dynamic Adaptation
3 A
4C>
D G
[:7:=S8N4bV=";
L Y
"¡=¢" £"¤" ' ' ¥=£&¡ ¢"ba:(*6aCa ¡?a ¡ba ¡ =£¡=¤ba\'£¤" ''¥=£¡ ¡"?d # '£¥¤ =" £"¤" ''¥=£&¡ ¢"ba:(*6aCa ¡?a ¡ba ¡"!,£#\¥$ba\£"¤" ''¥£&¡ ¡"?d
X
` 3gc \3 3 3gA 3gD 3WG 3gL 3gP 3/X 3gY 3g` A\c A 3 A\A A\D
¤=
# '£¥¤ P
£"¤" ''¥=£&¡ ¡=¤ = ""
'£"¤ =''¥\£&¡~ ]"&¤¤"''¥¤L¤ ¥# ¢¥#=¤=¥¤'£ ¡"'¥¡'¥H"
£E#' =£&¡=¤=¤ aaa
¥##
¢"£&¡,£¤'£ ¡
=£¢¢
E# H ¥(_ £ #\¡
-
S T58>)9)w @
&¡"!,£#\¥$~¢CB ¤'£\¥&¤\ =¤ (8FB !'¥¤=¥H ¥(I'¥=¤ ¢#8J K\ =£?@¢CBn(*FBf¢"#8J L&¢ba\H¤ '£"¤ ''¥=£¡b@2JFTV?lv[:7:wFV w
nN4bV="; !
557 ; &RE9 W% 5,&+R(D , 2,[[] .!!" ""=& ) F2 2'b.%N57 dE]" "8,;8 ,"8*?" %,V,F.%)57 Ea( ,"19 "N 057*)E 5,)y Y% 5,L*\ ,"!s Y()c d+_\=" E
"¥'¥¤P57 XD_\"y% 5'y(D 1 4 "=¥'¥¤f57 Yb()5 !"()"=%D2 ? NrZu8l0q.pkrZu lDu8r hfq'krsrZu8j 6F ,+ O() IV>+>R" 8)() %z . _\*\ ? 578,"
F ,8 c&d%' H.,%c%,8; _\%f"!+"> o1BA@[ @H.2'W!!+2,"".?" "8,;h=u8tu p8q.l)u8j r[rsmalDu8'[I%, _\"!57%dY57" > '£"¤" ''¥\£&¡ ¡\¤ " R .P Ea()YJ5,( .&Y8; 8WF X=8* ]f,: .&]= WFV yH.!V ] .+," 8"=W" ! ^ ,
, IEH.!V EG6""2'B, $ *0'; 31 4 ,^57"8^%,8H. V) = %,5,&D,Ea; 2 82,["%'\2,8 ?6H !89+, N()8 %," %>(D">!+ "P5,b=: ,]%,5,&R*\8 "!7EG £"¤" ''¥=£& ¡
1 A[znl0q msp+uPrsmGlDu8[ P[&_\d D57"8P%' H ; ¡\¤ " Vc=R D"d5'( R'"!+%cc%,5'; ," \¡, $"#=¤'£ ¡ DF RI()"W .^7"" "" +_%~Q%' z %,8 () OVEf= E) ,e" 8,5',; .%2,!+ d &_R7""M&H.%S1~x?TV
l nw?S.4?;S.;7 5*9
&S89FS.U8VTkN;T>)=";>?TV Dynamically Adaptive Process
Core Program
cd.getFilterChain().receive(..) DESDecoder
cd.getFilterChain().receive(..)
Filter R1
cc.getFilterChain().send(..)
cc.getFilterChain().send(..)
FilterChainController cd.getFilterChain().receive(..) cc.getFilterChain().send(..)
SenderFilterChain
...
... ... ...
DESEncoder
...
...
Filter S1
Development Time
FTV
3.
Compile Time
=M)7OV F7:9?U
RELATED WORK
m ?9?S
,Y"!+&Z %%,"2 ~5 2'57""@[X ._\z+%,"=VH.% '"f,\%O "NEaN% 5,&+3B!!^" 8%e2 .% ,b%,VS "=
$'57"
E"!+, 5 B7 $ "") F+ !75'; (K %f ,]%,5,& "1 4 ,]H W""=. ()"% rF 8 ?EG!!= , ,r>,!+])2,?57" bN" "5 2,!+?!!"%' !g&%Oz "_ zc% 5,&+3
.% N2,,;o()N",; H 2' !?%,5,&y*\ !v02 "%YD(D.> ,>%''.()+ % 5, "1
4.
CONCLUSIONS
4 ,^57 ;5 5, 31D,2,2,>[*zF!!B! 8w,5,!]%'"_\"!5, >()FH. 8;Z "%DEa(D!75'57 ZD57""V; H bE9%, ()W% 5,31Bv.!!V='[] ._\W%,"2 "% !Vf%,5'f"!+%D?" 2,V$=,2, ,05'57"%d() '; %'?"e7D2 %yY2 5 57>"!VEa;< !+,y.%e% 5,e+ b ;