亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 15:07:06
字體:
來源:轉載
供稿:網友


本文轉載自軟件工程專家網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. 分別編譯服務器端和客戶端程序

 ?。?)編譯服務器端程序:

  javac getMessage/server.java

 ?。?)編譯客戶端程序:

  javac getMessage/client.java

7. 運行

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

     tnameserv -ORBInitialPort 3388

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

     java server -ORBInitialPort 3388

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

     java client -ORBInitialPort 3388



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一免费播放区| 欧美成人h版在线观看| 91高清免费视频| 久久精品国产99国产精品澳门| 久久久久久午夜| 久久久久久av| 国产91ⅴ在线精品免费观看| 国产欧美一区二区三区在线看| 日韩视频一区在线| 欧美成人sm免费视频| 亚洲欧美一区二区三区久久| 国产精品扒开腿爽爽爽视频| 欧亚精品在线观看| 日韩视频免费中文字幕| 国产精品网站视频| 欧美巨大黑人极品精男| 奇米成人av国产一区二区三区| 中文字幕亚洲天堂| 国产成人鲁鲁免费视频a| 欧美自拍视频在线观看| 久久国产精彩视频| 国产97色在线| 久久久女人电视剧免费播放下载| 久久久免费精品| 亚洲人av在线影院| 91中文字幕一区| 日韩在线视频播放| 一区二区三区www| www.国产精品一二区| 在线视频日韩精品| 26uuu另类亚洲欧美日本老年| 亚洲欧美日韩直播| 中文字幕亚洲精品| 欧美高清电影在线看| 国产精品大陆在线观看| 日韩va亚洲va欧洲va国产| 色偷偷噜噜噜亚洲男人的天堂| 欧美激情手机在线视频| 欧美影院成年免费版| 久久综合伊人77777蜜臀| 亚洲成人av资源网| 日韩在线观看你懂的| 亚洲成年人在线| 欧美做爰性生交视频| 亚洲第一级黄色片| 国产精品久久久久久av| 国产剧情久久久久久| 国产91ⅴ在线精品免费观看| 国产欧美在线看| www.久久久久久.com| 亚洲国产精品一区二区三区| 亚洲精品电影网站| 97免费在线视频| 国产精品自拍网| 成人xxxx视频| 久久久久久91| 最近2019中文字幕大全第二页| 精品中文视频在线| 久久福利视频网| 日韩欧美精品网站| 亚洲综合成人婷婷小说| 亚洲一区二区三区四区视频| 国产美女久久精品| 欧美日韩高清区| 高清日韩电视剧大全免费播放在线观看| 92看片淫黄大片欧美看国产片| 国外日韩电影在线观看| 91国自产精品中文字幕亚洲| 91九色单男在线观看| 伊人亚洲福利一区二区三区| 国产在线视频91| 欧美精品在线免费播放| 欧美一区二区视频97| 亚洲国产福利在线| 精品激情国产视频| 久久久精品在线| 深夜精品寂寞黄网站在线观看| 97精品在线观看| 久久91亚洲精品中文字幕奶水| 日韩免费在线电影| 国产极品精品在线观看| 午夜欧美大片免费观看| 91国语精品自产拍在线观看性色| 69影院欧美专区视频| 亚洲精品第一国产综合精品| 日韩中文字幕网址| 国产精品爽爽ⅴa在线观看| 欧美日韩国产一中文字不卡| 精品久久久久久| 国产成人一区二| 久热在线中文字幕色999舞| 欧美尺度大的性做爰视频| 欧美视频中文在线看| 8x海外华人永久免费日韩内陆视频| 激情成人在线视频| 精品日韩美女的视频高清| 欧美巨猛xxxx猛交黑人97人| 亚洲大胆人体视频| 91国产中文字幕| 欧美老少做受xxxx高潮| 欧美国产欧美亚洲国产日韩mv天天看完整| 色与欲影视天天看综合网| 俺去啦;欧美日韩| 91国产视频在线播放| 亚洲伊人久久大香线蕉av| 欧美国产亚洲精品久久久8v| 欧美人在线视频| 亚洲xxx视频| 亚洲综合小说区| xx视频.9999.com| 秋霞午夜一区二区| 亚洲第一区第一页| 欧美日韩国产精品一区二区三区四区| 久久全球大尺度高清视频| 992tv在线成人免费观看| 宅男66日本亚洲欧美视频| 中文字幕日韩高清| 亚洲欧美日韩久久久久久| 国产日本欧美视频| 97国产suv精品一区二区62| 美女福利精品视频| 日韩毛片中文字幕| 丝袜美腿精品国产二区| 国产成人在线视频| 久久久精品一区二区三区| 精品成人久久av| 2019亚洲男人天堂| 日韩欧美在线视频| 久久影视电视剧免费网站清宫辞电视| 国产三级精品网站| 97在线看免费观看视频在线观看| 日韩欧美中文第一页| 久久精品精品电影网| 国产专区精品视频| 亚洲japanese制服美女| 粉嫩老牛aⅴ一区二区三区| 久久91精品国产91久久跳| 久久精品精品电影网| 日韩中文字幕在线精品| 国产激情综合五月久久| 国产成人精品一区二区在线| 国产精品久久久久久久久久久久久久| 亚洲一区久久久| 91视频国产高清| 亚洲男人天堂久| 亚洲娇小xxxx欧美娇小| 国产精品视频一| 久久久精品电影| 久久不射热爱视频精品| 国产精品国产三级国产专播精品人| 久久精品影视伊人网| 亚洲视频电影图片偷拍一区| 欧美—级a级欧美特级ar全黄| 亚洲色图美腿丝袜| 亚洲国产91精品在线观看| 在线观看视频99| 国产精品人成电影在线观看| 亚洲无av在线中文字幕| 日韩有码在线电影| 国产精品三级久久久久久电影| 日韩精品中文字幕久久臀| 欧美久久久精品| 国产成人精品a视频一区www| 国产精品久久二区|