组件化数据监显软件设计与实现

2017-12-15 00:52,,,
计算机测量与控制 2017年11期
关键词:中间件控件组件

, ,,

(空间物理重点实验室,北京 100076)

组件化数据监显软件设计与实现

王毅,赵俊翔,封慧英,薛凯

(空间物理重点实验室,北京100076)

为满足网络数据在开发平台上动态显示,并允许在分布、异构的计算环境下稳定且灵活的运行等功能;本系统应用数据分发服务、组件化数据监显技术,针对用户不同的需求,完成界面显示的设计;为用户提供分层及微内核的软件框架,使界面显示与业务逻辑分开,降低系统耦合性;提高代码重用性以及可维护性;在控件功能设计中采用工厂和反射设计模式,使系统有良好的扩展性,减少数据监视软件的开发周期;本系统引入组件化程序设计思想,将复杂的工程分割成若干子模块,实现了用户在客户端上进行信息显示方式的配置;充分验证了组件化框架在监显系统中的优势;提高系统的重用性、开放性、以及高可靠性。

数据分发服务;组件化;用户定制;界面设计器;控件

0 引言

随着航天飞行器快速发展,作为飞行器系统关键部分的软件被寄予更多希望。然而,随着航天型号任务增多,研发软件规模越来越大,软件开发过程也更为复杂,因此传统软件架构方法和设计模式已经不能满足航天软件在质量和进度上的高要求。

为解决面临的问题,从传统的组件化设计,到基于开发框架+组件的开发模式,再到最后引入中间件技术采用基于数据分发服务的组件化程序设计方法。

数据监显软件在引入中间件和组件化程序设计方法以后,应分布、异构的硬件环境变化要求,可允许两个软件组件进行跨进程、跨操作系统的通信,提升了分布式环境下数据监显软件的可扩展性、可重用性,从而提高整个飞行器软件系统的研制效率和可靠性。

1 组件化应用程序框架

组件化数据监显系统面向典型的网络化测控环境,采用中间件+组件化框架,通过与本地服务器数据属性库的自动映射提供数据解析服务,为用户提供个性化动态定制的试验数据状态查看功能,并方便用户根据业务需求动态扩展。同时实现用户在客户端上进行信息显示方式的配置,并且形成各客户端的配置文件,以.XML文件形式进行保存。

组件化数据监显系统利用分层架构模式,把各组件分成若干平行层次,每一层都代表特定功能(如展示逻辑或者业务逻辑),典型的分层架构模式包括展示层、逻辑业务层、持久层和数据层。分层架构模式关系与功能的关系与功能如图1所示。

图1 分层架构模式的关系与功能

采用此种分层架构的特点是为了使组件间功能逻辑的分离。一个层中的组件只会处理本层的逻辑。然而,每一层又都是封闭的。每一层的输入request必须一层一层的传递。从展示层传递来的请求首先会传递到业务层,然后传递到持久层,最后才传递到数据层。

分层架构模式满足开发-封闭的设计原则,利用分层架构模式可以在组件化的开发过程中,仅关注本层组件的逻辑,同时利用数据分发中间件技术实现组件间的交互,从而提升应用程序架构可重用性和可扩展性。

2 组件化数据监显系统设计

在组件化数据监显系统中,系统为用户提供个性化动态定制的试验数据状态查看功能,所以将数据传输分为服务端、客户端以及通信接口3个部分。其中服务端安装数据库,保存测试数据的属性信息以及客户端数据监视软件的用户、人员权限及个性化配置。客户端用于数据监视客户端在数据监视软件中用于接受和显示数据中心发布的试验信息、测试数据。组件化数据监显软件主要由控件库模块、控件管理模块、用户管理模块3个部分组成,总体设计如图2所示。

图2 系统模块图

利用DDS数据分发服务器中间件技术,实现组件与组件的数据交互。在组件化数据监显软件中内部仅关注需要发布和订阅的数据,而不关注数据的来源和去向。所有的数据集中在DCPS层的数据域中,并由通信中间件进行分发。在这种结构方式中,数据的流向以发布/订阅关系而不是通信地址为标识,实现了底层网络、组件之间的脱耦。通信地址的改变不会引起组件的任何变动,使得这种改变能够在流程中实时进行。在组件间交互设计过程中,组件数目的减少将不会引起现有平台的任何改变,组件数目的增加则只会引起需要对所增加组件发布的数据进行处理的服务和任务的更改。这种特性极大地提高了软件系统的灵活性和可靠性。如下图3组件间逻辑结构设计所示。

图3 组件间的逻辑结构设计图

2.1 基于数据分发服务软件架构

组件化数据监显软件架构是一种基于DCPS的软件系统架构。其由域、域参与者、数据写者、数据读者、发布者、订阅者、主题几种实体构成。软件系统架构如下图4所示。

图4 基于DDS的软件架构

在基于DDS的软件架构中,数据在域内发送和接收,发布者和订阅者分别用来管理单个或多重数据写入和数据读取。一对数据读取者和数据写入者必须拥有相同的主题,数据写入者发布的数据才能被订阅数据读取者接收。

本文通过发布-订阅机制,数据监显软件实现了应用程序与网络拓扑解耦。应用程序中的数据产生者向DCPS注册声明为数据发布者,并声明其生产的数据类型和主题号,把生产出的数据推送给通信中间件。数据接收方则声明为订阅者,描述其需要的数据类型与主题号。通信中间件之间根据双方的数据类型与主题号来进行关联,若匹配,则建立数据链路。通过这种发布-订阅机制,通信中间件正确地把数据分发给所有的订阅者。一个典型的数据传输过程有以下几个步骤:

1)数据生产者注册声明为发布者,并声明其生产的数据类型、主题和其所要求的服务策略;

2)数据接收方声明为订阅者,并声明其需要的数据类型、主题和服务策略;

3)DCPS层根据双方的数据类型、主题、服务策略进行关联,若匹配,则建立数据链路;

4)数据生产者向中间件发布数据,通信中间件根据其服务策略向相应数据链路发送信息,订阅者的通信中间件收到信息,并向数据接收方推送信息。

通过以上流程,数据监显软件架构实现了各个组件之间数据的正确、高效分发。

2.2 控件库

控件库模块是整个数据监显软件用户定制系统的核心部分,其利用基于DDS的分布式测控中间件获取和解析信息,进行数据的显示和按需定制,主要实现方式为控件动态显示。此模块包含两类功能实现。其一控件产生类型模块使用了一种“工厂模式”的设计方法来实现依据用户需求产生对应类型的控件这一操作。工厂模式设计方法的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类将不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。其在产生控件类型中引入工厂方法模式,涉及到抽象工厂角色、具体工厂角色、抽象产品角色以及具体产品角色等,其图示例如图5。

图5 工厂方法模式类图

2.3 控件管理

控件管理模块是整个基于用户定制界面设计器工程的管理部分,其中控件管理模块功能设计如图6所示。

图6 控件管理模块功能图

基本管理子模块提供了对用户所使用的控件进行基本管理的功能,包括了对显示窗口中添加新的控件,删除显示窗口中用户所不需要的控件,复制、剪切并粘贴新的控件等。除此之外,用户可以通过对显示界面中功能控件进行鼠标右击,在弹出的菜单中选择属性参数查询与属性参数配置修改实现对控件进行属性参数配置查询及修改的操作。

扩展管理模块可以根据业务需要对图元控件库进行动态扩展,并提供标准接口和图元扩展范例。用户可以通过预留好的产生控件接口根据自身需求添加相应控件,同时删除不需要的控件。扩展管理模块还可以在多文档视图中,实现对不同文档页中的控件进行不同管理操作。对某一个文档页中用户使用的控件进行相关管理操作时,并不会影响到其他文档页中所设计好的界面及相关信息内容的显示。从而实现基于多文档视图显示的界面定制设计的功能需求。

2.4 用户管理

为实现用户对整个软件系统的管理功能,用户管理的功能设计包括数据库关联子模块和系统管理子模块。用户管理模块的相关功能设计如图7所示。

图7 用户管理模块功能图

数据库关联子模块主要功能是每个用户有自己相应的权限,对应生成的文件会保存在对应的数据库当中。各用户之间相互独立,互不相干,数据之间也互不影响。从而保证各用户的数据独立性。当用户根据需求拖拽不同控件完成界面设计后,可以将界面配置文件以XML格式进行保存,保存的界面配置文件将存储到数据库中。同时,用户可以直接从数据库对已保存的XML配置文件进行读取打开。从而实现了用户操作与数据库相关数据的关联。

系统管理子模块实现了用户管理员可以给不同的用户动态的设置和修改不同的权限的功能,可以保证不同的用户只能浏览自己相关的数据,包括管理数据库,分配数据浏览终端的链接端口和显示方式等。同时还可以进行客户端配置文件管理以及集中定制。

3 系统实现与应用

3.1 系统实现

为了满足动态数据显示平台用户可定制的需求,将系统的实现分为3个状态:定制态、配置态、运行态。定制态完成用户按需定制控件以及设计显示界面;配置态是系统进行数据源配置以及属性配置时的状态显示,此状态完成数据显示前的一系列配置操作;而运行态则是系统进行动态显示数据测控结果的状态,在通过停止操作便可回到定制态和配置态。系统根据用户需求在3个状态下相互转换,实现对数据的监视和测控。

本文所设计的图元控件库涵盖了一系列的图形样式,包括单行/多行文本、表盘、LED进度条、指示灯、表格、曲线、分组框、标签页等。每一类型的控件都有其各自具体的设计,用来实现对应的功能,并通过这些丰富的图形样式控件来很好的满足用户按照不同的需求浏览相关信息的要求。控件样式如图8所示。

图8 控件样式图

3.2 系统应用

在Windows和Linux环境下,用Qt开发出一个基于组件化的数据监显系统,系统以界面显示器的方式供用户自定义设计界面,以控件的形式动态显示数据。系统为用户提供个性化动态定制试验数据查看功能,操作灵活方便,运行稳定可靠,在数据显示与监控试验中有着较为广泛的应用。组件化数据监显软件实现过程如下:

数据发布端发送以火箭发射记录数据为主题的数据,完成测控系统中各分布式节点高效的数据交互功能。数据订阅与显示端(人机界面设计器)接收发布端发送的数据,经过分布式测控系统的数据解析后,界面设计器动态显示出的火箭发射记录数据。

数据订阅与显示端动态显示经过解析后的数据,不同控件识别不同数据类型。在飞行器压力状态组合中,飞行器压力由于其特定的数据结构,只能由指示灯控件识别与显示;火箭发射过程超差数要求以数值形式呈现,以更加直观表现出超差数值大小,LCD控件符合其数据结构用于显示;曲线直观对比出各组数据变化以及几种测试之间参数要求。如图9,界面设计器连接数据库后,接收发布者发送的主题,解析各类型数据,以不同种类控件显示不同类型信息,为火箭发射试验提供依据。

图9 系统运行界面图

4 结论

组件化数据监显软件是基于Qt creator可视化编程平台,满足用户不同的需求下的数据显示与监控功能。使用基于数据分发服务的组件化程序设计思想提升了分布式环境下数据监显软件的可扩充性、可重用性,提高了系统的稳定性和可靠性,使系统模块之间独立性提高,减少开发周期。

[1] 陈春甫. 基于DDS的数据分发系统的设计与实现[D]. 上海:复旦大学, 2008.

[2] 巴海涛, 许锐锋. 基于DDS规范的战场态势信息分发框架[J]. 指挥信息系统与技术, 2012(1):45-48.

[3] 周 淳. 实时发布/订阅中间件中的QoS管理机制和策略研究[D]. 南宁:东南大学, 2012.

[4] 谢 蓓,刘 毅,曹力华,等.实时系统数据分布服务DDS技术综述[J].舰船电子工程,2006, 26(2):16-19, 122.

[5] OMG Available Specification formal. Data Distribution Service for Real-time Systems Version 1.2 [S]. 07-01-01.

[6] 谢阳杰,吴家铸.数据分发服务DDS的研究[A].全国第19届计算机技术与应用学术会议[C].合肥,2008,38-43.

DesignandImplementationofComponentDataMonitoringSoftware

Wang Yi,Zhao Junxiang,Feng Huiying,Xue Kai

(Science and technology on space physics laboratory,Beijing 100076, China)

In order to meet the dynamic display of network data on the development platform, and to allow stable and flexible operation in distributed and heterogeneous computing environment, etc.. This system uses the modular data monitoring technology, and aims at the user's different requirements, and completes the design of the interface display. Provide users with the MVC framework to separate views from functionality, reduce coupling, and improve code reusability and maintainability. The factory model design is adopted in the design of control function, so that the system has good scalability and reduces the development cycle of data monitoring software. The system introduces the idea of component programming, divides complex engineering into several sub modules, and realizes the configuration of information display mode on the client. The advantages of component-based framework in monitoring system are fully verified. Improve system reusability, openness, and high reliability.

component; user customization; interface designer; controls

2017-08-31;

2017-10-11。

王 毅(1984-),男,辽宁人,工学硕士,工程师,主要从事软件系统设计、数据挖掘技术等方向的研究。

1671-4598(2017)11-0103-04

10.16526/j.cnki.11-4762/tp.2017.11.027

TH873.7

A

猜你喜欢
中间件控件组件
无人机智能巡检在光伏电站组件诊断中的应用
基于.net的用户定义验证控件的应用分析
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
RFID中间件技术及其应用研究
关于.net控件数组的探讨
基于Android 平台的OSGi 架构中间件的研究与应用
桥梁组件搭配分析
中间件在高速公路领域的应用
一种支持智能环境构建的中间件