- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(开发基于CORBA的文件浏览器
开发基于CORBA的文件浏览器
吴栋淦
(福建信息职业技术学院,福州 350003)
摘要:随着计算机技术的飞速发展,传统的C/S软件模型因过于依赖操作系统平台、编程语言等因素,已经不能适应需求。基于此,介绍在Solaris平台下开发基于CORBA技术实现的分布式文件浏览器的过程,包括IDL的编写、服务器端程序的开发和客户端程序的开发,以适应社会需求。
关键词:CORBA;ORB;IDL;递归
分布式体系结构是当前大型软件产品的主流,目前分布式结构使用的核心技术大致可以分成两种不同的工业标准:一种是微软公司制定的COM/DCOM/COM+,另一种是OMG组织提倡的CORBA。目前微软公司主要使用COM+来实现分布式计算,可以利用VS.NET开发出COM+应用程序,但是这种方案的缺点是不能跨平台,只能在Windows系统中使用。而CORBA是由非盈利性组织OMG制定的,该组织拥有800多个成员,其目标是解决异构系统的可移植性,并能支持不同的开发语言。本文通过java语言开发一个简单的文件浏览器,简要分析CORBA的体系结构,详细介绍了基于CORBA的分布式应用程序的开发过程。
CORBA(Common Object Request Broker Architecture)公用对象请求代理是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。CORBA 允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。CORBA 标准主要分为三个部分:对象请求代理(ORB)、接口定义语言(IDL)和ORB间的互操作协议(IIOP)。ORB是CORBA的基础,主要功能是负责在不同的对象间传递消息,在分布式环境下确保对象之间交互透明地进行。接口定义语言(IDL)用于描述分布式对象接口,保证了CORBA在一系列异构的操作系统平台、编程语言中实现协同操作。IDL不是编程语言,是一个纯说明性的语言,具有一整套语法规则,供用户定义接口。使用netbeans开发CORBA应用
在本文中利用netbeans来编写文件浏览器的客户端,在客户端程序中允许查询服务器端的目录内容,并在指定的目录中查找文件名,如找到则给出路径名,否则提示错误信息。利用CORBA来实现这个功能可以分为以下四个步骤:
1编写IDL文档,定义远程接口,利用idlj生成模板;
2编写服务器程序,实现接口细节;
3利用netbeans开发客户端程序;
4启动ORB后台执行,开启服务器程序进行监听,验证结果。
首先来看一下第一个步骤,由于程序的要求是完成两个功能,因此可以定义两个接口_list和_myFind,接口_list用于显示指定的文件夹,传入一个参数,类型为string;接口_myFind用于搜索某文件夹下的文件,传入两个参数,类型均为string。};
};
IDL文档的语法类似java,在模块file中定义了接口_list和_myFind,其中string是参数的类型关键字,in是参数传递的方向,代表该参数是传入。建立完IDL文档后可以在命令行中进行编译,生成模板。
$idlj -fall Hello.idl
执行完后发现在当前目录下多了一个子目录HelloApp,在这个子目录下有6个java文件,在下面的程序中将利用这几个文件实现接口。
完成了接口定义后,接下来实现服务器程序。在服务器程序中关键在ORB的初始化和接口的实现。程序中首先导入ORB的路径:
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import java.util.Properties;
import java.io.File;
在初始化代码中添加如下内容:
//创建和初始化ORB
ORB orb=ORB.init(args,null);
//获取rootpoa的引用,并激活POAManager
POA rootpoa=POAHelper.narrow(orb.resolve_initial_references(RootPOA));
rootpoa.the_POAManager().activate();
//创建servant,并在ORB中注册
HelloServant helloRef=new HelloServant();
helloRef.setORB(orb);
//从servant中获取对象引用
文档评论(0)