国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

親身體驗CORBA: 使用java和C++混合編程

2019-11-18 15:39:22
字體:
來源:轉載
供稿:網友
1. 前言

  現在很多人在對CORBA進行學習,大家都已經了解到CORBA是一個完全中間性的語言,可以使用接口定義語言(IDL)定義開發時使用接口的 Client 和實現接口的 Server 所需要的信息。

Client 和 Server 的具體實現代碼并不在IDL定義中編寫,而是使用某種目標語言的IDL 編譯器生成所需的代碼存根及helper類,Client 和 Server再使用真正的編程語言來進行具體實現。

  為了保證在不同的 CORBA 產品基礎之上構建的分布式對象可以相互通信,Client和Server通過ORB(對象請求代理)進行通信。一般的運行流程是Client把請求發送給ORB,ORB再把請求發送給Server,Server把返回結果發送ORB,ORB再把返回結果發送給Client。ORB可以說Client和Server之間的翻譯者。即使Client和Server使用不同的編程語言編寫,只要是符合相同的IDL定義,ORB也可以完成相互的通信。

  所有的文檔在強調服務器及客戶機可以是java也可以是C++或其他語言(如:Delphi)進行編寫,但在網站或書本是沒有具體說如何應對多語言客戶機的例子。《JAVA2核心技術》上面有些說明,但也只是介紹性的文章,故自己下載了omniORB304,進行了一次使用SUN的 tnameserv命名服務程序,服務器用JAVA編寫,客戶機分別用JAVA和C++(VC6+omniORB)編寫的試驗,希望通過一次編程的具體操作實例來體驗或明了CORBA思想。

  總體的編寫過程如下:

  用IDL定義一個接口文件,描繪要實現的功能,也可以說是定義一個要實現功能的一個模版(SysPRop.idl)

  使用"IDL to Java"編譯器(這里是IDLJ)將IDL文件轉化為Java編程語言中編寫的接口定義,生成所需的代碼存根及helper類

  使用Java語言編寫客戶機和服務器的實現程序。

  使用"IDL to C++"編譯器(這里是omniidl)將IDL文件轉化為C++編程語言中編寫的接口定義,生成所需的代碼存根及helper類

  使用C++語言編寫客戶機實現程序(當然也可編寫服務器程序,但本次試驗沒有進行)

  起動命名服務tnameserv

  起動Java編寫的服務程序

  用Java和C++編寫的客戶機分別調用相應的服務

  2. 運行環境的設定:

  總體環境由jdk1.3+omniORB3.0(www.uk.research.att.com/omniORB/doc/3.0) +vc6 組成,下面說明具體的安裝。

  2.1. 安裝JDK1.3

  從SUN公司DOWN JDK1.3或者通過其他方式得到jdk1.3進行安裝,再設定相應的環境變量,在本文測試用的電腦上是如下所示:

  CLASSPATH=.;
  JAVA_HOME=D:/jdk130

  修改原來的PATH變量,添加"%JAVA_HOME%/bin;",如下

  PTAH=%JAVA_HOME%/bin;原變量

  注重:我在第一次使用jbuilder的jdk1.3時,服務器不能正常工作,我只是發覺這么一回事,具體原因與本文無關而沒有進行了解,請諒。

  2.2. 安裝VC6
  VC6按常規方式安裝,注重的是:在本文測試用的電腦上安裝在如下位置

  C:/Program Files/Microsoft Visual Studio

  2.3.安裝omniORB

  從 www.uk.research.att.com/omniORB/doc/3.0 下載omniORB3.0 ( 本文測試所下載的文件是omniORB_304_x86_win32.zip )。

  用WinZip進行解壓omniORB_304_x86_win32.zip到omniORB_304_x86_win32目錄,目錄內存在omni目錄,復制omni目錄內的文件到你把想存放的位置。

  測試電腦安裝在C:/omni

  根據C:/omni/README.win32 文檔進行設定,由于運行程序及命令行在控制臺進行,所以本次測試并不根據文檔要求去設定環境變量,而是編寫了一個omni.bat,在使用控制臺時,首先運行。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 遂昌县| 沙湾县| 上高县| 秭归县| 辉县市| 蛟河市| 天镇县| 鹿泉市| 马公市| 玉田县| 屏边| 习水县| 三亚市| 丹东市| 拉萨市| 梁平县| 阿巴嘎旗| 白朗县| 固阳县| 永丰县| 从化市| 潼南县| 麻江县| 雷波县| 忻州市| 东台市| 若尔盖县| 天门市| 五常市| 永德县| 拉萨市| 荆州市| 阿鲁科尔沁旗| 嫩江县| 伽师县| 岚皋县| 天祝| 田东县| 萨嘎县| 宝兴县| 阜康市|