(original) (raw)
%!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: se_paper.dvi %%Pages: 3 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips -f se_paper -o se_paper.ps %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1997.11.19:1243 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (se_paper.dvi) @start /Fa 28 122 df45 D<121EA2123EA2121C1200A61270 12F8A212F0A207107C8F0C>58 D<1470A214F01301A21303A21306A2130C131C13181330 14F8EB6078A213C03801FFF8A238030078A21206120E121E38FF03FFA2181A7E991D>65 D67 D<3803FFF814FE3800781FEBF807EC038013F0A2000114C0A213E0A21203EC078013 C0A2000714005C1380140E000F5B143C495A5C381F03E0B5128049C7FC1A1A7D991D>I< 0003B5FCA23800780FEBF807140313F0A20001130714C6EBE0C0A2EA03E113FF148013C3 1207A2EB83001380120FA290C7FCA25AEAFFE0A2181A7D9919>70 D77 D79 D83 D97 D<127EA2120E121EA2121CA2 123CA21238EA3BE0EA7FF0EA7E781278EA7038EAF078A212E0A213F813F0A2EAE1E0EAF3 C0EA7F80EA3E000D1A7C9912>IIII<130FEB1F80133FA2140013781370 A4EA07FF5BEA00E0A312015BA412035BA4120790C7FCA2127712FEA25A1278112181990C >I104 DI<131C131EA2131C1300A5EA01F0EA03F8EA0738120E12 0C137812001370A213F0A213E0A21201A213C0A21203EA738012F7EAFF005A127C0F2081 980C>I<123FA21207120FA2120EA2121EA2121CA2123CA21238A21278A21270A212F012 F612E6A212EE12FC1278081A7D990A>108 D<383C7E1F397EFF7F8039EFC7F3C038CF83 E1EB03C138DE0783001E1480001C1303A2383C0F071530EA380EEC0F7039781E0E60EC07 E0D8701C13C01C107D8F1F>III<38078F80380FFFC0381DF9E0EA19E113C0EA1BC112031381A2EA078314C013 03EB8780380FCF0013FEEA0EF890C7FC121EA2121CA2B47EA21317808F14>I114 DI<1206120EA4121E121CEAFFC0A2EA3C001238A312781270A3 EAF18012E112E3EAE70012FE127C0A177C960D>I<383E0380EA7E07126700EF130012CE 5B121EEA1C0EA2131E003C13C0EA381CEA3C3CEA1C7D381FFF80380FCF0012107D8F15> I<383E0380EA7E070067130012EF12CE5BEA1E0E121CA2131EEA3C1C1238EA3C3CEA1C7C EA1FF8120FEA0038EA2078EAF07013F0EAF3E0EAFF806CC7FC11177D8F13>121 D E /Fb 23 122 df45 D<127C12FEA5127C1200A4127C12FEA5 127C07127D910D>58 D<90383FE0603901FFFCE04813FF380FF81F381FE007383FC00313 80387F0001A2007E130012FE1500A7007E14E0127FA2383F80019038C003C0381FE00739 0FF81F800003B512006C13FC38003FF01B1C7D9B22>67 D69 D76 D82 D97 D99 D101 D<3807F9F0381FFFF8EA3E 1FEA7C0F14F01480A4383E1F00EA3FFEEA37F80070C7FCA21278383FFF8014E06C13F012 7F38F801F8EAF0001478A26C13F8387E03F0383FFFE000071300151B7F9118>103 D<123E127FA5123EC7FCA5127FA3121FACEAFFC0A30A1E7F9D0E>105 D108 D<38FF1FE0EB7FF0EBF1F8EA1FC01380 1300AA38FFE7FFA318127F911B>110 DI<38FF 3FC0EBFFF0EBE3F8381F81FC130014FE147EA614FE14FC1381EBE3F8EBFFF0EB3FC090C7 FCA5EAFFE0A3171A7F911B>I114 DI<1207A45AA35A EA3FFC12FFA2EA1F00A8131CA413BCEA0FF8EA07F00E1A7F9913>I<38FF07F8A3EA1F00 AA1301A2EB87FF6CB5FCEA03FC18127F911B>I<38FFC3FCA3381F00E0380F81C0A213C3 0007138013E700031300A2EA01FEA36C5AA21378A216127F9119>I<39FF8FF1FEA3391F 07E070A2390F87F0E0138EA23907DEF9C0EBDC79147B3903FC7F80EBF83FA20001140049 7E0000131EEBE00E1F127F9122>I<38FFC7FCA3380F87803807CF00EA03EEEA01FE5B6C 5A7F487E7F3803DF80EA078F380F07C000FF13FCA316127F9119>I<38FFC3FCA3381F00 E0380F81C0A213C30007138013E700031300A2EA01FEA36C5AA21378A213701278EAFCF0 5B12E1EAE3C0EA7F80003EC7FC161A7F9119>I E /Fc 1 16 df15 D E /Fd 32 122 df12 D<123C127E12FFA4127E123C08087C8710>46 D<13181378EA03F812FFA212FD1201B3A5 387FFFE0A313207C9F1C>49 DI<147014F8A3497EA2497E A3EB077FA2010F7FEB0E3FA2496C7EA2013C7FEB380FA201707F140701F07F90B5FCA248 80EBC001A248486C7EA200078090C77E3AFFF007FFF8A325227EA12A>65 D<903907FE018090383FFFC390B512EF0003EB81FF3907FC007FD80FF0133F4848131F49 130F003F1407485AA2150348C7FC92C7FCA96C6CEB0380A36C6C1307001F15006D5B6C6C 131ED807FC5B3903FF81F8C6EBFFF0013F13C0010790C7FC21227DA128>67 D72 DI76 DII80 D<3803FE06380FFFCE4813FEEA3F03387C007E143E48131EA2140E7E6C1300 7E13F06CB4FC14E06C13F06C13F86C13FC000313FEEA007FEB03FF1300143FA200E0131F A37E6C133E6C137E38FF80FCEBFFF800E713F000C013C018227DA11F>83 D85 D97 DI<3801FF80000713E0 381FC3F0EA3F831303127F387E01E000FEC7FCA8127FA2383F80381478381FE1F03807FF E00001138015167E9519>I<49B4FCA3EB003FAAEA01FE0007B5FCEA1FC1EA3F80EB003F 5A127E12FEA8127EA2007F5B6C5BD81FC313E0380FFFBF3801FE3F1B237EA21F>III<121E123FEA7F80 A4EA3F00121EC7FCA6EAFF80A3121FB0EAFFF0A30C247FA30F>105 D108 D<3AFF87F80FF090399FFC3FF89039 BC7E78FC3A1FF07FE0FE9039E03FC07E01C01380A201801300AC3BFFF1FFE3FFC0A32A16 7E952F>I<38FF87F0EB9FFC13F8381FF07E13E013C0A21380AC39FFF1FFC0A31A167E95 1F>I<13FE3807FFC0380F83E0381F01F0383E00F8007E13FCA300FE13FEA7007E13FCA2 383F01F8001F13F0380F83E03807FFC03800FE0017167E951C>I<38FF9FE0EBFFFCEBF0 FE381FC07F9038803F80A3EC1FC0A8EC3F80A2EC7F0013C0EBF1FEEBFFF8EB9FE00180C7 FCA7EAFFF0A31A207E951F>I<38FF1FC0EB3FE0EB7BF0EA1F6313E313C3EBC1E0EB8000 ACEAFFF8A314167F9517>114 DII<38FF83FEA3381F807EAD14FEA21381390FC3FFC03807FF7FEA03 FE1A167E951F>I<39FFF03FE0A3390FC00E00EBE01E0007131CA26C6C5AA2EBF8780001 1370EBFCF000005BA2EB7FC0A36D5AA26DC7FCA2130E1B167F951E>I<39FFF03FE0A339 0FC00E00EBE01E0007131CA26C6C5AA2EBF87800011370EBFCF000005BA2EB7FC0A36D5A A26DC7FCA2130EA25BA2EA783CEAFC3813785BEA79E0EA7FC0001FC8FC1B207F951E> 121 D E /Fe 21 122 df<903803F87E010713FE90380E7DFF011C13DFEC3BCEEC038013 3C1338A2140715000003B512F0A239007007005C140E13F013E0A2141E141C120113C0A2 143C143812031380A214781470EA070038F73CE0A238FE3DC038FC3F80D8781FC7FC2025 819C19>11 D<127012F8A212F0A205057B840D>46 D97 D<123FA2120FA2120EA3121E121CA3EA3DF0EA3FF8133CEA3C1C1278EA701EA213 3EEAF03C12E0A2137C137813F0A2EA73E0EA7FC0EA3F000F1D7C9C13>IIII103 DII108 D<391E1F87E0393F7FDFF039 77F1FC703867C1F012E738C781E0380701C0D80F0313F015E0000E13801481D81E0713C7 A2001CEB03C6158ED83C0F13DCEC01F8D8380E13F020127D9122>III<380787C0380F DFE0380DFCF0381DF070EA19E0EBC0781201000313F814F01380A2EA078114E0EB83C0A2 380FCF80EBFF00EA0E7C90C7FC121EA2121CA2123CB47EA2151A809115>I114 DI<1207A35AA2120EA2121EEAFF E0A2EA1C00123CA21238A21278A21270A2EAF0E0A2EAE1C0138012E7EAFF00127C0B1A7C 990E>I<381E01C0123F1277EA670312E700CF1380120E1307121E001C1300A2EB0F70A2 EB1E60A2381E7EE0381FFFC03807C78014127D9116>I<38078F80381FFFC0EA3CF9EA38 F1EA70F3EA60E312003801E000A25BA23873C1C012F3EB8180EAF78338E7CF00EAFFFEEA 7CFC12127E9113>120 D<381E01C0123F1277EA670300E7138012CF120E1307001E1300 121CA25B130E131EA2EA1E7EEA1FFCEA07DCEA001C133CEA7038EAF0785BEAE3E0B45A00 3FC7FC121A7D9114>I E /Ff 21 118 df<130E131E137EEA07FE12FFA212F81200B3AB B512FEA317277BA622>49 DII<91387FF003903907FFFE07011FEBFF9F90397FF80FFF3901FF80034848C7 FC4848147F4848143F4848141F5B003F150F5B127F1607A248481400AB6C7E1607A2123F 6D140F001F150E6D141E6C7E6C6C143C6C6C14F83A01FF8001F03A007FF80FE0011FB512 800107EBFE009038007FF028297CA831>67 DI73 D82 D<3803FFC0000F13F8487F383FC1FEEBC0FF80EC3F80A2EA1F80C7FCA2EB07FF90B5FC12 07381FF83FEA3FC0EA7F80EAFF005AA36C137F14FFD87FC313C0393FFFDFFC6C130F3807 FC071E1B7E9A21>97 D99 DIII104 DI108 D<38FFC0FF01C313C001 C713E0380FCF1F9038DC0FF0EBF80713F0A313E0AF39FFFE3FFFA3201B7D9A25>110 DI<38FFC7F0EBCFFCEBDFFE380FDEFF13F8A25BA2147EEBE000AFB5FCA3181B7F9A1B> 114 D<3803FE70381FFFF05AEA7E03EA7C01EAF80014707E6C1300EAFFE013FF6C13C06C 13E06C13F06C13F8000113FCEA000F1301EAE0006C137CA27E6C13F8EAFF03EBFFF000F7 13E000C11300161B7E9A1B>I<13E0A41201A312031207120F121FB512E0A3380FE000AD 1470A6EBF0F03807F9E0EBFFC06C1380C6130014267FA51A>I<39FFE07FF0A3000F1307 B1140FA2141F3807F07F9038FFF7FF6C13E7C61387201B7D9A25>I E /Fg 11 118 df<127012F8A312700505798414>46 D64 D97 D99 D<137EA3130EA4EA0FCEEA1FFE123FEA7C3EEA781EEAF00E12E0A4EAF01EEA703EEA7C7E 383FFFC07EEA0FCF12177F9614>II103 D<12FCA3121CA413FCEA1FFE7F130FEA1E07121CA838FF9FE0A31317809614>I<1203EA 0780A2EA0300C7FCA4EAFF80A31203AAEAFFFCA30E187D9714>I115 D117 D E /Fh 56 122 df38 D40 D<12E07E12707E7EA27EA212061207A37E1380AC13005AA31206120EA25AA25A5A12 F05A09267E9B0F>I<127012F8A312781218A21238123012701260A2050C7D840B>44 DI<127012F8A3127005057D840B>I48 D<12035AB4FCA21207B2EA7FF8A20D187D9713>III<13 381378A213F8120113B8EA033812071206120C121C12381230127012E0B5FCA2EA0038A5 EA03FFA210187F9713>I54 D<1260EA7FFFA3EA600EEAC01C13181338EA007013E013C0120113801203A2120713 00A25AA710197E9813>III<127012F8A312701200A6127012F8A3127005107D8F0B>I<130C131EA3133FA3EB6780 A3EBC3C0A3380181E0A348C67E13FF487F38060078A2000E137C000C133C121E39FF81FF C0A21A1A7F991D>65 DIIIIII<39FFF3FFC0A2390F003C00A9EBFFFCA2EB003CAB39FFF3FFC0A21A 1A7F991D>II<3807FF80A238003C00B112 7012F8A2137C5BEA7FF0EA1FC0111A809914>I76 D<39FF8001FF6D5A000F14F0A2380DE006A3380C F00CA3EB7818A3EB3C30A3EB1E60A3EB0FC0A3EB0780121E39FFC78FFFEBC30F201A7F99 23>II80 D83 D<007FB5FCA238781E0F00601303A200E0148000C01301A3000090C7FCAF3803FFF0 A2191A7F991C>I<39FFF0FFC0A2390F001E00140CB1EB801C000713183803C0383801E0 F06CB45AEB3F801A1A7F991D>I<12FEA212C0B3AF12FEA207257D9B0B>91 D<12FEA21206B3AF12FEA20725809B0B>93 D97 D<12FCA2121CA813FE381FFF801387381E03C0121CEB01E0A6EB03C0121E381F8F80381B FF00EA18FE131A809915>II<133FA21307A8EA0FE748B4FCEA3E1FEA780F7F12F0A6 12785BEA3C3F381FFFE0EA0FE7131A7F9915>III<380FCF80EA3FFFEA787B38 F03C00A5EA7878EA7FF0EA6FC00060C7FC1270EA7FF87F7FEAF01F487E7FA26C5AEA7C3E EA3FFCEA0FF011187F8F13>I<12FCA2121CA813FEEA1FFFEB8780EA1E03A2121CA938FF 9FF0A2141A809915>I<1238127CA312381200A512FCA2121CAC12FFA2081A80990A>II<12FCA2121CB3A4EAFF80A2091A80990A>108 D<38FCFC3F39FFFEFF80391F0FC3C0 381E0781001C1301AA39FF9FE7F8A21D107F8F20>IIII114 DI<1218A51238A2EAFFC0A2EA3800A71360A4EA3CE0EA1FC0 EA0F800B177F960F>I<38FC1F80A2EA1C03A91307A2EA1E1F380FFFF0EA07F31410808F 15>I<38FE3F80A2383C0E00EA1C0CA26C5AA36C5AA213706C5AA26C5AA311107F8F14>I< 38FE3F80A2383C0E00EA1C0CA26C5AA36C5AA213706C5AA26C5AA35BA2126100F3C7FC12 C712FE127811177F8F14>121 D E /Fi 62 123 df<90383F1F8048B512C03803C3F338 0783E3EA0F03390E01C000A6B512FCA2380E01C0AE387F87FCA21A1D809C18>11 D<133F3801FF803803C3C0EA0783EA0F03120E90C7FCA5B512C0A2EA0E01AE387F87F8A2 151D809C17>II34 D40 D<12E01270A27E7E120C120E12061207A2EA0380A4EA01C0AEEA0380A4EA0700A2120612 0E120C121C5A5AA25A0A2A7E9E10>I<127012F8A312781218A31238123012701260A205 0D7D840C>44 DI<127012F8A3127005057D840C>I<1303A21307 1306A2130E130C131C1318A213381330A213701360A213E013C0A21201138012031300A2 5A1206A2120E120CA2121C1218A21238123012701260A212E05AA210297E9E15>I<1203 5A123FB4FC12C71207B3A3EAFFF8A20D1C7C9B15>49 DII<127012F8A312701200A8127012F8A31270 05127D910C>58 D<127012F8A312701200A8127012F8A312781218A31238123012701260 A2051A7D910C>I<1306130FA3497EA3497E1333A2EB73E01361A2EBE1F013C0A200017F EB8078EBFFF8487FEB003CA248133E0006131EA2000E131F001E7F39FF807FF0A21C1D7F 9C1F>65 DI<90383FC180EBFFF13803F07B3807C0 1F380F800F381F0007123E14035A1401127812F891C7FCA70078EB0180127CA26C130315 006C5B380F800E3807C01E3803F87C3800FFF0EB3FC0191E7E9C1E>IIII< 90383FC180EBFFF13803F07B3807C01F380F800F381F0007123E14035A1401127812F891 C7FCA5ECFFF0A20078EB0780127CA27EA27E380F800FEA07C03803F83F3800FFF990383F C0001C1E7E9C21>I<39FFF0FFF0A2390F000F00AA90B5FCA2EB000FAC39FFF0FFF0A21C 1C7F9B1F>II76 DI<39FF803FF0A2390FC007809038E00300A2EA0DF0EA0CF8A2 137C133EA2131FEB0F83A2EB07C3EB03E3A2EB01F3EB00FBA2147F80A28080121E38FFC0 07801C1C7F9B1F>II82 D<3807F180EA1FFFEA3C3FEA780FEA7007EAE003A21301A2 6CC7FC7E127EEA7FE0EA3FFC6C7E6C7EC61380130FEB07C01303A2EAC001A312E038F003 80EAF80738FE0F00EAFFFEEAC3F8121E7E9C17>I<007FB512C0A238780F030070130100 60130000E014E000C01460A400001400B03803FFFCA21B1C7F9B1E>I<39FFF03FF0A239 0F000780EC0300B25C38078006A23803C00E6D5A3801F07838007FF0EB1FC01C1D7F9B1F >I<3AFFE1FFC1FFA23A1F003E007C6C011E13381630A2D9803F137000071560A25C3A03 C06780C0A33A01E0C3C180A33A00F181E300A39038FB00F7017B13F6A2017F13FE013E13 7CA3011C1338A3281D7F9B2B>87 D<12FEA212C0B3B312FEA207297C9E0C>91 DI<12FEA21206B3B312FEA20729809E0C>I97 D<12FCA2121CA913FE381FFF80EB87C0381E03E0EA1C01EB00F0A7EB01E0121EEB 03C0EA1F87381BFF803818FE00141D7F9C17>IIII<13FCEA03FEEA079E131E120FEA0E00A6EAFFE0A2EA0E 00AEEA7FE0A20F1D809C0D>II<12FCA2121CA913FEEA1DFF381F8F801307EA1E 03121CAB38FF9FF0A2141D7F9C17>I<1238127CA31238C7FCA612FCA2121CAEEAFF80A2 091D7F9C0C>II<12FCA2121CA9EB3FE0A2EB1F00131C5B5B5B121F7FA2EA1E78 EA1C7C133C7FA27F38FF9FE0A2131D7F9C16>I<12FCA2121CB3A7EAFF80A2091D7F9C0C> I<39FC7F07F039FDFF9FF8391F87F87C903803F03C391E01E01C001C13C0AB3AFF8FF8FF 80A221127F9124>IIII< 3807F180EA1FF9EA3F1FEA3C0FEA7807130312F0A612F8EA7807EA7C0FEA3E1FEA1FFBEA 07E3EA0003A6EB1FF0A2141A7F9116>III<120CA5121CA2123C EAFFE0A2EA1C00A81330A5EA1E70EA0FE0EA07C00C1A7F9910>I<38FC1F80A2EA1C03AB 1307A2EA1E1F380FFFF0EA07F314127F9117>I<38FF0FE0A2381C07801400EA0E06A36C 5AA3EA0398A213F86C5AA26C5AA313127F9116>I<39FF3FCFE0A2393C0F0780001CEB03 00131B1487000E1386133B1331000713CCA213603803E0F8A2EBC078A200011370A21B12 7F911E>I<387F8FF0A2380F078000071300EA038EEA01DC13D8EA00F01370137813F8EA 01DCEA038E130E487E001F138038FF0FF8A21512809116>I<38FF0FE0A2381C07801400 EA0E06A36C5AA3EA0398A213F86C5AA26C5AA35BA3EAF18012F300C7C7FC127E123C131A 7F9116>II E /Fj 3 111 df97 D<143EEB03FE14FCEB007CA31478 A214F8A214F0A21301A2EBFDE0EA03FFEA07CFEA0F07381E03C0A2EA3C07127C00781380 A2130F12F800F013001418131F1430133E38707E703878FE60383FCFE0381F87C017237B A219>100 D<381F07E0383F9FF8383BFC783873F03CEA63E0A238E3C07C000713781380 A214F8000F5B1300903801F18014E3001F1400EA1E035CEB01CE003E13FC381C00F81915 7D941B>110 D E /Fk 25 119 df66 D<90380FF030EB7FFC9038FC1E7038 03F0073907C003F0380F8001EA1F001400123E003C1470127CA215305AA21500A7153012 7CA36C147015606C14E015C0380F80013907C003803903F007003800FC1EEB7FFCEB0FF0 1C247DA223>II< D8FFE0903801FFC06D5B0007EDF800A2D806F81306A3017C130CA36D1318A26D1330A390 380F8060A3903807C0C0A2903803E180A3903801F300A3EB00FEA3147CA2000F1338D8FF F090381FFFC0A22A227FA12D>77 D80 D82 D97 D<120FB4FCA2121F7EAAEB1F80EBFFE0EBE1F0EB8078EB003CA2141C141EA7143CA2EB80 7C14F8EBE1F0380E7FE0380C3F8017237FA21B>II< EA01FCEA07FF381F0F80383E03C0EA3C01007813E0A2B5FCA200F0C7FCA5127814606C13 E0383E01C0EA1F833807FF00EA01FC13157F9416>101 D<133FEBFF803803E7C0EA07C7 1387120F90C7FCA8EAFFF8A2000FC7FCB1EAFFF0A2122380A20F>I<14F03803F3F8380F FFB8381E1F78383C0F3838780780A6383C0F00EA1E1EEA3FFCEA33F00070C7FCA21278EA 3FFF14C06C13E04813F0387801F838F000785A1438A26C1378A2387C01F0383F07E0380F FF803803FE0015217F9518>I<120FB4FCA2121F7EAAEB1F80EB7FE013E1EBC1F01380A2 1300AD38FFF3FFA218237FA21B>I<120E121FA3120EC7FCA8120F127FA2121F7EAFEAFF E0A20B2280A10D>I<120FB4FCA2121F7EB3ABEAFFF0A20C2380A20D>108 D<390F1FC0FE3AFF7FF3FF809038F1F78F3A1FC0FE07C0390F807C03A2EB0078AD3AFFF3 FF9FFCA226157F9429>I<380F1F8038FF7FE013E1381FC1F0EA0F80A21300AD38FFF3FF A218157F941B>II<380F1F80B512E0EBE1F0380F80F8EB007C143CA2141EA6143E143CA2EB807C14F8EBE3 F0EB7FE0EB3F8090C7FCA8EAFFF0A2171F7F941B>I<3803F860380FFCE0EA1F8EEA3E07 EA7C03EA7801A212F812F0A61278A2EA7C03EA3E07EA1F0FEA0FFDEA03F1EA0001A8EB1F FEA2171F7E941A>III<1206A5120E A3121E123EEAFFFCA2EA1E00AA130CA5EA1F1CEA0F3813F8EA03E00E1F7F9E13>I<000F 13F0EAFF0FA2EA1F01EA0F00AB1301A21303380787F8EBFEFFEA01FC18157F941B>I<38 FFC1FEA2381F00F86C13701460380780C0A33803C180A213E300011300A2EA00F6A3137C A31338A217157F941A>I E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 272 42 a Fk(Comp)q(ositiona)q(l)19 b(Dev)o(elopmen)o(t)d(from)g (Reusable)h(Comp)q(onen)o(ts)g(Requires)377 100 y(Connectors)g(for)f (Managing)i(Both)f(Proto)q(cols)h Fj(and)e Fk(Resources)858 261 y Fi(Gul)d(A.)h(Agha)695 311 y Fh(Departmen)o(t)g(of)e(Computer)i (Science)438 361 y(Univ.)j(of)c(Illinois)j(at)d(Urbana-Champaign,)i (Urbana,)e(IL)g(61801,)h(USA)537 411 y(Phone:)k(\(217\))13 b(244-3087)57 b(Email:)18 b Fg(agha@cs.ui)o(uc.)o(ed)o(u)0 570 y Ff(1)67 b(In)n(tro)r(duction)0 661 y Fi(Curren)o(t)19 b(comp)q(onen)o(t-based)e(approac)o(hes)h(for)g(soft)o(w)o(are)f(arc)o (hitecture)j(factor)d(a)h(system)f(in)o(to)g(a)g(set)i(of)e(comp)q (onen)o(ts,)0 711 y(whic)o(h)h(encapsulate)i(computation,)d(and)i(a)f (set)h(of)f(connectors,)j(whic)o(h)d(describ)q(e)i(ho)o(w)f(comp)q (onen)o(ts)f(are)h(in)o(tegrated)0 760 y(in)o(to)13 b(the)h(arc)o (hitecture.)20 b(This)14 b(separation)g(of)f(design)h(concerns)h(fa)o (v)o(ors)f(a)f(comp)q(ositional)e(approac)o(h)j(to)g(system)f(design;)0 810 y(a)19 b(metho)q(dology)e(whic)o(h)i(is)g(particularly)g(imp)q (ortan)o(t)e(when)j(sp)q(ecifying)f(arc)o(hitectures)j(for)d(op)q(en)h (\()p Fe(e.g.)34 b Fi(w)o(eb-based\))0 860 y(distributed)17 b(systems.)24 b(Heterogeneit)o(y)m(,)17 b(failure,)f(and)g(the)g(p)q (oten)o(tial)g(for)f(unpredictable)i(in)o(teractions)g(yield)e(ev)o (olving)0 910 y(systems)i(whic)o(h)g(require)h(complex)d(managemen)o(t) g(p)q(olicies.)27 b(Allo)o(wing)15 b(arc)o(hitectural)i(sp)q (eci\014cations)h(in)f(whic)o(h)g(these)0 960 y(p)q(olicies)12 b(are)g(separated)h(in)o(to)e(abstract)h(connectors)i(has)e(clear)g (adv)n(an)o(tages)f(for)g(system)h(design,)g(v)o(eri\014cation)f(and)h (reuse.)62 1009 y(Note)k(that)g(p)q(olicies)g(for)f(managing)e (distributed)k(systems)f(\()p Fe(e.g.)24 b Fi(reliabilit)o(y)14 b(proto)q(cols,)i(load)e(balance)i(and)g(place-)0 1059 y(men)o(t,)e(securit)o(y)j(constrain)o(ts,)f(co)q(ordination,)e(etc.\)) 24 b(not)16 b(only)e(assert)j(prop)q(erties)g(on)e(the)h(connections)h (b)q(et)o(w)o(een)f(com-)0 1109 y(p)q(onen)o(t)j(in)o(terfaces,)h(but)f (m)o(ust)e(also)h(enforce)i(constrain)o(ts)f(on)f(ho)o(w)g(resources)j (are)e(allo)q(cated)f(to)h(comp)q(onen)o(ts.)31 b(F)m(or)0 1159 y(example,)18 b(a)g(reliable)g(serv)o(er)i(ma)o(y)c(b)q(e)j(dev)o (elop)q(ed)g(b)o(y)g(adding)e(a)h(bac)o(kup)h(to)f(an)g(existing)g (serv)o(er)i(and)f(installing)d(an)0 1209 y(instance)g(of)f(the)g (primary)f(bac)o(kup)h(proto)q(col.)22 b(In)15 b(addition)f(to)h (recording)h(in)o(teractions)g(at)f(the)h(bac)o(kup,)f(the)h(primary)0 1258 y(bac)o(kup)i(proto)q(col)f(m)o(ust)f(also)h(ensure)i(that)f(the)g (bac)o(kup)g(and)f(serv)o(er)i(use)f(separate,)i(failure-indep)q(enden) o(t)e(resources)0 1308 y(\()p Fe(e.g.)24 b Fi(they)17 b(m)o(ust)e(execute)j(on)d(separate)j(pro)q(cessors\).)26 b(While)15 b(comp)q(onen)o(t-based)h(mo)q(dels)f(ha)o(v)o(e)h(made)f (great)h(strides)0 1358 y(in)f(recen)o(t)i(y)o(ears,)f(w)o(e)f(argue)h (that)g(the)g(p)q(erceiv)o(ed)h(gap)d(b)q(et)o(w)o(een)j(curren)o(t)g (middlew)o(are)d(systems)i(and)f(the)h(demands)f(of)0 1408 y(large)c(scale)h(distributed)g(applications)e(is)i(due)g(in)f (part)g(to)h(inadequate)f(comp)q(onen)o(t)g(mo)q(dels)f(and)h(the)h (inabilit)o(y)e(to)h(de\014ne)0 1458 y(more)g(\015exible)i(connectors)h (that)e(manage)f(b)q(oth)i(resources)h(and)f(in)o(teractions.)18 b(Similarl)o(y)m(,)9 b(w)o(e)k(claim)d(that)i(arc)o(hitectural)0 1508 y(design)19 b(from)e(reusable)i(comp)q(onen)o(ts)f(will)f(remain)g (an)i(unful\014lled)e(goal)h(un)o(til)f(arc)o(hitectural)j(connectors)g (b)q(ecome)e(a)0 1557 y(mec)o(hanism)13 b(for)i(\014tting)g(comp)q (onen)o(ts)g(to)g(arc)o(hitectural)h(con)o(texts,)h(rather)f(than)g (de\014ning)f(in)o(terconnections)i(b)q(et)o(w)o(een)0 1607 y(comp)q(onen)o(t)c(in)o(terfaces.)62 1657 y(Our)h(argumen)o(t)e (is)i(based)g(on)f(the)h(observ)n(ation)f(that)g(comp)q(onen)o(t)g(in)o (terfaces)h(abstract)g(o)o(v)o(er)g(functionalit)o(y)d(but)j(not)0 1707 y(resource)19 b(managemen)o(t)c(and)i(that)h(therefore,)h (connectors)g(are)e(limited)f(in)g(their)i(abilit)o(y)e(to)h(sp)q (ecify)h(system-critical)0 1757 y(prop)q(erties)f(of)e(distributed)i (systems.)23 b(W)m(e)15 b(describ)q(e)j(k)o(ey)e(asp)q(ects)h(of)e(our) h(argumen)o(t)e(and)i(p)q(oten)o(tial)f(solutions)g(in)g(the)0 1806 y(remainder)e(of)h(this)f(pap)q(er.)0 1923 y Fd(1.1)56 b(Comp)r(onen)n(t)18 b(In)n(terfaces)h(Ha)n(v)n(e)f(Limited)h (Abstraction)0 1999 y Fi(Curren)o(t)13 b(notions)f(of)g(comp)q(onen)o (t)f(in)o(terfaces)j(are)e(based)h(on)f(a)g(functional)g(represen)o (tation)h(of)f(the)h(services)h(pro)o(vided)e(b)o(y)0 2049 y(a)h(comp)q(onen)o(t.)k(This)12 b(abstraction)i(is)e(a)h(natural) g(extension)g(of)f(the)i(ob)r(ject)g(mo)q(del.)i(Ho)o(w)o(ev)o(er,)d (when)g(placing)f(an)h(ob)r(ject)0 2099 y(in)g(an)h(arc)o(hitectural)h (setting,)e(this)h(mo)q(del)f(fails)f(to)i(describ)q(e)i(man)o(y)c(imp) q(ortan)o(t)g(features)j(suc)o(h)g(as:)62 2190 y Fc(\017)21 b Fb(Lo)q(calit)o(y)c(prop)q(erties:)k Fi(The)c(distribution)f(and)h (comm)o(unicatio)o(n)d(b)q(eha)o(vior)i(of)g(in)o(ternal)h (computational)d(ele-)104 2240 y(men)o(ts.)62 2323 y Fc(\017)21 b Fb(Resource)g(usage)h(patterns:)28 b Fi(Distinctions)20 b(suc)o(h)g(as)g(computation)e(b)q(ound)i(v)o(ersus)h(i/o)e(b)q(ound)h (elemen)o(ts,)104 2373 y(degree)15 b(of)e(concurrency)m(,)i(and)f(the)h (resources)h(corresp)q(onding)f(to)e(critical)h(and)g(transien)o(t)g (state.)62 2456 y Fc(\017)21 b Fb(Existing)12 b(lo)o(w)o(er-lev)o(el)e (constrain)o(ts:)15 b Fi(The)d(p)q(olicies)g(de\014ned)h(b)o(y)f (sub-connectors)i(in)e(the)h(case)g(of)e(comp)q(onen)o(ts)104 2506 y(whic)o(h)j(encapsulate)g(collections)g(of)g(sub-comp)q(onen)o (ts.)0 2597 y(In)i(general,)f(comp)q(onen)o(ts)g(should)h(pro)o(vide)f (comprehensiv)o(e)h(mo)q(del)e(of)h Fe(ar)n(chite)n(ctur)n(al)g(c)n (ontext)p Fi(:)22 b(the)16 b(relationships)f(b)q(e-)0 2647 y(t)o(w)o(een)10 b(comp)q(onen)o(t)g(b)q(eha)o(vior)f(and)h(arc)o (hitectural)g(features)h(suc)o(h)f(as)g(those)h(describ)q(ed)g(ab)q(o)o (v)o(e.)17 b(A)10 b(natural)f(solution)g(w)o(ould)965 2795 y(1)p eop %%Page: 2 2 2 1 bop 0 42 a Fi(b)q(e)14 b(to)g(extend)g(curren)o(t)h(in)o(terfaces)g (with)e(additional)f(functional)g(en)o(try)i(p)q(oin)o(ts)g(for)f (selecting,)h(for)f(example,)f(placemen)o(t)0 91 y(p)q(olicies,)j (reliabilit)o(y)e(features)j(\()p Fe(e.g.)21 b Fi(fault-tolerance)15 b(proto)q(cols\),)g(and)g(so)g(on.)21 b(Ho)o(w)o(ev)o(er,)16 b(suc)o(h)f(an)g(approac)o(h)g(compli-)0 141 y(cates)i(comp)q(onen)o(t) e(co)q(de)i(b)o(y)f(em)o(b)q(edding)f(orthogonal,)g(con)o(text-sp)q (eci\014c)j(concerns.)26 b(The)16 b(more)f(preferable)i(approac)o(h)0 191 y(w)o(ould)e(b)q(e)h(to)g(design)g(generalized)g(comp)q(onen)o(ts)g (whic)o(h)f(ma)o(y)f(b)q(e)i(customized)g(to)f(particular)h(arc)o (hitectural)g(con)o(texts.)0 241 y(Connectors)f(w)o(ould)e(encapsulate) i(these)g(customizations,)e(preserving)i(comp)q(ositional)c(system)j (dev)o(elopmen)o(t.)0 357 y Fd(1.2)56 b(Connectors)18 b(Not)h(Comp)r(osable)g(Prop)r(ert)n(y)f(Sp)r(eci\014cations)0 434 y Fi(The)e(structure)h(of)d(comp)q(onen)o(t)h(in)o(terfaces)h(has)f (limited)e(connectors)k(to)e(represen)o(ting)i(proto)q(cols)e(b)q(et)o (w)o(een)h(in)o(terfaces.)0 483 y(As)e(describ)q(ed)i(ab)q(o)o(v)o(e,)d (ho)o(w)o(ev)o(er,)h(this)g(limitation)d(prev)o(en)o(ts)k(the)g(design) f(of)f(ev)o(en)i(a)f(simple)e(primary)h(bac)o(kup)h(proto)q(col.)0 533 y(W)m(e)c(b)q(eliev)o(e)h(that)f(connectors)i(should)e(ha)o(v)o(e)g (the)h(role)f(of)g(enforcing)g Fe(pr)n(op)n(erties)g Fi(o)o(v)o(er)g(a)g(collection)g(of)g(comp)q(onen)o(ts,)g(rather)0 583 y(than)i(adapting)e(their)i(in)o(teractions)g(to)g(one)f(another.) 18 b(Giv)o(en)11 b(a)g(more)g(\015exible)g(mo)q(del)f(of)h(comp)q(onen) o(ts,)h(connectors)h(ma)o(y)0 633 y(sp)q(ecify)i(b)q(oth)f(the)h (individual)e(proto)q(cols)h(whic)o(h)g(go)o(v)o(ern)g(in)o(teractions) h(as)f(w)o(ell)g(as)g(global)f(p)q(olicies)h(whic)o(h)g(con)o(trol)g (ho)o(w)0 683 y(comp)q(onen)o(ts)g(are)g(deplo)o(y)o(ed)g(in)f(a)h (particular)f(arc)o(hitectural)i(setting.)62 732 y(In)h(addition)e(to)i (serving)g(as)g(p)q(olicy)f(sp)q(eci\014cations,)h(connectors)i(ma)o(y) c(also)h(b)q(e)h(required)g(to)g(comp)q(ose.)23 b(Moreo)o(v)o(er,)0 782 y(the)14 b(p)q(olicies)f(required)h(for)f(a)g(particular)g(in)o (teraction)g(ma)o(y)e(not)i(b)q(e)h(determined)f(un)o(til)f(run-time.) 17 b(F)m(or)c(example,)e(future)0 832 y(w)o(eb-based)g(applications,)f (in)g(whic)o(h)g(the)h(p)q(oten)o(tial)f(set)i(of)d(clien)o(ts)i(is)g (not)f(kno)o(wn)g(un)o(til)g(run-time,)f(ma)o(y)g(require)i(di\013eren) o(t)0 882 y(collections)16 b(of)g(p)q(olicies)g(dep)q(ending)h(on)f (the)g(clien)o(t.)25 b(That)17 b(is,)f(p)q(olicies)g(ma)o(y)e(b)q(e)j (required)g(to)f(comp)q(ose)g(dynamically)l(.)0 932 y(Note)k(that)g (connector)h(comp)q(osition)d(di\013ers)j(from)d(comp)q(onen)o(t)h (comp)q(osition.)34 b(In)19 b(particular,)i(while)e(comp)q(onen)o(ts)0 982 y(comp)q(ose)c(b)o(y)h(connecting)h(their)f(in)o(terfaces,)h (connector)g(comp)q(osition)d(consists)j(of)f(m)o(ultiple)d(p)q (olicies)j(sim)o(ultaneously)0 1031 y(applied)11 b(to)g(a)f(collection) h(of)g(comp)q(onen)o(ts.)16 b(F)m(or)11 b(example,)f(where)i(in)o (teractions)g(are)f(concerned,)i(connector)g(comp)q(osition)0 1081 y(ma)o(y)e(b)q(e)i(mo)q(deled)e(as)i(a)f(proto)q(col)h(stac)o(k)f (applied)g(to)h(the)g(endp)q(oin)o(ts)g(of)f(a)g(particular)g(in)o (teraction.)18 b(The)13 b(comp)q(osition)e(of)0 1131 y(resource)17 b(managemen)o(t)12 b(p)q(olicies,)i(on)g(the)h(other)g (hand,)f(ma)o(y)f(b)q(e)i(mo)q(deled)f(as)g(a)h(collection)f(of)g (constrain)o(ts)h(applied)f(to)0 1181 y(the)i(resource)h(acquisition)d (b)q(eha)o(vior)g(of)h(a)f(comp)q(onen)o(t.)21 b(Understanding)16 b(and)e(designing)h(mec)o(hanisms)e(for)i(connector)0 1231 y(comp)q(osition)d(is)i(a)f(critical)h(pre-requisite)h(for)f(ac)o (hieving)f(soft)o(w)o(are)h(dev)o(elopmen)o(t)f(from)f(reusable)j(comp) q(onen)o(ts.)0 1368 y Ff(2)67 b(Researc)n(h)22 b(Directions)0 1459 y Fi(In)12 b(order)h(to)f(explore)g(solutions)g(to)g(the)h (problems)e(describ)q(ed)j(ab)q(o)o(v)o(e,)d(w)o(e)i(suggest)g(t)o(w)o (o)e(directions)i(for)f(further)h(researc)o(h:)0 1509 y(a)f(more)f(descriptiv)o(e)i(mo)q(del)e(of)h(comp)q(onen)o(t)f (computation,)g(and)h(a)g(comprehensiv)o(e)g(meta-mo)q(del)e(whic)o(h)i (describ)q(es)i(ho)o(w)0 1558 y(distributed)h(managem)o(en)o(t)d(p)q (olicies)h(ma)o(y)f(b)q(e)j(used)g(to)e(customize)h(the)h(underlying)e (comp)q(onen)o(t)g(computation)f(mo)q(del.)0 1675 y Fd(2.1)56 b(A)19 b(Uniform)g(Computational)h(Mo)r(del)f(for)g(Comp)r(onen)n(ts)0 1751 y Fi(In)d(order)h(to)g(reason)f(ab)q(out)h(arc)o(hitectural)g(con) o(text,)g(w)o(e)f(require)h(a)g(mo)q(del)d(of)i(comp)q(onen)o(t)g (computation)e(whic)o(h)i(rep-)0 1801 y(resen)o(ts)22 b(comp)q(onen)o(t)e(b)q(eha)o(vior)g(in)g(terms)g(of)f(in)o(teractions) i(with)f(a)g(set)h(of)f(default)g(system)g(services.)39 b(Relativ)o(e)19 b(to)0 1851 y(computational)e(b)q(eha)o(vior,)i(the)h (seman)o(tics)e(of)h(these)h(services)h(will)c(remain)h(the)i(same)e (regardless)i(of)e(arc)o(hitectural)0 1901 y(con)o(text.)j(Ho)o(w)o(ev) o(er,)15 b(the)g(seman)o(tics)f(observ)o(ed)i(b)o(y)e(the)h Fe(implementation)g Fi(of)f(these)i(services)g(will)e(v)n(ary)g(as)g (comp)q(onen)o(ts)0 1950 y(are)f(placed)f(in)g(di\013eren)o(t)h(arc)o (hitectures.)19 b(This)12 b(distinction)g(allo)o(ws)f(comp)q(ositional) e(dev)o(elopmen)o(t)j(in)f(whic)o(h)h(generalized)0 2000 y(comp)q(onen)o(ts)f(are)g(\014tted)h(to)f(particular)f(arc)o (hitectures)j(not)e(b)o(y)g(c)o(hanging)f(their)i(computational)c(b)q (eha)o(vior)j(\(whic)o(h)g(w)o(ould)0 2050 y(break)j(encapsulation\))g (but)g(b)o(y)g(customizing)f(the)h(arc)o(hitectural)h(implem)o(en)o (tation)c(of)i(underlying)h(services.)62 2100 y(W)m(e)j(prop)q(ose)g (the)g(Actor)h(mo)q(del)d([1)o(,)i(2)o(])f(as)h(a)g(candidate)g(for)f (describing)h(comp)q(onen)o(t)f(b)q(eha)o(vior.)26 b(Actors)18 b(pro)o(vide)0 2150 y(a)i(general)g(and)g(\015exible)h(mo)q(del)d(of)i (concurrency)i(whic)o(h)e(ma)o(y)f(b)q(e)h(used)i(as)e(an)g(atomic)e (unit)i(for)g(building)f(t)o(ypical)0 2200 y(arc)o(hitectural)d(elemen) o(ts)f(including)f(pro)q(cedural,)i(functional,)e(and)h(ob)r (ject-orien)o(ted)i(comp)q(onen)o(ts.)22 b(Conceptually)m(,)14 b(an)0 2249 y(actor)h(encapsulates)h(a)e(state,)h(a)f(thread)h(of)f (con)o(trol,)g(and)g(a)g(set)h(of)f(pro)q(cedures)j(whic)o(h)d (manipulate)e(the)j(state.)21 b(Actors)0 2299 y(co)q(ordinate)13 b(b)o(y)g(async)o(hronously)g(sending)g(messages)f(to)h(one)g(another.) 18 b(Eac)o(h)13 b(actor)g(has)g(a)g(unique)g Fe(mail)g(addr)n(ess)g Fi(and)f(a)0 2349 y Fe(mail)j(bu\013er)f Fi(to)g(receiv)o(e)i (messages.)j(Comm)o(uni)o(cation)11 b(is)j(p)q(oin)o(t-to-p)q(oin)o(t)f (and)h(is)g(assumed)g(to)g(b)q(e)h(w)o(eakly)f(fair.)k(Actors)0 2399 y(require)h(three)h(services)g(from)c(the)j(underlying)f(system:) 26 b(the)19 b(abilit)o(y)e(to)h Fe(send)h Fi(messages)f(async)o (hronously)g(to)g(other)0 2449 y(actors;)f(the)f(abilit)o(y)d(to)j Fe(cr)n(e)n(ate)f Fi(actors)h(with)f(sp)q(eci\014ed)i(b)q(eha)o(viors;) f(and)f(the)h(abilit)o(y)e(to)h(b)q(ecome)h Fe(r)n(e)n(ady)f Fi(to)h(receiv)o(e)g(the)0 2498 y(next)e(message.)62 2548 y(Comp)q(onen)o(ts)d(ma)o(y)f(b)q(e)j(mo)q(deled)d(as)i (encapsulated)h(collections)f(of)f(actors)i(in)e(whic)o(h)h(a)f (distinguished)h(subset,)h(called)0 2598 y Fe(liaisons)p Fi(,)e(are)g(used)g(for)g(in)o(teractions)f(with)h(other)g(comp)q(onen) o(ts.)17 b(In)o(teractions)11 b(b)q(et)o(w)o(een)h(liaisons)e(corresp)q (ond)i(to)e(curren)o(t)0 2648 y(notions)16 b(of)g(comp)q(onen)o(t)g (connection.)26 b(In)17 b(particular,)f(b)o(y)g(customizing)f(these)j (in)o(teractions,)f(sp)q(eci\014c)h(proto)q(cols)f(ma)o(y)965 2795 y(2)p eop %%Page: 3 3 3 2 bop 0 42 a Fi(b)q(e)17 b(enforced.)28 b(Moreo)o(v)o(er,)18 b(the)g(arc)o(hitectural)f(con)o(text)h(of)e(a)g(comp)q(onen)o(t)h(is)f (represen)o(ted)k(b)o(y)d(the)g(service)h(in)o(v)o(o)q(cation)0 91 y(b)q(eha)o(vior)h(of)h(in)o(ternal)f(\()p Fe(i.e.)35 b Fi(non-liaison\))18 b(actors.)37 b(Th)o(us,)21 b(the)f(collectiv)o(e) g(b)q(eha)o(vior)f(of)g(a)h(comp)q(onen)o(t)f(relativ)o(e)g(to)0 141 y(arc)o(hitectural)14 b(features)g(is)f(captured)h(b)o(y)e(the)i (in)o(teractions)f(through)g(its)g(liaisons)f(and)h(the)h(resource)h (access)f(patterns)h(of)0 191 y(its)h(in)o(ternal)g(actors.)25 b(Both)17 b(of)e(these)j(b)q(eha)o(viors)e(are)h(represen)o(ted)i (uniformly)13 b(in)j(terms)g(of)f(in)o(v)o(o)q(cations)h(of)f(the)i (basic)0 241 y(actor)d(services)i(describ)q(ed)g(ab)q(o)o(v)o(e,)d(pro) o(viding)f(a)i(clean)g(represen)o(tation)h(for)f(arc)o(hitectural)g (customization.)0 353 y Fd(2.2)56 b(Connectors)18 b(as)h(Proto)r(col)g (and)g(P)n(olicy)h(Sp)r(eci\014cations)0 430 y Fi(By)c(de\014ning)f (comp)q(onen)o(t)g(b)q(eha)o(vior)g(in)g(terms)g(of)g(the)h(in)o(v)o(o) q(cation)e(of)h(basic)g(system)g(services,)i(w)o(e)f(allo)o(w)e (\015exible)h(con-)0 480 y(nectors)h(whic)o(h)f(customize)g(b)q(oth)g (in)o(teractions)h(and)f(resource)i(managemen)o(t.)i(In)c(particular,)f (w)o(e)i(ma)o(y)d(mo)q(del)g(system)0 530 y(services)i(in)e(terms)g(of) g(a)g(meta-arc)o(hitecture)h(whic)o(h)f(describ)q(es)j(the)e(implemen)o (tatio)o(n)d(of)i(these)h(services)i(on)d(a)g(p)q(er-actor)0 579 y(basis.)18 b(A)13 b(connector)h(then)g(consists)g(of)e(a)h (collection)f(of)h(meta-lev)o(el)e(b)q(eha)o(viors)i(that,)g(when)g (installed)g(on)f(a)h(set)h(of)e(com-)0 629 y(p)q(onen)o(t)h(actors,)f (rede\014ne)i(the)f(basic)f(system)f(services)j(pro)o(vided)e(to)g (those)h(actors.)18 b(By)12 b(de\014ning)g(a)g(notion)f(of)h(meta-lev)o (el)0 679 y(comp)q(osition,)g(w)o(e)i(ma)o(y)e(comp)q(ose)h(connectors) j(and)d(th)o(us)i(enforce)g(m)o(ultiple)c(p)q(olicies)j(on)g(a)f (collection)h(of)f(comp)q(onen)o(ts.)62 729 y(Liaisons)h(are)g(the)h (only)e(externally)i(visible)e(elemen)o(ts)h(of)g(a)f(comp)q(onen)o(t.) 19 b(Th)o(us,)14 b(connectors)h(whic)o(h)f(sp)q(ecify)h(proto-)0 779 y(cols)e(b)q(et)o(w)o(een)h(comp)q(onen)o(ts)e(are)h(naturally)f (represen)o(ted)j(in)d(terms)h(of)f(customizations)f(applied)h(to)h (individual)e(liaisons.)0 829 y(Ho)o(w)o(ev)o(er,)19 b(connectors)h(whic)o(h)d(sp)q(ecify)i(resource)h(managemen)o(t)15 b(p)q(olicies)j(are)g(more)f(c)o(hallenging)g(b)q(ecause)j(they)e(cus-) 0 878 y(tomize)f(in)o(ternal)i(comp)q(onen)o(t)e(elemen)o(ts.)32 b(In)19 b(particular,)g(w)o(e)g(w)o(ould)e(lik)o(e)h(to)h(sp)q(ecify)g (arbitrary)f(customizations)g(of)0 928 y(in)o(ternal)e(actors)h(while)e (resp)q(ecting)j(the)f(encapsulation)f(prop)q(erties)i(of)d(a)h(comp)q (onen)o(t.)24 b(T)m(o)16 b(this)g(end,)h(connectors)h(are)0 978 y(constructed)e(from)c(t)o(w)o(o)i(t)o(yp)q(es)g(of)g(meta-lev)o (el)e(b)q(eha)o(vior:)62 1049 y Fc(\017)21 b Fb(Roles:)c Fi(A)c(role)f(is)h(a)g(sp)q(eci\014c)h(customization)d(applied)i(to)f (one)h(or)g(more)f(liaisons.)17 b(Roles)12 b(are)h(used)h(to)f(implem)o (en)o(t)104 1098 y(proto)q(cols)k(on)g(connections)h(b)q(et)o(w)o(een)h (comp)q(onen)o(ts.)27 b(F)m(or)17 b(example,)f(an)h(encryption)g(proto) q(col)g(ma)o(y)e(b)q(e)j(imple-)104 1148 y(men)o(ted)12 b(b)o(y)g(customizing)g(the)h(\\send")g(b)q(eha)o(vior)f(of)g(one)h (liaison)e(\()p Fe(e.g.)18 b Fi(to)13 b(encrypt)h(outgoing)d (messages\))i(and)f(the)104 1198 y(\\receiv)o(e")j(b)q(eha)o(vior)f(of) g(another)g(\()p Fe(e.g.)20 b Fi(to)14 b(decrypt)i(incoming)c (messages\).)19 b(Roles)14 b(are)h(installed)f(explicitly)f(on)h(a)104 1248 y(set)h(of)e(liaisons.)62 1323 y Fc(\017)21 b Fb(Con)o(text:)g Fi(A)15 b(con)o(text)h(is)g(a)f(single)g(meta-lev)o(el)f(b)q(eha)o (vior)h(whic)o(h)h(customizes)f Fe(al)r(l)g Fi(actors)i(within)d(a)i (comp)q(onen)o(t)104 1372 y(and)c(is)h(automatically)c(installed)j(on)h (an)o(y)f(dynamically)e(created)k(actors.)k(Con)o(texts)13 b(are)h(used)f(to)g(manage)e(the)i(al-)104 1422 y(lo)q(cation)d(of)g (resources.)20 b(F)m(or)11 b(example,)f(a)g(lo)q(cal)h(load)f (balancing)g(strategy)i(ma)o(y)d(b)q(e)j(implem)o(en)o(ted)d(b)o(y)i (customizing)104 1472 y(the)j(\\create")h(b)q(eha)o(vior)f(of)f(all)g (actors)h(within)f(a)h(comp)q(onen)o(t.)0 1606 y Ff(3)67 b(Conclusion)0 1697 y Fi(Mo)q(deling)16 b(comp)q(onen)o(ts)g(as)g (hierarc)o(hical)h(collections)f(of)g(actors)h(pro)o(vides)g(a)f (\015exible)h(mec)o(hanism)d(for)i(sp)q(ecifying)g(ar-)0 1747 y(bitrarily)e(concurren)o(t,)i(lo)q(cal)e(computation)f(while)h (restricting)i(remote)e(comm)o(unication)d(to)k(adhere)h(to)e(a)h(w)o (ell-de\014ned)0 1796 y(in)o(teraction)i(mec)o(hanism.)26 b(The)18 b(in)o(terface)g(of)f(a)g(comp)q(onen)o(t)f(is)h(represen)o (ted)j(b)o(y)d(a)g(dynamic)f(set)i(of)f(liaisons.)27 b(Th)o(us,)0 1846 y(comp)q(onen)o(t)11 b(in)o(terfaces)i(ma)o(y)d(c)o (hange)j(in)e(resp)q(onse)j(to)e(run-time)f(constrain)o(ts)i(b)o(y)f (creating)g(new)h(liaisons)e(to)h(handle)g(new)0 1896 y(connections.)62 1946 y(While)j(comp)q(onen)o(ts)h(describ)q(e)h(an)f (arc)o(hitecture)i(at)d(a)h(functional)f(lev)o(el,)g(w)o(e)h(view)g (connectors)h(as)f(lo)o(w)o(er)g(lev)o(el)f(ab-)0 1996 y(stractions)f(whic)o(h)f(de\014ne)h(ho)o(w)f(an)g(arc)o(hitecture)i (is)e(deplo)o(y)o(ed)g(in)f(a)h(particular)g(execution)h(en)o(vironmen) o(t.)i(By)e(accessing)0 2045 y(an)e(op)q(en)g(implemen)o(tatio)o(n)d (of)j(the)g(in)o(terface)h(b)q(et)o(w)o(een)g(actors)g(and)e(their)i (underlying)e(system)h(services,)h(connectors)h(im-)0 2095 y(plemen)o(t)g(transparen)o(t)j(customizations)d(of)h(comp)q(onen) o(t)f(b)q(eha)o(vior.)22 b(W)m(e)15 b(factor)g(customizations)f(in)o (to)h(t)o(w)o(o)g(categories:)0 2145 y(roles)h(are)h(explicit)f (customizations)f(of)g(liaisons,)g(while)h(con)o(texts)h(are)g (implicit)c(customizations)i(of)h(all)f(actors)i(within)0 2195 y(a)h(comp)q(onen)o(t.)31 b(Roles)17 b(allo)o(w)g(the)i (enforcemen)o(t)f(of)g(in)o(teraction)g(p)q(olicies)g(o)o(v)o(er)h (connections)g(b)q(et)o(w)o(een)h(comp)q(onen)o(ts.)0 2245 y(Con)o(texts)f(supp)q(ort)h(comp)q(onen)o(t-wide)e(resource)i (managemen)o(t)c(and)j(co)q(ordination.)32 b(Comp)q(osition)16 b(allo)o(ws)h(m)o(ultiple)0 2294 y(connectors)f(to)d(b)q(e)i(applied)e (to)h(a)f(single)h(comp)q(onen)o(t.)0 2422 y Ff(References)0 2505 y Fh([1])20 b(G.)13 b(Agha.)k Fa(A)n(ctors:)f(A)d(Mo)n(del)g(of)g (Concurr)n(ent)f(Computation)p Fh(.)i(MIT)f(Press,)g(1986.)0 2559 y([2])20 b(G.)f(A.)f(Agha.)35 b(Abstracting)20 b(in)o(teraction)h (patterns:)30 b(A)18 b(programming)j(paradigm)g(for)e(op)q(en)g (distributed)j(systems.)35 b(In)61 2605 y(E.)9 b(Na)r(jm)h(and)g(J.-B.) e(Stefani,)j(editors,)g Fa(F)m(ormal)f(Metho)n(ds)f(for)h(Op)n(en)g (Obje)n(ct-b)n(ase)n(d)d(Distribute)n(d)h(Systems)p Fh(,)g(IFIP)i(T)m (ransactions.)61 2650 y(Chapman)k(&)f(Hall,)h(1997.)965 2795 y Fi(3)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF