卫星地面测试系统Android平台客户端研究

2012-09-29 11:26李博宁冯文全
网络安全与数据管理 2012年24期
关键词:中间件服务器端控件

李博宁,冯文全

(北京航空航天大学 电子信息工程学院,北京100191)

卫星地面测试是卫星研制过程中的重要环节,对其系统功能验证及性能评估具有重要作用。传统的卫星地面测试设备大多采用工控机平台,其软件部分运行于Windows操作系统,通过PCI总线与硬件板卡进行通信,完成各种测试功能并对系统运行状况进行监控[1]。随着嵌入式技术的不断成熟与发展,采用ARM-Linux平台的嵌入式系统取代原有工控机平台,可实现测试设备的小型化和低功耗[2]。借助于ICE中间件的跨平台、跨语言、屏蔽底层通信等特性,开发出一套适用于卫星测试业务的软件框架,采用客户端/服务器构架,可组成一个分布式测试系统[3]。本文提出了一种Android平台客户端解决方案,运行于设备内部独立的嵌入式监控板卡之上,通过与设备ARM-Linux平台服务器端业务板卡的通信,实现了对测试设备的监控功能。

1 基于ICE中间件的卫星地面测试系统

基于ICE中间件的卫星地面测试系统典型结构如图1所示。服务器端按照面向服务(SOA)的思想设计,每个服务内部实现相对独立的业务逻辑,并对外提供形式统一的功能调用接口,包括通信的机制和内容。客户端可通过定义的标准方法获取某个功能服务器所能提供的所有服务的列表,以及特定服务的使用方法。

上述系统中,前端测试单元通过多样的测试接口对卫星遥测、遥控及姿势等各种信号及数据进行测试和采集,并对测试数据分析整理形成各种主题的数据报告,供客户端监视。客户端可对系统各工作参数进行设置,并发送遥控指令引导星上机构执行相应动作。该系统依托ICE中间件技术,解耦合测试系统中各服务单元间的关联,从而实现数据的高效发布;同时利用ICEGrid实现目标服务器的动态定位、冗余及负载均衡。

系统服务器端采用标准C++语言开发,利用语言本身及ICE中间件的跨平台特性,可运行于X86、ARM等不同平台,通过底层驱动程序实现与硬件模块的通信,完成特定业务功能。客户端部分通过对服务器端各服务对象的访问,实现对服务器端的监控功能。借助于ICE跨语言的特性,可采用不同编程语言开发客户端接口,并进一步封装实现与服务器端通信,进而采用不同的界面开发技术实现不同的用户体验。例如,若采用PC机作为监控终端,则可选择C++、python等语言开发客户端接口,采用VC++、wxpython等工具实现人机交互界面,组成分布式监控终端。

对于嵌入式测试设备,也希望提供类似于工控机设备的液晶屏显示面板,对系统的运行状况进行实时监控。液晶屏程序最直观的实现方式仍然是作为系统的客户端部分运行,相对于上述的分布式监控终端,液晶屏程序由于与服务器端运行在同一台测试设备,因此可看做本地客户端。

具体实现过程中,采用Android应用程序进行客户端界面开发,调用Java版客户端接口完成与服务器端的通信[4]。由于Android平台对处理器要求较高,故采用独立的嵌入式板作为客户端运行平台,选用三星S5PV210处理器,液晶屏采用7寸多点触控电容屏。服务器端运行于ARM-Linux平台,处理器为三星 S3C6410,两块嵌入式板在机箱内部用网线连接。相比于传统的工控机平台,此设计不仅从逻辑上将监控部分与业务处理逻辑分离,更从硬件角度将二者分开,进一步降低了不同功能模块间的耦合。设备对外提供标准测试接口、网口以及触摸屏,实现了更加优质的人机交互和用户体验。

2 关键技术应用

2.1 Java语言客户端接口

Slice(Specification Language for ICE)是一种使对象接口与其实现相分离的基础性抽象机制[5]。它定义了ICE对象接口、操作,以及客户端与服务器间交换的数据类型。编译生成的Java版客户端接口还需要进一步完成其功能的实现,主要包括客户端对服务器端对象代理的访问、对服务功能的调用以及注册到中心的数据报告等。对客户端而言,代理即ICE对象的本地代表。代理所封装的信息包括:(1)寻址信息:用于让客户端运行时联系正确的服务器。(2)对象标识:用于确定服务器中的哪一个对象是请求的目标可选标识符[6]。

服务器端与客户端的连接关系如图2所示,客户端接口通过服务对象管理器实现对远程服务对象的访问。经过封装的接口部分,对外提供客户端连接管理、服务对象列表、各服务的功能调用以及各服务数据报告的处理函数等功能,供各种基于Java语言的界面开发技术(如 Android、JSP+HTML+JavaScript)调用。

2.2 可定制Android界面

客户端为界面开发人员提供各种类型的常用控件,开发人员可根据需要定制不同的监控页面。页面信息采用XML格式存储,每一个标签页节点内可定义各种不同的控件,每个控件节点内包含该控件的类型、位置、尺寸、颜色、数制等信息。每一个控件需要分配一个唯一的ID。客户端框架在启动一个项目时将根据从上述配置文件中解析出的信息绘制界面内容,并通过控件ID完成与逻辑部分所调用控件资源的映射。

2.3 客户端框架设计

客户端软件作为一个相对独立的框架,其本身并不提供某种特定的业务逻辑功能。开发人员可根据各自业务的不同需求,编写相应的逻辑功能代码。代码中需定义一套本地资源列表,以完成对远程服务的功能调用,并接收来自不同服务的各种数据报告;代码中还应定义一套显示界面列表,用于指定与业务逻辑相关的界面控件资源。上述代码以JAR包的形式生成,供客户端框架调用。客户端的功能为:(1)将上述本地资源列表与服务器端提供的资源列表进行映射;(2)将上述界面资源列表与本地控件ID进行映射;(3)通过项目名称加载并运行相应的JAR包,实现特定的逻辑功能。

上述映射列表以及服务器端连接信息存储于不同的项目文件当中,用户可根据需要,运行不同的项目。这种方法将显示界面与业务逻辑分离,通过项目配置将二者整合在一起,实现了客户端的框架化设计。

本文介绍了一种基于ICE中间件的Android平台客户端解决方案。该方案通过与服务器端程序的通信,实现了对卫星地面测试设备的监视与控制。该客户端采用框架化设计,可定制显示界面,适用于不同业务需求,为实现嵌入式测试设备的监控功能提供了一种可选方案。

[1]杨柳青.卫星数管分系统地面设备总控软件的设计与实现[D].北京:北京航空航天大学,2010.

[2]李善平,刘文峰,王焕龙,等.Linux与嵌入式系统[M].北京:清华大学出版社,2006.

[3]蔡佳成.基于ICE中间件的分布式网络安全系统的研究与设计[D].北京:北京邮电大学,2009.

[4]王向辉,张国印,沈洁.Android应用程序开发[M].北京:清华大学出版社,2010.

[5]MICHI H.A new approach to object-oriented middleware[J].IEEE Computer Society,January~February 2004:66-75.

[6]ZeroC.Distributed programming with Ice 3.4.2[M/OL].http://zeroc.com/doc/index.html.

猜你喜欢
中间件服务器端控件
基于.net的用户定义验证控件的应用分析
Linux环境下基于Socket的数据传输软件设计
RFID中间件技术及其应用研究
关于.net控件数组的探讨
基于Android 平台的OSGi 架构中间件的研究与应用
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
中间件在高速公路领域的应用
一种支持智能环境构建的中间件