用于分配通信网络中的软件升级的方法与流程

文档序号:16366623发布日期:2018-12-22 08:28阅读:160来源:国知局
用于分配通信网络中的软件升级的方法与流程

本公开涉及一种用于使用补丁文件分配通信系统中的软件升级的方法以及通信系统中的节点。

背景技术

必须小心地执行集成在硬件(即,固件)中的升级软件,以便不会产生由于固件的版本不同而导致网络的不同分支不能彼此通信的情况。

us8,910,141解决了该问题,其中网络以树结构布置并且使用集中式升级处理来确保网络中每一个节点的固件升级。然而,当在诸如网状网络等其它类型的网络中实施所公开的方法时,节点中的固件版本可能会出现冲突问题。

该问题在us2014/0123123a1中得到了解决,其中公开了无线网状网络中的软件分配。网络中的每一个节点执行报告周期,其中节点将包含类型和软件版本的报告发送到相邻节点。如果相邻节点之一具有在报告节点中执行的新版本的软件,则将该信息发送到报告节点以将软件升级到新版本。

如果网络包括使用不同软件的许多类型的节点,则每一个节点必须包含大量软件版本(网络中使用的每种类型的软件有一个软件版本)以进行比较,以便确定是否存在特定节点的软件类型的新版本。此外,可能需要依赖于软件升级的版本,因为并非所有旧版本都可以使用相同的软件升级来升级到新版本。因此,需要大型软件升级存储装置。

因此,需要开发一种用于升级固件的改进方法。



技术实现要素:

本公开的目的是提供一种寻求消除在所属通信网络的节点中具有冲突的固件版本的风险的方法以及提供一种节点。

该目的是通过用于分配通信网络30中的软件升级的方法来实现。通信网络包括多个节点n1到n5,每一个节点执行软件的节点特定版本,并且进一步被配置为与一个或多个相邻节点进行通信。该方法包括:

a)在每一个节点上存储51用于将软件升级到在每一个节点上执行的软件的节点特定版本的软件升级信息,该软件升级信息包括用于先前在每一个节点上执行的软件的所有版本的补丁文件(patchfiles),

b)从第一节点向一个或多个相邻节点发送52表示当前在第一节点上执行的节点特定版本的版本信息,

c)将当前在第一节点上执行的节点特定版本与在一个或多个相邻节点中的每一个节点上执行的软件的节点特定版本进行比较53,以及

d)在当前第一节点上执行的节点特定版本表示比在相邻节点上执行的软件的版本旧时,在第一节点中从每一个相邻节点接收55软件升级信息,其中,该软件升级信息包括至少一个附加补丁文件以升级当前在第一个节点上执行的节点特定版本。

本发明的一个优点是在节点上执行的软件所需的升级信息可以存储在每一个节点中,而不需要大的存储容量。

在说明书中可以找到本发明的其它优点和方面。

附图说明

通过以下对示例性实施方式的更具体的描述,前述内容将变得显而易见,如附图中所说明,其中相同的附图标记在不同视图中指代相同的部分。附图不一定按比例绘制,而是将重点放在说明示例性实施方式上。

图1说明了具有树结构的通信网络;

图2说明了示例性节点的框图;

图3说明了网状通信网络;

图4是说明通信网络中的信号交换的信令图;以及

图5是说明方法步骤的实施方式的流程图。

具体实施方式

在下文中将参考附图更充分地描述本公开的各方面。然而,这里公开的通信网络和方法能够以多种不同的形式实现,并且不应当被解释为限于这里阐述的方面。附图中相同的标号始终指代相同的元件。

本文使用的术语仅用于描述本公开的特定方面,而不意图限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式“一(a、an)”和“该”也旨在包括复数形式。

本文呈现的一些示例性实施方式涉及具有多个节点的通信系统。作为本文呈现的示例性实施方式的开发部分,首先将识别和讨论问题。

图1示出了具有多个节点ni的通信系统10,其在该示例中具有四个节点n1-n4和网关gw。每一个节点被设置有具有软件的节点特定版本的固件(在每一个节点上执行的软件)。固件被配置为与一个或多个节点进行通信并且执行分配给节点的预定职责,诸如控制照明、测量温度等。

根据现有技术,可以响应于来自网关gw的请求而升级固件,在该示例中,网关gw如11所指示与节点n3进行通信,并且升级节点n3的固件。节点n3被配置为分别如12和13所指示的与节点n1和节点n2进行通信,并且当节点n1和n2知道当前在节点中执行的软件的新版本时,下载新版本的软件并且升级固件。这同样适用于如14所指示与节点n2进行通信的节点n4,并且当新版本的软件可用于从节点n2下载时,升级节点n4的固件。

当根据现有技术升级固件时,必须在升级程序中保持树结构。此外,通信网络可以是有线或无线网络,或者这两者的组合。

图2说明了节点20的示例,其可以结合说明书中讨论的一些示例性实施方式。如图2中所示,该节点可以包括无线电电路21,无线电电路21被配置为在网络内接收并发送任何形式的通信信号或控制信号。应理解,无线电电路21可以包括作为任何数量的收发单元或电路、接收单元或电路和/或发送单元或电路。应进一步理解,无线电电路21可以是本领域中已知的任何输入/输出通信端口的形式。无线电电路21可以包括rf电路和基带处理电路(未示出)。

节点20可以进一步包括可以与无线电电路21进行通信的至少一个存储器单元或电路22。存储器22可以被配置为存储:接收的数据和/或可执行程序指令,或发送的数据和/或可执行程序指令。存储器22还可以被配置为存储作为定义的节点功能的一部分而获得的任何形式的测量数据或信息。存储器22可以是任何合适类型的计算机可读存储器,并且可以是易失性和/或非易失性类型。

节点20可以进一步包括网络接口23和可被配置为执行在存储器22中存储的软件的处理电路24。处理电路24可以是任何合适类型的计算单元,例如,微处理器、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)或任何其它形式的电路。应理解,处理电路不需要作为单个单元提供,而是可以作为任何数量的单元或电路提供。

图3说明了网状通信网络30,除了附加节点n5,该网状通信网络30类似于结合图1描述的网络,该附加节点被配置为如31和32所指示的与节点n1和n2进行通信,由此创建网状网络。附加节点n5可以设置有在节点上执行的软件的更高版本(laterversionofthesoftware)并且节点可以被配置为在检测到软件的新版本时自动地升级固件(即,集成在硬件中并在每一个节点中执行的软件)。

每一个节点可以(在每次发送中或在预定时间延迟之后以规则间隔)向相邻节点发送版本信息,以调查在该节点上执行的软件的新版本是否可用。结合图4和5更详细地描述该程序。

图4是说明通信网络中的信号交换的信令图40。用每一个节点上执行的软件的当前版本来指示每一个节点n1到n5,例如,节点n1执行版本v1.0,并且节点n5执行版本v1.1。每一个节点都具有存储软件升级信息的存储器。

在该示例中,节点n2将版本信息v1.0发送到相邻节点n4和n5,并且如果在这些节点中的任何节点中存在可用的软件的新版本,则将软件升级信息传回到请求节点n2。在该示例中,节点n4与节点n2执行相同的软件版本,因此,没有消息被传回到节点n2。然而,节点n5具有可用软件的新版本v1.1,因此发送软件升级信息v1.1*(用星号指示,因为使用软件升级信息v1.1*进行升级将导致在节点上意图执行软件v1.1的新版本)。

节点n2接收软件升级信息并升级软件,并且将软件升级信息存储在节点存储器中。下一节点n3将其版本信息v1.0发送到相邻节点n1和n2,并且从节点n2接收软件升级信息v1.1*并将软件升级到v1.1。此后,节点n1将其版本信息v1.0发送到相邻节点n3和n5,并且从节点n3和n5这两者接收软件升级信息v1.1*并将软件升级到v1.1。最后,节点n4将其版本信息v1.0发送到相邻节点n2,并且从节点n2接收软件升级信息v1.1*并将软件升级到v1.1。

附加节点n5最初可以在被引入网络时发送其版本信息,以确保在节点n5上执行的软件不会过时。然而,在该示例中,节点n5具有软件的新版本,因此可能无法从网络中的任何其它节点接收到任何软件升级信息。

图5是说明用于分配通信网络中的软件升级的方法的实施方式的流程图。通信网络包括多个节点,每一个节点执行软件的节点特定版本,并且每一个节点进一步被配置为与一个或多个相邻节点进行通信。

流程开始于50,并且在步骤51中,将软件升级信息存储在每一个节点上,软件升级信息用于将软件升级到在每一个节点上执行的软件的节点特定版本。

如步骤52中所指示,将版本信息从第一节点发送到一个或多个相邻节点。版本信息表示当前在第一节点上执行的节点特定版本。

在步骤53,将当前在第一节点上执行的节点特定版本与在每一个相邻节点上执行的软件的节点特定版本进行比较,并且在步骤54,当在第一节点上当前执行的节点特定版本表示比在相邻节点上执行的软件的版本旧时,做出决定以从每一个相邻节点发送软件升级信息。在步骤55中在第一节点中接收软件升级信息。

然而,如果当前在第一节点上执行的节点特定版本表示与在每一个相邻节点上执行的软件的版本相同或者比在每一个相邻节点上执行的软件的版本新时,则流程经由包括时间延迟的可选步骤56反馈到步骤52。时间延迟用于调节每一个节点调查当前在节点上执行的版本的当前状态的频率。对于每一个节点,时间延迟是预定的,并且可以是任何合适的时间,诸如10秒、2小时、4天等,并且步骤56包括在流程被反馈到步骤52之前等待预定时间。

当第一节点从一个或多个相邻节点接收到软件升级信息时,在步骤57,基于接收的升级信息升级要在第一节点上执行的软件,并且将升级信息存储在第一节点上。此后,流程经由可选的时间延迟步骤56反馈到步骤52。

软件升级信息可以是完整的安装文件,或者软件升级信息可以是补丁文件。如果软件升级信息是补丁文件,则可能需要访问先前的补丁文件以将软件升级到最新版本,因此该方法可以进一步包括修改步骤52以将软件升级信息存储到先前在每一个节点上执行的软件的所有版本。

当使用补丁文件时,该方法还可以包括在第一节点中基于版本信息选择版本特定补丁文件,并且使用版本特定补丁文件在步骤57中升级软件。

此外,步骤53可以进一步包括在每一个相邻节点中基于所接收的版本信息选择要发送到第一节点的版本特定补丁文件。

在一个实施方式中,在第一节点中接收到的软件升级信息可以包括用于当前在第一节点上执行的软件的所有新版本的补丁文件,并且该方法可以进一步包括将所接收的补丁文件存储在第一节点上。将软件的所有新版本的完整补丁文件集发送到第一节点。这将需要更大的存储器来保存信息,但是另一方面,当在未来升级其它节点与第一节点进行的通信时,该信息可能是有用的。

在另一个实施方式中,在第一节点中接收到的软件升级信息可以仅包括用于当前在第一节点上执行的软件的新版本的一个补丁文件,并且该方法可以进一步包括将所接收的补丁文件存储在第一节点上。这将减少对大的存储器的需求并且限制需要在节点之间通信的升级信息量。然而,当更新与第一节点进行通信的另一个节点时它将限制可用的选项。

在节点上执行的软件的基本版本的大小通常大约为100kb,并且在升级软件时,软件的完整版本的大小将更大,通常为104kb到120kb。如果使用补丁文件分配升级信息,则补丁文件的大小将为4kb到20kb。这将减少每一个节点中需要的存储容量,并且可以使用更小且更便宜的存储器。

本公开的一个方面是通信网络中的节点,该通信网络包括多个节点ni,每一个节点被配置为执行软件的节点特定版本,并且进一步被配置为与一个或多个相邻节点进行通信。节点可以被配置为:

a)存储用于将软件升级到在每一个节点上执行的软件的节点特定版本的软件升级信息,该软件升级信息包括用于先前在每一个节点上执行的软件的所有版本的补丁文件,

b)从一个或多个相邻节点接收表示当前在一个或多个相邻节点中的每一个节点上执行的节点特定版本的版本信息,

c)将当前在节点上执行的节点特定版本与在一个或多个相邻节点中的每一个节点上执行的软件的节点特定版本进行比较,以及

d)在当前在节点上执行的节点特定版本表示比在相邻节点上执行的软件的版本新时,向每一个相邻节点发送软件升级信息,其中,该软件升级信息包括至少一个附加补丁文件以升级当前在节点上执行的节点特定版本。

此外,节点可以进一步被配置为执行以下各项作为项d)的一部分:

d1)当从相邻节点接收到软件升级信息时,基于所接收的升级信息来升级要在节点上执行的软件,并且将升级信息存储在节点上。

本公开的另一个方面是通信网络中的节点,该通信网络包括多个节点ni,每一个节点被配置为执行软件的节点特定版本,并且被配置为与一个或多个相邻节点进行通信。在该实施方式中,节点可以被配置为:

-存储用于将软件升级到在每一个节点上执行的软件的节点特定版本的软件升级信息,所述软件升级信息包括用于先前在每一个节点上执行的软件的所有版本的补丁文件,

-从所述一个或多个相邻节点接收表示当前在一个或多个相邻节点中的每一个节点上执行的节点特定版本的版本信息,

-将当前在节点上执行的所述节点特定版本与在所述一个或多个相邻节点中的每一个节点上执行的软件的节点特定版本进行比较,以及

-在当前在节点上执行的节点特定版本表示比在相邻节点上执行的软件的版本旧时,从每一个相邻节点接收软件升级信息,其中,该软件升级信息包括至少一个附加补丁文件以升级当前在节点上执行的节点特定版本。

参考附图(例如框图和/或流程图)描述了本公开的各方面。应当理解,附图中的若干实体(例如,框图的框)以及附图中的实体的组合可以由计算机程序指令来实施,该指令可以存储在计算机可读存储器中,并且还可以加载到计算机或其它可编程数据处理设备上。这样的计算机程序指令可以被提供到通用计算机、专用计算机的处理器和/或其它可编程数据处理设备来启动机器,使得经由计算机的处理器或其它可编程数据处理设备执行的指令产生用于实施流程图和/或一个或多个流程图框中指定的操作/动作的手段。

在一些实施方案中并且根据本公开的一些方面,框中提到的功能或步骤可以不按照操作说明中指出的顺序发生。例如,连续示出的两个框实际上可以大致上同时执行,或者这样的框有时可以相反顺序执行,这取决于所涉及的功能/动作。而且,根据本公开的一些方面,可以在循环中连续地执行块中提到的功能或步骤。

在附图和说明书中,已经公开了本公开的示例性方面。然而,在不大致上脱离本公开的原理的情况下,可以对这些方面进行许多变化和修改。因此,本公开应当被视为说明性的而非限制性的,而不是限于上面讨论的特定方面。因此,虽然采用了特定术语,但是它们仅用于一般性和描述性意义,而不是用于限制的目的。

已经出于说明的目的呈现了本文提供的示例性实施方式的描述。该描述并非意图穷举或将示例性实施方式限制为所公开的精确形式,并且根据上述教导可以进行修改和变化,或者可以从对所提供的实施方式的各种替代方案的实践中获得这些修改和变化。选择和描述本文讨论的示例以便解释各种示例性实施方式的原理和本质及其实际应用,以使得本领域技术人员能够以各种方式并在预期适用于特定用途的各种修改的情况下利用示例性实施方式。本文描述的实施方式的特征可以组合在方法、设备、模块、系统以及计算机程序产品的所有可能组合中。应当明白,本文呈现的示例性实施方式可以彼此任意组合来实践。

应当注意,词语“包括”不一定排除存在除列出的那些元件或步骤之外的其它元件或步骤,并且元件前面的词语“一(a、an)”不排除存在多个这样的元件。应当进一步注意,任何附图标记不限制权利要求的范围,示例性实施方式可以至少部分地通过硬件和软件这两者来实施,并且几个“装置(means)”、“单元”或“装置(device)”可以通过相同的硬件项来表示。

在附图和说明书中,已经公开了示例性方面。然而,可以对这些实施方式进行许多变化和修改。因此,虽然采用了特定术语,但是它们仅用于一般性和描述性意义,而不是用于限制的目的,实施方式的范围是由以下权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1