corba封装系统实现系统集成.htm

来自「软件工程ppt课件,想学好软件工程」· HTM 代码 · 共 134 行 · 第 1/2 页

HTM
134
字号
      根据以上分析,可以得出如图1所示的基于CORBA技术的企业集成体系结构模型。作为底层的异构网络集成环境,主要用于支持企业内、企业间多种不同通信协议和解决异构网络环境下的高性能通信。数据库集成管理环境支持异构多库的集成与管理,实现关系型数据库、网状数据库、面向对象数据库等异构数据库的数据模型、模式、数据结构和格式的转换,支持同类数据库的不同实现系统之间的集成。基于CORBA的中间件服务系统则在实现开放分布环境中信息集成的基础上,为企业不同的应用系统提供应用互操作服务。它由CORBA实现系统提供的通用对象服务、公共设施及结合应用需求开发的一系列功能代理组成。功能代理是通过对应用系统功能(如定单统计、库存管理、成本统计等)的封装及其组合而形成的面向对象的功能实体,它的颗粒度可以根据集成的实际要求来确定(如还可将库存管理细分成入库管理、出库控制、物料码转换等)。由于功能代理基于CORBA技术对外提供了一致的功能操作接口,给应用系统之间的互操作以及新系统的引入带来了方便。</font></p>
    <p ALIGN="center"><img src="image1/t6-1.gif" width="306" height="277"
    alt="t6-1.gif (5617 bytes)"></p>
    <p ALIGN="center"><font face="宋体" size="3">图1 基于CORBA软构件技术的企业集成体系结构模型</font></p>
    <p ALIGN="left"><font face="宋体" size="3">  随着网络技术的迅猛发展以及ODBC、IDAPI等数据库中间件的推出,可以说基本上解决了异构数据库与网络系统的集成问题,而如何应用CORBA技术的优势提供支持企业不同应用系统之间“单点集成”的中间件服务,则局限于人们对该技术的了解而未引起普遍的关注。</font></p>
    <p ALIGN="left"><strong><font face="宋体" size="4">3 应用系统基于CORBA的封装集成及功能代理的实现方法</font></strong></p>
    <p ALIGN="left"><font face="宋体" size="3">  由于企业应用的系统种类较多,并且大多没有遵循CORBA规范开发,要使它们能够通过基于CORBA中间件服务系统进行互操作,首先应对牵涉企业经营管理和产品开发过程的应用系统进行面向对象建模;再遵循CORBA规范对各应用系统进行封装,使中间件服务系统可以获知系统所能提供的操作,可以针对企业应用需求将封装系统提供的服务进行相应的组织、扩充,形成一系列功能代理以方便应用系统之间的集成和扩充。<br>
      企业应用系统内部产生的数据以及对外表现形式往往千差万别。如果对整个企业的所有数据进行统一的建模,不仅难度大,而且随着企业应用系统的变化,原来建立的模型也要进行很大地修改。而基于CORBA技术,并不需要对所有的企业数据进行建模,而只需对各应用之间共享或交换的数据进行对象建模,主要关心的是系统对外的接口和数据的对外表现形式,而不是应用系统内部数据的组织和表示。因此,应用系统对象建模的着重点并不在于某一系统的描述,而在于各应用系统的企业整个经营、开发、生产应用环境下与其它应用系统之间可能发生的交互。在进行需求分析时,按照企业各应用系统对某一应用系统要求提供的服务进行分析,并组织建立应用系统对象模型。<br>
      在明确系统所需要提供的服务之后,必须对企业的已有应用系统进行封装,使外部系统能够根据对象建模中所列的操作获得应用系统提供的服务。已有系统的封装大致分为内封装和外封装两个层次,其封装结构如图2所示。</font></p>
    <p ALIGN="center"><img src="image1/t7-1.gif" width="292" height="205"
    alt="t7-1.gif (4214 bytes)"></p>
    <p ALIGN="center"><font face="宋体" size="3">图2 已有系统封装结构</font></p>
    <p ALIGN="left"><font face="宋体" size="3">  外封装靠近CORBA实现系统平台,主要负责将对象操作请求转换成函数调用,在不同操作系统之间发生通讯时,还必须进行字节排序和数据类型表示的转换以保证平台无关性。从当前的CORBA实现系统提供的服务来看,这一部分功能可以由CORBA实现系统提供的通用对象服务以及描述应用系统的对象模型的IDL经IDL编译器生成。对于应用系统实现语言与IDL编译生成语言不一致的情况,外封装还必须提供不同语言对相同数据类型表示的翻译。如CORBA实现系统提供的IDL编译生成语言一般是C++或JAVA,而应用系统却可能是由COBOL、FORTRAN等语言开发。应用系统的外封装通常是具有很强的可移植性的,这是因为对于类似的应用系统,按照前面应用系统对象建模的角度,它们对外的表现和可提供的服务应该是类似的,不同的只是它们内部的实现方式,而内部实现方式却并非我们所关心的内容。<br>
      内封装紧靠具体的应用系统,负责数据的直接存取和函数的调用。由于内封装与应用系统的密切联系,这一部分对不同的应用系统其可重用性是比较小的。内封装的实现方式主要有应用编程接口(API)存取方式、数据库存取方式和操作仿真(Screen 
    Scraper)方式3种。<br>
     <b><sup>.</sup></b>由于API是应用软件提供给外部用户实现内部功能调用的有效工具,而且从API应用接口到对象模型中的操作方法之间的转化和映射也比较直接,因此应用API存取方式是比较理想的方式;<br>
     <b><sup>.</sup></b>在受到提供软件本身的限制,不能获得足够丰富API的情况下,采用数据库存取方式直接对相关数据进行存取也是一种有效的途径,但这种方法必须建立在对应用系统内部数据结构分析了解的基础上,才能保证操作的安全可靠性;<br>
     <b><sup>.</sup></b>当需要封装的应用系统是一个“黑箱”或应用系统的用户界面不愿作调整时,就只有采用操作仿真方式,即通过截取、分析应用系统用户操作界面接收和传出的数据,从而获取对应用数据的存取规律。,这种方式往往依赖于专门的分析工具,对于较复杂的应用系统,难度也比较大,因此一般也较少采用。<br>
      在已有系统封装的基础上,按照企业应用需求进行组织或适当地扩展形成了一系列功能代理,因此可以说功能代理是应用对象模型的具体表现,而封装的应用系统则是对象模型的内部实现。</font></p>
    <p ALIGN="left"><strong><font face="宋体" size="4">4 应用实例</font></strong></p>
    <p ALIGN="left"><font face="宋体" size="3">  以下从企业应用集成中具有典型性的MRP 
    II/ERP系统与CAD/CAPP系统之间集成问题出发,采用基于CORBA的封装集成及功能代理开发实例来说明上面提到的方法。<br>
      MRP Ⅱ/ERP系统在企业中辅助资源的管理和经营管理决策,而CAD/CAPP系统则辅助设计人员进行产品的设计和工艺的制定。设计人员在进行产品设计和工艺制定时如果能及时获得企业资源的应用状况,无疑会对设计的综合优化带来好处,而设计部门产生的产品结构信息、加工工艺信息也正是管理、决策系统需要的基础信息。根据这样的需求分析,我们建立了对象模型,并做成产品结构代理、工艺规划代理、资源代理3个代理处理这两大应用领域之间的信息共享和交换。<br>
      产品结构代理的IDL简化描述如下:<br>
      interface ProductStructureAgent{ <br>
        boolean transferBOM(in sequence&lt;string&gt; 
    parentPart,insequence&lt;string&gt; childPart, in sequence&lt;short&gt; childNum);};<br>
      该描述略去了一些信息转换异常处理,其中的3个参数分别代表父项代码、子项代码、子项数量。<br>
      CAD系统经内封装将产品结构信息表达为约定数据形式,由产品结构代理调用MRP 
    II/ERP系统内封装以MRP II/ERP内部表示形式写入相应的库中。对于工艺规划代理,也具有相仿的形式,即CAPP系统经过内封装将工艺信息表达为约定的数据形式,由工艺规划代理调用MRP 
    II/ERP系统内封装以MRP II/ERP内部表示形式写入相应的库中。<br>
      资源代理主要将MRP II/ERP系统封装的资源管理服务结合其它领域应用的需要组织起来。虽然从CAD/CAPP与MRP 
    II/ERP 集成的角度主要是资源应用状况的浏览查询服务,但考虑到MRPII/ERP系统随着基于过程的产品开发管理方法的引入,我们还将资源的动态申请、释放服务包含在资源代理中。图3所示的是参照统一建模语言(Unified 
    Modeling Language-UML)表示方法,略去对象属性与操作,而着重于结构的企业资源对象模型图;下面是企业资源模型中的生产工具资源的IDL简化描述,其中的3个操作分别处理生产工具的查询、申请和释放。生产工具资源的IDL简化描述如下:</font></p>
    <p ALIGN="center"><img src="image1/t8-1.gif" width="365" height="262"
    alt="t8-1.gif (3898 bytes)"></p>
    <p ALIGN="center"><font face="宋体" size="3">图3 企业资源对象模型图</font></p>
    <p ALIGN="left"><font face="宋体" size="3">  typedef 
    sequence&lt;string&lt;stringSeq;typedef sequence&lt;stringSeq&gt;string2Seq;interface 
    Production Tool:EnterpriseResource{ attribute double Cost;//成本 attribute Date 
    inport_date;//引进日期 attribute double now_value;//当前价值 unsigned short 
    queryPTool_baseinfo(in stringSeq items,in stringSeq conditions,out string2Seq results); <br>
      //以上3个参数分别表示查询项、查询条件、查询结果 unsigned short 
    requestPTool(in string toolID,in string processID,in unsigned long roleID,in Date 
    borrow_date,in Date prereturn_date);<br>
       //以上5个参数分别表示工具号、申请过程号、申请人员角色号、借用日期、预计归还日期 
    unsigend short setReleaseDate(in string toolID,in Date releaseDate,in string 
    szProcessID,in unsigned long roleID); <br>
      //以上4个参数分别表示工具号、实际归还日期、申请过程号、申请人员角色号<br>
      在确定了企业应用对象模型及功能代理的主要内容之后,就是针对具体的应用系统实现其封装,从中抽取需要的服务,对于个别应用系统不能提供的服务,则通过外围扩展实现。在该实例中,我们选取Pro/E系统、利玛MRP 
    II系统作为已有应用系统,利用这些应用系统提供的API及其与外系统可能发生交互的数据库进行分析和封装,以Orbix作为CORBA应用平台,实现了CAD/CAPP系统与MRP 
    II/ERP系统之间的产品数据结构、工艺路线和资源应用状况信息的交换,对于MRP 
    II/ERP系统没有提供的基于产品开发过程的动态资源管理,则在已有系统的外部以基于CORBA的应用服务方式直接提供给其它应用客户。</font></p>
    <p ALIGN="left"><strong><font face="宋体" size="4">5 结束语</font></strong></p>
    <p ALIGN="left"><font face="宋体" size="3">  减少企业异构分布环境下各应用系统之间集成的难度,增加应用系统的可伸展性、可重构性是企业方便、快速地根据企业业务过程模型实现信息技术重组的关键。本文提出的采用CORBA技术建立企业应用功能代理的方法,为不同企业的已有应用系统进行快速封装集成提供了基于企业应用对象建模基础上的“单点集成”方案。从我们当前结合863/CIMS攻关项目“面向CIMS并行工程集成框架关键技术”的开发及实施应用情况来看,对企业异构分布环境下的已有系统的重构和集成是有效的,也是可行的。</font></p>
    <p ALIGN="left"><font face="宋体" size="3">基金项目:<span class="jj">国家863/CIMS主题资助项目(863-51-9704-002),国家自然科学基金资助项目(59789502)。</span><br>
    作者简介:<span class="zj">李小燕,上海交通大学讲师,硕士,主要从事计算机仿真和系统集成方面的研究工作。</span><br>
    作者单位:<span class="zz">李小燕(上海交通大学,200030)<br>
         刘敬军(上海交通大学,200030)<br>
         张琴舜(上海交通大学,200030)</span></font></p>
    <p ALIGN="left"><strong><font face="宋体" size="3">参考文献:</font></strong></p>
    <p ALIGN="left"><span class="wx"><font face="宋体" size="3">[1] 蒋新松,张申生.敏捷竞争的挑战与思考.计算机集成制造系统,1996,2(1):3-9.<br>
    [2] James Rumbaugh,Michael Blaha,William Premerlani,Frederick Eddy,William 
    Lorensen.Object-Oriented Modeling and Design.Prentice Hall,1991.<br>
    [3] Steve Vinoski.CORBA:Integrating Diverse Applications within Distributed 
    Heterogeneous Environments.IEEE Communication Magzine,1997,14(2):6-55.<br>
    [

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?