狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

基于Java IDL的分布式程序設計

基于Java IDL的分布式程序設計

更新時間:2024-04-12 文章作者:未知 信息來源:網絡 閱讀次數:

本文轉載自軟件工程專家網www.21cmm.com

Java IDL介紹

  JavaIDL是Java 2開發平臺中的CORBA功能擴展。在Java 2中引入JavaIDL,使得利用OMG IDL能夠定義服務對象的基本功能,并且將IDL根據CORBA規范的要求,映射到Java語言,并以此開發出標準的具有互操作性和可連接性的分布式應用。JavaIDL使分布式、支持Web的Java應用可以基于IIOP協議透明地調用遠程服務。

  JavaIDL運行期(Runtime)組件包括一個全兼容的對象請求代理——Java ORB,用于基于IIOP協議實現分布式對象之間的通信。該ORB支持瞬態CORBA對象和瞬態名字服務器,并且ORB生存期受運行ORB進程生存期的限制。

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

  在實現的客戶端應用程序中,包括對遠程對象的引用、服務功能請求的發送以及服務對象返回結果的解析處理等功能。通常,客戶端應用程序利用命名服務實現對遠程對象的綁定,并通過客戶端ORB將客戶端與服務對象聯系起來,實現方法的遠程調用。

  在服務器端,ORB利用服務對象骨架將調用請求和參數的數據格式進行轉換,把遠程調用轉換為對本地對象中方法的調用。當方法返回時,骨架對計算結果進行轉換和封裝,通過ORB把結果返回給客戶機。

建立CORBA應用程序的過程

  分布式應用程序設計的主要問題是確定建立在對象級上的客戶與服務對象的關系,從其最根本的功能來講,服務對象提供遠程接口,客戶對象調用遠程接口,客戶對象不需要了解遠程CORBA對象的位置以及實現細節,也不需要了解哪個ORB 用于對象之間的交互。

  按照實現的基本過程,CORBA對象服務的實現方式分為兩種: 對象的命名引用方式和字符串化對象引用方式。CORBA創建分布式應用程序的過程大體如下:

  ● 進行系統分析,確定服務對象需要實現的功能;

  ● 根據系統分析結果,編寫IDL接口說明文件;

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

  ● 基于客戶對象的樁,編寫客戶對象程序;

  ● 基于服務對象的骨架或者動態請求實現,編寫服務對象程序;

  ● 分別編譯客戶對象和服務對象程序;

  ● 啟動服務對象程序;

  ● 啟動客戶對象程序。

分布式應用程序示例

 以下用一個例程說明建立分布式應用程序的過程:

1. 對象功能描述和系統簡要設計

  在服務對象端將一個字符串對象賦值,客戶端通過調用服務對象方法獲取該字符串的值。根據對象功能的說明,用UML描述出服務對象需要實現的功能:

  getIt() : String[]

2. 服務對象接口定義

  根據系統分析結果,用IDL編寫出服務對象方法描述程序getMessage.idl:

  module getMessage

  { interface getIt

  { string returnObject();

     };

    };

3. 編譯getMessage.idl

  idltojava -fno-cpp getMessage.idl。

4. 編寫客戶端程序

  //引入相關類庫

  import org.omg.CosNaming.*;

  import org.omg.CORBA.*;

  //客戶端對象方法

  public class client

  { public static void main(String args[])

     { // 創建和初始化ORB

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

     // 獲取根命名服務上下文對象

    org.omg.CORBA.Object naming =

    orb.resolve_initial_references(“NameService”);

     NamingContext namingContext = NamingContextHelper.narrow(naming);

       //解析命名中的對象引用

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

       NameComponent path[] = {nc};

     getMessage.getIt method =getMessage-

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

     // 調用服務對象方法

     String result=method.returnObject();

     }

  }

5. 編寫服務對象程序

  // 引入相關類庫

  import org.omg.CosNaming.*;

  import org.omg.CosNaming.NamingContext

  Package.*;

  import org.omg.CORBA.*;

  //服務方法

  class returnMethod extends _getMessage-

  ImplBase

  { public String getIt()

  { String result =“How about it”;

  return result;

  }

  }

  //服務器端方法

  public class server

  { public static void main(String args[])

    { // 創建和初始化ORB

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

  // 創建服務對象并將其向ORB注冊

  returnMethod obj=new returnMethod();

  orb.connect(returnMethod);

  // 獲取根命名上下文

  org.omg.CORBA.Object objRef =

  orb.resolve_initial_references

  (“NameService”);

  NamingContext ncRef = Naming

  ContextHelper.narrow(objRef);

  // 綁定命名中的對象引用

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

  NameComponent path[] = {nc};

  ncRef.rebind(path, objRef);

  // 等待來自客戶機的調用

  java.lang.Object sync=new java.lang

  .Object();

  synchronized (sync)

  { sync.wait();

    }

    }

  }

6. 分別編譯服務器端和客戶端程序

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

  javac getMessage\server.java

  (2)編譯客戶端程序:

  javac getMessage\client.java

7. 運行

 。1)打開一個仿真終端窗口,啟動命名服務,其中3388為通信端口號:

     tnameserv -ORBInitialPort 3388

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

     java server -ORBInitialPort 3388

 。3)在另一個窗口中輸入以下命令,運行客戶端程序:

     java client -ORBInitialPort 3388

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
久久精品视频在线免费观看| 亚洲精品国产品国语在线app| 久久精品盗摄| 亚洲精品一区二区三区蜜桃久| 99久久精品国产一区二区三区| 久久精品国产亚洲aⅴ| 午夜不卡在线视频| 亚洲第一搞黄网站| 樱桃视频在线观看一区| 亚洲靠逼com| 夜夜操天天操亚洲| 综合久久久久久久| 亚洲欧美电影一区二区| 中文字幕一区二区三区四区不卡 | 免播放器亚洲| 亚洲在线国产日韩欧美| 亚洲欧美久久久| 久久久久久久久久久久久9999| 新67194成人永久网站| 日本久久一区二区| 欧美日韩在线播放三区四区| 欧美精三区欧美精三区| 日韩免费视频一区二区| 久久精品免费在线观看| 国产精品网站在线观看| 中文字幕一区二| 亚洲制服欧美中文字幕中文字幕| 亚洲高清一区二区三区| 久久成人久久鬼色| 国产成人免费av在线| 91婷婷韩国欧美一区二区| 欧美日韩一卡| 国产乱码精品一区二区三区不卡| 色婷婷国产精品| 日韩一卡二卡三卡| 国产午夜精品一区二区三区视频| 亚洲私人影院在线观看| 日本不卡视频在线观看| 国产成人激情av| 欧美视频网站| 色成年激情久久综合| 欧美va亚洲va| 亚洲激情男女视频| 国产一区激情在线| 亚洲网站在线| 欧美日韩久久不卡| 国产欧美1区2区3区| 午夜精品久久久久久久久久| 国产成人小视频| 亚洲国产精选| 91精品在线麻豆| 日韩理论片在线| 久久99精品视频| 激情另类综合| 欧美精选午夜久久久乱码6080| 国产人成亚洲第一网站在线播放 | 琪琪久久久久日韩精品| 盗摄精品av一区二区三区| 日韩网站在线| 精品国产露脸精彩对白| 香蕉加勒比综合久久| bt欧美亚洲午夜电影天堂| 免费亚洲网站| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲va韩国va欧美va| 不卡一区二区中文字幕| 久久综合伊人77777麻豆| 日本一区二区三区高清不卡| 裸体在线国模精品偷拍| 精品不卡一区二区三区| 欧美一卡二卡三卡| 日韩电影网1区2区| 国产一区视频在线观看免费| 欧美精品三级在线观看| 亚洲精品国产无套在线观 | 欧美探花视频资源| 亚洲日本护士毛茸茸| 99亚偷拍自图区亚洲| 欧洲人成人精品| 一区二区三区蜜桃| 色综合咪咪久久| 日韩亚洲欧美一区二区三区| 日韩电影免费在线看| 国产精品免费一区二区三区在线观看 | 国产一区在线精品| 色婷婷久久久综合中文字幕| 亚洲色图另类专区| 欧美日一区二区三区在线观看国产免| 91精品蜜臀在线一区尤物| 日本强好片久久久久久aaa| 1024成人| 中文字幕在线不卡视频| 欧美一区二区三区在线播放| 精品日韩一区二区三区免费视频| 国产一二三精品| 欧美日精品一区视频| 日韩国产高清在线| 久久久久久久波多野高潮日日| 一区二区视频在线| 一本色道久久综合亚洲精品婷婷| 国产精品传媒在线| 欧美日韩天天操| 国产精品久久久久久久岛一牛影视| 9色porny自拍视频一区二区| 精品剧情v国产在线观看在线| 国产aⅴ综合色| 日韩一区二区三区免费看| 国产精品亚洲а∨天堂免在线| 欧美伦理电影网| 国产精品123| 337p日本欧洲亚洲大胆精品| av影院午夜一区| 亚洲国产精品高清| 亚洲成色最大综合在线| 一区二区三区在线观看国产 | 国产精品久久久久一区二区三区共| 欧美国产综合视频| 亚洲日本在线观看| 免费一区二区三区| 国产一区二区在线观看视频| 69堂精品视频| 国产成人精品影院| 国产午夜亚洲精品理论片色戒| 欧美精品尤物在线| 亚洲老司机在线| 欧美在线你懂得| 国产v日产∨综合v精品视频| 国产亚洲欧美在线| 99精品欧美一区二区三区| 日韩高清不卡在线| 日韩午夜中文字幕| 国产综合色产| 亚洲第一精品在线| 欧美一区二区福利在线| 国产精品va| 全部av―极品视觉盛宴亚洲| 欧美一区2区视频在线观看| 97se亚洲国产综合自在线| 一区二区三区在线播| 欧美日韩精品电影| 亚洲欧美影院| 日韩精品视频网| 欧美不卡一区二区三区四区| 国产一区高清视频| 蜜臀a∨国产成人精品| 久久午夜电影网| 国产精品毛片在线| 成人午夜免费av| 一区二区三区波多野结衣在线观看 | 久久久7777| 欧美一区二区三区久久精品茉莉花 | 91久久精品日日躁夜夜躁欧美| 成人av电影观看| 亚洲狠狠爱一区二区三区| 日韩亚洲欧美高清| 老司机一区二区三区| 成人高清视频在线观看| 亚洲国产视频网站| 精品成人在线观看| 久久久久久一区| 欧美阿v一级看视频| 开心九九激情九九欧美日韩精美视频电影| 久久久99免费| 欧日韩精品视频| 精品91免费| av亚洲精华国产精华| 日本三级韩国三级欧美三级| 中文字幕一区日韩精品欧美| 欧美老女人在线| 免费在线欧美黄色| 欧美少妇一区| 成人午夜碰碰视频| 久久成人久久爱| 午夜私人影院久久久久| 国产精品少妇自拍| 日韩一区二区精品葵司在线| 色女孩综合影院| 99综合在线| 欧美日韩一区二区视频在线观看 | 夜夜嗨一区二区| 91色porny蝌蚪| 高清不卡在线观看| 久久精品国产99| 香蕉久久一区二区不卡无毒影院| 成人欧美一区二区三区1314| 26uuu精品一区二区| 在线成人av影院| 在线观看亚洲精品视频| 99精品视频免费| 国模精品一区二区三区| 91蜜桃免费观看视频| 国产精品996| 韩国成人在线视频| 免费三级欧美电影| 三级欧美在线一区| 亚洲国产另类av| 亚洲mv在线观看| 一区二区成人在线视频| 亚洲欧洲99久久| 日韩一区欧美小说|