技术文章

首页 > 技术支持 > 技术支持 > 技术文章
基于XML的模块化分布式软件系统架构设计 2015/4/10

摘要:软件架构的复用是构建分布式测试监控系统的必然要求。本文介绍了一种基于XML文件配置的模块化分布式软件系统架构。以项目为单位组织构建业务逻辑层,提供灵活的接口配置与通用的主体架构。
关键词:XML;架构;分布式
1、引言
分布式软件系统架构是快速构建大型分布式系统,有机调动各子系统的核心技术,是系统从整体到部分的最高层次划分。然而在定制化需求的捆绑下,软件架构的设计往往存在诸多耦合点,使得子模块的复用变得非常困难。成熟的软件架构不仅是加快分布式项目开发节省后期调试时间的保证,更是模块进行代码复用的首要之策。特别是在航空航天测试领域,建立可靠安全的测试环境,完备的系统设计更是至关重要。
2、架构思想概要
模块化系统子功能,将主体框架定位成一个通用的容器,采用配置文件描述功能模块属性,提供通用的操作接口。并以项目为单位建立程序的层级结构,自动生成通用的操作界面,包括菜单栏、工具栏、导航切换、功能面板。系统框架的内在联系完全依赖于XML文件的描述,解决了程序内部的耦合关系,并且提高了衍生功能属性的兼容性。如图1所示,右侧文件夹为用户接口,每个文件夹涵盖了指定的功能参数、文件和程序接口。左侧是底层架构封装的类,采用面向对象的方式,将分布式模块继承于基类,通过API与XML文件定义私有属性,实现架构的通用化。


                                        图1 思想设计框图 

系统架构层级划分为界面表示层、用户访问层与核心业务逻辑层。通过创建分布式系统项目,开放操作接口,主要包括以下几个核心项目文件夹,图2为用户实际使用架构的开发交互接口。 

(1) 架构系统文件夹Core包括了系统配置参数与功能模块配置参数的XML文件,具有封闭性,是架构的基础文件。 

(2) 界面表示层接口位于主程序MainVI文件夹中,是分布式系统的主要操作界面。 

(3) 用户访问层包含了功能模块配置文件生成工具Toolset和自定义模块加载的User文件夹,具备用户级别独立的配置文件。自定义添加的功能模块也是业务逻辑层的重要组成部分。

(4) 系统模块文件夹Module包括了主体业务逻辑关系,包括了架构引擎模块和系统通用模块。

                           图2 架构层级划分

本分布式系统软件架构已经应用于多个分布式监控测试系统,本文主要以航天领域针对航天器的某检漏自动化监控系统讨论业务逻辑功能模块的设计。
3、业务逻辑功能模块设计
检漏自动化监控系统,根据所服务区域不同,分为7级区组成部分和8级区组成部分,无论7级区部分还是8级区部分,其构成上是相同的,都主要由两大子系统组成:
(1) 充放气硬件系统:以气源控制台,区域总控台和区域用气终端控制台等实体控制台连接而组成的示漏气体充放气硬件系统,其划分为以下几个二级子系统:气源控制台包含的气源系统、区域总控台包含的主控系统和配气系统、区域用气终端控制台包含的用气终端系统;
(2) 软件监控系统:以服务器、电路模块、通信模块、显示装置等单元组成的软件监控系统,其又分为几大部分:控制系统、数据通信系统、可视化显示系统、存储系统。

整个自动化监控系统的系统组成示意如图3所示,两个工作区内系统配置的数量及分布有所不同,其中,7级区与8级区共用1个气源控制台(气源系统),7级区有自己独立的总控台(7级主控系统、7级配气系统)和2个用气终端控制台(7级用气终端系统),有自己的软件监控系统和1块显示用大屏幕;8级区有自己独立的总控台(8级主控系统、8级配气系统和4个用气终端(8级),也有自己的软件监控系统和1块显示用大屏幕。


                                          图3 检漏系统组成示意图 

检漏自动化监控系统的主要功能是:通过软件监控系统对充放气硬件系统的自动控制和与加压回收系统的共同作用,为检漏产品测试配置、提供各种所需气体,回收产品中放出的示漏气体,以满足检漏任务中多余物吹除、氦质谱检漏充放气、总漏率检测充放示漏气体等工作需要,同时,软件监控系统还会实现检漏过程中系统各点的状态记录、过程数据存储与显示,对于检漏间各单机分系统,能够接受其数据并予以显示。

业务逻辑是系统内部模块之间的交互,提供了上层系统的业务功能与数据支持。随着先进的检漏技术在我国航天科研、生产、发射等环节密封检测中的广泛应用。如何建立大型试验场并保证各检测单元精准完成校验任务给监控系统的设计提出了更高的要求。检漏自动化监控系统往往需要兼顾到气体充、放、回收及其控制、仪器设备状态监控与试验数据记录存储等重要功能。同时,由于检漏试验场所的复杂度和各检测子系统的功能区分,促使总体监控系统需要建立完备的检测通讯链路,实现分布式控制与监测。主控与各分系统通过TCP/IP协议进行数据交换,服务器负责向子系统传达主控PC发出指令并接受子系统的输入数据,提供主控所需的显示数据,同时将所有数据和记录保存到数据库。业务逻辑层级关系如图4所示。Modules文件夹包含了对数据、设备及上层操作的功能模块。数据库初始化完成数据库连接后,逻辑层等待主界面发送TCP指令并进行相应的指令处理和应答。主界面运行程序与业务逻辑层完成了模块级的分离,同时根据业务逻辑关系,针对于应用程序运行所需的、通用的及固有的部分与定制部分实现了分离。


            图4 业务逻辑层级划分 

设计过程中充分挖掘需求(如图5所示),将监控系统功能划分为流程图编辑、传感器管理、传感器映射、数据浏览,主管道控制等功能,根据不同人员的职责范围,限定权限,统一用户和个人信息管理。系统内部逻辑关系通过数据和操作流建立,针对人员信息表动态衍生行为模型,控制操作权限。

(1) 观察员:具有观察试验的权限。 

(2) 系统管理员:具有所有操作权限,如计算机配置、人员管理、手动阀门控制等权限。

(3) 操作员:具有设备管理、试验实施,观察试验的权限。

                              图5 系统功能流转与模块划分

功能模块划分为主界面显示、流程图编辑、传感器管理、传感器映射、数据浏览、通道配置、用户管理与个人信息几部分。主界面显示是检漏厂区各阀门控制的主体界面。流程图编辑模块完成测试流程编辑、故障注入等操作。下图6是阀门控制界面,通过点选阀门开关设置开关状态,系统启动运行后,系统管道颜色会发生相应变化。本部分是基于架构开放的自定义界面,针对不同需求应用,实现界面定制。

                                       图6 主界面系统控制示意图

依托于分布式软件系统主体架构,将顶层功能模块和数据层交互逻辑模块作为自定义模块加载到项目层级的Modules文件夹中,通过Toolset中的工具ShellTool(如图7)添加到主程序中,根据系统架构运行机制,自动建立引用关系和数据对应链路,并将所有模块配置信息存储在User文件夹中。ShellTool工具将定制的模块上层程序配置映射到相应功能项中,对于通用的菜单和导航功能也集成了自定义选项。

                                         图7 ShellTool工具配置界面

4结束语
本文所述的架构设计提供了分布式测试监控软件系统的基本骨架,有助于建立复杂的大型分布式系统。每个功能模块提供相应的兼容接口,基于文件配置的方式提高了系统设计速度和稳定性,节省了大量的时间。