JP6045957B2 - 配信装置、配信システム、配信方法および配信プログラム - Google Patents

配信装置、配信システム、配信方法および配信プログラム Download PDF

Info

Publication number
JP6045957B2
JP6045957B2 JP2013070706A JP2013070706A JP6045957B2 JP 6045957 B2 JP6045957 B2 JP 6045957B2 JP 2013070706 A JP2013070706 A JP 2013070706A JP 2013070706 A JP2013070706 A JP 2013070706A JP 6045957 B2 JP6045957 B2 JP 6045957B2
Authority
JP
Japan
Prior art keywords
distribution
program
content
parent
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013070706A
Other languages
English (en)
Other versions
JP2014195181A (ja
Inventor
和宏 河辺
和宏 河辺
武弥 石田
武弥 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2013070706A priority Critical patent/JP6045957B2/ja
Publication of JP2014195181A publication Critical patent/JP2014195181A/ja
Application granted granted Critical
Publication of JP6045957B2 publication Critical patent/JP6045957B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、配信装置、配信システム、配信方法および配信プログラムに関し、特に、ツリー構造を形成する複数の配信中継装置それぞれにプログラムやコンテンツを配信する技術に関する。
従来、特にアドホックネットワーク等の無線ネットワークを形成する装置(ノード)全てのファームウェア等のソフトウェアを更新する場合に、配信装置がソフトウェアを所定のサイズで分割してからマルチキャスト配信する方法があった。しかし、このようなマルチキャスト配信方法は、無線通信の環境変化等の影響により、ノードがソフトウェアを受信できないという取りこぼしが発生することがあった。
そこで、ファームウェアを分割して送信する際に、送信タイミングを調整することにより取りこぼしを少なくする方法があった(特許文献1)。
また、ネットワーク階層を考慮したマルチキャストによるデータ配信を行う方法があった(特許文献2)。
特開2010−288026号公報 特開2012−169915号公報
しかしながら、ツリー構造を形成するノード(配信中継装置)に対してマルチキャスト配信を行う場合、通信異常等により、1つの配信中継装置が受信できなかった(配信失敗が発生した)ときに、その未受信の配信中継装置を頂点とする部分木を形成するノード全てにソフトウェアが配信されなかった。
従来(特許文献1、特許文献2)の配信装置は、ソフトウェアの配信後、受信できていない部分の問合せを行い、取りこぼしが発生した場合に個別に再配信(ユニキャスト配信)を行う方法のため、ソフトウェアが配信されていない部分木を形成するノード全てに対して個別にユニキャスト配信する必要があった。
特に、ツリー構造が巨大化したシステムにおいて、配信失敗が発生した配信中継装置がツリー構造の上位に位置する場合、ユニキャスト配信を行うべき数が多くなり、非効率的であるという問題点があった。
本発明は、以上のような問題を解決するためになされたものであり、ツリー構造を形成する複数の配信中継装置に効率的に配信する配信装置、配信システム、配信方法および配信プログラムを提供することを課題とする。
前記課題を解決するために、本発明の配信装置は、1以上のツリー構造を形成する複数の配信中継装置それぞれと通信可能に接続され、プログラムまたはコンテンツを配信する配信装置であって、前記複数の配信中継装置間における親ノードと子ノードとの関係が記録されたツリー構造テーブルを備え、前記ツリー構造の頂点に位置する頂点親配信中継装置それぞれに前記プログラムまたはコンテンツを第1マルチキャスト配信し、前記子ノードを有する親配信中継装置それぞれに、前記プログラムまたはコンテンツの受信確認を行い、未受信親配信中継装置それぞれに前記プログラムまたはコンテンツを第2マルチキャスト配信することを特徴とする。
配信失敗が発生した場合に、まず、部分木を形成する未受信親ノード中継装置それぞれに第2マルチキャスト配信するため、ユニキャスト配信する前に未受信の配信中継装置を減らすことができる。
本発明によれば、配信装置からのユニキャスト配信回数を減らすことができるため、配信装置からのデータ送信量を低減でき、効率的に配信できる。
また、配信装置からのデータ送信量が低減されることで、配信装置と頂点親ノード中継装置との間の全体的なデータ送信量の低減、トラフィック量の低減、データ送信にかかる時間の低減につながり、効率的に配信できる。
また、本発明によれば、マルチキャストによるプログラムまたはコンテンツの更新後に、到達していない分割されたプログラムまたはコンテンツの到達状況を把握し、部分木でのマルチキャストでのプログラムまたはコンテンツの更新を実行することにより、全体としての転送量の削減が可能となる。
また、本発明によれば、転送量の削減が可能となるため、特に転送速度が遅いネットワークあるいは、非常に通信品質の悪いネットワークでプログラムまたはコンテンツの更新にかかる時間を削減することができる。
本発明に係るツリー構造配信システムの全体構成図である。 本発明に係る配信装置のブロック図である。 経路情報テーブルの一例である。 配信管理部が実行する処理の全体のフローチャートである。 (2)配信確認処理のフローチャートである。 (3)受信確認処理のフローチャートである。 1段目のルータに対する配信確認処理の一例である。 2段目のルータに対する配信確認処理の一例である。 3段目のルータに対する配信確認処理の一例である。 全てのルータに対する受信確認処理の一例である。
以下、図面を参照して、本発明の実施の形態(以下、「本実施形態」と称する)につき詳細に説明する。なお、各図は、本発明について概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。また、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
[ツリー構造配信システム]
図1に示すように、ツリー構造配信システム100は、配信サーバ1と、その配信サーバ1を頂点としたツリー構造を形成する複数のルータ2(201(0段目)、211〜213(1段目)、221〜228(2段目)、231〜238(3段目))とを備える。
複数のルータ2は、図1に示すように、
(親ノード)配信サーバ1、(子ノード)ルータ201
(親ノード)ルータ201、(子ノード)ルータ211、212、213
(親ノード)ルータ211、(子ノード)ルータ221、222、223
(親ノード)ルータ212、(子ノード)ルータ224、225、226
(親ノード)ルータ213、(子ノード)ルータ227、228
(親ノード)ルータ222、(子ノード)ルータ231、232、233
(親ノード)ルータ224、(子ノード)ルータ234、235
(親ノード)ルータ226、(子ノード)ルータ236
(親ノード)ルータ227、(子ノード)ルータ237、238
というツリー構造を形成する。
このツリー構造における親ノードと子ノードとは互いに無線ネットワーク4を介して、通信可能に接続されている。無線ネットワーク4は、インターネットプロトコル(Internet Protocol)技術を利用して相互接続されるコンピュータネットワークである。
本実施形態においてこの無線ネットワーク4は、無線LAN(Local Area Network)やZigBee(登録商標)、Bluetooth(登録商標)等の無線による通信ネットワークとして説明するが、有線のネットワークであってもよい。
また、配信サーバ1には操作端末3が接続されており、ユーザからの指示が操作端末3を介して入力される。
(配信サーバ1)
配信サーバ1は、このツリー構造が記録された経路情報テーブル13(図3)を用いて、アプリケーションソフトやファームウェア等のプログラムまたはコンテンツをマルチキャスト配信したり、ユニキャスト配信したりする。
配信サーバ1は、この経路情報テーブル13を用いて、親ノードを指定してマルチキャスト配信を行うことで、その指定した親ノード(ルータ2)を頂点(起点)とする部分木を構成する全てのルータ2を対象とした配信を行うことができる。
また、配信サーバ1は、経路情報テーブル13を用いて、1つのノードを指定してユニキャスト配信を行うことで、その指定したノード(ルータ2)を対象とした配信を行うことができる。
配信サーバ1の構成については詳細を後記する。
(ルータ2)
ルータ2(無線通信中継装置)は、ルーティングテーブルを備え、無線ネットワーク4間を相互接続する通信機器であり、一般的なルータである。
このルータ2には、不図示のソフトウェア更新対象装置が通信可能に接続されており、配信サーバ1から配信されたソフトウェア等をそのソフトウェア更新対象装置に転送する。これにより、ソフトウェア更新対象装置のソフトウェア等を更新することができる。
また、ルータ2は、配信サーバ1からソフトウェアの配信確認があったとき、そのソフトウェアを受信したか否かを配信サーバ1に応答する。
(操作端末3)
操作端末3は、不図示の操作入力部や画面表示部等を備え、配信サーバ1に接続され、操作入力部を介してユーザから入力された指示を配信サーバ1に入力したり、配信サーバ1からの情報を画面表示部を介してユーザに提供したりする装置である。この操作端末3は、図1に示すように配信サーバ1から独立した装置、例えば、PC(Personal Computer)等であってもよいが、配信サーバ1が操作端末3の機能や構成部を備えてもよい。
(配信サーバ1の構成)
図2に示すように、配信サーバ1は、通信制御部11と、木構造管理部12と、経路情報テーブル13と、配信管理部14とを備える。通信制御部11と木構造管理部12と配信管理部14とは、制御部として機能し、経路情報テーブル13は、記憶部として機能する。
制御部は、装置全体を制御する構成部であり、例えば、CPU(Central Processing Unit)で構成され、CPUが記憶部(不図示)に格納されるプログラム(不図示)を展開し実行することによって配信サーバ1の各機能が実現される。
記憶部は、データやプログラムを記憶する構成部であり、例えば、HDD(Hard Disc Drive)、RAM(Random Access Memory)、光ディスク等の記憶手段である。
(通信制御部11)
通信制御部11は、無線ネットワーク4と接続する不図示のインタフェース(通信部)を介して、ルータ2と通信可能に接続し、データの送受信を制御する構成部である。
(木構造管理部12)
木構造管理部12は、経路情報テーブル13を用いて、ツリー構造の経路を管理する構成部である。
例えば、ツリー構造が変化したとき、変化した経路情報の通知(イベント)をルータ2から通信制御部11が受信する。木構造管理部12は、この変化した経路情報を用いて経路情報テーブル13を更新する。
また、操作端末3を用いてルータ2の追加登録を行って経路情報テーブル13を更新することもできる。
(経路情報テーブル13)
経路情報テーブル13は、ツリー構造配信システム100における配信サーバ1を頂点としたツリー構造が記録されており、例えば、図3に示す構造を有する。
IDは、経路情報テーブル13における識別番号である。Parentは親ノードにあたるルータ201のMACアドレス、Childには子ノードにあたるルータ201のMACアドレスが記録される。Rootにはツリー構造配信システム100におけるツリー構造の頂点にある配信サーバ1に直接接続されたルータ201のMACアドレス「01: 01: 01: 01: 02: 01」が記録されている。
例えば、ID=1は、配信サーバ1とルータ201との関係を示している。経路情報テーブル13を備える配信サーバ1自身が親ノードとなるため、Parentには何も記録されていない(null)。配信サーバ1には子ノードとしてルータ201が接続されているため、Childにはルータ201のMACアドレス「01: 01: 01: 01: 02: 01」が記録されている。
ID=2、3、4は、ルータ201と子ノード(ルータ211〜213)との関係を示している。
(1段目)
ID=5〜12は、ルータ201から1段目にあたる親ノード(ルータ211〜213)と子ノード(ルータ221〜228)との関係を示している。
ID=5、6、7は、ルータ211とその子ノード(ルータ221、222、223)との関係を示している。ID=8、9、10は、ルータ212とその子ノード(ルータ224、225、226)との関係を示している。ID=11、12は、ルータ213とその子ノード(ルータ227、228)との関係を示している。
(2段目)
ID=13〜24は、ルータ201から2段目にあたる親ノード(ルータ221〜228)と子ノード(ルータ231〜238)との関係を示している。
ID=14、15、16は、ルータ222とその子ノード(ルータ231、232、233)との関係を示している。ID=18、19は、ルータ224とその子ノード(ルータ234、235)との関係を示している。ID=21は、ルータ226とその子ノード(ルータ236)との関係を示している。ID=22、23は、ルータ227とその子ノード(ルータ237、238)との関係を示している。
(3段目)
ID=25〜32は、ルータ201から3段目にあたる親ノード(ルータ231〜238)と子ノードとの関係を示している。
ここで、ルータ221、223、225、228、231〜238は、子ノードが接続されていないルータである。以下、これら子ノードが接続されていない親ノードを「リーフ」と称する。経路情報テーブル13では、これらリーフのルータ2がParentの場合、Childに何も記録されない(null)。
(経路情報テーブル13の作り直し)
ここで、木構造管理部12は、配信サーバ1を起動させたときや、操作端末3を用いてツリー構造の最新化を要求したときに、経路情報テーブル13を作り直すこともできる。
例えば、木構造管理部12は、図3の経路情報テーブル13からParentが空欄(null)のIDを検索する。ID=1のデータ列がヒットする。そのデータ列のChildのMACアドレス(ルータ201に該当)をParentにもつIDをさらに経路情報テーブル13から検索する。ID=2、3、4のデータ列がヒットする。これにより、ルータ201に接続された子ノード(ルータ221、222、223)のリストを取得する。
次に、木構造管理部12は、経路情報テーブル13からParentがnullではないデータ列を削除し、古い情報の削除を行う。
次に、木構造管理部12は、ルータ201の子ノード(ルータ212、222、223)に対して、子ノードに接続されているルータ2(2段目)の接続情報の送信要求を行う。木構造管理部12は、子ノードから送信された接続情報に基づき、経路情報テーブル13を更新する。さらに、木構造管理部12は接続情報に基づき、子ノードに接続されているルータ2(2段目)に対して、その下位に接続されているルータ2(3段目)の接続情報の要求を行う。このように、木構造管理部12は、ツリー構造を形成する全てのルータ2に対して接続情報の要求を行って、経路情報テーブル13を更新し、最新のツリー構造の情報を取得する。
(配信管理部14)
配信管理部14は、アプリケーションソフトやファームウェア等のプログラムの配信を制御し、各ルータ2に対して配信されたことを確認して、各ルータ2に確実に配信する。この配信管理部14は、(1)配信処理、(2)配信確認処理、(3)受信確認処理を実行する。
(1)配信処理
配信管理部14は、まず、不図示の記憶部に記憶されたソフトウェアをマルチキャスト配信する。配信管理部14は、ソフトウェアを一定サイズに分割し、分割されたソフトウェア毎にマルチキャスト配信(第1マルチキャスト配信)する。
(2)配信確認処理
次に、配信管理部14は、子ノードを有するルータ2に対して、(1)配信処理で配信されたソフトウェアを受信したか否かを確認することで、子ノードに配信したか否かを確認する。つまり、ソフトウェアを受信していなければ、子ノードにソフトウェアをマルチキャスト配信できないためである。ここで、配信していないルータ2があれば、そのルータ2を起点とし、ソフトウェアをマルチキャスト配信(第2マルチキャスト配信)(部分マルチキャスト配信)(再配信)する。
(3)受信確認処理
最後に、配信管理部14は、ツリー構造を形成する全てのルータ2に対して、(1)配信処理または(2)配信確認処理で配信されたソフトウェアを受信したか否かを確認し、受信していないルータ2があれば、そのルータ2に対して、ソフトウェアをユニキャスト配信(再々配信)する。
配信管理部14が実行する各処理についての詳細は後記する。
配信管理部14は、図4に示すように、まず、(1)配信処理(ステップS100)、次に、(2)配信確認処理(ステップS200)、最後に、(3)受信確認処理(ステップS300)を実行して終了する。
(1)配信処理
マルチキャスト配信によるソフトウェアの更新は一般的な処理であるため、配信処理(ステップS100)については、記載を省略する。このマルチキャスト配信を行うことで、配信途中で通信異常等の問題が生じなければ、配信サーバ1は、ツリー構造を形成する全てのルータ2にソフトウェアを配信することができる。
(2)配信確認処理
ここで、配信管理部14が実行する図4のステップS200の配信確認処理について、図5に示すフローチャートを用いて説明する。
まず、配信管理部14は、段数を示すmに1を設定する(m=1)(ステップS201)。
次に、配信管理部14は、経路情報テーブル13を検索して(ステップS202)、m段目のルータ2全てを抽出する(ステップS203)。これにより、a台のルータ2が抽出される(抽出ルータ数=a)。そして、配信管理部14は、抽出したルータ2のうち、リーフであるルータ2を除外する(ステップS204)。これにより、b台のルータ2が除外される(除外ルータ数=b)。以上により、残ったルータ2は子ノードを有するルータ2となる。
そして、配信管理部14は、m段目に残ったルータ2の数が1以上であるか否か(a−b≧1?)、すなわち、m段目に子ノードを有するルータ2があるか否かを判定する(ステップS205)
m段目に子ノードを有するルータ2がない場合(ステップS205,No)、配信確認処理(図4のステップS200)を終了する。
一方、m段目に子ノードを有するルータ2がある場合(ステップS205,Yes)、配信管理部14は、それら子ノードを有するルータ2全てから所定数のルータ2をランダムに選出する(ステップS206)。
ここで、所定数(d)は、(a−b)×N(%)で得られる値cが、c>2であれば、d=cとし、一方、c≦2であれば、d=2とする。Nはシステムで決定した任意の数字(百分率)である。つまり、所定数(d)は2以上の数となる。また、子ノードが1つだけの場合は、所定数が2以上であっても1つのルータ2を選出する。
このNの値は、ツリー構造を形成するルータ2間におけるネットワーク環境に応じて決定する。例えば、ネットワークが切断されやすい等のネットワーク環境が不安定な状況であればNを大きくし、ネットワーク環境が安定している場合はNを小さくする。このネットワーク環境は、ツリー構造全体におけるネットワーク環境であってもよいし、m段目までの一部のツリー構造におけるネットワーク環境であってもよい。
ここで(a−b)×N(%)で得られる値cのみを所定数とすると、Nの値が大きい場合に1つもルータ2が選択されない階層が生じてしまう。そこで、最下層まで配信確認処理が行われるように、どの階層でも最低2つのルータが選択されるように、所定数(d)を2以上とした。しかし、最下層まで配信確認処理が行われればよいため、ツリー構造や各階層のルータ2の数に応じて、所定数(d)は1以上としてもよい。
そして、配信管理部14は、選出したルータ2それぞれに対して配信確認を行い(ステップS207)、選出したルータ2全てから応答データを受信する。
配信管理部14は、これらの応答データを確認し、選出したルータ2全てが、ソフトウェアを子ノードに配信したか否かを判定する(ステップS208)。この処理における、ソフトウェアを子ノードに配信したか否かの判定は、配信処理(ステップS100)で配信されたソフトウェアを受信したか否かで行われる。
選出したルータ2全てからの応答データが「配信した」という応答データがあれば(ステップS208,Yes)、次のステップS210の処理を行う。
一方、「配信していない」という応答データがあれば(ステップS208,No)、その応答データを送信したルータ2を起点としたマルチキャスト配信を行う(ステップS209)。
そして、配信管理部14は段数を示すmに1を加えて(m=m+1)(ステップS210)、ステップS202の処理を再び行う。
(3)受信確認処理
ここで、配信管理部14が実行する図4のステップS300の受信確認処理について、図6に示すフローチャートを用いて説明する。
まず、配信管理部14は、経路情報テーブルを検索して(ステップS301)、全てのルータ2を抽出する(ステップS302)。
そして、配信管理部14は、抽出した全てのルータ2に対して受信確認を行い(ステップS303)、全てのルータ2から応答データを受信する。
この受信確認を行って、(1)配信処理、または(2)配信確認処理で配信されたソフトウェアを受信したか否かを応答データから確認する。
配信管理部14は、ステップS303で受信した応答データを確認して、配信されたソフトウェアを受信していないルータ2があるか否か、すなわち未受信のルータ2があるか否かを判定する(未受信のルータあり?:ステップS304)
未受信のルータ2がなければ(ステップS304,No)、配信管理部14は受信確認処理を終了する。
一方、未受信のルータ2があれば(ステップS304,Yes)、配信管理部14は、その未受信のルータ2にソフトウェアをユニキャスト配信して(ステップS305)、受信確認処理(図4のステップS300)を終了する。
ここで、図7〜図10を用いて、配信管理部14が実行する処理の一例を説明する。図7〜図9を用いて配信確認処理の一例を説明し、図10を用いて受信確認処理の一例を説明する。
図7は、まず、配信管理部14が配信処理(図4のステップS100)を実行して、ソフトウェアをマルチキャスト配信した後のツリー構造を形成する全てのルータ2のソフトウェア受信状況を示したものである。図7〜図10における「○」はそのルータ2がソフトウェアを受信した状態を示し、「×」は受信していない(未受信)状態を示す。すなわち、「×」のルータ2に接続された不図示のソフトウェア更新対象装置は、ソフトウェアが転送されないため、ソフトウェアの更新が行われていないことを示している。
図7におけるツリー構造を形成する全てのルータ2のソフトウェア受信状況は、「○」が、ルータ211、212、221、222、226、231、232、236であり、「×」が、ルータ213、223、224、225、227、228、233、234、235、237、238である。
次に、配信管理部14は、配信確認処理(図4のステップS200)を開始する。
以下、図5の配信確認処理のフローチャートを用いて、図7〜図9の説明を行う。
(図7)配信確認処理(m=1)
図7を用いて、1段目のルータ2に対する配信確認処理の一例を説明する。
配信管理部14は、まず図3の経路情報テーブル13を検索して、m=1段目のルータ2全てを抽出する(ステップS201〜S203)。この処理において、ルータ201のMACアドレス「01: 01: 01: 01: 02: 01」がParentのデータ列からChildのMACアドレスに該当するルータ211〜213が抽出される(抽出ルータ数a=3)。
次に、抽出したルータ2のうち、リーフであるルータ2を除外する(ステップS204)。この処理において、1段目のルータ211〜213のMACアドレスがParentのデータ列(ID=5〜12)のうち、Childがnullのデータはない。つまり、リーフであるルータ2はないため、除外されるルータ2はない(除外ルータ数b=0)。
以上により、ルータ211〜213は子ノードを有するルータ2となる(ステップS205,Yes)。
ここで、Nが10%であったとすると、c=(a−b)×N(%) =0.3であり、c≦2であるため、所定数(d)は2である。そこで、配信管理部14は、子ノードを有するルータ211〜213から2台をランダムに選出する(ステップS206)。ここでは、図7に太線で示したルータ211とルータ213とが選出されたとする。
次に、配信管理部14は、選出したルータ211とルータ213とに対して配信確認を行う(ステップS207)。このとき配信管理部14は、ルータ211とルータ213とに所定の配信確認データを送信し、ルータ211からは「○」、ルータ213からは「×」の応答データを受信する。
配信管理部14は、これらの応答データからソフトウェアを子ノードに配信したか否かを判定する(ステップS208)。これにより、ルータ211は「配信した」、ルータ213は「配信していない」と判定される(ステップS208,No)。
そこで、配信管理部14はルータ213を起点とし、ソフトウェアを部分マルチキャスト配信する(ステップS209)。これにより、ルータ213を頂点としたツリー構造を形成するルータ227、228、237、238に、ソフトウェアが配信される。
そして、配信管理部14はmに1を加える(m=2)(ステップS210)。
この部分マルチキャスト配信を行うことで、図8に示すように、ルータ213、227、237、238はソフトウェアを受信して「○」となったものの、ルータ228はソフトウェアを受信していない「×」のままであったとする。
(図8)配信確認処理(m=2)
次に、図8を用いて、2段目のルータ2に対する配信確認処理の一例を説明する。
配信管理部14は、まず図3の経路情報テーブル13を検索して、m=2段目のルータ2であるルータ221〜228を抽出する(ステップS201〜S203)。(抽出ルータ数a=8)。
次に、抽出したルータ2のうち、リーフであるルータ2を除外する(ステップS204)。この処理において、2段目のルータ221〜229のMACアドレスがParentのデータ列(ID=13〜24)のうち、Childがnullのデータは、ID=13のルータ221、ID=17のルータ223、ID=20のルータ225、ID=24のルータ228である。これらのルータ221、223、225、228が除外される(除外ルータ数b=4)。
以上により、ルータ222、224、226、227は子ノードを有するルータ2となる(ステップS205,Yes)。
ここで、Nが10%であったとすると、c=(a−b)×N(%) =0.4であり、c≦2であるため、所定数(d)は2である。そこで、配信管理部14は、子ノードを有するルータ222、224、226、227のうちから2台をランダムに選出する(ステップS206)。ここでは、図8に太線で示したルータ224とルータ227とが選出されたとする。
次に、配信管理部14は、選出したルータ224とルータ227とに対して配信確認を行い(ステップS207)、ルータ224からは「×」、ルータ227からは「○」の応答データを受信して、判定する(ステップS208)。これにより、ルータ224は「配信していない」、ルータ227は「配信した」と判定される(ステップS208,No)。
そこで、配信管理部14はルータ224を起点とし、ソフトウェアを部分マルチキャスト配信する(ステップS209)。これにより、ルータ224を頂点としたツリー構造を形成するルータ234、235に、ソフトウェアが配信される。
そして、配信管理部14はmに1を加える(m=3)(ステップS210)。
この部分マルチキャスト配信を行うことで、図10に示すように、ルータ224、234はソフトウェアを受信して「○」となったものの、ルータ235はソフトウェアを受信していない「×」のままであったとする。
(図9)配信確認処理(m=3)
次に、図9を用いて、3段目のルータ2に対する配信確認処理の一例を説明する。
配信管理部14は、まず図3の経路情報テーブル13を検索して、m=3段目のルータ2であるルータ231〜238を抽出する(ステップS201〜S203)(抽出ルータ数a=8)。
次に、抽出したルータ2のうち、リーフであるルータ2を除外する(ステップS204)。この処理において、3段目のルータ231〜239のMACアドレスがParentのデータ列(ID=25〜32)のうち、Childがnullのデータは、ID=25〜32の全てのルータ231〜238である。これら全てが除外される(除外ルータ数b=8)。
以上により、配信管理部14は、3段目には子ノードを有するルータ2は無い(ステップS205,No)と判定し、配信確認処理(図4のステップS200)を終了する。
この配信確認処理が終了した時点で、図11に示すように、ルータ223、225、228、233、235はソフトウェアを受信していない「×」のままであったとする。
(図10)受信確認処理
次に、図10を用いて、受信確認処理の一例を説明する。
配信管理部14は、まず図3の経路情報テーブル13を検索して、全てのルータ2を抽出する(ステップS301〜S302)。この処理において、ParentにMACアドレスがあるルータ、すなわち、ツリー構造を形成する全てのルータ2(201、211〜213(1段目)、221〜228(2段目)、231〜238(3段目))が抽出される。
そして、配信管理部14は、抽出した全てのルータ2に対して受信確認を行い(ステップS303)、全てのルータ2から応答データを受信する。このとき、ルータ223、225、228、233、235からは「×」の応答データを受信する。
配信管理部14は、未受信のルータ2があるか否かを判定し(ステップS304)、未受信のルータ2があるため(ステップS304,Yes)、配信管理部14は、その未受信のルータ223、225、228、233、235にソフトウェアをユニキャスト配信する(ステップS305)。このように、個別にソフトウェアを配信することで、ソフトウェアの配信漏れを避けることができる。
そして、配信管理部14は、ソフトウェアをユニキャスト配信した後、受信確認処理(図4のステップS300)を終了する。
この受信確認処理により、例えば、一時的にネットワーク環境が不安定な状況になり、マルチキャスト配信でソフトウェアを受信できなかったルータ2に対して、ソフトウェアをユニキャスト配信する。マルチキャスト配信時より遅い時刻で配信されることで、ルータ2がソフトウェアを受信できるように、ネットワーク環境が改善されることを期待できる。これにより、ユニキャスト配信されたソフトウェアを受信したルータ2のソフトウェア受信状況は「×」から「○」になる。
本発明は、前記した実施形態に限定されることなく、本発明の要旨を逸脱しない範囲で種々の変更や変形を行うことができる。
例えば、(2)配信確認処理、および(3)受信確認処理において、ルータ2に対して配信されたソフトウェアを受信したか否かを確認する際に、ルータ2に受信の有無を応答させているが、配信されたソフトウェアを受信している場合にのみ応答させてもよい。
また、前記実施形態は、アプリケーションソフトやファームウェア等のプログラムの配信に適用したが、音楽データや映像データなどのコンテンツの配信にも適用可能である。
また、ツリー構造配信システム100は、配信サーバ1が複数のルータ2(201)と接続され、ルータ2(201)それぞれを頂点とした複数のツリー構造が形成されていてもよい。
1 配信サーバ(配信装置)
2 ルータ(配信中継装置)
3 操作端末
4 無線ネットワーク
11 通信制御部
12 木構造管理部
13 経路情報テーブル
14 配信管理部
100 ツリー構造配信システム
201 ルータ(0段目)(頂点親配信中継装置)
211〜213 ルータ(1段目)
221〜228 ルータ(2段目)
231〜238 ルータ(3段目)
a 抽出ルータ数
b 除外ルータ数

Claims (12)

  1. 1以上のツリー構造を形成する複数の配信中継装置それぞれと通信可能に接続され、プログラムまたはコンテンツを配信する配信装置であって、
    前記複数の配信中継装置間における親ノードと子ノードとの関係が記録されたツリー構造テーブルを備え、
    前記ツリー構造の頂点に位置する頂点親配信中継装置それぞれに前記プログラムまたはコンテンツを第1マルチキャスト配信し、
    前記子ノードを有する親配信中継装置それぞれに、前記プログラムまたはコンテンツの受信確認を行い、未受信親配信中継装置それぞれに前記プログラムまたはコンテンツを第2マルチキャスト配信する
    ことを特徴とする配信装置。
  2. 前記第2マルチキャスト配信の後で、
    前記配信中継装置の全てに、前記プログラムまたはコンテンツの受信確認を行い、未受信配信中継装置それぞれに前記プログラムまたはコンテンツをユニキャスト配信することを特徴とする請求項1に記載された配信装置。
  3. 前記プログラムまたはコンテンツの受信確認は、
    前記ツリー構造テーブルを用いて、前記頂点親配信中継装置からm段目の前記子ノードである前記配信中継装置が全て抽出され、抽出されたm段目配信中継装置のうち、m+1段目に前記子ノードを有するm段目親配信中継装置に対して行われる
    ことを特徴とする請求項2に記載された配信装置。
  4. 前記プログラムまたはコンテンツの受信確認は、
    さらに、前記m段目親配信中継装置のうちから所定数を選出した、選出m段目親配信中継装置に対して行われる
    ことを特徴とする請求項3に記載された配信装置。
  5. 前記受信確認は、受信確認対象の前記配信中継装置それぞれに、前記プログラムまたはコンテンツを受信したか否かを応答させるメッセージを送信することを特徴とする請求項2ないし請求項4のいずれか一項に記載された配信装置。
  6. 前記受信確認は、受信確認対象の前記配信中継装置それぞれに、前記プログラムまたはコンテンツを受信していれば返信させるメッセージを送信することを特徴とする請求項2ないし請求項4のいずれか一項に記載された配信装置。
  7. 前記配信中継装置から通信経路が変化したことの通知を受けた場合、その変化した通信経路情報を用いて前記ツリー構造テーブルを更新することを特徴とする請求項1ないし請求項6のいずれか一項に記載された配信装置。
  8. 前記複数の配信中継装置それぞれとは無線IPネットワークを介して通信可能に接続され、
    前記プログラムまたはコンテンツは、パケット化されてから配信される
    ことを特徴とする請求項1ないし請求項7のいずれか一項に記載された配信装置。
  9. プログラムまたはコンテンツを配信する配信装置と、1以上のツリー構造を形成する複数の配信中継装置それぞれとが通信可能に接続された配信システムであって
    前記配信装置は、
    前記複数の配信中継装置間における親ノードと子ノードとの関係が記録されたツリー構造テーブルを備え、
    前記ツリー構造の頂点に位置する頂点親配信中継装置それぞれに前記プログラムまたはコンテンツを第1マルチキャスト配信し、
    前記子ノードを有する親配信中継装置それぞれに前記第1マルチキャスト配信されたプログラムまたはコンテンツについて受信確認を行い、未受信親配信中継装置それぞれに前記プログラムまたはコンテンツを第2マルチキャスト配信し、
    前記配信中継装置は、
    前記配信装置からの受信確認に対して、前記プログラムまたはコンテンツの受信の有無を応答する
    ことを特徴とする配信システム。
  10. 前記配信装置は、
    前記第2マルチキャスト配信の後で、
    前記配信中継装置の全てに、前記プログラムまたはコンテンツについて受信確認を再び行い、未受信配信中継装置それぞれに前記プログラムまたはコンテンツをユニキャスト配信することを特徴とする請求項9に記載された配信システム。
  11. 1以上のツリー構造を形成する複数の配信中継装置それぞれと通信可能に接続され、前記複数の配信中継装置間における親ノードと子ノードとの関係が記録されたツリー構造テーブルを備え、プログラムまたはコンテンツを配信する配信装置が実行する配信方法であって、
    前記ツリー構造の頂点に位置する頂点親配信中継装置それぞれに前記プログラムまたはコンテンツを第1マルチキャスト配信し、
    前記子ノードを有する親配信中継装置それぞれに、前記プログラムまたはコンテンツの受信確認を行い、未受信親配信中継装置それぞれに前記プログラムまたはコンテンツを第2マルチキャスト配信する
    ことを特徴とする配信方法。
  12. 請求項11に記載の配信方法を前記配信装置の制御部に実行させる配信プログラム。
JP2013070706A 2013-03-28 2013-03-28 配信装置、配信システム、配信方法および配信プログラム Active JP6045957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013070706A JP6045957B2 (ja) 2013-03-28 2013-03-28 配信装置、配信システム、配信方法および配信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070706A JP6045957B2 (ja) 2013-03-28 2013-03-28 配信装置、配信システム、配信方法および配信プログラム

Publications (2)

Publication Number Publication Date
JP2014195181A JP2014195181A (ja) 2014-10-09
JP6045957B2 true JP6045957B2 (ja) 2016-12-14

Family

ID=51840148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070706A Active JP6045957B2 (ja) 2013-03-28 2013-03-28 配信装置、配信システム、配信方法および配信プログラム

Country Status (1)

Country Link
JP (1) JP6045957B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3641107B2 (ja) * 1997-08-07 2005-04-20 日本電信電話株式会社 電子ファイル配送方法
US8027284B2 (en) * 2006-11-27 2011-09-27 Ntt Docomo, Inc. Method and apparatus for reliable multicasting in wireless relay networks
JP2010199955A (ja) * 2009-02-25 2010-09-09 Seiko Instruments Inc 情報処理装置、無線端末、情報処理プログラム、及び無線端末プログラム
US8583978B2 (en) * 2010-11-09 2013-11-12 Cisco Technology, Inc. Multicast message retransmission
US20150280931A1 (en) * 2013-01-07 2015-10-01 Mitsubishi Electric Corporation Data distribution system, root wireless device, and wireless device

Also Published As

Publication number Publication date
JP2014195181A (ja) 2014-10-09

Similar Documents

Publication Publication Date Title
US20140089619A1 (en) Object replication framework for a distributed computing environment
US10999101B2 (en) Flow synchronization
CN109688235A (zh) 虚拟网络业务处理方法、装置和系统,控制器,存储介质
EP1585254A2 (en) Method of synchronizing management information between a plurality of managing devices in a home network
CN108206779A (zh) 一种集群访问系统、方法及装置
US10826823B2 (en) Centralized label-based software defined network
US20170034124A1 (en) Terminal and multicast address distribution server
WO2017128713A1 (zh) 订阅消息的发布方法及装置
US10091288B2 (en) Ordered execution of tasks
WO2010109767A1 (ja) データ同期システム、データ同期方法、及び同期管理サーバ
US20070299958A1 (en) State synchronization apparatuses and methods
JP5109901B2 (ja) セッションデータ共有方法
US20150312334A1 (en) Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database
JP2010152591A (ja) データベースシステム、データ処理方法及びデータ処理プログラム
JP6045957B2 (ja) 配信装置、配信システム、配信方法および配信プログラム
US20070263671A1 (en) State synchronization apparatuses and methods
WO2012128387A1 (ja) 分散処理システム、分散処理装置、ルーティングテーブル作成方法及びプログラム記録媒体
JP2007272540A (ja) データ配信方法及びデータ配信システム
JP2008124977A (ja) メッセージ配送方法、装置及びプログラム
KR100864987B1 (ko) 클라이언트 동기화 시스템 및 그 방법
JP2005318074A (ja) ストレージグループ設定方法および装置
WO2016177211A1 (zh) 地址解析协议arp表项的同步方法及装置
JP5508472B2 (ja) 情報処理装置、通信システム及び通信方法
JP3839967B2 (ja) 同報通信方法および通信装置
WO2014027479A1 (ja) 管理システム及びそれに用いられる管理装置、並びに管理方法及び管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161116

R150 Certificate of patent or registration of utility model

Ref document number: 6045957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150