本実施の形態は、マルチキャスト・アドレス配布サーバからマルチキャスト・アドレスを割り当てられた各端末が、当該割り当てられたマルチキャスト・アドレスによって識別されるマルチキャスト・グループに参加することによって、データ配信サーバからマルチキャストされる配信データを受信することが可能なデータ配信システムに関する。本実施の形態に係るデータ配信システムは、以下を実現する仕組みを備えている。すなわち、マルチキャスト配信データを受信しようとする各端末が2つ以上のマルチキャスト・グループに対応付けられると共に、各端末が、状況に応じて参加するマルチキャスト・グループを変更することを可能とする。
本実施の形態の以下の説明においては、まず、図1乃至図4を参照しながら、本実施の形態に係るマルチキャスト型データ配信システムのネットワーク全体の構成と当該ネットワークに接続されたサーバ機器や端末の構成について述べる。続いて、図5乃至図8を参照しながら、端末にマルチキャスト・アドレスを割り当て、端末を特定のマルチキャスト・グループに参加させる手順および当該手順においてやり取りされるメッセージのデータ構造について述べる。続いて、図9および図10を参照しながら、本実施の形態に係る第1実施例の動作手順について述べ、図11および図12を参照しながら、本実施の形態に係る第2実施例の動作手順について述べる。
以下、図1を参照しながら、本実施の形態に係るマルチキャスト型データ配信システムのネットワーク全体の構成について説明する。本実施の形態に係るマルチキャスト型データ配信システムは、マルチキャスト・アドレス配布サーバ100と、端末200−A〜端末200−Dと、ルータ300−Aおよびルータ300−Bと、データ配信サーバ400と、ネットワーク500から構成される。本実施の形態においては、ルータ300−Aおよびルータ300−Bに加え、3個以上のルータが接続されていてもよく、これらのルータを総称してルータ300と呼ぶ。本実施の形態においては、端末200−A〜端末200−Dに加えて、5つ以上の端末が接続されていてもよく、これらの端末を総称して端末200と呼ぶ。マルチキャスト・アドレス配布サーバ100は、ネットワーク500および一つ以上のルータ300を介して一つ以上の端末200と接続されている。また、データ配信サーバ400も、ネットワーク500および一つ以上のルータ300を介して一つ以上の端末200と接続されている。
マルチキャスト・アドレス配布サーバ100は、端末200からマルチキャスト・アドレスの割り当て要求を受信すると、端末200に対してマルチキャスト・アドレスを割り当て、当該割り当てたマルチキャスト・アドレスを端末200に対して配布する。マルチキャスト・アドレス配布サーバ100によって個々の端末200に割り当てられたマルチキャスト・アドレスは、個々の端末200が属すべきマルチキャスト・グループを識別する。マルチキャスト・グループとは、同一のデータ配信元から同一のマルチキャスト・データをマルチキャスト配信される一群の端末によって構成される端末グループを意味している。また、マルチキャスト・データの送信元を表すネットワーク・アドレス(例えば、IPアドレス)は、データ配信元となるサーバのネットワーク・アドレス(例えば、IPアドレス)である。
例えば、端末グループG1に対して配信されるマルチキャスト・データを受信しようとする端末200−Aがマルチキャスト・アドレス配布サーバ100に対してマルチキャスト・アドレスの割り当て要求を送信したとする。すると、当該割り当て要求を受信したマルチキャスト・アドレス配布サーバ100は、端末グループG1をマルチキャスト配信の宛先として識別するマルチキャスト・アドレスad−1を端末200−Aに対して割り当て、マルチキャスト・アドレスad−1を端末200−Aに返信する。別の例として、端末グループG1とは異なる端末グループG2に対して配信されるマルチキャスト・データを受信しようとする端末200−Dがマルチキャスト・アドレス配布サーバ100に対してマルチキャスト・アドレスの割り当て要求を送信したとする。すると、当該割り当て要求を受信したマルチキャスト・アドレス配布サーバ100は、端末グループG2をマルチキャスト配信の宛先として識別するマルチキャスト・アドレスad−2を端末200−Dに対して割り当て、マルチキャスト・アドレスad−2を端末200−Dに返信する。
データ配信サーバ400は、マルチキャスト・アドレスによって宛先として指定される一群の端末200に向けてマルチキャスト・データをマルチキャスト配信するサーバである。データ配信サーバ400は、一つ以上のマルチキャスト・グループにそれぞれ対応する一つ以上のマルチキャスト・アドレスを管理している。データ配信サーバ400は、自身のネットワーク・アドレスを送信元ネットワーク・アドレスとし、自身が管理しているマルチキャスト・アドレスを宛先ネットワーク・アドレスとして一連のパケットを生成し、当該一連のパケットにマルチキャスト・データを載せて配信する。これにより、データ配信サーバ400は、自身が管理しているマルチキャスト・アドレスによって識別される端末グループに属する一群の端末200に対して、当該マルチキャスト・データを載せた一連のパケットをマルチキャスト配信する。
端末200は、特定の端末グループに新たに所属し、当該端末グループを宛先としてマルチキャスト配信されるマルチキャスト・データを受信するために、マルチキャスト・アドレスの割り当て要求をマルチキャスト・アドレス配布サーバ100に送信する。続いて、端末200は、当該割り当て要求への応答として、自端末が所属すべき端末グループをマルチキャスト配信の宛先として識別するマルチキャスト・アドレスをマルチキャスト・アドレス配布サーバ100から受信する。
例えば、マルチキャスト・データを受信しようとする端末200−Aが、マルチキャスト・アドレス配布サーバ100に対して、マルチキャスト・アドレスの割り当て要求を送信したとする。すると、当該割り当て要求を受信したマルチキャスト・アドレス配布サーバ100は、端末グループG1をマルチキャスト配信の宛先として識別するマルチキャスト・アドレスad−1を、端末200−Aに対して割り当てる。続いて、端末200−Aは、マルチキャスト・アドレス配布サーバ100からマルチキャスト・アドレスad−1を受信して自端末内に設定する。
別の例として、マルチキャスト・データを受信しようとする端末200−Dが、マルチキャスト・アドレス配布サーバ100に対して、マルチキャスト・アドレスの割り当て要求を送信したとする。すると、当該割り当て要求を受信したマルチキャスト・アドレス配布サーバ100は、端末グループG2をマルチキャスト配信の宛先として識別するマルチキャスト・アドレスad−2を、端末200−Dに対して割り当てる。続いて、端末200−Dは、マルチキャスト・アドレス配布サーバ100からマルチキャスト・アドレスad−2を受信して自端末内に設定する。
マルチキャスト・アドレス配布サーバ100から割り当てられたマルチキャスト・アドレスを端末200が受信し、自端末内に設定した後には、端末200は、当該マルチキャスト・アドレスによってマルチキャスト配信の宛先として識別される端末グループに新たに所属することになる。また、当該割り当てられたマルチキャスト・アドレスを端末200が受信し、自端末内に設定した後には、端末200は、当該マルチキャスト・アドレスを宛先としてマルチキャスト配信されたマルチキャスト・データを受信することが出来るようになる。なお、既存のいずれかの端末グループに個々の端末200を新たに所属させるためにルータ300およびネットワーク500の上で実現される具体的な仕組みと手順に関しては、図5を用いて後述する。
次に、図2を参照しながら、マルチキャスト・アドレス配布サーバ100および端末200の装置構成について説明する。マルチキャスト・アドレス配布サーバ100は、CPU 150、主記憶160、I/Oインターフェース170、入出力装置(マウス、キーボード、ディスプレイ等)180を備えたサーバ・コンピュータとすることが可能である。マルチキャスト・アドレス配布サーバ100のCPU 150は、主記憶160の上に常駐しているOS 140を実行している。OS 140の上では、複数のWebアプリケーション120A〜120DとWebサーバ・ソフトウェア130が実行されている。以下、当該複数のWebアプリケーション120A〜120Dを総称してWebアプリケーション120と呼ぶこととする。Webアプリケーション120A〜120DとWebサーバ・ソフトウェア130とは、OS 140が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。同様に、複数のWebアプリケーション120同士の間でも、OS 140が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。
一実施例において、端末200は、CPU 240、主記憶250、センサ・デバイス270、アクチュエータ駆動回路280を備え、当該センサ・デバイス270やアクチュエータ駆動回路は、I/Oインターフェース260を介してCPU 240や主記憶250との間でデータをやり取り可能に構成された端末機器である。端末200のCPU 240は、主記憶250の上に常駐しているOS 230を実行している。OS 230の上では、複数の端末制御プログラム210A〜210DとHTTPクライアント220が実行されている。以下、当該複数の端末制御プログラム210A〜210Dを総称して端末制御プログラム210と呼ぶこととする。複数の端末制御プログラム210A〜210DとHTTPクライアント220とは、OS 230が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。同様に、複数の端末制御プログラム210同士の間でも、OS 230が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。また、代替的実施例においては、端末200は、CPU、主記憶、I/Oインターフェース、入出力装置(タッチパネル、液晶ディスプレイ等)を備えたモバイル情報端末とすることも可能である。
マルチキャスト・アドレス配布サーバ100のI/Oインターフェース170および端末200のI/Oインターフェース260は、物理レベルの通信機能を実現するネットワーク・インターフェース(図示せず)をそれぞれ具備している。マルチキャスト・アドレス配布サーバ100のI/Oインターフェース170および端末200のI/Oインターフェース260は、当該ネットワーク・インターフェースの通信機能を利用して物理通信回線91を介して相互に物理層レベルおよびデータリンク層レベルの通信をすることが可能である。また、端末200上の複数の端末制御プログラム210A〜210Dがマルチキャスト・アドレス配布サーバ100上の複数のWebアプリケーション120A〜120Dに対してメッセージを送信する際には、端末200とマルチキャスト・アドレス配布サーバ100との間で物理通信回線91を介した物理層レベルおよびデータリンク層レベルの通信機能を利用して以下の通信制御手順が実行される。
まず、端末制御プログラム210は、HTTPクライアント220に対して通信セッションの開始要求を通知する。続いて、当該通知を受けたHTTPクライアント220は、マルチキャスト・アドレス配布サーバ100上のWebサーバ・ソフトウェア130に対してHTTPコネクション92の確立要求を通知する。続いて、マルチキャスト・アドレス配布サーバ100上でHTTPコネクション92の確立要求を受け取ったWebサーバ・ソフトウェア130は、端末200上のHTTPクライアント220との間でHTTPコネクション92を確立する。HTTPコネクション92が確立された後は、端末制御プログラム210は、HTTPクライアント220とWebサーバ・ソフトウェア130との間に設定されたHTTPコネクション92を介してマルチキャスト・アドレス配布サーバ100上の複数のWebアプリケーション120A〜120Dに対してメッセージを送信し、さらに、複数のWebアプリケーション120A〜120Dから応答メッセージを受信することが可能となる。
次に、図3を参照しながら、マルチキャスト・アドレス配布サーバ100の機能モジュール構成について説明する。マルチキャスト・アドレス配布サーバ100は、マルチキャスト・アドレス配布部101と、マルチキャスト・アドレス管理部102と、通信部103と、から構成される。また、マルチキャスト・アドレス配布部101、マルチキャスト・アドレス管理部102および通信部103の各々は、マルチキャスト・アドレス配布サーバ100上のCPU 150によってOS 140上で実行される複数のWebアプリケーション120として実装することが可能である。CPU 150によってOS 140上で複数のWebアプリケーション120として実行されるマルチキャスト・アドレス配布部101、マルチキャスト・アドレス管理部102および通信部103は、OS 140が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。
通信部103は、ネットワーク500および一つ以上のルータ300を介して一つ以上の端末200との間でパケットを送受信する機能モジュールである。通信部103によって送受信されるパケットには、マルチキャスト・アドレス配布サーバ100に対して端末200からマルチキャスト・アドレスの割り当てを要求する割り当て要求を含む割り当て要求パケットが含まれる。また、通信部103によって送受信されるパケットには、当該割り当て要求に応答して、端末200に宛てて返信されるマルチキャスト・アドレスを含んだ応答パケットが含まれる。
マルチキャスト・アドレス配布部101は、個々の端末200の属性に応じて個々の端末200にマルチキャスト・アドレスを割り当てる動作全体を統括する機能モジュールである。具体的には、マルチキャスト・アドレスの割り当て要求を含んだ割り当て要求パケットを端末200から受信した旨を通信部103から通知されたマルチキャスト・アドレス配布部101は、通信部103から当該割り当て要求を受け取る。このとき、端末200から受信したマルチキャスト・アドレスの割り当て要求には、端末200の属性情報が含まれている。端末200の属性情報とは、端末200の現在の状況や機器設定内容を反映した端末属性を記述する情報である。これにより、マルチキャスト・アドレス配布サーバ100内において、端末200からマルチキャスト・アドレスの割り当てを要求する割り当て要求を受信する手段が実現される。
続いて、マルチキャスト・アドレス配布部101は、端末200から受信したマルチキャスト・アドレスの割り当て要求に含まれる端末200の属性情報から対応するマルチキャスト・アドレスを得るようにマルチキャスト・アドレス管理部102に指示する。端末200の属性情報に対応してマルチキャスト・アドレス管理部102によって得られるマルチキャスト・アドレスは、端末200からの割り当て要求に応答して端末200に割り当てるべきマルチキャスト・アドレスである。続いて、マルチキャスト・アドレス配布部101は、端末200に割り当てるべきマルチキャスト・アドレスをマルチキャスト・アドレス管理部102から受け取り、当該マルチキャスト・アドレスを端末200に返信するように通信部103に指示する。これにより、マルチキャスト・アドレス配布サーバ100内において、端末200に対して当該決定したマルチキャスト・アドレスを通知する手段が実現される。
マルチキャスト・アドレス管理部102は、端末200の属性情報とマルチキャスト・アドレスとの間の対応関係をテーブルとして保持すると共に、マルチキャスト・アドレス管理部102は、マルチキャスト・アドレスの端末200への割り当て状態を保持する。これにより、マルチキャスト・アドレス配布サーバ100内において、端末200の属性情報とマルチキャスト・アドレスとの間の対応関係を保持する手段が実現される。加えて、マルチキャスト・アドレス配布部101からの指示を受けたマルチキャスト・アドレス管理部102は、以下の動作を行う。すなわち、マルチキャスト・アドレス配布部101から端末200xについて新規に渡された属性情報を検索キーとして使用して端末200の属性情報とマルチキャスト・アドレスとの間の対応関係を保持するテーブルを検索する。その結果、該当するマルチキャスト・アドレスが得られると、該当するマルチキャスト・アドレスの未割り当て分に相当する空きアドレスを端末200xに割り当てる。これにより、マルチキャスト・アドレス配布サーバ100内において、端末200xから受信した端末200xの属性情報に基づいて、端末200xに配布するマルチキャスト・アドレスを決定する手段が実現される。
次に、図4を参照しながら、端末200の機能モジュール構成について説明する。端末200は、マルチキャスト・アドレス保持部201、端末属性情報保持部202、配信データ処理部203、マルチキャスト・アドレス配布要求部204および通信部205から構成される。マルチキャスト・アドレス保持部201、端末属性情報保持部202、配信データ処理部203、マルチキャスト・アドレス配布要求部204および通信部205の各々は、端末200上のCPU 240によってOS 230上で実行される複数の端末制御プログラム210として実装することが可能である。CPU 240によってOS 230上で複数の端末制御プログラム210として実行されるマルチキャスト・アドレス保持部201、端末属性情報保持部202、配信データ処理部203、マルチキャスト・アドレス配布要求部204および通信部205は、端末200上のOS 230が提供するプロセス間通信機能やスレッド間通信機能を使用して相互にデータをやり取りすることが可能である。
通信部205は、一つ以上のルータ300およびネットワーク500を介してマルチキャスト・アドレス配布サーバ100との間でパケットを送受信する機能モジュールである。通信部205によって送受信されるパケットには、端末200からマルチキャスト・アドレス配布サーバ100に対してマルチキャスト・アドレスの割り当てを要求する割り当て要求を含む割り当て要求パケットが含まれる。また、通信部205によって送受信されるパケットには、当該割り当て要求に応答して、マルチキャスト・アドレス配布サーバ100から端末200に宛てて返信されるマルチキャスト・アドレスを含んだ応答パケットが含まれる。
マルチキャスト・アドレス保持部201は、マルチキャスト・アドレス配布サーバ100から受信したマルチキャスト・アドレスを保持する。端末属性情報保持部202は、端末200の位置情報、ファームウェアのバージョンといった属性情報を保持する。マルチキャスト・アドレス配布要求部204は、マルチキャスト・アドレスの割り当てを要求する割り当て要求に端末200の属性情報を含めた上で、マルチキャスト・アドレス配布サーバ100に対して当該割り当て要求を送信するように通信部205に指示する。これにより、端末200内において、端末グループを識別するマルチキャスト・アドレスの割り当てを端末200がマルチキャスト・アドレス配布サーバ100に対して要求するために、端末200の属性情報を含む割り当て要求を送信する手段が実現される。また、マルチキャスト・アドレス配布要求部204は、マルチキャスト・アドレス配布サーバ100からマルチキャスト・アドレスを受信して、マルチキャスト受信用アドレスとして端末200に設定するようにマルチキャスト・アドレス保持部201に指示する。これにより、端末200内において、マルチキャスト・アドレスの割り当てに応じて、当該マルチキャスト・アドレスを端末200に設定し、端末200を当該マルチキャスト・アドレスに対応する端末グループに参加させる手段が実現される。配信データ処理部203は、データ配信サーバ400からマルチキャスト・アドレスに宛ててマルチキャスト配信されたデータを処理する。
端末200からマルチキャスト・アドレス配布サーバ100へマルチキャスト・アドレスの割り当てを要求するために、端末200からマルチキャスト・アドレス配布サーバ100へ送信される割り当て要求を含んだメッセージは、以下のようにして伝送される。すなわち、当該割り当て要求を含んだメッセージをマルチキャスト・アドレス配布要求部204(図4)から受け取った通信部205(図4)は、当該メッセージをHTTPクライアント220(図2)に渡す。続いて、HTTPクライアント220は、Webサーバ・ソフトウェア130(図2)との間に設定されたHTTPコネクション92(図2)を介して、当該メッセージを、HTTPリクエスト・メッセージとしてマルチキャスト・アドレス配布サーバ100上のWebサーバ・ソフトウェア130(図2)に送信する。当該メッセージを受け取ったWebサーバ・ソフトウェア130は、通信部103(図3)に当該メッセージを渡し、通信部103は、当該メッセージをマルチキャスト・アドレス配布部101(図3)に渡す。
逆に、当該メッセージへの応答として、マルチキャスト・アドレス配布サーバ100から端末200がマルチキャスト・アドレスを受信するための応答メッセージは、以下のようにして伝送される。すなわち、当該マルチキャスト・アドレスを含んだ応答メッセージをマルチキャスト・アドレス配布部101(図3)から受け取った通信部103(図3)は、当該応答メッセージをWebサーバ・ソフトウェア130(図2)に渡す。続いて、Webサーバ・ソフトウェア130は、HTTPクライアント220(図2)との間に設定されたHTTPコネクション92(図2)を介して、当該応答メッセージを、HTTP応答メッセージとして端末200上のHTTPクライアント220(図2)に送信する。当該応答メッセージを受け取ったHTTPクライアント220は、通信部205(図4)に当該応答メッセージを渡し、通信部205は、当該応答メッセージをマルチキャスト・アドレス配布要求部204(図4)に渡す。
次に、マルチキャスト・アドレス配布サーバ100およびデータ配信サーバ400からマルチキャスト・グループとして指摘される特定の端末グループに端末200が参加する際にルータ300およびネットワーク500内で実行される動作手順について説明する。端末200xがマルチキャスト・グループに参加する動作は、以下のように捉えることができる。データ配信サーバ400からマルチキャスト・グループに属する複数の端末200−1~200−nに対して同一のマルチキャスト・データを配信するためのデータ伝送経路は、以下のようなパケット・ルーティング経路として形成される。すなわち、上記データ伝送経路は、データ配信サーバ400を根ノード(ルート・ノード)とし、マルチキャスト・グループに属する複数の端末200−1~200−nを葉ノード(リーフ・ノード)とする木構造状のマルチキャスト・パケット・ルーティング経路として形成される。その際、根ノード(ルート・ノード)および葉ノード(リーフ・ノード)以外の中間ノードは、ネットワーク500内の複数のルータに対応し、当該複数のルータは、根ノードに位置するデータ配信サーバ400からのマルチキャスト・パケットをマルチキャスト・ルーティングにより中継転送する。以下、このような木構造をマルチキャスト・ツリーと呼ぶ。
端末200xがマルチキャスト・グループに参加する動作は、マルチキャスト・ツリーに対して端末200xが新たな葉ノード(リーフ・ノード)として加わる動作に相当する。既存のマルチキャスト・ツリーに対して端末200xを新たな葉ノード(リーフ・ノード)として加えるには、当該マルチキャスト・ツリーの合流ポイントに位置するルータから端末200xに至るまでのルーティング経路を新たに確立することが必要である。加えて、当該マルチキャスト・ツリーに対して端末200xを新たな葉ノード(リーフ・ノード)として加えるには、当該マルチキャスト・ツリー上の合流ポイントに位置するルータからデータ配信サーバ400に至るまでのルーティング経路上のルーティング・テーブルを書き換える必要がある。このルーティング・テーブルの書き換えは、当該マルチキャスト・ツリーの合流ポイントから根ノードまでの経路上に位置するルータにおいて端末200xへのパケット・ルーティング経路が追加されたことによるマルチキャスト・ルーティングの変更を反映させるものでなくてはならない。
これにより、マルチキャスト・パケットは、まずは、データ配信サーバ200から端末200−1~200−nまでのデータ伝送経路に含まれる既存のマルチキャスト・ツリーを経由してデータ配信サーバ400から合流ポイントに位置するルータまで転送される。続いて、当該マルチキャスト・パケットは、当該合流ポイントから当該新たに追加されたルーティング経路を介して端末200xへと転送されるようになる。
当該マルチキャスト・ツリーの合流ポイントに位置するルータから端末200xに至るまでのルーティング経路を新たに追加する動作には以下の2つのケースが考えられる。第1のケースは、端末200xが1ホップで直接接続しているルータ(以下、末端ルータと呼ぶ)が既存のマルチキャスト・ツリーに接続するルーティング経路を確立しておらず、当該末端ルータが既存のマルチキャスト・ツリーに参加していない場合である。この場合には、当該末端ルータが既存のマルチキャスト・ツリーに参加させるために、以下の2つの動作が必要になる。まず、PIM(Protocol Independent Multicast)またはM−OSPF(Multicast-OSPF(Open-Shortest-Path-First))等のようなマルチキャスト・ルーティング・プロトコルを使用して当該末端ルータから既存のマルチキャスト・ツリーの合流ポイントに位置するルータまでのルーティング経路を確立する必要がある。続いて、当該末端ルータが既存のマルチキャスト・ツリーを経由して受信したマルチキャスト・パケットを同報送信する宛先の一つとして、端末200xを、当該末端ルータ上のルーティング・テーブルに新たに追加登録する必要がある。当該末端ルータが、当該マルチキャスト・パケットを同報送信する宛先の一つとして端末200xを新たに追加登録する動作は、例えば、IGMP(IP Group Management Protocol)などを使用して実現することが可能である。第2のケースは、末端ルータが既存のマルチキャスト・ツリーに接続するルーティング経路を確立しており、当該末端ルータが既存のマルチキャスト・ツリーに既に参加している場合である。この場合には、当該末端ルータが、IGMPを使用して、既存のマルチキャスト・ツリーから受信したマルチキャスト・パケットを同報送信する宛先の一つとして、端末200xを、当該末端ルータ上のルーティング・テーブルに新たに追加登録するだけでよい。
以下、図5を参照しながら、マルチキャスト・ツリーの合流ポイントに位置するルータから端末200xに至るまでのルーティング経路を新たに追加する動作の具体的なシナリオについて説明する。なお、図5を使用した以下の具体例においては、マルチキャスト・ルーティング・プロトコルの一例としてPIMのスパーズ・モードが使用されていると仮定して説明を行う。しかしながら、本実施の形態は、PIM以外の他のマルチキャスト・ルーティング・プロトコルを使用して実現することももちろん可能である。図5において、MT−1として示されているマルチキャスト・ルーティング経路は、データ配信サーバ400からマルチキャスト・アドレスMA1により識別される端末グループに所属する複数の端末に至るマルチキャスト・ツリーの一部分を示すものである。図5においては、マルチキャスト・ルーティング経路MT−1が、データ配信サーバ400を根ノード(ルート・ノード)として出発し、ネットワーク500内においてルータ310Qおよびルータ310Rを含む複数のルータを経由している様子が示されている。また、図5において、ルータ300−Aは、端末200−A〜端末200−Cが1ホップで直接接続している末端ルータであり、ルータ300−Bは、端末200−Dが1ホップで直接接続している末端ルータである。上述したルータ310Qおよびルータ310Rは、末端ルータであるルータ300−Aおよびルータ300−Bが、マルチキャスト・ルーティング・プロトコルを使用してマルチキャスト・ツリーMT−1に参加する際の合流ポイントとなるルータである。
図5に示す例において、マルチキャスト・アドレス配布サーバ100からマルチキャスト・アドレスMA1を割り当てられた端末200Aは、自端末にとっての末端ルータであるルータ300−Aに対して、MA1により識別される端末グループに新たに参加したい旨の要求を通知する。この要求は、IGMPを使用して、端末200Aから末端ルータ300−Aに通知することが可能である。当該通知を受けた末端ルータ300−Aは、ルータ300−Aがマルチキャスト・ツリーMT−1に既に参加しているか否かを判定する。既に参加しているならば、末端ルータ300−Aは、マルチキャスト・ツリーMT−1を経由してマルチキャスト・アドレスMA1に宛ててマルチキャスト配信されたパケットを同報送信する宛先の一つとして、端末200−Aを、末端ルータ300−A上のルーティング・テーブルに新たに追加登録する。今、末端ルータ300−A上のルーティング・テーブルにおいて、マルチキャスト・アドレスMA1宛てのパケットを同報送信する宛先として端末200−Bと端末200−Cが既に登録されており、端末200−Aも新たに登録されたと仮定する。その場合、末端ルータ300−Aは、マルチキャスト・ツリーMT−1を経由して受信したマルチキャスト・アドレスMA1宛てのパケットを端末200−A〜端末200−Cのすべてに対して同報送信する。
続いて、マルチキャスト・アドレスMA1により識別される端末グループに新たに参加したい旨の要求を端末200−Aから通知された際に、末端ルータであるルータ300−Aがマルチキャスト・ツリーMT−1に未だ参加していなかった場合について説明する。この場合には、末端ルータ300−Aは、マルチキャスト・ルーティング・プロトコル(PIMのスパーズ・モード)を使用して以下の動作手順を実行する。まず、末端ルータ300−Aは、マルチキャスト・ツリーMT−1に参加する際にネットワーク500内の合流ポイントとなるルータ310Qに対して、マルチキャスト・ツリーMT−1に参加するためのジョイン要求JN−1を通知する。続いて、ネットワーク500内のルータ310Qは、自身のルーティング・テーブル内において、マルチキャスト・アドレスMA1を宛先とするパケットの中継転送先(次ホップ)の一つとして末端ルータ300−Aを新たに登録する。その結果、マルチキャスト・ツリーMT−1を経由してルータ310Qが受信したマルチキャスト・パケットは、既存の次ホップ・ルータに加えて、末端ルータ300−Aにも中継転送されるようになる。
また、マルチキャスト・アドレスMA1により識別される端末グループに新たに参加したい旨の要求を端末200−Dから通知された際に、末端ルータであるルータ300−Bがマルチキャスト・ツリーMT−1に未だ参加していなかった場合についても同様の説明が可能である。つまり、この場合には、末端ルータ300−Bは、まず、マルチキャスト・ツリーMT−1に参加する際にネットワーク500内の合流ポイントとなるルータ310Rに対して、マルチキャスト・ツリーMT−1に参加するためのジョイン要求JN−2を通知する。続いて、ネットワーク500内のルータ310Rは、自身のルーティング・テーブル内において、マルチキャスト・アドレスMA1を宛先とするパケットの中継転送先(次ホップ)の一つとして末端ルータ300−Bを新たに登録する。その結果、マルチキャスト・ツリーMT−1を経由してルータ310Rが受信したマルチキャスト・パケットは、既存の次ホップ・ルータに加えて、末端ルータ300−Bにも中継転送されるようになる。
端末200−Aにとっての末端ルータであるルータ300−Aがマルチキャスト・ツリーMT−1に参加した後に、末端ルータ300−Aは、以下の動作を実行する。つまり、マルチキャスト・ツリーMT−1を経由してマルチキャスト・アドレスMA1に宛ててマルチキャスト配信されたパケットを同報送信する宛先の一つとして、端末200−Aを、末端ルータ300−A上のルーティング・テーブルに新たに追加登録する。同様に、端末200−Dにとっての末端ルータであるルータ300−Bがマルチキャスト・ツリーMT−1に参加した後に、末端ルータ300−Bは、以下の動作を実行する。つまり、マルチキャスト・ツリーMT−1を経由してマルチキャスト・アドレスMA1に宛ててマルチキャスト配信されたパケットを同報送信する宛先の一つとして、端末200−Dを、末端ルータ300−B上のルーティング・テーブルに新たに追加登録する。
続いて、図6を参照しながら、本実施の形態に従い、端末200にマルチキャスト・アドレスを割り当て、端末200を特定のマルチキャスト・グループに参加させるための一連の手順について説明する。以下の例示的なシナリオにおいては、端末グループ200Gに端末200−Bがすでに所属しており、端末200−Aが新たに端末グループ200Gに参加することによって、端末200−Bと同一のマルチキャスト配信データを受信しようとする手順について説明する。まず、端末グループ200Gに新たに参加しようとする端末200−Aは、ルータ300を経由してマルチキャスト・アドレス配布サーバ100に対してマルチキャスト・アドレスの割り当てを求める割り当て要求を含んだメッセージを送信する(図6のステップS401)。当該割り当て要求を含んだメッセージには、端末200−Aの現在の端末属性を記述する端末属性情報が含まれている。
続いて、マルチキャスト・アドレス配布サーバ100は、当該割り当て要求を含んだメッセージを受け取ると、当該メッセージに含まれる当該端末属性情報に基づいて、端末200−Aに対して割り当てるべきマルチキャスト・アドレスを決定する(図6のステップS402)。具体的には、マルチキャスト・アドレス配布サーバ100内において以下の動作が実行される。マルチキャスト・アドレス配布部101(図3)は、端末200−Aから受信した当該メッセージに含まれる端末属性情報から対応するマルチキャスト・アドレスを得るようにマルチキャスト・アドレス管理部102(図3)に指示する。続いて、マルチキャスト・アドレス配布部101からの指示を受けたマルチキャスト・アドレス管理部102は、以下の動作を行う。すなわち、マルチキャスト・アドレス配布部101から端末200−Aについて新規に渡された端末属性情報を検索キーとして使用して端末200の端末属性情報とマルチキャスト・アドレスとの間の対応関係を保持するテーブルを検索する。その結果、端末200−Aの端末属性情報に対応するマルチキャスト・アドレスが得られると、当該マルチキャスト・アドレスの未割り当て分に相当する空きアドレスを端末200−Aに割り当てる。
なお、端末200−Aから受信した端末属性情報が、上記テーブル内において保持されている属性情報とマルチキャスト・アドレスとの間の対応関係のいずれとも一致しないとマルチキャスト・アドレス管理部102が判定した場合には、マルチキャスト・アドレス配布部101は、新規のマルチキャスト・グループを生成する。続いて、マルチキャスト・アドレス配布部101は、当該新規に生成したマルチキャスト・グループに対応するマルチキャスト・アドレスを新規に生成する。最後に、マルチキャスト・アドレス配布部101は、当該新規に生成したマルチキャスト・アドレスを端末200−Aに割り当てるべきマルチキャスト・アドレスとして決定する。
続いて、マルチキャスト・アドレス配布サーバ100は、端末200−Aに対して割り当てるべきマルチキャスト・アドレスを端末200−Aに対して通知するために、当該マルチキャスト・アドレスを含んだ応答メッセージを端末200−Aに対して送信する(図6のステップS403)。当該応答メッセージに含まれた当該マルチキャスト・アドレスを受信した端末200−Aは、当該受信した当該マルチキャスト・アドレスをマルチキャスト受信用のアドレスとして自端末に設定する(図6のステップS404)。続いて、端末200−Aは、当該マルチキャスト・アドレスによって識別されるマルチキャスト・グループに参加するために、ルータ300に対して参加要求を送信する(図6のステップS405)。当該参加要求の送信先となるルータ300は、端末200−Aと1ホップで直接通信が可能な末端ルータであり、当該マルチキャスト・アドレスによって識別されるマルチキャスト・グループは、端末グループ200Gに相当する。端末200−Aから当該参加要求を受信した当該末端ルータ300は、図5を使用して上述した手順に従って、端末200−Aを当該マルチキャスト・グループに参加させる。その結果、端末200−Aは、当該マルチキャスト・グループに対応するマルチキャスト・ツリーの葉ノード(リーフ・ノード)として当該マルチキャスト・ツリーに加えられることとなる。以上のようにして、端末200−Aが当該マルチキャスト・アドレスによって識別される端末グループ200Gに参加すると、端末200−Aは、端末200−Bと共に、同一のマルチキャスト配信データを受信することが可能となる(図6のステップS406およびS407)。
次に、マルチキャスト・アドレス配布サーバ100上においてテーブル内に保持されている端末属性情報とマルチキャスト・アドレスとの間の対応関係の一つ以上が変更された際に、実行されるシナリオについて、図7を参照しながら説明する。この場合、マルチキャスト・アドレス配布サーバ100は、各端末に対して上述した変更を通知しなくてはならないため、例えば、図7に示す以下の例示的シナリオが実行される。まず、ネットワーク500(図1)内に設置されたネットワーク構成管理サーバ480は、端末属性情報とマルチキャスト・アドレスとの間の対応関係を変更する必要性の有無を、システム運用管理ポリシーなどに従って判定する。変更の必要性がある場合、ネットワーク構成管理サーバ480は、端末属性情報とマルチキャスト・アドレスとの間の対応関係に関する変更内容をマルチキャスト・アドレス配布サーバ100に対して通知する(図7のステップS701)。代替的な実施例において、端末属性情報とマルチキャスト・アドレスとの間の対応関係を変更する必要性の有無の判定および変更内容の決定は、マルチキャスト・アドレス配布サーバ100自身が行うようにしても良い。
続いて、マルチキャスト・アドレス配布サーバ100は、上記対応関係に関してネットワーク構成管理サーバ480から通知された変更内容に基づいて、端末200−Aおよび端末200−Bに対して割り当てるべきマルチキャスト・アドレスに変更が生じるか否かを判定する。端末200−Aに割り当てるべきマルチキャスト・アドレスに変更が生じる場合、マルチキャスト・アドレス配布サーバ100は、上述した変更内容に基づいて、端末200−Aに新たに割り当てるべきマルチキャスト・アドレスを決定する。端末200−Bに割り当てるべきマルチキャスト・アドレスに変更が生じる場合、マルチキャスト・アドレス配布サーバ100は、上述した変更内容に基づいて、端末200−Bに新たに割り当てるべきマルチキャスト・アドレスを決定する(図7のステップS702)。
続いて、マルチキャスト・アドレス配布サーバ100は、上記対応関係の変更後に端末200−Aに対して新たに割り当てるために上記決定したマルチキャスト・アドレスを端末200−Aに通知する(図7のステップS703)。同様に、マルチキャスト・アドレス配布サーバ100は、上記対応関係の変更後に端末200−Bに対して新たに割り当てるために上記決定したマルチキャスト・アドレスを端末200−Bに通知する(図7のステップS704)。
次に、マルチキャスト・アドレスの割り当てを要求するために、端末200xからマルチキャスト・アドレス配布サーバ100に対して送信される割り当て要求メッセージのパケット・フォーマットについて図8を参照しながら説明する。図8において、f11として示されるフィールドには、HTTPプロトコルのGETコマンドと当該GETコマンドに付随する複数のパラメータが含まれている。当該複数のパラメータのうち、value1は、attr1_nameで表される端末属性に対応する端末属性情報の値が格納されるパラメータである。また、当該複数のパラメータのうち、value2は、attr2_nameで表される端末属性に対応する端末属性情報の値が格納されるパラメータであり、以下同様である。図8において、f12として示されるフィールドには、HTTPプロトコルのHTTPヘッダ情報が格納されている。図8に示すパケット・フォーマットは、マルチキャスト・アドレスの割り当てを求める端末200xについての複数の端末属性情報を複数のパラメータとして含むことができる。また、図8に示すパケット・フォーマットは、図2に示すHTTPコネクション92を経由して端末200xからマルチキャスト・アドレス配布サーバ100に対してマルチキャスト・アドレスの割り当て要求をHTTPリクエストとして伝送することができる。
次に、上記割り当て要求メッセージに応答して、マルチキャスト・アドレス配布サーバ100から端末200xに対して割り当てられたマルチキャスト・アドレスを通知するために送信される応答メッセージのパケット・フォーマットについて図9を参照しながら説明する。図9において、f21として示されるフィールドには、HTTPリクエストとして伝送されたマルチキャスト・アドレスの割り当て要求に対するHTTPレスポンスとして肯定応答(OK)コマンドを含んでいる。図9において、f22として示されるフィールドには、HTTPプロトコルのHTTPヘッダ情報が格納されている。図9において、f23として示されるフィールドには、HTTPレスポンスである肯定応答(OK)コマンドに付随する複数のパラメータの値として端末200xに通知すべき一つ以上のマルチキャスト・アドレスが含まれている。このように、マルチキャスト・アドレス配布サーバ100は、端末200xに同時に割り当てるべき2つ以上のマルチキャスト・アドレスを、図9のパケット・フォーマットに示す一つの応答メッセージに含めて端末200に送信することができる。その結果、マルチキャスト・アドレス配布サーバ100は、端末200xに同時に2つ以上のマルチキャスト・アドレスを割り当てることができる。また、図9に示すパケット・フォーマットは、端末200xに割り当てるべきマルチキャスト・アドレスを通知するために、図2に示すHTTPコネクション92を経由して、マルチキャスト・アドレス配布サーバ100から端末200xに対してHTTPレスポンスとして伝送することができる。
次に、マルチキャスト・アドレス配布サーバ100内において、マルチキャスト・アドレス管理部102が維持管理するテーブルのデータ構造について、図10を参照しながら説明する。図10に示す当該テーブルは、端末200の属性情報とマルチキャスト・アドレスとの間の対応関係を保持するための対応付けテーブルである。図10に示すテーブルの第1列目は、個々のマルチキャスト・アドレスによって識別される端末グループ(マルチキャスト・グループ)の識別番号を格納する。図10に示すテーブルの第2列目は、第1列目の識別番号によって識別される端末グループに属する一つ以上の端末200a〜200kが有していなければならない端末属性を表す端末属性情報の値が格納されている。図10に示すテーブルの第3列目は、第1列目の識別番号によって識別される端末グループに属する一つ以上の端末200b〜200jに割り当てるべきマルチキャスト・アドレスを値として格納している。
例えば、神奈川県内に設置されている端末200hについて言えば、端末200hの地理的な設置位置を表す端末属性情報の値は、神奈川県を表す値であるが、その場合、端末200hは、図10のテーブルの第1列目の最上段において「1」の識別番号を与えられた端末グループに所属すべきであり、その結果、端末200hに割り当てるべきマルチキャスト・アドレスは、図10のテーブルの第3列目の最上段において格納されているマルチキャスト・アドレス「ff1e::1234:0:1」となる。
また、例えば、ファームウェアのバージョンがバージョン1.0.1である端末200jについて言えば、端末200jのファームウェア・バージョンを表す端末属性情報の値は、「1.0.1」であるが、その場合、端末200jは、図10のテーブルの第1列目の3段目において「3」の識別番号を与えられた端末グループに所属すべきであり、その結果、端末200jに割り当てるべきマルチキャスト・アドレスは、図10のテーブルの第3列目の3段目において格納されているマルチキャスト・アドレス「ff1e::1234:0:3」となる。
マルチキャスト・アドレス配布部101からの指示を受けたマルチキャスト・アドレス管理部102は、図10に示すテーブルを使用して以下の動作を行う。すなわち、マルチキャスト・アドレス配布部101から端末200xについて新規に渡された属性情報を検索キーとして使用して端末200の属性情報とマルチキャスト・アドレスとの間の対応関係を保持する図10のテーブルを検索する。その結果、該当するマルチキャスト・アドレスが得られると、該当するマルチキャスト・アドレスの未割り当て分に相当する空きアドレスを端末200xに割り当てる。なお、端末200xから受信した端末属性情報が、図10のテーブル内において保持されている属性情報とマルチキャスト・アドレスとの間の対応関係のいずれとも一致しないとマルチキャスト・アドレス管理部102が判定した場合には、マルチキャスト・アドレス配布部101は、新規のマルチキャスト・グループを生成する。続いて、マルチキャスト・アドレス配布部101は、当該新規に生成したマルチキャスト・グループに対応するマルチキャスト・アドレスを新規に生成する。最後に、マルチキャスト・アドレス配布部101は、当該新規に生成したマルチキャスト・アドレスを端末200xに割り当てるべきマルチキャスト・アドレスとして決定する。
<本実施の形態に係る第1実施例>
次に、図11および図12を使用して、本実施の形態に係る第1実施例について説明する。第1実施例においては、端末200の一実施例として、設置エリア内の電力使用量などを計測するための計測機能やセンサ機能を備えたスマートメータ600を使用する。以下、第1実施例においては、スマートメータ600の端末属性情報は、スマートメータ600が設置されている地理的な位置を識別するものである。第1実施例においては、スマートメータ600の設置エリア毎に各スマートメータ600が所属する端末グループが定められており、各スマートメータ600に対して所属すべき端末グループを割り当てるようにしている。このような場合、従来であれば、特定のスマートメータ600xの設置エリアが変更されたときに、当該特定のスマートメータ600xが所属する端末グループを動的に変更することが困難であった。また、スマートメータ600xの設置エリアが変わると対応する端末属性情報が変更される。その際、従来であれば、そのような端末属性情報の変更に適応する形で、スマートメータ600xに新たなマルチキャスト・アドレスを動的に再設定したり、スマートメータ600xが所属するマルチキャスト・グループを動的に変更したりすることができなかった。以下、第1実施例が上記問題点を解決するための例示的なシナリオを図11および図12を参照しながら説明する。
図11の左側において、地区A(図11のR10)および地区B(図11のR20)は、それぞれスマートメータ600が設置される地理的エリア(設置エリア)を表す。また、図11において、ルータ300−Aおよびルータ300−Bは、地区A(図11のR10)および地区B(図11のR20)において一つ以上のスマートメータ600と1ホップで直接通信可能な末端ルータとしてそれぞれ機能する。また、末端ルータ300−Aの配下に接続されるスマートメータ600−Aおよび600−Bは、端末グループN10を形成し、末端ルータ300−Bの配下に接続されているスマートメータ600−Cは、端末グループN20を形成する。スマートメータ600−Aおよび600−Bは、マルチキャスト・アドレス配布サーバ110によってマルチキャスト・アドレスMA−1を割り当てられているものとする。スマートメータ600−Aおよび600−Bは、末端ルータ300−Aおよびネットワーク500を経由してデータ配信サーバ400からマルチキャスト・アドレスMA−1を宛先としてマルチキャスト配信される端末制御命令や端末設定情報を受信している。スマートメータ600−Cは、マルチキャスト・アドレス配布サーバ110によってマルチキャスト・アドレスMA−2を割り当てられているものとする。スマートメータ600−Cは、末端ルータ300−Bおよびネットワーク500を経由してデータ配信サーバ400からマルチキャスト・アドレスMA−2を宛先としてマルチキャスト配信される端末制御命令や端末設定情報を受信している。なお、マルチキャスト・アドレスMA−1は、端末グループN10をマルチキャスト・グループとして識別し、マルチキャスト・アドレスMA−2は、端末グループN20をマルチキャスト・グループとして識別する。
ここで、マルチキャスト・アドレスMA−1は、地区A(図11のR10)に設置されている一群のスマートメータ600に対してだけ割り当てられるマルチキャスト・アドレスであるとする。その場合、データ配信サーバ400は、地区A(図11のR10)に設置されている一群のスマートメータ600に対してだけ配信される端末制御命令や端末設定情報を、マルチキャスト・アドレスMA−1を宛先としてマルチキャスト配信する。また、マルチキャスト・アドレスMA−2は、地区B(図11のR20)に設置されている一群のスマートメータ600に対してだけ割り当てられるマルチキャスト・アドレスであるとする。その場合、データ配信サーバ400は、地区B(図11のR10)に設置されている一群のスマートメータ600に対してだけ配信される端末制御命令や端末設定情報を、マルチキャスト・アドレスMA−2を宛先としてマルチキャスト配信する。
今、スマートメータ600−Aの設置エリアが地区A(図11のR10)から地区B(図11のR20)へと変更されたとする(図11の右側)。図11の右側を参照すると、スマートメータ600−Aは、スマートメータ600−Cと共に、地区B(図11のR20)に設置されており、スマートメータ600−Cと共に、末端ルータ300−Bの配下において端末グループN20に接続されている。上述したように、データ配信サーバ400は、地区B(図11のR10)に設置されている一群のスマートメータ600に対してだけ配信される端末制御命令や端末設定情報を、マルチキャスト・アドレスMA−2を宛先としてマルチキャスト配信する。従って、スマートメータ600−Aに割り当てるべきマルチキャスト・アドレスは、端末グループN10を識別するマルチキャスト・アドレスMA−1から端末グループN20を識別するマルチキャスト・アドレスMA−2へと変更されなくてはならないはずである。
次に、スマートメータ600−Aの設置エリアが地区A(図11のR10)から地区B(図11のR20)へと変更されたのに伴い、スマートメータ600−Aに新たなマルチキャスト・アドレスMA−2を割り当てるための一連の手順について図12を参照しながら説明する。図11と同様に、末端ルータ300−Aの配下に接続されるスマートメータ600−Aおよび600−Bは、端末グループN10を形成し、末端ルータ300−Bの配下に接続されているスマートメータ600−Cは、端末グループN20を形成する。図11と同様に、スマートメータ600−Aおよび600−Bは、マルチキャスト・アドレス配布サーバ110によってマルチキャスト・アドレスMA−1を割り当てられている。スマートメータ600−Aおよび600−Bは、末端ルータ300−Aおよびネットワーク500を経由してデータ配信サーバ400からマルチキャスト・アドレスMA−1を宛先としてマルチキャスト配信され、地区A(図11のR10)の電気料金の変更通知を含む端末制御命令を受信している(図12のステップS901)。スマートメータ600−Cは、マルチキャスト・アドレス配布サーバ110によってマルチキャスト・アドレスMA−2を割り当てられているものとする。スマートメータ600−Cは、末端ルータ300−Bおよびネットワーク500を経由してデータ配信サーバ400からマルチキャスト・アドレスMA−2を宛先としてマルチキャスト配信され、地区B(図11のR20)の電気料金の変更通知を含む端末制御命令を受信している(図12のステップS902)。なお、マルチキャスト・アドレスMA−1は、端末グループN10をマルチキャスト・グループとして識別し、マルチキャスト・アドレスMA−2は、端末グループN20をマルチキャスト・グループとして識別する。
スマートメータ600−Aの端末属性情報のうち、スマートメータ600−Aが設置されている地理的エリアを表す端末属性情報が変更されると、スマートメータ600−Aは、現在所属しているマルチキャスト・グループである端末グループN10から離脱するために、以下の動作を行う。すなわち、スマートメータ600−Aが所属する地区A(図11のR10)における末端ルータ300−Aに対して、スマートメータ600−Aは、マルチキャスト・アドレスMA−1が識別するマルチキャスト・ツリーからの離脱要求を送信する。当該マルチキャスト・グループからの離脱要求を送信することによって、スマートメータ600−Aは、端末属性情報の変更前に自端末が参加していた当該マルチキャスト・グループ(端末グループN10)から自端末を離脱させる(図12のステップS903)。
続いて、ネットワーク管理者や作業員の手によってスマートメータ600−Aの設置エリアが実際に地区Aから地区Bに移されると、スマートメータ600−Aは、自端末の設置エリアが変更された旨を検出する(図12のステップS904)。続いて、スマートメータ600−Aは、変更後の設置エリアに対応した新しいマルチキャスト・アドレスの割り当てを要求するために、新たなマルチキャスト・アドレスの割り当て要求を含む割り当て要求メッセージをマルチキャスト・アドレス配布サーバ110に対して送信する(図12のステップS905)。続いて、当該割り当て要求メッセージをスマートメータ600−Aから受信したマルチキャスト・アドレス配布サーバ110は、スマートメータ600−Aに割り当てるべき新たなマルチキャスト・アドレスを決定する(図12のステップS906)。
当該マルチキャスト・アドレスの決定を行うために、マルチキャスト・アドレス配布サーバ110は、まず、スマートメータ600−Aの現在の設置エリアを識別する端末属性情報を検索キーとして、図10に示すテーブルを検索する。続いて、マルチキャスト・アドレス配布サーバ110は、当該端末属性情報に対応するマルチキャスト・アドレスをテーブルから抽出する。図10の例においては、設置エリア変更前のスマートメータ600−Aの設置エリアである地区A(図11のR10)は、図10に示すテーブルの2行目の1段目に格納された端末属性情報の値「神奈川県」に相当する。また、図10の例においては、設置エリア変更後のスマートメータ600−Aの設置エリアである地区B(図11のR20)は、図10に示すテーブルの2行目の2段目に格納された端末属性情報の値「大阪府」に相当する。また、設置エリア変更後のスマートメータ600−Aの端末属性情報「大阪府」に対応するマルチキャスト・アドレスは、図10に示すテーブルの3行目の2段目に格納されているマルチキャスト・アドレス「ff1e::1234:0:2」である。このマルチキャスト・アドレス「ff1e::1234:0:2」が設置エリア変更後のスマートメータ600−Aに割り当てるべきマルチキャスト・アドレスMA−2に相当する。スマートメータ600−Aの設置エリアは、地区Aから地区Bに移ったのであるから、マルチキャスト・アドレス配布サーバ110は、スマートメータ600−Aに新たに割り当てるべきマルチキャスト・アドレスがMA−2であると決定する。
続いて、マルチキャスト・アドレス配布サーバ110は、ステップS906にて決定したマルチキャスト・アドレスをスマートメータ600−Aに対して通知するために、スマートメータ600−Aに対して、当該決定したマルチキャスト・アドレスを含む応答メッセージを送信する(図12のステップS907)。続いて、マルチキャスト・アドレス配布サーバ110から当該決定したマルチキャスト・アドレスとしてMA−2を通知されたスマートメータ600−Aは、当該通知されたマルチキャスト・アドレスMA−2をマルチキャスト配信受信用のアドレスとして自端末に設定する(図12のステップS908)。続いて、スマートメータ600−Aは、自端末に設定されたマルチキャスト・アドレスMA−2によって識別されるマルチキャスト・グループが端末グループN20(図11)であり、自端末を末端ルータ300−Bの配下の端末グループN20に参加させる必要があると判断する。そこで、スマートメータ600−Aは、自端末を末端ルータ300−Bの配下の端末グループN20に参加させるために、末端ルータ300−Bに対して端末グループN20に対応するマルチキャスト・ツリーへの参加要求を送信する(図12のステップS909)。
末端ルータ300−Bの配下の端末グループN20に対応するマルチキャスト・ツリーに対してスマートメータ600−Aが参加をすると、スマートメータ600−Bは、データ配信サーバ400からマルチキャスト・アドレスMA−1に宛ててマルチキャスト配信され、地区Aの電気料金の変更を通知する端末制御命令を受信することができるようになる(図12のステップS910)。また、スマートメータ600−Aおよび600−Cは、データ配信サーバ400からマルチキャスト・アドレスMA−2に宛ててマルチキャスト配信され、地区Bの電気料金の変更を通知する端末制御命令を受信することができるようになる(図12のステップS911およびS912)。
<本実施の形態に係る第2実施例>
次に、図13および図14を使用して、本実施の形態に係る第2実施例について説明する。第2実施例においても、端末200の一実施例として、設置エリア内の電力使用量などを計測するための計測機能やセンサ機能を備えたスマートメータ600を使用する。以下、第2実施例においては、スマートメータ600の端末属性情報は、スマートメータ600にインストールされているファームウェアのバージョンを識別するものである。第2実施例においては、スマートメータ600のファームウェアのバージョン毎に各スマートメータ600が所属する端末グループが定められており、各スマートメータ600に対して所属すべき端末グループを割り当てるようにしている。このような場合、従来であれば、特定のスマートメータ600xのファームウェア・バージョンが変更されたときに、当該特定のスマートメータ600xが所属する端末グループを動的に変更することが困難であった。また、スマートメータ600xのファームウェア・バージョンが変わると対応する端末属性情報が変更される。その際、従来であれば、そのような端末属性情報の変更に適応する形で、スマートメータ600xに新たなマルチキャスト・アドレスを動的に再設定したり、スマートメータ600xが所属するマルチキャスト・グループを動的に変更したりすることができなかった。以下、第2実施例が上記問題点を解決するための例示的なシナリオを図13および図14を参照しながら説明する。
図13において、ルータ300は、3台のスマートメータ600−A〜600−Cと1ホップで直接通信可能な末端ルータである。3台のスマートメータ600−A〜600−Cは、ルータ300とネットワーク500を経由してデータ配信サーバ400からマルチキャスト配信される端末制御命令や端末設定情報を受信しているとする。図13のV100は、3台のスマートメータ600−A〜600−Cについて、ファームウェアのアップデート操作前におけるファームウェア・バージョンを示し、V200は、ファームウェアのアップデート操作後におけるファームウェア・バージョンを示す。以下の例示的シナリオにおいて、アップデート操作前の古いファームウェア・バージョンを有するスマートメータ600は、マルチキャスト・アドレスMA−1によって識別されるマルチキャスト・ツリーからの配信データをデータ配信サーバ200から受信するものとする。また、以下の例示的シナリオにおいて、アップデート操作後の新しいファームウェア・バージョンを有するスマートメータ600は、マルチキャスト・アドレスMA−2によって識別されるマルチキャスト・ツリーからの配信データをデータ配信サーバ400から受信するものとする。
ファームウェアのアップデート操作前においては、スマートメータ600−A〜600−Cのファームウェア・バージョンは、全て1.0であり、スマートメータ600−A〜600−Cは、マルチキャスト・アドレスMA−1を宛先としてデータ配信サーバ400からマルチキャスト配信される端末制御命令や端末設定情報を受信している。図13においては、スマートメータ600−Bのファームウェア・バージョンが1.0から1.1にアップデートされる様子が示されているが、アップデート後は、スマートメータ600−Aおよび600−Bのファームウェア・バージョンは1.1に更新されている。これに対して、スマートメータ600−Cにおいては、ファームウェアのアップデート操作が失敗し、スマートメータ600−Cのファームウェア・バージョンは1.0のままであるとする。アップデート後においては、スマートメータ600−Aおよび600−Bは、マルチキャスト・アドレスMA−2を宛先としてデータ配信サーバ400からマルチキャスト配信される端末制御命令や端末設定情報を受信し、スマートメータ600−Cは、依然として、マルチキャスト・アドレスMA−1を宛先としてデータ配信サーバ400からマルチキャスト配信される端末制御命令や端末設定情報を受信している。
なお、スマートメータ600のファームウェア・バージョンのアップデート操作は、例えば、ネットワーク運用管理者や作業員の手動操作によりスマートメータ600に対して直接行うことにより可能である。また、ファームウェア・バージョンのアップデート操作は、スマートメータ600がデータ配信サーバ400から新しいバージョンのファームウェアをネットワーク500およびルータ300を介してダウンロードすることにより可能である。ファームウェア・バージョンの上述したアップデート操作により、スマートメータ600のファームウェア・バージョンが図13に示すとおりに変更されたのに伴い、以下の変更が必要となる。つまり、マルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーから配信情報を受信していたスマートメータ600−Aおよび600−Bは、マルチキャスト・アドレスMA−2に対応するマルチキャスト・ツリーから配信情報を受信しなくてはならなくなる。
次に、スマートメータ600のファームウェア・バージョンが図13に示すとおりに変更されたのに伴い、スマートメータ600−Aおよび600−Bに新たなマルチキャスト・アドレスMA−2を割り当てるための一連の手順について図14を参照しながら説明する。まず、データ配信サーバ400は、スマートメータ600−A〜600−Cのファームウェアのバージョンをアップデートするために、新しいバージョン「1.1」を有する新しいファームウェアをスマートメータ600−A〜600−Cに対してマルチキャスト配信する。当該新しいバージョンのファームウェアは、マルチキャスト・アドレスMA−1を宛先としてデータ配信サーバ400からマルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーを経由してスマートメータ600−A〜600−Cに配信される(図14のステップS1101S〜1103)。スマートメータ600−A〜600−Cに新バージョンのファームウェアが配信されると、スマートメータ600−Aおよび600−Bは、自端末のファームウェア・バージョンを新しいバージョンである「1.1」にアップデートさせる(図14のステップS1104およびS1105)。しかし、スマートメータ600−Cは、ファームウェアのアップデート操作に失敗したので、スマートメータ600−Cにおいては、ファームウェアのバージョンの古いバージョンである「1.0」のままであるとする(図14のV15)。
ファームウェア・バージョンの上述したアップデート操作により、スマートメータ600−Aおよび600−Bのファームウェア・バージョンが変更されたのに伴い、以下の変更が必要となる。つまり、マルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーから配信情報を受信していたスマートメータ600−Aおよび600−Bは、マルチキャスト・アドレスMA−2に対応するマルチキャスト・ツリーから配信情報を受信しなくてはならなくなる。そのためには、まず、スマートメータ600−Aおよび600−Bはマルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーから離脱しなくてはならない。そこで、スマートメータ600−Aおよび600−Bは、マルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーから自端末を離脱させるための離脱要求を末端ルータ300に対して送信する(図14のステップS1106およびS1107)。
続いて、スマートメータ600−Aは、アップデート後のファームウェア・バージョンに対応した新しいマルチキャスト・アドレスMA−2の割り当てを要求するために、新たなマルチキャスト・アドレスの割り当て要求を含む割り当て要求メッセージをマルチキャスト・アドレス配布サーバ110に対して送信する(図14のステップS1108)。続いて、当該割り当て要求メッセージをスマートメータ600−Aから受信したマルチキャスト・アドレス配布サーバ110は、スマートメータ600−Aに割り当てるべき新たなマルチキャスト・アドレスを決定する(図14のステップS1109)。当該マルチキャスト・アドレスの決定を行うために、マルチキャスト・アドレス配布サーバ110は、まず、スマートメータ600−Aの現在のファームウェア・バージョンを識別する端末属性情報を検索キーとして、図10に示すテーブルを検索する。続いて、マルチキャスト・アドレス配布サーバ110は、当該端末属性情報に対応するマルチキャスト・アドレスをテーブルから抽出する。スマートメータ600−Aのファームウェア・バージョンは、古いバージョン「1.0」から新しいバージョン「1.1」に変わったのであるから、マルチキャスト・アドレス配布サーバ110は、スマートメータ600−Aに新たに割り当てるべきマルチキャスト・アドレスがMA−2であると決定する。
続いて、マルチキャスト・アドレス配布サーバ110は、ステップS1109にて決定したマルチキャスト・アドレスMA−2をスマートメータ600−Aに対して通知するために、スマートメータ600−Aに対して、当該決定したマルチキャスト・アドレスMA−2を含む応答メッセージを送信する(図14のステップS1110)。続いて、マルチキャスト・アドレス配布サーバ110から当該決定したマルチキャスト・アドレスとしてMA−2を通知されたスマートメータ600−Aは、当該通知されたマルチキャスト・アドレスMA−2をマルチキャスト配信受信用のアドレスとして自端末に設定する(図14のステップS1111)。続いて、スマートメータ600−Aは、自端末をマルチキャスト・アドレスMA−2によって識別される新しいマルチキャスト・ツリーに参加させるために、末端ルータ300に対してマルチキャスト・アドレスMA−2に対応する新しいマルチキャスト・ツリーへの参加要求を送信する(図14のステップS1112)。
続いて、スマートメータ600−Bは、アップデート後のファームウェア・バージョンに対応した新しいマルチキャスト・アドレスMA−2の割り当てを要求するために、新たなマルチキャスト・アドレスの割り当て要求を含む割り当て要求メッセージをマルチキャスト・アドレス配布サーバ110に対して送信する(図14のステップS1113)。続いて、当該割り当て要求メッセージをスマートメータ600−Bから受信したマルチキャスト・アドレス配布サーバ110は、スマートメータ600−Bに割り当てるべき新たなマルチキャスト・アドレスを決定する(図14のステップS1114)。当該マルチキャスト・アドレスの決定を行うために、マルチキャスト・アドレス配布サーバ110は、まず、スマートメータ600−Bの現在のファームウェア・バージョンを識別する端末属性情報を検索キーとして、図10に示すテーブルを検索する。続いて、マルチキャスト・アドレス配布サーバ110は、当該端末属性情報に対応するマルチキャスト・アドレスをテーブルから抽出する。スマートメータ600−Bのファームウェア・バージョンは、古いバージョン「1.0」から新しいバージョン「1.1」に変わったのであるから、マルチキャスト・アドレス配布サーバ110は、スマートメータ600−Bに新たに割り当てるべきマルチキャスト・アドレスがMA−2であると決定する。図10の例においては、ファームウェアの古いバージョン「1.0」および新しいバージョン「1.1」は、図10に示すテーブルの2行目の3段目と4段目に端末属性情報としてそれぞれ格納されている。図10の例においては、ファームウェア・バージョンのアップデート後のスマートメータ600−Aおよび600−Bに割り当てるべきマルチキャスト・アドレスMA−2は、図10に示すテーブルの3行目の4段目に格納されているマルチキャスト・アドレス「ff1e::1234:0:4」に相当する。
続いて、マルチキャスト・アドレス配布サーバ110は、ステップS1114にて決定したマルチキャスト・アドレスMA−2をスマートメータ600−Bに対して通知するために、スマートメータ600−Bに対して、当該決定したマルチキャスト・アドレスMA−2を含む応答メッセージを送信する(図14のステップS1115)。続いて、マルチキャスト・アドレス配布サーバ110から当該決定したマルチキャスト・アドレスとしてMA−2を通知されたスマートメータ600−Bは、当該通知されたマルチキャスト・アドレスMA−2をマルチキャスト配信受信用のアドレスとして自端末に設定する(図14のステップS1116)。続いて、スマートメータ600−Bは、自端末をマルチキャスト・アドレスMA−2によって識別される新しいマルチキャスト・ツリーに参加させるために、末端ルータ300に対してマルチキャスト・アドレスMA−2に対応する新しいマルチキャスト・ツリーへの参加要求を送信する(図14のステップS1117)。
その後、データ配信サーバ400は、ファームウェアのアップデート操作が失敗したスマートメータ600−Cに対して改めてファームウェア・バージョンのアップデート操作を行うために、新しいバージョン「1.1」を有する新しいファームウェアをスマートメータ600−Cに対して配信する。当該新しいバージョンのファームウェアは、マルチキャスト・アドレスMA−1を宛先としてデータ配信サーバ400からマルチキャスト・アドレスMA−1に対応するマルチキャスト・ツリーを経由してスマートメータ600−Cに配信される(図14のステップS1118)。
<その他の実施例>
端末200の端末属性情報としては、端末200の所有者を使用することも可能である。端末200の所有者の変更が検出された際に、端末200は、マルチキャスト・アドレス配布サーバ100に対して、変更後の所有者に対応するマルチキャスト・アドレスの割り当てを要求するために、新たなマルチキャスト・アドレスの割り当てを要求する割り当て要求メッセージを送信することが可能である。例えば、端末200は、当該割り当て要求メッセージに端末属性情報として変更後の端末所有者の氏名を文字列データの形で含めてマルチキャスト・アドレス配布サーバ100に対して送信し、その応答として、変更後の所有者に対応するマルチキャスト・アドレスをマルチキャスト・アドレス配布サーバ100から通知してもらうことが可能である。
<本実施の形態の効果>
本実施の形態は、端末200の属性情報が変更された際に、当該属性情報の変更に適応する形で、端末200が所属するマルチキャスト・グループを動的に変更することを可能にする端末200およびマルチキャスト・アドレス配布サーバ100を得ることができる。従って、本実施の形態は、属性情報の変更に適応する形で、当該端末に新たなマルチキャスト・アドレスを動的に再設定したり、当該端末が所属するマルチキャスト・グループを動的に変更したりすることができないという従来技術の課題を解決することができる。
本実施の形態に係る第1実施例においては、端末200の属性情報は、端末200が設置されている地理的エリアを記述する設置エリア情報を備え、端末200が設置されている地理的エリアの変更が検出された際に、マルチキャスト・アドレス配布サーバ100に対して、マルチキャスト・アドレスの割り当てを再度要求するために、第2の割り当て要求を再送信する、ことを特徴とする。従って、本実施の形態に係る第1実施例は、特定の端末200xの設置エリアが変更されたときに、当該特定の端末200xが所属する端末グループを動的に変更することができる。また、端末200xの設置エリアが変わると対応する端末属性情報が変更される。その際、本実施の形態は、そのような端末属性情報の変更に適応する形で、端末200xに新たなマルチキャスト・アドレスを動的に再設定したり、端末200xが所属するマルチキャスト・グループを動的に変更したりすることができる。
本実施の形態に係る第2実施例においては、端末200の属性情報は、端末200のファームウェアのバージョンであり、当該ファームウェアのアップデートにより当該バージョンの変更が検出された際に、マルチキャスト・アドレス配布サーバ100に対して、マルチキャスト・アドレスの割り当てを要求するために、第2の割り当て要求を再送信する、ことを特徴とする。従って、本実施の形態に係る第2実施例は、特定の端末200xのファームウェア・バージョンが変更されたときに、当該特定の端末200xが所属する端末グループを動的に変更することができる。また、端末200xのファームウェア・バージョンが変わると対応する端末属性情報が変更される。その際、本実施の形態は、そのような端末属性情報の変更に適応する形で、端末200xに新たなマルチキャスト・アドレスを動的に再設定したり、端末200xが所属するマルチキャスト・グループを動的に変更したりすることができる。
なお、本発明に関し、追加的な実施例を以下に付記する。
(付記1)端末グループを識別するマルチキャスト・アドレスの割り当てを要求するために、マルチキャスト・アドレス配布サーバに対して、自端末の属性情報を含む割り当て要求を送信する手段と、
前記マルチキャスト・アドレスの前記割り当てに応じて、前記マルチキャスト・アドレスを自端末に設定し、自端末を前記マルチキャスト・アドレスに対応する前記端末グループに参加させる手段と、
を具備する端末であって、
前記端末が前記属性情報の変更を検出した際、変更後の前記属性情報を含む第2の割り当て要求を再送信することにより、前記マルチキャスト・アドレス配布サーバに対して新たなマルチキャスト・アドレスを要求し、前記属性情報の変更に応じて自端末が参加する端末グループを変更する、ことを特徴とする、端末。
(付記2)前記端末の属性情報は、前記端末が設置されている地理的エリアを記述する設置エリア情報を備え、
前記端末が設置されている地理的エリアの変更が検出された際に、前記マルチキャスト・アドレス配布サーバに対して、マルチキャスト・アドレスの割り当てを再度要求するために、前記第2の割り当て要求を再送信する、
ことを特徴とする、付記1記載の端末。
(付記3)前記端末の属性情報が前記端末のファームウェアのバージョンであり、前記ファームウェアのアップデートにより前記バージョンの変更が検出された際に、前記マルチキャスト・アドレス配布サーバに対して、マルチキャスト・アドレスの割り当てを要求するために、前記第2の割り当て要求を再送信する、
ことを特徴とする、付記1記載の端末。
(付記4)前記端末の属性情報が前記端末の所有者であり、前記端末の所有者の変更が検出された際に、前記マルチキャスト・アドレス配布サーバに対して、マルチキャスト・アドレスの割り当てを要求するために、前記第2の割り当て要求を再送信する、
ことを特徴とする、付記1記載の端末。
(付記5)前記端末の属性情報が変更され、マルチキャスト・アドレスの割り当てを再度要求するための前記第2の割り当て要求を前記端末が再送信するのに先立って、
前記端末が所属する末端ルータに対してマルチキャスト・グループ離脱要求を送信することによって、前記属性情報の変更前に自端末が参加していた前記端末グループから自端末を離脱させる、
ことを特徴とする、付記1記載の端末。
(付記6)端末からマルチキャスト・アドレスの割り当てを要求する割り当て要求を受信する手段と、
前記端末の属性情報とマルチキャスト・アドレスとの間の対応関係を保持する手段と、
前記端末から受信した前記端末の属性情報に基づいて、前記端末に配布するマルチキャスト・アドレスを決定する手段と、
前記端末に対して前記決定したマルチキャスト・アドレスを通知する手段と、
を具備するマルチキャスト・アドレス配布サーバ。
(付記7)マルチキャスト・アドレス配布サーバからの前記マルチキャスト・アドレスの通知に複数のマルチキャスト・アドレスを含める、
ことを特徴とする、付記6記載のマルチキャスト・アドレス配布サーバ。
(付記8)前記端末からマルチキャスト・アドレスの割り当てを要求する割り当て要求に含まれる端末属性情報を抽出し、
前記抽出した端末属性情報が、マルチキャスト・アドレス配布サーバ上において保持されている属性情報とマルチキャスト・アドレスとの間の前記対応関係のいずれとも一致しない場合に、新規にマルチキャスト・グループを生成する、
ことを特徴とする、付記6記載のマルチキャスト・アドレス配布サーバ。
(付記9)マルチキャスト・アドレス配布サーバ上において保持されている属性情報とマルチキャスト・アドレスとの間の前記対応関係の一つ以上が変更された際に、各端末に対して変更の通知を送信する、
ことを特徴とする、付記6記載のマルチキャスト・アドレス配布サーバ。
(付記10)端末を制御するために、前記端末上のCPUによって実行可能な一連の命令コードを含む、端末制御プログラムであって、
端末グループを識別するマルチキャスト・アドレスの割り当てを要求するために、マルチキャスト・アドレス配布サーバに対して、自端末の属性情報を含む割り当て要求を送信するステップと、
前記マルチキャスト・アドレスの前記割り当てに応じて、前記マルチキャスト・アドレスを自端末に設定し、自端末を前記マルチキャスト・アドレスに対応する前記端末グループに参加させるステップと、
前記端末が前記属性情報の変更を検出した際、変更後の前記属性情報を含む第2の割り当て要求を再送信することにより、前記マルチキャスト・アドレス配布サーバに対して新たなマルチキャスト・アドレスを要求し、前記属性情報の変更に応じて自端末が参加する端末グループを変更するステップと、
を前記CPUに実行させる、端末制御プログラム。
(付記11)サーバを制御するために、前記サーバ上のCPUによって実行可能な一連の命令コードを含む、サーバ制御プログラムであって、
端末からマルチキャスト・アドレスの割り当てを要求する割り当て要求を受信するステップと、
前記端末の属性情報とマルチキャスト・アドレスとの間の対応関係を保持するステップと、
前記端末から受信した前記端末の属性情報に基づいて、前記端末に配布するマルチキャスト・アドレスを決定するステップと、
前記端末に対して前記決定したマルチキャスト・アドレスを通知するステップと、
を前記CPUに実行させる、サーバ制御プログラム。
(付記12)端末が参加するマルチキャスト・グループを変更する方法であって、
端末グループを識別するマルチキャスト・アドレスの割り当てを要求するために、マルチキャスト・アドレス配布サーバに対して、自端末の属性情報を含む割り当て要求を送信するステップと、
前記マルチキャスト・アドレスの前記割り当てに応じて、前記マルチキャスト・アドレスを自端末に設定し、自端末を前記マルチキャスト・アドレスに対応する前記端末グループに参加させるステップと、
前記端末が前記属性情報の変更を検出した際、変更後の前記属性情報を含む第2の割り当て要求を再送信することにより、前記マルチキャスト・アドレス配布サーバに対して新たなマルチキャスト・アドレスを要求し、前記属性情報の変更に応じて自端末が参加する端末グループを変更するステップと、
を備える、方法。
(付記13)マルチキャスト・アドレスを配布する方法であって、
端末からマルチキャスト・アドレスの割り当てを要求する割り当て要求を受信するステップと、
前記端末の属性情報とマルチキャスト・アドレスとの間の対応関係を保持するステップと、
前記端末から受信した前記端末の属性情報に基づいて、前記端末に配布するマルチキャスト・アドレスを決定するステップと、
前記端末に対して前記決定したマルチキャスト・アドレスを通知するステップと、
を備える、マルチキャスト・アドレス配布方法。