转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
用CORBA创建Client/Server 程序         ★★★★

用CORBA创建Client/Server 程序

作者:闵涛 文章来源:闵涛的学习笔记 点击数:699 更新时间:2009/4/22 23:27:31
   假如你想找一个利用面向对象的方法去连接一个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.java)通信。

157


[办公软件]Office程序常见错误及解决方案  [Web开发]您试图从目录中执行CGI、ISAPI 或其他可执行程序,…
[Web开发](“/”应用程序中的服务器错误)ASP.NET程序上传到…  [Web开发]authentication mode=Windows/之“/”应用程序中的…
[Web开发]程序员应具备的素质  [Web开发]十一种Web网站程序性能测试工具介绍
[Web开发]图文解说—如何通过VS2005测试网站程序性能  [Web开发]怎样配置(设置)本机才能让ASP.NET网站程序运行起来
[Web开发]十一个常规用法就是提高NET程序性能的核心  [Web开发]Asp.net程序常见错误分析
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台