RMI原理及應用 RMI原理及應用

RMI原理及應用

  • 期刊名字:科技創(chuàng )業(yè)月刊
  • 文件大?。?97kb
  • 論文作者:劉派
  • 作者單位:北京郵電大學(xué)軟件學(xué)院
  • 更新時(shí)間:2020-06-12
  • 下載次數:次
論文簡(jiǎn)介

用技術(shù)RMI原理及應用劉派(北京郵電大學(xué)軟件學(xué)院北京100876)摘要:為了屏蔽計算機網(wǎng)絡(luò )硬件設備及操作系統上的差別從而系統之間的通信,筆者引入了基于JAA的遠程方法調用(RM)。RM提供分布式對象間的通訊,允許獲得在遠程進(jìn)程中的對象的引用,進(jìn)而通過(guò)引用調用遠程對象的方法,就好像該對象是與客戶(hù)端代碼同樣運行在本地進(jìn)程中一樣。通過(guò)RM議程服務(wù)的實(shí)例,介紹了基于JAVA的RM與 Socket結合的應用。RM架構使編程思路更為清晰,代碼結構化更強,更加容易實(shí)現關(guān)鍵字:通信;遠程方法調用;分布式對象;議程中圖分類(lèi)號:TP12文獻標識碼:A隨著(zhù)信息化的飛速發(fā)展,信息資源共享成了必經(jīng)之路,此時(shí)就要用到遠程c1.2RM優(yōu)點(diǎn)方法調用RMI( RemoteMeth Invoca-包括:①面向對象:可將完整的對ion),可以在不同的Java虛擬機(JVM)象作為參數和返回值進(jìn)行傳遞,而不僅之間實(shí)現對象與對象的通信。VM可以?xún)H是預定義的數據類(lèi)型;②可移動(dòng):可位于相同或不同計算機上,在多個(gè)JVM將屬性從客戶(hù)機移到服務(wù)器或從服務(wù)中,一個(gè)JVM可以調用存儲在其它器移到客戶(hù)機;③安全:使用java內置JVM的對象的方法。的安全機制保證下載執行時(shí)用戶(hù)系統圈1 Call, RPC22BM三層果構圖的安全;④可連接現有或者原有的系1RMI技術(shù)原理客戶(hù)程序和服務(wù)程序彼此交互的接口,統:可通過(guò)Java本機方法接口JN與現11基于RPC的RM介紹它傳輸給遠程引用層的數據是從調度有系統進(jìn)行交互;⑤編寫(xiě)一次,到處運Java遠程方法調用(RM)使得運行流中提取而來(lái)。調度流使用對象序列化行:可移植到任何WM上;⑥分布式在一個(gè)Java虛擬機( Java Virtual Ma-機制實(shí)現的,通過(guò)這個(gè)機制,Java對象圾收集:⑦并行計算:多線(xiàn)程處理方法,chine,vM)的對象可以調用運行另一可以在地址空間進(jìn)行傳遞。Stb是客戶(hù)可使服務(wù)器利用這些JAVA線(xiàn)程更好個(gè)vM之上的其他對象的方法從而提端的代理,它實(shí)現了所有遠程對象的接地并行處理客戶(hù)端請求。供了程序間進(jìn)行遠程通訊的途徑。遠程口; Skeleton是服務(wù)器端的實(shí)體,它包括13RM實(shí)戰過(guò)程調用( Remote Procedure Cal,了一個(gè)被具體遠程對象所支持的接口(1)一個(gè)正常工作的RMI系統由以RPC),可以用于一個(gè)進(jìn)程調用另一個(gè)進(jìn)(2)遠程引用( Remote Reference)下幾個(gè)部分組成:遠程服務(wù)的接口定程(很可能在另一個(gè)遠程主機上)中的層。這一層相當于在其之上的Sub義,遠程服務(wù)接口的具體實(shí)現,Smb和過(guò)程,從而提供了過(guò)程的分布能力。 Java Skeleton層和在其之下的傳輸協(xié)議層之 Skeleton文件,一個(gè)運行遠程服務(wù)的服的RM則在RPC的基礎上向前又邁進(jìn)前的中間件,負責處理遠程對象引用的務(wù)器,一個(gè)RM命名服務(wù),類(lèi)文件的提了一步,即提供分布式對象間的通訊,創(chuàng )建和管理供者(一個(gè)HTP或者FTP服務(wù)器),一允許獲得在遠程進(jìn)程中的對象(稱(chēng)為遠(3)傳輸協(xié)議( Transport Protocol)個(gè)需要這個(gè)遠程服務(wù)的客戶(hù)端程序程對象)的引用(稱(chēng)為遠程引用),進(jìn)而層。該層提供了數據協(xié)議,用以通過(guò)線(xiàn)通過(guò)引用調用遠程對象的方法就好像路傳輸客戶(hù)程序和遠程對象間的請求2開(kāi)發(fā)實(shí)例對象是與你的客戶(hù)端代碼同樣運行和應答。主要執行以下動(dòng)作①建立遠使用 Java RMI構建一個(gè)分布式議在本地進(jìn)程中一樣。RM使用了術(shù)語(yǔ)程地址空間的連接;②對連接進(jìn)行管理程服務(wù)。不同的客戶(hù)應能連接到這一共“方法”( Method)強調了這種進(jìn)步,即在和監控連接狀態(tài);③監聽(tīng)新的調用:④享的議程服務(wù),并查詢(xún)、添加和刪除議分布式基礎上,充分支持面向對象的特建立并維護地址空間的遠中國煤化工服務(wù)程序應具備新用性建立新調用的連接;⑥定位CNMHG用戶(hù)所有會(huì )踏安排等(1)sudb/ Skeleton層。該層提供了調度程序,并建立與此調度圖目理切。丌的步驟見(jiàn)圖2。收稿日期:2010-05-18PIONEERING WITH SCIENCE TECHNOLOGY MONTHLY NO. 7 2010 141到技創(chuàng )叫界RMI原理及應用public AgendaService() throws ja-Lmi RemoteException Ipublic synchronized String register [])I(String userName, String password)if (args length = 0)t=java. mi. Remote ExceptionSystem.out. println("需要UserlsExsited Exception一個(gè)命令行參數:程序運行的端口號1099");圖2使用 Java RM構建分布式議程服務(wù)田retum message:21定義遠程接口(1)遠程接口必須直接或者間接的擴展自 java rmi Remote接口。遠程接口23創(chuàng )建 Server端parseInt (args[O3);展其它接口,只要被擴展的接口的所有象,就需要將遠程對象注冊到RM的 cateRegistry. create Registry(pot ;3.Lo-還可以在擴展該接口的基礎上,同時(shí)擴為了讓客戶(hù)程序可以找到遠程對方法與遠程接口的所有方法一樣滿(mǎn)足注冊表。這個(gè)過(guò)程有時(shí)被稱(chēng)為“引導”過(guò)下一個(gè)要求。程。為此編寫(xiě)一個(gè)獨立的引導程序負 vice manager= new Server(();(2)遠程方法必須聲明拋出java.責創(chuàng )建和注冊遠程對象首先創(chuàng )建一個(gè)java. mi. Namingrmi Remote Exception異常,或者該異常遠程對象(同時(shí)導出了該對象)之后將 rebind(" AgendaManager'", manager);的超類(lèi)( Superclass),在遠程方法聲明該對象綁定到RM注冊表中。 Naming中,作為參數或者返回值的遠程對象,的 rebind()方法接受一個(gè)URL形式的議程管理服務(wù)程序已準備就緒…")或者包含在其它非遠程對象中的遠程名字作綁定之用。catch (NumberFormat Exception對象,必須聲明為其對應的遠程接口以注冊為例的源代碼(取部分代mf)而不是實(shí)際的實(shí)現類(lèi)。rintStackTrace(3)滿(mǎn)足該應用的需求應該定義注blie class Server extends Agen- O)冊、添加、查詢(xún)、刪除、清空五個(gè)方法并 daservicei catch (Exception拋出相應異常,下面以注冊為例,代碼public Server ()throwsexc)Iexc printStackTraceterface extends java. mi. Remote IString register (String userName, (String useString password )throws java rmi Remo- throwsjavarmi Remote Exception,24創(chuàng )建客戶(hù)端teException, UserlsExsitedException;UserlsExsitedException i由于版面有限,僅取小片段客戶(hù)端User user= new User(user-程序代碼22定義遠程接口的實(shí)現類(lèi)Name, password );public class Client I(1)即實(shí)現上一步所定義的接口,userManager User Manager.enda. AgendaServicelnterface給出業(yè)務(wù)方法的具體實(shí)現邏輯 Agen- getUserlnstance();Service class實(shí)現了之前定義的遠程ublic Client (String ho接口,同時(shí)繼承自 java rmi server UnicasisReg-ject類(lèi)是一個(gè)便捷類(lèi),它實(shí)現了前面所 isteredUser(user)iString objectld講的基于 TCP/IP的點(diǎn)對點(diǎn)通訊機制message="用戶(hù) genda Manager'";遠程對象都必須從該類(lèi)擴展(除非你想已存在";manager =(agenda. A-自己實(shí)現幾乎所有 Unicast Remote Objectt else IgendaServiceInterface) java. mi. Naming.的方法)userManager. user- lookup("http://+ host +" "+port+"/(2)注冊用戶(hù)接口的實(shí)現代碼中國煤化工public class AgendaServiceYHCNMHG(Exception exc)IJava. rm. server: Unicas-成功oystem out println(exc);rEmote objectmplements AgendaServicelnterfacecatch(Exception exc)142科技創(chuàng )業(yè)月刊2010年第7期應用技術(shù)城市軌道交通地下車(chē)站線(xiàn)路與站位方案研究—以鄭州軌道交通紫荊山站為例(中鐵第四勘察設計院集團有限公司湖北武漢430063)摘要:城市軌道交通線(xiàn)路和站位的設置是一項系統工程,提出了線(xiàn)路和站位設王的基本原則和設計思路,以鄭州軌道交通紫荊山站線(xiàn)站位為例,探討總結了城市軌道交通地下車(chē)站的研究中必須考慮的因素和控制條件。關(guān)鍵詞:城市軌道交通;地下車(chē)站;方案研究中圖分類(lèi)號:U284文獻標識碼:A1城市軌道交通線(xiàn)路和站位路及施工過(guò)程中對城市交通的干擾。(1)線(xiàn)路走向、站位設置應符合《城(4)線(xiàn)路平面應在滿(mǎn)足功能的前提設置原則和思路市總體規劃》、《城市軌道交通建設規下力求順直,盡量采用較大的曲線(xiàn)半城市軌道交通線(xiàn)路和站位的設置劃》的要求,合理選擇線(xiàn)路路徑,并協(xié)調徑是一項系統工程,必須貫徹“系統優(yōu)化、好與其它線(xiàn)路的銜接、換乘關(guān)系。(6)根據行車(chē)組織的要求,結合線(xiàn)線(xiàn)位合理、站位便利、方便運營(yíng)、可持續(2)堅持“以人為本”的設計理念,路現場(chǎng)具體條件,合理設置輔助線(xiàn)發(fā)展的設計理念。運用系統工程、價(jià)值線(xiàn)路和站位相互配套、相互依承,總體工程理論進(jìn)行全方位、多層次線(xiàn)路和站方案應結合其它后續的軌道交通工穆,2城市軌道交通地下車(chē)站站位方案技術(shù)、經(jīng)濟比較,以求線(xiàn)路和站整體構思、統籌考慮、遠近結合并為后線(xiàn)站位方案研究位的設計達到安全、舒適、快速、規劃、續工程的實(shí)施創(chuàng )造條件。城市軌道交通地下車(chē)站站線(xiàn)站位環(huán)保、節能投資及效益的最佳匹配(3)結合城市規劃、地形、地貌、工方案需要考慮的因素和控制條件非?;谏鲜龅目傮w要求,因此,在先程地質(zhì)及水文地質(zhì)條件、地面與地下建之多,以鄭州軌道交通紫荊山站為例:有線(xiàn)網(wǎng)規劃的前提下,合理地選擇車(chē)站構)筑物和地面交通狀況等;并與沿線(xiàn)該站是鄭州軌道交通1號線(xiàn)與2號線(xiàn)的位置和前后線(xiàn)路,須遵循以下設計思環(huán)境和土地利用相互協(xié)調減少工程量的換乘站(見(jiàn)圖1),其周邊既是一個(gè)交25編譯實(shí)例程序F大三下課件 Distributed Sys分布式提供了可靠的平臺,支持Java擴編譯示例程序和編譯其它非分布 temllab\Lah2 RMI >java-classpath / agen展到所有平臺,人們可根據需要適時(shí)地式的應用沒(méi)什么區別。只是編譯之后, daServicel/ bin server. Server1099添加Java服務(wù)器和客戶(hù)機,為更大規需要使用RMI編譯器,即mic生成所議程管理服務(wù)程序已準備部緒模的分布式計算服務(wù)。的方式懸將遠程對象的實(shí)膜煮X不是遠mam10y需Sub和 Skeleton實(shí)現。使用rmic參考文獻程接口)的全類(lèi)名作為參數來(lái)運行micF大三下課件 Distributed界 TANENBAUM A S.分布式系統原理與范例(英文影印版)[M].北家:清命令。參考下面的示例; mic agenda. A- tem\lab\ab2 RMI\AgendaService\bin>ja華大學(xué)出社,2002va elint. Clinent 127.0.0.1 1099 register 2 David Flanagan, Jim Farley, William Craw編譯之后將生成 Agendaservice_ Elly123ford andKris Magnusson, 1999, ISBN 1Skelclass8和 AgendaService_Stub class兩注冊成功56592-483-SE, O Reilly, Java Enterprise個(gè)類(lèi)。3結論in a Nutshell2.6運行程序3 Ed Roman, Scott Ambler and Tyler Jew將命令行以批處理文件保存,先運從該實(shí)例即介紹的開(kāi)0-471-41714,John行 Server端再運行 register.bat看出,RM架構支持的開(kāi)rV凵中國煤化工java -classpath/ Agendaservice′性,思路清晰使程序員CN Gnd Editionbin server. Server 1099寫(xiě)分布式程序,而且RM為面向對象的責任編輯曉天)收稿日期:2010-0622PIONEERING WITH SCIENCE TECHNOLOGY MONTHLY NO. 7 2010 143

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院