基于TAO的CORBA应用软件设计

2010-09-26 02:00成玉荣王聪丽
无线电工程 2010年11期
关键词:可扩展性服务端应用程序

成玉荣,王聪丽

(1.中国电子科技集团公司第五十四研究所,河北石家庄050081;2.军械工程学院,河北石家庄050003)

0 引言

CORBA是由对象管理组织OMG制定的分布式体系结构,主要是为了解决异构的分布式处理环境中系统互连而提出的一种方案。基于CORBA平台能够实现不同应用程序之间的透明交互,随着网络结构的日益复杂化,CORBA的应用越来越广泛,在面向服务的SOA系统中是很好的服务组件的开发平台。

目前基于CORBA规范的产品很多,较流行的有Orbix2000、TAO 、Visibroker、InforBus和 InterBus等 ,这些产品以其各自的特点应用于不同的对象请求代理(ORB)系统中,其中TAO为开源的ORB平台,其功能的实时性、软件的可配置性与可扩展性使其在许多大规模的通信、计算机公司得以广泛应用。

1 TAO体系结构特点

TAO是由美国华盛顿大学分布式对象计算组织开发的开放源码的CORBA产品,其实现基于可适应通信环境(ACE)。ACE是一种免费开放源码的面向对象框架结构,该结构实现通信软件的核心并发和分布模式。TAO系统中含有网络接口、OS、通信协议以及遵循CORBA的中间件组件和服务等,其系统结构如图1所示。

图1 TAO的系统结构

其系统结构特点如下:

①TAO实现了CORBA 2.6规范中的说明,具有规范性和通用性,能够与其他同标准的ORB产品进行互通互联;

②TAO基于ACE实现的ORB具有更加灵活、高效、事件驱动和并发的特点;

③TAO基于ACE实现,具有一些增强特性,可用于确保高性能及实时应用的高效、可预测和可伸缩的QoS行为;

④ACE提供开源的C++组件包,使TAO具有更强的可扩展性和灵活性;

⑤TAO是高性能实时ORB终端系统,能够很好地适用于异构的分布式应用环境。

2 基于TAO的应用软件设计

通过分析TAO的结构特点,TAO的实时性与灵活性适合开发分布式、可扩展的应用软件。TAO的安装可根据工程需求进行配置,选择所需要的组件进行编译配置,降低资源占用,提高软件运行效率。

2.1 软件环境设置

TAO在VC5.0、VC6.0和 visual studio2008中均可以编译,TAO可以被编译成DLL版(动态链接)和LIB版(静态链接)2种版本,根据应用需求通过工程参数配置进行控制。

基于TAO开发应用程序时,需要在应用程序的工程配置选项中设置所用的TAO的库文件、头文件以及执行文件的路径。

2.2 应用程序设计流程

应用程序设计是基于已编译好的TAO环境进行工程开发,具体流程如图2所示。

图2 基于TAO的应用程序开发流程

图2中主要步骤包括:设计和编译接口定义语言(IDL)接口、设计和编译客户端应用程序、设计和编译服务器端应用程序。

2.2.1 IDL接口设计与编译

CORBA应用程序开发,首先要用IDL定义服务对象的公共接口,IDL是一种描述性语言,可以映射成各种编程语言,TAO支持IDL到C++语言的映射,由TAO的IDL编译器完成。编译后生成客户端存根文件和服务端框架文件,为客户端和服务端的软件开发提供基本软件框架。

2.2.2 客户端软件设计

客户端应用软件设计是在IDL编译器生成的客户方框架代码的基础上,根据应用需要设计ORB接口调用处理流程,实现客户端对服务端的方法调用的应用。客户端框架代码相当于服务对象在客户端的代理,是能够将本地请求转换为网络请求的ORB专用对象接口的框架代码。其调用请求通过ORB完成,可以由ORB定位所调用的服务对象,因此,客户端应用程序无需知道服务端应用程序用何种语言实现,运行于何种操作系统平台上。

客户端与服务器端的请求响应方式分为同步方式和异步方式,客户端根据软件的实时性需求可采用合适的请求响应方式,另外客户端还可通过事件或通知的方式接收服务器端主动上报的信息。

下面以同步调用方式介绍客户端应用程序的开发流程,详细流程如图3所示。

图3 客户端软件开发流程

2.2.3 服务端软件设计

服务端应用软件设计就是在服务端框架代码的基础上,根据应用需求,采用合适的软件架构,设计服务端软件运行流程,实现服务对象接口类及其方法的过程。服务端框架代码是IDL编译器生成的一系列代码文件,能够帮助对象适配器将一个请求传递到指定对象实现。服务方程序是一个拥有1个或多个CORBA对象的应用程序,通过对象实现向客户方提供方法调用结果。

服务端作为客户端的方法实现集,其响应客户端调用的方式可分为同步和异步2种方式,另外还可以主动向客户端发送事件或通知与客户端进行信息传输。

服务端的应用软件包含IDL生成的框架程序、对象实现类程序和服务方主程序。

首先应创建服务对象实现类,类定义文件中应包含IDL编译生成的服务器框架头文件,实现文件要实现对象方法的处理。

服务方主程序主要包括ORB的初始化、对象实例的创建和生成对象引用等处理。服务端软件的总体设计流程如图4所示。

图4 服务器端软件开发流程

3 工程应用及效果

3.1 应用结构与流程

基于CORBA的综合网络管理系统采用TAO为ORB平台进行开发,主要完成在网络层之上对各种被管设备或被管子系统对象的管理。各管理服务和监控台间通过基于TAO的ORB总线进行信息交互,提高管理服务的可扩展性;另外该系统采用代理的方式屏蔽被管对象与综合网管间接口的差异性,各代理与综合网管服务间为CORBA接口,通过ORB总线进行信息交互,其系统结构如图5所示。

图5 基于TAO的综合网管软件结构

基于TAO的综合网管系统所实现的功能主要包括:

①查询各被管对象的配置参数,进行综合、显示和存储等处理;

②查询各被管对象的故障信息,进行综合、统计和分析等处理;

③查询各被管对象的性能信息,进行综合、分析、统计和存储等处理;

④网管系统用户创建及删除、用户组创建及删除和用户日志等维护管理;

⑤用户权限和用户认证等系统安全操作管理。

基于TAO提供的ORB平台,综合网络管理系统采用模块化结构,各管理服务以组件的方式挂接在ORB总线上,并根据应用需要配置TAO的C++库,提高了系统的可扩展性和软件重用性;代理主要完成各被管对象的接口归一化,并与综合服务器交互管理信息,所用到的ORB服务很少,所以采用TAO的最简配置完成CORBA接口的信息交互,节省资源占用,提高系统效率。

3.2 应用效果

通过工程应用实践,验证了基于TAO进行CORBA应用软件开发具有如下优点:

①基于规范性的接口开发CORBA应用软件能够提高与其他CORBA产品应用软件的互操作性,从而提高软件的通用性和规范性;

②基于TAO开发的应用程序具有与应用平台、物理地址和开发语言的无关性,提高了软件的可移植性以及应用软件间互操作的透明性;

③TAO是开源的CORBA产品,提供了对C++的联编,方便了C++应用程序的开发,提高了软件的可配置性和可扩展性,降低了软件开发成本;

④基于TAO开发的应用软件模块化强,提高了软件的灵活性和可重用性。

4 结束语

CORBA是一个规范,提供了一个允许在分布式和异构型环境中应用程序之间进行互操作的框架。TAO实现了CORBA规范,为应用程序提供了透明的ORB操作平台。基于TAO开发的应用对象可以与其他CORBA规范的实现对象进行互操作,屏蔽了异构环境下操作系统、开发语言和运行环境的种种差异性,另外TAO具有较强的可扩展性,提高了应用系统的灵活性、适应性和可重用性,提高了开发效率,降低了开发成本。

[1]ITU-T Q.816 CORBA-based TMN services[S],2001.

[2]MICHI H,STEVE V.基于C++CORBA高级编程[M].徐金梧,徐 科,吕志民,译.北京:清华大学出版社,2000.

猜你喜欢
可扩展性服务端应用程序
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
恩智浦推出全新i.MX 8X 处理器,为工业应用带来更高的安全性、可靠性和可扩展性
电力监控软件的可扩展性设计
基于微软技术的高可扩展性中小企业系统解决方案研究
构建高可扩展性的物流装备管理系统
摸清黑客套路防范木马侵入
三星电子将开设应用程序下载商店