基于ICE的分布式自动化快速测试验证平台架构研究
2017-08-24江卓逞曾加刚黄玮
江卓逞+曾加刚+黄玮
摘 要:介绍了ICE中间件技术,提出分布式环境中的自动化快速测试验证平台架构模型,阐述如何对基于ICE的分布式系统进行系统架构设计。架构可以降低软件模块之间的耦合度,解决了测试验证平台的可扩展、可靠性的问题。
关键词:ICE;分布式系统;测试
中图分类号:V249 文献标志码:A 文章编号:2095-2945(2017)22-0020-03
Abstract: ICE middleware technology is introduced, put forward in a distributed environment automation rapid test verification platform architecture model, expounds how to carry on the system architecture of distributed system based on ICE. Architecture reduces the coupling between software modules and addresses the scalability and reliability issues of test verification platforms.
Keywords: ICE;distributed system;test
1 概述
随着航空航天测控软件规模的不断扩大,复杂性的不断增加,异构也越来越多,对分布式和跨平台的要求也越来越高。大型应用软件通常要求在软硬件各不相同的分布式网络上运行,传统的测试验证平台软件的架构方法已经不能满足需要。如何将先进成熟的软件共用技术引入航天的地面测控领域,改进原有的软件体系结构和软件研发模式,提升软件体系结构的适應能力,提高软件开发效率,更好地适应新形势下的任务要求,成为目前急需研究解决的问题,也是需要长期、持续研究的课题[1]。
为开展航空航天测控软件共用技术研究,本文以卫星地面测试为例,提出了基于ICE的分布式自动化快速测试验证平台架构,依托ICE中间件技术实现数据传输、被测设备供电、模拟量采集、电阻量采集、DS采集、通用测试仪器的设置与控制、被测设备工作状态采集与显示等功能。
2 ICE技术简介
网络通信引擎(Internet Communications Engine, ICE)是ZeroC公司开发的一款简单高效、面向对象、开源的中间件,通过它可以快速地开发出高效、强壮、优雅的分布式软件。它提供了用来建立面向对象的客户/服务端应用程序所需要的工具、API以及类库,使得分布式客户/服务端应用程序的建立变得简便。除此之外,ICE应用程序可以部署在多种环境下,客户端和服务端可以使用不同的编程语言来实现;同时它可以运行在不同的操作系统平台以及不同的硬件架构上,有效解决C/S模式兼容性差、开发成本高等问题[2]。
ICE适合所有的异构网络环境,为分布式系统开发提供了完善的解决方案;客户端和服务器端的实现可以用不同的编程语言,如c++、Java、c#、Visual Basic、VC++、Python、PHP和Ruby等;可以运行在如Windows、Linux、Solaris、UNIX、AIX等异构的操作系统和体系结构不同的机器上,使用多种的网络信息交互技术(TCP/UDP,SSL或通过插件功能扩展协议);利用内建的安全机制(内置防火墙)可以很好地保证基于ICE的分布式系统的安全性;ICE中间件处于应用软件与操作系统、网络和数据库之间,为处于应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的分布式应用软件。
ICE体系架构
ICE属于客户端/服务器体系架构,具体体系结构[2]如图1所示,客户端和服务器包括客户ICE核心、服务器ICE核心、代理、骨架及对象适配器等。
ICE核心为远程通信提供了客户端和服务器端的网络通信、线程、字节序等与网络有关的运行时支持,开发人员不再需要关注繁琐的网络编程,只要关注业务逻辑;代理(proxy)和骨架(skeleton)都是由slice的定义生成的,proxy为客户提供了向下调用的接口和数据编码与解码, skeleton提供了服务器端向上调用的接口和数据编码与解码;ICE API负责与ICE核心通用部分的通讯,实现管理ICE的初始化与注销等功能;对象适配器主要把来自客户端的请求对应到编程语言对象的特定方法。
3 系统架构设计
3.1 自动化快速测试验证平台架构设计
自动化快速测试验证平台用于对卫星系统的功能测试、验证及性能评估,是航天卫星研制过程中的重要环节。然而,自动化快速测试验证平台本身作为一个复杂系统,包括以太网、主控计算机、1553B监控计算机、直流可调电源、示波器、多功能开关、由脉冲指令测试卡、可编程直流源卡、可编程电阻卡、DS采集卡、多路AD卡等组成,其组成结构如图2所示。
该测试平台的设计与实现过程受测试结果的类型、测试报告类型、数据传输效率、数据安全性、数据可靠性、测试环境等多种因素影响,再加上传统测试系统中各测试模块与服务模块之间存在紧耦合关系,导致系统的可扩展性非常差、不灵活,不同服务模块的差异化需求也不能满足,现有系统的交互体验差,在实际应用中大规模部署将带来很大的挑战。
基于上述分析,采用ICE的客户/服务端模型架构,将数据传输、被测设备供电、模拟量采集、电阻量采集、DS采集、通用测试仪器的设置与控制、被测设备工作状态采集功能的实现以服务的形式分配到各个分布式的应用组件上,各个组件的实现采用ICE提供的接口标准,使得分布式自动化快速测试验证平台能够方便地实现。
基于ICE中间件的分布式自动化快速测试验证平台框架如图3所示,该平台软件架构主要由以下几个部分构成。
3.1.1 客户端和服务端
由图1可见,客户端、服务端和应用服务由应用代码、ICE库代码和Slice定义组成。Slice对类对象进行描述,并利用ICE提供的工具将其转换为类对象,该对象继承了具有ICE核心通信功能的ICEObject类,以此保证服务端与客户端的交互。由于它们继承了ICE网络通信的特性,因此,客户端可通过测试中间件对服务端的管理与服务端创建连接,一旦连接成功,即可与应用服务端直接通信而不需要任何中间桥梁[3]。
3.1.2 测试中间件
在Slice.ice中定义包括遥测数据解析测试、遥测数据中VCDU分发服务、串行数据输出触发集成服务、LVDS高速数据接口、串行同步接口验证、接收指令接口服务、接收同步遥测帧接口、数据注入接口(上行方向)、网络通讯转发、解析遥测数据中的星上时间服务、遥测模拟数据源、校时服务、1553B-RT块消息服务、模拟信号仿真接口、离散指令接收集成服务、LPDC解码服务、文件存储服务、1553B总线接口、GPS接口、注入数据接收接口、192路模拟量输出接口、触点信号输出接口等接口服务,定义了与接口相关的参数、功能函数、数据报告等,使用与应用代码相同语言的Slice编译器,产生客户端的代理及服务端的骨架的可执行程序,客户端应用程序只要调用服务端的服务,就可以实现某个功能或获取某个需要的数据报告。
3.1.3 ICEGrid服务组件
为了方便客户端应用程序获取提供服务的服务器的地址信息,在本架构中利用ICEGrid管理服务器IP地址和对象适配器的映射关系,通过客户端的代理和ICE通讯,响应客户端查询服务请求,只要服务器的IP地址不改变,客户端的运行就不会受到影响。
IceGrid提供了对象查找的服务,客户端只需要关心感兴趣的对象代理。除此以外,如果提供服务的服务器没有运行,在客户端调用某个服务时,IceGrid会先按照请求启动相应的服务器,完成客户端的调用。通过ICEGrid服务功能,开发人员或系统管理人员就可以灵活地配置和管理涉及多个服务器的大型复杂应用。
3.1.4 ICEStorm服务组件
为了解除传统的消息发布者和订阅者之间的耦合关系,在本架构中引入ICEStorm服务组件充当图3中接口服务(发布者)和客户端应用(订阅者)的中介,负责接收发布者发布的数据报告,同时负责把数据报告递送给订阅者,以发布/订阅的数据交换机制实现远端的数据和近端客户端应用程序的交互。此外,IceStorm服务组件还可以作为联盟服务运行,在不同的机器上运行服务的多个实例,达到多CPU的负载均衡。IceStorm服务还允许指定服务标准质量,可以满足对精度要求较高的分布式应用。
3.2 该架构的优势
3.2.1 语言选择多样化
ICE为应用开发提供了C++,C #,java,JavaScript,Python,C等多种语言支持,只需要客户和服务器所用的Slice定义建立两者之间的接口合约,在该架构中,开发人员可以使用Java、c#或者PHP的任何一种作为客户端的编程语言,同时以c++作为服务器的编程语言,实现客户端与服务器端的通讯。
3.2.2 与操作系统无关
在分布式应用中,为规避操作系统差异带来的各种问题,如底层网络通讯,ICE提供了异构操作系统环境下的统一接口,不仅简化了开发工作量,使得开发人员只要关心应用系统处理逻辑的实现,而且也利于在不同操作系统环境下迁移ICE通信接口模块。
3.2.3 支持同步和异步的消息传递
在本应用中,利用操作调用(AMI)和分派(AMD)实现了数据报告的同步和异步的传递,结合IceStorm 服务组件提供的发布-订阅消息传递机制,开发人员可以根据应用的需要来选择相应的通信模型,满足分布式应用对时间等性能的要求。
应用表明,利用此架构来开发分布式复杂应用系统,利用ICE作为底层通讯架构,使得开发人员专注于实现业务应用逻辑,无需考虑复杂性的通信过程,这样大大缩短开发周期、提高开发效率。
4 结束语
通过分析ICE的组成及其体系架构的特点,提出一种基于ICE分布式中间件的自动化快速测试验证平台架构。该系统依托ICE 中间件技术,克服了分布式应用开发所面临的平台异构、负载均衡、时效等问题,系统稳定性、可扩展性和高效性等方面均达到预期要求,实现系统的灵活配置和数据的高效发布。基于该架构的自动化快速测试验证平台目前已部署到企业,实现了对卫星综合电子产品的全性能指标的自动化测试。
参考文献:
[1]郭力兵.基于COM组件的航天测控软件设计[J].飞行器测控学报,2009,10(28):60-62.
[2]Henning M,&M.Spruiell.Distributed Programming with lce[EB/OL].http://www.zeroc.com/download/Ice/3.6/Ice-3.6.3.pdf,2016:18-28.
[3]郭力兵,饒爱水,奚宏明,等.基于ICE的分布式火箭遥测数据处理架构设计[J].遥测遥控,2011,32(4):15-18.