JP2013058056A - 配信システム、配信方法、及び配信プログラム - Google Patents

配信システム、配信方法、及び配信プログラム Download PDF

Info

Publication number
JP2013058056A
JP2013058056A JP2011195616A JP2011195616A JP2013058056A JP 2013058056 A JP2013058056 A JP 2013058056A JP 2011195616 A JP2011195616 A JP 2011195616A JP 2011195616 A JP2011195616 A JP 2011195616A JP 2013058056 A JP2013058056 A JP 2013058056A
Authority
JP
Japan
Prior art keywords
distribution
node
information
data
nodes
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.)
Granted
Application number
JP2011195616A
Other languages
English (en)
Other versions
JP5874253B2 (ja
Inventor
Kazumine Matoba
一峰 的場
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011195616A priority Critical patent/JP5874253B2/ja
Priority to US13/592,669 priority patent/US8948050B2/en
Publication of JP2013058056A publication Critical patent/JP2013058056A/ja
Application granted granted Critical
Publication of JP5874253B2 publication Critical patent/JP5874253B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】本発明では、配信ノード間で転送するデータ量を削減できる配信技術を提供する。
【解決手段】制御ノードは、配信ノード間の接続情報と、配信ノードの負荷情報とに基づいて、複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、配信先の配信ノードに配信するデータの種別と、を配信ノード毎に決定し、決定した配信先の配信ノードを特定するノード情報と、決定したデータの種別を特定する種別情報とを、配信ノード毎に配布し、配信ノードは、制御ノードから配布されたノード情報と種別情報とを受信し、他の配信ノードから配信されたデータを受信した場合には、受信したデータから種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信することにより、上記課題の解決を図る。
【選択図】図1

Description

本発明は、配信ノードを用いて情報を配信する配信システムに関する。
リアルタイムなフィールドの情報、例えばユーザがいる場所周辺のセンサー情報(地震・雨など)を収集し配信する配信システムがある。このような配信システムでは、情報提供側では、誰が情報を使うのか事前には分からないことが多い。ユーザはデータを参照したいと思ったタイミングで随時配信システムに参加でき、ユーザの意思で配信してもらうセンサー情報の種類を変更できる必要がある。
このようなセンサー情報を参照するための仕組みとして、Publish/Subscribeの通信モデルが活用されている。Publish/Subscribeの通信モデルとは、あるトピック(たとえば「自宅」など)に対して、Subscribe(購読)登録しておくと、該当するトピックにイベントが起きたタイミング(たとえば「自宅の窓が開いた」など)でメッセージを配信する仕組みである。これにより、送信側と受信側がお互いに相手が誰でどこにいるかを意識する必要がなく、受信側は自分が必要とするメッセージのみを受け取ることができる。このPublish/Subscribeの仕組みを使うと、購読〜配信の処理は単一のユーザだけではなく、複数ユーザに対する同時配信も可能になる。
また、情報提供側は通信処理の負荷・電力消費上昇を抑えるため、定期的に採取するデータをある程度まとめて送るような渡し方が必要になる。
このように、このPublish/Subscribeの仕組みを使うと、複数のデータを同時に送りたい送信側(センサー側)と、必要なデータのみ受け取りたい受信側(ユーザ側)の仲介をすることが必要になる。そこで、以下の技術が考えられる。
第1の技術としては、データセンターのサーバに全てのデータを集約し、各ユーザに対して必要なデータのみを個別配送する方法が考えられる。
また、第2の技術としては、複数ユーザへの配送技術としてIP Routerによるマルチキャスト配送も考えられる。マルチキャスト配送は、パケット単位の中継処理である。マルチキャスト配送を用いると、センサー側が出すデータをそのまま全ユーザに配送することで、複数ノードで分散して収集・配送し遅延を短縮できる。なお、上記マルチキャスト配送に関連する技術としては、例えばMPLS(Multi-Protocol Label Switching)によるマルチキャスト配送に関する技術がある。
また、第3の技術として、次のものがある。端末は、ストリームデータをストリームサーバから受けて、そのストリームデータに係る視聴番組を視聴要求する。ストリームサーバは、その視聴要求した端末に対してストリームデータを送信する前に、当該視聴番組の共通情報を共通情報データベースにキャッシングすると共に、他の端末から同一の視聴番組の視聴要求を受ける。すると、ストリームサーバは、共通情報データベースの共通情報を先ず当該他の端末に送信してから、ストリームサーバから現に配信されているストリームデータを、送信中の端末に加えて他の端末にも送信する。
また、第4の技術として、次のものがある。管理サーバは、作成すべき複合コンテンツの内容に基づいて、複合コンテンツ作成のための指示情報を生成する。中間装置は、その指示情報に応じて、コンテンツサーバに対して、複合コンテンツ作成のために必要なコンテンツ部分の取り出しを指示する。各コンテンツサーバは、取り出しを指示されたコンテンツ部分に対応して、携帯端末用に符号化形式が変換された複合コンテンツ要素を取得して、中間装置に返信する。中間装置は、コンテンツサーバから返信された複合コンテンツ要素を、管理サーバからの指示情報をもとに時系列で組み合わせて、携帯端末向けの複合コンテンツとして作成する。管理サーバは、作成された複合コンテンツを携帯端末に対して配信する。
特開2004−32114号公報 特開2002−290952号公報 特開2005−20588号公報 特表2005−506744号公報 特開2007−234014号公報
しかしながら、上記第1の技術では、データセンターへ全てのデータを集約してしまうと、負荷が1箇所に集中し、ネットワーク帯域やサーバ性能のボトルネック化を招くことが考えられる。
また、上記第2の技術では、マルチキャスト配送を行った場合は、センサーで取得されたデータがユーザ側にそのまま届くため、ユーザ側各々で、必要なデータを抜き出す(加工する)手間が必要になる。ネットワークに関しては、不要なデータも含めて宛先までデータが配送されるため、不必要にネットワークの帯域が浪費されてしまうおそれがある。
また、上記第3の技術では、途中参加したストリーム放送視聴者が存在すると、中継装置が、ストリームサーバに共通情報の要求を行うことなく、予めキャッシュした共通情報をその途中参加の視聴者に対して配信している。しかしながら、当該第3の技術でも、不要なデータも含めて宛先までデータが配送されるため、不必要にネットワークの帯域が浪費されてしまうおそれがある。
また、上記第4の技術では、セグメントの変換処理を行なっていた変換装置の負荷を、コンテンツサーバ側で上記処理を行うことにより、ネットワークの伝送量を減らし、処理負荷が変換装置に集中することを防ぎ、処理負荷を分散させている。しかしながら、上記第4の技術でも、コンテンツサーバ側に負荷が集中し、ネットワーク帯域やサーバ性能のボトルネック化を招くことが考えられる。
このように、配信ノード間で配信されるデータはそのまま加工されずに配信されるので、最終的に該データを受け取るユーザから見ると、不要なデータまでも配信される。その結果、ネットワーク負荷を高くしている。
そこで、本発明は、配信ノード間で転送するデータ量を削減できる配信技術を提供する。
配信システムでは、複数の配信ノードと、制御ノードとがネットワークを介して接続されている。制御ノードは、決定部、配布部を含む。決定部は、配信ノード間の接続状態を示す接続情報と、配信ノードにおける負荷情報とに基づいて、複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、配信先の配信ノードに配信するデータの種別と、を決定する。配布部は、決定した配信先の配信ノードを特定するノード情報と、決定したデータの種別を特定する種別情報とを、配信ノードに配布する。
配信ノードは、受信部、送信部を含む。受信部は、制御ノードから配布されたノード情報と種別情報とを受信する。送信部は、他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する。
本発明によれば、配信ノード間で転送するデータ量を削減できる。
本実施形態における配信システムの機能ブロック図を示す。 第1の実施形態における配信システムの構成例を示す。 第1の実施形態におけるXMLメッセージの一例を示す。 第1の実施形態における配信フロー例を示す。 第1の実施形態における制御ノード及び配信ノードの構成ブロックを示す。 第1の実施形態におけるユーザ情報テーブルの構成例を示す。 第1の実施形態におけるノード間接続テーブルの構成例を示す。 第1の実施形態におけるセンサー情報テーブルの構成例を示す。 第1の実施形態におけるノード状態テーブルの構成例を示す。 第1の実施形態における収容管理テーブルの構成例を示す。 第1の実施形態におけるリンク管理テーブルの構成例を示す。 第1の実施形態における中継定義テーブルの構成例を示す。 第1の実施形態における処理定義テーブルの構成例を示す。 第1の実施形態における制御ノードの全体フロー例を示す。 第1の実施形態における制御のノードの配信ノード決定処理(S14)のフローを示す。 第1の実施形態における制御ノードのデータ追加処理(S15)のフローを示す。 第1の実施形態における制御のノードのデータ削除処理のフローを示す。 第1の実施形態における制御ノードにより行われるデータ設定処理のフローを示す。 第1の実施形態における制御ノードからの配信定義受信時の配信ノードのフローを示す。 第1の実施形態におけるメッセージ受信時の配信ノードのフローを示す。 第2の実施形態における制御ノード及び配信ノードの構成ブロックを示す。 第2の実施形態における配信時刻管理テーブルの構成例を示す。 第2の実施形態における収納管理テーブルの構成例を示す。 第2の実施形態におけるリンク管理テーブルの構成例を示す。 第2の実施形態における制御のノードのデータ追加処理のフローを示す。 第2の実施形態における制御のノードのデータ削除処理のフローを示す。 第2の実施形態における制御ノードにより行われるデータ設定処理のフローを示す。 第3の実施形態における配信システムの構成例を示す。 第3の実施形態における制御ノード及び配信ノードの構成ブロックを示す。 第3の実施形態におけるノードグループテーブルの構成例を示す。 第3の実施形態におけるノード間接続テーブルの構成例を示す。 第3の実施形態における制御のノードの配信ノード決定処理(S14)のフローを示す。 第4の実施形態における制御ノード及び配信ノードの構成ブロックを示す。 第4の実施形態におけるノード状態テーブルの構成例を示す。 第4の実施形態における負荷状態収集部54の処理フローを示す。 第4の実施形態における負荷状態更新部53の処理フローを示す。 第4の実施形態における制御ノードの全体フロー例を示す。 第4の実施形態における制御のノードの配信ノード決定処理(S14)のフローを示す。 第5の実施形態の適用前の配信状態を説明する図である。 第5の実施形態の適用後の配信状態を説明する図である。 第5の実施形態における見直し処理のフローを示す。 第6の実施形態における配信ノード間の論理トポロジーを見直す処理フローを示す。 第6の実施形態における配信木見直し処理(S81)の詳細フローを示す。 第7の実施形態における制御ノード及び配信ノードの構成ブロックを示す。 第7の実施形態における制御ノード・配信ノード管理テーブルの構成例を示す。 第7の実施形態における制御のノードのデータ追加処理のフローを示す。 第7の実施形態における制御のノードのデータ削除処理のフローを示す。 第7の実施形態における複数の制御ノード間のデータ追加のフローを示す。 第7の実施形態における複数の制御ノード間のデータ削除のフローを示す。 コンピュータのハードウェア環境の構成ブロック図である。
図1は、本発明の実施形態における配信システムの機能ブロック図を示す。本実施形態における配信システム1は、複数の配信ノード7と、制御ノード2とがネットワーク13を介して接続されている。制御ノード2は、決定部3、配布部4を含む。
決定部3は、接続情報と、負荷情報とに基づいて、複数の配信ノード7のうち一の配信ノード7aが次に配信する配信先の配信ノード7bと、配信先の配信ノード7bに配信するデータの種別とを配信ノード7毎に決定する。接続情報は、複数の配信ノード7間の接続状態を示す情報である。負荷情報は、複数の配信ノード7それぞれにおける負荷の状態を示す情報である。決定部3の一例として、処理決定部32がある。
配布部4は、決定した配信先の配信ノードを特定するノード情報と、決定した配信データの種別を特定する種別情報とを、配信ノードに配布する。配布部4の一例として、定義配布部33がある。
配信ノード7は、受信部8と、送信部9を含む。受信部8は、制御ノード2から配布されたノード情報と種別情報とを受信する。送信部9は、他の配信ノード7から配信されたデータを受信した場合には、受信したデータから、受信した種別情報が特定する種別のデータを選択する。送信部9は、選択した種別のデータを、受信したノード情報が特定する配信ノードに送信する。受信部の一例として、定義設定部47がある。送信部9の一例として送信処理部46がある。
このように構成することにより、配信ノードは、他の配信ノードから受信したデータのうち、ユーザが要求するデータのみを配信先の配信ノードに転送することにより、配信ノード間で転送するデータ量を削減できる。また、ユーザへは、ユーザが配信要求をした種別のデータしか配信されないので、ユーザが配信されたデータから必要なデータを抜き出すというユーザの手間を省くことができる。
また、制御ノード7は、さらに、要求受信部5を含む。要求受信部5は、いずれかの種別のデータ配信を要求する配信要求を、情報処理端末12から受信する。要求受信部5の一例として、購読制御部31がある。決定部3は、配信要求を受信した場合、情報処理端末12に対してデータを配信可能な配信ノードの中から、負荷情報に応じて、端末配信ノード(情報処理端末12に配信する配信ノード7)を決定する。
このように構成することにより、情報処理端末12に対して配信可能な配信ノードの中から、負荷情報に応じて、情報処理端末12に実際にデータを配信する配信ノード7を決定することができる。
また、決定部3は、配信ノード7がグループに分類されている場合、配信ノード7とグループとを関係付けたノードグループ情報から、予め前記情報処理端末に配信する配信ノードとして設定された該配信ノード(7、23)が属するグループに属する配信ノードを抽出する。決定部3は、抽出した配信ノードの中から、負荷情報に応じて、情報処理端末12に配信する配信ノード7である端末配信ノードを決定する。
このように構成することにより、複数の配信ノードのうち、予め前記情報処理端末に配信する配信ノードとして設定された配信ノードにデータを配信する配信ノードの中から、端末配信ノードを決定することができる。
また、決定部3は、グループから抽出した配信ノードのうち、配信要求の対象の種別のデータを送信または受信する配信ノードを端末配信ノードとして選択する。
このように構成することにより、あるグループに属する配信ノードの中から、配信要求の対象の種別のデータを送信または受信する配信ノードを優先的に端末配信ノードとして選択することができるので、無駄なフィルタ処理を行わなくてよい。
また、決定部3は、配信ノード7が受信したデータを複製した複製回数を負荷情報として計測する。決定部3は、複製回数に応じて、情報処理端末12に対して配信可能な配信ノードの中から、端末配信ノードを決定する。
このように構成することにより、情報処理端末12に対して配信可能な配信ノードの中から、複製回数に応じて、配信ノードを端末配信ノードとして決定することができる。
配信ノード7は、さらに、負荷情報通知部10を含む。負荷情報通知部10は、配信ノード7に設けられた演算装置の利用率を検出して、検出した演算装置の利用率を制御ノード2へ送信する。負荷情報通知部10の一例として、負荷状態収集部54がある。このとき、制御ノードは、さらに、負荷情報更新部11を含む。負荷情報更新部11は、配信ノード7から受信した演算装置の利用率を用いて、負荷情報を更新する。負荷情報更新部11の一例として、負荷情報更新部53がある。
このように構成することにより、情報処理端末12に対して配信可能な配信ノードの中から、演算装置の利用率を用いて配信ノードを端末配信ノードとして決定することができる。
決定部3は、配信先のノード情報とデータの種別を特定する種別情報との配布後に、配信要求がされて決定した配信先の配信ノードと、その配信先の配信ノードに配信するデータの種別とを取得する。このとき、配布部4は、取得された配信先の配信ノードを特定するノード情報と、取得されたデータの種別を特定する種別情報とを、配信ノードに配布する。
このように構成することにより、ノード情報と種別情報とを配布した時刻以降に更新された配信先の配信ノードを特定するノード情報と、取得されたデータの種別を特定する種別情報(配信定義)のみを配信ノードに配信することができる。
決定部3は、受信された配信要求に含まれるデータ種別が多い配信要求を送信した情報処理端末に対する端末配信ノードを、配信木(データを配信するための配信経路であって木構造で表される)における最上位の配信ノードに決定する。
このように構成することにより、配信木を変更せずに、配信木における最上位の配信ノードを端末配信ノードとして決定することができる。それにより、ネットワーク上を流れるデータ量をより削減することが可能となる。
決定部3は、受信された配信要求のうち最も多くのデータ種別を含む配信要求の数を端末配信ノード毎に計測する。決定部3は、配信要求数が最も多く計測された端末配信ノードを、配信木(データを配信するための配信経路であって木構造で表される)のルートとして決定する。
このように構成することにより、配信ノード間の論理トポロジーを見直して、多くのユーザに対して、配信要求された多くのデータ種別を配信している配信ノードを配信木のルートにすることができるので、ネットワーク上を流れるトラフィックを削減できる。
制御ノードは、さらに、通信部を含む。通信部は、配信システムに、それぞれ複数の配信ノードを配下に持つ制御ノード2が複数存在する場合に、制御ノード間で通信を行う。いずれかの制御ノード2が配信要求を受信した場合、その配信要求を受信した制御ノードの決定部3は、次の処理を実行する。すなわち、その決定部3は、複数の配信ノード7間の接続情報と、複数の配信ノード7それぞれにおける負荷情報とに基づいて、複数の配信ノード7のうち一の配信ノードが次に配信する配信先の配信ノードを選択する。このとき、決定部3は、各制御ノードの配下の配信ノードを特定する情報に基づいて、選択した配信ノードがいずれかの制御ノードの配下の配信ノードであるかを判定する。選択した配信ノードがいずれの制御ノード配下の配信ノードでもないと判定された場合、通信部は、次の処理を行う。すなわち、通信部は、他の前記制御ノード配下の配信ノードのいずれから、配信要求をした情報処理装置に対する端末配信ノードへ配信要求の対象の種別のデータを送る旨を他の制御ノードに通知する。通信部6の一例として、制御ノード連携部55がある。
このように構成することにより、制御ノードを並列に動作可能にすることで、システムが大規模化した場合にもデータの配信が可能となる。
本実施形態では、ユーザ各々での必要なデータを抜き出す加工処理の削減・無駄な情報転送の削減を実現するために、配信ノードと制御ノードを用いて、以下の処理を行う。以降、配信ノードと制御ノードを別装置として説明するが、物理的に、これらの装置が同一の装置(ノード)になっていてもよい。
本実施形態では、配信ノードは、センサーから送られるメッセージのうち、ユーザから配信要求のあったデータ種別だけを、ユーザの端末に届ける。メッセージは、例えば、レイヤ3(L3)ヘッダ、レイヤ4(L4)ヘッダ、レイヤ7(L7)プロトコルヘッダ、及びメッセージコンテンツを含む。
レイヤ3ヘッダの一例としては、IP(Internet Protocol)ヘッダがある。レイヤ4ヘッダの一例としては、TCP(Transmission Control Protocol)ヘッダがある。レイヤ7プロトコルヘッダの一例としては、HTTP(HyperText Transfer Protocol)ヘッダがある。
例えばXML(Extensible Markup Language)で構成されたメッセージの場合、配信ノードは、ユーザから配信要求のあったデータ種別に対応する内容を特定するタグのみを配信対象とする。
本実施形態では、さらに、配信システムの状態に基づいて、配信ノードからユーザまでの配信経路を変える。これにより、1つの配信ノードにセンサー情報を集中させ、そのセンサー情報を集中させた配信ノードから配信するのではなく、ネットワークで分散してセンサー情報を配信可能にする。制御ノードは、ユーザからの購読依頼の受信を契機として、各配信ノードに対して配信定義の設定を行う。ここでは、制御ノードは、トポロジーの情報、購読依頼の内容および各配信ノードの負荷状態に基づいて、負荷が1点に集中しないよう、負荷が軽い配信ノードからユーザに対してデータをコピーさせるような配信定義を生成する。トポロジーの情報とは、センサーと配信ノードおよびユーザの位置関係に関する情報を言う。制御ノードは、各配信ノードに対して、生成した配信定義の設定を行う。
この配信定義の作り方には様々なバリエーションが考えられる。例えば、配信ノード間の繋がり(配信木)を固定としておき、ユーザにデータをコピーして渡す配信ノードのみを切り替える方法が考えられる。この場合、制御ノード側で配信ノードのコピー処理の内容、およびユーザの接続先となる配信ノードの決定を行う。
なお、ここでの制御ノード2はパーソナルコンピュータ(PC)のようなクライアント端末に限らず、センサー情報を必要とするアプリケーションソフトウェアであればどのような実施形態でも適用可能である。例えば、制御ノード2はデータセンター内のアプリケーションソフトウェアでも構わない。
本実施形態の適用により、多数のクライアントや多数のユーザが存在し、リアルタイムな情報の収集及び配信を行う配信システムにおいて、システムに対する負荷集中を防ぎつつ、各ユーザに必要な情報のみを届けることが可能になる。その結果、ユーザから見た応答性能の向上、ネットワーク上を流れるトラフィック量の削減を同時に実現することができる。
<第1の実施形態>
図2は、第1の実施形態における配信システムの構成例を示す。配信システム20は、サーバ21、制御ノード22、配信ノード23(23−1〜23−4)、センサー24、ユーザ端末25(25−1,25−2)を含む。サーバ21、制御ノード22、配信ノード23(23−1〜23−4)、センサー24、ユーザ端末25(25−1,25−2)は、インターネット等のネットワークで接続されている。
本実施形態では、センサー24が4種類のデータ(気温(D1)、湿度(D2)、雨量(D3)、風速(D4))を採取し、1つのXMLメッセージとして定期的に近隣の配信ノード23(図2ではノード23−1)に対して送信する。センサ24が送信するXMLメッセージの例は、図3で示される。なお、ユーザは、センサー24の発信する情報のうちの一部の情報が必要であるものとする。
本実施形態では、ユーザU1がトピックに含まれるデータ種別D1,D2のデータ、ユーザU2がデータ種別D1のデータのみを必要とし、サーバ21が全てのデータ(D1〜D4)を必要としていることを前提とする。本実施形態において、これらのユーザU1の端末25−1、ユーザU2の端末25−2、サーバ21はすべて配信先として扱われる。
以降、説明で配信ノード23−1〜23−4の識別子をそれぞれ、Node1〜Node4と表記する。
図3は、第1の実施形態におけるXMLメッセージの一例を示す。図3のXMLメッセージ29では、HTTPヘッダ等のプロトコルのヘッダを省略している。
XMLメッセージ29は、XMLのバージョン情報29−1、トピック29−2、日時29−3、データ種別関係情報29−41〜29−44を含む。データ種別関係情報29−41は、データ種別D1に関する情報であり、一例としてデータ種別D1と値25.5を含む。データ種別関係情報29−42は、データ種別D2に関する情報であり、一例としてデータ種別D2と値49を含む。データ種別関係情報29−43は、データ種別D3に関する情報であり、一例としてデータ種別D3と値0を含む。データ種別関係情報29−44は、データ種別D4に関する情報であり、一例としてデータ種別D4と値5を含む。
メッセージコンテンツの例として、SOAP(Simple Object Access Protocol)、REST(REpresentational State Transfer)命令、HTML(HyperText Markup Language)文書などもある。
図4は、第1の実施形態における配信フロー例を示す。配信システム20では、配信ツリー構築フェーズ(S1)、購読依頼受付フェーズ(S2)、設定フェーズ(S3)、データ配信フェーズ(S4)の4つのフェーズが含まれる。
配信ツリー構築フェーズ(S1)では、配信ノード間のつながりに関する配信ツリー構築情報が事前に定義されている。配信(ディストリビューション)ツリー構築情報の定義方法は、特に限定されず、例えば管理者が手動で配信ツリー構築情報を設定したり、マルチキャストルーティングプロトコル等を用いてディストリビューションツリーを構築してもよい。
購読依頼受付フェーズ(S2)では、制御ノード22は、ユーザにより指定されたトピックに含まれるデータのうち、ユーザが必要なデータ種別を、ユーザ端末25から受信する。また、制御ノード22は、特定の配信ノード23がボトルネックにならないように、現在の各配信ノード23の負荷に応じてユーザ端末の接続先となる配信ノード23を変える。
設定フェーズ(S3)では、制御ノード22は、決定した配信ルートで、センサー24からのデータを配信先に配信するように、各配信ノード23への配信定義の設定を行う。
データ配信フェーズ(S4)では、S3で設定された配信定義に基づいて、配信ノード23はそれぞれ、配信ノード間のつながりに関する情報(リンク情報)を用いて、ユーザが必要なデータ種別のデータのみを、そのリンク情報に設定された配信先に配送する。
図5は、第1の実施形態における制御ノード及び配信ノードの構成ブロックを示す。制御ノード22は、ネットワーク上の情報処理装置である。制御ノード22は、購読制御部31、処理決定部32、定義配布部33、ユーザ情報テーブル34、ノード間接続テーブル35、センサー情報テーブル36、ノード状態テーブル37、収容管理テーブル38、リンク管理テーブル39を含む。
購読制御部31は、ユーザ端末25からの購読依頼を受信し、購読依頼の内容をユーザ情報テーブル34に書き込む。処理決定部32は、ユーザ情報テーブル34、ノード間接続テーブル35、センサー情報テーブル36、ノード状態テーブル37に登録された情報を用いて、中継定義テーブル48及び処理定義テーブル49の内容を生成する。
定義配布部33は、収容管理テーブル38及びリンク管理テーブル39の内容を、配信ノードの中継定義テーブル48及び処理定義テーブル49のフォーマットに変換し、配布先の配信ノード23−mに対して配布する。
ユーザ情報テーブル34は、ユーザの購読依頼情報およびユーザの近隣の配信ノードを管理するテーブルである。なお、ユーザ近隣の配信ノードがどの配信ノードなのかは、ユーザからの申告や、配信ノードが送信してからユーザ端末が受信するまでにかかる時間(遅延時間)、物理ネットワークの情報等を利用して事前に設定されているものとする。ユーザ情報テーブル34に設定されたユーザ近隣の配信ノード(近隣ノード)はユーザにデータを配信するノードを定義したものではなく、あくまでも地理的にユーザの近隣に位置する配信ノードを定義したものである。ユーザ端末に対するデータの配信は、実際には、処理決定部32により決定された配信ノード(収容管理テーブル38の収容ノード欄に記載された配信ノード)から配信される。近隣ノードを設定するのは、後述するように、その設定した近隣ノード及び該近隣ノードに隣接する配信ノードのうち、最も負荷の少ない配信ノードを検索する場合、その検索の始点を設定するためである。
ノード間接続テーブル35は、配信ノード間の接続関係を管理するテーブルである。配信ノード間のつなぎ方や配信経路の構築については、管理者による手動設定、もしくはマルチキャストツリーの構築技術等の技術で決定されているものとする。
センサー情報テーブル36は、センサー24の近隣の配信ノードを管理するテーブルである。なお、センサー24近隣の配信ノード23がどの配信ノードなのかは、センサー24の所有者からの申告や、センサー24が送信してから配信ノードが受信するまでにかかる時間(遅延時間)、物理ネットワークの情報等を利用して事前に設定されているものとする。
ノード状態テーブル37は、各配信ノードの中継処理にかかる負荷を管理するテーブルである。制御ノード22は、ノード状態テーブル37を用いて、最大処理性能と現在の処理状況を管理することで、各配信ノード23の負荷を管理する。ノード状態テーブル37は、各配信ノード23のCPU利用率などを定期的に収集しても良いし、例えば定常的に配信データが発生する場合は配信ノード23内の処理の回数を負荷として管理しても良い。本実施形態では後者の例として、1配信ノード当たりの1メッセージに対するコピー処理回数を負荷として管理する。
収容管理テーブル38は、ユーザ端末を収容する配信ノード、即ち実際にユーザ端末25にデータを配信する配信ノードを管理するテーブルである。ユーザ情報テーブル34によって近隣の配信ノード23を特定することができても、実際にユーザ端末23に対してデータを直接渡すべき配信ノード23と近隣の配信ノードとは異なる場合がある。そのため、制御ノード22は、ユーザ情報テーブル34とは別のテーブルを収容管理テーブル38として準備して、実際にユーザ端末25にデータを配信する配信ノードを管理する。また、制御ノード22は、収容管理テーブル38を用いて、どのデータをどのユーザに対して配信するのかも合わせて管理する。
リンク管理テーブル39は、配信ノード間をつなぐ中継経路をリンクとして捉え、そのリンクごとに配信するデータ種別を管理するテーブルである。
配信ノード23は、ネットワーク上の中継処理装置である。配信ノード23は、受信処理部41、トピック識別部42、宛先決定部43、コピー処理部44、フィルタ処理部45、送信処理部46、定義設定部47、中継定義テーブル48、処理定義テーブル49を含む。
受信処理部41は、センサー24もしくは隣接の配信ノード23からパケットを受信し、その受信したパケットを組み立ててメッセージを構築する。トピック識別部42は、構築したメッセージに含まれるトピックを識別する。
宛先決定部43は、中継定義テーブル48に従って、配信データの中継先をあて先として1つもしくは複数決定する。コピー処理部44は、宛先決定部43により決定した宛先の数に応じて、中継先に配信するメッセージをコピーする。
フィルタ処理部45は、決定した宛先及び処理定義テーブル49の内容に従い、宛先ごとに、配信するメッセージから必要のないデータ種別に関するXMLタグを削除する(フィルタ処理)。送信処理部46は、フィルタ処理されたメッセージをパケットに分解して、指定された宛先(例えば、他の配信ノード23−n、ユーザ端末25、サーバ21等)に対して、その分解したパケットを送信する。
定義設定部47は、制御ノード22から配布された配信定義に基づいて、中継定義テーブル48及び処理定義テーブル49の設定を行う。中継定義テーブル48は、トピックごとに、配信すべき中継先ノード及び/またはユーザのグループを管理するテーブルである。処理定義テーブル49は、トピック及び/または宛先ごとに、渡すべきデータ種別を管理するテーブルである。
図6は、第1の実施形態におけるユーザ情報テーブルの構成例を示す。ユーザ情報テーブル34は、「ユーザID」34−1、「トピック」34−2、「データ種別」34−3、「近隣ノード」34−4のデータ項目を含む。「ユーザID」34−1には、ユーザを識別する識別情報が格納される。「トピック」34−2には、ユーザによる購読対象のトピックを識別する識別情報が格納される。「データ種別」34−3には、ユーザが購読するデータの種別が格納される。「近隣ノード」34−4には、ユーザ端末の近隣に設けられた配信ノードを識別する識別情報が格納される。
図7は、第1の実施形態におけるノード間接続テーブルの構成例を示す。ノード間接続テーブル35は、「リンク」35−1、「From」35−2、「To」35−3を含む。「リンク」35−1には、配信ノード23間のリンクを識別する識別情報が格納される。「From」35−2には、リンクの接続元の配信ノード23の識別情報またはアドレスが格納される。「To」35−3には、リンクの接続先の配信ノードの識別情報またはアドレスが格納される。
図8は、第1の実施形態におけるセンサー情報テーブルの構成例を示す。センサー情報テーブル36は、「センサーID」36−1、「トピック」36−2、「収容ノード36−3」のデータ項目を含む。「センサーID」36−1には、センサー24を識別する識別情報が格納される。「トピック」36−2には、対応するセンサーに関するトピックを識別する識別情報が格納される。「収容ノード」36−3には、センサーIDに対応するセンサー24を収納している配信ノード、つまりセンサー近隣の配信ノードの識別情報が格納される。
図9は、第1の実施形態におけるノード状態テーブルの構成例を示す。ノード状態テーブル37は、「ノード」37−1、「許容処理量」37−2、「負荷量」37−3のデータ項目を含む。「ノード」37−1には、配信ノード23を識別する識別情報が格納される。「許容処理量」37−2には、配信ノード23の最大処理性能の値が格納される。「負荷量」37−3には、配信ノード23の現在の処理量が格納される。
図10は、第1の実施形態における収容管理テーブルの構成例を示す。収容管理テーブル38は、「ユーザID」38−1、「トピック」38−2、「データ種別」38−3、「収容ノード」38−4のデータ項目を含む。「ユーザID」38−1には、ユーザを識別する識別情報が格納される。「トピック」38−2には、ユーザに対応するトピックを識別する識別情報が格納される。「データ種別」38−3には、ユーザが購読するデータ種別が格納される。「収容ノード」38−4には、ユーザ端末25を収容している配信ノードを識別する識別情報が格納される。
図11は、第1の実施形態におけるリンク管理テーブルの構成例を示す。リンク管理テーブル39は、「リンク」39−1、「From」39−2、「To」39−3、「トピック」39−4、「データ種別」39−5のデータ項目を含む。「リンク」39−1には、配信ノード間のリンクを識別する識別情報が格納される。「From」39−2には、リンクの接続元の配信ノードの識別情報またはアドレスが格納される。「To」39−3には、リンクの接続先の配信ノードの識別情報またはアドレスが格納される。「トピック」39−4には、リンクの接続先の配信ノードに対して送信するトピックを識別する識別情報が格納される。「データ種別」39−5には、リンクの接続先の配信ノードに対して送信するデータ種別が格納される。
図12は、第1の実施形態における中継定義テーブルの構成例を示す。中継定義テーブル48は、「トピック」48−1、「宛先」48−2のデータ項目を含む。「トピック」48−1には、トピックを識別する識別情報が格納される。「宛先」48−2には、トピックごとの配信ノードからのデータの配信先を識別する識別情報またはアドレスが格納される。例えば、宛先=「Node2」のエントリが中継先ノードへの中継に該当し、宛先=「Server1」のエントリがユーザへの配信に該当する。たとえば、ユーザU2のユーザIDが「User2」である場合、ユーザU2にデータを配信する場合には宛先欄に「User2」がセットされる。
図13は、第1の実施形態における処理定義テーブルの構成例を示す。処理定義テーブル49は、「トピック」49−1には、トピックを識別する識別情報が格納される。「中継先」49−2には、トピックを配信する中継先を識別する識別情報またはアドレスが格納される。「データ種別」49−3には、対応する中継先に配信されるデータ種別が格納される。
図14は、第1の実施形態における制御ノードの全体フロー例を示す。本実施形態では、ユーザU1がトピック1の配信データD1及びD2を購読済みであるとする。また、ユーザU1が利用するユーザ端末25−1は、センサー24からの情報を配信ノード23−1(Node1)から配信ノード23−2(Node2)を経由して受信するものとする。また、サーバ21は、トピック1の全てのデータ(D1〜D4)を購読済みであり、センサー24からの情報を配信ノード23−1から受信するものとする。このときに、ユーザU2が新たにトピック1のデータD1について購読依頼を行ったとする。
ユーザU2がユーザ端末25−2を用いて、購読依頼を制御ノード22に通知する。この際に、ユーザ端末25−2からは、購読依頼と共に、ユーザ購読情報として、ユーザU2のユーザID(User2)、ユーザU2が購読依頼するデータ種別(D1)、ユーザ端末25−2の隣接ノードの情報(配信ノード23−4(Node4))を制御ノード22に送信する。なお、制御ノード22が、隣接ノードの情報を管理して、ユーザ端末25−2から通知されるユーザID(User2)に基づいて、隣接ノードの情報を求めても良い。
購読制御部31は、ユーザ端末25−2から購読制御情報(購読依頼)を受信すると(S11、S12で「Yes」)、ユーザ情報テーブル34にユーザ端末25−2から受信したユーザ購読情報を追加する(S13)。購読制御部31は、処理決定部32にユーザが増えたことを通知する。
次に、処理決定部32は、配信ノード決定処理を行う(S14)。配信ノード決定処理(S14)では、ユーザ端末25−2に実際に配信データを配信する配信ノードを決定する。S14の処理については、図15を用いて説明する。
処理決定部32は、データ種別追加処理を行う(S15)。データ種別追加処理(S15)では、ユーザU2の必要とするデータ種別D1がS14で決定した配信ノードまで配信されるように、リンク管理テーブル39に、データ種別を追加する。その後、処理決定部32は、データ種別についての配信定義情報を配布するように、定義配布部33に依頼する。
定義配布部33は、処理決定部32からの配布依頼を受けて、各配信ノード23に、配信定義情報を配布する(S16)。
次に、購読解除の場合について説明する。ユーザ端末25より購読解除するトピックを制御ノード22に通知し、ユーザ情報テーブル34から、その購読解除対象となるユーザ購読情報を削除する。それ以降の処理は購読依頼と同じである。以下に、購読解除について詳述する。
ユーザU2がユーザ端末25−2を用いて、購読解除要求を制御ノード22に通知する。この際に、ユーザ端末25は、購読解除要求と共に、ユーザ購読解除情報として、ユーザU2のユーザID(User2)、購読を解除するデータ種別(D1)、ユーザ端末25の隣接ノードの情報(配信ノード23−4(Node4))を制御ノード22に送信する。
購読制御部31は、ユーザ端末25−2から購読制御情報(購読解除要求)を受信すると(S11、S12で「No」)、ユーザ情報テーブル34から、その購読解除情報に対応するエントリを削除する(S17)。購読制御部31は、処理決定部32にユーザが減ったことを通知する。
処理決定部32は、購読制御部31からの購読解除情報を用いて、収容管理テーブルの「収容ノード」から、購読解除要求を通知したユーザ端末25−2に配信データ尾を配信していた配信ノードの識別情報を取得する(S18)。
処理決定部32は、ノード状態テーブル37において、S18で取得した配信ノードの「負荷量」を所定値分減らす(S19)。減らす値は、用いる「負荷量」がCPU利用率、メモリ利用率等、監視する負荷のいずれかであるかに応じて相違する。
処理決定部32は、データ種別削除処理を行う(S20)。データ種別削除処理(S20)では、ユーザU2が購読解除したデータ種別が、購読解除したユーザ端末25−2に配信データを配信する配信ノードまで不必要に配信されないように、リンク管理テーブル39からデータ種別を削除する。その後、処理決定部32は、データ種別についての配信定義情報を配布するように、定義配布部33に依頼する。
定義配布部33は、処理決定部32からの配布依頼を受けて、各配信ノード23に、配信定義情報を配布する(S16)。
図15は、第1の実施形態における制御のノードの配信ノード決定処理(S14)のフローを示す。処理決定部32は、購読制御部31からの通知を契機に、ユーザ情報テーブル34の該当するエントリ(User2,Topic1,D1,Node4)を読み出し、ユーザ端末25−2の接続先の配信ノードの選択を行う(S14−1)。
次に、処理決定部32は、ノード状態テーブル37を参照し、ユーザ購読情報に含まれるノード(Node4)の負荷量(例えば、Copy回数)が予め設定した閾値を超えているか否かを判定する(S14−2)。ここで、予め設定した閾値とは、ノード状態テーブル37の「許容処理量」に設定した値をいう。
S14−2において、ユーザ購読情報に含まれるノード(Node4)の負荷量がその閾値を超えていない場合は(S14−2で「No」)、そのノード(Node4)を選択する。
一方、ユーザ購読情報に含まれるノード(Node4)の負荷がその閾値を超えている場合(S14−2で「Yes」)、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、ノード間接続テーブル35を用いて、ユーザ購読情報に含まれる近隣ノード(Node4)に隣接するノードの中で負荷が閾値を越えていないノードを順に探索して、ノードを選択する(S14−3)。
処理決定部32は、S14−1またはS14−3で選択したノードのNode番号(Node4)、ユーザID(User2)、データ種別(D1)を収容管理テーブル38に追加する(S14−4)。
処理決定部32は、ノード状態テーブル35において、S14−1またはS14−3で選択したNode番号(Node4)に対応するエントリの負荷量を所定値分増やす(S19)。「負荷量」がCopy回数の場合には、Node番号(Node4)に対応するエントリの負荷量に「1」を増やす。
図16は、第1の実施形態における制御ノードのデータ追加処理(S15)のフローを示す。処理決定部32は、ノード間接続テーブル35を読み出し、S14で決定したノード(Node4)と、その決定したノードを接続先とする配信ノード(Node2)間のリンクを特定する。それから、処理決定部32は、リンク管理テーブル39を用いて、そのリンクに関して、ユーザ購読情報に含まれるデータ種別の配信データ(D1)が届くようになっているか確認する。
具体的には、処理決定部32は、ノード間接続テーブル35において、「To」の欄に設定されたノードがS14で決定したノード(Node4)であるエントリを検索する。処理決定部32は、その検索されたエントリのデータ項目「リンク」に格納されているリンクの識別情報(L3)、及び「From」に格納されているノードの識別情報(Node2)を取得する。処理決定部32は、リンク管理テーブル39から、取得したリンクの識別情報(L3)を含むエントリを取得する。処理決定部32は、その取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されているか確認する(S15−1)。その取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されている場合、すなわちData種別が不足していない場合(S15−1で「No」)、D1がNode4へ届くことになるので、本フローは終了する。
リンク管理テーブル39から取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されていない場合、すなわちData種別が不足している場合(S15−1で「Yes」)、D1が収容ノード(Node4)へ届かないので、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、その取得したエントリのデータ項目「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)を格納する(S15−2)。それから、処理決定部32は、センサー24に近いノードから順にD1が配信されるように、ノード間接続テーブル35から、収容ノード(Node4)の上位ノード(リンクの接続元)を検索し(S15−3)、S15−1、S15−2を繰り返す。本実施形態の場合、Node2まではデータ種別(D1)のデータが届いているため、リンク管理テーブル39においてNode2からNode4へのリンクを示すエントリの、データ項目「データ種別」に「D1」を設定する。
処理決定部32はリンク管理テーブル39の更新が完了した時点で、定義配布部33に配信定義を配信ノードに配信するように依頼する。
上記の方法は、購読依頼のあったユーザの追加に伴い、そのユーザのユーザ端末25に、ユーザが必要とするデータ種別のデータを配信するものである。しかしながら、配信システム全体の最適化のために、定期的に全体の収容管理及びリンク管理を見直しても良い。この詳細は、第5及び第6の実施形態で説明する。
図17は、第1の実施形態における制御のノードのデータ削除処理のフローを示す。処理決定部32は、収容管理テーブル38から、購読解除情報に含まれるユーザIDと一致するユーザIDを有するエントリを検索し、そのエントリのデータ項目「収容ノード」に格納されたノードの識別情報を取得する。処理決定部32は、ノード間接続テーブル35において、「To」=その取得したノード「Node4」のエントリを検索する。処理決定部32は、その検索されたエントリの「リンク」に格納されているリンクの識別情報(L3)、及び「From」に格納されているノードの識別情報(Node2)を取得する。処理決定部32は、リンク管理テーブル39から、取得したリンクの識別情報(L3)を含むエントリのデータ種別に「D1」が含まれている場合には、D1を削除する(S20−1で「Yes」、S20−2)。
処理決定部32は、上位ノード(リンクの接続元)を検索し(S20−3)、その上位ノードのリンク管理テーブル39のエントリからデータ種別(D1)を削除する。処理決定部32は、リンク管理テーブル39の更新が完了した時点で、定義配布部33に配信定義を配信ノード23に配信するように依頼する。
図18は、第1の実施形態における制御ノードにより行われるデータ設定処理のフローを示す。定義配布部33は、処理決定部32からの配信定義の配布依頼を受けて、収容管理テーブル38の接続先Node、リンク管理テーブル39のFrom欄のノードを選択する(S16−1)。定義配布部33は、その選択したノードに対して、収容管理テーブル38及びリンク管理テーブルのエントリを配信定義として送信する(S16−2)。定義配布部33は、全ノードについてS16−1〜S16−2の処理を繰り返す(S16−3)。
図19は、第1の実施形態における制御ノードからの配信定義受信時の配信ノードのフローを示す。配信ノード23の定義設定部47は、制御ノード22から配布された配信定義(収容管理テーブル38及びリンク管理テーブル39のエントリ)を受信する(S31)。定義設定部47は、その受信した配信定義を解析し、その解析した配信定義を中継定義テーブル48及び処理定義テーブル49に設定する(S32)。
すなわち、S32において、定義設定部47は、制御ノード22から配布された配信定義を解析し、収容管理テーブル38の収容ノード及びUserIDを中継定義テーブル48の宛先として登録する。例えば、配信ノード23−1の場合には、Node2およびServer1が宛先として中継定義テーブル48に登録される。なお、Node2およびServer1のアドレス情報については、制御ノード22もしくは配信ノード23に設定されており、アドレス解決可能な状態であるものとする。
また、S32において、定義設定部47は、収容管理テーブル38のUserIDごとに定義されたデータ種別、及びリンク管理テーブル39のToごとに定義されたデータ種別を、処理定義テーブル49に登録する。例えば配信ノード23−1では、Server1に対してD1,D2,D3,D4を転送し、Node2に対してD1,D2を転送するようにエントリが処理定義テーブル49に登録される。
図20は、第1の実施形態におけるメッセージ受信時の配信ノードのフローを示す。以下では、配信ノード23−1を例に、図20のフローを説明する。センサー24は、配信ノード23−1に対してD1〜D4を含むメッセージを送信する。
受信処理部41は、そのメッセージを受信する(S41)。トピック識別部42は、その受信したメッセージを解析し、トピックの識別情報を取得する(S42)。配信ノード23−1の場合、トピック識別部42は、トピック1に関するメッセージであることを識別する。
宛先決定部43は、S42で識別したトピックをキーとして、中継定義テーブル48を検索し、そのキーを含むエントリの宛先情報を読み出し、宛先が決定する(S43)。配信ノード23−1の場合、宛先決定部43は、S42で識別したトピック1をキーとして、宛先がServer1及びNode2であることを読み出す。宛先決定部43は、その読み出した宛先をコピー処理部44に通知する。
コピー処理部44は、通知された宛先数に応じて、受信したメッセージをコピーする(S44)。配信ノード23−1の場合、コピー処理部44は、宛先決定部43より通知された宛先が2つであることから、受信メッセージを複製してServer1宛及びNode2宛のメッセージを作成する。
フィルタ処理部45は、処理定義テーブル49に基づいて、受信したメッセージから、不要なXMLタグを削除する(フィルタ処理)(S45,S46)。
配信ノード23−1の場合、フィルタ処理部45は、処理定義テーブル49の内容を参照し、宛先がServer1のメッセージについてはそのまま転送する。一方、フィルタ処理部45は、宛先がNode2のメッセージについては、データ種別D3,D4に関するXMLタグを削除し、データ種別D1,D2に関するXMLタグのみのメッセージを作成する。
送信処理部46は、各々の宛先に、フィルタ処理部45で処理されたメッセージを転送する(S47)。
以降、各配信ノード23で同様の処理を繰り返し、サーバ21、ユーザ端末25−1、ユーザ端末25−2にそれぞれ必要なデータを届ける。
なお、コピー処理とフィルタ処理の順序には依存性はなく、同一のフィルタ処理を繰り返し行うことが分かっている場合は、処理効率を上げるためにフィルタ処理を先に行ってからコピー処理を行っても良い。
このように、ユーザ端末25の近隣にある1以上の配信ノードから、負荷に余裕のある配信ノードを実際にユーザ端末25に配信する配信ノードとして決定することができる。その決定した配信ノードから、既存のリンク関係に基づいて、そのユーザ端末25が配信要求しているデータ種別のデータが到来している上位の配信ノードまで辿ることができる。そして、その上位の配信ノードから、その決定した配信ノードへそのデータ種別のデータを引き込むことができる。
本実施形態によれば、制御ノードは、ユーザの購読依頼の受信を契機として、トポロジーの情報(センサーと配信ノード及びユーザの位置関係)、購読依頼の内容及び各配信ノードの負荷状態に基づいて、中継処理の配信定義を生成する。そして、制御ノードは、各配信ノードに配信定義を設定するよう指示する。配信ノードは、制御ノードからの指示に従って、データのコピー、フィルタ、中継処理を行う。これにより、複数のユーザに対して必要なデータのみを分散配信することが可能となる。
<第2の実施形態>
本実施形態では、制御ノードが、前回配布した時刻以降に更新された配信定義のみを配信ノードに配信する場合の処理内容を説明する。なお、第2の実施形態において、第1の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図21は、第2の実施形態における制御ノード及び配信ノードの構成ブロックを示す。第2の実施形態の配信システム20は、第1の実施形態の制御ノード22において、配信時刻管理テーブル51を追加したものである。また、収容管理テーブル38aには、収容管理テーブル38にデータ項目「更新時刻」が追加されている。リンク管理テーブル39aには、リンク管理テーブル39に、データ項目「更新時刻」が追加されている。
配信時刻管理テーブル51は、前回配信を行った日時を保持する。
処理決定部32は、第1の実施形態の機能に加え、現在の収納管理テーブル及びリンク管理テーブルのエントリと更新・追加・削除する内容を確認し、収容管理テーブル38a及びリンク管理テーブル39aの更新時刻を変更する。なお、削除する場合は、処理決定部32は、リンク管理テーブル39aのエントリを削除するのではなく、リンク管理テーブル39aのデータ種別欄を空欄にすることで削除処理とする。
定義配布部33は、第1の実施形態の機能に加え、配信時刻管理テーブル51より前回の配信時刻を読み出し、前回の配信時刻以降に更新された収容管理テーブル38a及びリンク管理テーブル39aのエントリ(配信定義)のみを、配信ノード23に配布する。また、定義配布部33は、配信時刻管理テーブル51の配信時刻を、配信定義を配信ノード23に配布した日時で更新する。
図22は、第2の実施形態における配信時刻管理テーブルの構成例を示す。配信時刻管理テーブル51は、「トピック」51−1、「配信時刻」51−2のデータ項目を含む。「トピック」51−1には、トピックの識別情報が格納される。「配信時刻」51−2には、前回配信を行った日時が格納される。
図23は、第2の実施形態における収納管理テーブルの構成例を示す。収納管理テーブル38aは、図10の収納管理テーブル38に、データ項目「更新時刻」38−5を追加したものである。「配信時刻」38−5には、当該エントリが追加または更新された日時が格納される。
図24は、第2の実施形態におけるリンク管理テーブルの構成例を示す。リンク管理テーブル39aは、図11のリンク管理テーブル39に、データ項目「更新時刻」39−6を追加したものである。「配信時刻」39−6には、当該エントリが追加または更新された日時が格納される。
次に、第2の実施形態における制御ノードの処理フローについて説明する。第2の実施形態の制御ノードの処理フローは、第1の実施形態の処理(図15−図18)において、図16−図18の処理を一部変更したものである。これについて、図25、図26を用いて説明する。
図25は、第2の実施形態における制御のノードのデータ追加処理のフローを示す。図25は、図16のS15−2をS15−11に置き換えたものである。S15−11では、処理決定部32は、センサー24に近いノードから順にD1が配信されるように、ノード間接続テーブル35から、上位ノード(リンクの接続元)を検索し、リンク管理テーブル39のエントリ及びデータ種別を追加する。さらに、処理決定部32は、収納管理テーブル38a及びリンク管理テーブル39aの更新時刻を現在の時刻で更新する。
図26は、第2の実施形態における制御のノードのデータ削除処理のフローを示す。図26は、図17のS20−2をS20−11に置き換えたものである。処理決定部32は、収容管理テーブル38から、購読解除情報に含まれるユーザIDと一致するユーザIDを有するエントリを検索し、そのエントリのデータ項目「収容ノード」に格納されたノードの識別情報を取得する。処理決定部32は、ノード間接続テーブル35において、「To」=その取得したノード「Node4」のエントリを検索する。処理決定部32は、その検索されたエントリの「リンク」に格納されているリンクの識別情報、及び「From」に格納されているノードの識別情報を取得する。リンク管理テーブル39aにおいて、取得したリンクの識別情報(L3)を含むエントリのデータ種別に購読解除要求の対象であるデータ種別(D1)が含まれている場合には(S20−1で「Yes」)、処理決定部32は、そのエントリのデータ種別(D1)を削除する。さらに、処理決定部32は、収納管理テーブル38a及びリンク管理テーブル39aの更新時刻を現在の時刻で更新する(S20−11)。
図27は、第2の実施形態における制御ノードにより行われるデータ設定処理のフローを示す。図27は、図18にS16−11を追加したものである。S16−11では、定義配布部33は、配信時刻管理テーブル51より前回の配信時刻を読み出す。定義配布部33は、配信時刻管理テーブル51より読み出した配信時刻と、収納管理テーブル38a及びリンク管理テーブル39aの更新時刻とを比較する。定義配布部33は、収納管理テーブル38a及びリンク管理テーブル39aから、配信時刻管理テーブル51より読み出した配信時刻以降に更新されたエントリを配布対象として抽出する。S16−11の処理の結果、抽出された配布対象がある場合(S16−11で「Yes」)、定義配布部33は、その配布対象を配信定義(収納管理テーブル38a及びリンク管理テーブル39aのエントリ)として、各配信ノードに送信する(S16−2)。これ以降の処理は、図18と同様である。
本実施形態によれば、処理決定部32は、収容管理テーブル38a及びリンク管理テーブル39a内に更新時刻を書き込み可能にする。定義配布部33は、エントリの更新時刻及び配信時刻管理を行う処理決定部32と連携して、前回配信時との差分の配信定義を配信可能にする。
<第3の実施形態>
第3の実施形態では、複数の配信ノードのうち、配信要求をした情報処理装置の近隣にある一の配信ノードのグループに属する配信ノードから、その情報処理装置に実際に配信する配信ノードを選択することについて説明する。なお、第3の実施形態において、第1または第2の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図28は、第3の実施形態における配信システムの構成例を示す。例えば、図28に示すように、エリアAとエリアBの拠点に配信ノードが分散配置されているとする。そして、エリア内の帯域は十分にあるが、エリアAとエリアBのエリア間の帯域が狭い場合を考える。
エリアA近隣のユーザにとって、エリアA内部であれば、どの配信ノードから配信されてもあまり違いはない。また、エリアA近隣のユーザは、エリアBの近隣のノードからの配信はできる限り避けたいという状況が起こりうる。
そこで、本実施形態では、複数の配信ノードのうち、配信要求をした情報処理装置の近隣にある一の配信ノードのグループに属する配信ノードから、その情報処理装置に実際に配信する配信ノードを選択する。ここで、グループは、配信経路、通信環境等に応じて、設定されるものである。例えば、本実施形態では、グループ間の帯域は、所定の閾値より狭いものとする。なお、グループは、任意に設定することができる。
図29は、第3の実施形態における制御ノード及び配信ノードの構成ブロックを示す。第3の実施形態の配信システム20は、第1の実施形態の制御ノード22において、ノードグループテーブル52を追加したものである。また、配信ノードの中から優先的に所定のノードを選択できるように、ノード間接続テーブル35bを用いる。
図30は、第3の実施形態におけるノードグループテーブルの構成例を示す。ノードグループテーブル52は、「グループ」52−1、「ノード」52−2のデータ項目を含む。「グループ」52−1には、グループを識別する識別情報が格納される。「ノード」52−2には、そのグループに属するノードを識別する識別情報が格納される。
図31は、第3の実施形態におけるノード間接続テーブルの構成例を示す。ノード間接続テーブル35bは、図7のノード間接続テーブル35に、データ項目「グループ」35−4を追加したものである。「グループ」35−4には、「リンク」35−1に格納されたリンクが属するグループを識別する識別情報が格納される。
処理決定部32は、ノード間接続テーブル52を用いて、配信ノード23のグループの中から1つの配信ノードを選択する。このとき、処理決定部32は、無駄なフィルタ処理を行わなくていいように、ノードグループテーブル52を用いて、同じコピー対象のデータ種別を要求するユーザ端末を有するノードから優先的に選択する。
例えば、第1の実施形態の処理が終わった後、ユーザU3が新たにデータ種別D1,D2の購読依頼を行ったとする。このとき、例えば、ユーザU3のユーザ端末25−3の近隣の配信ノードがNode1であるとする。また、図30のノードグループテーブル52に示すように、Node1,Node12,Node13が同一のグループであるとする。この場合、処理決定部32は、ノードグループテーブル52を参照して、Node1,Node2,Node3の中から配信ノードを決定する。
処理決定部32は、新たに配信先となるユーザU3のユーザ端末25−3の配信ノードを決定する際には、リンク管理テーブル39を参照し、配信ノードが受信するデータ種別とユーザ端末25−3に配信するデータ種別が同一であるノードを優先的に選ぶ。
リンク管理テーブル39に配信ノードが受信するデータとユーザ端末25−3に配信するデータが同一であるノードがない場合、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、収容管理テーブル38を参照し、同一のデータ種別を配信しているユーザを収容している(送信する)配信ノードを優先的に選ぶ。
次に、第3の実施形態における制御ノードの処理フローについて説明する。第3の実施形態の制御ノードの処理フローは、第1の実施形態の処理(図15−図18)において、図15の処理を変更したものである。これについて、図32を用いて説明する。
図32は、第3の実施形態における制御ノードの配信ノード決定処理(S14)のフローを示す。処理決定部32は、購読制御部31からの通知を契機に、ユーザ情報テーブル34の該当するエントリ(User2,Topic1,D1,Node4)を読み出し、ユーザ端末25の接続先の配信ノードの選択を行う(S14−11)。
処理決定部32は、ノードグループテーブル52から、S14−11で選択した配信ノードのグループに属する配信ノードを読み出す(S14−12)。
処理決定部32は、リンク管理テーブル39を用いて、配信ノードが受信するデータ種別と購読依頼をしたユーザのユーザ端末25に配信するデータ種別が同一であるノードがあるかを検索する(S14−13)。
S14−13での検索の結果、リンク管理テーブル39に、配信ノード23が受信するデータ種別と購読依頼をしたユーザのユーザ端末25に配信するデータ種別が同一であるノードがある場合(S14−13で「Yes」)、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、その検索された配信ノードを選択する(S14−14)。
リンク管理テーブル39に、配信ノードが受信するデータと購読依頼をしたユーザのユーザ端末25に配信するデータが同一であるノードがない場合(S14−13で「No」)、処理決定部32は、次の処理を実行する。すなわち、処理決定部32は、収容管理テーブル38を用いて、配信ノード23が送信するデータ種別と購読依頼をしたユーザのユーザ端末25に配信するデータ種別が同一であるノードがあるかを検索する(S14−15)。
S14−15での検索の結果、収容管理テーブル38に、配信ノード23が送信するデータ種別と購読依頼をしたユーザのユーザ端末25に配信するデータ種別が同一であるノードがある場合、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、その検索された配信ノードを選択する(S14−16)。
S14−15での検索の結果、収容管理テーブル38に、配信ノード23が送信するデータ種別と購読依頼をしたユーザのユーザ端末25に配信するデータ種別が同一であるノードがない場合、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、S14−12で読み出した配信ノードからランダムに1つを選択する(S14−17)。
処理決定部32は、ノード状態テーブル35を参照し、S14−14,S14−16、またはS14−17で選択された配信ノードの負荷量(例えば、Copy回数)が予め設定した閾値を超えているか否かを判定する(S14−18)。ここで、予め設定した閾値とは、ノード状態テーブル37の「許容処理量」に設定した値をいう。
S14−18において、配信ノードの負荷量がその閾値を超えていると判定された場合(S14−18で「Yes」)、処理決定部32は、次の処理を実行する。すなわち、処理決定部32は、S14−14,S14−16、またはS14−17で選択された配信ノードのグループに属する全ての配信ノードの負荷量がその閾値を超えているか否かを判定する(S14−19)。その選択された配信ノードの属するグループの全てが配信ノードの負荷量がその閾値を超えていると判定された場合(S14−19で「Yes」)、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、ノードグループテーブル52を参照して、当該グループに隣接する他のグループを選択し(S14−20)、S14−13の処理へ戻る。
その選択された配信ノードの属するグループの全てが配信ノードの負荷量がその閾値を超えていないと判定された場合(S14−19で「No」)、処理決定部32は、S14−13の処理へ戻る。
S14−18において、配信ノードの負荷量がその閾値を超えていないと判定された場合(S14−18で「No」)、処理決定部32は、選択したNode番号(Node4)、ユーザID(User2)、データ種別(D1)を収容管理テーブル38に追加する(S14−21)。
処理決定部32は、ノード状態テーブル35において、S14−14、S14−16またはS14−17で選択したNode番号(Node4)に対応するエントリの負荷量を、所定値分、増やす(S19)。増やす値は、「負荷量」がCopy回数の場合には、Node番号(Node4)に対応するエントリの負荷量に「+1」だけ増やす。
本実施形態によれば、制御ノードは、複数の配信ノードのうち、配信要求をした情報処理装置の近隣にある一の配信ノードのグループに属する配信ノードから、その情報処理装置に実際に配信する配信ノードを選択する。また、同じデータ種別を要求している情報処理端末に送信している配信ノードから優先的に選択することができるので、無駄なフィルタ処理を行わなくてよい。
<第4の実施形態>
第1の実施形態では、コピー回数等の制御ノード側で把握できる情報に基づいて、負荷判断をしていた。それに対して、本実施形態では、各配信ノードから負荷情報を収集して、その情報をノードの状態として反映させることについて説明する。これにより、より正確な負荷情報に基づく処理が可能になる。なお、第4の実施形態において、第1〜第3の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図33は、第4の実施形態における制御ノード及び配信ノードの構成ブロックを示す。第4の実施形態の配信システム20は、第1の実施形態の制御ノード22に負荷状態更新部53を追加し、配信ノード23に負荷状態収集部54を追加したものである。
負荷状態収集部54は、配信ノード側のリソースを監視して制御ノード側に定期的にその監視結果を通知する。
負荷状態更新部53は、配信ノードから通知された監視結果を受け取り、ノード状態テーブル37を更新する。例えば配信ノードにより配信ノードのCPU負荷が監視される場合は、ノード状態テーブル37のエントリ内容をCPUの利用率にすればよい。
図34は、第4の実施形態におけるノード状態テーブルの構成例を示す。ノード状態テーブル37cは、「ノード」37−1、「許容CPU利用率」37c−2、「現CPU利用率」37c−3のデータ項目を含む。「許容CPU利用率」37c−2には、配信ノードの許容CPU利用率が格納される。「現CPU利用率」37c−3には、配信ノードから逐次送信されたその配信ノードのCPU利用率が格納される。
図35は、第4の実施形態における負荷状態収集部54の処理フローを示す。負荷状態収集部54は、配信ノード23側のリソース(CPU利用率)を監視して、配信ノード23の負荷情報を収集する(S51)。負荷状態収集部54は、収集した負荷情報(ノードの識別情報、CPU利用率)を制御ノード22へ送信する(S52)。負荷状態収集部54は、随時、S51,S52の処理を繰り返す。
図36は、第4の実施形態における負荷状態更新部53の処理フローを示す。負荷状態更新部53は、配信ノード23から送信された負荷情報を受信する(S61)。負荷状態更新部53は、その受信した負荷情報を用いて、ノード状態テーブル37cの「現CPUリオ用率」37c−3の値を更新する。
図37は、第4の実施形態における制御ノードの全体フロー例を示す。図37は、図14のフローからS19の処理を削除したものなので、その説明を省略する。
図38は、第4の実施形態における制御のノードの配信ノード決定処理(S14)のフローを示す。図38は、図15のフローにおいて、S14−2をS14−2aに置き換え、S14−5の処理を削除したものである。
S14−2aにおいて、処理決定部32は、ノード状態テーブル37cを参照し、ユーザ購読情報に含まれるノード(Node4)の負荷量(現CPU利用率)が予め設定した閾値を超えているか否かを判定する(S14−2)。ここで、予め設定した閾値とは、ノード状態テーブル37cの「許容CPU利用率」に設定した値をいう。これ以降は、図15と同様なので、その説明を省略する。
本実施形態によれば、制御ノードは、配信ノードの負荷量の判断処理において、配信ノードのCPU負荷状態を用いることができる。
なお、第4の実施形態では、監視の対象が配信ノードのCPU負荷であったが、これに限定されず、例えば、メモリの利用量など、リソースとして把握できる数値データであってもよい。
<第5の実施形態>
第5の実施形態では、ユーザ端末に実際に配信する配信ノードを見直す処理の説明をする。なお、第5の実施形態において、第1〜第4の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図39は、第5の実施形態の適用前の配信状態を説明する図である。図39に示すように、配信ノード23−1〜23−6が配置されている。ユーザからの購読依頼を契機に、既に配信中のユーザに対する配信経路を変えずに、配信ノードの追加・削除を繰り返していくとする。すると、最適な配信ノードとは異なる配信ノードから、データ種別が配信されてしまう可能性がある。ここで、最適な配信ノードとは異なる配信ノードからデータ種別が配信されてしまう可能性とは、例えば1つのデータ種別だけが欲しいユーザU4,U5,U6と全データ種別が欲しいユーザU1,U2,U3が均等に全配信ノードに収容されている場合に起こりうる。この場合、図39に示すように、全データ種別が欲しいユーザU1、U2,U3に引きずられて、配信ノード23−1〜23−6間の全ての通信において全データ種別を配信することになってしまう。
このような状態に陥った場合に、制御ノード22は、最適な配信ノードから配信し直すように配信ノードの配信形態を見直す処理を実行する。例えば、ユーザから購読依頼を20回受け取ると、1回配信ノードの配信形態を見直すような処理が考えられる。また、時刻の経過に応じて、例えば1時間ごとに定期的に配信ノードの配信形態を見直しても良い。
図40は、第5の実施形態の適用後の配信状態を説明する図である。同一グループに所属するユーザ端末であれば、どの配信ノードからデータ種別を渡されても問題ないため、最適な配信ノードから配信されるように配信ノードの配信形態を設計する。例えば、上流のノードほど多いデータ種別を中継し、端末のノードほど少ないデータ種別を中継するようにする。
そこで、第5の実施形態では、図41に示すように、第3の実施形態における同一グループの、より上流にあるノードから順に、より多いデータ種別が欲しいと希望するユーザを割当てるようなアルゴリズムを用いる。
第5の実施形態のシステム構成は、第3の実施形態(図29)と同様である。また配信ノードのフローチャートのうち、第3の実施形態に追加された処理を図41に示す。
図41は、第5の実施形態における見直し処理のフローを示す。処理決定部32は、ノードグループテーブル52からいずれかのグループを選択する(S71)。
処理決定部32は、本フローの処理による見直し処理がまだされていないために配信ノード未決定で、かつユーザ情報テーブル34から購読依頼情報の種別の多いユーザを選択する(S72)。
処理決定部32は、配信木のうち、負荷に余裕がある最上位ノードを配信元として選択する(S73)。ここでは、処理決定部32は、S72で選択したユーザをキーとして、収納管理テーブル38からそのユーザに対応する「収納ノード」を取得する。処理決定部32は、ノード間接続テーブル35を参照して、その取得した収納ノードの最上位のノートを検索する。処理決定部32は、ノード状態テーブルを参照して、その最上位のノードの負荷量が予め設定された閾値を超えていないか判定する。ここで、予め設定した閾値とは、ノード状態テーブル37の「許容処理量」に設定した値をいう。その最上位のノードの負荷量が予め設定された閾値を超えていないと判定した場合、処理決定部32は、その最上位のノードを、S72で選択したユーザに実際に配信する配信ノードとして選択する。
次に、処理決定部32は、データ種別追加処理を行う(S74)。S74のデータ種別追加処理は、図16で説明したS15の処理と同様である。
処理決定部32は、ユーザ情報テーブル34に登録されたユーザのうち、S71で選択したグループに属する全てのユーザについて、配信元が決定したか否かを判定する(S75)。ユーザ情報テーブル34に登録されたユーザのうち、S71で選択したグループに属する全てのユーザについて配信元が決定していない場合(S75で「No」)、処理決定部32は、S72の処理へ戻る。ユーザ情報テーブル34に登録されたユーザのうち、S71で選択したグループに属する全てのユーザについて、配信元が決定している場合(S75で「Yes」)、処理決定部32は、全グループに対して、S71〜S75の処理を行う。
第5の実施形態によれば、制御ノードは、配信ノード間のトポロジーを変更せずに、どのノードからどのユーザ端末にデータ種別を配信するかということを制御することで、配信システム全体で、ユーザの収容状態の見直しを行うことができる。このように、配信ノードの配信形態の再設定を行うことにより、ネットワーク上を流れるデータ量をより削減することが可能となる。
<第6の実施形態>
第5の実施形態では、ユーザ端末に実際に配信する配信ノードを見直すことはできるが、配信木自体の見直しについては行っていない。しかしながら、物理ネットワークの構成を考慮すると、購読するデータ種別が多いユーザが配信木の端末に固まっている場合、その配信ノードを配信木のルートにした方がネットワーク上を流れるトラフィックを削減できることになる。
そこで、第6の実施形態では、配信ノード間の論理トポロジーを見直す処理の説明をする。第6の実施形態のシステム構成は、第5の実施形態と同様である。なお、第6の実施形態において、第1〜第5の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図42は、第6の実施形態における配信ノード間の論理トポロジーを見直す処理フローを示す。図42のフローは、図41のフローに、配信木見直し処理(S81)を追加したものである。図42では、第5の実施形態における定期的な見直し処理の最初に、購読希望のデータ種別が多いユーザに物理的に近い配信ノードを配信木のルートとして、グループ内の配信木を見直す処理が追加されている。配信木見直し処理(S81)の詳細については、図43で説明する。
図43は、第6の実施形態における配信木見直し処理(S81)の詳細フローを示す。処理決定部32は、ユーザ情報テーブル34及び収容管理テーブル38を参照して、購入しているデータ種別が最も多いエントリを抽出し、そのエントリを「収容ノード」38−4毎にカウントする(S81−1)。
次に、処理決定部32は、上記カウントの結果、カウント数が最も多い「収容ノード」38−4に格納されたノードを配信木のルートとして選択する(S81−2)。
処理決定部32は、その選択したノードをルートとして配信木を作成する(S81−3)。その選択したノードをルートとして配信木を作成する場合、処理決定部32は、例えば、マルチキャストルーティングプロトコル等を用いて、配信木(ディストリビューションツリー)の構築方法を用いてもよい。一例として、処理決定部32は、その選択したノードをランデブーポイントとして、配信木を作成してもよい。ランデブーポイントとは、複数のマルチキャストグループがあってもひとつのディストリビューションツリーを共有して、マルチキャストデータのルーティングを行う場合の、ツリーを共有するために中心となる中継装置である。
本実施形態によれば、配信ノード間の論理トポロジーを見直して、配信要求されたデータ種別が多いユーザに配信している配信ノードを配信木のルートにすることができるので、ネットワーク上を流れるトラフィックを削減できる。
<第7の実施形態>
第7の実施形態では、配信システムが大規模化したときの対応を対象に説明する。なお、第7の実施形態において、第1〜第6の実施形態と同様な構成については、同一の符号を付し、その説明を省略する。
図44は、第7の実施形態における制御ノード及び配信ノードの構成ブロックを示す。第7の実施形態の配信システム20は、第1の実施形態の制御ノード22において、制御ノード連携部55、制御ノード・配信ノード管理テーブル56を追加したものである。
配信ノード数が多数になり、単一の制御ノード22だけでは制御できなくなった場合、制御ノードを複数台並べ、それらの制御ノードが並列して制御を行う。この場合、各制御ノードは、自身が管理する配信ノードを格納した制御ノード・配信ノード管理テーブル56を有する。これにより、各制御ノード22は、制御ノード・配信ノード管理テーブル56に基づいて、自身が管理する複数の配信ノードを1つのドメイン(同一制御ノード配下の配信ノードグループ)として扱い、そのドメイン単位に配信制御を行う。
ユーザは、ユーザ端末25を用いて、ユーザ端末25自身が属するネットワークを管理する制御ノードに対して購読依頼を発行する。当該制御ノードは、その制御ノード配下の配信ノードの中から、ユーザ端末25への配信ノードを決定する。
配信経路が複数の制御ノード配下の配信ノードをまたがる場合、配信するデータ種別の調整を制御ノード間で行う必要がある。そこで、制御ノード連携部55は、配信経路が複数の制御ノード配下の配信ノードをまたがる場合、配信するデータ種別の調整を制御ノード間で行う。
データ種別の追加・削除処理において、自身の制御ノード配下よりもさらに上位ノードの配信データを変更する必要が生じた場合に、当該制御ノード連携部55は、他の制御ノード22−nに対して配信データ種別の追加・削除の依頼を行う。
配信データ種別の追加・削除依頼を受信した制御ノード22−nは、その依頼の内容に基づいてデータ種別の追加・削除の処理と、変更があった内容を管理配下の配信ノードに設定する。
図45は、第7の実施形態における制御ノード・配信ノード管理テーブルの構成例を示す。制御ノード・配信ノード管理テーブル56は、「制御ノード」56−1、「ノード」56−2のデータ項目を含む。
「制御ノード」56−1は、制御ノードを識別する識別情報が格納される。「ノード」56−2は、「制御ノード」56−1に格納された制御ノードが管理するノードを識別する識別情報が格納される。
次に、第7の実施形態における制御ノードの処理フローについて説明する。第7の実施形態の制御ノードの処理フローは、第1の実施形態の処理(図15−図18)において、図16、図17の処理を変更したものである。これについて、図46、図47を用いて説明する。なお、図46、図47は、当該制御ノード連携部55が、他の制御ノード22−nに対して配信データ種別の追加・削除の依頼を行う場合の処理である。
図46は、第7の実施形態における制御のノードのデータ追加処理のフローを示す。図46は、図16のフローに、S15−21、S15−22の処理を追加したものである。なお、以下では、図16で用いた例を用いて説明する。
処理決定部32は、ノード間接続テーブル35を読み出し、S14−1またはS14−3で選択したノード(収容ノード)(Node4)と、その収容ノードを接続先とする配信ノード(Node2)間のリンクを特定する。それから、処理決定部32は、リンク管理テーブル39を用いて、そのリンクに関して、ユーザ購読情報に含まれるデータ種別(D1)が届くようになっているか確認する。
具体的には、処理決定部32は、ノード間接続テーブル35において、「To」=S14で決定したノード(Node4)のエントリを検索する。処理決定部32は、その検索されたエントリの「リンク」に格納されているリンクの識別情報(L3)、及び「From」に格納されているノードの識別情報(Node2)を取得する。処理決定部32は、リンク管理テーブル39から、取得したリンクの識別情報(L3)を含むエントリを取得する。処理決定部32は、その取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されているか確認する(S15−1)。その取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されている場合(S15−1で「No」)、D1がNode4へ届くことになるので、本フローは終了する。
リンク管理テーブル39から取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)が格納されていない場合(S15−1で「Yes」)、D1が収容ノード(Node4)へ届かないので、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、リンク管理テーブル39から取得したエントリの「データ種別」に、ユーザ購読情報に含まれるデータ種別(D1)を格納する(S15−2)。それから、処理決定部32は、センサー24に近いノードから順にD1が配信されるように、ノード間接続テーブル35から、収容ノード(Node4)の上位ノード(リンクの接続元)を検索する(S15−3)。
処理決定部32は、制御ノード・配信ノード管理テーブル56を参照して、S15−3で検索したノードが当該制御ノードの管理下にある配信ノードであるかを判定する(S15−21)。
S15−3で検索したノードが当該制御ノードの管理下にある配信ノードである場合(S15−21で「No」)、処理決定部32は、S15−1の処理に戻る。
S15−3で検索したノードが当該制御ノードの管理下にある配信ノードでない場合(S15−21で「Yes」)、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、制御ノード・配信ノード管理テーブル56を参照して、その検索されたノードを管理する制御ノードを特定する。処理決定部32は、制御ノード連携部55に、その特定した制御ノードに対してリンク管理テーブル39にデータ種別を追加するように依頼する(データ種別追加依頼)(S15−22)。
図47は、第7の実施形態における制御のノードのデータ削除処理のフローを示す。図47は、図17のフローに、S20−21、S20−22の処理を追加したものである。なお、以下では、図16で用いた例を用いて説明する。
処理決定部32は、収容管理テーブル38から、購読解除情報に含まれるユーザIDと一致するユーザIDを有するエントリを検索し、そのエントリのデータ項目「収容ノード」に格納されたノードの識別情報を取得する。処理決定部32は、ノード間接続テーブル35において、「To」=その取得したノード「Node4」のエントリを検索する。処理決定部32は、その検索されたエントリの「リンク」に格納されているリンクの識別情報(L3)、及び「From」に格納されているノードの識別情報(Node2)を取得する。処理決定部32は、リンク管理テーブル39から、取得したリンクの識別情報(L3)を含むエントリのデータ種別に「D1」が含まれている場合には、D1を削除する(S20−1で「Yes」、S20−2)。
処理決定部32は、ノード間接続テーブル35を参照し、購読解除情報に含まれるノード「Node4」の上位ノード(リンクの接続元)を検索する(S20−3)。
処理決定部32は、制御ノード・配信ノード管理テーブル56を参照して、S20−3で検索したノードが当該制御ノードの管理下にある配信ノードであるかを判定する(S20−21)。
S20−3で検索したノードが当該制御ノードの管理下にある配信ノードである場合(S20−21で「No」)、処理決定部32は、S20−1の処理に戻る。
S20−3で検索したノードが当該制御ノードの管理下にある配信ノードでない場合(S20−21で「Yes」)、処理決定部32は、次の処理を行う。すなわち、処理決定部32は、制御ノード・配信ノード管理テーブル56を参照して、その検索されたノードを管理する制御ノードを特定する。制御ノード連携部55は、その特定した制御ノードに対してリンク管理テーブル39にデータ種別を削除するように依頼する(データ種別削除依頼)(S20−22)。
次に、制御ノード連携部55から送信された、データ種別の追加・削除依頼を受信した制御ノード22−n側で行われる処理について説明する。
図48は、第7の実施形態における複数の制御ノード間のデータ追加のフローを示す。制御ノード22−nの制御ノード連携部55は、制御ノード22の制御ノード連携部55から送信された、データ種別追加依頼を受信する(S91)。
制御ノード22−nの処理決定部32は、データ種別追加処理を行う(S92)。データ種別追加処理(S92)は、図14のS15の処理と同様である。データ種別追加処理(S15)では、ユーザの必要とするデータ種別がS15−3で選択された配信ノードまで配信されるように、リンク管理テーブル39に、データ種別を追加する。その後、制御ノード22−nの処理決定部32は、データ種別の配信定義情報を配布するように、制御ノード22−nの定義配布部33に依頼する。
制御ノード22−nの定義配布部33は、処理決定部32からの配布依頼を受けて、制御ノード・配信ノード管理テーブル56を参照して、自身の管理する各配信ノード23に、配信定義情報を配布する(S93)。配信定義配布処理(S93)は、図14のS16の処理と同様である。
図49は、第7の実施形態における複数の制御ノード間のデータ削除のフローを示す。制御ノード22−nの制御ノード連携部55は、制御ノード22の制御ノード連携部55から送信された、データ種別削除依頼を受信する(S101)。
制御ノード22−nの処理決定部32は、データ種別削除処理を行う(S102)。データ種別追加処理(S102)は、図14のS15の処理と同様である。データ種別削除処理(S102)では、購読解除したデータ種別が、購読解除したユーザ端末25に実際に配信する配信ノードまで不必要に配信されないように、リンク管理テーブル39からデータ種別を削除する。その後、処理決定部32は、データ種別の配信定義情報を配布するように、定義配布部33に依頼する。
定義配布部33は、処理決定部32からの配布依頼を受けて、各配信ノード23に、配信定義情報を配布する(S103)。配信定義配布処理(S103)は、図14のS16の処理と同様である。
本実施形態によれば、制御ノード間で、各制御ノードは、ユーザからの購読依頼/購読解除依頼のあったデータ種別を配信可能/配信停止可能なノードがその制御ノードの配下ではない場合は、他の制御ノードに対して変更内容を伝え合うことができる。したがって、配信ノードをドメインに分離し、制御ノードを並列に動作可能にすることで、システムが大規模化した場合にもデータの配信が可能となる。
第1〜7の実施形態によれば、予め配送先で必要なデータ種別を各ノードに設定しておき、各ノードがデータを受信するとその設定情報に基づいて配送先で必要なデータ種別のみを転送することにより、配信ノード間で転送するデータ量を削減できる。
図50は、コンピュータのハードウェア環境の構成ブロック図である。コンピュータ60は、サーバ21、制御ノード22、配信ノード23、またはユーザ端末25である。コンピュータ60は、CPU62、ROM63、RAM66、通信I/F64、記憶装置67、出力I/F61、入力I/F65、読み取り装置68、バス69、出力機器71、入力機器72によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス69には、CPU62、ROM63、RAM66、通信I/F64、記憶装置67、出力I/F61、入力I/F65、及び読み取り装置68が接続されている。読み取り装置68は、可搬型記録媒体を読み出す装置である。出力機器71は、出力I/F61に接続されている。入力機器72は、入力I/F65に接続にされている。
記憶装置67としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。コンピュータ60が制御ノード22の場合、記憶装置67またはROM63には、制御ノード22全体の動作を制御するプログラム及び本実施形態に係るプログラムが格納されている。CPU62は、記憶装置67またはROM63から本実施形態に係るプログラムを読み込むことにより、購読制御部31、処理決定部32、定義配信部33、負荷状態更新部53、制御ノード連携部55として機能する。
また、コンピュータ60が制御ノード22の場合、記憶装置67またはROM63は、ユーザ情報テーブル34、ノード間接続テーブル35、センサー情報テーブル36、ノード状態テーブル37、収容管理テーブル38、リンク管理テーブル39を含む。また、記憶装置67またはROM63は、配信時刻管理テーブル51、ノードグループテーブル52、制御ノード・配信ノード管理テーブル56を含む。
コンピュータ60が配信ノード23の場合、記憶装置67またはROM63には、配信ノード23全体の動作を制御するプログラム及び本実施形態に係るプログラムが格納されている。CPU62は、記憶装置67またはROM63から本実施形態に係るプログラムを読み込むことにより、受信処理部41、トピック識別部42、宛先決定部43、コピー処理部44、フィルタ処理部45、送信処理部46、定義設定部47として機能する。CPU62は、記憶装置67またはROM63から本実施形態に係るプログラムを読み込むことにより、さらに、負荷状態収集部54として機能する。
また、コンピュータ60が配信ノード23の場合、記憶装置67またはROM63は、中継定義テーブル48、処理定義テーブル49を含む。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク70、および通信I/F64を介して、例えば記憶装置67に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置68にセットされて、CPU62によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置68によって読み取られる。
また、入力機器72には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサー、タブレットなどを用いることが可能である。また、出力機器71には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク70は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムにおいて、
前記制御ノードは、
前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定する決定部と、
決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布する配布部とを、備え、
前記配信ノードは、
前記制御ノードから配布された前記ノード情報と前記種別情報とを受信する受信部と、
他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する送信部、
を備える配信システム。
(付記2)
前記制御ノードは、さらに、
いずれかの種別のデータ配信を要求する配信要求を、情報処理端末から受信する要求受信部を備え、
前記決定部は、前記配信要求を受信した場合、前記情報処理端末に対して配信可能な配信ノードの中から、前記負荷情報に応じて、該情報処理端末にデータを配信する端末配信ノードを決定する、
ことを特徴とする付記1に記載の配信システム。
(付記3)
前記決定部は、前記配信ノードがグループに分類されている場合、配信ノードとグループとを関係付けたノードグループ情報から、予め前記情報処理端末に配信する配信ノードとして設定された該配信ノードが属するグループに属する配信ノードを抽出し、抽出した該配信ノードの中から前記端末配信ノードを決定する
ことを特徴とする付記2に記載の配信システム。
(付記4)
前記決定部は、前記配信ノードのうち、前記配信要求の対象の種別のデータを送信または受信する配信ノードを前記端末配信ノードとして選択する
ことを特徴とする付記2に記載の配信システム。
(付記5)
前記決定部は、前記配信ノードが受信したデータを複製した複製回数を前記負荷情報として計測し、前記複製回数に応じて、前記情報処理端末に対して配信可能な配信ノードの中から、前記端末配信ノードを決定する
ことを特徴とする付記2に記載の配信システム。
(付記6)
前記配信ノードは、さらに、
前記配信ノードに設けられた演算装置の利用率を検出して、該検出した演算装置の利用率を前記制御ノードへ送信する負荷情報通知部を備え、
前記制御ノードは、さらに、
前記配信ノードから受信した前記演算装置の利用率を用いて、前記負荷情報を更新する負荷情報更新部と、
を備えることを特徴とする付記1に記載の配信システム。
(付記7)
前記決定部は、前記配信先のノード情報と前記データの種別を特定する種別情報との配布後に、前記配信要求がされて決定した配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別とを取得し、
前記配布部は、取得された前記配信先の配信ノードを特定するノード情報と、取得された前記データの種別を特定する種別情報とを、前記配信ノードに配布する
ことを特徴とする付記1に記載の配信システム。
(付記8)
前記決定部は、受信された前記配信要求に含まれるデータ種別が多い配信要求を送信した情報処理端末に対する端末配信ノードを、データを配信するための配信経路であって木構造で表される配信木における最上位の配信ノードに決定する
ことを特徴とする付記2に記載の配信システム。
(付記9)
前記決定部は、受信された前記配信要求のうち最も多くのデータ種別を含む配信要求の数を前記端末配信ノード毎に計測し、該配信要求数が最も多く計測された端末配信ノードを、データを配信するための配信経路であって木構造で表される配信木のルートとして決定する
ことを特徴とする付記2に記載の配信システム。
(付記10)
前記制御ノードは、さらに、
前記制御ノードが複数存在し、各制御ノードの配下に複数の配信ノードが存在する場合、他の制御ノードとの間で通信を行う通信部を備え、
いずれかの制御ノードが前記配信要求を受信した場合、前記配信要求を受信した制御ノードの決定部は、前記複数の配信ノード間の接続情報と、前記複数の配信ノードそれぞれにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードを選択し、各制御ノードの配下の配信ノードを特定する情報に基づいて、選択した配信ノードがいずれの制御ノードの配下の配信ノードであるかを判定し、
前記通信部は、前記選択した配信ノードがいずれの制御ノード配下の配信ノードでもないと判定された場合、他の制御ノード配下の配信ノードのいずれかから、前記配信要求をした情報処理装置に対する端末配信ノードへ前記配信要求の対象の種別のデータを送るように、前記他の制御ノードに通知する
ことを特徴とする付記2に記載の配信システム。
(付記11)
複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムの配信方法において、
前記制御ノードは、
前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定し、
決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布し、
前記配信ノードは、
前記制御ノードから配布された前記ノード情報と前記種別情報とを受信し、
他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する、
ことを特徴とする配信方法。
(付記12)
前記制御ノードは、さらに、
いずれかの種別のデータ配信を要求する配信要求を、情報処理端末から受信し、
前記配信要求を受信した場合、前記情報処理端末に対して配信可能な配信ノードの中から、前記負荷情報に応じて、該情報処理端末にデータを配信する端末配信ノードを決定する(S14)、
ことを特徴とする付記11に記載の配信方法。
(付記13)
前記制御ノードは、前記配信ノードがグループに分類されている場合、配信ノードとグループとを関係付けたノードグループ情報から、予め前記情報処理端末に配信する配信ノードとして設定された該配信ノードが属するグループに属する配信ノードを抽出し、抽出した該配信ノードの中から前記端末配信ノードを決定する
ことを特徴とする付記12に記載の配信方法。
(付記14)
前記制御ノードは、前記配信ノードのうち、前記配信要求の対象の種別のデータを送信または受信する配信ノードを前記端末配信ノードとして選択する
ことを特徴とする付記12に記載の配信方法。
(付記15)
前記制御ノードは、前記配信ノードが受信したデータを、該配信ノードが複製した複製回数を前記負荷情報として計測し、前記複製回数に応じて、前記情報処理端末に対して配信可能な配信ノードの中から、前記端末配信ノードを決定する
ことを特徴とする付記12に記載の配信方法。
(付記16)
複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムの前記制御ノードに実行させる配信プログラムにおいて、
前記制御ノードに、
前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定し、
決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布する
処理を実行させる配信プログラム。
(付記17)
複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムの前記配信ノードに実行させる配信プログラムにおいて、
前記配信ノードに、
前記制御ノードから配布された配信先の配信ノードを特定するノード情報と、該配信先の配信ノードに配信するデータの種別を特定する種別情報とを受信し、
他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する
処理を実行させる配信プログラム。
(付記18)
前記制御ノードに、さらに、
いずれかの種別のデータ配信を要求する配信要求を、情報処理端末から受信し、
前記配信要求を受信した場合、前記情報処理端末に対して配信可能な配信ノードの中から、前記負荷情報に応じて、該情報処理端末に配信する端末配信ノードを決定する、
処理を実行させる付記16に記載の配信プログラム。
(付記19)
前記制御ノードは、
前記配信ノードがグループに分類されている場合、配信ノードとグループとを関係付けたノードグループ情報から、予め前記情報処理端末に配信する配信ノードとして設定された該配信ノードが属するグループに属する配信ノードを抽出し、抽出した該配信ノードの中から前記端末配信ノードを決定する
ことを特徴とする付記18に記載の配信プログラム。
1 配信システム
2 制御ノード
3 決定部
4 配布部
5 要求受信部
6 通信部
7,7a,7b 配信ノード
8 受信部
9 送信部
10 負荷情報通知部
11 負荷情報更新部
12 情報処理端末
13 ネットワーク
20 配信システム
21 サーバ
22 制御ノード
23 配信ノード
24 センサー
31 購読制御部
32 処理決定部
33 定義配布部
34 ユーザ情報テーブル
35 ノード間接続テーブル
36 センサー情報テーブル
37 ノード状態テーブル
38 収容管理テーブル
39 リンク管理テーブル
41 受信処理部
42 トピック識別部
43 宛先決定部
44 コピー処理部
45 フィルタ処理部
46 送信処理部
47 定義設定部
48 中継定義テーブル
49 処理定義テーブル
51 配信時刻管理
52 ノードグループテーブル
53 負荷状態更新部
54 負荷状態収集部
55 制御ノード連携部55
56 制御ノード・配信ノード管理テーブル56

Claims (7)

  1. 複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムにおいて、
    前記制御ノードは、
    前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定する決定部と、
    決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布する配布部とを、備え、
    前記配信ノードは、
    前記制御ノードから配布された前記ノード情報と前記種別情報とを受信する受信部と、
    他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する送信部、
    を備える配信システム。
  2. 前記制御ノードは、さらに、
    いずれかの種別のデータ配信を要求する配信要求を、情報処理端末から受信する要求受信部を備え、
    前記決定部は、前記配信要求を受信した場合、前記情報処理端末に対して配信可能な配信ノードの中から、前記負荷情報に応じて、該情報処理端末にデータを配信する端末配信ノードを決定する、
    ことを特徴とする請求項1に記載の配信システム。
  3. 前記決定部は、前記配信ノードがグループに分類されている場合、配信ノードとグループとを関係付けたノードグループ情報から、予め前記情報処理端末に配信する配信ノードとして設定された該配信ノードが属するグループに属する配信ノードを抽出し、抽出した該配信ノードの中から前記端末配信ノードを決定する
    ことを特徴とする請求項2に記載の配信システム。
  4. 前記決定部は、前記配信ノードのうち、前記配信要求の対象の種別のデータを送信または受信する配信ノードを前記端末配信ノードとして選択する
    ことを特徴とする請求項2に記載の配信システム。
  5. 前記決定部は、前記配信ノードが受信したデータを複製した複製回数を前記負荷情報として計測し、前記複製回数に応じて、前記情報処理端末に対して配信可能な配信ノードの中から、前記端末配信ノードを決定する
    ことを特徴とする請求項2に記載の配信システム。
  6. 複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムの配信方法において、
    前記制御ノードは、
    前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定し、
    決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布し、
    前記配信ノードは、
    前記制御ノードから配布された前記ノード情報と前記種別情報とを受信し、
    他の配信ノードから配信されたデータを受信した場合には、受信したデータから前記種別情報が特定する種別のデータを選択し、選択した種別のデータを前記ノード情報が特定する配信ノードに送信する、
    ことを特徴とする配信方法。
  7. 複数の配信ノードと、制御ノードとがネットワークを介して接続される配信システムの前記制御ノードに実行させる配信プログラムにおいて、
    前記制御ノードに、
    前記配信ノード間の接続状態を示す接続情報と、前記配信ノードにおける負荷情報とに基づいて、前記複数の配信ノードのうち一の配信ノードが次にデータを配信する配信先の配信ノードと、該配信先の配信ノードに配信するデータの種別と、を決定し、
    決定した前記配信先の配信ノードを特定するノード情報と、決定した前記データの種別を特定する種別情報とを、配信ノードに配布する
    処理を実行させる配信プログラム。
JP2011195616A 2011-09-08 2011-09-08 配信システム、配信方法、及び配信プログラム Expired - Fee Related JP5874253B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011195616A JP5874253B2 (ja) 2011-09-08 2011-09-08 配信システム、配信方法、及び配信プログラム
US13/592,669 US8948050B2 (en) 2011-09-08 2012-08-23 Distribution system, distribution method, and memory medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011195616A JP5874253B2 (ja) 2011-09-08 2011-09-08 配信システム、配信方法、及び配信プログラム

Publications (2)

Publication Number Publication Date
JP2013058056A true JP2013058056A (ja) 2013-03-28
JP5874253B2 JP5874253B2 (ja) 2016-03-02

Family

ID=47829783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011195616A Expired - Fee Related JP5874253B2 (ja) 2011-09-08 2011-09-08 配信システム、配信方法、及び配信プログラム

Country Status (2)

Country Link
US (1) US8948050B2 (ja)
JP (1) JP5874253B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185167A1 (ja) * 2013-05-16 2014-11-20 株式会社Skeed データ配信システム、データ配信のためのデータ通信装置およびプログラム
CN106354870A (zh) * 2016-09-18 2017-01-25 中国科学院计算技术研究所 一种数据加载的方法和设备
JP2021526268A (ja) * 2018-06-07 2021-09-30 レベル スリー コミュニケーションズ,エルエルシー スーパークラスタにわたる負荷分散

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282457B1 (en) * 2016-02-04 2019-05-07 Amazon Technologies, Inc. Distributed transactions across multiple consensus groups
US10182007B2 (en) * 2017-03-30 2019-01-15 Juniper Networks, Inc. Apparatus, system, and method for facilitating controller-based multicast signaling
JP7305990B2 (ja) * 2019-03-12 2023-07-11 富士通株式会社 転送プログラム、転送方法、および情報処理装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000316000A (ja) * 1999-04-28 2000-11-14 Fujitsu Ltd コンピュータネットワークシステム、コンピュータ及び記録媒体
JP2000354067A (ja) * 1999-01-25 2000-12-19 Nippon Telegr & Teleph Corp <Ntt> プッシュ型ネットワーク
US20040044780A1 (en) * 2002-08-28 2004-03-04 Bryant Eastham Content-based routing of data from a provider to a requestor
US6757283B1 (en) * 1999-01-25 2004-06-29 Nippon Telegraph And Telephone Corporation Push network
JP2004235978A (ja) * 2003-01-30 2004-08-19 Toshiba Corp 中継装置及び中継方法
US20090113057A1 (en) * 2007-10-26 2009-04-30 Jacobus Van Der Merwe Proximity Routing For Session Based Applications Using Anycast
US20100095222A1 (en) * 2007-03-08 2010-04-15 Thomson Licensing Corporation Method, apparatus and system for coordinated content distribution workflow

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3875504B2 (ja) 2001-03-23 2007-01-31 日本電信電話株式会社 共通情報キャッシング中継方法及び中継装置
JP4831890B2 (ja) * 2001-07-06 2011-12-07 パナソニック株式会社 コンテンツ管理方法及びコンテンツ管理装置
EP1436719A1 (en) 2001-10-15 2004-07-14 Semandex Networks Inc. Dynamic content based multicast routing in mobile networks
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP3801953B2 (ja) 2002-06-21 2006-07-26 日本電信電話株式会社 マルチキャストmpls通信方法およびシステムおよびネットワーク
US7257628B2 (en) * 2002-11-08 2007-08-14 Cisco Technology, Inc. Methods and apparatus for performing content distribution in a content distribution network
JP4340483B2 (ja) 2003-06-27 2009-10-07 富士通株式会社 複合コンテンツの配信方法および配信システム
US20070198629A1 (en) 2006-02-21 2007-08-23 Nec Laboratories America, Inc. Scalable Content Based Event Multicast Platform
CN100461740C (zh) * 2007-06-05 2009-02-11 华为技术有限公司 一种客户端节点网络拓扑构造方法及流媒体分发系统
JPWO2009069692A1 (ja) * 2007-11-27 2011-04-14 日本電気株式会社 コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ配信方法およびコンテンツ配信用プログラム
US8417816B2 (en) * 2009-02-20 2013-04-09 Alcatel Lucent Topology aware cache cooperation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000354067A (ja) * 1999-01-25 2000-12-19 Nippon Telegr & Teleph Corp <Ntt> プッシュ型ネットワーク
US6757283B1 (en) * 1999-01-25 2004-06-29 Nippon Telegraph And Telephone Corporation Push network
JP2000316000A (ja) * 1999-04-28 2000-11-14 Fujitsu Ltd コンピュータネットワークシステム、コンピュータ及び記録媒体
US20040044780A1 (en) * 2002-08-28 2004-03-04 Bryant Eastham Content-based routing of data from a provider to a requestor
JP2005537712A (ja) * 2002-08-28 2005-12-08 イムウエアー、インコーポレイテッド プロバイダからリクェスタへのデータをコンテンツに基づくルーティング方法と装置
JP2004235978A (ja) * 2003-01-30 2004-08-19 Toshiba Corp 中継装置及び中継方法
US20100095222A1 (en) * 2007-03-08 2010-04-15 Thomson Licensing Corporation Method, apparatus and system for coordinated content distribution workflow
JP2010520550A (ja) * 2007-03-08 2010-06-10 トムソン ライセンシング 調整されたコンテンツ配信のワークフローを提供する方法、装置及びシステム
US20090113057A1 (en) * 2007-10-26 2009-04-30 Jacobus Van Der Merwe Proximity Routing For Session Based Applications Using Anycast

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185167A1 (ja) * 2013-05-16 2014-11-20 株式会社Skeed データ配信システム、データ配信のためのデータ通信装置およびプログラム
JP2014225169A (ja) * 2013-05-16 2014-12-04 株式会社Skeed データ配信システム、データ配信のためのデータ通信装置およびプログラム
CN106354870A (zh) * 2016-09-18 2017-01-25 中国科学院计算技术研究所 一种数据加载的方法和设备
CN106354870B (zh) * 2016-09-18 2019-07-12 中国科学院计算技术研究所 一种数据加载的方法和设备
JP2021526268A (ja) * 2018-06-07 2021-09-30 レベル スリー コミュニケーションズ,エルエルシー スーパークラスタにわたる負荷分散
JP7148033B2 (ja) 2018-06-07 2022-10-05 レベル スリー コミュニケーションズ,エルエルシー スーパークラスタにわたる負荷分散

Also Published As

Publication number Publication date
US20130064135A1 (en) 2013-03-14
JP5874253B2 (ja) 2016-03-02
US8948050B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
JP5874253B2 (ja) 配信システム、配信方法、及び配信プログラム
JP4367650B2 (ja) 方法、コンテンツベースルータ、コンテンツベースネットワーク
JP3935986B2 (ja) ネットワークにおける情報資源の変化を通知するネットワーク情報資源監視システム
CN101159711B (zh) 自适应的实时消息订阅与发布系统及方法
US7676812B2 (en) Large scale event notification system
US20070061282A1 (en) Data network information distribution
Tariq et al. Meeting subscriber‐defined QoS constraints in publish/subscribe systems
US20090113024A1 (en) Multicase Downloading Using Path Information
JP5104489B2 (ja) 分散イベント検出システム、分散イベント検出方法、及び分散イベント検出用プログラム
JP5486590B2 (ja) 管理されたコンテンツ配信のシステム及び方法
US20060179059A1 (en) Cluster monitoring system with content-based event routing
US20090089408A1 (en) XML Router and method of XML Router Network Overlay Topology Creation
CN102075417A (zh) 组播剪枝方法及协议无关组播路由器、二层交换机
JP2010148118A (ja) ルーティング方法、ルーティング装置、ルーティング/キャッシング方法、ルーティング/キャッシング装置及びネットワーク
CN104079482A (zh) 一种选择路由路径的方法及装置
US9055113B2 (en) Method and system for monitoring flows in network traffic
Silva et al. A survey on energy efficiency for the future Internet
JP2005322222A (ja) 通信機能付加方法、プログラム、記録媒体及び通信装置
WO2009107511A1 (ja) 複合イベント検出/配信システム、複合イベント検出/配信方法、及び複合イベント検出/配信用プログラム
JP5399276B2 (ja) コンテンツ配信システムと方法およびプログラム
Jiang et al. Constructing multiple Steiner trees for software-defined networking multicast
JP2004153312A (ja) データ配信方法、データ配信システム、データ受信装置、データ中継装置、データ受信装置及びデータ配信用プログラム
JP4689867B2 (ja) サーバシステム,クライアントシステムおよび差分更新システムならびに差分更新プログラム
EP1665719B1 (en) Context propagation in data network
KR100383671B1 (ko) 중계기서버를 이용한 정보제공방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160104

R150 Certificate of patent or registration of utility model

Ref document number: 5874253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees