亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 基于java idl的分布式程序設(shè)計(jì).txt

?? 含有許多JAVA的技巧!
?? TXT
字號(hào):
基于Java IDL的分布式程序設(shè)計(jì) 
(加入日期:2002-5-4 點(diǎn)擊數(shù):1554)
【對(duì)此文發(fā)表評(píng)論】 【編程愛好者論壇】 【保存文章至硬盤】 【打印文章】 
 
本文轉(zhuǎn)載自軟件工程專家網(wǎng)www.21cmm.com

Java IDL介紹 

  JavaIDL是Java 2開發(fā)平臺(tái)中的CORBA功能擴(kuò)展。在Java 2中引入JavaIDL,使得利用OMG IDL能夠定義服務(wù)對(duì)象的基本功能,并且將IDL根據(jù)CORBA規(guī)范的要求,映射到Java語言,并以此開發(fā)出標(biāo)準(zhǔn)的具有互操作性和可連接性的分布式應(yīng)用。JavaIDL使分布式、支持Web的Java應(yīng)用可以基于IIOP協(xié)議透明地調(diào)用遠(yuǎn)程服務(wù)。 

  JavaIDL運(yùn)行期(Runtime)組件包括一個(gè)全兼容的對(duì)象請(qǐng)求代理——Java ORB,用于基于IIOP協(xié)議實(shí)現(xiàn)分布式對(duì)象之間的通信。該ORB支持瞬態(tài)CORBA對(duì)象和瞬態(tài)名字服務(wù)器,并且ORB生存期受運(yùn)行ORB進(jìn)程生存期的限制。 

  在程序設(shè)計(jì)中,首先對(duì)要實(shí)現(xiàn)的服務(wù)對(duì)象功能進(jìn)行系統(tǒng)分析,并創(chuàng)建IDL接口描述文件對(duì)功能進(jìn)行描述。然后利用JavaIDL提供的IDL到Java語言的映射工具將IDL文件映射為客戶端樁(Stub)文件和服務(wù)器骨架(Skeleton)文件。 

  在實(shí)現(xiàn)的客戶端應(yīng)用程序中,包括對(duì)遠(yuǎn)程對(duì)象的引用、服務(wù)功能請(qǐng)求的發(fā)送以及服務(wù)對(duì)象返回結(jié)果的解析處理等功能。通常,客戶端應(yīng)用程序利用命名服務(wù)實(shí)現(xiàn)對(duì)遠(yuǎn)程對(duì)象的綁定,并通過客戶端ORB將客戶端與服務(wù)對(duì)象聯(lián)系起來,實(shí)現(xiàn)方法的遠(yuǎn)程調(diào)用。 

  在服務(wù)器端,ORB利用服務(wù)對(duì)象骨架將調(diào)用請(qǐng)求和參數(shù)的數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換,把遠(yuǎn)程調(diào)用轉(zhuǎn)換為對(duì)本地對(duì)象中方法的調(diào)用。當(dāng)方法返回時(shí),骨架對(duì)計(jì)算結(jié)果進(jìn)行轉(zhuǎn)換和封裝,通過ORB把結(jié)果返回給客戶機(jī)。 

建立CORBA應(yīng)用程序的過程 

  分布式應(yīng)用程序設(shè)計(jì)的主要問題是確定建立在對(duì)象級(jí)上的客戶與服務(wù)對(duì)象的關(guān)系,從其最根本的功能來講,服務(wù)對(duì)象提供遠(yuǎn)程接口,客戶對(duì)象調(diào)用遠(yuǎn)程接口,客戶對(duì)象不需要了解遠(yuǎn)程CORBA對(duì)象的位置以及實(shí)現(xiàn)細(xì)節(jié),也不需要了解哪個(gè)ORB 用于對(duì)象之間的交互。 

  按照實(shí)現(xiàn)的基本過程,CORBA對(duì)象服務(wù)的實(shí)現(xiàn)方式分為兩種: 對(duì)象的命名引用方式和字符串化對(duì)象引用方式。CORBA創(chuàng)建分布式應(yīng)用程序的過程大體如下: 

  ● 進(jìn)行系統(tǒng)分析,確定服務(wù)對(duì)象需要實(shí)現(xiàn)的功能; 

  ● 根據(jù)系統(tǒng)分析結(jié)果,編寫IDL接口說明文件; 

  ● 編譯接口說明文件,產(chǎn)生服務(wù)對(duì)象的骨架與客戶對(duì)象的樁(可選); 

  ● 基于客戶對(duì)象的樁,編寫客戶對(duì)象程序; 

  ● 基于服務(wù)對(duì)象的骨架或者動(dòng)態(tài)請(qǐng)求實(shí)現(xiàn),編寫服務(wù)對(duì)象程序; 

  ● 分別編譯客戶對(duì)象和服務(wù)對(duì)象程序; 

  ● 啟動(dòng)服務(wù)對(duì)象程序; 

  ● 啟動(dòng)客戶對(duì)象程序。 

分布式應(yīng)用程序示例 

 以下用一個(gè)例程說明建立分布式應(yīng)用程序的過程: 

1. 對(duì)象功能描述和系統(tǒng)簡要設(shè)計(jì) 

  在服務(wù)對(duì)象端將一個(gè)字符串對(duì)象賦值,客戶端通過調(diào)用服務(wù)對(duì)象方法獲取該字符串的值。根據(jù)對(duì)象功能的說明,用UML描述出服務(wù)對(duì)象需要實(shí)現(xiàn)的功能: 

  getIt() : String[] 

2. 服務(wù)對(duì)象接口定義 

  根據(jù)系統(tǒng)分析結(jié)果,用IDL編寫出服務(wù)對(duì)象方法描述程序getMessage.idl: 

  module getMessage 

  { interface getIt 

  { string returnObject(); 

     }; 

    }; 

3. 編譯getMessage.idl 

  idltojava -fno-cpp getMessage.idl。 

4. 編寫客戶端程序 

  //引入相關(guān)類庫 

  import org.omg.CosNaming.*; 

  import org.omg.CORBA.*; 

  //客戶端對(duì)象方法 

  public class client 

  { public static void main(String args[]) 

     { // 創(chuàng)建和初始化ORB 

     ORB orb = ORB.init(args, null); 

     // 獲取根命名服務(wù)上下文對(duì)象 

    org.omg.CORBA.Object naming = 

    orb.resolve_initial_references(“NameService”); 

     NamingContext namingContext = NamingContextHelper.narrow(naming); 

       //解析命名中的對(duì)象引用 

       NameComponent nc = new NameComponent(“getMessage”, “”); 

       NameComponent path[] = {nc}; 

     getMessage.getIt method =getMessage- 

  Helper.narrow(namingContext.resolve(path)); 

     // 調(diào)用服務(wù)對(duì)象方法 

     String result=method.returnObject(); 

     } 

  } 

5. 編寫服務(wù)對(duì)象程序 

  // 引入相關(guān)類庫 

  import org.omg.CosNaming.*; 

  import org.omg.CosNaming.NamingContext 

  Package.*; 

  import org.omg.CORBA.*; 

  //服務(wù)方法 

  class returnMethod extends _getMessage- 

  ImplBase 

  { public String getIt() 

  { String result =“How about it”; 

  return result; 

  } 

  } 

  //服務(wù)器端方法 

  public class server 

  { public static void main(String args[]) 

    { // 創(chuàng)建和初始化ORB 

     ORB orb = ORB.init(args, null); 

  // 創(chuàng)建服務(wù)對(duì)象并將其向ORB注冊(cè) 

  returnMethod obj=new returnMethod(); 

  orb.connect(returnMethod); 

  // 獲取根命名上下文 

  org.omg.CORBA.Object objRef = 

  orb.resolve_initial_references 

  (“NameService”); 

  NamingContext ncRef = Naming 

  ContextHelper.narrow(objRef); 

  // 綁定命名中的對(duì)象引用 

  NameComponent nc = new NameComponent(“getMessage”, “”); 

  NameComponent path[] = {nc}; 

  ncRef.rebind(path, objRef); 

  // 等待來自客戶機(jī)的調(diào)用 

  java.lang.Object sync=new java.lang 

  .Object(); 

  synchronized (sync) 

  { sync.wait(); 

    } 

    } 

  } 

6. 分別編譯服務(wù)器端和客戶端程序 

  (1)編譯服務(wù)器端程序: 

  javac getMessage\server.java 

  (2)編譯客戶端程序: 

  javac getMessage\client.java 

7. 運(yùn)行 

  (1)打開一個(gè)仿真終端窗口,啟動(dòng)命名服務(wù),其中3388為通信端口號(hào): 

     tnameserv -ORBInitialPort 3388 

  (2)在另一個(gè)窗口中輸入以下命令,運(yùn)行服務(wù)端程序: 

     java server -ORBInitialPort 3388 

  (3)在另一個(gè)窗口中輸入以下命令,運(yùn)行客戶端程序: 

     java client -ORBInitialPort 3388

本欄文章均來自于互聯(lián)網(wǎng),版權(quán)歸原作者和各發(fā)布網(wǎng)站所有,本站收集這些文章僅供學(xué)習(xí)參考之用。任何人都不能將這些文章用于商業(yè)或者其他目的。( ProgramFan.Com )
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一卡二卡欧美日韩| 国产欧美精品区一区二区三区| 一区二区三区在线免费| 国产清纯白嫩初高生在线观看91 | 精品在线观看视频| 久久久久久久综合狠狠综合| 国产成人8x视频一区二区| 91丨九色丨黑人外教| 亚洲va欧美va人人爽午夜| 精品国产123| 欧美综合欧美视频| 国产福利视频一区二区三区| 亚洲欧美电影一区二区| 久久综合中文字幕| 欧美美女一区二区在线观看| 蜜桃av一区二区在线观看| 亚洲欧美日韩一区| 国产无遮挡一区二区三区毛片日本 | 亚洲国产视频在线| 99久久99久久久精品齐齐| 678五月天丁香亚洲综合网| 国产精品视频一二| 午夜不卡在线视频| 欧美视频中文一区二区三区在线观看 | 精品国产乱码久久久久久老虎| 亚洲欧美日韩综合aⅴ视频| 成人手机在线视频| 中文字幕在线不卡视频| a级精品国产片在线观看| 国产一区二区免费看| 精品影视av免费| 国产激情视频一区二区在线观看| 久久精品国产第一区二区三区| 日韩av在线发布| 国产精品乡下勾搭老头1| 国产剧情一区二区| 成人久久18免费网站麻豆 | 亚洲成人福利片| 美女一区二区视频| 国产成人午夜99999| 99精品国产一区二区三区不卡| 色狠狠桃花综合| 欧美大片拔萝卜| 亚洲色图清纯唯美| 亚洲色欲色欲www在线观看| 日韩欧美的一区| 91同城在线观看| 久久精品国产亚洲一区二区三区| 欧美成人免费网站| 欧美日韩久久一区二区| 成人午夜电影久久影院| 免费成人在线网站| 亚洲欧美一区二区不卡| 日韩欧美不卡在线观看视频| 亚洲精品美国一| 欧美二区在线观看| 国产激情视频一区二区在线观看 | 国产成人av自拍| 欧美三级韩国三级日本一级| 欧美精品 国产精品| 国产精品你懂的| 久久国产三级精品| 91论坛在线播放| 国产精品天天摸av网| 国产一区在线精品| 日韩视频一区二区| 男女激情视频一区| 日韩欧美在线观看一区二区三区| 午夜精品久久久久久不卡8050| 国产在线日韩欧美| 6080亚洲精品一区二区| 亚洲一二三区视频在线观看| 色婷婷av一区二区三区之一色屋| 亚洲欧美在线aaa| 97久久人人超碰| 国产精品狼人久久影院观看方式| 经典三级视频一区| 国产在线不卡一区| 国产成人免费在线视频| 国内成人自拍视频| 日日摸夜夜添夜夜添亚洲女人| 日韩中文字幕1| 精品粉嫩超白一线天av| 99国产精品99久久久久久| 一区二区三区小说| 日韩一卡二卡三卡| 国产不卡视频在线播放| 亚洲一区二区三区爽爽爽爽爽| 欧美色综合影院| 日本成人在线看| 国产无遮挡一区二区三区毛片日本| 婷婷久久综合九色综合伊人色| 欧美一区二视频| 白白色 亚洲乱淫| 奇米亚洲午夜久久精品| 中文字幕亚洲精品在线观看| 欧美成人精品二区三区99精品| av在线一区二区| 国产麻豆精品在线| 久久99最新地址| 午夜在线成人av| 伊人开心综合网| 欧美日韩精品专区| av一二三不卡影片| 国产麻豆精品一区二区| 九九九久久久精品| 日韩精品视频网| 亚洲国产精品一区二区久久恐怖片| 精品久久久久99| 精品国产一区二区在线观看| 在线不卡a资源高清| 欧美日韩在线综合| 欧美日韩精品一二三区| 91伊人久久大香线蕉| 成人va在线观看| 91亚洲国产成人精品一区二区三 | 日韩精品一卡二卡三卡四卡无卡| 亚洲激情av在线| 国产精品一二三区| 成人av电影免费在线播放| 91小视频免费观看| 欧美视频一区在线观看| 日韩三级精品电影久久久 | 国产精品一品二品| 国产在线精品一区二区不卡了| 日本一区中文字幕| 成人免费视频一区二区| 成人av网站免费观看| 91色.com| 884aa四虎影成人精品一区| 久久综合999| 亚洲欧美aⅴ...| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产三级精品视频| 亚洲欧美福利一区二区| 美腿丝袜亚洲一区| 97aⅴ精品视频一二三区| 日韩视频在线你懂得| 亚洲丝袜美腿综合| 国产麻豆精品一区二区| 日韩高清在线观看| 视频一区中文字幕国产| 亚洲精品免费电影| 精品蜜桃在线看| 91久久精品一区二区三区| 风间由美一区二区三区在线观看| 久久成人麻豆午夜电影| 欧美a一区二区| 精品亚洲成a人在线观看| 日本三级亚洲精品| 粉嫩嫩av羞羞动漫久久久 | 欧美男人的天堂一二区| 欧美在线制服丝袜| 精品视频免费在线| 欧美精品一二三| 欧美高清一级片在线| 91精品国产高清一区二区三区蜜臀| 99国产精品视频免费观看| av男人天堂一区| 国产成人精品影视| 日韩欧美中文字幕制服| 亚洲一区免费在线观看| 91丨porny丨蝌蚪视频| 日本一区二区三区在线观看| 美女网站在线免费欧美精品| 这里只有精品99re| 日韩1区2区3区| 日韩欧美中文字幕制服| 欧美aaaaaa午夜精品| 制服丝袜亚洲色图| 久久99精品一区二区三区三区| 日韩欧美一级精品久久| 国产精品系列在线播放| 欧美激情资源网| 色吊一区二区三区| 久久精品国产999大香线蕉| 日韩欧美国产一区在线观看| 国产69精品久久777的优势| 亚洲人午夜精品天堂一二香蕉| 91久久一区二区| 激情欧美一区二区三区在线观看| 久久久综合网站| 欧美日韩一级片网站| 国产不卡视频一区| 日韩一级片在线观看| 亚洲成人av资源| 色www精品视频在线观看| 国产精品区一区二区三| 国产乱码精品一区二区三区av| 欧美天堂亚洲电影院在线播放 | 亚洲制服丝袜一区| 91蝌蚪国产九色| 国产精品人妖ts系列视频| 黑人巨大精品欧美黑白配亚洲| 3d成人h动漫网站入口| 日产国产高清一区二区三区 | 欧美亚洲高清一区| 日日夜夜免费精品| 精品99999| 91亚洲精品一区二区乱码|