%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%Creator: Frame 5.0 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.0, for use with Frame 5.0 products % This ps_prolog file is Copyright (c) 1986-1995 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameMaker/SGML and FrameViewer as long as this % copyright notice is preserved. % % FrameMaker users specify the proper paper size for each print job in the % "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the % printer that the PS file is sent to does not support the requested paper % size, or if there is no paper tray of the proper size currently installed, % then the job will not be printed. The following flag, if set to true, will % cause the job to print on the default paper in such cases. /FMAllowPaperSizeMismatch false def % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to true, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % The following is a set of predefined optimal frequencies and angles for various % common dpi settings. This is taken from "Advances in Color Separation Using % PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) % and corrolated with information which is in various PPD (4.0) files. % % The "dpiranges" figure is the minimum dots per inch device resolution which % can support this setting. The "low" and "high" values are controlled by the % setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control % the use of the "Yellow Triple Dot" feature whereby the frequency id divided by % three, but the dot function is "trippled" giving a block of 3x3 dots per cell. % % PatFreq is a compromise pattern frequency for ps Level 2 printers which is close % to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat % (too badly) against the screen frequencies of any separations for that DPI. /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (5.0) def /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor fMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } def /FMBADEPSF { (Adobe's PostScript Language Reference Manual, 2nd Edition, section H.2.4) (says your EPS file is not valid, as it calls X ) dup dup (X) search pop exch pop exch pop length 5 -1 roll putinterval FMFAILURE } def /fmConcatProcs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin [ /ALDsave /FMdicttop /FMoptop /FMpointsize /FMsaveobject /b /bitmapsave /blut /bpside /bs /bstring /bwidth /c /cf /cs /cynu /depth /edown /fh /fillvals /fw /fx /fy /g /gfile /gindex /grnt /gryt /gstring /height /hh /i /im /indx /is /k /kk /landscape /lb /len /llx /lly /m /magu /manualfeed /n /offbits /onbits /organgle /orgbangle /orgbfreq /orgbproc /orgbxfer /orgfreq /orggangle /orggfreq /orggproc /orggxfer /orgmatrix /orgproc /orgrangle /orgrfreq /orgrproc /orgrxfer /orgxfer /pagesave /paperheight /papersizedict /paperwidth /pos /pwid /r /rad /redt /sl /str /tran /u /urx /ury /val /width /width /ws /ww /x /x1 /x2 /xindex /xpoint /xscale /xx /y /y1 /y2 /yelu /yindex /ypoint /yscale /yy ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known { /fMAcrobat true def /FmPD /pdfmark load def /FmPT /show load def currentdistillerparams /CoreDistVersion get 2000 ge { /FmPD2 /pdfmark load def /FmPA { mark exch /Dest exch 5 3 roll /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD }FmBD } { /FmPD2 /cleartomark load def /FmPA {pop pop pop}FmBD } ifelse } { /fMAcrobat false def /FmPD /cleartomark load def /FmPD2 /cleartomark load def /FmPT /pop load def /FmPA {pop pop pop}FmBD } ifelse /FmDC { transform fMDefaultMatrix itransform cvi exch cvi exch }FmBD /FmBx { dup 3 index lt {3 1 roll exch} if 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if }FmBD /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /fMNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat RealSetrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put fMLevel1 { /patScreenDict 7 dict dup begin <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD [ 0 { pop } dup .5 2 ] FmBD [ 90 { pop } dup .5 2 ] FmBD <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD end def } { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } ifelse /combineColor { FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { fMAcrobat not FMPColor graymode and and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode fMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not fMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /fMDefaultMatrix matrix defaultmatrix def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 fMDefaultMatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix fMatrix2 concatmatrix dup 0 get /sflipx exch def 3 get /sflipy exch def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen fMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /fMNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def fMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse {papersizefailure} if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {2 dict dup /PageSize [paperwidth paperheight] put manualfeed {dup /ManualFeed manualfeed put} if {setpagedevice} stopped {papersizefailure} if } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer fMNegative { 1 1 4 { pop { 1 exch sub } fmConcatProcs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer fMNegative { { 1 exch sub } fmConcatProcs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /papersizefailure { FMAllowPaperSizeMismatch not { (The requested paper size is not available in any currently-installed tray) (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) FMFAILURE } if } def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /BEGINBITMAPCMYK { BITMAPCMYK } def /BEGINBITMAPCMYKc { BITMAPCMYKc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /BEGINBITMAPCMYK { BITMAPCMYKGRAY } def /BEGINBITMAPCMYKc { BITMAPCMYKGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def fMLevel1 { /fmGetFlip { fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse } FmBD } if /setPatternMode { fMLevel1 { 2 index patScreenDict exch known { pop pop patScreenDict exch get aload pop freq mul 5 2 roll fMatrix2 currentmatrix 1 get 0 ne { 3 -1 roll 90 add 3 1 roll sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul } { sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul } ifelse 0 lt {exch pop} {pop} ifelse fMNegative { {neg} fmConcatProcs } if bind systemdict /setscreen get exec /FrameCurGray exch def } { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/ypoint exch def /xpoint exch def /xindex xpoint 1 add 2 div bpside mul cvi def /yindex ypoint 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div fMNegative {1.0 exch sub} if /FrameCurGray exch def } ifelse } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def fMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode fMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode fMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /rip4 { kis cis copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop cis mis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop mis yis copy pop dup dup add is exch cf cs readline pop { ic exch get exec add } forall pop pop yis kis copy pop 3 mul is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /wbytes { dup dup 8 gt { pop 8 idiv mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def cvtProc /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def cvtProc /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def fMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /kk cynu magu min yelu min def /u kk currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch fmConcatProcs settransfer } bind def /BITMAPCOLOR { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def fMLevel1 { colorsetup /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is width depth wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def fMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {ip} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYKc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYK { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /mis width string def /yis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf mis readhexstring pop } { cf yis readhexstring pop } { cf kis readhexstring pop } true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris gis bis width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAYc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop cis mis yis kis width cgray} image bitmapsave restore grestore } bind def /cgray { /ww exch def /k exch def /y exch def /m exch def /c exch def 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add c i 3 -1 roll floor cvi put } for c } bind def /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /yis width string def /mis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf mis readhexstring pop cf yis readhexstring pop cf kis readhexstring pop width cgray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (5.0) FMVERSION 1 1 0 0 612 792 0 1 27 FMDOCUMENT 0 0 /Palatino-Italic FMFONTDEFINE 1 0 /Palatino-Roman FMFONTDEFINE 2 0 /Times-Roman FMFONTDEFINE 3 0 /Palatino-Bold FMFONTDEFINE 4 0 /Times-Bold FMFONTDEFINE 5 0 /Courier FMFONTDEFINE 6 0 /Helvetica FMFONTDEFINE 7 0 /Times-Italic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "1" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 522 99 576 117 R V 0.3 H 0 Z N 54 619.13 558 641.38 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Java\252 Remote Method Invocation) 198 605.79 P (Speci\336cation) 198 583.79 T 1 10 Q -1.3 0.1 (Java\252 Remote Method Invocation \050RMI\051 is a distributed object model for the Java) 198 281.33 B -1.3 0.1 (language that r) 198 270.33 B -1.3 0.1 (etains the semantics of the Java object model, making distributed) 263.68 270.33 B -1.3 0.1 (objects easy to implement and to use. The system combines aspects of the Modula-) 198 259.33 B -1.3 0.1 (3 Network Objects system and Spring\325s subcontract and includes some novel) 198 248.33 B -1.3 0.1 (featur) 198 237.33 B -1.3 0.1 (es made possible by Java. The RMI system is easily extensible and) 224.78 237.33 B -1.3 0.1 (maintainable) 198 226.33 B 2 F -1.3 0.1 (.) 256.98 226.33 B 1 7 Q (Revision 1.41, JDK 1.1.1, Mar) 198 206.33 T (ch 24, 1997) 287.26 206.33 T 0 0 0 1 0 0 0 K [/Creator(FrameMaker xm5.1P2a)/DOCINFO FmPD2 [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.1/DEST FmPD2 [/Dest/F.rmititledoc/DEST FmPD2 [/Title(A)/Rect[45 540 567 650]/ARTICLE FmPD2 [/Title(A)/Rect[45 294 567 540]/ARTICLE FmPD2 [/Title(A)/Rect[45 167 567 297]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 2 10 Q 0 X -0.1 (Cop) 126 659.33 S -0.1 (yright 1996, 1997 Sun Microsystems, Inc.) 142.27 659.33 S -0.1 (2550 Garcia A) 126 648.33 S -0.1 (v) 182.83 648.33 S -0.1 (enue, Mountain V) 187.58 648.33 S -0.1 (ie) 257.87 648.33 S -0.1 (w) 264.64 648.33 S -0.1 (, California 94043-1100 U.S.A.) 271.11 648.33 S -0.1 (All rights reserv) 126 637.33 S -0.1 (ed. Cop) 189.14 637.33 S -0.1 (yright in this document is o) 219.45 637.33 S -0.1 (wned by Sun Microsystems, Inc.) 326.13 637.33 S 1.37 -0.1 (Sun Microsystems, Inc. \050SUN\051 hereby grants to you a fully-paid, none) 126 615.33 B 1.37 -0.1 (xclusi) 414.11 615.33 B 1.37 -0.1 (v) 437.16 615.33 B 1.37 -0.1 (e, nontransferable, perpetual,) 441.91 615.33 B 1.04 -0.1 (w) 126 604.33 B 1.04 -0.1 (orldwide limited license \050without the right to sublicense\051 under SUN's intellectual property rights that are) 133.02 604.33 B -0.17 -0.1 (essential to practice this speci\336cation. This license allo) 126 593.33 B -0.17 -0.1 (ws and is limited to the creation and distrib) 338.16 593.33 B -0.17 -0.1 (ution of clean) 504.86 593.33 B 0.02 -0.1 (room implementations of this speci\336cation that \050i\051 include a complete implementation of the current v) 126 582.33 B 0.02 -0.1 (ersion of) 523.71 582.33 B 0.78 -0.1 (this speci\336cation without subsetting or supersetting, \050ii\051 implement all the interf) 126 571.33 B 0.78 -0.1 (aces and functionality of the) 444.57 571.33 B 0.11 -0.1 (standard ja) 126 560.33 B 0.11 -0.1 (v) 168.41 560.33 B 0.11 -0.1 (a.* packages as de\336ned by SUN, without subsetting or supersetting, \050iii\051 do not add an) 173.06 560.33 B 0.11 -0.1 (y additional) 511.69 560.33 B -0.13 -0.1 (packages, classes or methods to the ja) 126 549.33 B -0.13 -0.1 (v) 272.56 549.33 B -0.13 -0.1 (a.* packages \050i) 277.21 549.33 B -0.13 -0.1 (v\051 pass all test suites relating to the most recent published) 334.89 549.33 B 0.54 -0.1 (v) 126 538.33 B 0.54 -0.1 (ersion of this speci\336cation that are a) 130.75 538.33 B 0.54 -0.1 (v) 274.43 538.33 B 0.54 -0.1 (ailable from SUN six \0506\051 months prior to an) 279.08 538.33 B 0.54 -0.1 (y beta release of the clean) 454.51 538.33 B 0.01 -0.1 (room implementation or upgrade thereto, \050v\051 do not deri) 126 527.33 B 0.01 -0.1 (v) 345.05 527.33 B 0.01 -0.1 (e from SUN source code or binary materials, and \050vi\051) 349.8 527.33 B -0.1 (do not include an) 126 516.33 S -0.1 (y SUN binary materials without an appropriate and separate license from SUN.) 193.31 516.33 S -0.1 (RESTRICTED RIGHTS LEGEND) 126 494.33 S 0.07 -0.1 (Use, duplication, or disclosure by the U.S. Go) 126 472.33 B 0.07 -0.1 (v) 305.91 472.33 B 0.07 -0.1 (ernment is subject to restrictions of F) 310.66 472.33 B 0.07 -0.1 (AR 52.227-14\050g\051\0502\051\0506/87\051) 455.35 472.33 B -0.1 (and F) 126 461.33 S -0.1 (AR 52.227-19\0506/87\051, or DF) 147.26 461.33 S -0.1 (AR 252.227-7015\050b\051\0506/95\051 and DF) 254.29 461.33 S -0.1 (AR 227.7202-1\050a\051.) 390.99 461.33 S -0.1 (TRADEMARKS) 126 439.33 S 0.39 -0.1 (Sun, the Sun logo, Sun Microsystems, Ja) 126 417.33 B 0.39 -0.1 (v) 287.89 417.33 B 0.39 -0.1 (aBeans, JDK, Ja) 292.54 417.33 B 0.39 -0.1 (v) 357.17 417.33 B 0.39 -0.1 (a, HotJa) 361.82 417.33 B 0.39 -0.1 (v) 393.98 417.33 B 0.39 -0.1 (a, the Ja) 398.63 417.33 B 0.39 -0.1 (v) 430.81 417.33 B 0.39 -0.1 (a Cof) 435.46 417.33 B 0.39 -0.1 (fee Cup logo, Ja) 457.04 417.33 B 0.39 -0.1 (v) 521.41 417.33 B 0.39 -0.1 (a W) 526.07 417.33 B 0.39 -0.1 (ork-) 541.74 417.33 B -0.23 -0.1 (Shop, V) 126 406.33 B -0.23 -0.1 (isual Ja) 157.25 406.33 B -0.23 -0.1 (v) 185.74 406.33 B -0.23 -0.1 (a, Solaris, NEO, Joe, Netra, NFS, ONC, ONC+, OpenW) 190.39 406.33 B -0.23 -0.1 (indo) 408.75 406.33 B -0.23 -0.1 (ws, PC-NFS, SNM, SunNet Man-) 425.88 406.33 B 1.13 -0.1 (ager) 126 395.33 B 1.13 -0.1 (, Solaris sunb) 142.41 395.33 B 1.13 -0.1 (urst design, Solstice, SunCore, SolarNet, SunW) 197.23 395.33 B 1.13 -0.1 (eb, Sun W) 388.29 395.33 B 1.13 -0.1 (orkstation, The Netw) 430.79 395.33 B 1.13 -0.1 (ork Is The) 515.65 395.33 B 2.34 -0.1 (Computer) 126 384.33 B 2.34 -0.1 (, T) 164.8 384.33 B 2.34 -0.1 (oolT) 177.15 384.33 B 2.34 -0.1 (alk, Ultra, Ultracomputing, Ultraserv) 194.84 384.33 B 2.34 -0.1 (er) 346.33 384.33 B 2.34 -0.1 (, Where The Netw) 353.5 384.33 B 2.34 -0.1 (ork Is Going, Sun W) 432.69 384.33 B 2.34 -0.1 (orkShop,) 522.41 384.33 B 0.17 -0.1 (XV) 126 373.33 B 0.17 -0.1 (ie) 139.64 373.33 B 0.17 -0.1 (w) 146.41 373.33 B 0.17 -0.1 (, Ja) 152.88 373.33 B 0.17 -0.1 (v) 165.77 373.33 B 0.17 -0.1 (a W) 170.43 373.33 B 0.17 -0.1 (orkShop, the Ja) 185.87 373.33 B 0.17 -0.1 (v) 246.44 373.33 B 0.17 -0.1 (a Cof) 251.09 373.33 B 0.17 -0.1 (fee Cup logo, and V) 272.45 373.33 B 0.17 -0.1 (isual Ja) 351.42 373.33 B 0.17 -0.1 (v) 380.31 373.33 B 0.17 -0.1 (a are trademarks or re) 384.96 373.33 B 0.17 -0.1 (gistered trademarks of) 470.45 373.33 B -0.1 (Sun Microsystems, Inc. in the United States and other countries.) 126 362.33 S -0.1 (UNIX is a re) 126 340.33 S -0.1 (gistered trademark in the United States and other countries, e) 176.02 340.33 S -0.1 (xclusi) 414.07 340.33 S -0.1 (v) 437.11 340.33 S -0.1 (ely licensed through) 441.86 340.33 S -0.1 (X/Open Compan) 126 329.33 S -0.1 (y) 192.6 329.33 S -0.1 (, Ltd. OPEN LOOK\250 is a re) 196.85 329.33 S -0.1 (gistered trademark of No) 308.45 329.33 S -0.1 (v) 406.15 329.33 S -0.1 (ell, Inc.) 410.9 329.33 S 0.14 -0.1 (All SP) 126 307.33 B 0.14 -0.1 (ARC trademarks are used under license and are trademarks or re) 151.02 307.33 B 0.14 -0.1 (gistered trademarks of SP) 404.31 307.33 B 0.14 -0.1 (ARC Interna-) 504.35 307.33 B 0.76 -0.1 (tional, Inc. in the United States and other countries. Products bearing SP) 126 296.33 B 0.76 -0.1 (ARC trademarks are based upon an) 415.48 296.33 B -0.1 (architecture de) 126 285.33 S -0.1 (v) 183.39 285.33 S -0.1 (eloped by Sun Microsystems, Inc.) 188.14 285.33 S 3.18 -0.1 (THIS PUBLICA) 126 263.33 B 3.18 -0.1 (TION IS PR) 194.37 263.33 B 3.18 -0.1 (O) 249.32 263.33 B 3.18 -0.1 (VIDED "AS IS" WITHOUT W) 255.95 263.33 B 3.18 -0.1 (ARRANTY OF ANY KIND, EITHER) 392.18 263.33 B 1.86 -0.1 (EXPRESS OR IMPLIED, INCLUDING, B) 126 252.33 B 1.86 -0.1 (UT NO) 304.56 252.33 B 1.86 -0.1 (T LIMITED T) 335.79 252.33 B 1.86 -0.1 (O, THE IMPLIED W) 396.54 252.33 B 1.86 -0.1 (ARRANTIES OF) 485.95 252.33 B -0.1 (MERCHANT) 126 241.33 S -0.1 (ABILITY) 180.38 241.33 S -0.1 (, FITNESS FOR A P) 218.38 241.33 S -0.1 (AR) 299.94 241.33 S -0.1 (TICULAR PURPOSE, OR NON-INFRINGEMENT) 313.03 241.33 S -0.1 (.) 519.79 241.33 S 4.11 -0.1 (THIS PUBLICA) 126 219.33 B 4.11 -0.1 (TION COULD INCLUDE TECHNICAL IN) 195.3 219.33 B 4.11 -0.1 (A) 387.71 219.33 B 4.11 -0.1 (CCURA) 394.43 219.33 B 4.11 -0.1 (CIES OR TYPOGRAPHICAL) 427.98 219.33 B 3.29 -0.1 (ERR) 126 208.33 B 3.29 -0.1 (ORS. CHANGES ARE PERIODICALL) 144.75 208.33 B 3.29 -0.1 (Y ADDED T) 313.04 208.33 B 3.29 -0.1 (O THE INFORMA) 371.85 208.33 B 3.29 -0.1 (TION HEREIN; THESE) 453.79 208.33 B -0.23 -0.1 (CHANGES WILL BE INCORPORA) 126 197.33 B -0.23 -0.1 (TED IN NEW EDITIONS OF THE PUBLICA) 271.97 197.33 B -0.23 -0.1 (TION. SUN MICR) 454.93 197.33 B -0.23 -0.1 (OSYS-) 529.61 197.33 B 0.15 -0.1 (TEMS, INC. MA) 126 186.33 B 0.15 -0.1 (Y MAKE IMPR) 193.96 186.33 B 0.15 -0.1 (O) 258.88 186.33 B 0.15 -0.1 (VEMENTS AND/OR CHANGES IN THE PR) 265.5 186.33 B 0.15 -0.1 (ODUCT\050S\051 AND/OR THE) 450.16 186.33 B -0.1 (PR) 126 175.33 S -0.1 (OGRAM\050S\051 DESCRIBED IN THIS PUBLICA) 137.63 175.33 S -0.1 (TION A) 323.67 175.33 S -0.1 (T ANY TIME.) 355.56 175.33 S -0.1 (F) 126 153.33 S -0.1 (or further information on Intellectual Property matters contact Sun Le) 131.31 153.33 S -0.1 (g) 403.28 153.33 S -0.1 (al Department:) 408.13 153.33 S -0.1 ( T) 126 131.33 S -0.1 (rademarks, Jan O'Dell at 415-786-8191) 146.06 131.33 S -0.1 ( P) 126 120.33 S -0.1 (atents at 415-336-0069) 145.71 120.33 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.2/DEST FmPD2 [/Dest/L.rmititledoc/DEST FmPD2 [/Title(A)/Rect[45 108 567 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "2" 2 %%Page: "iii" 3 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page iii) 528.51 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (T) 198 509.31 P -2.5 (able of Contents) 208 509.31 P 3 11 Q 0.11 (1) 210.39 459.01 S 0.11 (Introduction) 225 459.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 291.71 459.01 S 0.11 (1) 552.39 459.01 S 1 F 0.11 (1.1) 230.72 438.01 S 0.11 (Overview) 252 438.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 303.15 438.01 S 0.11 (1) 552.39 438.01 S 0.11 (1.2) 230.72 417.01 S 0.11 (System Goals) 252 417.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 320.31 417.01 S 0.11 (2) 552.39 417.01 S 3 F 0.11 (2) 210.39 396.01 S 0.11 (Java Distributed Object Model) 225 396.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . .) 383.23 396.01 S 0.11 (5) 552.39 396.01 S 1 F 0.11 (2.1) 230.72 375.01 S 0.11 (De\336nition of T) 252 375.01 S 0.11 (erms) 323.67 375.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 348.91 375.01 S 0.11 (5) 552.39 375.01 S 0.11 (2.2) 230.72 354.01 S 0.11 (The Distributed and Nondistributed Models Contrasted) 252 354.01 S 0.11 (6) 552.39 354.01 S 0.11 (2.3) 230.72 333.01 S 0.11 (RMI Interfaces and Classes) 252 333.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . .) 388.95 333.01 S 0.11 (7) 552.39 333.01 S 0.11 (2.4) 230.72 312.01 S 0.11 (Implementing a Remote Interface) 252 312.01 S 0.11 ( . . . . . . . . . . . . . . . . . . .) 420.41 312.01 S 0.11 (9) 552.39 312.01 S 0.11 (2.5) 230.72 291.01 S 0.11 (T) 252 291.01 S 0.11 (ype Equivalency of Remote Objects with Local Stub) 257.86 291.01 S 0.11 (. . .) 514.79 291.01 S 0.11 (10) 546.78 291.01 S 0.11 (2.6) 230.72 270.01 S 0.11 (Parameter Passing in Remote Method Invocation) 252 270.01 S 0.11 (. . . . . .) 497.63 270.01 S 0.11 (10) 546.78 270.01 S 0.11 (2.7) 230.72 249.01 S 0.11 (Exception Handling in Remote Method Invocation) 252 249.01 S 0.11 (. . . . .) 503.35 249.01 S 0.11 (1) 547.39 249.01 S 0.11 (1) 552.39 249.01 S 0.11 (2.8) 230.72 228.01 S 0.11 (Object Methods Overridden by the RemoteObject Class) 252 228.01 S 0.11 (1) 547.39 228.01 S 0.11 (1) 552.39 228.01 S 0.11 (2.9) 230.72 207.01 S 0.11 (The Semantics of Object Methods Declar) 252 207.01 S 0.11 (ed \336nal) 452.61 207.01 S 0.11 (. . . . . . .) 491.91 207.01 S 0.11 (13) 546.78 207.01 S 0.11 (2.10) 225.11 186.01 S 0.11 (Locating Remote Objects) 252 186.01 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . .) 377.51 186.01 S 0.11 (13) 546.78 186.01 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.iii/DEST FmPD2 [/Dest/F.rmiTOCdoc/DEST FmPD2 [/Rect[54 455 558 466]/Border[0 0 0]/Dest/G3.60/LNK FmPD2 [/Rect[54 434 558 445]/Border[0 0 0]/Dest/G3.718/LNK FmPD2 [/Rect[54 413 558 424]/Border[0 0 0]/Dest/G3.215/LNK FmPD2 [/Rect[54 392 558 403]/Border[0 0 0]/Dest/G4.167/LNK FmPD2 [/Rect[54 371 558 382]/Border[0 0 0]/Dest/G4.3441/LNK FmPD2 [/Rect[54 350 558 361]/Border[0 0 0]/Dest/G4.182/LNK FmPD2 [/Rect[54 329 558 340]/Border[0 0 0]/Dest/G4.213/LNK FmPD2 [/Rect[54 308 558 319]/Border[0 0 0]/Dest/G4.1830/LNK FmPD2 [/Rect[54 287 558 298]/Border[0 0 0]/Dest/G4.307/LNK FmPD2 [/Rect[54 266 558 277]/Border[0 0 0]/Dest/G4.2521/LNK FmPD2 [/Rect[54 245 558 256]/Border[0 0 0]/Dest/G4.315/LNK FmPD2 [/Rect[54 224 558 235]/Border[0 0 0]/Dest/G4.3734/LNK FmPD2 [/Rect[54 203 558 214]/Border[0 0 0]/Dest/G4.2490/LNK FmPD2 [/Rect[54 182 558 193]/Border[0 0 0]/Dest/G4.357/LNK FmPD2 [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "iii" 3 %%Page: "iv" 4 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page iv) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 11 Q 0 X 0 0 0 1 0 0 0 K 0.11 (3) 210.39 640.67 S 0.11 (System Architecture) 225 640.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 328.89 640.67 S 0.11 (15) 546.78 640.67 S 1 F 0.11 (3.1) 230.72 619.67 S 0.11 (Overview) 252 619.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 303.15 619.67 S 0.11 (15) 546.78 619.67 S 0.11 (3.2) 230.72 598.67 S 0.11 (Ar) 252 598.67 S 0.11 (chitectural Overview) 264.92 598.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 371.79 598.67 S 0.11 (16) 546.78 598.67 S 0.11 (3.3) 230.72 577.67 S 0.11 (The Stub/Skeleton Layer) 252 577.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . .) 377.51 577.67 S 0.11 (18) 546.78 577.67 S 0.11 (3.4) 230.72 556.67 S 0.11 (The Remote Refer) 252 556.67 S 0.11 (ence Layer) 340.56 556.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . .) 394.67 556.67 S 0.11 (19) 546.78 556.67 S 0.11 (3.5) 230.72 535.67 S 0.11 (The T) 252 535.67 S 0.11 (ransport Layer) 279.47 535.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 354.63 535.67 S 0.11 (20) 546.78 535.67 S 0.11 (3.6) 230.72 514.67 S 0.11 (Thr) 252 514.67 S 0.11 (ead Usage in Remote Method Invocations) 269.62 514.67 S 0.11 ( . . . . . . . . .) 477.61 514.67 S 0.11 (21) 546.78 514.67 S 0.11 (3.7) 230.72 493.67 S 0.11 (Garbage Collection of Remote Objects) 252 493.67 S 0.11 (. . . . . . . . . . . . . . . .) 440.43 493.67 S 0.11 (21) 546.78 493.67 S 0.11 (3.8) 230.72 472.67 S 0.11 (Dynamic Class Loading) 252 472.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 371.79 472.67 S 0.11 (22) 546.78 472.67 S 0.11 (3.9) 230.72 451.67 S 0.11 (Security) 252 451.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 294.57 451.67 S 0.11 (26) 546.78 451.67 S 0.11 (3.10) 225.11 430.67 S 0.11 (Con\336guration Scenarios) 252 430.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . .) 374.65 430.67 S 0.11 (27) 546.78 430.67 S 0.11 (3.1) 225.71 409.67 S 0.11 (1) 239.19 409.67 S 0.11 (RMI Thr) 252 409.67 S 0.11 (ough Fir) 294.27 409.67 S 0.11 (ewalls V) 336.52 409.67 S 0.11 (ia Pr) 378.5 409.67 S 0.11 (oxies) 401.29 409.67 S 0.11 (. . . . . . . . . . . . . . . . . .) 428.99 409.67 S 0.11 (29) 546.78 409.67 S 3 F 0.11 (4) 210.39 388.67 S 0.11 (Client Interfaces) 225 388.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 311.73 388.67 S 0.11 (33) 546.78 388.67 S 1 F 0.11 (4.1) 230.72 367.67 S 0.11 (The Remote Interface) 252 367.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 360.35 367.67 S 0.11 (33) 546.78 367.67 S 0.11 (4.2) 230.72 346.67 S 0.11 (The RemoteException Class) 252 346.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . .) 391.81 346.67 S 0.11 (33) 546.78 346.67 S 0.11 (4.3) 230.72 325.67 S 0.11 (The Naming Class) 252 325.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 346.05 325.67 S 0.11 (34) 546.78 325.67 S 3 F 0.11 (5) 210.39 304.67 S 0.11 (Server Interfaces) 225 304.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 311.73 304.67 S 0.11 (37) 546.78 304.67 S 1 F 0.11 (5.1) 230.72 283.67 S 0.11 (The RemoteObject Class) 252 283.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . .) 374.65 283.67 S 0.11 (38) 546.78 283.67 S 0.11 (5.2) 230.72 262.67 S 0.11 (The RemoteServer Class) 252 262.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . .) 374.65 262.67 S 0.11 (38) 546.78 262.67 S 0.11 (5.3) 230.72 241.67 S 0.11 (The UnicastRemoteObject Class) 252 241.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . .) 411.83 241.67 S 0.11 (39) 546.78 241.67 S 0.11 (5.4) 230.72 220.67 S 0.11 (The Unr) 252 220.67 S 0.11 (efer) 293.04 220.67 S 0.11 (enced Interface) 311.83 220.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . .) 388.95 220.67 S 0.11 (41) 546.78 220.67 S 0.11 (5.5) 230.72 199.67 S 0.11 (The RMISecurityManager Class) 252 199.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . .) 411.83 199.67 S 0.11 (41) 546.78 199.67 S 0.11 (5.6) 230.72 178.67 S 0.11 (The RMIClassLoader Class) 252 178.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . .) 388.95 178.67 S 0.11 (45) 546.78 178.67 S 0.11 (5.7) 230.72 157.67 S 0.11 (The LoaderHandler Interface) 252 157.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . .) 397.53 157.67 S 0.11 (46) 546.78 157.67 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.iv/DEST FmPD2 [/Rect[54 182 558 193]/Border[0 0 0]/Dest/G4.357/LNK FmPD2 [/Rect[54 637 558 648]/Border[0 0 0]/Dest/G5.60/LNK FmPD2 [/Rect[54 616 558 627]/Border[0 0 0]/Dest/G5.194/LNK FmPD2 [/Rect[54 595 558 606]/Border[0 0 0]/Dest/G5.200/LNK FmPD2 [/Rect[54 574 558 585]/Border[0 0 0]/Dest/G5.240/LNK FmPD2 [/Rect[54 553 558 564]/Border[0 0 0]/Dest/G5.583/LNK FmPD2 [/Rect[54 532 558 543]/Border[0 0 0]/Dest/G5.264/LNK FmPD2 [/Rect[54 511 558 522]/Border[0 0 0]/Dest/G5.5112/LNK FmPD2 [/Rect[54 490 558 501]/Border[0 0 0]/Dest/G5.5097/LNK FmPD2 [/Rect[54 469 558 480]/Border[0 0 0]/Dest/G5.280/LNK FmPD2 [/Rect[54 448 558 459]/Border[0 0 0]/Dest/G5.4041/LNK FmPD2 [/Rect[54 427 558 438]/Border[0 0 0]/Dest/G5.4018/LNK FmPD2 [/Rect[54 406 558 417]/Border[0 0 0]/Dest/G5.4799/LNK FmPD2 [/Rect[54 385 558 396]/Border[0 0 0]/Dest/G6.60/LNK FmPD2 [/Rect[54 364 558 375]/Border[0 0 0]/Dest/G6.1174/LNK FmPD2 [/Rect[54 343 558 354]/Border[0 0 0]/Dest/G6.163/LNK FmPD2 [/Rect[54 322 558 333]/Border[0 0 0]/Dest/G6.1620/LNK FmPD2 [/Rect[54 301 558 312]/Border[0 0 0]/Dest/G7.60/LNK FmPD2 [/Rect[54 280 558 291]/Border[0 0 0]/Dest/G7.4597/LNK FmPD2 [/Rect[54 259 558 270]/Border[0 0 0]/Dest/G7.5462/LNK FmPD2 [/Rect[54 238 558 249]/Border[0 0 0]/Dest/G7.5794/LNK FmPD2 [/Rect[54 217 558 228]/Border[0 0 0]/Dest/G7.179/LNK FmPD2 [/Rect[54 196 558 207]/Border[0 0 0]/Dest/G7.1638/LNK FmPD2 [/Rect[54 175 558 186]/Border[0 0 0]/Dest/G7.1639/LNK FmPD2 [/Rect[54 154 558 165]/Border[0 0 0]/Dest/G7.6583/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "iv" 4 %%Page: "v" 5 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (T) 198 108.7 B -0.58 0.09 (able of Contents) 202.78 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K -0.58 0.09 (Page v) 531.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 11 Q 0 X 0 0 0 1 0 0 0 K 0.11 (5.8) 230.72 640.67 S 0.11 (The RMISocketFactory Class) 252 640.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . .) 394.67 640.67 S 0.11 (46) 546.78 640.67 S 0.11 (5.9) 230.72 619.67 S 0.11 (The RMIFailur) 252 619.67 S 0.11 (eHandler Interface) 324.85 619.67 S 0.11 ( . . . . . . . . . . . . . . . . . . .) 420.41 619.67 S 0.11 (48) 546.78 619.67 S 0.11 (5.10) 225.11 598.67 S 0.11 (The LogStr) 252 598.67 S 0.11 (eam Class) 306.61 598.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 357.49 598.67 S 0.11 (48) 546.78 598.67 S 0.11 (5.1) 225.71 577.67 S 0.11 (1) 239.19 577.67 S 0.11 (Stub and Skeleton Compiler) 252 577.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . .) 391.81 577.67 S 0.11 (50) 546.78 577.67 S 3 F 0.11 (6) 210.39 556.67 S 0.11 (Registry Interfaces) 225 556.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 323.17 556.67 S 0.11 (51) 546.78 556.67 S 1 F 0.11 (6.1) 230.72 535.67 S 0.11 (The Registry Interface) 252 535.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 363.21 535.67 S 0.11 (51) 546.78 535.67 S 0.11 (6.2) 230.72 514.67 S 0.11 (The LocateRegistry Class) 252 514.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . .) 377.51 514.67 S 0.11 (53) 546.78 514.67 S 0.11 (6.3) 230.72 493.67 S 0.11 (The RegistryHandler Interface) 252 493.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . .) 403.25 493.67 S 0.11 (54) 546.78 493.67 S 3 F 0.11 (7) 210.39 472.67 S 0.11 (Stub/Skeleton Interfaces) 225 472.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 351.77 472.67 S 0.11 (55) 546.78 472.67 S 1 F 0.11 (7.1) 230.72 451.67 S 0.11 (The RemoteStub Class) 252 451.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 363.21 451.67 S 0.11 (55) 546.78 451.67 S 0.11 (7.2) 230.72 430.67 S 0.11 (The RemoteCall Interface) 252 430.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . .) 380.37 430.67 S 0.11 (56) 546.78 430.67 S 0.11 (7.3) 230.72 409.67 S 0.11 (The RemoteRef Interface) 252 409.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . .) 374.65 409.67 S 0.11 (57) 546.78 409.67 S 0.11 (7.4) 230.72 388.67 S 0.11 (The ServerRef Interface) 252 388.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 368.93 388.67 S 0.11 (58) 546.78 388.67 S 0.11 (7.5) 230.72 367.67 S 0.11 (The Skeleton Interface) 252 367.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 363.21 367.67 S 0.11 (59) 546.78 367.67 S 0.11 (7.6) 230.72 346.67 S 0.11 (The Operation Class) 252 346.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 354.63 346.67 S 0.11 (59) 546.78 346.67 S 3 F 0.11 (8) 210.39 325.67 S 0.11 (Garbage Collector Interfaces) 225 325.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 371.79 325.67 S 0.11 (61) 546.78 325.67 S 1 F 0.11 (8.1) 230.72 304.67 S 0.11 (The Interface DGC) 252 304.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 346.05 304.67 S 0.11 (61) 546.78 304.67 S 0.11 (8.2) 230.72 283.67 S 0.11 (The Lease Class) 252 283.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 331.75 283.67 S 0.11 (63) 546.78 283.67 S 0.11 (8.3) 230.72 262.67 S 0.11 (The ObjID Class) 252 262.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 334.61 262.67 S 0.11 (63) 546.78 262.67 S 0.11 (8.4) 230.72 241.67 S 0.11 (The UID Class) 252 241.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 326.03 241.67 S 0.11 (65) 546.78 241.67 S 0.11 (8.5) 230.72 220.67 S 0.11 (The VMID Class) 252 220.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 334.61 220.67 S 0.11 (66) 546.78 220.67 S 3 F 0.11 (9) 210.39 199.67 S 0.11 (RMI W) 225 199.67 S 0.11 (ire Protocol) 262.11 199.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 323.17 199.67 S 0.11 (67) 546.78 199.67 S 1 F 0.11 (9.1) 230.72 178.67 S 0.11 (Overview) 252 178.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 303.15 178.67 S 0.11 (67) 546.78 178.67 S 0.11 (9.2) 230.72 157.67 S 0.11 (RMI T) 252 157.67 S 0.11 (ransport Pr) 282.51 157.67 S 0.11 (otocol) 338.72 157.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . .) 371.79 157.67 S 0.11 (68) 546.78 157.67 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.v/DEST FmPD2 [/Rect[54 154 558 165]/Border[0 0 0]/Dest/G7.6583/LNK FmPD2 [/Rect[54 637 558 648]/Border[0 0 0]/Dest/G7.4175/LNK FmPD2 [/Rect[54 616 558 627]/Border[0 0 0]/Dest/G7.4381/LNK FmPD2 [/Rect[54 595 558 606]/Border[0 0 0]/Dest/G7.1621/LNK FmPD2 [/Rect[54 574 558 585]/Border[0 0 0]/Dest/G7.5845/LNK FmPD2 [/Rect[54 553 558 564]/Border[0 0 0]/Dest/G8.60/LNK FmPD2 [/Rect[54 532 558 543]/Border[0 0 0]/Dest/G8.186/LNK FmPD2 [/Rect[54 511 558 522]/Border[0 0 0]/Dest/G8.6378/LNK FmPD2 [/Rect[54 490 558 501]/Border[0 0 0]/Dest/G8.6564/LNK FmPD2 [/Rect[54 469 558 480]/Border[0 0 0]/Dest/G9.60/LNK FmPD2 [/Rect[54 448 558 459]/Border[0 0 0]/Dest/G9.4526/LNK FmPD2 [/Rect[54 427 558 438]/Border[0 0 0]/Dest/G9.161/LNK FmPD2 [/Rect[54 406 558 417]/Border[0 0 0]/Dest/G9.5474/LNK FmPD2 [/Rect[54 385 558 396]/Border[0 0 0]/Dest/G9.6689/LNK FmPD2 [/Rect[54 364 558 375]/Border[0 0 0]/Dest/G9.5718/LNK FmPD2 [/Rect[54 343 558 354]/Border[0 0 0]/Dest/G9.6598/LNK FmPD2 [/Rect[54 322 558 333]/Border[0 0 0]/Dest/G10.60/LNK FmPD2 [/Rect[54 301 558 312]/Border[0 0 0]/Dest/G10.6449/LNK FmPD2 [/Rect[54 280 558 291]/Border[0 0 0]/Dest/G10.6770/LNK FmPD2 [/Rect[54 259 558 270]/Border[0 0 0]/Dest/G10.7144/LNK FmPD2 [/Rect[54 238 558 249]/Border[0 0 0]/Dest/G10.6758/LNK FmPD2 [/Rect[54 217 558 228]/Border[0 0 0]/Dest/G10.6613/LNK FmPD2 [/Rect[54 196 558 207]/Border[0 0 0]/Dest/G11.60/LNK FmPD2 [/Rect[54 175 558 186]/Border[0 0 0]/Dest/G11.3243/LNK FmPD2 [/Rect[54 154 558 165]/Border[0 0 0]/Dest/G11.3249/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "v" 5 %%Page: "vi" 6 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page vi) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 11 Q 0 X 0 0 0 1 0 0 0 K 0.11 (9.3) 230.72 640.67 S 0.11 (RMI\325s Use of Object Serialization Pr) 252 640.67 S 0.11 (otocol) 429.57 640.67 S 0.11 ( . . . . . . . . . . . .) 460.45 640.67 S 0.11 (71) 546.78 640.67 S 0.11 (9.4) 230.72 619.67 S 0.11 (RMI\325s Use of HTTP POST Pr) 252 619.67 S 0.11 (otocol) 393.72 619.67 S 0.11 ( . . . . . . . . . . . . . . . . . .) 426.13 619.67 S 0.11 (72) 546.78 619.67 S 0.11 (9.5) 230.72 598.67 S 0.11 (Application Speci\336c V) 252 598.67 S 0.11 (alues for RMI) 361.78 598.67 S 0.11 ( . . . . . . . . . . . . . . . . .) 431.85 598.67 S 0.11 (72) 546.78 598.67 S 0.11 (9.6) 230.72 577.67 S 0.11 (RMI\325s Multiplexing Pr) 252 577.67 S 0.11 (otocol) 363.29 577.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . .) 394.67 577.67 S 0.11 (73) 546.78 577.67 S 3 F 0.11 (A) 207.33 556.67 S 0.11 (Exceptions In RMI) 225 556.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 323.17 556.67 S 0.11 (81) 546.78 556.67 S 1 F 0.11 (A.1) 227.66 535.67 S 0.11 (Exceptions During Remote Object Export) 252 535.67 S 0.11 (. . . . . . . . . . . . .) 457.59 535.67 S 0.11 (82) 546.78 535.67 S 0.11 (A.2) 227.66 514.67 S 0.11 (Exceptions During RMI Call) 252 514.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . .) 394.67 514.67 S 0.11 (83) 546.78 514.67 S 0.11 (A.3) 227.66 493.67 S 0.11 (Exceptions or Err) 252 493.67 S 0.11 (ors During Return) 337.95 493.67 S 0.11 ( . . . . . . . . . . . . . . . . .) 431.85 493.67 S 0.11 (83) 546.78 493.67 S 0.11 (A.4) 227.66 472.67 S 0.11 (Naming Exceptions) 252 472.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 351.77 472.67 S 0.11 (84) 546.78 472.67 S 0.11 (A.5) 227.66 451.67 S 0.11 (Other Exceptions) 252 451.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 340.33 451.67 S 0.11 (85) 546.78 451.67 S 3 F 0.11 (B) 208.55 430.67 S 0.11 (Properties In RMI) 225 430.67 S 0.11 (. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 320.31 430.67 S 0.11 (87) 546.78 430.67 S 1 F 0.11 (B.1) 229.5 409.67 S 0.11 (Server Pr) 252 409.67 S 0.11 (operties) 297.75 409.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 340.33 409.67 S 0.11 (88) 546.78 409.67 S 0.11 (B.2) 229.5 388.67 S 0.11 (Other Pr) 252 388.67 S 0.11 (operties) 294.67 388.67 S 0.11 ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .) 334.61 388.67 S 0.11 (89) 546.78 388.67 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.vi/DEST FmPD2 [/Dest/L.rmiTOCdoc/DEST FmPD2 [/Rect[54 154 558 165]/Border[0 0 0]/Dest/G11.3249/LNK FmPD2 [/Rect[54 637 558 648]/Border[0 0 0]/Dest/G11.3270/LNK FmPD2 [/Rect[54 616 558 627]/Border[0 0 0]/Dest/G11.3278/LNK FmPD2 [/Rect[54 595 558 606]/Border[0 0 0]/Dest/G11.3474/LNK FmPD2 [/Rect[54 574 558 585]/Border[0 0 0]/Dest/G11.3477/LNK FmPD2 [/Rect[54 553 558 564]/Border[0 0 0]/Dest/G12.3601/LNK FmPD2 [/Rect[54 532 558 543]/Border[0 0 0]/Dest/G12.4746/LNK FmPD2 [/Rect[54 511 558 522]/Border[0 0 0]/Dest/G12.4332/LNK FmPD2 [/Rect[54 490 558 501]/Border[0 0 0]/Dest/G12.4940/LNK FmPD2 [/Rect[54 469 558 480]/Border[0 0 0]/Dest/G12.4823/LNK FmPD2 [/Rect[54 448 558 459]/Border[0 0 0]/Dest/G12.4824/LNK FmPD2 [/Rect[54 427 558 438]/Border[0 0 0]/Dest/G13.3601/LNK FmPD2 [/Rect[54 406 558 417]/Border[0 0 0]/Dest/G13.4746/LNK FmPD2 [/Rect[252 385 558 396]/Border[0 0 0]/Dest/G13.4332/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "vi" 6 %%Page: "1" 7 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (1) 553.41 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K (Intr) 198 509.31 T (oduction) 229.86 509.31 T 54 653/G3.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (1) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 4 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.1 (Overview) 210.6 438.68 S 4 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (System Goals) 210.6 420.28 B 0 15 Q (1.1) 67.47 386.54 T (Overview) 97.27 386.54 T 54 531/G3.718 FmPA 1 10 Q 0.52 0.1 (Distributed systems r) 198 364.88 B 0.52 0.1 (equir) 295.8 364.88 B 0.52 0.1 (e that computations r) 319.4 364.88 B 0.52 0.1 (unning in dif) 417.28 364.88 B 0.52 0.1 (fer) 477.48 364.88 B 0.52 0.1 (ent addr) 489.67 364.88 B 0.52 0.1 (ess) 528.34 364.88 B 0.52 0.1 (spaces, potentially on dif) 198 352.48 B 0.52 0.1 (fer) 312.22 352.48 B 0.52 0.1 (ent hosts, be able to communicate. For a basic) 324.41 352.48 B 0.52 0.1 (communication mechanism, the Java\252 language supports sockets, which ar) 198 340.08 B 0.52 0.1 (e) 544.65 340.08 B -0.06 0.1 (\337exible and suf) 198 327.68 B -0.06 0.1 (\336cient for general communication. However) 266.89 327.68 B -0.06 0.1 (, sockets r) 465.83 327.68 B -0.06 0.1 (equir) 510.07 327.68 B -0.06 0.1 (e the) 533.67 327.68 B 0.52 0.1 (client and server to engage in applications-level pr) 198 315.28 B 0.52 0.1 (otocols to encode and) 429.87 315.28 B 0.52 0.1 (decode messages for exchange, and the design of such pr) 198 302.88 B 0.52 0.1 (otocols is) 460.02 302.88 B 0.52 0.1 (cumbersome and can be err) 198 290.48 B 0.52 0.1 (or) 324.49 290.48 B 0.52 0.1 (-pr) 333.92 290.48 B 0.52 0.1 (one.) 347.33 290.48 B 0.52 0.1 (An alternative to sockets is Remote Pr) 198 270.08 B 0.52 0.1 (ocedur) 372.34 270.08 B 0.52 0.1 (e Call \050RPC\051, which abstracts the) 403.54 270.08 B 0.52 0.1 (communication interface to the level of a pr) 198 257.68 B 0.52 0.1 (ocedur) 398.25 257.68 B 0.52 0.1 (e call. Instead of working) 429.45 257.68 B 0.52 0.1 (dir) 198 245.28 B 0.52 0.1 (ectly with sockets, the pr) 211.09 245.28 B 0.52 0.1 (ogrammer has the illusion of calling a local) 325.2 245.28 B 0 0.1 (pr) 198 232.88 B 0 0.1 (ocedur) 207.98 232.88 B 0 0.1 (e, when in fact the ar) 239.18 232.88 B 0 0.1 (guments of the call ar) 333.35 232.88 B 0 0.1 (e packaged up and shipped) 430.77 232.88 B 0.52 0.1 (of) 198 220.48 B 0.52 0.1 (f to the r) 206.81 220.48 B 0.52 0.1 (emote tar) 246.56 220.48 B 0.52 0.1 (get of the call. RPC systems encode ar) 289.64 220.48 B 0.52 0.1 (guments and r) 463.76 220.48 B 0.52 0.1 (eturn) 530.33 220.48 B 0.52 0.1 (values using an external data r) 198 208.08 B 0.52 0.1 (epr) 339.02 208.08 B 0.52 0.1 (esentation, such as XDR.) 353.89 208.08 B 0.52 0.1 (RPC, however) 198 187.68 B 0.52 0.1 (, does not translate well into distributed object systems, wher) 262.59 187.68 B 0.52 0.1 (e) 543.64 187.68 B 0.52 0.1 (communication between pr) 198 175.28 B 0.52 0.1 (ogram-level) 322.75 175.28 B 0 F 0.52 0.1 (objects) 380.15 175.28 B 1 F 0.52 0.1 ( r) 407.88 175.28 B 0.52 0.1 (esiding in dif) 414.87 175.28 B 0.52 0.1 (fer) 475.55 175.28 B 0.52 0.1 (ent addr) 487.74 175.28 B 0.52 0.1 (ess) 526.42 175.28 B 0.52 0.1 (spaces is needed. In or) 198 162.88 B 0.52 0.1 (der to match the semantics of object invocation,) 301.58 162.88 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.1/DEST FmPD2 [/Dest/F.rmiintrodoc/DEST FmPD2 97 541/M3.9.38898.Head1.11.Overview FmPA 97 541/I3.1.720 FmPA [/Rect[211 434 255 449]/Border[0 0 0]/Page 7/View[/XYZ null 97 541 FmDC exch pop null]/LNK FmPD [/Rect[211 415 272 430]/Border[0 0 0]/Page 8/View[/XYZ null 97 617 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "1" 7 %%Page: "2" 8 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (2) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (distributed object systems r) 198 641.33 B 0.52 0.1 (equir) 323.71 641.33 B 0.52 0.1 (e) 347.31 641.33 B 0 F 0.52 0.1 (remote method invocation) 355.32 641.33 B 1 F 0.52 0.1 ( or RMI. In such) 462.82 641.33 B 0.52 0.1 (systems, a local surr) 198 628.93 B 0.52 0.1 (ogate \050stub\051 object manages the invocation on a r) 290.53 628.93 B 0.52 0.1 (emote) 515.09 628.93 B 0.1 (object.) 198 616.53 S 0.52 0.1 (The Java r) 198 596.13 B 0.52 0.1 (emote method invocation system described in this speci\336cation has) 244.53 596.13 B -0.05 0.1 (been speci\336cally designed to operate in the Java envir) 198 583.73 B -0.05 0.1 (onment. While other RMI) 440.01 583.73 B 0.52 0.1 (systems can be adapted to handle Java objects, these systems fall short of) 198 571.33 B 0.52 0.1 (seamless integration with the Java system due to their inter) 198 558.93 B 0.52 0.1 (operability) 469.99 558.93 B 0.52 0.1 (r) 198 546.53 B 0.52 0.1 (equir) 201.87 546.53 B 0.52 0.1 (ement with other languages. For example, CORBA pr) 225.47 546.53 B 0.52 0.1 (esumes a) 470.28 546.53 B 0.52 0.1 (heter) 198 534.13 B 0.52 0.1 (ogeneous, multilanguage envir) 220.93 534.13 B 0.52 0.1 (onment and thus must have a language-) 362.07 534.13 B 0.39 0.1 (neutral object model. In contrast, the Java language\325s RMI system assumes the) 198 521.73 B 0.52 0.1 (homogeneous envir) 198 509.33 B 0.52 0.1 (onment of the Java V) 287.92 509.33 B 0.52 0.1 (irtual Machine, and the system can) 384.29 509.33 B 0.52 0.1 (ther) 198 496.93 B 0.52 0.1 (efor) 216.04 496.93 B 0.52 0.1 (e take advantage of the Java object model whenever possible.) 233.79 496.93 B 0 15 Q (1.2) 67.47 463.2 T -0.94 (System Goals) 97.27 463.2 P 54 607/G3.215 FmPA 1 10 Q 0.52 0.1 (The goals for supporting distributed objects in the Java language ar) 198 441.53 B 0.52 0.1 (e:) 507.08 441.53 B 4 14 Q 0.14 (\245) 198 423.13 S 1 10 Q 0.29 0.1 (Support seamless r) 210.6 423.13 B 0.29 0.1 (emote invocation on objects in dif) 296.76 423.13 B 0.29 0.1 (fer) 450.2 423.13 B 0.29 0.1 (ent virtual machines.) 462.39 423.13 B 4 14 Q 0.14 (\245) 198 404.73 S 1 10 Q 0.52 0.1 (Support callbacks fr) 210.6 404.73 B 0.52 0.1 (om servers to applets.) 301.74 404.73 B 4 14 Q 0.14 (\245) 198 386.33 S 1 10 Q 0.52 0.1 (Integrate the distributed object model into the Java language in a natural) 210.6 386.33 B 0.52 0.1 (way while r) 210.6 373.93 B 0.52 0.1 (etaining most of the Java language\325s object semantics.) 265.18 373.93 B 4 14 Q 0.14 (\245) 198 355.53 S 1 10 Q 0.25 0.1 (Make dif) 210.6 355.53 B 0.25 0.1 (fer) 251.12 355.53 B 0.25 0.1 (ences between the distributed object model and local Java object) 263.31 355.53 B 0.52 0.1 (model appar) 210.6 343.13 B 0.52 0.1 (ent.) 268.61 343.13 B 4 14 Q 0.14 (\245) 198 324.73 S 1 10 Q 0.52 0.1 (Make writing r) 210.6 324.73 B 0.52 0.1 (eliable distributed applications as simple as possible.) 279.37 324.73 B 4 14 Q 0.14 (\245) 198 306.33 S 1 10 Q 0.52 0.1 (Pr) 210.6 306.33 B 0.52 0.1 (eserve the safety pr) 220.61 306.33 B 0.52 0.1 (ovided by the Java r) 309.71 306.33 B 0.52 0.1 (untime envir) 402.63 306.33 B 0.52 0.1 (onment.) 461.43 306.33 B 0.03 0.1 (Underlying all these goals is a general r) 198 285.93 B 0.03 0.1 (equir) 376.67 285.93 B 0.03 0.1 (ement that the RMI model be both) 400.27 285.93 B 0.52 0.1 (simple \050easy to use\051 and natural \050\336ts well in the language\051.) 198 273.53 B -0.06 0.1 (In addition, the RMI system should allow extensions such as garbage collection) 198 253.13 B 0.52 0.1 (of r) 198 240.73 B 0.52 0.1 (emote objects, server r) 213.98 240.73 B 0.52 0.1 (eplication, and the activation of persistent objects to) 316.17 240.73 B 0.29 0.1 (service an invocation. These extensions should be transpar) 198 228.33 B 0.29 0.1 (ent to the client and) 464.34 228.33 B 0.52 0.1 (add minimal implementation r) 198 215.93 B 0.52 0.1 (equir) 338.66 215.93 B 0.52 0.1 (ements on the part of the servers that use) 362.26 215.93 B 0.52 0.1 (them. T) 198 203.53 B 0.52 0.1 (o support these extensions, the system should also support:) 232.13 203.53 B 4 14 Q 0.14 (\245) 198 185.13 S 1 10 Q 0.52 0.1 (Several invocation mechanisms; for example simple invocation to a single) 210.6 185.13 B 0.22 0.1 (object or invocation to an object r) 210.6 172.73 B 0.22 0.1 (eplicated at multiple locations. The system) 361.5 172.73 B 0.52 0.1 (should also be extensible to other invocation paradigms.) 210.6 160.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.2/DEST FmPD2 97 617/M3.9.17017.Head1.12.System.Goals FmPA 97 617/I3.1.725 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "2" 8 %%Page: "3" 9 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (1) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Intr) 243.15 108.7 B -0.58 0.09 (oduction) 257.85 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (3) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0 X 0 0 0 1 0 0 0 K 0.14 (\245) 198 641.33 S 1 10 Q 0.52 0.1 (V) 210.6 641.33 B 0.52 0.1 (arious r) 217 641.33 B 0.52 0.1 (efer) 252.18 641.33 B 0.52 0.1 (ence semantics for r) 269.26 641.33 B 0.52 0.1 (emote objects; for example live) 360.2 641.33 B 0.52 0.1 (\050nonpersistent\051 r) 210.6 628.93 B 0.52 0.1 (efer) 286.12 628.93 B 0.52 0.1 (ences, persistent r) 303.2 628.93 B 0.52 0.1 (efer) 384.76 628.93 B 0.52 0.1 (ences, and lazy activation.) 401.84 628.93 B 4 14 Q 0.14 (\245) 198 610.53 S 1 10 Q 0.2 0.1 (The safe Java envir) 210.6 610.53 B 0.2 0.1 (onment pr) 296.62 610.53 B 0.2 0.1 (ovided by security managers and class loaders.) 343.98 610.53 B 4 14 Q 0.14 (\245) 198 592.13 S 1 10 Q 0.52 0.1 (Distributed garbage collection of active objects.) 210.6 592.13 B 4 14 Q 0.14 (\245) 198 573.73 S 1 10 Q 0.52 0.1 (Capability of supporting multiple transports.) 210.6 573.73 B -0.09 0.1 (The \336rst two chapters in this speci\336cation describe the distributed object model) 198 553.33 B 0.52 0.1 (for the Java language and the system ar) 198 540.93 B 0.52 0.1 (chitectur) 379.79 540.93 B 0.52 0.1 (e. The r) 419.41 540.93 B 0.52 0.1 (emaining chapters) 454.05 540.93 B 0.52 0.1 (describe the RMI client and server visible APIs which ar) 198 528.53 B 0.52 0.1 (e part of JDK 1.1.) 455.82 528.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.3/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "3" 9 %%Page: "4" 10 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (4) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.4/DEST FmPD2 [/Dest/L.rmiintrodoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "4" 10 %%Page: "5" 11 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (5) 553.41 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Java Distributed Object Model) 198 509.31 P 54 653/G4.167 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (2) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 4 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (De\336nition of T) 210.6 438.68 B 0.52 0.1 (erms) 276.8 438.68 B 4 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (The Distributed and Nondistributed Models Contrasted) 210.6 420.28 B 4 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (RMI Interfaces and Classes) 210.6 401.88 B 4 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (Implementing a Remote Interface) 210.6 383.48 B 4 14 Q 0.14 (\245) 198 365.08 S 1 10 Q 0.52 0.1 (T) 210.6 365.08 B 0.52 0.1 (ype Equivalency of Remote Objects with Local Stub) 215.93 365.08 B 4 14 Q 0.14 (\245) 198 346.68 S 1 10 Q 0.52 0.1 (Parameter Passing in Remote Method Invocation) 210.6 346.68 B 4 14 Q 0.14 (\245) 198 328.28 S 1 10 Q 0.52 0.1 (Exception Handling in Remote Method Invocation) 210.6 328.28 B 4 14 Q 0.14 (\245) 198 309.88 S 1 10 Q 0.52 0.1 (Object Methods Overridden by the RemoteObject Class) 210.6 309.88 B 4 14 Q 0.14 (\245) 198 291.48 S 1 10 Q 0.52 0.1 (The Semantics of Object Methods Declar) 210.6 291.48 B 0.52 0.1 (ed \336nal) 395.58 291.48 B 4 14 Q 0.14 (\245) 198 273.08 S 1 10 Q 0.52 0.1 (Locating Remote Objects) 210.6 273.08 B 0 15 Q (2.1) 67.47 239.34 T -0.94 (De\336nition of T) 97.27 239.34 P -0.94 (erms) 183.33 239.34 P 54 383/G4.3441 FmPA 1 10 Q 0.52 0.1 (In the Java distributed object model, a) 198 217.68 B 0 F 0.52 0.1 (r) 375.7 217.68 B 0.52 0.1 (emote object) 379.51 217.68 B 1 F 0.52 0.1 ( is one whose methods can) 430.2 217.68 B 0.51 0.1 (be invoked fr) 198 205.28 B 0.51 0.1 (om another Java V) 259.05 205.28 B 0.51 0.1 (irtual Machine, potentially on a dif) 343.83 205.28 B 0.51 0.1 (fer) 503.63 205.28 B 0.51 0.1 (ent host.) 515.82 205.28 B 0.52 0.1 (An object of this type is described by one or mor) 198 192.88 B 0.52 0.1 (e) 421.81 192.88 B 0 F 0.52 0.1 (r) 429.82 192.88 B 0.52 0.1 (emote interfaces) 433.63 192.88 B 1 F 0.52 0.1 (, which ar) 500.1 192.88 B 0.52 0.1 (e) 545.73 192.88 B 0.52 0.1 (Java interfaces that declar) 198 180.48 B 0.52 0.1 (e the methods of the r) 315.63 180.48 B 0.52 0.1 (emote object.) 416.53 180.48 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.5/DEST FmPD2 [/Dest/F.rmiobjmodeldoc/DEST FmPD2 97 393/M4.9.11083.Head1.21.Definition.of.Terms FmPA 97 393/I4.1.3450 FmPA [/Rect[211 434 299 449]/Border[0 0 0]/Page 11/View[/XYZ null 97 393 FmDC exch pop null]/LNK FmPD [/Rect[211 415 466 430]/Border[0 0 0]/Page 12/View[/XYZ null 97 737 FmDC exch pop null]/LNK FmPD [/Rect[211 397 334 412]/Border[0 0 0]/Page 13/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 378 363 393]/Border[0 0 0]/Page 15/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 360 453 375]/Border[0 0 0]/Page 16/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 342 434 357]/Border[0 0 0]/Page 16/View[/XYZ null 97 559 FmDC exch pop null]/LNK FmPD [/Rect[211 323 441 338]/Border[0 0 0]/Page 17/View[/XYZ null 97 625 FmDC exch pop null]/LNK FmPD [/Rect[211 305 464 320]/Border[0 0 0]/Page 17/View[/XYZ null 97 483 FmDC exch pop null]/LNK FmPD [/Rect[211 286 430 301]/Border[0 0 0]/Page 19/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 268 324 283]/Border[0 0 0]/Page 19/View[/XYZ null 97 498 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "5" 11 %%Page: "6" 12 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 6) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Remote method invocation) 198 641.33 B 1 F 0.52 0.1 ( \050RMI\051 is the action of invoking a method of a r) 308.28 641.33 B 0.52 0.1 (emote) 525.68 641.33 B 0.52 0.1 (interface on a r) 198 628.93 B 0.52 0.1 (emote object. Most importantly) 267 628.93 B 0.52 0.1 (, a method invocation on a) 408.79 628.93 B 0.52 0.1 (r) 198 616.53 B 0.52 0.1 (emote object has the same syntax as a method invocation on a local object.) 201.87 616.53 B 0 15 Q (2.2) 67.47 582.8 T -0.94 (The Distributed and Nondistributed Models Contrasted) 97.27 582.8 P 54 727/G4.182 FmPA 1 10 Q 0.52 0.1 (The Java distributed object model is similar to the Java object model in the) 198 561.13 B 0.52 0.1 (following ways:) 198 548.73 B 4 14 Q 0.14 (\245) 198 530.33 S 1 10 Q 0.51 0.1 (A r) 210.6 530.33 B 0.51 0.1 (efer) 225.46 530.33 B 0.51 0.1 (ence to a r) 242.54 530.33 B 0.51 0.1 (emote object can be passed as an ar) 289.99 530.33 B 0.51 0.1 (gument or r) 452.3 530.33 B 0.51 0.1 (eturned as) 506.89 530.33 B 0.52 0.1 (a r) 210.6 517.93 B 0.52 0.1 (esult in any method invocation \050local or r) 222.69 517.93 B 0.52 0.1 (emote\051.) 412.6 517.93 B 4 14 Q 0.14 (\245) 198 499.53 S 1 10 Q 0.47 0.1 (A r) 210.6 499.53 B 0.47 0.1 (emote object can be cast to any of the set of r) 225.42 499.53 B 0.47 0.1 (emote interfaces supported) 430.87 499.53 B 0.52 0.1 (by the implementation using the built-in Java syntax for casting.) 210.6 487.13 B 4 14 Q 0.14 (\245) 198 468.73 S 1 10 Q 0.52 0.1 (The built-in Java) 210.6 468.73 B 5 F 1.2 (instanceof) 289.88 468.73 P 1 F 0.52 0.1 ( operator can be used to test the r) 349.88 468.73 B 0.52 0.1 (emote) 504.08 468.73 B 0.52 0.1 (interfaces supported by a r) 210.6 456.33 B 0.52 0.1 (emote object.) 333.63 456.33 B 0.52 0.1 (The Java distributed object model dif) 198 435.93 B 0.52 0.1 (fers fr) 367.71 435.93 B 0.52 0.1 (om the Java object model in these) 394.84 435.93 B 0.1 (ways:) 198 423.53 S 4 14 Q 0.14 (\245) 198 405.13 S 1 10 Q 0.52 0.1 (Clients of r) 210.6 405.13 B 0.52 0.1 (emote objects interact with r) 261.42 405.13 B 0.52 0.1 (emote interfaces, never with the) 391.12 405.13 B 0.52 0.1 (implementation classes of those interfaces.) 210.6 392.73 B 4 14 Q 0.14 (\245) 198 374.33 S 1 10 Q 0.28 0.1 (Nonr) 210.6 374.33 B 0.28 0.1 (emote ar) 234.36 374.33 B 0.28 0.1 (guments to, and r) 273.84 374.33 B 0.28 0.1 (esults fr) 354.33 374.33 B 0.28 0.1 (om, a r) 390.58 374.33 B 0.28 0.1 (emote method invocation ar) 422.39 374.33 B 0.28 0.1 (e) 550.23 374.33 B -0.07 0.1 (passed by copy rather than by r) 210.6 361.93 B -0.07 0.1 (efer) 352.77 361.93 B -0.07 0.1 (ence. This is because r) 369.85 361.93 B -0.07 0.1 (efer) 469.06 361.93 B -0.07 0.1 (ences to objects) 486.14 361.93 B 0.52 0.1 (ar) 210.6 349.53 B 0.52 0.1 (e only useful within a single virtual machine.) 219.57 349.53 B 4 14 Q 0.14 (\245) 198 331.13 S 1 10 Q 0.52 0.1 (A r) 210.6 331.13 B 0.52 0.1 (emote object is passed by r) 225.47 331.13 B 0.52 0.1 (efer) 348.62 331.13 B 0.52 0.1 (ence, not by copying the actual r) 365.7 331.13 B 0.52 0.1 (emote) 515.13 331.13 B 0.1 (implementation.) 210.6 318.73 S 4 14 Q 0.14 (\245) 198 300.33 S 1 10 Q 0.52 0.1 (The semantics of some of the methods de\336ned by class) 210.6 300.33 B 5 F 1.2 (Object) 465.24 300.33 P 1 F 0.52 0.1 ( ar) 501.24 300.33 B 0.52 0.1 (e) 513.33 300.33 B 0.52 0.1 (specialized for r) 210.6 287.93 B 0.52 0.1 (emote objects.) 283.96 287.93 B 4 14 Q 0.14 (\245) 198 269.53 S 1 10 Q 0.52 0.1 (Since the failur) 210.6 269.53 B 0.52 0.1 (e modes of invoking r) 279.27 269.53 B 0.52 0.1 (emote objects ar) 379.92 269.53 B 0.52 0.1 (e inher) 453.52 269.53 B 0.52 0.1 (ently mor) 485.14 269.53 B 0.52 0.1 (e) 529.46 269.53 B 0.52 0.1 (complicated than the failur) 210.6 257.13 B 0.52 0.1 (e modes of invoking local objects, clients must) 334.24 257.13 B 0.52 0.1 (deal with additional exceptions that can occur during a r) 210.6 244.73 B 0.52 0.1 (emote method) 471.06 244.73 B 0.1 (invocation.) 210.6 232.33 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.6/DEST FmPD2 97 737/M4.9.16039.Head1.22.The.Distributed.and.NonDistributed.Models.Contrasted FmPA 97 737/I4.1.3435 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "6" 12 %%Page: "7" 13 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 2:) 198 108.7 B 0 F -0.58 0.09 (Java Distributed Object Model) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 7) 532.04 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (2.3) 67.47 638 T -0.94 (RMI Interfaces and Classes) 97.27 638 P 54 782/G4.213 FmPA 1 10 Q 0.52 0.1 (The interfaces and classes that ar) 198 616.33 B 0.52 0.1 (e r) 348.67 616.33 B 0.52 0.1 (esponsible for specifying the r) 360.55 616.33 B 0.52 0.1 (emote) 498.38 616.33 B 0.52 0.1 (behavior of the RMI system ar) 198 603.93 B 0.52 0.1 (e de\336ned in the) 336.97 603.93 B 5 F 1.2 (java.rmi) 411.71 603.93 P 1 F 0.52 0.1 ( and the) 459.71 603.93 B 5 F 1.2 (java.rmi.server) 198 591.53 P 1 F 0.52 0.1 ( packages. The following \336gur) 288 591.53 B 0.52 0.1 (e shows the r) 426.93 591.53 B 0.52 0.1 (elationship) 487.82 591.53 B 0.52 0.1 (between these interfaces and classes:) 198 579.13 B 0 14 Q (2.3.1) 125 366.67 T 0.7 (The Remote Interface) 160.49 366.67 P 1 10 Q 0.52 0.1 (All r) 198 345.33 B 0.52 0.1 (emote interfaces extend, either dir) 218.89 345.33 B 0.52 0.1 (ectly or indir) 374.87 345.33 B 0.52 0.1 (ectly) 434.2 345.33 B 0.52 0.1 (, the interface) 454.55 345.33 B 5 F 1.08 (java.rmi.remote) 198 332.93 P 1 F 0.47 0.1 (. The) 288 332.93 B 5 F 1.08 (Remote) 313.77 332.93 P 1 F 0.47 0.1 ( interface de\336nes no methods, as shown her) 349.77 332.93 B 0.47 0.1 (e:) 550.41 332.93 B 5 9 Q (public interface Remote {}) 198 317.2 T 1 10 Q 0.08 0.1 (For example, the following code fragment de\336nes a r) 198 297.53 B 0.08 0.1 (emote interface for a bank) 437.21 297.53 B 0.52 0.1 (account that contains methods that deposit to the account, get the account) 198 285.13 B 0.52 0.1 (balance, and withdraw fr) 198 272.73 B 0.52 0.1 (om the account:) 313.21 272.73 B 5 9 Q (public interface BankAccount) 198 257 T ( extends Remote) 198 246 T ({) 198 235 T (public void deposit \050float amount\051) 218.16 224 T (throws java.rmi.RemoteException;) 238.32 213 T (public void withdraw \050float amount\051) 218.16 202 T (throws OverdrawnException, java.rmi.RemoteException;) 238.32 191 T (public float balance\050\051) 218.16 180 T (throws java.rmi.RemoteException;) 238.32 169 T (}) 198 158 T 198 396 558 563.4 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 6 9 Q 0 X 0 0 0 1 0 0 0 K 0.09 (IOException) 446.49 524.12 S 432.33 518.4 510.67 536.4 9 RR 0.5 H 0 Z N 0.09 (RemoteException) 435.31 488.12 S 432.33 482.4 510.67 500.4 9 RR N 471.5 511.68 474.47 511.68 471.5 501.31 468.52 511.68 4 Y N 471.5 511.68 474.47 511.68 471.5 501.31 468.52 511.68 4 Y V 471.5 511.93 471.5 518.4 2 L 2 Z N 0.09 (Remote) 255.51 524.12 S 240.03 518.4 303.03 536.4 9 RR 0 Z N 0.09 (RemoteSer) 343.02 488.12 S 0.09 (v) 389.61 488.12 S 0.09 (er) 393.97 488.12 S 341.09 482.4 404.09 500.4 9 RR N 0.09 (RemoteObject) 343.29 524.12 S 341.09 518.4 404.09 536.4 9 RR N 7 10 Q 0.1 (Interfaces) 252.44 554.56 S 0.1 (Classes) 400.44 556.46 S 372.59 511.68 375.56 511.68 372.59 501.31 369.61 511.68 4 Y N 372.59 511.68 375.56 511.68 372.59 501.31 369.61 511.68 4 Y V 372.59 511.93 372.59 518.4 2 L 2 Z N J 330.88 527.4 330.88 530.38 341.26 527.4 330.88 524.42 4 Y 0 Z N 330.88 527.4 330.88 530.38 341.26 527.4 330.88 524.42 4 Y V J 330.63 527.4 303.03 527.4 2 L J 330.63 527.4 329.88 527.4 2 L 2 Z N [1.374 4.121] 1.374 I 329.88 527.4 303.78 527.4 2 L N J 303.78 527.4 303.03 527.4 2 L N J 6 9 Q 0.09 (e) 469.98 412.26 S 0.09 (xtension) 474.8 412.26 S 0.09 (implementation) 469.98 403.26 S 449.7 415.54 449.7 418.52 460.07 415.54 449.7 412.56 4 Y 0 Z N 449.7 415.54 449.7 418.52 460.07 415.54 449.7 412.56 4 Y V 433.98 415.54 449.45 415.54 2 L 2 Z N J 449.7 406.54 449.7 409.52 460.07 406.54 449.7 403.56 4 Y 0 Z N 449.7 406.54 449.7 409.52 460.07 406.54 449.7 403.56 4 Y V J 433.98 406.54 449.45 406.54 2 L J 433.98 406.54 434.73 406.54 2 L 2 Z N [1.27 3.809] 1.27 I 434.73 406.54 448.7 406.54 2 L N J 448.7 406.54 449.45 406.54 2 L N J 0.09 (UnicastRemoteObject) 327.97 442.54 S 325.17 436.82 420 454.82 9 RR 0 Z N 372.59 466.1 375.56 466.1 372.59 455.73 369.61 466.1 4 Y N 372.59 466.1 375.56 466.1 372.59 455.73 369.61 466.1 4 Y V 372.59 481.82 372.59 466.35 2 L 2 Z N 337.81 468.59 338.92 465.83 328.17 464.74 336.71 471.35 4 Y 0 Z N 337.81 468.59 338.92 465.83 328.17 464.74 336.71 471.35 4 Y V 372.33 482.4 338.04 468.68 2 L 2 Z N 415.63 467.97 416.57 470.79 425.47 464.69 414.69 465.14 4 Y 0 Z N 415.63 467.97 416.57 470.79 425.47 464.69 414.69 465.14 4 Y V 372.33 482.4 415.39 468.05 2 L 2 Z N 1 10 Q (...) 432 457.14 T (...) 315 494.21 T (...) 315 458.21 T 337.81 504.59 338.92 501.83 328.17 500.74 336.71 507.35 4 Y 0 Z N 337.81 504.59 338.92 501.83 328.17 500.74 336.71 507.35 4 Y V 372.33 518.4 338.04 504.68 2 L 2 Z N 0 72 612 720 C 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.7/DEST FmPD2 97 792/M4.9.16918.Head1.23.RMI.Interfaces.and.Classes FmPA 97 792/I4.1.3331 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "7" 13 %%Page: "8" 14 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 8) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The methods in a r) 198 641.33 B 0.52 0.1 (emote interface must be de\336ned as follows:) 284.63 641.33 B 4 14 Q 0.14 (\245) 198 622.93 S 1 10 Q 0.52 0.1 (Each method must declar) 210.6 622.93 B 0.52 0.1 (e) 326.98 622.93 B 5 F 1.2 (java.rmi.RemoteException) 334.99 622.93 P 1 F 0.52 0.1 ( in its thr) 478.99 622.93 B 0.52 0.1 (ows) 521.14 622.93 B 0.52 0.1 (clause, in addition to any application-speci\336c exceptions.) 210.6 610.53 B 4 14 Q 0.14 (\245) 198 592.13 S 1 10 Q 0.52 0.1 (A r) 210.6 592.13 B 0.52 0.1 (emote object passed as an ar) 225.47 592.13 B 0.52 0.1 (gument or r) 355.54 592.13 B 0.52 0.1 (eturn value \050either dir) 410.15 592.13 B 0.52 0.1 (ectly or) 511.38 592.13 B 0.52 0.1 (embedded within a local object\051 must be declar) 210.6 579.73 B 0.52 0.1 (ed as the r) 427.03 579.73 B 0.52 0.1 (emote interface,) 474.97 579.73 B 0.52 0.1 (not the implementation class.) 210.6 567.33 B 0 14 Q (2.3.2) 125 534.27 T 0.7 (The RemoteException Class) 160.49 534.27 P 1 10 Q 0.52 0.1 (The) 198 512.93 B 5 F 1.2 (java.rmi.RemoteException) 218.16 512.93 P 1 F 0.52 0.1 ( class is the super) 362.16 512.93 B 0.52 0.1 (class of all exceptions) 442.83 512.93 B 0.52 0.1 (that can be thr) 198 500.53 B 0.52 0.1 (own by the RMI r) 264.33 500.53 B 0.52 0.1 (untime. T) 345.97 500.53 B 0.52 0.1 (o ensur) 389.24 500.53 B 0.52 0.1 (e the r) 423.07 500.53 B 0.52 0.1 (obustness of) 452.24 500.53 B 0.14 0.1 (applications using the RMI system, each method declar) 198 488.13 B 0.14 0.1 (ed in a r) 448.47 488.13 B 0.14 0.1 (emote interface) 485.7 488.13 B 0.52 0.1 (must specify) 198 475.73 B 5 F 1.2 (java.rmi.RemoteException) 258.98 475.73 P 1 F 0.52 0.1 ( in its thr) 402.98 475.73 B 0.52 0.1 (ows clause.) 445.13 475.73 B 5 F 1.2 (java.rmi.RemoteException) 198 455.33 P 1 F 0.52 0.1 ( is thr) 342 455.33 B 0.52 0.1 (own when a r) 368.74 455.33 B 0.52 0.1 (emote method invocation) 432.16 455.33 B 0.52 0.1 (fails \050for example when the network fails or the server for the call cannot be) 198 442.93 B 0.52 0.1 (r) 198 430.53 B 0.52 0.1 (eached\051. This allows the application making the r) 201.87 430.53 B 0.52 0.1 (emote invocation to) 427.57 430.53 B 0.52 0.1 (determine how best to deal with the r) 198 418.13 B 0.52 0.1 (emote exception.) 371.03 418.13 B 0 14 Q (2.3.3) 125 385.07 T 0.7 (The RemoteObject Class and its Subclasses) 160.49 385.07 P 1 10 Q 0.52 0.1 (RMI server functions ar) 198 363.73 B 0.52 0.1 (e pr) 306.32 363.73 B 0.52 0.1 (ovided by) 324.31 363.73 B 5 F 1.2 (java.rmi.server.RemoteObject) 373.47 363.73 P 1 F 0.52 0.1 (and its subclasses,) 198 351.33 B 5 F 1.2 (java.rmi.server.RemoteServer) 284.56 351.33 P 1 F 0.52 0.1 ( and) 452.56 351.33 B 5 F (java.rmi.server.UnicastRemoteObject) 198 338.93 T 1 F 0.1 (:) 408 338.93 S 4 14 Q 0.14 (\245) 198 320.53 S 1 10 Q 0.52 0.1 (The) 210.6 320.53 B 5 F 1.2 (java.rmi.server.RemoteObject) 230.76 320.53 P 1 F 0.52 0.1 ( class pr) 398.76 320.53 B 0.52 0.1 (ovides the r) 436.31 320.53 B 0.52 0.1 (emote) 490.35 320.53 B 0.52 0.1 (semantics of) 210.6 308.13 B 5 F 1.2 (Object) 270.26 308.13 P 1 F 0.52 0.1 ( by implementing methods for) 306.26 308.13 B 5 F 1.2 (hashCode) 449.04 308.13 P 1 F 0.52 0.1 (,) 497.04 308.13 B 5 F 1.2 (equals) 502.76 308.13 P 1 F 0.52 0.1 (,) 538.76 308.13 B 0.52 0.1 (and) 210.6 295.73 B 5 F 1.2 (toString) 230.95 295.73 P 1 F 0.52 0.1 (.) 278.95 295.73 B 4 14 Q 0.14 (\245) 198 277.33 S 1 10 Q 0.52 0.1 (The functions needed to cr) 210.6 277.33 B 0.52 0.1 (eate objects and export them \050make them) 332.67 277.33 B 0.52 0.1 (available r) 210.6 264.93 B 0.52 0.1 (emotely\051 ar) 258.19 264.93 B 0.52 0.1 (e pr) 310.01 264.93 B 0.52 0.1 (ovided abstractly by) 328 264.93 B 5 F 0.85 (java.rmi.server.RemoteServer) 210.6 252.53 P 1 F 0.37 0.1 ( and concr) 378.6 252.53 B 0.37 0.1 (etely by its subclass\050es\051. The) 426.19 252.53 B 0.52 0.1 (subclass identi\336es the semantics of the r) 210.6 240.13 B 0.52 0.1 (emote r) 394.16 240.13 B 0.52 0.1 (efer) 428.78 240.13 B 0.52 0.1 (ence, for example) 445.86 240.13 B 0.52 0.1 (whether the server is a single object or is a r) 210.6 227.73 B 0.52 0.1 (eplicated object r) 413.04 227.73 B 0.52 0.1 (equiring) 490.69 227.73 B 0.52 0.1 (communications with multiple locations.) 210.6 215.33 B 4 14 Q 0.14 (\245) 198 196.93 S 1 10 Q 0.52 0.1 (The) 210.6 196.93 B 5 F 1.2 (java.rmi.server.UnicastRemoteObject) 230.76 196.93 P 1 F 0.52 0.1 ( class de\336nes a singleton) 440.76 196.93 B 0.52 0.1 (\050unicast\051 r) 210.6 184.53 B 0.52 0.1 (emote object whose r) 256.85 184.53 B 0.52 0.1 (efer) 353.28 184.53 B 0.52 0.1 (ences ar) 370.36 184.53 B 0.52 0.1 (e valid only while the server) 407.03 184.53 B 0.52 0.1 (pr) 210.6 172.13 B 0.52 0.1 (ocess is alive.) 220.58 172.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.8/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "8" 14 %%Page: "9" 15 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 2:) 198 108.7 B 0 F -0.58 0.09 (Java Distributed Object Model) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 9) 532.04 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (2.4) 67.47 638 T -0.94 (Implementing a Remote Interface) 97.27 638 P 54 782/G4.1830 FmPA 1 10 Q 0.52 0.1 (The general r) 198 616.33 B 0.52 0.1 (ules for a class that implements a r) 258.77 616.33 B 0.52 0.1 (emote interface ar) 418.55 616.33 B 0.52 0.1 (e as follows:) 500.58 616.33 B 4 14 Q 0.14 (\245) 198 597.93 S 1 10 Q 0.52 0.1 (The class usually extends) 210.6 597.93 B 5 F 1.2 (java.rmi.server.UnicastRemoteObject) 329.7 597.93 P 1 F 0.52 0.1 (,) 539.7 597.93 B 0.52 0.1 (ther) 210.6 585.53 B 0.52 0.1 (eby inheriting the r) 228.64 585.53 B 0.52 0.1 (emote behavior pr) 316.97 585.53 B 0.52 0.1 (ovided by the classes) 400.73 585.53 B 5 F 1.2 (java.rmi.server.RemoteObject) 210.6 573.13 P 1 F 0.52 0.1 ( and) 378.6 573.13 B 5 F (java.rmi.server.RemoteServer) 210.6 560.73 T 1 F 0.1 (.) 377.86 560.73 S 4 14 Q 0.14 (\245) 198 542.33 S 1 10 Q 0.52 0.1 (The class can implement any number of r) 210.6 542.33 B 0.52 0.1 (emote interfaces.) 400.51 542.33 B 4 14 Q 0.14 (\245) 198 523.93 S 1 10 Q 0.52 0.1 (The class can extend another r) 210.6 523.93 B 0.52 0.1 (emote implementation class.) 349.33 523.93 B 4 14 Q 0.14 (\245) 198 505.53 S 1 10 Q 0.18 0.1 (The class can de\336ne methods that do not appear in the r) 210.6 505.53 B 0.18 0.1 (emote interface, but) 465.03 505.53 B 0.52 0.1 (those methods can only be used locally and ar) 210.6 493.13 B 0.52 0.1 (e not available r) 422.73 493.13 B 0.52 0.1 (emotely) 496.29 493.13 B 0.52 0.1 (.) 531.48 493.13 B 0.52 0.1 (For example, the following code fragment de\336nes the) 198 472.73 B 5 F 1.2 (BankAcctImpl) 445.9 472.73 P 1 F 0.52 0.1 ( class,) 517.9 472.73 B 0.52 0.1 (which implements the) 198 460.33 B 5 F 1.2 (BankAccount) 302.75 460.33 P 1 F 0.52 0.1 ( r) 368.75 460.33 B 0.52 0.1 (emote interface and which extends the) 375.74 460.33 B 5 F 1.2 (java.rmi.server.UnicastRemoteObject) 198 447.93 P 1 F 0.52 0.1 ( class:) 408 447.93 B 5 9 Q (package my_package;) 198 432.2 T (import java.rmi.RemoteException;) 198 410.2 T (import java.rmi.server.UnicastRemoteObject;) 198 399.2 T (public class BankAccountImpl) 198 377.2 T (extends UnicastRemoteObject) 218.16 366.2 T (implements BankAccount) 218.16 355.2 T ({) 198 344.2 T (public void deposit \050float amount\051 throws RemoteException {) 218.16 333.2 T (...) 238.32 322.2 T (}) 218.16 311.2 T (public void withdraw \050float amount\051 throws OverdrawnException,) 218.16 300.2 T (RemoteException {) 238.32 289.2 T (...) 238.32 278.2 T (}) 218.16 267.2 T (public float balance\050\051 throws RemoteException {) 218.16 256.2 T (...) 238.32 245.2 T (}) 218.16 234.2 T (}) 198 223.2 T 1 10 Q 0.52 0.1 (Note that if necessary) 198 203.53 B 0.52 0.1 (, a class that implements a r) 296.38 203.53 B 0.52 0.1 (emote interface can extend) 424.23 203.53 B 0.52 0.1 (some other class besides) 198 191.13 B 5 F 1.2 (java.rmi.server.UnicastRemoteObject) 312.62 191.13 P 1 F 0.52 0.1 (.) 522.62 191.13 B 0.03 0.1 (However) 198 178.73 B 0.03 0.1 (, the implementation class must then assume the r) 239.26 178.73 B 0.03 0.1 (esponsibility for the) 465.04 178.73 B 0.52 0.1 (corr) 198 166.33 B 0.52 0.1 (ect r) 216.02 166.33 B 0.52 0.1 (emote semantics of the) 235.8 166.33 B 5 F 1.2 (hashCode) 343.5 166.33 P 1 F 0.52 0.1 (,) 391.5 166.33 B 5 F 1.2 (equals) 397.22 166.33 P 1 F 0.52 0.1 (, and) 433.22 166.33 B 5 F 1.2 (toString) 459.29 166.33 P 1 F 0.52 0.1 ( methods) 507.29 166.33 B 0.52 0.1 (inherited fr) 198 153.93 B 0.52 0.1 (om the) 249.68 153.93 B 5 F 1.2 (Object) 284.58 153.93 P 1 F 0.52 0.1 ( class.) 320.58 153.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.9/DEST FmPD2 97 792/M4.9.21718.Head1.24.Implementing.a.Remote.Interface FmPA 97 792/I4.1.3818 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "9" 15 %%Page: "10" 16 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 10) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (2.5) 67.47 638 T -0.94 (T) 97.27 638 P -0.94 (ype Equivalency of Remote Objects with Local Stub) 105.06 638 P 54 782/G4.307 FmPA 1 10 Q 0.52 0.1 (In the distributed object model, clients interact with stub \050surr) 198 616.33 B 0.52 0.1 (ogate\051 objects) 482.77 616.33 B 0.52 0.1 (that have) 198 603.93 B 0 F 0.52 0.1 (exactly) 243.64 603.93 B 1 F 0.52 0.1 ( the same set of r) 272.85 603.93 B 0.52 0.1 (emote interfaces de\336ned by the r) 351.33 603.93 B 0.52 0.1 (emote) 501.69 603.93 B 0.52 0.1 (object\325s class; the stub class does not include the nonr) 198 591.53 B 0.52 0.1 (emote portions of the) 443.6 591.53 B 0.16 0.1 (class hierar) 198 579.13 B 0.16 0.1 (chy that constitutes the object\325s type graph. This is because the stub) 248.93 579.13 B 0.28 0.1 (class is generated fr) 198 566.73 B 0.28 0.1 (om the most r) 287.6 566.73 B 0.28 0.1 (e\336ned implementation class that implements) 350.97 566.73 B 0.52 0.1 (one or mor) 198 554.33 B 0.52 0.1 (e r) 248.58 554.33 B 0.52 0.1 (emote interfaces. For example, if C extends B and B extends A,) 260.46 554.33 B 0.36 0.1 (but only B implements a r) 198 541.93 B 0.36 0.1 (emote interface, then a stub is generated fr) 316.62 541.93 B 0.36 0.1 (om B, not) 510.99 541.93 B 0.1 (C.) 198 529.53 S 0.52 0.1 (Because the stub implements the same set of r) 198 509.13 B 0.52 0.1 (emote interfaces as the r) 408.96 509.13 B 0.52 0.1 (emote) 520.08 509.13 B 0.26 0.1 (object\325s class, the stub has, fr) 198 496.73 B 0.26 0.1 (om the point of view of the Java system, the same) 328.76 496.73 B 0.52 0.1 (type as the r) 198 484.33 B 0.52 0.1 (emote portions of the server object\325s type graph. A client,) 254.86 484.33 B 0.52 0.1 (ther) 198 471.93 B 0.52 0.1 (efor) 216.04 471.93 B 0.52 0.1 (e, can make use of the built-in Java operations to check a r) 233.79 471.93 B 0.52 0.1 (emote) 501.6 471.93 B 0.52 0.1 (object's type and to cast fr) 198 459.53 B 0.52 0.1 (om one r) 317.35 459.53 B 0.52 0.1 (emote interface to another) 358.32 459.53 B 0.52 0.1 (.) 477.48 459.53 B 0.52 0.1 (Stubs ar) 198 439.13 B 0.52 0.1 (e generated using the rmic compiler) 234.9 439.13 B 0.52 0.1 (.) 399.48 439.13 B 0 15 Q (2.6) 67.47 405.4 T -0.94 (Parameter Passing in Remote Method Invocation) 97.27 405.4 P 54 549/G4.2521 FmPA 1 10 Q 0.52 0.1 (An ar) 198 383.73 B 0.52 0.1 (gument to, or a r) 223.89 383.73 B 0.52 0.1 (eturn value fr) 301.36 383.73 B 0.52 0.1 (om, a r) 364.13 383.73 B 0.52 0.1 (emote object can be any Java type) 396.43 383.73 B 0.52 0.1 (that is) 198 371.33 B 0 F 0.52 0.1 (serializable) 229.33 371.33 B 1 F 0.52 0.1 (. This includes Java primitive types, r) 275.16 371.33 B 0.52 0.1 (emote Java objects, and) 446.36 371.33 B 0.52 0.1 (nonr) 198 358.93 B 0.52 0.1 (emote Java objects that implement the) 219.27 358.93 B 5 F 1.2 (java.io.Serializable) 396.72 358.93 P 1 F 0.52 0.1 (interface. For mor) 198 346.53 B 0.52 0.1 (e details on how to make classes serializable, see the Java) 279.66 346.53 B 0.52 0.1 (\322Object Serialization Speci\336cation.\323 For applets, if the class of an ar) 198 334.13 B 0.52 0.1 (gument or) 506.54 334.13 B 0.52 0.1 (r) 198 321.73 B 0.52 0.1 (eturn value is not available locally) 201.87 321.73 B 0.52 0.1 (, it is loaded dynamically via the) 358.27 321.73 B 0.52 0.1 (AppletClassLoader) 198 309.33 B 0.52 0.1 (. For applications, these classes ar) 284.62 309.33 B 0.52 0.1 (e loaded by the class) 438.79 309.33 B 0.25 0.1 (loader that loaded the application; this is either the default class loader \050which) 198 296.93 B 0.52 0.1 (uses the local class path\051 or the RMIClassLoader \050which uses the server) 198 284.53 B 0.52 0.1 (\325s) 526.09 284.53 B 0.1 (codebase\051.) 198 272.13 S 0.52 0.1 (Some classes may disallow their being passed \050by not being serializable\051, for) 198 251.73 B 0.52 0.1 (example for security r) 198 239.33 B 0.52 0.1 (easons. In this case the r) 298.44 239.33 B 0.52 0.1 (emote method invocation will) 409.72 239.33 B 0.52 0.1 (fail with an exception.) 198 226.93 B 0 14 Q (2.6.1) 125 193.87 T 0.7 (Passing Nonr) 160.49 193.87 P 0.7 (emote Objects) 239.11 193.87 P 1 10 Q 0.52 0.1 (A nonr) 198 172.53 B 0.52 0.1 (emote object, that is passed as a parameter of a r) 230.27 172.53 B 0.52 0.1 (emote method) 453.18 172.53 B 0.46 0.1 (invocation or r) 198 160.13 B 0.46 0.1 (eturned as a r) 265.32 160.13 B 0.46 0.1 (esult of a r) 328.35 160.13 B 0.46 0.1 (emote method invocation, is passed by) 377.21 160.13 B 0 F 0.1 (copy) 198 147.73 S 1 F 0.1 (.) 215.8 147.73 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.10/DEST FmPD2 97 792/M4.9.36396.Head1.25.Type.Equivalency.of.Remote.Objects.with.Local.Stub FmPA 97 792/I4.1.3339 FmPA 97 559/M4.9.34214.Head1.26.Parameter.Passing.in.Remote.Invocation FmPA 97 559/I4.1.3343 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "10" 16 %%Page: "11" 17 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 2:) 198 108.7 B 0 F -0.58 0.09 (Java Distributed Object Model) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 1) 527.95 108.7 B -0.58 0.09 (1) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (That is, when a nonr) 198 641.33 B 0.52 0.1 (emote object appears in a r) 292.58 641.33 B 0.52 0.1 (emote method invocation, the) 415.83 641.33 B 0.52 0.1 (content of the nonr) 198 628.93 B 0.52 0.1 (emote object is copied befor) 285.34 628.93 B 0.52 0.1 (e invoking the call on the) 412.92 628.93 B 0.25 0.1 (r) 198 616.53 B 0.25 0.1 (emote object. By default, only the nonstatic and nontransient \336elds ar) 201.87 616.53 B 0.25 0.1 (e copied.) 517.24 616.53 B 0.52 0.1 (Similarly) 198 596.13 B 0.52 0.1 (, when a nonr) 238.02 596.13 B 0.52 0.1 (emote object is r) 301.52 596.13 B 0.52 0.1 (eturned fr) 376.15 596.13 B 0.52 0.1 (om a r) 422.02 596.13 B 0.52 0.1 (emote method) 451.72 596.13 B 0.52 0.1 (invocation, a new object is cr) 198 583.73 B 0.52 0.1 (eated in the calling virtual machine.) 330.46 583.73 B 0 14 Q (2.6.2) 125 550.67 T 0.7 (Passing Remote Objects) 160.49 550.67 P 1 10 Q 0.51 0.1 (When passing a r) 198 529.33 B 0.51 0.1 (emote object as a parameter) 277.62 529.33 B 0.51 0.1 (, the stub for the r) 404.39 529.33 B 0.51 0.1 (emote object is) 487.26 529.33 B 0.52 0.1 (passed. A r) 198 516.93 B 0.52 0.1 (emote object passed as a parameter can only implement r) 249.58 516.93 B 0.52 0.1 (emote) 512.35 516.93 B 0.1 (interfaces.) 198 504.53 S 0 15 Q (2.7) 67.47 470.8 T -0.94 (Exception Handling in Remote Method Invocation) 97.27 470.8 P 54 615/G4.315 FmPA 1 10 Q 0.52 0.1 (Since r) 198 449.13 B 0.52 0.1 (emote methods include) 228.7 449.13 B 5 F 1.2 (java.rmi.RemoteException) 338.61 449.13 P 1 F 0.52 0.1 ( in their) 482.61 449.13 B 0.01 0.1 (signatur) 198 436.73 B 0.01 0.1 (e, the caller must be pr) 235.39 436.73 B 0.01 0.1 (epar) 337.94 436.73 B 0.01 0.1 (ed to handle those exceptions in addition to) 357.91 436.73 B 0.52 0.1 (other application speci\336c exceptions. When a) 198 424.33 B 5 F 1.2 (java.rmi.RemoteException) 407.32 424.33 P 1 F 0.52 0.1 (is thr) 198 411.93 B 0.52 0.1 (own during a r) 221.62 411.93 B 0.52 0.1 (emote method invocation, the client may have little or no) 290.85 411.93 B 0.52 0.1 (information on the outcome of the call \321 whether a failur) 198 399.53 B 0.52 0.1 (e happened befor) 463.71 399.53 B 0.52 0.1 (e,) 543.36 399.53 B 0.17 0.1 (during, or after the call completed. Ther) 198 387.13 B 0.17 0.1 (efor) 379.47 387.13 B 0.17 0.1 (e, r) 397.22 387.13 B 0.17 0.1 (emote interfaces and the calling) 411.35 387.13 B 0.52 0.1 (methods declar) 198 374.73 B 0.52 0.1 (ed in those interfaces should be designed with these failur) 267.95 374.73 B 0.52 0.1 (e) 535.16 374.73 B 0.52 0.1 (semantics in mind.) 198 362.33 B 0 15 Q (2.8) 67.47 328.6 T -0.94 (Object Methods Overridden by the RemoteObject Class) 97.27 328.6 P 54 473/G4.3734 FmPA 1 10 Q 0.52 0.1 (The default implementations in the) 198 306.93 B 5 F 1.2 (Object) 362.21 306.93 P 1 F 0.52 0.1 ( class for the) 398.21 306.93 B 5 F 1.2 (equals) 459.23 306.93 P 1 F 0.52 0.1 (,) 495.23 306.93 B 5 F 1.2 (hashCode) 500.95 306.93 P 1 F 0.52 0.1 (,) 548.95 306.93 B 0.52 0.1 (and) 198 294.53 B 5 F 1.2 (toString) 218.35 294.53 P 1 F 0.52 0.1 ( methods ar) 266.35 294.53 B 0.52 0.1 (e not appr) 320.77 294.53 B 0.52 0.1 (opriate for r) 367.93 294.53 B 0.52 0.1 (emote objects. Ther) 423.16 294.53 B 0.52 0.1 (efor) 511.3 294.53 B 0.52 0.1 (e, the) 529.05 294.53 B 5 F 0.98 (java.rmi.server.RemoteObject) 198 282.13 P 1 F 0.43 0.1 ( class pr) 366 282.13 B 0.43 0.1 (ovides implementations for these) 403.36 282.13 B 0.39 0.1 (methods that have semantics mor) 198 269.73 B 0.39 0.1 (e appr) 351.34 269.73 B 0.39 0.1 (opriate for r) 380.41 269.73 B 0.39 0.1 (emote objects. In this way) 435.37 269.73 B 0.39 0.1 (,) 552.41 269.73 B 0.52 0.1 (all objects that need to be available r) 198 257.33 B 0.52 0.1 (emotely can extend) 365.28 257.33 B 5 F 1.2 (java.rmi.server.RemoteObject) 198 244.93 P 1 F 0.52 0.1 ( \050typically indir) 366 244.93 B 0.52 0.1 (ectly via) 437.15 244.93 B 5 F (java.rmi.server.UnicastRemoteObject) 198 232.53 T 1 F 0.1 (\051.) 408 232.53 S 0 14 Q (2.8.1) 125 199.47 T 0.7 (equals and hashCode) 160.49 199.47 P 1 10 Q 0.52 0.1 (In or) 198 178.13 B 0.52 0.1 (der for a r) 219.94 178.13 B 0.52 0.1 (emote object to be used as a key in a hash table, the methods) 266.46 178.13 B 5 F 1.2 (equals) 198 165.73 P 1 F 0.52 0.1 ( and) 234 165.73 B 5 F 1.2 (hashCode) 257.47 165.73 P 1 F 0.52 0.1 ( ar) 305.47 165.73 B 0.52 0.1 (e overridden by the) 317.56 165.73 B 5 F 1.2 (java.rmi.server.RemoteObject) 198 153.33 P 1 F 0.52 0.1 ( class:) 366 153.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.11/DEST FmPD2 97 625/M4.9.40168.Head1.27.Failure.Conditions.of.Remote.Method.Invocation FmPA 97 625/I4.1.3347 FmPA 97 483/M4.9.35707.Head1.28.Object.Methods.Overridden.by.the.Remote.Class FmPA 97 483/I4.1.3826 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "11" 17 %%Page: "12" 18 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 12) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0 X 0 0 0 1 0 0 0 K 0.14 (\245) 198 641.33 S 1 10 Q 0.52 0.1 (The) 210.6 641.33 B 5 F 1.2 (java.rmi.server.RemoteObject) 230.76 641.33 P 1 F 0.52 0.1 ( class\325s implementation of the) 398.76 641.33 B 5 F 1.2 (equals) 210.6 628.93 P 1 F 0.52 0.1 ( method determines whether two object r) 246.6 628.93 B 0.52 0.1 (efer) 435.8 628.93 B 0.52 0.1 (ences ar) 452.88 628.93 B 0.52 0.1 (e equal, not) 489.55 628.93 B 0.52 0.1 (whether the contents of the two objects ar) 210.6 616.53 B 0.52 0.1 (e equal. This is because) 402.22 616.53 B -0.1 0.1 (determining equality based on content r) 210.6 604.13 B -0.1 0.1 (equir) 390.88 604.13 B -0.1 0.1 (es a r) 414.47 604.13 B -0.1 0.1 (emote method invocation,) 437.67 604.13 B 0.52 0.1 (and the signatur) 210.6 591.73 B 0.52 0.1 (e of) 285.63 591.73 B 5 F 1.2 (equals) 305.75 591.73 P 1 F 0.52 0.1 ( does not allow a r) 341.75 591.73 B 0.52 0.1 (emote exception to be) 427.28 591.73 B 0.1 (thr) 210.6 579.33 S 0.1 (own.) 223.75 579.33 S 4 14 Q 0.14 (\245) 198 560.93 S 1 10 Q 0.52 0.1 (The) 210.6 560.93 B 5 F 1.2 (java.rmi.server.RemoteObject) 230.76 560.93 P 1 F 0.52 0.1 ( class\325s implementation of the) 398.76 560.93 B 5 F 1.2 (hashCode) 210.6 548.53 P 1 F 0.52 0.1 ( method r) 258.6 548.53 B 0.52 0.1 (eturns the same value for all r) 303.58 548.53 B 0.52 0.1 (emote r) 441.33 548.53 B 0.52 0.1 (efer) 475.95 548.53 B 0.52 0.1 (ences that) 493.03 548.53 B 0.52 0.1 (r) 210.6 536.13 B 0.52 0.1 (efer to the same underlying r) 214.47 536.13 B 0.52 0.1 (emote object \050because r) 348.01 536.13 B 0.52 0.1 (efer) 454.24 536.13 B 0.52 0.1 (ences to the same) 471.32 536.13 B 0.52 0.1 (object ar) 210.6 523.73 B 0.52 0.1 (e consider) 249.11 523.73 B 0.52 0.1 (ed equal\051.) 295.46 523.73 B 0 14 Q (2.8.2) 125 490.67 T (toString) 160.49 490.67 T 1 10 Q 0.52 0.1 (The) 198 469.33 B 5 F 1.2 (toString) 218.16 469.33 P 1 F 0.52 0.1 ( method is de\336ned to r) 266.16 469.33 B 0.52 0.1 (eturn a string which r) 371.04 469.33 B 0.52 0.1 (epr) 471.01 469.33 B 0.52 0.1 (esents the) 485.88 469.33 B 0.52 0.1 (r) 198 456.93 B 0.52 0.1 (efer) 201.87 456.93 B 0.52 0.1 (ence of the object. The contents of the string is speci\336c to the r) 218.95 456.93 B 0.52 0.1 (efer) 504.24 456.93 B 0.52 0.1 (ence) 521.33 456.93 B 0.52 0.1 (type. The curr) 198 444.53 B 0.52 0.1 (ent implementation for singleton \050unicast\051 objects includes) 262.49 444.53 B 0.52 0.1 (information about the object speci\336c to the transport layer \050such as host name) 198 432.13 B 0.52 0.1 (and port number\051 and an object identi\336er; r) 198 419.73 B 0.52 0.1 (efer) 397.76 419.73 B 0.52 0.1 (ences to r) 414.84 419.73 B 0.52 0.1 (eplicated objects) 458.45 419.73 B 0.52 0.1 (would contain mor) 198 407.33 B 0.52 0.1 (e information.) 285.36 407.33 B 0 14 Q (2.8.3) 125 374.27 T (clone) 160.49 374.27 T 1 10 Q 0.15 0.1 (Objects ar) 198 352.93 B 0.15 0.1 (e only cloneable using the Java language\325s default mechanism if they) 242.88 352.93 B 0.52 0.1 (support the) 198 340.53 B 5 F 1.2 (java.lang.Cloneable) 254.07 340.53 P 1 F 0.52 0.1 ( interface. Remote objects do not) 368.07 340.53 B 0.52 0.1 (implement this interface, but do implement the) 198 328.13 B 5 F 1.2 (clone) 417.42 328.13 P 1 F 0.52 0.1 ( method so that if) 447.42 328.13 B 0.52 0.1 (subclasses need to implement) 198 315.73 B 5 F 1.2 (Cloneable) 337.02 315.73 P 1 F 0.52 0.1 ( the r) 391.02 315.73 B 0.52 0.1 (emote classes will function) 415.3 315.73 B 0.1 (corr) 198 303.33 S 0.1 (ectly) 216.02 303.33 S 0.1 (.) 236.37 303.33 S 0.42 0.1 (Client stubs ar) 198 282.93 B 0.42 0.1 (e declar) 264.19 282.93 B 0.42 0.1 (ed \336nal and do not implement) 299.72 282.93 B 5 F 0.97 (clone) 442.02 282.93 P 1 F 0.42 0.1 (. Cloning a stub is) 472.02 282.93 B 0.52 0.1 (ther) 198 270.53 B 0.52 0.1 (efor) 216.04 270.53 B 0.52 0.1 (e a local operation and cannot be used by clients to cr) 233.79 270.53 B 0.52 0.1 (eate a new) 480.29 270.53 B 0.52 0.1 (r) 198 258.13 B 0.52 0.1 (emote object.) 201.87 258.13 B 0 14 Q (2.8.4) 125 225.07 T (\336nalize) 160.49 225.07 T 1 10 Q 0.52 0.1 (Remote object implementations \050subclasses of) 198 203.73 B 5 F 1.2 (RemoteObject) 409.85 203.73 P 1 F 0.52 0.1 (\051 can use) 481.85 203.73 B 5 F 0.4 (finalize) 198 191.33 P 1 F 0.17 0.1 ( to perform their own cleanup as necessary) 246 191.33 B 0.17 0.1 (. For example,) 440.25 191.33 B 5 F 0.4 (finalize) 507.23 191.33 P 1 F 0.52 0.1 (can be used to deactivate an object server) 198 178.93 B 0.52 0.1 (.) 387.29 178.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.12/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "12" 18 %%Page: "13" 19 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 2:) 198 108.7 B 0 F -0.58 0.09 (Java Distributed Object Model) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 13) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (2.9) 67.47 638 T -0.94 (The Semantics of Object Methods Declar) 97.27 638 P -0.94 (ed \336nal) 338.82 638 P 54 782/G4.2490 FmPA 1 10 Q 0.22 0.1 (The following methods ar) 198 616.33 B 0.22 0.1 (e declar) 315.27 616.33 B 0.22 0.1 (ed) 350.6 616.33 B 5 F 0.5 (final) 364.52 616.33 P 1 F 0.22 0.1 ( by the) 394.52 616.33 B 5 F 0.5 (Object) 428.43 616.33 P 1 F 0.22 0.1 ( class and cannot be) 464.43 616.33 B 0.1 (overridden:) 198 603.93 S 4 14 Q (\245) 198 585.53 T 5 10 Q (getClass) 210.6 585.53 T 4 14 Q (\245) 198 567.13 T 5 10 Q (notify) 210.6 567.13 T 4 14 Q (\245) 198 548.73 T 5 10 Q (notifyAll) 210.6 548.73 T 4 14 Q (\245) 198 530.33 T 5 10 Q (wait) 210.6 530.33 T 1 F 0.52 0.1 (The default implementation for) 198 509.93 B 5 F 1.2 (getClass) 344.69 509.93 P 1 F 0.52 0.1 ( is appr) 392.69 509.93 B 0.52 0.1 (opriate for all Java objects,) 427.47 509.93 B 0.52 0.1 (local or r) 198 497.53 B 0.52 0.1 (emote; the method needs no special implementation for r) 238.94 497.53 B 0.52 0.1 (emote) 500.81 497.53 B 0.06 0.1 (objects. When used on a r) 198 485.13 B 0.06 0.1 (emote object, the) 313.52 485.13 B 5 F 0.14 (getClass) 392.32 485.13 P 1 F 0.06 0.1 ( method r) 440.32 485.13 B 0.06 0.1 (eports the exact) 484.39 485.13 B 0.52 0.1 (type of the generated stub object. Note that this type r) 198 472.73 B 0.52 0.1 (e\337ects only the r) 446.31 472.73 B 0.52 0.1 (emote) 522.05 472.73 B 0.52 0.1 (interfaces implemented by the object, not its local interfaces.) 198 460.33 B 0.21 0.1 (The) 198 439.93 B 5 F 0.48 (wait) 217.85 439.93 P 1 F 0.21 0.1 ( and) 241.85 439.93 B 5 F 0.48 (notify) 264.7 439.93 P 1 F 0.21 0.1 ( methods of Object deal with waiting and noti\336cation in) 300.7 439.93 B 0.52 0.1 (the context of the Java language\325s thr) 198 427.53 B 0.52 0.1 (eading model. While use of these) 368.16 427.53 B 0.52 0.1 (methods for r) 198 415.13 B 0.52 0.1 (emote objects does not br) 260.36 415.13 B 0.52 0.1 (eak the Java thr) 376.57 415.13 B 0.52 0.1 (eading model, these) 448.28 415.13 B 0.52 0.1 (methods do not have the same semantics as they do for local Java objects.) 198 402.73 B 0.52 0.1 (Speci\336cally) 198 390.33 B 0.52 0.1 (, using these methods operates on the client\325s local r) 248.26 390.33 B 0.52 0.1 (efer) 487.6 390.33 B 0.52 0.1 (ence to the) 504.68 390.33 B 0.52 0.1 (r) 198 377.93 B 0.52 0.1 (emote object \050the stub\051, not the actual object at the r) 201.87 377.93 B 0.52 0.1 (emote site.) 439.38 377.93 B 0 15 Q (2.10) 59.97 344.2 T -0.94 (Locating Remote Objects) 97.27 344.2 P 54 488/G4.357 FmPA 1 10 Q 0.52 0.1 (A simple bootstrap name server is pr) 198 322.53 B 0.52 0.1 (ovided for storing named r) 368.1 322.53 B 0.52 0.1 (efer) 492.07 322.53 B 0.52 0.1 (ences to) 509.15 322.53 B 0.52 0.1 (r) 198 310.13 B 0.52 0.1 (emote objects. A r) 201.87 310.13 B 0.52 0.1 (emote object r) 283.97 310.13 B 0.52 0.1 (efer) 348.13 310.13 B 0.52 0.1 (ence can be stor) 365.21 310.13 B 0.52 0.1 (ed using the URL-based) 438.02 310.13 B 0.52 0.1 (methods of the class) 198 297.73 B 5 F 1.2 (java.rmi.Naming) 294.18 297.73 P 1 F 0.52 0.1 (.) 384.18 297.73 B 0.29 0.1 (For a client to invoke a method on a r) 198 277.33 B 0.29 0.1 (emote object, that client must \336rst obtain) 369.28 277.33 B 0.25 0.1 (a r) 198 264.93 B 0.25 0.1 (efer) 209.82 264.93 B 0.25 0.1 (ence to the object. A r) 226.9 264.93 B 0.25 0.1 (efer) 325.27 264.93 B 0.25 0.1 (ence to a r) 342.35 264.93 B 0.25 0.1 (emote object is usually obtained as a) 389.03 264.93 B 0.52 0.1 (r) 198 252.53 B 0.52 0.1 (eturn value in a method call. The RMI system pr) 201.87 252.53 B 0.52 0.1 (ovides a simple bootstrap) 424.69 252.53 B 0.52 0.1 (name server fr) 198 240.13 B 0.52 0.1 (om which to obtain r) 264.35 240.13 B 0.52 0.1 (emote objects on given hosts. The) 360.52 240.13 B 5 F 1.2 (java.rmi.Naming) 198 227.73 P 1 F 0.52 0.1 ( class pr) 288 227.73 B 0.52 0.1 (ovides Uniform Resour) 325.55 227.73 B 0.52 0.1 (ce Locator \050URL\051 based) 431.9 227.73 B 0.52 0.1 (methods to look up, bind, r) 198 215.33 B 0.52 0.1 (ebind, unbind, and list the name-object pairings) 323.6 215.33 B 0.52 0.1 (maintained on a particular host and port.) 198 202.93 B 0.52 0.1 (Her) 198 182.53 B 0.52 0.1 (e's an example, \050without exception handling\051 of how to bind and look up) 215.18 182.53 B 0.52 0.1 (r) 198 170.13 B 0.52 0.1 (emote objects:) 201.87 170.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.13/DEST FmPD2 97 792/M4.9.26246.Head1.29.The.Semanitics.of.Object.Methods.Declared.final FmPA 97 792/I4.1.3833 FmPA 97 498/M4.9.41348.Head1.29.Locating.Remote.Objects FmPA 97 498/I4.1.3355 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "13" 19 %%Page: "14" 20 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 14) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (BankAccount acct = new BankAcctImpl\050\051;) 198 642 T (String url = "rmi://java.Sun.COM/account";) 198 631 T (// bind url to remote object) 198 620 T (java.rmi.Naming.bind\050url, acct\051;) 198 609 T (...) 218.16 598 T (// lookup account) 198 587 T (acct = \050BankAccount\051java.rmi.Naming.lookup\050url\051;) 198 576 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.14/DEST FmPD2 [/Dest/L.rmiobjmodeldoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "14" 20 %%Page: "15" 21 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 15) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (System Ar) 198 509.31 P -2.5 (chitectur) 281.26 509.31 P -2.5 (e) 352.74 509.31 P 54 653/G5.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (3) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 4 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.1 (Overview) 210.6 438.68 S 4 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (Ar) 210.6 420.28 B 0.52 0.1 (chitectural Overview) 222.35 420.28 B 4 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (The Stub/Skeleton Layer) 210.6 401.88 B 4 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (The Remote Refer) 210.6 383.48 B 0.52 0.1 (ence Layer) 292.15 383.48 B 4 14 Q 0.14 (\245) 198 365.08 S 1 10 Q 0.52 0.1 (The T) 210.6 365.08 B 0.52 0.1 (ransport Layer) 236.09 365.08 B 4 14 Q 0.14 (\245) 198 346.68 S 1 10 Q 0.52 0.1 (Thr) 210.6 346.68 B 0.52 0.1 (ead Usage in Remote Method Invocations) 226.62 346.68 B 4 14 Q 0.14 (\245) 198 328.28 S 1 10 Q 0.52 0.1 (Garbage Collection of Remote Objects) 210.6 328.28 B 4 14 Q 0.14 (\245) 198 309.88 S 1 10 Q 0.52 0.1 (Dynamic Class Loading) 210.6 309.88 B 4 14 Q 0.14 (\245) 198 291.48 S 1 10 Q 0.1 (Security) 210.6 291.48 S 4 14 Q 0.14 (\245) 198 273.08 S 1 10 Q 0.52 0.1 (Con\336guration Scenarios) 210.6 273.08 B 4 14 Q 0.14 (\245) 198 254.68 S 1 10 Q 0.52 0.1 (RMI Thr) 210.6 254.68 B 0.52 0.1 (ough Fir) 249.55 254.68 B 0.52 0.1 (ewalls V) 288.48 254.68 B 0.52 0.1 (ia Pr) 327.16 254.68 B 0.52 0.1 (oxies) 348.4 254.68 B 0 15 Q (3.1) 67.47 220.94 T (Overview) 97.27 220.94 T 54 365/G5.194 FmPA 1 10 Q 0.52 0.1 (The RMI system consists of thr) 198 199.28 B 0.52 0.1 (ee layers: the) 339.52 199.28 B 0 F 0.52 0.1 (stub/skeleton layer) 402.48 199.28 B 1 F 0.52 0.1 (, the) 479.25 199.28 B 0 F 0.52 0.1 (remote) 502.26 199.28 B 0.44 0.1 (reference layer) 198 186.88 B 1 F 0.44 0.1 (, and the) 257.45 186.88 B 0 F 0.44 0.1 (transport layer) 300.59 186.88 B 1 F 0.44 0.1 (. The boundary at each layer is de\336ned by) 362.06 186.88 B 0.52 0.1 (a speci\336c interface and pr) 198 174.48 B 0.52 0.1 (otocol; each layer) 315.56 174.48 B 0.52 0.1 (, ther) 394.41 174.48 B 0.52 0.1 (efor) 418.17 174.48 B 0.52 0.1 (e, is independent of the) 435.92 174.48 B 0.36 0.1 (next and can be r) 198 162.08 B 0.36 0.1 (eplaced by an alternate implementation without af) 276.46 162.08 B 0.36 0.1 (fecting the) 507.1 162.08 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.15/DEST FmPD2 [/Dest/F.rmiarchdoc/DEST FmPD2 97 375/M5.9.14542.Head1.31.Overview FmPA 97 375/I5.1.1502 FmPA [/Rect[211 434 255 449]/Border[0 0 0]/Page 21/View[/XYZ null 97 375 FmDC exch pop null]/LNK FmPD [/Rect[211 415 318 430]/Border[0 0 0]/Page 22/View[/XYZ null 97 597 FmDC exch pop null]/LNK FmPD [/Rect[211 397 325 412]/Border[0 0 0]/Page 24/View[/XYZ null 97 667 FmDC exch pop null]/LNK FmPD [/Rect[211 378 341 393]/Border[0 0 0]/Page 25/View[/XYZ null 97 704 FmDC exch pop null]/LNK FmPD [/Rect[211 360 304 375]/Border[0 0 0]/Page 26/View[/XYZ null 97 712 FmDC exch pop null]/LNK FmPD [/Rect[211 323 384 338]/Border[0 0 0]/Page 27/View[/XYZ null 97 463 FmDC exch pop null]/LNK FmPD [/Rect[211 286 248 301]/Border[0 0 0]/Page 32/View[/XYZ null 97 588 FmDC exch pop null]/LNK FmPD [/Rect[211 305 319 320]/Border[0 0 0]/Page 28/View[/XYZ null 97 366 FmDC exch pop null]/LNK FmPD [/Rect[211 268 320 283]/Border[0 0 0]/Page 33/View[/XYZ null 97 412 FmDC exch pop null]/LNK FmPD [/Rect[211 250 371 265]/Border[0 0 0]/Page 35/View[/XYZ null 97 445 FmDC exch pop null]/LNK FmPD [/Rect[211 342 418 357]/Border[0 0 0]/Page 27/View[/XYZ null 97 592 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "15" 21 %%Page: "16" 22 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 16) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (other layers in the system. For example, the curr) 198 641.33 B 0.52 0.1 (ent transport implementation) 419.83 641.33 B 0.52 0.1 (is TCP-based \050using Java sockets\051, but a transport based on UDP could be) 198 628.93 B 0.1 (substituted.) 198 616.53 S 0.52 0.1 (T) 198 596.13 B 0.52 0.1 (o accomplish transpar) 203.31 596.13 B 0.52 0.1 (ent transmission of objects fr) 304.02 596.13 B 0.52 0.1 (om one addr) 435.6 596.13 B 0.52 0.1 (ess space to) 494.09 596.13 B 0.34 0.1 (another) 198 583.73 B 0.34 0.1 (, the technique of object serialization \050designed speci\336cally for the Java) 232.06 583.73 B 0.52 0.1 (language\051 is used. Object serialization is described in this chapter only with) 198 571.33 B 0.52 0.1 (r) 198 558.93 B 0.52 0.1 (egar) 201.87 558.93 B 0.52 0.1 (d to its use for marshaling primitives and objects. For complete details,) 221.39 558.93 B 0.52 0.1 (see the) 198 546.53 B 0 F 0.52 0.1 (Object Serialization Speci\336cation.) 232.53 546.53 B 1 F 0.52 0.1 (Another technique, called) 198 526.13 B 0 F 0.52 0.1 (dynamic stub loading) 318.66 526.13 B 1 F 0.52 0.1 (, is used to support client-side) 408.74 526.13 B 0.52 0.1 (stubs which implement the same set of r) 198 513.73 B 0.52 0.1 (emote interfaces as a r) 383.4 513.73 B 0.52 0.1 (emote object) 485.45 513.73 B 0.52 0.1 (itself. This technique, used when a stub of the exact type is not alr) 198 501.33 B 0.52 0.1 (eady) 501.45 501.33 B 0.52 0.1 (available to the client, allows a client to use the Java language\325s built-in) 198 488.93 B 0.52 0.1 (operators for casting and type-checking.) 198 476.53 B 0 15 Q (3.2) 67.47 442.8 T -0.94 (Ar) 97.27 442.8 P -0.94 (chitectural Overview) 113.67 442.8 P 54 587/G5.200 FmPA 1 10 Q 0.52 0.1 (The RMI system consists of thr) 198 421.13 B 0.52 0.1 (ee layers:) 339.52 421.13 B 4 14 Q 0.14 (\245) 198 402.73 S 1 10 Q 0.52 0.1 (The stub/skeleton layer \321 client-side stubs \050pr) 210.6 402.73 B 0.52 0.1 (oxies\051 and server) 426.24 402.73 B 0.52 0.1 (-side) 503.99 402.73 B 0.1 (skeletons) 210.6 390.33 S 4 14 Q 0.14 (\245) 198 371.93 S 1 10 Q 0.19 0.1 (The r) 210.6 371.93 B 0.19 0.1 (emote r) 234.3 371.93 B 0.19 0.1 (efer) 268.6 371.93 B 0.19 0.1 (ence layer \321 r) 285.68 371.93 B 0.19 0.1 (emote r) 350.98 371.93 B 0.19 0.1 (efer) 385.27 371.93 B 0.19 0.1 (ence behavior \050such as invocation) 402.35 371.93 B 0.52 0.1 (to a single object or to a r) 210.6 359.53 B 0.52 0.1 (eplicated object\051) 327.21 359.53 B 4 14 Q 0.14 (\245) 198 341.13 S 1 10 Q -0.05 0.1 (The transport layer \321 connection set up and management and r) 210.6 341.13 B -0.05 0.1 (emote object) 498.86 341.13 B 0.1 (tracking) 210.6 328.73 S 0.52 0.1 (The application layer sits on top of the RMI system. The r) 198 308.33 B 0.52 0.1 (elationship between) 462.46 308.33 B 0.52 0.1 (the layers is shown in the following \336gur) 198 295.93 B 0.52 0.1 (e.) 387.1 295.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.16/DEST FmPD2 97 597/M5.9.13295.Head1.32.Architectural.Overview FmPA 97 597/I5.1.1506 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "16" 22 %%Page: "17" 23 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 17) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (A r) 198 482 B 0.52 0.1 (emote method invocation fr) 212.87 482 B 0.52 0.1 (om a client to a r) 339.76 482 B 0.52 0.1 (emote server object travels) 417.57 482 B 0.52 0.1 (down thr) 198 469.6 B 0.52 0.1 (ough the layers of the RMI system to the client-side transport, then) 240.4 469.6 B 0.52 0.1 (up thr) 198 457.2 B 0.52 0.1 (ough the server) 226.51 457.2 B 0.52 0.1 (-side transport to the server) 297.98 457.2 B 0.52 0.1 (.) 424.51 457.2 B 0.52 0.1 (A client invoking a method on a r) 198 436.8 B 0.52 0.1 (emote server object actually makes use of a) 353.36 436.8 B 0 F 0.52 0.1 (stub) 198 424.4 B 1 F 0.52 0.1 ( or pr) 215.81 424.4 B 0.52 0.1 (oxy for the r) 241.64 424.4 B 0.52 0.1 (emote object as a conduit to the r) 298.56 424.4 B 0.52 0.1 (emote object. A client-) 450.68 424.4 B 0.52 0.1 (held r) 198 412 B 0.52 0.1 (efer) 225.02 412 B 0.52 0.1 (ence to a r) 242.1 412 B 0.52 0.1 (emote object is a r) 289.59 412 B 0.52 0.1 (efer) 372.44 412 B 0.52 0.1 (ence to a local stub. This stub is an) 389.52 412 B 0.52 0.1 (implementation of the r) 198 399.6 B 0.52 0.1 (emote interfaces of the r) 306.39 399.6 B 0.52 0.1 (emote object and forwar) 417.06 399.6 B 0.52 0.1 (ds) 528.15 399.6 B 0.52 0.1 (invocation r) 198 387.2 B 0.52 0.1 (equests to that server object via the r) 252.72 387.2 B 0.52 0.1 (emote r) 421.16 387.2 B 0.52 0.1 (efer) 455.78 387.2 B 0.52 0.1 (ence layer) 472.86 387.2 B 0.52 0.1 (. Stubs) 518.18 387.2 B 0.52 0.1 (ar) 198 374.8 B 0.52 0.1 (e generated using the rmic compiler) 206.97 374.8 B 0.52 0.1 (.) 371.55 374.8 B 0.52 0.1 (The) 198 354.4 B 0 F 0.52 0.1 (remote reference layer) 218.16 354.4 B 1 F 0.52 0.1 ( is r) 309.37 354.4 B 0.52 0.1 (esponsible for carrying out the semantics of the) 326.83 354.4 B 0.52 0.1 (invocation. For example, the r) 198 342 B 0.52 0.1 (emote r) 334.91 342 B 0.52 0.1 (efer) 369.53 342 B 0.52 0.1 (ence layer is r) 386.61 342 B 0.52 0.1 (esponsible for) 450.14 342 B 0.52 0.1 (determining whether the server is a single object or is a r) 198 329.6 B 0.52 0.1 (eplicated object) 459.41 329.6 B 0.52 0.1 (r) 198 317.2 B 0.52 0.1 (equiring communications with multiple locations. Each r) 201.87 317.2 B 0.52 0.1 (emote object) 461.63 317.2 B 0.52 0.1 (implementation chooses its own r) 198 304.8 B 0.52 0.1 (emote r) 352.13 304.8 B 0.52 0.1 (efer) 386.75 304.8 B 0.52 0.1 (ence semantics\321whether the) 403.83 304.8 B 0.1 0.1 (server is a single object or is a r) 198 292.4 B 0.1 0.1 (eplicated object r) 339.16 292.4 B 0.1 0.1 (equiring communications with) 415.96 292.4 B 0.52 0.1 (its r) 198 280 B 0.52 0.1 (eplicas.) 215.7 280 B 0.5 0.1 (Also handled by the r) 198 259.6 B 0.5 0.1 (emote r) 297.76 259.6 B 0.5 0.1 (efer) 332.35 259.6 B 0.5 0.1 (ence layer ar) 349.43 259.6 B 0.5 0.1 (e the r) 407.54 259.6 B 0.5 0.1 (efer) 436.66 259.6 B 0.5 0.1 (ence semantics for the) 453.74 259.6 B 0.46 0.1 (server) 198 247.2 B 0.46 0.1 (. The r) 225.23 247.2 B 0.46 0.1 (emote r) 254.85 247.2 B 0.46 0.1 (efer) 289.41 247.2 B 0.46 0.1 (ence layer) 306.49 247.2 B 0.46 0.1 (, for example, abstracts the dif) 351.76 247.2 B 0.46 0.1 (fer) 489.94 247.2 B 0.46 0.1 (ent ways of) 502.13 247.2 B 0.16 0.1 (r) 198 234.8 B 0.16 0.1 (eferring to objects that ar) 201.87 234.8 B 0.16 0.1 (e implemented in \050a\051 servers that ar) 315.18 234.8 B 0.16 0.1 (e always r) 476.66 234.8 B 0.16 0.1 (unning) 522.68 234.8 B 0.52 0.1 (on some machine, and \050b\051 servers that ar) 198 222.4 B 0.52 0.1 (e r) 384.69 222.4 B 0.52 0.1 (un only when some method) 396.67 222.4 B 0.52 0.1 (invocation is made on them \050activation\051. At the layers above the r) 198 210 B 0.52 0.1 (emote) 498.71 210 B 0.52 0.1 (r) 198 197.6 B 0.52 0.1 (efer) 201.87 197.6 B 0.52 0.1 (ence layer) 218.95 197.6 B 0.52 0.1 (, these dif) 264.28 197.6 B 0.52 0.1 (fer) 308.99 197.6 B 0.52 0.1 (ences ar) 321.18 197.6 B 0.52 0.1 (e not seen.) 357.85 197.6 B -0.13 0.1 (The) 198 177.2 B 0 F -0.13 0.1 (transport layer) 217.51 177.2 B 1 F -0.13 0.1 ( is r) 279.14 177.2 B -0.13 0.1 (esponsible for connection setup, connection management,) 295.29 177.2 B 0.52 0.1 (and keeping track of and dispatching to r) 198 164.8 B 0.52 0.1 (emote objects \050the tar) 388.11 164.8 B 0.52 0.1 (gets of r) 485.79 164.8 B 0.52 0.1 (emote) 523.14 164.8 B 0.52 0.1 (calls\051 r) 198 152.4 B 0.52 0.1 (esiding in the transport\325s addr) 228.42 152.4 B 0.52 0.1 (ess space.) 367.5 152.4 B 198 502 558 648 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 325.78 557 466.5 574.9 R 0.5 H 0 Z 0 X 0 0 0 1 0 0 0 K N 274.5 503 481.5 647 R N 6 9 Q 0.09 (Client) 352.87 616.72 S 343.78 611 385.5 629 9 RR N 364.64 599.71 361.67 599.71 364.64 610.09 367.62 599.71 4 Y N 364.64 599.71 361.67 599.71 364.64 610.09 367.62 599.71 4 Y V 364.64 586.18 367.62 586.18 364.64 575.8 361.67 586.18 4 Y N 364.64 586.18 367.62 586.18 364.64 575.8 361.67 586.18 4 Y V 364.64 599.46 364.64 586.43 2 L N 424.36 599.82 421.38 599.82 424.36 610.2 427.33 599.82 4 Y N 424.36 599.82 421.38 599.82 424.36 610.2 427.33 599.82 4 Y V 424.36 586.29 427.33 586.29 424.36 575.91 421.38 586.29 4 Y N 424.36 586.29 427.33 586.29 424.36 575.91 421.38 586.29 4 Y V 424.36 599.57 424.36 586.54 2 L N 0.09 (Remote Ref) 345.24 544.77 S 0.09 (erence La) 393.89 544.77 S 0.09 (y) 434.45 544.77 S 0.09 (er) 438.86 544.77 S 325.78 539.1 466.5 557 R N 7 10 Q 0.1 (Application) 283.73 616.58 S 0.1 (RMI) 290.28 550.56 S 0.1 (System) 285.13 540.56 S 6 9 Q 0.09 (Ser) 410.81 616.82 S 0.09 (v) 425.36 616.82 S 0.09 (er) 429.72 616.82 S 403.5 611.1 445.22 629.1 9 RR N 396.14 574.9 396.14 557 2 L 2 Z N (Stubs) 349.5 562.67 T (Sk) 412.5 562.67 T (eletons) 422.82 562.67 T 0.09 (T) 376.32 526.77 S 0.09 (r) 380.82 526.77 S 0.09 (anspor) 383.82 526.77 S 0.09 (t) 412.23 526.77 S 325.21 521.1 465.93 539 R 0 Z N 0 72 612 720 C 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.17/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "17" 23 %%Page: "18" 24 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 18) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (In or) 198 641.33 B 0.52 0.1 (der to dispatch to a r) 219.94 641.33 B 0.52 0.1 (emote object, the transport forwar) 316.09 641.33 B 0.52 0.1 (ds the r) 471.69 641.33 B 0.52 0.1 (emote call) 506.52 641.33 B 0.52 0.1 (up to the r) 198 628.93 B 0.52 0.1 (emote r) 246.56 628.93 B 0.52 0.1 (efer) 281.18 628.93 B 0.52 0.1 (ence layer) 298.26 628.93 B 0.52 0.1 (. The r) 343.59 628.93 B 0.52 0.1 (emote r) 373.34 628.93 B 0.52 0.1 (efer) 407.96 628.93 B 0.52 0.1 (ence layer handles any) 425.04 628.93 B 0.52 0.1 (server) 198 616.53 B 0.52 0.1 (-side behavior that needs to occur befor) 225.79 616.53 B 0.52 0.1 (e handing of) 407.41 616.53 B 0.52 0.1 (f the r) 465.09 616.53 B 0.52 0.1 (equest to the) 492.8 616.53 B 0.52 0.1 (server) 198 604.13 B 0.52 0.1 (-side skeleton. The skeleton for a r) 225.79 604.13 B 0.52 0.1 (emote object makes an up call to the) 383.3 604.13 B 0.52 0.1 (r) 198 591.73 B 0.52 0.1 (emote object implementation which carries out the actual method call.) 201.87 591.73 B 0.52 0.1 (The r) 198 571.33 B 0.52 0.1 (eturn value of a call is sent back thr) 222.03 571.33 B 0.52 0.1 (ough the skeleton, r) 385.91 571.33 B 0.52 0.1 (emote r) 476.81 571.33 B 0.52 0.1 (efer) 511.42 571.33 B 0.52 0.1 (ence) 528.51 571.33 B 0.52 0.1 (layer) 198 558.93 B 0.52 0.1 (, and transport on the server side, and then up thr) 219.97 558.93 B 0.52 0.1 (ough the transport,) 450.23 558.93 B 0.52 0.1 (r) 198 546.53 B 0.52 0.1 (emote r) 201.87 546.53 B 0.52 0.1 (efer) 236.49 546.53 B 0.52 0.1 (ence layer) 253.57 546.53 B 0.52 0.1 (, and stub on the client side.) 298.9 546.53 B 0 15 Q (3.3) 67.47 512.8 T -0.94 (The Stub/Skeleton Layer) 97.27 512.8 P 54 657/G5.240 FmPA 1 10 Q 0.52 0.1 (The stub/skeleton layer is the interface between the application layer and the) 198 491.13 B 0.09 0.1 (r) 198 478.73 B 0.09 0.1 (est of the RMI system. This layer does not deal with speci\336cs of any transport,) 201.87 478.73 B 0.52 0.1 (but transmits data to the r) 198 466.33 B 0.52 0.1 (emote r) 317.86 466.33 B 0.52 0.1 (efer) 352.48 466.33 B 0.52 0.1 (ence layer via the abstraction of) 369.56 466.33 B 0 F 0.52 0.1 (marshal) 518.22 466.33 B 0.52 0.1 (streams) 198 453.93 B 1 F 0.52 0.1 (. Marshal str) 229.81 453.93 B 0.52 0.1 (eams employ a mechanism called) 287.3 453.93 B 0 F 0.52 0.1 (object serialization) 443.76 453.93 B 1 F 0.52 0.1 ( which) 521.35 453.93 B 0.52 0.1 (enables Java objects to be transmitted between addr) 198 441.53 B 0.52 0.1 (ess spaces. Objects) 435.14 441.53 B 0.52 0.1 (transmitted using the object serialization system ar) 198 429.13 B 0.52 0.1 (e passed by copy to the) 430.85 429.13 B 0.52 0.1 (r) 198 416.73 B 0.52 0.1 (emote addr) 201.87 416.73 B 0.52 0.1 (ess space, unless they ar) 254.01 416.73 B 0.52 0.1 (e r) 365.07 416.73 B 0.52 0.1 (emote objects, in which case they ar) 376.95 416.73 B 0.52 0.1 (e) 541.09 416.73 B 0.52 0.1 (passed by r) 198 404.33 B 0.52 0.1 (efer) 250.39 404.33 B 0.52 0.1 (ence.) 267.47 404.33 B 0.46 0.1 (A) 198 383.93 B 0 F 0.46 0.1 (stub) 208.94 383.93 B 1 F 0.46 0.1 ( for a r) 226.75 383.93 B 0.46 0.1 (emote object is the client-side pr) 257.92 383.93 B 0.46 0.1 (oxy for the r) 405.36 383.93 B 0.46 0.1 (emote object. Such a) 462.09 383.93 B 0.52 0.1 (stub implements all the interfaces that ar) 198 371.53 B 0.52 0.1 (e supported by the r) 385.1 371.53 B 0.52 0.1 (emote object) 478.56 371.53 B 0.52 0.1 (implementation. A client-side stub is r) 198 359.13 B 0.52 0.1 (esponsible for:) 373.37 359.13 B 4 14 Q 0.14 (\245) 198 340.73 S 1 10 Q 0.52 0.1 (Initiating a call to the r) 210.6 340.73 B 0.52 0.1 (emote object \050by calling the r) 315.74 340.73 B 0.52 0.1 (emote r) 448.4 340.73 B 0.52 0.1 (efer) 483.02 340.73 B 0.52 0.1 (ence layer\051.) 500.1 340.73 B 4 14 Q 0.14 (\245) 198 322.33 S 1 10 Q 0.52 0.1 (Marshaling ar) 210.6 322.33 B 0.52 0.1 (guments to a marshal str) 274.36 322.33 B 0.52 0.1 (eam \050obtained fr) 388.11 322.33 B 0.52 0.1 (om the r) 463.68 322.33 B 0.52 0.1 (emote) 502.45 322.33 B 0.52 0.1 (r) 210.6 309.93 B 0.52 0.1 (efer) 214.47 309.93 B 0.52 0.1 (ence layer\051.) 231.55 309.93 B 4 14 Q 0.14 (\245) 198 291.53 S 1 10 Q 0.52 0.1 (Informing the r) 210.6 291.53 B 0.52 0.1 (emote r) 280.83 291.53 B 0.52 0.1 (efer) 315.45 291.53 B 0.52 0.1 (ence layer that the call should be invoked.) 332.53 291.53 B 4 14 Q 0.14 (\245) 198 273.13 S 1 10 Q 0.52 0.1 (Unmarshaling the r) 210.6 273.13 B 0.52 0.1 (eturn value or exception fr) 299.72 273.13 B 0.52 0.1 (om a marshal str) 421.88 273.13 B 0.52 0.1 (eam.) 498.85 273.13 B 4 14 Q 0.14 (\245) 198 254.73 S 1 10 Q 0.52 0.1 (Informing the r) 210.6 254.73 B 0.52 0.1 (emote r) 280.83 254.73 B 0.52 0.1 (efer) 315.45 254.73 B 0.52 0.1 (ence layer that the call is complete.) 332.53 254.73 B 0.52 0.1 (A) 198 234.33 B 0 F 0.52 0.1 (skeleton) 209 234.33 B 1 F 0.52 0.1 ( for a r) 242.02 234.33 B 0.52 0.1 (emote object is a server) 273.39 234.33 B 0.52 0.1 (-side entity that contains a method) 380.16 234.33 B 0.52 0.1 (which dispatches calls to the actual r) 198 221.93 B 0.52 0.1 (emote object implementation. The) 366.57 221.93 B 0.52 0.1 (skeleton is r) 198 209.53 B 0.52 0.1 (esponsible for:) 253.09 209.53 B 4 14 Q 0.14 (\245) 198 191.13 S 1 10 Q 0.52 0.1 (Unmarshaling ar) 210.6 191.13 B 0.52 0.1 (guments fr) 287.53 191.13 B 0.52 0.1 (om the marshal str) 337.18 191.13 B 0.52 0.1 (eam.) 423.22 191.13 B 4 14 Q 0.14 (\245) 198 172.73 S 1 10 Q 0.52 0.1 (Making the up-call to the actual r) 210.6 172.73 B 0.52 0.1 (emote object implementation.) 363.93 172.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.18/DEST FmPD2 97 667/M5.9.27222.Head1.33.The.StubSkeleton.Layer FmPA 97 667/I5.1.1510 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "18" 24 %%Page: "19" 25 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 19) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0 X 0 0 0 1 0 0 0 K 0.14 (\245) 198 641.33 S 1 10 Q -0.06 0.1 (Marshaling the r) 210.6 641.33 B -0.06 0.1 (eturn value of the call or an exception \050if one occurr) 285.4 641.33 B -0.06 0.1 (ed\051 onto) 517.98 641.33 B 0.52 0.1 (the marshal str) 210.6 628.93 B 0.52 0.1 (eam.) 279.03 628.93 B 0.52 0.1 (The appr) 198 608.53 B 0.52 0.1 (opriate stub and skeleton classes ar) 239.35 608.53 B 0.52 0.1 (e determined at r) 400.88 608.53 B 0.52 0.1 (un time and ar) 479.92 608.53 B 0.52 0.1 (e) 547.72 608.53 B 0.52 0.1 (dynamically loaded as needed, as described in Section) 198 596.13 B 0.52 0.1 (3.8, \322Dynamic Class) 449.39 596.13 B 0.52 0.1 (Loading\323. Stubs and skeletons ar) 198 583.73 B 0.52 0.1 (e generated using the rmic compiler) 348.83 583.73 B 0.52 0.1 (.) 513.41 583.73 B 0 15 Q (3.4) 67.47 550 T -0.94 (The Remote Refer) 97.27 550 P -0.94 (ence Layer) 201.81 550 P 54 694/G5.583 FmPA 1 10 Q 0.52 0.1 (The r) 198 528.33 B 0.52 0.1 (emote r) 222.03 528.33 B 0.52 0.1 (efer) 256.65 528.33 B 0.52 0.1 (ence layer deals with the lower) 273.73 528.33 B 0.52 0.1 (-level transport interface. This) 416.5 528.33 B 0.52 0.1 (layer is also r) 198 515.93 B 0.52 0.1 (esponsible for carrying out a speci\336c r) 259.3 515.93 B 0.52 0.1 (emote r) 434.35 515.93 B 0.52 0.1 (efer) 468.97 515.93 B 0.52 0.1 (ence pr) 486.05 515.93 B 0.52 0.1 (otocol) 519.39 515.93 B 0.52 0.1 (which is independent of the client stubs and server skeletons.) 198 503.53 B 0.52 0.1 (Each r) 198 483.13 B 0.52 0.1 (emote object implementation chooses its own r) 226.76 483.13 B 0.52 0.1 (emote r) 441.18 483.13 B 0.52 0.1 (efer) 475.8 483.13 B 0.52 0.1 (ence subclass) 492.88 483.13 B 0.52 0.1 (that operates on its behalf. V) 198 470.73 B 0.52 0.1 (arious invocation pr) 328.81 470.73 B 0.52 0.1 (otocols can be carried out at) 420.95 470.73 B 0.52 0.1 (this layer) 198 458.33 B 0.52 0.1 (. Examples ar) 239.72 458.33 B 0.52 0.1 (e:) 301.38 458.33 B 4 14 Q 0.14 (\245) 198 439.93 S 1 10 Q 0.52 0.1 (Unicast point-to-point invocation.) 210.6 439.93 B 4 14 Q 0.14 (\245) 198 421.53 S 1 10 Q 0.52 0.1 (Invocation to r) 210.6 421.53 B 0.52 0.1 (eplicated object gr) 277.82 421.53 B 0.52 0.1 (oups.) 361.13 421.53 B 4 14 Q 0.14 (\245) 198 403.13 S 1 10 Q 0.52 0.1 (Support for a speci\336c r) 210.6 403.13 B 0.52 0.1 (eplication strategy) 315.34 403.13 B 0.52 0.1 (.) 398.28 403.13 B 4 14 Q 0.14 (\245) 198 384.73 S 1 10 Q 0.52 0.1 (Support for a persistent r) 210.6 384.73 B 0.52 0.1 (efer) 326.03 384.73 B 0.52 0.1 (ence to the r) 343.11 384.73 B 0.52 0.1 (emote object \050enabling activation) 399.67 384.73 B 0.52 0.1 (of the r) 210.6 372.33 B 0.52 0.1 (emote object\051.) 243.87 372.33 B 4 14 Q 0.14 (\245) 198 353.93 S 1 10 Q 0.52 0.1 (Reconnection strategies \050if r) 210.6 353.93 B 0.52 0.1 (emote object becomes inaccessible\051.) 337.59 353.93 B 0.52 0.1 (The r) 198 333.53 B 0.52 0.1 (emote r) 222.03 333.53 B 0.52 0.1 (efer) 256.65 333.53 B 0.52 0.1 (ence layer has two cooperating components: the client-side) 273.73 333.53 B 0.52 0.1 (and the server) 198 321.13 B 0.52 0.1 (-side components. The client-side component contains) 263.43 321.13 B 0.52 0.1 (information speci\336c to the r) 198 308.73 B 0.52 0.1 (emote server \050or servers, if the r) 324.87 308.73 B 0.52 0.1 (emote r) 471.62 308.73 B 0.52 0.1 (efer) 506.24 308.73 B 0.52 0.1 (ence is) 523.32 308.73 B 0.52 0.1 (to a r) 198 296.33 B 0.52 0.1 (eplicated object\051 and communicates via the transport to the server) 222.13 296.33 B 0.52 0.1 (-side) 524.41 296.33 B 0.52 0.1 (component. During each method invocation, the client and server) 198 283.93 B 0.52 0.1 (-side) 498.53 283.93 B 0.37 0.1 (components perform the speci\336c r) 198 271.53 B 0.37 0.1 (emote r) 353.65 271.53 B 0.37 0.1 (efer) 388.12 271.53 B 0.37 0.1 (ence semantics. For example, if a) 405.2 271.53 B 0.52 0.1 (r) 198 259.13 B 0.52 0.1 (emote object is part of a r) 201.87 259.13 B 0.52 0.1 (eplicated object, the client-side component can) 318.57 259.13 B 0.52 0.1 (forwar) 198 246.73 B 0.52 0.1 (d the invocation to each r) 228.45 246.73 B 0.52 0.1 (eplica rather than just a single r) 345.4 246.73 B 0.52 0.1 (emote object.) 490.52 246.73 B 0.13 0.1 (In a corr) 198 226.33 B 0.13 0.1 (esponding manner) 235.98 226.33 B 0.13 0.1 (, the server) 320.4 226.33 B 0.13 0.1 (-side component implements the speci\336c) 370.42 226.33 B 0.52 0.1 (r) 198 213.93 B 0.52 0.1 (emote r) 201.87 213.93 B 0.52 0.1 (efer) 236.49 213.93 B 0.52 0.1 (ence semantics prior to delivering a r) 253.57 213.93 B 0.52 0.1 (emote method invocation to) 424.03 213.93 B 0.52 0.1 (the skeleton. This component, for example, would handle ensuring atomic) 198 201.53 B 0.52 0.1 (multicast delivery by communicating with other servers in a r) 198 189.13 B 0.52 0.1 (eplica gr) 481.95 189.13 B 0.52 0.1 (oup) 521.26 189.13 B 0.52 0.1 (\050note that multicast delivery is not part of the JDK 1.1 r) 198 176.73 B 0.52 0.1 (elease of RMI\051.) 451.74 176.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.19/DEST FmPD2 97 704/M5.9.21953.Head1.34.The.Remote.Reference.Layer FmPA 97 704/I5.1.1514 FmPA [/Rect[414 592 558 603]/Border[0 0 0]/Page 28/View[/XYZ null 97 366 FmDC exch pop null]/LNK FmPD [/Rect[54 580 241 592]/Border[0 0 0]/Page 28/View[/XYZ null 97 366 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "19" 25 %%Page: "20" 26 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 20) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The r) 198 641.33 B 0.52 0.1 (emote r) 222.03 641.33 B 0.52 0.1 (efer) 256.65 641.33 B 0.52 0.1 (ence layer transmits data to the transport layer via the) 273.73 641.33 B 0.52 0.1 (abstraction of a str) 198 628.93 B 0.52 0.1 (eam-oriented) 282.99 628.93 B 0 F 0.52 0.1 (connection) 346.35 628.93 B 1 F 0.52 0.1 (. The transport takes car) 391.05 628.93 B 0.52 0.1 (e of the) 501.88 628.93 B 0.52 0.1 (implementation details of connections. Although connections pr) 198 616.53 B 0.52 0.1 (esent a) 490.77 616.53 B 0.52 0.1 (str) 198 604.13 B 0.52 0.1 (eams-based interface, a connectionless transport can be implemented) 209.57 604.13 B 0.52 0.1 (beneath the abstraction.) 198 591.73 B 0 15 Q (3.5) 67.47 558 T -0.94 (The T) 97.27 558 P -0.94 (ransport Layer) 130.08 558 P 54 702/G5.264 FmPA 1 10 Q 0.52 0.1 (In general, the transport layer of the RMI system is r) 198 536.33 B 0.52 0.1 (esponsible for:) 439.15 536.33 B 4 14 Q 0.14 (\245) 198 517.93 S 1 10 Q 0.52 0.1 (Setting up connections to r) 210.6 517.93 B 0.52 0.1 (emote addr) 333.22 517.93 B 0.52 0.1 (ess spaces.) 385.36 517.93 B 4 14 Q 0.14 (\245) 198 499.53 S 1 10 Q 0.52 0.1 (Managing connections.) 210.6 499.53 B 4 14 Q 0.14 (\245) 198 481.13 S 1 10 Q 0.52 0.1 (Monitoring connection \322liveness.\323) 210.6 481.13 B 4 14 Q 0.14 (\245) 198 462.73 S 1 10 Q 0.52 0.1 (Listening for incoming calls.) 210.6 462.73 B 4 14 Q 0.14 (\245) 198 444.33 S 1 10 Q 0.52 0.1 (Maintaining a table of r) 210.6 444.33 B 0.52 0.1 (emote objects that r) 318.6 444.33 B 0.52 0.1 (eside in the addr) 407.96 444.33 B 0.52 0.1 (ess space.) 485.15 444.33 B 4 14 Q 0.14 (\245) 198 425.93 S 1 10 Q 0.52 0.1 (Setting up a connection for an incoming call.) 210.6 425.93 B 4 14 Q 0.14 (\245) 198 407.53 S 1 10 Q 0.52 0.1 (Locating the dispatcher for the tar) 210.6 407.53 B 0.52 0.1 (get of the r) 366.8 407.53 B 0.52 0.1 (emote call and passing the) 417.1 407.53 B 0.52 0.1 (connection to this dispatcher) 210.6 395.13 B 0.52 0.1 (.) 341.52 395.13 B -0.04 0.1 (The concr) 198 374.73 B -0.04 0.1 (ete r) 242.03 374.73 B -0.04 0.1 (epr) 261.6 374.73 B -0.04 0.1 (esentation of a r) 276.47 374.73 B -0.04 0.1 (emote object r) 348.45 374.73 B -0.04 0.1 (efer) 411.49 374.73 B -0.04 0.1 (ence consists of an endpoint) 428.57 374.73 B 0.52 0.1 (and an object identi\336er) 198 362.33 B 0.52 0.1 (. This r) 302.78 362.33 B 0.52 0.1 (epr) 334.99 362.33 B 0.52 0.1 (esentation is called a) 349.86 362.33 B 0 F 0.52 0.1 (live reference) 447.9 362.33 B 1 F 0.52 0.1 (. Given a) 502.52 362.33 B 0.52 0.1 (live r) 198 349.93 B 0.52 0.1 (efer) 221.65 349.93 B 0.52 0.1 (ence for a r) 238.73 349.93 B 0.52 0.1 (emote object, a transport can use the endpoint to set up a) 290.34 349.93 B 0.52 0.1 (connection to the addr) 198 337.53 B 0.52 0.1 (ess space in which the r) 301.06 337.53 B 0.52 0.1 (emote object r) 410.01 337.53 B 0.52 0.1 (esides. On the) 474.17 337.53 B 0.52 0.1 (server side, the transport uses the object identi\336er to look up the tar) 198 325.13 B 0.52 0.1 (get of the) 509.7 325.13 B 0.52 0.1 (r) 198 312.73 B 0.52 0.1 (emote call.) 201.87 312.73 B 0.52 0.1 (The transport for the RMI system consists of four basic abstractions:) 198 292.33 B 4 14 Q 0.14 (\245) 198 273.93 S 1 10 Q 0.52 0.1 (An) 210.6 273.93 B 0 F 0.52 0.1 (endpoint) 227.52 273.93 B 1 F 0.52 0.1 ( is the abstraction used to denote an addr) 263.88 273.93 B 0.52 0.1 (ess space or Java) 454.06 273.93 B 0.52 0.1 (virtual machine. In the implementation, an endpoint can be mapped to its) 210.6 261.53 B 0.52 0.1 (transport. That is, given an endpoint, a speci\336c transport instance can be) 210.6 249.13 B 0.1 (obtained.) 210.6 236.73 S 4 14 Q 0.14 (\245) 198 218.33 S 1 10 Q 0.52 0.1 (A) 210.6 218.33 B 0 F 0.52 0.1 (channel) 221.6 218.33 B 1 F 0.52 0.1 ( is the abstraction for a conduit between two addr) 253.6 218.33 B 0.52 0.1 (ess spaces. As) 482.81 218.33 B 0.52 0.1 (such, it is r) 210.6 205.93 B 0.52 0.1 (esponsible for managing connections between the local addr) 261.08 205.93 B 0.52 0.1 (ess) 537.32 205.93 B 0.52 0.1 (space and the r) 210.6 193.53 B 0.52 0.1 (emote addr) 280.21 193.53 B 0.52 0.1 (ess space for which it is a channel.) 332.35 193.53 B 4 14 Q 0.14 (\245) 198 175.13 S 1 10 Q 0.52 0.1 (A) 210.6 175.13 B 0 F 0.52 0.1 (connection) 221.6 175.13 B 1 F 0.52 0.1 ( is the abstraction for transferring data \050performing) 266.3 175.13 B 0.1 (input/output\051.) 210.6 162.73 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.20/DEST FmPD2 97 712/M5.9.10596.Head1.35.The.Transport.Layer FmPA 97 712/I5.1.1525 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "20" 26 %%Page: "21" 27 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 21) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0 X 0 0 0 1 0 0 0 K 0.14 (\245) 198 641.33 S 1 10 Q 0.52 0.1 (The) 210.6 641.33 B 0 F 0.52 0.1 (transport) 230.76 641.33 B 1 F 0.52 0.1 ( abstraction manages channels. Each channel is a virtual) 269.43 641.33 B 0.52 0.1 (connection between two addr) 210.6 628.93 B 0.52 0.1 (ess spaces. W) 345.95 628.93 B 0.52 0.1 (ithin a transport, only one) 407.23 628.93 B 0.52 0.1 (channel exists per pair of addr) 210.6 616.53 B 0.52 0.1 (ess spaces \050the local addr) 350.4 616.53 B 0.52 0.1 (ess space and a) 465.98 616.53 B 0.52 0.1 (r) 210.6 604.13 B 0.52 0.1 (emote addr) 214.47 604.13 B 0.52 0.1 (ess space\051. Given an endpoint to a r) 266.61 604.13 B 0.52 0.1 (emote addr) 430.22 604.13 B 0.52 0.1 (ess space, a) 482.36 604.13 B 0.52 0.1 (transport sets up a channel to that addr) 210.6 591.73 B 0.52 0.1 (ess space. The transport abstraction) 391.91 591.73 B 0.52 0.1 (is also r) 210.6 579.33 B 0.52 0.1 (esponsible for accepting calls on incoming connections to the) 246.07 579.33 B 0.21 0.1 (addr) 210.6 566.93 B 0.21 0.1 (ess space, setting up a connection object for the call, and dispatching to) 231.99 566.93 B 0.52 0.1 (higher layers in the system.) 210.6 554.53 B 0.52 0.1 (A transport de\336nes what the concr) 198 534.13 B 0.52 0.1 (ete r) 357.15 534.13 B 0.52 0.1 (epr) 377.28 534.13 B 0.52 0.1 (esentation of an endpoint is, so) 392.15 534.13 B 0.06 0.1 (multiple transport implementations may exist. The design and implementation) 198 521.73 B 0.11 0.1 (also supports multiple transports per addr) 198 509.33 B 0.11 0.1 (ess space, so both TCP and UDP can) 390.62 509.33 B 0.52 0.1 (be supported in the same virtual machine. Note that the RMI transport) 198 496.93 B 0.08 0.1 (interfaces ar) 198 484.53 B 0.08 0.1 (e only available to the virtual machine implementation and ar) 253.18 484.53 B 0.08 0.1 (e not) 532.92 484.53 B 0.52 0.1 (available dir) 198 472.13 B 0.52 0.1 (ectly to the application.) 254.81 472.13 B 0 15 Q (3.6) 67.47 438.4 T -0.94 (Thr) 97.27 438.4 P -0.94 (ead Usage in Remote Method Invocations) 119.5 438.4 P 54 582/G5.5112 FmPA 1 10 Q -0.01 0.1 (A method dispatched by the RMI r) 198 416.73 B -0.01 0.1 (untime to a r) 355.19 416.73 B -0.01 0.1 (emote object implementation \050a) 413.08 416.73 B 0.52 0.1 (server\051 may or may not execute in a separate thr) 198 404.33 B 0.52 0.1 (ead. Some calls originating) 420.29 404.33 B 0.1 (fr) 198 391.93 S 0.1 (om the same client virtual machine will execute in the same thr) 205.3 391.93 S 0.1 (ead; some will) 490.21 391.93 S 0.52 0.1 (execute in dif) 198 379.53 B 0.52 0.1 (fer) 259.6 379.53 B 0.52 0.1 (ent thr) 271.79 379.53 B 0.52 0.1 (eads. Calls originating fr) 302.23 379.53 B 0.52 0.1 (om dif) 414.94 379.53 B 0.52 0.1 (fer) 445.02 379.53 B 0.52 0.1 (ent client virtual) 457.21 379.53 B 0.19 0.1 (machines will execute in dif) 198 367.13 B 0.19 0.1 (fer) 324.64 367.13 B 0.19 0.1 (ent thr) 336.83 367.13 B 0.19 0.1 (eads. Other than this last case of dif) 366.94 367.13 B 0.19 0.1 (fer) 528.85 367.13 B 0.19 0.1 (ent) 541.04 367.13 B 0.52 0.1 (client virtual machines, the RMI r) 198 354.73 B 0.52 0.1 (untime makes no guarantees with r) 351.94 354.73 B 0.52 0.1 (espect to) 514.22 354.73 B 0.52 0.1 (mapping r) 198 342.33 B 0.52 0.1 (emote object invocations to thr) 245.83 342.33 B 0.52 0.1 (eads.) 386.5 342.33 B 0 15 Q (3.7) 67.47 308.6 T -0.94 (Garbage Collection of Remote Objects) 97.27 308.6 P 54 453/G5.5097 FmPA 1 10 Q 0.52 0.1 (In a distributed system, just as in the local system, it is desirable to) 198 286.93 B 0.49 0.1 (automatically delete those r) 198 274.53 B 0.49 0.1 (emote objects that ar) 324.31 274.53 B 0.49 0.1 (e no longer r) 418.66 274.53 B 0.49 0.1 (efer) 477.25 274.53 B 0.49 0.1 (enced by any) 494.33 274.53 B 0.52 0.1 (client. This fr) 198 262.13 B 0.52 0.1 (ees the pr) 258.37 262.13 B 0.52 0.1 (ogrammer fr) 302.88 262.13 B 0.52 0.1 (om needing to keep track of the r) 360.47 262.13 B 0.52 0.1 (emote) 513.51 262.13 B 0.52 0.1 (objects) 198 249.73 B 0.52 0.1 ( clients so that it can terminate appr) 228.76 249.73 B 0.52 0.1 (opriately) 393.94 249.73 B 0.52 0.1 (. RMI uses a r) 433.58 249.73 B 0.52 0.1 (efer) 497.14 249.73 B 0.52 0.1 (ence-) 514.22 249.73 B 0.51 0.1 (counting garbage collection algorithm similar to Modula-3\325s Network Objects.) 198 237.33 B 0.52 0.1 (\050See \322Network Objects\323 by Birr) 198 224.93 B 0.52 0.1 (ell, Nelson, and Owicki,) 341.2 224.93 B 0 F 0.52 0.1 (Digital Equipment) 454.37 224.93 B 0.52 0.1 (Corporation Systems Resear) 198 212.53 B 0.52 0.1 (ch Center T) 315.35 212.53 B 0.52 0.1 (echnical Report 1) 363.79 212.53 B 0.52 0.1 (1) 435.79 212.53 B 1 F 0.52 0.1 (5, 1994.\051) 440.89 212.53 B 0.52 0.1 (T) 198 192.13 B 0.52 0.1 (o accomplish r) 203.31 192.13 B 0.52 0.1 (efer) 270.04 192.13 B 0.52 0.1 (ence-counting garbage collection, the RMI r) 287.12 192.13 B 0.52 0.1 (untime keeps) 486.53 192.13 B 0.52 0.1 (track of all live r) 198 179.73 B 0.52 0.1 (efer) 273.83 179.73 B 0.52 0.1 (ences within each Java virtual machine. When a live) 290.91 179.73 B 0.29 0.1 (r) 198 167.33 B 0.29 0.1 (efer) 201.87 167.33 B 0.29 0.1 (ence enters a Java virtual machine, its r) 218.95 167.33 B 0.29 0.1 (efer) 397.28 167.33 B 0.29 0.1 (ence count is incr) 414.36 167.33 B 0.29 0.1 (emented. The) 493.48 167.33 B 0.52 0.1 (\336rst r) 198 154.93 B 0.52 0.1 (efer) 222.89 154.93 B 0.52 0.1 (ence to an object sends a \322r) 239.97 154.93 B 0.52 0.1 (efer) 365.06 154.93 B 0.52 0.1 (enced\323 message to the server for the) 382.14 154.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.21/DEST FmPD2 97 463/M5.9.24469.Head1.36.Garbage.Collection.of.Remote.Objects FmPA 97 463/I5.1.1529 FmPA 97 592/M5.9.31844.Head1.36.Thread.Usage.in.Remote.Method.Invocations FmPA 97 592/I5.1.5143 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "21" 27 %%Page: "22" 28 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 22) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (object. As live r) 198 641.33 B 0.52 0.1 (efer) 269.13 641.33 B 0.52 0.1 (ences ar) 286.21 641.33 B 0.52 0.1 (e found to be unr) 322.88 641.33 B 0.52 0.1 (efer) 402.86 641.33 B 0.52 0.1 (enced in the local virtual) 419.94 641.33 B 0.52 0.1 (machine, their \336nalization decr) 198 628.93 B 0.52 0.1 (ements the count. When the last r) 340.25 628.93 B 0.52 0.1 (efer) 494.26 628.93 B 0.52 0.1 (ence has) 511.34 628.93 B 0.32 0.1 (been discar) 198 616.53 B 0.32 0.1 (ded, an unr) 249.32 616.53 B 0.32 0.1 (efer) 302.02 616.53 B 0.32 0.1 (enced message is sent to the server) 319.1 616.53 B 0.32 0.1 (. Many subtleties) 477.43 616.53 B 0.52 0.1 (exist in the pr) 198 604.13 B 0.52 0.1 (otocol; most of these ar) 261.3 604.13 B 0.52 0.1 (e r) 367.52 604.13 B 0.52 0.1 (elated to maintaining the or) 379.4 604.13 B 0.52 0.1 (dering of) 506.8 604.13 B 0.51 0.1 (r) 198 591.73 B 0.51 0.1 (efer) 201.87 591.73 B 0.51 0.1 (enced and unr) 218.95 591.73 B 0.51 0.1 (efer) 284.77 591.73 B 0.51 0.1 (enced messages in or) 301.85 591.73 B 0.51 0.1 (der to ensur) 398.48 591.73 B 0.51 0.1 (e that the object is not) 453.92 591.73 B 0.52 0.1 (pr) 198 579.33 B 0.52 0.1 (ematur) 207.98 579.33 B 0.52 0.1 (ely collected.) 240.26 579.33 B 0.11 0.1 (When a r) 198 558.93 B 0.11 0.1 (emote object is not r) 239.22 558.93 B 0.11 0.1 (efer) 330.18 558.93 B 0.11 0.1 (enced by any client, the RMI r) 347.26 558.93 B 0.11 0.1 (untime r) 483.23 558.93 B 0.11 0.1 (efers to) 522.06 558.93 B 0.04 0.1 (it using a weak r) 198 546.53 B 0.04 0.1 (efer) 273.05 546.53 B 0.04 0.1 (ence. The weak r) 290.13 546.53 B 0.04 0.1 (efer) 365.89 546.53 B 0.04 0.1 (ence allows the Java virtual machine\325s) 382.97 546.53 B 0.52 0.1 (garbage collector to discar) 198 534.13 B 0.52 0.1 (d the object if no other local r) 317.96 534.13 B 0.52 0.1 (efer) 453.39 534.13 B 0.52 0.1 (ences to the object) 470.47 534.13 B 0.23 0.1 (exist. The distributed garbage collection algorithm interacts with the local Java) 198 521.73 B 0.52 0.1 (virtual machine\325s garbage collector in the usual ways by holding normal or) 198 509.33 B 0.28 0.1 (weak r) 198 496.93 B 0.28 0.1 (efer) 228.84 496.93 B 0.28 0.1 (ences to objects. As in the normal object life-cycle) 245.92 496.93 B 5 F 0.64 (finalize) 473.38 496.93 P 1 F 0.28 0.1 ( will be) 521.38 496.93 B 0.52 0.1 (called after the garbage collector determines that no mor) 198 484.53 B 0.52 0.1 (e r) 457.4 484.53 B 0.52 0.1 (efer) 469.28 484.53 B 0.52 0.1 (ences to the) 486.36 484.53 B 0.52 0.1 (object exist.) 198 472.13 B 0.52 0.1 (As long as a local r) 198 451.73 B 0.52 0.1 (efer) 285.6 451.73 B 0.52 0.1 (ence to a r) 302.68 451.73 B 0.52 0.1 (emote object exists, it cannot be garbage-) 350.17 451.73 B 0.52 0.1 (collected and it can be passed in r) 198 439.33 B 0.52 0.1 (emote calls or r) 353.32 439.33 B 0.52 0.1 (eturned to clients. Passing a) 423.79 439.33 B 0.01 0.1 (r) 198 426.93 B 0.01 0.1 (emote object adds the identi\336er for the virtual machine to which it was passed) 201.87 426.93 B 0.52 0.1 (to the r) 198 414.53 B 0.52 0.1 (efer) 231.2 414.53 B 0.52 0.1 (enced set. A r) 248.28 414.53 B 0.52 0.1 (emote object needing unr) 311.03 414.53 B 0.52 0.1 (efer) 426.86 414.53 B 0.52 0.1 (enced noti\336cation must) 443.94 414.53 B 0.52 0.1 (implement the) 198 402.13 B 5 F 1.2 (java.rmi.server.Unreferenced) 267.46 402.13 P 1 F 0.52 0.1 ( interface. When those) 435.46 402.13 B 0.52 0.1 (r) 198 389.73 B 0.52 0.1 (efer) 201.87 389.73 B 0.52 0.1 (ences no longer exist, the) 218.95 389.73 B 5 F 1.2 (unreferenced) 337.33 389.73 P 1 F 0.52 0.1 ( method will be invoked.) 409.33 389.73 B 5 F 1.2 (unreferenced) 198 377.33 P 1 F 0.52 0.1 ( is called when the set of r) 270 377.33 B 0.52 0.1 (efer) 390.74 377.33 B 0.52 0.1 (ences is found to be empty so it) 407.82 377.33 B 0.52 0.1 (might be called mor) 198 364.93 B 0.52 0.1 (e than once. Remote objects ar) 289.88 364.93 B 0.52 0.1 (e only collected when no) 428.32 364.93 B 0.52 0.1 (mor) 198 352.53 B 0.52 0.1 (e r) 216.36 352.53 B 0.52 0.1 (efer) 228.24 352.53 B 0.52 0.1 (ences, either local or r) 245.32 352.53 B 0.52 0.1 (emote, still exist.) 345.8 352.53 B 0.52 0.1 (Note that if a network partition exists between a client and a r) 198 332.13 B 0.52 0.1 (emote server) 483.55 332.13 B 0.52 0.1 (object, it is possible that pr) 198 319.73 B 0.52 0.1 (ematur) 320.95 319.73 B 0.52 0.1 (e collection of the r) 353.23 319.73 B 0.52 0.1 (emote object will occur) 441.03 319.73 B 0.52 0.1 (\050since the transport might believe that the client crashed\051. Because of the) 198 307.33 B 0.52 0.1 (possibility of pr) 198 294.93 B 0.52 0.1 (ematur) 270.25 294.93 B 0.52 0.1 (e collection, r) 302.53 294.93 B 0.52 0.1 (emote r) 363.53 294.93 B 0.52 0.1 (efer) 398.15 294.93 B 0.52 0.1 (ences cannot guarantee) 415.23 294.93 B 0.52 0.1 (r) 198 282.53 B 0.52 0.1 (efer) 201.87 282.53 B 0.52 0.1 (ential integrity; in other wor) 218.95 282.53 B 0.52 0.1 (ds, it is always possible that a r) 348.82 282.53 B 0.52 0.1 (emote) 492.78 282.53 B 0.52 0.1 (r) 198 270.13 B 0.52 0.1 (efer) 201.87 270.13 B 0.52 0.1 (ence may in fact not r) 218.95 270.13 B 0.52 0.1 (efer to an existing object. An attempt to use such a) 318.55 270.13 B 0.52 0.1 (r) 198 257.73 B 0.52 0.1 (efer) 201.87 257.73 B 0.52 0.1 (ence will generate a) 218.95 257.73 B 5 F 1.2 (RemoteException) 313 257.73 P 1 F 0.52 0.1 ( which must be handled by the) 403 257.73 B 0.1 (application.) 198 245.33 S 0 15 Q (3.8) 67.47 211.6 T -0.94 (Dynamic Class Loading) 97.27 211.6 P 54 356/G5.280 FmPA 1 10 Q 0.52 0.1 (In RPC \050r) 198 189.93 B 0.52 0.1 (emote pr) 241.04 189.93 B 0.52 0.1 (ocedur) 281.77 189.93 B 0.52 0.1 (e call\051 systems, client-side stub code must be) 312.97 189.93 B 0.51 0.1 (generated and linked into a client befor) 198 177.53 B 0.51 0.1 (e a r) 378.63 177.53 B 0.51 0.1 (emote pr) 398.71 177.53 B 0.51 0.1 (ocedur) 439.43 177.53 B 0.51 0.1 (e call can be done.) 470.63 177.53 B 0.52 0.1 (This code can be either statically linked into the client or linked in at r) 198 165.13 B 0.52 0.1 (untime) 520.18 165.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.22/DEST FmPD2 97 366/M5.9.36790.Head1.36.Dynamic.Stub.Loading FmPA 97 366/I5.1.584 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "22" 28 %%Page: "23" 29 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 23) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (via dynamic linking with libraries available locally or over a network \336le) 198 641.33 B 0.52 0.1 (system. In the case of either static or dynamic linking, the speci\336c code to) 198 628.93 B 0.52 0.1 (handle an RPC must be available to the client machine in compiled form.) 198 616.53 B 0.52 0.1 (RMI generalizes this technique, using a mechanism called dynamic class) 198 596.13 B -0.04 0.1 (loading to load at r) 198 583.73 B -0.04 0.1 (untime \050in the Java language\325s ar) 283.96 583.73 B -0.04 0.1 (chitectur) 432.6 583.73 B -0.04 0.1 (e neutral bytecode) 472.21 583.73 B 0.52 0.1 (format\051 the classes r) 198 571.33 B 0.52 0.1 (equir) 289.82 571.33 B 0.52 0.1 (ed to handle method invocations on a r) 313.42 571.33 B 0.52 0.1 (emote object.) 493.72 571.33 B 0.52 0.1 (These classes ar) 198 558.93 B 0.52 0.1 (e:) 270.04 558.93 B 4 14 Q 0.14 (\245) 198 540.53 S 1 10 Q 0.52 0.1 (The classes of r) 210.6 540.53 B 0.52 0.1 (emote objects and their interfaces.) 280.42 540.53 B 4 14 Q 0.14 (\245) 198 520.13 S 1 10 Q 0.11 0.1 (The stub and skeleton classes that serve as pr) 210.6 520.13 B 0.11 0.1 (oxies for r) 415.26 520.13 B 0.11 0.1 (emote objects. \050Stubs) 460.65 520.13 B 0.52 0.1 (and skeletons ar) 210.6 507.73 B 0.52 0.1 (e cr) 285.01 507.73 B 0.52 0.1 (eated using the) 301.43 507.73 B 5 F 1.2 (rmic) 374.47 507.73 P 1 F 0.52 0.1 ( compiler) 398.47 507.73 B 0.52 0.1 (.\051) 440.95 507.73 B 4 14 Q 0.14 (\245) 198 487.33 S 1 10 Q 0.18 0.1 (Other classes used dir) 210.6 487.33 B 0.18 0.1 (ectly in an RMI-based application, such as parameters) 310.33 487.33 B 0.52 0.1 (to, or r) 210.6 474.93 B 0.52 0.1 (eturn values fr) 241.84 474.93 B 0.52 0.1 (om, r) 308.95 474.93 B 0.52 0.1 (emote method invocations.) 333.03 474.93 B 0.52 0.1 (This section describes:) 198 454.53 B 4 14 Q 0.14 (\245) 198 436.13 S 1 10 Q 0.14 0.1 (How the RMI r) 210.6 436.13 B 0.14 0.1 (untime chooses a class loader and the location fr) 279.2 436.13 B 0.14 0.1 (om which to) 498.53 436.13 B 0.52 0.1 (load classes.) 210.6 423.73 B 4 14 Q 0.14 (\245) 198 405.33 S 1 10 Q 0.52 0.1 (How to for) 210.6 405.33 B 0.52 0.1 (ce the downloading over the net of all the classes for a Java) 261.04 405.33 B 0.1 (application.) 210.6 392.93 S 0.52 0.1 (In addition to class loaders, dynamic class loading employs two other) 198 372.53 B 0.52 0.1 (mechanisms: the object serialization system to transmit classes over the wir) 198 360.13 B 0.52 0.1 (e,) 542.58 360.13 B 0.52 0.1 (and a security manager to check the classes that ar) 198 347.73 B 0.52 0.1 (e loaded. The object) 429.95 347.73 B 0.1 0.1 (serialization system is discussed in the) 198 335.33 B 0 F 0.1 0.1 (Object Serialization Speci\336cation) 375.63 335.33 B 1 F 0.1 0.1 (. Security) 512.91 335.33 B 0.52 0.1 (issues ar) 198 322.93 B 0.52 0.1 (e discussed in Section) 237.14 322.93 B 0.52 0.1 (3.9, \322Security\323.) 339.56 322.93 B 0 14 Q (3.8.1) 125 289.87 T 0.7 (How a Class Loader is Chosen) 160.49 289.87 P 1 10 Q 0.31 0.1 (In Java, the class loader that initially loads a Java class is subsequently used to) 198 268.53 B 0.52 0.1 (load all the interfaces and classes that ar) 198 256.13 B 0.52 0.1 (e used dir) 383.04 256.13 B 0.52 0.1 (ectly in the class:) 428.83 256.13 B 4 14 Q 0.14 (\245) 198 237.73 S 1 10 Q 0.15 0.1 (The AppletClassLoader is used to download a Java applet over the net fr) 210.6 237.73 B 0.15 0.1 (om) 540.76 237.73 B 0.52 0.1 (the location speci\336ed by the codebase attribute on the web page that) 210.6 225.33 B 0.52 0.1 (contains the tag. All classes used dir) 210.6 212.93 B 0.52 0.1 (ectly in the applet ar) 421.1 212.93 B 0.52 0.1 (e) 515.69 212.93 B 0.52 0.1 (subsequently loaded by the AppletClassLoader) 210.6 200.53 B 0.52 0.1 (.) 426.14 200.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.23/DEST FmPD2 [/Rect[304 319 405 330]/Border[0 0 0]/Page 32/View[/XYZ null 97 588 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "23" 29 %%Page: "24" 30 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 24) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0 X 0 0 0 1 0 0 0 K 0.14 (\245) 198 641.33 S 1 10 Q 0.52 0.1 (The default class loader is used to load a class \050whose) 210.6 641.33 B 5 F 1.2 (main) 460.97 641.33 P 1 F 0.52 0.1 ( method is r) 484.97 641.33 B 0.52 0.1 (un) 540.52 641.33 B 0.52 0.1 (by using the) 210.6 628.93 B 5 F 1.2 (java) 270.48 628.93 P 1 F 0.52 0.1 ( command\051 fr) 294.48 628.93 B 0.52 0.1 (om the local CLASSP) 356.64 628.93 B 0.52 0.1 (A) 453.08 628.93 B 0.52 0.1 (TH. All classes used) 460.22 628.93 B 0.52 0.1 (dir) 210.6 616.53 B 0.52 0.1 (ectly in that class ar) 223.69 616.53 B 0.52 0.1 (e subsequently loaded by the default class loader) 314.6 616.53 B 0.52 0.1 (fr) 210.6 604.13 B 0.52 0.1 (om the local CLASSP) 217.9 604.13 B 0.52 0.1 (A) 314.34 604.13 B 0.52 0.1 (TH.) 321.48 604.13 B 4 14 Q 0.14 (\245) 198 585.73 S 1 10 Q 0.52 0.1 (The RMIClassLoader is used to load those classes not dir) 210.6 585.73 B 0.52 0.1 (ectly used by the) 471.81 585.73 B 0.52 0.1 (client or server application: the stubs and skeletons of r) 210.6 573.33 B 0.52 0.1 (emote objects, and) 464.45 573.33 B 0.52 0.1 (extended classes of ar) 210.6 560.93 B 0.52 0.1 (guments and r) 310.11 560.93 B 0.52 0.1 (eturn values to RMI calls. The) 376.68 560.93 B 0.52 0.1 (RMIClassLoader looks for these classes in the following locations, in the) 210.6 548.53 B 0.52 0.1 (or) 210.6 536.13 B 0.52 0.1 (der listed:) 220.03 536.13 B 0.1 (a.) 212.62 517.73 S 0.52 0.1 (The local CLASSP) 224.64 517.73 B 0.52 0.1 (A) 306.34 517.73 B 0.52 0.1 (TH. Classes ar) 313.48 517.73 B 0.52 0.1 (e always loaded locally if they exist) 379.15 517.73 B 0.1 (locally) 223.2 505.33 S 0.1 (.) 251.98 505.33 S 0.1 (b.) 212.09 486.93 S 0.52 0.1 (For objects \050both r) 223.2 486.93 B 0.52 0.1 (emote and nonr) 306.36 486.93 B 0.52 0.1 (emote\051 passed as parameters or r) 378.73 486.93 B 0.52 0.1 (eturn) 530.12 486.93 B 0.52 0.1 (values, the URL encoded in the marshal str) 223.2 474.53 B 0.52 0.1 (eam that contains the) 421.24 474.53 B 0.52 0.1 (serialized object is used to locate the class for the object.) 223.2 462.13 B 0.1 (c.) 213.18 443.73 S 0.52 0.1 (For stubs and skeletons of r) 223.2 443.73 B 0.52 0.1 (emote objects cr) 349.93 443.73 B 0.52 0.1 (eated in the local virtual) 422.97 443.73 B 0.52 0.1 (machine, the URL speci\336ed by the local) 223.2 431.33 B 5 F 1.2 (java.rmi.server.codebase) 407.81 431.33 P 1 F 0.52 0.1 (pr) 223.2 418.93 B 0.52 0.1 (operty is used.) 233.18 418.93 B 0.52 0.1 (For objects passed as parameters or r) 198 398.53 B 0.52 0.1 (eturn values \050the second case above\051, the) 367.48 398.53 B 0.52 0.1 (URL that is encoded in the str) 198 386.13 B 0.52 0.1 (eam for an object\325s class is determined as) 335.57 386.13 B 0.1 (follows:) 198 373.73 S 4 14 Q 0.14 (\245) 198 355.33 S 1 10 Q 0.23 0.1 (If the class was loaded by a class loader \050other than the default classloader\051,) 210.6 355.33 B 0.52 0.1 (the URL of that class loader is used.) 210.6 342.93 B 4 14 Q 0.14 (\245) 198 322.53 S 1 10 Q 0.52 0.1 (otherwise, if de\336ned, the) 210.6 322.53 B 5 F 1.2 (java.rmi.server.codebase) 327.62 322.53 P 1 F 0.52 0.1 ( URL is used.) 471.62 322.53 B 0.33 0.1 ( Thus, if a class was loaded fr) 198 302.13 B 0.33 0.1 (om CLASSP) 332.74 302.13 B 0.33 0.1 (A) 387.36 302.13 B 0.33 0.1 (TH, the codebase URL will be used) 394.5 302.13 B 0.52 0.1 (to annotate that class in the str) 198 289.73 B 0.52 0.1 (eam if that class is used in an RMI call.) 338.59 289.73 B 0.52 0.1 (The application can be con\336gur) 198 269.33 B 0.52 0.1 (ed with the pr) 342.26 269.33 B 0.52 0.1 (operty) 407.6 269.33 B 5 F 0.58 (java.rmi.server.useCodebaseOnly) 198 256.93 P 1 F 0.25 0.1 (, which disables the loading of classes) 382.89 256.93 B 0.52 0.1 (fr) 198 244.53 B 0.52 0.1 (om network hosts and for) 205.3 244.53 B 0.52 0.1 (ces classes to be loaded only fr) 323.76 244.53 B 0.52 0.1 (om the locally) 464.68 244.53 B 0.52 0.1 (de\336ned codebase. If the r) 198 232.13 B 0.52 0.1 (equir) 313.45 232.13 B 0.52 0.1 (ed class cannot be loaded, the method) 337.05 232.13 B 0.52 0.1 (invocation will fail with an exception.) 198 219.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.24/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "24" 30 %%Page: "25" 31 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 25) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (3.8.2) 125 638.67 T 0.7 (Bootstrapping the Client) 160.49 638.67 P 1 10 Q 0.52 0.1 (For the RMI r) 198 617.33 B 0.52 0.1 (untime to be able to download) 260.58 617.33 B 0 F 0.52 0.1 (all) 404.54 617.33 B 1 F 0.52 0.1 ( the classes and interfaces) 414.84 617.33 B 0.52 0.1 (needed by a client application, a bootstrapping client pr) 198 604.93 B 0.52 0.1 (ogram is r) 454.1 604.93 B 0.52 0.1 (equir) 500.86 604.93 B 0.52 0.1 (ed) 524.46 604.93 B -0.01 0.1 (which for) 198 592.53 B -0.01 0.1 (ces the use of a class loader \050such as RMI\325s class loader\051 instead of the) 241.27 592.53 B 0.52 0.1 (default class loader) 198 580.13 B 0.52 0.1 (. The bootstrapping pr) 285.78 580.13 B 0.52 0.1 (ogram needs to:) 388.53 580.13 B 4 14 Q 0.14 (\245) 198 561.73 S 1 10 Q 0.52 0.1 (Cr) 210.6 561.73 B 0.52 0.1 (eate an instance of the) 221.66 561.73 B 5 F 1.2 (RMISecurityManager) 326.76 561.73 P 1 F 0.52 0.1 ( or user) 434.76 561.73 B 0.52 0.1 (-de\336ned security) 469.84 561.73 B 0.1 (manager) 210.6 549.33 S 0.1 (.) 249.51 549.33 S 4 14 Q 0.14 (\245) 198 530.93 S 1 10 Q 0.27 0.1 (Use the method) 210.6 530.93 B 5 F 0.63 (RMIClassLoader.loadClass) 285.36 530.93 P 1 F 0.27 0.1 ( to load the class \336le for the) 429.36 530.93 B 0.52 0.1 (client. The class name cannot be mentioned explicitly in the code, but must) 210.6 518.53 B 0.52 0.1 (instead be a string or a command line ar) 210.6 506.13 B 0.52 0.1 (gument. Otherwise, the default) 396.05 506.13 B 0.52 0.1 (class loader will try to load the client class \336le fr) 210.6 493.73 B 0.52 0.1 (om the local CLASSP) 432.87 493.73 B 0.52 0.1 (A) 529.3 493.73 B 0.52 0.1 (TH.) 536.45 493.73 B 4 14 Q 0.14 (\245) 198 475.33 S 1 10 Q 0.45 0.1 (Use the) 210.6 475.33 B 5 F 1.05 (newInstance) 247.99 475.33 P 1 F 0.45 0.1 ( method to cr) 313.99 475.33 B 0.45 0.1 (eate an instance of the client and cast it) 375.35 475.33 B 0.52 0.1 (to) 210.6 462.93 B 5 F 1.2 (Runnable) 222.64 462.93 P 1 F 0.52 0.1 (. Thus, the client must implement the) 270.64 462.93 B 5 F 1.2 (java.lang.Runnable) 445.18 462.93 P 1 F 0.52 0.1 (interface. The) 210.6 450.53 B 5 F 1.2 (Runnable) 275.67 450.53 P 1 F 0.52 0.1 ( interface pr) 323.67 450.53 B 0.52 0.1 (ovides a well-de\336ned interface for) 379.08 450.53 B 0.52 0.1 (starting a thr) 210.6 438.13 B 0.52 0.1 (ead of execution.) 269.89 438.13 B 4 14 Q 0.14 (\245) 198 419.73 S 1 10 Q 0.52 0.1 (Start the client by calling the) 210.6 419.73 B 5 F 1.2 (run) 345.15 419.73 P 1 F 0.52 0.1 ( method \050of the) 363.15 419.73 B 5 F 1.2 (Runnable) 437.09 419.73 P 1 F 0.52 0.1 ( interface\051.) 485.09 419.73 B 0.52 0.1 (For example:) 198 399.33 B 5 9 Q (import java.rmi.RMISecurityManager;) 198 383.6 T (import java.rmi.server.RMIClassLoader;) 198 372.6 T (public class LoadClient) 198 350.6 T ({) 198 339.6 T (public static void main\050\051) 218.16 328.6 T ({) 218.16 317.6 T (System.setSecurityManager\050new RMISecurityManager\050\051\051;) 238.32 306.6 T (try {) 238.32 291.6 T (Class cl = RMIClassLoader.loadClass\050\322myclient\323\051;) 258.48 280.6 T (Runnable client = \050Runnable\051cl.newInstance\050\051;) 258.48 269.6 T (client.run\050\051;) 258.48 258.6 T (} catch \050Exception e\051 {) 238.32 247.6 T (System.out.println\050"Exception: " + e.getMessage\050\051\051;) 258.48 236.6 T (e.printStackTrace\050\051;) 258.48 225.6 T (}) 238.32 214.6 T (}) 218.16 203.6 T (}) 198 192.6 T 1 10 Q 0.09 0.1 (In or) 198 172.93 B 0.09 0.1 (der for this code to work, you need to specify the java.rmi.server) 219.51 172.93 B 0.09 0.1 (.codebase) 511.55 172.93 B 0.52 0.1 (pr) 198 160.53 B 0.52 0.1 (operty when you r) 207.98 160.53 B 0.52 0.1 (un the bootstrapping pr) 293.46 160.53 B 0.52 0.1 (ogram so that the) 402.79 160.53 B 5 F 1.2 (loadClass) 486.38 160.53 P 1 F 0.52 0.1 (method will use this URL to load the class. For example:) 198 148.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.25/DEST FmPD2 160 792/M5.9.41435.Head2.373.Bootstrapping.The.Client FmPA 160 792/I5.1.4357 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "25" 31 %%Page: "26" 32 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 26) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (java -Djava.rmi.server.codebase=http://) 198 642 T 0 F 0.09 (host) 408.6 642 S 5 F (/rmiclasses/ LoadClient) 423.95 642 T 1 10 Q 0.52 0.1 (Instead of r) 198 622.33 B 0.52 0.1 (elying on the pr) 250.39 622.33 B 0.52 0.1 (operty) 323.53 622.33 B 0.52 0.1 (, you can supply your own URL:) 352.05 622.33 B 5 9 Q (Class cl = RMIClassLoader.loadClass\050url, \322myclient\323\051;) 198 606.6 T 1 10 Q 0.52 0.1 (Once the client is started and has contr) 198 586.93 B 0.52 0.1 (ol, all classes needed by the client will) 376.55 586.93 B 0.52 0.1 (be loaded fr) 198 574.53 B 0.52 0.1 (om the speci\336ed URL. This bootstrapping technique is exactly the) 253.04 574.53 B 0.52 0.1 (same technique Java uses to for) 198 562.13 B 0.52 0.1 (ce the AppletClassLoader to download the) 342.08 562.13 B 0.52 0.1 (same classes used in an applet.) 198 549.73 B 0.52 0.1 (W) 198 529.33 B 0.52 0.1 (ithout this bootstrapping technique, all the classes dir) 207.55 529.33 B 0.52 0.1 (ectly r) 453.03 529.33 B 0.52 0.1 (efer) 481.48 529.33 B 0.52 0.1 (enced in the) 498.56 529.33 B 0.41 0.1 (client code must be available thr) 198 516.93 B 0.41 0.1 (ough the local CLASSP) 346.03 516.93 B 0.41 0.1 (A) 450.93 516.93 B 0.41 0.1 (TH on the client, and) 458.07 516.93 B 0.52 0.1 (the only Java classes that can be loaded by the RMIClassLoader over the net) 198 504.53 B 0.52 0.1 (ar) 198 492.13 B 0.52 0.1 (e classes that ar) 206.97 492.13 B 0.52 0.1 (e not r) 278.49 492.13 B 0.52 0.1 (eferr) 308.33 492.13 B 0.52 0.1 (ed to dir) 329.46 492.13 B 0.52 0.1 (ectly in the client pr) 368.81 492.13 B 0.52 0.1 (ogram; these classes) 460.56 492.13 B 0.52 0.1 (ar) 198 479.73 B 0.52 0.1 (e stubs, skeletons, and the extended classes of ar) 206.97 479.73 B 0.52 0.1 (guments and r) 429.34 479.73 B 0.52 0.1 (eturn values) 495.91 479.73 B 0.52 0.1 (to r) 198 467.33 B 0.52 0.1 (emote method invocations.) 213.91 467.33 B 0 15 Q (3.9) 67.47 433.6 T (Security) 97.27 433.6 T 54 578/G5.4041 FmPA 1 10 Q 0.52 0.1 (In Java, when a class loader loads classes fr) 198 411.93 B 0.52 0.1 (om the local CLASSP) 396.83 411.93 B 0.52 0.1 (A) 493.27 411.93 B 0.52 0.1 (TH, those) 500.41 411.93 B 0.52 0.1 (classes ar) 198 399.53 B 0.52 0.1 (e consider) 240.65 399.53 B 0.52 0.1 (ed tr) 287 399.53 B 0.52 0.1 (ustworthy and ar) 308.55 399.53 B 0.52 0.1 (e not r) 387.81 399.53 B 0.52 0.1 (estricted by a security) 417.65 399.53 B 0.52 0.1 (manager) 198 387.13 B 0.52 0.1 (. However) 236.91 387.13 B 0.52 0.1 (, when the RMIClassLoader attempts to load classes fr) 283.89 387.13 B 0.52 0.1 (om) 532.71 387.13 B 0.52 0.1 (the network, ther) 198 374.73 B 0.52 0.1 (e must be a security manager in place or an exception is) 276.93 374.73 B 0.1 (thr) 198 362.33 S 0.1 (own.) 211.15 362.33 S 0.52 0.1 (The security manger must be started as the \336rst action of a Java pr) 198 341.93 B 0.52 0.1 (ogram so) 503.17 341.93 B 0.52 0.1 (that it can r) 198 329.53 B 0.52 0.1 (egulate subsequent actions. The security manager ensur) 250.9 329.53 B 0.52 0.1 (es that) 506.24 329.53 B 0.5 0.1 (loaded classes adher) 198 317.13 B 0.5 0.1 (e to the standar) 291.73 317.13 B 0.5 0.1 (d Java safety guarantees, for example that) 362.91 317.13 B 0.52 0.1 (classes ar) 198 304.73 B 0.52 0.1 (e loaded fr) 240.65 304.73 B 0.52 0.1 (om \322tr) 290.06 304.73 B 0.52 0.1 (usted\323 sour) 320.1 304.73 B 0.52 0.1 (ces \050such as the applet host\051 and do not) 373.15 304.73 B 0.16 0.1 (attempt to access sensitive functions. A complete description of the r) 198 292.33 B 0.16 0.1 (estrictions) 508.86 292.33 B 0.52 0.1 (imposed by security managers can be found in the documentation for the) 198 279.93 B 5 F 1.2 (AppletSecurity) 198 267.53 P 1 F 0.52 0.1 ( class and the) 282 267.53 B 5 F 1.2 (RMISecurityManager) 347.21 267.53 P 1 F 0.52 0.1 ( class.) 455.21 267.53 B 0.52 0.1 (Applets ar) 198 247.13 B 0.52 0.1 (e always subject to the r) 245.79 247.13 B 0.52 0.1 (estrictions imposed by the) 356.22 247.13 B 5 F 0.79 (AppletSecurity) 198 234.73 P 1 F 0.34 0.1 ( class. This security manager ensur) 282 234.73 B 0.34 0.1 (es that classes ar) 440.92 234.73 B 0.34 0.1 (e loaded) 516.25 234.73 B 0.52 0.1 (only fr) 198 222.33 B 0.52 0.1 (om the applet host or its designated codebase hosts. This r) 228.57 222.33 B 0.52 0.1 (equir) 496.75 222.33 B 0.52 0.1 (es that) 520.34 222.33 B 0.52 0.1 (applet developers install the appr) 198 209.93 B 0.52 0.1 (opriate classes on the applet host.) 351.87 209.93 B 0.52 0.1 (Applications must either de\336ne their own security manager or use the) 198 189.53 B 0.52 0.1 (r) 198 177.13 B 0.52 0.1 (estrictive) 201.87 177.13 B 5 F 1.2 (RMISecurityManager) 246.19 177.13 P 1 F 0.52 0.1 (. If no security manager is in place, an) 353.45 177.13 B 0.52 0.1 (application cannot load classes fr) 198 164.73 B 0.52 0.1 (om network sour) 349.45 164.73 B 0.52 0.1 (ces.) 427.96 164.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.26/DEST FmPD2 97 588/M5.9.13114.Head1.37.Security FmPA 97 588/I5.1.4040 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "26" 32 %%Page: "27" 33 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 27) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (A client or server pr) 198 641.33 B 0.52 0.1 (ogram is usually implemented by classes loaded fr) 290.65 641.33 B 0.52 0.1 (om the) 522.79 641.33 B 0.52 0.1 (local system and ther) 198 628.93 B 0.52 0.1 (efor) 295.37 628.93 B 0.52 0.1 (e is not subject to the r) 313.12 628.93 B 0.52 0.1 (estrictions of the security) 417.21 628.93 B 0.04 0.1 (manager) 198 616.53 B 0.04 0.1 (. If however) 236.91 616.53 B 0.04 0.1 (, the client pr) 290.45 616.53 B 0.04 0.1 (ogram itself is downloaded fr) 349.86 616.53 B 0.04 0.1 (om the network) 483.53 616.53 B 0.06 0.1 (using the technique described in Section) 198 604.13 B 0.06 0.1 (3.8.2, \322Bootstrapping the Client\323, then) 382.82 604.13 B 0.52 0.1 (the client pr) 198 591.73 B 0.52 0.1 (ogram is subject to the r) 253.12 591.73 B 0.52 0.1 (estrictions of the security manager) 363.66 591.73 B 0.52 0.1 (.) 520.57 591.73 B 54 570.01 558 578 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 574.98 198 574.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.09 0.1 (Note \320) 198 563.34 B 1 F 0.09 0.1 (Once a class is loaded by the RMIClassLoader) 231.11 563.34 B 0.09 0.1 (, any classes used dir) 438.57 563.34 B 0.09 0.1 (ectly) 533.84 563.34 B 0.08 0.1 (by that class ar) 198 550.94 B 0.08 0.1 (e also loaded by the RMIClassLoader and thus ar) 265.38 550.94 B 0.08 0.1 (e subject to the) 487.95 550.94 B 54 527.22 558 535.21 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 532.18 198 532.18 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (security manager r) 198 538.54 B 0.52 0.1 (estrictions.) 283.74 538.54 B 0.52 0.1 (Even if a security manager is in place, setting the pr) 198 510.15 B 0.52 0.1 (operty) 436.36 510.15 B 5 F 1.2 (java.rmi.server.useCodebaseOnly) 198 497.75 P 1 F 0.52 0.1 ( to tr) 384 497.75 B 0.52 0.1 (ue pr) 406.49 497.75 B 0.52 0.1 (events the downloading of) 430.61 497.75 B 0.52 0.1 (a class fr) 198 485.35 B 0.52 0.1 (om the URL embedded in the str) 237.97 485.35 B 0.52 0.1 (eam with a serialized object \050classes) 388.75 485.35 B 0.52 0.1 (can still be loaded fr) 198 472.95 B 0.52 0.1 (om the locally-de\336ned) 291.57 472.95 B 5 F 1.2 (java.rmi.server.codebase) 397.18 472.95 P 1 F 0.52 0.1 (\051.) 541.18 472.95 B 0.52 0.1 (The) 198 460.55 B 5 F 1.2 (java.rmi.server.useCodebaseOnly) 218.16 460.55 P 1 F 0.52 0.1 ( pr) 404.16 460.55 B 0.52 0.1 (operty can be speci\336ed on) 417.26 460.55 B 0.52 0.1 (both the client and the server) 198 448.15 B 0.52 0.1 (, but is not applicable for applets.) 331.6 448.15 B 0 0.1 (If an application de\336nes its own security manager which disallows the cr) 198 427.75 B 0 0.1 (eation) 527.46 427.75 B 0.52 0.1 (of a class loader) 198 415.35 B 0.52 0.1 (, classes will be loaded using the default) 270.86 415.35 B 5 F 1.2 (Class.forName) 459.31 415.35 P 1 F 0.52 0.1 (mechanism. Thus, a server may de\336ne its own policies via the security) 198 402.95 B 0.52 0.1 (manager and class loader) 198 390.55 B 0.52 0.1 (, and the RMI system will operate within those) 313.65 390.55 B 0.1 (policies.) 198 378.15 S 54 356.42 558 364.42 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 361.39 198 361.39 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 349.76 B 1 F 0.52 0.1 (The) 231.96 349.76 B 5 F 1.2 ( java.lang.SecurityManager) 249 349.76 P 1 F 0.52 0.1 ( abstract class, fr) 406.2 349.76 B 0.52 0.1 (om which all) 482.27 349.76 B 0.52 0.1 (security managers ar) 198 337.36 B 0.52 0.1 (e extended, does not r) 293.18 337.36 B 0.52 0.1 (egulate r) 394.49 337.36 B 0.52 0.1 (esour) 434.52 337.36 B 0.52 0.1 (ce consumption.) 459.31 337.36 B 0.36 0.1 (Ther) 198 324.96 B 0.36 0.1 (efor) 218.91 324.96 B 0.36 0.1 (e, the curr) 236.66 324.96 B 0.36 0.1 (ent) 282.83 324.96 B 5 F 0.83 (RMISecurityManager) 299.96 324.96 P 1 F 0.36 0.1 ( has no mechanisms available to) 407.96 324.96 B 0.52 0.1 (pr) 198 312.56 B 0.52 0.1 (event classes loaded fr) 207.98 312.56 B 0.52 0.1 (om abusing r) 310.99 312.56 B 0.52 0.1 (esour) 371.38 312.56 B 0.52 0.1 (ces. As new security manager) 396.17 312.56 B 54 288.83 558 296.83 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 293.8 198 293.8 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (mechanisms ar) 198 300.16 B 0.52 0.1 (e developed, RMI will use them.) 266.01 300.16 B 0 15 Q (3.10) 59.97 258.43 T -0.94 (Con\336guration Scenarios) 97.27 258.43 P 54 402/G5.4018 FmPA 1 10 Q 0.52 0.1 (The RMI system supports many dif) 198 236.77 B 0.52 0.1 (fer) 360.05 236.77 B 0.52 0.1 (ent scenarios. Servers can be con\336gur) 372.24 236.77 B 0.52 0.1 (ed) 543.59 236.77 B 0.52 0.1 (in an open or closed fashion. Applets can use RMI to invoke methods on) 198 224.37 B 0.28 0.1 (objects supported on servers. If an applet cr) 198 211.97 B 0.28 0.1 (eates and passes a r) 396.98 211.97 B 0.28 0.1 (emote object to) 486.39 211.97 B 0.21 0.1 (the server) 198 199.57 B 0.21 0.1 (, the server can use RMI to make a callback to the r) 242.21 199.57 B 0.21 0.1 (emote object. Java) 473.54 199.57 B -0.05 0.1 (applications can use RMI either in client-server mode or fr) 198 187.17 B -0.05 0.1 (om peer to peer) 460.57 187.17 B -0.05 0.1 (. This) 530.79 187.17 B 0.52 0.1 (section highlights the issues surr) 198 174.77 B 0.52 0.1 (ounding these con\336gurations.) 347.52 174.77 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.27/DEST FmPD2 97 412/M5.9.40389.Head1.39.Configuration.Scenarios FmPA 97 412/I5.1.4209 FmPA [/Rect[348 600 530 611]/Border[0 0 0]/Page 31/View[/XYZ null 160 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "27" 33 %%Page: "28" 34 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 28) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (3.10.1) 118 638.67 T (Servers) 160.49 638.67 T 1 10 Q 0.01 0.1 (The typical closed-system scenario has the server con\336gur) 198 617.33 B 0.01 0.1 (ed to load no classes.) 460.32 617.33 B 0.03 0.1 (The services it pr) 198 604.93 B 0.03 0.1 (ovides ar) 275.09 604.93 B 0.03 0.1 (e de\336ned by r) 316.45 604.93 B 0.03 0.1 (emote interfaces that ar) 378.66 604.93 B 0.03 0.1 (e all local to the) 484.43 604.93 B 0.52 0.1 (server machine. The server has no security manager and will not load classes) 198 592.53 B 0.34 0.1 (even if clients send along the URL. If clients send r) 198 580.13 B 0.34 0.1 (emote objects for which the) 429.85 580.13 B 0.44 0.1 (server does not have stub classes, those method invocations will fail when the) 198 567.73 B 0.52 0.1 (r) 198 555.33 B 0.52 0.1 (equest is unmarshaled, and the client will r) 201.87 555.33 B 0.52 0.1 (eceive an exception.) 400.04 555.33 B 0.15 0.1 (The mor) 198 534.93 B 0.15 0.1 (e open server system will de\336ne its) 236.15 534.93 B 5 F 0.35 (java.rmi.server.codebase) 398.5 534.93 P 1 F 0.15 0.1 ( so) 542.5 534.93 B 0.52 0.1 (that classes for the r) 198 522.53 B 0.52 0.1 (emote objects it exports can be loaded by clients, and so) 289.86 522.53 B 0.52 0.1 (that the server can load classes when needed for r) 198 510.13 B 0.52 0.1 (emote objects supplied by) 427.05 510.13 B 0.52 0.1 (clients. The server will have both a security manager and RMI class loader) 198 497.73 B 0.52 0.1 (which pr) 198 485.33 B 0.52 0.1 (otect the server) 238.93 485.33 B 0.52 0.1 (. A somewhat mor) 308.28 485.33 B 0.52 0.1 (e cautious server can use the) 393.02 485.33 B 0.52 0.1 (pr) 198 472.93 B 0.52 0.1 (operty) 207.98 472.93 B 5 F 1.2 (java.rmi.server.useCodebaseOnly) 240.73 472.93 P 1 F 0.52 0.1 ( to disable the loading of) 426.73 472.93 B 0.52 0.1 (classes fr) 198 460.53 B 0.52 0.1 (om client-supplied URLs.) 238.98 460.53 B 0 14 Q (3.10.2) 118 427.47 T (Applets) 160.49 427.47 T 1 10 Q 0.35 0.1 (T) 198 406.13 B 0.35 0.1 (ypically) 203.33 406.13 B 0.35 0.1 (, the classes needed will be supplied by an HTTP server or by an FTP) 238.32 406.13 B 0.52 0.1 (server as r) 198 393.73 B 0.52 0.1 (efer) 245.52 393.73 B 0.52 0.1 (enced in URL's embedded in the HTML page containing the) 262.6 393.73 B 0.52 0.1 (applet. The RMI-based service\050s\051 used by the applet must be on the server) 198 381.33 B 0.52 0.1 (fr) 198 368.93 B 0.52 0.1 (om which the applet was downloaded, because an applet can only make) 205.3 368.93 B 0.52 0.1 (network connections to the host fr) 198 356.53 B 0.52 0.1 (om which it was loaded.) 354.61 356.53 B 0.13 0.1 (For example, the normal applet scenario uses a single host for the HTTP server) 198 336.13 B 0.52 0.1 (pr) 198 323.73 B 0.52 0.1 (oviding the HTML page, the applet code, the RMI services, and the) 207.98 323.73 B 0.52 0.1 (bootstrap Registry) 198 311.33 B 0.52 0.1 (. In this scenario, all the stub, skeleton, and supporting) 280.83 311.33 B 0.23 0.1 (classes ar) 198 298.93 B 0.23 0.1 (e loaded fr) 240.36 298.93 B 0.23 0.1 (om the HTTP server) 289.18 298.93 B 0.23 0.1 (. All of the r) 380.57 298.93 B 0.23 0.1 (emote objects pr) 435.4 298.93 B 0.23 0.1 (ovided by) 509.43 298.93 B 0.52 0.1 (the RMI service and passed to the applet \050which may pass them back to the) 198 286.53 B 0.52 0.1 (server\051 will be for classes that the RMI service alr) 198 274.13 B 0.52 0.1 (eady knows about. In this) 424.24 274.13 B 0.52 0.1 (case, the RMI service is very secur) 198 261.73 B 0.52 0.1 (e because it loads no classes fr) 355.11 261.73 B 0.52 0.1 (om the) 494.17 261.73 B 0.1 (network.) 198 249.33 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.28/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "28" 34 %%Page: "29" 35 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 29) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (3.10.3) 118 638.67 T (Applications) 160.49 638.67 T 1 10 Q 0.52 0.1 (Applications written in the Java language, unlike applets, can connect to any) 198 617.33 B 0.52 0.1 (host; so Java applications have mor) 198 604.93 B 0.52 0.1 (e options for con\336guring the sour) 359.85 604.93 B 0.52 0.1 (ces of) 513.91 604.93 B 0.21 0.1 (classes and wher) 198 592.53 B 0.21 0.1 (e RMI based services r) 274.52 592.53 B 0.21 0.1 (un. T) 376.4 592.53 B 0.21 0.1 (ypically) 399.18 592.53 B 0.21 0.1 (, a single HTTP server will) 434.17 592.53 B 0 0.1 (be used to supply r) 198 580.13 B 0 0.1 (emote classes, while the RMI-based applications themselves) 284.65 580.13 B 0.52 0.1 (ar) 198 567.73 B 0.52 0.1 (e distributed ar) 206.97 567.73 B 0.52 0.1 (ound the network on servers or r) 277.27 567.73 B 0.52 0.1 (unning on user) 429.23 567.73 B 0.52 0.1 (\325s desktops) 499.66 567.73 B 0.52 0.1 (If an application is loaded locally) 198 547.33 B 0.52 0.1 (, then the classes used dir) 349.46 547.33 B 0.52 0.1 (ectly in that) 467.14 547.33 B 0.52 0.1 (pr) 198 534.93 B 0.52 0.1 (ogram must also be available locally) 207.98 534.93 B 0.52 0.1 (. In this scenario, the only classes that) 373.55 534.93 B 0.28 0.1 (can be downloaded fr) 198 522.53 B 0.28 0.1 (om a network sour) 297.14 522.53 B 0.28 0.1 (ce ar) 383.17 522.53 B 0.28 0.1 (e the classes of r) 404.45 522.53 B 0.28 0.1 (emote interfaces,) 478.47 522.53 B 0.52 0.1 (stub classes, and the extended classes of ar) 198 510.13 B 0.52 0.1 (guments and r) 394.01 510.13 B 0.52 0.1 (eturn values to) 460.58 510.13 B 0.52 0.1 (r) 198 497.73 B 0.52 0.1 (emote method invocations.) 201.87 497.73 B 0.52 0.1 (If an application is not loaded fr) 198 477.33 B 0.52 0.1 (om a local dir) 345.94 477.33 B 0.52 0.1 (ectory) 409.2 477.33 B 0.52 0.1 (, but is loaded fr) 436.15 477.33 B 0.52 0.1 (om a) 511.98 477.33 B 0.42 0.1 (network sour) 198 464.93 B 0.42 0.1 (ce using the bootstrapping mechanism described in Section) 258.8 464.93 B 0.42 0.1 (3.8.2,) 531.88 464.93 B 0.52 0.1 (\322Bootstrapping the Client\323, then all classes used by the application can be) 198 452.53 B 0.52 0.1 (downloaded fr) 198 440.13 B 0.52 0.1 (om the same network sour) 265.53 440.13 B 0.52 0.1 (ce.) 387.71 440.13 B 0.17 0.1 (T) 198 419.73 B 0.17 0.1 (o enable downloading fr) 203.31 419.73 B 0.17 0.1 (om a network sour) 314.53 419.73 B 0.17 0.1 (ce, each r) 400.23 419.73 B 0.17 0.1 (emote object server must) 442.12 419.73 B 0.52 0.1 (be con\336gur) 198 407.33 B 0.52 0.1 (ed with the) 249.47 407.33 B 5 F 1.2 (java.rmi.server.codebase) 304.83 407.33 P 1 F 0.52 0.1 ( pr) 448.83 407.33 B 0.52 0.1 (operty which) 461.93 407.33 B 0.52 0.1 (speci\336es wher) 198 394.93 B 0.52 0.1 (e application classes and generated stubs/skeletons r) 262.51 394.93 B 0.52 0.1 (eside.) 505.51 394.93 B 0.15 0.1 (When the codebase pr) 198 382.53 B 0.15 0.1 (operty is speci\336ed, the RMI system embeds the URL of a) 298.39 382.53 B 0.52 0.1 (class in the serialized form of the class.) 198 370.13 B 0.52 0.1 (Even if a serialized object\325s class is annotated with the URL fr) 198 349.73 B 0.52 0.1 (om which the) 481.05 349.73 B 0.52 0.1 (class can be downloaded, a client or peer will still load classes locally if they) 198 337.33 B 0.52 0.1 (ar) 198 324.93 B 0.52 0.1 (e available.) 206.97 324.93 B 0 15 Q (3.1) 60.79 291.2 T (1) 78.72 291.2 T -0.94 (RMI Thr) 97.27 291.2 P -0.94 (ough Fir) 151.47 291.2 P -0.94 (ewalls V) 202.36 291.2 P -0.94 (ia Pr) 252.39 291.2 P -0.94 (oxies) 280.77 291.2 P 54 435/G5.4799 FmPA 1 10 Q 0.52 0.1 (The RMI transport layer normally attempts to open dir) 198 269.53 B 0.52 0.1 (ect sockets to hosts on) 449.55 269.53 B 0.52 0.1 (the Internet. Many intranets, however) 198 257.13 B 0.52 0.1 (, have \336r) 370.66 257.13 B 0.52 0.1 (ewalls which do not allow this.) 411.18 257.13 B 0.52 0.1 (The default RMI transport, ther) 198 244.73 B 0.52 0.1 (efor) 341.95 244.73 B 0.52 0.1 (e, pr) 359.7 244.73 B 0.52 0.1 (ovides two alternate HTTP-based) 380.29 244.73 B 0.52 0.1 (mechanisms which enable a client behind a \336r) 198 232.33 B 0.52 0.1 (ewall to invoke a method on a) 409.56 232.33 B 0.52 0.1 (r) 198 219.93 B 0.52 0.1 (emote object which r) 201.87 219.93 B 0.52 0.1 (esides outside the \336r) 296.98 219.93 B 0.52 0.1 (ewall.) 391.71 219.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.29/DEST FmPD2 97 445/M5.9.33691.Head1.38.RMI.Through.Firewalls FmPA 97 445/I5.1.3747 FmPA [/Rect[497 461 558 472]/Border[0 0 0]/Page 31/View[/XYZ null 160 792 FmDC exch pop null]/LNK FmPD [/Rect[54 449 320 461]/Border[0 0 0]/Page 31/View[/XYZ null 160 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "29" 35 %%Page: "30" 36 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 30) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (3.1) 118.77 638.67 T (1.1) 135.5 638.67 T 0.7 (How an RMI Call is Packaged within the HTTP Pr) 160.49 638.67 P 0.7 (otocol) 456.49 638.67 P 1 10 Q 0.52 0.1 (T) 198 617.33 B 0.52 0.1 (o get outside a \336r) 203.31 617.33 B 0.52 0.1 (ewall, the transport layer embeds an RMI call within the) 283.88 617.33 B 0.52 0.1 (\336r) 198 604.93 B 0.52 0.1 (ewall-tr) 208.02 604.93 B 0.52 0.1 (usted HTTP pr) 243.23 604.93 B 0.52 0.1 (otocol. The RMI call data is sent outside as the body) 311.4 604.93 B 0.41 0.1 (of an HTTP POST r) 198 592.53 B 0.41 0.1 (equest, and the r) 286.6 592.53 B 0.41 0.1 (eturn information is sent back in the body) 362.8 592.53 B 0.52 0.1 (of the HTTP r) 198 580.13 B 0.52 0.1 (esponse. The transport layer will formulate the POST r) 261.41 580.13 B 0.52 0.1 (equest in) 512.27 580.13 B 0.52 0.1 (one of two ways:) 198 567.73 B 0.1 (1.) 197.5 547.33 S 0.52 0.1 (If the \336r) 210.6 547.33 B 0.52 0.1 (ewall pr) 247.93 547.33 B 0.52 0.1 (oxy will forwar) 285.48 547.33 B 0.52 0.1 (d an HTTP r) 356.12 547.33 B 0.52 0.1 (equest dir) 413.6 547.33 B 0.52 0.1 (ected to an arbitrary) 459.12 547.33 B 0.4 0.1 (port on the host machine, then it is forwar) 210.6 534.93 B 0.4 0.1 (ded dir) 403.67 534.93 B 0.4 0.1 (ectly to the port on which) 437.07 534.93 B 0.52 0.1 (the RMI server is listening. The default RMI transport layer on the tar) 210.6 522.53 B 0.52 0.1 (get) 530.58 522.53 B 0.52 0.1 (machine is listening with a server socket that is capable of understanding) 210.6 510.13 B 0.52 0.1 (and decoding RMI calls inside POST r) 210.6 497.73 B 0.52 0.1 (equests.) 385.29 497.73 B 0.1 (2.) 197.5 477.33 S 0.52 0.1 (If the \336r) 210.6 477.33 B 0.52 0.1 (ewall pr) 247.93 477.33 B 0.52 0.1 (oxy will only forwar) 285.48 477.33 B 0.52 0.1 (d HTTP r) 379.39 477.33 B 0.52 0.1 (equests dir) 422.73 477.33 B 0.52 0.1 (ected to certain) 472.59 477.33 B 0.19 0.1 (well-known HTTP ports, then the call will be forwar) 210.6 464.93 B 0.19 0.1 (ded to the HTTP server) 448.64 464.93 B -0.03 0.1 (listening on port 80 of the host machine, and a CGI script will be executed to) 210.6 452.53 B 0.52 0.1 (forwar) 210.6 440.13 B 0.52 0.1 (d the call to the tar) 241.05 440.13 B 0.52 0.1 (get RMI server port on the same machine.) 328.11 440.13 B 0 14 Q (3.1) 118.77 407.07 T (1.2) 135.5 407.07 T 0.7 (The Default Socket Factory) 160.49 407.07 P 1 10 Q 0.1 0.1 (The RMI transport extends the) 198 385.73 B 5 F 0.24 (java.rmi.server.RMISocketFactory) 339.26 385.73 P 1 F 0.1 0.1 ( class) 531.26 385.73 B 0.52 0.1 (to pr) 198 373.33 B 0.52 0.1 (ovide a default implementation of a socket factory which is the r) 220.02 373.33 B 0.52 0.1 (esour) 516.34 373.33 B 0.52 0.1 (ce-) 541.14 373.33 B 0.52 0.1 (pr) 198 360.93 B 0.52 0.1 (ovider for client and server sockets. This default socket factory cr) 207.98 360.93 B 0.52 0.1 (eates) 506.99 360.93 B 0.52 0.1 (sockets that transpar) 198 348.53 B 0.52 0.1 (ently pr) 292.52 348.53 B 0.52 0.1 (ovide the \336r) 328.46 348.53 B 0.52 0.1 (ewall tunnelling mechanism as) 384.31 348.53 B 0.1 (follows:) 198 336.13 S 4 14 Q 0.14 (\245) 198 317.73 S 1 10 Q 0.32 0.1 (Client sockets automatically attempt HTTP connections to hosts that cannot) 210.6 317.73 B 0.52 0.1 (be contacted with a dir) 210.6 305.33 B 0.52 0.1 (ect socket.) 316 305.33 B 4 14 Q 0.14 (\245) 198 286.93 S 1 10 Q 0.52 0.1 (Server sockets automatically detect if a newly-accepted connection is an) 210.6 286.93 B 0.52 0.1 (HTTP POST r) 210.6 274.53 B 0.52 0.1 (equest, and if so, r) 273.41 274.53 B 0.52 0.1 (eturn a socket that will expose only the) 357.84 274.53 B 0.52 0.1 (body of the r) 210.6 262.13 B 0.52 0.1 (equest to the transport and format its output as an HTTP) 270.05 262.13 B 0.1 (r) 210.6 249.73 S 0.1 (esponse.) 214.47 249.73 S 0.52 0.1 (Client-side sockets, with this default behavior) 198 229.33 B 0.52 0.1 (, ar) 406.81 229.33 B 0.52 0.1 (e pr) 421.5 229.33 B 0.52 0.1 (ovided by the factory\325s) 439.49 229.33 B 5 F 1.2 (java.rmi.server.RMISocketFactory.createSocket) 198 216.93 P 1 F 0.52 0.1 ( method. Server) 468 216.93 B 0.52 0.1 (-) 540.51 216.93 B 0.52 0.1 (side sockets with this default behavior ar) 198 204.53 B 0.52 0.1 (e pr) 386.23 204.53 B 0.52 0.1 (ovided by the factory\325s) 404.22 204.53 B 5 F 1.2 (java.rmi.server.RMISocketFactory.createServerSocket) 198 192.13 P 1 F 0.52 0.1 ( method.) 504 192.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.30/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "30" 36 %%Page: "31" 37 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 3:) 198 108.7 B 0 F -0.58 0.09 (System Ar) 243.15 108.7 B -0.58 0.09 (chitectur) 281.97 108.7 B -0.58 0.09 (e) 314.94 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 31) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (3.1) 118.77 638.67 T (1.3) 135.5 638.67 T 0.7 (Con\336guring the Client) 160.49 638.67 P 1 10 Q 0.52 0.1 (Ther) 198 617.33 B 0.52 0.1 (e is no special con\336guration necessary to enable the client to send RMI) 218.91 617.33 B 0.52 0.1 (calls thr) 198 604.93 B 0.52 0.1 (ough a \336r) 234.27 604.93 B 0.52 0.1 (ewall.) 278.9 604.93 B 0.52 0.1 (The client can, however) 198 584.53 B 0.52 0.1 (, disable the packaging of RMI calls as HTTP r) 306.05 584.53 B 0.52 0.1 (equests) 518.98 584.53 B 0.52 0.1 (by setting the) 198 572.13 B 5 F 1.2 (java.rmi.server.disableHttp) 263.36 572.13 P 1 F 0.52 0.1 ( pr) 425.36 572.13 B 0.52 0.1 (operty to equal the) 438.46 572.13 B 0.52 0.1 (boolean value tr) 198 559.73 B 0.52 0.1 (ue.) 272.12 559.73 B 0 14 Q (3.1) 118.77 526.67 T (1.4) 135.5 526.67 T 0.7 (Con\336guring the Server) 160.49 526.67 P 54 504.01 558 512 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 508.98 198 508.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.18 0.1 (Note \320) 198 497.34 B 1 F 0.18 0.1 (The host name should not be speci\336ed as the host\325s IP addr) 231.29 497.34 B 0.18 0.1 (ess, because) 500.64 497.34 B 54 473.62 558 481.61 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 478.58 198 478.58 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (some \336r) 198 484.94 B 0.52 0.1 (ewall pr) 234.86 484.94 B 0.52 0.1 (oxies will not forwar) 272.41 484.94 B 0.52 0.1 (d to such a host name.) 367.59 484.94 B 0.1 (1.) 197.5 456.55 S 0.52 0.1 (In or) 210.6 456.55 B 0.52 0.1 (der for a client outside the server host\325s domain to be able to invoke) 232.54 456.55 B 0.52 0.1 (methods on a server) 210.6 444.15 B 0.52 0.1 (\325s r) 304.46 444.15 B 0.52 0.1 (emote objects, the client must be able to \336nd the) 318.67 444.15 B 0.08 0.1 (server) 210.6 431.75 B 0.08 0.1 (. T) 237.83 431.75 B 0.08 0.1 (o do this, the r) 248.42 431.75 B 0.08 0.1 (emote r) 313.76 431.75 B 0.08 0.1 (efer) 347.94 431.75 B 0.08 0.1 (ences that the server exports must contain) 365.02 431.75 B 0.52 0.1 (the fully-quali\336ed name of the server host.) 210.6 419.35 B 0.52 0.1 (Depending on the server) 210.6 400.95 B 0.52 0.1 (\325s platform and network envir) 324.77 400.95 B 0.52 0.1 (onment, this) 462.57 400.95 B 0.52 0.1 (information may or may not be available to the Java virtual machine on) 210.6 388.55 B 0.52 0.1 (which the server is r) 210.6 376.15 B 0.52 0.1 (unning. If it is not available, the host\325s fully quali\336ed) 304.37 376.15 B 0.52 0.1 (name must be speci\336ed with the pr) 210.6 363.75 B 0.52 0.1 (operty) 372.46 363.75 B 5 F 1.2 (java.rmi.server.hostname) 405.21 363.75 P 1 F 0.52 0.1 (when starting the server) 210.6 351.35 B 0.52 0.1 (.) 321.33 351.35 B 0.52 0.1 (For example, use this command to start the RMI server class) 210.6 330.95 B 5 F 1.2 (ServerImpl) 490.57 330.95 P 1 F 0.52 0.1 (on the machine chatsubo.javasoft.com:) 210.6 318.55 B 5 9 Q -0.36 ( java -Djava.rmi.server.hostname=chatsubo.javasoft.com ServerImpl) 198 298.82 P 1 10 Q 0.1 (2.) 197.5 279.15 S 0.52 0.1 (If the server will not support RMI clients behind \336r) 210.6 279.15 B 0.52 0.1 (ewalls that can forwar) 446.17 279.15 B 0.52 0.1 (d) 548.07 279.15 B 0.52 0.1 (to arbitrary ports, use this con\336guration:) 210.6 266.75 B 0.1 (a.) 212.62 248.35 S 0.52 0.1 (An HTTP server is listening on port 80.) 224.64 248.35 B 0.1 (b.) 212.09 229.95 S 0.52 0.1 (A CGI script is located at the aliased URL path) 223.2 229.95 B 5 F 1.2 (/cgi-bin/java-rmi) 441.75 229.95 P 1 F 0.52 0.1 (.) 543.75 229.95 B 0.52 0.1 (This script:) 223.2 217.55 B 4 F 0.1 (\245) 223.2 203.15 S 1 F 0.52 0.1 (Invokes the local Java interpr) 235.8 203.15 B 0.52 0.1 (eter to execute a class internal to the) 369.85 203.15 B 0.52 0.1 (transport layer which forwar) 235.8 190.75 B 0.52 0.1 (ds the r) 368 190.75 B 0.52 0.1 (equest to the appr) 402.83 190.75 B 0.52 0.1 (opriate RMI) 485.78 190.75 B 0.52 0.1 (server port.) 235.8 178.35 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.31/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "31" 37 %%Page: "32" 38 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 32) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 10 Q 0 X 0 0 0 1 0 0 0 K 0.1 (\245) 223.2 641.33 S 1 F 0.52 0.1 (De\336nes pr) 235.8 641.33 B 0.52 0.1 (operties in the Java virtual machine with the same names) 282.93 641.33 B 0.52 0.1 (and values as the CGI 1.0 de\336ned envir) 235.8 628.93 B 0.52 0.1 (onment variables.) 416.6 628.93 B 0.52 0.1 (An example script is supplied in the RMI distribution for the Solaris and) 210.6 610.53 B 0.52 0.1 (W) 210.6 598.13 B 0.52 0.1 (indows 32 operating systems. Note that the script must specify the) 220.15 598.13 B 0.52 0.1 (complete path to the java interpr) 210.6 585.73 B 0.52 0.1 (eter on the server machine.) 360.67 585.73 B 0 14 Q (3.1) 118.77 552.67 T (1.5) 135.5 552.67 T 0.7 (Performance Issues and Limitations) 160.49 552.67 P 1 10 Q 0.42 0.1 (Calls transmitted via HTTP r) 198 531.33 B 0.42 0.1 (equests ar) 330.02 531.33 B 0.42 0.1 (e at least an or) 375.67 531.33 B 0.42 0.1 (der of magnitude slower) 442.26 531.33 B 0.19 0.1 (that those sent thr) 198 518.93 B 0.19 0.1 (ough dir) 279.84 518.93 B 0.19 0.1 (ect sockets, without taking pr) 318.99 518.93 B 0.19 0.1 (oxy forwar) 452.69 518.93 B 0.19 0.1 (ding delays) 502.41 518.93 B 0.52 0.1 (into consideration.) 198 506.53 B 0.52 0.1 (Because HTTP r) 198 486.13 B 0.52 0.1 (equests can only be initiated in one dir) 271.23 486.13 B 0.52 0.1 (ection thr) 449.21 486.13 B 0.52 0.1 (ough a) 492.76 486.13 B 0.52 0.1 (\336r) 198 473.73 B 0.52 0.1 (ewall, a client cannot export its own r) 208.02 473.73 B 0.52 0.1 (emote objects outside the \336r) 380.87 473.73 B 0.52 0.1 (ewall,) 509.43 473.73 B 0.15 0.1 (because a host outside the \336r) 198 461.33 B 0.15 0.1 (ewall cannot initiate a method invocation back on) 329.26 461.33 B 0.52 0.1 (the client.) 198 448.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.32/DEST FmPD2 [/Dest/L.rmiarchdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "32" 38 %%Page: "33" 39 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 33) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Client Interfaces) 198 509.31 P 54 653/G6.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (4) 525.14 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.52 0.1 (When writing an applet or an application that uses r) 198 459.68 B 0.52 0.1 (emote objects, the) 438.73 459.68 B 0.52 0.1 (pr) 198 447.28 B 0.52 0.1 (ogrammer needs to be awar) 207.98 447.28 B 0.52 0.1 (e of the RMI system\325s client visible interfaces.) 335.83 447.28 B 0 13 Q 0.13 (T) 198 414.88 S 0.13 (opics:) 204.63 414.88 S 4 14 Q 0.14 (\245) 198 395.88 S 1 10 Q 0.52 0.1 (The Remote Interface) 210.6 395.88 B 4 14 Q 0.14 (\245) 198 377.48 S 1 10 Q 0.52 0.1 (The RemoteException Class) 210.6 377.48 B 4 14 Q 0.14 (\245) 198 359.08 S 1 10 Q 0.52 0.1 (The Naming Class) 210.6 359.08 B 0 15 Q (4.1) 67.47 325.34 T -0.94 (The Remote Interface) 97.27 325.34 P 54 469/G6.1174 FmPA 5 9 Q (package java.rmi;) 198 306.34 T (public interface Remote {}) 198 295.34 T 1 10 Q 0.52 0.1 (The) 198 275.68 B 5 F 1.2 (java.rmi.Remote) 218.16 275.68 P 1 F 0.52 0.1 ( interface serves to identify all r) 308.16 275.68 B 0.52 0.1 (emote objects, all) 453.73 275.68 B 0.52 0.1 (r) 198 263.28 B 0.52 0.1 (emote objects must dir) 201.87 263.28 B 0.52 0.1 (ectly or indir) 305.47 263.28 B 0.52 0.1 (ectly implement this interface. Note that) 364.8 263.28 B 0.52 0.1 (all r) 198 250.88 B 0.52 0.1 (emote interfaces must be declar) 216.11 250.88 B 0.52 0.1 (ed) 360.65 250.88 B 5 F 1.2 (public) 374.87 250.88 P 1 F 0.52 0.1 (.) 410.87 250.88 B 0 15 Q (4.2) 67.47 217.14 T -0.94 (The RemoteException Class) 97.27 217.14 P 54 361/G6.163 FmPA 1 10 Q 0.52 0.1 (All r) 198 195.48 B 0.52 0.1 (emote exceptions ar) 218.89 195.48 B 0.52 0.1 (e subclasses of) 309.61 195.48 B 5 F 1.2 (java.rmi.RemoteException) 379.51 195.48 P 1 F 0.52 0.1 (. This) 523.51 195.48 B 0.52 0.1 (allows interfaces to handle all types of r) 198 183.08 B 0.52 0.1 (emote exceptions and to distinguish) 381.14 183.08 B 0.52 0.1 (local exceptions, and exceptions speci\336c to the method, fr) 198 170.68 B 0.52 0.1 (om exceptions) 461.21 170.68 B 0.52 0.1 (thr) 198 158.28 B 0.52 0.1 (own by the underlying distributed object mechanisms.) 211.15 158.28 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.33/DEST FmPD2 [/Dest/F.rmiclientdoc/DEST FmPD2 97 479/M6.9.28025.Head1.41.The.RemoteObject.Class FmPA 97 479/I6.1.1264 FmPA 97 371/M6.9.30996.Head1.42.The.RemoteException.Class FmPA 97 371/I6.1.1269 FmPA [/Rect[211 391 308 406]/Border[0 0 0]/Page 39/View[/XYZ null 97 479 FmDC exch pop null]/LNK FmPD [/Rect[211 372 337 387]/Border[0 0 0]/Page 39/View[/XYZ null 97 371 FmDC exch pop null]/LNK FmPD [/Rect[211 354 295 369]/Border[0 0 0]/Page 40/View[/XYZ null 97 518 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "33" 39 %%Page: "34" 40 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 34) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (4) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (package java.rmi;) 198 642 T (public class RemoteException extends java.io.IOException) 198 631 T ({) 198 620 T (// The actual exception or error that occurred.) 218.16 609 T (public Throwable detail;) 218.16 598 T (// Create a remote exception.) 218.16 576 T (public RemoteException\050\051;) 218.16 565 T (// Create a remote exception with the specified string.) 218.16 543 T (public RemoteException\050String s\051;) 218.16 532 T -0.05 (// Create remote exception with specified string and exception.) 218.16 510 P (public RemoteException\050String s, Throwable ex\051;) 218.16 499 T -0.72 (// Produce message, including message from any nested exception.) 218.16 477 P (public String getMessage\050\051;) 218.16 466 T (}) 198 455 T 1 10 Q 0.52 0.1 (A) 198 435.33 B 5 F 1.2 (RemoteException) 209 435.33 P 1 F 0.52 0.1 ( can be constr) 299 435.33 B 0.52 0.1 (ucted with a nested exception \050a) 362.13 435.33 B 5 F 1.2 (Throwable) 198 422.93 P 1 F 0.52 0.1 (\051. T) 252 422.93 B 0.52 0.1 (ypically) 266.48 422.93 B 0.52 0.1 (, the nested exception, ex, speci\336ed as a parameter in) 301.47 422.93 B 0.05 0.1 (the thir) 198 410.53 B 0.05 0.1 (d form of the constr) 230.98 410.53 B 0.05 0.1 (uctor) 320.63 410.53 B 0.05 0.1 (, is the underlying I/O exception that occurr) 343.53 410.53 B 0.05 0.1 (ed) 544.24 410.53 B 0.52 0.1 (during an RMI call.) 198 398.13 B 0 15 Q (4.3) 67.47 364.4 T -0.94 (The Naming Class) 97.27 364.4 P 54 508/G6.1620 FmPA 1 10 Q -0.06 0.1 (The) 198 342.73 B 5 F -0.14 (java.rmi.Naming) 217.58 342.73 P 1 F -0.06 0.1 ( class allows r) 307.58 342.73 B -0.06 0.1 (emote objects to be r) 369.86 342.73 B -0.06 0.1 (etrieved and de\336ned) 461.73 342.73 B 0.52 0.1 (using the familiar Uniform Resour) 198 330.33 B 0.52 0.1 (ce Locator \050URL\051 syntax. The URL consists) 355.7 330.33 B 0.14 0.1 (of pr) 198 317.93 B 0.14 0.1 (otocol, host, port, and name \336elds. The) 219.71 317.93 B 5 F 0.32 (Registry) 398.84 317.93 P 1 F 0.14 0.1 ( service on the speci\336ed) 446.84 317.93 B 0.52 0.1 (host and port is used to perform the speci\336ed operation. The pr) 198 305.53 B 0.52 0.1 (otocol should) 490.16 305.53 B 0.52 0.1 (be speci\336ed as) 198 293.13 B 5 F 1.2 (rmi) 267.46 293.13 P 1 F 0.52 0.1 (, as in) 285.46 293.13 B 5 F 1.2 (rmi://java.sun.com:2001/root) 315.79 293.13 P 1 F 0.52 0.1 (.) 483.79 293.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.34/DEST FmPD2 97 518/M6.9.30868.Head1.45.The.Naming.Class FmPA 97 518/I6.1.1619 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "34" 40 %%Page: "35" 41 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 4:) 198 108.7 B 0 F -0.58 0.09 (Client Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 35) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (4) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (package java.rmi;) 198 642 T (public final class Naming {) 198 631 T (public static Remote lookup\050String url\051) 218.16 620 T (throws NotBoundException, java.net.MalformedURLException,) 238.32 609 T (UnknownHostException, RemoteException;) 238.32 598 T (public static void bind\050String url, Remote obj\051) 218.16 576 T (throws AlreadyBoundException,) 238.32 565 T (java.net.MalformedURLException, UnknownHostException,) 238.32 554 T (RemoteException;) 238.32 543 T (public static void rebind\050String url, Remote obj\051) 218.16 521 T (throws RemoteException, java.net.MalformedURLException,) 238.32 510 T (UnknownHostException;) 238.32 499 T (public static void unbind\050String url\051) 218.16 477 T (throws RemoteException, NotBoundException,) 238.32 466 T (java.net.MalformedURLException, UnknownHostException;) 238.32 455 T (public static String[] list\050String url\051) 218.16 433 T (throws RemoteException, java.net.MalformedURLException,) 238.32 422 T (UnknownHostException;) 238.32 411 T (}) 198 400 T 1 10 Q 0.52 0.1 (The) 198 380.33 B 5 F 1.2 (lookup) 218.16 380.33 P 1 F 0.52 0.1 ( method r) 254.16 380.33 B 0.52 0.1 (eturns the r) 299.14 380.33 B 0.52 0.1 (emote object associated with the \336le portion) 352.11 380.33 B 0.52 0.1 (of the name; so in the pr) 198 367.93 B 0.52 0.1 (eceding example it would r) 310.3 367.93 B 0.52 0.1 (eturn the object named) 435.68 367.93 B 5 F 0.85 (root) 198 355.53 P 1 F 0.37 0.1 (. The) 222 355.53 B 5 F 0.85 (NotBoundException) 247.58 355.53 P 1 F 0.37 0.1 ( is thr) 349.58 355.53 B 0.37 0.1 (own if the name has not been bound to) 376.01 355.53 B 0.52 0.1 (an object.) 198 343.13 B 0.52 0.1 (The) 198 322.73 B 5 F 1.19 (bind) 218.16 322.73 P 1 F 0.52 0.1 ( method binds the speci\336ed name to the r) 242.16 322.73 B 0.52 0.1 (emote object. It thr) 433.18 322.73 B 0.52 0.1 (ows the) 519.16 322.73 B 5 F 1.2 (AlreadyBoundException) 198 310.33 P 1 F 0.52 0.1 ( if the name is alr) 324 310.33 B 0.52 0.1 (eady bound to an object.) 404.38 310.33 B 0.52 0.1 (The) 198 289.93 B 5 F 1.2 (rebind) 218.16 289.93 P 1 F 0.52 0.1 ( method always binds the name to the object even if the name is) 254.16 289.93 B 0.52 0.1 (alr) 198 277.53 B 0.52 0.1 (eady bound. The old binding is lost.) 209.98 277.53 B 0.52 0.1 (The) 198 257.13 B 5 F 1.2 (unbind) 218.16 257.13 P 1 F 0.52 0.1 ( method r) 254.16 257.13 B 0.52 0.1 (emoves the binding between the name and the r) 299.14 257.13 B 0.52 0.1 (emote) 520.29 257.13 B 0.52 0.1 (object. It will thr) 198 244.73 B 0.52 0.1 (ow the) 273.83 244.73 B 5 F 1.2 (NotBoundException) 308.24 244.73 P 1 F 0.52 0.1 ( if ther) 410.24 244.73 B 0.52 0.1 (e was no binding.) 440.96 244.73 B 0.52 0.1 (The) 198 224.33 B 5 F 1.2 (list) 218.16 224.33 P 1 F 0.52 0.1 ( method r) 242.16 224.33 B 0.52 0.1 (eturns an array of) 287.14 224.33 B 5 F 1.2 (Strings) 372.28 224.33 P 1 F 0.52 0.1 ( containing a snapshot of the) 414.28 224.33 B 0.52 0.1 (URLs bound in the r) 198 211.93 B 0.52 0.1 (egistry) 292.11 211.93 B 0.52 0.1 (. Only the host and port information of the URL is) 321.97 211.93 B 0.52 0.1 (needed to contact a r) 198 199.53 B 0.52 0.1 (egistry for the list of its contents; thus, the \322\336le\323 part of) 293.76 199.53 B 0.52 0.1 (the URL is ignor) 198 187.13 B 0.52 0.1 (ed.) 273.77 187.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.35/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "35" 41 %%Page: "36" 42 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 36) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (4) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 640.01 558 648 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 644.98 198 644.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 633.34 B 1 F 0.52 0.1 (The) 231.96 633.34 B 5 F 1.2 (java.rmi.AccessException) 252.12 633.34 P 1 F 0.52 0.1 ( may also be thr) 396.12 633.34 B 0.52 0.1 (own as a r) 469.97 633.34 B 0.52 0.1 (esult of) 517.66 633.34 B 0.52 0.1 (any of these methods. The) 198 620.94 B 5 F 1.2 (AccessException) 321.52 620.94 P 1 F 0.52 0.1 ( indicates that the caller does) 411.52 620.94 B 0.52 0.1 (not have permission to execute the speci\336c operation. For example, only) 198 608.54 B 0.52 0.1 (clients that ar) 198 596.14 B 0.52 0.1 (e local to the host on which the r) 260.02 596.14 B 0.52 0.1 (egistry r) 410.71 596.14 B 0.52 0.1 (uns ar) 448.77 596.14 B 0.52 0.1 (e permitted to) 477.25 596.14 B 0.52 0.1 (execute the operations,) 198 583.74 B 5 F 1.2 (bind) 305.99 583.74 P 1 F 0.52 0.1 (,) 329.99 583.74 B 5 F 1.2 (rebind) 335.71 583.74 P 1 F 0.52 0.1 (, and) 371.71 583.74 B 5 F 1.2 (unbind) 397.78 583.74 P 1 F 0.52 0.1 (. A) 433.78 583.74 B 5 F 1.2 (lookup) 450.5 583.74 P 1 F 0.52 0.1 ( operation,) 486.5 583.74 B 54 560.02 558 568.01 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 564.98 198 564.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (however can be invoked fr) 198 571.34 B 0.52 0.1 (om any non-local client.) 320.36 571.34 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.36/DEST FmPD2 [/Dest/L.rmiclientdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "36" 42 %%Page: "37" 43 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (37) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Server Interfaces) 198 509.31 P 54 653/G7.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (5) 525.14 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.52 0.1 (When implementing a server) 198 459.68 B 0.52 0.1 (, the client interfaces ar) 330.16 459.68 B 0.52 0.1 (e available and extended) 436.64 459.68 B 0.52 0.1 (with those that allow the de\336nition, cr) 198 447.28 B 0.52 0.1 (eation, and export of r) 373.59 447.28 B 0.52 0.1 (emote objects.) 475.83 447.28 B 0 13 Q 0.13 (T) 198 414.88 S 0.13 (opics:) 204.63 414.88 S 4 14 Q 0.14 (\245) 198 395.88 S 1 10 Q 0.52 0.1 (The RemoteObject Class) 210.6 395.88 B 4 14 Q 0.14 (\245) 198 377.48 S 1 10 Q 0.52 0.1 (The RemoteServer Class) 210.6 377.48 B 4 14 Q 0.14 (\245) 198 359.08 S 1 10 Q 0.52 0.1 (The UnicastRemoteObject Class) 210.6 359.08 B 4 14 Q 0.14 (\245) 198 340.68 S 1 10 Q 0.52 0.1 (The Unr) 210.6 340.68 B 0.52 0.1 (efer) 248.43 340.68 B 0.52 0.1 (enced Interface) 265.51 340.68 B 4 14 Q 0.14 (\245) 198 322.28 S 1 10 Q 0.52 0.1 (The RMISecurityManager Class) 210.6 322.28 B 4 14 Q 0.14 (\245) 198 303.88 S 1 10 Q 0.52 0.1 (The RMIClassLoader Class) 210.6 303.88 B 4 14 Q 0.14 (\245) 198 285.48 S 1 10 Q 0.52 0.1 (The LoaderHandler Interface) 210.6 285.48 B 4 14 Q 0.14 (\245) 198 267.08 S 1 10 Q 0.52 0.1 (The RMISocketFactory Class) 210.6 267.08 B 4 14 Q 0.14 (\245) 198 248.68 S 1 10 Q 0.52 0.1 (The RMIFailur) 210.6 248.68 B 0.52 0.1 (eHandler Interface) 277.35 248.68 B 4 14 Q 0.14 (\245) 198 230.28 S 1 10 Q 0.52 0.1 (The LogStr) 210.6 230.28 B 0.52 0.1 (eam Class) 260.77 230.28 B 4 14 Q 0.14 (\245) 198 211.88 S 1 10 Q 0.52 0.1 (Stub and Skeleton Compiler) 210.6 211.88 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.37/DEST FmPD2 [/Dest/F.rmiserverdoc/DEST FmPD2 [/Rect[211 372 321 387]/Border[0 0 0]/Page 44/View[/XYZ null 97 517 FmDC exch pop null]/LNK FmPD [/Rect[211 354 355 369]/Border[0 0 0]/Page 45/View[/XYZ null 97 687 FmDC exch pop null]/LNK FmPD [/Rect[211 336 335 351]/Border[0 0 0]/Page 47/View[/XYZ null 97 724 FmDC exch pop null]/LNK FmPD [/Rect[211 280 343 295]/Border[0 0 0]/Page 52/View[/XYZ null 97 704 FmDC exch pop null]/LNK FmPD [/Rect[211 317 355 332]/Border[0 0 0]/Page 47/View[/XYZ null 97 425 FmDC exch pop null]/LNK FmPD [/Rect[211 299 334 314]/Border[0 0 0]/Page 51/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 207 339 222]/Border[0 0 0]/Page 56/View[/XYZ null 97 749 FmDC exch pop null]/LNK FmPD [/Rect[211 225 307 240]/Border[0 0 0]/Page 54/View[/XYZ null 97 444 FmDC exch pop null]/LNK FmPD [/Rect[211 262 341 277]/Border[0 0 0]/Page 52/View[/XYZ null 97 461 FmDC exch pop null]/LNK FmPD [/Rect[211 244 363 259]/Border[0 0 0]/Page 54/View[/XYZ null 97 679 FmDC exch pop null]/LNK FmPD [/Rect[211 391 321 406]/Border[0 0 0]/Page 44/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "37" 43 %%Page: "38" 44 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (38) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (5.1) 67.47 638 T -0.94 (The RemoteObject Class) 97.27 638 P 54 782/G7.4597 FmPA 1 10 Q 0.52 0.1 (The) 198 616.33 B 5 F 1.2 (java.rmi.server.RemoteObject) 218.16 616.33 P 1 F 0.52 0.1 ( class implements the) 386.16 616.33 B 5 F 1.16 (java.lang.Object) 198 603.93 P 1 F 0.5 0.1 ( behavior for r) 294 603.93 B 0.5 0.1 (emote objects. The) 360.13 603.93 B 5 F 1.16 (hashCode) 447.46 603.93 P 1 F 0.5 0.1 ( and) 495.46 603.93 B 5 F 1.16 (equals) 518.9 603.93 P 1 F 0.52 0.1 (methods ar) 198 591.53 B 0.52 0.1 (e implemented to allow r) 249.3 591.53 B 0.52 0.1 (emote object r) 364.73 591.53 B 0.52 0.1 (efer) 428.89 591.53 B 0.52 0.1 (ences to be stor) 445.97 591.53 B 0.52 0.1 (ed in) 516.48 591.53 B 0.52 0.1 (hashtables and compar) 198 579.13 B 0.52 0.1 (ed. The) 303.19 579.13 B 5 F 1.2 (equals) 340.17 579.13 P 1 F 0.52 0.1 ( method r) 376.17 579.13 B 0.52 0.1 (eturns tr) 421.15 579.13 B 0.52 0.1 (ue if two) 460.29 579.13 B 5 F 1.2 (Remote) 504.47 579.13 P 1 F -0.03 0.1 (objects r) 198 566.73 B -0.03 0.1 (efer to the same r) 235.2 566.73 B -0.03 0.1 (emote object. It compar) 312.98 566.73 B -0.03 0.1 (es the r) 418.28 566.73 B -0.03 0.1 (emote object r) 450.7 566.73 B -0.03 0.1 (efer) 513.77 566.73 B -0.03 0.1 (ences) 530.85 566.73 B 0.52 0.1 (of the r) 198 554.33 B 0.52 0.1 (emote objects.) 231.27 554.33 B 0.52 0.1 (The) 198 533.93 B 5 F 1.2 (toString) 218.16 533.93 P 1 F 0.52 0.1 ( method r) 266.16 533.93 B 0.52 0.1 (eturns a string describing the r) 311.14 533.93 B 0.52 0.1 (emote object. The) 452.17 533.93 B 0.52 0.1 (contents and syntax of this string is implementation-speci\336c and can vary) 198 521.53 B 0.52 0.1 (.) 534.52 521.53 B 0.52 0.1 (All of the other methods of) 198 501.13 B 5 F 1.2 (java.lang.Object) 325.76 501.13 P 1 F 0.52 0.1 ( r) 421.76 501.13 B 0.52 0.1 (etain their original) 428.75 501.13 B 0.1 (implementations.) 198 488.73 S 5 9 Q (package java.rmi.server;) 198 473 T (public abstract class RemoteObject) 198 462 T (implements java.rmi.Remote, java.io.Serializable) 218.16 451 T ({) 198 440 T (public int hashCode\050\051;) 218.16 429 T (public boolean equals\050Object obj\051;) 218.16 418 T (public String toString\050\051;) 218.16 407 T (}) 198 396 T 0 15 Q (5.2) 67.47 363 T -0.94 (The RemoteServer Class) 97.27 363 P 54 507/G7.5462 FmPA 1 10 Q 0.28 0.1 (The) 198 341.33 B 5 F 0.66 (java.rmi.server.RemoteServer) 217.92 341.33 P 1 F 0.28 0.1 ( class is the common super) 385.92 341.33 B 0.28 0.1 (class to all) 507.98 341.33 B 0.52 0.1 (server implementations and pr) 198 328.93 B 0.52 0.1 (ovides the framework to support a wide range) 338.88 328.93 B 0.52 0.1 (of r) 198 316.53 B 0.52 0.1 (emote r) 213.98 316.53 B 0.52 0.1 (efer) 248.6 316.53 B 0.52 0.1 (ence semantics. At pr) 265.68 316.53 B 0.52 0.1 (esent the only subclass supported is) 369.77 316.53 B 5 F (UnicastRemoteObject) 198 304.13 T 1 F 0.1 (.) 312 304.13 S 5 9 Q (package java.rmi.server;) 198 288.4 T (public abstract class RemoteServer) 198 277.4 T (extends RemoteObject {) 218.16 266.4 T (public static String getClientHost\050\051) 218.16 244.4 T (throws ServerNotActiveException;) 238.32 233.4 T (public static void setLog\050java.io.OutputStream out\051;) 218.16 211.4 T (public static java.io.PrintStream getLog\050\051;) 218.16 185.4 T (}) 198 174.4 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.38/DEST FmPD2 97 517/M7.9.30454.Head1.51.The.RemoteServer.Class FmPA 97 517/I7.1.2639 FmPA 97 792/M7.9.39818.Head1.43.The.Remote.Class FmPA 97 792/I7.1.4596 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "38" 44 %%Page: "39" 45 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (39) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The) 198 641.33 B 5 F 1.2 (getClientHost) 218.16 641.33 P 1 F 0.52 0.1 ( method allows an active method to determine the host) 296.16 641.33 B 0.52 0.1 (that initiated the r) 198 628.93 B 0.52 0.1 (emote method active in the curr) 281.01 628.93 B 0.52 0.1 (ent thr) 427.45 628.93 B 0.52 0.1 (ead. The) 457.89 628.93 B 5 F 0.64 (ServerNotActiveException) 198 616.53 P 1 F 0.28 0.1 ( is thr) 342 616.53 B 0.28 0.1 (own if no r) 368.25 616.53 B 0.28 0.1 (emote method is active on the) 418.59 616.53 B 0.52 0.1 (curr) 198 604.13 B 0.52 0.1 (ent thr) 216.59 604.13 B 0.52 0.1 (ead. The) 247.03 604.13 B 5 F 1.2 (setLog) 289.11 604.13 P 1 F 0.52 0.1 ( method logs RMI calls to the speci\336ed output) 325.11 604.13 B 0.52 0.1 (str) 198 591.73 B 0.52 0.1 (eam. If the output str) 209.57 591.73 B 0.52 0.1 (eam is null, call logging is turned of) 306.86 591.73 B 0.52 0.1 (f. The) 472.5 591.73 B 5 F 1.2 (getLog) 501.8 591.73 P 1 F 0.52 0.1 (method r) 198 579.33 B 0.52 0.1 (eturns the str) 239.86 579.33 B 0.52 0.1 (eam for the RMI call log, so that application-speci\336c) 300.53 579.33 B 0.52 0.1 (information can be written to the call log in a synchr) 198 566.93 B 0.52 0.1 (onized manner) 439.42 566.93 B 0.52 0.1 (.) 507.3 566.93 B 0 15 Q (5.3) 67.47 533.2 T -0.94 (The UnicastRemoteObject Class) 97.27 533.2 P 54 677/G7.5794 FmPA 1 10 Q 0.52 0.1 (The) 198 511.53 B 5 F 1.2 (java.rmi.server.UnicastRemoteObject) 218.16 511.53 P 1 F 0.52 0.1 ( class pr) 428.16 511.53 B 0.52 0.1 (ovides support for) 465.71 511.53 B 0.52 0.1 (point-to-point active object r) 198 499.13 B 0.52 0.1 (efer) 328 499.13 B 0.52 0.1 (ences using TCP-based str) 345.08 499.13 B 0.52 0.1 (eams. The class) 464.81 499.13 B 0.52 0.1 (implements a r) 198 486.73 B 0.52 0.1 (emote server object with the following characteristics:) 266.6 486.73 B 4 14 Q 0.14 (\245) 198 468.33 S 1 10 Q 0.43 0.1 (Refer) 210.6 468.33 B 0.43 0.1 (ences ar) 234.46 468.33 B 0.43 0.1 (e valid only for) 271.04 468.33 B 0.43 0.1 (, at most, the life of the pr) 340.56 468.33 B 0.43 0.1 (ocess that cr) 459.3 468.33 B 0.43 0.1 (eates the) 515.18 468.33 B 0.52 0.1 (r) 210.6 455.93 B 0.52 0.1 (emote object.) 214.47 455.93 B 4 14 Q 0.14 (\245) 198 437.53 S 1 10 Q 0.52 0.1 (A TCP connection-based transport is used.) 210.6 437.53 B 4 14 Q 0.14 (\245) 198 419.13 S 1 10 Q 0.52 0.1 (Invocations, parameters, and r) 210.6 419.13 B 0.52 0.1 (esults use a str) 349.61 419.13 B 0.52 0.1 (eam pr) 417.07 419.13 B 0.52 0.1 (otocol for) 449.09 419.13 B 0.52 0.1 (communicating between client and server) 210.6 406.73 B 0.52 0.1 (.) 400.9 406.73 B 5 9 Q (package java.rmi.server;) 198 391 T (public class UnicastRemoteObject extends RemoteServer {) 198 380 T (protected UnicastRemoteObject\050\051) 218.16 358 T (throws java.rmi.RemoteException;) 238.32 347 T (public Object clone\050\051) 218.16 325 T (throws java.lang.CloneNotSupportedException;) 238.32 314 T (public static RemoteStub exportObject\050java.rmi.Remote obj\051) 218.16 292 T (throws java.rmi.RemoteException;) 238.32 281 T (}) 198 270 T 0 14 Q (5.3.1) 125 237.67 T 0.7 (Constructing a New Remote Object) 160.49 237.67 P 1 10 Q 0.52 0.1 (In a Java virtual machine r) 198 216.33 B 0.52 0.1 (unning as a server) 320.16 216.33 B 0.52 0.1 (, r) 403.85 216.33 B 0.52 0.1 (emote objects de\336ned by the) 413.44 216.33 B 0.3 0.1 (developer can be cr) 198 203.93 B 0.3 0.1 (eated by the server application. When a r) 286.54 203.93 B 0.3 0.1 (emote object class) 473.93 203.93 B 0.14 0.1 (extends) 198 191.53 B 5 F 0.32 (UnicastRemoteObject) 235.61 191.53 P 1 F 0.14 0.1 (, the constr) 349.61 191.53 B 0.14 0.1 (uctor cr) 399.54 191.53 B 0.14 0.1 (eates and exports a r) 434.33 191.53 B 0.14 0.1 (emote) 527.63 191.53 B 0.52 0.1 (object. The constr) 198 179.13 B 0.52 0.1 (uctor is invoked fr) 277.99 179.13 B 0.52 0.1 (om the corr) 362.64 179.13 B 0.52 0.1 (esponding constr) 415.56 179.13 B 0.52 0.1 (uctor of the) 493.99 179.13 B 0.07 0.1 (r) 198 166.73 B 0.07 0.1 (emote object class. The default constr) 201.87 166.73 B 0.07 0.1 (uctor cr) 370.04 166.73 B 0.07 0.1 (eates a new unicast r) 404.75 166.73 B 0.07 0.1 (emote object) 498.62 166.73 B 0.52 0.1 (using an anonymous port.) 198 154.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.39/DEST FmPD2 97 687/M7.9.39992.Head1.52.The.UnicastRemoteServer.Class FmPA 97 687/I7.1.2643 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "39" 45 %%Page: "40" 46 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (40) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The clone method is used to cr) 198 641.33 B 0.52 0.1 (eate a unicast r) 338.8 641.33 B 0.52 0.1 (emote object with initially the) 407.77 641.33 B 0.52 0.1 (same contents, but is exported to accept r) 198 628.93 B 0.52 0.1 (emote calls and is distinct fr) 387.72 628.93 B 0.52 0.1 (om the) 516.58 628.93 B 0.52 0.1 (original object.) 198 616.53 B 0 14 Q (5.3.2) 125 583.47 T 0.7 (Exporting an Implementation Not Extended Fr) 160.49 583.47 P 0.7 (om RemoteObject) 430.13 583.47 P 1 10 Q 0.52 0.1 (The) 198 562.13 B 5 F 1.2 (exportObject) 217.64 562.13 P 1 F 0.52 0.1 ( method is used to export a simple peer) 289.64 562.13 B 0.52 0.1 (-to-peer r) 471.69 562.13 B 0.52 0.1 (emote) 514.4 562.13 B -0.1 0.1 (object that is not implemented by extending the) 198 549.73 B 5 F -0.23 (UnicastRemoteObject) 415.07 549.73 P 1 F -0.1 0.1 ( class.) 529.07 549.73 B 0.52 0.1 (The) 198 537.33 B 5 F 1.2 (exportObject) 218.16 537.33 P 1 F 0.52 0.1 ( method is called with the object to be exported on an) 290.16 537.33 B 0.14 0.1 (anonymous port. The object) 198 524.93 B 0 F 0.14 0.1 (must) 327.24 524.93 B 1 F 0.14 0.1 ( be exported prior to the \336rst time it is passed) 348.2 524.93 B 0.52 0.1 (in an RMI call as either a parameter or r) 198 512.53 B 0.52 0.1 (eturn value; otherwise, a) 382.12 512.53 B 5 F 0.64 (java.rmi.server.StubNotFoundException) 198 500.13 P 1 F 0.28 0.1 ( is thr) 420 500.13 B 0.28 0.1 (own when a r) 446.26 500.13 B 0.28 0.1 (emote call) 508.95 500.13 B 0.13 0.1 (is attempted in which an \322unexported\323 r) 198 487.73 B 0.13 0.1 (emote object is passed as an ar) 382.17 487.73 B 0.13 0.1 (gument) 520.38 487.73 B 0.52 0.1 (or r) 198 475.33 B 0.52 0.1 (eturn value.) 214.6 475.33 B 0.52 0.1 (Once exported, the object can be passed as an ar) 198 454.93 B 0.52 0.1 (gument in an RMI call or) 419.41 454.93 B 0.52 0.1 (r) 198 442.53 B 0.52 0.1 (eturned as the r) 201.87 442.53 B 0.52 0.1 (esult of an RMI call. When a r) 274.16 442.53 B 0.52 0.1 (emote object is passed, during) 411.61 442.53 B 0.52 0.1 (marshaling a lookup is performed to \336nd the matching r) 198 430.13 B 0.52 0.1 (emote stub for the) 457.4 430.13 B 0.52 0.1 (r) 198 417.73 B 0.52 0.1 (emote object implementation and that stub is passed or r) 201.87 417.73 B 0.52 0.1 (eturned instead.) 462.25 417.73 B -0.09 0.1 (The) 198 397.33 B 5 F -0.2 (exportObject) 217.55 397.33 P 1 F -0.09 0.1 ( method r) 289.55 397.33 B -0.09 0.1 (eturns a) 333.32 397.33 B 5 F -0.2 (RemoteStub) 372.14 397.33 P 1 F -0.09 0.1 ( which is the stub object for) 432.14 397.33 B 0.52 0.1 (the r) 198 384.93 B 0.52 0.1 (emote object,) 219.16 384.93 B 5 F 1.2 (obj) 282.05 384.93 P 1 F 0.52 0.1 (, that is passed in place of the r) 300.05 384.93 B 0.52 0.1 (emote object in an RMI) 443.3 384.93 B 0.1 (call.) 198 372.53 S 0 14 Q (5.3.3) 125 339.47 T 0.7 (Passing a UnicastRemoteObject in an RMI Call) 160.49 339.47 P 1 10 Q 0.52 0.1 (As stated above, when an object of type) 198 318.13 B 5 F 1.2 (UnicastRemoteObject) 383.59 318.13 P 1 F 0.52 0.1 ( is passed as) 497.59 318.13 B 0.16 0.1 (a parameter or r) 198 305.73 B 0.16 0.1 (eturn value in an RMI call, the object is r) 271.34 305.73 B 0.16 0.1 (eplaced by the r) 455.25 305.73 B 0.16 0.1 (emote) 527.61 305.73 B 0.52 0.1 (object\325s stub. A r) 198 293.33 B 0.52 0.1 (emote object implementation r) 274.81 293.33 B 0.52 0.1 (emains in the virtual machine) 414.09 293.33 B 0.52 0.1 (in which it was cr) 198 280.93 B 0.52 0.1 (eated and does not move \050even by value\051 fr) 279.9 280.93 B 0.52 0.1 (om that virtual) 479.29 280.93 B 0.27 0.1 (machine. In other wor) 198 268.53 B 0.27 0.1 (ds, a r) 298.56 268.53 B 0.27 0.1 (emote object is passed by r) 326.42 268.53 B 0.27 0.1 (efer) 448.31 268.53 B 0.27 0.1 (ence in an RMI call;) 465.39 268.53 B 0.52 0.1 (r) 198 256.13 B 0.52 0.1 (emote objects cannot be passsed by value.) 201.87 256.13 B 0 14 Q (5.3.4) 125 223.07 T 0.7 (Serializing a UnicastRemoteObject) 160.49 223.07 P 1 10 Q -0.08 0.1 (Information contained in) 198 201.73 B 5 F -0.17 (UnicastRemoteObject) 313.32 201.73 P 1 F -0.08 0.1 ( is transient and is not saved) 427.32 201.73 B -0.03 0.1 (if an object of that type is written to a user) 198 189.33 B -0.03 0.1 (-de\336ned) 388.01 189.33 B 5 F -0.06 (ObjectOutputStream) 428.28 189.33 P 1 F -0.03 0.1 ( \050for) 536.28 189.33 B 0.52 0.1 (example, if the object is written to a \336le using serialization\051. An object that is) 198 176.93 B 0.52 0.1 (an instance of a user) 198 164.53 B 0.52 0.1 (-de\336ned subclass of) 291.9 164.53 B 5 F 1.2 (UnicastRemoteObject) 385.38 164.53 P 1 F 0.52 0.1 (, however) 499.38 164.53 B 0.52 0.1 (,) 543.86 164.53 B 0.52 0.1 (may have non-transient data that can be saved when the object is serialized.) 198 152.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.40/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "40" 46 %%Page: "41" 47 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (41) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (When a) 198 641.33 B 5 F 1.2 (UnicastRemoteObject) 236.17 641.33 P 1 F 0.52 0.1 ( is r) 350.17 641.33 B 0.52 0.1 (ead fr) 367.63 641.33 B 0.52 0.1 (om an) 394.25 641.33 B 5 F 1.2 (ObjectInputStream) 426 641.33 P 1 F 0.52 0.1 (, it is) 528 641.33 B 0.52 0.1 (automatically exported to the RMI r) 198 628.93 B 0.52 0.1 (untime so that it may r) 362.67 628.93 B 0.52 0.1 (eceive RMI calls. If) 468.08 628.93 B 0.52 0.1 (exporting the object fails for some r) 198 616.53 B 0.52 0.1 (eason, deserializing the object will) 360.65 616.53 B 0.52 0.1 (terminate with an exception.) 198 604.13 B 0 15 Q (5.4) 67.47 570.4 T -0.94 (The Unr) 97.27 570.4 P -0.94 (efer) 148.16 570.4 P -0.94 (enced Interface) 169.56 570.4 P 54 714/G7.179 FmPA 5 9 Q (package java.rmi.server;) 198 551.4 T (public interface Unreferenced {) 198 540.4 T (public void unreferenced\050\051;) 218.16 529.4 T (}) 198 518.4 T 1 10 Q 0.52 0.1 (The) 198 498.73 B 5 F 1.2 (java.rmi.server.Unreferenced) 218.16 498.73 P 1 F 0.52 0.1 ( interface allows a server object to) 386.16 498.73 B 0.03 0.1 (r) 198 486.33 B 0.03 0.1 (eceive noti\336cation that ther) 201.87 486.33 B 0.03 0.1 (e ar) 325.01 486.33 B 0.03 0.1 (e no clients holding r) 341.51 486.33 B 0.03 0.1 (emote r) 436.64 486.33 B 0.03 0.1 (efer) 470.77 486.33 B 0.03 0.1 (ences to it. The) 487.85 486.33 B -0.01 0.1 (distributed garbage collection mechanism maintains for each r) 198 473.93 B -0.01 0.1 (emote object, the) 479.42 473.93 B 0.01 0.1 (set of client virtual machines that hold r) 198 461.53 B 0.01 0.1 (efer) 377.98 461.53 B 0.01 0.1 (ences that r) 395.05 461.53 B 0.01 0.1 (emote object. As long as) 446.47 461.53 B 0.52 0.1 (some client holds a r) 198 449.13 B 0.52 0.1 (emote r) 292.94 449.13 B 0.52 0.1 (efer) 327.56 449.13 B 0.52 0.1 (ence to the r) 344.64 449.13 B 0.52 0.1 (emote object, the RMI r) 401.2 449.13 B 0.52 0.1 (untime) 508.28 449.13 B 0.42 0.1 (keeps a local r) 198 436.73 B 0.42 0.1 (efer) 263.13 436.73 B 0.42 0.1 (ence to the r) 280.21 436.73 B 0.42 0.1 (emote object. When the \322r) 336.47 436.73 B 0.42 0.1 (efer) 455.16 436.73 B 0.42 0.1 (ence\323 set becomes) 472.24 436.73 B 0.52 0.1 (empty) 198 424.33 B 0.52 0.1 (, the) 225.84 424.33 B 5 F 1.2 (Unreferenced.unreferenced) 248.85 424.33 P 1 F 0.52 0.1 ( method is invoked \050if the server) 398.85 424.33 B 0.52 0.1 (implements the) 198 411.93 B 5 F 1.2 (Unreferenced) 271.8 411.93 P 1 F 0.52 0.1 ( interface\051. A r) 343.8 411.93 B 0.52 0.1 (emote object is) 410.13 411.93 B 0 F 0.52 0.1 (not) 480.89 411.93 B 1 F 0.52 0.1 ( r) 494.52 411.93 B 0.52 0.1 (equir) 501.51 411.93 B 0.52 0.1 (ed to) 525.11 411.93 B 0.52 0.1 (support the) 198 399.53 B 5 F 1.2 (Unreferenced) 254.07 399.53 P 1 F 0.52 0.1 ( interface.) 326.07 399.53 B 0.49 0.1 (As long as some local r) 198 379.13 B 0.49 0.1 (efer) 304.04 379.13 B 0.49 0.1 (ence to the r) 321.12 379.13 B 0.49 0.1 (emote object exists it may be passed in) 377.58 379.13 B 0.52 0.1 (r) 198 366.73 B 0.52 0.1 (emote calls or r) 201.87 366.73 B 0.52 0.1 (eturned to clients. The pr) 272.34 366.73 B 0.52 0.1 (ocess that r) 387.88 366.73 B 0.52 0.1 (eceives the r) 439.4 366.73 B 0.52 0.1 (efer) 495.99 366.73 B 0.52 0.1 (ence is) 513.07 366.73 B 0.52 0.1 (added to the r) 198 354.33 B 0.52 0.1 (efer) 262.94 354.33 B 0.52 0.1 (ence set for the r) 280.02 354.33 B 0.52 0.1 (efer) 356.41 354.33 B 0.52 0.1 (ence. When the r) 373.49 354.33 B 0.52 0.1 (efer) 450.56 354.33 B 0.52 0.1 (ence set becomes) 467.64 354.33 B 0.52 0.1 (empty) 198 341.93 B 0.52 0.1 (,) 225.84 341.93 B 5 F 1.2 (Unreferenced) 231.56 341.93 P 1 F 0.52 0.1 ( will be invoked. As such, the) 303.56 341.93 B 5 F 1.2 (Unreferenced) 442.91 341.93 P 1 F 0.52 0.1 ( method) 514.91 341.93 B 0.52 0.1 (can be called mor) 198 329.53 B 0.52 0.1 (e than once \050each time the set is newly emptied\051. Remote) 278.56 329.53 B 0.52 0.1 (objects ar) 198 317.13 B 0.52 0.1 (e only collected when no mor) 240.85 317.13 B 0.52 0.1 (e r) 376.51 317.13 B 0.52 0.1 (efer) 388.39 317.13 B 0.52 0.1 (ences, either local r) 405.47 317.13 B 0.52 0.1 (efer) 493.22 317.13 B 0.52 0.1 (ences or) 510.3 317.13 B 0.52 0.1 (those held by clients, still exist.) 198 304.73 B 0 15 Q (5.5) 67.47 271 T -0.94 (The RMISecurityManager Class) 97.27 271 P 54 415/G7.1638 FmPA 5 9 Q (package java.rmi;) 198 252 T (public class RMISecurityManager extends java.lang.SecurityManager {) 198 230 T (// Constructor) 218.16 208 T (public RMISecurityManager\050\051;) 218.16 197 T (// Returns implementation specific security context) 218.16 175 T (public Object getSecurityContext\050\051;) 218.16 164 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.41/DEST FmPD2 97 724/M7.9.12927.Head1.53.The.Unreferenced.Interface FmPA 97 724/I7.1.2647 FmPA 97 425/M7.9.13293.Head1.54.The.Registry.Interface.and.The.LocateRegistry.Class FmPA 97 425/I7.1.2679 FmPA 97 425/M7.9.29479.Head1.55.The.StubSecurityManager.Class FmPA 97 425/I7.1.2655 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "41" 47 %%Page: "42" 48 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (42) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K -0.82 (// Disallow creating classloaders or execute ClassLoader methods) 218.16 642 P (public synchronized void checkCreateClassLoader\050\051) 218.16 631 T (throws RMISecurityException;) 238.32 620 T (// Disallow thread manipulation) 218.16 598 T (public synchronized void checkAccess\050Thread t\051) 218.16 587 T (throws RMISecurityException;) 238.32 576 T (// Disallow thread group manipulation.) 218.16 554 T (public synchronized void checkAccess\050ThreadGroup g\051) 218.16 543 T (throws RMISecurityException;) 238.32 532 T (// Disallow exiting the VM) 218.16 510 T (public synchronized void checkExit\050int status\051) 218.16 499 T (throws RMISecurityException;) 238.32 488 T (// Disallow forking of processes) 218.16 466 T (public synchronized void checkExec\050String cmd\051) 218.16 455 T (throws RMISecurityException;) 238.32 444 T (// Disallow linking dynamic libraries) 218.16 422 T (public synchronized void checkLink\050String lib\051) 218.16 411 T (throws RMISecurityException;) 238.32 400 T -0.04 (// Disallow accessing of all properties except those labeled OK) 218.16 378 P (public synchronized void checkPropertiesAccess\050\051) 218.16 367 T (throws RMISecurityException;) 238.32 356 T (// Access system property key only if key.stub is set to true) 218.16 330 T (public synchronized void checkPropertyAccess\050String key\051) 218.16 319 T (throws RMISecurityException;) 238.32 308 T (// Check if a stub can read a particular file.) 218.16 286 T (public synchronized void checkRead\050String file\051) 218.16 275 T (throws RMISecurityException;) 238.32 264 T (// No file reads are valid from a stub) 218.16 242 T (public void checkRead\050String file, Object context\051) 218.16 231 T (throws RMISecurityException;) 238.32 220 T (// Check if a Stub can write a particular file.) 218.16 198 T (public synchronized void checkWrite\050String file\051) 218.16 187 T (throws RMISecurityException;) 238.32 176 T -0.04 (// Check if the specified system dependent file can be deleted.) 218.16 154 P 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.42/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "42" 48 %%Page: "43" 49 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (43) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (public void checkDelete\050String file\051) 218.16 642 T (throws RMISecurityException;) 238.32 631 T -0.64 (// Disllow opening file descriptor for reading unless via socket) 218.16 609 P (public synchronized void checkRead\050FileDescriptor fd\051) 218.16 598 T (throws RMISecurityException;) 238.32 587 T -1.24 (// Disallow opening file descriptor for writing unless via socket) 218.16 565 P (public synchronized void checkWrite\050FileDescriptor fd\051) 218.16 554 T (throws RMISecurityException;) 238.32 543 T (// Disallow listening on any port.) 218.16 521 T (public synchronized void checkListen\050int port\051) 218.16 510 T (throws RMISecurityException;) 238.32 499 T (// Disallow accepting connections on any port.) 218.16 477 T (public synchronized void checkAccept\050String host, int port\051) 218.16 466 T (throws RMISecurityException;) 238.32 455 T (// Disallow stubs from using IP multicast.) 218.16 433 T (public void checkMulticast\050InetAddress maddr\051) 218.16 422 T (throws RMISecurityException;) 238.32 411 T (// Disallow stubs from using IP multicast) 218.16 389 T (public void checkMulticast\050InetAddress maddr, byte ttl\051) 218.16 378 T (throws RMISecurityException;) 238.32 367 T -0.05 (// Downloaded classes \050including stubs\051 can make connections if) 218.16 345 P (// called through the RMI transport.) 218.16 334 T (public synchronized void checkConnect\050String host, int port\051) 218.16 323 T (throws RMISecurityException;) 238.32 312 T -0.05 (// Downloaded classes \050including stubs\051 can make connections if) 218.16 290 P (// called through the RMI transport.) 218.16 279 T -0.05 (public void checkConnect\050String host, int port, Object context\051) 218.16 268 P (throws RMISecurityException;) 238.32 257 T (// Allow caller to create top-level windows.) 218.16 235 T (// Allow stubs to create windows with warnings.) 218.16 224 T (public synchronized boolean checkTopLevelWindow\050Object window\051) 218.16 213 T (throws RMISecurityException;) 238.32 202 T (// Check if a stub can access a package.) 218.16 180 T (public synchronized void checkPackageAccess\050String pkg\051) 218.16 169 T (throws RMISecurityException;) 238.32 158 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.43/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "43" 49 %%Page: "44" 50 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (44) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (// Check if a stub can define classes in a package.) 218.16 642 T (public synchronized void checkPackageDefinition\050String pkg\051) 218.16 631 T (throws RMISecurityException;) 238.32 620 T -0.04 (// Check if a stub can set a networking-related object factory.) 218.16 598 P (public synchronized void checkSetFactory\050\051) 218.16 587 T (throws RMISecurityException;) 238.32 576 T (// Disallow printing from stubs.) 218.16 554 T (public void checkPrintJobAccess\050\051) 218.16 543 T (throws RMISecurityException;) 238.32 532 T (// Disallow stubs from accessing system clipboard.) 218.16 510 T (public void checkSystemClipboardAccess\050\051) 218.16 499 T (throws RMISecurityException;) 238.32 488 T (// Disallow stubs from accessing AWT event queue.) 218.16 466 T (public void checkAwtEventQueueAccess\050\051) 218.16 455 T (throws RMISecurityException;) 238.32 444 T (// Checks to see if client code can access class members.) 218.16 422 T (// Allow access to all public information. Allow non-stubs to) 218.16 411 T -0.05 (// access default, package, and private declarations and data\051.) 218.16 400 P (public void checkMemberAccess\050Class clazz, int which\051) 218.16 389 T (throws RMISecurityException;) 238.32 378 T (// Stubs cannot perform security provider operations.) 218.16 356 T (public void checkSecurityAccess\050String provider\051) 218.16 345 T (throws RMISecurityException;) 238.32 334 T (}) 198 323 T 1 10 Q 0.03 0.1 (The) 198 303.33 B 5 F 0.07 (RMISecurityManager) 217.67 303.33 P 1 F 0.03 0.1 ( can be used when the application does not r) 325.67 303.33 B 0.03 0.1 (equir) 526.88 303.33 B 0.03 0.1 (e) 550.48 303.33 B 0.52 0.1 (specialized security functions but does need the pr) 198 290.93 B 0.52 0.1 (otection it pr) 430.42 290.93 B 0.52 0.1 (ovides. This) 489.21 290.93 B 0.52 0.1 (simple security manger disables all functions except class de\336nition and) 198 278.53 B 0.52 0.1 (access, so that other classes for r) 198 266.13 B 0.52 0.1 (emote objects, their ar) 345.96 266.13 B 0.52 0.1 (guments, and r) 446.51 266.13 B 0.52 0.1 (eturns) 515.67 266.13 B 0.27 0.1 (can be loaded as needed. A downloaded class is allowed to make a connection) 198 253.73 B 0.52 0.1 (if the connection was initiated via the RMI transport.) 198 241.33 B 0.27 0.1 (If no security manager has been set, stub loading is disabled. This ensur) 198 220.93 B 0.27 0.1 (es that) 525.28 220.93 B 0.52 0.1 (some security manager is r) 198 208.53 B 0.52 0.1 (esponsible for the actions of loaded stubs and) 321.05 208.53 B 0.52 0.1 (classes as part of any r) 198 196.13 B 0.52 0.1 (emote method invocation. A security manager is set) 301.76 196.13 B 0.52 0.1 (using) 198 183.73 B 5 F 1.2 (System.setSecurityManager) 226.18 183.73 P 1 F 0.52 0.1 (.) 375.44 183.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.44/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "44" 50 %%Page: "45" 51 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (45) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (5.6) 67.47 638 T -0.94 (The RMIClassLoader Class) 97.27 638 P 54 782/G7.1639 FmPA 1 10 Q 0.52 0.1 (The) 198 616.33 B 5 F 1.2 ( java.rmi.server.RMIClassLoader) 215.04 616.33 P 1 F 0.52 0.1 ( is a utility class that can be used) 402.24 616.33 B 0.52 0.1 (by applications to load classes via a URL.) 198 603.93 B 5 9 Q (package java.rmi.server;) 198 588.2 T (public class RMIClassLoader {) 198 566.2 T ( public static Class loadClass\050String name\051) 198 544.2 T ( throws MalformedURLException, ClassNotFoundException;) 218.16 533.2 T ( public static synchronized Class loadClass\050URL codebase,) 198 511.2 T (String name\051 throws MalformedURLException,) 238.32 500.2 T (ClassNotFoundException;) 238.32 489.2 T (public static Object getSecurityContext\050ClassLoader loader\051;) 218.16 467.2 T (}) 198 456.2 T 1 10 Q 0.52 0.1 (The \336rst) 198 436.53 B 5 F 1.2 (loadClass) 239.18 436.53 P 1 F 0.52 0.1 ( method loads the speci\336ed class) 293.18 436.53 B 0 F 0.52 0.1 (name) 446.63 436.53 B 1 F 0.52 0.1 ( via the URL) 468.7 436.53 B 0.52 0.1 (de\336ned by the) 198 424.13 B 5 F 1.2 (java.rmi.server.codebase) 267.09 424.13 P 1 F 0.52 0.1 ( pr) 411.09 424.13 B 0.52 0.1 (operty) 424.19 424.13 B 0.52 0.1 (. The class is loaded,) 452.71 424.13 B 0.52 0.1 (de\336ned, and r) 198 411.73 B 0.52 0.1 (eturned.) 262.21 411.73 B 0.39 0.1 (The second form of the) 198 391.33 B 5 F 0.89 (loadClass) 306.57 391.33 P 1 F 0.39 0.1 ( method loads the speci\336ed class name via) 360.57 391.33 B 0.52 0.1 (the URL parameter) 198 378.93 B 0 F 0.52 0.1 (codebase) 288.88 378.93 B 1 F 0.52 0.1 (.) 323.93 378.93 B 0.52 0.1 (The) 198 358.53 B 5 F 1.2 (getSecurityContext) 218.16 358.53 P 1 F 0.52 0.1 ( method r) 326.16 358.53 B 0.52 0.1 (eturns the security context of the given) 371.14 358.53 B 0.52 0.1 (class loader) 198 346.13 B 0.52 0.1 (,) 250.53 346.13 B 5 F 1.2 (loader) 256.25 346.13 P 1 F 0.52 0.1 (. The security context is obtained by querying the) 291.51 346.13 B 5 F 1.2 (LoaderHandler) 198 333.73 P 1 F 0.52 0.1 (\325s) 276.74 333.73 B 5 F 1.2 (getSecurityContext) 287.08 333.73 P 1 F 0.52 0.1 ( method.) 395.08 333.73 B 54 312.01 558 320 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 316.98 198 316.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.18 0.1 (Note \320) 198 305.34 B 1 F 0.18 0.1 (The RMI r) 231.29 305.34 B 0.18 0.1 (untime uses its own class loader to load stubs, skeletons, and) 277.67 305.34 B 0.52 0.1 (other classes needed by the stubs and skeletons. These classes, and the way) 198 292.94 B 0.07 0.1 (they ar) 198 280.54 B 0.07 0.1 (e used, support the safety pr) 229.47 280.54 B 0.07 0.1 (operties of the Java RMI r) 358.46 280.54 B 0.07 0.1 (untime. This class) 474.33 280.54 B 0.16 0.1 (loader always loads locally-available classes \336rst. Only if a security manager is) 198 268.14 B 0.52 0.1 (in for) 198 255.74 B 0.52 0.1 (ce will stubs be loaded fr) 222.91 255.74 B 0.52 0.1 (om either the local machine or fr) 338.01 255.74 B 0.52 0.1 (om a network) 487.95 255.74 B 0.52 0.1 (sour) 198 243.34 B 0.52 0.1 (ce.) 217.9 243.34 B 0.52 0.1 (The class loader keeps a cache of loaders for individual Uniform Resour) 198 218.54 B 0.52 0.1 (ce) 528.39 218.54 B 0.02 0.1 (Locators \050URLs\051 and the classes that have been loaded fr) 198 206.14 B 0.02 0.1 (om them. When a stub) 453.33 206.14 B 0.52 0.1 (or skeleton has been loaded, any class r) 198 193.74 B 0.52 0.1 (efer) 379.23 193.74 B 0.52 0.1 (ences that occur as parameters or) 396.31 193.74 B 0.22 0.1 (r) 198 181.34 B 0.22 0.1 (eturns will be loaded \050fr) 201.87 181.34 B 0.22 0.1 (om their originating codebase host\051 and ar) 311.54 181.34 B 0.22 0.1 (e subject to) 504.4 181.34 B 0.52 0.1 (the same security r) 198 168.94 B 0.52 0.1 (estrictions.) 284.64 168.94 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.45/DEST FmPD2 97 792/M7.9.20807.Head1.56.The.StubClassLoader.Class FmPA 97 792/I7.1.2659 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "45" 51 %%Page: "46" 52 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (46) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Server pr) 198 641.33 B 0.52 0.1 (ocesses must declar) 240.08 641.33 B 0.52 0.1 (e to the RMI r) 329.6 641.33 B 0.52 0.1 (untime the location of the classes) 393.84 641.33 B 0.52 0.1 (\050stubs and parameters/r) 198 628.93 B 0.52 0.1 (eturns\051 that will be available to its clients. The) 309.55 628.93 B 5 F 1.2 (java.rmi.server.codebase) 198 616.53 P 1 F 0.52 0.1 ( pr) 342 616.53 B 0.52 0.1 (operty should be a URL fr) 355.1 616.53 B 0.52 0.1 (om which stub) 475.29 616.53 B 0.52 0.1 (classes and classes used by stubs will be loaded, using the normal pr) 198 604.13 B 0.52 0.1 (otocols,) 513.79 604.13 B 54 580.41 558 588.4 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 585.38 198 585.38 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (such as http and ftp.) 198 591.73 B 0 15 Q (5.7) 67.47 550.01 T -0.94 (The LoaderHandler Interface) 97.27 550.01 P 54 694/G7.6583 FmPA 5 9 Q (package java.rmi.server;) 198 531.01 T (public interface LoaderHandler {) 198 509.01 T ( Class loadClass\050String name\051) 198 487.01 T ( throws MalformedURLException, ClassNotFoundException;) 218.16 476.01 T ( Class loadClass\050URL codebase,String name\051) 198 454.01 T (throws MalformedURLException, ClassNotFoundException;) 238.32 443.01 T (Object getSecurityContext\050ClassLoader loader\051;) 218.16 421.01 T (}) 198 410.01 T 1 10 Q 0.52 0.1 (The) 198 390.34 B 5 F 1.2 (LoaderHandler) 218.16 390.34 P 1 F 0.52 0.1 ( interface must be implemented by a class named) 296.16 390.34 B 5 F 1.2 (LoaderHandler) 198 377.94 P 1 F 0.52 0.1 (. The) 275.26 377.94 B 5 F 1.2 (LoaderHandler) 301.14 377.94 P 1 F 0.52 0.1 ( class must be de\336ned in the package) 379.14 377.94 B 0.52 0.1 (speci\336ed by the pr) 198 365.54 B 0.52 0.1 (operty) 282.94 365.54 B 5 F 1.2 (java.rmi.loader.packagePrefix) 315.69 365.54 P 1 F 0.52 0.1 (. The methods) 489.69 365.54 B 0.52 0.1 (of) 198 353.14 B 5 F 1.2 (LoaderHandler) 210.11 353.14 P 1 F 0.52 0.1 ( ar) 288.11 353.14 B 0.52 0.1 (e used by the) 300.2 353.14 B 5 F 1.2 (java.rmi.server.RMIClassLoader) 364.6 353.14 P 1 F 0.52 0.1 (class to carry out its operations.) 198 340.74 B 0 15 Q (5.8) 67.47 307.01 T -0.94 (The RMISocketFactory Class) 97.27 307.01 P 54 451/G7.4175 FmPA 1 10 Q 0.52 0.1 (The) 198 285.34 B 5 F 1.2 ( java.rmi.server.RMISocketFactory) 215.04 285.34 P 1 F 0.52 0.1 (abstract class pr) 421.44 285.34 B 0.52 0.1 (ovides an) 494.47 285.34 B 0.52 0.1 (interface for specifying how the transport should obtain sockets.) 198 272.94 B 5 9 Q (package java.rmi.server;) 198 257.21 T (public abstract class RMISocketFactory {) 198 246.21 T (public abstract java.net.Socket createSocket\050String h,int p\051) 218.16 224.21 T (throws IOException;) 238.32 213.21 T -0.09 (public abstract java.net.ServerSocket createServerSocket\050int p\051) 218.16 191.21 P (throws IOException;) 238.32 180.21 T (public static void setSocketFactory\050RMISocketFactory fac\051) 218.16 158.21 T (throws IOException;) 238.32 147.21 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.46/DEST FmPD2 97 461/M7.9.36752.Head1.57.The.RMISocketFactory.Class FmPA 97 461/I7.1.4182 FmPA 97 704/M7.9.38693.Head1.57.The.LoaderHandler.Interface FmPA 97 704/I7.1.6636 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "46" 52 %%Page: "47" 53 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (47) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (public static RMISocketFactory getSocketFactory\050\051;) 218.16 631 T (public static void setFailureHandler\050RMIFailureHandler fh\051;) 218.16 609 T (public static RMIFailureHandler getFailureHandler\050\051;) 218.16 587 T (}) 198 576 T 1 10 Q 0.52 0.1 (The static method) 198 556.33 B 5 F 1.2 (setSocketFactory) 282.98 556.33 P 1 F 0.52 0.1 ( is used to set the socket factory fr) 378.98 556.33 B 0.52 0.1 (om) 535.89 556.33 B 0.52 0.1 (which RMI obtains sockets. The application may invoke this method with its) 198 543.93 B 0.52 0.1 (own) 198 531.53 B 5 F 1.2 (RMISocketFactory) 221.04 531.53 P 1 F 0.52 0.1 ( instance only once. An application-de\336ned) 317.04 531.53 B 0.52 0.1 (implementation of) 198 519.13 B 5 F 1.2 (RMISocketFactory) 285.23 519.13 P 1 F 0.52 0.1 ( could, for example, do pr) 381.23 519.13 B 0.52 0.1 (eliminary) 500.46 519.13 B 0.52 0.1 (\336ltering on the r) 198 506.73 B 0.52 0.1 (equested connection and thr) 272.93 506.73 B 0.52 0.1 (ow exceptions, or r) 402.3 506.73 B 0.52 0.1 (eturn its own) 489.62 506.73 B 0.52 0.1 (extension of the) 198 494.33 B 5 F 1.2 (java.net.Socket) 273.67 494.33 P 1 F 0.52 0.1 ( or) 363.67 494.33 B 5 F 1.2 (java.net.ServerSocket) 379.52 494.33 P 1 F 0.52 0.1 ( classes,) 505.52 494.33 B 0.52 0.1 (such as ones that pr) 198 481.93 B 0.52 0.1 (ovide a secur) 289.28 481.93 B 0.52 0.1 (e communication channel. Note that the) 349.81 481.93 B 0.52 0.1 (RMISocketFactory may only be set if the curr) 198 469.53 B 0.52 0.1 (ent security manager allows) 405.09 469.53 B 0.52 0.1 (setting a socket factory; if setting the socket factory is disallowed, a) 198 457.13 B 5 F 1.2 (SecurityException) 198 444.73 P 1 F 0.52 0.1 ( will be thr) 300 444.73 B 0.52 0.1 (own.) 350.5 444.73 B 0.52 0.1 (The static method) 198 424.33 B 5 F 1.2 (getSocketFactory) 282.98 424.33 P 1 F 0.52 0.1 ( r) 378.98 424.33 B 0.52 0.1 (eturns the socket factory used by) 385.97 424.33 B 0.52 0.1 (RMI. The method r) 198 411.93 B 0.52 0.1 (eturns null if the socket factory is not set.) 285.55 411.93 B 0.52 0.1 (The transport layer invokes the) 198 391.53 B 5 F 1.2 (createSocket) 344.5 391.53 P 1 F 0.52 0.1 ( and) 416.5 391.53 B 5 F 1.2 (createServerSocket) 439.97 391.53 P 1 F 0.52 0.1 (methods on the) 198 379.13 B 5 F 1.2 (RMISocketFactory) 272.22 379.13 P 1 F 0.52 0.1 ( r) 368.22 379.13 B 0.52 0.1 (eturned by the) 375.21 379.13 B 5 F 1.2 (getSocketFactory) 445.48 379.13 P 1 F 0.52 0.1 (method when the transport needs to cr) 198 366.73 B 0.52 0.1 (eate sockets. For example:) 376.36 366.73 B 5 9 Q (RMISocketFactory.getSocketFactory\050\051.createSocket\050myhost, myport\051) 198 351 T 1 10 Q 0.52 0.1 (The method) 198 331.33 B 5 F 1.2 (createSocket) 256.15 331.33 P 1 F 0.52 0.1 ( should cr) 328.15 331.33 B 0.52 0.1 (eate a client socket connected to the) 373.97 331.33 B 0.52 0.1 (speci\336ed host and port. The method) 198 318.93 B 5 F 1.2 (createServerSocket) 366.86 318.93 P 1 F 0.52 0.1 ( should cr) 474.86 318.93 B 0.52 0.1 (eate a) 520.68 318.93 B 0.52 0.1 (server socket on the speci\336ed port. The default transport\325s implementation of) 198 306.53 B 5 F 1.2 (RMISocketFactory) 198 294.13 P 1 F 0.52 0.1 ( pr) 294 294.13 B 0.52 0.1 (ovides for transpar) 307.1 294.13 B 0.52 0.1 (ent RMI thr) 393.99 294.13 B 0.52 0.1 (ough \336r) 447.36 294.13 B 0.52 0.1 (ewalls using) 483.77 294.13 B 0.52 0.1 (HTTP as follows:) 198 281.73 B 4 14 Q 0.14 (\245) 198 263.33 S 1 10 Q -0.13 0.1 (On) 210.6 263.33 B 5 F -0.3 (createSocket) 226.95 263.33 P 1 F -0.13 0.1 (, the factory automatically attempts HTTP connections to) 298.95 263.33 B 0.52 0.1 (hosts that cannot be contacted with a dir) 210.6 250.93 B 0.52 0.1 (ect socket.) 397.02 250.93 B 4 14 Q 0.14 (\245) 198 232.53 S 1 10 Q 0.52 0.1 (On) 210.6 232.53 B 5 F 1.2 (createServerSocket) 227.6 232.53 P 1 F 0.52 0.1 (, the factory r) 335.6 232.53 B 0.52 0.1 (eturns a server socket that) 397.3 232.53 B 0.52 0.1 (automatically detects if a newly accepted connection is an HTTP POST) 210.6 220.13 B -0.06 0.1 (r) 210.6 207.73 B -0.06 0.1 (equest. If so, it r) 214.47 207.73 B -0.06 0.1 (eturns a socket that will transpar) 286.17 207.73 B -0.06 0.1 (ently expose only the body) 434.05 207.73 B 0.52 0.1 (of the r) 210.6 195.33 B 0.52 0.1 (equest to the transport and format its output as an HTTP r) 243.87 195.33 B 0.52 0.1 (esponse.) 512.81 195.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.47/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "47" 53 %%Page: "48" 54 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (48) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The method) 198 641.33 B 5 F 1.2 (setFailureHandler) 256.15 641.33 P 1 F 0.52 0.1 ( sets the failur) 358.15 641.33 B 0.52 0.1 (e handler to be called by the) 423.16 641.33 B 0.34 0.1 (RMI r) 198 628.93 B 0.34 0.1 (untime if the cr) 224.71 628.93 B 0.34 0.1 (eation of a server socket fails. The failur) 294.78 628.93 B 0.34 0.1 (e handler r) 476.65 628.93 B 0.34 0.1 (eturns) 526.38 628.93 B 0.52 0.1 (a boolean to indicate if r) 198 616.53 B 0.52 0.1 (etry should occur) 309.64 616.53 B 0.52 0.1 (. The default failur) 389.09 616.53 B 0.52 0.1 (e handler r) 474.77 616.53 B 0.52 0.1 (eturns) 524.86 616.53 B 0.52 0.1 (false, meaning that by default r) 198 604.13 B 0.52 0.1 (ecr) 341.43 604.13 B 0.52 0.1 (eation of sockets is not attempted by the) 354.73 604.13 B 0.1 (r) 198 591.73 S 0.1 (untime.) 201.97 591.73 S 0.52 0.1 (The method) 198 571.33 B 5 F 1.2 (getFailureHandler) 256.15 571.33 P 1 F 0.52 0.1 ( r) 358.15 571.33 B 0.52 0.1 (eturns the curr) 365.14 571.33 B 0.52 0.1 (ent handler for socket) 432.83 571.33 B 0.52 0.1 (cr) 198 558.93 B 0.52 0.1 (eation failur) 206.41 558.93 B 0.52 0.1 (e, or null if the failur) 261.92 558.93 B 0.52 0.1 (e handler is not set.) 357.85 558.93 B 0 15 Q (5.9) 67.47 525.2 T -0.94 (The RMIFailur) 97.27 525.2 P -0.94 (eHandler Interface) 188.99 525.2 P 54 669/G7.4381 FmPA 1 10 Q 0.52 0.1 (The) 198 503.53 B 5 F 1.2 (java.rmi.server.RMIFailureHandler) 218.16 503.53 P 1 F 0.52 0.1 ( interface pr) 416.16 503.53 B 0.52 0.1 (ovides a method) 471.57 503.53 B 0.52 0.1 (for specifying how the RMI r) 198 491.13 B 0.52 0.1 (untime should r) 331.08 491.13 B 0.52 0.1 (espond when server socket) 404.6 491.13 B 0.52 0.1 (cr) 198 478.73 B 0.52 0.1 (eation fails.) 206.41 478.73 B 5 9 Q (package java.rmi.server;) 198 463 T (public interface RMIFailureHandler {) 198 448 T (public boolean failure\050Exception ex\051;) 218.16 437 T (}) 198 426 T 1 10 Q 0.52 0.1 (The) 198 406.33 B 5 F 1.2 (failure) 218.16 406.33 P 1 F 0.52 0.1 ( method is invoked with the exception that pr) 260.16 406.33 B 0.52 0.1 (evented the RMI) 470.5 406.33 B 0.52 0.1 (r) 198 393.93 B 0.52 0.1 (untime fr) 201.97 393.93 B 0.52 0.1 (om cr) 244.63 393.93 B 0.52 0.1 (eating a) 270.65 393.93 B 5 F 1.2 (java.net.Socket) 309.93 393.93 P 1 F 0.52 0.1 ( or) 399.93 393.93 B 5 F 1.2 (java.net.ServerSocket) 415.78 393.93 P 1 F 0.52 0.1 (.) 541.78 393.93 B 0.52 0.1 (The method r) 198 381.53 B 0.52 0.1 (eturns tr) 260.02 381.53 B 0.52 0.1 (ue if the r) 299.16 381.53 B 0.52 0.1 (untime should attempt to r) 344.12 381.53 B 0.52 0.1 (etry and false) 467.91 381.53 B 0.1 (otherwise.) 198 369.13 S 0.24 0.1 (Befor) 198 348.73 B 0.24 0.1 (e this method can be invoked, a failur) 221.96 348.73 B 0.24 0.1 (e handler needs to be r) 393.58 348.73 B 0.24 0.1 (egister) 497.34 348.73 B 0.24 0.1 (ed via) 527.35 348.73 B 0.52 0.1 (the) 198 336.33 B 5 F 1.2 (RMISocketFactory.setFailureHandler) 215.29 336.33 P 1 F 0.52 0.1 ( call. If the failur) 419.29 336.33 B 0.52 0.1 (e handler is) 495.65 336.33 B 0.52 0.1 (not set, cr) 198 323.93 B 0.52 0.1 (eation is not attempted.) 242.68 323.93 B 0 15 Q (5.10) 59.97 290.2 T -0.94 (The LogStr) 97.27 290.2 P -0.94 (eam Class) 163.98 290.2 P 54 434/G7.1621 FmPA 1 10 Q 0.52 0.1 (The class) 198 268.53 B 5 F 1.2 (LogStream) 242.61 268.53 P 1 F 0.52 0.1 ( pr) 296.61 268.53 B 0.52 0.1 (esents a mechanism for logging err) 309.71 268.53 B 0.52 0.1 (ors that ar) 470.06 268.53 B 0.52 0.1 (e of) 516.96 268.53 B 0.52 0.1 (possible inter) 198 256.13 B 0.52 0.1 (est to those monitoring the system. This class is used internally) 259.06 256.13 B 0.52 0.1 (for server call logging.) 198 243.73 B 5 9 Q (package java.rmi.server;) 198 228 T (public class LogStream extends java.io.PrintStream {) 198 206 T (public static LogStream log\050String name\051;) 218.16 184 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.48/DEST FmPD2 97 444/M7.9.10578.Head1.511.The.LogStream.Class FmPA 97 444/I7.1.5097 FmPA 97 679/M7.9.20249.Head1.59.The.RMIFailureHandler.Interface FmPA 97 679/I7.1.4580 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "48" 54 %%Page: "49" 55 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (5) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (Server Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (49) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (5) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (public static synchronized PrintStream getDefaultStream\050\051;) 218.16 642 T (public static synchronized void setDefaultStream\050) 218.16 620 T (PrintStream newDefault\051;) 238.32 605 T (public synchronized OutputStream getOutputStream\050\051;) 218.16 583 T (public synchronized void setOutputStream\050OutputStream out\051;) 218.16 561 T (public void write\050int b\051;) 218.16 539 T (public void write\050byte b[], int off, int len\051;) 218.16 517 T (public String toString\050\051;) 218.16 495 T (public static int parseLevel\050String s\051;) 218.16 473 T (// constants for logging levels) 218.16 451 T (public static final int SILENT = 0;) 218.16 440 T (public static final int BRIEF = 10;) 218.16 429 T (public static final int VERBOSE = 20;) 218.16 418 T (}) 198 407 T 1 10 Q 0.52 0.1 (The method) 198 387.33 B 5 F 1.2 (log) 256.15 387.33 P 1 F 0.52 0.1 ( r) 274.15 387.33 B 0.52 0.1 (eturns the LogStr) 281.14 387.33 B 0.52 0.1 (eam identi\336ed by the given name. If a log) 360.25 387.33 B 0.27 0.1 (corr) 198 374.93 B 0.27 0.1 (esponding to name does not exist, a log using the default str) 216.02 374.93 B 0.27 0.1 (eam is cr) 490.53 374.93 B 0.27 0.1 (eated.) 530.95 374.93 B 0.52 0.1 (The method) 198 354.53 B 5 F 1.2 (getDefaultStream) 256.15 354.53 P 1 F 0.52 0.1 ( r) 352.15 354.53 B 0.52 0.1 (eturns the curr) 359.14 354.53 B 0.52 0.1 (ent default str) 426.83 354.53 B 0.52 0.1 (eam for new) 490.94 354.53 B 0.1 (logs.) 198 342.13 S 0.52 0.1 (The method) 198 321.73 B 5 F 1.2 (setDefaultStream) 256.15 321.73 P 1 F 0.52 0.1 ( sets the default str) 352.15 321.73 B 0.52 0.1 (eam for new logs.) 439.43 321.73 B 0.52 0.1 (The method) 198 301.33 B 5 F 1.2 (getOutputStream) 256.15 301.33 P 1 F 0.52 0.1 ( r) 346.15 301.33 B 0.52 0.1 (eturns curr) 353.14 301.33 B 0.52 0.1 (ent str) 403.54 301.33 B 0.52 0.1 (eam to which output fr) 432.4 301.33 B 0.52 0.1 (om) 538.5 301.33 B 0.52 0.1 (this log is sent.) 198 288.93 B 0.44 0.1 (The method) 198 268.53 B 5 F 1.01 (setOutputStream) 255.99 268.53 P 1 F 0.44 0.1 ( sets the str) 345.98 268.53 B 0.44 0.1 (eam to which output fr) 397.77 268.53 B 0.44 0.1 (om this log) 503.54 268.53 B 0.52 0.1 (is sent.) 198 256.13 B 0.52 0.1 (The \336rst form of the method) 198 235.73 B 5 F 1.2 (write) 331.66 235.73 P 1 F 0.52 0.1 ( writes a byte of data to the str) 361.66 235.73 B 0.52 0.1 (eam. If it is) 502.77 235.73 B 0.52 0.1 (not a new line, then the byte is appended to the internal buf) 198 223.33 B 0.52 0.1 (fer) 474.01 223.33 B 0.52 0.1 (. If it is a new) 485.64 223.33 B 0.33 0.1 (line, then the curr) 198 210.93 B 0.33 0.1 (ently buf) 279.08 210.93 B 0.33 0.1 (fer) 319.87 210.93 B 0.33 0.1 (ed line is sent to the log's output str) 332.05 210.93 B 0.33 0.1 (eam with the) 495.38 210.93 B 0.52 0.1 (appr) 198 198.53 B 0.52 0.1 (opriate logging pr) 219.19 198.53 B 0.52 0.1 (e\336x. The second form of the method) 301.97 198.53 B 5 F 1.2 (write) 471.21 198.53 P 1 F 0.52 0.1 ( writes a) 501.21 198.53 B 0.52 0.1 (subarray of bytes.) 198 186.13 B 0.52 0.1 (The method) 198 165.73 B 5 F 1.2 (toString) 256.15 165.73 P 1 F 0.52 0.1 ( r) 304.15 165.73 B 0.52 0.1 (eturns log name as string r) 311.14 165.73 B 0.52 0.1 (epr) 434.15 165.73 B 0.52 0.1 (esentation.) 449.02 165.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.49/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "49" 55 %%Page: "50" 56 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (50) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (5) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The method) 198 641.33 B 5 F 1.2 (parseLevel) 256.15 641.33 P 1 F 0.52 0.1 ( converts a string name of a logging level to its) 316.15 641.33 B 0.52 0.1 (internal integer r) 198 628.93 B 0.52 0.1 (epr) 275.15 628.93 B 0.52 0.1 (esentation.) 290.02 628.93 B 0 15 Q (5.1) 60.79 595.2 T (1) 78.72 595.2 T -0.94 (Stub and Skeleton Compiler) 97.27 595.2 P 54 739/G7.5845 FmPA 1 10 Q 0.43 0.1 (The) 198 573.53 B 5 F 1 (rmic) 218.07 573.53 P 1 F 0.43 0.1 ( stub and skeleton compiler is used to compile the appr) 242.07 573.53 B 0.43 0.1 (opriate stubs) 496.06 573.53 B 0.52 0.1 (and skeletons for a speci\336c r) 198 561.13 B 0.52 0.1 (emote object implementation. The compiler is) 328.39 561.13 B 0.52 0.1 (invoked with the package quali\336ed class name of the r) 198 548.73 B 0.52 0.1 (emote object class. The) 448.44 548.73 B 0.52 0.1 (class must pr) 198 536.33 B 0.52 0.1 (eviously have been compiled successfully) 258.31 536.33 B 0.52 0.1 (.) 447.64 536.33 B 4 14 Q 0.14 (\245) 198 517.93 S 1 10 Q 0.52 0.1 (The location of the imported classes may be speci\336ed either with the) 210.6 517.93 B 0.52 0.1 (CLASSP) 210.6 505.53 B 0.52 0.1 (A) 247.8 505.53 B 0.52 0.1 (TH envir) 254.94 505.53 B 0.52 0.1 (onment variable or with the -classpath ar) 296.15 505.53 B 0.52 0.1 (gument.) 484.72 505.53 B 4 14 Q 0.14 (\245) 198 487.13 S 1 10 Q 0.52 0.1 (The compiled class \336les ar) 210.6 487.13 B 0.52 0.1 (e placed in the curr) 331.07 487.13 B 0.52 0.1 (ent dir) 419.99 487.13 B 0.52 0.1 (ectory unless the -d) 450.37 487.13 B 0.52 0.1 (ar) 210.6 474.73 B 0.52 0.1 (gument is speci\336ed following the same mechanism for writing class \336les) 219.57 474.73 B 0.52 0.1 (as) 210.6 462.33 B 5 F 1.2 (javac) 223.16 462.33 P 1 F 0.52 0.1 (.) 253.16 462.33 B 4 14 Q 0.14 (\245) 198 443.93 S 1 10 Q 0.45 0.1 (The -keepgenerated ar) 210.6 443.93 B 0.45 0.1 (gument r) 312.65 443.93 B 0.45 0.1 (etains the generated java sour) 354.46 443.93 B 0.45 0.1 (ce \336les for the) 490.69 443.93 B 0.52 0.1 (stubs and skeletons.) 210.6 431.53 B 4 14 Q 0.14 (\245) 198 413.13 S 1 10 Q 0.52 0.1 (The -show option displays a graphical user interface for the pr) 210.6 413.13 B 0.52 0.1 (ogram.) 497.22 413.13 B 4 14 Q 0.14 (\245) 198 394.73 S 1 10 Q 0.52 0.1 (All other) 210.6 394.73 B 5 F 1.2 (javac) 254.52 394.73 P 1 F 0.52 0.1 ( command line ar) 284.52 394.73 B 0.52 0.1 (guments ar) 364.87 394.73 B 0.52 0.1 (e applicable and can be used) 416.19 394.73 B 0.52 0.1 (with) 210.6 382.33 B 5 F 1.2 (rmic) 234.45 382.33 P 1 F 0.52 0.1 (.) 258.45 382.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.50/DEST FmPD2 [/Dest/L.rmiserverdoc/DEST FmPD2 97 749/M7.9.41317.Head1.57.Stub.and.Skeleton.Compiler FmPA 97 749/I7.1.2663 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "50" 56 %%Page: "51" 57 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 51) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Registry Interfaces) 198 509.31 P 54 653/G8.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (6) 525.14 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.52 0.1 (The RMI system uses the) 198 459.68 B 5 F 1.2 (java.rmi.registry.Registry) 315.84 459.68 P 1 F 0.52 0.1 ( interface and the) 471.84 459.68 B 5 F 1.2 (java.rmi.registry.LocateRegistry) 198 447.28 P 1 F 0.52 0.1 ( class to pr) 390 447.28 B 0.52 0.1 (ovide a well-known) 439.59 447.28 B 0.52 0.1 (bootstrap service for r) 198 434.88 B 0.52 0.1 (etrieving and r) 298.81 434.88 B 0.52 0.1 (egistering objects by simple names. Any) 366.69 434.88 B 0.38 0.1 (server pr) 198 422.48 B 0.38 0.1 (ocess can support its own r) 238.92 422.48 B 0.38 0.1 (egistry or a single r) 363.19 422.48 B 0.38 0.1 (egistry can be used for) 451.47 422.48 B 0.52 0.1 (a host.) 198 410.08 B 0.47 0.1 (A) 198 389.68 B 0 F 0.47 0.1 (r) 208.95 389.68 B 0.47 0.1 (egistry) 212.76 389.68 B 1 F 0.47 0.1 ( is a r) 241.24 389.68 B 0.47 0.1 (emote object that maps names to r) 266.76 389.68 B 0.47 0.1 (emote objects. A r) 423.4 389.68 B 0.47 0.1 (egistry can) 505.34 389.68 B 0.52 0.1 (be used in a virtual machine with other server classes or standalone.) 198 377.28 B 0.52 0.1 (The methods of) 198 356.88 B 5 F 1.2 (LocateRegistry) 272.6 356.88 P 1 F 0.52 0.1 ( ar) 356.6 356.88 B 0.52 0.1 (e used to get a r) 368.69 356.88 B 0.52 0.1 (egistry operating on a) 442.55 356.88 B 0.52 0.1 (particular host or host and port.) 198 344.48 B 0 13 Q 0.13 (T) 198 312.08 S 0.13 (opics:) 204.63 312.08 S 4 14 Q 0.14 (\245) 198 293.08 S 1 10 Q 0.52 0.1 (The Registry Interface) 210.6 293.08 B 4 14 Q 0.14 (\245) 198 274.68 S 1 10 Q 0.52 0.1 (The LocateRegistry Class) 210.6 274.68 B 4 14 Q 0.14 (\245) 198 256.28 S 1 10 Q 0.52 0.1 (The RegistryHandler Interface) 210.6 256.28 B 0 15 Q (6.1) 67.47 222.54 T -0.94 (The Registry Interface) 97.27 222.54 P 54 367/G8.186 FmPA 1 10 Q 0.52 0.1 (The) 198 200.88 B 5 F 1.2 (java.rmi.registry.Registry) 218.16 200.88 P 1 F 0.52 0.1 ( r) 374.16 200.88 B 0.52 0.1 (emote interface pr) 381.15 200.88 B 0.52 0.1 (ovides methods for) 464.19 200.88 B 0.52 0.1 (lookup, binding, r) 198 188.48 B 0.52 0.1 (ebinding, unbinding, and listing the contents of a r) 280.7 188.48 B 0.52 0.1 (egistry) 514.08 188.48 B 0.52 0.1 (.) 543.93 188.48 B 0.52 0.1 (The) 198 176.08 B 5 F 1.2 (java.rmi.Naming) 218.16 176.08 P 1 F 0.52 0.1 ( class uses the) 308.16 176.08 B 5 F 1.2 (registry) 375.84 176.08 P 1 F 0.52 0.1 ( r) 423.84 176.08 B 0.52 0.1 (emote interface to pr) 430.83 176.08 B 0.52 0.1 (ovide) 525.91 176.08 B 0.52 0.1 (URL-based naming.) 198 163.68 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.51/DEST FmPD2 [/Dest/F.rmiregistrydoc/DEST FmPD2 97 377/M8.9.25546.Head1.51.The.Registry.Interface FmPA 97 377/I8.1.6500 FmPA [/Rect[211 251 349 266]/Border[0 0 0]/Page 60/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 270 325 285]/Border[0 0 0]/Page 59/View[/XYZ null 97 712 FmDC exch pop null]/LNK FmPD [/Rect[211 288 311 303]/Border[0 0 0]/Page 57/View[/XYZ null 97 377 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "51" 57 %%Page: "52" 58 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 52) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (package java.rmi.registry;) 198 642 T (public interface Registry extends java.rmi.Remote) 198 620 T ({) 198 609 T (public static final int REGISTRY_PORT = 1099;) 218.16 594 T (public java.rmi.Remote lookup\050String name\051) 218.16 572 T (throws java.rmi.RemoteException,) 238.32 561 T (java.rmi.NotBoundException, java.rmi.AccessException;) 238.32 550 T (public void bind\050String name, java.rmi.Remote obj\051) 218.16 528 T (throws java.rmi.RemoteException,) 238.32 517 T (java.rmi.AlreadyBoundException, java.rmi.AccessException;) 238.32 506 T (public void rebind\050String name, java.rmi.Remote obj\051) 218.16 484 T (throws java.rmi.RemoteException, java.rmi.AccessException;) 238.32 473 T (public void unbind\050String name\051) 218.16 451 T (throws java.rmi.RemoteException,) 238.32 440 T (java.rmi.NotBoundException, java.rmi.AccessException;) 238.32 429 T (public String[] list\050\051) 218.16 407 T (throws java.rmi.RemoteException, java.rmi.AccessException;) 238.32 396 T (}) 198 385 T 1 10 Q 0.52 0.1 (The) 198 365.33 B 5 F 1.2 (REGISTRY_PORT) 218.16 365.33 P 1 F 0.52 0.1 ( is the default port of the r) 296.16 365.33 B 0.52 0.1 (egistry) 417.76 365.33 B 0.52 0.1 (.) 447.62 365.33 B -0.06 0.1 (The) 198 344.93 B 5 F -0.15 (lookup) 217.57 344.93 P 1 F -0.06 0.1 ( method r) 253.57 344.93 B -0.06 0.1 (eturns the r) 297.38 344.93 B -0.06 0.1 (emote object bound to the speci\336ed) 349.18 344.93 B 0 F -0.06 0.1 (name) 511.12 344.93 B 1 F -0.06 0.1 (. The) 533.19 344.93 B 0.02 0.1 (r) 198 332.53 B 0.02 0.1 (emote object implements a set of r) 201.87 332.53 B 0.02 0.1 (emote interfaces. Clients can cast the r) 355.59 332.53 B 0.02 0.1 (emote) 527.75 332.53 B 0.52 0.1 (object to the expected r) 198 320.13 B 0.52 0.1 (emote interface. \050This cast can fail in the usual ways) 304.01 320.13 B 0.52 0.1 (that casts can fail in the Java language.\051) 198 307.73 B 0.06 0.1 (The) 198 287.33 B 5 F 0.13 (bind) 217.7 287.33 P 1 F 0.06 0.1 ( method associates the) 241.7 287.33 B 0 F 0.06 0.1 (name) 345.94 287.33 B 1 F 0.06 0.1 ( with the r) 368.01 287.33 B 0.06 0.1 (emote object,) 414.75 287.33 B 0 F 0.06 0.1 (obj) 476.71 287.33 B 1 F 0.06 0.1 (. If the name is) 488.86 287.33 B 0.52 0.1 (alr) 198 274.93 B 0.52 0.1 (eady bound to an object the) 209.98 274.93 B 5 F 1.2 (AlreadyBoundExcepton) 340.54 274.93 P 1 F 0.52 0.1 ( is thr) 460.54 274.93 B 0.52 0.1 (own.) 487.28 274.93 B 0.52 0.1 (The) 198 254.53 B 5 F 1.2 (rebind) 218.16 254.53 P 1 F 0.52 0.1 ( method associates the) 254.16 254.53 B 0 F 0.52 0.1 (name) 360.26 254.53 B 1 F 0.52 0.1 ( with the r) 382.33 254.53 B 0.52 0.1 (emote object,) 430.46 254.53 B 0 F 0.52 0.1 (obj) 493.35 254.53 B 1 F 0.52 0.1 (. Any) 505.5 254.53 B 0.52 0.1 (pr) 198 242.13 B 0.52 0.1 (evious binding of the name is discar) 207.98 242.13 B 0.52 0.1 (ded.) 374.16 242.13 B 0.52 0.1 (The) 198 221.73 B 5 F 1.2 (unbind) 218.16 221.73 P 1 F 0.52 0.1 ( method r) 254.16 221.73 B 0.52 0.1 (emoves the binding between the) 299.14 221.73 B 0 F 0.52 0.1 (name) 450.82 221.73 B 1 F 0.52 0.1 ( and the r) 472.89 221.73 B 0.52 0.1 (emote) 517.52 221.73 B 0.52 0.1 (object,) 198 209.33 B 0 F 0.52 0.1 (obj) 230.14 209.33 B 1 F 0.52 0.1 (. If the name is not alr) 242.29 209.33 B 0.52 0.1 (eady bound to an object the) 343.69 209.33 B 5 F 1.2 (NotBoundException) 198 196.93 P 1 F 0.52 0.1 ( is thr) 300 196.93 B 0.52 0.1 (own.) 326.74 196.93 B 0.52 0.1 (The) 198 176.53 B 5 F 1.2 (list) 218.16 176.53 P 1 F 0.52 0.1 ( method r) 242.16 176.53 B 0.52 0.1 (eturns an array of) 287.14 176.53 B 5 F 1.2 (Strings) 372.28 176.53 P 1 F 0.52 0.1 ( containing a snapshot of the) 414.28 176.53 B 0.52 0.1 (names bound in the r) 198 164.13 B 0.52 0.1 (egistry) 296.08 164.13 B 0.52 0.1 (. The r) 325.94 164.13 B 0.52 0.1 (eturn value contains a snapshot of the) 355.69 164.13 B 0.52 0.1 (contents of the r) 198 151.73 B 0.52 0.1 (egistry) 272.28 151.73 B 0.52 0.1 (.) 302.14 151.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.52/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "52" 58 %%Page: "53" 59 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 6:) 198 108.7 B 0 F -0.58 0.09 (Registry Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 53) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (6) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Clients can access the r) 198 641.33 B 0.52 0.1 (egistry either by using the) 303.55 641.33 B 5 F 1.2 (LocateRegistry) 426.76 641.33 P 1 F 0.52 0.1 ( and) 510.76 641.33 B 5 F 1.2 (Registry) 198 628.93 P 1 F 0.52 0.1 ( interfaces or by using the methods of the URL-based) 246 628.93 B 5 F 1.2 (java.rmi.Naming) 198 616.53 P 1 F 0.52 0.1 ( class. The r) 288 616.53 B 0.52 0.1 (egistry supports) 342.2 616.53 B 5 F 1.2 (bind) 419.41 616.53 P 1 F 0.52 0.1 (,) 443.41 616.53 B 5 F 1.2 (unbind) 449.13 616.53 P 1 F 0.52 0.1 (, and) 485.13 616.53 B 5 F 1.2 (rebind) 511.2 616.53 P 1 F 0.52 0.1 (only fr) 198 604.13 B 0.52 0.1 (om clients on the same host as the server; a lookup can be done fr) 228.57 604.13 B 0.52 0.1 (om) 531.16 604.13 B 0.52 0.1 (any host.) 198 591.73 B 0 15 Q (6.2) 67.47 558 T -0.94 (The LocateRegistry Class) 97.27 558 P 54 702/G8.6378 FmPA 1 10 Q 0.52 0.1 (The class) 198 536.33 B 5 F 1.2 (java.rmi.registry.LocateRegistry) 242.61 536.33 P 1 F 0.52 0.1 ( contains static methods) 434.61 536.33 B 0.52 0.1 (that r) 198 523.93 B 0.52 0.1 (eturn a r) 222.73 523.93 B 0.52 0.1 (efer) 262.29 523.93 B 0.52 0.1 (ence to a r) 279.37 523.93 B 0.52 0.1 (egistry on the curr) 326.86 523.93 B 0.52 0.1 (ent host, curr) 411.43 523.93 B 0.52 0.1 (ent host at) 472.21 523.93 B 0.32 0.1 (speci\336ed port, a speci\336ed host or at a particular port on a speci\336ed host. What) 198 511.53 B 0.52 0.1 (is r) 198 499.13 B 0.52 0.1 (eturned is the r) 212.34 499.13 B 0.52 0.1 (emote stub for the r) 282.54 499.13 B 0.52 0.1 (egistry with the speci\336ed host and port) 373.19 499.13 B 0.52 0.1 (information. No r) 198 486.73 B 0.52 0.1 (emote operations need be performed to obtain a r) 278.53 486.73 B 0.52 0.1 (efer) 506.04 486.73 B 0.52 0.1 (ence) 523.12 486.73 B 0.52 0.1 (\050stub\051 for any r) 198 474.33 B 0.52 0.1 (egistry on any host.) 267.27 474.33 B 5 9 Q (package java.rmi.registry;) 198 458.6 T (public final class LocateRegistry {) 198 447.6 T (public static Registry getRegistry\050\051) 218.16 436.6 T (throws java.rmi.RemoteException;) 238.32 425.6 T (public static Registry getRegistry\050int port\051) 218.16 403.6 T (throws java.rmi.RemoteException;) 238.32 392.6 T (public static Registry getRegistry\050String host\051) 218.16 370.6 T (throws java.rmi.RemoteException,) 238.32 359.6 T (java.rmi.UnknownHostException;) 238.32 348.6 T (public static Registry getRegistry\050String host, int port\051) 218.16 326.6 T (throws java.rmi.RemoteException,) 238.32 315.6 T (java.rmi.UnknownHostException;) 238.32 304.6 T (public static Registry createRegistry\050int port\051) 218.16 282.6 T (throws java.rmi.RemoteException;) 238.32 271.6 T (}) 198 260.6 T 1 10 Q 0.43 0.1 (The) 198 240.93 B 5 F 0.98 (createRegistry) 218.07 240.93 P 1 F 0.43 0.1 ( method cr) 302.07 240.93 B 0.43 0.1 (eates and exports a r) 351.4 240.93 B 0.43 0.1 (egistry on the local host) 445.85 240.93 B 0.26 0.1 (on the speci\336ed) 198 228.53 B 0 F 0.26 0.1 (port) 272.36 228.53 B 1 F 0.26 0.1 (. The r) 289.42 228.53 B 0.26 0.1 (egistry implements a simple \337at naming syntax that) 318.64 228.53 B 0.52 0.1 (binds the name of a r) 198 216.13 B 0.52 0.1 (emote object \050a string\051 to a r) 295.68 216.13 B 0.52 0.1 (emote object r) 424.64 216.13 B 0.52 0.1 (efer) 488.8 216.13 B 0.52 0.1 (ence. The) 505.88 216.13 B 0.52 0.1 (name and r) 198 203.73 B 0.52 0.1 (emote object bindings ar) 250.18 203.73 B 0.52 0.1 (e not r) 362.26 203.73 B 0.52 0.1 (emember) 392.1 203.73 B 0.52 0.1 (ed acr) 434.13 203.73 B 0.52 0.1 (oss server r) 461.86 203.73 B 0.52 0.1 (estarts.) 514.18 203.73 B 54 182.01 558 190 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 186.98 198 186.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 175.34 B 1 F 0.52 0.1 (Starting a r) 231.96 175.34 B 0.52 0.1 (egistry with the) 282.98 175.34 B 5 F 1.2 (createRegistry) 358.21 175.34 P 1 F 0.52 0.1 ( method does not keep) 442.21 175.34 B 54 151.62 558 159.61 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 156.58 198 156.58 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (the server pr) 198 162.94 B 0.52 0.1 (ocess alive.) 256.36 162.94 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.53/DEST FmPD2 97 712/M8.9.21427.Head1.53.The.LocateRegistry.Class FmPA 97 712/I8.1.6507 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "53" 59 %%Page: "54" 60 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 54) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (6.3) 67.47 638 T -0.94 (The RegistryHandler Interface) 97.27 638 P 54 782/G8.6564 FmPA 1 10 Q 0.52 0.1 (The interface) 198 616.33 B 5 F 1.2 (RegistryHandler) 260.47 616.33 P 1 F 0.52 0.1 ( is used to interface to the private) 350.47 616.33 B 0.1 (implementation.) 198 603.93 S 5 9 Q (package java.rmi.registry;) 198 588.2 T (public interface RegistryHandler {) 198 566.2 T (Registry registryStub\050String host, int port\051) 218.16 544.2 T (throws java.rmi.RemoteException,) 238.32 533.2 T (java.rmi.UnknownHostException;) 238.32 522.2 T (Registry registryImpl\050int port\051) 218.16 500.2 T (throws java.rmi.RemoteException;) 238.32 489.2 T (}) 198 478.2 T 1 10 Q 0.4 0.1 (The method) 198 458.53 B 5 F 0.93 (registryStub) 255.92 458.53 P 1 F 0.4 0.1 ( r) 327.92 458.53 B 0.4 0.1 (eturns a stub for contacting a r) 334.79 458.53 B 0.4 0.1 (emote r) 475.04 458.53 B 0.4 0.1 (egistry on) 509.54 458.53 B 0.52 0.1 (the speci\336ed host and port.) 198 446.13 B 0.44 0.1 (The method) 198 425.73 B 5 F 1.01 (registryImpl) 255.98 425.73 P 1 F 0.44 0.1 ( constr) 327.98 425.73 B 0.44 0.1 (ucts and exports a r) 358.71 425.73 B 0.44 0.1 (egistry on the speci\336ed) 448.99 425.73 B 0.52 0.1 (port. The port must be nonzer) 198 413.33 B 0.52 0.1 (o.) 335.94 413.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.54/DEST FmPD2 [/Dest/L.rmiregistrydoc/DEST FmPD2 97 792/M8.9.36395.Head1.52.The.RegistryHandler.Interface FmPA 97 792/I8.1.6563 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "54" 60 %%Page: "55" 61 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 55) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Stub/Skeleton Interfaces) 198 509.31 P 54 653/G9.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (7) 525.14 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.14 0.1 (This section contains the interfaces and classes used by the stubs and skeletons) 198 459.68 B 0.52 0.1 (generated by the) 198 447.28 B 5 F 1.2 (rmic) 277.79 447.28 P 1 F 0.52 0.1 ( stub compiler) 301.79 447.28 B 0.52 0.1 (.) 366.85 447.28 B 0 13 Q 0.13 (T) 198 414.88 S 0.13 (opics:) 204.63 414.88 S 4 14 Q 0.14 (\245) 198 395.88 S 1 10 Q 0.52 0.1 (The RemoteStub Class) 210.6 395.88 B 4 14 Q 0.14 (\245) 198 377.48 S 1 10 Q 0.52 0.1 (The RemoteCall Interface) 210.6 377.48 B 4 14 Q 0.14 (\245) 198 359.08 S 1 10 Q 0.52 0.1 (The RemoteRef Interface) 210.6 359.08 B 4 14 Q 0.14 (\245) 198 340.68 S 1 10 Q 0.52 0.1 (The ServerRef Interface) 210.6 340.68 B 4 14 Q 0.14 (\245) 198 322.28 S 1 10 Q 0.52 0.1 (The Skeleton Interface) 210.6 322.28 B 4 14 Q 0.14 (\245) 198 303.88 S 1 10 Q 0.52 0.1 (The Operation Class) 210.6 303.88 B 0 15 Q (7.1) 67.47 270.14 T -0.94 (The RemoteStub Class) 97.27 270.14 P 54 414/G9.4526 FmPA 1 10 Q 0.52 0.1 (The) 198 248.48 B 5 F 1.2 (java.rmi.server.RemoteStub) 218.16 248.48 P 1 F 0.52 0.1 ( class is the common super) 374.16 248.48 B 0.52 0.1 (class to all) 497.39 248.48 B 0.52 0.1 (client stubs. Stub objects ar) 198 236.08 B 0.52 0.1 (e surr) 321.81 236.08 B 0.52 0.1 (ogates that support exactly the same set of) 348.21 236.08 B 0.52 0.1 (r) 198 223.68 B 0.52 0.1 (emote interfaces de\336ned by the actual implementation of a r) 201.87 223.68 B 0.52 0.1 (emote object.) 478.04 223.68 B 5 9 Q (package java.rmi.server;) 198 207.94 T (public abstract class RemoteStub extends java.rmi.RemoteObject {}) 198 192.94 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.55/DEST FmPD2 [/Dest/F.rmistubsdoc/DEST FmPD2 97 424/M9.9.23817.Head1.52.The.RemoteStub.Class FmPA 97 424/I9.1.4569 FmPA [/Rect[211 336 318 351]/Border[0 0 0]/Page 64/View[/XYZ null 97 461 FmDC exch pop null]/LNK FmPD [/Rect[211 391 313 406]/Border[0 0 0]/Page 61/View[/XYZ null 97 424 FmDC exch pop null]/LNK FmPD [/Rect[211 372 326 387]/Border[0 0 0]/Page 62/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 354 323 369]/Border[0 0 0]/Page 63/View[/XYZ null 97 741 FmDC exch pop null]/LNK FmPD [/Rect[211 317 312 332]/Border[0 0 0]/Page 65/View[/XYZ null 97 679 FmDC exch pop null]/LNK FmPD [/Rect[211 299 304 314]/Border[0 0 0]/Page 65/View[/XYZ null 97 406 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "55" 61 %%Page: "56" 62 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 56) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (7) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (7.2) 67.47 638 T -0.94 (The RemoteCall Interface) 97.27 638 P 54 782/G9.161 FmPA 1 10 Q 0.2 0.1 (The interface) 198 616.33 B 5 F 0.46 (RemoteCall) 259.83 616.33 P 1 F 0.2 0.1 ( is an abstraction used by the stubs and skeletons of) 319.83 616.33 B 0.52 0.1 (r) 198 603.93 B 0.52 0.1 (emote objects to carry out a call to a r) 201.87 603.93 B 0.52 0.1 (emote object.) 374.36 603.93 B 5 9 Q (package java.rmi.server;) 198 588.2 T (import java.io.*;) 198 577.2 T (public interface RemoteCall {) 198 555.2 T (ObjectOutput getOutputStream\050\051 throws IOException;) 218.16 533.2 T (void releaseOutputStream\050\051 throws IOException;) 218.16 511.2 T (ObjectInput getInputStream\050\051 throws IOException;) 218.16 489.2 T (void releaseInputStream\050\051 throws IOException;) 218.16 467.2 T (ObjectOutput getResultStream\050boolean success\051) 218.16 445.2 T (throws IOException, StreamCorruptedException;) 238.32 434.2 T (void executeCall\050\051 throws Exception;) 218.16 412.2 T (void done\050\051 throws IOException;) 218.16 390.2 T (}) 198 379.2 T 1 10 Q 0.52 0.1 (The method) 198 359.53 B 5 F 1.2 (getOutputStream) 256.15 359.53 P 1 F 0.52 0.1 ( r) 346.15 359.53 B 0.52 0.1 (eturns the output str) 353.14 359.53 B 0.52 0.1 (eam into which either) 447.58 359.53 B 0.52 0.1 (the stub marshals ar) 198 347.13 B 0.52 0.1 (guments or the skeleton marshals r) 290.75 347.13 B 0.52 0.1 (esults.) 451.65 347.13 B 0.52 0.1 (The method) 198 326.73 B 5 F 1.2 (releaseOutputStream) 256.15 326.73 P 1 F 0.52 0.1 ( r) 370.15 326.73 B 0.52 0.1 (eleases the output str) 377.14 326.73 B 0.52 0.1 (eam; in some) 474.35 326.73 B 0.52 0.1 (transports this will r) 198 314.33 B 0.52 0.1 (elease the str) 291.52 314.33 B 0.52 0.1 (eam.) 350.62 314.33 B 0.52 0.1 (The method) 198 293.93 B 5 F 1.2 (getInputStream) 256.15 293.93 P 1 F 0.52 0.1 ( r) 340.15 293.93 B 0.52 0.1 (eturns the InputStr) 347.14 293.93 B 0.52 0.1 (eam fr) 433.81 293.93 B 0.52 0.1 (om which the stub) 463.15 293.93 B 0.52 0.1 (unmarshals r) 198 281.53 B 0.52 0.1 (esults or the skeleton unmarshals parameters.) 257.83 281.53 B 0.49 0.1 (The method) 198 261.13 B 5 F 1.13 (releaseInputStream) 256.09 261.13 P 1 F 0.49 0.1 ( r) 364.09 261.13 B 0.49 0.1 (eleases the input str) 371.04 261.13 B 0.49 0.1 (eam. This will allow) 462.04 261.13 B 0.52 0.1 (some transports to r) 198 248.73 B 0.52 0.1 (elease the input side of a connection early) 290.06 248.73 B 0.52 0.1 (.) 481.08 248.73 B 0.52 0.1 (The method) 198 228.33 B 5 F 1.2 (getResultStream) 256.15 228.33 P 1 F 0.52 0.1 ( r) 346.15 228.33 B 0.52 0.1 (eturns an output str) 353.14 228.33 B 0.52 0.1 (eam \050after writing out) 444.43 228.33 B 0.52 0.1 (header information r) 198 215.93 B 0.52 0.1 (elating to the success of the call\051. Obtaining a r) 293.02 215.93 B 0.52 0.1 (esult) 507.64 215.93 B 0.52 0.1 (str) 198 203.53 B 0.52 0.1 (eam should only succeed once per r) 209.57 203.53 B 0.52 0.1 (emote call. If) 373.9 203.53 B 0 F 0.52 0.1 (success) 436.05 203.53 B 1 F 0.52 0.1 ( is tr) 466.01 203.53 B 0.52 0.1 (ue, then the) 486.93 203.53 B 0.46 0.1 (r) 198 191.13 B 0.46 0.1 (esult to be marshaled is a normal r) 201.87 191.13 B 0.46 0.1 (eturn; otherwise the r) 360.89 191.13 B 0.46 0.1 (esult is an exception.) 459.52 191.13 B 5 F 0.54 (StreamCorruptedException) 198 178.73 P 1 F 0.23 0.1 ( is thr) 342 178.73 B 0.23 0.1 (own if the r) 368.17 178.73 B 0.23 0.1 (esult str) 421.08 178.73 B 0.23 0.1 (eam has alr) 457.21 178.73 B 0.23 0.1 (eady been) 509.14 178.73 B 0.52 0.1 (obtained for this r) 198 166.33 B 0.52 0.1 (emote call.) 280.58 166.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.56/DEST FmPD2 97 792/M9.9.42658.Head1.54.The.RemoteCall.Class FmPA 97 792/I9.1.5458 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "56" 62 %%Page: "57" 63 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 7:) 198 108.7 B 0 F -0.58 0.09 (Stub/Skeleton Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 57) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (7) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The method) 198 641.33 B 5 F 1.2 (executeCall) 256.15 641.33 P 1 F 0.52 0.1 ( does whatever it takes to execute the call.) 322.15 641.33 B 0.52 0.1 (The method) 198 620.93 B 5 F 1.2 (done) 256.15 620.93 P 1 F 0.52 0.1 ( allows cleanup after the r) 280.15 620.93 B 0.52 0.1 (emote call has completed.) 399.78 620.93 B 0 15 Q (7.3) 67.47 587.2 T -0.94 (The RemoteRef Interface) 97.27 587.2 P 54 731/G9.5474 FmPA 1 10 Q 0.52 0.1 (The interface) 198 565.53 B 5 F 1.2 (RemoteRef) 260.47 565.53 P 1 F 0.52 0.1 ( r) 314.47 565.53 B 0.52 0.1 (epr) 321.46 565.53 B 0.52 0.1 (esents the handle for a r) 336.33 565.53 B 0.52 0.1 (emote object. Each stub) 446.9 565.53 B 0.52 0.1 (contains an instance of RemoteRef that contains the concr) 198 553.13 B 0.52 0.1 (ete r) 461.4 553.13 B 0.52 0.1 (epr) 481.53 553.13 B 0.52 0.1 (esentation of) 496.4 553.13 B 0.52 0.1 (a r) 198 540.73 B 0.52 0.1 (efer) 210.09 540.73 B 0.52 0.1 (ence. This r) 227.17 540.73 B 0.52 0.1 (emote r) 279.62 540.73 B 0.52 0.1 (efer) 314.24 540.73 B 0.52 0.1 (ence is used to carry out r) 331.32 540.73 B 0.52 0.1 (emote calls on the) 450.44 540.73 B 0.52 0.1 (r) 198 528.33 B 0.52 0.1 (emote object for which it is a r) 201.87 528.33 B 0.52 0.1 (efer) 341.32 528.33 B 0.52 0.1 (ence.) 358.4 528.33 B 5 9 Q (package java.rmi.server;) 198 512.6 T (public interface RemoteRef extends java.io.Externalizable {) 198 490.6 T -0.06 (RemoteCall newCall\050RemoteObject obj, Operation[] op, int opnum,) 218.16 468.6 P (long hash\051 throws RemoteException;) 238.32 457.6 T (void invoke\050RemoteCall call\051 throws Exception;) 218.16 435.6 T (void done\050RemoteCall call\051 throws RemoteException;) 218.16 413.6 T (String getRefClass\050java.io.ObjectOutput out\051;) 218.16 391.6 T (int remoteHashCode\050\051;) 218.16 369.6 T (boolean remoteEquals\050RemoteRef obj\051;) 218.16 347.6 T (String remoteToString\050\051;) 218.16 325.6 T (}) 198 314.6 T 1 10 Q 0.52 0.1 (The method) 198 283.93 B 5 F 1.2 (newCall) 256.15 283.93 P 1 F 0.52 0.1 ( cr) 298.15 283.93 B 0.52 0.1 (eates an appr) 309.68 283.93 B 0.52 0.1 (opriate call object for a new r) 370.71 283.93 B 0.52 0.1 (emote) 504.85 283.93 B -0.06 0.1 (method invocation on the r) 198 271.53 B -0.06 0.1 (emote object) 320.26 271.53 B 0 F -0.06 0.1 (obj) 379.38 271.53 B 1 F -0.06 0.1 (. The operation array) 391.53 271.53 B 0 F -0.06 0.1 (op) 488.83 271.53 B 1 F -0.06 0.1 ( contains the) 498.47 271.53 B 0.52 0.1 (available operations on the r) 198 259.13 B 0.52 0.1 (emote object. The operation number) 328.5 259.13 B 0.52 0.1 (,) 493.04 259.13 B 0 F 0.52 0.1 (opnum) 498.76 259.13 B 1 F 0.52 0.1 (, is an) 527.6 259.13 B 0.49 0.1 (index into the operation array which speci\336es the particular operation for this) 198 246.73 B 0.52 0.1 (r) 198 234.33 B 0.52 0.1 (emote call. Passing the operation array and index allows the stubs generator) 201.87 234.33 B 0.52 0.1 (to assign the operation indexes and interpr) 198 221.93 B 0.52 0.1 (et them. The r) 394.7 221.93 B 0.52 0.1 (emote r) 458.92 221.93 B 0.52 0.1 (efer) 493.54 221.93 B 0.52 0.1 (ence may) 510.62 221.93 B 0.52 0.1 (need the operation description to encode in the call.) 198 209.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.57/DEST FmPD2 97 741/M9.9.14380.Head1.52.The.RemoteRef.Class FmPA 97 741/I9.1.5473 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "57" 63 %%Page: "58" 64 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 58) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (7) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The method) 198 641.33 B 5 F 1.2 (invoke) 256.15 641.33 P 1 F 0.52 0.1 ( executes the r) 292.15 641.33 B 0.52 0.1 (emote call.) 357.85 641.33 B 5 F 1.2 (invoke) 409.98 641.33 P 1 F 0.52 0.1 ( will raise any \322user\323) 445.98 641.33 B 0.52 0.1 (exceptions which should pass thr) 198 628.93 B 0.52 0.1 (ough and not be caught by the stub. If any) 350.4 628.93 B 0.52 0.1 (exception is raised during the r) 198 616.53 B 0.52 0.1 (emote invocation,) 341.11 616.53 B 5 F 1.2 (invoke) 425.31 616.53 P 1 F 0.52 0.1 ( should take car) 461.31 616.53 B 0.52 0.1 (e of) 534.36 616.53 B 0.52 0.1 (cleaning up the connection befor) 198 604.13 B 0.52 0.1 (e raising the \322user exception\323 or) 347.54 604.13 B 5 F (RemoteException) 198 591.73 T 1 F 0.1 (.) 288 591.73 S 0.52 0.1 (The method) 198 571.33 B 5 F 1.2 (done) 256.15 571.33 P 1 F 0.52 0.1 ( allows the r) 280.15 571.33 B 0.52 0.1 (emote r) 337.01 571.33 B 0.52 0.1 (efer) 371.63 571.33 B 0.52 0.1 (ence to clean up \050or r) 388.71 571.33 B 0.52 0.1 (euse\051 the) 486.08 571.33 B 0.43 0.1 (connection.) 198 558.93 B 5 F 1 (done) 252.85 558.93 P 1 F 0.43 0.1 ( should only be called if the) 276.85 558.93 B 5 F 1 (invoke) 407.29 558.93 P 1 F 0.43 0.1 ( call r) 443.29 558.93 B 0.43 0.1 (eturns successfully) 468.89 558.93 B 0.52 0.1 (\050non-exceptionally\051 to the stub.) 198 546.53 B 0.18 0.1 (The method) 198 526.13 B 5 F 0.43 (getRefClass) 255.48 526.13 P 1 F 0.18 0.1 ( r) 321.48 526.13 B 0.18 0.1 (eturns the nonpackage-quali\336ed class name of the) 328.13 526.13 B 0.52 0.1 (r) 198 513.73 B 0.52 0.1 (efer) 201.87 513.73 B 0.52 0.1 (ence type to be serialized onto the str) 218.95 513.73 B 0.52 0.1 (eam) 390.24 513.73 B 0 F 0.52 0.1 (out) 412.28 513.73 B 1 F 0.52 0.1 (.) 425.91 513.73 B 0.52 0.1 (The method) 198 493.33 B 5 F 1.2 (remoteHashCode) 256.15 493.33 P 1 F 0.52 0.1 ( r) 340.15 493.33 B 0.52 0.1 (eturns a hashcode for a r) 347.14 493.33 B 0.52 0.1 (emote object. T) 461.02 493.33 B 0.52 0.1 (wo) 529.24 493.33 B 0.52 0.1 (r) 198 480.93 B 0.52 0.1 (emote object stubs that r) 201.87 480.93 B 0.52 0.1 (efer to the same r) 313.81 480.93 B 0.52 0.1 (emote object will have the same) 393.77 480.93 B 0.52 0.1 (hash code \050in or) 198 468.53 B 0.52 0.1 (der to support r) 271.63 468.53 B 0.52 0.1 (emote objects as keys in hashtables\051. A) 344.59 468.53 B 5 F 1.2 (RemoteObject) 198 456.13 P 1 F 0.52 0.1 ( forwar) 270 456.13 B 0.52 0.1 (ds a call to its) 303.57 456.13 B 5 F 1.2 (hashCode) 370.11 456.13 P 1 F 0.52 0.1 ( method to the) 418.11 456.13 B 5 F 1.2 (remoteHashCode) 198 443.73 P 1 F 0.52 0.1 ( method of the r) 282 443.73 B 0.52 0.1 (emote r) 356.38 443.73 B 0.52 0.1 (efer) 391 443.73 B 0.52 0.1 (ence.) 408.08 443.73 B 0.52 0.1 (The method) 198 423.33 B 5 F 1.2 (remoteEquals) 256.15 423.33 P 1 F 0.52 0.1 ( compar) 328.15 423.33 B 0.52 0.1 (es two r) 365.38 423.33 B 0.52 0.1 (emote objects for equality) 402.08 423.33 B 0.52 0.1 (. T) 518.62 423.33 B 0.52 0.1 (wo) 529.67 423.33 B 0.52 0.1 (r) 198 410.93 B 0.52 0.1 (emote objects ar) 201.87 410.93 B 0.52 0.1 (e equal if they r) 275.47 410.93 B 0.52 0.1 (efer to the same r) 347.81 410.93 B 0.52 0.1 (emote object. For example,) 427.77 410.93 B 0.52 0.1 (two stubs ar) 198 398.53 B 0.52 0.1 (e equal if they r) 254.37 398.53 B 0.52 0.1 (efer to the same r) 326.71 398.53 B 0.52 0.1 (emote object. A) 406.67 398.53 B 5 F 1.2 (RemoteObject) 480.56 398.53 P 1 F 0.52 0.1 (forwar) 198 386.13 B 0.52 0.1 (ds a call to its) 228.45 386.13 B 5 F 1.2 (equals) 294.99 386.13 P 1 F 0.52 0.1 ( method to the) 330.99 386.13 B 5 F 1.2 (remoteEquals) 401.43 386.13 P 1 F 0.52 0.1 ( method of the) 473.43 386.13 B 0.52 0.1 (r) 198 373.73 B 0.52 0.1 (emote r) 201.87 373.73 B 0.52 0.1 (efer) 236.49 373.73 B 0.52 0.1 (ence.) 253.57 373.73 B 0.17 0.1 (The method) 198 353.33 B 5 F 0.4 (remoteToString) 255.46 353.33 P 1 F 0.17 0.1 ( r) 339.46 353.33 B 0.17 0.1 (eturns a String that r) 346.1 353.33 B 0.17 0.1 (epr) 439.95 353.33 B 0.17 0.1 (esents the r) 454.82 353.33 B 0.17 0.1 (efer) 506.14 353.33 B 0.17 0.1 (ence of) 523.22 353.33 B 0.52 0.1 (this r) 198 340.93 B 0.52 0.1 (emote object.) 221.62 340.93 B 0 15 Q (7.4) 67.47 307.2 T -0.94 (The ServerRef Interface) 97.27 307.2 P 54 451/G9.6689 FmPA 1 10 Q 0.34 0.1 (The interface) 198 285.53 B 5 F 0.79 (ServerRef) 260.11 285.53 P 1 F 0.34 0.1 ( r) 314.11 285.53 B 0.34 0.1 (epr) 320.92 285.53 B 0.34 0.1 (esents the server) 335.79 285.53 B 0.34 0.1 (-side handle for a r) 411.37 285.53 B 0.34 0.1 (emote object) 498.07 285.53 B 0.1 (implementation.) 198 273.13 S 5 9 Q (package java.rmi.server;) 198 257.4 T (public interface ServerRef extends RemoteRef {) 198 235.4 T (RemoteStub exportObject\050java.rmi.Remote obj, Object data\051) 218.16 213.4 T (throws java.rmi.RemoteException;) 238.32 202.4 T (String getClientHost\050\051 throws ServerNotActiveException;) 218.16 180.4 T (}) 198 169.4 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.58/DEST FmPD2 97 461/M9.9.25096.Head1.56.The.ServerRef.Class FmPA 97 461/I9.1.6688 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "58" 64 %%Page: "59" 65 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 7:) 198 108.7 B 0 F -0.58 0.09 (Stub/Skeleton Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 59) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (7) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The method) 198 641.33 B 5 F 1.2 (exportObject) 256.15 641.33 P 1 F 0.52 0.1 ( \336nds or cr) 328.15 641.33 B 0.52 0.1 (eates a client stub object for the) 378.15 641.33 B 0.52 0.1 (supplied) 198 628.93 B 5 F 1.2 (Remote) 240.93 628.93 P 1 F 0.52 0.1 ( object implementation) 276.93 628.93 B 0 F 0.52 0.1 (obj) 384.71 628.93 B 1 F 0.52 0.1 (.The parameter) 396.86 628.93 B 0 F 0.52 0.1 (data) 469.22 628.93 B 1 F 0.52 0.1 ( contains) 486.83 628.93 B 0.52 0.1 (information necessary to export the object \050such as port number\051.) 198 616.53 B 0.52 0.1 (The method) 198 596.13 B 5 F 1.2 (getClientHost) 256.15 596.13 P 1 F 0.52 0.1 ( r) 334.15 596.13 B 0.52 0.1 (eturns the host name of the curr) 341.14 596.13 B 0.52 0.1 (ent client.) 488.49 596.13 B 0.52 0.1 (When called fr) 198 583.73 B 0.52 0.1 (om a thr) 265.13 583.73 B 0.52 0.1 (ead actively handling a r) 304.11 583.73 B 0.52 0.1 (emote method invocation, the) 417.83 583.73 B 0.34 0.1 (host name of the client invoking the call is r) 198 571.33 B 0.34 0.1 (eturned. If a r) 397.95 571.33 B 0.34 0.1 (emote method call is) 460.71 571.33 B 0.52 0.1 (not curr) 198 558.93 B 0.52 0.1 (ently being service, then) 234.55 558.93 B 5 F 1.2 (ServerNotActiveException) 349.14 558.93 P 1 F 0.52 0.1 ( is called.) 493.14 558.93 B 0 15 Q (7.5) 67.47 525.2 T -0.94 (The Skeleton Interface) 97.27 525.2 P 54 669/G9.5718 FmPA 1 10 Q 0.52 0.1 (The interface) 198 503.53 B 5 F 1.2 (Skeleton) 260.47 503.53 P 1 F 0.52 0.1 ( is used solely by the implementation of skeletons) 308.47 503.53 B 0.25 0.1 (generated by the) 198 491.13 B 5 F 0.58 (rmic) 276.98 491.13 P 1 F 0.25 0.1 ( compiler) 300.98 491.13 B 0.25 0.1 (. A skeleton for a r) 343.2 491.13 B 0.25 0.1 (emote object is a server) 427.57 491.13 B 0.25 0.1 (-side) 533.27 491.13 B 0.52 0.1 (entity that dispatches calls to the actual r) 198 478.73 B 0.52 0.1 (emote object implementation.) 385.8 478.73 B 5 9 Q (package java.rmi.server;) 198 463 T (public interface Skeleton {) 198 441 T ( void dispatch\050Remote obj, RemoteCall call, int opnum, long hash\051) 198 419 T (throws Exception;) 238.32 408 T ( Operation[] getOperations\050\051;) 198 386 T (}) 198 375 T 1 10 Q 0.52 0.1 (The) 198 355.33 B 5 F 1.2 (dispatch) 218.16 355.33 P 1 F 0.52 0.1 ( method unmarshals any ar) 266.16 355.33 B 0.52 0.1 (guments fr) 392 355.33 B 0.52 0.1 (om the input str) 441.65 355.33 B 0.52 0.1 (eam) 515.77 355.33 B 0.52 0.1 (obtained fr) 198 342.93 B 0.52 0.1 (om the) 248.1 342.93 B 0 F 0.52 0.1 (call) 283 342.93 B 1 F 0.52 0.1 ( object, invokes the method \050indicated by the operation) 297.47 342.93 B 0.52 0.1 (number) 198 330.53 B 0 F 0.52 0.1 (opnum) 236.67 330.53 B 1 F 0.52 0.1 (\051 on the actual r) 265.51 330.53 B 0.52 0.1 (emote object implementation) 338.18 330.53 B 0 F 0.52 0.1 (obj) 473.59 330.53 B 1 F 0.52 0.1 (, and marshals) 485.74 330.53 B 0.52 0.1 (the r) 198 318.13 B 0.52 0.1 (eturn value or thr) 219.16 318.13 B 0.52 0.1 (ows an exception if one occurs during the invocation.) 300.51 318.13 B 0.52 0.1 (The) 198 297.73 B 5 F 1.2 (getOperations) 218.16 297.73 P 1 F 0.52 0.1 ( method r) 296.16 297.73 B 0.52 0.1 (eturns an array containing the operation) 341.14 297.73 B 0.52 0.1 (descriptors for the r) 198 285.33 B 0.52 0.1 (emote object\325s methods.) 288.9 285.33 B 0 15 Q (7.6) 67.47 251.6 T -0.94 (The Operation Class) 97.27 251.6 P 54 396/G9.6598 FmPA 1 10 Q 0.44 0.1 (The class) 198 229.93 B 5 F 1.01 (Operation) 242.45 229.93 P 1 F 0.44 0.1 ( holds a description of a Java method for a r) 296.45 229.93 B 0.44 0.1 (emote object.) 498.31 229.93 B 5 9 Q (package java.rmi.server;) 198 214.2 T (public class Operation {) 198 192.2 T (public Operation\050String op\051;) 218.16 170.2 T (public String getOperation\050\051;) 218.16 148.2 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.59/DEST FmPD2 97 406/M9.9.10363.Head1.517.The.Operation.Class FmPA 97 406/I9.1.6597 FmPA 97 679/M9.9.28703.Head1.57.The.Skeleton.Interface FmPA 97 679/I9.1.5841 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "59" 65 %%Page: "60" 66 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 60) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (7) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0 X 0 0 0 1 0 0 0 K (public String toString\050\051;) 218.16 631 T (}) 198 620 T 1 10 Q 0.52 0.1 (An) 198 600.33 B 5 F 1.2 (Operation) 214.92 600.33 P 1 F 0.52 0.1 ( object is typically constr) 268.92 600.33 B 0.52 0.1 (ucted with the method signatur) 382.32 600.33 B 0.52 0.1 (e.) 527.09 600.33 B 0.52 0.1 (The method) 198 579.93 B 5 F 1.2 (getOperation) 256.15 579.93 P 1 F 0.52 0.1 ( r) 328.15 579.93 B 0.52 0.1 (eturns the contents of the operation descriptor) 335.14 579.93 B 0.52 0.1 (\050the value with which it was initialized\051.) 198 567.53 B 0.52 0.1 (The method) 198 547.13 B 5 F 1.2 (toString) 256.15 547.13 P 1 F 0.52 0.1 ( also r) 304.15 547.13 B 0.52 0.1 (eturns the string r) 332.27 547.13 B 0.52 0.1 (epr) 414.7 547.13 B 0.52 0.1 (esentation of the operation) 429.57 547.13 B 0.52 0.1 (descriptor \050typically the method signatur) 198 534.73 B 0.52 0.1 (e\051.) 385.92 534.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.60/DEST FmPD2 [/Dest/L.rmistubsdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "60" 66 %%Page: "61" 67 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 61) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Garbage Collector Interfaces) 198 509.31 P 54 653/G10.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (8) 525.14 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.52 0.1 (The interfaces and classes in this chapter ar) 198 459.68 B 0.52 0.1 (e used by the distributed garbage) 396.7 459.68 B 0.52 0.1 (collector \050DGC\051for RMI.) 198 447.28 B 0 13 Q 0.13 (T) 198 414.88 S 0.13 (opics:) 204.63 414.88 S 4 14 Q 0.14 (\245) 198 395.88 S 1 10 Q 0.52 0.1 (The Interface DGC) 210.6 395.88 B 4 14 Q 0.14 (\245) 198 377.48 S 1 10 Q 0.52 0.1 (The Lease Class) 210.6 377.48 B 4 14 Q 0.14 (\245) 198 359.08 S 1 10 Q 0.52 0.1 (The ObjID Class) 210.6 359.08 B 4 14 Q 0.14 (\245) 198 340.68 S 1 10 Q 0.52 0.1 (The UID Class) 210.6 340.68 B 4 14 Q 0.14 (\245) 198 322.28 S 1 10 Q 0.52 0.1 (The VMID Class) 210.6 322.28 B 0 15 Q (8.1) 67.47 288.54 T -0.94 (The Interface DGC) 97.27 288.54 P 54 433/G10.6449 FmPA 1 10 Q 0.52 0.1 (The DGC abstraction is used for the server side of the distributed garbage) 198 266.88 B 0.52 0.1 (collection algorithm. This interface contains the two methods:) 198 254.48 B 5 F 1.2 (dirty) 483.34 254.48 P 1 F 0.52 0.1 ( and) 513.34 254.48 B 5 F 1.2 (clean) 198 242.08 P 1 F 0.52 0.1 (. A) 228 242.08 B 5 F 1.2 (dirty) 244.72 242.08 P 1 F 0.52 0.1 ( call is made when a r) 274.72 242.08 B 0.52 0.1 (emote r) 375.72 242.08 B 0.52 0.1 (efer) 410.34 242.08 B 0.52 0.1 (ence is unmarshaled in a) 427.42 242.08 B 0.52 0.1 (client \050the client is indicated by its) 198 229.68 B 5 F 1.2 (VMID) 358.5 229.68 P 1 F 0.52 0.1 (\051. A corr) 382.5 229.68 B 0.52 0.1 (esponding clean call is made) 420.67 229.68 B 0.52 0.1 (when no mor) 198 217.28 B 0.52 0.1 (e r) 259.25 217.28 B 0.52 0.1 (efer) 271.13 217.28 B 0.52 0.1 (ences to the r) 288.21 217.28 B 0.52 0.1 (emote r) 349.11 217.28 B 0.52 0.1 (efer) 383.73 217.28 B 0.52 0.1 (ence exist in the client. A failed) 400.81 217.28 B 0.52 0.1 (dirty call must schedule a) 198 204.88 B 0 F 0.52 0.1 (str) 319.34 204.88 B 0.52 0.1 (ong) 330.57 204.88 B 1 F 0.52 0.1 ( clean call so that the call\325s sequence number) 345.87 204.88 B 0.52 0.1 (can be r) 198 192.48 B 0.52 0.1 (etained in or) 234.19 192.48 B 0.52 0.1 (der to detect futur) 292.17 192.48 B 0.52 0.1 (e calls r) 375.77 192.48 B 0.52 0.1 (eceived out of or) 410.77 192.48 B 0.52 0.1 (der by the) 487.78 192.48 B 0.52 0.1 (distributed garbage collector) 198 180.08 B 0.52 0.1 (.) 328.31 180.08 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.61/DEST FmPD2 [/Dest/F.rmidgcdoc/DEST FmPD2 97 443/M10.9.12486.Head1.51.The.Interface.DGC FmPA 97 443/I10.1.6607 FmPA [/Rect[211 391 296 406]/Border[0 0 0]/Page 67/View[/XYZ null 97 443 FmDC exch pop null]/LNK FmPD [/Rect[211 372 283 387]/Border[0 0 0]/Page 69/View[/XYZ null 97 642 FmDC exch pop null]/LNK FmPD [/Rect[211 354 285 369]/Border[0 0 0]/Page 69/View[/XYZ null 97 387 FmDC exch pop null]/LNK FmPD [/Rect[211 336 277 351]/Border[0 0 0]/Page 71/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 317 286 332]/Border[0 0 0]/Page 72/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "61" 67 %%Page: "62" 68 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 62) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (8) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.02 0.1 (A r) 198 641.33 B 0.02 0.1 (efer) 212.37 641.33 B 0.02 0.1 (ence to a r) 229.45 641.33 B 0.02 0.1 (emote object is) 275.43 641.33 B 0 F 0.02 0.1 (leased) 344.69 641.33 B 1 F 0.02 0.1 ( for a period of time by the client holding) 369.18 641.33 B 0.52 0.1 (the r) 198 628.93 B 0.52 0.1 (efer) 219.16 628.93 B 0.52 0.1 (ence. The lease period starts when the dirty call is r) 236.24 628.93 B 0.52 0.1 (eceived. It is the) 472.44 628.93 B 0.52 0.1 (client\325s r) 198 616.53 B 0.52 0.1 (esponsibility to r) 236.94 616.53 B 0.52 0.1 (enew the leases, by making additional) 313.82 616.53 B 5 F 1.2 (dirty) 492.08 616.53 P 1 F 0.52 0.1 ( calls,) 522.08 616.53 B 0.52 0.1 (on the r) 198 604.13 B 0.52 0.1 (emote r) 233.76 604.13 B 0.52 0.1 (efer) 268.38 604.13 B 0.52 0.1 (ences it holds befor) 285.46 604.13 B 0.52 0.1 (e such leases expir) 374.19 604.13 B 0.52 0.1 (e. If the client does) 459.08 604.13 B 0.24 0.1 (not r) 198 591.73 B 0.24 0.1 (enew the lease befor) 219.55 591.73 B 0.24 0.1 (e it expir) 311.99 591.73 B 0.24 0.1 (es, the distributed garbage collector assumes) 352.08 591.73 B 0.52 0.1 (that the r) 198 579.33 B 0.52 0.1 (emote object is no longer r) 240.02 579.33 B 0.52 0.1 (efer) 361.46 579.33 B 0.52 0.1 (enced by that client.) 378.54 579.33 B 5 9 Q (package java.rmi.dgc;) 198 563.6 T (import java.rmi.server.ObjID;) 198 552.6 T (public interface DGC extends java.rmi.Remote {) 198 530.6 T (Lease dirty\050ObjID[] ids, long sequenceNum, Lease lease\051) 218.16 508.6 T (throws java.rmi.RemoteException;) 238.32 497.6 T -0.05 (void clean\050ObjID[] ids, long seqNum, VMID vmid, boolean strong\051) 218.16 475.6 P (throws java.rmi.RemoteException;) 238.32 464.6 T (}) 198 453.6 T 1 10 Q 0.52 0.1 (The method) 198 433.93 B 5 F 1.2 (dirty) 256.15 433.93 P 1 F 0.52 0.1 ( r) 286.15 433.93 B 0.52 0.1 (equests leases for the r) 293.14 433.93 B 0.52 0.1 (emote object r) 396.92 433.93 B 0.52 0.1 (efer) 461.08 433.93 B 0.52 0.1 (ences associated) 478.16 433.93 B 0.52 0.1 (with the object identi\336ers contained in the array ar) 198 421.53 B 0.52 0.1 (gument) 430.65 421.53 B 0 F 0.52 0.1 (ids) 468.66 421.53 B 1 F 0.52 0.1 (. The) 480.63 421.53 B 0 F 0.52 0.1 (lease) 506.51 421.53 B 1 F 0.52 0.1 (contains a client\325s unique virtual machine identi\336er \050VMID\051 and a r) 198 409.13 B 0.52 0.1 (equested) 507.24 409.13 B 0.52 0.1 (lease period. For each r) 198 396.73 B 0.52 0.1 (emote object exported in the local virtual machine, the) 304.73 396.73 B 0.52 0.1 (garbage collector maintains a) 198 384.33 B 0 F 0.52 0.1 (r) 334.88 384.33 B 0.52 0.1 (efer) 338.69 384.33 B 0.52 0.1 (ence list) 353.36 384.33 B 2 14 Q 0.7 (\321) 390.59 384.33 P 1 10 Q 0.52 0.1 (a list of clients that hold) 408.79 384.33 B 0.52 0.1 (r) 198 371.93 B 0.52 0.1 (efer) 201.87 371.93 B 0.52 0.1 (ences to it. If the lease is granted, the garbage collector adds the client\325s) 218.95 371.93 B 0.52 0.1 (VMID to the r) 198 359.53 B 0.52 0.1 (efer) 262.51 359.53 B 0.52 0.1 (ence list for each r) 279.59 359.53 B 0.52 0.1 (emote object indicated in) 363.39 359.53 B 0 F 0.52 0.1 (ids) 481.1 359.53 B 1 F 0.52 0.1 (. The) 493.07 359.53 B 0 F -0.04 0.1 (sequenceNum) 198 347.13 B 1 F -0.04 0.1 ( parameter is a sequence number that is used to detect and discar) 255.6 347.13 B -0.04 0.1 (d) 549.23 347.13 B -0.03 0.1 (late calls to the garbage collector) 198 334.73 B -0.03 0.1 (. The sequence number should always incr) 344.16 334.73 B -0.03 0.1 (ease) 536.21 334.73 B 0.52 0.1 (for each subsequent call to the garbage collector) 198 322.33 B 0.52 0.1 (.) 417.28 322.33 B 0.29 0.1 (Some clients ar) 198 301.93 B 0.29 0.1 (e unable to generate a unique VMID. This is because a VMID is) 266.54 301.93 B 0.52 0.1 (a universally unique identi\336er only if it contains a) 198 289.53 B 0 F 0.52 0.1 (true) 431.13 289.53 B 1 F 0.52 0.1 ( host addr) 448.2 289.53 B 0.52 0.1 (ess, an) 495.01 289.53 B 0.32 0.1 (addr) 198 277.13 B 0.32 0.1 (ess which some clients ar) 219.39 277.13 B 0.32 0.1 (e unable to obtain due to security r) 334.24 277.13 B 0.32 0.1 (estrictions. In) 493.78 277.13 B 0.52 0.1 (this case, a client can use a VMID of) 198 264.73 B 5 F 1.2 (null) 367.21 264.73 P 1 F 0.52 0.1 (, and the distributed garbage) 391.21 264.73 B 0.52 0.1 (collector will assign a VMID for the client.) 198 252.33 B 0.52 0.1 (The) 198 231.93 B 5 F 1.2 (dirty) 218.16 231.93 P 1 F 0.52 0.1 ( call r) 248.16 231.93 B 0.52 0.1 (eturns a) 273.93 231.93 B 5 F 1.2 (Lease) 313.96 231.93 P 1 F 0.52 0.1 ( object that contains the VMID used and the) 343.96 231.93 B 0.49 0.1 (lease period granted for the r) 198 219.53 B 0.49 0.1 (emote r) 331.76 219.53 B 0.49 0.1 (efer) 366.35 219.53 B 0.49 0.1 (ences. \050A server can decide to grant a) 383.43 219.53 B 0.52 0.1 (smaller lease period than the client r) 198 207.13 B 0.52 0.1 (equests.\051 A client must use the VMID the) 365.18 207.13 B 0.52 0.1 (garbage collector uses in or) 198 194.73 B 0.52 0.1 (der to make corr) 323.15 194.73 B 0.52 0.1 (esponding) 399.18 194.73 B 5 F 1.2 (clean) 449.92 194.73 P 1 F 0.52 0.1 ( calls when the) 479.92 194.73 B 0.52 0.1 (client dr) 198 182.33 B 0.52 0.1 (ops r) 235.93 182.33 B 0.52 0.1 (emote object r) 258.93 182.33 B 0.52 0.1 (efer) 323.09 182.33 B 0.52 0.1 (ences.) 340.17 182.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.62/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "62" 68 %%Page: "63" 69 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 8:) 198 108.7 B 0 F -0.58 0.09 (Garbage Collector Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 63) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (8) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.16 0.1 (A client virtual machine need only make one initial) 198 641.33 B 5 F 0.36 (dirty) 433.57 641.33 P 1 F 0.16 0.1 ( call for each r) 463.57 641.33 B 0.16 0.1 (emote) 527.61 641.33 B -0.01 0.1 (r) 198 628.93 B -0.01 0.1 (efer) 201.87 628.93 B -0.01 0.1 (ence r) 218.95 628.93 B -0.01 0.1 (efer) 245.65 628.93 B -0.01 0.1 (enced in the virtual machine \050even if it has multiple r) 262.73 628.93 B -0.01 0.1 (efer) 502.24 628.93 B -0.01 0.1 (ences to) 519.32 628.93 B 0.52 0.1 (the same r) 198 616.53 B 0.52 0.1 (emote object\051. The client must also make a) 245.54 616.53 B 5 F 1.2 (dirty) 442.8 616.53 P 1 F 0.52 0.1 ( call to r) 472.8 616.53 B 0.52 0.1 (enew) 510.61 616.53 B 0.52 0.1 (leases on r) 198 604.13 B 0.52 0.1 (emote r) 246.16 604.13 B 0.52 0.1 (efer) 280.78 604.13 B 0.52 0.1 (ences befor) 297.86 604.13 B 0.52 0.1 (e such leases expir) 348.94 604.13 B 0.52 0.1 (e. When the client no) 433.83 604.13 B 0.33 0.1 (longer has any r) 198 591.73 B 0.33 0.1 (efer) 271.78 591.73 B 0.33 0.1 (ences to a speci\336c r) 288.86 591.73 B 0.33 0.1 (emote object, it must schedule a) 376.61 591.73 B 5 F 0.75 (clean) 524.97 591.73 P 1 F 0.52 0.1 (call for the object ID associated with the r) 198 579.33 B 0.52 0.1 (efer) 388.78 579.33 B 0.52 0.1 (ence.) 405.86 579.33 B 0.52 0.1 (The) 198 558.93 B 5 F 1.2 (clean) 218.16 558.93 P 1 F 0.52 0.1 ( call r) 248.16 558.93 B 0.52 0.1 (emoves the) 273.93 558.93 B 0 F 0.52 0.1 (vmid) 328.7 558.93 B 1 F 0.52 0.1 ( fr) 349.66 558.93 B 0.52 0.1 (om the r) 360.08 558.93 B 0.52 0.1 (efer) 398.85 558.93 B 0.52 0.1 (ence list of each r) 415.93 558.93 B 0.52 0.1 (emote object) 495.68 558.93 B 0.52 0.1 (indicated in) 198 546.53 B 0 F 0.52 0.1 (ids) 255.42 546.53 B 1 F 0.52 0.1 (. The sequence number is used to detect late clean calls. If the) 267.39 546.53 B 0.03 0.1 (ar) 198 534.13 B 0.03 0.1 (gument) 206.97 534.13 B 0 F 0.03 0.1 (str) 244.49 534.13 B 0.03 0.1 (ong) 255.72 534.13 B 1 F 0.03 0.1 ( is tr) 271.02 534.13 B 0.03 0.1 (ue, then the clean call is a r) 290.95 534.13 B 0.03 0.1 (esult of a failed) 412.65 534.13 B 5 F 0.06 (dirty) 484.63 534.13 P 1 F 0.03 0.1 ( call, and) 514.63 534.13 B 0.52 0.1 (the sequence number for the client) 198 521.73 B 0 F 0.52 0.1 (vmid) 359.68 521.73 B 1 F 0.52 0.1 ( ther) 380.64 521.73 B 0.52 0.1 (efor) 401.8 521.73 B 0.52 0.1 (e needs to be r) 419.55 521.73 B 0.52 0.1 (emember) 486.48 521.73 B 0.52 0.1 (ed.) 528.51 521.73 B 0 15 Q (8.2) 67.47 488 T -0.94 (The Lease Class) 97.27 488 P 54 632/G10.6770 FmPA 1 10 Q 0.52 0.1 (A lease contains a unique virtual machine identi\336er and a lease duration. A) 198 466.33 B 5 F 1.2 (Lease) 198 453.93 P 1 F 0.52 0.1 ( object is used to r) 228 453.93 B 0.52 0.1 (equest and grant leases to r) 311.73 453.93 B 0.52 0.1 (emote object r) 437.32 453.93 B 0.52 0.1 (efer) 501.48 453.93 B 0.52 0.1 (ences.) 518.56 453.93 B 5 9 Q (package java.rmi.dgc;) 198 438.2 T (public final class Lease implements java.io.Serializable {) 198 416.2 T (public Lease\050VMID id, long duration\051;) 218.16 394.2 T (public VMID getVMID\050\051;) 218.16 372.2 T (public long getValue\050\051;) 218.16 350.2 T (}) 198 339.2 T 1 10 Q 0.03 0.1 (The) 198 319.53 B 5 F 0.07 (Lease) 217.67 319.53 P 1 F 0.03 0.1 ( constr) 247.67 319.53 B 0.03 0.1 (uctor cr) 277.99 319.53 B 0.03 0.1 (eates a lease with a speci\336c VMID and lease duration.) 312.67 319.53 B 0.52 0.1 (The VMID may be) 198 307.13 B 5 F 1.2 (null) 285.92 307.13 P 1 F 0.52 0.1 (.) 309.92 307.13 B 0.52 0.1 (The) 198 286.73 B 5 F 1.2 (getVMID) 218.16 286.73 P 1 F 0.52 0.1 ( method r) 260.16 286.73 B 0.52 0.1 (eturns the client VMID associated with the lease.) 305.14 286.73 B 0.52 0.1 (The) 198 266.33 B 5 F 1.2 (getValue) 218.16 266.33 P 1 F 0.52 0.1 ( method r) 266.16 266.33 B 0.52 0.1 (eturns the lease duration.) 311.14 266.33 B 0 15 Q (8.3) 67.47 232.6 T -0.94 (The ObjID Class) 97.27 232.6 P 54 377/G10.7144 FmPA 1 10 Q 0.52 0.1 (The class) 198 210.93 B 5 F 1.2 (ObjID) 242.61 210.93 P 1 F 0.52 0.1 ( is used to identify r) 272.61 210.93 B 0.52 0.1 (emote objects uniquely in a virtual) 365.41 210.93 B 0.52 0.1 (machine over time. Each identi\336er contains an object number and an addr) 198 198.53 B 0.52 0.1 (ess) 537.3 198.53 B 0.52 0.1 (space identi\336er that is unique with r) 198 186.13 B 0.52 0.1 (espect to a speci\336c host. An object) 364.66 186.13 B 0.52 0.1 (identi\336er is assigned to a r) 198 173.73 B 0.52 0.1 (emote object when it is exported.) 319.8 173.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.63/DEST FmPD2 97 642/M10.9.18983.Head1.62.The.Lease.Class FmPA 97 642/I10.1.7024 FmPA 97 387/M10.9.28332.Head1.63.The.ObjID.Class FmPA 97 387/I10.1.7143 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "63" 69 %%Page: "64" 70 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 64) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (8) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.06 0.1 (An) 198 641.33 B 5 F 0.14 (ObjID) 214.46 641.33 P 1 F 0.06 0.1 ( consists of an object number \050a) 244.46 641.33 B 5 F 0.14 (long) 389.02 641.33 P 1 F 0.06 0.1 (\051 and a unique identi\336er for the) 413.02 641.33 B 0.52 0.1 (addr) 198 628.93 B 0.52 0.1 (ess space \050a) 219.39 628.93 B 5 F 1.2 (UID) 275.83 628.93 P 1 F 0.52 0.1 (\051.) 293.83 628.93 B 5 9 Q (package java.rmi.server;) 198 613.2 T (public final class ObjID implements java.io.Serializable {) 198 591.2 T (public ObjID \050\051;) 218.16 569.2 T (public ObjID \050int num\051;) 218.16 547.2 T -0.07 (public void write\050ObjectOutput out\051 throws java.io.IOException;) 218.16 525.2 P (public static ObjID read\050ObjectInput in\051) 218.16 503.2 T (throws java.io.IOException;) 238.32 492.2 T (public int hashCode\050\051) 218.16 470.2 T (public boolean equals\050Object obj\051) 218.16 448.2 T (public String toString\050\051) 218.16 426.2 T (}) 198 415.2 T 1 10 Q 0.52 0.1 (The \336rst form of the) 198 395.53 B 5 F 1.2 (ObjID) 293.67 395.53 P 1 F 0.52 0.1 ( constr) 323.67 395.53 B 0.52 0.1 (uctor generates a unique object identi\336er) 354.48 395.53 B 0.52 0.1 (.) 540.87 395.53 B 0.52 0.1 (The second constr) 198 383.13 B 0.52 0.1 (uctor generates) 280.43 383.13 B 0 F 0.52 0.1 (well-known) 353.41 383.13 B 1 F 0.52 0.1 ( object identi\336ers \050such as those) 401.63 383.13 B 0.52 0.1 (used by the r) 198 370.73 B 0.52 0.1 (egistry and the distributed garbage collector\051 and takes as an) 258.26 370.73 B 0.51 0.1 (ar) 198 358.33 B 0.51 0.1 (gument a well-known object number) 206.97 358.33 B 0.51 0.1 (. A well-known object ID generated via) 374.91 358.33 B 0.52 0.1 (this second constr) 198 345.93 B 0.52 0.1 (uctor will not clash with any object IDs generated via the) 280.02 345.93 B 0.09 0.1 (default constr) 198 333.53 B 0.09 0.1 (uctor; to enfor) 260.51 333.53 B 0.09 0.1 (ce this, the object number of the) 324.72 333.53 B 5 F 0.21 (ObjID) 471.52 333.53 P 1 F 0.09 0.1 ( is set to the) 501.52 333.53 B 0.42 0.1 (\322well-known\323 number supplied in the constr) 198 321.13 B 0.42 0.1 (uctor and all) 403.75 321.13 B 5 F 0.98 (UID) 464.81 321.13 P 1 F 0.42 0.1 ( \336elds ar) 482.81 321.13 B 0.42 0.1 (e set to) 522.43 321.13 B 0.1 (zer) 198 308.73 S 0.1 (o.) 211.86 308.73 S 0.52 0.1 (The method) 198 288.33 B 5 F 1.2 (write) 256.15 288.33 P 1 F 0.52 0.1 ( marshals the object ID\325s r) 286.15 288.33 B 0.52 0.1 (epr) 405.53 288.33 B 0.52 0.1 (esentation to an output) 420.4 288.33 B 0.52 0.1 (str) 198 275.93 B 0.52 0.1 (eam.) 209.57 275.93 B 0.52 0.1 (The method) 198 255.53 B 5 F 1.2 (read) 256.15 255.53 P 1 F 0.52 0.1 ( constr) 280.15 255.53 B 0.52 0.1 (ucts an object ID whose contents is r) 310.96 255.53 B 0.52 0.1 (ead fr) 478.18 255.53 B 0.52 0.1 (om the) 504.8 255.53 B 0.52 0.1 (speci\336ed input str) 198 243.13 B 0.52 0.1 (eam.) 280.48 243.13 B 0.52 0.1 (The method) 198 222.73 B 5 F 1.2 (hashCode) 256.15 222.73 P 1 F 0.52 0.1 ( r) 304.15 222.73 B 0.52 0.1 (eturns the object number as the hashcode) 311.14 222.73 B 0.52 0.1 (The) 198 202.33 B 5 F 1.2 (equals) 218.16 202.33 P 1 F 0.52 0.1 ( method r) 254.16 202.33 B 0.52 0.1 (eturns tr) 299.14 202.33 B 0.52 0.1 (ue if) 338.28 202.33 B 0 F 0.52 0.1 (obj) 361.98 202.33 B 1 F 0.52 0.1 ( is an) 374.13 202.33 B 5 F 1.2 (ObjID) 401.86 202.33 P 1 F 0.52 0.1 ( with the same contents.) 431.86 202.33 B -0.01 0.1 (The) 198 181.93 B 5 F -0.02 (toString) 217.63 181.93 P 1 F -0.01 0.1 ( method r) 265.63 181.93 B -0.01 0.1 (eturns a string containing the object ID r) 309.55 181.93 B -0.01 0.1 (epr) 491.59 181.93 B -0.01 0.1 (esentation.) 506.46 181.93 B 0.39 0.1 (The addr) 198 169.53 B 0.39 0.1 (ess space identi\336er is included in the string r) 239.42 169.53 B 0.39 0.1 (epr) 443.96 169.53 B 0.39 0.1 (esentation only if the) 458.83 169.53 B 0.52 0.1 (object ID is fr) 198 157.13 B 0.52 0.1 (om a non-local addr) 259.74 157.13 B 0.52 0.1 (ess space.) 352.13 157.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.64/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "64" 70 %%Page: "65" 71 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter 8:) 198 108.7 B 0 F -0.58 0.09 (Garbage Collector Interfaces) 243.15 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 65) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (8) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (8.4) 67.47 638 T -0.94 (The UID Class) 97.27 638 P 54 782/G10.6758 FmPA 1 10 Q 0.52 0.1 (The class) 198 616.33 B 5 F 1.2 (UID) 242.61 616.33 P 1 F 0.52 0.1 ( is an abstraction for cr) 260.61 616.33 B 0.52 0.1 (eating identi\336ers that ar) 366 616.33 B 0.52 0.1 (e unique with) 475.84 616.33 B 0.22 0.1 (r) 198 603.93 B 0.22 0.1 (espect to the host on which it is generated. A) 201.87 603.93 B 5 F 0.52 (UID) 408.98 603.93 P 1 F 0.22 0.1 ( is contained in an) 426.98 603.93 B 5 F 0.52 (ObjID) 512.91 603.93 P 1 F 0.22 0.1 ( as) 542.91 603.93 B 0.52 0.1 (an addr) 198 591.53 B 0.52 0.1 (ess space identi\336er) 233.53 591.53 B 0.52 0.1 (. A UID consists of a number that is unique on the) 319.07 591.53 B 0.52 0.1 (host \050an) 198 579.13 B 5 F 1.2 (int) 237.87 579.13 P 1 F 0.52 0.1 (\051, a time \050a) 255.87 579.13 B 5 F 1.2 (long) 308.2 579.13 P 1 F 0.52 0.1 (\051, and a count \050a) 332.2 579.13 B 5 F 1.2 (short) 410.2 579.13 P 1 F 0.52 0.1 (\051.) 440.2 579.13 B 5 9 Q (package java.rmi.server;) 198 563.4 T (public final class UID implements java.io.Serializable {) 198 541.4 T ( public UID\050\051;) 198 519.4 T ( public UID\050short num\051;) 198 497.4 T ( public int hashCode\050\051;) 198 475.4 T ( public boolean equals\050Object obj\051;) 198 453.4 T ( public String toString\050\051;) 198 431.4 T ( public void write\050DataOutput out\051 throws java.io.IOException;) 198 409.4 T ( public static UID read\050DataInput in\051 throws java.io.IOException;) 198 387.4 T (}) 198 376.4 T 1 10 Q 0.52 0.1 (The \336rst form of the constr) 198 356.73 B 0.52 0.1 (uctor cr) 321.36 356.73 B 0.52 0.1 (eates a pur) 356.53 356.73 B 0.52 0.1 (e identi\336er that is unique with) 406.56 356.73 B 0.52 0.1 (r) 198 344.33 B 0.52 0.1 (espect to the host on which it is generated. This) 201.87 344.33 B 5 F 1.2 (UID) 423.57 344.33 P 1 F 0.52 0.1 ( is unique under the) 441.57 344.33 B -0.06 0.1 (following conditions: a\051 the machine takes mor) 198 331.93 B -0.06 0.1 (e than one second to r) 409.58 331.93 B -0.06 0.1 (eboot, and) 508.09 331.93 B 0.1 0.1 (b\051 the machine's clock is never set backwar) 198 319.53 B 0.1 0.1 (d. In or) 392.07 319.53 B 0.1 0.1 (der to constr) 425.1 319.53 B 0.1 0.1 (uct a) 482.27 319.53 B 5 F 0.24 (UID) 506.8 319.53 P 1 F 0.1 0.1 ( that is) 524.8 319.53 B 0.52 0.1 (globally unique, simply pair a) 198 307.13 B 5 F 1.2 (UID) 339.05 307.13 P 1 F 0.52 0.1 ( with an) 357.05 307.13 B 5 F 1.2 (InetAddress) 398.16 307.13 P 1 F 0.52 0.1 (.) 464.16 307.13 B 0.52 0.1 (The second form of the constr) 198 286.73 B 0.52 0.1 (uctor cr) 334.92 286.73 B 0.52 0.1 (eates a) 370.09 286.73 B 0 F 0.52 0.1 (well-known) 404.01 286.73 B 5 F 1.2 (UID) 455.35 286.73 P 1 F 0.52 0.1 (. Ther) 473.35 286.73 B 0.52 0.1 (e ar) 499.98 286.73 B 0.52 0.1 (e 2) 516.96 286.73 B 1 6.4 Q 0.33 0.06 (16 -1) 530.07 289.93 B 1 10 Q 0.52 0.1 (such possible well-known IDs. An ID generated via this constr) 198 274.33 B 0.52 0.1 (uctor will not) 484.69 274.33 B 0.31 0.1 (clash with any ID generated via the default) 198 261.93 B 5 F 0.73 (UID) 398.07 261.93 P 1 F 0.31 0.1 ( constr) 416.07 261.93 B 0.31 0.1 (uctor which generates a) 446.67 261.93 B 0.52 0.1 (genuinely unique identi\336er with r) 198 249.53 B 0.52 0.1 (espect to this host.) 353.44 249.53 B 0.52 0.1 (The methods) 198 229.13 B 5 F 1.2 (hashCode) 260.49 229.13 P 1 F 0.52 0.1 (,) 308.49 229.13 B 5 F 1.2 (equals) 314.21 229.13 P 1 F 0.52 0.1 (, and) 350.21 229.13 B 5 F 1.2 (toString) 376.28 229.13 P 1 F 0.52 0.1 ( ar) 424.28 229.13 B 0.52 0.1 (e de\336ned for UIDs. T) 436.37 229.13 B 0.52 0.1 (wo) 532.51 229.13 B 0.52 0.1 (UIDs ar) 198 216.73 B 0.52 0.1 (e consider) 233.62 216.73 B 0.52 0.1 (ed equal if they have the same contents.) 279.97 216.73 B 0.52 0.1 (The method) 198 196.33 B 5 F 1.2 (write) 256.15 196.33 P 1 F 0.52 0.1 ( writes the UID to the output str) 286.15 196.33 B 0.52 0.1 (eam.) 434.75 196.33 B 0.52 0.1 (The method) 198 175.93 B 5 F 1.2 (read) 256.15 175.93 P 1 F 0.52 0.1 ( constr) 280.15 175.93 B 0.52 0.1 (ucts a UID whose contents is r) 310.96 175.93 B 0.52 0.1 (ead fr) 450.6 175.93 B 0.52 0.1 (om the speci\336ed) 477.22 175.93 B 0.52 0.1 (input str) 198 163.53 B 0.52 0.1 (eam.) 237.22 163.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.65/DEST FmPD2 97 792/M10.9.31641.Head1.518.The.UID.Class FmPA 97 792/I10.1.6757 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "65" 71 %%Page: "66" 72 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 66) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (8) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (8.5) 67.47 638 T -0.94 (The VMID Class) 97.27 638 P 54 782/G10.6613 FmPA 1 10 Q 0.44 0.1 (The class) 198 616.33 B 5 F 1.01 (VMID) 242.45 616.33 P 1 F 0.44 0.1 ( pr) 266.45 616.33 B 0.44 0.1 (ovides a universally unique identi\336er among all Java virtual) 279.47 616.33 B 0.52 0.1 (machines. A) 198 603.93 B 5 F 1.2 (VMID) 257.37 603.93 P 1 F 0.52 0.1 ( contains a) 281.37 603.93 B 5 F 1.2 (UID) 333.58 603.93 P 1 F 0.52 0.1 ( and a host addr) 351.58 603.93 B 0.52 0.1 (ess. A) 426.96 603.93 B 5 F 1.2 (VMID) 457.25 603.93 P 1 F 0.52 0.1 ( can be used to) 481.25 603.93 B 0.52 0.1 (identify client virtual machines.) 198 591.53 B 5 9 Q (package java.rmi.dgc;) 198 575.8 T (public final class VMID implements java.io.Serializable {) 198 553.8 T (public VMID\050\051;) 218.16 531.8 T (public static boolean isUnique\050\051;) 218.16 509.8 T (public int hashCode\050\051;) 218.16 487.8 T (public boolean equals\050Object obj\051;) 218.16 465.8 T (public String toString\050\051;) 218.16 443.8 T (}) 198 432.8 T 1 10 Q 0.52 0.1 (The) 198 413.13 B 5 F 1.2 (VMID) 218.16 413.13 P 1 F 0.52 0.1 ( default constr) 242.16 413.13 B 0.52 0.1 (uctor cr) 308.22 413.13 B 0.52 0.1 (eates a globally unique identi\336er among all) 343.39 413.13 B 0.52 0.1 (Java virtual machines under the following conditions:) 198 400.73 B 4 14 Q 0.14 (\245) 198 382.33 S 1 10 Q 0.52 0.1 (the conditions for uniqueness for objects of the class) 210.6 382.33 B 5 F 1.2 (java.rmi.server.UID) 210.6 369.93 P 1 F 0.52 0.1 ( ar) 324.6 369.93 B 0.52 0.1 (e satis\336ed, and) 336.69 369.93 B 4 14 Q 0.14 (\245) 198 351.53 S 1 10 Q 0.52 0.1 ( an addr) 210.6 351.53 B 0.52 0.1 (ess can be obtained for the host that is unique and constant for the) 249.24 351.53 B 0.52 0.1 (lifetime of the) 210.6 339.13 B 5 F 1.2 (UID) 277.65 339.13 P 1 F 0.52 0.1 ( object.) 295.65 339.13 B 0.25 0.1 (A) 198 318.73 B 5 F 0.57 (VMID) 208.73 318.73 P 1 F 0.25 0.1 ( contains the host addr) 232.73 318.73 B 0.25 0.1 (ess of the machine on which it was cr) 336.61 318.73 B 0.25 0.1 (eated. Due) 506.39 318.73 B 0.52 0.1 (to security r) 198 306.33 B 0.52 0.1 (estrictions, obtaining the tr) 253.01 306.33 B 0.52 0.1 (ue host addr) 376.02 306.33 B 0.52 0.1 (ess is not always possible) 433.85 306.33 B 0.52 0.1 (\050for example, the loopback host may be used under security-r) 198 293.93 B 0.52 0.1 (estricted) 480.12 293.93 B 0.52 0.1 (conditions\051. The method) 198 281.53 B 5 F 1.2 (isUnique) 312.73 281.53 P 1 F 0.52 0.1 ( can be called to determine if) 360.73 281.53 B 5 F 1.2 (VMIDs) 496.92 281.53 P 1 F 0.52 0.1 (generated in this virtual machine ar) 198 269.13 B 0.52 0.1 (e, in fact, unique among all virtual) 361.82 269.13 B 0.52 0.1 (machines. The method) 198 256.73 B 5 F 1.2 (isUnique) 304.52 256.73 P 1 F 0.52 0.1 ( r) 352.52 256.73 B 0.52 0.1 (eturns tr) 359.51 256.73 B 0.52 0.1 (ue if a valid host name can be) 398.65 256.73 B 0.52 0.1 (determined \050other than loopback host\051; otherwise it r) 198 244.33 B 0.52 0.1 (eturns false.) 440.79 244.33 B 0.52 0.1 (The) 198 223.93 B 5 F 1.2 (hashCode) 218.16 223.93 P 1 F 0.52 0.1 (,) 266.16 223.93 B 5 F 1.2 (equals) 271.88 223.93 P 1 F 0.52 0.1 ( and) 307.88 223.93 B 5 F 1.2 (toString) 331.35 223.93 P 1 F 0.52 0.1 ( methods ar) 379.35 223.93 B 0.52 0.1 (e de\336ned for) 433.77 223.93 B 5 F 1.2 (VMID) 495.33 223.93 P 1 F 0.52 0.1 (s. T) 519.33 223.93 B 0.52 0.1 (wo) 534.72 223.93 B 0.52 0.1 (VMIDs ar) 198 211.53 B 0.52 0.1 (e consider) 242.62 211.53 B 0.52 0.1 (ed equal if they have the same contents.) 288.97 211.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.66/DEST FmPD2 [/Dest/L.rmidgcdoc/DEST FmPD2 97 792/M10.9.23622.Head1.52.The.VMID.Class FmPA 97 792/I10.1.6733 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "66" 72 %%Page: "67" 73 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (67) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (RMI W) 198 509.31 P -2.5 (ir) 257.86 509.31 P -2.5 (e Pr) 270.84 509.31 P -2.5 (otocol) 300.76 509.31 P 54 653/G11.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (9) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 15 Q 0 0 0 1 0 0 0 K (9.1) 67.47 456.34 T (Overview) 97.27 456.34 T 54 600/G11.3243 FmPA 1 10 Q 0.46 0.1 (The RMI pr) 198 434.68 B 0.46 0.1 (otocol makes use of two other pr) 250.95 434.68 B 0.46 0.1 (otocols for its on-the-wir) 401.28 434.68 B 0.46 0.1 (e format:) 513.96 434.68 B 0.07 0.1 (Java Object Serialization and HTTP) 198 422.28 B 0.07 0.1 (. The Object Serialization pr) 356.31 422.28 B 0.07 0.1 (otocol is used to) 481.89 422.28 B 0.52 0.1 (marshal call and r) 198 409.88 B 0.52 0.1 (eturn data. The HTTP pr) 280.57 409.88 B 0.52 0.1 (otocol is used to \322POST\323 a r) 393.81 409.88 B 0.52 0.1 (emote) 522.81 409.88 B 0.52 0.1 (method invocation and obtain r) 198 397.48 B 0.52 0.1 (eturn data when cir) 342.76 397.48 B 0.52 0.1 (cumstances warrant. Each) 432.83 397.48 B 0.52 0.1 (pr) 198 385.08 B 0.52 0.1 (otocol is documented as a separate grammar) 207.98 385.08 B 0.52 0.1 (. Nonterminal symbols in) 411.74 385.08 B -0.07 0.1 (pr) 198 372.68 B -0.07 0.1 (oduction r) 207.98 372.68 B -0.07 0.1 (ules may r) 254.77 372.68 B -0.07 0.1 (efer to r) 301.76 372.68 B -0.07 0.1 (ules governed by another pr) 336.97 372.68 B -0.07 0.1 (otocol \050either Object) 464.45 372.68 B 0.52 0.1 (Serialization or HTTP\051. When a pr) 198 360.28 B 0.52 0.1 (otocol boundary is cr) 354.64 360.28 B 0.52 0.1 (ossed, subsequent) 451.61 360.28 B 0.52 0.1 (pr) 198 347.88 B 0.52 0.1 (oductions use that embedded pr) 207.98 347.88 B 0.52 0.1 (otocol.) 356.03 347.88 B 0 13 Q -0.85 0.13 (Notes about Grammar Notation) 198 315.48 B 4 14 Q 0.14 (\245) 198 296.48 S 1 10 Q 0.52 0.1 (W) 210.6 296.48 B 0.52 0.1 (e use a similar notation to that used in the Java Language Speci\336cation) 219.78 296.48 B 0.52 0.1 (\050see section 2.3 of the JLS\051.) 210.6 284.08 B 4 14 Q 0.14 (\245) 198 271.68 S 1 10 Q 0.52 0.1 (Contr) 210.6 271.68 B 0.52 0.1 (ol codes in the str) 236.5 271.68 B 0.52 0.1 (eam ar) 317.76 271.68 B 0.52 0.1 (e r) 348.77 271.68 B 0.52 0.1 (epr) 360.65 271.68 B 0.52 0.1 (esented by literal values expr) 375.52 271.68 B 0.52 0.1 (essed in) 509.57 271.68 B 0.1 (hexadecimal.) 210.6 259.28 S 4 14 Q 0.14 (\245) 198 246.88 S 1 10 Q 0.52 0.1 (Some nonterminal symbols in the grammar r) 210.6 246.88 B 0.52 0.1 (epr) 415.98 246.88 B 0.52 0.1 (esent application speci\336c) 430.85 246.88 B 0.52 0.1 (values supplied in a method invocation. The de\336nition of such a) 210.6 234.48 B 0.52 0.1 (nonterminal consists of its Java type. A table mapping each of these) 210.6 222.08 B 0.52 0.1 (nonterminals to its r) 210.6 209.68 B 0.52 0.1 (espective type follows the grammar) 303.47 209.68 B 0.52 0.1 (.) 466.35 209.68 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.67/DEST FmPD2 [/Dest/F.rmiprotocoldoc/DEST FmPD2 [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "67" 73 %%Page: "68" 74 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (68) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (9.2) 67.47 638 T -0.94 (RMI T) 97.27 638 P -0.94 (ransport Pr) 136.74 638 P -0.94 (otocol) 205.95 638 P 54 782/G11.3249 FmPA 1 10 Q 0.51 0.1 (The wir) 198 616.33 B 0.51 0.1 (e format for RMI is r) 233.48 616.33 B 0.51 0.1 (epr) 328.44 616.33 B 0.51 0.1 (esented by a) 343.31 616.33 B 0 F 0.51 0.1 (Str) 403.54 616.33 B 0.51 0.1 (eam) 416.44 616.33 B 1 F 0.51 0.1 (. The terminology adopted) 432.85 616.33 B 0.16 0.1 (her) 198 603.93 B 0.16 0.1 (e r) 212.68 603.93 B 0.16 0.1 (e\337ects a client perspective.) 224.2 603.93 B 0 F 0.16 0.1 (Out) 347.82 603.93 B 1 F 0.16 0.1 ( r) 364.79 603.93 B 0.16 0.1 (efers to output messages and) 371.43 603.93 B 0 F 0.16 0.1 (In) 506.13 603.93 B 1 F 0.16 0.1 ( r) 515.22 603.93 B 0.16 0.1 (efers to) 521.85 603.93 B 0.52 0.1 (input messages. The contents of the transport header ar) 198 591.53 B 0.52 0.1 (e) 452.55 591.53 B 0 F 0.52 0.1 (not) 460.56 591.53 B 1 F 0.52 0.1 ( formatted using) 474.19 591.53 B 0.52 0.1 (Object Serialization.) 198 579.13 B 7 11 Q (Str) 216 560.07 T (eam:) 228.43 560.07 T (Out) 234 547.07 T (In) 234 534.07 T 1 10 Q 0.52 0.1 (The input and output str) 198 513.73 B 0.52 0.1 (eams used by RMI ar) 311.5 513.73 B 0.52 0.1 (e pair) 408.88 513.73 B 0.52 0.1 (ed. Each) 434.98 513.73 B 0 F 0.52 0.1 (Out) 476.69 513.73 B 1 F 0.52 0.1 ( str) 493.66 513.73 B 0.52 0.1 (eam has a) 508.35 513.73 B 0.52 0.1 (corr) 198 501.33 B 0.52 0.1 (esponding) 216.02 501.33 B 0 F 0.52 0.1 (In) 266.76 501.33 B 1 F 0.52 0.1 ( str) 275.85 501.33 B 0.52 0.1 (eam. An) 290.54 501.33 B 0 F 0.52 0.1 (Out) 332.1 501.33 B 1 F 0.52 0.1 ( str) 349.07 501.33 B 0.52 0.1 (eam in the grammar maps to the output) 363.76 501.33 B 0.52 0.1 (str) 198 488.93 B 0.52 0.1 (eam of a socket \050fr) 209.57 488.93 B 0.52 0.1 (om the client\325s perspective\051. An) 294.14 488.93 B 0 F 0.52 0.1 (In) 442.12 488.93 B 1 F 0.52 0.1 ( str) 451.21 488.93 B 0.52 0.1 (eam \050in the) 465.9 488.93 B 0.14 0.1 (grammar\051 is pair) 198 476.53 B 0.14 0.1 (ed with the corr) 274.17 476.53 B 0.14 0.1 (esponding socket\325s input str) 346.4 476.53 B 0.14 0.1 (eam. Since output) 473.9 476.53 B 0.36 0.1 (and input str) 198 464.13 B 0.36 0.1 (eams ar) 257.25 464.13 B 0.36 0.1 (e pair) 292.44 464.13 B 0.36 0.1 (ed, the only header information needed on an input) 318.38 464.13 B 0.52 0.1 (str) 198 451.73 B 0.52 0.1 (eam is an acknowledgment as to whether the pr) 209.57 451.73 B 0.52 0.1 (otocol is understood; other) 429.89 451.73 B 0.52 0.1 (header information \050such as the magic number and version number\051 can be) 198 439.33 B 0.52 0.1 (implied by the context of str) 198 426.93 B 0.52 0.1 (eam pairing.) 327.68 426.93 B 0 14 Q (9.2.1) 125 393.87 T 0.7 (Format of an Output Str) 160.49 393.87 P 0.7 (eam) 303.04 393.87 P 1 10 Q 0.34 0.1 (An output str) 198 372.53 B 0.34 0.1 (eam in RMI consists of transport) 259.91 372.53 B 0 F 0.34 0.1 (Header) 411.48 372.53 B 1 F 0.34 0.1 ( information followed by) 440.97 372.53 B 0.52 0.1 (a sequence of) 198 360.13 B 0 F 0.52 0.1 (Messages) 262.75 360.13 B 1 F 0.52 0.1 (. Alternatively) 301.88 360.13 B 0.52 0.1 (, an output str) 366.38 360.13 B 0.52 0.1 (eam can contain an) 431.58 360.13 B 0.52 0.1 (invocation embedded in the HTTP pr) 198 347.73 B 0.52 0.1 (otocol.) 369.29 347.73 B 7 11 Q (Out:) 216 328.67 T (Header Messa) 234 315.67 T (g) 297.73 315.67 T (es) 303.12 315.67 T (HttpMessa) 234 302.67 T (g) 281.55 302.67 T (e) 286.94 302.67 T (Header:) 216 283.67 T 5 F (0x4a 0x52 0x4d 0x49) 234 270.67 T 7 F ( V) 359.4 270.67 T (er) 367.65 270.67 T (sion Pr) 376.7 270.67 T (otocol) 408.3 270.67 T (V) 216 251.67 T (er) 221.5 251.67 T (sion:) 230.55 251.67 T 5 F (0x00 0x01) 234 238.67 T 7 F (Pr) 216 219.67 T (otocol:) 226.51 219.67 T (Str) 234 206.67 T (eamPr) 246.43 206.67 T (otocol) 275.26 206.67 T (SingleOpPr) 234 193.67 T (otocol) 285.45 193.67 T (Multiple) 234 180.67 T (xPr) 271.06 180.67 T (otocol) 286.45 180.67 T (Str) 216 161.67 T (eamPr) 228.43 161.67 T (otocol:) 257.26 161.67 T 5 F (0x4b) 234 148.67 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.68/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "68" 74 %%Page: "69" 75 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (69) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 11 Q 0 X 0 0 0 1 0 0 0 K (SingleOpPr) 216 640.67 T (otocol:) 267.45 640.67 T 5 F (0x4c) 234 627.67 T 7 F (Multiple) 216 608.67 T (xPr) 253.06 608.67 T (otocol:) 268.45 608.67 T 5 F (0x4d) 234 595.67 T 7 F (Messa) 216 576.67 T (g) 243.99 576.67 T (es:) 249.38 576.67 T (Messa) 234 563.67 T (g) 261.99 563.67 T (e) 267.39 563.67 T (Messa) 234 550.67 T (g) 261.99 550.67 T (es Messa) 267.39 550.67 T (g) 307.29 550.67 T (e) 312.68 550.67 T 1 10 Q 0.28 0.1 (The) 198 530.33 B 0 F 0.28 0.1 (Messages) 217.92 530.33 B 1 F 0.28 0.1 ( ar) 257.05 530.33 B 0.28 0.1 (e wrapped within a particular pr) 268.9 530.33 B 0.28 0.1 (otocol as speci\336ed by) 418.31 530.33 B 0 F 0.28 0.1 (Pr) 518.3 530.33 B 0.28 0.1 (otocol) 528.32 530.33 B 1 F 0.28 0.1 (.) 552.42 530.33 B 0.52 0.1 (For the) 198 517.93 B 0 F 0.52 0.1 (SingleOpPr) 233.68 517.93 B 0.52 0.1 (otocol) 282.85 517.93 B 1 F 0.52 0.1 (, ther) 306.95 517.93 B 0.52 0.1 (e may only be one) 330.71 517.93 B 0 F 0.52 0.1 (Message) 417.93 517.93 B 1 F 0.52 0.1 ( after the) 453.07 517.93 B 0 F 0.52 0.1 (Header) 497.43 517.93 B 1 F 0.52 0.1 (, and) 526.17 517.93 B 0.08 0.1 (ther) 198 505.53 B 0.08 0.1 (e is no additional data that the) 216.04 505.53 B 0 F 0.08 0.1 (Message) 356.68 505.53 B 1 F 0.08 0.1 ( is wrapped in. The) 391.82 505.53 B 0 F 0.08 0.1 (SingleOpPr) 482.05 505.53 B 0.08 0.1 (otocol) 531.22 505.53 B 1 F -0.04 0.1 (is used for invocation embedded in HTTP r) 198 493.13 B -0.04 0.1 (equests, wher) 393.27 493.13 B -0.04 0.1 (e interaction beyond a) 455.19 493.13 B 0.52 0.1 (single r) 198 480.73 B 0.52 0.1 (equest and r) 231.82 480.73 B 0.52 0.1 (esponse is not possible.) 288.47 480.73 B 0.52 0.1 (For the) 198 460.33 B 0 F 0.52 0.1 (Str) 233.68 460.33 B 0.52 0.1 (eamPr) 246.58 460.33 B 0.52 0.1 (otocol) 273.01 460.33 B 1 F 0.52 0.1 ( and the) 297.11 460.33 B 0 F 0.52 0.1 (MultiplexPr) 337.87 460.33 B 0.52 0.1 (otocol) 389.35 460.33 B 1 F 0.52 0.1 (, the server must r) 413.45 460.33 B 0.52 0.1 (espond with) 497.3 460.33 B 0.52 0.1 (a a byte) 198 447.93 B 5 F 1.2 (0x4e) 237.1 447.93 P 1 F 0.52 0.1 ( acknowledging support for the pr) 261.1 447.93 B 0.52 0.1 (otocol, and an) 419.13 447.93 B 0 F 0.52 0.1 (EndpointIdenti\336er) 198 435.53 B 1 F 0.52 0.1 ( that contains the host name and port number that the server) 274.43 435.53 B 0.52 0.1 (can see is being used by the client. The client can use this information to) 198 423.13 B 0.05 0.1 (determine its host name if it is otherwise unable to do that for security r) 198 410.73 B 0.05 0.1 (easons.) 522.6 410.73 B 0.52 0.1 (The client must then r) 198 398.33 B 0.52 0.1 (espond with another) 298.97 398.33 B 0 F 0.52 0.1 (EndpointIdenti\336er) 396.89 398.33 B 1 F 0.52 0.1 ( that contains the) 473.32 398.33 B 0.52 0.1 (client\325s default endpoint for accepting connections. This can be used by a) 198 385.93 B 0.52 0.1 (server in the) 198 373.53 B 0 F 0.52 0.1 (MultiplexPr) 258.43 373.53 B 0.52 0.1 (otocol) 309.91 373.53 B 1 F 0.52 0.1 ( case to identify the client.) 334.01 373.53 B 0.52 0.1 (For the) 198 353.13 B 0 F 0.52 0.1 (Str) 233.68 353.13 B 0.52 0.1 (eamPr) 246.58 353.13 B 0.52 0.1 (otocol) 273.01 353.13 B 1 F 0.52 0.1 (, after this endpoint negotiation, the) 297.11 353.13 B 0 F 0.52 0.1 (Messages) 464.99 353.13 B 1 F 0.52 0.1 ( ar) 504.12 353.13 B 0.52 0.1 (e sent) 516.21 353.13 B 0.52 0.1 (over the output str) 198 340.73 B 0.52 0.1 (eam without any additional wrapping of the data. For the) 284 340.73 B 0 F 0.12 0.1 (MultiplexPr) 198 328.33 B 0.12 0.1 (otocol) 249.48 328.33 B 1 F 0.12 0.1 (, the socket connection is used as the concr) 273.58 328.33 B 0.12 0.1 (ete connection for a) 466.63 328.33 B 0.52 0.1 (multiplexed connection, as described in Section) 198 315.93 B 0.52 0.1 (9.6, \322RMI\325s Multiplexing) 417.6 315.93 B 0.52 0.1 (Pr) 198 303.53 B 0.52 0.1 (otocol.\323 V) 208.01 303.53 B 0.52 0.1 (irtual connections initiated over this multiplexed connection) 253.19 303.53 B 0.52 0.1 (consist of a series of) 198 291.13 B 0 F 0.52 0.1 (Messages) 293.27 291.13 B 1 F 0.52 0.1 ( as described below) 332.4 291.13 B 0.52 0.1 (.) 421.58 291.13 B 0.52 0.1 (Ther) 198 270.73 B 0.52 0.1 (e ar) 218.91 270.73 B 0.52 0.1 (e thr) 235.89 270.73 B 0.52 0.1 (ee types of output messages:) 257.05 270.73 B 0 F 0.52 0.1 (Call) 391.52 270.73 B 1 F 0.52 0.1 (,) 408.59 270.73 B 0 F 0.52 0.1 (Ping) 414.31 270.73 B 1 F 0.52 0.1 ( and) 434.16 270.73 B 0 F 0.52 0.1 (DgcAck) 457.63 270.73 B 1 F 0.52 0.1 (. A) 490.81 270.73 B 0 F 0.52 0.1 (Call) 507.53 270.73 B 1 F 0.52 0.1 (encodes a method invocation. A) 198 258.33 B 0 F 0.52 0.1 (Ping) 348.13 258.33 B 1 F 0.52 0.1 ( is a transport-level message for testing) 367.98 258.33 B 0.52 0.1 (liveness of a r) 198 245.93 B 0.52 0.1 (emote virtual machine. A) 261.47 245.93 B 0 F 0.52 0.1 (DGCAck) 380.78 245.93 B 1 F 0.52 0.1 ( is an acknowledgment) 418.78 245.93 B 0.52 0.1 (dir) 198 233.53 B 0.52 0.1 (ected to a server) 211.09 233.53 B 0.52 0.1 (\325s distributed garbage collector that indicates that r) 287.07 233.53 B 0.52 0.1 (emote) 520.66 233.53 B 0.52 0.1 (objects in a r) 198 221.13 B 0.52 0.1 (eturn value fr) 256.02 221.13 B 0.52 0.1 (om a server have been r) 318.79 221.13 B 0.52 0.1 (eceived by the client.) 428.81 221.13 B 7 11 Q (Messa) 216 202.07 T (g) 243.99 202.07 T (e:) 249.38 202.07 T (Call) 234 189.07 T (Ping) 234 176.07 T (DgcAc) 234 163.07 T (k) 263.71 163.07 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.69/DEST FmPD2 [/Rect[382 312 558 323]/Border[0 0 0]/Page 79/View[/XYZ null 97 685 FmDC exch pop null]/LNK FmPD [/Rect[54 300 236 312]/Border[0 0 0]/Page 79/View[/XYZ null 97 685 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "69" 75 %%Page: "70" 76 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (70) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 11 Q 0 X 0 0 0 1 0 0 0 K (Call:) 216 640.67 T 5 F (0x50) 234 627.67 T 7 F ( CallData) 260.4 627.67 T (Ping:) 216 608.67 T 5 F (0x52) 234 595.67 T 7 F (DgcAc) 216 576.67 T (k:) 245.71 576.67 T 5 F (0x54) 234 563.67 T 7 F ( UniqueIdenti\336er) 260.4 563.67 T 0 14 Q (9.2.2) 125 530.67 T 0.7 (Format of an Input Str) 160.49 530.67 P 0.7 (eam) 292.14 530.67 P 1 10 Q 0.49 0.1 (Ther) 198 509.33 B 0.49 0.1 (e ar) 218.91 509.33 B 0.49 0.1 (e curr) 235.86 509.33 B 0.49 0.1 (ently thr) 262.42 509.33 B 0.49 0.1 (ee types of input messages:) 301.5 509.33 B 0 F 0.49 0.1 (ReturnData) 429.68 509.33 B 1 F 0.49 0.1 (,) 479.57 509.33 B 0 F 0.49 0.1 (HttpReturn) 485.26 509.33 B 1 F 0.49 0.1 ( and) 534.6 509.33 B 0 F 0.52 0.1 (PingAck) 198 496.93 B 1 F 0.52 0.1 (.) 233.88 496.93 B 0 F 0.52 0.1 (ReturnData) 239.6 496.93 B 1 F 0.52 0.1 ( is the r) 289.49 496.93 B 0.52 0.1 (esult of a \322normal\323 RMI call. An) 324.24 496.93 B 0 F 0.52 0.1 (HttpReturn) 476.54 496.93 B 1 F 0.52 0.1 ( is a) 525.88 496.93 B 0.2 0.1 (r) 198 484.53 B 0.2 0.1 (eturn r) 201.87 484.53 B 0.2 0.1 (esult fr) 232.89 484.53 B 0.2 0.1 (om an invocation embedded in the HTTP pr) 264.72 484.53 B 0.2 0.1 (otocol. A) 465.51 484.53 B 0 F 0.2 0.1 (PingAck) 509.17 484.53 B 1 F 0.2 0.1 ( is) 545.05 484.53 B 0.52 0.1 (the acknowledgment for a) 198 472.13 B 0 F 0.52 0.1 (Ping) 320.88 472.13 B 1 F 0.52 0.1 ( message.) 340.73 472.13 B 7 11 Q (In:) 216 453.07 T (Pr) 234 440.07 T (otocolAc) 244.51 440.07 T (k Returns) 283.39 440.07 T (Pr) 234 427.07 T (otocolNotSupported) 244.51 427.07 T (HttpReturn) 234 414.07 T (Pr) 216 395.07 T (otocolAc) 226.51 395.07 T (k:) 265.39 395.07 T 5 F (0x4e) 234 382.07 T 7 F (Pr) 216 363.07 T (otocolNotSupported:) 226.51 363.07 T 5 F (0x4f) 234 350.07 T 7 F (Returns:) 216 331.07 T (Return) 234 318.07 T (Returns Return) 234 305.07 T (Return:) 216 286.07 T (ReturnData) 234 273.07 T (PingAc) 234 260.07 T (k) 266.16 260.07 T (ReturnData:) 216 241.07 T 5 F (0x51) 234 228.07 T 7 F ( ReturnV) 260.4 228.07 T (alue) 298.59 228.07 T 7 6.4 Q (opt) 317.53 226.07 T 7 11 Q (PingAc) 216 209.07 T (k:) 248.16 209.07 T 5 F (0x53) 234 196.07 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.70/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "70" 76 %%Page: "71" 77 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (71) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (9.3) 67.47 638 T -0.94 (RMI\325) 97.27 638 P -0.94 (s Use of Object Serialization Pr) 129.78 638 P -0.94 (otocol) 314.96 638 P 54 782/G11.3270 FmPA 1 10 Q 0.52 0.1 (Call and r) 198 616.33 B 0.52 0.1 (eturn data in RMI calls ar) 243.65 616.33 B 0.52 0.1 (e formatted using the Java Object) 361.08 616.33 B 0.23 0.1 (Serialization pr) 198 603.93 B 0.23 0.1 (otocol. Each method invocation\325s) 267.28 603.93 B 0 F 0.23 0.1 (CallData) 420.36 603.93 B 1 F 0.23 0.1 ( is r) 457.82 603.93 B 0.23 0.1 (epr) 474.69 603.93 B 0.23 0.1 (esented by the) 489.56 603.93 B 0 F 0.52 0.1 (ObjectIdenti\336er) 198 591.53 B 1 F 0.52 0.1 ( \050the tar) 262.93 591.53 B 0.52 0.1 (get of the call\051, an) 299.1 591.53 B 0 F 0.52 0.1 (Operation) 384.48 591.53 B 1 F 0.52 0.1 ( \050a number r) 426.49 591.53 B 0.52 0.1 (epr) 483.8 591.53 B 0.52 0.1 (esenting the) 498.67 591.53 B 0.52 0.1 (method to be invoked\051, a) 198 579.13 B 0 F 0.52 0.1 (Hash) 316.04 579.13 B 1 F 0.52 0.1 ( \050a number that veri\336es that client stub and) 337.55 579.13 B 0.09 0.1 (r) 198 566.73 B 0.09 0.1 (emote object skeleton use the same stub pr) 201.87 566.73 B 0.09 0.1 (otocol\051, followed by a list of zer) 394.61 566.73 B 0.09 0.1 (o or) 537.45 566.73 B 0.52 0.1 (mor) 198 554.33 B 0.52 0.1 (e) 216.36 554.33 B 0 F 0.52 0.1 (Ar) 224.37 554.33 B 0.52 0.1 (guments) 235.5 554.33 B 1 F 0.52 0.1 ( for the call.) 271.21 554.33 B 7 11 Q (CallData:) 216 535.27 T (ObjectIdenti\336er Oper) 234 522.27 T (ation Hash Ar) 328.84 522.27 T (guments) 390.77 522.27 T 7 6.4 Q (opt) 427.43 520.27 T 7 11 Q (ObjectIdenti\336er:) 216 503.27 T (ObjectNumber UniqueIdenti\336er) 234 490.27 T (UniqueIdenti\336er:) 216 471.27 T (Number T) 234 458.27 T (ime Count) 277.7 458.27 T (Ar) 216 439.27 T (guments:) 226.59 439.27 T (V) 234 426.27 T (alue) 239.5 426.27 T (Ar) 234 413.27 T (guments V) 244.59 413.27 T (alue) 289.51 413.27 T (V) 216 394.27 T (alue:) 221.5 394.27 T (Object) 234 381.27 T (Primitive) 234 368.27 T 1 10 Q 0.52 0.1 (A) 198 347.93 B 0 F 0.52 0.1 (ReturnV) 209 347.93 B 0.52 0.1 (alue) 245.08 347.93 B 1 F 0.52 0.1 ( of an RMI call consists of a r) 262.15 347.93 B 0.52 0.1 (eturn code to indicate either a) 395.96 347.93 B 0.27 0.1 (normal or exceptional r) 198 335.53 B 0.27 0.1 (eturn, a) 304.3 335.53 B 0 F 0.27 0.1 (UniqueIdenti\336er) 342.08 335.53 B 1 F 0.27 0.1 ( to tag the r) 410.73 335.53 B 0.27 0.1 (eturn value \050used to) 463.28 335.53 B 0.52 0.1 (send a DGCAck if necessary\051 followed by the r) 198 323.13 B 0.52 0.1 (eturn r) 413.3 323.13 B 0.52 0.1 (esult: either the) 444.64 323.13 B 0 F 0.52 0.1 (V) 518.61 323.13 B 0.52 0.1 (alue) 525.2 323.13 B 1 F 0.52 0.1 (r) 198 310.73 B 0.52 0.1 (eturned or the) 201.87 310.73 B 0 F 0.52 0.1 (Exception) 270.46 310.73 B 1 F 0.52 0.1 (thr) 314.66 310.73 B 0.52 0.1 (own) 327.81 310.73 B 0 F 0.52 0.1 (.) 347.73 310.73 B 7 11 Q (ReturnV) 216 291.67 T (alue:) 251.44 291.67 T 5 F (0x01) 234 278.67 T 7 F ( UniqueIdenti\336er V) 260.4 278.67 T (alue) 344.11 278.67 T 5 F (0x02) 234 265.67 T 7 F ( UniqueIdenti\336er Exception) 260.4 265.67 T 54 244.01 558 252 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 248.98 198 248.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 237.34 B 0 F 0.52 0.1 (ObjectIdenti\336er) 231.96 237.34 B 1 F 0.52 0.1 (,) 296.15 237.34 B 0 F 0.52 0.1 (UniqueIdenti\336er) 301.87 237.34 B 0.52 0.1 (,) 369.78 237.34 B 1 F 0.52 0.1 (and) 375.5 237.34 B 0 F 0.52 0.1 ( EndpointIdenti\336er) 392.73 237.34 B 1 F 0.52 0.1 (ar) 475.4 237.34 B 0.52 0.1 (e not written) 484.37 237.34 B 0.52 0.1 (out using default serialization, but each uses its own special) 198 224.94 B 5 F 1.2 (write) 476.4 224.94 P 1 F 0.52 0.1 ( method) 506.4 224.94 B 0.26 0.1 (\050this is not the) 198 212.54 B 5 F 0.61 (writeObject) 265.87 212.54 P 1 F 0.26 0.1 ( method used by Object Serialization\051; the) 331.87 212.54 B 5 F 0.61 (write) 525.14 212.54 P 1 F -0.04 0.1 (method for each type of identi\336er adds its component data consecutively to the) 198 200.14 B 54 176.42 558 184.41 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 181.39 198 181.39 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (output str) 198 187.74 B 0.52 0.1 (eam.) 243.34 187.74 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.71/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "71" 77 %%Page: "72" 78 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (72) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (9.4) 67.47 638 T -0.94 (RMI\325) 97.27 638 P -0.94 (s Use of HTTP POST Pr) 129.78 638 P -0.94 (otocol) 276.08 638 P 54 782/G11.3278 FmPA 1 10 Q 0.52 0.1 (In or) 198 616.33 B 0.52 0.1 (der to invoke r) 219.94 616.33 B 0.52 0.1 (emote methods thr) 288.03 616.33 B 0.52 0.1 (ough a \336r) 374.26 616.33 B 0.52 0.1 (ewall, some RMI calls make) 418.89 616.33 B 0.4 0.1 (use of the HTTP pr) 198 603.93 B 0.4 0.1 (otocol, mor) 285.5 603.93 B 0.4 0.1 (e speci\336cally HTTP POST) 337.05 603.93 B 0.4 0.1 (. The URL speci\336ed in) 453.24 603.93 B 0.52 0.1 (the post header can be one of the following:) 198 591.53 B 5 11 Q (http://) 234 572.47 T 7 F () 280.2 572.47 T 5 F (:) 313.39 572.47 T 7 F () 319.99 572.47 T 5 F (/) 353.17 572.47 T (http://) 234 559.47 T 7 F () 280.2 559.47 T 5 F (:80/cgi-bin/java-rmi?forward=) 313.39 559.47 T 7 F () 504.79 559.47 T 1 10 Q 0.52 0.1 (The \336rst URL is used for dir) 198 539.13 B 0.52 0.1 (ect communication with an RMI server on the) 327.58 539.13 B 0.34 0.1 (speci\336c) 198 526.73 B 0 F 0.34 0.1 (host) 234.52 526.73 B 1 F 0.34 0.1 ( and) 251.58 526.73 B 0 F 0.34 0.1 (port) 274.68 526.73 B 1 F 0.34 0.1 (. The second URL form is used to invoke a \322cgi\323 script on) 291.74 526.73 B 0.52 0.1 (the server which forwar) 198 514.33 B 0.52 0.1 (ds the invocation to the server on the speci\336ed) 307.78 514.33 B 0 F 0.52 0.1 (port) 525.16 514.33 B 1 F 0.52 0.1 (.) 542.22 514.33 B 0.52 0.1 (An) 198 493.93 B 0 F 0.52 0.1 (HttpPostHeader) 214.92 493.93 B 1 F 0.52 0.1 ( is a standar) 282.42 493.93 B 0.52 0.1 (d HTTP header for a POST r) 338.13 493.93 B 0.52 0.1 (equest. An) 468.83 493.93 B 0 F 0.52 0.1 (HttpResponseHeader) 198 481.53 B 1 F 0.52 0.1 ( is a standar) 285.36 481.53 B 0.52 0.1 (d HTTP r) 341.07 481.53 B 0.52 0.1 (esponse to a post. If the r) 384.41 481.53 B 0.52 0.1 (esponse) 500.11 481.53 B 0.14 0.1 (status code is not 200, then it is assumed that ther) 198 469.13 B 0.14 0.1 (e is no) 422.87 469.13 B 0 F 0.14 0.1 (Return) 454.82 469.13 B 1 F 0.14 0.1 (. Note that only) 484.32 469.13 B 0.52 0.1 (a single RMI call is embedded in an HTTP POST r) 198 456.73 B 0.52 0.1 (equest.) 428.33 456.73 B 7 11 Q (HttpMessa) 216 437.67 T (g) 263.55 437.67 T (e:) 268.94 437.67 T (HttpP) 234 424.67 T (ostHeader Header Messa) 259.4 424.67 T (g) 371.71 424.67 T (e) 377.1 424.67 T (HttpReturn:) 216 405.67 T (HttpResponseHeader Return) 234 392.67 T 54 371.01 558 379 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 375.98 198 375.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 3 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 364.34 B 1 F 0.52 0.1 (Only the) 231.96 364.34 B 0 F 0.52 0.1 (SingleOpPr) 274.92 364.34 B 0.52 0.1 (otocol) 324.09 364.34 B 1 F 0.52 0.1 ( appears in the) 348.19 364.34 B 0 F 0.52 0.1 (Header) 419.47 364.34 B 1 F 0.52 0.1 ( of an) 448.96 364.34 B 0 F 0.52 0.1 (HttpMessage) 478.33 364.34 B 1 F 0.52 0.1 (. An) 533.3 364.34 B 54 340.62 558 348.61 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 345.58 198 345.58 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (HttpReturn does not contain a pr) 198 351.94 B 0.52 0.1 (otocol acknowledgment byte.) 350.31 351.94 B 0 15 Q (9.5) 67.47 310.22 T -0.94 (Application Speci\336c V) 97.27 310.22 P -0.94 (alues for RMI) 229.69 310.22 P 54 454/G11.3474 FmPA 1 10 Q 0.52 0.1 (This table lists the nonterminal symbols that r) 198 288.55 B 0.52 0.1 (epr) 408.31 288.55 B 0.52 0.1 (esent application speci\336c) 423.18 288.55 B 0.16 0.1 (values used by RMI. The table maps each symbol to its r) 198 276.15 B 0.16 0.1 (espective type. Each is) 453.44 276.15 B 0.52 0.1 (formatted using the pr) 198 263.75 B 0.52 0.1 (otocol in which it is embedded.) 301.46 263.75 B 7 11 Q (Count) 216 244.68 T 5 F (short) 354 244.68 T 7 F (Exception) 216 225.68 T 5 F (java.lang.Exception) 354 225.68 T 7 F (Hash) 216 206.68 T 5 10 Q (long) 354 206.68 T 7 11 Q (Hostname) 216 187.68 T 5 10 Q (String) 354 187.68 T 7 11 Q (Number) 216 168.68 T 5 F (int) 354 168.68 T 7 F (Object) 216 149.68 T 5 F (java.lang.Object) 354 149.68 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.72/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "72" 78 %%Page: "73" 79 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (73) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 11 Q 0 X 0 0 0 1 0 0 0 K (ObjectNumber) 216 640.67 T 5 10 Q (int) 354 640.67 T 7 11 Q (Oper) 216 621.67 T (ation) 238.44 621.67 T 5 10 Q (int) 354 621.67 T 7 11 Q (P) 216 602.67 T (ortNumber) 221.84 602.67 T 5 10 Q (int) 354 602.67 T 7 11 Q (Primitive) 216 583.67 T 5 F (byte, int, short, long...) 354 583.67 T 7 F (T) 216 564.67 T (ime) 221.51 564.67 T 5 F (long) 354 564.67 T 0 15 Q (9.6) 67.47 531 T -0.94 (RMI\325) 97.27 531 P -0.94 (s Multiplexing Pr) 129.78 531 P -0.94 (otocol) 236.82 531 P 54 675/G11.3477 FmPA 1 10 Q 0.52 0.1 (The purpose of multiplexing is to pr) 198 509.33 B 0.52 0.1 (ovide a model wher) 364.49 509.33 B 0.52 0.1 (e two endpoints can) 456.09 509.33 B 0.52 0.1 (each open multiple full duplex connections to the other endpoint in an) 198 496.93 B 0.52 0.1 (envir) 198 484.53 B 0.52 0.1 (onment wher) 221.44 484.53 B 0.52 0.1 (e only one of the endpoints is able to open such a) 282.26 484.53 B -0.01 0.1 (bidir) 198 472.13 B -0.01 0.1 (ectional connection using some other facility \050e.g., a TCP connection\051. RMI) 219.73 472.13 B 0.52 0.1 (use this simple multiplexing pr) 198 459.73 B 0.52 0.1 (otocol to allow a client to connect to an RMI) 341.04 459.73 B 0.52 0.1 (server object in some situations wher) 198 447.33 B 0.52 0.1 (e that is otherwise not possible. For) 367.89 447.33 B 0.52 0.1 (example, some security managers for applet envir) 198 434.93 B 0.52 0.1 (onments disallow the) 426.26 434.93 B 0.52 0.1 (cr) 198 422.53 B 0.52 0.1 (eation of server sockets to listen for incoming connections, ther) 206.41 422.53 B 0.52 0.1 (eby) 495.22 422.53 B 0.52 0.1 (pr) 198 410.13 B 0.52 0.1 (eventing such applets to export RMI objects and service r) 207.98 410.13 B 0.52 0.1 (emote calls fr) 470.6 410.13 B 0.52 0.1 (om) 531.77 410.13 B -0 0.1 (dir) 198 397.73 B -0 0.1 (ect socket connections. If the applet) 211.09 397.73 B 0 F -0 0.1 (can) 378.81 397.73 B 1 F -0 0.1 ( open a normal socket connection to) 393.18 397.73 B 0.44 0.1 (its codebase host, however) 198 385.33 B 0.44 0.1 (, then it can use the multiplexing pr) 319.54 385.33 B 0.44 0.1 (otocol over that) 483.29 385.33 B 0.52 0.1 (connection to allow the codebase host to invoke methods on RMI objects) 198 372.93 B 0.46 0.1 (exported by the applet. This section describes how the format and r) 198 360.53 B 0.46 0.1 (ules of the) 507.31 360.53 B 0.52 0.1 (multiplexing pr) 198 348.13 B 0.52 0.1 (otocol.) 269.4 348.13 B 0 14 Q (9.6.1) 125 315.07 T (De\336nitions) 160.49 315.07 T 1 10 Q 0.36 0.1 (This sections de\336nes some terms as they ar) 198 293.73 B 0.36 0.1 (e used in the r) 394.08 293.73 B 0.36 0.1 (est of the description) 459.33 293.73 B 0.52 0.1 (of the pr) 198 281.33 B 0.52 0.1 (otocol.) 237.38 281.33 B 0.52 0.1 (An) 198 260.93 B 0 F 0.52 0.1 (endpoint) 214.92 260.93 B 1 F 0.52 0.1 ( is one of the two users of a connection using the multiplexing) 251.28 260.93 B 0.1 (pr) 198 248.53 S 0.1 (otocol.) 207.98 248.53 S 0.52 0.1 (The multiplexing pr) 198 228.13 B 0.52 0.1 (otocol must layer on top of one existing bidir) 289.56 228.13 B 0.52 0.1 (ectional,) 496.63 228.13 B 0.29 0.1 (r) 198 215.73 B 0.29 0.1 (eliable byte str) 201.87 215.73 B 0.29 0.1 (eam, pr) 268.3 215.73 B 0.29 0.1 (esumably initiated by one of the endpoints to the other) 302.68 215.73 B 0.29 0.1 (.) 552.51 215.73 B 0.52 0.1 (In curr) 198 203.33 B 0.52 0.1 (ent RMI usage, this is always a TCP connection, made with a) 229.1 203.33 B 0.52 0.1 (java.net.Socket object. This connection will be r) 198 190.93 B 0.52 0.1 (eferr) 413.44 190.93 B 0.52 0.1 (ed to as the) 434.57 190.93 B 0 F 0.52 0.1 (concr) 490.68 190.93 B 0.52 0.1 (ete) 513.03 190.93 B 0.1 (connection) 198 178.53 S 1 F 0.1 (.) 242.7 178.53 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.73/DEST FmPD2 97 685/M11.9.16558.Head1.66.RMIs.Multiplexing.Protocol FmPA 97 685/I11.1.3968 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "73" 79 %%Page: "74" 80 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (74) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The multiplexing pr) 198 641.33 B 0.52 0.1 (otocol facilitates the use of) 289.56 641.33 B 0 F 0.52 0.1 (virtual connections) 414.42 641.33 B 1 F 0.52 0.1 (, which ar) 494.71 641.33 B 0.52 0.1 (e) 540.34 641.33 B 0.52 0.1 (themselves bidir) 198 628.93 B 0.52 0.1 (ectional, r) 273.17 628.93 B 0.52 0.1 (eliable byte str) 318.15 628.93 B 0.52 0.1 (eams, r) 385.04 628.93 B 0.52 0.1 (epr) 417.89 628.93 B 0.52 0.1 (esenting a particular) 432.76 628.93 B 0.52 0.1 (session between two endpoints. The set of virtual connections between two) 198 616.53 B 0.26 0.1 (endpoints over a single concr) 198 604.13 B 0.26 0.1 (ete connection comprises a) 331.39 604.13 B 0 F 0.26 0.1 (multiplexed connection) 456.08 604.13 B 1 F 0.26 0.1 (.) 552.53 604.13 B 0.23 0.1 (Using the multiplexing pr) 198 591.73 B 0.23 0.1 (otocol, virtual connections can be opened and closed) 315.75 591.73 B 0.52 0.1 (by either endpoint. The state of an virtual connection with r) 198 579.33 B 0.52 0.1 (espect to a given) 472.52 579.33 B 0.52 0.1 (endpoint is de\336ned by the elements of the multiplexing pr) 198 566.93 B 0.52 0.1 (otocol that ar) 465.81 566.93 B 0.52 0.1 (e sent) 526.34 566.93 B 0.52 0.1 (and r) 198 554.53 B 0.52 0.1 (eceived over the concr) 222.22 554.53 B 0.52 0.1 (ete connection. Such state involves if the) 324.61 554.53 B 0.52 0.1 (connection is open or closed, the actual data that has been transmitted acr) 198 542.13 B 0.52 0.1 (oss,) 536.9 542.13 B 0.52 0.1 (and the r) 198 529.73 B 0.52 0.1 (elated \337ow contr) 239.51 529.73 B 0.52 0.1 (ol mechanisms. If not otherwise quali\336ed, the term) 316.64 529.73 B 0 F 0.52 0.1 (connection) 198 517.33 B 1 F 0.52 0.1 ( used in the r) 242.7 517.33 B 0.52 0.1 (emainder of this section means) 303.72 517.33 B 0 F 0.52 0.1 (virtual connection) 448.74 517.33 B 1 F 0.52 0.1 (.) 525.03 517.33 B 0.45 0.1 (A virtual connections within a given multiplexed connection is identi\336ed by a) 198 496.93 B 0.52 0.1 (16 bit integer) 198 484.53 B 0.52 0.1 (, known as the) 257.48 484.53 B 0 F 0.52 0.1 (connection identi\336er) 327.67 484.53 B 1 F 0.52 0.1 (. Thus, ther) 412.05 484.53 B 0.52 0.1 (e exist 65,536) 464.15 484.53 B 0.52 0.1 (possible virtual connections in one multiplexed connection. The) 198 472.13 B 0.15 0.1 (implementation may limit the number of these virtual connections that may be) 198 459.73 B 0.52 0.1 (used simultaneously) 198 447.33 B 0.52 0.1 (.) 290.97 447.33 B 0 14 Q (9.6.2) 125 414.27 T 0.7 (Connection State and Flow Contr) 160.49 414.27 P 0.7 (ol) 353.07 414.27 P 1 10 Q 0.52 0.1 (Connections ar) 198 392.93 B 0.52 0.1 (e manipulated using the various) 266.3 392.93 B 0 F 0.52 0.1 (operations) 417.73 392.93 B 1 F 0.52 0.1 ( de\336ned by the) 460.39 392.93 B 0.52 0.1 (multiplexing pr) 198 380.53 B 0.52 0.1 (otocol. The following ar) 269.4 380.53 B 0.52 0.1 (e the names of the operations de\336ned) 378.56 380.53 B 0.51 0.1 (by the pr) 198 368.13 B 0.51 0.1 (otocol: OPEN, CLOSE, CLOSEACK, REQUEST) 239.65 368.13 B 0.51 0.1 (, and TRANSMIT) 452.93 368.13 B 0.51 0.1 (. The) 532.15 368.13 B 0.52 0.1 (exact format and r) 198 355.73 B 0.52 0.1 (ules for all the operations ar) 282.14 355.73 B 0.52 0.1 (e detailed in Section) 411.31 355.73 B 0.52 0.1 (9.6.3,) 506.39 355.73 B 0.52 0.1 (\322Pr) 198 343.33 B 0.52 0.1 (otocol Format.\323) 213.11 343.33 B 0.3 0.1 (The OPEN, CLOSE, and CLOSEACK operations contr) 198 322.93 B 0.3 0.1 (ol connections becoming) 443.02 322.93 B 0.52 0.1 (opened and closed, while the REQUEST and TRANSMIT operations ar) 198 310.53 B 0.52 0.1 (e used) 522.11 310.53 B 0.52 0.1 (to transmit data acr) 198 298.13 B 0.52 0.1 (oss an open connection within the constraints of the \337ow) 287.63 298.13 B 0.52 0.1 (contr) 198 285.73 B 0.52 0.1 (ol mechanism.) 221.25 285.73 B 0 13 Q -0.85 0.13 (Connection States) 198 253.33 B 1 10 Q 0.52 0.1 (A virtual connection is) 198 232.33 B 0 F 0.52 0.1 (open) 305.34 232.33 B 1 F 0.52 0.1 ( with r) 324.63 232.33 B 0.52 0.1 (espect to a particular endpoint if the) 355.47 232.33 B 0.17 0.1 (endpoint has sent an OPEN operation for that connection, or it has r) 198 219.93 B 0.17 0.1 (eceived an) 507.25 219.93 B 0.13 0.1 (OPEN operation for that connection \050and it had not been subsequently closed\051.) 198 207.53 B 0.52 0.1 (The various pr) 198 195.13 B 0.52 0.1 (otocol operations ar) 265.2 195.13 B 0.52 0.1 (e described below) 355.9 195.13 B 0.52 0.1 (.) 437.41 195.13 B 0.21 0.1 (A virtual connection is) 198 174.73 B 0 F 0.21 0.1 (pending close) 304.08 174.73 B 1 F 0.21 0.1 ( with r) 359.95 174.73 B 0.21 0.1 (espect to a particular endpoint if the) 390.16 174.73 B 0.52 0.1 (endpoint has sent a CLOSE operation for that connection, but it has not yet) 198 162.33 B 0.52 0.1 (r) 198 149.93 B 0.52 0.1 (eceived a subsequent CLOSE or CLOSEACK operation for that connection.) 201.87 149.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.74/DEST FmPD2 [/Rect[471 352 558 363]/Border[0 0 0]/Page 82/View[/XYZ null 160 692 FmDC exch pop null]/LNK FmPD [/Rect[54 339 276 352]/Border[0 0 0]/Page 82/View[/XYZ null 160 692 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "74" 80 %%Page: "75" 81 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (75) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (A virtual connection is) 198 641.33 B 0 F 0.52 0.1 (closed) 305.34 641.33 B 1 F 0.52 0.1 ( with r) 330.01 641.33 B 0.52 0.1 (espect to a particular endpoint if it has) 360.85 641.33 B 0.52 0.1 (never been opened, or if it has r) 198 628.93 B 0.52 0.1 (eceived a CLOSE or a CLOSEACK operation) 344.5 628.93 B 0.52 0.1 (for that connection \050and it has not been subsequently opened\051.) 198 616.53 B 0 13 Q -0.85 0.13 (Flow Contr) 198 584.13 B -0.85 0.13 (ol) 258.53 584.13 B 1 10 Q 0.11 0.1 (The multiplexing pr) 198 563.13 B 0.11 0.1 (otocol using a simple packeting \337ow contr) 288.74 563.13 B 0.11 0.1 (ol mechanism to) 480.7 563.13 B 0.52 0.1 (allow multiple virtual connections to exist in parallel over the same concr) 198 550.73 B 0.52 0.1 (ete) 534.96 550.73 B 0.52 0.1 (connection. The high level r) 198 538.33 B 0.52 0.1 (equir) 325.27 538.33 B 0.52 0.1 (ement of the \337ow contr) 348.87 538.33 B 0.52 0.1 (ol mechanism is that) 455.93 538.33 B 0.52 0.1 (the state of all virtual connections is independent; the state of one connection) 198 525.93 B 0.13 0.1 (may not af) 198 513.53 B 0.13 0.1 (fect the behavior of others. For example, if the data buf) 246.34 513.53 B 0.13 0.1 (fers handling) 495.08 513.53 B 0.52 0.1 (data coming in fr) 198 501.13 B 0.52 0.1 (om one connection become full, this cannot pr) 276.98 501.13 B 0.52 0.1 (event the) 488.53 501.13 B 0.07 0.1 (transmission and pr) 198 488.73 B 0.07 0.1 (ocessing of data for any other connection. This is necessary) 288.42 488.73 B 0.19 0.1 (if the pr) 198 476.33 B 0.19 0.1 (oceedings of one connection is dependent on the completion of the use) 234.16 476.33 B 0.52 0.1 (of another connection, such as would happen with r) 198 463.93 B 0.52 0.1 (ecursive RMI calls.) 436.94 463.93 B 0.41 0.1 (Ther) 198 451.53 B 0.41 0.1 (efor) 218.91 451.53 B 0.41 0.1 (e, the practical implication is that the implementation must always be) 236.66 451.53 B 0.52 0.1 (able to consume and pr) 198 439.13 B 0.52 0.1 (ocess all of the multiplexing pr) 305.55 439.13 B 0.52 0.1 (otocol data r) 447.38 439.13 B 0.52 0.1 (eady for) 504.85 439.13 B 0.52 0.1 (input on the concr) 198 426.73 B 0.52 0.1 (ete connection \050assuming that it conforms to this) 281.97 426.73 B 0.1 (speci\336cation\051.) 198 414.33 S 0.52 0.1 (Each endpoint has two state values associated with each connection: how) 198 393.93 B 0.52 0.1 (many bytes of data the endpoint has r) 198 381.53 B 0.52 0.1 (equested but not r) 372.47 381.53 B 0.52 0.1 (eceived \050) 456.07 381.53 B 0 F 0.52 0.1 (input r) 496.8 381.53 B 0.52 0.1 (equest) 526.46 381.53 B 0.52 0.1 (count) 198 369.13 B 1 F 0.52 0.1 (\051 and how many bytes the other endpoint has r) 221.46 369.13 B 0.52 0.1 (equested but have not) 437.77 369.13 B 0.52 0.1 (been supplied by this endpoint \050) 198 356.73 B 0 F 0.52 0.1 (output r) 347.07 356.73 B 0.52 0.1 (equest count) 381.82 356.73 B 1 F 0.52 0.1 (\051.) 434.19 356.73 B 0.52 0.1 (An endpoint\325s output r) 198 336.33 B 0.52 0.1 (equest count is incr) 303.88 336.33 B 0.52 0.1 (eased when it r) 392.75 336.33 B 0.52 0.1 (eceives a REQUEST) 462.95 336.33 B 0.52 0.1 (operation fr) 198 323.93 B 0.52 0.1 (om the other endpoint, and it is decr) 251.98 323.93 B 0.52 0.1 (eased when it sends a) 420.3 323.93 B 0.41 0.1 (TRANSMIT operation. An endpoint\325s input r) 198 311.53 B 0.41 0.1 (equest count is incr) 403.49 311.53 B 0.41 0.1 (eased when it) 492.02 311.53 B 0.1 (sends a REQUEST operation, and it is decr) 198 299.13 S 0.1 (eased when it r) 390.24 299.13 S 0.1 (eceives a TRANSMIT) 458.88 299.13 S 0.52 0.1 (operation. It is a pr) 198 286.73 B 0.52 0.1 (otocol violation if either of these values becomes negative.) 285.9 286.73 B 0.52 0.1 (It is a pr) 198 266.33 B 0.52 0.1 (otocol violation for an endpoint to send a REQUEST operation that) 236.62 266.33 B 0.52 0.1 (would incr) 198 253.93 B 0.52 0.1 (ease its input r) 247.81 253.93 B 0.52 0.1 (equest count to mor) 315.5 253.93 B 0.52 0.1 (e bytes that it can curr) 406.96 253.93 B 0.52 0.1 (ently) 509.59 253.93 B 0.52 0.1 (handle without blocking. It should, however) 198 241.53 B 0.52 0.1 (, make sur) 401.38 241.53 B 0.52 0.1 (e that its input r) 449.14 241.53 B 0.52 0.1 (equest) 523.35 241.53 B 0.52 0.1 (count is gr) 198 229.13 B 0.52 0.1 (eater than zer) 246.63 229.13 B 0.52 0.1 (o if the user of the connection is waiting to r) 309.32 229.13 B 0.52 0.1 (ead data.) 513.11 229.13 B 0.52 0.1 (It is a pr) 198 208.73 B 0.52 0.1 (otocol violation for an endpoint to send a TRANSMIT operation) 236.62 208.73 B 0.52 0.1 (containing mor) 198 196.33 B 0.52 0.1 (e bytes that its output r) 267.48 196.33 B 0.52 0.1 (equest count. It may buf) 374.82 196.33 B 0.52 0.1 (fer outgoing) 486.25 196.33 B 0.52 0.1 (data until the user of the connection r) 198 183.93 B 0.52 0.1 (equests that data written to the) 370.87 183.93 B 0.52 0.1 (connection be explicitly \337ushed. If data must be sent over the connection,) 198 171.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.75/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "75" 81 %%Page: "76" 82 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (76) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (however) 198 641.33 B 0.52 0.1 (, by either an explicit \337ush or because the implementation\325s output) 236.76 641.33 B 0.35 0.1 (buf) 198 628.93 B 0.35 0.1 (fers ar) 213.01 628.93 B 0.35 0.1 (e full, then the user of the connection may be blocked until suf) 241.64 628.93 B 0.35 0.1 (\336cient) 527.08 628.93 B 0.52 0.1 (TRANSMIT operations can pr) 198 616.53 B 0.52 0.1 (oceed.) 334.71 616.53 B 0.52 0.1 (Beyond the r) 198 596.13 B 0.52 0.1 (ules outlined above, implementations ar) 256.83 596.13 B 0.52 0.1 (e fr) 440.61 596.13 B 0.52 0.1 (ee to send REQUEST) 455.92 596.13 B 0.52 0.1 (and TRANSMIT operations as deemed appr) 198 583.73 B 0.52 0.1 (opriate. For example, an endpoint) 399.29 583.73 B 0.52 0.1 (may r) 198 571.33 B 0.52 0.1 (equest mor) 224.68 571.33 B 0.52 0.1 (e data for a connection even if its input buf) 275.47 571.33 B 0.52 0.1 (fer is not empty) 473.71 571.33 B 0.52 0.1 (.) 545.47 571.33 B 0 14 Q (9.6.3) 125 538.27 T 0.7 (Pr) 160.49 538.27 P 0.7 (otocol Format) 174.24 538.27 P 1 10 Q 0.52 0.1 (The byte str) 198 516.93 B 0.52 0.1 (eam format of the multiplexing pr) 252.39 516.93 B 0.52 0.1 (otocol consists of a contiguous) 408.78 516.93 B 0.52 0.1 (series of variable length r) 198 504.53 B 0.52 0.1 (ecor) 314.16 504.53 B 0.52 0.1 (ds. The \336rst byte of the r) 333.02 504.53 B 0.52 0.1 (ecor) 446.4 504.53 B 0.52 0.1 (d is an operation) 465.26 504.53 B 0.52 0.1 (code that identi\336es the operation of the r) 198 492.13 B 0.52 0.1 (ecor) 385.32 492.13 B 0.52 0.1 (d and determines the format of) 404.18 492.13 B 0.52 0.1 (the r) 198 479.73 B 0.52 0.1 (est of its content. The following legal operation codes ar) 219.16 479.73 B 0.52 0.1 (e de\336ned:) 476.06 479.73 B 285.28 458.33 260.4 458.33 2 L V 0.5 H 0 Z N 0.52 0.1 (value) 260.4 459.33 B 372.52 458.33 347.68 458.33 2 L V N 0.52 0.1 (name) 347.68 459.33 B 0.52 0.1 ( 0xE1 OPEN) 198 438.93 B 0.52 0.1 ( 0xE2 CLOSE) 198 418.53 B 0.52 0.1 ( 0xE3 CLOSEACK) 198 398.13 B 0.52 0.1 ( 0xE4 REQUEST) 198 377.73 B 0.52 0.1 ( 0xE5 TRANSMIT) 198 357.33 B 0.52 0.1 (It is a pr) 198 336.93 B 0.52 0.1 (otocol violation if the \336rst byte of a r) 236.62 336.93 B 0.52 0.1 (ecor) 405.46 336.93 B 0.52 0.1 (d is not one of the de\336ned) 424.32 336.93 B 0.52 0.1 (operation codes. The following sections describe the format of the r) 198 324.53 B 0.52 0.1 (ecor) 506.69 324.53 B 0.52 0.1 (ds for) 525.54 324.53 B 0.52 0.1 (each operation code.) 198 312.13 B 0 13 Q -0.85 0.13 (OPEN operation) 198 279.73 B 1 10 Q 0.52 0.1 (This is the format for r) 198 258.73 B 0.52 0.1 (ecor) 301.96 258.73 B 0.52 0.1 (ds of the OPEN operation:) 320.82 258.73 B 280.4 237.33 229.2 237.33 2 L V N 0.52 0.1 (size \050bytes\051) 229.2 238.33 B 330.2 237.33 305.36 237.33 2 L V N 0.52 0.1 (name) 305.36 238.33 B 412.4 237.33 361.4 237.33 2 L V N 0.52 0.1 (description) 361.4 238.33 B 0.52 0.1 ( 1) 198 217.93 B 0 F 0.52 0.1 (opcode) 306.06 217.93 B 1 F 0.52 0.1 ( operation code \050OPEN\051) 333.5 217.93 B 0.52 0.1 ( 2) 198 197.53 B 0 F 0.52 0.1 ( ID) 302.94 197.53 B 1 F 0.52 0.1 ( connection identi\336er) 317.37 197.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.76/DEST FmPD2 160 692/M11.9.40449.Head2.664.Protocol.Format FmPA 160 692/I11.1.3895 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "76" 82 %%Page: "77" 83 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (77) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.06 0.1 (An endpoint sends an OPEN operation to open the indicated connection. It is a) 198 641.33 B 0.21 0.1 (pr) 198 628.93 B 0.21 0.1 (otocol violation if) 207.98 628.93 B 0 F 0.21 0.1 (ID) 290.72 628.93 B 1 F 0.21 0.1 ( r) 302.03 628.93 B 0.21 0.1 (efers to a connection that is curr) 308.71 628.93 B 0.21 0.1 (ently open or pending) 454.1 628.93 B 0.52 0.1 (close with r) 198 616.53 B 0.52 0.1 (espect to the sending endpoint. After the connection is opened,) 251.18 616.53 B 0.52 0.1 (both input and r) 198 604.13 B 0.52 0.1 (equest count states for the connection ar) 273.46 604.13 B 0.52 0.1 (e zer) 457.79 604.13 B 0.52 0.1 (o for both) 479.66 604.13 B 0.1 (endpoints.) 198 591.73 S 0.36 0.1 (Receipt of an OPEN operation indicates that the other endpoint is opening the) 198 571.33 B 0.52 0.1 (indicated connection. After the connection is opened, both input and output) 198 558.93 B 0.52 0.1 (r) 198 546.53 B 0.52 0.1 (equest count states for the connection ar) 201.87 546.53 B 0.52 0.1 (e zer) 386.2 546.53 B 0.52 0.1 (o for both endpoints.) 408.07 546.53 B 0.52 0.1 (T) 198 526.13 B 0.52 0.1 (o pr) 203.31 526.13 B 0.52 0.1 (event identi\336er collisions between the two endpoints, the space of valid) 221.97 526.13 B 0.52 0.1 (connection identi\336ers is divided in half, depending on the value of the most) 198 513.73 B 0.52 0.1 (signi\336cant bit. Each endpoint is only allowed to open connections with a) 198 501.33 B 0.52 0.1 (particular value for the high bit. The endpoint that initiated the concr) 198 488.93 B 0.52 0.1 (ete) 516.21 488.93 B 0.52 0.1 (connection must only open connections with the high bit set in the identi\336er) 198 476.53 B 0.16 0.1 (and the other endpoint must only open connections with a zer) 198 464.13 B 0.16 0.1 (o in the high bit.) 480.42 464.13 B 0.52 0.1 (For example, if an RMI applet that cannot cr) 198 451.73 B 0.52 0.1 (eate a server socket initiates a) 401.42 451.73 B 0.52 0.1 (multiplexed connection to its codebase host, the applet may open virtual) 198 439.33 B 0.52 0.1 (connections in the identi\336er range 0x8000-7FFF) 198 426.93 B 0.52 0.1 (, and the server may open) 412.72 426.93 B 0.52 0.1 (virtual connection in the identi\336er range 0-0x7FFF) 198 414.53 B 0.52 0.1 (.) 426.61 414.53 B 0 13 Q -0.85 0.13 (CLOSE operation) 198 382.13 B 1 10 Q 0.52 0.1 (This is the format for r) 198 361.13 B 0.52 0.1 (ecor) 301.96 361.13 B 0.52 0.1 (ds of the CLOSE operation:) 320.82 361.13 B 280.4 339.73 229.2 339.73 2 L V 0.5 H 0 Z N 0.52 0.1 (size \050bytes\051) 229.2 340.73 B 330.2 339.73 305.36 339.73 2 L V N 0.52 0.1 (name) 305.36 340.73 B 412.4 339.73 361.4 339.73 2 L V N 0.52 0.1 (description) 361.4 340.73 B 0.52 0.1 ( 1) 198 320.33 B 0 F 0.52 0.1 (opcode) 306.06 320.33 B 1 F 0.52 0.1 ( operation code \050OPEN\051) 333.5 320.33 B 0.52 0.1 ( 2) 198 299.93 B 0 F 0.52 0.1 ( ID) 302.94 299.93 B 1 F 0.52 0.1 ( connection identi\336er) 317.37 299.93 B 0.2 0.1 (An endpoint sends a CLOSE operation to close the indicated connection. It is a) 198 279.53 B 0.52 0.1 (pr) 198 267.13 B 0.52 0.1 (otocol violation if) 207.98 267.13 B 0 F 0.52 0.1 (ID) 291.65 267.13 B 1 F 0.52 0.1 ( r) 302.96 267.13 B 0.52 0.1 (efers to a connection that is curr) 309.95 267.13 B 0.52 0.1 (ently closed or) 457.19 267.13 B 0.52 0.1 (pending close with r) 198 254.73 B 0.52 0.1 (espect to the sending endpoint \050it may be pending close) 292.02 254.73 B 0.22 0.1 (with r) 198 242.33 B 0.22 0.1 (espect to the r) 225.42 242.33 B 0.22 0.1 (eceiving endpoint if it has also sent a CLOSE operation for) 288.98 242.33 B 0.52 0.1 (this connection\051. After sending the CLOSE, the connection becomes pending) 198 229.93 B 0.43 0.1 (close for the sending endpoint. Thus, it may not r) 198 217.53 B 0.43 0.1 (eopen the connection until it) 424.31 217.53 B 0.52 0.1 (has r) 198 205.13 B 0.52 0.1 (eceived a CLOSE or a CLOSEACK for it fr) 220.35 205.13 B 0.52 0.1 (om the other endpoint.) 414.28 205.13 B 0.52 0.1 (Receipt of a CLOSE operation indicates that the other endpoint has closed the) 198 184.73 B 0.52 0.1 (indicated connection, and it thus becomes closed on the r) 198 172.33 B 0.52 0.1 (eceiving endpoint.) 460.35 172.33 B 0.52 0.1 (Although the r) 198 159.93 B 0.52 0.1 (eceiving endpoint may not send any mor) 265.72 159.93 B 0.52 0.1 (e operations for this) 454.02 159.93 B 0.52 0.1 (connection \050until it is opened again\051, it still should pr) 198 147.53 B 0.52 0.1 (ovide data in the) 442.53 147.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.77/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "77" 83 %%Page: "78" 84 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (78) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (implementation\325s input buf) 198 641.33 B 0.52 0.1 (fers to r) 323 641.33 B 0.52 0.1 (eaders of the connection. If the connection) 358.74 641.33 B 0.52 0.1 (had pr) 198 628.93 B 0.52 0.1 (eviously been open instead of pending close, the r) 228.33 628.93 B 0.52 0.1 (eceiving endpoint) 457.97 628.93 B 0.52 0.1 (must r) 198 616.53 B 0.52 0.1 (espond with a CLOSEACK operation for the connection.) 227.75 616.53 B 0 13 Q -0.85 0.13 ( CLOSEACK operation) 198 584.13 B 1 10 Q 0.52 0.1 (The following is the format for r) 198 563.13 B 0.52 0.1 (ecor) 346.22 563.13 B 0.52 0.1 (ds with the CLOSEACK operation:) 365.08 563.13 B 280.4 541.73 229.2 541.73 2 L V 0.5 H 0 Z N 0.52 0.1 (size \050bytes\051) 229.2 542.73 B 330.2 541.73 305.36 541.73 2 L V N 0.52 0.1 (name) 305.36 542.73 B 412.4 541.73 361.4 541.73 2 L V N 0.52 0.1 (description) 361.4 542.73 B 0.52 0.1 ( 1) 198 522.33 B 0 F 0.52 0.1 (opcode) 306.06 522.33 B 1 F 0.52 0.1 ( operation code \050OPEN\051) 333.5 522.33 B 0.52 0.1 ( 2) 198 501.93 B 0 F 0.52 0.1 ( ID) 302.94 501.93 B 1 F 0.52 0.1 ( connection identi\336er) 317.37 501.93 B 0.52 0.1 (An endpoint sends a CLOSEACK operation to acknowledge a CLOSE) 198 481.53 B 0.13 0.1 (operation fr) 198 469.13 B 0.13 0.1 (om the r) 251.59 469.13 B 0.13 0.1 (eceiving endpoint. It is a pr) 289.59 469.13 B 0.13 0.1 (otocol violation if ID r) 413.76 469.13 B 0.13 0.1 (efers to a) 514.18 469.13 B 0.52 0.1 (connection that is not pending close for the r) 198 456.73 B 0.52 0.1 (eceiving endpoint when the) 403.25 456.73 B 0.52 0.1 (operation is r) 198 444.33 B 0.52 0.1 (eceived.) 259.02 444.33 B 0.52 0.1 (Receipt of a CLOSEACK operation changes the state of the indicated) 198 423.93 B 0.52 0.1 (connection fr) 198 411.53 B 0.52 0.1 (om pending close to closed, and thus the connection may be) 257.64 411.53 B 0.52 0.1 (r) 198 399.13 B 0.52 0.1 (eopened in the futur) 201.87 399.13 B 0.52 0.1 (e.) 295.72 399.13 B 0 13 Q -0.85 0.13 (REQUEST operation) 198 366.73 B 1 10 Q 0.52 0.1 (This is the format for r) 198 345.73 B 0.52 0.1 (ecor) 301.96 345.73 B 0.52 0.1 (ds of the REQUEST operation:) 320.82 345.73 B 280.4 324.33 229.2 324.33 2 L V N 0.52 0.1 (size \050bytes\051) 229.2 325.33 B 330.2 324.33 305.36 324.33 2 L V N 0.52 0.1 (name) 305.36 325.33 B 412.4 324.33 361.4 324.33 2 L V N 0.52 0.1 (description) 361.4 325.33 B 0.52 0.1 ( 1) 198 304.93 B 0 F 0.52 0.1 (opcode) 306.06 304.93 B 1 F 0.52 0.1 ( operation code \050OPEN\051) 333.5 304.93 B 0.52 0.1 ( 2) 198 284.53 B 0 F 0.52 0.1 ( ID) 302.94 284.53 B 1 F 0.52 0.1 ( connection identi\336er) 317.37 284.53 B 0.52 0.1 ( 4) 198 264.13 B 0 F 0.52 0.1 (count) 306.06 264.13 B 1 F 0.52 0.1 ( number of additional bytes r) 329.52 264.13 B 0.52 0.1 (equested) 495.09 264.13 B 0.52 0.1 (An endpoint sends a REQUEST operation to incr) 198 243.73 B 0.52 0.1 (ease its input r) 421.86 243.73 B 0.52 0.1 (equest count) 489.55 243.73 B 0.52 0.1 (for the indicated connection. It is a pr) 198 231.33 B 0.52 0.1 (otocol violation if) 370.38 231.33 B 0 F 0.52 0.1 (ID) 454.05 231.33 B 1 F 0.52 0.1 ( does not r) 465.36 231.33 B 0.52 0.1 (efer to a) 514.42 231.33 B 0.52 0.1 (connection that is open with r) 198 218.93 B 0.52 0.1 (espect to the sending endpoint. The endpoint\325s) 334.99 218.93 B 0.52 0.1 (input r) 198 206.53 B 0.52 0.1 (equest count is incr) 229.52 206.53 B 0.52 0.1 (emented by the value) 318.39 206.53 B 0 F 0.52 0.1 (count) 420.3 206.53 B 1 F 0.52 0.1 (. The value of) 443.76 206.53 B 0 F 0.52 0.1 (count) 509.75 206.53 B 1 F 0.52 0.1 ( is a) 533.21 206.53 B 0.52 0.1 (signed 32 bit integer) 198 194.13 B 0.52 0.1 (, and it is a pr) 290.63 194.13 B 0.52 0.1 (otocol violation if it is negative or zer) 354.86 194.13 B 0.52 0.1 (o.) 526.78 194.13 B 0.52 0.1 (Receipt of a REQUEST operation causes the output r) 198 173.73 B 0.52 0.1 (equest count for the) 438.84 173.73 B 0.22 0.1 (indicated connection to incr) 198 161.33 B 0.22 0.1 (ease by) 324.2 161.33 B 0 F 0.22 0.1 (count) 360.36 161.33 B 1 F 0.22 0.1 (. If the connection is pending close by) 383.82 161.33 B 0.52 0.1 (the r) 198 148.93 B 0.52 0.1 (eceiving endpoint, then any REQUEST operations may be ignor) 219.16 148.93 B 0.52 0.1 (ed.) 510.89 148.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.78/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "78" 84 %%Page: "79" 85 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 198 108.7 B -0.58 0.09 (9) 232.71 108.7 B -0.58 0.09 (:) 237.3 108.7 B 0 F -0.58 0.09 (RMI W) 243.15 108.7 B -0.58 0.09 (ir) 271.08 108.7 B -0.58 0.09 (e Pr) 277.1 108.7 B -0.58 0.09 (otocol) 291.46 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (79) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (9) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 13 Q 0 X 0 0 0 1 0 0 0 K -0.85 0.13 (TRANSMIT operation) 198 639.33 B 1 10 Q 0.52 0.1 (This is the format for r) 198 618.33 B 0.52 0.1 (ecor) 301.96 618.33 B 0.52 0.1 (ds of the TRANSMIT operation.) 320.82 618.33 B 280.4 596.93 229.2 596.93 2 L V 0.5 H 0 Z N 0.52 0.1 (size \050bytes\051) 229.2 597.93 B 330.2 596.93 305.36 596.93 2 L V N 0.52 0.1 (name) 305.36 597.93 B 412.4 596.93 361.4 596.93 2 L V N 0.52 0.1 (description) 361.4 597.93 B 0.52 0.1 ( 1) 198 577.53 B 0 F 0.52 0.1 (opcode) 306.06 577.53 B 1 F 0.52 0.1 ( operation code \050OPEN\051) 333.5 577.53 B 0.52 0.1 ( 2) 198 557.13 B 0 F 0.52 0.1 ( ID) 302.94 557.13 B 1 F 0.52 0.1 ( connection identi\336er) 317.37 557.13 B 0.52 0.1 ( 4) 198 536.73 B 0 F 0.52 0.1 (count) 306.06 536.73 B 1 F 0.52 0.1 ( number of bytes in transmission) 329.52 536.73 B 0 F 0.52 0.1 (count) 235.44 516.33 B 1 F 0.52 0.1 ( data transmission data) 258.9 516.33 B 0.52 0.1 (An endpoint sends a TRANSMIT operation to actually transmit data over the) 198 495.93 B 0.52 0.1 (indicated connection. It is a pr) 198 483.53 B 0.52 0.1 (otocol violation if ID does not r) 336.93 483.53 B 0.52 0.1 (efer to a) 480.98 483.53 B 0.52 0.1 (connection that is open with r) 198 471.13 B 0.52 0.1 (espect to the sending endpoint. The endpoint\325s) 334.99 471.13 B 0.17 0.1 (output r) 198 458.73 B 0.17 0.1 (equest count is decr) 235.29 458.73 B 0.17 0.1 (emented by the value) 325.26 458.73 B 0 F 0.17 0.1 (count) 425.76 458.73 B 1 F 0.17 0.1 (. The value of) 449.22 458.73 B 0 F 0.17 0.1 (count) 513.79 458.73 B 1 F 0.17 0.1 ( is a) 537.25 458.73 B 0.49 0.1 (signed 32 bit integer) 198 446.33 B 0.49 0.1 (, and it is a pr) 290.55 446.33 B 0.49 0.1 (otocol violation if it is negative or zer) 354.65 446.33 B 0.49 0.1 (o. It is) 526.38 446.33 B 0.44 0.1 (also a pr) 198 433.93 B 0.44 0.1 (otocol violation if the TRANSMIT operation would cause the sending) 237.17 433.93 B 0.52 0.1 (endpoint\325s output r) 198 421.53 B 0.52 0.1 (equest count to become negative.) 286.96 421.53 B 0.52 0.1 (Receipt of a TRANSMIT operation causes the count bytes of data to be added) 198 401.13 B 0.52 0.1 (to the queue of bytes available for r) 198 388.73 B 0.52 0.1 (eading fr) 361.05 388.73 B 0.52 0.1 (om the connection. The r) 402.26 388.73 B 0.52 0.1 (eceiving) 516.12 388.73 B -0.01 0.1 (endpoint\325s input r) 198 376.33 B -0.01 0.1 (equest count is decr) 279.79 376.33 B -0.01 0.1 (emented by) 369.24 376.33 B 0 F -0.01 0.1 (count) 424.81 376.33 B 1 F -0.01 0.1 (. If this causes the input) 448.27 376.33 B 0.52 0.1 (r) 198 363.93 B 0.52 0.1 (equest count to become zer) 201.87 363.93 B 0.52 0.1 (o and the user of the connection is trying to r) 326.39 363.93 B 0.52 0.1 (ead) 534.14 363.93 B 0.52 0.1 (mor) 198 351.53 B 0.52 0.1 (e data, the endpoint should r) 216.36 351.53 B 0.52 0.1 (espond with another REQUEST operation. If) 349.41 351.53 B 0.52 0.1 (the connection is pending close by the r) 198 339.13 B 0.52 0.1 (eceiving endpoint, then any) 379.97 339.13 B 0.52 0.1 (TRANSMIT operations may be ignor) 198 326.73 B 0.52 0.1 (ed.) 366.52 326.73 B 0 13 Q -0.85 0.13 (Pr) 198 294.33 B -0.85 0.13 (otocol V) 211.03 294.33 B -0.85 0.13 (iolations) 253.44 294.33 B 1 10 Q 0.52 0.1 (If a pr) 198 273.33 B 0.52 0.1 (otocol violation occurs, as de\336ned above or if a communication err) 226.22 273.33 B 0.52 0.1 (or is) 532.16 273.33 B 0.52 0.1 (detected in the concr) 198 260.93 B 0.52 0.1 (ete connection, then the multiplexed connection is) 293.24 260.93 B 0 F 0.52 0.1 (shut) 525.67 260.93 B 0.52 0.1 (down) 198 248.53 B 1 F 0.52 0.1 (. The r) 220.62 248.53 B 0.52 0.1 (eal connection is terminated, and all virtual connections become) 250.37 248.53 B 0.52 0.1 (closed immediately) 198 236.13 B 0.52 0.1 (. Data alr) 285.56 236.13 B 0.52 0.1 (eady available for r) 327.78 236.13 B 0.52 0.1 (eading fr) 416.51 236.13 B 0.52 0.1 (om virtual) 457.72 236.13 B 0.52 0.1 (connections may be r) 198 223.73 B 0.52 0.1 (ead by the users of the connections.) 295 223.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.79/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "79" 85 %%Page: "80" 86 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (80) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (9) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.80/DEST FmPD2 [/Dest/L.rmiprotocoldoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "80" 86 %%Page: "81" 87 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 81) 527.45 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Exceptions In RMI) 198 509.31 P 54 653/G12.3601 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (A) 519.82 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 4 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (Exceptions During Remote Object Export) 210.6 438.68 B 4 14 Q 0.14 (\245) 198 418.28 S 1 10 Q 0.52 0.1 (Exceptions During RMI Call) 210.6 418.28 B 4 14 Q 0.14 (\245) 198 397.88 S 1 10 Q 0.52 0.1 (Exceptions or Err) 210.6 397.88 B 0.52 0.1 (ors During Return) 289.78 397.88 B 4 14 Q 0.14 (\245) 198 377.48 S 1 10 Q 0.52 0.1 (Naming Exceptions) 210.6 377.48 B 4 14 Q 0.14 (\245) 198 357.08 S 1 10 Q 0.52 0.1 (Other Exceptions) 210.6 357.08 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.81/DEST FmPD2 [/Dest/F.rmiexceptionsdoc/DEST FmPD2 348 667/M12.9.16028.Head1A.A1.Overview FmPA 348 667/I12.1.3513 FmPA [/Rect[211 434 399 449]/Border[0 0 0]/Page 88/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 413 340 428]/Border[0 0 0]/Page 89/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 393 374 408]/Border[0 0 0]/Page 89/View[/XYZ null 97 606 FmDC exch pop null]/LNK FmPD [/Rect[211 352 289 367]/Border[0 0 0]/Page 91/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 372 300 387]/Border[0 0 0]/Page 90/View[/XYZ null 97 553 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "81" 87 %%Page: "82" 88 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 82) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (A) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (A.1) 64.14 638 T -0.94 (Exceptions During Remote Object Export) 97.27 638 P 54 782/G12.4746 FmPA 1 10 Q 0.52 0.1 (When a r) 198 616.33 B 0.52 0.1 (emote object class is cr) 240.04 616.33 B 0.52 0.1 (eated that extends) 343.66 616.33 B 5 F 1.2 (UnicastRemoteObject) 430.08 616.33 P 1 F 0.52 0.1 (,) 544.08 616.33 B 0.52 0.1 (the object is exported, meaning it can r) 198 603.93 B 0.52 0.1 (eceive calls fr) 375.94 603.93 B 0.52 0.1 (om external Java virtual) 437.45 603.93 B 0.52 0.1 (machines and can be passed in an RMI call as either a parameter or r) 198 591.53 B 0.52 0.1 (eturn) 514.67 591.53 B -0.02 0.1 (value. An object can either be exported on an anonymous port or on a speci\336ed) 198 579.13 B 0.52 0.1 (port. For objects not extended fr) 198 566.73 B 0.52 0.1 (om) 345.08 566.73 B 5 F 1.2 (UnicastRemoteObject) 362.69 566.73 P 1 F 0.52 0.1 (, the) 476.69 566.73 B 5 F -1.26 (java.rmi.server.UnicastRemoteObject.exportObject) 198 554.33 P 1 F -0.55 0.1 ( method is used) 486 554.33 B 0.52 0.1 (to explicitly export the object.) 198 541.93 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Exception) 204 516.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 402 516.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.StubNotFoundException) 204 501.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (1.) 402 501.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Class of stub not found.) 411 501.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (2.) 402 491.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Name collision with class of same) 411 491.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (name as stub causes one of these) 411 481.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (err) 411 471.6 S 0.09 (ors:) 422.53 471.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 402 461.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Stub can\325t be instantiated.) 411 461.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 402 451.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Stub not of corr) 411 451.6 B 0.47 0.09 (ect class.) 475.51 451.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (3.) 402 441.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 ( Bad URL due to wr) 411 441.6 B 0.47 0.09 (ong codebase.) 494.2 441.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (4.) 402 431.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Stub not of corr) 411 431.6 B 0.47 0.09 (ect class.) 475.51 431.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 416.6 S 0.09 (.SkeletonNotFoundException) 264.13 416.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (1.) 402 416.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Class of skeleton not found.) 411 416.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (2.) 402 406.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Name collision with class of same) 411 406.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (name as skeleton causes one of) 411 396.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (these err) 411 386.6 B 0.47 0.09 (ors:) 446.4 386.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 402 376.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Skeleton can\325t be instantiated.) 411 376.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 402 366.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Skeleton not of corr) 411 366.6 B 0.47 0.09 (ect class.) 491.86 366.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (3.) 402 356.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Bad URL due to wr) 411 356.6 B 0.47 0.09 (ong codebase.) 491.4 356.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (4.) 402 346.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Skeleton not of corr) 411 346.6 B 0.47 0.09 (ect class.) 491.86 346.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 331.6 S 0.09 (.ExportException) 264.13 331.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (The port is in use by another VM.) 402 331.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 396 526.75 396 326.45 2 L V 0 Z N 198 526.6 561.6 526.6 2 L V N 198 511.6 561.6 511.6 2 L V 0.5 H N 198 426.6 561.6 426.6 2 L V 0.3 H N 198 341.6 561.6 341.6 2 L V N 198 326.6 561.6 326.6 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.82/DEST FmPD2 97 792/M12.9.22112.Head1A.A1.Exceptions.During.Remote.Object.Export FmPA 97 792/I12.1.4749 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "82" 88 %%Page: "83" 89 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Appendix A:) 198 108.7 B 0 F -0.58 0.09 (Exceptions In RMI) 251.79 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 83) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (A) 524.12 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (A.2) 64.14 638 T -0.94 (Exceptions During RMI Call) 97.27 638 P 54 782/G12.4332 FmPA (A.3) 64.14 451.8 T -0.94 (Exceptions or Err) 97.27 451.8 P -0.94 (ors During Return) 202.06 451.8 P 54 596/G12.4940 FmPA 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Exception) 204 611 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 357 611 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.UnknownHostException) 204 596 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Unknown host.) 357 596 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.ConnectException) 204 581 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Connection r) 357 581 B 0.47 0.09 (efused to host.) 409.97 581 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.ConnectIOException) 204 566 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (I/O err) 357 566 B 0.47 0.09 (or cr) 387.17 566 B 0.47 0.09 (eating connection.) 406.19 566 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.MarshalException) 204 551 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (I/O err) 357 551 B 0.47 0.09 (or marshaling transport header) 387.17 551 B 0.47 0.09 (,) 515.13 551 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (marshaling call header) 357 539.6 B 0.47 0.09 (, or marshaling) 449.93 539.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (ar) 357 528.2 S 0.09 (guments.) 365.07 528.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.NoSuchObjectException) 204 513.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.08 0.09 (Attempt to invoke a method on an object that is) 357 513.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (no longer available.) 357 501.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.StubNotFoundException) 204 486.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Remote object not exported.) 357 486.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 F 0.09 (Exception) 204 424.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 357 424.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.UnmarshalException) 204 409.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (1.) 357 409.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Corr) 366 409.8 B 0.47 0.09 (upted str) 384.69 409.8 B 0.47 0.09 (eam leads to either an) 421.94 409.8 B 0.47 0.09 (I/O or) 515.66 409.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (pr) 366 399.8 B 0.47 0.09 (otocol err) 374.98 399.8 B 0.47 0.09 (or when:) 414.15 399.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 357 389.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Marshaling r) 366 389.8 B 0.47 0.09 (eturn header) 418.79 389.8 B 0.47 0.09 (.) 470.8 389.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 357 379.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Checking r) 366 379.8 B 0.47 0.09 (eturn type.) 410.8 379.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 357 369.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Checking r) 366 369.8 B 0.47 0.09 (eturn code.) 410.8 369.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 14 Q 0.14 (\245) 357 359.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (Unmarshaling r) 366 359.8 B 0.47 0.09 (eturn.) 430.65 359.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (2.) 357 349.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Return value class not found.) 366 349.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.UnexpectedException) 204 334.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (An exception not mentioned in the method) 357 334.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (signatur) 357 323.4 B 0.47 0.09 (e occurr) 390.65 323.4 B 0.47 0.09 (ed, including r) 423.68 323.4 B 0.47 0.09 (untime) 484.27 323.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (exceptions on the client. An exception object) 357 312 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (contains the actual exception.) 357 300.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.ServerErr) 204 285.6 S 0.09 (or) 278.42 285.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Any err) 357 285.6 B 0.47 0.09 (or that occurs while the server is) 388.85 285.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (executing a r) 357 274.2 B 0.47 0.09 (emote method.) 409.98 274.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.ServerException) 204 259.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Any r) 357 259.2 B 0.47 0.09 (emote exception that occurs while the) 380.8 259.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (server is executing a r) 357 247.8 B 0.47 0.09 (emote method. For) 447.39 247.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (examples, see Section) 357 236.4 B 0.47 0.09 (A.3.1, \322Possible Causes) 447.65 236.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (of java.rmi.ServerException\322.) 357 225 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.ServerRuntimeException) 204 210 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Any r) 357 210 B 0.47 0.09 (untime exception that occurs while the) 380.89 210 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (server is executing a method, even if the) 357 198.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (exception is in the method signatur) 357 187.2 B 0.47 0.09 (e. This) 502.66 187.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (exception object contains the underlying) 357 175.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (exception.) 357 164.4 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 351 621.15 351 481.65 2 L V 0 Z N 198 621 558 621 2 L V N 198 606 558 606 2 L V 0.5 H N 198 591 558 591 2 L V 0.3 H N 198 576 558 576 2 L V N 198 561 558 561 2 L V N 198 523.2 558 523.2 2 L V N 198 496.8 558 496.8 2 L V N 198 481.8 558 481.8 2 L V N 351 434.95 351 159.25 2 L V N 198 434.8 558 434.8 2 L V N 198 419.8 558 419.8 2 L V 0.5 H N 198 344.8 558 344.8 2 L V 0.3 H N 198 295.6 558 295.6 2 L V N 198 269.2 558 269.2 2 L V N 198 220 558 220 2 L V N 198 159.4 558 159.4 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.83/DEST FmPD2 97 792/M12.9.26880.Head1A.A2.Exceptions.During.RMI.Call FmPA 97 792/I12.1.4754 FmPA 97 606/M12.9.13840.Head1A.A3.Exceptions.During.Return FmPA 97 606/I12.1.4913 FmPA [/Rect[416 232 552 242]/Border[0 0 0]/Page 90/View[/XYZ null 160 792 FmDC exch pop null]/LNK FmPD [/Rect[357 221 475 232]/Border[0 0 0]/Page 90/View[/XYZ null 160 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "83" 89 %%Page: "84" 90 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 84) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (A) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 14 Q 0 X 0 0 0 1 0 0 0 K (A.3.1) 121.89 638.67 T 0.7 (Possible Causes of java.rmi.ServerException) 160.49 638.67 P 1 10 Q 0.52 0.1 (These ar) 198 617.33 B 0.52 0.1 (e the underlying exceptions which can occur on the server when the) 236.36 617.33 B 0.52 0.1 (server is itself executing a r) 198 604.93 B 0.52 0.1 (emote method invocation. These exceptions ar) 323.59 604.93 B 0.52 0.1 (e) 535.14 604.93 B 0.52 0.1 (wrapped in a) 198 592.53 B 5 F 1.2 (java.rmi.ServerException) 262.3 592.53 P 1 F 0.52 0.1 (; that is the) 406.3 592.53 B 5 F 0.25 (java.rmi.ServerException) 198 580.13 P 1 F 0.11 0.1 ( contains the original exception for the client to) 342 580.13 B 0.14 0.1 (extract. These exceptions ar) 198 567.73 B 0.14 0.1 (e wrapped by) 322.49 567.73 B 5 F 0.31 (ServerException) 387.78 567.73 P 1 F 0.14 0.1 ( so that the client) 477.78 567.73 B -0.05 0.1 (will know that its own r) 198 555.33 B -0.05 0.1 (emote method invocation on the server did not fail, but) 306.06 555.33 B 0.52 0.1 (that a secondary r) 198 542.93 B 0.52 0.1 (emote method invocation made by the server failed.) 280.34 542.93 B 0 15 Q (A.4) 64.14 399.4 T -0.94 (Naming Exceptions) 97.27 399.4 P 54 543/G12.4823 FmPA 1 10 Q 0.52 0.1 (The following table lists the exceptions speci\336ed in methods of the) 198 377.73 B 5 F 1.13 (java.rmi.Naming) 198 365.33 P 1 F 0.49 0.1 (class and the) 295.13 365.33 B 5 F 1.13 (java.rmi.registry.Registry) 357.12 365.33 P 1 F 0.49 0.1 ( interface.) 513.12 365.33 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Exception) 204 517.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 398.4 517.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.server) 204 502.6 S 0.09 (.SkeletonMismatchException) 264.13 502.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Hash mismatch of stub and skeleton.) 398.4 502.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.UnmarshalException) 204 487.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (I/O err) 398.4 487.6 B 0.47 0.09 (or unmarshaling call header) 428.57 487.6 B 0.47 0.09 (.) 543.8 487.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (I/O err) 398.4 476.2 B 0.47 0.09 (or unmarshaling ar) 428.57 476.2 B 0.47 0.09 (guments.) 507.69 476.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.MarshalException) 204 461.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Pr) 398.4 461.2 B 0.47 0.09 (otocol err) 407.41 461.2 B 0.47 0.09 (or marshaling r) 446.58 461.2 B 0.47 0.09 (eturn.) 510.26 461.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.RemoteException) 204 446.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Method number out of range due to) 398.4 446.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (corr) 398.4 434.8 B 0.47 0.09 (upted str) 414.71 434.8 B 0.47 0.09 (eam.) 451.96 434.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 F 0.09 (Exception) 204 340 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 398.4 340 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.AccessException) 204 325 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Operation disallowed. The r) 398.4 325 B 0.47 0.09 (egistry) 514.15 325 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (r) 398.4 313.6 B 0.47 0.09 (estricts bind, r) 401.88 313.6 B 0.47 0.09 (ebind, and unbind to) 460.71 313.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (the same host. The lookup operation) 398.4 302.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (can originate fr) 398.4 290.8 B 0.47 0.09 (om any host.) 461.09 290.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.Alr) 204 275.8 S 0.09 (eadyBoundException) 252.9 275.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Attempt to bind a name that is) 398.4 275.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (alr) 398.4 264.4 B 0.47 0.09 (eady bound.) 409.18 264.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.NotBoundException) 204 249.4 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.14 0.09 (Attempt to look up a name that is not) 398.4 249.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (bound.) 398.4 238 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.UnknownHostException) 204 223 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Attempt to contact a r) 398.4 223 B 0.47 0.09 (egistry on an) 488.98 223 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (unknown host.) 398.4 211.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 392.4 527.75 392.4 429.65 2 L V 0 Z N 198 527.6 558 527.6 2 L V N 198 512.6 558 512.6 2 L V 0.5 H N 198 497.6 558 497.6 2 L V 0.3 H N 198 471.2 558 471.2 2 L V N 198 456.2 558 456.2 2 L V N 198 429.8 558 429.8 2 L V N 392.4 350.15 392.4 206.45 2 L V N 198 350 558 350 2 L V N 198 335 558 335 2 L V 0.5 H N 198 285.8 558 285.8 2 L V 0.3 H N 198 259.4 558 259.4 2 L V N 198 233 558 233 2 L V N 198 206.6 558 206.6 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.84/DEST FmPD2 97 553/M12.9.21008.Head1A.A4.Naming.Exceptions FmPA 97 553/I12.1.4996 FmPA 160 792/M12.9.24568.Head2A.A31.Possible.Causes.of.javarmiServerException FmPA 160 792/I12.1.5057 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "84" 90 %%Page: "85" 91 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Appendix A:) 198 108.7 B 0 F -0.58 0.09 (Exceptions In RMI) 251.79 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page 85) 527.45 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (A) 524.12 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (A.5) 64.14 638 T -0.94 (Other Exceptions) 97.27 638 P 54 782/G12.4824 FmPA 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Exception) 204 611 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Context) 398.4 611 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.RMISecurityException) 204 596 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (A security exception that is thr) 398.4 596 B 0.47 0.09 (own) 525.51 596 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (by the RMISecurityManager) 398.4 584.6 B 0.47 0.09 (.) 513.64 584.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 569.6 S 0.09 (.ServerCloneException) 264.13 569.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Clone failed.) 398.4 569.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 554.6 S 0.09 (.ServerNotActiveException) 264.13 554.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.34 0.09 (Attempt to get the client host via the) 398.4 554.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (RemoteServer) 398.4 543.2 B 0.47 0.09 (.getClientHost method) 454.78 543.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (when the r) 398.4 531.8 B 0.47 0.09 (emote server is not) 442.9 531.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (executing in a r) 398.4 520.4 B 0.47 0.09 (emote method.) 462.23 520.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 505.4 S 0.09 (.SocketSecurityException) 264.13 505.4 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.02 0.09 (Attempt to export object on an illegal) 398.4 505.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (port.) 398.4 494 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 392.4 621.15 392.4 488.85 2 L V 0 Z N 198 621 558 621 2 L V N 198 606 558 606 2 L V 0.5 H N 198 579.6 558 579.6 2 L V 0.3 H N 198 564.6 558 564.6 2 L V N 198 515.4 558 515.4 2 L V N 198 489 558 489 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.85/DEST FmPD2 97 792/M12.9.14901.Head1A.A4.Other FmPA 97 792/I12.1.4809 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "85" 91 %%Page: "86" 92 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page 86) 54 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (A) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.86/DEST FmPD2 [/Dest/L.rmiexceptionsdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "86" 92 %%Page: "87" 93 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (87) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Pr) 198 509.31 P -2.5 (operties In RMI) 217.64 509.31 P 54 653/G13.3601 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (B) 522.48 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 4 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (Server Pr) 210.6 438.68 B 0.52 0.1 (operties) 252.71 438.68 B 4 14 Q 0.14 (\245) 198 418.28 S 1 10 Q 0.52 0.1 (Other Pr) 210.6 418.28 B 0.52 0.1 (operties) 249.91 418.28 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.87/DEST FmPD2 [/Dest/F.rmipropertiesdoc/DEST FmPD2 342 667/M13.9.16028.Head1A.A1.Overview FmPA 342 667/I13.1.3513 FmPA [/Rect[211 434 289 449]/Border[0 0 0]/Page 94/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 413 286 428]/Border[0 0 0]/Page 95/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "87" 93 %%Page: "88" 94 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (88) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (B) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (B.1) 65.8 638 T -0.94 (Server Pr) 97.27 638 P -0.94 (operties) 153.99 638 P 54 782/G13.4746 FmPA 1 10 Q 0.52 0.1 (The following table contains a list of pr) 198 616.33 B 0.52 0.1 (operties typically used by servers for) 378.01 616.33 B 0.1 (con\336guration.) 198 603.93 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Property) 204 578.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Description) 357 578.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.server) 204 563.6 S 0.09 (.codebase) 264.13 563.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Indicates the server) 357 563.6 B 0.47 0.09 (\325s codebase URL wher) 437.96 563.6 B 0.47 0.09 (e) 529.52 563.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (classes ar) 357 552.2 B 0.47 0.09 (e available for clients to download.) 395.38 552.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 537.2 S 0.09 (.disableHttp) 264.13 537.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.31 0.09 (If set to tr) 357 537.2 B 0.31 0.09 (ue, disables the use of HTTP for RMI) 397.12 537.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (calls. This means that RMI will never r) 357 525.8 B 0.47 0.09 (esort to) 516.76 525.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (using HTTP to invoke a call via a \336r) 357 514.4 B 0.47 0.09 (ewall.) 506.84 514.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Defaults to false \050HTTP usage is enabled\051.) 357 503 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 488 S 0.09 (.hostname) 264.13 488 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.26 0.09 (Used to specify the fully-quali\336ed hostname, if) 357 488 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (one is not available via the) 357 476.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (InetAddr) 357 465.2 B 0.47 0.09 (ess.getLocalHost\050\051 call.) 394.63 465.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Not set by default.) 357 453.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.dgc.leaseV) 204 438.8 S 0.09 (alue) 282.5 438.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Sets the maximum lease duration that is) 357 438.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.12 0.09 (granted for clients r) 357 427.4 B -0.12 0.09 (efer) 436.72 427.4 B -0.12 0.09 (encing r) 452.09 427.4 B -0.12 0.09 (emote objects in) 484.74 427.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (the VM. Defaults to 10 minutes.) 357 416 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 401 S 0.09 (.logCalls) 264.13 401 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (If set to tr) 357 401 B 0.47 0.09 (ue, server call logging is turned on) 397.59 401 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (and prints to stderr) 357 389.6 B 0.47 0.09 (. Defaults to false.) 436.61 389.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 374.6 S 0.09 (.useCodebaseOnly) 264.13 374.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (If set to tr) 357 374.6 B 0.47 0.09 (ue, when RMI loads classes \050if not) 397.59 374.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (available via CLASSP) 357 363.2 B 0.47 0.09 (A) 445.11 363.2 B 0.47 0.09 (TH\051 they ar) 451.54 363.2 B 0.47 0.09 (e only) 499.34 363.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.06 0.09 (loaded using the URL speci\336ed by the pr) 357 351.8 B -0.06 0.09 (operty) 522.96 351.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 357 340.4 S 0.09 (.codebase.) 417.13 340.4 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 351 588.75 351 335.25 2 L V 0 Z N 198 588.6 558 588.6 2 L V N 198 573.6 558 573.6 2 L V 0.5 H N 198 547.2 558 547.2 2 L V 0.3 H N 198 498 558 498 2 L V N 198 448.8 558 448.8 2 L V N 198 411 558 411 2 L V N 198 384.6 558 384.6 2 L V N 198 335.4 558 335.4 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.88/DEST FmPD2 97 792/M13.9.22112.Head1A.A1.Exceptions.During.Remote.Object.Export FmPA 97 792/I13.1.4749 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "88" 94 %%Page: "89" 95 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Appendix) 198 108.7 B -0.58 0.09 (B) 240.61 108.7 B -0.58 0.09 (:) 246.19 108.7 B 0 F -0.58 0.09 (Pr) 250.29 108.7 B -0.58 0.09 (operties In RMI) 259.31 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (89) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (B) 526.34 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (B.2) 65.8 638 T -0.94 (Other Pr) 97.27 638 P -0.94 (operties) 150.65 638 P 54 782/G13.4332 FmPA 2 12 Q 0.21 (These properties are used to locate specific implementation classes within) 198 613 P 0.6 (implementation packages.) 198 598 P 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 9 Q 0.09 (Property) 204 551 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Description) 348 551 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.09 (java.rmi.loader) 204 536 S 0.09 (.packagePr) 264.89 536 S 0.09 (e\336x) 309.6 536 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (The package pr) 348 536 B 0.47 0.09 (e\336x for the class that implements) 411.29 536 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (the interface java.rmi.server) 348 524.6 B 0.47 0.09 (.LoaderHandler) 461.77 524.6 B 0.47 0.09 (.) 526.1 524.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Defaults to sun.rmi.server) 348 513.2 B 0.47 0.09 (.) 454.26 513.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.r) 204 498.2 S 0.09 (egistry) 243.1 498.2 S 0.09 (.packagePr) 269.98 498.2 S 0.09 (e\336x) 314.68 498.2 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (The package pr) 348 498.2 B 0.47 0.09 (e\336x for the class that implements) 411.29 498.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (the interface java.rmi.r) 348 486.8 B 0.47 0.09 (egistry) 440.74 486.8 B 0.47 0.09 (.RegistryHandler) 467.62 486.8 B 0.47 0.09 (.) 537.1 486.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Defaults to sun.rmi.r) 348 475.4 B 0.47 0.09 (egistry) 433.24 475.4 B 0.47 0.09 (.) 460.11 475.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (java.rmi.server) 204 460.4 S 0.09 (.packagePr) 264.13 460.4 S 0.09 (e\336x) 308.83 460.4 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (The server package pr) 348 460.4 B 0.47 0.09 (e\336x. Assumes that the) 439.27 460.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (implementation of the server r) 348 449 B 0.47 0.09 (efer) 473.53 449 B 0.47 0.09 (ence classes) 488.9 449 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (\050such as UnicastRef and UnicastServerRef\051 ar) 348 437.6 B 0.47 0.09 (e) 533.86 437.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (located in the package de\336ned by the pr) 348 426.2 B 0.47 0.09 (e\336x.) 513.94 426.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (Defaults to sun.rmi.server) 348 414.8 B 0.47 0.09 (.) 454.26 414.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 342 561.15 342 409.65 2 L V 0 Z N 198 561 558 561 2 L V N 198 546 558 546 2 L V 0.5 H N 198 508.2 558 508.2 2 L V 0.3 H N 198 470.4 558 470.4 2 L V N 198 409.8 558 409.8 2 L V N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.89/DEST FmPD2 97 792/M13.9.26880.Head1A.A2.Exceptions.During.RMI.Call FmPA 97 792/I13.1.4754 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "89" 95 %%Page: "90" 96 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (90) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Remote Method Invocation Speci\336cation) 198 108.7 B 1 F -0.58 0.09 (\321) 372.74 108.7 B 0 F -0.58 0.09 (JDK 1.1.1, Mar) 381.83 108.7 B -0.58 0.09 (ch 24, 1997) 438.5 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (B) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.90/DEST FmPD2 [/Dest/L.rmipropertiesdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 [/Page 1/View[/XYZ null 198 763 FmDC exch pop null]/Title(Java\222 Remote Method Invocation Specification)/Count 1/OUT FmPD [/Page 3/View[/XYZ null 198 667 FmDC exch pop null]/Title(Table of Contents)/Count 11/OUT FmPD [/Page 7/View[/XYZ null 198 667 FmDC exch pop null]/Title(Introduction)/Count -2/OUT FmPD [/Page 7/View[/XYZ null 97 541 FmDC exch pop null]/Title(1.1 Overview)/OUT FmPD [/Page 8/View[/XYZ null 97 617 FmDC exch pop null]/Title(1.2 System Goals)/OUT FmPD [/Page 11/View[/XYZ null 198 667 FmDC exch pop null]/Title(Java Distributed Object Model)/Count -10/OUT FmPD [/Page 11/View[/XYZ null 97 393 FmDC exch pop null]/Title(2.1 Definition of Terms)/OUT FmPD [/Page 12/View[/XYZ null 97 737 FmDC exch pop null]/Title(2.2 The Distributed and Nondistributed Models Cont...)/OUT FmPD [/Page 13/View[/XYZ null 97 792 FmDC exch pop null]/Title(2.3 RMI Interfaces and Classes)/Count -3/OUT FmPD [/Page 13/View[/XYZ null 160 520 FmDC exch pop null]/Title(2.3.1 The Remote Interface)/OUT FmPD [/Page 14/View[/XYZ null 160 688 FmDC exch pop null]/Title(2.3.2 The RemoteException Class)/OUT FmPD [/Page 14/View[/XYZ null 160 538 FmDC exch pop null]/Title(2.3.3 The RemoteObject Class and its Subclasses)/OUT FmPD [/Page 15/View[/XYZ null 97 792 FmDC exch pop null]/Title(2.4 Implementing a Remote Interface)/OUT FmPD [/Page 16/View[/XYZ null 97 792 FmDC exch pop null]/Title(2.5 Type Equivalency of Remote Objects with Local ...)/OUT FmPD [/Page 16/View[/XYZ null 97 559 FmDC exch pop null]/Title(2.6 Parameter Passing in Remote Method Invocation)/Count -2/OUT FmPD [/Page 16/View[/XYZ null 160 347 FmDC exch pop null]/Title(2.6.1 Passing Nonremote Objects)/OUT FmPD [/Page 17/View[/XYZ null 160 704 FmDC exch pop null]/Title(2.6.2 Passing Remote Objects)/OUT FmPD [/Page 17/View[/XYZ null 97 625 FmDC exch pop null]/Title(2.7 Exception Handling in Remote Method Invocation...)/OUT FmPD [/Page 17/View[/XYZ null 97 483 FmDC exch pop null]/Title(2.8 Object Methods Overridden by the RemoteObject ...)/Count -4/OUT FmPD [/Page 17/View[/XYZ null 160 353 FmDC exch pop null]/Title(2.8.1 equals and hashCode)/OUT FmPD [/Page 18/View[/XYZ null 160 644 FmDC exch pop null]/Title(2.8.2 toString)/OUT FmPD [/Page 18/View[/XYZ null 160 528 FmDC exch pop null]/Title(2.8.3 clone)/OUT FmPD [/Page 18/View[/XYZ null 160 378 FmDC exch pop null]/Title(2.8.4 finalize)/OUT FmPD [/Page 19/View[/XYZ null 97 792 FmDC exch pop null]/Title(2.9 The Semantics of Object Methods Declared final...)/OUT FmPD [/Page 19/View[/XYZ null 97 498 FmDC exch pop null]/Title(2.10 Locating Remote Objects)/OUT FmPD [/Page 21/View[/XYZ null 198 667 FmDC exch pop null]/Title(System Architecture)/Count -11/OUT FmPD [/Page 21/View[/XYZ null 97 375 FmDC exch pop null]/Title(3.1 Overview)/OUT FmPD [/Page 22/View[/XYZ null 97 597 FmDC exch pop null]/Title(3.2 Architectural Overview)/OUT FmPD [/Page 24/View[/XYZ null 97 667 FmDC exch pop null]/Title(3.3 The Stub/Skeleton Layer)/OUT FmPD [/Page 25/View[/XYZ null 97 704 FmDC exch pop null]/Title(3.4 The Remote Reference Layer)/OUT FmPD [/Page 26/View[/XYZ null 97 712 FmDC exch pop null]/Title(3.5 The Transport Layer)/OUT FmPD [/Page 27/View[/XYZ null 97 592 FmDC exch pop null]/Title(3.6 Thread Usage in Remote Method Invocations)/OUT FmPD [/Page 27/View[/XYZ null 97 463 FmDC exch pop null]/Title(3.7 Garbage Collection of Remote Objects)/OUT FmPD [/Page 28/View[/XYZ null 97 366 FmDC exch pop null]/Title(3.8 Dynamic Class Loading)/Count -2/OUT FmPD [/Page 29/View[/XYZ null 160 443 FmDC exch pop null]/Title(3.8.1 How a Class Loader is Chosen)/OUT FmPD [/Page 31/View[/XYZ null 160 792 FmDC exch pop null]/Title(3.8.2 Bootstrapping the Client)/OUT FmPD [/Page 32/View[/XYZ null 97 588 FmDC exch pop null]/Title(3.9 Security)/OUT FmPD [/Page 33/View[/XYZ null 97 412 FmDC exch pop null]/Title(3.10 Configuration Scenarios)/Count -3/OUT FmPD [/Page 34/View[/XYZ null 160 792 FmDC exch pop null]/Title(3.10.1 Servers)/OUT FmPD [/Page 34/View[/XYZ null 160 581 FmDC exch pop null]/Title(3.10.2 Applets)/OUT FmPD [/Page 35/View[/XYZ null 160 792 FmDC exch pop null]/Title(3.10.3 Applications)/OUT FmPD [/Page 35/View[/XYZ null 97 445 FmDC exch pop null]/Title(3.11 RMI Through Firewalls Via Proxies)/Count -5/OUT FmPD [/Page 36/View[/XYZ null 160 792 FmDC exch pop null]/Title(3.11.1 How an RMI Call is Packaged within the HTTP...)/OUT FmPD [/Page 36/View[/XYZ null 160 560 FmDC exch pop null]/Title(3.11.2 The Default Socket Factory)/OUT FmPD [/Page 37/View[/XYZ null 160 792 FmDC exch pop null]/Title(3.11.3 Configuring the Client)/OUT FmPD [/Page 37/View[/XYZ null 160 680 FmDC exch pop null]/Title(3.11.4 Configuring the Server)/OUT FmPD [/Page 38/View[/XYZ null 160 706 FmDC exch pop null]/Title(3.11.5 Performance Issues and Limitations)/OUT FmPD [/Page 39/View[/XYZ null 198 667 FmDC exch pop null]/Title(Client Interfaces)/Count -3/OUT FmPD [/Page 39/View[/XYZ null 97 479 FmDC exch pop null]/Title(4.1 The Remote Interface)/OUT FmPD [/Page 39/View[/XYZ null 97 371 FmDC exch pop null]/Title(4.2 The RemoteException Class)/OUT FmPD [/Page 40/View[/XYZ null 97 518 FmDC exch pop null]/Title(4.3 The Naming Class)/OUT FmPD [/Page 43/View[/XYZ null 198 667 FmDC exch pop null]/Title(Server Interfaces)/Count -11/OUT FmPD [/Page 44/View[/XYZ null 97 792 FmDC exch pop null]/Title(5.1 The RemoteObject Class)/OUT FmPD [/Page 44/View[/XYZ null 97 517 FmDC exch pop null]/Title(5.2 The RemoteServer Class)/OUT FmPD [/Page 45/View[/XYZ null 97 687 FmDC exch pop null]/Title(5.3 The UnicastRemoteObject Class)/Count -4/OUT FmPD [/Page 45/View[/XYZ null 160 391 FmDC exch pop null]/Title(5.3.1 Constructing a New Remote Object)/OUT FmPD [/Page 46/View[/XYZ null 160 737 FmDC exch pop null]/Title(5.3.2 Exporting an Implementation Not Extended Fro...)/OUT FmPD [/Page 46/View[/XYZ null 160 493 FmDC exch pop null]/Title(5.3.3 Passing a UnicastRemoteObject in an RMI Call...)/OUT FmPD [/Page 46/View[/XYZ null 160 376 FmDC exch pop null]/Title(5.3.4 Serializing a UnicastRemoteObject)/OUT FmPD [/Page 47/View[/XYZ null 97 724 FmDC exch pop null]/Title(5.4 The Unreferenced Interface)/OUT FmPD [/Page 47/View[/XYZ null 97 425 FmDC exch pop null]/Title(5.5 The RMISecurityManager Class)/OUT FmPD [/Page 51/View[/XYZ null 97 792 FmDC exch pop null]/Title(5.6 The RMIClassLoader Class)/OUT FmPD [/Page 52/View[/XYZ null 97 704 FmDC exch pop null]/Title(5.7 The LoaderHandler Interface)/OUT FmPD [/Page 52/View[/XYZ null 97 461 FmDC exch pop null]/Title(5.8 The RMISocketFactory Class)/OUT FmPD [/Page 54/View[/XYZ null 97 679 FmDC exch pop null]/Title(5.9 The RMIFailureHandler Interface)/OUT FmPD [/Page 54/View[/XYZ null 97 444 FmDC exch pop null]/Title(5.10 The LogStream Class)/OUT FmPD [/Page 56/View[/XYZ null 97 749 FmDC exch pop null]/Title(5.11 Stub and Skeleton Compiler)/OUT FmPD [/Page 57/View[/XYZ null 198 667 FmDC exch pop null]/Title(Registry Interfaces)/Count -3/OUT FmPD [/Page 57/View[/XYZ null 97 377 FmDC exch pop null]/Title(6.1 The Registry Interface)/OUT FmPD [/Page 59/View[/XYZ null 97 712 FmDC exch pop null]/Title(6.2 The LocateRegistry Class)/OUT FmPD [/Page 60/View[/XYZ null 97 792 FmDC exch pop null]/Title(6.3 The RegistryHandler Interface)/OUT FmPD [/Page 61/View[/XYZ null 198 667 FmDC exch pop null]/Title(Stub/Skeleton Interfaces)/Count -6/OUT FmPD [/Page 61/View[/XYZ null 97 424 FmDC exch pop null]/Title(7.1 The RemoteStub Class)/OUT FmPD [/Page 62/View[/XYZ null 97 792 FmDC exch pop null]/Title(7.2 The RemoteCall Interface)/OUT FmPD [/Page 63/View[/XYZ null 97 741 FmDC exch pop null]/Title(7.3 The RemoteRef Interface)/OUT FmPD [/Page 64/View[/XYZ null 97 461 FmDC exch pop null]/Title(7.4 The ServerRef Interface)/OUT FmPD [/Page 65/View[/XYZ null 97 679 FmDC exch pop null]/Title(7.5 The Skeleton Interface)/OUT FmPD [/Page 65/View[/XYZ null 97 406 FmDC exch pop null]/Title(7.6 The Operation Class)/OUT FmPD [/Page 67/View[/XYZ null 198 667 FmDC exch pop null]/Title(Garbage Collector Interfaces)/Count -5/OUT FmPD [/Page 67/View[/XYZ null 97 443 FmDC exch pop null]/Title(8.1 The Interface DGC)/OUT FmPD [/Page 69/View[/XYZ null 97 642 FmDC exch pop null]/Title(8.2 The Lease Class)/OUT FmPD [/Page 69/View[/XYZ null 97 387 FmDC exch pop null]/Title(8.3 The ObjID Class)/OUT FmPD [/Page 71/View[/XYZ null 97 792 FmDC exch pop null]/Title(8.4 The UID Class)/OUT FmPD [/Page 72/View[/XYZ null 97 792 FmDC exch pop null]/Title(8.5 The VMID Class)/OUT FmPD [/Page 73/View[/XYZ null 198 667 FmDC exch pop null]/Title(RMI Wire Protocol)/Count -6/OUT FmPD [/Page 73/View[/XYZ null 97 610 FmDC exch pop null]/Title(9.1 Overview)/OUT FmPD [/Page 74/View[/XYZ null 97 792 FmDC exch pop null]/Title(9.2 RMI Transport Protocol)/Count -2/OUT FmPD [/Page 74/View[/XYZ null 160 547 FmDC exch pop null]/Title(9.2.1 Format of an Output Stream)/OUT FmPD [/Page 76/View[/XYZ null 160 684 FmDC exch pop null]/Title(9.2.2 Format of an Input Stream)/OUT FmPD [/Page 77/View[/XYZ null 97 792 FmDC exch pop null]/Title(9.3 RMI\220s Use of Object Serialization Protocol)/OUT FmPD [/Page 78/View[/XYZ null 97 792 FmDC exch pop null]/Title(9.4 RMI\220s Use of HTTP POST Protocol)/OUT FmPD [/Page 78/View[/XYZ null 97 464 FmDC exch pop null]/Title(9.5 Application Specific Values for RMI)/OUT FmPD [/Page 79/View[/XYZ null 97 685 FmDC exch pop null]/Title(9.6 RMI\220s Multiplexing Protocol)/Count -3/OUT FmPD [/Page 79/View[/XYZ null 160 468 FmDC exch pop null]/Title(9.6.1 Definitions)/OUT FmPD [/Page 80/View[/XYZ null 160 568 FmDC exch pop null]/Title(9.6.2 Connection State and Flow Control)/OUT FmPD [/Page 82/View[/XYZ null 160 692 FmDC exch pop null]/Title(9.6.3 Protocol Format)/OUT FmPD [/Page 87/View[/XYZ null 198 667 FmDC exch pop null]/Title(Exceptions In RMI)/Count -5/OUT FmPD [/Page 88/View[/XYZ null 97 792 FmDC exch pop null]/Title(A.1 Exceptions During Remote Object Export)/OUT FmPD [/Page 89/View[/XYZ null 97 792 FmDC exch pop null]/Title(A.2 Exceptions During RMI Call)/OUT FmPD [/Page 89/View[/XYZ null 97 606 FmDC exch pop null]/Title(A.3 Exceptions or Errors During Return)/Count -1/OUT FmPD [/Page 90/View[/XYZ null 160 792 FmDC exch pop null]/Title(A.3.1 Possible Causes of java.rmi.ServerException)/OUT FmPD [/Page 90/View[/XYZ null 97 553 FmDC exch pop null]/Title(A.4 Naming Exceptions)/OUT FmPD [/Page 91/View[/XYZ null 97 792 FmDC exch pop null]/Title(A.5 Other Exceptions)/OUT FmPD [/Page 93/View[/XYZ null 198 667 FmDC exch pop null]/Title(Properties In RMI)/Count -2/OUT FmPD [/Page 94/View[/XYZ null 97 792 FmDC exch pop null]/Title(B.1 Server Properties)/OUT FmPD [/Page 95/View[/XYZ null 97 792 FmDC exch pop null]/Title(B.2 Other Properties)/OUT FmPD FMENDPAGE %%EndPage: "90" 96 %%Trailer %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 96 %%DocumentFonts: Palatino-Italic %%+ Palatino-Roman %%+ Times-Roman %%+ Palatino-Bold %%+ Times-Bold %%+ Courier %%+ Helvetica %%+ Times-Italic %%EOF .