一种分布式系统软件版本更新控制装置及方法

文档序号:7649313阅读:128来源:国知局
专利名称:一种分布式系统软件版本更新控制装置及方法
技术领域
本发明涉及分布式系统软件版本管理技术,尤其是一种分布式系 统软件版本更新控制装置及方法。
背景技术
随着计算机技术的快速发展,分布式的系统结构逐渐成为绝大部 分大型自动化设备(例如电信通讯设备,工业控制设备等)的基本选 择。分布式结构一M由多个自治的计算机子系统/单板组成,不同的 子系统/单板之间是通过某种通讯通道链接。同时,子系统/单板本身 也可能是由多个处理器组成的小型分布式子系统。整个系统是由主控 子系统/单板集中控制,它也是用户进行系统管理的唯一接口,各个子 系统/单板的管理也是通过主控单元/单板来进行的。
这种分布式结构的自动化设备的主要特点如下1、组成系统的各 个子系统/单板是针对特定业务功能而设计开发的嵌入式系统,它们没 有相关的各种工业标准,因此硬件设计构成差别很大,从而使得这些 子系统/单板上运行的软件都是根据设备需要定制的软件;2、功能的 增加以及系统的改进等原因都要求这些子系统/单板上的软件可以随 时更新;3、随着业务功能的日益复杂,各子系统/单板上运行的软件 也日益复杂,可能包括多个处理器的软件、固件等;4、由于嵌入式系 统的资源限制和管理效率等要求,不同的子系统/单板之间依据硬件的异同需要实现部分或者全部的软件版本共享;5、不同子系统/单板运 行的环境可能差异很大。
目前,业界对分布式系统软件版本进行更新,主要是通过下述两
种方式第一种是专有无序管理方式,即对软件版本进行更新时仅仅 采用简单保存,替换更新这种模式;这种方式在版本共享、更新效率 以及通用性方面存在较多问题;第二种是专有个体文件管理方式,它 是第一种方式的改进,这种方式将软件版本对应为多个文件进行管理, 软件版本的更新直接面向个体软件文件。这种方式将个体特征的软件 文件提供给用户进行管理,容易由于软件个体文件数量巨大而造成管 理繁瑣、版本混乱问题。这种方式将软件使用者进行了人为泛化,层 次不清,移植性差,不具有设备无关的通用性。
综上所述,现有的分布式系统软件版本更新控制方式的主要缺陷, 如下1、版本管理定位不清晰,即版本管理的粒度选择不合适;2、 不通用,即无法灵活地实现单系统和多系统版本管理的有机统一;3、 无法实现统一的硬件/软件版本映射以及共享机制;4、设M赖性太 强,移植性差,具有平台相关性;5、更新策略单一,无法满足各种设 备的更新要求。

发明内容
本发明要解决的技术问题是提供一种分布式系统软件版本更新控 制装置及方法,通过跨平台的软件版本更新控制装置实现了通用的分 布式系统软件版本的更新控制。
本发明解决其技术问题所采用的技术方案是
一种分布式系统软件版本更新控制装置,所述版本更新控制装置
包括
版^制服务器模块,驻留于主控子系统/单板上,用于实现子系 统/单板的软件版本更新控制;
版本控制客户端模块,驻留于各个非主控子系统/单板上,用于与 所述版本控制服务器模块完成版本更新协商,下载更新本子系统/单板 的软件版本;
通讯抽象层模块,用于向所述版本控制服务器模块或版本控制客 户端模块提供在不同的通讯链路上MJ肖息的服务。
上述方案中,所述不同的通讯链路对应不同的通讯抽象层底层接 口 ,所述通讯抽象层模块通过提供标准的接口注册登记的方式实现不 同的底层接口的封装,所述底层接口包括初始化接口、发送数据接口 及接收数据接口 ;所述通讯抽象层模块为所述版本控制服务器才莫块或 所述版本控制客户端模块提供服务接口 ,所述服务接口包括消息发送 服务接口 、消息接收服务接口及下载文件接口 。
一种分布式系统软件版本更新控制方法,所述方法通过版本更新 控制装置实现,所述版本更新控制装置包括版本控制服务器模块、版 本控制客户端模块及通讯抽象层模块,所述方法包括以下步骤
a 、所述版本控制客户端模块与所述版本控制服务器模块进行版本 更新协商以判断当前协商的软件版本组类是否需要更新,若需要,进 入步骤b,否则,结束本次版本更新流程;
b、 所述版本控制客户端模块从所述版本控制服务器模块下载所述 组类的版本;
c、 所述版本控制客户端模块保存所述组类的版本并结束本次版本 更新流程。
上述方案中,所述步骤a包括以下步骤
a 1 、所述版本控制客户端模块收集本地硬件信息及所述组类的版 本信息,并将收集的信息反馈给所述版本控制服务器模块;
a2 、所述版本控制服务器模块根据版本登记表及所述版本控制客 户端模块的硬件信息选择所述组类所需的版本,将其与反馈的版本信 息对比后确定所述组类的版本是否需要更新;若所述版本控制客户端 模块还存在其它需要进行版本更新协商的软件版本组类,则所述版本 控制服务器模块确定下一次进行版本更新协商的软件版本组类;
a3、所述版本控制服务器模块将确定结果反馈给所述版本控制客 户端模块,若所述组类的版本需要更新,则进入步骤b,否则,结束 本次版本更新流程。
上述方案中,所述步骤b中,若所述版本控制服务器模块与所述 版本控制客户端模块间的通讯链路为文件传输协议/简单文件传输协 议方式,则通过所述通讯抽象层才莫块的下载文件接口实现所述版本的 下载;否则,所述版本控制服务器模块与所述版本控制客户端模块通 过分片重组的方法实现所述版本的下载。
上述方案中,所述分片重组的方法进一步包括以下步骤
(1) 所述版本控制服务器模块将所述版本的数据信息分片;
(2) 所述版本控制服务器^^莫块发送所述版本的数据信息片给所述 版本控制客户端模块;
(3) 所述版本控制客户端模块将接收到的所述版本的数据信息片重 组,若所迷版本控制服务器模块还有未发送的数据信息片,则回到步 骤(2),否则,结束本流程。
上述方案中,所述步骤c中,所述版本控制客户端才莫块保存所述
组类的版本后还将更新操作信息反馈给所述版本控制服务器模块,然 后再结束本次版本更新流程。
上述方案中,结束本次版本更新流程后,若所述版本控制服务器
模块确定了下一次进行版本更新协商的软件版本组类,则回到步骤a; 否则,所述版本控制服务器模块和所述版本控制客户端模块分别终止 第 一次进行版本更新协商前创建的更新上下文。
上述方案中,所述版本登记表标识分布式系统中各个子系统/单板 的软件版本组类与硬件之间的对应关系,检索关键字为硬件名称及其 配置类型。
上述方案中,所述分布式系统中各个子系统/单板的软件版本组类 为主软件版本类、固件版本类及系统启动引导软件版本类中的任意一 种或一种以上。
本发明的有益效果主要表现在本发明提供的技术方案实现了一 种跨平台的软件版本更新控制装置,该装置可以非常方便地移植到任 何支持多任务的软件系统中,从而大大提高了软件的开发效率;同时,
本发明提出了通过该装置实现分布式系统软件版本的更新控制的方 法,其适用于任何分布式系统的软件版本管理,具有用户友好性高, 管理方便灵活的特点。


图1为本发明分布式系统软件版本更新控制装置的结构示意图; 图2为本发明分布式系统软件版本更新控制方法流程图; 图3为本发明版4^制客户端模块的主软件版本类及固件版本类 的版本均需更新时的消息流图4为本发明版本控制客户端模块的主软件版本类的版本不必更 新,固件版本类的版本需要更新时的消息流图5为本发明版#制客户端模块的主软件版本类及固件版本类 的版本均不必更新时的消息流图。
具体实施例方式
参照图1, 一种分布式系统软件版本更新控制装置包括
版本控制服务器模块,驻留于主控子系统/单板上,用于实现主控 子系统/单板以及非主控子系统/单板的软件版本更新控制,以后称其 为vnServer,它是一个在单任务环境下实现的支持并发下载更新的多 上下文状态机,以后将服务器端的每个更新上下文简称为session;
版本控制客户端模块,驻留于各个非主控子系统/单板上,用于与 vnServer完成版本更新协商,下载更新本子系统/单板的软件版本, 以后称其为vnClient;
通讯抽象层模块,用于向vnServer或vnClient提供在不同的通 讯链路上收发消息的服务,不同的通讯链路对应不同的通讯抽象层底 层接口,以后称其为vnCommLayer5
vnCommLayer向下依赖于具体的通讯链路,通过提供标准的接口 注册登记的方式封装不同的底层接口以实现底层通讯链路的通讯服 务;底层接口包括初始化接口 ioTasklnit、发送数据接口 ioTaskSend 及接收数据接口 iotaskReceive;
vnCommLayer向上为vnServer或vnClient提供以下三种月l务接 口消息发送服务接口 VersionAsyncSend、消息接收服务接口 VersionNextEvent及下载文件接口 VersionDownload
从以上描述可以看出,本发明所述的分布式系统软件版本更新控
制装置通过vnCommLayer屏蔽了 vnServer与vnClient对底层通讯链 路的依赖性,通过其进行版本更新控制真正做到了平台无关性。同时 该装置还是一个在单任务中实现的支持多个客户端并发下载的多 session状态机,效率非常高。
下面参照图2对本发明所述的分布式系统软件版本更新控制方法 作进一步的描述,所述版本更新控制方法通过上述版本更新控制装置 实现。
步骤201: vnServer向vnClient发送版本更新开始消息 EV_VERSION_START_UPDATE_VER,并创建session;
步骤202: vnClient收到EV-VERSION-START-UPDATE—VER后,创 建本地session;
步骤203: vnClient收集本地硬件信息及当前协商的软件版本组 类的版本信息,并通过版本请求消息(EV-VERSION一REQ-VER)反馈给 vnServer;
步骤204: vnServer收到EV_VERSI0N_REQ—VER后,根据版本登记 表及反馈的硬件信息(包括硬件名称及其配置类型)选择所述组类所 需的版本,将其与反馈的版本信息对比后确定所述组类的版本是否需 要更新;若vnClient还存在其它需要进行版本更新协商的软件版本组 类,则vnServer确定下一次进行版本更新协商的软件版本组类;
步骤205 : vnServer将确定结果通过检查结果消息 (EV_VERSI0N_CHK_ACK )反馈给vnClient , vnClient 收到 EV_VERSI0N_CHK_ACK后,若所述组类的版本需要更新,则进入步骤 206,否则,进入步骤208;
步骤206: vnCl ient从vnServer下载所述组类的版本; 执行步骤206时,若vnServer与vnClient间的通讯链路为文件 传输协议/简单文件传输协议(FTP/TFTP, File Transfer Protocol/ Trivial File Transfer Protocol)方式,贝'J通过vnCommLayer '的 VersionDownload实J见,斤述版本的下载;否则,vnServer与vnCl ient 通过分片重组的方法实现所述版本的下载,具体按如下步骤操作 1 、 vnServer将所述版本的数据信息分片;
2、 vnServer发送所述版本的数据信息片给vnClient;
3、 vnClient将接收到的所述版本的数据信息片重组,若vnServer 还有未发送的数据信息片,则回到步骤2,否则,表明所述版本的分 片传送及接收重组已完成,结束本流程。
步骤207: vnClient校验、保存接收到的所述组类的版本并将更 新操作信息通过更新结果消息(EV_VERSI0N_D0WN_RESULT )反馈给 vnServer;至此,vnClient所在的非主控子系统/单板即可将运行的 软件二进制代码放在要运行的地址以跳转运行;而vnServer收到 EV_VERSI0N_D0WN—RESULT后,可将更新操作信息加以记录以备设备用 户的查询;
步骤208: 若vnServer确定了下一次进行版本更新协商的软件 版本组类,则回到步骤203;否则,i^步骤209;
步骤209: vnServer和vnClient分别终止步骤201及步骤202 中创建的session。
上述流程中提到的版本登记表标识分布式系统中各个子系统/单 板的软件版本组类与硬件之间的N: N的对应关系。下面,对版本登记 表的构造过程作进一步的说明。
首先,将分布式系统中每个子系统/单板的软件版本进行一级分类
得到软件版本组类,包括三种MVR, FW, BT,分别表示主软件版本类, 固件版本类和系统启动引导软件版本类。 一个子系统/单板的软件版本 组类包括以上三种组类中的一种或者几种,这是软件发布的可见实体, 也是软件共享的基本单位;
然后,对软件版本组类进行二级分类得到软件版本组元,每一个 组元就是一个软件文件;例如一个软件版本组类FW可能由数字信号处 理器(DSP, Data Signal Processor )的软件组元文件及针栅阵列(PGA, Pin Grid Array )的软件组元文件构成;这是软件内部使用者的最小 可见实体;
再次,根据上述软件版本组类及组元的分类结果,制作各个软件 版本组类文件;其中,每个软件版本组类文件包括一个256字节的版 本头,用于记录此软件版本组类的构成信息,包括组类的版本号, 创建时间,长度,校验和以及构成此组类的软件版本组元信息等且软 件版本组类文件的命名遵循一定的规则,即软件功能版本名.组类名; 制作过程中,软件版本组类文件包括的每个软件版本组元文件是依次 加入的,每次加入时需更新版本头信息以及组元文件头信息;组元文 件的位置是通过版本头中的组元位置信息确定的;
最后,根据各个子系统/单板的软件版本组类与硬件之间的N: N 的对应关系构造得到版本登记表,其检索关键字为硬件名称及其配置 类型;版本登记表的第一项为主控板的版本登记项;同一子系统/单板 的软件版本组类可以运行在不同的硬件上;如果用户可见的硬件配置 类型不同,则登i己为不同项,如果用户可见的^更件配置类型相同,则 登记为一项即可,并在此项支持的硬件类型中列出硬件名称;同一硬 件可以运行不同的软件版本组类,则登记为不同的登记项。
至此,版本登记表构造完毕,表中的登记信息属于静态信息。
图3至图5为三种不同情况的更新控制消息流图,实施例中的 vnCl ient的软件版本组类包括MVR和FW;图3描述的为MVR及FW的 版本均需更新时的消息流图;图4描述的为MVR的版本不必更新,FW的版本需要更新时的消息流图;图5描述的为MVR及FW的版本均不必 更新时的消息流图;各图中的verType表示当前协商的软件版本组类, nextVerType表示下一次进行版本更新协商的软件版本组类。可以看 出,通过图2所描述的更新控制方法方便灵活地实现了分布式系统软 件版本的更新控制。
权利要求
1、一种分布式系统软件版本更新控制装置,其特征在于,所述版本更新控制装置包括版本控制服务器模块,驻留于主控子系统/单板上,用于实现子系统/单板的软件版本更新控制;版本控制客户端模块,驻留于各个非主控子系统/单板上,用于与所述版本控制服务器模块完成版本更新协商,下载更新本子系统/单板的软件版本;通讯抽象层模块,用于向所述版本控制服务器模块或版本控制客户端模块提供在不同的通讯链路上收发消息的服务。
2、 如权利要求1所述的分布式系统软件版本更新控制装置,其特 征在于所述不同的通讯链路对应不同的通讯抽象层底层接口,所述 通讯抽象层模块通过提供标准的接口注册登记的方式实现不同的底层 接口的封装,所述底层接口包括初始化接口、发送数据接口及接收数 据接口 ;所述通讯抽象层模块为所述版本控制服务器模块或所述版本 控制客户端模块提供服务接口 ,所述服务接口包括消息发送服务接口 、 消息接收服务接口及下载文件接口 。
3、 一种分布式系统软件版本更新控制方法,其特征在于,所述方 法通过版本更新控制装置实现,所述版本更新控制装置包括版本控制 服务器模块、版本控制客户端模块及通讯抽象层模块,所述方法包括 以下步骤a、 所述版本控制客户端模块与所述版本控制服务器模块进行版本 更新协商以判断当前协商的软件版本组类是否需要更新,若需要,进 入步骤b,否则,结束本次版本更新流程;b、 所述版本控制客户端模块从所述版本控制服务器模块下载所述 组类的版本;c、 所述版本控制客户端模块保存所述组类的版本并结束本次版本 更新流程。
4、 如权利要求3所述的分布式系统软件版本更新控制方法,其特 征在于,所述步骤a包括以下步骤al、所述版本控制客户端模块收集本地硬件信息及所述组类的版 本信息,并将收集的信息反馈给所述版本控制服务器模块; a2、所述版本控制服务器模块根据版本登记表及所述版本控制客 户端模块的硬件信息选择所述组类所需的版本,将其与反馈的版本信 息对比后确定所述组类的版本是否需要更新;若所述版本控制客户端 模块还存在其它需要进行版本更新协商的软件版本组类,则所述版本 控制服务器模块确定下一次进行版本更新协商的软件版本组类;a3、所述版本控制服务器模块将确定结果反馈给所述版本控制客 户端模块,若所述组类的版本需要更新,则进入步骤b,否则,结束 本次版本更新流程。
5、 如权利要求4所述的分布式系统软件版本更新控制方法,其 特征在于所述步骤b中,若所述版本控制服务器模块与所述版M 制客户端模块间的通讯链路为文件传输协iU筒单文件传输协议方式, 则通过所述通讯抽象层模块的下载文件接口实现所述版本的下载;否 则,所述版本控制服务器模块与所述版本控制客户端模块通过分片重 组的方法实现所述版本的下载。
6、 如权利要求5所述的分布式系统软件版本更新控制方法,其特 征在于,所述分片重组的方法进一步包括以下步骤(1) 所述版本控制服务器模块将所述版本的数据信息分片;(2) 所述版本控制服务器模块发送所述版本的数据信息片给所述 版本控制客户端模块;(3) 所述版本控制客户端模块将接收到的所述版本的数据信息片重 组,若所述版本控制服务器模块还有未发送的数据信息片,则回到步 骤(2),否则,结束本流程。
7、 如权利要求6所述的分布式系统软件版本更新控制方法,其特 征在于,所述步骤c中,所述版本控制客户端模块保存所述组类的版 本后还将更新操作信息反馈给所述版本控制服务器模块,然后再结束 本次版本更新流程。
8、 如权利要求7所述的分布式系统软件版本更新控制方法,其特 征在于结束本次版本更新流程后,若所述版本控制服务器模块确定 了下一次进行版本更新协商的软件版本组类,则回到步骤a;否则, 所述版本控制服务器模块和所述版本控制客户端模块分别终止第 一次 进行版本更新协商前创建的更新上下文。
9、 如权利要求4至8其中之一所述的分布式系统软件版本更新控 制方法,其特征在于所述版本登记表标识分布式系统中各个子系统/ 单板的软件版本组类与硬件之间的对应关系,检索关键字为硬件名称 及其配置类型。
10、如权利要求9所述的分布式系统软件版本更新控制方法,其 特征在于所述分布式系统中各个子系统/单板的软件版本组类包括主 软件版本类、固件版本类及系统启动引导软件版本类中任意一种或一 种以上。
全文摘要
本发明公开了一种分布式系统软件版本更新控制装置及方法,所述版本更新控制装置包括版本控制服务器模块,驻留于主控子系统/单板上,用于实现子系统/单板的软件版本更新控制;版本控制客户端模块,驻留于各个非主控子系统/单板上,用于与所述版本控制服务器模块完成版本更新协商,下载更新本子系统/单板的软件版本;通讯抽象层模块,用于向所述版本控制服务器模块或版本控制客户端模块提供在不同的通讯链路上收发消息的服务。本发明所述技术方案现了跨平台的软件版本更新控制装置以及通用的分布式系统软件版本的更新控制。
文档编号H04L12/24GK101179430SQ20071007747
公开日2008年5月14日 申请日期2007年12月3日 优先权日2007年12月3日
发明者朱怀云, 虎 牛, 静 邱 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1