%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%DocumentNeedsFonts: (atend) %%DocumentSuppliedFonts: (atend) %%Creator: Frame 5.5 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.5, for use with Adobe Unix Frame 5.5 products % % This ps_prolog file is Copyright (c) 1986-1996 Adobe Systems, Incoporated. % All rights reserved. This ps_prolog file may be freely copied and % distributed in conjunction with documents created using FrameMaker, % FrameMaker+SGML, FrameReader, and FrameViewer as long as this % copyright notice is preserved. /FMDocSave save def % % 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.5) 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 { 2 copy exch = = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Adobe Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } 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 /FMsetsize /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 /orghalftone /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 /tintGray ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known systemdict /currentdistillerparams known and { /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 defaultmatrix 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 1] 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 /tintCMYK { 1 tintGray sub FrameCurColors 0 4 getinterval aload pop 4 index mul 5 1 roll 3 index mul 5 1 roll 2 index mul 5 1 roll mul 4 1 roll }bind def /tintRGB { 1 tintGray sub FrameCurColors 4 3 getinterval aload pop 1 exch sub 3 index mul 1 exch sub 4 1 roll 1 exch sub 2 index mul 1 exch sub 4 1 roll 1 exch sub mul 1 exch sub 3 1 roll }bind def /combineColor { /tintGray 1 1 FrameCurGray sub FrameCurColors 7 get mul sub def FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace tintCMYK FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { tintGray RealSetgray } { fMAcrobat not FMPColor graymode and and { tintCMYK RealSetcmykcolor } { tintRGB 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 { tintGray } { 1 } ifelse } { FrameSepIs FMblack eq {tintGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop tintGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop tintGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop tintGray 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 def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix defaultmatrix 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 defaultmatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix defaultmatrix 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 { fMLevel1 { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } { orghalftone sethalftone }ifelse } 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 dup 1 gt {/#copies exch def} {pop} ifelse 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 fMLevel1 not { /orghalftone currenthalftone def }if 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 /FMENDDOCUMENT { FMDocSave restore } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill /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 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 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 { mark statusdict begin /setpageparams where { pop paperwidth paperheight 0 1 {setpageparams} stopped } { true } ifelse { /setpagedevice where { pop 1 dict dup begin /PageSize [ paperwidth paperheight ] def end {setpagedevice} stopped } { true } ifelse } { false } ifelse end {cleartomark true}{cleartomark false}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 { 8 1 roll 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 8 -1 roll } 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 dup 0 ne {div} {pop pop .5} ifelse 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 [FMsetsize 0 0 FMpointsize 0 0] makefont setfont } bind def /Q { /FMpointsize exch def /FMsetsize FMpointsize def F } bind def /QQ { /FMsetsize exch def /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 2 copy 0.0 0.0 1.0 5 3 roll arc round cvi 360 mod exch round cvi 360 mod eq {closepath} if 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.5) FMVERSION 1 1 0 0 612 792 0 1 17 FMDOCUMENT %%IncludeFont: Times-Roman 0 0 /Times-Roman FMFONTDEFINE %%IncludeFont: Times-Bold 1 0 /Times-Bold FMFONTDEFINE %%IncludeFont: Symbol 2 1 /Symbol FMFONTDEFINE %%IncludeFont: Times-Italic 3 0 /Times-Italic FMFONTDEFINE %%IncludeFont: Courier 4 0 /Courier 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 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K J 54 72 558 720 R 7 X V 0 12 Q 0 X (This) 108 500.8 T (is) 132.84 500.8 T (the) 144.35 500.8 T (specification) 162.52 500.8 T (of) 227.34 500.8 T (the) 240.84 500.8 T (standard) 259.01 500.8 T (mapping) 303.17 500.8 T (of) 348.67 500.8 T (Enterprise) 362.18 500.8 T (JavaBeans) 415 500.8 T 0 9.6 Q (TM) 465.65 505.6 T 0 12 Q (1.0) 482.86 500.8 T (architecture) 501.36 500.8 T (to CORBA.) 108 486.8 T 1 15 Q (Please send technical comments on this specification to:) 108 384.8 T (ejb-spec-comments@sun.com) 154 358.8 T (Please send product and business questions to:) 108 312.8 T (ejb-marketing@sun.com) 154 286.8 T 0 12 Q (Copyright) 108 236.8 T 2 F (\343) 159.67 236.8 T 0 F (1998 by Sun Microsystems Inc.) 172.15 236.8 T (901 San Antonio Road, Palo Alto, CA 94303) 108 216.8 T (All rights reserved.) 108 196.8 T 54 72 558 720 C 54 540 558 720 C 0 0 0 1 0 0 0 1 K 54 540 558 720 R 7 X V 153 612 377.98 639 R V 3 24 Q 0 X (Sun Microsystems) 153 623 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 153 549 558 603 R 7 X V 0 X (Enterprise JavaBeans) 153 580.6 T 3 19.2 Q (TM) 364.3 590.2 T 3 24 Q ( to CORBA) 390.96 580.6 T (Mapping) 153 554.6 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 54 657 558 666 R 3 X V 0.5 H 0 Z N 54 666 558 666 2 L V 1 H 2 Z 0 X N 54 675 162 711 R 7 X V 0 X 0 54 675 -54 -675 108 36 BEGINPRINTCODE %! % SUN logo % get width and height from Frame. /dlh exch def /dlw exch def % adjust dlw and translate to make it fit in a Frame rect. .015 dlw mul dup translate /dlw dlw .97 mul def % size of quadrant in logo /qsize 24 def % size of space in slot of U. This is adjusted at small scales /spsize 1 def % since qsize is not adjusted we precompute this /qs2 qsize 2 div def /qs4 qsize 4 div def /sunwd qsize 3.9 mul def /amin { abs exch abs 2 copy lt {pop} {exch pop} ifelse } bind def /amax { abs exch abs 2 copy gt {pop} {exch pop} ifelse } bind def /u { newpath uwd2 neg uht2 moveto 0 uwd2 uht2 sub uwd2 180 0 arc uwd2 uht2 lineto spd2 uht2 lineto 0 uwd2 uht2 sub spd2 0 180 arcn spd2 neg uht2 lineto closepath fill } bind def /quarter { gsave qs4 qs2 translate u qs2 0 translate 180 rotate u grestore } bind def /logo { % adjust space size so that space is maintain at small res. spsize dup dtransform amin 2.5 amax dup idtransform amax /spsize exch def spsize qsize ge { /spsize 0 def } if % compute sizes for U /lw qs2 spsize 2 mul sub 2 div def /spd2 spsize 2 div def /uht2 qsize spsize sub 2 div def /uwd2 lw spd2 add def % draw the quadrants gsave 45 rotate quarter 90 rotate quarter 90 rotate quarter 90 rotate quarter grestore } def /sun { sunwd 272 div dup scale -216.275 -533.334 translate 1 setlinecap 1 setlinejoin 2 setlinewidth % lowleft=216.275,533.334 upright=488.274,635 newpath 270.75 604.375 moveto 266.25 606.25 269.026 615.174 263.5 616.875 curveto 257 618.875 247.488 619.847 244 612.375 curveto 241.375 606.75 244.545 599.441 251.375 596.75 curveto 262.648 592.309 278.206 592.094 283.875 580.125 curveto 286.125 575.375 286.066 566.289 284.625 560.125 curveto 281.5 546.75 265.533 536.608 250.875 535.5 curveto 240.713 534.732 228.457 533.334 219.875 539.875 curveto 221.902 548.102 219 557.25 221.25 565.5 curveto 221.506 566.436 228.205 566.119 229.25 565 curveto 232.75 561.25 231.396 554.125 237.375 550.75 curveto 243.684 547.188 250.147 545.921 256.125 550.875 curveto 260.5 554.5 262.107 564.823 255.625 568.25 curveto 244.572 574.095 232 572 222.375 583.5 curveto 216.275 590.789 217.186 602.558 219.75 611.25 curveto 222 618.875 233.369 629.37 244.625 630.25 curveto 252.625 630.875 273.891 631.686 279.125 624.125 curveto 280.25 622.5 279.625 609.125 277.375 605.125 curveto 276.638 603.813 271.695 603.981 270.75 604.375 curveto closepath fill newpath 395.411 610.875 moveto 395.18 617.191 384.484 612.444 381 616.625 curveto 379.581 618.328 380.496 624.597 382.25 625 curveto 394.505 627.81 398.848 626.858 417.938 632.312 curveto 421.875 633.437 421.5 621.367 421.5 620.25 curveto 421.5 619.062 423.631 619.088 424.625 619.625 curveto 437.125 626.375 447.875 635 462.875 631.125 curveto 471.29 628.951 477.672 621.298 478 612.75 curveto 478.75 593.25 475.539 576.927 477.25 557.25 curveto 477.375 549.5 486.333 552.552 486.875 549.625 curveto 487.347 547.08 488.274 539.692 485.875 539.946 curveto 462.875 542.375 456.875 537.375 451.518 540.375 curveto 449.793 541.34 451.335 549.006 451.518 552.75 curveto 452.518 573.25 453.375 583.75 449.853 604.809 curveto 447.937 616.262 431.5 613.875 423.125 608 curveto 423.125 590 423.107 573.5 423.14 556.025 curveto 423.152 550.156 432.25 552.25 434.75 548.625 curveto 436.547 546.019 435.5 538.375 430.625 539.375 curveto 416.656 542.24 403.875 540.25 389.625 539.375 curveto 387.017 539.214 386.705 544.768 387.25 547.375 curveto 388.189 551.861 395.7 549.335 395.75 553.625 curveto 396 574.728 396.161 590.375 395.411 610.875 curveto closepath fill newpath 295.625 610 moveto 295.087 616.297 285.699 610.944 282.215 615.125 curveto 280.796 616.828 281.711 623.097 283.465 623.5 curveto 295.72 626.31 297.323 624.806 318.125 630.75 curveto 321.625 631.75 321.018 625.242 321.018 624.125 curveto 321.018 600.247 320.099 571.274 323.125 563.75 curveto 327.75 552.25 349.875 557.329 349.875 565.75 curveto 349.875 581.75 350.286 593.875 349.661 610.625 curveto 349.426 616.941 338.734 611.569 335.25 615.75 curveto 333.831 617.453 334.746 623.722 336.5 624.125 curveto 348.755 626.935 354.054 624.947 372.75 631.625 curveto 376.25 632.875 376.125 627.617 376.125 626.5 curveto 376.125 599.75 375.712 581.996 376.125 556.375 curveto 376.25 548.625 385.208 551.677 385.75 548.75 curveto 386.222 546.205 387.159 539.375 384.75 539.5 curveto 367.875 540.375 355.33 536.675 351.25 539.5 curveto 349.625 540.625 351.61 548.144 351.25 551.875 curveto 351.178 552.621 350.377 553.739 349.5 553.25 curveto 340.541 548.24 336.647 537.684 325.375 536.5 curveto 313.54 535.256 300.362 540.698 297.375 552.875 curveto 294.125 566.125 296.875 595.375 295.625 610 curveto closepath fill } def /logotype { gsave % origin of logotype is lower left edge qsize 1.29 mul dup translate logo grestore gsave qsize 2.98 mul qsize .54 mul translate sun grestore gsave qsize 3.01 mul 0 moveto /Helvetica findfont qsize .6 mul round scalefont setfont qsize 3.9 mul (microsystems) stringwidth pop sub 12 div 0 (microsystems) ashow grestore } def dlw qsize 6.879 mul div dup scale logotype showpage ENDPRINTCODE 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 153 612 558 612 2 L 7 X V 0.5 H 0 X N 54 549 558 549 2 L 7 X V 1 H 0 X N 54 72 558 720 C 0 0 612 792 C 54 72 558 162 C 0 0 0 1 0 0 0 1 K 54 72 558 162 R 7 X V 312 108 558 144 R V 3 12 Q 0 X (Rohit Garg) 503.66 136 T (March 23, 1998 3:32 pm) 438.35 114 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 54 117 201 135 R 7 X V 0 X (Version 1.0) 54 127 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 54 153 558 153 2 L 7 X V 1 H 2 Z 0 X N 54 99 558 99 2 L 7 X V 0 X N 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 54 63 558 68 R 7 X V 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (2) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 0 12 Q (RESTRICTED) 126 672 T (RIGHTS:) 202.11 672 T (Use,) 252.21 672 T (duplication) 277.31 672 T (or) 334.74 672 T (disclosure) 348.17 672 T (by) 400.27 672 T (the) 415.7 672 T (government) 433.8 672 T (is) 494.56 672 T (subject) 506 672 T (to) 126 658 T (the) 137.76 658 T (restrictions) 154.84 658 T (as) 210.59 658 T (set) 223.01 658 T (forth) 238.76 658 T (in) 264.51 658 T (subparagraph) 276.27 658 T (\050c\051) 343.34 658 T (\0501\051) 359.08 658 T (\050ii\051) 375.49 658 T (of) 392.58 658 T (the) 405 658 T (Rights) 422.08 658 T (in) 455.85 658 T (Technical) 467.61 658 T (Data) 517.34 658 T (and Computer Software Clause as DFARS 252.227-7013 and FAR 52.227-19.) 126 644 T (Sun,) 126 564 T (Sun) 151.23 564 T (Microsystems,) 173.46 564 T (the) 247.35 564 T (Sun) 265.58 564 T (logo,) 287.81 564 T (Java,) 315.7 564 T (and) 343.58 564 T (all) 364.47 564 T (Java-based) 380.03 564 T (trademarks) 436.23 564 T (and) 493.11 564 T (logos) 514 564 T (are) 126 550 T (trademarks) 143.49 550 T (or) 199.65 550 T (registered) 212.48 550 T (trademarks) 262.64 550 T (of) 318.8 550 T (Sun) 331.63 550 T (Microsystems,) 353.14 550 T (Inc.) 426.32 550 T (in) 447.48 550 T (the) 459.66 550 T (Unites) 477.16 550 T (States) 511.33 550 T (and other countries.) 126 536 T (THIS) 126 476 T (PUBLICATION) 156.3 476 T (IS) 239.93 476 T (PROVIDED) 254.23 476 T (\322AS) 318.53 476 T (IS\323) 342.83 476 T (WITHOUT) 362.46 476 T (WARRANTY) 422.08 476 T (OF) 495.04 476 T (ANY) 514.01 476 T (KIND,) 126 462 T (EITHER) 162.55 462 T (EXPRESS) 208.77 462 T (OR) 263.68 462 T (IMPLIED,) 283.91 462 T (INCLUDING,) 339.13 462 T (BUT) 412.34 462 T (NOT) 439.9 462 T (LIMITED) 468.12 462 T (TO,) 521 462 T (THE) 126 448 T (IMPLIED) 153.21 448 T (WARRANTIES) 205.74 448 T (OF) 288.28 448 T (MECHANTABILITY,) 307.49 448 T (FITNESS) 421.69 448 T (FOR) 472.9 448 T (A) 500.12 448 T (PAR-) 512.66 448 T (TICULAR USE, OR NON-INFRINGEMENT.) 126 434 T (THIS) 126 414 T (PUBLICATION) 155.53 414 T (COULD) 238.38 414 T (INCLUDE) 282.57 414 T (TECHNICAL) 338.09 414 T (INACCURACIES) 408.95 414 T (OR) 500.48 414 T (TY-) 520.01 414 T (POGRAPHICAL) 126 400 T (ERRORS.) 214.43 400 T (CHANGES) 268.54 400 T (ARE) 329.64 400 T (PERIODICALLY) 358.07 400 T (ADDED) 449.83 400 T (TO) 496.24 400 T (THE) 516.67 400 T (INFORMATION) 126 386 T (HEREIN;) 215.42 386 T (THESE) 268.18 386 T (CHANGES) 310.95 386 T (WILL) 373.05 386 T (BE) 408.47 386 T (INCORPORATED) 429.24 386 T (IN) 527.34 386 T (NEW) 126 372 T (EDITIONS) 157.66 372 T (OF) 217.32 372 T (THE) 236.99 372 T (PUBLICATION.) 264.65 372 T (SUN) 351.98 372 T (MICROSYSTEMS,) 380.32 372 T (INC.,) 481 372 T (MAY) 512 372 T (MAKE) 126 358 T (NEW) 163.58 358 T (IMPROVEMENTS) 193.16 358 T (AND/OR) 290.08 358 T (CHANGES) 338.33 358 T (IN) 397.25 358 T (THE) 412.17 358 T (PRODUCT\050S\051) 437.75 358 T (AND/) 510.67 358 T (OR THE PROGRAM\050S\051 DESCRIBED IN THIS PUBLICATION AT ANY TIME.) 126 344 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "2" 2 %%Page: "3" 3 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (3) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 24 Q (Contents) 260 704 T 1 14 Q (1) 145 643.67 T (Introduction) 172 643.67 T (4) 495 643.67 T (2) 145 614.67 T (Goals) 172 614.67 T (5) 495 614.67 T (3) 145 585.67 T (Mapping of Distribution) 172 585.67 T (7) 495 585.67 T (4) 145 556.67 T (Mapping of Naming) 172 556.67 T (10) 488 556.67 T (5) 145 527.67 T (Mapping of Transactions) 172 527.67 T (12) 488 527.67 T (6) 145 498.67 T (Mapping of Security) 172 498.67 T (15) 488 498.67 T (Appendix) 126 469.67 T (A:) 186.1 469.67 T (References) 202.62 469.67 T (16) 488 469.67 T (Appendix) 126 440.67 T (B:) 186.1 440.67 T (Enterprise JavaBeans IDL) 201.85 440.67 T (17) 488 440.67 T (Appendix) 126 411.67 T (C:) 186.1 411.67 T (Example Application) 202.62 411.67 T (19) 488 411.67 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "3" 3 %%Page: "4" 4 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (4) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (1) 99 708 T (Introduction) 126 708 T 0 12 Q (Enterprise) 126 676.8 T (JavaBeans) 177.66 676.8 T 0 9.6 Q (TM) 228.31 681.6 T 0 12 Q (\050EJB\051) 245.04 676.8 T ([1]) 275.38 676.8 T (is) 291.71 676.8 T (a) 302.05 676.8 T (component) 309.71 676.8 T (architecture) 365.38 676.8 T (for) 424.35 676.8 T (development) 440.68 676.8 T (and) 505.01 676.8 T (de-) 524.68 676.8 T (ployment) 126 662.8 T (of) 173.68 662.8 T (object-oriented) 186.01 662.8 T (distributed) 261.01 662.8 T (enterprise-level) 314.68 662.8 T (Java) 391.66 662.8 T (applications.) 415.33 662.8 T (Applications) 478.67 662.8 T (written) 126 648.8 T (using) 163.67 648.8 T (Enterprise) 193.35 648.8 T (JavaBeans) 246.35 648.8 T (are) 300.68 648.8 T (scalable,) 319.01 648.8 T (transactional,) 364.34 648.8 T (and) 432.34 648.8 T (multi-user) 453.34 648.8 T (secure.) 506.35 648.8 T (These) 126 634.8 T (applications) 157.8 634.8 T (can) 218.95 634.8 T (be) 238.75 634.8 T (written) 253.22 634.8 T (once,) 290.37 634.8 T (and) 319.17 634.8 T (then) 339.64 634.8 T (deployed) 363.46 634.8 T (on) 410.6 634.8 T (any) 425.74 634.8 T (EJB-enabled) 446.22 634.8 T (server) 510.68 634.8 T (platform.) 126 620.8 T (We) 126 600.8 T (expect) 145.42 600.8 T (that) 179.51 600.8 T (many) 200.27 600.8 T (EJB) 229.7 600.8 T (servers) 252.47 600.8 T (will) 289.22 600.8 T (be) 310.66 600.8 T (based) 324.76 600.8 T (on) 354.85 600.8 T (the) 369.61 600.8 T (CORBA/IIOP) 387.04 600.8 T ([2]) 457.81 600.8 T (industry) 474.57 600.8 T (stan-) 516.67 600.8 T (dard.) 126 586.8 T (To) 153.11 586.8 T (ensure) 169.22 586.8 T (interoperability) 203.32 586.8 T (among) 280.1 586.8 T (the) 315.55 586.8 T (CORBA-based) 332.99 586.8 T (implementations) 408.43 586.8 T (from) 491.22 586.8 T (mul-) 517.33 586.8 T (tiple-vendors,) 126 572.8 T (we) 195.22 572.8 T (have) 212.1 572.8 T (defined) 237.65 572.8 T (a) 276.53 572.8 T (standard) 284.75 572.8 T (mapping) 328.3 572.8 T (of) 373.2 572.8 T (EJB) 386.08 572.8 T (to) 408.98 572.8 T (CORBA.) 421.21 572.8 T (This) 468.44 572.8 T (document) 492.67 572.8 T (corresponds to the EJB specification version 1.0.) 126 558.8 T 1 14 Q (1.1) 72 531.47 T ( Target Audience) 93 531.47 T 0 12 Q (The) 126 510.8 T (target) 147.11 510.8 T (audience) 176.89 510.8 T (for) 221.99 510.8 T (this) 238.44 510.8 T (specification) 258.23 510.8 T (are) 322 510.8 T (the) 339.11 510.8 T (vendors) 356.22 510.8 T (of) 396.67 510.8 T (transaction) 409.12 510.8 T (processing) 464.23 510.8 T (plat-) 518 510.8 T (forms,) 126 496.8 T (vendors) 160.39 496.8 T (of) 201.77 496.8 T (enterprise) 215.15 496.8 T (application) 265.86 496.8 T (tools,) 322.58 496.8 T (and) 352.3 496.8 T (other) 373.02 496.8 T (vendors) 401.07 496.8 T (who) 442.45 496.8 T (want) 466.51 496.8 T (to) 493.23 496.8 T (use) 505.95 496.8 T (the) 525.34 496.8 T (CORBA/IIOP standard to provide support for Enterprise JavaBeans in their products.) 126 482.8 T 1 14 Q (1.2) 72 455.47 T ( Mapping Overview) 93 455.47 T 0 12 Q (The EJB to CORBA mapping is divided into four areas:) 126 434.8 T (\245) 133 414.8 T 3 F (Mapping) 144 414.8 T (of) 193.56 414.8 T (Distribution) 209.12 414.8 T 0 F (-) 274.03 414.8 T (defines) 284.25 414.8 T (the) 325.13 414.8 T (relationship) 346.02 414.8 T (between) 408.92 414.8 T (an) 455.12 414.8 T (Enterprise) 472.68 414.8 T (JavaBean) 144 400.8 T (and) 194.96 400.8 T (a) 217.27 400.8 T (CORBA) 227.57 400.8 T (object,) 273.89 400.8 T (and) 311.19 400.8 T (the) 333.5 400.8 T (mapping) 353.14 400.8 T (of) 400.12 400.8 T (the) 415.09 400.8 T (Java) 434.73 400.8 T (RMI) 461.03 400.8 T (remote) 488.68 400.8 T (interfaces defined in the EJB specification to OMG IDL.) 144 386.8 T (\245) 133 366.8 T 3 F (Mapping) 144 366.8 T (of) 193.67 366.8 T (Naming) 209.34 366.8 T 0 F (-) 253.68 366.8 T (specifies) 264.01 366.8 T (how) 312.33 366.8 T (COS) 339.33 366.8 T (Naming) 369.01 366.8 T (is) 414 366.8 T (used) 428.34 366.8 T (to) 456.67 366.8 T (locate) 472.35 366.8 T (the) 507.34 366.8 T (EJBHome objects) 144 352.8 T (\245) 133 332.8 T 3 F (Mapping) 144 332.8 T (of) 190.43 332.8 T (Transactions) 202.85 332.8 T 0 F (-) 268.62 332.8 T (defines) 275.71 332.8 T (the) 313.46 332.8 T (mapping) 331.22 332.8 T (of) 376.31 332.8 T (the) 389.4 332.8 T (EJB) 407.15 332.8 T (transaction) 430.25 332.8 T (support) 486 332.8 T (to the OMG Object Transaction Service \050OTS\051 v1.1 [6]) 144 318.8 T (\245) 133 298.8 T 3 F (Mapping) 144 298.8 T (of) 191.29 298.8 T (Security) 204.57 298.8 T 0 F (-) 247.85 298.8 T (defines) 255.8 298.8 T (the) 294.41 298.8 T (mapping) 313.02 298.8 T (of) 358.98 298.8 T (the) 372.92 298.8 T (security) 391.54 298.8 T (features) 433.49 298.8 T (in) 475.42 298.8 T (EJB) 488.71 298.8 T (to) 512.66 298.8 T (CORBA security) 144 284.8 T 1 14 Q (1.3) 72 257.47 T ( Acknowledgments) 93 257.47 T 0 12 Q (Vlada) 126 236.8 T (Matena,) 157.37 236.8 T (Graham) 199.06 236.8 T (Hamilton,) 240.42 236.8 T (Anil) 291.47 236.8 T (Vijendran,) 315.52 236.8 T (Sanjeev) 369.21 236.8 T (Krishnan,) 409.91 236.8 T (Shel) 459.61 236.8 T (Finkelstein,) 483.66 236.8 T (and David Heisser have provided invaluable input to this specification.) 126 222.8 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "4" 4 %%Page: "5" 5 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (5) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (2) 99 708 T (Goals) 126 708 T 0 12 Q (The) 126 680 T (primary) 147.28 680 T (goal) 187.89 680 T (of) 211.17 680 T (this) 223.78 680 T (specification) 243.74 680 T (is) 307.67 680 T (to) 318.3 680 T (define) 330.25 680 T (\322on-the-wire\323) 362.85 680 T (interoperability) 432.11 680 T (so) 508.71 680 T (that) 522 680 T (multiple) 126 666 T (CORBA) 169.35 666 T (based) 214.02 666 T (implementations) 244.68 666 T (of) 328.02 666 T (the) 341.36 666 T (EJB) 359.36 666 T (specification) 382.7 666 T (can) 447.36 666 T (interoperate) 467.35 666 T (on) 528 666 T (the network.) 126 652 T (That) 126 632 T (is,) 151.36 632 T (this) 165.72 632 T (specification) 186.42 632 T (makes) 251.1 632 T (it) 285.12 632 T (possible) 295.16 632 T (to) 337.86 632 T (provide) 350.55 632 T (the) 390.57 632 T (following) 408.6 632 T (EJB/CORBA) 458.63 632 T (in-) 526.67 632 T (teroperability:) 126 618 T (\245) 133 598 T (A) 144 598 T (CORBA) 158 598 T (client) 204.68 598 T (\050written) 236.68 598 T (in) 280.02 598 T (any) 294.69 598 T (CORBA) 317.36 598 T (supported) 364.04 598 T (language\051) 416.7 598 T (can) 469.36 598 T (access) 491.35 598 T (Enterprise JavaBeans deployed in a CORBA based EJB server.) 144 584 T (\245) 133 564 T (A) 144 564 T (client) 155.05 564 T (program) 184.1 564 T (can) 227.15 564 T (mix) 246.19 564 T (calls) 267.25 564 T (to) 291.63 564 T (CORBA) 303.35 564 T (and) 347.08 564 T (EJB) 366.8 564 T (objects) 389.19 564 T (within) 425.57 564 T (a) 458.63 564 T (transaction.) 466.34 564 T (\245) 133 544 T (A) 144 544 T (transaction) 158.55 544 T (can) 217.08 544 T (span) 239.62 544 T (multiple) 267.5 544 T (EJB) 313.39 544 T (objects) 339.28 544 T (that) 379.15 544 T (are) 403.04 544 T (located) 423.57 544 T (on) 464.11 544 T (multiple) 481.99 544 T (CORBA-based EJB servers, provided by different vendors.) 144 530 T 1 14 Q (2.1) 72 201.67 T ( Types of CORBA Clients) 93 201.67 T 0 12 Q (From the discussion above, there are two types of CORBA clients to an EJB Server:) 126 181 T (\245) 133 161 T 1 F (EJB/CORBA) 144 161 T (Client) 216.6 161 T 0 F (-) 251.86 161 T (A) 259.78 161 T (Java) 272.37 161 T (client) 297.62 161 T (that) 328.2 161 T (uses) 350.13 161 T (the) 374.72 161 T (EJB) 393.31 161 T (APIs.) 417.24 161 T (The) 448.16 161 T (client) 470.75 161 T (uses) 501.34 161 T (JNDI) 144 147 T (to) 172.87 147 T (locate) 185.08 147 T (objects,) 216.61 147 T (Java) 256.48 147 T (RMI) 280.68 147 T (over) 306.23 147 T (IIOP) 330.43 147 T (to) 356.63 147 T (invoke) 368.85 147 T (remote) 404.39 147 T (methods,) 440.59 147 T (and) 487.13 147 T (the) 507.34 147 T 3 F (javax.jts.CurrentTransaction) 144 133 T 0 F (interface) 289.29 133 T (to) 337.21 133 T (demarcate) 352.49 133 T (transaction) 407.74 133 T (boundaries.) 466.34 133 T (The) 144 119 T (use) 165.69 119 T (of) 184.71 119 T (CORBA) 197.74 119 T (IDL) 242.11 119 T (is) 265.13 119 T (implicit) 276.17 119 T (\050i.e.) 316.54 119 T (the) 338.23 119 T (programmer) 355.92 119 T (writes) 418.27 119 T (only) 450.62 119 T (Java) 474.99 119 T (code) 499.34 119 T (and the corresponding CORBA IDL is used implicitly by the runtime\051.) 144 105 T 72 72 540 720 C 144 239 540 501.01 C 0 0 0 1 0 0 0 1 K 162.9 324.51 252.9 369.51 R 3 X V 162.9 369.51 216.9 414.51 R V 153.9 315.51 243.9 360.51 R 7 X V 0.5 H 2 Z 0 X N 153.9 360.51 207.9 405.51 R 7 X V 0 X N 0 12 Q (CORBA) 171.9 336.11 T (EJB) 171.9 378.51 T 416.9 323.51 506.9 368.51 R 3 X V 416.9 368.51 470.9 413.51 R V 407.9 314.51 497.9 359.51 R 7 X V 0 X N 407.9 359.51 461.9 404.51 R 7 X V 0 X N (CORBA) 425.9 335.11 T (EJB) 425.9 377.51 T 195.9 303.47 193.26 303.47 195.9 312.7 198.54 303.47 4 Y 1 H 0 Z N 195.9 303.47 193.26 303.47 195.9 312.7 198.54 303.47 4 Y V 195.9 302.97 195.9 278.51 2 L 0.5 H 2 Z N 195.9 278.51 429 278.51 2 L N 428.9 303.47 426.26 303.47 428.9 312.7 431.54 303.47 4 Y 1 H 0 Z N 428.9 303.47 426.26 303.47 428.9 312.7 431.54 303.47 4 Y V 428.9 278.51 428.9 302.97 2 L 0.5 H 2 Z N (vendor 1) 161.9 460.51 T (vendor 2) 285.9 462.31 T (\050client\051) 164.9 436.51 T 287.9 325.51 377.9 370.51 R 3 X V 287.9 370.51 341.9 415.51 R V 278.9 316.51 368.9 361.51 R 7 X V 0 X N 278.9 361.51 332.9 406.51 R 7 X V 0 X N (CORBA) 296.9 337.11 T (EJB) 296.9 379.51 T 320.9 304.47 318.26 304.47 320.9 313.7 323.54 304.47 4 Y 1 H 0 Z N 320.9 304.47 318.26 304.47 320.9 313.7 323.54 304.47 4 Y V 320.9 279.51 320.9 303.97 2 L 0.5 H 2 Z N (vendor 3) 431 461 T (\050server 1\051) 282 438 T (\050server 2\051) 431 439 T 72 72 540 720 C 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "5" 5 %%Page: "6" 6 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (6) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 0 12 Q (An) 144 698 T (Enterprise) 161.44 698 T (JavaBean) 213.53 698 T (running) 262.29 698 T (in) 302.39 698 T (a) 314.5 698 T (CORBA) 322.6 698 T (based) 366.71 698 T (EJB) 396.81 698 T (server) 419.59 698 T (is) 451.68 698 T (also) 462.45 698 T (an) 484.56 698 T (EJB/) 498.66 698 T (CORBA client to other EJBs.) 144 684 T (\245) 133 664 T 1 F (Plain) 144 664 T (CORBA) 174.22 664 T (Client) 221.09 664 T 0 F (-) 255.96 664 T (A) 263.5 664 T (client) 275.71 664 T (written) 305.92 664 T (in) 343.45 664 T (any) 356.33 664 T (language) 377.2 664 T (that) 424.06 664 T (uses) 445.6 664 T (a) 469.81 664 T (language) 478.68 664 T (specific) 144 650 T (bindings) 183.91 650 T (of) 227.84 650 T (the) 240.43 650 T (CORBA) 257.69 650 T (IDL.) 301.62 650 T (Such) 327.2 650 T (a) 353.8 650 T (client) 361.72 650 T (uses) 390.97 650 T (COS) 414.23 650 T (Naming) 440.16 650 T (to) 481.42 650 T (locate) 493.34 650 T (objects,) 144 636 T (CORBA) 187.2 636 T (IDL) 234.74 636 T (to) 260.94 636 T (invoke) 276.48 636 T (remote) 315.35 636 T (methods,) 354.88 636 T (and) 404.75 636 T (OTS) 428.28 636 T (to) 457.15 636 T (demarcate) 472.69 636 T (transactions.) 144 622 T (The) 206.86 622 T (use) 228.05 622 T (of) 246.58 622 T (CORBA) 259.11 622 T (IDL) 302.99 622 T (is) 325.51 622 T (explicit) 336.05 622 T (\050i.e.) 374.58 622 T (the) 395.78 622 T (programmer) 412.98 622 T (creates) 474.83 622 T (an) 510.67 622 T (IDL file and runs an IDL compiler to generate stubs for a given language\051.) 144 608 T (The) 126 588 T (mapping) 147.55 588 T (ensures) 192.45 588 T (that) 231.33 588 T (both) 252.22 588 T (types) 276.45 588 T (of) 304.67 588 T (clients) 317.56 588 T (interoperate) 351.79 588 T (with) 411.99 588 T (a) 436.22 588 T (CORBA-based) 444.44 588 T (EJB) 520 588 T (server by producing the same bits on the wire.) 126 574 T 122 253 540 550 C 0 0 0 1 0 0 0 1 K 304 377 385 494 R 0.5 H 2 Z 0 X N 304 431 385 431 2 L N 0 12 Q (Enterprise) 316 467 T (JavaBeans) 316 455 T (EJB) 323 409 T (server) 323 397 T 447 377 528 494 R N 447 431 528 431 2 L N (Enterprise) 459 467 T (JavaBeans) 459 455 T (EJB) 466 409 T (server) 466 397 T 149 461 221 515 R N (Enterprise) 158 497 T (JavaBeans) 158 485 T (client) 158 473 T 149 377 221 431 R N (Java IDL) 158 412 T (client) 158 400 T 149 297 221 351 R N (CORBA) 158 332 T (C++ client) 158 320 T 436.96 402 436.96 404.64 446.19 402 436.96 399.36 4 Y 1 H 0 Z N 436.96 402 436.96 404.64 446.19 402 436.96 399.36 4 Y V 385 402 436.46 402 2 L 0.5 H 2 Z N 292.82 386.88 291.35 389.08 300.49 391.99 294.29 384.68 4 Y 1 H 0 Z N 292.82 386.88 291.35 389.08 300.49 391.99 294.29 384.68 4 Y V 221 339 292.4 386.6 2 L 0.5 H 2 Z N 291.03 403.22 291.33 405.85 300.2 402.2 290.74 400.59 4 Y 1 H 0 Z N 291.03 403.22 291.33 405.85 300.2 402.2 290.74 400.59 4 Y V 221 411 290.54 403.27 2 L 0.5 H 2 Z N 293.29 417.77 294.91 419.86 300.57 412.11 291.67 415.69 4 Y 1 H 0 Z N 293.29 417.77 294.91 419.86 300.57 412.11 291.67 415.69 4 Y V 221 474 292.9 418.08 2 L 0.5 H 2 Z N 3 F (vendor 4) 320 357 T (vendor 5) 460 357 T (vendor 3) 161 281.8 T (vendor1) 161 448.8 T (vendor 2) 161 362.8 T 0 F (IIOP) 401 408 T (IIOP) 239 415 T (IIOP) 239 469 T (IIOP) 239 370 T 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "6" 6 %%Page: "7" 7 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (7) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (3) 99 708 T (Mapping of Distribution) 126 708 T 0 12 Q (Even) 126 680 T (though) 153.33 680 T (CORBA) 189.34 680 T (does) 233.35 680 T (not) 258.01 680 T (mandate) 276.02 680 T (using) 319.34 680 T (IIOP,) 348.02 680 T (lately,) 377.01 680 T (CORBA) 409.35 680 T (and) 453.36 680 T (IIOP) 473.35 680 T (have) 499.35 680 T (be-) 524.68 680 T (come) 126 666 T (synonymous.) 156.32 666 T (This) 224.33 666 T (document) 250 666 T (assumes) 301.66 666 T (that) 345.99 666 T (the) 368.32 666 T (EJB/CORBA) 387.32 666 T (compliant) 456.33 666 T (imple-) 508.67 666 T (mentations are using IIOP) 126 648.8 T 0 9.6 Q (1) 251.65 653.6 T 0 12 Q ( as the communication protocol.) 256.45 648.8 T 1 14 Q (3.1) 72 621.47 T ( Mapping Java Remote Interfaces to IDL) 93 621.47 T 0 12 Q (For) 126 600.8 T (each) 145.44 600.8 T (Enterprise) 170.19 600.8 T (JavaBean,) 222.28 600.8 T (that) 274.03 600.8 T (is) 294.8 600.8 T (deployed) 305.57 600.8 T (in) 352.33 600.8 T (the) 364.44 600.8 T (EJB) 381.87 600.8 T (Server,) 404.64 600.8 T (there) 441.73 600.8 T (are) 468.49 600.8 T (two) 485.91 600.8 T (remote) 506.68 600.8 T (interfaces) 126 586.8 T (-) 176.65 586.8 T (the) 184.66 586.8 T (bean\325s) 203.34 586.8 T (EJBHome) 238.67 586.8 T (interface,) 292.01 586.8 T (and) 341 586.8 T (the) 362.34 586.8 T (bean\325s) 381.01 586.8 T (EJBObject) 416.35 586.8 T (interface.) 472.35 586.8 T (The) 521.34 586.8 T (Java) 126 572.8 T (Language) 149.59 572.8 T (to) 199.17 572.8 T (IDL) 210.77 572.8 T (Mapping) 233.02 572.8 T ([11]) 278.62 572.8 T (and) 300.87 572.8 T (the) 320.46 572.8 T (Objects) 337.39 572.8 T (by) 376.31 572.8 T (Value) 390.58 572.8 T ([13]) 421.5 572.8 T (OMG) 443.75 572.8 T (specifications) 474.01 572.8 T (describe) 126 558.8 T (precisely) 169.96 558.8 T (how) 217.26 558.8 T (these) 241.91 558.8 T (remote) 270.55 558.8 T (interfaces) 307.85 558.8 T (are) 358.48 558.8 T (mapped) 377.11 558.8 T (to) 419.08 558.8 T (IDL.) 432.4 558.8 T (This) 459.37 558.8 T (mapping) 484.68 558.8 T (to) 530.66 558.8 T (IDL is typically implicit when Java RMI over IIOP is used to access the EJBs.) 126 544.8 T 1 F (3.1.1) 84 521.8 T (Mapping of Handle) 126 521.8 T 0 F (The) 126 501.8 T (Handle) 147.77 501.8 T (object) 185.53 501.8 T (is) 217.97 501.8 T (a) 229.08 501.8 T (value) 237.52 501.8 T (object.) 266.62 501.8 T (Its) 302.06 501.8 T (standard) 317.17 501.8 T (mapping) 360.93 501.8 T (is) 406.04 501.8 T (defined) 417.15 501.8 T (in) 456.25 501.8 T (terms) 468.69 501.8 T (of) 498.47 501.8 T (an) 511.57 501.8 T (In-) 526.01 501.8 T (teroperable Object Refernce \050IOR\051.) 126 487.8 T 4 10 Q (// Handle) 152 469.13 T (value Handle {};) 152 457.13 T (value StandardHandle : Handle {) 152 445.13 T ( public string EJBObjectIOR;) 152 433.13 T (};) 152 421.13 T 1 12 Q (3.1.2) 84 386.8 T (Mapping of EJBMetaObject) 126 386.8 T 0 F (The EJBMetaData is a value object. Its standard mapping is defined as follows:) 126 366.8 T 4 10 Q (// EJBMetaData) 152 348.13 T (value EJBMetaData {};) 152 336.13 T (value StandardEJBMetaData : EJBMetaData {) 152 324.13 T ( public string EJBHomeIOR;) 152 312.13 T ( public string homeClassName;) 152 300.13 T ( public string remoteClassName;) 152 288.13 T ( public string keyClassName;) 152 276.13 T ( public boolean isSession;) 152 264.13 T (};) 152 252.13 T 1 12 Q (3.1.3) 84 217.8 T (Marking of transaction-enabled enterprise bean objects) 126 217.8 T 0 F (An) 126 197.8 T (enterprise) 145.97 197.8 T (bean) 198.59 197.8 T (whose) 226.55 197.8 T (transaction) 262.52 197.8 T (attribute) 320.48 197.8 T (is) 365.79 197.8 T (set) 379.1 197.8 T (to) 397.73 197.8 T 3 F (BEAN_MANAGED) 412.38 197.8 T 0 F (,) 505.7 197.8 T 3 F (SUP-) 514.01 197.8 T (PORTS) 126 183.8 T 0 F (,) 162 183.8 T 3 F (REQUIRED) 168.82 183.8 T 0 F (,) 228.13 183.8 T 3 F (REQUIRES_NEW) 234.95 183.8 T 0 F (,) 322.94 183.8 T (or) 329.76 183.8 T 3 F (MANDATORY) 343.57 183.8 T 0 F (is) 418.06 183.8 T (said) 429.88 183.8 T (to) 453.03 183.8 T (be) 466.18 183.8 T 3 F (transaction-) 481.33 183.8 T (enabled) 126 169.8 T 0 F (.) 163.99 169.8 T (The) 126 149.8 T (CORBA) 147.09 149.8 T (mapping) 190.86 149.8 T (of) 235.29 149.8 T (a) 247.72 149.8 T (transaction-enabled) 255.48 149.8 T (enterprise) 351.88 149.8 T (bean) 401.63 149.8 T (must) 426.71 149.8 T (follow) 452.48 149.8 T (these) 486.24 149.8 T (rules:) 513.34 149.8 T (\245) 133 129.8 T (The) 144 129.8 T (IDL) 166 129.8 T (interface) 189.34 129.8 T (for) 234.66 129.8 T (the) 251.99 129.8 T (enterprise) 270 129.8 T (bean\325s) 320.66 129.8 T (remote) 355.33 129.8 T (interface) 391.99 129.8 T (must) 437.31 129.8 T (inherit) 464 129.8 T (from) 498.67 129.8 T (the) 144 112.6 T 3 F (CosTransactions::TransactionalObject) 161.66 112.6 T 0 F (IDL interface) 357.54 112.6 T 0 9.6 Q (2) 422.51 117.4 T 0 12 Q (.) 427.31 112.6 T 72 84 540 99 C 0 0 0 1 0 0 0 1 K 81 97 225 97 2 L 0.5 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (1.) 90 77.33 T (plain insecure IIOP, SECIOP, or IIOP over SSL) 97.5 77.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "7" 7 %%Page: "8" 8 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (8) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 72 72 540 720 R 7 X V 0 12 Q 0 X (\245) 133 712 T (For) 144 712 T (an) 163.93 712 T (entity) 178.51 712 T (enterprise) 209.11 712 T (bean,) 259.68 712 T (the) 288.6 712 T (IDL) 306.52 712 T (interface) 329.77 712 T (for) 375.01 712 T (the) 392.26 712 T (enterprise) 410.18 712 T (bean\325s) 460.76 712 T (home) 495.34 712 T (interface) 144 698 T (must) 190.66 698 T (inherit) 218.69 698 T (from) 254.71 698 T (the) 282.73 698 T 3 F (CosTransactions::TransactionalObject) 302.08 698 T 0 F (IDL) 502.01 698 T (interface.) 144 684 T (The) 126 664 T (IDL) 151.67 664 T (interface) 178.67 664 T (for) 227.65 664 T (an) 248.65 664 T (enterprise) 266.99 664 T (bean) 321.31 664 T (whose) 350.98 664 T (transaction) 388.64 664 T (attribute) 448.31 664 T (is) 495.31 664 T (set) 510.32 664 T (to) 530.66 664 T 3 F (NOT_SUPPORTED) 126 650 T 0 F (must) 226.66 650 T (not) 253.34 650 T (inherit) 272 650 T (from) 306.67 650 T (the) 333.33 650 T 3 F (CosTransactions::TransactionalObject) 351.32 650 T 0 F (IDL interface.) 126 636 T (See) 126 616 T (\322Generated) 146.03 616 T (IDL\323) 203.37 616 T (on) 231.39 616 T (page) 246.09 616 T (20) 271.75 616 T (for) 286.45 616 T (an) 303.14 616 T (example) 317.17 616 T (of) 360.53 616 T (mapping) 373.23 616 T (the) 417.93 616 T (Java) 435.3 616 T (Remote) 459.32 616 T (interfac-) 499.36 616 T (es in EJB to IDL using the above rules.) 126 602 T 1 14 Q (3.2) 72 574.67 T ( Client Side Stubs) 93 574.67 T 0 12 Q (The) 126 554 T (following) 148.22 554 T (figure) 198.44 554 T (illustrates) 230.66 554 T (the) 280.88 554 T (runtime) 299.11 554 T (objects) 340 554 T (used) 377.55 554 T (in) 403.1 554 T (a) 416 554 T (typical) 424.88 554 T (distributed) 461.11 554 T (EJB-) 516 554 T (enabled CORBA environment.) 126 540 T (Depending) 126 267 T (on) 181.9 267 T (the) 197.14 267 T (client) 215.04 267 T (type,) 244.95 267 T (the) 271.86 267 T (client) 289.76 267 T (stubs) 319.67 267 T (are) 347.58 267 T (either) 365.48 267 T (RMI/IIOP) 396.04 267 T (stubs,) 448.61 267 T (or) 479.53 267 T (plain) 492.77 267 T (IDL) 520.01 267 T (stubs defined by the language-specific CORBA mappings.) 126 253 T (An) 126 233 T (example) 143.54 233 T (of) 187.08 233 T (the) 199.96 233 T (complete) 217.5 233 T (IDL) 264.37 233 T (for) 287.24 233 T (the) 304.12 233 T (remote) 321.66 233 T (interfaces) 357.86 233 T (in) 407.39 233 T (the) 419.6 233 T (Enterprise) 437.15 233 T (JavaBeans) 489.35 233 T (is listed in \322Enterprise JavaBeans IDL\323 on page) 126 219 T (17.) 358.62 219 T 1 14 Q (3.3) 72 191.67 T ( CORBA Object and Enterprise JavaBean Relationship) 93 191.67 T 3 12 Q ( As a server-side implementation technique, the CORBA runtime may use a) 144 171 T (servant implementing the enterprise bean\325s CORBA IDL to field a method) 144 157 T (invocation, and delegate the method invocation to the appropriate enterprise) 144 143 T (bean. One way to achieve this is use TIE based skeletons \050as defined in the) 144 129 T 72 96 540 111 C 0 0 0 1 0 0 0 1 K 81 109 225 109 2 L 0.5 H 2 Z 0 X N 0 0 612 792 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (2.) 90 89.33 T (This) 97.5 89.33 T (is) 117.93 89.33 T (necessary) 127.26 89.33 T (to) 168.78 89.33 T (ensure) 179.22 89.33 T (the) 207.97 89.33 T (implicit) 222.85 89.33 T (propagation) 256.62 89.33 T (of) 307.04 89.33 T (the) 318.03 89.33 T (transaction) 332.9 89.33 T (context) 379.43 89.33 T (from) 411.53 89.33 T (the) 433.62 89.33 T (client) 448.5 89.33 T (to) 473.37 89.33 T (the) 483.8 89.33 T (enter-) 498.68 89.33 T (prise bean.) 90 77.33 T 123 283 540 516 C 0 0 0 1 0 0 0 1 K 347 306 529 469 18 RR 0.5 H 2 Z 0 X N 431.01 340.81 516.36 367.81 13.5 RR 0 Z N 0 12 Q (enterprise Bean) 436.2 350.27 T 419.84 354.62 419.84 357.27 429.06 354.62 419.84 351.98 4 Y 1 H N 419.84 354.62 419.84 357.27 429.06 354.62 419.84 351.98 4 Y V 410.06 354.62 419.34 354.62 2 L 0.5 H 2 Z N (container \324s address space) 344.5 481.19 T 364.88 320 521.69 456.69 18 RR 0 Z N 327.42 417.75 431.95 441.75 12 RR 7 X V 0 X N (EJB home object) 338.69 425.87 T 323.95 342.63 409.54 366.63 12 RR 7 X V 0 X N (EJB object) 340.58 350.75 T (remote) 133.25 395 T 176.41 373.01 178.33 374.83 182.75 366.32 174.49 371.19 4 Y 1 H N 176.41 373.01 178.33 374.83 182.75 366.32 174.49 371.19 4 Y V 166 384 176.07 373.37 2 L 7 X V 0.5 H 2 Z 0 X N (client address space) 128.62 481.06 T (client) 134.94 383.87 T 170.72 415.31 168.39 416.58 175.13 423.41 173.04 414.05 4 Y 1 H 0 Z N 170.72 415.31 168.39 416.58 175.13 423.41 173.04 414.05 4 Y V 164 403 170.48 414.87 2 L 7 X V 0.5 H 2 Z 0 X N 269 435.12 299.38 435.12 2 L 7 X V 1.5 H 0 X N 294.31 427.12 328.19 427.12 2 L 7 X V 0 X N 298.81 434.56 293.75 427.25 2 L 7 X V 0 X N 266.75 358.44 297.13 358.44 2 L 7 X V 0 X N 292.06 350.44 325.94 350.44 2 L 7 X V 0 X N 296.56 357.87 291.5 350.56 2 L 7 X V 0 X N 181.21 347.44 274.92 371.44 12 RR 7 X V 0.5 H 0 Z 0 X N 0 11 Q (EJB object stub) 193.53 355.56 T 169.48 425.19 270.52 449.19 12 RR 7 X V 0 X N 0 12 Q (EJB home stub) 183.66 433.31 T 443.7 376.27 445.68 378.02 449.8 369.36 441.72 374.52 4 Y 1 H N 443.7 376.27 445.68 378.02 449.8 369.36 441.72 374.52 4 Y V 406 419 443.37 376.65 2 L 0.5 H 2 Z N 129 306 287 469 18 RR N (container) 453 439 T (IIOP) 306.67 444.8 T 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "8" 8 %%Page: "9" 9 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (9) 303.5 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 3 12 Q (CORBA v2.x\051 that are initialized with the enterprise bean instance. Since the) 144 712 T (architecture of the stubs and skeletons does not relate to on-the-wire) 144 698 T (interoperability, it is not specified in this document.) 144 684 T 123.98 543 540 660 C 0 0 0 1 0 0 0 1 K 0 12 Q 0 X (client) 170.98 643 T (EJB Server) 363.66 642.8 T 289.98 560 486.98 625 R 0.5 H 2 Z N 158.98 562 244.98 625 R N 179.98 580 232.98 605 12.5 RR N 0 11 Q (object) 186.98 596 T (reference) 186.98 585 T 306.95 593 306.95 595.64 316.17 593 306.95 590.36 4 Y 1 H 0 Z N 306.95 593 306.95 595.64 316.17 593 306.95 590.36 4 Y V 235.98 593 306.45 593 2 L 0.5 H 2 Z N 313.98 580 360.98 606 13 RR N 417.98 571 470.98 612 18 RR N J 362.98 592 366.73 592 2 L N [7.345 6.366] 7.345 I 366.73 592 414.23 592 2 L N J 414.23 592 417.98 592 2 L N J (servant) 320.98 591 T (EJB) 434.98 594 T (instance) 429.98 581 T 0 12 Q (IIOP) 258.98 597 T 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "9" 9 %%Page: "10" 10 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (10) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (4) 99 708 T (Mapping of Naming) 126 708 T 0 12 Q (A) 126 680 T (CORBA) 137.48 680 T (based) 181.63 680 T (EJB) 211.77 680 T (runtime) 234.58 680 T (is) 274.73 680 T (required) 285.55 680 T (to) 328.34 680 T (use) 340.49 680 T (the) 359.3 680 T (OMG) 376.78 680 T (COS) 407.59 680 T (NameService) 433.74 680 T (for) 501.2 680 T (pub-) 518 680 T (lishing) 126 666 T (and) 161.02 666 T (resolving) 180.68 666 T (the) 227.69 666 T (EJBHome) 244.69 666 T (interface) 296.36 666 T (objects.) 340.68 666 T (The) 380.02 666 T (COS) 401.02 666 T (NameService) 426.7 666 T (can) 493.68 666 T (either) 512.68 666 T (be) 126 652 T (accessed) 140.44 652 T (directly) 185.53 652 T (using) 225.31 652 T (the) 254.43 652 T (COS) 272.2 652 T (Naming) 298.66 652 T (API) 340.44 652 T (or) 362.88 652 T (using) 375.99 652 T (the) 405.11 652 T (JNDI) 422.89 652 T (API) 452 652 T (with) 474.44 652 T (the) 498.89 652 T (stan-) 516.67 652 T (dard COS Naming service provider [12].) 126 638 T 1 14 Q (4.1) 72 610.67 T ( COS Namespace Layout) 93 610.67 T 0 12 Q (Each) 126 590 T (bean\325s) 154.25 590 T (deployment) 189.83 590 T (descriptor) 250.75 590 T (contains) 303 590 T (a) 347.26 590 T (property) 356.84 590 T (called) 401.76 590 T (the) 434.68 590 T 4 F (BeanHomeName) 453.6 590 T 0 F (that) 126 576 T (specifies) 147.86 576 T (the) 193.71 576 T (pathname) 212.24 576 T (in) 262.76 576 T (the) 275.96 576 T (name) 294.49 576 T (space) 324.34 576 T (at) 354.86 576 T (which) 367.38 576 T (to) 400.58 576 T (bind) 413.77 576 T (the) 438.97 576 T (enterprise) 457.5 576 T (bean\325s) 508.68 576 T (container object.) 126 562 T (For) 126 542 T (example,) 146.2 542 T (if) 193.39 542 T (an) 204.26 542 T (ejb-jar) 219.12 542 T (contains) 253.98 542 T (four) 297.51 542 T (enterprise) 321.04 542 T (beans) 371.89 542 T (with) 402.75 542 T (container) 427.62 542 T (names:) 475.8 542 T 3 F (bank/) 513.34 542 T (account/checking) 126 528 T 0 F (,) 209.98 528 T 3 F (bank/account/saving) 216.37 528 T 0 F (,) 315.7 528 T 3 F (bank/teller/ATM) 322.1 528 T 0 F (,) 401.43 528 T (and) 407.83 528 T 3 F (bank/manager) 428.55 528 T 0 F (then) 501.27 528 T (the) 525.34 528 T (COS namespace may look as shown in the following figure:) 126 514 T (In the figure above, there are 5 naming contexts:) 126 269.47 T (\245) 133 249.47 T (naming) 144 249.47 T (context) 182.6 249.47 T (0) 220.53 249.47 T (is) 229.13 249.47 T (the) 239.74 249.47 T (root) 257 249.47 T (of) 278.94 249.47 T (the) 291.54 249.47 T (COS) 308.8 249.47 T (name) 334.74 249.47 T (space.) 363.34 249.47 T (It) 395.59 249.47 T (is) 405.52 249.47 T (obtained) 416.13 249.47 T (using) 460.06 249.47 T (ORB\325s) 488.66 249.47 T (resolve_initial_references method with \322NameService\323 as the argument) 144 235.47 T (\245) 133 215.47 T (naming) 144 215.47 T (context) 182.27 215.47 T (1) 219.86 215.47 T (is) 228.13 215.47 T (where) 238.4 215.47 T (the) 269.98 215.47 T (ejb-jar) 286.91 215.47 T (is) 320.5 215.47 T (\322installed\323.) 330.77 215.47 T (Note) 387.36 215.47 T (that) 412.95 215.47 T (we) 433.22 215.47 T (do) 449.48 215.47 T (not) 463.74 215.47 T (mandate) 481.34 215.47 T (any) 144 201.47 T (relationship) 163.76 201.47 T (between) 222.86 201.47 T (naming) 265.28 201.47 T (contexts) 303.71 201.47 T (0) 346.14 201.47 T (and) 354.57 201.47 T (1.) 374.33 201.47 T (If) 385.77 201.47 T (they) 396.19 201.47 T (are) 419.29 201.47 T (not) 436.38 201.47 T (the) 454.14 201.47 T (same,) 471.24 201.47 T (then) 501.34 201.47 T (the client pretty much has to be configured with a path between them.) 144 187.47 T (\245) 133 167.47 T (naming) 144 167.47 T (context) 182.32 167.47 T (2) 219.98 167.47 T (is) 228.3 167.47 T (bound) 238.63 167.47 T (to) 270.95 167.47 T (context1) 282.61 167.47 T (with) 326.27 167.47 T (name) 349.93 167.47 T 4 F (bank) 378.24 167.47 T 0 F (;) 407.04 167.47 T (naming) 412.7 167.47 T (contexts) 451.03 167.47 T (3,) 493.35 167.47 T (and) 504.67 167.47 T (4 are bound to context 2 with names) 144 153.47 T 4 F (account) 321.31 153.47 T 0 F ( and) 371.71 153.47 T 4 F (teller) 395.04 153.47 T 0 F ( respectively) 438.24 153.47 T (The) 126 133.47 T (following) 148.3 133.47 T (rules) 198.62 133.47 T (should) 225.59 133.47 T (be) 261.23 133.47 T (used) 276.2 133.47 T (to) 301.84 133.47 T (construct) 314.82 133.47 T (a) 362.46 133.47 T (CosNaming::Name) 371.43 133.47 T (\050to) 467.74 133.47 T (use) 484.71 133.47 T (in) 504.35 133.47 T (Cos-) 517.33 133.47 T (Naming APIs\051 from a container path.) 126 119.47 T (\245) 133 99.47 T (the container path is parsed from left to right) 144 99.47 T (\245) 133 79.47 T (each \324/\325 separated name is the) 144 79.47 T 3 F (id) 289.28 79.47 T 0 F ( field of a CosNaming::NameComponent, and) 298.62 79.47 T 122.98 285.46 540 490 C 0 0 0 1 0 0 0 1 K 0 X 90 450 4.5 4.5 237.27 385.7 G 0.5 H 2 Z 90 450 4.5 4.5 237.27 385.7 A 90 450 4.5 4.5 201.27 349.7 G 90 450 4.5 4.5 201.27 349.7 A 90 450 4.5 4.5 237.27 349.7 G 90 450 4.5 4.5 237.27 349.7 A 90 450 4.5 4.5 235.48 467.5 G 90 450 4.5 4.5 235.48 467.5 A 268.77 345.2 277.77 354.2 R 7 X V 0 X N 250.77 318.2 259.77 327.2 R 7 X V 0 X N 214.77 318.2 223.77 327.2 R 7 X V 0 X N 178.77 318.2 187.77 327.2 R 7 X V 0 X N 196.77 345.2 187.77 327.2 2 L N 205.77 345.2 214.77 327.2 2 L N 241.77 345.2 250.77 327.2 2 L N 241.77 381.2 268.77 354.2 2 L N 237.24 380.3 237.24 353.3 2 L N 232.77 381.2 205.77 354.2 2 L N J 236.35 459.37 236.35 455.62 2 L N [8.148 7.061] 8.148 I 236.35 455.62 236.35 433.35 2 L N J 236.35 433.35 236.35 429.6 2 L N J 90 450 4.5 4.5 397.32 441.09 G 90 450 4.5 4.5 397.32 441.09 A 394.07 407.04 403.07 416.04 R 7 X V 0 X N 0 12 Q (Namespace) 250.73 467.21 T (Root) 250.73 455.21 T (bank) 242.67 397.36 T (account) 178.2 367.82 T J 90 450 4.5 4.5 236.97 425.93 G 90 450 4.5 4.5 236.97 425.93 A 236.4 421.54 236.4 389.31 2 L N (manager) 263.27 369.61 T (checking) 146.86 334.68 T (Naming Context) 419.08 436.77 T (saving) 200.59 332 T (ATM) 257.9 332 T (teller) 229.24 360.65 T (0) 212.98 463 T (1) 221.98 418.8 T (2) 221.98 382.8 T (3) 185.98 346 T (4) 221.98 346 T (EJBHome) 419.98 409 T 0 0 612 792 C 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "10" 10 %%Page: "11" 11 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (11) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 0 12 Q (\245) 133 712 T (the) 144 712 T 3 F (kind) 161.66 712 T 0 F ( field of the NameComponent is always an empty string \050\322\322\051) 182.33 712 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "11" 11 %%Page: "12" 12 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (12) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (5) 99 708 T (Mapping of Transactions) 126 708 T 0 12 Q (A) 126 680 T (CORBA) 139.11 680 T (based) 184.9 680 T (EJB) 216.68 680 T (runtime) 241.13 680 T (is) 282.91 680 T (required) 295.36 680 T (to) 339.8 680 T (use) 353.58 680 T (OMG) 374.02 680 T (Object) 406.47 680 T (Transaction) 442.91 680 T (Service) 504.01 680 T (\050OTS\051) 126 666 T ([6]) 159.86 666 T (for) 177.05 666 T (transaction) 194.24 666 T (support.) 250.1 666 T (The) 292.3 666 T (following) 314.16 666 T (sections) 364.03 666 T (describe) 405.89 666 T (the) 449.08 666 T (mapping) 466.94 666 T (of) 512.14 666 T (the) 525.34 666 T (transaction concepts in EJB to OMG \050OTS\051.) 126 652 T 1 14 Q (5.1) 72 624.67 T ( Transaction Propagation) 93 624.67 T 0 12 Q (The) 126 604 T (rules) 147.8 604 T (for) 174.26 604 T (the) 191.39 604 T (mapping) 209.19 604 T (of) 254.32 604 T (enterprise) 267.45 604 T (bean\325s) 317.91 604 T (remote) 352.36 604 T (interfaces) 388.82 604 T (to) 438.6 604 T (CORBA) 451.07 604 T (IDL) 495.55 604 T (\050See) 518.68 604 T (Subsection) 126 590 T (3.1.3\051) 181.09 590 T (ensure) 211.5 590 T (that) 245.24 590 T (the) 265.66 590 T (IDL) 282.74 590 T (interface) 305.16 590 T (of) 349.55 590 T (the) 361.97 590 T (remote) 379.05 590 T (interface) 414.79 590 T (for) 459.19 590 T (a) 475.6 590 T (transaction-) 483.35 590 T (enabled) 126 576 T (enterprise) 166.18 576 T (bean) 216.36 576 T (inherits) 241.88 576 T (from) 280.74 576 T (the) 306.93 576 T 3 F (CosTransactions::TransactionalObject) 324.46 576 T 0 F (IDL) 520.01 576 T (interface.) 126 562 T (Inheritence) 126 542 T (from) 183.5 542 T (the) 210.35 542 T 3 F (CosTransactions::TransactionalObject) 228.53 542 T 0 F (inheritence) 425.65 542 T (ensures) 482.49 542 T (that) 522 542 T (the) 126 528 T (ORB) 143.91 528 T (and) 171.82 528 T (OTS) 192.39 528 T (will) 218.3 528 T (propagate) 240.21 528 T (the) 290.77 528 T (client\325s) 308.68 528 T (transaction) 347.24 528 T (context) 403.14 528 T (\050if) 441.71 528 T (the) 456.28 528 T (client) 474.19 528 T (is) 504.09 528 T (asso-) 515.34 528 T (ciated with any transaction context\051 to the enterprise bean object.) 126 514 T 1 14 Q (5.2) 72 486.67 T ( Container support for transactions) 93 486.67 T 0 12 Q (Every) 126 466 T (client) 157.23 466 T (method) 186.46 466 T (invocation) 225.03 466 T (on) 278.26 466 T (an) 292.83 466 T (enterprise) 306.73 466 T (bean) 356.62 466 T (object) 381.84 466 T (is) 413.74 466 T (interposed) 424.31 466 T (by) 476.88 466 T (the) 491.45 466 T (bean\325s) 508.68 466 T (container.) 126 452 T (The) 178.44 452 T (interposition) 201.88 452 T (allows) 267.34 452 T (the) 303.46 452 T (container) 322.91 452 T (to) 372.35 452 T (perform) 386.48 452 T (declarative) 429.91 452 T (transaction) 487.34 452 T (management.) 126 438 T (The) 126 418 T (following) 147.48 418 T (table) 196.96 418 T (shows) 223.1 418 T (what) 255.92 418 T (actions) 282.06 418 T (are) 318.87 418 T (taken) 336.34 418 T (by) 365.15 418 T (the) 379.96 418 T (EJB) 397.45 418 T (server) 420.26 418 T (runtime) 452.4 418 T (for) 492.54 418 T (differ-) 509.35 418 T (ent values of the enterprise bean\325s transaction attribute:) 126 404 T 1 10 Q (Table 1: Declarative Transaction Attribute Management) 185.04 385.33 T 0 F (T) 173.37 345.33 T (ransaction Attrib) 179.12 345.33 T (ute) 246.41 345.33 T (Client\325) 306.85 345.33 T (s transaction) 334.08 345.33 T (operation on) 450.07 357.33 T (T) 436.49 345.33 T (ransactionCurrent) 442.26 345.33 T (on the Serv) 448.61 333.33 T (er) 494.02 333.33 T (TX_NO) 165.95 299.33 T (T_SUPPOR) 198.32 299.33 T (TED) 246.62 299.33 T (-) 343.93 311.33 T (-) 473.54 311.33 T (T1) 340.05 291.33 T (suspend T1) 452.29 291.33 T (in) 451.25 279.33 T (v) 458.63 279.33 T (ok) 463.43 279.33 T (e bean) 473.33 279.33 T (resume T1) 453.95 267.33 T (TX_BEAN_MAN) 165.55 235.33 T (A) 239.08 235.33 T (GED) 245.9 235.33 T (-) 343.93 247.33 T (resume bean\325) 423.55 247.33 T (s transaction) 476.58 247.33 T (in) 451.25 235.33 T (v) 458.63 235.33 T (ok) 463.43 235.33 T (e bean) 473.33 235.33 T (suspend bean\325) 421.88 223.33 T (s transaction) 478.26 223.33 T (T1) 340.05 203.33 T (suspend T1) 452.29 203.33 T (resume bean\325) 423.55 191.33 T (s transaction) 476.58 191.33 T (in) 451.25 179.33 T (v) 458.63 179.33 T (ok) 463.43 179.33 T (e bean) 473.33 179.33 T (suspend bean\325) 421.88 167.33 T (s transaction) 478.26 167.33 T (resume T1) 453.95 155.33 T (TX_REQ) 181.61 123.33 T (UIRED) 219.84 123.33 T (-) 343.93 135.33 T (be) 457.36 135.33 T (gin T2) 466.65 135.33 T (in) 451.25 123.33 T (v) 458.63 123.33 T (ok) 463.43 123.33 T (e bean) 473.33 123.33 T (end) 459.4 108.67 T 0 8 Q (a) 473.84 112.67 T 0 10 Q ( T2) 477.39 108.67 T (T1) 340.05 88.67 T (inherits T1) 453.39 88.67 T 151.2 371.75 151.2 81.58 2 L V 0.5 H 0 Z N 280.8 372.25 280.8 81.08 2 L V N 410.4 372.25 410.4 81.08 2 L V N 540 371.75 540 81.58 2 L V N 150.95 372 540.25 372 2 L V N 151.45 325.25 539.75 325.25 2 L V N 151.45 322.75 539.75 322.75 2 L V N 280.55 304 540.25 304 2 L V N 150.95 260 540.25 260 2 L V N 280.55 216 540.25 216 2 L V N 150.95 148 540.25 148 2 L V N 280.55 101.33 540.25 101.33 2 L V N 150.95 81.33 540.25 81.33 2 L V N 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "12" 12 %%Page: "13" 13 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (13) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 0 12 Q (The) 126 408 T (following) 146.94 408 T (pseudo-code) 195.89 408 T (illustrates) 258.82 408 T (how) 307.77 408 T (a) 330.72 408 T (CORBA-based) 338.33 408 T (container) 413.27 408 T (should) 460.21 408 T (implement) 494.5 408 T (the) 126 394 T (required) 144.92 394 T (semantics) 189.17 394 T (of) 240.76 394 T (the) 255.01 394 T (enterprise) 273.94 394 T (bean\325s) 325.51 394 T (transaction) 361.09 394 T (attribute) 418.01 394 T (\050the) 462.27 394 T (pseudo-code) 485.18 394 T (does not show exception handling\051:) 126 380 T 3 F (\245) 133 334 T (TX_NOT_SUPPORTED) 144 334 T 4 10 Q (clientTransaction = Current.suspend\050\051;) 152 315.33 T (result = instance.method\050args\051;) 152 303.33 T (Current.resume\050clientTransaction\051;) 152 291.33 T (return result;) 152 279.33 T 3 12 Q (\245) 133 240 T (TX_BEAN_MANAGED) 144 240 T 4 10 Q (clientTransaction = Current.suspend\050\051;) 152 221.33 T (Current.resume\050instanceTx\051;) 152 209.33 T (result = instance.method\050args\051;) 152 197.33 T (Current.suspend\050\051;) 152 185.33 T (Current.resume\050clientTransaction\051;) 152 173.33 T (return result;) 152 161.33 T 3 12 Q (\245) 133 134 T (TX_REQUIRED) 144 134 T 4 10 Q (if \050Current.getStatus\050\051 == StatusActive\051 {) 152 115.33 T (return instance.method\050args\051;) 201.6 103.33 T (} else {) 152 91.33 T (Current.begin\050\051;) 201.6 79.33 T 0 F (TX_SUPPOR) 188.24 647.33 T (TS) 243.76 647.33 T (-) 349.77 659.33 T (-) 479.37 659.33 T (T1) 345.88 639.33 T (inherits T1) 459.23 639.33 T (TX_REQ) 174.39 607.33 T (UIRES_NEW) 212.62 607.33 T (-) 349.77 619.33 T (be) 463.19 619.33 T (gin T2) 472.48 619.33 T (in) 457.08 607.33 T (v) 464.46 607.33 T (ok) 469.26 607.33 T (e bean) 479.16 607.33 T (end T2) 467.01 595.33 T (T1) 345.88 575.33 T (suspend T1) 458.12 575.33 T (be) 463.19 563.33 T (gin T2) 472.48 563.33 T (in) 457.08 551.33 T (v) 464.46 551.33 T (ok) 469.26 551.33 T (e bean) 479.16 551.33 T (end T2) 467.01 539.33 T (resume T1) 459.79 527.33 T (TX_MAND) 181.34 495.33 T (A) 229.82 495.33 T (T) 235.93 495.33 T (OR) 241.86 495.33 T (Y) 255.1 495.33 T (-) 349.77 507.33 T (thro) 469.49 507.33 T (w) 485.35 507.33 T (TRANSA) 424.9 495.33 T (CTION_REQ) 464.5 495.33 T (UIR) 519.95 495.33 T (ED) 474.37 483.33 T (T1) 345.88 463.33 T (inherit T1) 461.17 463.33 T 157.03 450 545.83 456 C 0 0 612 792 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (a.) 175.03 443.33 T (end) 181.97 443.33 T (transaction) 198.82 443.33 T (refers) 245.11 443.33 T (to) 270.27 443.33 T (either) 280.46 443.33 T (commit) 305.64 443.33 T (or) 338.61 443.33 T (abort) 349.34 443.33 T (based) 372.3 443.33 T (on) 397.48 443.33 T (the) 409.89 443.33 T (outcome) 424.51 443.33 T (from) 461.36 443.33 T (the) 483.21 443.33 T (method) 497.83 443.33 T (invocation on the bean.) 175.03 431.33 T (T) 179.2 693.33 T (ransaction Attrib) 184.96 693.33 T (ute) 252.25 693.33 T (Client\325) 312.68 693.33 T (s transaction) 339.91 693.33 T (operation on) 455.9 705.33 T (T) 442.33 693.33 T (ransactionCurrent) 448.09 693.33 T (on the Serv) 454.45 681.33 T (er) 499.85 681.33 T 157.03 719.75 157.03 456.25 2 L V 0.5 H 0 Z N 286.63 720.25 286.63 455.75 2 L V N 416.23 720.25 416.23 455.75 2 L V N 545.83 719.75 545.83 456.25 2 L V N 156.78 720 546.08 720 2 L V N 157.28 673.25 545.58 673.25 2 L V N 157.28 670.75 545.58 670.75 2 L V N 286.38 652 546.08 652 2 L V N 156.78 632 546.08 632 2 L V N 286.38 588 546.08 588 2 L V N 156.78 520 546.08 520 2 L V N 286.38 476 546.08 476 2 L V N 156.78 456 546.08 456 2 L V N 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "13" 13 %%Page: "14" 14 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (14) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 4 F (result = instance.method\050args\051;) 201.6 713.33 T (Current.commit\050\051;) 201.6 701.33 T (return result;) 201.6 689.33 T (}) 152 677.33 T 3 12 Q (\245) 133 626 T (TX_SUPPORTS) 144 626 T 4 10 Q (return instance.method\050args\051;) 152 607.33 T 3 12 Q (\245) 133 568 T (TX_REQUIRES_NEW) 144 568 T 4 10 Q (clientTransaction = Current.suspend\050\051;) 152 549.33 T (Current.begin\050\051;) 152 537.33 T (result = instance.method\050args\051;) 152 525.33 T (Current.commit\050\051;) 152 513.33 T (Current.resume\050clientTransaction\051;) 152 501.33 T (return result;) 152 489.33 T 3 12 Q (\245) 133 450 T (TX_MANDATORY) 144 450 T 4 10 Q (if \050Current.getStatus\050\051 == StatusActive\051 {) 152 431.33 T (return instance.method\050args\051;) 201.6 419.33 T (} else {) 152 407.33 T (throw org.omg.CORBA.TRANSACTION_REQUIRED\050...\051;) 201.6 395.33 T (}) 152 383.33 T 1 14 Q (5.3) 72 344.67 T ( Client-side Demarcation) 93 344.67 T 0 12 Q (A) 126 324 T (CORBA) 137.45 324 T (client) 181.57 324 T (will) 211.02 324 T (typically) 232.47 324 T (use) 277.26 324 T (the) 296.03 324 T (OTS) 313.48 324 T (Current) 338.93 324 T (interface) 378.38 324 T (to) 423.13 324 T (demarcate) 435.25 324 T (transaction) 487.34 324 T (boundaries.) 126 310 T (An) 184.74 310 T (EJB) 202.49 310 T (CORBA-based) 225.57 310 T (infrastructure) 301.32 310 T (must) 369.04 310 T (propagate) 395.46 310 T (the) 445.86 310 T (client\325s) 463.61 310 T (transac-) 502.02 310 T (tion context to the transaction-enabled enterprise beans.) 126 296 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "14" 14 %%Page: "15" 15 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (15) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (6) 99 708 T (Mapping of Security) 126 708 T 0 12 Q (The) 126 680 T (main) 148.25 680 T (security) 175.84 680 T (concern) 217.42 680 T (in) 258.99 680 T (the) 271.92 680 T (EJB) 290.17 680 T (specification) 313.77 680 T (is) 378.68 680 T 1 F (access) 390.27 680 T (control) 425.18 680 T 0 F (,) 461.84 680 T (which) 468.43 680 T (requires) 501.35 680 T (the) 126 666 T (server) 143.46 666 T (ORB) 175.56 666 T (to) 203.02 666 T (determine) 215.15 666 T (the) 265.93 666 T (client\325s) 283.39 666 T (identity.) 321.5 666 T (Each) 363.97 666 T (bean) 390.74 666 T (also) 416.19 666 T (has) 438.32 666 T (an) 457.1 666 T (identity) 471.22 666 T (\050spec-) 510.68 666 T (ified) 126 652 T (in) 151.36 652 T (the) 164.06 652 T (bean\325s) 182.09 652 T (deployment) 216.77 652 T (descriptor,\051) 276.8 652 T (which) 335.15 652 T (is) 367.84 652 T (used) 379.21 652 T (for) 404.57 652 T (ACL) 421.93 652 T (checking) 449.29 652 T (when) 495.98 652 T (the) 525.34 652 T (bean) 126 638 T (itself) 151.4 638 T (acts) 178.14 638 T (as) 199.54 638 T (a) 212.27 638 T (client) 220.34 638 T (to) 249.75 638 T (another) 261.83 638 T (bean,) 300.55 638 T (or) 328.95 638 T (when) 341.69 638 T (the) 370.42 638 T (bean) 387.83 638 T (invokes) 413.22 638 T (protected) 453.3 638 T (resourc-) 500.69 638 T (es.) 126 624 T (The) 126 604 T (client) 147.33 604 T (identity) 176.66 604 T (is) 216.01 604 T (based) 226.68 604 T (on) 256.67 604 T (the) 271.34 604 T (actual) 288.68 604 T (security/communication) 320 604 T (protocols) 438.67 604 T (used) 486 604 T (by) 510.67 604 T (the) 525.34 604 T (ORBs:) 126 590 T (\245) 133 570 T 3 F (plain) 144 570 T (IIOP) 171.96 570 T (-) 199.23 570 T 0 F (The) 206.52 570 T (client) 228.46 570 T (identity) 258.41 570 T (is) 298.37 570 T (the) 309.66 570 T 3 F (CORBA::Principal) 327.61 570 T 0 F (that) 427.49 570 T (comes) 448.78 570 T (over) 482.73 570 T (the) 507.34 570 T (wire) 144 556 T (as) 168.31 556 T (part) 181.28 556 T (of) 202.93 556 T (the) 215.9 556 T (IIOP) 233.55 556 T (Request) 259.86 556 T (Message.) 301.51 556 T (The) 349.48 556 T (Principal) 371.12 556 T (can) 417.43 556 T (be) 437.07 556 T (mapped) 451.38 556 T (by) 492.35 556 T (the) 507.34 556 T (ORB to the underlying operating system userid.) 144 542 T (\245) 133 522 T 3 F (Common) 144 522 T (Secure) 190.95 522 T (IIOP) 227.22 522 T 0 F (\050CSI\051[7]) 254.82 522 T (-) 299.1 522 T (The) 306.71 522 T (client) 328.99 522 T (identity) 359.27 522 T (is) 399.56 522 T (defined) 411.18 522 T (by) 450.78 522 T (the) 466.4 522 T (specific) 484.68 522 T (mechanism) 144 508 T (\050GSSKerberos,) 203.24 508 T (SPKM,) 280.8 508 T (CSI-ECMA\051) 321.05 508 T (used) 386.95 508 T (with) 413.52 508 T (SECIOP) 439.44 508 T (\050Secure) 485.35 508 T (IIOP.\051) 144 494 T (\245) 133 474 T 3 F (IIOP) 144 474 T (over) 173.24 474 T (SSL) 199.82 474 T 0 F ([8]) 223.74 474 T (-) 242.99 474 T (The) 252.24 474 T (client\325s) 276.15 474 T (identity) 316.73 474 T (is) 358.66 474 T (the) 371.91 474 T (X.500) 391.83 474 T (distinguished) 426.75 474 T (name) 496.01 474 T (obtained using SSL client authentication.) 144 460 T 3 F ( Note that when CSI or IIOP/SSL are used, then the CORBA::principal is) 144 440 T (deprecated. For real secure interoperability the ORB should implement CSI) 144 426 T (specification, or the CORBAsecurity/SSL specification.) 144 412 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "15" 15 %%Page: "16" 16 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (16) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (Appendix A: References) 248.52 708 T 0 12 Q ([1] Enterprise JavaBeans Specification.) 126 680 T ([2]) 126 660 T (CORBA/IIOP) 142.26 660 T (version) 212.53 660 T (2.1) 250.13 660 T (Specification) 267.4 660 T (\050) 332.99 660 T 3 F (http://www.omg.org/corba/corbaiiop.htm) 336.98 660 T 0 F (\051) 536 660 T ([3] CORBA COS Security Service \050) 126 640 T 3 F (http://www.omg.org/corba/sectrans.htm#sec) 299.65 640 T 0 F (\051) 513.32 640 T ([4] CORBA Interoperability \050http://www.omg.org/docs/interop/96-05-01.ps\051) 126 620 T ([5] Naming Service \050) 126 600 T 3 F (http://www.omg.org/corba/sectrans.htm#nam) 227.64 600 T 0 F (\051) 446.65 600 T ([6] Transaction Service \050) 126 580 T 3 F (http://www.omg.org/corba/sectrans.htm#trans) 245.63 580 T 0 F (\051) 468.65 580 T ([7] Common Secure IIOP \050CSI\051 \050) 126 560 T 3 F (http://www.omg.org/docs/orbos/96-06-20.ps\051) 286.31 560 T 0 F ([8]) 126 540 T (CORBAsecurity/SSL) 149.99 540 T (Interoperability) 263.34 540 T (\050) 347.99 540 T 3 F (http://www.omg.org/docs/orbos/97-02-) 351.98 540 T (04.ps) 144 526 T 0 F (\051) 169.67 526 T ([9] IDL Java Mapping 1.0) 126 506 T (\050) 254.64 506 T 3 F (http://www.omg.org/docs/orbos/97-03-01.ps) 258.64 506 T 0 F (\051) 472.32 506 T ([10] Java to IDL Mapping RFP \050) 126 486 T 3 F (http://www.omg.org/docs/orbos/orbos/97-03-08.ps\051) 283.32 486 T 0 F ([11]) 126 466 T (Java) 149.27 466 T (to) 173.88 466 T (IDL) 186.49 466 T (Mapping,) 209.77 466 T (Joint) 259.38 466 T (Initial) 286 466 T (Submission,) 317.95 466 T (IBM,) 380.25 466 T (Netscape,) 409.2 466 T (Oracle,) 459.46 466 T (Sun,) 497.72 466 T (and) 522.67 466 T (Visigenic \050) 144 452 T 3 F (http://www.omg.org/docs/orbos/97-03-08.pdf) 196.99 452 T 0 F (\051) 415.34 452 T ([12]) 126 432 T (Java) 149.05 432 T (Naming) 173.43 432 T (and) 215.15 432 T (Directory) 235.53 432 T (Service) 284.57 432 T (Providers) 323.61 432 T (\050) 372.66 432 T 3 F (http://java.sun.com/products/jndi/) 376.66 432 T (serviceproviders.html) 144 418 T 0 F (\051) 248.32 418 T ([13] CORBA Objects by Value \050) 126 398 T 3 F (http://www.omg.org/docs/orbos/98-01-18.pdf) 283.64 398 T 0 F (\051) 502 398 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "16" 16 %%Page: "17" 17 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (17) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (Appendix B: Enterprise JavaBeans IDL) 188.49 708 T 1 14 Q (B.1) 72 678.67 T ( ejb.idl) 95.34 678.67 T 4 10 Q (// ejb.idl) 152 659.33 T (#include \322java.lang.ExceptionValue.idl\323) 152 635.33 T (module javax {) 152 611.33 T ( module ejb {) 152 587.33 T ( // CreateException) 152 563.33 T ( value CreateException : ::java:lang:Exception {};) 152 551.33 T ( exception CreateEx {) 152 539.33 T ( CreateException the_value;) 152 527.33 T ( };) 152 515.33 T ( // DuplicateKeyException) 152 491.33 T ( value DuplicateKeyException : ::java:lang:Exception {};) 152 479.33 T ( exception DuplicateKeyEx {) 152 467.33 T ( DuplicateKeyException the_value;) 152 455.33 T ( };) 152 443.33 T ( // EJBException) 152 419.33 T ( value EJBException : ::java:lang:Exception {};) 152 407.33 T ( exception EJBEx {) 152 395.33 T ( EJBException the_value;) 152 383.33 T ( };) 152 371.33 T ( // FinderException) 152 347.33 T ( value FinderException : ::java:lang:Exception {};) 152 335.33 T ( exception FinderEx {) 152 323.33 T ( FinderException the_value;) 152 311.33 T ( };) 152 299.33 T ( // ObjectNotFoundException) 152 275.33 T (value) 198.67 263.33 T (ObjectNotFoundException) 234.5 263.33 T (:) 378.33 263.33 T (::java:lang:Exception) 390.17 263.33 T ({};) 522 263.33 T ( exception ObjectNotFoundEx {) 152 251.33 T ( ObjectNotFoundException the_value;) 152 239.33 T ( };) 152 227.33 T ( // RemoveException) 152 203.33 T ( value RemoveException : ::java:lang:Exception {};) 152 191.33 T ( exception RemoveEx {) 152 179.33 T ( RemoveException the_value;) 152 167.33 T ( };) 152 155.33 T ( // Handle) 152 131.33 T ( value Handle {};) 152 119.33 T ( value StandardHandle : Handle {) 152 107.33 T ( public string EJBObjectIOR;) 152 95.33 T ( };) 152 83.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "17" 17 %%Page: "18" 18 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (18) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 4 F ( // EJBMetaData) 152 701.33 T ( value EJBMetaData {};) 152 689.33 T ( value StandardEJBMetaData : EJBMetaData {) 152 677.33 T ( public string EJBHomeIOR;) 152 665.33 T ( public string homeClassName;) 152 653.33 T ( public string remoteClassName;) 152 641.33 T ( public string keyClassName;) 152 629.33 T ( public boolean isSession;) 152 617.33 T ( };) 152 605.33 T ( interface EJBHome;) 152 581.33 T ( // EJBObject) 152 557.33 T ( interface EJBObject {) 152 545.33 T ( EJBHome getEJBHome\050\051;) 152 521.33 T ( Any getPrimaryKey\050\051;) 152 497.33 T ( void remove\050\051 raises \050RemoveEx\051;) 152 473.33 T ( Handle getHandle\050\051;) 152 449.33 T ( boolean isIdentical\050in EJBObject object\051;) 152 425.33 T ( };) 152 413.33 T ( // EJBHome) 152 377.33 T ( interface EJBHome {) 152 365.33 T ( EJBMetaData getEJBMetaData\050\051;) 152 341.33 T ( void remove\050Any primaryKey\051 raises \050RemoveEx\051;) 152 317.33 T ( void remove\050Handle handle\051 raises \050RemoveEx\051;) 152 293.33 T ( };) 152 281.33 T ( };) 152 269.33 T (};) 152 257.33 T 1 14 Q (B.2) 72 218.67 T ( java.lang.Exception.idl) 95.34 218.67 T 4 10 Q (// java.lang.Exception.idl) 152 199.33 T (module java {) 152 175.33 T ( module lang {) 152 163.33 T ( value Exception {) 152 151.33 T ( public ::CORBA::WStringValue detailMessage;) 152 139.33 T ( };) 152 127.33 T ( };) 152 115.33 T (};) 152 103.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "18" 18 %%Page: "19" 19 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (19) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 1 18 Q (Appendix C: Example Application) 209.23 708 T 0 12 Q (This) 126 680 T (sections) 151.15 680 T (shows) 193.63 680 T (the) 227.45 680 T (IDL) 245.92 680 T (that) 269.73 680 T (is) 291.55 680 T (generated) 303.37 680 T (from) 353.83 680 T (the) 380.97 680 T (remote) 399.45 680 T (interface) 436.59 680 T (of) 482.38 680 T (a) 496.19 680 T (session) 505.33 680 T (bean) 126 666 T (and) 151.85 666 T (the) 172.38 666 T (pseudocode) 190.24 666 T (for) 250.1 666 T (a) 267.29 666 T (C++) 275.81 666 T (client) 300.55 666 T (that) 330.41 666 T (invokes) 351.61 666 T (methods) 392.14 666 T (on) 436.01 666 T (it) 451.21 666 T (in) 461.08 666 T (the) 473.61 666 T (context) 491.48 666 T (of) 530 666 T (a client initiated transaction. The bean is deployed as TX_REQUIRED.) 126 652 T 1 14 Q (C.1) 72 624.67 T ( Bean Home Interface) 96.11 624.67 T 4 10 Q (package trading;) 152 605.33 T (import javax.ejb.EJBHome;) 152 581.33 T (import javax.ejb.CreateException;) 152 569.33 T (import java.rmi.RemoteException;) 152 557.33 T (/**) 152 533.33 T ( * TraderHome is a remote interface for the Trader Home.) 152 521.33 T ( */) 152 509.33 T (public interface TraderHome extends EJBOHome {) 152 497.33 T ( Trader create\050String user\051) 152 473.33 T ( throws RemoteException, CreateException;) 152 461.33 T (}) 152 449.33 T 1 14 Q (C.2) 72 410.67 T ( Bean Remote Interface) 96.11 410.67 T 4 10 Q (package trading;) 152 391.33 T (import javax.ejb.EJBObject;) 152 367.33 T (import java.rmi.RemoteException;) 152 355.33 T (/**) 152 331.33 T ( * Trader is a remote interface for the Trader server bean.) 152 319.33 T ( */) 152 307.33 T (public interface Trader extends EJBObject{) 152 295.33 T ( /* Buy shares of specified stock. */) 152 271.33 T (public) 173.33 259.33 T (void) 214.67 259.33 T (buy\050String) 244 259.33 T (stockSymbol,) 309.33 259.33 T (int) 386.67 259.33 T (shares,) 410 259.33 T (double) 457.33 259.33 T (price\051) 498.67 259.33 T ( throws RemoteException, TooManySharesException;) 152 247.33 T ( /* Sell shared of specified stock. */) 152 223.33 T (public) 171.33 211.33 T (void) 212.17 211.33 T (sell\050String) 241 211.33 T (stockSymbol,) 311.83 211.33 T (int) 388.67 211.33 T (shares,) 411.5 211.33 T (double) 458.33 211.33 T (price\051) 499.17 211.33 T ( throws RemoteException, TooManySharesException;) 152 199.33 T (}) 152 187.33 T 1 14 Q (C.3) 72 148.67 T ( Bean\325s Remote Exceptions) 96.11 148.67 T 4 10 Q (package trading;) 152 129.33 T (/**) 152 105.33 T (*) 157.8 93.33 T (TooManySharesException) 169.6 93.33 T (is) 307.4 93.33 T (thrown) 325.2 93.33 T (if) 367 93.33 T (a) 384.8 93.33 T (client) 396.6 93.33 T (attempts) 438.4 93.33 T (to) 492.2 93.33 T (trade) 510 93.33 T ( * more shares than the Trader server bean permits.) 152 81.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "19" 19 %%Page: "20" 20 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (20) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 4 F ( */) 152 713.33 T (public class TooManySharesException extends Exception {) 152 701.33 T ( public TooManySharesException\050\051 { super\050\051; }) 152 677.33 T ( public TooManySharesException\050String s\051 { super\050s\051; }) 152 653.33 T ( int getMaxAllowed\050\051;) 152 629.33 T ( private int maxAllowed;) 152 605.33 T (}) 152 593.33 T 1 14 Q (C.4) 72 554.67 T ( Generated IDL) 96.11 554.67 T 4 10 Q (#include \322ejb.idl\323) 152 535.33 T (#include \322java.lang.ExceptionValue.idl\323) 152 523.33 T (module trading {) 152 499.33 T ( value TooManySharesException: ::java::lang::ExceptionValue {) 152 475.33 T ( int maxAllowed;) 152 463.33 T ( };) 152 451.33 T ( exception TooManySharesEx {) 152 427.33 T ( TooManySharesException the_value;) 152 415.33 T ( };) 152 403.33 T ( interface TraderHome : ::javax::ejb::EJBHome {) 152 379.33 T (Trader create\050in string user\051) 179.6 367.33 T ( raises\050::javax.ejb.CreateEx\051;) 179.6 355.33 T ( };) 152 343.33 T ( interface Trader : ::javax::ejb::EJBObject,) 152 319.33 T ( ::org::omg::CosTransactions::TransactionalObject {) 152 307.33 T ( void buy\050in string stockSymbol, in long shares,) 152 283.33 T ( in double price\051) 152 271.33 T ( raises \050TooManySharesException\051;) 152 259.33 T ( void sell\050in string stockSymbol, in long shares,) 152 235.33 T ( in double price\051) 152 223.33 T ( raises \050TooManySharesException\051;) 152 211.33 T ( };) 152 199.33 T (};) 152 187.33 T 1 14 Q (C.5) 72 148.67 T ( C++ CORBA Client Pseudocode) 96.11 148.67 T 4 10 Q (...) 152 129.33 T (// initialize the ORB) 152 105.33 T (CORBA_ORB_ptr orb = CORBA_ORB_init\050argc, argv, NULL\051;) 152 93.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "20" 20 %%Page: "21" 21 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Enterprise JavaBeans to CORBA) 72 749.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K (Sun Microsystems Inc.) 72 36 T (21) 301 36 T (March 23, 1998) 476.4 36 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K 4 F (// get initial reference for the Name Service) 152 713.33 T (CORBA_Object_ptr iobj =) 152 701.33 T (orb->resolve_initial_reference\050\322NameService\323\051;) 179.6 689.33 T (CosNaming_NamingContext_ptr initial =) 152 677.33 T (CosNaming_NamingContext::_narrow\050iobj\051;) 179.6 665.33 T (// construct the CosNaming::Name for the Bean Home Interface) 152 641.33 T (CosName home_name\050...\051;) 152 629.33 T (// locate the Trader Home) 152 605.33 T (CORBA_Object_var obj = initial->resolve\050home_name\051;) 152 593.33 T (trading_TraderHome_ptr home = trading_TraderHome::_narrow\050obj\051;) 152 581.33 T (// create a session bean) 152 557.33 T (trading_Trader_ptr trader = home->create\050\322user1\323\051;) 152 545.33 T (//) 152 521.33 T (invoke) 169.27 521.33 T (on) 210.54 521.33 T (the) 227.82 521.33 T (trader) 251.09 521.33 T (bean) 292.36 521.33 T (under) 321.64 521.33 T (a) 356.91 521.33 T (client) 368.18 521.33 T (initiated) 409.45 521.33 T (transaction) 468.73 521.33 T (try {) 152 509.33 T ( txn_crt.begin\050\051;) 152 497.33 T ( trader->buy\050\322SUNW\323, 100, 52.00\051;) 152 473.33 T ( trader->sell\050\322ABCC\323, 50, 35.90\051;) 152 461.33 T ( txn_crt.commit\050FALSE\051;) 152 437.33 T (} catch \050...\051 {) 152 425.33 T ( txn_crt.rollback\050\051;) 152 413.33 T (}) 152 401.33 T (...) 152 377.33 T 1 0 1 0 0 1 0 1 K 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "21" 21 %%Trailer FMENDDOCUMENT %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 21 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Symbol %%+ Times-Italic %%+ Courier %%DocumentNeedsFonts: Times-Roman %%+ Times-Bold %%+ Symbol %%+ Times-Italic %%+ Courier %%DocumentSuppliedFonts: %%EOF .