中間件實(shí)驗(yàn)報(bào)告_第1頁
中間件實(shí)驗(yàn)報(bào)告_第2頁
中間件實(shí)驗(yàn)報(bào)告_第3頁
中間件實(shí)驗(yàn)報(bào)告_第4頁
中間件實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)課學(xué)生學(xué)號0121410870704成績學(xué)生實(shí)驗(yàn)報(bào)告書實(shí)驗(yàn)課程名稱開課學(xué)院指導(dǎo)教師姓名學(xué)生姓名學(xué)生專業(yè)班級軟件構(gòu)件與中間件技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院石兵廖錫峰軟件 14022016-2017學(xué)年第二學(xué)期實(shí)驗(yàn)課程名稱:軟件構(gòu)件與中間件技術(shù)基于 JAVA CORBA 的四則運(yùn)算分布式實(shí)驗(yàn)項(xiàng)目名稱系統(tǒng)開發(fā)實(shí)驗(yàn)成績實(shí)驗(yàn)者廖錫峰專業(yè)班級軟件 1402組別同組者2017年 5月 15實(shí)驗(yàn)日期日第一部分:實(shí)驗(yàn)分析與設(shè)計(jì)(可加頁)實(shí)驗(yàn)步驟:一、安裝 JDK1.6并配置系統(tǒng)參數(shù)PATH 和 CLASSPATH,打開一個(gè)DOS 窗口鍵入命令java version 驗(yàn)證是否已經(jīng)正確地安裝了 JDK 。二、打開一

2、個(gè)文本編輯器,編寫以下 IDL接口定義文件, 并命名為BA.idl ,保存到一個(gè)文件 夾下,這里是D:shiyan。三、編譯 IDL 文件。四、實(shí)現(xiàn)遠(yuǎn)程對象。打開記事本,復(fù)制以下代碼。文件名:BAImpl.java 。保存到文件夾五、編寫服務(wù)器。注意要把IP 地址換成當(dāng)前這臺(tái)物理機(jī)器的IP地址。打開記事本,復(fù)制以 下代碼。文件名: Server.java。保存到文件夾 D:shiyanBAPkg之下。六、編寫客戶端。注意要把IP 地址換成當(dāng)前這臺(tái)物理機(jī)器的IP地址。打開記事本,復(fù)制以 下代碼。文件名: Client.java 。保存到文件夾D:shiyanBAPkg 之下。七、編譯 JAVA源

3、代碼。八、系統(tǒng)布置。剛才是在機(jī)器A上開發(fā)的,機(jī)器A是服務(wù)器, IP 地址是機(jī)器 A 的 IP地址。 現(xiàn)在,在另一臺(tái)機(jī)器,機(jī)器B 上安裝 JDK1.6并配置 PATH 和 CLASSPATH 系統(tǒng)參數(shù),并把代碼及字節(jié)碼打包復(fù)制到機(jī)器B 上,它是一個(gè)客戶端。九、運(yùn)行系統(tǒng)。在機(jī)器 A 上打開一個(gè) DOS 窗口,運(yùn)行JAVA CORBA 命名目錄服務(wù)器 .第二部分:實(shí)驗(yàn)調(diào)試與結(jié)果分析(可加頁)一、實(shí)驗(yàn)小結(jié)、建議及體會(huì)通過本次實(shí)驗(yàn),了解了 基于 JAVA CORBA 的四則運(yùn)算分布式系統(tǒng)開發(fā),對中間件有了更深的理解。二、思考題( 一)假定使用JDK1.6,編譯idl 文件的命令是什么?idlj fall

4、 BA.idl( 二)編譯后,產(chǎn)生了哪幾個(gè)文件?簡要說明生成的各個(gè)Java類的作用。尤其是,客戶端的碼根和服務(wù)器端的框架是哪個(gè)類。對 于BAInterface接口,編譯后共產(chǎn)生以下六個(gè)JAVA類或接口:BAInterface.java,BAInterfaceOperations.java,BAInterfaceHelper.java,BAInterfaceHolder.java,BAInterfacePOA.java,_BAInterfaceStub.java。前兩個(gè)文件是對應(yīng)IDL接口的 JAVA 接口, HELPER類提供 CORBA類型轉(zhuǎn)換等輔助功能,HOLDER類提供 ORB 中間件網(wǎng)

5、絡(luò)輸入、 輸 出流等方法,而 POA 和 STUB類分別是服務(wù)器端框架和客戶端的碼根,主要負(fù)責(zé)遠(yuǎn)程方法調(diào)用參數(shù)的打包和解包。( 三)Idl 文件中的BAPkg 模塊映射成了什么?在 IDL文件中的 BAPkg 模塊被編譯成對應(yīng)的JAVA 包。( 四) 實(shí)現(xiàn)遠(yuǎn)程對象要注意什么問題?所實(shí)現(xiàn)的遠(yuǎn)程對象必須是對應(yīng) POA 類的一個(gè)子類,換句話說,遠(yuǎn)程對象類必須 繼承對應(yīng)的 POA 類。( 五) 實(shí)現(xiàn)服務(wù)器端的步驟是什么?1、設(shè)置服務(wù)器參數(shù),主要是 命名目錄服務(wù)器的 IP 地址和端口號; 2、根據(jù)系統(tǒng)參數(shù)作為實(shí)參, 創(chuàng)建一個(gè) ORB 對象。再 根據(jù) ORB 對象以及 RootPOA 名稱解析出 POA

6、對象參照,根據(jù) POAHelper 類的靜態(tài)細(xì)化方 法把 POA 對象參照轉(zhuǎn)換成POA對象。根據(jù) POA 對象創(chuàng)建 POA 管理器類對象,并激活之。 3 、創(chuàng)建遠(yuǎn)程伺服對象,并把它登記到 POA 對象,返回伺服對象的一個(gè) CORBA對象參照, 根據(jù)其 Helper 類的細(xì)化方法,將對象參照轉(zhuǎn)換成真正意義上的遠(yuǎn)程對象。我們這里有三個(gè) 概念:伺服對象、伺服對象參照和對應(yīng)的遠(yuǎn)程對象。 4、根據(jù) ORB 對象和 NameService 名稱 解析出命名目錄服務(wù)器中 JNDI 節(jié)點(diǎn)對象 CORBA參照,再根據(jù)其 Helper 類的靜態(tài)細(xì)化方法 把節(jié)點(diǎn)對象參照轉(zhuǎn)換成真正的節(jié)點(diǎn)對象。指定一個(gè)將綁定遠(yuǎn)程對象的

7、字符名稱,利用節(jié)點(diǎn)對象將該名稱轉(zhuǎn)換成連在該節(jié)點(diǎn)上的路徑對象,最后再把在第三步中創(chuàng)建的遠(yuǎn)程對象綁定到該路徑上。 5、啟動(dòng) ORB 對象。( 六)實(shí)現(xiàn)客戶端的步驟是什么?1、設(shè)置服務(wù)器參數(shù),主 要是命名目錄服務(wù)器的 IP 地址和端口號; 2、根據(jù)系統(tǒng)參數(shù)作為實(shí)參,創(chuàng)建一個(gè) ORB 對象。 、根據(jù) ORB 對象和 NameService 名稱解析出命名目錄服務(wù)器中 JNDI 節(jié)點(diǎn)對象 CORBA 3 參照,再根據(jù)其 Helper 類的靜態(tài)細(xì)化方法把節(jié)點(diǎn)對象參照轉(zhuǎn)換成真正的節(jié)點(diǎn)對象。、根 據(jù)遠(yuǎn)程對象字符名稱從節(jié)點(diǎn)對象中解析出遠(yuǎn)程對象的參照,再根據(jù)其 類的靜態(tài)細(xì)化方法把對象參照轉(zhuǎn)換成遠(yuǎn)程對象本身。 5、

8、調(diào)用遠(yuǎn)程對象的遠(yuǎn)程方 法。( 七)運(yùn)行服務(wù)器和客戶程序的命令是什么?首先運(yùn)行命名目錄服務(wù)器:orbd ORBInitialPort 1050,再運(yùn)行服務(wù)器:java BAPkg.Server,最后運(yùn)行客戶端:java BAPkg.Client( 八)談一談你對Java CORBA 的認(rèn)識。Java CORBA是一個(gè)完全面向?qū)ο蟮姆植际綉?yīng)用開發(fā)中間件及規(guī)范。它使用ORB即對象請求代理作為中間件模塊, IIOP 作為服務(wù)器端和客戶端ORB 的通訊協(xié)議,以及使用 IDL作為接口定義語言。 ORB中間件跨平臺(tái)、跨語言,充分屏蔽了分布式網(wǎng)絡(luò)的異構(gòu)性。Java CORBA 使用 Java編程語言,和 C+

9、相比,更簡潔、一致、明快,大大減少了服務(wù)端和客戶端派生的代碼,且派生的代碼容易理解,便于使用。在某種意義上,JavaCORBA已經(jīng)完全取代了C+ CORBA。實(shí)驗(yàn)課程名稱:軟件構(gòu)件與中間件技術(shù)實(shí)驗(yàn)項(xiàng)目名稱基于 RMI/IIOP的分布式一元二次方程實(shí)驗(yàn)成績求解系統(tǒng)實(shí)驗(yàn)者廖錫峰專業(yè)班級軟件 1402組別同組者2017年5月實(shí)驗(yàn)日期15 日第一部分:實(shí)驗(yàn)分析與設(shè)計(jì)(可加頁)實(shí)驗(yàn)步驟:一、安裝 jdk1.6,并配置系統(tǒng)參數(shù)Path和 Classpath 。二、創(chuàng)建以下目錄結(jié)構(gòu)D:Exp02rmiiiop_equation。把后面所有 Java源代碼文件都復(fù)制到該文件夾下。三、打開記事本,編寫封閉兩個(gè)根

10、的Java Bean四、編寫遠(yuǎn)程接口五、實(shí)現(xiàn)遠(yuǎn)程接口六、開發(fā)服務(wù)器程序七、開發(fā)客戶端程序八、在兩臺(tái)機(jī)器 A 和 B 上創(chuàng)建相同的文件夾: D:Exp02rmiiiop_equation,把上面所有的源代碼文件復(fù)制到兩臺(tái)機(jī)器的對應(yīng)的文件夾下,分別編譯。 假定機(jī)器B 是服務(wù)器。九、編譯方法十、運(yùn)行系統(tǒng)第二部分:實(shí)驗(yàn)調(diào)試與結(jié)果分析(可加頁)一、實(shí)驗(yàn)結(jié)果二、實(shí)驗(yàn)小結(jié)、建議及體會(huì)通過本次試驗(yàn),了解了 基于 RMI/IIOP 的分布式一元二次方程求解系統(tǒng),體會(huì)到了與 CORBA 的不同。三、思考題(一 ) RMI/IIOP和傳統(tǒng)的RMI有什么差別?RMI, Remote Method Invocztion

11、, 即遠(yuǎn)程方法調(diào)用。和 RMI/IIOP 相同的地方是兩 種方法都使用 JAVA 創(chuàng)建遠(yuǎn)程對象的接口,而兩者使用的網(wǎng)絡(luò)協(xié)議有所不同。后者使用 CORBA規(guī)范的通用協(xié)議 IIOP ,所以可以和 CORBA應(yīng)用通訊。換句話說,一個(gè) CORBA客 戶端可以訪問一個(gè) RMI/IIOP 服務(wù)器。(二 ) RMI/IIOP的開發(fā)步驟。1、用 JAVA 定義遠(yuǎn) 程接口。注意,遠(yuǎn)程接口要繼承java.rmi.Remote,遠(yuǎn)程方法要拋出 java.rmi.RemoteException 。 2 、實(shí)現(xiàn)遠(yuǎn)程接口。注意,實(shí)現(xiàn)遠(yuǎn)程接口的類必須繼承可移植遠(yuǎn)程對象, 即 javax.rmi.PortableRemote

12、Object 。3、開發(fā)服務(wù)器程序。 4、開發(fā)客戶端程序。 5、編譯所有 JAVA 源代碼。 6、使用 rmic編譯遠(yuǎn)程對象實(shí)現(xiàn)的字節(jié)碼文件,產(chǎn)生客戶端的碼根和服務(wù)器端的框架。例如:iiop RMIIIOPApp.RemoteObjectImpl。注意, rmic要使用iiop選項(xiàng)。rmic(三 ) 實(shí)現(xiàn)遠(yuǎn)程接口應(yīng)注意什么?實(shí)現(xiàn)遠(yuǎn)程接口的類必須繼承可移植遠(yuǎn)程對象,即 javax.rmi.PortableRemoteObject 。(四 ) 定義遠(yuǎn)程接口應(yīng)注意什么?遠(yuǎn) 程 接 口 要 繼 承 java.rmi.Remote, 遠(yuǎn) 程 方 法 要 拋 出 java.rmi.RemoteException 。(五 ) 客戶端和服務(wù)器的系統(tǒng)參數(shù)的含意是什么?IP 地址和端口號。(六 ) 如何產(chǎn)生客戶端和服務(wù)器端的鏡像代碼?客戶端的碼根是遠(yuǎn)程對象的本地鏡像,也就是遠(yuǎn)程對象的本地代理,主要負(fù)責(zé)遠(yuǎn)程方法參數(shù)打包和遠(yuǎn)程方法調(diào)用返回結(jié)果的解 包。服務(wù)器端的框架是服務(wù)器的碼根。(七 ) 修改客戶端程序,使用輸入流,使得用戶能夠輸入任意三個(gè)系數(shù)。Scanner input = new Scanner(System.in);double a,b,c;System.out.println("please input a value:");a = in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論