下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分布式CORBA通讯技术在冶金自动化中的应用 关键词:CORBA;客户机/服务器;分布式;冶金自动化 1、什么是CORBA CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG(对象管理组织,Object Management Group)组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案,其核心是一套标准的语言、接口和协议,
2、以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。 2、CORBA特点 CORBA定义了一种面向对象的软件构件构造方法,使不同的应用可以共享由此构造出来的软件构件;每个对象都将其内部操作细节封装起来,同时又向外界提供了精确定义的接口,从而降低了应用系统的复杂性,也降低了软件开发费用;CORBA的平台无关性实现了对象的跨平台引用,开发人员可以在更大的范围内选择最实用的对象加入到自己的应用系统之中;CORBA的语言无关性使开发人员可以在更大的范围内相互利用别人的
3、编程技能和成果, 是实现软件复用的实用化工具; 利用CORBA系统进行分布对象应用的开发具有下面三个特点: 开发代价小、效率高。系统开发者只需要编写描述服务对象接口的IDL语言文件并安装描述文件,实现服务对象的功能即完成了全部的任务。其它的相关代码或者是由IDL编译器自动创建,或者是由ORB 类库提供,应用程序员并不需要编写例如网络通信、数据编码/解码、名址映射和安全管理的程序代码,从而可以把工作重点放到服务对象实现的过程中去。 通过CORBA系统的支持,一个服务对象可以透明地被分布在本地和网络上的客户所调用,扩大了服务对象的使用范围,为分布的客户所共享。 CORBA系统作为“软件总线”,可以
4、为服务对象提供“ 即插即用”的功能,而且当对象实现改进或升级时,只要接口保持不变,客户代码无需作任何改动。 3、CORBA原理 CORBA体系结构的主要目的是定义一个描述客户机如何能向远程的对象实现发送请求的框架,并潜在地从对象处得到回应。对象接口用与编程语言无关的接口定义语言描述。基本上有两种不同的方式来让客户机和对象实现发送和接收请求:静态方法和动态方法。静态方法要求所有的IDL接口在编译时已知,这样IDL编译器就能生成桩和框架代码,这些都必须链接到实现。动态方法使用户在编译时不用了解不同的IDL接口就能实现用程序来处理任何类型的请求。处理请求的动态方式要求在客户端使用动态激发接口( Dy
5、namic Invocation Interface,DII)以及在服务器端使用动态框架接口(Dynamic Skeleton Interface,DSI)。DII和DSI通常用来构建如桥接器等一般的系统级组件。 对于正常的应用程序,静态桩和框架的使用更加普遍。静态方法的好处是使用户能很好 地使用CORBA对象,就好像它们是编程语言中的普通元素一样。在客户端,这通过使用代理对象来完成。代理是远程目标对象的本地代表。代理包含足够的信息来向远程目标对象发送请求,封装网络地址、端口号等细节。代理对象通过使用客户机编程语言的标准类型,提供了以类型安全的方式来访问目标对象的方法。如果客户机想使用实现了S
6、tock IDL接口的对象,桩代码就会向它提供等价的用特定编程语言编写的Stock接口,例如C 的Stock类。如果客户机想向远程Stock对象实现发送消息,它只需简单地激发本地代理的一个方法。桩代码,即生成的代理实现,负责打包(marshal)请求的参数,这样客户机的ORB运行时模块就能向目标服务器发送消息。服务器的ORB运行时模块读取从网络传来的消息,并把消息传给生成的框架代码,使得框架代码解包请求的参数,这样它就能把这些参数传递到目标对象的实现。生成的框架把请求作为服务器端的正常方法调用来传递,使得客户机和服务器都像对待普通的编程语言对象一样来对待CORBA对象。请求的回答能以同样的方式
7、发送回客户机。因为静态接口比动态接口使用得更普遍,这里着重讲述静态接口。图2-1总结了使用静态接口的CORBA远程激发的原理。请求的CORBA模型假定每个请求都有一个目标、一个操作和一系列参数。目标标识目标对象,操作描述所激发操作的名称,而参数则是需要传递的数据。一个请求必须提供一种激发功能。激发功能可以有不同的语义,例如阻塞和非阻塞的调用,或是单向的语义。 3.1基于C 的CORBA通讯架构 如图2为基于C 的CORBA通讯示意图,其中最底层为CORBA库支持,中间为C 代码,最顶层为IDL接口文件。使用IDL编译工具生成IDLC(客户端)代码和IDLS(服务端)代码。再使用编译工具将生成的
8、代码分别与服务器、客户端程序一同编译成CORBA应用程序。 4、CORBA通讯应用举例 某钢厂过程控制系统由核心程序和代理程序组成;其中代理程序负责调用核心程序或被其它代理程序调用;核心程序负责业务逻辑模型处理; CORBA通信应用创建步骤如下: 4.1、首先定义接口的IDL文件。 假设代理A的 IDL接口如下: interface A_IDL oneway void OnXXX 1(in OctetSequence seq); oneway void OnXXX 2(in OctetSequence
9、 seq); oneway void OnXXX 3(in OctetSequence seq); oneway void OnXXX 4(in OctetSequence seq); oneway void OnXXX 5(in OctetSequence seq); ; 表示A中OnXXX1, OnXXX2, OnXXX3, OnXXX4, OnXXX5个接口 oneway异步传输,顾名思义,oneway就是"单向",即客户机发出它们的激发,然后继续处理,而用不着在发出一请求后阻塞,直到结果返回,当服务器完成对该请求的处理后,它可以通过向客户机发回一相应的单向激发把结果
10、返回,也可以不返回结果。 4.2、编译IDL文件。 4.3、编写服务器端程序。 /file:A.cpp #include"A.hpp"/always include own header first void A:f() /do something 4.4、编写客户端程序。 #include “TelegramPtr.hpp” #include “ExampleIDLC.h” #include “MyStruct.hpp” #include "Dbg.hpp" void callServer() Dbg d("callServer")
11、; TelegramPtr telegram; / the “telegram” telegram->x=3;/assign fields through operator-> telegram->y = 4; / get a CORBA object CORBAObjectWrapperserver(“server”,“A1”); / call f on the object TRY_INVOKE_DBG(server->f(telegram), d); / passing telegram as OctetSequence by implicit conversion 调用方式: TRY_INVOKE_DBG_PROC(m_A,OnXXX (seq),d); 其中m_A为A类的对象,或称是服务器,OnXXX为A类的成员函数。 4.5、某厂分布式CORBA通讯结构 如下图为通讯模块关系图,其中,白底黑框为非功能模块、白底粗框为代理模块、黑底为核心模块。所有带箭头直线间通讯为CORBA通讯。 该系统先进可靠,模块划分清晰分明,模块之间耦合较小,且该系统可灵活配置,维护、扩充方便,可以快速运用在治金自动化及其它系统中。对其它同类系统有借鉴作用。 参考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年绿色金融担保借款合同示例3篇
- 二零二五年酒类企业品牌授权销售合同2篇
- 二零二五年科技产品合伙开店合作协议范本
- 二零二五年校园食堂餐具集中采购专项合同3篇
- 2023年-2024年项目部治理人员安全培训考试题附下载答案
- 2023年项目安全培训考试题含下载答案
- 2025年山东济宁道德与法制中考试卷
- 23-24年企业主要负责人安全培训考试题附参考答案【巩固】
- 二零二五年海鲜养殖技术与市场推广合作协议3篇
- 二零二五年度虚拟现实游戏开发与运营合同3篇
- 内分泌系统异常与虚劳病关系
- 智联招聘在线测评题
- DB3418T 008-2019 宣纸润墨性感官评判方法
- 【魔镜洞察】2024药食同源保健品滋补品行业分析报告
- 生猪屠宰兽医卫生检验人员理论考试题及答案
- 2024年驻村第一书记工作总结干货3篇
- 教室装修施工计划
- 诊疗方案自查整改报告(2篇)
- 沪教版四年级上册数学列式计算(附参考答案)
- 医院侵害未成年人案件强制报告制度
- 眼的解剖结构与生理功能课件
评论
0/150
提交评论