CORBA技术与COM技术的比较分析 CORBA技术与COM技术的比较分析

CORBA技术与COM技术的比较分析

  • 期刊名字:武汉工业学院学报
  • 文件大小:278kb
  • 论文作者:汪洪,丰洪才
  • 作者单位:深圳市星火电子工程公司,武汉工业学院
  • 更新时间:2020-10-26
  • 下载次数:
论文简介

第22卷第4期武汉工业学院学报Vol.22 No. 42003年12月”Jourmalof Wuhan Polytechnic UUniversityDec. 2003文章编号:1009 - 4881(2003 )04 -0014 -04CORBA技术与COM技术的比较分析汪洪' ,丰洪才(1.深圳市星火电子工程公司,广东深圳518040; 2.武汉工业学院计算机与信息工程系,湖北武汉430023 )摘要:C0RBA技术和COM技术是两种主要的分布式对象技术。文章对二者的结构和运行机理进行了比较,并举出了一个简单的实例。关键词:分布式对象技术;CORBA;COM;对象请求代理;RPC中图分类号:TP 311文献标识码:A态框架接口及对象适配器组成,它们均给出了一组0引言接口来支持应用对象,其中动态调用接口、IDL桩和随着面向对象技术的进一步发展,分布式计算ORB接口(由ORB内核提供)可为客户方使用,称与面向对象技术相结合,从而出现了分布式对象技为客户方接口;IDL框架、动态框架接口、对象适配术。目前,分布式对象技术已经成为建立服务应用器和ORB接口可为对象实现方使用,称为对象实现框架和软件构件的核心技术,在开发大型分布式应方接口。同时为了使这些ORB部件均能完成其功用系统中表现出了强大的生命力,并逐渐形成了3能,CORBA给出了接口库和实现库的描述,这部分种具有代表性的主流技术,即OMG的CORBA技可称为辅助设施。术、Microsoft的COM技术和Sun公司的Javea 技公共设施应用接口领域接口腐术。其中Java和CORBA在很大程度上可以看作是互补的,它们紧密结合的趋势是势不可挡的,而且它对象请求代理ORB们的结合将成为OhjectWeb技术的主要形态。因此中王文章主要选择CORBA技术与COM技术进行比较对象服务物分析。图1 OMA 参考模型1结构1.21客户万对象实现万CORBA结构的关键是OMA ( ObjectManagement Architecture) 参考模型,其结构如图1所示。它包括对象请求代理ORB(0bjectRequestCRB动志阳OlteaBroker)、对象服务( 0bject Service)、 公共设施IDL桩接口. 框规贺传EAlipe对象适配器( Common Facilitis)、 应用接口(ApplicationORB核心Interfaces). 领域接口( Domain Interfaces) 等五个组对子两衣oRB使现杯一样的德口1a1训日成部分,其中对象请求代理ORB是参考模型的核用以有多个时黑省配a每个对重都有一个母料一个相葛心。ORB使对象在一个分布式环境下透明地建立恒线CRN的柳L并接收请求和回答,它象一部电话交换机 ,提供创立和接收调用的基本机制,用于接收请求、定位请求的图2对象请 求代理的体系结构对象实现,或用于准备对象实现及与组成请求的数0RB核心是ORB的--部分,它提供基本的对据通信等。其体系结构如图2所示。单个0RB由象表示和请求的通信。CORBA 被设计用于支持不动态调用接口、IDL桩、ORB接口、静态IDL框架、动同的对中国煤化工RB核心之上的收稿E日期:2003-02 -26YH ;CNMHG作者简介:汪洪(1958 -),男,安徽省休临市人,工程师。4期汪洪,丰洪才:CORBA技术与COM技术的比较分析15组件结构化ORB来实现的,这些组件提供掩盖ORB图5所示COM的体系结构仅对0LE2.0定义,核心之间的差别的接口。可见它并没有定义类似于CORBA中OMA的整体Microsoft 的组件对象模型COM ( Component结构;其中COM的永久存储等组件大致对应于Object Model)定义了组件和它们的客户之间互相作CORBA的对象服务规范;OLE组件是和应用(用户用的方式,它使得组件和客户端无需任何中介组件界面)紧密相关的,对应于CORBA的公共设施范就能相互联系。客户进程直接调用组件中的对象的畴;自动化在COM的基础上提供了更简单、层次更方法。图3说明了组件对象模型的表示法。高的编程界面,并没有增加更多的对象操作和管理功能。户方服务方组件0:表示接口2规范[2]CORBA和COM都具有相应的规范,无论从研图3同一进程中 的COM组件在现在的操作系统中,各进程之间是相互屏蔽究它们的规范本身,还是研究实际应用中的案例,二的。当一个客户进程需要和另一个进程中的组件通者在权威性、风格、精确性、目标等方面存在着不小.讯时,它不能直接调用该进程,而需要遵循操作系统的差别。对进程间通讯所做的规定。COM使得这种通讯能CORBA规范本身十分正规,并用IDL(OMC够以- -种完全透明的方式进行:它截取从客户进程.IDL也是一个ISO的标准)进行表述。CORBA 规范来的调用并将其传送到另一进程中的组件。图4表主要分为3个层次:对象请求代理、公共对象服务和明了COM运行库是怎样提供客户进程和组件之间公共设施。最底层是对象请求代理ORB,它规定了的联系的。DCOM 是COM的进- -步扩展,当客户进分布对象的定义(接口)和语言映射,实现对象间的程和组件位于不同的机器时, DCOM仅仅只是用网通讯和互操作,是分布对象系统中的“软总线”;在ORB之上定义了很多公共服务,可以提供诸如并发络协议来代替本地进程之间的通讯。服务、名字服务、事务(交易)服务、安全服务等各种客户方COM运行时COM运行时服务方组件各样的服务;最上层的公共设施则定义了组件框架,环境提供可直接为业务对象使用的服务,规定业务对象安全RPC]「安全工RPC服务 服务服务服务有效协作所需的协定规则。总之,CORBA的特点是术地进程间通信一木 地进程间通信大而全,互操作性和开放性好。目前CORBA的最新版本是3.0,增加了有关Intermet集成和Qos控制图4不同进程中的COM组件COM中不仅提供对象的创建和管理功能,还包等内容。但CORBA的缺点是庞大而复杂,并且技括三个最基本的组件:永久存储、智能名字和统-数术和标准的更新相对较慢。CORBA 作为一-种抽象据传输。OLE是建造在COM上的更高层次的技的规范定义并不限制具体的实现方案,这一点对软术。OLE2.0 第一个实现了COM规范的子集,包括件供应商而言最具吸引力。从COM体系结构的基础来看,COM规范是相进程内的对象、本地对象以及其他COM技术,但不当完备的,等同于CORBA语言映射规范的信息在包括远程对象。0LE 组件之间以及0LE和COM之微软的各种语言的文档中很多。MIDL ( Microsoft间的关系形成了COM的体系结构(如图5所示)。Interface Definition Language) 是0SF DCE RPC的IDL扩展,COM规范对这些扩展进行了阐述。可视化编辑链接COM规范里有非常多的十分有用的细节方面的内嵌入复合文档容,但仍有很多内容没有被包容进来或加以充分C自动化h说明。OLE从以_上的阐述,我们不难看出, CORBA是-一个COM-统一数据传输)通用的分布式对象规范说明,由于它没有给出参考的实现方案.所以为空现棍供了极大的灵活性,而C水久存储智能名字)中国煤化工制之上的一层协议,组件对象模型和组件对象YHCNMHG细致,但又不利于优化。图5 COM 体系结构16武汉工业学院学报2003年3运行机理"上进行注册,以便客户能通过注册表上的对象唯--标识找到该对象。CORBA给出了一个在多种环境下面向对象的COM也支持动态和静态两种对象调用。这一编程范例。在CORBA下的每一个应用,无论它是点同CORBA是一致的,但二者实现机制上稍有不运行在客户端还是服务器端,都是作为一个对象来同。在CORBA下,不管哪种调用方法,实现接口是.对待的,服务器上的对象可以调用客户机上的对象,一样的;而COM则提供了两种接口,不同的调用方反之亦然,因而服务器与客户机间的传统界限变得法需要不同的接口来实现。在COM中使用静态调模糊起来。CORBA体系中的核心部分0RB负责将用,要定义一个接口和它的组件,让MIDL编辑程序客户机的需求传递到本地或远程服务器上,并将结自动产生连接这些组件的代理存根模块(proxy-果返回。对一个客户机来说,服务器的位置应该是stub)代码。对于动态调用, COM是通过类型库透明的返回,它通过接口与服务器组件通信。接口(Type Library)来提供支持的,类型库中包含了描述中存放了服务器组件的调用方法和可用函数。为了组件的文件,客户应用在运行期间通过一个被保证在语言、操作系统、网络及ORB之间的互用性,称为Idispatch的COM接口来获取这些接口,优点是OMG提供了标准IDL语言映射。CORBA还支持继无需手工定义接口,让MIDL产生proxy - stub代码承,允许-一个接口从另一接口中导出,并继承该接口了,我们可以使用缺省的IDispatch代理存根模块的实现。CORBA允许一个客户机组件以静态和动代码。态两种方式调用服务器组件。如果使用静态调用,所有的分布计算必然包括通信,如果分布计客户机要指定是哪个服务器组件、调用的是哪个函算是在分布式网络上,那么在传输数据时,数据的数;如果使用动态调用,客户机预先不知道服务器组安全性和完整性都有危险。安全性必须保证用户件的接口,客户机要在运行时通过CORBA提供的不受破坏代码的侵害。CORBA的安全服务提供了Naming Server或Trading Server 找到服务对象,然后鉴别授权、加密、安全域、甚至还有跟踪网络上安再动态地调用服务方法。全行为的审核服务,另外还提供一些安全接口,允COM/DCOM作为微软的分布式计算策略,是在许在客户应用中操作安全选项;还有一些管理接开放性软件基金会DCE远程过程调用(RPC)协议口,允许对ORB的访问控制策略进行操作。COM的基础上开发的。使用COM,客户能够透明地访问使用远程过程调用(RPC),用于在相距异地的对进程内或本地跨进程的服务对象。对于远程对象的象间通信。使用COM实现的ActiveX控件不含严存取则是通过一个远程对象代理和微软的对象远程格的安全性检查或资源权限检查,控件具有其资过程调用0RPC,增加了调用远程服务器对象的能源的所有权限。这样就缺乏固有的安全性。COM力,而本地跨进程调用则是通过独立于操作系统的所采用的是Windows NT的安全体制。对于非进程间通信完成的。DCOM为远程服务提供了本地Windows平台,COM将使用它所处平台上的安全/远程透明度。机制,同时提供了一个与Windows NT兼容的安全对于本地或远程的进程内或跨进程客户服务请措施。求,COM调度程序创建客户端客户代理对象,为客4应用实例(4]户应用提供了指向服务器对象接口的指针;同时,创建存根模块对象,由它向服务器对象发送和接收参研究CORBA和COM技术不仅是要研究技术数;使用实际接口指针调用服务器对象。同CORBA本身,更重要的是研究如何把它们合理的应用到实一样,COM也是采用面向对象的方法,所有应用都际的系统中去,以充分发挥它们的优势,最大限度的被看作是一个对象。在COM环境下,客户应用与创造经济效益和社会效益。这里将介绍-一个应用实COM组件的通信只需通过包含指向该对象可用函例一简化的学生 成绩统计子系统。该系统的设计数的指针的接口。在COM中,接口无疑是关键所采用三层结构模式:表示层、业务功能层和数据服务在,组件是接口的具体实现,-一个组件可以被支持相层。其中,业务功能层是系统的核心,它根据用户申同接口的另-个组件透明地删除和替换, COM支持请的操作提供的参数来完成相应的功能。它在表接口继承,即一-个接口可以从另一个接口中导出,但示层中国煤化工月,从表示层发来导出的接口不能继承原始接口上的组件。COM允请求Y片CN MHG对象从数据库中许你使用现存组件,这可通过在应用接口中插人指读取数诺升对效据进仃相应的分析处理,然后,将处向该组件的指针来实现。每一个对象必须在本地机理完的数据传回到表示层。下面将分别给出该层中.4期汪洪丰洪才:CORBA技术与COM技术的比较分析12所实现的统计组件( RepExample)的0MG IDL描述oleautomation”和MICROSOFT IDL( MIDL)描述。pointer_ default( unique) ]4.1 统计组件RepExample的OMG IDL描述interface Ireport: IDispatch组件模块RepExample:module RepExample |://接口所提供的服务的定义interface Report||;[ uuid ( 5A04A381 - FE71 - 11D4 - 8FE2-://接口中数据类型的定义和接口所提供CAF286AAEFOA), .的服务的定义versiob(I.0),hlepstring( " RepExample 1.0 Type Library" )]};library RepExample|{ importlib( " stdole32. db" );组件模块RepExample所提供的Report接口中包importib( " stdole2. tb" );含五i个基本操作: GetStudentScore、GelCourseScore、[ uuid ( 5A04A390 - FE71 - 11D4 - 8FE2 -GetF ailedStudent ComputeAverageID、GetCourse。这里CAF286AAEF0A),选取GetStudentScore加以说明。hlepstring( ”Report Class" )]GetStudentScore ( term, StudentID , StudentScoreSet)coclass Report的功能是获得指定学生(StudentID)在指定学期|[ defaul] interface Ireport;(term)所修的全部课程的成绩(StudentScoreSet)。学生每门课程成绩的数据结构由课程号、课程名、成绩组成,定义结构类型StudentScore,又由于操作返该COM组件中接口服务所用到的数据结构和以上回的是包含多门课程成绩的结果集,因此定义序列OMGIDL描述非常相似,这里不在讲述。类型StudentScoreSet作为操作结果集返回客户方。从以,上介绍中我们可以看到OMGIDL与其IDL定义如下:MICROSOFT IDL在对接口定义和所提供的数据类Struct StudentScore |型等方面存在着很大的差别。0MGIDL所描述的String coursecode;组件接口看起来更加清晰、简洁、易于理解;而String coursename;MICROSOFTIDL所描述的组件接口相对来说有些Float score ;零乱、繁杂、晦涩难懂。设计好组件对象的IDL描述以后,就可以将它typedef sequence < StudentScore > StudentScoreSet;们映射到多种程序开发语言,获得组件程序的主框void GetStudentScore( in string term,架,然后将组件实现的关键代码加人其中,编译生成in string StudentID ,一个真正的组件程序。out StudentScoreSet resultset) ;参考文献:4.2 统计组件RepExample的MDL描述使用1] Guy Eddon, Henry Eddon . Inside COM+ Base微软提供的活动模板库ATL来创建该组件,其原始Services 组件编程技术内幕[M].北京:希望MIDL描述如下:电子出版社1999.import " oaidl. idl"[2]杨喜敏,陆际光,唐菀. 分布式应用技术中的import " ocidl. idl"CORBA、JavaRMI和DCOM[J].中南民族大学学报(自然科学版) ,2002 ,21(2):61 -63.://组件对象所用到的数据结构定义[3] 侯迪,黄朝阳,齐勇,等. CORBA安全对象系统模型框架研究[J].小型微型计算机系统,[ object,2002 ,23( 10) :1200 - 1204.uuid ( 5A04A38F - FE71 - 11D4 - 8FE2 -中国煤化工0RBA封装已有系CAF286AAEFOA),[J].小型徽型计算lual,CNMHG-83.hlepstring( ”Irport Interface" ),(下转第24页)24武汉工业学院学报2003年些文件,就将Authorware安装目录下的文件及整个从而得 到动态生成的效果。xtras文件夹拷人程序目录中。不然, flash动画不能3.6当软件打包发布时 ,应用平台- -定要选定为:工作或工作状态不理想。“应用平台Windows 95/98/NT。这样才可以打包3.4对于 AVI电影文件,可以使用Authorware中的成可执行文件。“打包时包含全部内部库"和“打包电影播放知识对象控制,也可以自行设计--个简易时包含外部媒介”两个选项不选中,这样,可以减小的播放器来控制。程序运行大小。3.5对于工艺生产过程的描述 ,常需用到自动增长3.7如果需 要在软件中实现背景配乐和配音讲解线。方法如图5所示。时,可采用调用外部函数的方案予以解决。可供选中使的简色样式择的有由Macromedia公司提供的A5wmme. u32。1 点压导初如化4结束语循环外克在计算机技术高速发展的今天,很多领域已经.推出了多媒体学习软件,对人们学习相关知识提供了良好的工具。饲料加工工艺由于其专业性强,至图5方法示意图今还没有一个较为完整的学习软件。本软件充分利其中,在第一个计算图标中,定义线的宽度和颜用计算机资源,开发符合专业特点的演示软件填补色,第二个计算图标则指定起始点及终点的座标。了该专业领域科普推广及专业教学的空白,并可为“循环分支”中,包含一个计算图标,用于绘制一段相似软件的开发提供参考。直线并改变下一短线的起点和终点,代码如下所示:参考文献:Line(2,52,y1 ,52,y2)[1]袁海 东. Auhorware5. 1开发实例与技巧[M].Y1: =Yz北京:电子工业出版社,2001.y2: =y; +2[2]田园.3DStudioMAX3.0应用基础教程[M].这样就可以将-条直线分成若干条短线依次绘成,北京:中国石化出版社,1999.DEVELOPMENT OF FEED PROCESSING ANIMATED - SHOWING SYSTEMLI Jian-wen',YE Min2(1. Department of Feed Science , Wuhan Polytechnic University, Wuhan 430023, China;2. Advanced Vocational College ,Hubei University , Wuhan 430023 , China)Abstract: This paper has discussed the methods of developing the Feed Processing CAI in defermining the aims,selecting the developing tools, designing the construct of oftware and program files, debugging the program andpacking.Key words: feed processing; animated - showing;developing(上接第17页)THE COMPARATIVE ANALYSIS OF CORBA TECHNOLOGYAND COM TECHNOLOGYWANG Hong' , FENG Hong - cai2(1. Shenzhen Spark electronic engineering Co. , Ltd,Shenzhen 518040 ,China;2. Department of Computer and Information Engineering, Wuhan Polytechnic University, Wuhan 430023 ,China)Abstract: CORBA technology and COM technology are two kinds of main distributed object technology. This papercompares their structure and operation mechanism, and cites a sit中国煤化工Key words distibuted object technology ;CORBA;COM ;object re:MYHCNMHG

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。