分布式测试系统的软件增量更新设计

2018-11-28 09:07
计算机测量与控制 2018年11期
关键词:选项升级设置

(质量技术监督检验测试中心,河南 信阳 2640001)

0 引言

随着新型传感器技术、网络通信技术与计算机技术的快速发展,测试测量领域内出现了“以网络为中心”的分布式测试系统。分布式测试系统一般由多个具有数据采集与控制处理能力的测试节点组成,通过多个节点的协同控制来完成复杂的测试任务,已经在工业生产、环境监测与科研试验等领域得到越来的应用。其配套测试应用程序的复杂程度以及升级更新难度均大大超过了以往测试系统,尤其是测试节点大规模且个性化软件部署的应用场景。如何对DTS配套测试应用程序进行简单直接且高效的升级更新维护,已经成为DTS研制人员必须解决的技术问题。

1 某型DTS的组成

DTS借助通信网络进行检测业务的协同操作与统一管控,进而将地域分散的测试节点进行有机连接与协同控制。某型DTS由控制中心节点、测试节点、数据中心和通信网络共四部分组成,如图1所示。其中,控制中心节点是整个系统的组网管理和协同控制中心,一般由测试管理计算机与配套组网管理软件组成,可辅助测试管理人员完成测试节点管理、测试任务执行、测试数据管理、操作日志管理与用户权限管理等功能;测试节点是功能相对独立的信号采集与状态感知终端,一般由测量控制计算机、测试仪表设备及配套测试应用程序组成,提供测试状态设置、信号激励、信号测量、数据采集记录、格式化显示、测试数据入库与工作状态上报等功能;数据中心一般选用可扩展性强的虚拟化主机,部署系列服务器、存储设备与配套服务软件,为用户提供充足的数据存储和数据计算能力,为用户提供Web服务、FTP文件存储访问服务与数据库存储服务;通信网络一般采用基于TCP/IP的成熟以太网,能够将位置上分布于各个测试节点的仪器仪表、检测装置、传感器与控制器等资源互联起来。

图1 DTS组成示意图

2 升级更新需求分析

所谓软件升级更新,一般是指软件自从旧版本向新版本改变的处理过程。随着网络的普及,多数软件已经采用在线升级的升级更新维护方法:首先,通过软件自身的更新功能来下载新版本软件的更新安装包;然后,执行更新安装包,停止并卸载旧版本软件,复制新版本软件的相关媒体文件到目标目录;最后,执行新版本软件。这种方法采用专业安装包生成软件制作的安装包,实际上是一种以执行最新版本软件安装包的完整升级。

在异构网络环境下,采用在线升级更新维护方法存在明显不足:各个测试节点更新包下载数据量大、人工操作选择与确认操作频繁,导致整个升级更新过程耗时长、自动化程度弱、效率低且用户体验差,当测试节点规模化后尤其明显!通过比对分析与总结,我们发现主要原因有两点:

1)更新安装包针对性不强、媒体文件数据量大导致用户下载等待时间长:针对单个测试节点应用程序而言,测试节点配套测试应用程序复杂程度的增加、测试应用程序相关媒体文件规模的扩大,必然导致新版本软件更新安装包的数据量增加,复制更新媒体文件环节的耗时加大,获取更新安装包的等待时间过长。

2)升级过程中人工选择确认环节多、操作频繁导致效率低:单个测试节点耗时不够明显,当进行规模化升级更新时尤为突出。随着测试节点升级更新规模的增加,不仅每个测试节点的测试应用程序部署各不相同,而且依次进行人工复制并执行更新安装包必然导致总耗时急剧加大。

因而,必须充分利用DTS的软硬件资源与环境场景约束,实现控制中心节点与测试节点之间的升级更新协同操作:一方面,从减少媒体文件复制耗时角度,如何减少各个测试节点更新下载更新包媒体文件的数据量?需要结合测试节点内软件部署情况进行优化设计与配置管理,形成针对性强且可裁剪配置的升级媒体文件库及版本配置信息文件,进而压缩打包成个性化增量更新安装包;另一方面,从减少升级过程中的人工选择与确认操作环节,如何提高各个测试节点升级更新过程操作的自动化程度?需要将升级更新过程中可能出现的各种情况选择与人工介入确认进行梳理与调整,设计能够表征整个升级更新策略的控制选项,并允许测试节点用户进行这些控制选项的预先设置,进而有效减少升级更新过程中的人工操作处理环节。

3 增量更新功能的设计实现

结合需求分析并遵循模块化、组件化与规范化的设计原则,整个DTS的增量更新拟采用端到端紧密协作的处理方式来实现。如图2所示,整个功能需要控制中心节点的升级更新维护管理功能与测试节点的升级更新响应功能这两部分协作处理来完成。其中,控制中心节点部分主要辅助管理员用户进行测试节点的管理、更新安装包的管理、推送更新策略的预先设定、推送更新启动、推送更新停止、测试节点现场状态的显示浏览以及操作日志的显示浏览等功能;测试节点部分主要辅助现场操作员进行更新响应执行、更新响应策略设置、现场状态的显示上报与操作日志的显示上报等功能。通过控制中心节点与测试节点间的两端协作配合,进而完成测试节点中测试程序的“一键式”自动更新。

图2 功能分配示意图

3.1 基于网络变量中间件发布/订阅推送模式的自动更新设计

在软件升级更新过程中,效率提升的核心是增强各个测试节点中升级响应的自动化程度,进而实现实时响应处理。因而,应当尽量减少测试节点的人工选择与确认操作环节,将必要的控制策略选项设置与规则设定放在控制中心节点进行预先处理。同时,考虑到各个测试节点的规模化挑战以及数目动态不确定的应用场景,而引入网络变量中间件进行客户端/服务器网络应用开发的桥梁作用,能够有效降低分布式异步协同控制处理的时空开销。因而,我们决定利用网络变量中间件发布/订阅推送模式所特有的服务自动发现、动态可扩展、松耦合且灵活性强的优势,形成控制中心节点与各个测试节点间的协同控制处理机制,进而实现“一键式”自动更新。

整个自动更新相关部分的协同控制处理关系如图3所示,在控制中心节点,当管理员用户进行升级维护操作时,主要处理步骤设计如下。

图3 自动更新的协同控制处理关系示意图

步骤一:比对分析、压缩、生成定制增量更新安装包并上传。首先,结合对各个测试节点TP版本配置信息的比对分析,形成针对各个测试节点的增量更新媒体文件列表。之后,将拟更新TP媒体文件压缩打包,形成各个测试节点的个性化定制增量更新安装包,上传到数据中心的指定存储空间,并记录相应的下载URL(Uniform Resource Locator,统一资源定位符)地址到增量更新媒体文件列表,以便后续的自动推送更新使用;

步骤二:调整所有测试节点更新推送策略。根据各个测试节点的TP版本配置信息与TP运行状态,依次调整并确认测试节点的推送策略控制选项,形成针对所有测试节点的更新推送策略。其中,针对单个测试节点实现推送策略设置功能,其推送策略设置包括:推送更新包媒体文件、推送时间模式、异常处理动作、推送使能开关与通信超时设置;推送更新包媒体文件设置允许变更更新包媒体文件;推送时间模式设置,提供立即推送与定时推送选项;异常处理动作设置,提供重新推送与报错选项;推送使能开关设置,提供开启与关闭状态选项;

步骤三:执行测试节点推送策略。执行“一键式”推送更新处理功能,按照设定的推送策略控制选项进行协同控制处理、实时显示各个测试节点的更新状态。其中,“一键式”推送更新处理过程通过设置推送更新标识、依次向各个测试节点的“TP更新命令网络变量”发送TP更新命令以及更新测试节点TP更新状态显示等来实现。TP更新命令内容包括TP更新包版本标识、TP更新包描述信息、TP更新包媒体文件下载URL地址与TP增量更新媒体文件列表。而更新状态显示的功能实现,通过创建“TP更新状态网络变量”的订阅者连接、注册“TP更新状态网络变量”的数据与状态回调函数来实现。

与控制中心节点相对应,各个测试节点提供测试节点的现场状态显示界面,以便统一显示TP运行状态、TP更新状态、操作记录信息与相关属性信息。同时,梳理测试节点TP更新响应过程中的人工选择与确认操作环节,优化为可预先设定的更新响应策略控制选项,并设计形成驻留测试节点且可独立运行的“升级更新功能组件”。该功能组件可通过订阅本地“TP更新命令网络变量”,来按照设定的更新响应策略控制选项进行TP更新命令响应。当响应TP更新命令时,“升级更新功能组件”的主要处理步骤设计如下。

步骤一:获取本地更新响应控制选项。其中,支持的更新响应控制选项包括TP升级更新模式选项、启动时进行版本检测开关、版本配置信息上报开关、启动时进行运行检测开关、运行信息上报开关、推送订阅开关、更新状态显示开关与更新状态上报开关;TP升级更新模式选项支持立即升级更新、暂不更新与忽略此版本三种模式;【更新响应执行…】功能按钮通过订阅本地“TP更新命令网络变量”来按照当前更新响应控制选项来响应TP升级更新命令、发布本地“TP更新状态网络变量”来通知订阅者进行TP更新状态的实时显示;

步骤二:判断TP升级更新模式选项并依据模式进行TP升级更新。若升级更新模式选项设置为立即升级更新,则进行更新包媒体文件的后台下载、缓存、解压、检验、替换与删除缓存;若升级更新模式选项设置为暂不更新,则保存TP更新命令内容到待处理任务列表;若升级更新模式选项设置为忽略此版本,则不进行任何处理。否则,提示TP升级更新模式不支持并保存TP更新命令内容到待处理任务列表。

步骤三:将TP更新状态写入“TP更新状态网络变量”。此处,测试节点TP更新状态的显示通过创建“TP更新状态网络变量”的订阅者连接、注册“TP更新状态网络变量”的状态回调函数、注册“TP更新状态网络变量”的数据回调函数来实现;“TP更新状态网络变量”的数据回调函数通过读取“TP更新状态网络变量”网络变量数值、通知人机界面主线程来更新TP更新状态显示控件来实现。

步骤四:通知现场操作状态显示界面进行操作日志信息显示。

3.2 基于FTP服务中间件的媒体文件下载功能组件设计

鉴于FTP技术具有简单易用、成熟可靠且传输效率高的技术优势,基于FTP服务中间件提供媒体文件下载服务成为优先选择。为了便于进行后台自动处理且可被独立调用,我们将FTP媒体文件下载功能进行组件化封装,并提供FTP下载地址与缓存目录地址等控制参数接口。整个媒体文件下载功能组件的控制流程如图4所示,被作为功能服务进行调用执行时,控制流程设计如下:

图4 媒体文件下载组件的控制流程图

步骤一:判断是否临时目录已存在增量更新包媒体文件?若是,则执行步骤六;

步骤二:判断FTP下载地址访问是否正常?若否,则进行状态显示与日志记录后结束处理;

步骤三:连接FTP服务器;

步骤四:下载增量更新包媒体文件并保存到缓存目录地址;

步骤五:断开FTP服务器;

步骤六:增量更新包媒体文件解压至临时目录;

步骤七:读取更新TP媒体文件列表到内存,以便依次进行替换处理;

步骤八:检验更新TP媒体文件列表的有效性与匹配性,判断检验结果是否符合要求?若不符合要求,则进行状态显示与日志记录后结束处理;

步骤九:判断是否当前TP媒体文件是否可被替换?若是,则替换TP媒体文件、设置TP媒体文件更新标识为已替换、删除临时目录中的TP媒体文件;否则,设置TP媒体文件更新标识为未替换,并设置为待处理任务;

步骤十:判断列表中TP媒体文件替换均处理结束?若未结束,则指向下一个TP媒体文件,执行步骤九;否则,进行状态显示与日志记录后结束处理过程。

4 试验结果与分析

以NI公司的Lab Windows/CVI作为应用开发环境,我们进行了DTS增量更新软部件的试验验证。增量更新软部件主要包括控制中心节点的升级维护管理功能与测试节点的升级更新响应功能两部分,控制中心节点的升级维护管理界面如图5所示,测试节点的升级更新状态显示界面如图6所示。在控制中心节点的升级维护管理部分中,主要提供推送更新启动、推送更新停止、推送策略设置、测试节点管理、安装包管理、现场状态显示与操作日志显示等维护管理功能。为了便于管理员用户对整个升级更新维护过程进行交互式操作控制,相应功能模块进行模块化组件化封装优化,形成可独立执行的“升级更新维护管理器”组件,以辅助管理员用户进行推送更新启动、推送更新停止、推送策略设置、测试节点管理与安装包管理等操作。“升级更新维护管理器”的升级更新维护管理窗口提供【推送更新启动…】、【推送更新停止…】、【推送策略设置…】、【测试节点管理…】、【安装包管理…】与【退出】等功能按钮。其中,【推送更新启动…】功能按钮可辅助用户进行推送策略执行流程的启动处理;【推送更新停止…】功能按钮可辅助用户进行已启动推送策略执行流程的停止处理;【推送策略设置…】功能按钮可辅助用户进行推送策略的设置;【测试节点管理…】功能按钮可辅助用户进行测试节点的浏览、注册与配置管理;【安装包管理…】功能按钮可辅助用户进行拟更新安装包的浏览、选择以及安装包媒体文件的浏览、添加、删除、修改与压缩上传等;【退出】功能按钮可辅助用户退出当前升级维护管理窗口。

图5 控制中心节点的升级更新维护管理界面截图

测试节点的升级更新部分功能,可驻留内存且实时响应控制中心节点的升级更新维护操作,按照预先设置的更新响应控制选项自动进行下载、缓存、解压、检验、替换与缓存删除等后台处理。同时,为了便于现场操作员进行人工干预控制,相应功能模块进行模块化组件化封装优化,形成可独立执行的“升级更新功能组件”,以辅助现场操作人员进行更新响应执行、版本信息检测、运行状态检测与更新策略设置等操作。“升级更新功能组件”的升级更新窗口提供【更新响应执行…】、【版本信息检测…】、【运行状态检测…】、【控制选项…】与【退出】等功能按钮。其中,【更新响应执行…】功能按钮通过订阅本地“TP更新命令网络变量”来按照当前更新策略控制选项来响应TP升级更新命令、发布本地“TP更新状态网络变量”来通知订阅者进行TP更新状态的实时显示;【版本信息检测…】功能按钮提供实现TP版本配置信息检测与上报;【运行状态检测…】提供TP运行状态检测与上报;【控制选项…】提供当前测试节点升级更新策略控制选项的设置界面,支持的更新策略控制选项包括TP升级更新模式选项、启动时进行版本检测开关、版本配置信息上报开关、启动时进行运行状态检测开关、运行状态信息上报开关、推送订阅开关、更新状态显示开关与更新状态上报开关,TP升级更新模式选项支持立即升级更新、忽略此版本与暂不更新三种模式;【退出】功能按钮可辅助用户退出当前测试节点升级更新窗口。

图6 测试节点的升级更新状态显示界面截图

这样,通过控制中心节点与测试节点增量更新软部件之间的协同操作,控制中心节点能够借助【安装包管理…】等功能按钮轻松发布个性化增量更新安装包,并借助【推送更新启动…】等功能按钮进行“一键式”自动更新推送发布;测试节点部分的功能服务则驻留内存保持就绪,按照预先设置的升级更新策略控制选项,自动进行下载、缓存、解压、检验、替换与缓存删除等更新响应执行的后台处理。经过百兆局域网环境部署与运行测试验证,结果表明该技术途径不仅能够满足“一键式”增量更新的协同控制操作功能需求,而且各个测试节点无需进行人工操作选择与确认动作,粗略统计百兆局域网环境内能够保持秒级响应。因而,整个DTS软件的升级更新过程自动化程度较高,并且用户操作体验大幅度提高,满足了升级更新的设计需求。

5 结束语

综上所述,基于FTP服务中间件的媒体文件下载功能组件,可确保测试节点中更新安装包媒体文件下载服务的简单易用、成熟可靠与高传输率;以基于网络变量中间件发布/订阅推送模式的“升级更新维护管理器”与“升级更新功能组件”为主体,可形成控制中心节点与各个测试节点之间的增量更新实时协同控制处理机制,进而实现DTS配套测试应用程序的“一键式”自动更新。文中所述设计实现方法,具有下载等待时间少、人工操作环节少且自动化程度高的技术优势,尤其适用于测试节点大规模且个性化软件部署的应用场景,能够有效降低DTS软件升级更新维护的难度。希望本文所述方法能够为类似分布式测试应用软件的开发提供有价值的参考。

猜你喜欢
选项升级设置
小投入,大升级 Polk Audio Monitor XT系列
中队岗位该如何设置
船舶防火结构及设置的缺陷与整改
幸福,在“家门口”升级
7招教你手动设置参数
跟踪导练(四)
阅读理解
跟踪导练(5)
单项填空精选练习100道
第九章 升级!我的宠物