外文翻译4理解远程方法调用.docx
- 文档编号:11367820
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:14
- 大小:25.79KB
外文翻译4理解远程方法调用.docx
《外文翻译4理解远程方法调用.docx》由会员分享,可在线阅读,更多相关《外文翻译4理解远程方法调用.docx(14页珍藏版)》请在冰点文库上搜索。
外文翻译4理解远程方法调用
UnderstandingJavaRemoteMethodInvocation(RMI)
JavaRemoteMethodInvocation(RMI)istheJavalanguage’snativemechanismforperformingsimple,powerfulnetworking.RMIallowsyoutowritedistributedobjectsinJava,enablingobjectstocommunicateinmemory,acrossJavaVirtualMachines,andacrossphysicaldevices.
RMIisanalternativetousingCORBA,theObjectManagementGroup’sdistributedobjectarchitecture.Howdothetwocompare?
It’sbecomingtougherandtoughertodrawtheline.Infact,neitherRMInorCORBAisclearlyasuperiortechnology.
Historically,RMIhashadseveraldistinctadvantagesoverCORBA.Forexample,RMIprovidesalmostseamless,simple,transparentintegrationintotheJavalanguageitself.TheoverheadcostofdevelopinganapplicationthatusesRMIisverylow.RMI’sstrengthliesineaseofuse,andithashadgreatappealtosoftwaredeveloperswhowanttofocusonthebusinesslogicoftheircodeandleavethenetworkingtoRMI.
Bywayofcomparison,CORBAhashistoricallybeenwellsuitedforenterpriseapplications.CORBAprovidesacross-platform,cross-languagearchitecture.CORBAalsoprovidesafullsuiteofenterprisefeatures,suchastransactions,security,andpersistence.TheInternetInter-OrbProtocol(IIOP),arobustprotocolfordistributedobjectcommunications,isusedbehindthescenesinCORBA.
Notethatboththesetrade-offsarehistorical.ThedifferencesbetweenRMIandCORBAarebeginningtodisappearbecausebothRMIandCORBAarelearningfromeachother.ManyoftheservicesspecifictoCORBAarebecomingavailablewithRMIcoupledwiththeJava2Platform,EnterpriseEdition.Similarly,
theeaseofuseofRMIisbecomingavailableinCORBA.Inessence,thetwocampsareconverging.We’lllookatexactlyhowlaterinthisappendixandalsoinChapter11.
ThisappendixexaminesthebenefitsanddrawbacksofRMIanddetailsthearchitectureandlogicbehindit.WealsocompareRMIwithCORBA,andweexaminehowRMIandEJBrelate.Afterreadingthis,youwillbeabletowriteyourowndistributedobjectapplicationsbasedontheRMIstandard.
RemoteMethodInvocations
Aremoteprocedurecall(RPC)isaproceduralinvocationfromaprocessononemachinetoaprocessonanothermachine.RPC’senabletraditionalprocedurestoresideonmultiplemachines,yetstillremainincommunication.Theyareasimplewaytoperformcross-processorcross-machinenetworking.
AremotemethodinvocationinJavatakestheRPCconceptonestepfurtherandallowsfordistributedobjectcommunications.RMIallowsyoutoinvokemethodsonobjectsremotely,notmerelyprocedures.Youcanbuildyournetworkedcodeasfullobjects.Thisyieldsthebenefitsofanobject-orientedprogramming,suchasinheritance,encapsulation,andpolymorphism.
Remotemethodinvocationsarebynomeanssimple.Belowarejustsomeoftheissuesthatarise:
Marshallingandunmarshalling.
Remotemethodinvocations(aswellasRPCs)allowyoutopassparameters,includingJavaprimitivesandJavaob-jects,overthenetwork.Butwhatifthetargetmachinerepresentsdatadifferentlythanthewayyourepresentdata?
Forexample,whathappensifonemachineusesadifferentbinarystandardtorepresentnumbers?
Theproblembecomesevenmoreapparentwhenyoustarttalkingaboutobjects.Whathappensifyousendanobjectreferenceoverthewire?
Thatpointerisnotusableontheothermachinebecausethatmachine’smemorylayoutiscompletelydifferentfromyours.Marshallingandunmarshallingistheprocessofmassagingparameterssothattheyareusableonthemachinebeinginvokedonremotely.Itisthepackagingandunpackagingofparameterssothattheyareusableintwoheterogeneousenvironments.Asweshallsee,thisistakencareofforyoubyJavaandRMI.
Parameterpassingconventions
Therearetwomajorwaystopassparameterswhencallingamethod:
pass-by-valueandpass-by-reference,asshowninFigureA.1.Whenyoupassbyvalue,youpassacopyofyourdatasothatthetargetmethodisusingacopy,ratherthantheoriginaldata.Anychangestotheargumentarereflectedonlyinthecopy,nottheoriginal.Pass-by-reference,ontheotherhand,doesnotmakeacopy.Withpass-by-reference,anymodificationstoparametersmadebytheremotehostaffecttheoriginaldata.Theflexibilityofboththepass-by-referenceandpass-by-valuemodelsareadvantageoustohave,andRMIsupportsboth.We°llseehowinthepagestocome.
Distributedgarbagecollection
TheJavalanguageitselfhasbuilt-ingarbagecollectionofobjects.Garbagecollectionallowsuserstocreateobjectsatwill,anditleavesthedestructionofobjectstotheunderlyingJavaVirtualMachine.Butinadistributedobjectsystem,thingsbecomemorecomplicated.Anobjectresidingonaremotehostmighthaveareference(calledaremotereference)toalocalobject.Thus,theremotehosthasareferencethatactuallyreferstoanobjectacrossthenetwork,ratherthanalocalobject.Buthowdoesgarbagecollectionworkthen?
Afterall,aJVM’sgarbagecollectorrunswithinthatJVManddoesnottakeintoaccountobjectreferencesfromremotehosts.Becauseofthis,adistributedgarbagecollectorisneededtotrackremotehoststhatreferencelocalobjects.
Networkormachineinstability
WithasingleJVMapplication,acrashoftheJVMbringstheentireapplicationdown.Butconsideradistributedobjectapplication,whichhasmanyJVMsworkingtogethertosolveabusinessproblem.Inthisscenario,acrashofasingleJVMshouldnotcausethedistributedobjectsystemtogrindtoahalt.Toenforcethis,remotemethodinvocationsneedastandardizedwayofhandlingaJVMcrash,amachinecrash,ornetworkinstability.Whensomecodeperformsaremoteinvocation,thecodeshouldbeinformedofanyproblemsencounteredduringtheoperation.RMIperformsthisforyou,abstractingoutanyJVM,machine,ornetworkproblemsfromyourcode.
Downloadableimplementations
RemotemethodinvocationsallowyoutopasswholeJavaobjectsasparameterstomethodsinvokedoverthenetwork.Thismeans,forexample,thatyoucanpassajava.lang.Stringoverthenetworkasaparametertoamethod.IfyoupassanentireJavaobjecttoatargetmachine,whatyou’rereallypassingisthatobject’sdatatothetargetmachine.InourStringexample,thiscouldbetheString’scharacterbuffer.Butobjectsalsocontaincode,andthatcodemightnotbeavailableonthetargetmachine.Forexample,Stringobjectshaveamethodcalledlength()thatreturnsthelengthoftheString.Thislogic,aswellastheotherlogicsurroundingobjects,isstoredin.classfilesinJava.Thetargetmachineneedsthoseclassfilessothatitcanconstructthecodeportionoftheobjectsyousendasparameterstomethodsoverthenetwork.RMIallowsfortheseclassfilestobeautomaticallydownloadedbehindthescenes,relievingyouofthisdogmaticchore.ThisalsomeansRMIisaverydynamicsystem,allowingfordifferentobjectimplementationstocomeinoverthewire.
Security
WementionedthatRMIcontainsbuilt-indynamicclassloading.Thisallowsobjectimplementationstoarrivefromremote,andpossiblyhostile,sources.Javaappletsareperfectexamplesbecausetheyaredownloadedontheflyandcouldbemalicious.Asecuritymechanismneedsbeinplacetorestrictpossiblyhostileimplementationsandgrantsystem-levelaccessonlytoauthenticatedimplementations.RMIhassuchsupport.
Activation
You’dliketobeabletoinvokemethodsonremoteobjects,eveniftheyarenotinmemoryyet.Ifyouinvokeamethodonaremoteobjectthatisnotinmemoryyet,RMIcontainsmeasurestoautomaticallyfaulttheobjectintomemorysothatitcanservicemethodcalls.Thisiscalledremoteobjectactivation.
Asyoucansee,there’salotinvolvedinperformingremotemethodinvocations.RMIcontainsmeasurestohandlemanyofthesenastynetworkingissuesforyou.Thisreducesthetotaltimespentdealingwiththedistributionofyourapplication,allowingyoutofocusonthecorefunctionality.
RMIistheJavalanguage’snativeremotemethodinvocationservice.ItshipswiththeJava2platform,anditisrequiredforany1.1-compatibleJavaRuntimeEnvironment.ItisbuiltentirelyinJavaandisthereforehighlycross-platform.ThisisabigwinforRMI-youcanwriteyournetworkingcodeonceandrunitinanyrecentJavaRuntimeEnvironment.Contrastthiswithproprietary,platformdependentRPClibraries,andyoucanseesomerealvalueinRMI.
RMIArchitecture
InRMI,anyobjectwhosemethodscanbeinvokedfromanotherJavaVMiscalledaremoteobject.Remoteobjectsarenetworkedobjects,whichexposemethodsthatcanbeinvokedbyremoteclients.Thephysicallocationsofremoteobjectsandtheclientsthatinvokethemarenotimportant.Forexample,it’spossibleforaclientrunninginthesameaddressspaceasaremoteobjecttoinvokeamethodonthatobject.It’salsopossibleforaclientacrosstheInternettodothesamething.Totheremoteobject,bothinvocationsappeartobethesame.
RMIandInterfaceversusImplementation
InChapter1,wediscussedoneofobject-orienteddesign’sgreatprogrammingpractices—theseparationoftheinterfaceofcodefromitsimplementation.
Theinterfacedefinestheexposedinformationaboutanobject,suchasthenamesofitsmethodsandwhatparametersthosemethodstake.It’swhattheclientworkswith.Theinterfacemaskstheimplementationfromtheviewpointofclientsoftheobject,soclientsdealonlywiththeendresult:
themethodstheobjectexposes.
Theimplementationisthecoreprogramminglogicthatanobjectprovides.Ithassomeveryspecificalgorithms,logic,anddata.Byseparatinginterfacefromimplementation,youcanvarya
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外文 翻译 理解 远程 方法 调用