快速业务通道

用CORBA创建Client/Server程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

用CORBA创建Client/Server程序

时间:2010-07-08

假如你想找一个利用面向对象的方法去连接一个Client到Server,你有两个主要的选择:DCOM和CORBA。DCOM是微软的解决方案,并且当你为WINDOWS系统写代码时非常有用。在本文中,我们将要研究用CORBA去解决分布式应用程序问题。

CORBA概要:

在一个通常的用C++或者JAVA写的面向对象的程序里,程序包含所有应用程序需要用到的类。编译器编译和连接这些对象,当你用new语句初始化对象时,它们被创建在应用程序所在的内存里并且被当作一个简单的过程来执行。

CORBA是一种技术允许一个Client程序调用属于一个Server的对象,这个Server可以是运行在同一台机器或者是几千里外的机器。在它的最基本的阶段,CORBA是非常简单的-实例化一个在你的处理内存空间的对象代替你在通常的程序中所做的,你可以实例化这个对象无论在哪一个网络的Server上。调用这个对象的方法以及这些方法需要传递的参数被打包成网络包的格式发送到服务器上。这个功能实际上是运行在服务器上,返回结果通过网络传递到调用者。

这种方案的优点是服务器可以作为高效的、共享的资源中心,以Server为基础的CORBA对象可以访问Server的数据库和其它服务。当然,它的缺点是速度。每秒调用功能的数目被网络速度严格限制,以便保证其它技术通过网络传输数据,因而,CORBA不是独仪无二的。DCOM,甚至Socket都要忍受同样的延迟。

用CORBA方法特别的方面是可以方便的调用ORB(Object Request Broker), ORB处理和操作Client和Server之间的连接。在下面的例子里我们将要用Inprise VisiBroker ORB。用VisiBroker,Client和Server都用一个叫做OSAGENT的服务,OSAGENT用一个标准的端口(通常是14000)连接Client,OSAGENT可以当作一个目录去帮助Client的ORB去找到一个它要找的对象。

用java设置一个简单的CORBA的Client和Server是非常简单的,在下面我们将要看到几段例子代码段去显示这个过程,在接下来的部分我们将要解释代码怎样工作的,我们从关键字"安装"开始。

安装

用文档中的例子代码,除了VisiBroker ORB之外你需要下载Sun的JDK1.1,你能下载SDK从http://java.sun.com/products/jdk/1.1/index.html。我们用JDK1.1代替1.2是为了避免和java2的ORB冲突。你可以得到VisiBroker ORB从http://www.inprise.com/visibroker/。先装SDK,再装ORB。

例子代码

为了创建一个CORBA Server并且让Client访问它,你要决定Server类将要做什么再开始。在这个例子里我们要用一个非常简单的Server类,这个类拥有一个私有的整型变量,在这个类里的一个方法将要增加这个整型变量,并且另一个方法将要允许Client访问这个变量的正确值,下面是这个类的接口描述:

//Counter.idl module Counter{ interface Count { void increment(); long getCounter(); }; };

这个类被命名为Count,它的两个方法是Increment和getCounter,这个类被包含在一个叫Counter的模板中,只要你愿意这个模板可以包含好几个不同的类,把这IDL代码放在一个叫Counter.idl名字的文件中。

为了用这个IDL文件,你需要IDL2JAVA去运行它,这个工具将要创Client和Server要用到的类,IDL2JAVA产生的Client类叫做Helper并且被命名为CountHelper.java,Client用helper类去调用Server的功能,IDL2JAVA产生的Server类叫做ImplBase并且被命名为_CountImpleBase.java,你将要执行这些Server扩展ImplBase的方法。

注意:当你在Client直接用CounterHelper.java类时,当你调用一个Counter接口的方法时执行在Client的代码是_st_Counter.java。这个类调用stub把数据打包发送到Server并且返回正确的数据,它同Server端的skeleton(是_sk_Counter.java,继承与_CounterImplBase.j

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号