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