版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)民工工資委托支付與勞務(wù)派遣合同管理及勞動(dòng)法規(guī)遵守協(xié)議
- 2025年度年度合伙投資甜品飲品店合同3篇
- 2025年度農(nóng)村土地抵押貸款標(biāo)準(zhǔn)化合同樣本
- 二零二五年度農(nóng)業(yè)科技產(chǎn)品推廣購銷合作合同3篇
- 2025年度公司團(tuán)建旅游專項(xiàng)服務(wù)合同書2篇
- 2025年度廢品處理與環(huán)保公益活動(dòng)合作合同3篇
- 二零二五年度廣告公司兼職正式聘用設(shè)計(jì)合同3篇
- 二零二五年度金融科技融資合同模板大全3篇
- 二零二五年度農(nóng)村堰塘周邊土地整治與開發(fā)合同2篇
- 公對公匯款合同模板(2025年度)-保險(xiǎn)理賠支付3篇
- 勞務(wù)派遣協(xié)議書(吉林省人力資源和社會(huì)保障廳制)
- 水庫移民安置檔案分類大綱與編號方案
- 醫(yī)院安全生產(chǎn)風(fēng)險(xiǎn)分級管控和隱患排查治理雙體系
- GA 1802.2-2022生物安全領(lǐng)域反恐怖防范要求第2部分:病原微生物菌(毒)種保藏中心
- 企業(yè)EHS風(fēng)險(xiǎn)管理基礎(chǔ)智慧樹知到答案章節(jié)測試2023年華東理工大學(xué)
- 健身俱樂部入場須知
- 井下機(jī)電安裝安全教育培訓(xùn)試題及答案
- TZJXDC 002-2022 電動(dòng)摩托車和電動(dòng)輕便摩托車用閥控式鉛酸蓄電池
- GB/T 337.1-2002工業(yè)硝酸濃硝酸
- 《解放戰(zhàn)爭》(共48張PPT)
- 放射工作人員法律法規(guī)及防護(hù)知識培訓(xùn)考核試題附答案
評論
0/150
提交評論