ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:80KB ,
资源ID:9071069      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9071069.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(CORBA通讯.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

CORBA通讯.doc

1、CSP轧机二级程序间的CORBA通讯 王博 (安徽省马钢第一钢轧总厂) The CORBA communication among CSP level2 programs Wangbo (The No1 Steel Plant of Maanshan iron in Anhui province) 摘要:本文简要介绍了轧机二级程序的逻辑结构,以及程序之间使用基于CORBA服务的通讯过程。使用基于CORBA对象服务的通讯程序比一般的套接字网络程序性能更可靠,软件重用性较强,开发起来也较简单。 关键词:CORBA,对象服务,司服,通讯 ABSTRACT: The pro

2、grams in the process computer for the finishing mill and the cooling section are based on CORBA. Using CORBA the L2 processes can execute steadily and easy to migrate to other systems. Compared to the traditional Socket programs, CORBA based programs are simple to write. Key Word: CORBA, object-ori

3、ented service, servant, communication 1 概述 由于面向对象的设计模式和框架能够帮助减轻昂贵的分布式软件概念和抽象核心的重新生成,被人们所看好。基于对象服务的CORBA专属中间件已经被越来越多地用于程序的通讯当中。CORBA(Common Object Request Broker Architecture),即公共对象请求代理结构,是由OMG小组编写和维护的开放式中间件,为C/S结构程序的通讯提供中间支持。CORBA提供一种规范的描述接口的语言——IDL,并且通过IDL编译器分别生成客户端和服务器端的抽象类代码,进而派生实现成对象。当客户端向服务器端

4、请求数据时,由POA(Portable Object Adapter)激活对象,实例化对象成为伺服,再将请求分发给伺服。被请求的伺服处理来自客户端的请求,最后将结果发送给客户端。 轧机二级程序利用了CORBA中间件进行数据的传输,这样在开发程序时无须考虑网络传输协议以及报文的结构,而是通过IDL语言描述通讯接口,让CORBA对象服务来完成数据的传输和处理。基于CORBA的二级程序可以方便地在不同的系统之间移植,也可以方便地实现不同的操作系统平台之间的通讯过程。 2 轧机二级的逻辑结构 2.1 与外部的通讯 轧机二级程序分布运行在四台服务器上,包含非控制程序,控制程序和数据库。这些程序的

5、主要功能是从三级接收计划,预计算设定点,接收板坯数据,下发一级请求的终轧区、冷却区设定点,接收一级生产实绩,以及传送生产数据等。三级下发的计划通过数据库接收,即三级的数据库和轧机二级的数据库之间通过数据库链进行通讯。二级的程序从一级请求生产实绩,并保存在数据库中,一级和二级的通讯直接通过网络传输,使用TCP/IP协议。二级程序之间也有通讯,它们之间是通过CORBA中间件传输数据的。逻辑结构如图1所示: 非控程序 控制程序 数据库 人机界面 一级自动化 CORBA 生产实绩 图1 通讯结构 2.2 主要程序介绍 轧机二级程序是既面向服务又充当客户端的基于CORBA的对

6、象服务。也就是说,每个程序都是基于IDL文件的,从IDL代码编译出的基类进行派生,进而实现CORBA对象服务。 程序之间请求数据并发送数据,这样每个程序既是客户端也是服务端。如PDH(primary data handler)主数据处理程序,当有新计划下发后,PAP(plant adapter)程序使用PDH提供的接口通知PDH新的计划下发,而PDH被通知后就对数据库中的新计划数据进行处理。当开始轧制时,它从一级MTR(material tracking)请求物料主数据,保存在数据库中并激发模型控制程序(MOSPC等)计算设定点。二级主要程序如下图所示: IDL interface ST

7、A moscs mosfm 图2 主要程序 …… PDH PAP PDM 3 CORBA通讯 3.1 程序开发环境 轧机二级程序使用Visual C++7.0平台开发,软件环境使用了ACE(The ADAPTIVE Environment Communication)中间件和基于TAO(The ACE ORB)的CORBA服务。代码编写之后使用*.aim文件直接编译成可运行的*.exe文件。 ACE是一个免费的OO工具包,它包含一个丰富的集合,此集合中有可重用的wrappers、类、和可在很多操作系统平台上交互的通用的网络编程的框架。ACE实现了通信软件的基本设计模式

8、ACE 面向在UNIX 和Win32 平台上开发高性能通信服务的开发人员。它简化了面向对象的网络应用程序和服务的开发,这些程序和服务用到了进程间通信,事件分离,直接动态链接和并发机制。ACE 通过在运行时动态链接服务到应用程序和在一个或多个进程或线程中执行这些服务自动完成系统配置和重新配置。ACE从底向上共包含四层,分别是:ACE操作系统适配层,ACE OO Wrappers,ACE框架和ACE网络组件。如下图所示: 分布式服务和组件 框架和类目录 ACE OO Wrappers 操作系统适配层 图3 ACE中的组件 在ACE之上可以构建分布式中间件等专属中间件:如TAO。T

9、AO一般与ACE绑定,提供CORBA分布式服务。二级服务器中利用了ACE+TAO中间件服务,实现了程序内部的数据通讯。 3.2 IDL接口文件 使用基于CORBA通讯的程序必须使用IDL(Interface Definition Language)接口文件来描述程序提供的功能接口,为其他程序提供数据传输的方法。如PDH的接口文件的部分代码如下: #include "glob.idl" interface pdhIDL // primary data handler { oneway void newMaterial(in ME_CODE meCode); // 接收

10、新物料 oneway void newSchedule(); //接收新计划 oneway void getNextMaterial(in sequence seq); // 请求下一块物料 oneway void getMaterial(in sequence seq); // 当前物料请求 .... }; 通过TAO_IDL编译器将IDL文件编译成客户端的stub和服务端的skeleton,对应的文件为:*C.h,*C.cpp,*S.h,*S.cpp。而这些文件分别为客户端程序和服务端程序提供

11、基类,以实现CORBA对象服务。在PrimaryDataHandler.h文件中实现了PDH服务端的类,从pdhIDLS.h文件提供的基类派生,部分代码如下: #include "pdhIDLS.h" class PrimaryDataHandler: public OA(pdhIDL) , public Application { void newMaterial(const ME_CODE& meCode);//对接口方法派生 …… }; //对接口方法的实现, void PrimaryDataHandler::newMaterial(const ME_CODE

12、meCode) { // 写入日志文件 Dbgn d ("PrimaryDataHandler::newMaterial",meCode.extId); d << "Start ***********************************************"; d.infoK(); //报文数据 d << "PAP->PDH activation recognized: \"new material\""; d.infoK(); // 开始执行描述列表 p_PAPNewMaterial->execut

13、e(meCode); d << "End ########"; d.infoK(); } 3.3 实现对象 实现了服务端的对象之后,就可以编写可执行的程序,即main函数。二级程序将main函数封装在一个Application类的构造函数中,在实现文件的最后通过调用宏 APPLICATION_CREATE(PrimaryDataHandler) 来实现公共main函数。这样CORBA的初始化,获得ROOTPOA的引用,以及POAManager的初始化等CORBA程序共同的代码只需要编写一次即可。 接下来,服务器端的程序还要实例化对象成为伺服才能够接收来自客户端的请求。PDH等

14、二级程序是在其构造函数中注册对象的。一般注册对象就是在Name Service服务中注册对象的引用,以后客户端通过引用来调用伺服。而二级CORBA程序的对象引用是用ior文件实现的,所有的ior文件都保存在主域控制器的一个共享文件夹中,向其他计算机上的CORBA程序提供对象指针。PDH注册对象的代码如下: PrimaryDataHandler::PrimaryDataHandler(void) : Application() { …… try { ORBWrapper_registerObject(this, PDH_ORBW_OBJ_PDH

15、); } …… } 代码中ORBWrapper_registerObject 函数是subsys环境提供的API函数,其函数声明在ORBWrapper.hpp头文件中,该头文件定义了CORBA的初始化函数。PDH_ORBW_OBJ_PDH在orbw_pdh.h中定义为: #define PDH_ORBW_OBJ_PDH “pdhIDL” 程序使用命令行启动,命令如下: REM start pdh start/MIN "pdh" E:\na\mas\runbin\pdh -ORBDottedDecimalAddresses 0 -name pdh -no

16、nested_upcall APPLICATION_CREATE(PrimaryDataHandler)宏接收命令行参数,将程序命名为“pdh”。函数ORBWrapper_registerObject的作用就是在共享文件夹中产生该对象的ior文件,它调用了CORBA提供的函数orb->object_to_string(pdhIDL),将pdhIDL对象实例转化为文本格式存储在pdhIDL.ior文件中。 3.4 请求对象 在客户端的程序中请求对象,首先需要包含Stub基类,再获得对象的引用,最后向服务端请求对象。二级程序PAP作为客户端使用了PDH提供的接口,向PDH发送新物料下发的通

17、知。PAP部分代码如下: #include "pdhIDLC.h" //包含stub基类的头文件 static CORBAObjectWrapper p_pdh_server; //定义变量 CORBAObjectWrapper PapRcvToL2::p_pdh_server(PDH_ORBW_SRV_PDH, PDH_ORBW_OBJ_PDH); //在pdhIDL.ior文件中获得对象引用 short PapRcvToL2::sendNewMaterial(ME_CODE meCode) { try { p_p

18、dh_server() -> newMaterial (meCode); //使用接口函数 } …… } CORBAObjectWrapper PapRcvToL2::p_pdh_server(PDH_ORBW_SRV_PDH, PDH_ORBW_OBJ_PDH)是定义在ORBWrapper.hpp中的模板类的构造函数,用来将pdhIDL.ior文件中的文本转化为指针,以获取对象的引用。即封装了下面的代码: CORBA::Object_var obj= orb->string_to_object(ior.c_str()); 于是类指针p_pdh_s

19、erver指向了pdhIDL的伺服。接下来,p_pdh_server就可以调用接口函数完成数据的通讯了,即: p_pdh_server() -> newMaterial (meCode); 这样就完成了一个基于CORBA的通讯程序,即在服务端实现对象,注册对象引用,在客户端使用对象引用请求对象;当服务器端接收到来自客户端的请求后激活对象,分发请求给对象,对象处理请求并发送结果给客户端。代码中没有涉及任何套接字程序代码,比传统的网络通讯程序简单很多。 一个基于CORBA的C/S模式的程序整体结构如下图所示: *IDL.idl interface *IDL { .... }; *IDL

20、C.h class *IDL *IDLC.cpp *IDLS.cpp *IDLS.h class OA(*IDL) *IDLC.obj *IDLS.obj client.cpp client.obj MyApp.cpp *.cpp *.hpp class * *.obj MyApp.obj CORBA.h CORBA.dll client main line object impl. (servant) server main lines client stub server skeleton IDL 用户提供 C++ 编译产生 用

21、户提供 如 TAO, Orbix, ART, VisiBroker 图4 CORBA程序结构图 4 结束语 轧机二级程序间的通讯使用ACE+TAO中间件开发,代码的稳定性和可移植性都比传统的网络通讯程序增强很多。利用ACE面向对象的组件工具包实现了通常的通信相关活动,也方便实现了本地和远程过程调用,事件分离和服务处理调度,二级程序因此较为稳定地运行着,是CSP热轧生产线的重要组成部分,同时给工艺的各个方面提供了有利保障。 参考文献 1. Michi Henning, Steve Vinoski. Advanced CORBA Programming with C++. Pu

22、blisher: Addison Wesley First Edition February 12, 1999 2. Douglas C. Schmidt. ADAPTIVE Communication Environment. Publisher: Department of Computer Science Washington University, 2000 3. Siemens. Application software concept specification. Publisher: Siemens, 2003 4. CORBA教程,李师贤等译,清华大学出版社,1999

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服