分发方法和分发系统的制作方法

文档序号:7852848阅读:112来源:国知局
专利名称:分发方法和分发系统的制作方法
技术领域
本文中讨论的实施例涉及分发方法和分发系统。
背景技术
智能电表开始在欧洲和美国使用,智能电表的演示实验开始在日本举行。智能电表是具有通信功能的电量计。智能电表可以通过网络向电力供应商报告用电量。如果智能电表安装在住户中,人员不需要去读取电表。
专利文献I :日本公开特许公报No. 2003-242063还正在提议具有无线通信功能的智能电表。使用这样的智能电表将会便于通过无线通信来分发固件。例如,通过使用专利文献I中描述的技术,可以分发智能电表的固件。然而,在专利文献I所描述的技术中,要在服务器中预先设置指示分发顺序的表。因此,在包括了可以在任何时间进行安装和移除的节点(例如智能电表)的网络环境中,设置这样表是低效的。通过执行多跳广播,可以将固件分发至每个智能电表。在广播中,分发目的地并不限制于特定的节点,并且根据多跳,固件可以分发至广泛的节点。然而,当通过窄的无线电频率范围(例如IEEE 802. 15. 4)来多跳广播具有相当大尺寸的数据(例如固件)时,网络可能会暂时受到扰动。通常,通过将大尺寸数据分成多个块来传输大尺寸数据。当通过多跳来广播每个块并且在特定的块中发生网络扰动时,下一个块的分发会被延迟,直至扰动停止为止。如果这样的等待时间积累起来,可能会需要很长的时间来传输所有的块。

发明内容
因此,本发明的一个方面的目的是提供有效地执行数据分发的分发方法和分发系统。根据本发明的方面,在分发系统中执行一种分发方法。所述分发系统包括用于分发数据的分发源装置和多个分发目的地装置。所述分发方法包括由分发源装置通过经由多个阶段扩大搜索范围来搜索分发目的地装置;由分发源装置在每个阶段中执行允许将数据分发到通过在每个阶段中的搜索所找到的分发目的地装置的允许处理;由分发目的地装置在预定范围内检测在该分发目的地装置获取数据之前已经获取了所述数据的其它分发目的地装置;以及由分发目的地装置根据分发的允许来执行从所述其它分发目的地装置获取所述数据的获取处理。


图I示出了根据本发明的实施例的分发系统的配置;图2是用于描述根据第一实施例的固件分发处理的基本程序的示例的时序图;图3是用于描述根据第一实施例的固件分发处理的基本程序的示例的时序图(接图2);图4示出了仅将分发目的地确认消息发送到一个跳区间(hop section)的示例;图5示出了发送分发目的地响应消息的示例;图6示出了下载允许消息的第一发送示例;图7示出了发送下载开始请求消息的示例;图8示出了发送固件文件的示例;图9示出了下载请求等待报告消息的第一发送示例;图10示出了接收报告消息的第一发送示例;
图11示出了下载允许消息的第二发送示例;图12示出了将下载开始请求消息发送到相邻节点的示例;图13示出了从相邻节点发送固件文件的示例;图14示出了下载请求等待报告消息的第二发送示例;图15示出了接收报告消息的第二发送示例;图16示出了仅在两个跳区间内发送分发目的地确认消息的示例;图17示出了根据本发明的实施例的分发源装置的硬件配置;图18示出了根据第一实施例的分发源装置的功能配置;图19示出了根据第一实施例的节点的功能配置;图20是用于描述根据第一实施例的分发源装置的处理程序的流程图;图21示出了分发目的地确认消息的配置;图22示出了下载允许消息的数据部分的配置;图23示出了根据第一实施例的固件文件的发送消息的数据部分的配置;图24是用于描述由根据第一实施例的节点所执行的下载处理的处理程序的流程图;图25示出了下载请求等待报告消息的数据部分的配置;图26是用于描述由根据第一实施例的节点所执行的分发处理的处理程序的流程图;图27是用于描述根据第一实施例的由接收到下载请求等待报告消息的节点所执行的处理程序的流程图;图28是用于描述当复位日期临近时由节点所执行的处理的流程图;图29示出了根据第二实施例的固件文件的发送消息的数据部分的配置;以及图30是用于描述根据第二实施例的当由已经接收到下载允许消息的节点通过广播接收固件文件时的处理程序的流程图。
具体实施例将参照附图来说明本发明的优选实施例。图I示出了根据本发明的实施例的分发系统的配置。在分发系统I中,分发源装置10是作为待分发到各个节点的固件的分发源的通信装置。分发源装置10通过网络40从下载服务器30下载待分发的固件。分发源装置10通过使用无线通信来将所下载的固件分发至节点N。
下载服务器30是用于存储固件且用作多个分发系统I的固件的下载源的计算机。节点N是具有无线通信功能的通信装置。在本实施例中,节点N是分发目的地装置的示例。节点N的具体示例为智能电表。在该情况下,节点N的安装位置为住户。住户之间的间隔不是统一的,因此,如果分发系统I只配置有智能电表,可能会存在不能够从任何节点N接收无线电波的节点N。因此,仅为了中继无线通信,还可能设置中继装置作为节点N。根据本实施例的分发方法不依赖于节点N的功能。因此,根据本实施例的分发方法可以应用于除了智能电表之外的通信装置。在本实施例中,节点N的附图标记具有N[(T4] [a^h]的格式。[(Γ4]表示从分发源 装置10的跳数。跳数是从分发源装置10发送的消息在到达节点N之前所通过的其他节点N的个数。[a h]是用于识别定位在同一跳数范围内(在同一跳区间内)的每个节点N的代码。当节点N不彼此区分时,节点简称为“节点N”。此外,当描述在特定跳区间内的节点N的集合时,跳数附在N之后,例如“节点NI ”。对由根据第一实施例的分发系统I所执行的固件分发处理的基本程序进行描述。图2和图3是用于描述由根据第一实施例的分发系统I所执行的固件分发处理的基本程序的示例的时序图。为了方便起见,在时序图中只示出了节点N的一些。在步骤SlOl中,下载服务器30使用FTP (文件传输协议)向分发源装置10传输存储了待分发的固件的文件(固件文件)。例如,下载包括新版本固件的一部分或全部的固件文件。接下来,下载服务器30向分发源装置10发送开始更新固件的请求(步骤S102)。在该更新开始请求中,指定了分发开始日期。接下来,分发源装置10向下载服务器30返回对该更新开始请求的响应(步骤S103)。当分发开始日期临近时,分发源装置10通过仅在一个跳区间(S卩,跳数=0)内广播来发送分发目的地确认消息,以搜索固件文件分发目的地(步骤S104a、S104b)。这就是说,通过将搜索范围限制到一个跳区间来搜索分发目的地。图4示出了将分发目的地确认消息仅发送至一个跳区间的示例。如图4所示,分发目的地确认消息ml仅发送至一个跳区间,并因此被在一个跳区间内的节点NO接收,而不发送到两个或更多个跳区间的节点N。例如,分发目的地确认消息ml包括待分发的固件的识别信息(版本等)。在接收到分发目的地确认消息ml的节点NO中,用于应用待分发的固件的节点NO通过单播向分发目的地确认消息ml的发送源返回分发目的地响应消息(步骤S105a、S105b)。分发目的地确认消息ml的发送源为分发源装置10。此外,分发目的地响应消息是用于表示相应节点是固件的分发目的地的消息。图5示出了发送分发目的地响应消息的示例。图5示出了从所有的节点NO返回分发目的地响应消息m2的示例。分发源装置10以接收分发目的地响应消息m2的顺序将作为分发目的地响应消息m2的发送源的节点NO的识别信息加入到分发目的地列表中。分发目的地列表是被计划作为分发目的地的节点N的列表信息。例如,分发源装置10将作为首先接收到的分发目的地响应消息m2的发送源的节点NO确定为第一发送目的地(下载目的地)。然而,可以通过其他方法来确定所述发送目的地的顺序。
在图2中,分发目的地响应消息m2首先从节点NOa接收到(步骤S105a)。因此,分发源装置10通过单播向节点NOa发送下载允许消息(步骤S106)。下载允许消息是允许下载固件的消息。图6示出了该下载允许消息的第一发送示例。图6示出了下载允许消息m3a发送到节点NOa的示例。已经接收到下载允许消息m3a的节点NOa通过单播向分发源装置10发送下载开始请求消息(步骤S107)。该下载开始请求消息是请求开始下载的消息。图7示出了发送下载开始请求消息的示例。图7示出了节点NOa正发送下载开始请求消息m4a的示例。已经接收到下载开始请求消息m4a的分发源装置10通过单播向作为下载开始请求消息m4a的发送源的节点NOa发送固件文件(S108-1至S108_n)。图2示出了固件文件被划分成η个块并且固件文件以块为单位进行发送的示例。 图8示出了发送固件文件的示例。图8示出了分发源装置10正向节点NOa发送固件文件Π的示例。如上所述,只有已接收到下载允许消息m3的节点N被允许执行下载。也就是说,通过该下载允许消息m3,分发源装置10可以执行关于固件文件fl的下载(分发)的排它控制。在本实施例中,术语“分发”是从发送源的角度来使用的,而术语“下载”则是从分发目的地的角度来使用的。因此,分发和下载的处理内容是相同的。即使当发送固件文件f I时重复地接收到不期望的下载开始请求消息m4a,分发源装置10忽略重复接收到的下载开始请求消息m4a。当固件文件的下载完成时,节点NOa通过仅在一个跳区间(B卩,跳数=0)内广播来发送下载请求等待报告消息(步骤S109)。下载请求等待报告消息用于向相邻节点报告该节点本身可以随后作为固件文件的发送源。在本实施例中,相邻节点是在一个跳区间范围内的节点。图9示出了下载请求等待报告消息的第一发送示例。如图9所示,下载请求等待报告消息m5a仅在一个跳区间范围内发送,并因此被在所述一个跳区间内的节点N0b、N0h、Nla和分发源装置10所接收,并且下载请求等待报告消息m5a不跳跃两个或更多个跳区间。已接收到下载请求等待报告消息m5a的节点N检测到存在作为固件文件的分发源的相邻节点,并存储该下载请求等待报告消息m5a的发送源的地址信息。同时,即使分发源装置10接收到下载请求等待报告消息m5a,分发源装置10忽略此消息。也就是说,只有节点N存储目的地信息。可以设置每个节点N中所保留的地址信息项的数量的上限。例如,当上限为3时,每个节点N保留三个或更少的下载请求等待报告消息m5的地址信息,并忽略从第四次及第四次以后接收到的下载请求等待报告消息m5。当从第四次及第四次以后接收下载请求等待报告消息m5时,可以从旧地址信息开始丢弃地址信息,从而可以保留新接收到的下载请求等待报告消息m5的发送源的地址信息。当下载请求等待报告消息m5a被成功发送时,固件文件fl到节点NOa的下载完成。节点NOa通过单播向分发源装置10发送接收报告消息(步骤S110)。图10示出了接收报告消息的第一发送示例。图10示出了接收报告信息m6a从节点NOa发送到分发源装置10的示例。
已经接收到该接收报告消息m6a的分发源装置10从分发目的地列表中删除接收报告消息m6a的发送源(节点NOa)的识别信息。也就是说,关于节点NOa,记录已经发送过固件文件fI。接下来,分发源装置10通过单播向在分发目的地列表中在节点NOa之后输入的NOb节点发送下载允许消息m3b (图3,步骤S111)。图11示出了下载允许消息的第二发送示例。图11示出了下载允许消息m3b被发送到节点NOb的示例。已接收到下载允许消息m3b的节点NOb保留对保留有固件文件fl的节点NOa的地址信息。也就是说,在与节点NOb相邻的节点中,存在保留有待发送的固件文件的节点。因此,节点NOb通过单播向与目的地信息相关的节点NOa发送下载开始请求消息m4b,而不是向分发源装置10发送下载开始请求消息(步骤S112)。此外,节点NOb通过单播向分发源装置10发送下载开始报告消息(步骤S113)。下载开始报告消息是表示下载允许消息m3b已被成功接收并且从相邻节点的下载将要开始的消息。 图12示出了将下载开始请求消息发送到相邻节点的示例。图12示出了下载开始请求消息m4b从节点NOb发送到节点NOa的示例。此外,图12示出了下载开始报告消息m7b从节点NOb发送到分发源装置10的示例。当接收到下载开始报告消息m7b时,分发源装置10确定要执行从相邻节点的下载,并且不发送固件文件。假设节点NOb不保留保存有固件文件的相邻节点的目的地信息,则节点NOb向分发源装置10发送下载开始请求消息。在该情况下,对于节点NOb执行与步骤S108至SllO相同的处理。接下来,接收到下载开始请求消息m4b的节点NOa通过单播将固件文件fl发送至作为下载开始请求消息m4b的发送源的节点NOb (步骤S114-1至S114_n。图13示出了从相邻节点发送固件文件的示例。图13示出了固件文件fl从节点NOa发送到节点NOb的示例。固件文件Π是节点NOa从分发源装置10下载得到的。当下载固件文件fl完成时,节点NOb通过仅在一个跳区间(即,跳数=0)内广播来发送下载请求等待报告消息m5b (步骤S115)。也就是说,向相邻节点报告节点NOb可以作为固件文件的发送源。图14示出了下载请求等待报告消息的第二发送示例。如图14所示,下载请求等待报告消息m5b仅发送至一个跳区间,并因此被在一个跳区间内的节点N0a、N0c、Nlc、Nlb、Nla和分发源装置10所接收,并且该下载请求等待报告消息m5b不跳越两个或更多个跳区间。已经接收到下载请求等待报告消息m5b的节点N检测到存在有作为固件文件f I的发送源的相邻节点,并在上限范围内存储该下载请求等待报告消息m5b的发送源的地址信息。同时,即使分发源装置10接收到下载请求等待报告消息m5b,分发源装置10忽略此消息。当下载请求等待报告消息m5b被成功发送时,固件文件fl到节点NOb的下载(分发)完成。节点NOb通过单播向分发源装置10以及作为固件文件fl的下载源的节点NOa两者发送接收报告消息m6b (步骤S118a、S118b)。图15示出了接收报告消息的第二发送示例。图15示出了接收报告消息m6b从节点NOb发送到节点NOa和分发源装置10两者的示例。已经接收到接收报告消息m6b的分发源装置10从分发目的地列表中删除接收报告消息m6b的发送源(节点NOb)的识别信息。也就是说,关于节点NOb,记录已经发送过固件文件f I。当固件文件f I从相邻节点下载时,接收报告消息m6b也发送到分发源装置10,以向分发源装置10报告已经完成分发的节点N (步骤S116)。也就是说,目的在于向分发源装置10报告已经完成和未完成分发的节点N,以及在于以排他性方式或选择性方式来执行在分发系统I中的分发。因此,可以防止周围的无线频段由于集中而被耗尽。随后,关于注册在分发源装置10的分发目的地列表中的节点NOc至NOh,通过上述程序通过单播将固件文件f I从分发源装置10或相邻节点顺序地分发至每一个节点N。当固件文件分发给在分发目的地列表中注册的所有节点N时,分发源装置10通过仅在一个跳区间内广播来发送分发目的地确认消息ml以进行再确认(步骤S118a、S118b)。已经接收到固件文件f I的节点NO不对分发目的地确认消息ml进行响应。即使随后接收 到不期望的接收报告消息m6,分发源装置10忽略该接收报告消息m6并继续处理。在发送分发目的地确认消息ml之后,当过去了预定时长(例如30秒)时,分发源装置10确定对于在一个跳区间内的节点N完成了固件文件f I的分发。因此,分发源装置10将搜索范围扩大了一个阶段(stage)(即,一跳)。具体地,分发源装置10通过仅在两个跳区间(即,跳数=1)内广播来发送分发目的地确认消息ml (步骤S119a、S119b)。例如,在步骤S119a中,分发目的地确认消息ml通过从节点NOa跳跃到达节点Nla。此外,在步骤S119b中,分发目的地确认消息ml通过从节点NOb跳跃到达节点Nib。图16示出了仅在两个跳区间内发送分发目的地确认消息的示例。图16示出了分发目的地确认消息ml通过从节点NO跳跃发送到节点NI的示例。然而,该消息仅在两个跳区间内发送并且不跳跃三个或更多个跳区间。即使随后接收到不期望的接收报告消息,分发源装置10忽略该接收报告消息,并继续处理。在已经接收到分发目的地确认消息ml的节点NI中,用于应用待分发的固件的节点NI通过单播向分发目的地确认消息ml的发送源返回分发目的地响应消息m2 (步骤S120a、S120b)。随后,以与针对节点NO相似的方式来针对节点NI分发固件文件。然后,搜索范围以一跳为单位扩大至三个跳区间、四个跳区间、五个跳区间等等,从而完成固件文件fI到所有节点N的分发。即使扩大了搜索范围,分发目的地确认消息ml和下载允许消息m3仍发送到分发源装置10。可以通过在分发源装置10中的设置来改变要作为搜索范围的跳数上限。例如,可以将30跳设置为指定值。如上所述,根据本实施例,作为分发目的地的节点N的搜索范围以步进的方式扩大,并在每一个步进中,针对搜索到的节点N执行分发。已接收到分发的节点N可以作为分发源。因此,固件文件fl可以在相邻节点之间传输(或下载)。通过以步进式扩大搜索范围以及在相邻节点之间(尤其是在包括在上一步进的搜索范围内的节点N与包括在下一步进的搜索范围内的节点N之间)执行传输,可以降低固件文件fl通过多跳广播进行传输的可能性。也就是说,防止固件文件fl的传输以增加的重复性来执行。此外,在某一时间点作为分发源和分发目的地的节点N由分发源装置10排他地管理。因此,可以防止由于用于多个节点N的下载源同时集中于单个节点N而造成的网络负载局部饱和。因此,即使通过无线电频率范围小的通信方法,固件文件fl仍有效地分发。作为结果,可以防止网络中的扰动,并且因此该分发被预期与通过多跳广播来分发固件文件fl相比在较短的时间内完成。接下来,对用于实施上述分发方法的分发源装置10和节点N进行详细的描述。图17示出了根据本发明的实施例的分发源装置的硬件配置。图17中示出的分发源装置10包括驱动装置100、非易失性存储器102、易失性存储器103、CPU 104和接口装置105,它们通过总线B互连。用于实施由分发源装置10执行的处理的程序由记录介质101提供。当记录程序的 记录介质101设置在驱动装置100中时,该程序通过驱动装置100从记录介质101安装到非易失性存储器102中。然而,程序可以不从记录介质101安装,程序可以通过网络从另外的计算机下载。非易失性存储器102存储安装后的程序以及该程序所使用的文件和数据。在被给出激活程序的指令时,易失性存储器103从非易失性存储器102读取程序并存储该程序。CPU 104根据存储在易失性存储器103中的程序来执行与分发源装置10相关的功能。接口装置105用作用于连接到网络的接口。记录介质101的示例为便携式记录介质,例如⑶_R0M、DVD盘或USB存储器。非易失性存储器102的示例为HDD (硬盘驱动器)或闪存。记录介质101和非易失性存储器102均是计算机可读记录介质。然而,分发源装置10可以不包括驱动装置100。各个节点N具有与分发源装置10相同的硬件。图18示出了根据第一实施例的分发源装置的功能配置。如图18所示,分发源装置10包括固件接收单元11、分发目的地搜索单元12、下载允许单元13、分发单元14和完成检测单元15。这些单元实施为安装在分发源装置10中的使CPU 104执行处理的程序。此夕卜,分发源装置10包括分发目的地列表存储单元16。可以通过易失性存储器103或非易失性存储器102来实施分发目的地列表存储单元16。固件接收单元11从下载服务器30接收固件文件fl。分发目的地搜索单元12搜索要作为固件文件fl的分发目的地的节点N。分发目的地搜索单元12将搜索到的节点N的识别信息记录到分发目的地列表存储单元16中。如上所述,分发目的地搜索单元12以步进方式来扩大搜索范围,并搜索在每个步进(阶段)中的节点N。在本实施例中,搜索范围由跳数指定。然而,可以根据通信方式来改变搜索范围的标准和单位。下载允许单元13顺序地或排他地向由分发目的地搜索单元12所搜索到的节点N报告分发的允许(即,下载允许消息m3)。分发单元14向节点N发送固件文件fl。完成检测单元15检测每个节点N的固件文件Π的发送的完成。图19示出了根据第一实施例的节点的功能配置。如图19所示,节点N包括分发源检测单元201、分发请求单元202、下载单元203、分发源报告单元204、接收报告单元205、复位单元206、开始请求接收单元207、分发单元208和完成检测单元209。这些单元实施为安装在节点N中的使得节点N的CPU执行处理的程序(例如,固件)。此外,节点N包括地址信息存储单元210。可以通过节点N的易失性存储器或非易失性存储器来实施地址信息存储单元210。
分发源检测单元201基于分发目的地确认消息ml或下载请求等待报告消息m5的接收来检测固件文件fl的分发目的地的存在。当接收到下载请求等待报告消息m5时,分发源检测单元201将下载请求等待报告消息m5的发送源的地址信息记录在地址信息存储单元210中。当期望接收待分发的固件文件fl时,分发请求单元202向分发目的地确认消息ml的发送源发送分发目的地响应消息m2。下载单元203从分发目的地确认消息ml或下载请求等待报告消息m5的发送源下载固件文件H。当至少一个地址信息项记录在地址信息存储单元210中时,下载单元203从与地址信息相关的节点N下载固件文件fl。当固件文件f I的下载完成时,分发源报告单元204向相邻节点发送下载请求等待报告消息m5以报告节点N本身可以作为发送源。
接收报告单元205向固件文件f I的分发源和分发源装置10发送表示固件文件f I的接收完成的接收报告消息m6。复位单元206复位节点N,使得存储在固件文件fl中的固件的更新生效。复位意味着例如重新激活节点N开始请求接收单元207从另一个节点N接收下载开始请求消息m4。分发单元208向下载开始请求消息m4的发送源发送固件文件fI。完成检测单元209检测固件文件fI的发送的完成。在下面,对分发源装置10和节点N的处理程序进行描述。图20是用于描述根据第一实施例的分发源装置10的处理程序的流程图。在图20的处理中,假设分发源装置10已经从下载服务器30下载了固件文件fl。也就是说,假设已经执行了图2中的步骤SlOl至 S103。当分发开始日期临近时,分发目的地搜索单元12确定分发目的地确认消息ml的跳数H是否小于或等于上限值(步骤S201)。在图20的处理中的起点处,跳数H的初始值为零。此外,上限值记录在例如非易失性存储器102中。当跳数H小于或等于上限值(在步骤S201为“是”),分发目的地搜索单元12通过仅在跳数H个跳区间内广播来发送分发目的地确认消息ml (参见图4)(步骤S202)。图21示出了分发目的地确认消息的配置。如图I所示,分发目的地确认消息ml包括报头部分和数据部分。报头部分对于所有消息是常见的,其包括消息类型、数据长度、发送源MAC地址和发送目的地MAC地址。消息类型表示消息的类型。在分发目的地确认消息ml中,表明消息是分发目的地确认消息ml的指示被指定为消息类型。数据长度是数据部分的长度。发送源MAC地址是消息的发送源的MAC地址。发送目的地MAC地址是消息的发送目的地的MAC地址。分发目的地确认消息ml被广播,因此广播地址被指定为发送目的地MAC地址。同时,数据部分包括制造商ID、目标节点标识符、固件格式和固件版本以及非目标固件保留必要性。制造商ID是作为用于应用待分发的固件的目标的节点的制造商的标识符。假设在根据本实施例的分发系统I中,可能存在如下情况包括了由不同制造商制造的装置,以作为节点N。如果节点N所属于的制造商不同于待分发的固件所适用的节点的制造商,则该节点不是固件的应用目标。
目标节点标识符是用于应用待分发的固件的节点N的类型的标识符。节点N的类型基于节点N的功能。例如,智能电表和中继装置是不同类型的节点。固件格式是表示固件文件fl的格式的信息。例如,固件格式表示包括在固件文件fl中的数据是否是整个固件、只是更新的部分、压缩数据或加密的数据。固件版本是包括在固件文件fl中的固件的版本。非目标固件保留必要性是表示是否每个节点N要保留包括了不适用于相应节点N的固件的固件文件H。根据制造商ID、目标节点标识符以及固件版本来确定固件是否适用于节点N。保留固件文件fl的必要性与中继固件文件fl的分发的必要性相同。报头部分对所有的消息是常见的,因此,为了方便起见,下面只描述消息的数据部分。此外,跳数在较低的层(由分发源装置10和节点N使用的通信协议层)进行管理,由此在图21中未示出跳数。 接下来,分发目的地搜索单元12设置等待分发目的地响应消息m2的定时器(步骤S203)。例如,定时器设置为30秒之后。在等待分发目的地响应消息m2 (步骤S204中为“是”)时,分发目的地搜索单元12接收响应于分发目的地确认消息ml而返回的分发目的地响应消息m2 (见图5)(步骤S205)。当接收到的分发目的地响应消息m2的数量在分发目的地列表存储单元16的上限之内(在步骤S206中为“是”)时,分发目的地搜索单元12将包括在接收到的分发目的地响应消息m2中的发送源MAC地址记录到分发目的地列表存储单元16中,以作为分发目的地列表的条目(分发目的地信息)(步骤S207)。同时,当接收到的分发目的地响应消息m2的数量超过分发目的地列表存储单元16的上限时(在步骤S206中为“否”),分发目的地搜索单元12释放用于等待分发目的地响应消息m2的定时器(步骤S208),并且处理进行到步骤S211。当用于等待分发目的地响应消息m2的时限临近时(在步骤S204中为“否”),分发目的地搜索单元12确定分发目的地信息是否记录在分发目的地列表存储单元16中(步骤S209)。当没有记录分发目的地信息时(在步骤S209中为“否”),分发目的地搜索单元12将跳数H加一(步骤S210),并重复步骤S201及以后的步骤。也就是说,要作为分发目的地的节点N的搜索范围被扩大。同时,当分发目的地信息记录在分发目的地列表存储单元16中时(在步骤S209中为“是”),该处理进行到步骤S211。在跳数H+1的跳区间内搜索要作为分发目的地的节点的处理结束。接下来,执行将固件文件Π顺序地分发至所发现的节点的处理。在步骤S211中,下载允许单元13从记录在分发目的地列表存储单元16中的分发目的地信息中选择一个分发目的地信息项,并发送具有作为发送目的地MAC地址的分发目的地信息的下载允许消息m3。例如,以分发目的地信息项记录在分发目的地列表存储单元16中的顺序来每次选择一个分发目的地信息项。然而,可以选择多个分发目的地信息项,并且可以基本上同时发送具有作为发送目的地MAC地址的相应分发目的地信息项的多个下载允许消息m3。例如,可以针对存储在分发目的地列表存储单元16中的全部分发目的地信息项来基本上同时发送下载允许消息m3。图22示出了下载允许消息m3的数据部分的配置。如图22所示,下载允许消息m3包括复位日期、划分数量、块长度、固件格式和非目标固件保留必要性。复位日期是待分发的固件生效的日期。例如,复位日期是固件所应用于的节点N被复位(或重新激活)的时间。也就是说,复位日期是用于匹配新固件在已经接收到分发的固件文件fl的节点中生效的日期以使得在节点N中不产生不一致性的参数。划分数量是当分发固件文件fl时固件文件fl被划分成的块数。块长度是一个块的数据长度(大小)。固件格式和非目标固件保留必要性的含义与在分发目的地确认消息ml中的同名参数相同。接下来,分发单元14从已经接收到下载允许消息m3的节点N接收下载开始请求消息m4 (参见图7)或下载开始报告消息m7 (参见图12)(步骤S212)。取决于接收到下载允许消息m3的节点N (作为分发目的地的节点N)的固件文件Π的下载源(分发源)来接收下载开始请求消息m4或下载开始报告消息m7。也就是说,当接收到下载开始请求消息m4时(在步骤S213中为“是”),下载源为分 发源装置10。因此,分发单元14将固件文件f I (见图8)发送给作为分发目的地的节点N(步骤 S214)。图23示出了根据第一实施例的固件文件fI的发送消息的数据部分的配置。如图23所示,数据部分包括块号、块长度和块。块号是当固件文件fl以块为单位划分时每个块的顺序。块长度是一个块的数据长度。块是块的实体。在步骤S214中,固件文件fl被划分成对应于在下载允许消息m3中指定的划分数量的块数。具有对应于划分数量的在图23中示出的数据部分的多个消息从分发源装置10多次地发送至作为分发目的地的节点。当下载允许消息m3基本上同时发送到多个节点N时,分发单元14可以从多个节点N接收下载开始请求消息m4。然而,例如,分发单元14将固件文件Π发送到作为首先接收到的下载开始请求消息m4的发送源的节点N,并忽略来自其他节点N的下载开始请求消息m4。也就是说,在第一实施例中,每次将来自一个分发源(分发源装置10或已经分发过固件文件的节点N)的固件文件Π分发到一个节点N。其下载开始请求消息m4被忽略的节点N则检测当在发送下载开始请求消息m4之后的预定时间量内没有接收到固件文件fl时的超时。已检测到超时的节点N等待接收下一个下载允许消息m3。同时,当接收到下载开始报告消息m7时(在步骤S213中为“否”),下载源不是分发源装置10。因此,分发单元14不发送固件文件fl。在这种情况下,当下载允许消息m3发送至多个节点N时,所述多个节点N中的每个节点将下载开始请求消息m4发送给与存储在每个节点中的地址信息存储单元210中的地址信息相关的其他节点。当并行发送的下载开始请求消息m4的发送目的地彼此不重叠时,在节点N中并行地分发(下载)固件文件fl。同时,重复地接收到下载开始请求消息m4的节点N将固件文件f I发送到作为首先接收到下载开始请求消息m4的发送源的节点N中,并且忽略来自其他节点N的下载开始请求消息m4。其下载开始请求消息m4被忽略的节点N则检测当在发送下载开始请求消息m4之后的预定时间量之内没有接收到固件文件f I的超时。当另外的地址信息项存储在已经检测到超时的节点N的地址信息存储单元210中时,节点N向与其他地址信息相关的节点N发送下载开始请求消息m4。如上所述,下载允许消息m3基本上同时发送给多个节点N,因此在节点N中并行地执行固件文件f I的分发。作为结果,与其中下载允许消息m3仅发送给一个节点N的情况相比,分发固件文件fl的效率提高了。在步骤S214之后或当S213中结果为“否”时,完成检测单元15等待接收接收报告消息m6。当接收到接收报告消息m6 (参见图10和图15)时(步骤S215),完成检测单元15从分发目的地列表中存储单元16中删除与作为接收报告消息m6的发送源的节点N相关的分发目的地信息(步骤S216)。接下来,下载允许单元13确定在分发目的地列表存储单元16中是否剩余有分发目的地信息(步骤S217)。当存在剩余分发目的地信息时(在步骤S217中为“是”),重复步骤S211及以后的步骤。也就是说,固件文件fl被分发到在跳数H的跳区间内搜索到的其他节点N。 同时,当不存在有剩余分发目的地信息时(在步骤S217中为“否”),分发目的地搜索单元12将跳数H加一(步骤S218),并重复步骤S201及以后的步骤。也就是说,要作为分发目的地的节点N的搜索范围被扩大。接下来,对由每个节点N执行的处理程序进行描述。图24是用于描述由根据第一实施例的节点执行的下载处理的处理程序的流程图。在图24中,描述了一个节点N。当分发源检测单元201接收到分发目的地确认消息ml时(步骤S301),分发请求单元202确定待分发的固件是否适用于节点N本身(步骤S302)。也就是说,分发请求单元202确定节点N本身是否匹配包括在分发目的地确认消息ml (图21)中的制造商ID以及目标节点标识符。当它们匹配时,分发请求单元202确定包括在分发目的地确认消息ml (图21)中的固件版本是否比应用于节点N本身的固件版本新。当待分发的固件适用于节点N本身时(在步骤S302中为“是”),分发请求单元202确定是否已接收(下载)到固件的固件文件fl (步骤S303)。当接收到固件文件fl时(在步骤S303中为“否”),图24的处理结束。同时,当没有接收到固件文件fl时(在步骤S303中为“是”),这个处理进行到步骤S305。此外,当待分发的固件不适用于节点本身时(在S302步骤中为“否”),分发请求单元202确定包括在分发目的地确认消息ml中的非目标固件保留必要性的值是否为“需要”(步骤S304)。当非目标固件保留必要性的值为“不需要”时(在步骤S304中为“否”),不保留固件文件fl,并因此结束图24的处理。同时,当非目标固件保留必要性的值是“需要”时(在步骤S304中为“是”),该处理进行到步骤S305。在步骤S305中,分发请求单元202通过单播向分发源装置10发送分发目的地响应消息m2 (参见图5)(步骤S305)。接下来,下载单元203等待接收下载允许消息m3。当接收到下载允许消息m3时(步骤S306),下载单元203确定地址信息是否记录在地址信息存储单元210中(步骤S307)。也就是说,确认是否存在已经下载了固件文件fl的任何相邻节点。当地址信息没有记录在地址信息存储单元210中时(在步骤S307中为“否”),下载单元203通过单播向下载允许消息m3的发送源(即,分发源装置10)发送下载开始请求消息m4 (参见图7)(步骤S308)。
同时,当地址信息记录在地址信息存储单元210中时(在步骤S307中为“是”),下载单元203通过单播向与任一地址信息项相关的节点N发送下载开始请求消息m4(参见图12)(步骤S309)。接下来,下载单元203通过单播向下载允许消息m3的发送源(即分发源装置10)发送下载开始报告消息m7 (参见图12)(步骤S310)。在步骤S308或步骤S310之后,下载单元203接收从分发源装置10或相邻节点发送的固件文件Π(步骤S311)。如上所述,固件文件f I被划分成块,并以多次进行发送。接收到的固件文件fl保留在例如易失性存储器中。当在步骤S309中下载单元203向与地址信息相关的节点N发送下载开始请求消息m4时,并且当在等待了预定时间量之后没有从发送目的发送固件文件f I时,检测到超时。当检测到超时并且另一个地址信息项存储在地址信息存储单元210中时,下载单元203 基于所述另一个地址信息重复步骤S309及以后的步骤。作为重复步骤S309及以后的步骤的结果,当针对所有的地址信息项检测到超时时,下载单元203进行等待以接收下一个下载允许消息m3。当作为下载开始请求消息m4的发送源的节点N处于向另一个节点发送固件文件fl的处理中时检测超时。接下来,下载单元203确定与固件文件fl相关的固件是否适用于节点本身(步骤S312)。该确定基于包括在在步骤S306中接收到的下载允许消息m3中的制造商ID、目标节点标识符和固件版本通过与步骤S302相同的处理来执行。当固件适用时(步骤S312中为“是”),下载单元203使用存储在固件文件f I中的固件来重写(应用)已经安装在非易失性存储器中的固件(步骤S313)。也就是说,固件被更新。该更新基于包括在下载允许消息m3中的固件格式来执行。下载单元203将表示固件被更新的信息(下文中简称为“更新标志”)记录在易失性存储器中。更新标志的内容可以是包括在下载允许消息m3中的复位日期。当节点N被激活时,安装在易失性存储器中的固件被加载到易失性存储器中,并且因此在这个时间点,被重写之前的固件有效。因此,节点N的操作没有立即对应于重写之后的固件。接下来,分发源报告单元204通过仅在一个跳区间内(即跳数=0)广播来发送下载请求等待报告消息m5 (参见图9或图14)(步骤S314)。图25示出了下载请求等待报告消息m5的数据部分的配置。如图25所示,下载请求等待报告消息m5的数据部分包括制造商ID、目标节点标识符、固件格式、固件版本以及非目标固件保留必要性。也就是说,下载请求等待报告消息m5的数据部分的配置与分发目的地确认消息ml的数据部分的配置相同。此外,在分发目的地确认消息ml的数据部分中的项的值被应用为下载请求等待报告消息m5的数据部分的项。接下来,接收报告单元205确定分发源装置10是否是固件文件f I的下载源(步骤S315)。当相邻节点是下载源时(在步骤S315中为“否”),接收报告单元205通过单播向相邻节点发送接收报告消息m6 (见图15)(步骤S316)。当步骤S315的结果为“是”时或在步骤S316之后,接收报告单元205通过单播向分发源装置10发送接收报告消息m6 (参见图10或图15)步骤S317)。接下来,对当已经下载有固件文件f I的节点N (下载过的节点N)向另一个节点分发固件文件fI时执行的处理程序进行描述。
图26是用于描述由根据第一实施例的节点所执行的分发处理的处理程序的流程图。在图26中,只描述了一个节点N。当开始请求接收单元207接收到从另一个节点N发送的下载开始请求消息m4时(步骤S321),分发单元208向另一个节点N发送记录在易失性存储器中的固件文件fl (步骤S322)。固件文件f I被划分成块并以多次进行发送。当固件文件f I的发送完成时,完成检测单元209接收接收报告消息m6 (参见图15)(步骤S323)。当下载允许消息m3基本上同时发送到多个节点N时,开始请求接收单元207可以从多个节点N接收下载开始请求消息m4。在该情况下,开始请求接收单元207忽略除了首先接收到的一个下载开始请求消息m4之外的任何下载开始请求消息m4。接下来,对当每个节点N接收由下载过的节点N发送的下载请求等待报告消息m5时所执行的处理程序进行描述。
图27是用于描述由根据第一实施例的、接收到下载请求等待报告消息m5的节点所执行的处理程序的流程图。在图27中,描述了一个节点N。当接收到下载请求等待报告消息m5时(步骤S331),分发源检测单元201确定固件文件fl是否已经下载在节点N本身中(步骤S332)。也就是说,确定固件文件fl是否记录在易失性存储器中。此外,可以确定与记录在易失性存储器中的固件文件fl相关的制造商ID、目标节点标识符以及固件版本是否与包括在下载请求等待报告消息m5中的制造商ID、目标节点标识符以及固件版本相匹配。当下载了固件文件f I时(在步骤S332中为“否”),图27的处理结束。当没有下载固件文件fl时(在步骤S332中为“是”),分发源检测单元201确定已经记录在地址信息存储单元210中的条目(地址信息)的数量是否小于上限值(步骤S333)。当条目的数量达到上限值时(在步骤S333中为“否”),图27的处理结束。同时,当条目的数量小于上限值时(在步骤S333中为“是”),分发源检测单元201将包括在下载请求等待报告消息m5中的发送源MAC地址作为地址信息记录到地址信息存储单元210中(步骤S334)。接下来,对当复位日期临近时由已经接收到固件文件f I的节点N所执行的处理进行描述。图28是用于描述当复位日期临近时由节点所执行处理的流程图。在图28中,描述了一个节点N。然而,更新标志没有记录在易失性存储器中的节点N不执行图28中的处理程序。更新标志是表示固件已经被更新的信息,其在图24中的步骤S313处记录。当复位单元206检测到复位日期已临近时(在步骤S351中为“是”),复位单元206对节点N进行复位(步骤S352)。通过复位该节点N,在非易失性存储器中的更新的固件被加载到易失性存储器中。作为结果,节点N基于已经更新了的固件的控制进行操作。接下来,对第二实施例进行描述。在第二实施例中,描述不同于第一实施例的点。因此,在第二实施例中没有特别提及的点与第一实施例中的点相同。在第二实施例中,发送源(分发源装置10或节点N)在图8或图13中示出的状态下(即,当发送固件文件fl时)通过广播来发送固件文件H。然而,为了防止多跳广播,广播仅在一个跳区间内执行。作为结果,接收到下载允许消息m3的节点N之外的节点可以并行接收固件文件H。例如,在图8的情况中,不仅节点NOa而且其他节点NO都可以并行接收固件文件fI。也就是说,首先,固件文件fl的发送消息将会到达除了发送目的地之外的节点N,而不管是单播还是广播。因此,也使得其他节点N接收固件文件fl。具体地,在第二实施例中,在图20的步骤S205和图26的步骤S323中,分发源装置10的分发单元14或作为发送源的节点N的分发单元208通过广播在仅一个跳区间内发送固件文件fI。图29示出了根据第二实施例的固件文件的发送消息的数据部分的配置。如图29所示,数据部分包括复位日期、固件格式、非目标固件保留必要性、划分数量、块数、块长度和块。
参数的含义与在下载允许消息(图22)或通过单播发送的固件文件的发送消息(图23)中的同名参数相同。已经接收到下载允许消息m3的节点N (例如,图8中的节点NOa)接收在图24的步骤S310中通过广播仅在一个跳区间内发送的固件文件fl。同时,没有接收到下载允许消息m3的节点N (例如,图8中的NOb至NOh)当通过广播接收固件文件时执行在图30中示出的处理。图30是用于描述在第二实施例中当没有接收到下载允许消息的节点通过广播接收到固件文件时的处理程序的流程图。在图30中,描述了没有接收到下载允许消息的一个节点N。在步骤S401中,下载单元203检测固件文件f I的广播。接下来,下载单元203确定是否已经下载了固件文件Π(步骤S402)。该确定方法可以与图27中的步骤S332相同。当下载了固件文件fl时(在步骤S402中为“否”),图30中的处理结束。当没有下载固件文件f I时(在步骤S402中为“是”),下载单元203继续接收以块为单位发送的固件文件Π (步骤S403)。当接收到固件文件fI时,下载单元203确定存储在固件文件fI中的固件是否适用于节点本身(步骤S404)。该确定方法可以与图24中的步骤S302相同。但是,固件的制造商ID、目标节点标识符和固件版本从固件文件fl中获取。此外,当执行广播时,制造商ID、目标节点标识符和固件版本可以包括在固件文件fl的发送消息的数据部分中。在这种情况下,即使没有接收到固件文件fl所有的块,下载单元203也可以通过接收一个块来确定存储在固件文件fl中的固件是否适用于节点本身。然而,这存在如下缺点由于包括了制造商ID、目标节点标识符和固件版本,增加了每个块的数据量。当固件适用于节点本身时(步骤S404中为“是”),下载单元203对已经安装在非易失性存储器中的固件进行更新(步骤S405)。也就是说,已经安装在非易失性存储器中的固件被存储在固件文件fl中固件所重写。下载单元203在易失性存储器中记录更新标志。当步骤S404的结果为“否”时,或者在步骤S405之后,分发源报告单元204通过广播仅在一个跳区间(即,跳数=0)内发送下载请求等待报告消息m5 (参见图9或图14)(步骤 S406)。接下来,接收报告单元205通过单播向分发源装置10发送接收报告消息m6(参见图10或图15)(步骤S407)。如上所述,根据第二实施例,通过广播,固件文件fl可以从一个节点N同时分发到多个节点N。因此,与第一实施例相比,可以减少整个分发系统I的分发时间。此外,因为当发送固件文件fl时广播的跳数是受限的,所以可以防止固件文件fl通过多跳广播进行传输。在上述实施例中,分发目的地确认消息ml和下载请求等待报告消息m5的跳数可以为一或更多。当跳数增加时,固件文件fl的分发可以通过多跳广播来执行。因此,在上述实施例所应用的网络环境中,要考虑分发处理的效率来选择适当的跳数。此外,已经下载了固件文件fl的相邻节点的检测可以基于从相邻节点发送的下载请求等待报告消息m5来执行。例如,已经接收到下载允许消息m3的节点可以以有限的跳数来发送广播,以搜索已经下载了固件文件fl的相邻节点。已经下载了固件文件fl的相邻节点要对该广播进行响应。基于该响应,作为广播的发送源的节点N可以检测已经下载了固件文件f I的相邻节点。待分发的数据可以不是特定装置的固件。任何类型的数据可以作为分发对象,只 要该数据是电子数据即可。此外,上述实施例可以应用于有线网络环境。在上述实施例中,分发目的地搜索单元12是搜索单元的一个示例。下载允许单元13是允许单元的一个示例。分发源检测单元201是检测单元的一个示例。分发请求单元202是获取单元的一个示例。根据本发明的方面,有效地执行了数据的分发。本发明不限于文中所描述的具体实施例,并且可以在不脱离本发明的范围的情况下进行变化和修改。
权利要求
1.一种在分发系统中执行的分发方法,所述分发系统包括用于分发数据的分发源装置和多个分发目的地装置,所述分发方法包括 由所述分发源装置通过经由多个阶段扩大搜索范围来搜索所述分发目的地装置;由所述分发源装置在每个阶段中执行允许将所述数据分发到通过在每个阶段中的搜索所找到的所述分发目的地装置的允许处理; 由所述分发目的地装置在预定范围内检测在所述分发目的地装置获取所述数据之前已经获取了所述数据的其它分发目的地装置;以及 由所述分发目的地装置根据分发的允许执行从所述其它分发目的地装置获取所述数据的获取处理。
2.根据权利要求I所述的分发方法,还包括 由所述其它分发目的地装置通过有限跳数的广播来发送所述数据,其中 所述执行获取处理包括获取通过所述广播发送的所述数据。
3.根据权利要求I所述的分发方法,其中 所述检测包括在所述预定范围内检测在通过所述搜索找到所述分发目的地装置的阶段之前的阶段中已经获取了所述数据的所述其它分发目的地装置。
4.根据权利要求I所述的分发方法,其中 所述检测包括在所述预定范围内基于接收通过有限的跳数广播的消息来检测所述其它分发目的地装置,所述消息由所述其它分发目的地装置响应于获取所述数据而发送。
5.—种分发系统,包括 分发源装置,用于分发数据;以及 多个分发目的地装置,其中 所述分发源装置包括 搜索单元,用于通过经由多个阶段扩大搜索范围来搜索所述分发目的地装置;以及允许单元,用于在每个阶段中允许将所述数据分发到由所述搜索单元在每个阶段中所找到的所述分发目的地装置;以及所述分发目的地装置包括 检测单元,用于在预定范围内检测在所述分发目的地装置获取所述数据之前已经获取了所述数据的其它分发目的地装置;以及 获取单元,用于根据分发的允许从所述其它分发目的地装置获取所述数据。
6.根据权利要求5所述的分发系统,其中 所述其它分发目的地装置通过有限跳数的广播来发送所述数据,其中 所述获取单元获取通过所述广播发送的所述数据。
7.根据权利要求5所述的分发系统,其中 所述检测单元在所述预定范围内检测在所述搜索单元找到所述分发目的地装置的阶段之前的阶段中已经获取了所述数据的所述其它分发目的地装置。
8.根据权利要求5所述的分发系统,其中 所述检测单元在所述预定范围内基于接收通过有限的跳数广播的消息来检测所述其它分发目的地装置,所述消息由所述其它分发目的地装置响应于获取所述数据而发送。
全文摘要
本发明涉及分发方法和分发系统。所述分发方法在所述分发系统中执行。所述分发系统包括用于分发数据的分发源装置和多个分发目的地装置。所述分发方法包括由分发源装置通过经由多个阶段扩大搜索范围来搜索分发目的地装置;由分发源装置在每个阶段中执行允许将所述数据分发到通过在每个阶段中的搜索所找到的分发目的地装置的允许处理;由分发目的地装置在预定范围内检测在分发目的地装置执行所述检测之前已经获取了所述数据的其它分发目的地装置;以及由分发目的地装置根据分发的允许执行从所述其它分发目的地装置获取所述数据的获取处理。
文档编号H04L29/08GK102811254SQ20121018150
公开日2012年12月5日 申请日期2012年6月4日 优先权日2011年6月3日
发明者丸山城二, 林克宪, 平田真一, 小原木敬祐, 古泽卓二, 川角浩亮, 野泽正晴, 小林克己 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1