JP5434558B2 - ノード、非同期メッセージ中継方法、及び、プログラム - Google Patents

ノード、非同期メッセージ中継方法、及び、プログラム Download PDF

Info

Publication number
JP5434558B2
JP5434558B2 JP2009286073A JP2009286073A JP5434558B2 JP 5434558 B2 JP5434558 B2 JP 5434558B2 JP 2009286073 A JP2009286073 A JP 2009286073A JP 2009286073 A JP2009286073 A JP 2009286073A JP 5434558 B2 JP5434558 B2 JP 5434558B2
Authority
JP
Japan
Prior art keywords
node
relay
message
update information
information distribution
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.)
Expired - Fee Related
Application number
JP2009286073A
Other languages
English (en)
Other versions
JP2011130144A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009286073A priority Critical patent/JP5434558B2/ja
Publication of JP2011130144A publication Critical patent/JP2011130144A/ja
Application granted granted Critical
Publication of JP5434558B2 publication Critical patent/JP5434558B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)

Description

本発明はノード、子ノード、非同期メッセージ中継方法、及び、プログラムに関する。
近年、携帯電話、PDA、及び車載端末などの移動端末が普及し、移動しながら音声や映像などの大容量コンテンツをネットワークを利用して交換したいという要望がユーザの間で高まっている。また、街角監視カメラや、各種センサが生成した情報なども合わせてネットワークに流通させて活用したいといった要望もある。
このような要望に対応するには、特に、様々な種類かつ多量のコンテンツが流通する中において、コンテンツの鮮度を損なわずに、コンテンツの情報をユーザにリアルタイムで届けることが重要となる。
そこで、コンテンツが今どうなっているのか、どう更新されたか、という情報をメタデータとして流通させる更新情報配信システムが重要になる。この更新情報配信システムはコンテンツの更新情報を小さいメッセージに含め、ユーザが利用する利用者装置を論理ツリー構造にして、そのコンテンツの情報を所望するユーザへリアルタイムに配信する。
ところで、昨今、上記のようなメッセージ配信者からユーザへの下り情報流通に加えて、ユーザからメッセージ配信者への上り情報流通も重要となっている。この上り情報流通としては、例えば、現在のコンテンツ情報の配信依頼に関するものや、コンテンツ更新情報の配信の遅延量の報告に関するもの、その他の各種コミュニケーションのためのものなどが考えられる。そして、これらの上り情報流通は、上記の下り情報流通とは非同期に行われるのが実情としてある。
このような上り情報流通と下り情報流通の双方は、一般に、ユーザが利用する複数のクライアントと、メッセージ配信者が利用するサーバと、を例えば特許文献1に開示のようにオーバーレイネットワーク上に構築されたツリー型トポロジや公知のスター型トポロジで接続することで実現されている。
特開2008−299558号公報
しかし、クライアントからサーバーに非同期に送信されるメッセージとしての非同期メッセージの送信頻度は、非同期であるが故、変動することがある。従って、上記のスター型トポロジで複数のクライアントとサーバーを接続すると、短時間で大量の非同期メッセージがサーバーに送信された場合、非同期メッセージを一時的に蓄積しておくバッファが溢れ、この結果、所謂メッセージ落ちが発生してしまう虞がある。
一方、上記のツリー型トポロジでは、そのツリーの構造に従って非同期メッセージがクライアントからサーバーに向かって順々に転送されるようになっている。そして、各ノードは、サーバーを含む上位のノードのバッファが溢れそうになると、そのバッファ溢れを抑えるように、転送する非同期メッセージをバッファリングするようになっており、もって、各ノードのバッファ溢れが効果的に抑制されるようになっている。しかし、上記のツリー型トポロジでは、ツリーの下位に位置するクライアントからサーバー宛に非同期メッセージを送信しようとすると、ホップ数が大きいので、非同期メッセージがクライアントから発信され、実際にサーバーに到達するまでの時間が長くなってしまう。
本願発明の目的は、子ノードからルートノードへの非同期メッセージの送信に要する時間を短縮することができる、ノード、子ノード、非同期メッセージ中継方法、及び、プログラムを提供することにある。
本願発明の第一の観点によれば、ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークに参加可能なノードは、以下のように構成される。即ち、前記ノードは、中継ノードとして機能させる子ノードを前記ネットワークに参加可能な前記複数の子ノードの中から選出する中継ノード選出部を備える。ここで、中継ノードとは、前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継するものである。
本願発明の第二の観点によれば、ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークにおいて、前記複数の子ノードから前記ルートノード宛に発信された非同期メッセージを前記ルートノードへ向けて中継する、非同期メッセージの中継は、以下のような方法で行われる。即ち、前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継する、中継ノードとして機能させる子ノードを、前記ネットワークに参加可能な前記複数の子ノードの中から、選出する、中継ノード選出ステップを含む。
本願発明の第三の観点によれば、ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークに参加可能なノードに、以下の機能を発揮させるプログラムが提供させる。即ち、前記ノードに、前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継する、中継ノードとして機能させる、子ノードを、前記ネットワークに参加可能な前記複数の子ノードの中から、選出する、中継ノード選出部としての機能を発揮させる。
本願発明によれば、子ノードからルートノードへの非同期メッセージの送信に要する時間を短縮することができる。
本発明に係る更新情報配信システム1の構成例を示す概念図である。 本実施形態の利用者装置100の構成を示すブロック図である。 本実施形態の中継装置情報データベース121のデータ構成を示す概念図である。 本実施形態の利用者装置情報データベース122のデータ構成を示す概念図である。 本実施形態のコンテンツ情報データベース123のデータ構成を示す概念図である。 本実施形態の更新情報配信サーバ200の構成を示すブロック図である。 本実施形態による利用者装置100がツリー管理メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による利用者装置100が定期的にツリー管理メッセージを送信する場合の動作を示すフローチャートである。 本実施形態による利用者装置100が更新情報メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による利用者装置100が中継装置周知メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による利用者が非同期メッセージを送信するよう操作した場合の動作を示すフローチャートである。 本実施形態による利用者装置100が定期的に集約済みの非同期メッセージを送信する場合の動作を示すフローチャートである。 本実施形態による利用者装置100が非同期メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による利用者装置100が定期的にバッファ153の使用量を確認する場合の動作を示すフローチャートである。 本実施形態による利用者装置100において予め定められた時間中、常にバッファ153の利用がなかった場合の動作を示すフローチャートである。 本実施形態による更新情報配信サーバ200内でコンテンツ情報データベース223が更新された場合の動作を示すフローチャートである。 本実施形態による更新情報配信サーバ200が非同期メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による更新情報配信サーバ200が定期的にバッファ242の使用量を確認する場合の動作を示すフローチャートである。 本実施形態による更新情報配信サーバ200が定期的に中継装置タイマ244を動作させる動作を示すフローチャートである。 本実施形態による更新情報配信サーバ200がバッファ状況通知メッセージを受信した場合の動作を示すフローチャートである。 本実施形態による中継装置選出の動作を示すフローチャートである。
以下、本発明の一実施形態を、図面を参照して説明する。
図1は、本実施に係る更新情報配信システム1の構成例を示す概念図である。図1において、更新情報配信システム1は、複数の利用者装置100、100、…(子ノード)と、更新情報配信サーバ200(ルートノード)とを有し、論理ネットワーク(オーバーレイネットワーク)を構成している。ある1つのコンテンツに付き1つの更新情報配信システム1が構成されており、複数のコンテンツが存在する場合には、コンテンツ毎に、それぞれ別の更新情報配信システム1が論理ネットワーク上に構成される。
すなわち、更新情報配信システム1を論理ネットワーク上で複数組み合わせることにより、多種多様なコンテンツの更新情報(情報)を、利用者装置100に配信する大規模なシステムを構築することができる。図1の下の更新情報配信システム1の構成例では、更新情報配信サーバ200(ノードn10)を頂点とし、更新情報配信サーバ200の配下に利用者装置100であるノードn8、ノードn11があり、ノードn8の配下にノードn3及びノードn44、ノードn11の配下にノードn22があるというような、ツリー構造の状態で接続されている。
利用者装置100は、更新情報配信サーバ200、もしくは1つまたは複数の利用者装置100と接続する。各利用者装置100は、接続している更新情報配信サーバ200、もしくは1つまたは複数の利用者装置100から更新情報を受信した場合に、更新情報配信システム1での下流にある利用者装置100に更新情報を転送する。論理ネットワーク上にある利用者装置100は、所望するコンテンツを論理ネットワーク上で検索し、そのコンテンツを有する更新情報配信サーバ200または、そのコンテンツを有する更新情報配信サーバ200が構成するツリーに接続している利用者装置100に接続することによって更新情報配信システム1に参加することができる。
さらに利用者装置100(子ノード)は、更新情報配信サーバ200(ルートノード)に対して非同期にメッセージを送信することができる。この非同期メッセージは、例えば、ユーザが現在のコンテンツ情報の通知を依頼したり、メッセージ配信システムのリアルタイム性を保証するためにユーザからメッセージ配信の遅延量を通知してもらったり、ユーザからメッセージ配信者へのコミュニケーションのために利用され、更新情報配信サーバ200へ直接、または、他の利用者装置100を中継装置(中継ノード)として利用した上で送信される。更新情報配信サーバ200は、自身へ送られてくる非同期メッセージの傾向を判断して、適宜ひとつまたは複数の利用者装置100を中継装置として選出する。中継装置として選出された利用者装置100は、他の利用者装置100からの非同期メッセージを中継して、更新情報配信サーバ200へ非同期メッセージを送信する。
図2は、本実施形態の利用者装置100の構成を示すブロック図である。図2において、利用者装置100は、主制御部110と、ネットワークインターフェイス120と、中継装置情報データベース121と、利用者装置情報データベース122と、コンテンツ情報データベース123と、を有する。主制御部110は、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びOS(OperatingSystem)などで構成されたコンピュータの主要部であり、主制御部110の中に、動作するプログラムとして構成されている送受信部160と、更新情報配信システムクライアント部130と、非同期通信クライアント部140と、中継装置機能部150と、を有する。更新情報配信システムクライアント部130は、更新情報配信システム1のツリー構造の管理および更新情報メッセージの送受信を実施する機能部で、ツリー管理機能部131と、コンテンツクライアント部132と、を有する。非同期通信クライアント部140は、非同期メッセージの送受信を実施する機能部で、非同期通信機能部141と、中継装置選択部142と、を有する。中継装置機能部150は、更新情報配信サーバ200から中継装置として選出された場合に中継装置の機能を実施する機能部で、非同期メッセージ集約部151と、集約タイマ152と、バッファ153と、バッファ監視部154と、バッファ状況通知部155と、を有する。
ここで、まず、中継装置情報データベース121と、利用者装置情報データベース122と、コンテンツ情報データベース123と、のデータ構成について説明する。
図3は、本実施形態の中継装置情報データベース121のデータ構成を示す概念図である。中継装置情報データベース121は、自装置が参加している更新情報配信システム1における中継装置情報を保存する。中継装置情報とは、中継装置を一意に識別するクライアントID、IPアドレス、ポート番号など中継装置へ非同期メッセージを送信するために必要な情報である。この中継装置情報には更新情報配信システム1のツリー構造の頂点にある更新情報配信サーバ200の情報もルートノードとして含まれる。
図4は、本実施形態の利用者装置情報データベース122のデータ構成を示す概念図である。利用者装置情報データベース122は、コンテンツ情報データベース123に保存しているコンテンツ毎に、更新情報配信システム1における利用者装置情報を保存する。利用者装置情報とは、利用者装置100を一意に識別するクライアントID、IPアドレス、ポート番号など他の利用者装置100とメッセージを送受信するために必要な情報であり、更新情報配信システム1のツリー構造において自装置より上及び下にある利用者装置100の情報である。
図5は、本実施形態のコンテンツ情報データベース123のデータ構成を示す概念図である。コンテンツ情報データベース123は、自装置が参加している更新情報配信システム1のコンテンツに関するメタデータを保存している。メタデータとは、コンテンツに付随する情報であって、例えば、コンテンツID、URI、タイトル、作成者、作成場所、作成時間、キーワードなどである。さらにメタデータに加えてコンテンツ本体の情報を保持することもできる。
送受信部160は、ネットワークインターフェイス120を介して、更新情報配信サーバ200、または他の利用者装置100からのメッセージを受信して処理する。送受信部は、受信したメッセージがツリー管理メッセージであった場合には、ツリー管理メッセージをツリー管理機能部131へ送る。
また、送受信部160は、受信したメッセージが更新情報メッセージであった場合には、更新情報メッセージをコンテンツクライアント部132へ送る。
さらに、送受信部160は、受信したメッセージが中継装置周知メッセージであった場合には、中継装置周知メッセージを非同期通信機能部141へ送る。
さらに、送受信部160は、受信したメッセージが非同期メッセージであった場合には、非同期メッセージを非同期メッセージ集約部151へ送る。
さらに、送受信部160は、ツリー管理機能部131、コンテンツクライアント部132、非同期通信機能部141、非同期メッセージ集約部151、バッファ状況通知部155からメッセージを受け取り、メッセージに記載されている宛先である更新情報配信サーバ200、または、他の利用者装置100にネットワークインターフェイス120を介してメッセージを送信する。
ツリー管理機能部131は、更新情報配信サーバ200または、ひとつまたは複数の利用者装置100とツリー管理メッセージを送受信することによって更新情報配信システム1を管理する。ツリー管理メッセージを受信した場合には、ツリー管理メッセージに記載の更新情報配信サーバ200または利用者装置100の利用者装置情報を参照し、利用者装置情報データベース122を更新する。また、図2に記載はないが、タイマを利用して定期的に利用者装置情報データベース122を参照して、ツリー管理メッセージを作成し、更新情報配信サーバ200または利用者装置100に対しツリー管理メッセージを送信する。
コンテンツクライアント部132は、更新情報配信サーバ200または利用者装置100から更新情報メッセージを受信すると、更新情報メッセージに記載されたメタデータを参照し、コンテンツ情報データベース123を更新する。さらに、利用者装置情報データベース122を参照し、更新情報配信システム1のツリー構造において自装置より下の利用者装置がひとつまたは複数存在する場合、更新情報メッセージを該当するひとつまたは複数の利用者装置100に転送する。
非同期通信機能部141は、中継装置周知メッセージを受信すると、中継装置周知メッセージに記載の中継装置情報を参照し、中継装置情報データベース121を更新する。さらに、利用者装置情報データベース122を参照し、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在する場合、中継装置周知メッセージを該当するひとつまたは複数の利用者装置100に転送する。
さらに、非同期通信機能部141は、利用者から非同期通信を実行するように操作されると、中継装置選択部142を起動し、非同期メッセージを送信するあて先とする中継装置情報を得る。そして、その中継装置をあて先として非同期メッセージを作成し、非同期メッセージを送信する。
中継装置選択部142は、非同期通信機能部141からの呼び出しを契機に起動する。中継装置選択部142は、中継装置情報データベース121を参照し、非同期メッセージを転送すべき中継装置を選択する。中継装置を選択するに際しては、自利用者装置100の更新情報配信システム1のツリー構造における位置と、中継装置情報データベース121に記載のひとつまたは複数の中継装置の位置と、更新情報配信サーバ200の位置と、を比較することによって中継装置を選択する。例えば、更新情報配信システム1のツリー構造において自利用者装置100から見て最もホップ数の少ない位置にある中継装置、または更新情報配信サーバ200を選択し、あるいは更新情報配信システム1のツリー構造において、更新情報配信サーバ200からのホップ数が極力少ない中継装置を選択する、などがある。
非同期メッセージ集約部151は、非同期メッセージを受信すると非同期メッセージを集約処理する。集約処理とは、非同期メッセージを最終的に受信する更新情報配信サーバ200の負荷を軽減する目的で、例えば、非同期メッセージのヘッダを統一する、統計情報を事前計算する、などがある。この集約処理中に非同期メッセージを受信した場合は、バッファ153にメッセージを保存しておき、集約処理が終了次第、バッファ153に保存しておいた非同期メッセージの集約処理を実施する。
非同期メッセージ集約部151は、集約タイマ152からのアラームを契機に、更新情報配信サーバ200へ集約済みの非同期メッセージを直接的に、換言すれば1ホップで送信する。更に換言すれば、非同期メッセージ集約部151は、更新情報配信サーバ200へ集約済みの非同期メッセージを、ツリーを順々に遡って更新情報配信サーバ200に中継するよりも少ないホップ数となるように更新情報配信サーバ200へ向けて中継する。要するに、非同期メッセージ集約部151は、更新情報配信サーバ200へ集約済みの非同期メッセージを更新情報配信サーバ200へ中継する際、ツリー構造における位置の如何に拘わらず、他の利用者装置100を一切経由することなく、ダイレクトに更新情報配信サーバ200へ中継する。
また、非同期メッセージ集約部151は、非同期メッセージを送信してきた利用者装置100の情報を、予め定められた量だけリスト化しておく。このリストはバッファ状況通知部155からの呼び出しを受けてリストをバッファ状況通知部155に渡す。
バッファ153は、非同期メッセージの中継に利用可能なものであって、有限のメッセージ一時保存機能を提供し、非同期メッセージ集約部151から、非同期メッセージを受け取り保存する。また非同期メッセージ集約部151からの呼び出しを受けて保存していた非同期メッセージを非同期メッセージ集約部151へ渡す。
バッファ監視部154は、バッファ153の利用状況を監視する。バッファ153が溢れそうになった場合、具体的には、バッファ153の利用量が予め定められた閾値を超えた場合、バッファ状況通知部155へその旨を知らせるアラームを出す。また、予め定められた時間(一定時間)中、常にバッファ153の利用がなかった場合、バッファ状況通知部155へその旨を知らせるアラームを出す。
バッファ状況通知部155は、バッファ監視部154からの2種のアラームを受けて、バッファ状況通知メッセージにアラーム情報を記載して、更新情報配信サーバ200へバッファ状況通知メッセージを送信する。ここで、通知されたアラームが、バッファ153の利用量が予め定められた閾値を超えた場合のアラームであった場合、バッファ状況通知部は、非同期メッセージ集約部151から予め定められた量の直近の非同期メッセージを送信してきた利用者装置100のリストを受けてバッファ状況通知メッセージに併せて記載する。
図6は、本実施形態の更新情報配信サーバ200の構成を示すブロック図である。図6において、更新情報配信サーバ200、主制御部210と、ネットワークインターフェイス220と、中継装置情報データベース221と、利用者装置情報データベース222と、コンテンツ情報データベース223と、を有する。主制御部210は、CPU、RAM、及びOSなどで構成されたコンピュータの主要部であり、主制御部210の中に、CPU上で実行可能なプログラムによって実現される送受信部260と、更新情報配信システムサーバ部230と、非同期通信サーバ部240と、を有する。更新情報配信システムサーバ部230は、更新情報配信システム1のツリー構造の管理および更新情報メッセージの送信を実施する機能部で、ツリー管理機能部231と、コンテンツサーバ部232と、を有する。非同期通信サーバ部240は、非同期メッセージの受信、および中継装置を選出する機能を実施する機能部で、非同期通信処理部241と、中継装置管理部246と、バッファ242と、バッファ監視部243と、中継装置タイマ244と、中継装置選出部245(中継ノード選出部)と、を有する。
更新情報配信サーバ200における、中継装置情報データベース221と、利用者装置情報データベース222と、コンテンツ情報データベース223は、利用者装置100の中継装置情報データベース121と、利用者装置情報データベース122と、コンテンツ情報データベース123と同一のデータ構造であるため詳細は説明を省略する。
送受信部260は、ネットワークインターフェイス220を介して、利用者装置100からのメッセージを受信して処理する。送受信部260は、受信したメッセージがツリー管理メッセージであった場合には、ツリー管理メッセージをツリー管理機能部231へ送る。
また、送受信部260は、受信したメッセージが非同期メッセージであった場合には、非同期メッセージを非同期通信処理部241へ送る。
さらに、送受信部260は、受信したメッセージがバッファ状況通知メッセージであった場合には、バッファ状況通知メッセージを中継装置管理部246へ送る。
さらに、送受信部260は、ツリー管理機能部231、中継装置管理部246からメッセージを受け取り、メッセージに記載されている宛先である利用者装置100にネットワークインターフェイス220を介してメッセージを送信する。
ツリー管理機能部231は、利用者装置100のツリー管理機能部131と同じであるため、詳細な説明を省略する。
コンテンツサーバ部232は、利用者からのコンテンツ情報データベース223の更新操作を契機として、利用者装置情報データベース222を参照し、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在する場合、コンテンツ情報データベース223を参照し、更新情報メッセージを作成し、更新情報メッセージを該当するひとつまたは複数の利用者装置100に送信する。
非同期通信処理部241は、非同期メッセージを受信すると非同期メッセージの目的に応じて処理する。非同期メッセージを目的に応じて処理するとは、例えば、更新情報配信サーバ200の管理者へのメッセージであった場合は、管理者へディスプレイなどのユーザインタフェースを通してメッセージを表示する、あるいは遅延量などの統計情報収集を目的としていた場合は、統計処理を実行する、などがある。この処理中に非同期メッセージを受信した場合は、バッファ242にメッセージを保存しておき、処理が終了次第、バッファ242に保存しておいた非同期メッセージの処理を実施する。
また、非同期通信処理部241は、非同期メッセージを送信してきた利用者装置100の情報を、予め定められた量だけリスト化しておく。このリストは中継装置選出部からの呼び出しを受けて、リストを中継装置選出部245に渡す。
バッファ242は、利用者装置100のバッファ153と同じであるため、詳細な説明を省略する。
バッファ監視部243は、バッファ242の利用状況を監視する。バッファ242が溢れそうになったら、具体的には、バッファ242の利用量が予め定められた閾値を超えた場合、中継装置選出部245へその旨を知らせるアラームを出す。
中継装置タイマ244は、中継装置選出部245が動作してから、予め定められた時間が経過した場合、即ち、一定時間毎に、中継装置選出部245へその旨を知らせるアラームを出す。
中継装置選出部245は、バッファ監視部243からのアラームを受信した場合、または中継装置タイマ244からのアラームを受信した場合、または中継装置管理部246からバッファ状況通知メッセージを受信した場合、中継装置選出動作を実施する。
中継装置選出部245は、まず、非同期通信処理部241から非同期メッセージを送信してきた利用者装置100の情報のリストを得る。また、利用者装置100からのバッファ状況通知メッセージを受信していて、そのバッファ状況通知メッセージに同様のリストが記載されていた場合は、リストを統一して、ある一定時間に非同期メッセージを発信した利用者装置100のリストを作成する。このリストには非同期メッセージを送信してきた利用者装置100の更新情報配信システム1のツリー構造における位置、および非同期メッセージを送信してきた時刻が記載されている。このリストを非同期メッセージ管理リストと呼ぶ。非同期メッセージ管理リストから、中継装置選出動作の直近における更新情報配信システム1全体の非同期メッセージの発信された頻度(発信頻度)が分かる。更新情報配信サーバ200および利用者装置100におけるバッファ量は有限長のための、中継装置選出部245は、非同期メッセージの発信頻度に基づいて中継装置の数を決定する。詳しくは、中継装置選出部245は、非同期メッセージの発信頻度と、非同期通信処理部241の非同期メッセージの処理効率と、から中継装置の数を決定する。例えば、中継装置選出動作の直近における非同期メッセージの発信頻度をa個/sec、非同期通信処理部241が非同期メッセージを処理する効率をb個/secとすると、中継装置数mは、
m=β×a/b
と計算する。βは余裕度を表すパラメータである。続いて、中継装置選出部245は、非同期メッセージ管理リストから中継装置をm個、選出する。中継装置選出部は、決定した中継装置の情報を中継装置管理部246に通知する。
中継装置選出部245が中継装置を選出する方法は、上記のものに限られず、例えば以下のような方法も考えられる。即ち、中継装置選出部245は、先ず、更新情報配信システム1のツリー構造を利用者装置100から受信する利用者装置情報に基づいて把握する。次に、上記の非同期メッセージ管理リストに記載された利用者装置100のツリー構造における位置に基づいて、利用者装置100を中継装置数m個分のグループに分ける。ここで、「上記の非同期メッセージ管理リストに記載された利用者装置100のツリー構造における位置に基づいて」とは、非同期メッセージ管理リストに記載の利用者装置100が各グループに可及的に均等に所属するように、という意味である。各グループからの非同期メッセージの発信頻度のバラツキを抑えるためである。次に、中継装置選出部245は、各グループで中心となる利用者装置100を選出する。即ち、中継装置選出部245は、各グループ内で中継装置として動作させる利用者装置100を選出する。このとき、中継装置選出部245は、同一グループ内に属する複数の利用者装置100のツリー構造における位置の重心に最も近い利用者装置100を中継装置として選出する。なお、同一グループ内に属する複数の利用者装置100のツリー構造における位置に選出の直近における非同期メッセージの発信頻度で重み付けした上で、上記の重心を求めることとしてもよい。このように、同一グループに属する複数の利用者装置100のツリー構造における位置の重心に最も近い利用者装置100を中継装置として選出することで、そのグループに属する複数の利用者装置100から発信された非同期メッセージが中継装置に至るまでのホップ数を効果的に抑えることができる。更に、上記のように重み付けを実施した場合は、非同期メッセージを特に多く発信する利用者装置100と中継装置との間のホップ数を重点的に抑えることができる。
中継装置管理部246は、利用者装置100からバッファ状況通知メッセージを受信した場合、中継装置選出部245にバッファ状況通知メッセージを渡す。
また、中継装置管理部246は、中継装置選出部245から、中継装置の情報を得た場合、中継装置情報データベース221を更新する。さらに、中継装置管理部246は、利用者装置情報データベース222を参照し、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在する場合、中継装置の情報を記載した中継装置周知メッセージを作成し、中継装置周知メッセージを該当するひとつまたは複数の利用者装置100に送信する。
次に、本実施形態の動作について説明する。
図7は、本実施形態による利用者装置100がツリー管理メッセージを受信した場合の動作を示すフローチャートである。動作を開始すると、まず送受信部160が他の利用者装置100、更新情報配信サーバ200、もしくは利用者装置100内の主制御部110からの通信を待つ状態(以後、アイドル状態という)となる(S300)。
利用者装置100は、アイドル状態(S300)中に、ツリー管理メッセージを受信すると(S301)、ツリー管理メッセージに記載の更新情報配信サーバ200または利用者装置100の利用者装置情報を参照し、利用者装置情報データベース122を更新し(S302)、アイドル状態に戻る(S300)。
図8は、本実施形態による利用者装置100が定期的にツリー管理メッセージを送信する場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、タイマを利用して定期的に利用者装置情報データベース122を参照して、ツリー管理メッセージを作成し(S311)、更新情報配信サーバ200または利用者装置に対しツリー管理メッセージを送信し(S312)、アイドル状態に戻る(S300)。
図9は、本実施形態による利用者装置100が更新情報メッセージを受信した場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、更新情報配信サーバ200または利用者装置100から更新情報メッセージを受信すると(S321)、更新情報メッセージに記載されたメタデータを参照し、コンテンツ情報データベース123を更新し(S322)、利用者装置情報データベース122を参照し(S323)、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在するかどうかを確認する(S324)。S324において、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在した場合、更新情報メッセージを該当するひとつまたは複数の利用者装置100に転送し(S325)、アイドル状態に戻る(S300)。S324において、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつも存在しなかった場合、アイドル状態に戻る(S300)。
図10は、本実施形態による利用者装置100が中継装置周知メッセージを受信した場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、中継装置周知メッセージを受信すると(S331)、中継装置周知メッセージに記載の中継装置情報を参照し、中継装置情報データベース121を更新し(S332)、利用者装置情報データベース122を参照し(S333)、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在するかどうかを確認する(S334)。S334において、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在した場合、中継装置周知メッセージを該当するひとつまたは複数の利用者装置100に転送し(S335)、アイドル状態に戻る(S300)。S334において、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつも存在しなかった場合、アイドル状態に戻る(S300)。
図11は、本実施形態による利用者が非同期メッセージを送信するよう操作した場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、利用者から非同期メッセージ作成動作を実行するよう操作されると(S341)、中継装置情報データベース121を参照し(S342)、非同期メッセージを転送すべき中継装置を選択し(S343)、その中継装置をあて先として非同期メッセージを作成し(S344)、非同期メッセージを送信し(S345)、アイドル状態に戻る(S300)。
図12は、本実施形態による利用者装置100が定期的に集約済みの非同期メッセージを送信する場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、集約タイマ152が動作すると(S351)、更新情報配信サーバ200へ、集約済みの非同期メッセージを送信し(S352)、アイドル状態に戻る(S300)。
図13は、本実施形態による利用者装置100が非同期メッセージを受信した場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、非同期メッセージを受信すると(S361)、非同期メッセージを送信してきた利用者装置100の情報を、予め定められた量だけリスト化する(S362)。続いて、利用者装置100は、集約処理中かどうか確認する(S363)。集約処理中であった場合は(S363:YES)、非同期メッセージをバッファ153に保存し(S364)、アイドル状態に戻る(S300)。集約処理中でなかった場合は(S363:YES)、非同期メッセージを集約処理する(S365)。集約処理が終了した後、バッファを確認し、バッファ153に処理待ちメッセージが存在するかどうかを確認する(S366)。バッファ153に処理待ちメッセージが存在する場合は(S366:YES)、S365に移行する。バッファ153に処理待ちメッセージが存在しない場合は(S366:NO)、アイドル状態に戻る(S300)。
図14は、本実施形態による利用者装置100が定期的にバッファ153の使用量を確認する場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、定期的にバッファ153の使用量を確認し(S371)、バッファ153が溢れそうかどうか確認する(S372)。バッファ153の利用量が予め定められた閾値を超えた場合(S372:YES)、非同期メッセージを送信してきた利用者装置100のリストを含むバッファ状況通知メッセージを作成し(S373)、バッファ状況通知メッセージを更新情報配信サーバ200へ送信し(S374)、アイドル状態に戻る(S300)。
図15は、本実施形態による利用者装置100において予め定められた時間中、常にバッファ153の利用がなかった場合の動作を示すフローチャートである。利用者装置100は、アイドル状態から(S300)、予め定められた時間中、常にバッファ153の利用がなかった場合にアラームが動作し(S381)、予め定められた時間中、常にバッファ153の利用がなかったという情報を含むバッファ状況通知メッセージを作成し(S382)、バッファ状況通知メッセージを更新情報配信サーバ200へ送信し(S383)、アイドル状態に戻る(S300)。
図16は、本実施形態による更新情報配信サーバ200内でコンテンツ情報データベース223が更新された場合の動作を示すフローチャートである。動作を開始すると、まず送受信部260が他の利用者装置100、もしくは更新情報配信サーバ200内の主制御部210からの通信を待つ状態(以後、アイドル状態という)となる(S400)。
更新情報配信サーバ200が、ツリー管理メッセージを受信する動作、および定期的にツリー管理メッセージを送信する動作は、図7及び図8に示す利用者装置100の動作を同じであるため、詳細な説明は省略する。
更新情報配信サーバ200は、アイドル状態から(S400)、利用者からのコンテンツ情報データベース223の更新操作を受けると(S401)、コンテンツ情報データベースを更新し(S402)、利用者装置情報データベース222を参照し(S403)、更新情報配信システム1のツリー構造において自装置より下の利用者装置がひとつまたは複数存在するかどうか確認する(S404)。更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在する場合(S404:YES)、更新情報メッセージ作成し(S405)、更新情報メッセージを該当するひとつまたは複数の利用者装置100に送信し(406)、アイドル状態に戻る(S400)。更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつも存在しなかった場合(S404:NO)、アイドル状態に戻る(S400)。
図17は、本実施形態による更新情報配信サーバ200が非同期メッセージを受信した場合の動作を示すフローチャートである。更新情報配信サーバ200は、アイドル状態から(400)、非同期メッセージを受信すると(S411)、非同期メッセージを送信してきた利用者装置100の情報を、予め定められた量だけリスト化する(S412)。続いて、利用者装置100は、処理中かどうか確認する(S413)。処理中であった場合は(S413:YES)、非同期メッセージをバッファ242に保存し(S414)、アイドル状態に戻る(S400)。処理中でなかった場合は(S413:NO)、非同期メッセージを処理する(S415)。処理が終了した後、バッファ242を確認し、バッファ242に処理待ちメッセージが存在するかどうかを確認する(S416)。バッファ242に処理待ちメッセージが存在する場合(S416:YES)、S415に移行する。バッファ242に処理待ちメッセージが存在しない場合(S416:NO)、アイドル状態に戻る(S400)。
図18は、本実施形態による更新情報配信サーバ200が定期的にバッファ242の使用量を確認する場合の動作を示すフローチャートである。更新情報配信サーバ200は、アイドル状態から(S400)、定期的にバッファ242の使用量を確認し(S421)、バッファ242が溢れそうかどうか確認する(S422)。バッファ242の利用量が予め定められた閾値を超えた場合(S422:YES)、中継装置選出処理S423に移行する。バッファ242の利用量が予め定められた閾値を超えていない場合(S422:NO)、アイドル状態に戻る(S400)。
図19は、本実施形態による更新情報配信サーバ200が定期的に中継装置タイマ244を動作させる動作を示すフローチャートである。更新情報配信サーバ200は、アイドル状態から(S400)、前回の中継装置選出動作から、予め定められた時間が経過した場合、中継装置タイマ244を動作させ(S431)、中継装置選出処理S423に移行する。
図20は、本実施形態による更新情報配信サーバ200がバッファ状況通知メッセージを受信した場合の動作を示すフローチャートである。更新情報配信サーバ200は、アイドル状態から(S400)、バッファ状況通知メッセージを受信すると(S441)、中継装置選出処理S423に移行する。
図21は、本実施形態による中継装置選出の動作を示すフローチャートである。更新情報配信サーバ200は、S422、S431、S441から中継装置選出動作に移行する(S423)。更新情報配信サーバ200は、自サーバへ非同期メッセージを送信した利用者装置100のリストと、他の中継装置へ非同期メッセージを送信した利用者装置100のリストと、を統合したリストとなる非同期メッセージ管理リストを作成し(S451)、非同期メッセージの発信頻度(および処理効率)から中継装置の数を決定する(S452)。さらに更新情報配信サーバ200は、非同期メッセージ管理リストに記載された利用者装置100の中から利用者装置100を中継装置として選出し(S453)、中継装置情報データベースを更新し(S454)、利用者装置情報データベース222を参照し(S455)、更新情報配信システム1のツリー構造において自装置より下の利用者装置がひとつまたは複数存在するかどうかを確認する(S456)。S456において、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在した場合(S456:YES)、中継装置の情報を記載した中継装置周知メッセージを作成し(S457)、中継装置周知メッセージを該当するひとつまたは複数の利用者装置100に送信し(S458)、アイドル状態に戻る(S400)。S456において、更新情報配信システム1のツリー構造において自装置より下の利用者装置がひとつも存在しなかった場合(S456:NO)、アイドル状態に戻る(S400)。
なお、図7〜21で説明したフローチャートに係る各ステップの動作内容は、利用者装置100と更新情報配信サーバ200とが予め備えるコンピュータ(主制御部)で動作するプログラムとして実行させるように構成することができる。
ここで、上述したフローチャートの動作を具現化した例を図1に基づいて説明する。図1において、中継装置選出部245は、n23、n44、n11を中継装置として選出したとする。この場合、n9で発信された非同期メッセージは、最寄りの中継装置であるn23に送信され、n23は、受信した非同期メッセージを更新情報配信サーバ200であるn10にダイレクトに送信する。従って、n9で生成された非同期メッセージがn10に至るまでのホップ数は、ツリーをn23、n3、n8と順々に遡って中継される場合よりも少なくなり、即ち、2となる。
同様に、n18で生成された非同期メッセージは、最寄りの中継装置であるn23にダイレクトに送信され、n23は、受信した非同期メッセージをn10にダイレクトに送信する。従って、n18で生成された非同期メッセージがn10に至るまでのホップ数は、ツリーをn3、n8と順々に遡って中継される場合よりも少なく、即ち、2となる。
(まとめ:1、9、10)
以上説明したように上記実施形態において、更新情報配信サーバ200(ルートノード)から複数の利用者装置100(子ノード)にコンテンツ更新情報(情報)を配信するためにオーバーレイネットワーク上でツリー状に構築された更新情報配信システム1(ネットワーク)に参加可能なノードの一例としての更新情報配信サーバ200は、以下のように構成されている。更新情報配信サーバ200は、中継装置選出部245を備える。中継装置選出部245は、中継装置(中継ノード)として機能させる利用者装置100を、前記更新情報配信システム1に参加可能な前記複数の利用者装置100の中から選出する。中継装置は、前記複数の利用者装置100のうち何れかから前記更新情報配信サーバ200宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを前記更新情報配信サーバ200へ向けて中継する。詳しくは、中継装置は、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記更新情報配信サーバ200へ向けて中継する場合と比較して少ないホップ数となるように前記更新情報配信サーバ200へ向けて中継する。以上の構成によれば、利用者装置100から更新情報配信サーバ200への非同期メッセージの送信に要する時間を短縮することができる。
なお、更新情報配信サーバ200から利用者装置100に配信する情報としては、例示のコンテンツ更新情報に限られず、コンテンツ内容そのものであってもよいし、コンテンツに関する他の情報であってもよい。更に言えば、上記の情報は、コンテンツに関連のない情報であってもよい。
(2)また、中継装置選出部245は、上記選出の直近において非同期メッセージを発信した利用者装置100の中から、前記中継装置として機能させる利用者装置100を選出する。以上の構成によれば、上記選出前後に非同期メッセージを発信する傾向にある利用者装置100を前記中継装置とすることができるので、発信元自体が中継装置となるという点で、ホップ数の削減に寄与する。
(3)また、中継装置として機能可能な利用者装置100は、非同期メッセージの中継に利用可能なバッファ153を有する。中継装置選出部245は、前記中継装置として機能させる利用者装置100の数を、上記選出の直近における非同期メッセージの更新情報配信システム1全体の発信頻度に基づいて決定する。以上の構成によれば、非同期メッセージの更新情報配信システム1全体の発信頻度が変動した場合、前記中継装置の数も同様に変動する。一方、各中継装置は、上記の中継に利用可能なバッファを有している。従って、上記受信頻度が変動した場合、ネットワーク全体のバッファの量が増減することとなり、この結果、前記更新情報配信サーバ200及び各中継装置のバッファ溢れを強力に抑制することできるようになる。
(4)また、中継装置選出部245は、前記更新情報配信サーバ200のバッファ242が溢れそうになったら、上記の選出を実行する。以上の構成によれば、更新情報配信サーバ200のバッファ溢れをダイレクトに抑制することが可能となる。
(5)また、中継装置選出部245は、前記中継装置として機能させる利用者装置100の上記バッファ153が溢れそうになったら、上記の選出を再実行する。以上の構成によれば、前記中継装置として機能させる利用者装置100の上記バッファ溢れをダイレクトに抑制することが可能となる。
(6)また、中継装置選出部245は、前記中継装置として機能させる利用者装置100の上記バッファ153が一定時間、利用されなかったら、上記の選出を再実行する。
(7)また、中継装置選出部245は、一定時間毎に、上記の選出を実行する。以上の構成によれば、非同期メッセージの更新情報配信システム1全体の発信頻度の変動に対して、更新情報配信システム1全体の非同期メッセージのために利用されるバッファの量が一層敏感に変動することとなる。
(8)また、中継装置として機能する利用者装置100は、前記複数の利用者装置100のうち何れかから前記更新情報配信サーバ200宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、集約した上で、前記更新情報配信サーバ200へ向けて中継する。以上の構成によれば、更新情報配信サーバ200の処理負荷を軽減することができる。
また、上述した説明では、主に利用者装置100に対する接続を用いて説明したが、ルートノードとなる更新情報配信サーバ200も利用者装置100と同様の子ノードとして動作してもよい。
また、上述した説明では、利用者装置100の中継装置選択部142において、中継装置選択の際に、自利用者装置100の更新情報配信システム1のツリー構造の位置と中継装置情報データベース121に記載のひとつまたは複数の中継装置と更新情報配信サーバ200の位置を比較することによって、中継装置を選択する、としたが、中継装置選択において、中継装置選択部142における中継装置選択の方法を、利用者装置100のクライアントIDの相関値を利用するようにすることもできる。例えば、中継装置情報データベース121に記載のひとつまたは複数の中継装置と更新情報配信サーバ200のIDと自利用者装置100のIDの相関値を計算し、最も小さいまたは最も大きい値となる中継装置を選択する、などである。
また、上述した説明では、更新情報配信サーバ200の中継装置選出部245において、中継装置選択は、バッファ監視部243からのアラームを受信した場合、または中継装置タイマ244からのアラームを受信した場合、または中継装置管理部246からバッファ状況通知メッセージを受信した場合、中継装置選出動作を実施する、としたが、予め非同期メッセージの受信状況が予測できる場合は、非同期メッセージの増減を予測して、事前に中継装置選出を実施することもできる。予め非同期メッセージの受信状況が予測できる場合とは、例えば、夜間には非同期メッセージが増える、特定の利用者装置100が定期的に非同期メッセージを送信してくる、などがある。
また、上述した説明では、利用者装置100のバッファ状況通知部155において、バッファ監視部154からの2種のアラームを受けて、バッファ状況通知メッセージにアラーム情報を記載して、更新情報配信サーバ200へバッファ状況通知メッセージを送信することによって、更新情報配信サーバ200における中継装置選出動作を実施させる、としたが、利用者装置100内に更新情報配信サーバ200の中継装置選出部245相当の機能を追加し、利用者装置100で中継装置の選出を実施することもできる。換言すれば、更新情報配信サーバ200が中継装置の選出を実行することに代えて、利用者装置100が中継装置の選出を実行するようにしてもよい。また、更新情報配信サーバ200に加えて利用者装置100も中継装置の選出を実行できるようにしてもよい。この場合は、利用者装置による中継装置選出動作の後、選出されたひとつまたは複数の中継装置の情報を更新情報配信サーバ200へ通知する。選出されたひとつまたは複数の中継装置の情報を通知された更新情報配信サーバ200は、中継装置情報データベース221を更新し、利用者装置情報データベース222を参照し、更新情報配信システム1のツリー構造において自装置より下の利用者装置100がひとつまたは複数存在する場合、中継装置の情報を記載した中継装置周知メッセージを作成し、中継装置周知メッセージを該当するひとつまたは複数の利用者装置100に送信する。
また、上述した説明では、更新情報配信サーバ200の中継装置選出部245において、中継装置を選出する際に、リストに記載された利用者装置100の更新情報配信システム1のツリー構造における位置から、利用者装置100を中継装置数m分のグループに分け、そのグループそれぞれで中心となる利用者装置100を選出する、と例示したが、中継装置選出を、利用者装置100のクライアントIDを利用するようにすることもできる。例えば、中継装置選出動作開始時間と、非同期メッセージ管理リストに記載の利用者装置100のIDとのハッシュ計算結果をソートし、下からまたは上からm個の利用者装置100を中継装置として選出する、などである。このように、中継装置選出動作開始時間と、非同期メッセージ管理リストに記載の利用者装置100のIDとのハッシュ計算結果を用いることで、特定の利用者装置を何度も選出するような偏りをなくし、選出動作の度にランダムに利用者装置100を中継装置として選出することができる。
また、上述した説明では、更新情報配信サーバ200の中継装置選出部245において、中継装置を選出する際に、リストに記載された利用者装置100の更新情報配信システム1のツリー構造における位置から、利用者装置を中継装置数m分のグループに分け、そのグループそれぞれで、更新情報配信システム1のツリー構造における位置を座標として、重心を計算する、と例示したが、この計算において、前述したように、中継装置候補となっている利用者装置100のリソース利用状況、ツリー参加経過時間、中継装置稼動経験・時間などで重み付けして計算することもできる。
また、上述した説明では、更新情報配信サーバ200の中継装置選出部245において、中継装置を選出する際に、リストに記載された利用者装置100の中から中継装置を選出する、としたが、リストに記載された利用者装置100ではなく、バッファ溢れを起こしそうになった中継装置の更新情報配信システム1のツリー構造における子にあたる利用者装置100を新たな中継装置として選出することもできる。
また、上述した説明では、中継装置となった利用者装置100は、集約タイマ152からのアラームを契機に、更新情報配信サーバ200へ、集約済みの非同期メッセージを送信する、としたが、更新情報配信サーバ200のさらなる負荷軽減のために、中継装置を階層化し、更新情報配信サーバ200が、集約済みの非同期メッセージを中継する別種の中継装置を選出し、中継装置となった利用者装置100は、集約タイマ152からのアラームを契機に、別種の中継装置へ、集約済みの非同期メッセージを送信する、とすることもできる。即ち、必ずしも、中継装置は、受信した非同期メッセージをダイレクトに更新情報配信サーバ200に送信する必要はない、ということである。
以上説明したように、更新情報配信サーバ200または中継装置として選出された利用者装置100のバッファ153が溢れそうになった場合、中継装置として選出された利用者装置のバッファ153が一定時間利用されなかった場合、定期的な中継装置見直しの場合に、非同期メッセージを送信してきたノードの更新情報配信システム1のツリー構造における位置と、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させる利用者装置100を選出し、中継装置として選出された利用者装置100が、他の利用者装置100からの非同期メッセージを中継する構成とすることで、利用者装置100から更新情報配信サーバ200への非同期メッセージ通信において、複数の利用者装置100からのメッセージ頻度が大きく変化する場合においても、更新情報配信サーバのバッファ242溢れを抑え、かつ少ない転送回数で利用者装置100から更新情報配信サーバ200へメッセージを送信できる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
(付記1)
複数の利用者装置と更新情報配信サーバとをノードとしてコンテンツ毎の論理ネットワークを構成するコンテンツ配信システムであって、利用者装置から更新情報配信サーバへの非同期メッセージを送信する場合において、利用者装置は中継装置として選出された他の利用者装置または更新情報配信サーバを宛先として非同期メッセージを送信し、更新情報配信サーバまたは中継装置として選出された利用者装置の非同期メッセージのためのバッファが溢れそうになった場合、または中継装置として選出された利用者装置のバッファが一定時間利用されなかった場合、または定期的な中継装置見直しの場合に、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させる利用者装置を選出し、中継装置として選出された利用者装置が、他の利用者装置からの非同期メッセージを中継する、ことを特徴とするメッセージ配信システム。
(付記2)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、中継装置として選出されたノードは、非同期メッセージを受信すると非同期メッセージを集約処理し、集約処理中に非同期メッセージを受信した場合は、バッファに非同期メッセージを保存しておき、集約処理が終了次第、バッファに保存しておいた非同期メッセージの集約処理を実施し、定期的に更新情報配信サーバへ、集約済みの非同期メッセージを送信することを特徴とするノード。
(付記3)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、中継装置として選出されたノードは、バッファを監視し、バッファ利用量が予め定められた閾値を超えた場合、非同期メッセージを送信してきたノードのリストを含むバッファ状況通知メッセージを更新情報配信サーバに送信し、予め定められた時間中、常にバッファ利用がなかった場合、その旨を知らせるバッファ状況通知メッセージを更新情報配信サーバに送信することを特徴とするノード。
(付記4)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、ノードは非同期メッセージを受信すると非同期メッセージの目的に応じて処理し、処理中に非同期メッセージを受信した場合は、バッファにメッセージを保存しておき、処理が終了次第、バッファに保存しておいた非同期メッセージの処理を実施することを特徴とするノード。
(付記5)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、ノードは非同期メッセージ処理のためのバッファを監視し、バッファ利用量が予め定められた閾値を超えた場合、または予め定められた時間が経過した場合、または他の中継装置からバッファ状況通知メッセージを受信した場合において、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させる利用者装置を選出し、中継装置情報データベースを更新し、利用者装置情報データベースを参照し、更新情報配信システムのツリー構造において自ノードより下のノードがひとつまたは複数存在する場合、中継装置の情報を記載した中継装置周知メッセージを作成し、中継装置周知メッセージを該当するひとつまたは複数のノードに送信することを特徴とするノード。
(付記6)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、中継装置を選出する際に、予め非同期メッセージの受信状況が予測できる場合は、非同期メッセージの増減を予測して、事前に中継装置選出を実施することを特徴とする、請求項5に記載のノード。
(付記7)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させるノードを選出する際に、非同期メッセージを受信する頻度をa個/sec、非同期メッセージを処理する効率をb個/secとし、余裕度を表すβを用いて、中継装置数mを、
m=β*a/b
と計算し、中継装置数を決定ことを特徴とする、請求項5に記載のノード。
(付記8)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、m個の中継装置を選出する際に、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置からノードを中継装置数m分のグループに分け、そのグループそれぞれで、更新情報配信システムのツリー構造における位置を座標として、中継装置候補となっているノードのリソース利用状況、ツリー参加経過時間、中継装置稼動経験・時間などで重み付けして、重心を計算することによって中心となるノードを選出することを特徴とする、請求項5に記載のノード。
(付記9)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、m個の中継装置を選出する際に、非同期メッセージを送信してきたノードのIDと中継装置選出動作開始時間とのハッシュ計算結果をソートし、下からまたは上からm個のノードを中継装置として選出することを特徴とする、請求項5に記載のノード。
(付記10)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、ノードは非同期メッセージ処理のためのバッファを監視し、バッファ利用量が予め定められた閾値を超えた場合において、バッファ利用量が予め定められた閾値を超えたノードの更新情報配信システムのツリー構造における子にあたるノードを新たな中継装置として選出するることを特徴とするノード。
(付記11)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、更新情報配信サーバへの非同期メッセージを送信する場合に、中継装置情報データベースを参照し、ひとつまたは複数の中継装置または更新情報配信サーバの中から非同期メッセージを転送すべき中継装置または更新情報配信サーバを選択し、その選択した中継装置または更新情報配信サーバをあて先として非同期メッセージを作成し、非同期メッセージを送信することを特徴とするノード。
(付記12)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、非同期メッセージを転送すべき中継装置または更新情報配信サーバを選択する際に、自利用者装置の更新情報配信システムのツリー構造の位置とひとつまたは複数の中継装置と更新情報配信サーバの位置を比較し、更新情報配信システムのツリー構造においてもっともホップ数の少ない位置にある中継装置、または更新情報配信サーバを中継装置として選択することを特徴とする、請求項11に記載のノード。
(付記13)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、非同期メッセージを転送すべき中継装置または更新情報配信サーバを選択する際に、自利用者装置の更新情報配信システムのツリー構造の位置とひとつまたは複数の中継装置と更新情報配信サーバの位置を比較し、更新情報配信システムのツリー構造において、更新情報配信サーバからのホップ数が近い利用者装置を中継装置として選択することを特徴とする、請求項11に記載のノード。
(付記14)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードであって、非同期メッセージを転送すべき中継装置または更新情報配信サーバを選択する際に、中継装置情報データベースに記載のひとつまたは複数の中継装置と更新情報配信サーバのIDと自ノードのIDの相関値を計算し、最も小さいまたは最も大きい値となる継装置情報データベースに記載のひとつまたは複数の中継装置と更新情報配信サーバを中継装置として選択することを特徴とする、請求項11に記載のノード。
(付記15)
複数の利用者装置と更新情報配信サーバとをノードとしてコンテンツ毎の論理ネットワークを構成するコンテンツ配信方法であって、利用者装置から更新情報配信サーバへの非同期メッセージを送信する場合において、利用者装置は中継装置として選出された他の利用者装置または更新情報配信サーバを宛先として非同期メッセージを送信するステップと、更新情報配信サーバまたは中継装置として選出された利用者装置の非同期メッセージのためのバッファが溢れそうになった場合、または中継装置として選出された利用者装置のバッファが一定時間利用されなかった場合、または定期的な中継装置見直しの場合に、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させる利用者装置を選出するステップと、中継装置として選出された利用者装置が、他の利用者装置からの非同期メッセージを中継するステップとを含むこと、を特徴とするメッセージ配信方法。
(付記16)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、ノードは更新情報配信サーバから中継装置周知メッセージ受信すると、中継装置周知メッセージに記載の中継装置情報を参照する機能と、中継装置情報データベースを更新する機能と、利用者装置情報データベースを参照する機能と、更新情報配信システムのツリー構造において自ノードより下のノードがひとつまたは複数存在する場合、中継装置周知メッセージを該当するひとつまたは複数のノードに転送する機能と、利用者から非同期通信を実行するように操作されると、中継装置情報データベースを参照する機能と、自ノードの更新情報配信システムのツリー構造の位置と中継装置情報データベースに記載のひとつまたは複数の中継装置と更新情報配信サーバの位置を比較することによって、中継装置を選択する機能と、その中継装置をあて先として非同期メッセージを作成する機能と、非同期メッセージを送信する機能と、を実行させることを特徴とするプログラム。
(付記17)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、中継装置として選出された場合に、非同期メッセージを受信すると非同期メッセージを集約処理する機能と、集約処理中に非同期メッセージを受信した場合は、バッファに非同期メッセージを保存しておく機能と、集約処理が終了次第、バッファに保存しておいた非同期メッセージの集約処理を実施する機能と、定期的に更新情報配信サーバへ、集約済みの非同期メッセージを送信する機能と、を実行させることを特徴とするプログラム。
(付記18)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、中継装置として選出された場合に、バッファを監視する機能と、バッファ利用量が予め定められた閾値を超えた場合、非同期メッセージを送信してきたノードのリストを含むバッファ状況通知メッセージを更新情報配信サーバに送信する機能と、予め定められた時間中、常にバッファ利用がなかった場合、その旨を知らせるバッファ状況通知メッセージを更新情報配信サーバに送信する機能と、を実行させることを特徴とするプログラム。
(付記19)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、非同期メッセージを受信すると非同期メッセージの目的に応じて処理する機能と、処理中に非同期メッセージを受信した場合は、バッファにメッセージを保存しておく機能と、処理が終了次第、バッファに保存しておいた非同期メッセージの処理を実施する機能と、を実行させることを特徴とするプログラム。
(付記20)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、非同期メッセージ処理のためのバッファを監視する機能と、バッファ利用量が予め定められた閾値を超えた場合、または予め定められた時間が経過した場合、または他の中継装置からバッファ状況通知メッセージを受信した場合において、非同期メッセージを送信してきたノードの更新情報配信システムのツリー構造における位置と、非同期メッセージを送信した時間と、非同期メッセージを処理する効率から、中継装置として動作させる利用者装置を選出する機能と、中継装置情報データベースを更新する機能と、利用者装置情報データベースを参照する機能と、更新情報配信システムのツリー構造において自装置より下のノードがひとつまたは複数存在する場合、中継装置の情報を記載した中継装置周知メッセージを作成する機能と、中継装置周知メッセージを該当するひとつまたは複数のノードに送信する機能と、を実行させることを特徴とするプログラム。
(付記21)
コンテンツ毎に論理ネットワークを構成する複数の利用者装置と更新情報配信サーバとを含むノードを制御するコンピュータに、更新情報配信サーバへの非同期メッセージを送信する場合に、中継装置情報データベースを参照する機能と、ひとつまたは複数の中継装置または更新情報配信サーバの中から非同期メッセージを転送すべき中継装置または更新情報配信サーバを選択する機能と、その選択した中継装置または更新情報配信サーバをあて先として非同期メッセージを作成する機能と、非同期メッセージを送信する機能と、を実行させることを特徴とするプログラム。
1 更新情報配信システム
100 利用者装置
110 主制御部
120、220 ネットワークインタフェース
121、221 中継装置情報データベース
122、222 利用者装置情報データベース
123、223 コンテンツ情報データベース
130 更新情報配信システムクライアント部
131、231 ツリー管理機能部
132 コンテンツクライアント部
140 非同期通信クライアント部
141 非同期通信機能部
142 中継装置選択部
150 中継装置機能部
151 非同期メッセージ集約部
152 集約タイマ
153、242 バッファ
154、243 バッファ監視部
155 バッファ状況通知部
160、260 送受信部
200 更新情報配信サーバ
210 主制御部
230 更新情報配信システムサーバ部
232 コンテンツサーバ部
240 非同期通信サーバ部
241 非同期通信処理部
244 中継装置タイマ
245 中継装置選出部
246 中継装置管理部

Claims (9)

  1. ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークに参加可能なノードであって、
    前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、
    受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継する、中継ノードとして機能させる、
    子ノードを、
    前記ネットワークに参加可能な前記複数の子ノードの中から、
    選出する、
    中継ノード選出部を備える、ノード。
  2. 請求項1に記載のノードであって、
    前記中継ノード選出部は、上記選出の直近において前記非同期メッセージを発信した子ノードの中から、前記中継ノードとして機能させる上記子ノードを選出する、
    ノード。
  3. 請求項1又は2に記載のノードであって、
    前記中継ノードとして機能可能な前記子ノードは、前記非同期メッセージの中継に利用可能なバッファを有し、
    前記中継ノード選出部は、前記中継ノードとして機能させる上記子ノードの数を、上記選出の直近における前記非同期メッセージの前記ネットワーク全体の発信頻度に基づいて決定する、
    ノード。
  4. 請求項3に記載のノードであって、
    前記中継ノード選出部は、前記ルートノードのバッファが溢れそうになったら、上記の選出を実行する、
    ノード。
  5. 請求項3又は4に記載のノードであって、
    前記中継ノード選出部は、前記中継ノードとして機能させる上記子ノードの上記バッファが溢れそうになったら、上記の選出を再実行する、
    ノード。
  6. 請求項3〜5の何れかに記載のノードであって、
    前記中継ノード選出部は、前記中継ノードとして機能させる上記子ノードの上記バッファが一定時間、利用されなかったら、上記の選出を再実行する、
    ノード。
  7. 請求項3〜6の何れかに記載のノードであって、
    前記中継ノード選出部は、一定時間毎に、上記の選出を実行する、
    ノード。
  8. ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークにおいて、前記複数の子ノードから前記ルートノード宛に発信された非同期メッセージを前記ルートノードへ向けて中継する、非同期メッセージ中継方法であって、
    前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継する、中継ノードとして機能させる子ノードを、前記ネットワークに参加可能な前記複数の子ノードの中から、選出する、中継ノード選出ステップを含む、
    非同期メッセージ中継方法。
  9. ルートノードから複数の子ノードに情報を配信するためにオーバーレイネットワーク上でツリー状に構築されたネットワークに参加可能なノードに、
    前記複数の子ノードのうち何れかから前記ルートノード宛に発信された非同期メッセージを受信し、受信した前記非同期メッセージを、上記ツリーを順々に遡って前記ルートノードへ向けて中継する場合と比較して少ないホップ数となるように前記ルートノードへ向けて中継する、中継ノードとして機能させる、子ノードを、前記ネットワークに参加可能な前記複数の子ノードの中から、選出する、中継ノード選出部としての機能を発揮させる、
    プログラム。
JP2009286073A 2009-12-17 2009-12-17 ノード、非同期メッセージ中継方法、及び、プログラム Expired - Fee Related JP5434558B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009286073A JP5434558B2 (ja) 2009-12-17 2009-12-17 ノード、非同期メッセージ中継方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009286073A JP5434558B2 (ja) 2009-12-17 2009-12-17 ノード、非同期メッセージ中継方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2011130144A JP2011130144A (ja) 2011-06-30
JP5434558B2 true JP5434558B2 (ja) 2014-03-05

Family

ID=44292251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009286073A Expired - Fee Related JP5434558B2 (ja) 2009-12-17 2009-12-17 ノード、非同期メッセージ中継方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP5434558B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6503945B2 (ja) * 2015-07-13 2019-04-24 富士通株式会社 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3461493B2 (ja) * 2000-11-01 2003-10-27 日本電気株式会社 ネットワークシステムおよび中継局装置
JP3550349B2 (ja) * 2000-03-29 2004-08-04 日本電信電話株式会社 統計的情報をフィードバックする一斉同報通信システム及び方法
JP2006033115A (ja) * 2004-07-13 2006-02-02 Brother Ind Ltd 配信装置、受信装置、ツリー型配信システム及び情報処理方法等

Also Published As

Publication number Publication date
JP2011130144A (ja) 2011-06-30

Similar Documents

Publication Publication Date Title
CN101305559B (zh) 无线网络中的路由选择
JP5557840B2 (ja) 分散データベースの監視メカニズム
CN107948318B (zh) 多节点间的缓存同步方法和***
JP2007066161A (ja) キャッシュシステム
CN103475566A (zh) 一种实时消息交换平台及分布式集群组建方法
CN101399746A (zh) 报文路由方法、***、设备和选择备份资源的方法、***
JP5960820B2 (ja) ツリー構造の管理方法、情報処理システム、及び、プログラム
JP5845877B2 (ja) 情報処理装置、データ制御方法およびデータ制御プログラム
CN115328579B (zh) 神经网络训练的调度方法、***及计算机可读存储介质
CN105940717A (zh) 容断/容迟/容中断网络中使用的节点设备和通信方法
Chatzidrossos et al. Delay and playout probability trade-off in mesh-based peer-to-peer streaming with delayed buffer map updates
JP4815547B2 (ja) データ同期システム、データ同期方法、及び同期管理サーバ
JP5434558B2 (ja) ノード、非同期メッセージ中継方法、及び、プログラム
CN103152191A (zh) 一种物联网业务网关数据处理方法和***
Guidec et al. Causal and Δ-causal broadcast in opportunistic networks
CN108418863B (zh) 控制器集群的管理方法、sdn控制器及存储介质
JP2011118593A (ja) データ転送サーバ、データ転送システム、データ転送方法およびプログラム
KR100435985B1 (ko) 투표를 활용한 무정지 서비스 시스템 및 그 시스템에서의정보 갱신 및 제공 방법
JP2008242766A (ja) プロセス制御システム
WO2010125791A1 (ja) コンテンツ配信システム、ノード、コンテンツ配信方法、及びプログラム
JP2009165070A (ja) アドホックネットワーク通信システムと、その方法及び通信端末
Baldoni et al. A self-organizing crash-resilient topology management system for content-based publish/subscribe
CN109286642A (zh) 一种Push主动推送速度优化的方法
JP5376155B2 (ja) 通信システム、ノード、通信方法、及びプログラム
CN101674633B (zh) 无线网络中的路由选择

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131022

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: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees