eh tn iraepp aoT lanruoJ fo lellar a dPdegntnauibtiurptmsoiCD . 3,002 Support for Extensibility and Site Autonomy in the Legion Grid System Object Model 1 Michael J. Lewis † i,mra ad.rAJreF * ye ry h t,p.rmAauMH * KarFpJ.oo vhinc, h * , MorMMg.aa rnk * , Anand Natrajan * gnouT-neyug Nhn A, * GWlaSe,s.n s no n * dn a wahsmir G. SwerdnA * * }[email protected]|g iwnaisas.oend u| nguyen | anand | mmm2a | jfk3w |h umphrey| ferrari { Department of Computer Science, University of Virginia † ude.notmahgnib@siwelm notmahgni B -YNU S,ecneic Sretupmo Cf otnemtrapeD sdrowyeK : objects, distributed wide-area, computing, distributed Grid, ,era .weyetmliodsndoitmua tcartsbA dirG gnitupmoc si eht esu fo egral snoitcelloc fo ,suoenegoreteh detubirtsid resources (including machines, databases, devices, and users) to support large- elacs snoitatupmoc dna aera-ediw atad .ssecca ehT noigeL metsys si na noitatnemelpmi fo a erawtfos erutcetihcra rof dirg .gnitupmoc ehT cisab philosophy underlying this architecture is the presentation of all grid resources as .eni hlcaaum t,rsisvel ms, atefenlos egannoipsmoc s’noigeL erutcetihcra saw dengised ot sserdda eht segnellahc fognisu and managing wide-area resources. Features of the architecture include: global, derahs ;secapseman troppus rof ;ytienegoreteh ;ytiruces aera-ediw atad;gnirahs aera-ediw lellarap ;gnissecorp elbatsujda-noitacilppa ;ecnarelot-tluaf tneiciffe gniludehcs dna evisneherpmoc ecruoser .tnemeganam eW tneserp eht erocngised ecxLrtaeieritogtncsthfsiishshe iociiue tnabtoea e flioensno lfc dwci t iututsyrh e , .ymonotua dirG smetsys erawtfos tsum eb elbisnetxe esuaceb on citats tesfo system-level decisions can meet all of the diverse, often conflicting, requirements of present and future user communities, nor take best advantage of unanticipated future hardware advances. Grid systems software must also support complete site ,ymonotua sa ecruoser srenwo lliw ton nrut lortnoc fo rieht secruoser revo ota system.dictatorial 1.T heL egionp rojecti sp artiallys upportedb yN FSC DA-9724552,N SFC areerA wardA CI-0133838,N SFE IA- 9911099D,A RPcAo ntrac#tN 66001-96-C-8527D,Og Er anDtE -FD02-96ER25290D,Oc Eo ntracSta ndiLaD - 9391, Northrup-Grumman (for the DoD HPCMOD/PET program), DOE D459000-16-3C, and DARPA (GA) SCH 607305A no i.t1cudortnI dirG smetsys era gnimoceb ylgnisaercni tnatropmi rof tnerruc tra-eht-fo-etats snoitacilppani sniamod morf ecnamrofrep-hgih cifitneics gnitupmoc ot .ssenisub ynaM fo s’yadot dirgsmetsys ]7[]22[]92[ era tsuj gninnigeb ot kcatta eht segnellahc fo ylurt ediw elacs tnemyolpedssorca egral srebmun fo setis taht era ylno ylesool detcennoc dna evah on lartnec gniganam .ydobroF hcus ,smetsys dirg erawelddim—erawtfos evoba eht lacisyhp secruoser dna wolebresu-dne si–snoitacilppa .lativ tuohtiW dirg smetsys ,erawtfos gnitcurtsnoc snoitacilppa taht tiolpxeeht impossible.or difficult be will grids new these of potential full srengised ehT .ymonotua etis dna ytilibisnetxe edulcni smetsys dirg fo stnemeriuqer lacitirC t cte s ior fddednas o nehenwmdt aitrat,einfmrpcfrtr eoeaoes gedsdvsvy.rneossuareetprsuoufM er ustecgunraths caerr fa,nni ogmnmiogcn a,mreomrift -dnaw oosldegnah cd nsaedargp uotwen ,snoit asrn eownieetngaru gdinfanoc wen ss e.csceaicilop A dirg metsys tsum tpada otgnignahc s, sesr h dreetcenii saicaulduhhrm qpn twueeepdaeod hruer sststademcwir eutretrfgbstoysssnoc ecruose rf oytilib aeh ttcirtse rto nna csmetsy sdir g,eromrehtru F.lao gngise das aytilibisnetx ehtiw ecruoser sselnu deveihca eb tonnac smetsys dirg elacs-egral ylurT .secruoser rieht lortnoc ot srenwo ,se ce rno u ihn ro,mwaeis . rcseesgoeuhre.tttceer(d u rolis oeed rhr e ytts wolnreotloerlucnalfwao woh dn ane hyweh tnac e b,de sduna wo hhcum ti l. l)yi tmwhsoc onuncoSat cuoasla eb desuot eg ayntaimxelpmoc ni dirg .smetsy secniS lac ollennosrep era yllacipy terom tpgendianiatniam ycil ospsec ceacruos erret lyallaciman y odmte hgtniwol l,arotartsinimda-di rnaga hstecruos errieht .ytilibaliava ecruoser retteb rof sedivorp ,dyaeti p i nsd otsfiied mla rogs edeeeeransitvhvibo arsetiV,bgydnn-sUoa tincgaeejLbo erawtfos erutcetihcra taht sesserdda ytilibisnetxe dna etis ymonotua sa ssalc-tsrif ngised .stn enmo eisrgeieduLiqveorrp a elg nliasu terniivhca mweiv s us oefeconreugo ostreaerhttehera trap fo a dirg .]61[]51[ A noigeL dirg stsisnoc f o,snoita t ,srskorrteoctweuvplmeolclraerpaups sretupm odd centrz aneideplemuatpsiciceuenqpneso cyb a yteirav f o.skr onwotie gnseeLlkcata - e,deicwnarelot-t leulabfatsujda-noitaci lgpnpiadu l,csnmiel bsomrep tdseytsubi re tgfesnodiaidrw aera lellarap ,gnissecorp ,ytilibareporetni ,ytilibalacs ,ytiruces tneiciffe ,gniludehcs dna s e sidetc n srieahrolhcepo tavppdoiuerdss pa.pbta-n tencmA eeejgcba roneuavomissenreherpmoc seitiroirp fo ,sresu ,srepoleved dna ecruose r.sredivorp hcaE dirg ecruoser si na .tcejbonoigeL senifed smsinahcem rof secivres hcus sa tcejbo ,noitaerc ,gniman ,noiteled etats,tnemeganam esrheotciv reess enfhootitatnemel p emehittad n tasom en tonudobitaco vdnoih t dennmoaitargim .esu rieht rof seicilop ehT ynroaimtiurbpirtn ofco siht repap si ot ebircsed eh tseitreporp fo eht noigeLtcejbo ledom dna .erutcetihcra ynaM tnatropmi seussi ni noigeL era dnoyeb eht epocs fo siht.repap cificep Ssaera fo eht noigeL metsys evah nee bdebircsed ni ,ht pgendidulcni eht ytirucesledom ,]8[]5[ gniludehcs ,]42[ ecnarelot-tluaf ,]43[]33[ O/I smetsys ,]04[]52[ eht emit-nuryrarbil erutcetihcra ]83[]9[ dna troppus rof ecnamrofrep-hgih gnitupmoc .]13[]03[]41[ nI siht,repap on3itc e.Syhposoli hdp n,astniartsn o,csevitcej b,ongis endoig elLevel-hg ieh hstessucs in2doitceS s e cse tulth ne cden te oron4 eodedh.oiitjrosntsc gtpbtme aeeeceno rnshLeicfpostSnoiaoglcecL noig emLe tsstynsemele ta a hgih .lev eon5li tsctenSeser pemos cisab noi gseeLcivres dnawoh yeht dehergvaueo i rdhe hechttnatriobfmfo ecf o.msettcse y jesebdWou l hcdtneiotwcaklreorw .)on7itceS( yrammus a dna )on6itceS( yhpo ss otdlnniiahaPr t,ssneovCit cne oj.ib2gOeL Given that computational grids are composed of resources that span multiple administrative domains, there exists a complex set of design principles for grid systems. These principles have Page1 .erutcetihcr anoige Leh tf onoitadnuo feh tneeb • Site autonomy : noigeL si desopmoc fo secruoser denwo yb ynam ,snoitazinagrohcihw ylreporp tsisni no gniniater lortnoc revo rieht .secruoser roF hcae ecruoser eht renwo sielba to limit or deny use by particular users, and specify when and how it can be used. An tnatropmi tcepsa fo ymonotua si noitatnemelpmi ,noitceles .e.i lortnoc revo eht edoc desuot tnemelpmi metsys .secivres setiS era elba ot esoohc ro etaerc rieht nwo noigeLstnenopmoc .seicilo pecruose ryrartibr atnemelpm iot • elbisnetxEeroc : noigeL tsum tius eht ediw yteirav fo tnerruc resu sdnamed dna eb elbapacfo evolving to meet unanticipated future needs. Therefore, mechanism and policy are realized via replaceable and extensible components, including and especially our core system components. This model facilitates development of improved implementations that provide dedda-eulav secivres ro cificeps-etis ,seicilop elihw gnilbane noigeL ot tpada revo emit ota changing hardware and user environment. For example, integrating Legion with the Storage ecruoseR rekorB ]82[ saw a elpmis rettam fo gnidnetxe eht eroc metsys tnenopmoctaht .y re og ota etiras esso teBhuotdal RtpsnddsSeenar- akahcab • elbalacS erutcetihcra : Since Legion was designed to build grid systems consisting of snoillim fo stsoh dna ,stcejbo ti sah a elbalacs erawtfos .erutcetihcra nI rehto ,sdroweht metsys si ylluf detubirtsid htiw on dezilartnec serutcurts ro .srevres sihT ,swolla rof,elpmaxe .snoitar enpooitacinum meodciw-d iervgisne ptxueoh tnio wi d gsoe oett detLswdboeahn • ,esu-ot-ysaE sselmaes lanoitatupmoctnemnorivne : noigeL stcartsba eht ytixelpmoc fosti erawdrah tnemnorivne dna seifilpmis eht noitacinummoc dna noitazinorhcnys devlovnini parallel processing. Machine boundaries, for example, are invisible to users when using mroft aIslP.’pMmn-eostissgoyersLc • ,elgniS tnetsisrep tcejbo ecaps : gnipoleveD lellarap dna detubirtsid smetsys ni na tnemnorivne tuohtiw a elgnis eman ecaps rof gnissecca atad dna secruoser si llits a tnacifingis elcatsbo rof sresu fo ynam dirg .smetsys gnivaH a edutitlum fo tniojsideman secaps yltaerg sedepmi gnipoleved snoitacilppa taht naps .setis yB ,tsartnoc lla stcejbo nieht noigeL metsys nac yltnerapsnart ssecca lla rehto noigeL stcejbo tuohtiw drager ot noitacolro ,noitacilper tub tcejbus ot ytiruces .stniartsnoc sihT si ,lufesu rof ,elpmaxe ni gnitaercedoc repositories where any host in the grid can execute an application stored there simply by gniwonk eht eman fo taht noitacilppa ,.e.i( eht noitacilppa deen ton eb derots no ehtlacol .)derot ss inoitacilpp aeh tereh wnoitaco llacisyh peh twon kto ndee ntso heh tdn aenihcam • ytiruceS rof sresu dna ecruosersrenwo : Security is a fundamental aspect of grid systems, htob ot tcetorp eht ytirgetni fo resu snoitatupmoc dna ot evreserp eht ytilibaliava fo .secruoser noigeL saw dengised no eht elpicnirp taht ytiruces tsum eb tliub ylmrif otnieht noitadnuof fo a dirg gnitupmoc .metsys fO ,esruoc on elgnis ytiruces ycilop si elbatius roflla sresu dna os noigeL sedivorp smsinahcem taht wolla sresu dna ecruoser srenwo ottceles seicilop taht tif rieht ytiruces dna ecnamrofrep sdeen dna teem rieht lacolevitartsinimda .stnemeriuqer roF ,elpmaxe noigeL stroppus noitacitnehtua desab no noigeL slaitnedercdna .]02[ sorebreK • ecnarelot-tluaF : nI a elacs-egral dirg ,metsys ecruoser eruliaf ,stsoh( noitacinummoc,sknil ,sksid ).cte si .ecalpnommoc ,eroferehT eht noigeL metsys flesti saw dengised otsserdda failures, through fault-tolerant components and dynamic system reconfiguration, as well as yb gnidivorp smsinahcem ot troppus a ediw egnar fo resu noitacilppa ecnarelot-tluaf.sdeen For example, important system components that were executing on hosts that have failed, can .st s,oehlbar e,proe hnntoooi gdyeebLtrat seebr Page2 ehT sevitcejbo detsil evoba erew demarf yb lareves tnatropmi lacitcarp stniartsnoc tahtdediug :t eagwhntiw odnekngi ssneaodwi g.enLgi sreudo • tonnaC egnahc tsoh gnitareposmetsys . snoitazinagrO lliw ton timrep rieht senihcam oteb desu fi rieht gnitarepo smetsys tsum eb .decalper ruO ecneirepxe htiw htob noigeLdna .sme tgsnyist a t rsn lnp temaeioofspecbutooo tbh ds tiysars whgeotrh os ]ft7ea1bt[neM • Cannot change network interface . tsuJ sa ew tsum etadommocca gnitsixe gnitarepo,smetsys eht ngised fo noigeL semussa taht ew tonnac egnahc eht krowten secruoser ro ehtslocotorp .esu ni • Cannot require Legion to run in privileged mode . oT tcetorp rieht stcejbo dna,secruoser pripvoislseilgboelwsee. st the with run to softwLaergeir oenq uirsei tes and usersL egion ruO llarevo evitcejbo ni eht ngised fo noigeL saw ot etaerc a dirg metsys taht saw elbatius otsa many users and for as many purposes as possible. One thing was clear: a rigid system design— eno ni hcihw seicilop erew ,detimil ffo-edart snoisiced erew ,detceles-erp ro lla scitnameserew pre-determined and hard-coded—would not achieve this goal. Indeed, if Legion dictated a single ediw-dirg noitulos ot tsomla yna fo eht lacinhcet ,sevitcejbo ew dluow evah dedulcerpegral sessalc fo laitnetop sresu dna .sesu ,eroferehT ew dengised noigeL ot wolla sresu dna sremmargorp eht tsetaerg ytilibixelf ni rieht ’snoitacilppa ,scitnames gnitsiser eht noitatpmetot dictate solutions to many system functions. Users are able, whenever possible, to select both the dnik denhat level .tso cdn anoitcnu fneewte bsffo-edar tnw orieh teka mo tdn a,ytilanoitcnu ff o seificeps ledom tcejbo noigeL ehT .erutcetihcra metsys eht ni detsefinam si yhposolihp sihT erofe rmeeh tt es;eryshosttcc e ejsrb'oomc en tofesiohyttsatneme lytteptuohmibntilanoit cenhutf stsisnoc fo ,elbi senlebtaxe ec.asltpneernopmo cnoigeL sedivorp t lsunaofietdatnemelpm ifoeht t csr erooeletgesasur u, odecawne etd. s emonetetIsahu gt sie trlrhoebagnsouuo h,tsltac eejrbooc .sdeen cificeps rieht teem taht snoitatnemelpmi tcejbo tcurtsnoc l etdcoeMjbO/s snao li.Cg3eL noigeL si desab-tcejbo ni taht hcae fo sti stnenopmoc si na .tcejbo noigeL stcejbo era tnednepedni fo eno ,rehtona hcihw snaem taht yeht era tniojsid ni ecaps-sserdda dna etacinummoc htiw eno rehtona aiv etomer dohtem .noitacovni hcaE noigeL tcejbo sgnoleb ota .tcejb onoige L aflest is issal chca edn assalc h;csfueoms s n ameose l oliehfcrrog mtoefresowL’col petdc o enmhj oc bfiueoogMhetL ytil id be s itl itsaelangve ho eev. owpsllesdtsse-l teea dm-scrrlyerieeclrtejdlossbiaFyuosusnsouc ,elpm anxoeig esLessalc eerlabisnop sreorf gnitaerc dna gnitac orli eshetc nsattcsenjibo( fotaht stcej bnooig eeLr oec h.Tseicil otpnemeca ltpcej bdo nyatiruc eestairporp pganitcel ers odf n)assalc edivorp smsinahcem taht wolla level-resu sessalc ot tnemelpmi rieht nesohc seicilop dna .smhtirogl aehT yhposolihp fgo nlietvaellu-smp eaytccsniyelsop ni ,e leblibsaneectaxlepsesralc debircsed (stcejb oero cnoige Leh ty bdetropx esnoitarep oevitimir pf ote seh ty bdetroppu s,stcejbo snoisi cyecdi leotpairporpp agnniis o rpfemog inesahedttanim iylleevitce f,f)eon4i t lcnieia Stneid .repoleved metsys dirg eht rof seitilibissop fo egnar ediw a sedivorp dna er astcejb ossal C.tcejb ossal cst iy bdegana mdn adenife ds itcejb onoige LyrevE sreganam dna y csirleokpam dna yt i gl gnir nibo, itifsltas deeavnwncveioeanertpn alccset-aevsmranehitsys gn i,tm a e svtghsg icntsndteiein cjdrdaaabidnteovdiad(o abdrtpaht s ilufes uni ethxtetn ofcoeht siht ;stcejbo ssalc nwo rieht enifed ot sresu segaruocne noigeL .stcejbo tneilc rof )locotorp tropsnart nac eb sa elpmis sa a elgnis dnammoc taht setaerc a wen noigeL tcejbo rof a s’resugnitsixe .noitacilppa esehT owt ssalc—seruta etfcejbo tnemeganam fo rieht secnatsni dna eht ytilibafo snoitaci lsprpeammargorp ot tcurtsnoc wen edivorp— syetsislailbcixelf ni gninimreted wohna Page3 no isteavcaihlep bpdan are httrroupfpu seht ynhopiogseoLl ifyh otpginliilbbia xnneeilf ehtdnik .ytilanoitcnuf fo level dna h cnao Eissgsee anLeli ccfeaehf dtrr eo.tfsn ei sscsttnisiahitTs snfnooic e hdtohstlelmac taht nac eb edam no stcejbo fo taht .ssalc sihT ecafre tsneidulcni yerhottadencaamf-rsestanlic )re1ugiF( dna eht cificepyst-islsaanlocitcnuf 1 . ehT yrotadnam- sescaalfcretn isessapmocneeht sdoht eteman his tmusroeeiitrceaidvl orpof .eshetcn as tisshenTdiulcni createInstance() , shectiahew rac e cwnean tfsoni e hstsa lsdcnn rat unet eheed trmnn aeow npieretnodafnctioalht ecnatsni dellac( a DIOL ro noigeL tcejbO reifitnedI - ees noitces ;)1.on5itceS )(secnatsnIelpitluMetaerc s,e clshnaec artifteahosvewner isce hstsal cta leucfneosu( ;) sd tnsl r aregoee lnhgbfrliormooaccaufralnalpp activateInstance() s e ,thacnriaghiwm gn ietcsniaxtesni ot a we nnoitacol ro stratser na ecnats ntiaht dseatwavitc aoetd e.esrefcruoser noita e errhcotl iroaettl l eaghcntiwo l,lsanois rleavre v seyaslhlau tscnaoitc neuef rehst ehfhcotaE dna tn e.mseecsaslepcor proF ,elpmaxe eht rellac nac etacidni eht tsoh no hcihw eh)ts(ecnatsni ,serutcetihc r,asdee prsossecor ps(ts oehlbatpec cfsaocitsiretcara he chytfice pr,sodeca ledpbluohs .).cte ehT addImplementation() dna )(noitatnemelpmIevomer snoeirtucgniuffnoc d eyslulaci p eysrtnaoitc neusfe hste(cnat s s nr teiolis fluticwe jsbso a elshcntoitatnemel phmciihw . ) nsdoreiettlea igtnpr nAmayseotbimc-en lonpio mgieiethLa ttn nofeiosgeerLp.ee rlnbaatucexe ehT getBinding() lac is seotymtnhaepndnepedni-noi tn aofciootlals ntearhrot tpspnuosit cnuf reht olareve ser aereh T.1.on5itceS ni debircsed sa ssecorp gnidnib eht gnisu secnatsni fo sesserdda sn oti otnncw(nouh fs n)ire1 utn g aosiwthitFout tn lonae elb omievaaoirlhettoctidafrncntaoielr scit sf io,rse et ehcc’ hcnas,tu a rsesttraa c nsihlsa,’eneccaftsrihrser t eocuedthnchnnartaitisenhit .)treni ro evitca( etats tnerruc s tn conreiioejtfhbatom rtonfenm iey gc dysa iwnfrnsl oaieaeool csmsptleeusalpaislhcW n o,idgierL g t tidnle uiron owesefvrbneos cuonti evah oettaer ca w e sntscael jcrboo fhcaewen eht elihw ,tcaf nI .dliub ot dehsiw yeht tcejbo noigeL fo epyt secnatsni yrev mrofrep netfo ssalc a fo , stnn o essi ,r s etseema.v c trfrlslnnrcofocneouaefifsosifljedreimgibrenteemoepichLihfntsTeudf ssalcsattceemjbo . ssal csattcee Mjebdoivorp a msinahce mrof sresu ot poleved wen ,stcejbotub esue rgnitsix essalc . yttc iesljsabanoloci atstctencMuefjbo era ssalc stcejbo eso hswecnatsniera sevlesmeh tssalc .stcejbo tsuJ sa a lamron ssalc tcejbo seganam dna ssnnoiiattantinaemmelpmi ho styi ewthcte j s wb raaeon ehn eas.hutWce jsbsoalc as t eae oom,oodsstecnat s sn rtisoitfcejbo etarop rootcnnii eht ,dirg yeht etaerc a we necnatsni fo a ssa l.ctacteejmb osihT tcejbo si assalc tcejbo taht nac neht eb desu ot eganam eht s’resu wen .tcejbo oT esu a ssalcatem ,tcejboa class ClassObject { LOID createInstance(< placement info> ); LOID Array createMultipleInstances(int n, <placement info> ); int activateInstance(LOID instance, < placement info> ); int deleteInstance(LOID instance); int deactivateInstance(LOID instance); int addImplementation(LOID implementation_object); int removeImplementation(LOID implementation_object); Binding getBinding(LOID instance); Binding getBinding(Binding stale_binding); }; FIGURE 1. A subset of the Legion class-mandatory interface 1.N otet hata no bjectc and isallowa nyf unctioni nvocationr equest,t ypicallyb asedo nt hec redentialso ft hec aller (see section 5.4). This is especially relevant to the system-level functions implemented in core objects[5]. Page4 remmargorp ylpmis sllac )(ecnatsnIetaerc no eht etairporppa ssalcatem ,tcejbo dna serugifn oech tgnitlu ssesralc tcejb ono ihtt aistwtnceemjeblopm irof enhotitacilp pnai.noitseuq ehT wen ssalc tcejbo neht stroppus eht ,noitaerc ,noitargim ,noitavitca dna noitacol foeseht noitacilp psatcejbo ni eht rennam denifed yb sti ssalcatem .tcejbo noigeL sedivorp a eciohcfo ss a,lsctacteejmb oe hstecnatsn ifo hcih wtropxe e hy,treocta afedrmne aattsmnu-ibsesdailvcorp .ecafretni taht rof ytilanoitcnuf tnereffid ro F,elpma xeemo sstcejbo yam eb dengised ot eci v srdneooshitteamco vynb ignitaerca wen ecnatsni ot ssecorp hcae .tseuqer rehtO stcejbo yam daetsni tcerider stseuqer ot eno foa rebmun fo gnitsixe ”ecivres“ stcejbo rof .gnissecorp hcaE fo eseht ”ecivres“ seicilop dluoceb gnit a, lsdusnpaaol pcea t tg aden.eiemisc r dtsnnapyf da aaioBoweeeltr ebrhcspanmctanpetiaem sno itti a ft ,onhnetomii ewtr laa rp claemaiupilcopi lptnear avayce pldeitsaaeer cn atce jhbtoiwa .ycilop ecivres ralucitrap ssalC stcejbo dna ssalcatem stcejbo pleh eveihca ytilibisnetxe dna etis ymonotua nia noigeL .metsys noigeL seod ton etadnam eht sdnik fo stcejbo taht era dettimrep nihtiw adirg .m estrseyss Uera eerf o t esttaceerjc bfoo r iee cheittoa h rdcmonepahr tosoc’ttnnncioieijgbeoL tnem e.gkarnoawm e,mraervfoeroM sresu yam osla esoohc neewteb lareves tcejbtonemeganam ,s ntydoro ceet iieehtnyeg tjtaiahe,ab rm tLyeoeso slr cap.rylcenrsenavoomsanaceumihntFisys secn af stortsicneei hjst yba .toyeierl hia st s nne , enoId dtmdoiisiceitviretgcohgpsenrtsyLupesfr hscsruaes v ]drs6ne n3as aa[evesaBiJrp r h escstmuanesE tescyis vtbrnee ewsr ecaoreltorimmis SSOBJ .]32[ ehT seicilop taht nac eb tes no ssalc stcejbo netfo tcelfer eh tstnemeriuqer foetis .ymono tr uo,aFelpmax eti si nommoc ot t esseicilo pno ss asltccej bt oathctirts ee rhntoitaercfo .dirg eht ni senihcam eht fo tesbus a ot secnatsni rieht se ptycTe jeb rO.o4C A noigeL dirg stsisnoc fo a tes fo elbareporetni stcejbo deganam yb rieht .sessalc emoSstcejbo encapsulate the applications that users wish to run on the grid. Other objects provide important level-metsys ytilanoitcnuf taht sesae eht ssecorp fo gnipoleved noitacilppa stcejbo ybgnidivorp abstractions of important elements in grid systems. We discuss these core object types and their bseylsogtwre.imd a in role stcejb Otso H1.4 noigeL tsoh stcejbo tcartsba gnissecorp secruoser ni .noigeL yehT yam tneserper a elgnis ,rossecorp a ,rossecorpitlum a xunil ,xob a yarC ,E3T ro neve na etagergga fo elpitlum .stsohA tsoh tcejbo si a s'enihcam evitatneserper ot :noigeL ti si elbisnopser rof gnitucexe stcejbo noeht machine, protecting objects from each other, deactivating objects, and reporting object exceptions. A host object is also ultimately responsible for deciding which objects can run on the encapsulation.policy security of points important are objects host Thus, represents. it machine t ssotHcej beora tnnaat rtyortpaimpli i gbdfninoisadn ieeyvttmoxioresnpot unainoigeL .sdirg nI noitidda ot gnitnemelpmi eht yrotadnam-tsoh ecafretni erugiF( ,)2 tsoh tcejbo snoitatn enmaeclpmi eb tliub ot tpada ot t n sentroneieftmfunicoder xidevnnae ti utsnereffiedtis seicilop dna gniylrednu ecruoser tnemeganam .secafretni roF ,elpmaxe eht tsoh tcejbo noitatnemelpmi rof na evitcare tnnoiitatskrow sesu tnereffid ssecorp noitaerc smsinahcemnaht Page5 snoitatnemelpmi rof lellarap sretupmoc deganam yb hctab gniueuq .smetsys sihT epyt fo class Host { ObjectAddress startObject(LOID object, LOID impl, OPRAddress opa); void deactivateObject(LOID object); ObjectAddress getObjectAddress(LOID object); }; FIGURE 2. Basic Legion host object interface. y tsi wlnoiolbili gas tenssLetotchxeej boot tpad an ogosintlti eug gdcrdnoeeeimxmneeeibfreodf .]01[ erutcetihcrA secivreS dirG nepO eht elihW tsoh stcej beodivorp a mro feicnaufretni ot tner e,efscftrinudeomsneorryievhnte sei ctinleompe gea cnyr atudmio nrsseauerc crer oedoe tsifde vni co oevsrsa ronulrpraoaopesfmer yal nwool l oadtezimots u ecnb ancoitatnemelp mticej btos o,ahelpma xre o.Fdi rngoig enaLihtiw det ctierst sfe ors,s rys selet tse cst cuvs co coeisnahditjteae rbaccs.toncaesra bcenearrotuloAser sci tesdi or.ceg t.gcena(irtaphecc cy alsnnoo ittcaet jnt beagomhnet ilnypirmaritanceo-dcfoocorp ]23[ gnitartsnomed niatrec ytiruces ,seitreporp ro gnitcej esrnoitatnemel pgmniiniatnocniatrec .)sllac metsys ”detcirtser“ redisnoC owt fo ruo snoitatnemelpmi rof tsoh .stcejbo ruO tluafed tsoh tcejbo siyrev ti—elpmis stnemelpmi a evitcirtser-no nssecca ycilop dna sesu eht xinU ssecorptnemeganam .eec.aif(retni fork() , exec() , kill() e lhpgomu tio.shstt lcg Aeng ji n)bpdi opntroarotafsts stc esljelbtaou cteix—eyti rs du mfecnroteie istyml ie.l rst ewInssvagiael ihs fss,iethdntemelpmi yna mo tssecc awoll atah tstnuocc a”cireneg “gnitaer cro flufes uelih W.d ires uxin Uelgni sarednu ,sre ssuiht epyt fo ts osh wsotlclea jtmbnoo ernrfoeif gfseirLdes ueyrl elofat rihetttninewitopro t ct teloss jutdopeb anhahonfemtoetidxteatnem eelvpimt ia. ne srtn’eaArt teles hanetinomonaaxe noigeL sresu ot ralucitrap xinU sdi-resu nehw gninnu rtnereffid 'sresu .stcejbo sihT tsohtcejbo .sresu ot egasu ecruoser fo noitubirtta dna noitalosi tcejboretni retteb sedivorp dsnmaet sgynsiu ehuc qtrsaot bfs. og,h.setce jt mbsfuooorh tdc eeatpnsemel pe mveiaWh noi t,ae ccdinnlaapmp ra,oyftr ie mrpf,eu fk tc, sosssestte iwyseasdrros nhoaodTithrfnNhticWam .ytiruces nA tnatrop mticepsa fo noigeL etis ymonotua si eht modeerf fo hcae etis ot tceleseht gnitsixe tsoh tcejbo noitatnemelpmi taht tseb stius rieht ,sdeen dnetxe eno fo ehtgnitsixe snoitatnem eoltpmi tius ,lsatcnoelmeriu qreor ot tnemelpmi a wen tsoh tcej bgonitrats morfeht tcarts b.aecafretni nI gnitceles dna gnirugifnoc tsoh ,stcejbo a etis nac lortnoc eht esu forieht .stcejbo noigeL yb secruoser st c te2lj.ub4aOV tluaV stcejbo era elbisnopser rof gniganam rehto noigeL ’stcejbo tnetsisrep snoitatneserper (OPRs). Much in the same way that hosts manage active objects’ direct access to processors, stluav eganam treni )detavitcaed( stcejbo no tnetsisrep .egarots nI a lacipyt noigeL metsyseht rebmun fo stcejbo yam eb sredro fo edutingam regral naht eht rebmun fo .srossecorp,eroferehT while some Legion objects will be evitca no srossecorp deganam yb tsoh ,stcejbo tsomstcejbo will be treni , dna evah rieht tnaveler etats derots ni a tluav .tcejbo A tluav sah tcerid ssecca ota egarots ecived ro( )secived no hcihw eht sRPO ti seganam era .derots A s’tluav deganamegarots yam edulcni a noitrop fo a xinU elif ,metsys a tes fo ,sesabatad ro a lacihcrareihegarots tnemeganam .metsys ehT tluav stroppus eht noitaerc fo sRPO rof wen ,stcejbo slortnoc sseccaot existing OPRs, and supports the migration of OPRs from one storage device to another. Vault stcejbo edivorp rof ytilibisnetxe yb gnitneserp na noitcartsba fo a egarots .ecruoser nehW awen Page6 epyt fo egarots metsys sdeen ot eb dedda ot eht ,dirg a wen tluav tcejbo nac eb .detaerc ecniSsiht .st cgenjib toehs lti,bixe iwectltail afiep rwbmyeortcon tit a redtlohn clpta teixmwljweeubnaov s ssat lceCegjab nota nmeehmtng ifso ssatlu a:v soetc nnaethswni na tcejbo s,idetaesrtci tluav s inesoh cyb se ’h.ttscseaj lbdecoeh tT tcsleeultaeavser ca we nytpm eRPO rof e,httcejbo dna seilppus eht tcejbo htiw sti eht ”sserdda“ fo sti RPO dellac( eht APO rof tcejtbnOetsisreP st rtlt ocu e afeasg w,lvsrseseaatnesltitca rtn,gc eyienhlmjawrbaol i.m)isSse rndodiAtatneserper .) 3erugiF (ecafretn itcartsb atlua vnoige Lcisa beh ty bdetroppu ser aseitivitc atlua veseh T.RP Osti ehT createOPR() doht esmtcurtsnoc a wen ytpme ,RPO setaicossa siht RPO htiw ehtnevig ,DIOL dna snruter eht sserdda fo eht wen RPO ot eb desu yb eht ylwen detaerc .tcejboehT class Vault { OPRAddress createOPR(LOID object); OPRAddress getOPRAddress(LOID object); LinearOPR getOPR(LOID object); void giveOPR(LOID object, LinearOPR OPR); void deleteOPR(LOID object); void markActive(LOID object); void markInactive(LOID object); }; FIGURE 3. The Legion vault object interface. getOPRAddress() fyo nhat idwetaicos sRa PeO h ftnooitac oel hetnimret e oddte s sudioht em sti deganam .stcejbo ehT giveOPR() dna getOPR() sdohtem refsnart a deziraenil,.e.i( )elbissimsnart RPO ot dna morf ,stluav ,ylevitcepser gnitatilicaf tcejbo .noitargim ehT deleteOPR() dohtem si desu ot etanimret a s’tluav tnemeganam fo na .RPO ,yllaniF markActive() dna markInactive() yfito neht tlua vnehw na tcejbo si evitca .reovitcani de td pe sys rtwrsseeo locet hg eulnrc otdne ralepeeteivsova mjhliRtsob twtPsicofocOhonaTkni tne my n, eeda selhecoebptstcmuriu oesgear rlso asto cestlocolcra tsntocc etj lbeu oca.nvsimSrof ,satou qniatre co tegas ugnitcirtse r,elpmax ero F.secruose resoh to ttcepse rhti wycilo pcificeps-etis .ymonotua etis selbane rehtruf ,.cte ,stcejbo ro ,sresu sntocietjabtOn e3m.e4lpmI noitatnemelpmI stcejbo etaluspacne .selbatucexe ehT elbatucexe flesti si detaert hcum ekila Unix file (i.e., as an array of bytes) so the implementation object interface naturally is similar to a xinU elif :ecafretni read() , write() , and sizeOf() (Figure4). Implementation objects class ImplementationObject { ByteArray read(size_t startByte, size_t szToRead); size_t write(size_t startByte, ByteArray data); size_t sizeOf(); }; FIGURE 4. The Legion implementation object interface era osla ,ecno-etirw ynam-daer on—stcejbo setadpu era dettimrep retfa eht elbatucexe siyllaitini .tnetsisnocn ignimoce bselbatucex edetacilpe rf oregna do ns iereh t,erofereh T.derots y nta,iummbroft aell p gr eno adifeoslcbatuc enxieat nyolclaci psyttce jnbooitatnemel pmI ,elpmax ero F.tso hralucitra p an otcejb on aetaitnatsn io tyrassece nnoitamrofn iyn aniatno clareneg seri u t qeaeedhcro trclueovsel -, hsrgtoip hi lr,r ce ee sdaPtnovyicabaJ ttn hosgcniomitatnemelpmi noital iypbmoc a .tso hekiL lns l oesae ivtbrtlcieae e rhtsnj,ctnmobssoeeiotemhgcdeteelLjpbmoi Page7 noitu cre ixyeefhit csetpcs enjobiotatneme lspemtiubi r rt. itsneaeIhtt ugbn iiat rneftisotaat nyibam ssctin tehsmci eirdrheniwtau cqyaearrmah cneht deeb tginoilrp ux g de.nesihslteucdoerrhopcFs ,elpmaxe nnaoitatne mteclepjmbio yam drocer eht epyt fo elbatucexe ti ,sniatnoc stimuminim niaat nsitacm esj s b.as,o c lcefteCidoehtotsciretca reachncamro f,rsetpnemeri ueqneir htceagmrat etelpmo ctsil fo ylbisso py( rn)eo tvientle abr staeetntftcepfaemeiijecdrblcpopaomri prpoafrieht .secnats nniehW eht ssalc ro( st ignilud e)htcnseg astceles a tsoh n odintaatnem erlopfmitcejbo ,noit atsvitic temclea ehdstesab n ose teuhb tifrott aeh t,ts o ehechntat sont i,d eet badvniatceaht noitatnemelpmi .tcejbo enO ylralucitrap lufesu tcepsa fo siht si taht snoisrev fo aralucitrap ,nru tn i,sih T.tcejb ossal celgni s ay bdegana me bna c,smroftal pf oyteira v an odelipmo c,margorp elpit leugma ngoantmi vtauhoh tsimwroft ayfltope itn rcoaaev jrbio eehttuc erox ete esshuwtolla seiranib yb ,dna hdae tgsnniiwo lnloaigeL y loltac ittcaemloetsua e hnto ittcaetrnreomrceolfpmi .mroftalp taht neohiTtat nsetmceeljpb moeyidtiivloirbpisnet xygebnital ,uy”scspanagoceinlte“acilppa , yretore dctasnoenr uoc jit.aigbie gnobryeiraBLkawaa m -h snce noirtoihaoigwnteaLc i,l.pep.ai noi gee tLnuabci rdtn saei gdnaon iasttmsaaohcrtic la epshpnnta oo!iidttiac rtefgnloelmoeClpmi stcejbo dna rieht detaicossa ssalc tcejbo wolla noigeL sresu ot nur snoitacilp pnaettirw niyna gnimmargorp ,egaugnal gnisu yna gnimmargorp ,mgidarap no yna lanoitatupmo cecruoserrof .elbatucexe na sah resu eht hcihw nsoeihtcaatCn e4m.e4lpmI noitatnemelpmI sehcac diova egarots dna noitacinummoc stsoc yb gnirots snoitatnemelpmirof retal .esuer ehT ecafretni ot eht noitatnemelpmi ehcac tcejbo si detciped ni erugiF a—5elgnis dohtem si dedivorp ot nruter eht htap fo a lacol elif gniniatnoc a nevig noitatnemelpmis’tcejbo data. Host objects, rather than downloading implementations themselves, invoke class ImplementationCache { pathName getImplementation(LOID impl); }; FIGURE 5. The Legion implementation cache interface )(noitatnemelpmIteg no rieht lacol noitatnemelpmi ehcac .tcejbo ehT ehcac tcejborehtie sdnif ti ydaerla sah a dehcac ypoc fo eht noitatnemelpmi ro ti sdaolnwod dna sehcac a wen.ypoc nI rehtie ,esac eht ehcac tcejbo snruter eht s’elbatucexe htap ot eht .tsoh nI smret fo,ecnamrofrep using a cached binary results in object activation being almost as inexpensive as running a .mmmao err letgfaalsociyrofspl ruO noitatnemelp mliedom sekam eht noitadilavni fo dehcac seiranib a laivirt.melborp ecniS ssalc stcej byoficeps eht DIOL fo n oeihttatneme loptmi esu no hc aneoit a,vtistecuaqera ssalc deen ylno egnahc sti tsil fo seiranib ot ecalper eht noi tdalto nDeImOeLlpm ihtiw ehtwen noitatne m, des enltdhapsltmeo iunqoeirtav ietr cuhdatteuiif w flni l oce i.ie bewespwhnrseToenv .sehcac morf dedracsid eb nac dna tuo-emit lliw ,desu eb regnol on ylpmis lliw gs5nt.in4dengiAB gnidniB stnega era stcejbo hcihw etatilicaf eht noitalsnart fo seman )sDIOL( morfs’noigeL ,labolg ediw-dirg ecapseman ot lautca sesserdda elbasu yb tropsnart .slocotorp gnidniB ,stnegani ,trap tnemelpmi ycnerapsnart-noitacol ni dirg .gnitupmoc sihT melborp si desserdda ni eht ASGO ni eht RSG-ot-HSG gnippam .]01[ A gnidnib tnega si yllaitnesse a ehcac fo DIOLot tcejbo sserdda )AO( sgnippam taht si derahs yb lla fo sti .stneilc hguohtlA yreve noigeLtcejbo Page8 sah a ehcac fo sgnidnib rof rehto noigeL ,stcejbo eht gnidnib tnega stcartsba yawa eht msinahcem rof gninimreted a eellac s’tcejbo lautca sserdda fi ti si ton ni eht s’rellaclanretni cache. While details of the Legion’s naming and binding mechanisms are provided in section ,1.Section5 re6ugiF swohs eht ecafretni rof gnidnib .stnega ehT getBinding(LOID) noitcnuf snruter a gnidnib rof a deificeps ,DIOL dna getClassBinding(LOID) snrutera gnidnib rof eht ssalc tcejbo fo eht tcejbo htiw a nevig ;DIOL htob era dednetni ot ebdekovni directly by a client object that is in search of a binding. The )gnidniB(gnidniBteg dna )gnidniB(gnidniBssalCteg sdohtem troppus eht gnidniber ,msinahcem hcihw swollaa tneilc ot ssap ni a elats gnidnib .e.i( eno rof na tcejbo taht sah detargim ro emoceb )trenidna stcerid eht gnidnib tnega ot teg a wen .gnidnib ehT addBinding(Binding) dna )DIOL(gnidniBevomer functions allow a binding agent to act as a database of bindings rednu eht lortnoc fo lanretxe .stcejbo A ssalc nac esu )DIOL(gnidniBevomer ot evomerna s'ecnatsni gnidnib nehw taht ecnatsni semoceb treni ro steg ,deteled dna nac llac )gnidniB(gnidniBdda instance.an of migration or activcarteiaotni,o n, upon class BindingAgent { Binding getBinding(LOID object); Binding getBinding(Binding stale_binding); Binding getClassBinding(LOID object); Binding getClassBinding(Binding stale_binding); int addBinding(Binding new_binding); int removeBinding(LOID object); ;} FIGURE 6. The Legion binding agent interface gn in dofeniohittbu ctecxee ryrerrohoaftcss e,cgennik ayelptsc i ,rsetttros nangengiadniB , s esstcetnnccei oeisnrjlapbc coeka me he tcenmea us fqdoe osshlt leeamn ciomtr. egatneiddnib ,revewoH ni redro ot ekam eht gnidn imbsinah ceelmbalacs ot a yrev egral rebmun fo,stcejbo gnidnib stnega era yrassecen ot etubirtsid eht gnidnib daol dna diova .stops-toh oTevorpmi , ygtni ilsditnbniaeblga acnsac d eerbugi feonttoacr ehptoiowc e nroehton aot evr ers.isethnteilc roF ,ecnatsni yeht nac eb dezina g,ryollacihcrareih ekil SND eman ,srevres ro nac etalumea sgnidn igbnidivo rrp oyftilibisnops eer h fteom ogsnida ofl fyobere h,t]9 3e[e rgtninibm oecrawtfos .sessalc morf yawa smsinah cneoMi g ye.eL5K eW evah nees woh sresu nac etaerc stcejbo taht ekam etis ro ecruoser cificeps ycilopsnoisiced gnisu s’noigeL .sessalc ehT noitcaretni fo spuorg fo noigeL stcejbo taht ekam pu a noigeLdirg implement various Legion mechanisms that other objects can use. These mechanisms include smsinahcem rof labolg ,gnidnib/gniman ,gniludehcs tluaf ecnarelot dna .ytiruces hcaE si discussed.is autonomy and extensibility on impact its and below briefly described ggn ni1did.nmn5aaiNB noigeL stcejbo era deifitnedi hguorht a level-eerht gniman ,yhcrareih detciped ni erugiF .7 tAeht highest level, objects are identified by user-defined text strings called txetnocseman . These user- level txetnoc seman era deppam yb a yrotcerid ecivres dellac txetnocecaps to unique location- independent system-level names called noigeL tcejbosreifitnedi ( LOID .)s roF tcerid-ot-tcejbo object communication, LOIDs must be bound to low-level tcejbo sesserdda ( sAO ) that are meaningful within the context of the transport protocol used for communication. The process by hci hswDIOL er adeppam o t stecsesjebr odsdi adella ceh tnoigeL gnidnisbsecorp (see Figure 7). Page9
Description: