分布式CORBA通讯技术在冶金自动化中的应用

来源 :中国学术研究 | 被引量 : 0次 | 上传用户:su18tt
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:CORBA是一种新型的客户机/服务器架构,独立于平台和编程语言,在分布式应用环境下具有明显优势。本文主要讨论了CORBA的概念,特点,应用场景。并举例说明了CORBA在冶金自动化过程中的实际应用。
  关键词:CORBA;客户机/服务器;分布式;冶金自动化
  
  1、什么是CORBA
  CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG(对象管理组织,Object Management Group)组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
  2、CORBA特点
  CORBA定义了一种面向对象的软件构件构造方法,使不同的应用可以共享由此构造出来的软件构件;每个对象都将其内部操作细节封装起来,同时又向外界提供了精确定义的接口,从而降低了应用系统的复杂性,也降低了软件开发费用;CORBA的平台无关性实现了对象的跨平台引用,开发人员可以在更大的范围内选择最实用的对象加入到自己的应用系统之中;CORBA的语言无关性使开发人员可以在更大的范围内相互利用别人的编程技能和成果, 是实现软件复用的实用化工具;
  利用CORBA系统进行分布对象应用的开发具有下面三个特点:
  ①开发代价小、效率高。系统开发者只需要编写描述服务对象接口的IDL语言文件并安装描述文件,实现服务对象的功能即完成了全部的任务。其它的相关代码或者是由IDL编译器自动创建,或者是由ORB 类库提供,应用程序员并不需要编写例如网络通信、数据编码/解码、名址映射和安全管理的程序代码,从而可以把工作重点放到服务对象实现的过程中去。
  ②通过CORBA系统的支持,一个服务对象可以透明地被分布在本地和网络上的客户所调用,扩大了服务对象的使用范围,为分布的客户所共享。
  ③CORBA系统作为“软件总线”,可以为服务对象提供“ 即插即用”的功能,而且当对象实现改进或升级时,只要接口保持不变,客户代码无需作任何改动。
  3、CORBA原理
  CORBA体系结构的主要目的是定义一个描述客户机如何能向远程的对象实现发送请求的框架,并潜在地从对象处得到回应。对象接口用与编程语言无关的接口定义语言描述。基本上有两种不同的方式来让客户机和对象实现发送和接收请求:静态方法和动态方法。静态方法要求所有的IDL接口在编译时已知,这样IDL编译器就能生成桩和框架代码,这些都必须链接到实现。动态方法使用户在编译时不用了解不同的IDL接口就能实现用程序来处理任何类型的请求。处理请求的动态方式要求在客户端使用动态激发接口( Dynamic Invocation Interface,DII)以及在服务器端使用动态框架接口(Dynamic Skeleton Interface,DSI)。DII和DSI通常用来构建如桥接器等一般的系统级组件。
  对于正常的应用程序,静态桩和框架的使用更加普遍。静态方法的好处是使用户能很好
  地使用CORBA对象,就好像它们是编程语言中的普通元素一样。在客户端,这通过使用代理对象来完成。代理是远程目标对象的本地代表。代理包含足够的信息来向远程目标对象发送请求,封装网络地址、端口号等细节。代理对象通过使用客户机编程语言的标准类型,提供了以类型安全的方式来访问目标对象的方法。如果客户机想使用实现了Stock IDL接口的对象,桩代码就会向它提供等价的用特定编程语言编写的Stock接口,例如C++的Stock类。如果客户机想向远程Stock对象实现发送消息,它只需简单地激发本地代理的一个方法。桩代码,即生成的代理实现,负责打包(marshal)请求的参数,这样客户机的ORB运行时模块就能向目标服务器发送消息。服务器的ORB运行时模块读取从网络传来的消息,并把消息传给生成的框架代码,使得框架代码解包请求的参数,这样它就能把这些参数传递到目标对象的实现。生成的框架把请求作为服务器端的正常方法调用来传递,使得客户机和服务器都像对待普通的编程语言对象一样来对待CORBA对象。请求的回答能以同样的方式发送回客户机。因为静态接口比动态接口使用得更普遍,这里着重讲述静态接口。图2-1总结了使用静态接口的CORBA远程激发的原理。请求的CORBA模型假定每个请求都有一个目标、一个操作和一系列参数。目标标识目标对象,操作描述所激发操作的名称,而参数则是需要传递的数据。一个请求必须提供一种激发功能。激发功能可以有不同的语义,例如阻塞和非阻塞的调用,或是单向的语义。
  


  3.1基于C++的CORBA通讯架构
  如图2为基于C++的CORBA通讯示意图,其中最底层为CORBA库支持,中间为C++代码,最顶层为IDL接口文件。使用IDL编译工具生成IDLC(客户端)代码和IDLS(服务端)代码。再使用编译工具将生成的代码分别与服务器、客户端程序一同编译成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 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就是"单向",即客户机发出它们的激发,然后继续处理,而用不着在发出一请求后阻塞,直到结果返回,当服务器完成对该请求的处理后,它可以通过向客户机发回一相应的单向激发把结果返回,也可以不返回结果。
  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");
  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]Michi Henning,Steve Vinoski,Advanced CORBA Programming with C++.Addison Wesley.February 12, 1999.
  [2]Dirk Slama Jason Garbis Perry Russell,CORBA企业解决方案, 2001年1月.
其他文献
工会文化在企业文化建设中具有不可忽视的重要作用。  企业工会在开展群众工作过程中,倡导优秀的企业文化,有利于提高企业员工素质,在企业内部形成一种协调、宽松、和谐、理解的良好环境,为企业开展思想政治工作打下良好的基础。下面就当前形势下,如何充分发挥工会文化在企业文化建设中的作用谈一些自己的见解。     一、工会文化建设是现代企业管理的必然要求    工会文化建设是塑造人的一项重大工程,它必然溶入现
期刊
会计信息失真问题,已成为我国经济生活中亟待克服的顽症,笔者认为,会计职业道德好坏是导致会计信息失真,影响会计工作质量的关键所在。会计信息的过失性失真,正与会计人员职业道德水平高低密切相关,因为责任心、技能、心理素质均包括在职业道德中。会计信息的故意性失真,除了单位负责人的责任及由于“信息不对称”而难以发现业务经办人,提供虚假原始凭证外等情况外,其余就都与会计人员职业道德相关了。因此,笔者认为道德是
期刊
由美国本土导演凯瑟琳.毕格罗执导的影片《拆弹部队》,荣获2010年第82届奥斯卡最佳影片、最佳导演、最佳原创剧本、最佳剪辑、最佳音效剪辑、最佳音响效果等6项大奖,原本在威尼斯电影节上被漠视的《拆弹部队》很意外地成为眼下美国颁奖季的最热门电影。那么,到底是什么样的片子能得到美国制片人协会和影评人协会如此高的评价呢?下面就主要从选材的特别、影像风格、叙事及剪辑手法、运动镜头的使用、音效的处理来揭示其艺
期刊
摘 要:在同层排水系统的三种模式中,我们着重推荐墙体隐蔽式同层排水系统,并在阐述墙体隐蔽式同层排水系统理念的同时,介绍该系统的特点和技术要求。  关鍵词:同层排水系统;墙体隐蔽式同层排水系统;悬挂式大便器;隐蔽式支架;防噪声;HDPE管    一、问题的提出  在计划经济年代,企事业单位的员工住的是单位分配的福利房,这种被称为公房的住宅,其排水横支管一般在楼板下敷设,当排水横支管一旦堵塞需要清通时
期刊
摘 要:岩溶隧道施工中经常遇到充填及非充填溶洞,溶洞的出现对隧道的施工带来非常大的影响。为保证隧道施工的安全,隧道中溶洞的合理处置将会起到非常重要的作用。本文结合实际工程,对岩溶隧道充填及非充填溶洞的处理措施进行探讨,为相似工程的施工提供借鉴。  关键词:充填型溶洞;非充填型溶洞;岩溶隧道     0、引言  岩溶隧道修建过程中由于溶洞的存在而影响施工的进度,同时还会影响的施工的安全,因此在岩溶隧
期刊
摘 要:当前全国各地大型工程项目纷纷动工,如何加强大型工程项目财务管理已成为众多利益攸关方重点关注的问题,本文针对大型工程项目财务管理存在的问题及对策进行了分析和探讨。  关键词:大型工程项目;财务管理;问题;对策    大型工程项目由于工程量巨大,工程浩繁,往往由几家不同单位分专业协作共同施工,外联队伍众多,因此在财务管理上容易出现问题,必须科学解决出现的各种问题,加强大型工程项目财务管理水平,
期刊
摘 要:当前学生违法犯罪现象总体呈上升趋势,并呈现出一些新的特点.研究分析和客观评价学生违法犯罪的成因及其积极寻找预防对策,具有重大的现实意义和深远的历史意义。  关键词:学生;犯罪;成因;防控;对策    近年来,笔者曾针对学生违法犯罪情况,在大中专院校和中小学、人民法院和派出所等单位进行过专题调查。调查表明:目前学生违法犯罪现象总体呈上升趋势,并呈现出低龄化和犯罪手段成年化、职能华的新特点,并
期刊
摘 要:本文介绍了我国钢筋混凝土建筑物鉴定与加固的必要性,并对混凝土结构加固技术的研究现状进行叙述,通过对混凝土结构补强加固的目的和技术难点问题的分析,提出一种新的混凝土与外包钢板复合加固技术方法。  关键词:建筑;钢筋混凝土;结构加固     地震是一种不分国界的全球性自然灾害,它是迄今具有最大危险性的地质灾害,我国现在46%的城市和重大工程设施分布在地震带上,有2/3的大城市处于地震区,历次地
期刊
摘 要:我国财政部2006年颁布新的《企业会计准则》标志着适应我国市场经济发展要求,并与国际惯例趋同的中国会计准则体系已正式建立,是我国会计发展史上一个新的里程碑。本文首先从宏观的角度概述了新会计准则的体系,阐述了公允价值的变化内容,并选择了对上市公司报表业绩影响较大具体准则进行了分析。  关键词:新准则;会计年报;公允价值;资产减值    新的企业会计准则体系自2007年1月1日起在上市公司范围
期刊
笔者在市级供电企业从事内部审计工作十余年,十余年来,几乎每年都要对所代管的一个或几个县供电企业进行审计。2007年,省电力集团公司审计部组织了一次大规模的的对全省县供电企业的全面审计,审计形式是各地市进行交叉审计,作为主审,笔者带领审计组对相邻地市的五个县供电企业进行了审计。此后的两三年里,笔者又多次作为主审对所代管范围内的六个县供电企业进行了不同形式的审计。通过审计总结,笔者发现县供电企业在被代
期刊