亲身体验CORBA: 使用java和C++混合编程
2008-01-05 08:21:27 来源:WEB开发网现在很多人在对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,在使用控制台时,首先运行。
- ››体验Win8 OneNote 高效率大功能
- ››体验Discuz! X1.5搜索新变革 挖掘内容更方便
- ››体验简单分析 如何做好用户体验
- ››体验Photoshop CS5新增的HDR色调调整
- ››体验 iphone 的越狱和解码功能
- ››体验 Jazz,体验 Rational Team Concert Express
- ››体验 Spring 的 Object/XML 映射支持
- ››体验ASP.NET4之ClientID
- ››体验Windows Server 2008 R2的RemoteApp
- ››体验Illustrator的旋转和缩放工具
- ››体验风行给你的三个非主流功能
- ››体验Photoshop CS4的三维能力
更多精彩
赞助商链接