%! %%Title: PubTeX output 1991.01.14:1031 %%Creator: Pubps, ArborText, Inc. %%BoundingBox: (atend) %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments %! % Dvips.pro - included prolog for DviLaser-generated PostScript files. % % Copyright (c) 1986-89, ArborText, Inc. % Permission to copy is granted so long as the PostScript code % is not resold or used in a commercial product. % % $Header: pubps.pro,v 1.14 90/04/10 12:27:08 jsg Exp $ systemdict /setpacking known % use array packing mode if its available {/savepackingmode currentpacking def true setpacking} if /$DviLaser 400 dict def % Begin document /BeginDviLaserDoc { vmstatus pop pop 0 eq { $DviLaser begin InitializeState } { /DviLaserJob save def $DviLaser begin InitializeState /DviLaserFonts save def } ifelse } bind def % End document /EndDviLaserDoc { vmstatus pop pop 0 eq { end } { DviLaserFonts restore end DviLaserJob restore } ifelse } bind def $DviLaser begin /tempstr 64 string def /tempint 0 def /tempmatrix matrix def % % Debugging routines % /DebugMode false def /PrintInt { tempstr cvs print } bind def /PrintLn { (\n) print flush } bind def /PrintVMStats { print PrintLn (VM status - ) print vmstatus 3 copy PrintInt (\(total\), ) print PrintInt (\(used\), ) print pop exch sub PrintInt (\(remaining\), ) print PrintInt (\(level\)) print PrintLn } bind def /VMS /PrintVMStats load def /VMSDebug { DebugMode {PrintVMStats} {pop} ifelse } bind def (beginning of common prolog) VMSDebug % Make it easy to bind definitions. /bdef { bind def } bind def /xdef { exch def } bdef % Begin page /BP { /Magnification xdef /DviLaserPage save def (beginning of page) VMSDebug } bdef % End page /EP { DviLaserPage restore } bdef % Exit page (temporarily) to add fonts/characters. /XP { % Save current point information so it can be reset later. /Xpos where {pop Xpos} {0} ifelse /Ypos where {pop Ypos} {0} ifelse /currentpoint cvx stopped {0 0 moveto currentpoint} if /DviLaserPage where {pop DviLaserPage restore} if moveto /Ypos xdef /Xpos xdef } bdef % Resume page /RP { /DviLaserPage save def } bdef % Purge all fonts to reclaim memory space. /PF { GlobalMode LocalMode } bdef % Switch to base save/restore level, saving state information. /GlobalMode { /UserSave where {pop UserSave} if % invoke "UserSave" if available PortraitMode PaperWidth PaperHeight PxlResolution Resolution Magnification Ymax RasterScaleFactor % Save current point information so it can be reset later. /currentpoint cvx stopped {0 0 moveto currentpoint} if /DviLaserPage where {pop DviLaserPage restore} if DviLaserFonts restore RecoverState } bdef % Preserve state at the base level. /RecoverState { 10 copy /Ypos xdef /Xpos xdef /RasterScaleFactor xdef /Ymax xdef /Magnification xdef /Resolution xdef /PxlResolution xdef /PaperHeight xdef /PaperWidth xdef /PortraitMode xdef DoInitialScaling PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto } bdef % Initialize state variables to default values. /InitializeState { /Resolution 3600.0 def /PxlResolution 300.0 def /RasterScaleFactor PxlResolution Resolution div def /PortraitMode true def 11.0 Resolution mul /PaperHeight xdef 8.5 Resolution mul /PaperWidth xdef /Ymax PaperHeight def /Magnification 1000.0 def /Xpos 0.0 def /Ypos 0.0 def /InitialMatrix matrix currentmatrix def } bdef % Switch from base save/restore level, restoring state information. /LocalMode { /Ypos xdef /Xpos xdef /RasterScaleFactor xdef /Ymax xdef /Magnification xdef /Resolution xdef /PxlResolution xdef /PaperHeight xdef /PaperWidth xdef /PortraitMode xdef DoInitialScaling PortraitMode not {PaperWidth 0 SetupLandscape} if Xpos Ypos moveto /UserRestore where {pop UserRestore} if % invoke "UserRestore" if available /DviLaserFonts save def /DviLaserPage save def } bdef % Abbreviations /S /show load def /SV /save load def /RST /restore load def /Yadjust {Ymax exch sub} bdef % (x,y) position absolute, just set Xpos & Ypos, don't move. /SXY { Yadjust /Ypos xdef /Xpos xdef } bdef % (x,y) position absolute /XY { Yadjust 2 copy /Ypos xdef /Xpos xdef moveto } bdef % (x,0) position absolute /X { currentpoint exch pop 2 copy /Ypos xdef /Xpos xdef moveto } bdef % (0,y) position absolute /Y { currentpoint pop exch Yadjust 2 copy /Ypos xdef /Xpos xdef moveto } bdef % (x,y) position relative /xy { neg rmoveto currentpoint /Ypos xdef /Xpos xdef } bdef % (x,0) position relative /x { 0.0 rmoveto currentpoint /Ypos xdef /Xpos xdef } bdef % (0,y) position relative /y { 0.0 exch neg rmoveto currentpoint /Ypos xdef /Xpos xdef } bdef % Print a rule. In order to get correct pixel size and positioning, % we usually create a temporary font in which the rule is the only character. % When the rule is large, however, we fill a rectangle instead. /R { /ht xdef /wd xdef ht 1950 le wd 1950 le and {save /tfd 6 dict def tfd begin /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 wd ht] def /Encoding 256 array dup 97 /a put def /BuildChar { pop % ignore character code pop % ignore font dict, too wd 0 0 0 wd ht setcachedevice wd ht true [1 0 0 -1 0 ht] {<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>} imagemask } def end % tfd /tf tfd definefont setfont (a) show restore } {gsave 0 setgray currentpoint newpath moveto 0.0 ht rlineto wd 0.0 rlineto 0.0 ht neg rlineto wd neg 0.0 rlineto closepath fill grestore } ifelse wd 0.0 rmoveto currentpoint /Ypos xdef /Xpos xdef } bdef % % <PXL-file resolution(pix/inch)> <resolution(pix/inch)> RES % /RES { /Resolution xdef /PxlResolution xdef /RasterScaleFactor PxlResolution Resolution div def DoInitialScaling } bdef % % Do initial scaling. % /DoInitialScaling { InitialMatrix setmatrix 72.0 Resolution div dup scale } bdef % % <paper-height(pix)> <paper-width(pix)> PM % /PM { XP /PaperWidth xdef /PaperHeight xdef /Ymax PaperHeight def /PortraitMode true def DoInitialScaling RP } bdef % % <paper-height(pix)> <paper-width(pix)> LM % /LM { XP /PaperWidth xdef /PaperHeight xdef /Ymax PaperWidth def /PortraitMode false def DoInitialScaling PaperWidth 0 SetupLandscape RP } bdef % Change magnification setting /MAG { XP /Magnification xdef RP } bdef % % Switch to landscape mode % /SetupLandscape { translate 90.0 rotate } bdef % % <mode> SPB - begin "\special" mode % % This is the PostScript procedure used to transfer from the internal % environment used for the DVI translation code emitted by DVIPS to % a standard PostScript environment. % % Parameters: 0 - Local % 1 - Global % 2 - Inline % /SPB { /spc_mode xdef spc_mode 0 eq spc_mode 2 eq or {XP} {spc_mode 1 eq {GlobalMode} if} ifelse Resolution 72.0 div dup scale % Restore default scaling... Magnification 1000.0 div dup scale % Adjust for any magnification... /Xpos Xpos 72.0 Resolution div mul 1000.0 Magnification div mul def /Ypos Ypos 72.0 Resolution div mul 1000.0 Magnification div mul def } bdef % % <mode> SPE - end "\special" mode % % This is the PostScript procedure used to reenter the internal % environment used for the DVI translation code emitted by DVIPS from % the standard PostScript environment provided for processing user-supplied % PostScript code. % % Parameters: 0 - Local % 1 - Global % 2 - Inline % /SPE { /spc_mode xdef 1000.0 Magnification div dup scale % Un-adjust for any magnification... 72.0 Resolution div dup scale % Restore default internal scaling... spc_mode 0 eq spc_mode 2 eq or {RP} {spc_mode 1 eq {LocalMode} if} ifelse } bdef % % <num-copies> PP % /PP { /#copies xdef showpage /#copies 1 def } bdef % % /font-name <point-size(pix)> DMF % /DMF { /psz xdef /nam xdef nam findfont psz scalefont setfont } bdef % % /abcd (xxx) str-concat ==> /abcdxxx % /str-concatstr 64 string def /str-concat { /xxx xdef /nam xdef /namstr nam str-concatstr cvs def /newnam namstr length xxx length add string def newnam 0 namstr putinterval newnam namstr length xxx putinterval newnam cvn } bdef % % /abcdef 2 str-strip ==> /cdef % /str-strip { /num xdef /nam xdef /namstr nam tempstr cvs def /newlen namstr length num sub def namstr num newlen getinterval cvn } bdef % % <old-dict> copydict ==> new-dict on stack % /copydict { dup length 1 add dict /newdict xdef {1 index /FID ne {newdict 3 1 roll put} {pop pop} ifelse } forall newdict } bdef % % <font-type> DefineCMEncoding % /DefineCMEncoding { /EncodeType xdef /CMEncoding 256 array def /Times-Roman findfont /Encoding get aload pop CMEncoding astore pop EncodeType 11 eq {Do-CM-rm-encoding} if EncodeType 12 eq {Do-CM-it-encoding} if EncodeType 13 eq {Do-CM-tt-encoding} if } bdef % % Do special mappings for the various CM-font types. Characters that % get "covered up" are repositioned in the range (128,128+32). % /Do-standard-CM-encodings { CMEncoding dup 0 /.notdef put dup 1 /.notdef put dup 2 /.notdef put dup 3 /.notdef put dup 4 /.notdef put dup 5 /.notdef put dup 6 /.notdef put dup 7 /.notdef put dup 8 /.notdef put dup 9 /.notdef put dup 10 /.notdef put dup 11 /.notdef put dup 12 /fi put dup 13 /fl put dup 14 /.notdef put dup 15 /.notdef put dup 16 /dotlessi put dup 17 /.notdef put dup 18 /grave put dup 19 /acute put dup 20 /caron put dup 21 /breve put dup 22 /macron put dup 23 /ring put dup 24 /cedilla put dup 25 /germandbls put dup 26 /ae put dup 27 /oe put dup 28 /oslash put dup 29 /AE put dup 30 /OE put dup 31 /Oslash put dup 127 /dieresis put dup 128 /space put dup 129 /quotedbl put dup 130 /sterling put dup 131 /dollar put dup 132 /less put dup 133 /greater put dup 134 /backslash put dup 135 /asciicircum put dup 136 /underscore put dup 137 /braceleft put dup 138 /bar put dup 139 /braceright put dup 140 /asciitilde put pop } bdef /Do-CM-rm-encoding { Do-standard-CM-encodings CMEncoding dup 32 /.notdef put dup 34 /quotedblright put dup 60 /exclamdown put dup 62 /questiondown put dup 92 /quotedblleft put dup 94 /circumflex put dup 95 /dotaccent put dup 123 /endash put dup 124 /emdash put dup 125 /hungarumlaut put dup 126 /tilde put pop } bdef /Do-CM-it-encoding { Do-standard-CM-encodings CMEncoding dup 32 /.notdef put dup 34 /quotedblright put dup 36 /sterling put dup 60 /exclamdown put dup 62 /questiondown put dup 92 /quotedblleft put dup 94 /circumflex put dup 95 /dotaccent put dup 123 /endash put dup 124 /emdash put dup 125 /hungarumlaut put dup 126 /tilde put pop } bdef /Do-CM-tt-encoding { Do-standard-CM-encodings CMEncoding dup 12 /.notdef put dup 13 /quotesingle put dup 14 /exclamdown put dup 15 /questiondown put dup 94 /circumflex put dup 126 /tilde put pop } bdef % % Routines to handle packing/unpacking numbers. % % <target> <pos> <num> PackHW --> <new target> % /PackHW { /num xdef /pos xdef /target xdef num 16#0000FFFF and 1 pos sub 16 mul bitshift target or } bdef % % <target> <pos> <num> PackByte --> <new target> % /PackByte { /num xdef /pos xdef /target xdef num 16#000000FF and 3 pos sub 8 mul bitshift target or } bdef % % <pos> <num> UnpkHW --> <unpacked value> % /UnpkHW { /num xdef /pos xdef num 1 pos sub -16 mul bitshift 16#0000FFFF and dup 16#00007FFF gt {16#00010000 sub} if } bdef % % <pos> <num> UnpkByte --> <unpacked value> % /UnpkByte { /num xdef /pos xdef num 3 pos sub -8 mul bitshift 16#000000FF and dup 16#0000007F gt {16#00000100 sub} if } bdef % % <int-font-name> <ext-font-name> <pt-sz(pix)> <type> <loaded-fg> DefineCMFont % % type 10: "as-is" PostScript font % type 11: CM-mapped PostScript font - roman % type 12: CM-mapped PostScript font - text italic % type 13: CM-mapped PostScript font - typewriter type % /int-dict-name {int (-dict) str-concat} bdef /int-dict {int (-dict) str-concat cvx load} bdef /DF { true % signal that the font is already loaded DefineCMFont } bdef /DNF { false % signal that the font is not already loaded DefineCMFont } bdef /DefineCMFont { /loaded xdef /typ xdef /psz xdef /ext xdef /int xdef typ 10 ne { % font_type = 11, 12, 13 loaded not { /fnam ext 3 str-strip def fnam findfont copydict /newdict xdef typ DefineCMEncoding newdict /Encoding CMEncoding put ext newdict definefont pop } if int-dict-name ext findfont psz scalefont def currentdict int [int-dict /setfont cvx] cvx put } { % font_type = 10 /fnam ext def int-dict-name fnam findfont psz scalefont def currentdict int [int-dict /setfont cvx] cvx put } ifelse } bdef % % <int-font-name> <ext-font-name> <pt-sz(pix)> <PXL mag> <num-chars> % [llx lly urx ury] <newfont-fg> DefinePXLFont % /PXLF { true % signal that the font is already loaded DefinePXLFont } bdef /PXLNF { false % signal that the font is not already loaded DefinePXLFont } bdef /PXLBuildCharDict 17 dict def /CMEncodingArray 256 array def 0 1 255 {CMEncodingArray exch dup tempstr cvs cvn put} for /RasterConvert {RasterScaleFactor div} bdef /TransformBBox { aload pop /BB-ury xdef /BB-urx xdef /BB-lly xdef /BB-llx xdef [BB-llx RasterConvert BB-lly RasterConvert BB-urx RasterConvert BB-ury RasterConvert] } bdef /DefinePXLFont { /newfont xdef /bb xdef /num xdef /psz xdef /dsz xdef /pxlmag xdef /ext xdef /int xdef /fnam ext (-) str-concat pxlmag tempstr cvs str-concat def newfont not { int-dict-name 13 dict def int-dict begin /FontType 3 def /FontMatrix [1 dsz div 0 0 1 dsz div 0 0] def /FontBBox bb TransformBBox def /Encoding CMEncodingArray def /CharDict 1 dict def CharDict begin /Char-Info num array def end /BuildChar { PXLBuildCharDict begin /char xdef /fontdict xdef fontdict /CharDict get /Char-Info get char get aload pop /rasters xdef /PackedWord1 xdef 0 PackedWord1 UnpkHW 16#7FFF ne { /PackedWord2 xdef /wx 0 PackedWord1 UnpkHW def /rows 2 PackedWord1 UnpkByte def /cols 3 PackedWord1 UnpkByte def /llx 0 PackedWord2 UnpkByte def /lly 1 PackedWord2 UnpkByte def /urx 2 PackedWord2 UnpkByte def /ury 3 PackedWord2 UnpkByte def } { /PackedWord2 xdef /PackedWord3 xdef /PackedWord4 xdef /wx 1 PackedWord1 UnpkHW def /rows 0 PackedWord2 UnpkHW def /cols 1 PackedWord2 UnpkHW def /llx 0 PackedWord3 UnpkHW def /lly 1 PackedWord3 UnpkHW def /urx 0 PackedWord4 UnpkHW def /ury 1 PackedWord4 UnpkHW def } ifelse rows 0 lt { /rows rows neg def /runlength 1 def } { /runlength 0 def } ifelse wx 0 llx RasterConvert lly RasterConvert urx RasterConvert ury RasterConvert setcachedevice rows 0 ne { gsave cols rows true RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury tempmatrix astore {GenerateRasters} imagemask grestore } if end } def end fnam int-dict definefont pop } if int-dict-name fnam findfont psz scalefont def currentdict int [int-dict /setfont cvx] cvx put } bdef % % <int-font-name> <code> <wx> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PXLC % /PXLC { /rasters xdef /runlength xdef /cols xdef /rows xdef /ury xdef /urx xdef /lly xdef /llx xdef /wx xdef /code xdef /int xdef % See if the long or short format is required true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ TackRunLengthToRows { int-dict /CharDict get /Char-Info get code [0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte 0 0 wx PackHW 2 rows PackByte 3 cols PackByte rasters] put} { int-dict /CharDict get /Char-Info get code [0 0 urx PackHW 1 ury PackHW 0 0 llx PackHW 1 lly PackHW 0 0 rows PackHW 1 cols PackHW 0 0 16#7FFF PackHW 1 wx PackHW rasters] put} ifelse } bdef /CKSZ {abs 127 le and} bdef /TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} bdef % % <wx> <dsz> <psz> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PLOTC % /PLOTC { /rasters xdef /runlength xdef /cols xdef /rows xdef /ury xdef /urx xdef /lly xdef /llx xdef /psz xdef /dsz xdef /wx xdef % "Plot" a character's raster pattern. rows 0 ne { gsave currentpoint translate psz dsz div dup scale cols rows true RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury tempmatrix astore {GenerateRasters} imagemask grestore } if wx x } bdef % Routine to generate rasters for "imagemask". /GenerateRasters { rasters runlength 1 eq {RunLengthToRasters} if } bdef % Routine to convert from runlength encoding back to rasters. /RunLengthToRasters { % ...not done yet... } bdef % % These procedures handle bitmap processing. % % <bitmap columns> <bitmap rows> <bitmap pix/inch> <magnification> BMbeg % /BMbeg { /BMmagnification xdef /BMresolution xdef /BMrows xdef /BMcols xdef /BMcurrentrow 0 def gsave 0.0 setgray Resolution BMresolution div dup scale currentpoint translate BMmagnification 1000.0 div dup scale 0.0 BMrows moveto BMrows dup scale currentpoint translate /BMCheckpoint save def } bdef /BMend { BMCheckpoint restore grestore } bdef % % <hex raster bitmap> <rows> BMswath % /BMswath { /rows xdef /rasters xdef BMcols rows true [BMrows 0 0 BMrows neg 0 BMcurrentrow neg] {rasters} imagemask /BMcurrentrow BMcurrentrow rows add def BMcurrentrow % save this on the stack around a restore... BMCheckpoint restore /BMcurrentrow xdef /BMCheckpoint save def } bdef % % Procedures for implementing the "rotate <theta>" special: % <theta> ROTB - % - ROTE - /ROTB { XP gsave Xpos Ypos translate rotate % using <theta> from the stack Xpos neg Ypos neg translate RP } bdef /ROTE {XP grestore RP} bdef % % Procedures for implementing the "epsfile <filename> [<mag>]" special: % <llx> <lly> <mag> EPSB - % - EPSE - /EPSB { 0 SPB save 4 1 roll % push the savelevel below the parameters /showpage {} def Xpos Ypos translate 1000 div dup scale % using <mag> from the stack neg exch neg exch translate % using <llx> <lly> from the stack } bdef /EPSE {restore 0 SPE} bdef % % Procedure for implementing revision bars: % <bary1> <bary2> <barx> <barw> REVB - % The bar is a line of width barw drawn from (barx,bary1) to (barx,bary2). /REVB { /barw xdef /barx xdef /bary2 xdef /bary1 xdef gsave barw setlinewidth barx bary1 Yadjust moveto barx bary2 Yadjust lineto stroke grestore } bdef % % A small dictionary to facilitate The Publisher's implementation % of gray table cells. /grpm 40 dict def % % Procedures for implementing the "paper <source>" option: % <name> <eop> SPS - % <eop> paper-manual - % etc. The boolean <eop> is passed so that a paper source procedure % knows if it is being called at the beginning (false) or end % (true) of a page. /SPS { /eop xdef /name xdef name where {pop eop name cvx exec} if } bdef /paper-manual { {statusdict /manualfeed known {statusdict /manualfeed true put} if} if } bdef /paper-automatic { {statusdict /manualfeed known {statusdict /manualfeed false put} if} if } bdef /paper-top-tray { {} {statusdict /setpapertray known {statusdict begin 0 setpapertray end} if} ifelse } bdef /paper-bottom-tray { {} {statusdict /setpapertray known {statusdict begin 1 setpapertray end} if} ifelse } bdef /paper-both-trays { {} {statusdict /setpapertray known {statusdict begin 2 setpapertray end} if} ifelse } bdef (end of common prolog) VMSDebug end systemdict /setpacking known {savepackingmode setpacking} if % % End of included prolog section. % %%EndProlog %%BeginSetup BeginDviLaserDoc 300 300 RES %%EndSetup %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 766 0 XY %%EndPageSetup XP /F46 /CM-Times-Bold 74.720 11 DNF RP 766 759 XY F46(RF)S -6 x(A)S 38 x(\320)S 37 x(Remote)S 37 x(File)S 37 x(Access)S XP /F45 /CM-Times-Roman 74.720 11 DNF RP 688 950 XY F45(A)S 35 x(tool)S 35 x(for)S 35 x(managing)S 35 x (access)S 35 x(to)S 34 x(\014les)S 1037 Y 689 X(that)S 35 x(are)S 35 x(distributed)S 35 x(at)S 35 x(multiple)S 34 x(sites)S XP /F48 /CM-Times-Italic 58.115 12 DNF RP 1069 1187 XY F48(Oliver)S 32 x(W)S -5 x(enzel)S 70 y 1057 X(GMD)S 31 x(\261)S 31 x(Fokus)S 71 y 1015 X(Berlin)S 30 x(\261)S 31 x (Germany)S XP /F47 /CM-Times-Roman 58.115 11 DF RP 1112 1527 XY F47(V)S -6 x(ersion)S 35 x(1.0)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 165 473 437 667 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup XP /F8 /CM-Times-Bold 41.511 11 DF RP 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1977 X(The)S 26 x(Model)S 464 Y 295 X F46(1)S 62 x(Intr)S -1 x(oduction)S XP /F44 /CM-Times-Roman 45.662 11 DF RP 295 639 XY F44(This)S 13 x(software)S 12 x(tool)S 12 x(called)S XP /F49 /CM-Times-Bold 45.662 11 DF RP 762 639 XY F49(Remote)S 12 x(File)S 12 x(Access)S 13 x F44(\(RF)S -3 x(A\))S 12 x(has)S 13 x(been)S 12 x(designed)S 12 x(to)S 12 x (allow)S 12 x(access)S 13 x(to)S 12 x(a)S 12 x(set)S 12 x(of)S 12 x (\014les)S 58 y 295 X(in)S 13 x(a)S 13 x(UNIX)S XP /F74 /CM-Times-Roman 33.209 11 DF RP 492 680 XY F74(TM)S 17 y 16 x F44(\014lesystem)S 14 x(that)S 14 x (are)S 14 x(shared)S 14 x(between)S 14 x(multiple)S 13 x(sites.)S 20 x(It)S 13 x(has)S 14 x(been)S 13 x(created)S 14 x(within)S 13 x (the)S 14 x(VERDI)S 58 y 295 X(3)S 14 x(project)S 13 x(as)S 14 x(a)S 14 x(result)S 13 x(of)S 14 x(our)S 14 x(own)S 14 x(requirements)S 14 x(for)S 14 x(a)S 14 x(distributed)S 14 x(document)S 14 x(and)S 14 x(\014le)S 14 x(management)S 14 x(system.)S 58 y 295 X(Basis)S 15 x(for)S 15 x(this)S 15 x(requirements)S 15 x(is)S 16 x(the)S 15 x (VERDI)S 15 x(3)S 15 x(project)S 15 x(which)S 15 x(members)S 15 x (are)S 16 x(located)S 15 x(at)S 15 x(two)S 15 x(dif)S -1 x(ferent)S 15 x(sites.)S 58 y 295 X(Both)S 16 x(sites)S 17 x(of)S 16 x(the)S 16 x(project)S 16 x(share)S 17 x(a)S 16 x(common)S 16 x(set)S 16 x (of)S 16 x(documents)S 16 x(and)S 17 x(\014les)S 16 x(which)S 17 x (need)S 16 x(to)S 16 x(be)S 16 x(accessed)S 16 x(and)S 58 y 295 X (modi)S (\014ed)S 15 x(during)S 15 x(the)S 15 x(everyday-project-work.)S 20 x(For)S 15 x(some)S 15 x(time)S 15 x(we)S 15 x(used)S 15 x(the)S 15 x(FT)S -4 x(AM)S 15 x(software)S 15 x(to)S 15 x(exchange)S 58 y 295 X(\014les)S 19 x(between)S 18 x(the)S 18 x(two)S 18 x(sites,)S 19 x(but)S 18 x(after)S 18 x(the)S 19 x(number)S 18 x(of)S 19 x (shared)S 18 x(\014les)S 19 x(and)S 18 x(transfer)S 19 x(operations)S 18 x(grew,)S 19 x(very)S 58 y 295 X(often)S 21 x(questions)S 21 x (like)S 1145 Y 378 X(\267)S 67 x(at)S 17 x(which)S 17 x(site)S 17 x (the)S 17 x(up-to-date)S 17 x(\(master\))S 17 x(version)S 17 x(of)S 17 x(the)S 17 x(\014le)S 17 x(is)S 17 x(located)S 17 x(?)S 1228 Y 378 X(\267)S 67 x(is)S 19 x(the)S 20 x(local)S 19 x(version)S 19 x (up-to-date)S 20 x(?)S 1311 Y 378 X(\267)S 67 x(is)S 19 x(anyone)S 19 x(already)S 19 x(editing)S 19 x(this)S 20 x(\014le)S 20 x(?)S 1394 Y 378 X(\267)S 67 x(are)S 20 x(there)S 19 x(any)S 20 x(newly)S 20 x(created)S 19 x(\014les)S 20 x(?)S 1493 Y 295 X(appeared.)S 26 x (Using)S 18 x(a)S 17 x(distributed)S 17 x(\014lesystem)S 17 x(like)S 17 x(NFS)S 17 x(was)S 17 x(discussed)S 17 x(as)S 17 x(an)S 17 x (alternative)S 17 x(solution,)S 18 x(but)S 17 x(this)S 58 y 295 X (did)S 19 x(not)S 20 x(seemed)S 19 x(to)S 20 x(be)S 19 x (practicable)S 20 x(because)S 19 x(of)S 20 x(the)S 19 x(very)S 19 x (slow)S 19 x(communication)S 19 x(links)S 19 x(between)S 20 x(the)S 19 x(sites)S 58 y 295 X(\(9600Bps\).)S 20 x(Therefore,)S 14 x(we)S 13 x(tried)S 13 x(to)S 12 x(build)S 13 x(a)S 13 x(simple)S 12 x (tool)S 13 x(to)S 12 x(handle)S 13 x(theses)S 13 x(questions.)S 20 x (So)S 13 x(the)S 13 x(RF)S -3 x(A)S 12 x(tool)S 13 x(was)S 59 y 295 X(born)S 17 x(and)S 17 x(because)S 16 x(the)S 16 x(project)S 17 x(is)S 17 x(working)S 16 x(with)S 16 x(ISO)S 16 x(protocols,)S 17 x(we)S 16 x(built)S 17 x(the)S 17 x(tool)S 17 x(on)S 17 x(top)S 17 x(of)S 16 x(the)S 17 x(ISODE)S 58 y 295 X(software)S 18 x (package)S 18 x(using)S 17 x(the)S 17 x(remote)S 17 x(operation)S 17 x(compiler)S XP /F75 /CM-Times-Italic 45.662 12 DF RP 1339 1726 XY F75(r)S -2 x(osy\(1\))S F44(.)S 27 x(Currently)S 17 x (the)S 17 x(tools)S 17 x(only)S 17 x(supports)S 18 x(to)S 58 y 295 X (share)S 14 x(\014les)S 14 x(between)S 14 x(two)S 15 x(sites)S 15 x (\(because)S 14 x(this)S 15 x(was)S 15 x(our)S 15 x(primary)S 15 x (goal\),)S 15 x(but)S 15 x(it)S 15 x(should)S 14 x(be)S 14 x (possible)S 15 x(to)S 15 x(extend)S 58 y 295 X(it)S 20 x(to)S 21 x (support)S 20 x(multiple)S 20 x(sites.)S 2164 Y 295 X F46(2)S 62 x (The)S 35 x(Model)S XP /F76 /CM-Times-Bold 58.115 11 DF RP 295 2350 XY F76(2.1)S 50 x(The)S 26 x(Data)S 27 x(Model)S 2467 Y 295 X F44(The)S 19 x(Data)S 19 x(Model)S 19 x(is)S 19 x(based)S 19 x (on)S 19 x(the)S 19 x(hierarchical)S 19 x(structure)S 19 x(of)S 20 x (the)S 20 x(UNIX)S -17 y F74(TM)S 17 y 22 x F44(\014lesystem.)S 32 x (The)S 20 x(RF)S -3 x(A)S 19 x(tools)S 58 y 295 X(allows)S 18 x(to)S 18 x(share)S 18 x(a)S 17 x(subtree)S 17 x(of)S 18 x(the)S 17 x (hierarchical)S 17 x(\014lesystem)S 17 x(structure)S 18 x(between)S 17 x(\(currently\))S 18 x(two)S 18 x(sites.)S 27 x(The)S 58 y 295 X (structure)S 18 x(of)S 17 x(the)S 18 x(shared)S 18 x(subtree)S 17 x (must)S 18 x(be)S 18 x(identical)S 18 x(at)S 17 x(both)S 17 x (sites.)S 28 x(The)S 17 x(local)S 18 x(root)S 18 x(of)S 18 x(the)S 17 x(shared)S 18 x(subtree)S 58 y 295 X(may)S 16 x(be)S 16 x(dif)S -1 x(ferent)S 17 x(at)S 16 x(both)S 16 x(sites.)S 24 x(Subject)S 16 x(of)S 17 x(the)S 16 x(operation)S 16 x(of)S 17 x(the)S 16 x(RF)S -3 x(A)S 16 x(tool)S 17 x(are)S 17 x(the)S 16 x(\014les)S 17 x(and)S 16 x(directories)S 58 y 295 X(within)S 21 x(the)S 20 x(shared)S 20 x (subtree.)S 2886 Y 295 X F76(2.1.1)S 49 x(File)S 26 x(V)S -5 x (ersion-T)S -1 x(ime)S 3003 Y 295 X F44(A)S 21 x(\014le)S 21 x (within)S 20 x(a)S 21 x(shared)S 21 x(subtree)S 20 x(exists)S 21 x (at)S 21 x(the)S 21 x(dif)S -1 x(ferent)S 21 x(sites)S 21 x(as)S 21 x(dif)S -1 x(ferent)S 21 x(\(local\))S 20 x(versions)S 20 x(of)S 21 x(the)S 20 x(\014le.)S 58 y 295 X(The)S 17 x(version-time)S 17 x (\(state)S 17 x(of)S 17 x(modi\014cation\))S 17 x(of)S 17 x(a)S 17 x (\014le)S 17 x(version)S 17 x(at)S 17 x(a)S 17 x(site)S 17 x(is)S 17 x(determined)S 17 x(by)S 17 x(the)S 17 x F75(modi\014cation)S XP /F6 /CM-Times-Roman 41.511 11 DF RP 1230 3276 XY F6(1)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1977 X(The)S 26 x(Model)S 459 Y 295 X F75(time)S 16 x F44(provided)S 16 x(by)S 17 x(the)S 17 x(UNIX)S -17 y F74(TM)S 17 y 18 x F44(system)S 17 x(call)S 16 x F75 (stat\(2\))S F44(.)S 24 x(T)S -3 x(o)S 16 x(determine)S 16 x(which)S 17 x(version)S 16 x(of)S 16 x(\014le)S 17 x(is)S 17 x(up-to-date,)S 58 y 295 X(the)S 17 x(youngest)S 17 x(version-time)S 17 x(is)S 16 x (chosen.)S 25 x(This)S 17 x(requires)S 16 x(that)S 17 x(the)S 16 x (sites)S 16 x(participating)S 17 x(in)S 17 x(the)S 17 x(\014le)S 17 x(sharing)S 17 x(use)S 58 y 295 X(synchronized)S 11 x(clocks.)S 19 x(This)S 12 x(is)S 12 x(necessary)S 12 x(because)S 12 x(the)S 12 x(modi\014cation)S 11 x(time)S 12 x(is)S 11 x(set)S 12 x (automatically)S 12 x(by)S 11 x(the)S 12 x(UNIX)S 58 y 295 X(system)S 18 x(using)S 18 x(the)S 17 x(local)S 17 x(operating)S 17 x(system)S 17 x(clock.)S 27 x(The)S 17 x(RF)S -3 x(A)S 17 x(tool)S 17 x (provides)S 17 x(an)S 18 x(operation)S 17 x(to)S 17 x(synchronize)S 59 y 295 X(the)S 18 x(clocks)S 18 x(where)S 18 x(one)S 19 x(of)S 18 x(the)S 18 x(sites)S 19 x(is)S 18 x(declared)S 18 x(to)S 18 x(be)S 19 x(the)S 19 x F75(time-master)S 18 x F44(which)S 18 x(provides)S 19 x(the)S 18 x(time)S 18 x(to)S 18 x(the)S 58 y 295 X F75 (time-slave)S F44(.)S 916 Y 295 X F76(2.1.2)S 49 x(RF)S -4 x(A)S 26 x(File)S 26 x(Status)S 1025 Y 295 X F44(Each)S 17 x(local)S 18 x (version)S 18 x(of)S 18 x(a)S 18 x(\014le)S 18 x(that)S 18 x(exists)S 17 x(within)S 18 x(the)S 18 x(shared)S 18 x(subtree)S 18 x(at)S 18 x (a)S 18 x(site)S 17 x(has)S 18 x(a)S 18 x(RF)S -3 x(A-speci\014c)S 18 x(status)S 58 y 295 X(which)S 21 x(is)S 21 x(one)S 22 x(of:)S XP /F1 /CM-Times-Italic 49.813 12 DF RP 295 1168 XY F1(MASTER)S -2 y 709 X F44(the)S 13 x(\014le)S 12 x(is)S 12 x(the)S 12 x(up-to-date)S 12 x(version)S 12 x(of)S 13 x(the)S 13 x(\014le)S 12 x(and)S 13 x(modi\014cations)S 13 x(to)S 12 x(the)S 13 x(local)S 13 x(version)S 58 y 709 X(of)S 19 x(the)S 19 x(\014le)S 19 x(are)S 19 x(allowed.)S 1308 Y 295 X F1(SLA)S -2 x(VE)S -2 y 709 X F44(the)S 18 x(\014le)S 18 x(is)S 18 x(the)S 18 x(read-only)S 18 x(version)S 18 x(of)S 18 x(the)S 18 x(\014le)S 18 x(and)S 18 x (may)S 18 x(be)S 18 x(up-to-date)S 18 x(but)S 18 x(it)S 18 x(need)S 58 y 709 X(not.)S 20 x(For)S 14 x(each)S 13 x(local)S 13 x(\014le)S 13 x(with)S 13 x(SLA)S -6 x(VE)S 13 x(status)S 13 x(there)S 13 x (must)S 13 x(be)S 13 x(a)S 13 x(MASTER)S 14 x(version)S 13 x(at)S 58 y 709 X(the)S 13 x(remote)S 13 x(site.)S 19 x(File)S 13 x (version)S 13 x(with)S 13 x(SLA)S -6 x(VE)S 13 x(status)S 13 x(will)S 12 x(have)S 12 x(\014le)S 12 x(write)S 13 x(permissions)S 59 y 709 X (cleared.)S 1565 Y 295 X F1(UNREGISTERED)S -2 y 51 x F44(the)S 16 x (\014le)S 15 x(not)S 15 x(shared)S 15 x(and)S 16 x(has)S 16 x(only)S 15 x(local)S 15 x(signi\014cance.)S 20 x(It)S 15 x(may)S 15 x(be)S 15 x(modi\014ed)S 15 x(locally.)S 1693 Y 295 X(This)S 14 x(\014le)S 14 x(status)S 13 x(allows)S 13 x(to)S 13 x(determine)S 13 x(which)S 13 x(site)S 13 x(has)S 13 x(the)S 14 x(up-to-date)S 14 x(version)S 14 x(of)S 13 x(a)S 13 x(\014le)S 14 x(and)S 13 x(is)S 13 x(allowed)S 13 x(to)S 13 x(do)S 58 y 295 X(modi\014cations)S 16 x(to)S 16 x(the)S 16 x(\014le.)S 22 x(The)S 16 x(site)S 16 x(holding)S 15 x(a)S 16 x (SLA)S -6 x(VE)S 16 x(version)S 16 x(of)S 16 x(the)S 15 x(\014le)S 16 x(has)S 15 x(to)S 16 x(request)S 16 x(the)S 16 x(mastership)S 58 y 295 X(before)S 18 x(it)S 18 x(is)S 18 x(allowed)S 18 x(to)S 18 x(do)S 18 x(any)S 17 x(modi\014cations.)S 29 x(Further,)S 19 x (it)S 18 x(has)S 18 x(to)S 18 x(be)S 18 x(assured)S 18 x(that)S 17 x (the)S 18 x(local)S 18 x(version)S 18 x(of)S 58 y 295 X(the)S 16 x (\014le)S 15 x(at)S 16 x(the)S 15 x(new)S 16 x(MASTER)S 15 x(site)S 15 x(is)S 15 x(up-to-date.)S 21 x(Otherwise)S 15 x(the)S 15 x (\014le)S 15 x(has)S 16 x(to)S 16 x(be)S 15 x(transferred)S 15 x (\014rst.)S 21 x(A)S 15 x(local)S 58 y 295 X(version)S 15 x(of)S 14 x(a)S 15 x(\014le)S 15 x(may)S 15 x(change)S 15 x(its)S 15 x (status)S 14 x(during)S 15 x(its)S 15 x(lifetime)S 14 x(\(e.g.)S 20 x(from)S 14 x(UNREGISTERED)S 15 x(to)S 15 x(MASTER\))S 58 y 295 X (as)S 19 x(a)S 19 x(result)S 19 x(of)S 19 x(several)S 19 x(RF)S -3 x (A)S 18 x(operations)S 19 x(described)S 19 x(later.)S 2150 Y 295 X F76(2.1.3)S 49 x(File)S 26 x(Locking)S 2259 Y 295 X F44(T)S -3 x(o)S 21 x(avoid)S 22 x(that)S 21 x(a)S 21 x(\014le)S 21 x(is)S 21 x(modi)S (\014ed)S 21 x(by)S 21 x(multiple)S 22 x(users)S 22 x(at)S 21 x(the)S 21 x(MASTER)S 21 x(site)S 21 x(or)S 21 x(that)S 22 x(the)S 22 x (mastership)S 22 x(is)S 58 y 295 X(transferred)S 17 x(to)S 17 x(the)S 17 x(remote)S 16 x(site)S 16 x(while)S 17 x(the)S 16 x(local)S 17 x (version)S 16 x(is)S 16 x(under)S 17 x(modify-access)S 16 x(by)S 16 x(a)S 17 x(local)S 16 x(user,)S 17 x(a)S 16 x(local)S 58 y 295 X (version)S 16 x(of)S 17 x(a)S 16 x(\014le)S 16 x(can)S 16 x(be)S 17 x(\(soft\)-locked.)S 24 x(Locking)S 17 x(of)S 16 x(\014les)S 16 x (is)S 17 x(only)S 17 x(applicable)S 17 x(to)S 17 x(\014le)S 17 x (versions)S 16 x(with)S 16 x(status)S 58 y 295 X(MASTER)S 21 x(or)S 20 x(UNREGISTERED.)S 72 y 295 X(Setting)S 15 x(the)S 16 x(lock)S 15 x(\015ag)S 15 x(of)S 16 x(a)S 16 x(directory)S 16 x(has)S 15 x (the)S 16 x(ef)S -1 x(fect,)S 16 x(that)S 15 x(the)S 16 x F75 (.rfaexec)S 15 x F44(\014le)S 15 x(is)S 16 x(not)S 16 x(executed)S 16 x(during)S 16 x(a)S 16 x(RF)S -3 x(A)S 58 y 295 X F75(sync)S 16 x F44(or)S 15 x F75(rsync)S 15 x F44(command.)S 20 x(This)S 15 x(can)S 15 x(be)S 15 x(used)S 15 x(to)S 15 x(enable)S 15 x(the)S 15 x (execution)S 15 x(of)S 15 x(the)S 15 x F75(.rfaexec)S 16 x F44 (\014le)S 15 x(for)S 16 x(a)S 15 x(period)S 15 x(of)S 58 y 295 X (time)S 14 x(\(e.g.)S 19 x(while)S 13 x(doing)S 13 x(incomplete)S 13 x(modi\014cations)S 13 x(to)S 13 x(the)S 13 x(source-code)S 13 x (when)S 13 x F75(.rfaexec)S 13 x F44(contains)S 13 x(commands)S 58 y 295 X(for)S 21 x(re-compilation\).)S 2846 Y 295 X F76(2.1.4)S 49 x (T)S -4 x(ransferlevel)S 2954 Y 295 X F44(One)S 14 x(mode)S 14 x(of)S 13 x(operation)S 13 x(of)S 14 x(the)S 13 x(RF)S -3 x(A)S 13 x(tool)S 14 x(is)S 14 x(to)S 14 x(synchronize)S 13 x(sets)S 13 x(of)S 14 x (local)S 14 x(version)S 14 x(of)S 14 x(\014les)S 13 x(with)S 14 x (the)S 13 x(remote)S 58 y 295 X(site.)S 21 x(T)S -3 x(o)S 15 x (determine)S 15 x(if)S 15 x(a)S 15 x(\014le)S 16 x(that)S 16 x(is)S 16 x(mastered)S 16 x(remote)S 15 x(should)S 15 x(be)S 16 x (transferred)S 16 x(during)S 16 x(this)S 15 x(synchronization,)S 58 y 295 X(a)S 19 x(transferlevel)S 19 x(can)S 20 x(be)S 19 x (associated)S 19 x(with)S 19 x(each)S 19 x(\014le:)S 3276 Y 22 x F6 (2)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 26 x(Client)S 459 Y 295 X F1(REQUEST)S -2 y 709 X F44(The)S 24 x (\014le)S 24 x(is)S 24 x(not)S 24 x(transferred)S 24 x (automatically)S 24 x(during)S 24 x(synchronization.)S 46 x(If)S 24 x(a)S 24 x(new)S 58 y 709 X(MASTER)S 17 x(\014le)S 17 x(is)S 17 x (detected)S 18 x(at)S 17 x(the)S 17 x(remote)S 17 x(site,)S 18 x (only)S 18 x(a)S 18 x(local)S 18 x(dummy)S 18 x(\(empty)S 17 x (\014le\))S 58 y 709 X(is)S 18 x(created)S 17 x(to)S 17 x(indicate)S 18 x(the)S 18 x(existence)S 18 x(of)S 17 x(the)S 18 x(\014le.)S 693 Y 295 X F1(AUT)S -1 x(OMA)S -2 x(TIC)S -2 y 709 X F44(The)S 15 x (\014le)S 16 x(is)S 15 x(transferred)S 15 x(automatically)S 15 x (during)S 15 x(synchronization)S 15 x(if)S 16 x(the)S 16 x(local)S 16 x(version)S 58 y 709 X(is)S 19 x(not)S 18 x(up-to-date.)S 31 x (If)S 18 x(a)S 18 x(new)S 19 x(MASTER)S 18 x(\014le)S 18 x(is)S 18 x (detected)S 19 x(at)S 18 x(the)S 18 x(remote)S 19 x(site,)S 20 x(it)S 19 x(is)S 58 y 709 X(transferred.)S 1032 Y 295 X F76(2.2)S 50 x(The)S 25 x(Functional)S 26 x(Model)S 1163 Y 295 X F44(The)S 17 x(RF)S -3 x (A)S 16 x(tools)S 16 x(is)S 16 x(built)S 16 x(using)S 16 x(the)S 16 x F75(Client-Server)S 17 x F44(model)S 16 x(of)S 16 x(the)S 17 x (ISODE)S 16 x(remote)S 16 x(operations)S 16 x(environment.)S 58 y 295 X(There)S 15 x(is)S 16 x(a)S 15 x(RF)S -3 x(A)S 15 x(server)S 16 x(\(called)S 15 x F75(r)S -2 x(os.rfa\))S 15 x F44(at)S 15 x (each)S 15 x(site)S 16 x(which)S 15 x(is)S 15 x(started)S 15 x (dynamically)S 15 x(by)S 15 x(the)S 15 x(ISODE)S 16 x F75(tsapd)S F44(.)S 59 y 295 X(Most)S 20 x(of)S 20 x(the)S 19 x(RF)S -3 x(A)S 20 x(commands)S 20 x(are)S 20 x(interpreted)S 20 x(by)S 20 x(the)S 20 x(RF)S -3 x(A)S 19 x(client)S 20 x(\(called)S 20 x F75(rfa)S F44 (\))S 20 x(which)S 19 x(issues)S 20 x(a)S 20 x(remote)S 58 y 295 X (operation)S 21 x(to)S 21 x(the)S 22 x(remote)S 21 x(RF)S -3 x(A)S 21 x(server.)S 40 x(The)S 21 x(RF)S -3 x(A)S 21 x(client)S 21 x (does)S 22 x(not)S 22 x(perform)S 21 x(a)S 22 x(1\261to-1)S 22 x (mapping)S 21 x(of)S 22 x(its)S 58 y 295 X(commands)S 14 x(onto)S 14 x(the)S 14 x(remote)S 13 x(operations.)S 20 x(It)S 13 x(uses)S 14 x(none,)S 14 x(one)S 13 x(or)S 14 x(more)S 13 x(remote)S 14 x (operations)S 14 x(to)S 14 x(execute)S 14 x(a)S 14 x(RF)S -3 x(A)S 58 y 295 X(command.)S 31 x(The)S 19 x(association)S 18 x (establishment)S 18 x(is)S 19 x(done)S 19 x(when)S 19 x(the)S 18 x (\014rst)S 18 x(remote)S 19 x(operation)S 19 x(is)S 18 x(invoked.)S 31 x(The)S 58 y 295 X(RF)S -3 x(A)S 17 x(client)S 17 x(can)S 17 x (operate)S 17 x(in)S 17 x(an)S 18 x(interactive)S 17 x(mode)S 17 x (or)S 18 x(a)S 18 x(command)S 18 x(mode.)S 1592 Y 295 X(One)S 18 x (of)S 18 x(the)S 17 x(basic)S 18 x(principles)S 17 x(of)S 18 x(RF)S -3 x(A)S 17 x(is)S 17 x(that)S 17 x(modi\014cations)S 18 x(to)S 18 x (any)S 18 x(\014les)S 17 x(are)S 18 x(only)S 18 x(performed)S 17 x (locally)S 17 x(by)S 58 y 295 X(the)S 17 x(RF)S -3 x(A)S 16 x (client.)S 24 x(The)S 17 x(remote)S 17 x(RF)S -3 x(A)S 16 x(server)S 17 x(never)S 17 x(modi\014es)S 16 x(any)S 17 x(\014le,)S 17 x(so)S 16 x(no)S 16 x(remote)S 16 x(\014le)S 16 x(modi\014cations)S 16 x (are)S 58 y 295 X(possible.)S 20 x(The)S 14 x(ensure)S 14 x(a)S 14 x (certain)S 14 x(autonomy)S 14 x(of)S 14 x(the)S 15 x(two)S 14 x (sites)S 14 x(concerning)S 14 x(modi\014cations)S 15 x(of)S 14 x (their)S 15 x(local)S 15 x(\014les.)S 2067 Y 295 X F46(3)S 62 x(The)S 34 x(RF)S -6 x(A)S 34 x(Client)S 2279 Y 295 X F44(The)S 16 x(RF)S -3 x(A)S 15 x(client)S 16 x(\()S F75(rfa)S F44(\))S 15 x(provides)S 15 x(an)S 16 x(interactive)S 15 x(mode)S 15 x(and)S 16 x(a)S 16 x (command)S 16 x(mode.)S 21 x(The)S 16 x(rfa)S 16 x(command)S 16 x (has)S 15 x(the)S 59 y 295 X(following)S 21 x(syntax:)S XP /F78 /CM-Courier 41.511 13 DNF RP 413 2431 XY F78(rfa)S 25 x([)S 25 x(-u)S 25 x(username)S 25 x(-p)S 24 x(password)S 25 x(])S 25 x([)S 25 x(-h)S 25 x(hostname])S 25 x([)S 25 x(-q)S 25 x(])S 49 y 538 X([)S 25 x(-c)S 24 x(rfa-command)S 25 x (])S 2582 Y 295 X F44(The)S 16 x(name)S 16 x(of)S 16 x(the)S 16 x (host)S 16 x(\(as)S 16 x(de\014ned)S 16 x(in)S 16 x(the)S 16 x F75 (isoentities)S 16 x F44(database\))S 16 x(where)S 16 x(the)S 16 x (remote)S 16 x(site)S 16 x(is)S 16 x(located)S 16 x(can)S 16 x(be)S 58 y 295 X(speci\014ed)S 12 x(using)S 13 x(the)S 12 x F75(-h)S 13 x F44(option.)S 19 x(Because)S 12 x(the)S 13 x(RF)S -3 x(A)S 13 x (client)S 13 x(binds)S 12 x(to)S 12 x(the)S 13 x(remote)S 12 x(RF)S -3 x(A)S 12 x(server)S 12 x(with)S 12 x(a)S 13 x(username)S 58 y 295 X(that)S 12 x(must)S 13 x(be)S 13 x(valid)S 12 x(at)S 13 x(the)S 12 x(remote)S 13 x(site,)S 13 x(the)S 12 x F75(-u)S 13 x F44(and)S 12 x F75(-p)S 13 x F44(options)S 13 x(can)S 13 x(be)S 13 x(used)S 13 x(to)S 12 x(specify)S 13 x(the)S 12 x(username)S 13 x(and)S 12 x (the)S 58 y 295 X(password)S 15 x(for)S 15 x(the)S 15 x(remote)S 15 x(site.)S 20 x(The)S 15 x F75(-q)S 15 x F44(option)S 15 x (directs)S 14 x F75(rfa)S 15 x F44(to)S 15 x(run)S 15 x(in)S 15 x (quit-mode,)S 15 x(where)S 15 x(only)S 15 x(severe)S 15 x(errors)S 58 y 295 X(are)S 16 x(reported)S 16 x(and)S 15 x(no)S 16 x(user)S 16 x(interaction)S 16 x(is)S 16 x(performed.)S 21 x(Using)S 15 x (the)S 16 x F75(-c)S 16 x F44(option,)S 16 x(a)S 16 x(command)S 16 x (can)S 16 x(be)S 16 x(passed)S 16 x(to)S 58 y 295 X(rfa)S 18 x(in)S 18 x(command)S 17 x(mode.)S 28 x(This)S 18 x(can)S 18 x(be)S 17 x (any)S 18 x(command)S 17 x(described)S 18 x(below.)S 2952 Y 295 X (If)S 15 x(the)S 16 x(rfa)S 15 x(is)S 16 x(called)S 15 x(without)S 16 x(the)S 16 x F75(-c)S 15 x F44(option,)S 16 x(is)S 15 x(runs)S 16 x(in)S 16 x(interactive)S 16 x(mode.)S 22 x(The)S 16 x F75(rfa)S 16 x F44(provides)S 16 x(the)S 15 x(following)S 58 y 295 X (commands.)S 26 x(A)S 17 x(command)S 17 x(can)S 17 x(be)S 17 x (abbreviated)S 17 x(with)S 17 x(its)S 17 x(unambiguous)S 18 x(pre)S (\014x.)S 3276 Y 1230 X F6(3)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1875 X(The)S 25 x(RF)S -3 x(A)S 25 x(Client)S 459 Y 295 X F76(3.1)S 50 x(pwd)S 575 Y 295 X F44 (During)S 12 x(interactive)S 13 x(mode,)S 13 x F75(rfa)S 13 x F44 (has)S 13 x(a)S 12 x(current)S 13 x(directory.)S 19 x(This)S 13 x (directory)S 13 x(is)S 13 x(relative)S 13 x(to)S 13 x(the)S 12 x (root)S 13 x(of)S 12 x(the)S 13 x(shared)S 58 y 295 X(subtree.)S 23 x(The)S 17 x F75(pwd)S 16 x F44(command)S 16 x(shows)S 17 x(the)S 17 x(name)S 16 x(of)S 17 x(the)S 17 x(current)S 17 x(working)S 16 x (directory)S 16 x(relative)S 17 x(to)S 17 x(the)S 16 x(root)S 16 x (of)S 58 y 295 X(the)S 18 x(shared)S 18 x(subtree.)S 29 x(Initially)S 19 x(this)S 19 x(is)S 18 x(the)S 18 x(current)S 19 x(working)S 18 x (directory)S 18 x(of)S 18 x(the)S 18 x(UNIX)S 18 x F75(sh\(1\))S 18 x F44(where)S 18 x F75(rfa)S 18 x F44(has)S 58 y 295 X(been)S 20 x(called)S 19 x(if)S 19 x(it)S 19 x(is)S 19 x(within)S 19 x(the)S 19 x(shared)S 20 x(subtree.)S 934 Y 295 X F76(3.2)S 50 x(cd)S 1050 Y 295 X F44(The)S 18 x F75(cd)S 18 x F44(command)S 17 x(changes)S 18 x (the)S 17 x(current)S 17 x(directory)S 18 x(of)S 17 x F75(rfa)S 17 x F44(in)S 17 x(interactive)S 18 x(mode)S 18 x(to)S 18 x(the)S 17 x (directory)S 18 x(given)S 18 x(as)S 58 y 295 X(the)S 15 x(\014rst)S 14 x(ar)S -1 x(gument.)S 20 x(No)S 15 x(check)S 14 x(is)S 14 x(made)S 15 x(if)S 14 x(this)S 15 x(directory)S 15 x(exists.)S 20 x(It)S 15 x (is)S 15 x(not)S 15 x(possible)S 14 x(to)S 14 x(change)S 14 x(the)S 15 x(working)S 58 y 295 X(directory)S 19 x(above)S 20 x(the)S 20 x (root)S 19 x(of)S 20 x(the)S 19 x(shared)S 19 x(subtree.)S 1351 Y 295 X F76(3.3)S 50 x(list)S 1466 Y 295 X F44(The)S 12 x F75(list)S 12 x F44(command)S 11 x(provides)S 11 x(a)S 11 x(listing)S 11 x(of)S 12 x(the)S 12 x(\014les)S 11 x(within)S 11 x(the)S 11 x(directories)S 11 x(given)S 12 x(as)S 11 x(the)S 11 x(command)S 11 x(ar)S -1 x (guments.)S 58 y 295 X(If)S 17 x(no)S 17 x(ar)S -1 x(gument)S 18 x (is)S 17 x(given,)S 18 x(the)S 18 x(current)S 18 x(working)S 17 x (directory)S 18 x(is)S 18 x(listed.)S 27 x(The)S 18 x(output)S 18 x (of)S 17 x(the)S 18 x F75(list)S 18 x F44(command)S 18 x(is)S 58 y 295 X(similar)S 19 x(to)S 19 x(the)S 18 x(output)S 18 x(of)S 19 x (the)S 18 x(UNIX)S 19 x F75(ls)S 17 x(-lg)S 18 x F44(command,)S 19 x (e.g.)S 1664 Y 413 X F78(-rw-rw-r--)S 25 x(M-A)S 25 x(ow)S 1011 X (verdi)S 1360 X(754)S 24 x(Jul)S 25 x(12)S 25 x(13:59)S 50 x (.sunview)S 50 y 413 X(drwxr-xr-x)S 25 x(---)S 25 x(ow)S 1011 X (verdi)S 1360 X(512)S 24 x(Jul)S 25 x(12)S 25 x(14:01)S 50 x(bin)S 1804 Y 295 X F44(The)S 15 x(three)S 15 x(character)S 15 x(\014eld)S 16 x(after)S 15 x(the)S 15 x(\014le)S 15 x(permissions)S 15 x(is)S 16 x(used)S 15 x(to)S 15 x(indicated)S 16 x(the)S 16 x(dif)S -1 x (ferent)S 15 x(rfa-speci\014c)S 16 x(states)S 59 y 295 X(of)S 17 x (the)S 17 x(\014le.)S 25 x(The)S 17 x(\014rst)S 17 x(character)S 17 x(indicates)S 17 x(the)S 17 x(status)S 17 x(of)S 17 x(the)S 17 x (\014le,)S 18 x(with)S 17 x F78(M)S 17 x F44(for)S 17 x(master)S 17 x(version,)S 17 x F78(S)S 17 x F44(for)S 17 x(slave)S 58 y 295 X (V)S -5 x(ersion)S 13 x(and)S 13 x F78(-)S 13 x F44(for)S 13 x (unregistered)S 13 x(version.)S 20 x(The)S 12 x(second)S 13 x (character)S 13 x(is)S 13 x(the)S 13 x(lock)S 13 x(indicator)S 13 x (with)S 13 x(an)S 13 x F78(L)S 12 x F44(indicating)S 58 y 295 X (that)S 14 x(the)S 14 x(\014le)S 13 x(is)S 14 x(currently)S 14 x (locked)S 14 x(and)S 13 x(an)S 13 x F78(-)S 14 x F44(for)S 14 x (unlocked.)S 20 x(The)S 13 x(third)S 14 x(character)S 14 x (indicates)S 14 x(the)S 13 x(transfer)S 14 x(mode)S 58 y 295 X(of)S 18 x(the)S 17 x(\014les)S 17 x(with)S 17 x F78(A)S 17 x F44(for)S 17 x(automatic)S 17 x(transfer)S 17 x(and)S 18 x F78(-)S 17 x F44 (for)S 18 x(transfer)S 17 x(on)S 18 x(request.)S 2222 Y 295 X F76 (3.4)S 50 x(rlist)S 2337 Y 295 X F44(The)S 18 x F75(rlist)S 17 x F44 (command)S 17 x(is)S 18 x(similar)S 17 x(to)S 18 x(the)S 18 x F75 (list)S 18 x F44(command)S 18 x(with)S 18 x(the)S 17 x(dif)S -1 x (ference)S 17 x(that)S 18 x(the)S 17 x(\014les)S 18 x(in)S 18 x(the)S 18 x(directory)S 59 y 295 X(at)S 21 x(the)S 20 x(remote)S 21 x(site)S 21 x(are)S 20 x(listed.)S 2580 Y 295 X F76(3.5)S 50 x(lock)S 2696 Y 295 X F44(The)S 14 x F75(lock)S 14 x F44(command)S 14 x(is)S 14 x (used)S 13 x(to)S 13 x(get)S 14 x(a)S 14 x(locked)S 13 x(local)S 14 x(version)S 14 x(of)S 14 x(the)S 13 x(\014le\(s\))S 14 x(that)S 14 x(are)S 13 x(provided)S 13 x(as)S 14 x(ar)S -1 x(gument\(s\))S 58 y 295 X(to)S 19 x(the)S 19 x(command.)S 32 x(Only)S 19 x(regular)S 19 x(\014les)S 19 x(within)S 19 x(the)S 19 x(shared)S 19 x(subtree)S 19 x(are)S 19 x(valid.)S 32 x(It)S 19 x(is)S 19 x(not)S 19 x (possible)S 19 x(to)S 19 x(lock)S 58 y 295 X(directories,)S 16 x (links,)S 16 x(etc.)S 21 x(.)S 21 x(If)S 15 x(the)S 15 x(name)S 15 x (of)S 16 x(the)S 15 x(\014le)S 16 x(to)S 16 x(be)S 15 x(locked)S 15 x(is)S 15 x(a)S 16 x(symbolic)S 16 x(link,)S 15 x(the)S 16 x (\014le)S 15 x(referenced)S 15 x(by)S 58 y 295 X(the)S 18 x(link)S 19 x(is)S 18 x(locked)S 18 x(if)S 19 x(it)S 18 x(is)S 18 x(located)S 18 x(within)S 18 x(the)S 18 x(shared)S 19 x(subtree.)S 75 y 295 X (The)S 18 x F75(lock)S 18 x F44(command)S 18 x(should)S 18 x(be)S 18 x(used)S 18 x(whenever)S 18 x(a)S 18 x(\014le)S 17 x(within)S 18 x(the)S 18 x(shared)S 18 x(subtree)S 18 x(is)S 18 x(modi\014ed)S 18 x(to)S 18 x(ensure)S 58 y 295 X(that)S 18 x(the)S 19 x(local)S 18 x(version)S 18 x(of)S 19 x(the)S 19 x(\014le)S 19 x(is)S 19 x (a\))S 19 x(the)S 18 x(master)S 19 x(version)S 19 x(and)S 18 x(b\))S 19 x(not)S 19 x(currently)S 19 x(under)S 18 x(modify-access)S 58 y 295 X(by)S 21 x(another)S 21 x(local)S 21 x(user.)S 3276 Y 1230 X F6(4)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 26 x(Client)S 459 Y 295 X F44(If)S 15 x(the)S 15 x(local)S 15 x (version)S 15 x(of)S 15 x(the)S 16 x(\014les)S 15 x(has)S 15 x(a)S 16 x(SLA)S -6 x(VE)S 15 x(status,)S 15 x(the)S 15 x(lock)S 15 x (command)S 16 x(will)S 15 x(try)S 15 x(to)S 15 x(get)S 15 x(the)S 15 x(mastership)S 58 y 295 X(for)S 17 x(the)S 18 x(\014le.)S 28 x (Therefore,)S 18 x(it)S 18 x(\014rst)S 17 x(veri\014es)S 18 x(that)S 18 x(the)S 17 x(local)S 18 x(version)S 18 x(is)S 17 x(up-to-date,)S 19 x(otherwise)S 18 x(it)S 18 x(transfers)S 18 x(the)S 58 y 295 X (up-to-date)S 15 x(version)S 15 x(from)S 16 x(the)S 15 x(current)S 16 x(master,)S 16 x(similar)S 15 x(to)S 15 x(the)S 16 x F75 (get\014le)S 16 x F44(command.)S 22 x(After)S 15 x(an)S 15 x (up-to-date)S 15 x(local)S 58 y 295 X(version)S 11 x(of)S 11 x(the)S 11 x(requested)S 11 x(\014le)S 11 x(exists,)S 12 x(a)S 11 x F75 (RequestMaster)S 11 x F44(operation)S 11 x(is)S 11 x(issued)S 11 x (to)S 11 x(the)S 11 x(remote)S 11 x(site)S 11 x(to)S 11 x(transfer)S 11 x(the)S 59 y 295 X(mastership.)S 19 x(If)S 13 x(the)S 13 x (\014le)S 14 x(is)S 13 x(not)S 13 x(locked)S 13 x(at)S 13 x(the)S 13 x(remote)S 13 x(site,)S 14 x(the)S 13 x(mastership)S 13 x(is)S 14 x(granted)S 13 x(to)S 14 x(the)S 14 x(local)S 14 x(site)S 13 x (which)S 58 y 295 X(then)S 15 x(is)S 15 x(the)S 15 x(new)S 15 x (master.)S 20 x(The)S 15 x(local)S 16 x(lock)S 15 x(is)S 15 x(set)S 15 x(the)S 15 x(by)S 15 x(setting)S 15 x(the)S 16 x F78(L)S F44 (\(ocked\))S 15 x(\015ag)S 15 x(in)S 15 x(the)S 15 x(local)S 15 x (\014les)S 15 x(state.)S 831 Y 295 X(If)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x(of)S 16 x(the)S 16 x(requested)S 16 x(\014le)S 16 x(already)S 16 x(is)S 16 x(the)S 16 x(MASTER)S 16 x(version)S 16 x(or)S 16 x(is)S 16 x(an)S 16 x(UNREGISTERED)S 58 y 295 X (\014le,)S 22 x(it)S 20 x(is)S 20 x(checked)S 21 x(if)S 20 x(the)S 21 x(\014le)S 21 x(is)S 21 x(already)S 21 x(locked)S 21 x(by)S 21 x (another)S 21 x(local)S 21 x(user,)S 22 x(where)S 21 x(the)S 21 x (requested)S 20 x(lock)S 21 x(is)S 58 y 295 X(rejected.)S 22 x (Otherwise)S 16 x(the)S 16 x(local)S 16 x(lock)S 15 x(is)S 15 x(set)S 16 x(the)S 15 x(by)S 15 x(setting)S 16 x(the)S 15 x F78(L)S F44 (\(ocked\))S 15 x(\015ag)S 16 x(in)S 16 x(the)S 16 x(local)S 16 x (\014les)S 15 x(state.)S 1029 Y 295 X(Because)S 20 x(the)S 19 x (lock)S 19 x(command)S 19 x(will)S 20 x(be)S 19 x(applied)S 19 x(in)S 19 x(the)S 19 x(most)S 19 x(cases)S 19 x(to)S 19 x(a)S 20 x(local)S 20 x(version)S 19 x(of)S 20 x(the)S 19 x(\014le)S 20 x(that)S 20 x (is)S 58 y 295 X(already)S 17 x(master,)S 18 x(it)S 18 x(is)S 18 x (not)S 17 x(necessary)S 18 x(to)S 18 x(execute)S 18 x(the)S 18 x (whole)S 18 x F75(rfa)S 18 x F44(program)S 17 x(to)S 18 x(do)S 18 x (the)S 18 x(local)S 18 x(lock.)S 28 x(Because)S 58 y 295 X(the)S 16 x F75(rfa)S 16 x F44(program)S 16 x(includes)S 16 x(the)S 16 x (whole)S 16 x(code)S 17 x(needed)S 16 x(for)S 17 x(the)S 17 x (execution)S 17 x(of)S 16 x(the)S 16 x(remote)S 16 x(operations)S 16 x(\(ISODE)S 58 y 295 X(stack,)S 13 x(etc.\),)S 13 x(there)S 12 x (may)S 13 x(be)S 13 x(a)S 13 x(signi\014cant)S 13 x(time)S 13 x (delay)S 12 x(while)S 13 x(loading)S 12 x(this)S 13 x(huge)S 13 x (program.)S 19 x(T)S -3 x(o)S 13 x(optimize)S 13 x(this,)S 13 x(a)S 58 y 295 X(stand-alone)S 12 x(program)S 12 x(called)S 12 x F75 (llock)S 12 x F44(is)S 11 x(provided)S 12 x(which)S 12 x(is)S 12 x (able)S 12 x(to)S 12 x(perform)S 12 x(the)S 12 x(locking)S 12 x(if)S 12 x(the)S 11 x(local)S 12 x(version)S 12 x(is)S 58 y 295 X(the)S 12 x(master)S 13 x(version.)S 20 x(If)S 13 x F75(llock)S 13 x F44 (could)S 13 x(perform)S 12 x(the)S 12 x(local)S 12 x(lock,)S 12 x (it)S 12 x(exits)S 12 x(with)S 13 x(exit\261code)S 12 x(0.)S 19 x (If)S 13 x(the)S 12 x(\014le)S 13 x(is)S 13 x(already)S 58 y 295 X (locked)S 15 x(locally)S 15 x(or)S 16 x(an)S 15 x(error)S 15 x (condition)S 15 x(occurred)S 15 x(it)S 15 x(exits)S 16 x(with)S 15 x (exit-code)S 16 x(1.)S 21 x(If)S 16 x(the)S 15 x(local)S 15 x (version)S 15 x(of)S 15 x(the)S 16 x(\014le)S 58 y 295 X(is)S 15 x (not)S 15 x(MASTER,)S 15 x(it)S 15 x(returns)S 15 x(2)S 14 x(which)S 15 x(indicates)S 15 x(that)S 15 x(the)S 15 x F75(rfa)S 15 x F44 (command)S 15 x(is)S 15 x(needed)S 15 x(to)S 15 x(perform)S 15 x (the)S 15 x(locking.)S 1671 Y 295 X F76(3.6)S 50 x(unlock)S 1807 Y 295 X F44(The)S 15 x F75(unlock)S 15 x F44(command)S 14 x(is)S 14 x (used)S 14 x(to)S 14 x(release)S 14 x(a)S 14 x(lock)S 14 x(for)S 15 x(a)S 14 x(local)S 14 x(MASTER)S 14 x(version)S 15 x(of)S 14 x (the)S 14 x(\014le\(s\))S 14 x(provided)S 14 x(as)S 58 y 295 X (command)S 17 x(ar)S -1 x(gument\(s\).)S 24 x(If)S 17 x(the)S 16 x (name)S 17 x(of)S 16 x(the)S 16 x(\014le)S 16 x(to)S 16 x(be)S 17 x (unlocked)S 17 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 16 x (the)S 17 x(\014le)S 16 x(referenced)S 58 y 295 X(by)S 16 x(the)S 15 x(link)S 15 x(is)S 16 x(unlocked)S 16 x(if)S 16 x(it)S 16 x(is)S 16 x(located)S 16 x(within)S 16 x(the)S 16 x(shared)S 16 x(subtree.)S 22 x(There)S 16 x(is)S 15 x(are)S 16 x(no)S 16 x(checks)S 16 x(made)S 15 x(if)S 16 x(the)S 59 y 295 X(\014le)S 17 x(has)S 18 x(been)S 18 x (locked)S 18 x(by)S 17 x(the)S 18 x(user)S 17 x(that)S 17 x (performs)S 18 x(the)S 17 x(unlock)S 17 x(operation.)S 2063 Y 295 X (Similar)S 12 x(to)S 13 x(the)S 12 x F75(llock)S 12 x F44(command)S 12 x(there)S 13 x(exists)S 12 x(an)S 12 x F75(lunlock)S 12 x F44 (command)S 12 x(which)S 12 x(is)S 13 x(capable)S 12 x(to)S 12 x (perform)S 12 x(the)S 12 x(release)S 58 y 295 X(of)S 17 x(the)S 17 x (\(always\))S 18 x(local)S 17 x(locks)S 17 x(to)S 17 x(avoid)S 17 x (the)S 17 x(expensive)S 17 x(use)S 17 x(of)S 17 x(the)S 17 x F75 (rfa)S 17 x F44(command.)S 2357 Y 295 X F76(3.7)S 50 x(master)S 2493 Y 295 X F44(The)S 11 x F75(master)S 11 x F44(command)S 11 x (can)S 11 x(be)S 11 x(used)S 11 x(to)S 11 x(request)S 11 x(that)S 11 x(the)S 12 x(local)S 11 x(version)S 11 x(of)S 11 x(the)S 11 x (\014le\(s\))S 11 x(provided)S 11 x(as)S 11 x(ar)S -1 x(gument\(s\))S 58 y 295 X(will)S 17 x(become)S 16 x(the)S 16 x(MASTER)S 16 x (version.)S 23 x(If)S 16 x(the)S 16 x(name)S 16 x(of)S 16 x(the)S 17 x(\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 17 x (the)S 16 x(\014le)S 17 x(referenced)S 16 x(by)S 58 y 295 X(the)S 17 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x(the)S 17 x(operation)S 17 x(if)S 17 x(it)S 17 x(is)S 17 x(located)S 17 x (within)S 17 x(the)S 17 x(shared)S 17 x(subtree.)S 2690 Y 295 X(If)S 16 x(the)S 16 x(local)S 16 x(version)S 15 x(of)S 16 x(the)S 16 x (\014le)S 15 x(is)S 16 x(in)S 16 x(UNREGISTERED)S 16 x(status,)S 16 x(its)S 16 x(status)S 16 x(is)S 16 x(set)S 16 x(to)S 16 x(MASTER)S 16 x(if)S 16 x(there)S 16 x(is)S 58 y 295 X(no)S 17 x(version)S 17 x (of)S 17 x(the)S 17 x(\014le)S 17 x(with)S 17 x(MASTER)S 17 x (status)S 17 x(at)S 18 x(the)S 18 x(remote)S 18 x(site.)S 27 x(This)S 17 x(is)S 18 x(the)S 18 x(way)S 17 x(how)S 17 x(locally)S 17 x (created)S 59 y 295 X(\014les)S 16 x(will)S 15 x(be)S 15 x (introduced)S 15 x(into)S 15 x(the)S 15 x(set)S 15 x(of)S 15 x (shared)S 16 x(\014les)S 15 x(where)S 15 x(the)S 15 x(creating)S 15 x(site)S 15 x(becomes)S 15 x(the)S 15 x(initial)S 16 x(master.)S 2888 Y 295 X(If)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x(of)S 17 x(the)S 17 x(\014le)S 17 x(is)S 16 x(in)S 16 x(SLA)S -6 x(VE)S 16 x(status,)S 17 x(then)S 16 x(the)S 16 x(mastership)S 17 x(for)S 16 x(the)S 16 x(\014le)S 16 x(is)S 16 x(requested)S 16 x(from)S 58 y 295 X(the)S 13 x(remote)S 13 x(site)S 13 x(similar)S 13 x(to)S 13 x (the)S 13 x F75(lock)S 13 x F44(command.)S 20 x(The)S 13 x(write)S 13 x(access)S 13 x(permissions)S 13 x(of)S 13 x(the)S 13 x(new)S 13 x(local)S 13 x(MASTER)S 58 y 295 X(version)S 21 x(are)S 22 x (set.)S 3276 Y 1230 X F6(5)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1875 X(The)S 25 x(RF)S -3 x(A)S 25 x(Client)S 459 Y 295 X F76(3.8)S 50 x(slave)S 579 Y 295 X F44 (The)S 13 x F75(slave)S 13 x F44(command)S 13 x(can)S 13 x(be)S 13 x (used)S 13 x(to)S 13 x(request)S 13 x(that)S 13 x(the)S 13 x(local)S 13 x(version)S 13 x(of)S 13 x(the)S 13 x(\014le\(s\))S 13 x (provided)S 13 x(as)S 13 x(ar)S -1 x(gument\(s\))S 58 y 295 X(will)S 17 x(become)S 16 x(a)S 16 x(SLA)S -6 x(VE)S 16 x(version.)S 24 x(If)S 16 x(the)S 17 x(name)S 16 x(of)S 17 x(the)S 16 x(\014le)S 16 x(is)S 16 x(a)S 17 x(symbolic)S 17 x(link,)S 16 x(the)S 17 x(\014le)S 17 x (referenced)S 17 x(by)S 16 x(the)S 58 y 295 X(link)S 18 x(is)S 18 x (tar)S -1 x(get)S 17 x(of)S 18 x(the)S 18 x(operation)S 18 x(if)S 17 x(it)S 18 x(is)S 18 x(located)S 18 x(within)S 17 x(the)S 17 x (shared)S 18 x(subtree.)S 771 Y 295 X(If)S 15 x(the)S 15 x(local)S 15 x(version)S 15 x(of)S 16 x(the)S 16 x(\014le)S 15 x(is)S 15 x(in)S 16 x(UNREGISTERED)S 15 x(or)S 15 x(MASTER)S 15 x(status,)S 15 x(its)S 15 x(status)S 16 x(is)S 15 x(set)S 15 x(to)S 15 x(SLA)S -6 x(VE)S 58 y 295 X(if)S 17 x(there)S 17 x(is)S 17 x(version)S 16 x(of)S 17 x (the)S 17 x(\014le)S 17 x(with)S 17 x(MASTER)S 17 x(status)S 17 x (at)S 17 x(the)S 17 x(remote)S 16 x(site.)S 25 x(The)S 17 x(write)S 16 x(access)S 17 x(permissions)S 58 y 295 X(of)S 20 x(the)S 20 x (new)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 19 x(version)S 20 x(are)S 20 x(cleared.)S 1082 Y 295 X F76(3.9)S 50 x(unr)S -1 x(egister)S 1201 Y 295 X F44(The)S 22 x F75(unr)S -2 x(egister)S 23 x F44 (command)S 21 x(can)S 21 x(be)S 21 x(used)S 22 x(to)S 22 x(request)S 21 x(that)S 22 x(the)S 22 x(local)S 21 x(version)S 22 x(of)S 21 x (the)S 22 x(\014le\(s\))S 22 x(provided)S 22 x(as)S 59 y 295 X(ar)S -1 x(gument\(s\))S 15 x(will)S 15 x(become)S 15 x(an)S 15 x (UNREGISTERED)S 15 x(version.)S 20 x(If)S 15 x(the)S 15 x(local)S 15 x(version)S 15 x(of)S 15 x(the)S 15 x(\014le)S 15 x(is)S 15 x (locked,)S 15 x(this)S 58 y 295 X(results)S 16 x(in)S 16 x(an)S 16 x (error.)S 22 x(If)S 16 x(the)S 15 x(name)S 16 x(of)S 16 x(the)S 16 x (\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x(link,)S 16 x(the)S 16 x(\014le)S 16 x(referenced)S 16 x(by)S 16 x(the)S 16 x(link)S 16 x(is)S 16 x(tar)S -1 x(get)S 58 y 295 X(of)S 19 x(the)S 18 x (operation)S 19 x(if)S 18 x(it)S 19 x(is)S 19 x(located)S 18 x (within)S 18 x(the)S 18 x(shared)S 19 x(subtree.)S 1571 Y 295 X F76 (3.10)S 50 x(setr)S -1 x(equest)S 1690 Y 295 X F44(The)S 17 x F75 (setr)S -2 x(equest)S 16 x F44(command)S 16 x(is)S 17 x(used)S 17 x (to)S 17 x(set)S 17 x(the)S 16 x(transfer)S 17 x(mode)S 17 x(of)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x(of)S 17 x(the)S 17 x (\014le\(s\))S 17 x(provided)S 59 y 295 X(as)S 16 x(ar)S -1 x (gument\(s\))S 16 x(to)S 16 x(REQUEST)S 16 x(mode.)S 21 x(If)S 15 x (the)S 16 x(name)S 15 x(of)S 16 x(the)S 15 x(\014le)S 15 x(is)S 15 x (a)S 15 x(symbolic)S 15 x(link,)S 16 x(the)S 16 x(\014le)S 16 x (referenced)S 15 x(by)S 58 y 295 X(the)S 17 x(link)S 17 x(is)S 17 x (tar)S -1 x(get)S 17 x(of)S 17 x(the)S 17 x(operation)S 17 x(if)S 17 x(it)S 17 x(is)S 17 x(located)S 17 x(within)S 17 x(the)S 17 x (shared)S 17 x(subtree.)S 2002 Y 295 X F76(3.11)S 50 x(setauto)S 2121 Y 295 X F44(The)S 16 x F75(setauto)S 17 x F44(command)S 16 x (is)S 17 x(used)S 17 x(to)S 16 x(set)S 16 x(the)S 16 x(transfer)S 16 x(mode)S 17 x(of)S 16 x(the)S 16 x(local)S 16 x(version)S 16 x (of)S 17 x(the)S 16 x(\014le\(s\))S 16 x(provided)S 16 x(as)S 58 y 295 X(ar)S -1 x(gument\(s\))S 15 x(to)S 15 x(AUT)S -1 x(OMA)S -5 x (TIC)S 14 x(mode.)S 20 x(If)S 15 x(the)S 15 x(name)S 15 x(of)S 15 x (the)S 15 x(\014le)S 15 x(is)S 15 x(a)S 15 x(symbolic)S 15 x(link,)S 15 x(the)S 15 x(\014le)S 16 x(referenced)S 15 x(by)S 58 y 295 X(the)S 17 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x(the)S 17 x(operation)S 17 x(if)S 17 x(it)S 17 x(is)S 17 x(located)S 17 x (within)S 17 x(the)S 17 x(shared)S 17 x(subtree.)S 2432 Y 295 X F76 (3.12)S 50 x(get\014le)S 2552 Y 295 X F44(The)S 17 x F75(get\014le)S 17 x F44(command)S 16 x(is)S 17 x(used)S 17 x(to)S 17 x(request)S 16 x(the)S 16 x(transfer)S 17 x(of)S 16 x(the)S 16 x(shared)S 16 x (\014le\(s\))S 17 x(provided)S 16 x(as)S 17 x(ar)S -1 x (gument\(s\).)S 24 x(If)S 58 y 295 X(the)S 17 x(name)S 16 x(of)S 17 x(the)S 16 x(\014le)S 16 x(is)S 16 x(a)S 16 x(symbolic)S 16 x (link,)S 17 x(the)S 16 x(\014le)S 16 x(referenced)S 17 x(by)S 17 x (the)S 16 x(link)S 17 x(is)S 17 x(tar)S -1 x(get)S 17 x(of)S 17 x (the)S 17 x(operation)S 17 x(if)S 17 x(it)S 58 y 295 X(is)S 20 x (located)S 20 x(within)S 20 x(the)S 20 x(shared)S 20 x(subtree.)S 2744 Y 295 X(If)S 12 x(the)S 13 x(remote)S 13 x(version)S 13 x(of)S 12 x(the)S 13 x(\014le)S 12 x(is)S 12 x(in)S 12 x(MASTER)S 12 x (status,)S 13 x(a)S 12 x(local)S 13 x(SLA)S -6 x(VE)S 13 x(version)S 12 x(is)S 12 x(created)S 13 x(if)S 12 x(the)S 12 x(\014le)S 12 x (does)S 58 y 295 X(locally)S 17 x(not)S 18 x(exist.)S 27 x(If)S 18 x (a)S 17 x(local)S 18 x(SLA)S -6 x(VE)S 17 x(version)S 17 x(already)S 18 x(exists,)S 18 x(it)S 18 x(is)S 17 x(updated)S 17 x(from)S 18 x (the)S 18 x(remote)S 18 x(MASTER)S 58 y 295 X(version.)S 2936 Y 295 X(If)S 15 x(the)S 16 x(remote)S 15 x(version)S 16 x(of)S 15 x (the)S 16 x(\014le)S 16 x(is)S 16 x(in)S 15 x(UNREGISTERED)S 16 x (status,)S 16 x(a)S 16 x(local)S 16 x(version)S 16 x(of)S 16 x(the)S 16 x(\014le)S 16 x(with)S 16 x(status)S 58 y 295 X(UNREGISTERED)S 17 x(is)S 17 x(created)S 17 x(if)S 17 x(the)S 17 x(\014le)S 17 x (does)S 17 x(locally)S 17 x(not)S 17 x(exist.)S 25 x(If)S 17 x(a)S 17 x(local)S 17 x(version)S 17 x(already)S 16 x(exists,)S 17 x(it)S 17 x(is)S 58 y 295 X(updated)S 20 x(from)S 20 x(the)S 20 x(remote)S 20 x(version.)S 3276 Y 1230 X F6(6)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1874 X(The)S 25 x(RF)S -3 x(A)S 26 x(Client)S 459 Y 295 X F44(The)S 14 x(transfer)S 13 x(of)S 14 x (the)S 13 x(\014le)S 14 x(is)S 13 x(performed)S 13 x(according)S 13 x(the)S 13 x(version-time)S 14 x(\(time)S 13 x(of)S 14 x(last)S 13 x(modi\014cation\))S 14 x(of)S 13 x(the)S 13 x(local)S 58 y 295 X (and)S 18 x(remote)S 18 x(\014les.)S 28 x(If)S 18 x(both)S 18 x(the)S 18 x(version-times)S 18 x(of)S 18 x(both)S 18 x(\014les)S 18 x(are)S 18 x(equal,)S 18 x(no)S 18 x(transfer)S 18 x(has)S 18 x(to)S 18 x (be)S 18 x(performed)S 58 y 295 X(because)S 13 x(the)S 13 x(SLA)S -6 x(VE)S 13 x(version)S 14 x(is)S 13 x(already)S 14 x(up-to-date.)S 19 x(If)S 13 x(the)S 13 x(version-time)S 14 x(of)S 13 x(the)S 14 x (remote)S 13 x(MASTER)S 13 x(is)S 13 x(older)S 58 y 295 X(that)S 16 x(the)S 16 x(version-time)S 16 x(of)S 17 x(the)S 16 x(local)S 16 x(SLA)S -6 x(VE)S 17 x(\(or)S 16 x(UNREGISTERED\))S 17 x (version,)S 16 x(an)S 17 x(inconsistency)S 17 x(has)S 17 x(been)S 59 y 295 X(detected)S 18 x(and)S 17 x(an)S 17 x(error)S 17 x(is)S 18 x(reported.)S 27 x(Otherwise,)S 17 x(the)S 17 x(content)S 17 x (of)S 17 x(the)S 17 x(\014le)S 17 x(has)S 17 x(to)S 18 x(be)S 17 x (transmitted)S 18 x(to)S 17 x(update)S 58 y 295 X(the)S 18 x(local)S 18 x(SLA)S -6 x(VE)S 18 x(\(or)S 18 x(UNREGISTERED\))S 19 x(version)S 18 x(of)S 19 x(the)S 19 x(\014le.)S 831 Y 295 X(The)S 16 x(content)S 16 x(of)S 16 x(the)S 15 x(\014le)S 15 x(can)S 15 x(be)S 16 x (transferred)S 15 x(either)S 16 x(in)S 15 x(uncompressed)S 16 x(or)S 16 x(in)S 16 x(compressed)S 15 x(mode,)S 16 x(depending)S 59 y 295 X (on)S 17 x(the)S 16 x(size)S 17 x(of)S 17 x(the)S 16 x(\014le.)S 25 x(The)S 17 x(size)S 17 x(limit)S 17 x(when)S 16 x(compression)S 17 x(shall)S 17 x(occur)S 17 x(can)S 16 x(be)S 17 x(con\014gured)S 17 x(as)S 17 x(described)S 58 y 295 X(in)S 22 x(chapter)S 22 x(5.)S 42 x(The)S 23 x(compression)S 22 x(and)S 23 x(decompression)S 22 x (is)S 22 x(done)S 23 x(using)S 22 x(the)S 23 x(UNIX)S -17 y F74(TM)S 17 y 24 x F75(compr)S -2 x(ess\(1\))S 23 x F44(and)S 58 y 295 X F75 (uncompr)S -2 x(ess\(1\))S 21 x F44(commands.)S 1088 Y 295 X (Optionally,)S 16 x(the)S 16 x(old)S 16 x(version)S 16 x(of)S 16 x (the)S 16 x(local)S 15 x(\014le)S 16 x(will)S 15 x(be)S 15 x(saved)S 16 x(in)S 16 x(as)S 16 x(a)S 16 x(\014le)S 16 x(with)S 16 x(the)S 16 x(suf)S -1 x(\014x)S 17 x F75(.bak)S 16 x F44(if)S 16 x(the)S 16 x(local)S 58 y 295 X(\014le)S 17 x(is)S 18 x(updated.)S 26 x (This)S 18 x(option)S 18 x(can)S 17 x(be)S 18 x(con\014gured)S 17 x (as)S 17 x(described)S 18 x(in)S 18 x(chapter)S 17 x(5.)S 1385 Y 295 X F76(3.13)S 50 x(syncdir)S 1523 Y 295 X F44(The)S 13 x F75 (syncdir)S 13 x F44(command)S 13 x(is)S 13 x(used)S 13 x(to)S 13 x (synchronize)S 13 x(the)S 13 x(\014les)S 13 x(within)S 13 x(the)S 13 x(directory/ies)S 13 x(provided)S 13 x(as)S 13 x(ar)S -1 x (gument\(s\))S 58 y 295 X(with)S 12 x(their)S 12 x(counterparts)S 12 x(at)S 12 x(the)S 12 x(remote)S 12 x(site.)S 19 x(Here)S 12 x (the)S 11 x(basic)S 12 x(principle)S 11 x(is,)S 13 x(that)S 12 x (the)S 12 x(site)S 12 x(executing)S 12 x(the)S 12 x F75(syncdir)S 58 y 295 X F44(command)S 14 x(is)S 13 x(only)S 14 x(synchronizing)S 14 x(the)S 14 x(local)S 14 x(site)S 14 x(by)S 14 x(applying)S 14 x (the)S 13 x(following)S 14 x(actions)S 14 x(to)S 14 x(the)S 13 x (list)S 14 x(of)S 14 x(\014les)S 14 x(that)S 58 y 295 X(exists)S 19 x(at)S 19 x(the)S 19 x F49(r)S -1 x(emote)S 18 x F44(site)S 19 x (within)S 19 x(the)S 19 x(given)S 19 x(directory:)S 1804 Y 378 X (\267)S 67 x(Create)S 17 x(a)S 17 x(local)S 17 x(SLA)S -6 x(VE)S 18 x(\014le)S 16 x(versions)S 17 x(for)S 17 x(newly)S 17 x(found)S 16 x(remote)S 17 x(MASTER)S 17 x(version)S 17 x(\014le.)S 26 x(This)S 17 x(is)S 58 y 461 X(done)S 18 x(according)S 18 x(to)S 18 x(the)S 18 x(transfer)S 18 x(mode)S 18 x(of)S 18 x(the)S 18 x(\014le.)S 28 x (If)S 18 x(the)S 18 x(transfer)S 18 x(mode)S 18 x(is)S 18 x(set)S 18 x(to)S 18 x(REQUEST,)S 58 y 461 X(only)S 14 x(a)S 14 x(dummy)S 14 x(SLA)S -6 x(VE)S 14 x(version)S 14 x(of)S 14 x(\014le)S 15 x(is)S 14 x(created)S 14 x(which)S 14 x(indicates)S 14 x(the)S 14 x (existence)S 14 x(of)S 15 x(the)S 15 x(\014le,)S 15 x(but)S 58 y 461 X(does)S 14 x(not)S 14 x(have)S 14 x(its)S 14 x(actual)S 14 x (content.)S 20 x(Otherwise,)S 14 x(the)S 14 x(content)S 14 x(of)S 14 x(the)S 14 x(\014le)S 14 x(is)S 13 x(transferred)S 14 x(as)S 14 x (described)S 58 y 461 X(with)S 20 x(the)S 21 x F75(get\014le)S 20 x F44(command.)S 2119 Y 378 X(\267)S 67 x(Update)S 19 x(local)S 19 x (SLA)S -6 x(VE)S 19 x(\014le)S 18 x(version)S 18 x(with)S 19 x(a)S 19 x(remote)S 19 x(MASTER)S 19 x(version)S 19 x(if)S 19 x(the)S 18 x (transfer)S 18 x(mode)S 18 x(of)S 58 y 461 X(the)S 20 x(\014le)S 20 x(is)S 21 x(AUT)S -1 x(OMA)S -5 x(TIC)S 2260 Y 378 X(\267)S 67 x (Create)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 18 x(sub-directory)S 19 x(if)S 19 x(a)S 18 x(new)S 18 x(MASTER)S 19 x(sub-directory)S 18 x(has)S 18 x(been)S 18 x(found)S 18 x(at)S 18 x(the)S 58 y 461 X (remote)S 17 x(site.)S 26 x(By)S 17 x(this,)S 18 x(the)S 17 x (shared)S 17 x(subtree)S 18 x(will)S 17 x(grow)S 17 x(in)S 18 x (size.)S 26 x(Directories)S 17 x(found)S 17 x(at)S 17 x(the)S 17 x (remote)S 58 y 461 X(site)S 17 x(that)S 18 x(are)S 17 x(in)S 17 x (status)S 17 x(UNREGISTERED)S 17 x(are)S 17 x F49(NOT)S 17 x F44 (created)S 17 x(locally.)S 2459 Y 378 X(\267)S 67 x(Create)S 18 x(a)S 18 x(local)S 18 x(symbolic)S 18 x(link)S 18 x(if)S 18 x(a)S 17 x (symbolic)S 18 x(link)S 18 x(has)S 18 x(been)S 18 x(found)S 18 x(at)S 18 x(the)S 18 x(remote)S 18 x(site.)S 28 x(This)S 18 x(is)S 59 y 461 X(only)S 16 x(done)S 17 x(if)S 17 x(the)S 16 x(\014le)S 16 x (referenced)S 16 x(by)S 16 x(the)S 16 x(link)S 17 x(is)S 16 x (located)S 16 x(within)S 16 x(the)S 16 x(shared)S 16 x(subtree.)S 2601 Y 378 X(\267)S 67 x(Perform)S 18 x(various)S 18 x(checks)S 18 x (to)S 18 x(insure)S 18 x(consistency)S 19 x(between)S 18 x(local)S 18 x(and)S 19 x(remote)S 18 x(sites)S 19 x(views)S 19 x(of)S 18 x (the)S 58 y 461 X(\014les)S 21 x(within)S 21 x(the)S 21 x (directory.)S 2742 Y 378 X(\267)S 67 x(Removes)S 15 x(local)S 15 x (SLA)S -6 x(VE)S 15 x(\014les)S 14 x(if)S 15 x(there)S 15 x(is)S 14 x(no)S 15 x(corresponding)S 15 x(MASTER)S 15 x(\014le)S 15 x(at)S 15 x(the)S 15 x(remote)S 15 x(site.)S 21 x(If)S 58 y 461 X(there)S 15 x(is)S 16 x(a)S 15 x(UNREGISTERED)S 16 x(\014le)S 15 x(at)S 16 x (remote,)S 15 x(the)S 15 x(local)S 16 x(\014le)S 15 x(state)S 15 x (is)S 15 x(set)S 15 x(to)S 15 x(UNREGISTERED.)S 2883 Y 378 X(\267)S 67 x(Execute)S 21 x(a)S 20 x(existing)S 20 x F75(.rfaexec)S 20 x F44 (\014le)S 20 x(if)S 20 x(any)S 20 x(\014le)S 20 x(within)S 20 x(the)S 20 x(directory)S 20 x(has)S 21 x(been)S 20 x(updated)S 20 x(and)S 20 x(the)S 58 y 461 X(directory)S 20 x(itself)S 20 x(in)S 20 x(not)S 20 x(LOCKED.)S 3275 Y 1230 X F6(7)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1734 X(The)S 24 x(RF)S -3 x (A-EXEC)S 24 x(facility)S 459 Y 295 X F44(T)S -3 x(o)S 19 x(achieve)S 20 x(a)S 20 x(fully)S 20 x(synchronized)S 20 x(directory,)S 21 x (both)S 20 x(sites)S 20 x(need)S 19 x(to)S 20 x(perform)S 19 x(a)S 19 x F75(syncdir)S 19 x F44(operation)S 20 x(for)S 20 x(that)S 58 y 295 X(directory)S 14 x(at)S 15 x(periodic)S 15 x(times.)S 20 x(This)S 15 x(will)S 14 x(be)S 14 x(typically)S 15 x(done)S 15 x(by)S 15 x (creating)S 14 x(an)S 15 x(entry)S 15 x(into)S 14 x(the)S 14 x (systems)S 14 x F75(cr)S -2 x(ontab)S F44(.)S 746 Y 295 X F76(3.14)S 50 x(rsyncdir)S 880 Y 295 X F44(The)S 13 x F75(rsyncdir)S 13 x F44 (command)S 13 x(is)S 14 x(very)S 13 x(similar)S 13 x(to)S 13 x(the)S 13 x F75(syncdir)S 13 x F44(command,)S 14 x(but)S 13 x(performs)S 13 x(a)S 13 x(recursive)S 13 x(synchroniza-)S 58 y 295 X(tion)S 16 x (of)S 16 x(the)S 16 x(whole)S 16 x(subtree)S 16 x(starting)S 16 x (at)S 16 x(the)S 16 x(directory/ies)S 16 x(provided)S 16 x(as)S 15 x (ar)S -1 x(gument\(s\).)S 22 x(The)S 16 x(same)S 16 x(actions)S 16 x (are)S 58 y 295 X(performed)S 18 x(as)S 18 x(within)S 18 x(the)S 17 x F75(syncdir)S 18 x F44(command)S 18 x(with)S 17 x(an)S 18 x (additional)S 17 x(actions:)S 1124 Y 378 X(\267)S 67 x(If)S 14 x(a)S 15 x(MASTER)S 14 x(directory)S 15 x(is)S 14 x(detected)S 15 x(at)S 14 x(the)S 14 x(remote)S 15 x(site)S 14 x(and)S 15 x(the)S 15 x (transfer)S 15 x(mode)S 14 x(of)S 15 x(this)S 14 x(directory)S 58 y 461 X(is)S 17 x(set)S 17 x(to)S 18 x(AUT)S -1 x(OMA)S -5 x(TIC,)S 18 x(the)S 17 x(directory)S 17 x(is)S 17 x(synchronized)S 17 x (recursively.)S 1265 Y 378 X(\267)S 67 x(It)S 18 x(does)S 18 x(not)S 18 x(follow)S 18 x(symbolic)S 18 x(links)S 18 x(pointing)S 18 x(to)S 17 x(directories)S 1370 Y 295 X(Directories)S 16 x(found)S 15 x(at)S 16 x(the)S 15 x(remote)S 15 x(site)S 15 x(that)S 15 x(are)S 15 x(in)S 15 x(status)S 15 x(UNREGISTERED)S 16 x(or)S 15 x(don't)S 15 x(have)S 16 x(transfer)S 16 x(mode)S 58 y 295 X(AUT)S -1 x(OMA)S -5 x(TIC)S 15 x(are)S 14 x F49(NOT)S 15 x F44(synchronized)S 15 x(recursively.)S 20 x(They)S 14 x(have)S 15 x(to)S 14 x(be)S 15 x(updated)S 15 x (individually)S 14 x(by)S 14 x(applying)S 58 y 295 X(the)S 21 x F75 (syncdir)S 21 x F44(command.)S 1567 Y 295 X(Using)S 13 x(the)S 13 x F75(rsyncdir)S 13 x F44(command)S 13 x(it)S 13 x(is)S 12 x(possible)S 13 x(to)S 13 x(synchronize)S 13 x(the)S 12 x(whole)S 13 x(shared)S 13 x(subtree.)S 20 x(The)S 13 x(con\014guration)S 58 y 295 X(which)S 13 x(parts)S 13 x(of)S 14 x(a)S 13 x(subtree)S 14 x(at)S 13 x(a)S 14 x(site)S 13 x(belongs)S 14 x(to)S 14 x(that)S 13 x(shared)S 13 x (subtree)S 13 x(is)S 13 x(done)S 13 x(by)S 13 x(setting)S 13 x(the)S 13 x(MASTER)S 13 x(status)S 58 y 295 X(and)S 18 x(the)S 18 x (transfer)S 19 x(level)S 18 x(of)S 18 x(the)S 18 x(\014les)S 18 x (and)S 18 x(directories)S 18 x(appropriately.)S 1912 Y 295 X F76 (3.15)S 50 x(timesync)S 2046 Y 295 X F44(T)S -3 x(o)S 17 x (synchronize)S 18 x(the)S 17 x(local)S 17 x(clocks)S 17 x(of)S 17 x (the)S 17 x(participating)S 17 x(sites,)S 18 x(the)S 18 x F75 (timesync)S 17 x F44(command)S 17 x(can)S 17 x(be)S 17 x(used.)S 26 x(This)S 58 y 295 X(command)S 16 x(synchronizes)S 16 x(the)S 16 x (local)S 16 x(clock)S 16 x(of)S 16 x(the)S 16 x(site)S 16 x(acting)S 16 x(as)S 16 x(the)S 16 x F75(time)S 14 x(slave)S 16 x F44(with)S 16 x(the)S 16 x(clock)S 16 x(of)S 16 x(the)S 15 x F75(time)S 58 y 295 X(master)S 11 x F44(site.)S 19 x(The)S 12 x(command)S 12 x(can)S 12 x(be)S 12 x(called)S 12 x(at)S 12 x(both)S 11 x(sites)S 12 x(to)S 12 x(initiate)S 12 x(the)S 12 x(synchronization.)S 20 x(The)S 12 x (con)S (\014guration)S 58 y 295 X(of)S 18 x(a)S 18 x(site)S 17 x(to)S 18 x (be)S 17 x F75(time)S 16 x(slave)S 18 x F44(or)S 17 x F75(time)S 16 x(master)S 18 x F44(is)S 18 x(described)S 18 x(in)S 18 x(chapter)S 18 x(5)S 2449 Y 295 X F76(3.16)S 50 x(help)S 2583 Y 295 X F44(The)S 20 x F75(help)S 19 x F44(command)S 20 x(shows)S 20 x(the)S 20 x (list)S 20 x(of)S 19 x(available)S 20 x(command)S 19 x(and)S 20 x (gives)S 20 x(a)S 20 x(one-line)S 19 x(description)S 20 x(of)S 19 x (each)S 58 y 295 X(command.)S 2870 Y 295 X F76(3.17)S 50 x(quit)S 3004 Y 295 X F44(Obviously,)S 19 x(the)S 18 x F75(quit)S 19 x F44 (commands)S 18 x(terminates)S 19 x(the)S 18 x F75(rfa)S 19 x F44 (session.)S 3276 Y 1230 X F6(8)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1829 X(RF)S -3 x(A)S 25 x (Con\014guration)S 464 Y 295 X F46(4)S 62 x(The)S 32 x(RF)S -6 x (A-EXEC)S 32 x(facility)S 669 Y 295 X F44(When)S 16 x(a)S 15 x (directory)S 16 x(within)S 16 x(the)S 16 x(shared)S 15 x(subtree)S 16 x(is)S 15 x(synchronized)S 15 x(using)S 16 x(the)S 16 x(RF)S -3 x (A)S 15 x F75(sync)S 15 x F44(or)S 15 x F75(rsync)S 16 x F44 (commands,)S 58 y 295 X(in)S 17 x(most)S 17 x(cases)S 17 x(there)S 18 x(are)S 17 x(further)S 18 x(actions)S 17 x(required)S 17 x(if)S 17 x(any)S 18 x(\014les)S 17 x(have)S 18 x(been)S 17 x(updated,)S 18 x(e.g.)S 27 x(issuing)S 17 x(a)S 18 x F75(make)S 58 y 295 X F44 (command)S 18 x(to)S 17 x(re-build)S 18 x(the)S 18 x(updated)S 18 x (software.)S 28 x(This)S 18 x(can)S 18 x(be)S 18 x(achieved)S 18 x (by)S 17 x(RF)S -3 x(A's)S 18 x(facility)S 18 x(to)S 18 x(create)S 18 x(a)S 18 x(\014le)S 58 y 295 X(called)S 12 x F75(.rfaexec)S 11 x F44(in)S 11 x(each)S 11 x(directory.)S 19 x(This)S 11 x(\014le)S 12 x(is)S 12 x(executed)S 11 x(by)S 11 x F75(sh\(1\))S 12 x F44 (every)S 12 x(time)S 11 x(the)S 11 x(directory)S 12 x(is)S 12 x (synchronized)S 58 y 295 X(and)S 13 x(minimally)S 12 x(one)S 13 x (\014le)S 13 x(within)S 13 x(the)S 12 x(directory)S 13 x(has)S 12 x (been)S 13 x(updated.)S 19 x(The)S 13 x(\014le)S 13 x F75(.rfaexec)S 12 x F44(can)S 12 x(be)S 13 x(have)S 13 x(executable)S 58 y 295 X (format)S 16 x(\(sh,)S 17 x(csh,)S 16 x(binary\))S 16 x(and)S 17 x (should)S 16 x(have)S 16 x(the)S 16 x(executed)S 16 x(permission)S 16 x(set.)S 23 x(When)S 16 x(RF)S -3 x(A)S 16 x(executed)S 16 x (this)S 16 x(\014le,)S 58 y 295 X(it)S 17 x(passes)S 18 x(the)S 18 x (names)S 17 x(of)S 18 x(the)S 18 x(\014les)S 17 x(that)S 17 x(have)S 17 x(been)S 17 x(updated)S 17 x(as)S 17 x(ar)S -1 x(guments)S 18 x (to)S 17 x(it.)S 1096 Y 295 X(This)S 16 x(facility)S 16 x(can)S 15 x (be)S 16 x(disabled)S 15 x(by)S 15 x(setting)S 15 x(the)S 16 x F75 (rfaexec)S 15 x F44(tailoring)S 15 x(option)S 15 x(to)S 15 x F75 (off)S F44(.)S 21 x(Further,)S 15 x(it)S 16 x(can)S 15 x(be)S 16 x (disabled)S 58 y 295 X(for)S 21 x(a)S 22 x(single)S 22 x(directory)S 21 x(by)S 22 x(setting)S 22 x(the)S 21 x(LOCKED)S 21 x(status)S 22 x (of)S 22 x(the)S 22 x(directory.)S 40 x(This)S 22 x(is)S 22 x (useful)S 22 x(to)S 22 x(prevent)S 58 y 295 X(re-compilations)S 17 x (of)S 17 x(software)S 18 x(during)S 18 x(an)S 17 x(un\014nished)S 17 x(development)S 18 x(cycle.)S 1291 Y 295 X(For)S 10 x(security)S 11 x(reasons,)S 12 x(the)S 11 x F75(.rfaexec)S 11 x F44(\014le)S 11 x(can)S 11 x F49(NOT)S 10 x F44(be)S 11 x(registered)S 11 x(as)S 10 x(MASTER)S 10 x(or)S 11 x(SLA)S -6 x(VE)S 11 x(\014le.)S 18 x(An)S 11 x(automatic)S 58 y 295 X(transfer)S 15 x(of)S 14 x(this)S 15 x (\014le)S 15 x(may)S 15 x(cause)S 15 x(a)S 15 x(user)S 15 x(to)S 15 x(execute)S 14 x(something)S 14 x(during)S 14 x(the)S 15 x F75 (sync)S 15 x F44(command)S 15 x(which)S 15 x(has)S 15 x(been)S 58 y 295 X(\252imported\272)S 15 x(from)S 16 x(the)S 15 x(remote)S 16 x (site.)S 22 x(Therefore,)S 16 x(the)S 15 x F75(.rfaexec)S 16 x F44 (\014le)S 16 x(is)S 16 x(always)S 15 x(a)S 15 x(local)S 16 x (unregistered)S 16 x(\014le.)S 1759 Y 295 X F46(5)S 62 x(RF)S -6 x (A)S 32 x(Con\014guration)S 1964 Y 295 X F44(The)S 22 x (con\014guration)S 22 x(of)S 21 x(the)S 22 x(RF)S -3 x(A)S 21 x (client)S 22 x(\()S F75(rfa)S F44(\))S 22 x(and)S 22 x(the)S 22 x (RF)S -3 x(A)S 21 x(server)S 21 x(\()S F75(r)S -2 x(os.rfa\))S 23 x F44(server)S 21 x(can)S 22 x(be)S 22 x(tailored)S 22 x(at)S 58 y 295 X(start)S 19 x(time)S 19 x(by)S 19 x(a)S 19 x(con\014guration)S 19 x(\014le.)S 32 x(This)S 20 x(\014le)S 19 x(is)S 19 x(called)S 19 x F75(rfatailor)S 19 x F44(and)S 19 x(can)S 19 x(exist)S 19 x (either)S 19 x(in)S 19 x(the)S 20 x(ISODE's)S 58 y 295 X (\203\(ETCDIR\))S 19 x(or)S 19 x(the)S 18 x(RF)S -3 x(A)S 19 x (speci)S (\014c)S 19 x(tailoring)S 18 x(directory)S 19 x(which)S 18 x(is)S 18 x(de\014ned)S 19 x(in)S 19 x(the)S 18 x F75(con\014g.h)S 19 x F44 (\014le)S 19 x(of)S 19 x(RF)S -3 x(A)S 18 x(as)S 58 y 295 X F75(RF)S -6 x(A\210T)S -3 x(AILDIR)S F44(.)S 16 x(This)S 16 x(\014le)S 16 x (is)S 16 x(read)S 16 x(by)S 16 x(both)S 16 x(the)S 16 x(RF)S -3 x(A)S 15 x(client)S 16 x(and)S 16 x(server.)S 22 x(The)S 16 x(\014le)S 16 x(consists)S 16 x(of)S 16 x(a)S 16 x(number)S 16 x(of)S 58 y 295 X(tailoring)S 20 x(statements)S 20 x(with)S 20 x(the)S 20 x (syntax)S 2287 Y 413 X F78(tailoringOption)S 912 X(=)S 1036 X (tailoringValue)S 2386 Y 295 X F44(Lines)S 20 x(with)S 20 x (comments)S 20 x(start)S 20 x(with)S 20 x(a)S 20 x(\252#\272.)S 2465 Y 295 X(The)S 18 x(options)S 17 x(that)S 18 x(are)S 18 x(valid)S 18 x(for)S 18 x(both)S 18 x(the)S 18 x(RF)S -3 x(A)S 17 x(client)S 18 x(and)S 18 x(server)S 18 x(are:)S 2585 Y 295 X F1(r)S -2 x(oot)S 4 y 709 X F44(the)S 17 x(pathname)S 17 x(of)S 16 x(the)S 16 x(root)S 16 x(of)S 17 x(the)S 16 x(shared)S 17 x(subtree)S 17 x(at)S 16 x (the)S 16 x(local)S 17 x(site)S 2714 Y 295 X F1(time)S -2 y 709 X F44(the)S 18 x(role)S 17 x(that)S 17 x(the)S 17 x(local)S 17 x(site)S 17 x(plays)S 17 x(for)S 17 x(time)S 17 x(synchronization.)S 26 x (Possible)S 17 x(values)S 17 x(are)S 58 y 709 X F75(master)S 20 x F44(or)S 20 x F75(slave)S F44(.)S 2849 Y 295 X(The)S 18 x(following)S 18 x(options)S 18 x(are)S 18 x(only)S 18 x(recognized)S 18 x(by)S 18 x(the)S 18 x(RF)S -3 x(A)S 18 x(server:)S 2964 Y 295 X F1(compr)S -2 x(ess)S 8 y 709 X F44(The)S 11 x(limit)S 11 x(for)S 11 x(the)S 11 x(\014lesize)S 11 x(in)S 11 x(bytes)S 11 x(when)S 11 x (compression)S 11 x(during)S 11 x(the)S 11 x(transfer)S 11 x (operation)S 59 y 709 X(shall)S 20 x(occur.)S 3276 Y 1230 X F6(9)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1829 X(RF)S -3 x(A)S 25 x (Con\014guration)S 459 Y 295 X F1(chmod)S -2 y 709 X F44(determines)S 15 x(if)S 15 x(the)S 15 x(write)S 15 x(permissions)S 15 x(of)S 15 x (local)S 15 x(SLA)S -6 x(VE)S 16 x(\014les)S 15 x(shall)S 15 x(be)S 15 x(removed)S 15 x(and)S 58 y 709 X(write)S 19 x(permissions)S 18 x (to)S 18 x(local)S 18 x(MASTER)S 18 x(and)S 18 x(UNREGISTERED)S 18 x (versions)S 18 x(shall)S 18 x(be)S 58 y 709 X(set.)S 21 x(This)S 16 x(requires)S 15 x(that)S 15 x(user)S 16 x(executing)S 16 x(the)S 16 x F75(rfa)S 16 x F44(command)S 15 x(is)S 15 x(the)S 15 x(owner)S 16 x(of)S 15 x(the)S 16 x(\014le)S 58 y 709 X(or)S 15 x(the)S 15 x F75(rfa)S 15 x F44(program)S 15 x(runs)S 15 x(under)S 15 x(the)S 15 x(ef)S -1 x(fective)S 15 x(user)S 15 x(id)S 15 x(of)S 16 x(root.)S 20 x(Possible)S 15 x(values)S 15 x(are)S 58 y 709 X F75(on)S 21 x F44(and)S 20 x F75(off)S F44(.)S 807 Y 295 X F1(debuglog)S -4 y 709 X F44(enables)S 22 x(more)S 22 x(detailed)S 23 x(logging)S 22 x (information)S 22 x(to)S 22 x(be)S 22 x(written)S 22 x(to)S 23 x (the)S 23 x(RF)S -3 x(A)S 21 x(log\014le)S 58 y 709 X F75(rfa.log)S 16 x F44(in)S 16 x(the)S 17 x(ISODE)S 17 x(logdir.)S 25 x(Possible)S 16 x(values)S 17 x(are)S 17 x F75(on)S 16 x F44(and)S 17 x F75(off)S F44(.)S 938 Y 295 X(The)S 15 x(following)S 15 x(options)S 14 x(are)S 15 x(only)S 14 x(recognized)S 15 x(by)S 15 x(the)S 14 x(RF)S -3 x(A)S 14 x(client.)S 20 x(They)S 14 x(may)S 14 x(additionally)S 14 x(be)S 14 x(de\014ned)S 15 x(on)S 15 x(a)S 58 y 295 X(per-user)S 18 x (basis)S 18 x(in)S 17 x(a)S 18 x(\014le)S 18 x(called)S 18 x F75 (.rfar)S -2 x(c)S 19 x F44(in)S 18 x(the)S 18 x(users)S 18 x(home)S 18 x(directory.)S 1113 Y 295 X F1(host)S -3 y 709 X F44(the)S 23 x (name)S 22 x(of)S 22 x(the)S 22 x(remote)S 22 x(host.)S 41 x(This)S 23 x(name)S 23 x(must)S 22 x(be)S 22 x(de\014ned)S 22 x(in)S 23 x (the)S 23 x(ISODE's)S 59 y 709 X F75(isoentities)S 20 x F44 (database.)S 1265 Y 295 X F1(user)S 9 y 709 X F44(the)S 20 x (username)S 20 x(that)S 20 x(shall)S 20 x(be)S 19 x(used)S 20 x(to)S 20 x(authenticate)S 19 x(with)S 20 x(the)S 20 x(remote)S 20 x(RF)S -3 x(A)S 19 x(server.)S 58 y 709 X(This)S 16 x(must)S 16 x(be)S 16 x (a)S 16 x(UNIX)S -17 y F74(TM)S 17 y 18 x F44(login)S 16 x(name)S 16 x(that)S 16 x(is)S 16 x(valid)S 16 x(on)S 16 x(the)S 16 x(remote)S 16 x(site.)S 1448 Y 295 X F1(passwor)S -2 x(d)S -2 y 709 X F44(The)S 21 x(password)S 21 x(corresponding)S 22 x(to)S 21 x(the)S 22 x(user)S 21 x(name.)S 39 x(This)S 22 x(password)S 22 x(must)S 22 x(be)S 21 x (the)S 58 y 709 X(password)S 17 x(for)S 17 x(the)S 17 x(given)S 17 x (login)S 17 x(name)S 17 x(at)S 17 x(the)S 17 x(remote)S 18 x(site.)S 1622 Y 295 X F1(backup)S -3 y 709 X F44(determines)S 15 x(if)S 15 x (a)S 15 x(backup)S 14 x(\014le)S 14 x(with)S 15 x(suf)S -1 x(\014x)S 15 x F75(.bak)S 14 x F44(shall)S 14 x(be)S 15 x(created)S 14 x(when)S 15 x(a)S 14 x(local)S 15 x(\014le)S 15 x(is)S 59 y 709 X(updated.)S 28 x(Possible)S 18 x(values)S 18 x(are)S 18 x F75(on)S 18 x F44(and)S 18 x F75(off)S F44(.)S 1794 Y 295 X F1(chgrp)S -2 y 709 X F44 (determines)S 18 x(if)S 19 x(the)S 18 x(group-id)S 19 x(of)S 18 x (local)S 18 x(SLA)S -6 x(VE)S 18 x(\014les)S 18 x(shall)S 18 x(be)S 19 x(set)S 19 x(according)S 18 x(to)S 18 x(the)S 58 y 709 X (group-id)S 15 x(of)S 15 x(the)S 14 x(remote)S 15 x(MASTER)S 15 x (\014le.)S 20 x(This)S 15 x(requires)S 15 x(that)S 15 x(user)S 15 x (executing)S 15 x(the)S 15 x F75(rfa)S 58 y 709 X F44(command)S 20 x (is)S 20 x(member)S 20 x(of)S 20 x(all)S 20 x(groups)S 20 x(that)S 20 x(may)S 20 x(appear)S 20 x(or)S 20 x(the)S 20 x F75(rfa)S 20 x F44(program)S 20 x(runs)S 58 y 709 X(under)S 16 x(the)S 16 x(ef)S -1 x(fective)S 16 x(user)S 16 x(id)S 17 x(of)S 16 x(root.)S 23 x (Possible)S 16 x(values)S 16 x(are)S 16 x F75(on)S 17 x F44(and)S 16 x F75(off)S F44(.)S 2083 Y 295 X F1(chown)S -2 y 709 X F44 (determines)S 21 x(if)S 20 x(the)S 21 x(user-id)S 21 x(of)S 20 x (local)S 21 x(SLA)S -6 x(VE)S 21 x(\014les)S 21 x(shall)S 21 x(be)S 21 x(set)S 21 x(according)S 21 x(to)S 21 x(the)S 58 y 709 X(user-id)S 18 x(of)S 17 x(the)S 17 x(remote)S 17 x(MASTER)S 17 x(\014le.)S 26 x (This)S 17 x(requires)S 17 x(that)S 17 x(user)S 17 x(executing)S 17 x(the)S 17 x F75(rfa)S 58 y 709 X F44(command)S 17 x(is)S 17 x (the)S 17 x(owner)S 17 x(of)S 18 x(the)S 18 x(\014le)S 18 x(or)S 17 x(the)S 17 x F75(rfa)S 17 x F44(program)S 17 x(runs)S 17 x(under)S 18 x(the)S 17 x(ef)S -1 x(fective)S 58 y 709 X(user)S 17 x(id)S 17 x (of)S 18 x(root.)S 27 x(Possible)S 18 x(values)S 17 x(are)S 17 x F75 (on)S 18 x F44(and)S 17 x F75(off)S F44(.)S 2371 Y 295 X F1 (transfer)S -2 y 709 X F44(the)S 22 x(default)S 22 x(transfer)S 21 x (mode)S 21 x(that)S 21 x(is)S 21 x(set)S 21 x(when)S 21 x(a)S 21 x (\014le)S 22 x(is)S 21 x(registered)S 21 x(the)S 21 x(\014rst)S 21 x (time.)S 58 y 709 X(Possible)S 18 x(values)S 18 x(are)S 18 x F75 (auto)S 18 x F44(and)S 18 x F75(r)S -2 x(equest)S 2545 Y 295 X F1 (clearsuid)S -4 y 709 X F44(determines)S 11 x(if)S 11 x(the)S 11 x (set-uid-on-execution)S 11 x(bit)S 11 x(of)S 11 x(\014les)S 11 x(is)S 11 x(cleared)S 11 x(if)S 11 x(they)S 11 x(are)S 11 x(transferred)S 58 y 709 X(to)S 17 x(the)S 17 x(remote)S 16 x(site.)S 25 x(Possible)S 17 x(values)S 17 x(are)S 17 x F75(on)S 17 x F44(and)S 17 x F75(off)S F44(.)S 25 x(If)S 17 x(RF)S -3 x(A)S 17 x(runs)S 17 x(with)S 17 x (ef)S -1 x(fective)S 58 y 709 X(user-id)S 19 x(of)S 18 x(root)S 18 x (and)S 19 x F75(chown)S 18 x F44(options)S 18 x(is)S 18 x(enabled,)S 19 x F75(clearsuid)S 18 x F44(should)S 19 x(be)S 18 x(enabled)S 19 x (to)S 58 y 709 X(avoid)S 17 x(that)S 17 x(privileged)S 17 x(users)S 17 x(from)S 16 x(one)S 17 x(sites)S 17 x(are)S 17 x(able)S 16 x(to)S 17 x(gain)S 17 x(illegal)S 17 x(privileges)S 17 x(at)S 59 y 709 X (the)S 21 x(other)S 20 x(site.)S 2882 Y 295 X F1(rmslaves)S -3 y 709 X F44(determines)S 15 x(if)S 16 x(slave)S 15 x(\014les)S 16 x (with)S 15 x(no)S 15 x(remote)S 16 x(master)S 16 x(\014le)S 16 x (are)S 16 x(deleted)S 15 x(during)S 16 x(the)S 16 x F75(sync)S 58 y 709 X F44(and)S 19 x F75(rsync)S 20 x F44(command.)S 34 x(Possible)S 19 x(values)S 20 x(are)S 19 x F75(on)S 20 x F44(and)S 19 x F75(off)S F44(.)S 34 x(If)S 20 x(a)S 20 x(there)S 20 x(is)S 20 x(a)S 20 x (remote)S 58 y 709 X(UNREGISTERED)S 18 x(\014le,)S 19 x(the)S 18 x (status)S 18 x(of)S 19 x(the)S 19 x(local)S 19 x(SLA)S -6 x(VE)S 18 x(\014le)S 18 x(is)S 19 x(only)S 18 x(changed)S 19 x(to)S 58 y 709 X(UNREGISTERED.)S 3276 Y 1219 X F6(10)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1731 X(What)S 25 x(is)S 25 x (still)S 25 x(missing)S 24 x(...)S 459 Y 295 X F1(rfaexec)S -2 y 709 X F44(determines)S 17 x(if)S 17 x(the)S 17 x F75(.rfaexec)S 17 x F44(\014les)S 17 x(are)S 17 x(executed)S 17 x(during)S 17 x(a)S 17 x F75(sync)S 17 x F44(or)S 17 x F75(rsync)S 17 x F44(command.)S 58 y 709 X(Possible)S 19 x(values)S 19 x(are)S 19 x F75(on)S 19 x F44 (and)S 19 x F75(off)S F44(.)S 906 Y 295 X F46(6)S 62 x(Some)S 28 x (W)S -4 x(ords)S 27 x(on)S 27 x(User-IDs)S 27 x(and)S 27 x (Permissions)S 1149 Y 295 X F44(In)S 15 x(principle,)S 15 x(the)S 15 x(RF)S -3 x(A)S 14 x(client)S 15 x(runs)S 15 x(with)S 15 x(the)S 15 x(user-id)S 15 x(of)S 16 x(the)S 15 x(user)S 15 x(that)S 15 x (invokes)S 15 x(the)S 15 x(client.)S 20 x(The)S 15 x(RF)S -3 x(A)S 14 x(server)S 58 y 295 X(either)S 16 x(runs)S 16 x(with)S 16 x(the)S 15 x(user-id)S 16 x(of)S 16 x(the)S 16 x(user)S 16 x(who)S 16 x (owns)S 16 x(the)S 16 x(server)S 16 x(program)S 16 x(\(as)S 15 x (performed)S 16 x(by)S 16 x F75(tsapd\(8\))S F44(\),)S 16 x(or)S 58 y 295 X(it)S 16 x(runs)S 16 x(with)S 16 x(the)S 16 x(user-id)S 16 x(the)S 16 x(invoker)S 16 x(has)S 16 x(supplied)S 16 x(with)S 16 x(the)S 16 x(bind)S 16 x(ar)S -1 x(guments)S 15 x(\(a)S 16 x (username)S 16 x(and)S 16 x(password)S 59 y 295 X(valid)S 16 x(at)S 16 x(the)S 16 x(remote)S 16 x(server)S 16 x(host\).)S 23 x(In)S 16 x (the)S 16 x(later)S 16 x(case)S 16 x F75(tsapd)S 16 x F44(needs)S 16 x(to)S 16 x(run)S 16 x(with)S 16 x(user-id)S 16 x(of)S 16 x(root)S 16 x(and)S 16 x(ros.rfa)S 58 y 295 X(needs)S 21 x(to)S 21 x(be)S 21 x(owned)S 20 x(by)S 21 x(root.)S 1466 Y 295 X(Under)S 19 x (certain)S 19 x(circumstances,)S 20 x(RF)S -3 x(A)S 18 x(client)S 19 x(and)S 19 x(server)S 19 x(need)S 19 x(to)S 19 x(do)S 18 x(modi)S (\014cation)S 19 x(to)S 19 x(\014les)S 19 x(which)S 18 x(are)S 19 x (not)S 58 y 295 X(owned)S 19 x(by)S 19 x(the)S 19 x(user-id)S 18 x (that)S 18 x(RF)S -3 x(A)S 18 x(is)S 18 x(running)S 19 x(with,)S 20 x(such)S 19 x(as)S 1633 Y 378 X(\267)S 67 x(changing)S 17 x(a)S 17 x(\014les)S 17 x(access)S 18 x(right)S 17 x(\(e.g.)S 27 x(if)S 17 x(it)S 17 x(becomes)S 17 x(a)S 17 x(slave)S 17 x(version\))S 1716 Y 378 X(\267)S 67 x(changing)S 13 x(a)S 14 x(\014les)S 13 x (owner)S 13 x(of)S 14 x(group)S 14 x(\(e.g.)S 19 x(if)S 14 x(a)S 13 x(local)S 14 x(slave)S 13 x(is)S 14 x(updates)S 14 x(according)S 13 x(to)S 13 x(a)S 13 x(remote)S 13 x(master)S 58 y 461 X(and)S 19 x (the)S 18 x F75(chown)S 19 x F44(and)S 19 x F75(chmod)S 19 x F44 (options)S 19 x(are)S 18 x(enabled)S 1883 Y 295 X(One)S 14 x(way)S 14 x(to)S 14 x(deal)S 14 x(with)S 14 x(these)S 14 x(problems)S 14 x (is)S 14 x(to)S 14 x(disable)S 13 x(these)S 14 x(facilities)S 14 x (of)S 14 x(RF)S -3 x(A)S 14 x(by)S 14 x(setting)S 14 x(the)S 14 x F75(chown)S F44(,)S 15 x F75(chgrp)S 58 y 295 X F44(and)S 17 x F75 (chmod)S 17 x F44(options)S 17 x(to)S 18 x F75(off)S F44(.)S 26 x (This)S 18 x(will)S 17 x(be)S 17 x(suitable)S 17 x(in)S 17 x(an)S 17 x(environment)S 17 x(where)S 17 x(all)S 17 x(\014les)S 17 x (within)S 17 x(the)S 17 x(shared)S 59 y 295 X(subtree)S 16 x(belong)S 16 x(to)S 16 x(a)S 16 x(single)S 16 x(user)S 16 x(and)S 16 x(only)S 16 x(this)S 16 x(user)S 16 x(runs)S 16 x(RF)S -3 x(A)S 15 x(client)S 16 x(and)S 16 x(server)S 16 x(processes.)S 2084 Y 295 X(Otherwise,)S 15 x(if)S 16 x(dif)S -1 x(ferent)S 15 x(users)S 15 x(access)S 15 x (the)S 16 x(\014les,)S 15 x(minimally)S 15 x(the)S 15 x F75(chmod)S 15 x F44(option)S 15 x(should)S 16 x(be)S 15 x(enabled)S 15 x(to)S 16 x(avoid)S 58 y 295 X(modi\014cations)S 13 x(to)S 13 x(slave)S 14 x(\014les)S 13 x(\(remember)S 14 x(that)S 14 x(locking)S 13 x(in)S 13 x(rfa)S 13 x(is)S 13 x(advisory\))S 13 x(by)S 13 x(making)S 14 x (slave)S 13 x(\014les)S 14 x(read-only.)S 58 y 295 X(Further,)S 15 x (the)S 15 x F75(chown)S 15 x F44(and)S 15 x F75(chgrp)S 15 x F44 (options)S 14 x(should)S 15 x(be)S 15 x(enabled)S 15 x(if)S 15 x (the)S 15 x(users)S 15 x(and)S 15 x(groups)S 15 x(are)S 15 x(the)S 15 x(same)S 15 x(at)S 15 x(both)S 58 y 295 X(sites)S 17 x(to)S 16 x (maintain)S 16 x(the)S 16 x(ownership)S 16 x(\(and)S 16 x (originatorship)S 16 x(of)S 16 x(modi\014cation\))S 16 x(across)S 17 x(the)S 16 x(two)S 16 x(sites.)S 2342 Y 295 X(This)S 12 x(can)S 12 x(be)S 12 x(achieved)S 12 x(by)S 12 x(running)S 12 x(the)S 12 x (RF)S -3 x(A)S 12 x(client)S 12 x(and)S 12 x(server)S 11 x(with)S 12 x(the)S 12 x(ef)S -1 x(fective)S 12 x(user-id)S 12 x(of)S 12 x (root)S 11 x(\(by)S 12 x(setting)S 58 y 295 X(the)S 15 x (set-uid-on-execution)S 14 x(\015ag\).)S 20 x(The)S 14 x(RF)S -3 x (A)S 15 x(client)S 15 x(will)S 15 x(set)S 15 x(his)S 15 x(ef)S -1 x (fective)S 16 x(user-id)S 15 x(during)S 15 x(start-up)S 14 x(to)S 15 x(his)S 15 x(real)S 59 y 295 X(user-id)S 18 x(and)S 17 x (switches)S 18 x(back)S 18 x(to)S 18 x(the)S 18 x(ef)S -1 x(fective)S 18 x(user-id)S 18 x(of)S 17 x(root)S 17 x(only)S 17 x(for)S 18 x (these)S 17 x(sections)S 18 x(of)S 17 x(code)S 17 x(where)S 17 x (the)S 58 y 295 X(root)S 16 x(permissions)S 17 x(are)S 17 x(really)S 16 x(required)S 17 x(to)S 16 x(change)S 16 x(the)S 16 x(access)S 16 x(mode,)S 17 x(owner)S 16 x(or)S 17 x(group)S 16 x(of)S 17 x (\014les.)S 24 x(Otherwise,)S 58 y 295 X(the)S 18 x(RF)S -3 x(A)S 17 x(client)S 17 x(run)S 18 x(with)S 17 x(the)S 18 x(ef)S -1 x (fective)S 17 x(user-id)S 17 x(equal)S 18 x(to)S 18 x(his)S 17 x (real)S 17 x(user-id.)S 2659 Y 295 X(The)S 18 x(RF)S -3 x(A)S 18 x (server)S 18 x(changes)S 19 x(his)S 18 x(ef)S -1 x(fective)S 19 x (user-id)S 18 x(during)S 18 x(start-up)S 19 x(to)S 18 x(the)S 18 x (user-id)S 18 x(provided)S 18 x(by)S 18 x(the)S 18 x(calling)S 58 y 295 X(client.)S 20 x(Like)S 15 x(the)S 15 x(RF)S -3 x(A)S 14 x (client,)S 15 x(it)S 14 x(switches)S 14 x(back)S 14 x(to)S 14 x(the)S 15 x(ef)S -1 x(fective)S 14 x(user-id)S 15 x(of)S 14 x(root)S 14 x (only)S 15 x(for)S 15 x(these)S 14 x(sections)S 15 x(of)S 58 y 295 X (code)S 17 x(where)S 16 x(the)S 16 x(root)S 16 x(permissions)S 16 x (are)S 16 x(really)S 16 x(required)S 16 x(to)S 16 x(change)S 16 x (the)S 16 x(access)S 16 x(mode)S 16 x(of)S 16 x(a)S 16 x(\014le.)S 2859 Y 295 X(If)S 22 x(the)S 22 x(RF)S -3 x(A)S 21 x(client)S 22 x (and)S 22 x(server)S 23 x(do)S 22 x(not)S 22 x(run)S 22 x(with)S 22 x(ef)S -1 x(fective)S 22 x(user-id)S 22 x(of)S 22 x(root,)S 24 x (the)S 22 x(time)S 22 x(synchronization)S 59 y 295 X(command)S 16 x (of)S 16 x(RF)S -3 x(A)S 16 x(can)S 16 x(only)S 16 x(be)S 16 x (used,)S 16 x(if)S 16 x(the)S 16 x(external)S 16 x(program)S 16 x F75(rfatime)S 16 x F44(of)S 16 x(the)S 16 x(RF)S -3 x(A)S 15 x (package)S 16 x(is)S 16 x(installed)S 58 y 295 X(to)S 21 x(run)S 21 x(with)S 21 x(set-uid)S 21 x(root)S 3276 Y 1219 X F6(11)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%PageBoundingBox: (atend) %%BeginPageSetup 1000 BP 3507 2481 PM /paper-automatic false SPS 295 0 XY %%EndPageSetup 295 231 XY F8(RF)S -3 x(A)S 295 281 XY 846 3 R 1141 281 XY 200 3 R 1340 281 XY 846 3 R -50 y 1733 X(What)S 24 x(is)S 24 x (still)S 24 x(missing)S 24 x(...)S 464 Y 295 X F46(7)S 62 x(What)S 32 x(is)S 32 x(still)S 31 x(missing)S 32 x(...)S 640 Y 295 X F44 (The)S 16 x(current)S 16 x(version)S 16 x(of)S 16 x(RF)S -3 x(A)S 16 x(is)S 17 x(a)S 16 x(\014rst)S 16 x(shot)S 16 x(which)S 16 x (needs)S 16 x(some)S 16 x(completion)S 16 x(and)S 16 x(extensions.)S 740 Y 378 X(\267)S 67 x(A)S 17 x(command)S 16 x(like)S 17 x (\252remote-dif)S -1 x(f\272)S 17 x(could)S 16 x(be)S 16 x(helpful)S 16 x(for)S 16 x(resolving)S 16 x(inconsistencies.)S 823 Y 378 X (\267)S 67 x(The)S 17 x(time)S 16 x(synchronization)S 16 x(only)S 16 x(works)S 16 x(if)S 16 x(the)S 16 x(local)S 16 x(time)S 16 x(of)S 16 x(a)S 17 x F75(time-slave)S 17 x F44(site)S 16 x(can)S 16 x(be)S 16 x(modi\014ed,)S 58 y 461 X(which)S 18 x(may)S 19 x(not)S 19 x (hold)S 18 x(true)S 19 x(in)S 19 x(each)S 18 x(environment.)S 964 Y 378 X(\267)S 67 x(There)S 14 x(is)S 14 x(a)S 14 x(problem)S 14 x (with)S 14 x(the)S 14 x F75(chown)S F44(,)S 14 x F75(chgrp)S 14 x F44(and)S 14 x F75(chmod)S 14 x F44(facilities)S 14 x(of)S 14 x(RF)S -3 x(A)S 14 x(because)S 15 x(the)S 14 x(enabling)S 58 y 461 X(of)S 19 x(them)S 19 x(may)S 19 x(cause)S 19 x(\252permission)S 19 x (denied)S (\272)S 18 x(errors)S 18 x(if)S 19 x(the)S 19 x(RF)S -3 x(A)S 18 x (does)S 18 x(not)S 19 x(run)S 18 x(with)S 19 x(the)S 18 x(ef)S -1 x (fective)S 58 y 461 X(used)S 21 x(id)S 21 x(of)S 21 x(root.)S 1163 Y 378 X(\267)S 67 x(RF)S -3 x(A)S 20 x(is)S 21 x(only)S 20 x(capable)S 20 x(to)S 21 x(support)S 20 x(distribution)S 20 x(over)S 20 x(two)S 20 x(sites,)S 21 x(which)S 20 x(should)S 20 x(be)S 20 x(extended)S 21 x(to)S 59 y 461 X(allow)S 18 x(a)S 18 x(multiple)S 18 x(site)S 18 x(con\014guration.)S 31 x(This)S 18 x(may)S 19 x(require)S 19 x (the)S 19 x(redesign)S 18 x(of)S 19 x(the)S 18 x(RF)S -3 x(A)S 18 x (model)S 19 x(and)S 58 y 461 X(will)S 19 x(introduce)S 19 x(a)S 19 x (new)S 19 x(level)S 19 x(of)S 19 x(complexity.)S 3276 Y -40 x F6(12)S %%PageTrailer /paper-automatic true SPS 1 PP EP %%PageBoundingBox: 71 53 524 794 %%Trailer EndDviLaserDoc %%BoundingBox: 71 53 524 794 %%Pages: 13 %%DocumentFonts: Times-Bold Times-Roman Times-Italic Courier