百科解釋
目錄·RMI 公司背景介紹·RMI(遠(yuǎn)程方法調(diào)用)的組成·RMI(遠(yuǎn)程方法調(diào)用)的原理·RMI與CORBA的關(guān)系 RMI 公司背景介紹 Raza Microelectronics, Inc.(RMI公司)是勇于創(chuàng)新的信息基礎(chǔ)架構(gòu)半導(dǎo)體解決方案領(lǐng)導(dǎo)廠商,其產(chǎn)品廣泛地被應(yīng)用于改善不斷演進(jìn)的信息基礎(chǔ)設(shè)施。在這個(gè)演進(jìn)過程中,數(shù)據(jù)中心和家庭之間的連接在強(qiáng)度和速率方面都逐漸升級;安全和智能化已經(jīng)成為每一個(gè)網(wǎng)絡(luò)系統(tǒng)環(huán)境的要求;同時(shí),邊緣網(wǎng)絡(luò)日益成為瓶頸,促使業(yè)界需要更具擴(kuò)展能力及成本優(yōu)勢的智能網(wǎng)絡(luò)接入方法。RMI公司為信息基礎(chǔ)架構(gòu)設(shè)計(jì)并提供多樣化的解決方案,為下一代靈活的企業(yè)和數(shù)據(jù)中心應(yīng)用、智能接入和數(shù)字影像系統(tǒng)奠定基礎(chǔ)。 RMI 總部位于美國加州的庫比提諾 (Cupertino) 市。RMI子公司負(fù)責(zé)運(yùn)營其在中國,印度和日本的發(fā)展中心以及代表處。RMI在中國的兩個(gè)全資子公司位于北京和深圳(總稱,RMI中國)。 產(chǎn)品 RMI公司為信息基礎(chǔ)設(shè)施提供一系列新一代半導(dǎo)體解決方案。 XLR&#8482;線程處理器(Thread Processor&#8482;)系列 基于MIPS64®的XLR處理器系列是全球首款為企業(yè)和數(shù)據(jù)中心關(guān)聯(lián)計(jì)算(Connected Computing)應(yīng)用而設(shè)計(jì)的線程處理器 (Thread Processor&#8482;)。XLR系列處理器是目前功能最強(qiáng)大、吞吐量最優(yōu)化的處理器解決方案。 XLR系列是基于RMI增強(qiáng)型MIPS64&#8482;內(nèi)核,同時(shí)支持32個(gè)線程的獨(dú)特構(gòu)架的處理器,目前工作頻率可達(dá)1.5GHz,同時(shí)支持高度集成的獨(dú)立硬件安全引擎和網(wǎng)絡(luò)應(yīng)用加速器。安全、內(nèi)容感知和智能應(yīng)用對網(wǎng)絡(luò)和計(jì)算的應(yīng)用變得日益重要,而XLR系列處理器正是為了滿足這些應(yīng)用不斷融合的主要推動器。這些應(yīng)用包括集成安全 (防火墻、VPN、防病毒、入侵防御)、Web服務(wù)、虛擬存儲、負(fù)載平衡、服務(wù)器卸載、智能路由與交換等。 XL&#8482;處理器系列 基于MIPS64®的XL處理器系列為數(shù)字影像應(yīng)用帶來了低功耗的處理器解決方案。業(yè)界領(lǐng)先的性價(jià)比和低功耗特性,使XL處理器系列成為針對辦公室自動化和數(shù)字化娛樂市場理想的嵌入式處理器。 Orion&#8482;智能接入(Intelligent Access&#8482;)處理器系列 Orion智能接入處理器系列是目前集成度最高、配備服務(wù)質(zhì)量保證(QoS)的EOS方案。Orion系列產(chǎn)品提供運(yùn)營商級的解決方案,協(xié)助運(yùn)營商基于現(xiàn)有通訊網(wǎng)絡(luò)設(shè)施提供以以太網(wǎng)型式接入的多類型服務(wù)。 Pegasus&#8482; PDH接入處理器系列 Pegasus系列PDH接入處理器為多類要求T1/E1/J1及T3/E3支援的接入應(yīng)用提供了一個(gè)靈活的解決方案。Pegasus通過直接連接SONET/SDH或數(shù)據(jù)接口來支持Ethernet-Over-DS3應(yīng)用。 優(yōu)異的半導(dǎo)體產(chǎn)品執(zhí)行能力 RMI公司擁有的電子工程設(shè)計(jì)專才使其可以快速地開發(fā)先進(jìn)的半導(dǎo)體產(chǎn)品,不斷提升處理器性能和集成度。作為一家具優(yōu)異產(chǎn)品執(zhí)行力的芯片廠商,RMI公司獨(dú)一無二的快速提供重塑市場革命性產(chǎn)品的能力可使系統(tǒng)制造商作出對常變的市場需求做出快速反應(yīng): &#8226; 通過 “單芯片系統(tǒng)” (System-On-a-Chip) 設(shè)計(jì)方法,提供更高的集成度和更豐富的功能 &#8226; 簡化產(chǎn)品應(yīng)用開發(fā),幫助廠商快速地響應(yīng)市場需求 &#8226; 優(yōu)化產(chǎn)品成本,協(xié)助廠商輕松面對具有價(jià)格彈性的市場 &#8226; 為廠商開啟新市場、新服務(wù)之大門 RMI團(tuán)隊(duì):人才+ 經(jīng)驗(yàn) = 成功 RMI公司由世界級的架構(gòu)師團(tuán)隊(duì)和具有豐富經(jīng)驗(yàn)的管理團(tuán)隊(duì)創(chuàng)立,由首席執(zhí)行官Atiq Raza先生領(lǐng)導(dǎo)。Raza先生是享譽(yù)世界、深受尊敬的半導(dǎo)體行業(yè)泰斗,他在三十三年的職業(yè)歷程中為新一代處理器的革新做出了卓越的貢獻(xiàn)。 RMI公司采取積極的研發(fā)模式,其精干的研發(fā)隊(duì)伍由最優(yōu)秀的架構(gòu)師和工程師組成。RMI公司具有快速提供重塑市場的革命性產(chǎn)品的能力,使得系統(tǒng)制造商能夠?qū)ΤW兊氖袌鲂枨笞龀隹焖俜磻?yīng)。這個(gè)團(tuán)隊(duì)利用本身在半導(dǎo)體和系統(tǒng)制造行業(yè)廣泛的產(chǎn)品開發(fā)及豐富的商業(yè)領(lǐng)導(dǎo)經(jīng)驗(yàn),使得RMI公司從一家概念性的新公司,快速成長為成功的高科技公司。 制造 RMI公司與其緊密合作的制造伙伴都完全遵守嚴(yán)格的質(zhì)量標(biāo)準(zhǔn),保證其產(chǎn)品供應(yīng)的連續(xù)性及可靠性。通過采用標(biāo)準(zhǔn)的CMOS生產(chǎn)技術(shù),RMI公司將產(chǎn)品生產(chǎn)外發(fā)給世界一流的具擁有大量先進(jìn)半導(dǎo)體生產(chǎn)技術(shù)的晶圓制造商伙伴,通過大幅度的降低成本及對資源的戰(zhàn)略性運(yùn)用,成功地發(fā)揮了無晶圓半導(dǎo)體產(chǎn)品廠商的戰(zhàn)略性優(yōu)勢。 RMI總裁背景 Atiq Raza 主席兼首席執(zhí)行官 Atiq Raza是RMI公司的創(chuàng)立者、主席兼首席執(zhí)行官。 在創(chuàng)立RMI公司之前,Raza先生曾擔(dān)任Advanced Micro Devices (AMD)的總裁兼首席運(yùn)營長官,期間為AMD處理器產(chǎn)品的發(fā)展規(guī)劃制定了基礎(chǔ),并成功推出AMD-K6和Athlon系列處理器。 1996年1月,AMD和NexGen公司合并,Raza成為AMD管理層成員, 并任董事。在合并前,Raza先生是當(dāng)時(shí)NexGen公司的主席兼首席執(zhí)行官。 Raza先生還是Matrix Semiconductors、AMI Semiconductor、Mellanox Technologies, Inc.、eASIC和TRG的董事會成員。 RMI公司由世界級的架構(gòu)師團(tuán)隊(duì)和具有豐富經(jīng)驗(yàn)的管理團(tuán)隊(duì)創(chuàng)立,由首席執(zhí)行官Atiq Raza先生領(lǐng)導(dǎo)。Raza先生是享譽(yù)世界、深受尊敬的半導(dǎo)體行業(yè)泰斗,他在三十三年的職業(yè)歷程中為新一代處理器的革新做出了卓越的貢獻(xiàn)。 RMI公司采取積極的研發(fā)模式,其精干的研發(fā)隊(duì)伍由最優(yōu)秀的架構(gòu)師和工程師組成。RMI公司具有快速提供重塑市場的革命性產(chǎn)品的能力,使得系統(tǒng)制造商對常變的市場需求能夠做出快速反應(yīng)。這個(gè)團(tuán)隊(duì)利用本身在半導(dǎo)體和系統(tǒng)制造行業(yè)廣泛的產(chǎn)品開發(fā)及豐富的商業(yè)領(lǐng)導(dǎo)經(jīng)驗(yàn),使得RMI公司從一家概念性的新公司,快速成長為成功的高科技公司。 RMI在中國的全資子公司位于深圳,北京等地(總稱:RMI中國),使得RMI公司可以為客戶提供很好的研發(fā)協(xié)助和技術(shù)支持。 RMI中國團(tuán)隊(duì): RMI公司的中國團(tuán)隊(duì)是在中國獨(dú)樹一幟的支持團(tuán)隊(duì)。團(tuán)隊(duì)成員全部由具有多年研發(fā)經(jīng)驗(yàn)的高級工程師組成,團(tuán)隊(duì)成員對MIPS,PowerPC,IXP2400/2800等處理器及其應(yīng)用,以及各種操作系統(tǒng)如VxWorks,Linux有著豐富的經(jīng)驗(yàn)。與其他芯片供應(yīng)商在中國的技術(shù)支持團(tuán)隊(duì)相比,RMI的中國團(tuán)隊(duì)更像是一支研發(fā)隊(duì)伍,而不僅僅完成技術(shù)支持的工作。在與國內(nèi)領(lǐng)先的通訊設(shè)備制造商的合作中,RMI團(tuán)隊(duì)的工作能力得到了極高的評價(jià),從不同客戶那里傳來的聲音都表示:RMI中國團(tuán)隊(duì)的技術(shù)支持工作非常高效,及時(shí)。尤其在幫助客戶把RMI產(chǎn)品集成到客戶自己的系統(tǒng)和網(wǎng)絡(luò)當(dāng)中方面做的很好。RMI中國團(tuán)隊(duì)可以真正做到幫助客戶快速搭建開發(fā)平臺,高效的解決技術(shù)問題,并在系統(tǒng)設(shè)計(jì)方面給出建設(shè)性意見,從而幫助客戶大大提高工作效率,縮短產(chǎn)品的研發(fā)周期。 RMI相關(guān)概述 RMI是Java的一組擁護(hù)開發(fā)分布式應(yīng)用程序的API。RMI使用Java語言接口定義了遠(yuǎn)程對象,它集合了Java序列化和Java遠(yuǎn)程方法協(xié)議(Java Remote Method Protocol)。簡單地說,這樣使原先的程序在同一操作系統(tǒng)的方法調(diào)用,變成了不同操作系統(tǒng)之間程序的方法調(diào)用,由于J2EE是分布式程序平臺,它一RMI機(jī)制實(shí)現(xiàn)程序組件在不同操作系統(tǒng)之間的通信。比如,一個(gè)EJB可以通過RMI調(diào)用Web上另一臺機(jī)器上的EJB遠(yuǎn)程方法。 RMI(Remote Method Invocation,遠(yuǎn)程方法調(diào)用)是用Java在JDK1.1中實(shí)現(xiàn)的,它大大增強(qiáng)了Java開發(fā)分布式應(yīng)用的能力。Java作為一種風(fēng)靡一時(shí)的網(wǎng)絡(luò)開發(fā)語言,其巨大的威力就體現(xiàn)在它強(qiáng)大的開發(fā)分布式網(wǎng)絡(luò)應(yīng)用的能力上,而RMI就是開發(fā)百分之百純Java的網(wǎng)絡(luò)分布式應(yīng)用系統(tǒng)的核心解決方案之一。其實(shí)它可以被看作是RPC的Java版本。但是傳統(tǒng)RPC并不能很好地應(yīng)用于分布式對象系統(tǒng)。而Java RMI 則支持存儲于不同地址空間的程序級對象之間彼此進(jìn)行通信,實(shí)現(xiàn)遠(yuǎn)程對象之間的無縫遠(yuǎn)程調(diào)用。 RMI目前使用Java遠(yuǎn)程消息交換協(xié)議JRMP(Java Remote Messaging Protocol)進(jìn)行通信。JRMP是專為Java的遠(yuǎn)程對象制定的協(xié)議。因此,Java RMI具有Java的“Write Once,Run Anywhere”的優(yōu)點(diǎn),是分布式應(yīng)用系統(tǒng)的百分之百純Java解決方案。用Java RMI開發(fā)的應(yīng)用系統(tǒng)可以部署在任何支持JRE(Java Run Environment Java,運(yùn)行環(huán)境)的平臺上。但由于JRMP是專為Java對象制定的,因此,RMI對于用非Java語言開發(fā)的應(yīng)用系統(tǒng)的支持不足。不能與用非Java語言書寫的對象進(jìn)行通信。 Java Remote Method Invocation ( RMI -- Java遠(yuǎn)程方法調(diào)用)允許您使用Java編寫分布式對象。本文將介紹RMI的優(yōu)點(diǎn)以及如何將其連接到現(xiàn)有的和原有的系統(tǒng)中,以及與用Java 編寫的組件的連接。 RMI為采用Java對象的分布式計(jì)算提供了簡單而直接的途徑。這些對象可以是新的Java對象,也可以是圍繞現(xiàn)有API的簡單的Java包裝程序。Java體現(xiàn)了“編寫一次就能在任何地方運(yùn)行的模式。而RMI可將Java模式進(jìn)行擴(kuò)展,使之可在任何地方運(yùn)行”。 因?yàn)镽MI是以Java為核心的,所以,它將Java的安全性和可移植性等強(qiáng)大功能帶給了分布式計(jì)算。您可將代理和梢?務(wù)邏輯等屬性移動到網(wǎng)絡(luò)中最合適的地方。如果您要擴(kuò)展Java在系統(tǒng)中的使用,RMI將使您充分利用其強(qiáng)大功能。 RMI可利用標(biāo)準(zhǔn)Java本機(jī)方法接口JNI與現(xiàn)有的和原有的系統(tǒng)相連接。RMI還可利用標(biāo)準(zhǔn)JDBC包與現(xiàn)有的關(guān)系數(shù)據(jù)庫連接。RMI/JNI和RMI/JDBC相結(jié)合,可幫助您利用RMI與目前使用非Java語言的現(xiàn)有服務(wù)器進(jìn)行通信,而且在您需要時(shí)可擴(kuò)展Java在這些服務(wù)器上的使用。RMI可幫助您在擴(kuò)展使用時(shí)充分利用Java的強(qiáng)大功能。RMI(遠(yuǎn)程方法調(diào)用)的組成 一個(gè)正常工作的RMI系統(tǒng)由下面幾個(gè)部分組成: ·遠(yuǎn)程服務(wù)的接口定義 ·遠(yuǎn)程服務(wù)接口的具體實(shí)現(xiàn) ·樁(Stub)和框架(Skeleton)文件 ·一個(gè)運(yùn)行遠(yuǎn)程服務(wù)的服務(wù)器 ·一個(gè)RMI命名服務(wù),它允許客戶端去發(fā)現(xiàn)這個(gè)遠(yuǎn)程服務(wù) ·類文件的提供者(一個(gè)HTTP或者FTP服務(wù)器) ·一個(gè)需要這個(gè)遠(yuǎn)程服務(wù)的客戶端程序RMI(遠(yuǎn)程方法調(diào)用)的原理 RMI系統(tǒng)結(jié)構(gòu),在客戶端和服務(wù)器端都有幾層結(jié)構(gòu)。 --------- ---------- | 客戶 | | 服務(wù)器| ---------- ---------- | | ------------- ---------- | 占位程序 | | 骨干網(wǎng) | -------------- ----------- | | ------------------------------------ | 遠(yuǎn) 程 引 用 層 | ------------------------------------ | | ------------------------------------ | 傳 輸 層 | ------------------------------------ 方法調(diào)用從客戶對象經(jīng)占位程序(Stub)、遠(yuǎn)程引用層(Remote Reference Layer)和傳輸層(Transport Layer)向下,傳遞給主機(jī),然后再次經(jīng)傳 輸層,向上穿過遠(yuǎn)程調(diào)用層和骨干網(wǎng)(Skeleton),到達(dá)服務(wù)器對象。 占位程序扮演著遠(yuǎn)程服務(wù)器對象的代理的角色,使該對象可被客戶激活。 遠(yuǎn)程引用層處理語義、管理單一或多重對象的通信,決定調(diào)用是應(yīng)發(fā)往一個(gè)服務(wù)器還是多個(gè)。傳輸層管理實(shí)際的連接,并且追追蹤可以接受方法調(diào)用的遠(yuǎn)程對象。服務(wù)器端的骨干網(wǎng)完成對服務(wù)器對象實(shí)際的方法調(diào)用,并獲取返回值。返回值向下經(jīng)遠(yuǎn)程引用層、服務(wù)器端的傳輸層傳遞回客戶端,再向上經(jīng)傳輸層和遠(yuǎn)程調(diào)用層返回。最后,占位程序獲得返回值。 要完成以上步驟需要有以下幾個(gè)步驟: 1、生成一個(gè)遠(yuǎn)程接口 2、實(shí)現(xiàn)遠(yuǎn)程對象(服務(wù)器端程序) 3、生成占位程序和骨干網(wǎng)(服務(wù)器端程序) 4、編寫服務(wù)器程序 5、編寫客戶程序 6、注冊遠(yuǎn)程對象 7、啟動遠(yuǎn)程對象 具體實(shí)現(xiàn)如下: 1、生成一個(gè)遠(yuǎn)程接口 package c15.ptime; import java.rmi.*; public interface PerfectTimeI extends Remote { long getPerfectTime() throws RemoteException; } 2、實(shí)現(xiàn)遠(yuǎn)程對象(服務(wù)器端程序) package c15.ptime; import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; import java.net.*; public class PerfectTime extends UnicastRemoteObject implements PerfectTimeI { public long getPerfectTime() throws RemoteException { return System.currentTimeMillis(); } public PerfectTime() throws RemoteException { super(); } public static void main(String[] args) { System.setSecurityManager( new RMISecurityManager()); try { PerfectTime pt = new PerfectTime(); Naming.rebind( "//zhouty:2005/PerfectTime" , pt); System.out.println("Ready to do time"); } catch(Exception e) { e.printStackTrace(); } } } 4、編譯遠(yuǎn)程對象(服務(wù)器端程序) javac -classpath . -d . PerfectTime.java 5、生成根和干(占位程序和骨干程序) rmic -classpath . -d . c15.ptime.PerfectTime 注:jdk1.2以后的都不需要skeleton,所以如果你用的jdk為5.0版本的, 不要奇怪為什么只產(chǎn)生了stub沒有skeleton。 6、注冊遠(yuǎn)程對象 start rmiregistry 2005 注:綁定服務(wù)的默認(rèn)端口為1099,如果使用了這個(gè)端口,則可以直接使用 start rmiregistry而不需要跟端口 如果這種注冊遠(yuǎn)程對象的方法不起作用. 還有一種方法就是在綁定服務(wù)之前使用LocateRegistry.createRegistry(1099) 來注冊遠(yuǎn)程對象. 7、啟動服務(wù)器端程序 java -Djava.rmi.server.codebase=file:///d:/TestRMI/ c15.ptime.Per fectTime 8、編寫客戶端程序 package c15.ptime; import java.rmi.*; import java.rmi.registry.*; public class DisplayPerfectTime { public static void main(String[] args) { System.setSecurityManager( new RMISecurityManager()); try { PerfectTimeI t = (PerfectTimeI)Naming.lookup( "192.168.0.171:2005/PerfectTime"); for(int i = 0 ; i < 10; i++) System.out.println("Perfect time =" + t.getPerfectTime()); } catch(Exception e) { e.printStackTrace(); } } } 9、編譯客端程序 javac -classpath . -d . DisplayPerfectTime.java 10、修改JVM的配置文件 (客戶機(jī)和服務(wù)器的都需要經(jīng)過修改) %JRE_HOME%policytool.exe 11、啟動客戶程序 java -classpath . c15.ptime.DisplayPerfectTime 12、返回結(jié)果 Perfect time =967274884390 Perfect time =967274884450 Perfect time =967274884450 Perfect time =967274884450 Perfect time =967274884500 Perfect time =967274884500 Perfect time =967274884560 Perfect time =967274884610 Perfect time =967274884610 Perfect time =967274884610 RMI(遠(yuǎn)程方法調(diào)用)的優(yōu)點(diǎn) 從最基本的角度看,RMI是Java的遠(yuǎn)程過程調(diào)用(RPC)機(jī)制。與傳統(tǒng)的RPC系統(tǒng)相比,RMI具有若干優(yōu)點(diǎn),因?yàn)樗荍ava面向?qū)ο蠓椒ǖ囊徊糠。傳統(tǒng)的RPC系統(tǒng)采用中性語言,所以是最普通的系統(tǒng)--它們不能提供所有可能的目標(biāo)平臺所具有的功能。 RMI以Java為核心,可與采用本機(jī)方法與現(xiàn)有系統(tǒng)相連接。這就是說,RMI可采用自然、直接和功能全面的方式為您提供分布式計(jì)算技術(shù),而這種技術(shù)可幫助您以不斷遞增和無縫的方式為整個(gè)系統(tǒng)添加Java功能。 RMI的主要優(yōu)點(diǎn)如下: 面向?qū)ο螅篟MI可將完整的對象作為參數(shù)和返回值進(jìn)行傳遞,而不僅僅是預(yù)定義的數(shù)據(jù)類型。也就是說,您可以將類似Java哈希表這樣的復(fù)雜類型作為一個(gè)參數(shù)進(jìn)行傳遞。而在目前的RPC系統(tǒng)中,您只能依靠客戶機(jī)將此類對象分解成基本數(shù)據(jù)類型,然后傳遞這些數(shù)據(jù)類型,最后在服務(wù)器端重新創(chuàng)建哈希表。RMI則不需額外的客戶程序代碼(將對象分解成基本數(shù)據(jù)類型),直接跨網(wǎng)傳遞對象。 可移動屬性:RMI可將屬性(類實(shí)現(xiàn)程序)從客戶機(jī)移動到服務(wù)器,或者從服務(wù)器移到客戶機(jī)。例如,您可以定義一個(gè)檢查雇員開支報(bào)告的接口,以便察看雇員是否遵守了公司目前實(shí)行的政策。在開支報(bào)告創(chuàng)建后,客戶機(jī)就會從服務(wù)器端獲得實(shí)現(xiàn)該接口的對象。如果政策發(fā)生變化,服務(wù)器端就會開始返回使用了新政策的該接口的另一個(gè)實(shí)現(xiàn)程序。您不必在用戶系統(tǒng)上安裝任何新的軟件就能在客戶端檢查限制條件--從而向用戶提供爍快的反饋,并降低服務(wù)器的工作量。這樣就能具備最大的靈活性,因?yàn)檎吒淖儠r(shí)只需要您編寫一個(gè)新的Java類,并將其在服務(wù)器主機(jī)上安裝一次即可。 設(shè)計(jì)方式:對象傳遞功能使您可以在分布式計(jì)算中充分利用面向?qū)ο蠹夹g(shù)的強(qiáng)大功能,如二層和三層結(jié)構(gòu)系統(tǒng)。如果您能夠傳遞屬性,那么您就可以在您的解決方案中使用面向?qū)ο蟮脑O(shè)計(jì)方式。所有面向?qū)ο蟮脑O(shè)計(jì)方式無不依靠不同的屬性來發(fā)揮功能,如果不能傳遞完整的對象--包括實(shí)現(xiàn)和類型--就會失去設(shè)計(jì)方式上所提供的優(yōu)點(diǎn)。 安 全:RMI使用Java內(nèi)置的安全機(jī)制保證下載執(zhí)行程序時(shí)用戶系統(tǒng)的安全。RMI使用專門為保護(hù)系統(tǒng)免遭惡意小應(yīng)用程序侵害而設(shè)計(jì)的安全管理程序,可保護(hù)您的系統(tǒng)和網(wǎng)絡(luò)免遭潛在的惡意下載程序的破壞。在情況嚴(yán)重時(shí),服務(wù)器可拒絕下載任何執(zhí)行程序。 便于編寫和使用:RMI使得Java遠(yuǎn)程服務(wù)程序和訪問這些服務(wù)程序的Java客戶程序的編寫工作變得輕松、簡單。遠(yuǎn)程接口實(shí)際上就是Java接口。服務(wù)程序大約用三行指令宣布本身是服務(wù)程序,其它方面則與任何其它Java對象類似。這種簡單方法便于快速編寫完整的分布式對象系統(tǒng)的服務(wù)程序,并快速地制做軟件的原型和早期版本,以便于進(jìn)行測試和評估。因?yàn)镽MI程序編寫簡單,所以維護(hù)也簡單。 可連接現(xiàn)有/原有的系統(tǒng):RMI可通過Java的本機(jī)方法接口JNI與現(xiàn)有系統(tǒng)進(jìn)行進(jìn)行交互。利用RMI和JNI,您就能用Java語言編寫客戶端程序,還能使用現(xiàn)有的服務(wù)器端程序。在使用RMI/JNI與現(xiàn)有服務(wù)器連接時(shí),您可以有選擇地用Java重新編寫服務(wù)程序的任何部分,并使新的程序充分發(fā)揮Java的功能。類似地,RMI可利用JDBC、在不修改使用數(shù)據(jù)庫的現(xiàn)有非Java源代碼的前提下與現(xiàn)有關(guān)系數(shù)據(jù)庫進(jìn)行交互。 編寫一次,到處運(yùn)行:RMI是Java“編寫一次,到處運(yùn)行 ”方法的一部分。任何基于RMI的系統(tǒng)均可100%地移植到任何Java虛擬機(jī)上,RMI/JDBC系統(tǒng)也不例外。如果使用RMI/JNI與現(xiàn)有系統(tǒng)進(jìn)行交互工作,則采用JNI編寫的代碼可與任何Java虛擬機(jī)進(jìn)行編譯、運(yùn)行。 分布式垃圾收集:RMI采用其分布式垃圾收集功能收集不再被網(wǎng)絡(luò)中任何客戶程序所引用的遠(yuǎn)程服務(wù)對象。與Java 虛擬機(jī)內(nèi)部的垃圾收集類似,分布式垃圾收集功能允許用戶根據(jù)自己的需要定義服務(wù)器對象,并且明確這些對象在不再被客戶機(jī)引用時(shí)會被刪除。 并行計(jì)算:RMI采用多線程處理方法,可使您的服務(wù)器利用這些Java線程更好地并行處理客戶端的請求。Java分布式計(jì)算解決方案:RMI從JDK 1.1開始就是Java平臺的核心部分,因此,它存在于任何一臺1.1 Java虛擬機(jī)中。所有RMI系統(tǒng)均采用相同的公開協(xié)議,所以,所有Java 系統(tǒng)均可直接相互對話,而不必事先對協(xié)議進(jìn)行轉(zhuǎn)換。RMI與CORBA的關(guān)系 RMI 和 CORBA 常被視為相互競爭的技術(shù),因?yàn)閮烧叨继峁⿲h(yuǎn)程分布式對象的透明訪問。但這兩種技術(shù)實(shí)際上是相互補(bǔ)充的,一者的長處正好可以彌補(bǔ)另一者的短處。RMI 和 CORBA 的結(jié)合產(chǎn)生了 RMI-IIOP,RMI-IIOP 是企業(yè)服務(wù)器端 Java 開發(fā)的基礎(chǔ)。 1997 年,IBM 和 Sun Microsystems啟動了一項(xiàng)旨在促進(jìn) Java 作為企業(yè)開發(fā)技術(shù)的發(fā)展的合作計(jì)劃。兩家公司特別著力于如何將 Java 用作服務(wù)器端語言,生成可以結(jié)合進(jìn)現(xiàn)有體系結(jié)構(gòu)的企業(yè)級代碼。所需要的就是一種遠(yuǎn)程傳輸技術(shù),它兼有 Java 的 RMI(Remote Method Invocation,遠(yuǎn)程方法調(diào)用)較少的資源占用量和更成熟的 CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu))技術(shù)的健壯性。出于這一需要,RMI-IIOP問世了,它幫助將 Java 語言推向了目前服務(wù)器端企業(yè)開發(fā)的主流語言的領(lǐng)先地位。
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助