(57)【要約】【課題】転送装置の制御装置を使用せず転送経路を変更する。【解決手段】第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送プログラムは，データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，前記通知を他の前記転送装置に転送する。【選択図】  図1
2014135662.tif 000002
【特許請求の範囲】
【請求項１】
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送プログラムであって，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，
受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，
前記通知を他の前記転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項２】
請求項1において，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶装置に記憶し，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先を，前記通知に含まれる前記転送先に変更し，
前記第2の属性が前記第1の属性に一致しない場合，前記第2の属性と前記第2の属性を含む前記通信データの転送先とを対応付けて前記記憶装置に記憶し，
前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項３】
請求項1において，
前記通知に含まれる前記通信データの転送先を自装置に変更し，変更後の前記通知を前記他の転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項４】
データと前記データに関する属性とを含む通信データを生成する生成装置と，前記通信データに含まれる前記データを処理する第1，第2の処理装置との間に設置され，第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する複数の転送装置の何れかの転送装置が実行する転送プログラムであって，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む第1の通知を受信し，
受信した前記第2の属性を含む通信データを，前記第1の通知に含まれる前記転送先の第3の装置に転送し，
前記第1の通知を他の前記転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項５】
請求項4において，
前記第1の通知の受信時を基準にした所定の時間内に，前記第1の通知に含まれる前記第2の属性を含む通信データを受信しない場合，前記第2の属性を含む通信データの転送経路に対応する，前記第2の属性と通信データの転送先とが対応付けられた対応情報を，前記転送経路に設置された転送装置に送信する要求を前記複数の転送装置を制御する制御装置に行い，
前記対応情報を受信し，前記対応情報に含まれる前記第2の属性を含む通信データを，当該第2の属性と対応付けられた前記転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項６】
請求項4において，
前記通信データの最終転送先が前記第1の処理装置から前記第2の処理装置に変更されたことを契機として前記第1の処理装置から送信された，前記第2の属性を含む第2の通知を受信し，
前記第2の通知に含まれる前記第2の属性を含む通信データを受信し，受信した通信データを記憶装置に蓄積し，
前記複数の転送装置を制御する制御装置から送信された，前記蓄積した通信データの転送先を含む第3の通知を受信し，前記記憶装置が蓄積する通信データを前記第3の通知に含まれる転送先の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項７】
請求項4において，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶装置に記憶し，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先の前記他の装置に前記第1の通知を転送し，さらに，前記記憶装置における前記第1の属性に対応する前記転送先を，前記第1の通知に含まれる前記転送先に変更し，
前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項８】
請求項4において，
前記通信データの最終転送先が前記第1の処理装置から前記第2の処理装置に変更されたことを契機として前記第1の処理装置から送信された，前記第2の属性と前記通信データの転送先とを含む第2の通知を受信し，
前記第2の通知に含まれる前記第2の属性を含む通信データを受信し，受信した通信データを記憶装置に蓄積し，
前記第1の通知を受信し，前記記憶装置が蓄積した通信データの中で，前記第1の通知に含まれる前記第2の属性を含む通信データを，前記第1の通知の転送元の転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【請求項９】
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置であって，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶する記憶装置と，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先を，前記通知に含まれる前記転送先に変更し，前記第2の属性が前記第1の属性に一致しない場合，前記第2の属性と前記第2の属性を含む前記通信データの転送先とを対応付けて前記記憶装置に記憶し，前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送し，前記通知を他の前記転送装置に転送する制御部とを有する
ことを特徴とする転送装置。
【請求項１０】
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送方法であって，
前記転送装置は，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，
受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，
前記通知を他の前記転送装置に転送する
ことを特徴とする転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，転送プログラム，転送装置，転送方法に関する。
【背景技術】
【０００２】
近年，様々な場所(フィールドとも呼ぶ)に設けられた多種多様なセンサが測定したデータを収集，分析し，分析結果に基づき，様々なサービスを提供するシステムが提案されている。例えば，かかるシステムは，複数のセンサと，前記センサが測定したデータを収集，分析し，分析結果に基づき，様々なサービスを提供する情報処理を実行するサーバとを有する。かかるシステムは，さらに，複数のセンサとサーバとの間に設けられた複数の転送装置と，この複数の転送装置を制御する制御装置とを有する。
【０００３】
複数のセンサは，それぞれ，測定結果を示す測定データを含む通信パケットを転送装置に送信する。転送装置の制御装置は，通信パケットの転送経路情報を有する転送テーブル(ルーティングテーブルとも呼ぶ)を作成し，複数の転送装置に送信する。複数の転送装置は，転送テーブルを受信し，自装置内に記憶する。そして，複数の転送装置は，通信パケットを受信し，自装置の転送テーブルに基づき，受信した通信パケットを他の装置に転送する。サーバが実行するアプリケーションは，通信パケットを受信し，受信した通信パケットの測定データを収集，分析し，分析結果に基づき，様々なサービスを提供する情報処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平03-222094号公報
【特許文献２】特開2003-18199号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
かかるシステムにおいては，情報処理を実行するアプリケーション(以下，アプリと適宜記す)を，例えばサーバの保守点検のために，このアプリを実行している第1のサーバから，他のサーバである第2のサーバに移動させる場合がある。例えば，システム管理者は，第1のサーバを保守点検するために，第1のサーバを停止し，第1のサーバが実行していたアプリを，第1のサーバとは異なる第2のサーバで起動し，実行させる。ここで，第1のサーバに設定されているIP(Internet Protocol)アドレスと，第2のサーバに設定されているIPアドレスとは異なる。
【０００６】
この場合，複数のセンサが送信する通信パケットの最終転送先を第1のサーバから第2のサーバに変更する必要がある。そこで，転送装置の制御装置は，複数のセンサから第2のサーバに至る通信パケットの転送経路を再計算する。そして，転送装置の制御装置は，再計算した転送経路に基づき，複数の転送装置の転送テーブルを新たに作成し，複数の転送装置に送信する。以後，複数の転送装置は，受信した転送テーブルに基づく，通信パケットの転送処理を実行する。
【０００７】
ここで，多数のアプリを移動した場合，転送装置の制御装置においては，これら多数のアプリの移動に対応するための転送経路の再計算の処理量が増大する。その結果，転送装置の制御装置が過負荷状態になり，転送経路の再計算，転送テーブルの作成，送信処理が遅延する。そのため，複数の転送装置において，変更後の転送テーブルに基づく通信パケットの転送処理の開始時間が遅延する。
【０００８】
1つの側面では，本発明の目的は，転送装置の制御装置を使用せず転送経路を変更することにある。
【課題を解決するための手段】
【０００９】
一態様のプログラムは，第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送プログラムであって，データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，前記通知を他の前記転送装置に転送する処理をコンピュータに実行させる。
【発明の効果】
【００１０】
一態様によれば，転送装置の制御装置を使用せず転送経路を変更できる。
【図面の簡単な説明】
【００１１】
【図１】図1は，本実施の形態の転送装置を有するシステムの一例を説明する図である。
【図２】図2は，図1のシステムにおいて送受信される通信パケットの一例を模式的に示す図である。
【図３】図3は，図1の第1の転送装置GW1が記憶する転送テーブルTF1の一例を示す図である。
【図４】図4は，図1の第3の転送装置GW3が記憶する転送テーブルTF3の一例を示す図である。
【図５】図5は，図1の第5の転送装置GW5が記憶する転送テーブルTF5の一例を示す図である。
【図６】図6は，転送装置のハードウェアの構成を示すブロック図の一例である。
【図７】図7は，転送装置のソフトウェアモジュールの構成を示すブロック図の一例である。
【図８】図8は，転送装置の制御装置GWCのハードウェアの構成を示すブロック図の一例である。
【図９】図9は，各転送装置の接続関係を示すテーブルの一例である。
【図１０】図10は，最上流の転送装置に設定されたIPアドレスと，最上流の転送装置が下流側の転送装置に転送する通信パケットの峻別パラメータとを記憶するテーブルの一例である。
【図１１】図11は，最下流の転送装置に設定されたIPアドレスと，最下流の転送装置がサーバに転送する通信パケットの峻別パラメータとを記憶するテーブルの一例である。
【図１２】図12は，転送装置の制御装置のソフトウェアモジュールの構成を示すブロック図の一例である。
【図１３】図13は，サーバSVRのハードウェアの構成を示すブロック図の一例である。
【図１４】図14は，図13のアプリが生成する転送要求通知の一例を模式的に示す図である。
【図１５】図15は，図1の全体システムSYSにおける転送装置，転送装置の制御装置，アプリの処理の流れを説明するシーケンス図の一例である。
【図１６】図16は，図1の第6の転送装置GW6の処理の流れを説明するフロー図の一例である。
【図１７】図17は，図1の第6の転送装置GW6が記憶する転送テーブルTF6の一例を示す図である。
【図１８】図18は，図1の第4の転送装置GW4，第1の転送装置GW1の処理の流れを説明するフロー図の一例である。
【図１９】図19は，図1の第4の転送装置GW4が記憶する転送テーブルTF4の一例を示す図である。
【図２０】図20は，図19の転送テーブルTF4が変更された状態の一例を示す図である。
【図２１】図21は，図3の転送テーブルTF1が変更された状態の一例を示す図である。
【図２２】図22は，第6の転送装置GW6が通信パケットを受信した場合の処理の流れを説明するフロー図の一例である。
【図２３】図23は，移動完了通知を受信した転送装置の制御装置GWCが実行する処理の流れを説明するフロー図の一例である。
【図２４】図24は，図11の出口転送装置管理テーブルTOが変更された状態を示す図である。
【図２５】図25は，第6の転送装置GW6が実行する処理の流れを説明するフロー図の他の例である。
【図２６】図26は，第6の転送装置GW6が有するタイマ管理テーブルTMの一例を示す図である。
【図２７】図27は，図25のステップS105ａでタイマを起動後，所定時間内に，第6の転送装置GW6が通信パケットPを受信した場合について説明するフロー図の一例である。
【図２８】図28は，移動開始通知を受信した第5の転送装置GW5が実行する処理の流れを説明するフロー図の一例である。
【図２９】図29は，図5の転送テーブルTF5が変更された状態を示す図である。
【図３０】図30は，転送装置の制御装置GWCのソフトウェアモジュールブロック図の他の例である。
【図３１】図31は，移動完了通知を受信した転送装置の制御装置GWCが実行する処理の流れを説明するフロー図の他の例である。
【図３２】図32は，蓄積通信パケット転送通知を受信した第5の転送装置GW5が実行する処理の流れを説明するフロー図の一例である。
【図３３】図33は，第1の転送装置GW1，第3の転送装置GW3が実行する処理の流れを説明するフロー図の他の例である。
【図３４】図34は，図4の転送テーブルTF3が変更された状態の一例を示す図である。
【図３５】図35は，第5の転送装置GW5が実行する処理の流れを説明するフロー図の他の例である。
【図３６】図36は，第5の転送装置GW5が実行する処理の流れを説明する第1のフロー図の一例である。
【図３７】図37は，第5の転送装置GW5が実行する処理の流れを説明する，図36の第1のフロー図に続く第2のフロー図の一例である。
【発明を実施するための形態】
【００１２】
[第1の実施の形態]
図1は，本実施の形態の転送装置を有するシステムの一例を説明する図である。なお，以下の説明において，同一の機能を有する要素については，同一の符号を付して，前記要素の説明を適宜省略する。
【００１３】
全体システムSYSは，第1のセンサSN1〜第20のセンサSN20と，第1の転送装置GW1〜第6の転送装置GW6と，第1のサーバSVR1と，第2のサーバSVR2と，転送装置の制御装置GWCとを有する。また，第1のデータセンタDC1は，第5の転送装置GW5と，第1のサーバSVR1とを有し，第2のデータセンタDC2は，第6の転送装置GW6と，第2のサーバSVR2とを有する。第1のデータセンタDC1，第2のデータセンタDC2は，それぞれ，各種データ処理を実行する施設であり，例えば，地理的に離れた場所に設けられている。
【００１４】
第1のセンサSN1〜第20のセンサSN20は，データとこのデータに関する属性とを含む通信データを生成する生成装置の一例である。このデータは，例えば，センサが測定対象を測定した結果を示すデータ(測定データとも呼ぶ)である。この通信データの一例は，図2などで説明する通信パケットである。第1のサーバSVR1，第2のサーバSVR2は，この通信データに含まれるデータを処理する第1，第2の処理装置の一例である。
【００１５】
第1の転送装置GW1〜第6の転送装置GW6は，生成装置と，第1，第2の処理装置との間に設置されている。第1の転送装置GW1〜第6の転送装置GW6は，第1の装置から送信された，データとこのデータに関する第1の属性とを含む通信データを第2の装置に転送する複数の転送装置の一例である。第1の装置は，例えば，第1のセンサSN1〜第20のセンサSN20や，他の転送装置である。また，第2の装置は，第1のサーバSVR1，第2のサーバSVR2や，他の転送装置である。なお，転送装置は，データ中継装置，データ送受信装置，ゲートウェイとも呼ばれる。
【００１６】
図1において，センサの数，転送装置の数，サーバの数は，例示である。以下の説明において，上流，下流という用語を適宜使用する。この上流とは，矢印AR1に示したように，各センサが設けられている図面左側を意味し，下流とは，サーバが設けられている図面右側を意味する。
【００１７】
また，他の転送装置を介することなくセンサと直接接続する転送装置を，最上流の転送装置と適宜記す。なお，接続は通信とも呼ばれる。図1の例では，最上流の転送装置は，第1の転送装置GW1，第2の転送装置GW2である。他の転送装置を介することなくサーバと直接接続する転送装置を，最下流の転送装置と適宜記す。図1の例では，最下流の転送装置は，第5の転送装置GW5，第6の転送装置GW6である。また，最上流の転送装置と，最下流の転送装置との間に設置され，サーバやセンサと直接接続しない転送装置を，中流の転送装置と適宜記す。図1の例では，中流の転送装置は，第3の転送装置GW3，第4の転送装置GW4である。
【００１８】
以下の説明において，センサと転送装置との間の通信，転送装置間の通信，転送装置とサーバとの間の通信は，ネットワークを介して行われる。そして，前記通信は，例えば，TCP/IP(Transmission Control Protocol/Internet Protocol)に基づき実行される。
【００１９】
第1のセンサSN1〜第20のセンサSN20は，例えば，ビルの各階に設置されている電源タップに組み込まれた電力測定センサや，ビルの各部屋に設置されている湿度測定センサである。他にもセンサとして，自動販売機の販売実績(例えば，購入商品の名前，この商品の購入時間)を測定するセンサがある。第1のセンサSN1〜第20のセンサSN20は，測定対象を測定後，測定結果を示す測定データと，この測定データに関する属性とを含む通信パケットを接続先の転送装置に送信する。なお，通信パケットについては，図2で説明する。
【００２０】
第1のセンサSN1〜第10のセンサSN10は，第1の転送装置GW1と通信し，第11のセンサSN11〜第20のセンサSN20は，第2の転送装置GW2と通信する。また，第1のセンサSN1は，例えば，ある会社(例えばA社)に設置された電気機器の消費電力を測定する。第1のセンサSN1は，測定結果を示すデータとこのデータの属性とを含む通信パケットを第1の転送装置GW1に送信する。他にも，第10のセンサSN10は，例えば，ある会社(例えばB社)の部屋内の湿度を測定し，測定結果を示すデータとこのデータの属性とを含む通信パケットを第1の転送装置GW1に送信する。
【００２１】
第1の転送装置GW1〜第6の転送装置GW6，第1のサーバSVR1，第2のサーバSVR2，転送装置の制御装置GWCには，予め，ネットワーク上において装置を識別するための識別子が設定されている。この識別子は，例えば，IP(Internet Protocol)アドレスである。図中，転送装置，サーバにIPアドレスが設定されている状態を"IPアドレス：x,y,z,w" (x,y,z,wは整数)として模式的に示している。
【００２２】
各転送装置は，データに関する第2の属性と第2の属性を含む通信パケットの転送先とを含む通知を受信する。この通知は，第1の通知とも呼ばれる。図14で説明する転送要求通知Mは，この通知の一例である。各転送装置は，受信した第2の属性を含む通信パケットを，この通知に含まれるこの転送先の第3の装置に転送する。第3の装置は，例えば，第2のサーバSVR2や，他の転送装置である。
【００２３】
そして，各転送装置は，受信したこの通知を他の転送装置に転送する。各転送装置は，この通知を転送する他の転送装置を識別する識別子を記憶装置(図16参照)に記憶し，この識別子に基づき，この通知をこの他の転送装置に転送する。なお，この識別子は，例えばIPアドレスである。
【００２４】
各転送装置は，それぞれ転送テーブルと，コネクションテーブルとを有する。転送テーブルは，通信パケットに含まれる測定データの属性と，この通信パケットの転送先の装置を示すIPアドレスとを対応付けて記憶するテーブルである。転送装置は，この転送テーブルに基づき，受信した通信パケットを転送する。コネクションテーブルは，上流側に設けられた，通信パケットの転送処理を要求する転送装置に設定されたIPアドレスを記憶するテーブルである。コネクションテーブルは，前記した通知を転送する他の転送装置を識別する識別子を記憶する。
【００２５】
転送装置の制御装置GWCは，通信パケットの転送経路の計算を行い，この計算結果を有する転送テーブルを作成し，第1の転送装置GW1〜第6の転送装置GW6に送信する。また，転送装置の制御装置GWCは，コネクションテーブルを作成し，第1の転送装置GW1〜第6の転送装置GW6に送信する。転送装置の制御装置GWCは，符号TTで示すトポロジテーブル，符号TIで示す入口転送装置管理テーブル，符号TOで示す出口転送装置管理テーブルを有し，IPアドレス"10.10.1.1"が設定されている。
【００２６】
第1の転送装置GW1は，転送テーブルTF1と，コネクションテーブルTC1とを有し，IPアドレス"10.10.10.1"が設定されている。第1の転送装置GW1は，通信パケットの転送要求を行う転送装置に直接接続しないので，コネクションテーブルTC1の内容は空白である。転送テーブルTF1については，図3で説明する。
【００２７】
第2の転送装置GW2は，転送テーブルTF2と，コネクションテーブルTC2とを有し，IPアドレス"10.10.10.2"が設定されている。第2の転送装置GW2において，通信パケットの転送要求を行う転送装置に直接接続しないので，コネクションテーブルTC2の内容は空白である。
【００２８】
第3の転送装置GW3は，転送テーブルTF3と，コネクションテーブルTC3とを有し，IPアドレス"10.10.10.3"が設定されている。第3の転送装置GW3は，上流側に設けられた第1の転送装置GW1，第3の転送装置GW3から転送された通信パケットを受信する。従って，コネクションテーブルTC3は，第1の転送装置GW1に設定されたIPアドレス"10.10.10.1"，第2の転送装置GW2に設定されたIPアドレス"10.10.10.2"を記憶する。転送テーブルTF3については，図4で説明する。
【００２９】
第4の転送装置GW4は，転送テーブルTF4と，コネクションテーブルTC4とを有し，IPアドレス"10.10.10.4"が設定されている。第4の転送装置GW4は，上流側に設けられた第1の転送装置GW1，第2の転送装置GW2から転送された通信パケットを受信する。従って，コネクションテーブルTC4は，第1の転送装置GW1に設定されたIPアドレス"10.10.10.1"，第2の転送装置GW2に設定されたIPアドレス"10.10.10.2"を記憶する。転送テーブルTF4については，図19で説明する。
【００３０】
第5の転送装置GW5は，転送テーブルTF5と，コネクションテーブルTC5とを有し，IPアドレス"10.10.10.5"が設定されている。第5の転送装置GW5は，上流側に設けられた第3の転送装置GW3から転送された通信パケットを受信する。従って，コネクションテーブルTC5は，第3の転送装置GW3に設定されたIPアドレス"10.10.10.3"を記憶する。転送テーブルTF5については，図5で説明する。
【００３１】
第6の転送装置GW6は，転送テーブルTF6と，コネクションテーブルTC6とを有し，IPアドレス"10.10.10.6"が設定されている。第6の転送装置GW6は，上流側に設けられた第4の転送装置GW4から転送された通信パケットを受信する。従って，コネクションテーブルTC6は，第4の転送装置GW4に設定されたIPアドレス"10.10.10.4"を記憶する。転送テーブルTF6については，図17で説明する。
【００３２】
第1のサーバSVR1は，アプリAP1を実行する情報処理装置であり，IPアドレス"192.1.1.10"が設定されている。
【００３３】
アプリAP1は，受信した通信パケットに含まれる測定データに対して各種情報処理を実行し，処理結果を出力する。例えば，アプリAP1は，第1のセンサSN1が送信した複数の通信パケットを第5の転送装置GW5から受信し，受信した複数の通信パケットに含まれる測定データの時系列における変動を可視化する。可視化の一例としては，グラフ表示がある。
【００３４】
第2のサーバSVR2は，アプリAP1を実行する情報処理装置であり，IPアドレス"192.1.2.15"が設定されている。
【００３５】
なお，第1の転送装置GW1は，第1のセンサSN1〜第10のセンサSN10との間に確立される10単位のコネクションを終端し，1つのコネクションに纏めて(別のコネクションに載せ替えるとも呼ぶ)，次段の第3の転送装置GW3，第4の転送装置GW4と通信している。また，第2の転送装置GW2は，第11のセンサSN11〜第20のセンサSN20との間に確立される10単位のコネクションを終端し，1つのコネクションに纏めて，次段の第3の転送装置GW3，第4の転送装置GW4と通信している。
【００３６】
第3の転送装置GW3は，第1の転送装置GW1と第2の転送装置GW2との間に確立される2単位のコネクションを終端し，1つのコネクションに纏めて，次段の第5の転送装置GW5と通信している。第4の転送装置GW4は，第1の転送装置GW1と第2の転送装置GW2との間に確立される2単位のコネクションを終端し，1つのコネクションに纏めて，次段の第6の転送装置GW6と通信している。
【００３７】
第1のサーバSVR1のアプリAP1が，20台の第1のセンサSN1〜第2のセンサSN20と転送装置を介さずに直接通信する場合，20単位のコネクションを確立しなければならない。しかし，第1のセンサSN1〜第2のセンサSN20と，第1のサーバSVR1との間に，転送装置を多段に設けることにより，第1のサーバSVR1のアプリAP1は，1単位のコネクションのみを確立すればよい。すなわち，第1のサーバSVR1のアプリAP1は，第1のセンサSN1〜第2のセンサSN20から通信パケットを受信する場合におけるコネクションの数を減らすことができる。そのため，第1のサーバSVR1は，多数のコネクションが確立されることによる自装置内の物理的資源の消費を抑制することができる。同じく，第2のサーバSVR2についても，転送装置により，多数のコネクションが確立されることによる自装置内の物理的資源の消費を抑制することができる。
【００３８】
(通信パケット)
図2は，図1のシステムにおいて送受信される通信パケットの一例を模式的に示す図である。通信パケットPは，ヘッダH1と，ペイロードPY1とを含む。
【００３９】
ヘッダH1は，通信パケットPの送信先(転送先とも呼ぶ)の装置に設定されたIPアドレスである送信先IPアドレスH11と，通信パケットPの送信元(転送元とも呼ぶ)の装置に設定されたIPアドレスである送信元IPアドレスH12とを含む。
【００４０】
ペイロードPY1は，測定結果を示すデータ，図1の例では，センサの測定データと測定データの属性とを含む。具体的には，ペイロードPY1は，ペイロードPY1のヘッダHD1と，データDT1を含む。ヘッダHD1は，ペイロードPY1の付加情報を示す文字列である。この文字列は，図2の例では，
"GET /GW1  HTTP/1.1  Host: host.domain.co.jp
User-Agent: Mozilla/5.0
<?xml version="1.0" encoding="Shift-Jis" ?>"である。なお，この文字列の内容については，本実施の形態で説明する転送処理には関係しないので，この内容の説明は省略する。
【００４１】
データDT1は，タグ<data>とタグ </data>とで挟まれた部分で示されるデータである。通信パケットPのペイロードPY1が，第1のセンサSN1が測定したA社の建物内に設置された電気機器の消費電力を含む場合を想定する。第1のセンサSN1が測定した消費電力が，"100W"("W"は，ワット(watt))の場合，測定データは"100W"である。また，この測定データの属性は，例えば，この測定データの種類を示す"電力"，この測定データを利用する"A社"であり，図3などで示す峻別パラメータとして示される。なお，この利用者"A社"は，前記した電気機器の所有者でもある。
【００４２】
図2において，測定データをタグ<value>とタグ</value>とで挟まれた"100W"で示す。この測定データの属性の"A社"をタグ<user>とタグ</user>とで挟まれた"A社"で示す。そして，前記属性の"電力"をタグ<type>とタグ</type>とで挟まれた"電力"で示す。なお，"電力"を"power"としてもよい。また，データDT1は，測定データに加えて，測定データを生成した年月日および時間をタグ<value>とタグ</value>の間に記憶してもよい。例えば，データDT1は，"100W"に替えて，"100W(YYYY_MM_DD_H:M:S)"を記憶してもよい。これは，第1のセンサSN1が，YYYY年MM月DD日のH時M分S秒に測定データ("100W")を生成したことを示す。
【００４３】
なお，通信パケットPのヘッダH1は，他にも，通信パケットPの送信先となるアプリケーションを特定するための番号である送信先ポート番号や，通信パケットPの送信元となるアプリケーションを特定するための番号である送信元ポート番号などを含むが，その説明を省略する。
【００４４】
(通信パケットの転送経路の確立)
図1〜図5を参照し，通信パケットの転送経路の確立について説明する。図3は，図1の第1の転送装置GW1が記憶する転送テーブルTF1の一例を示す図である。図4は，図1の第3の転送装置GW3が記憶する転送テーブルTF3の一例を示す図である。図5は，図1の第5の転送装置GW5が記憶する転送テーブルTF5の一例を示す図である。
【００４５】
前記した各転送テーブルは，それぞれ，峻別パラメータ欄と，次の転送先IPアドレス欄とを有する。峻別パラメータ欄は，タイプ欄と，利用者欄とを有する。峻別パラメータは，測定データの属性の一例であり，例えば，測定データの種類を示す"タイプ"，測定データを利用する"利用者"を含む。なお，次の転送先IPアドレスは，"Nexthop"とも呼ばれる。
【００４６】
第1のサーバSVR1のアプリAP1は，例えば第1のセンサSN1が送信する通信パケットPが第1のサーバSVR1宛に転送されるように，転送装置の制御装置GWCに要求する。転送装置の制御装置GWCは，第1のサーバSVR1のアプリAP1からの要求に応答して，通信パケットPの転送経路の計算を行う。この場合，転送装置の制御装置GWCは，第1のセンサSN1，第1の転送装置GW1，第3の転送装置GW3，第5の転送装置GW5，第1のサーバSVR1に至る経路を第1のセンサSN1から第1のサーバSVR1に至るまでの最短の転送経路として計算する。以下，最短の転送経路を最短転送経路と適宜記す。
【００４７】
そして，転送装置の制御装置GWCは，転送装置が通信パケットPを前記最短転送経路に沿って転送する際に参照する転送テーブルを作成し，前記最短転送経路上の第1の転送装置GW1，第3の転送装置GW3，第5の転送装置GW5に送信する。
【００４８】
具体的には，転送装置の制御装置GWCは，図3の転送テーブルTF1の転送テーブルを作成する。転送テーブルTF1は，タイプ欄にタイプとして"電力"，利用者欄に利用者として"A社"，次の転送先IPアドレス欄に転送先の第3の転送装置GW3に設定されているIPアドレス"10.10.10.3"を記憶する。なお，タイプ欄の"湿度"，利用者欄の"B社"，次の転送先IPアドレス欄の"10.10.10.4"については，本実施の形態で説明する転送処理には関係しないので，この内容の説明は省略する。
【００４９】
転送装置の制御装置GWCは，作成した転送テーブルTF1を，第1の転送装置GW1に送信する。第1の転送装置GW1は，転送テーブルTF1を受信し，自装置内の記憶装置に記憶する。
【００５０】
転送装置の制御装置GWCは，図4の転送テーブルTF3の転送テーブルを作成する。転送テーブルTF3は，タイプ欄にタイプとして"電力"，利用者欄に利用者として"A社"，次の転送先IPアドレス欄に転送先の第5の転送装置GW5に設定されているIPアドレス"10.10.10.5"を記憶する。転送装置の制御装置GWCは，作成した転送テーブルTF3を，第3の転送装置GW3に送信する。第3の転送装置GW3は，転送テーブルTF3を受信し，自装置内の記憶装置に記憶する。
【００５１】
さらに，転送装置の制御装置GWCは，図5の転送テーブルTF5の転送テーブルを作成する。転送テーブルTF5は，タイプ欄にタイプとして"電力"，利用者欄に利用者として"A社"，次の転送先IPアドレス欄に，転送先の第1のサーバSVR1に設定されているIPアドレス"192.1.1.10"を記憶する。転送装置の制御装置GWCは，作成した転送テーブルTF5を，第5の転送装置GW5に送信する。第5の転送装置GW5は，転送テーブルTF5を受信し，自装置内の記憶装置に記憶する。
【００５２】
(通信パケットの転送)
図1〜図5を参照し，通信パケットの転送処理について説明する。第1のセンサSN1は，通信パケットPを第1の転送装置GW1に送信する。通信パケットPは，図2で説明したように，送信元および送信先を特定するヘッダ部と，測定データと測定データの属性を含む。
【００５３】
第1のセンサSN1は，通信パケットPのヘッダ部に送信元IPアドレス(任意)，送信先IPアドレス"10.10.10.1"を含めている。送信元IPアドレスH12は，例えば，第1のセンサSN1に設定されているIPアドレスである。
【００５４】
第1の転送装置GW1は，通信パケットPを受信し，受信した通信パケットPを解析し，通信パケットPのペイロードPY1からタイプ，利用者を抽出する。第1の転送装置GW1は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図3の転送テーブルTF1を検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"10.10.10.3"を取得する。この次の転送先IPアドレスは，第3の転送装置GW3に設定されたIPアドレスである。
【００５５】
第1の転送装置GW1は，受信した通信パケットPの送信元IPアドレスH12を自装置のIPアドレスとし，さらに，受信した通信パケットPの送信先IPアドレスH11を取得したIPアドレスとする。そして，第1の転送装置GW1は，このIPアドレスが置き換えられた通信パケットPを第3の転送装置GW3に転送する。転送装置が，受信した通信パケットPの送信元IPアドレスH12を自装置のIPアドレスに置き換え，受信した通信パケットPの送信先IPアドレスH11を自装置の転送テーブルから取得したIPアドレスに置き換える処理を，IPアドレス置き換えと適宜記す。
【００５６】
第3の転送装置GW3は，第1の転送装置GW1から転送された通信パケットPを受信し，受信した通信パケットPを解析し，通信パケットPのペイロードPY1からタイプ，利用者を抽出する。第3の転送装置GW3は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図4の転送テーブルTF3を検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"10.10.10.5"を取得する。この次の転送先IPアドレスは，第5の転送装置GW5に設定されたIPアドレスである。
【００５７】
第3の転送装置GW3は，前記したIPアドレス置き換えを行い，このIPアドレスが置き換えられた通信パケットPを第5の転送装置GW5に転送する。
【００５８】
第5の転送装置GW5は，第3の転送装置GW3から転送された通信パケットPを受信し，受信した通信パケットPを解析し，通信パケットPのペイロードPY1からタイプ，利用者を抽出する。第5の転送装置GW5は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図5の転送テーブルTF5を検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"192.1.1.10"を取得する。この次の転送先IPアドレスは，第1のサーバSVR1に設定されたIPアドレスである。
【００５９】
第5の転送装置GW5は，前記したIPアドレス置き換えを行い，このIPアドレスが置き換えられた通信パケットPを第1のサーバSVR1のアプリAP1に転送する。
【００６０】
第1のサーバSVR1のアプリAP1は，第5の転送装置GW5から転送された通信パケットPを受信し，受信した通信パケットPを解析し，通信パケットPのペイロードPY1から，測定データ，タイプ，利用者を抽出する。そして，アプリAP1は，抽出した測定データに対して情報処理を実行する。前記の例では，アプリAP1は，A社の消費電力の変化を時系列でグラフ表示する。
【００６１】
(アプリケーションの移動)
さて，図1の第1のデータセンタDC1の管理者は，第1のサーバSVR1に対する電源供給を停止することがある。電源供給を停止する理由としては，例えば，管理者が，第1のデータセンタDC1の第1のサーバSVR1の保守点検や，第1のサーバSVR1の配置換えや，第1のサーバSVR1を保持するサーバラックの保守点検を行うためである。
【００６２】
第1のサーバSVR1の電源供給が停止すると，アプリAP1は停止する。一方，第1のセンサSN1は，通信パケットPの送信を継続する。その結果，アプリAP1は，少なくとも停止から開始までの期間，通信パケットPを受信できず，通信パケットPに含まれる測定データに対する情報処理ができなくなる。すなわち，ユーザに提供するサービスの品質が低下する。
【００６３】
そこで，アプリAP1の停止後，例えば，第2のデータセンタDC2の管理者は，第1のサーバSVR1とは異なる第2のサーバSVR2に新たに，アプリAP1を起動し，実行させる。第2のサーバSVR2におけるアプリAP1の新たな起動と実行を図1の矢印AR2で示す。そして，第2のデータセンタDC2の管理者は，第2のサーバSVR2で起動したアプリAP1に，通信パケットPの受信，通信パケットPに含まれる測定データに対する情報処理を実行させる。以下，あるサーバが，実行中のアプリを停止し，あるサーバと異なるサーバが，このアプリを実行することをアプリの移動と適宜記す。なお，他にも，サーバ間の処理負荷を調整するために，このアプリを実行しているサーバから，他のサーバにこのアプリを移動させる場合がある。
【００６４】
ここで，第1のサーバSVR1のIPアドレス(192.1.1.10)と，第2のサーバSVR2のIPアドレス(192.1.2.15)とは，異なる。そのため，第2のサーバSVR2のアプリAP1は，通信パケットPを受信するために，通信パケットPが第2のサーバSVR2のアプリAP1に転送されるように要求する転送要求を転送装置の制御装置GWCに行う。
【００６５】
転送装置の制御装置GWCは，この転送要求に応答して，第1のセンサSN1から第2のサーバSVR2に至るまでの最短転送経路を再計算する。この場合，転送装置の制御装置GWCは，例えば，第1のセンサSN1，第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6，第2のサーバSVR2に至る経路を第1のセンサSN1から第2のサーバSVR2に至るまでの最短転送経路として再計算する。
【００６６】
そして，転送装置の制御装置GWCは，転送装置が通信パケットPを前記最短転送経路に沿って転送する際に参照する転送テーブルを作成し，前記最短転送経路上の第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6に送信する。
【００６７】
さて，第1のデータセンタDC1において，管理者が，例えば，多数のサーバを保守点検する場合や，多数のサーバを配置換えする場合や，多数のサーバを保持するサーバラックを保守点検する場合には，これら多数のサーバを停止する。これら多数のサーバは，第1のセンサSN1などが測定した測定データとこの測定データの属性を含む通信パケット(図2参照)を受信し，測定データに対して各種情報処理を実行するアプリケーションを実行するサーバである。
【００６８】
第2のデータセンタDC2の管理者は，これら多数のアプリケーションを第2のデータセンタDC2に設けられた多数のサーバで実行させて，前記した測定データに対する各種情報処理を実行させる。このとき，これら多数のアプリケーションは，転送装置の制御装置GWCに対して，第1のセンサSN1などが送信する通信パケットが自アプリケーション宛に転送されるように要求する転送要求を同時に行う。転送装置の制御装置GWCは，多数のアプリケーションから送信される多数の転送要求を受信する。
【００６９】
転送装置の制御装置GWCは，受信した各転送要求に応答して，各転送要求に対応する各最短転送経路を再計算する。そして，転送装置の制御装置GWCは，転送装置が，第1のセンサSN1などが送信する通信パケットを前記最短転送経路に沿って転送する際に参照する多数の転送テーブルを作成する。そして，転送装置の制御装置GWCは，作成した多数の転送テーブルを，最短転送経路上の転送装置に送信する。
【００７０】
この最短転送経路の再計算，転送テーブルの作成，送信の一連の過程において，転送装置の制御装置GWCの処理負荷が多大になり，転送装置の制御装置GWCの単位時間あたりの処理量が大幅に低下する。
【００７１】
そのため，転送装置の制御装置GWCは，転送テーブルの送信が遅延する。その結果，第2のデータセンタDC2において第1のセンサSN1などが送信する通信パケットの受信開始時間が大幅に遅延する。さらに，測定データに対する情報処理開始時間も大幅に遅延し，ユーザに提供するサービスの品質が低下する。そこで，かかる遅延時間が短くするため，転送装置は，転送装置の制御装置を使用せず通信パケットの転送経路を変更する。次に，本実施の形態における転送装置，転送装置の制御装置，サーバについて詳細に説明する。
【００７２】
(転送装置)
図6は，転送装置GWのハードウェアの構成を示すブロック図の一例である。図1で説明した第1の転送装置GW1〜第6の転送装置GW6は，図6，図7で説明する転送装置GWと同じ構成を有する。
【００７３】
転送装置GWは，バスBを介して相互に接続された，CPU(Central Processing Unit)11と，メモリ12と，表示制御部13と，操作制御部14と，記録媒体読み取り装置15と，記憶装置16と，通信装置17とを有する。
【００７４】
CPU11は，転送装置GWの全体を制御するコンピュータ(制御部)である。メモリ12は，各種制御情報や，CPU11が実行する各種情報処理において演算されたデータなどを記憶する。
【００７５】
表示制御部13は，表示装置D1に各種画像を表示する処理を実行する。表示装置D1は，例えば，液晶ディスプレイである。
【００７６】
操作制御部14は，操作装置K1から入力される操作指示に対して，操作指示に応じた各種処理を実行する。操作装置K1は，例えば，キーボードやマウスである。
【００７７】
記録媒体読み取り装置15は，記録媒体M1に記録されたデータを読み取る装置である。記録媒体M1は，例えば，CD-ROM(Compact Disc Read Only Memory)，DVD(Digital Versatile Disc)，USB(Universal Serial Bus)メモリなどの可搬型記録媒体である。なお，図7で説明するプログラムをこの記録媒体M1に記録してもよい。
【００７８】
記憶装置16は，各種記憶装置，例えば，不揮発性メモリや，ハードディスクドライブ(HDD:Hard Disk Drive)などの磁気記憶装置である。記憶装置16は，例えば，転送テーブルTFと，コネクションテーブルTCとを記憶する。他にも，記憶装置16は，図7で説明するプログラムを記憶する。図6の転送装置GWが，図1の第1の転送装置GW1の場合，転送テーブルTFは，転送テーブルTF1であり，コネクションテーブルTCは，コネクションテーブルTC1である。
【００７９】
通信装置17は，例えば，ネットワーク通信を行うための専用基板であるネットワークインターフェイスカード(NIC：Network Interface Card)である。通信装置17は，ネットワークNを介して，他の装置と接続する。なお，他の装置とは，例えば，転送装置の制御装置，サーバ，他の転送装置である。
【００８０】
図7は，転送装置のソフトウェアモジュールの構成を示すブロック図の一例である。転送装置GWは，全体管理部121と，テーブル管理部122と，制御装置通信部123と，転送先判定部124と，受信部125と，送信部126とを有する。なお，図7において，ハードウェア要素である記憶装置16，通信装置17については，点線で図示している。
【００８１】
全体管理部121は，転送装置GWが実行する各種処理を管理する。例えば，全体管理部121は，テーブル管理部122と，制御装置通信部123と，転送先判定部124と，受信部125と，送信部126とを管理する。他にも，全体管理部121は，管理者が，操作装置K1(図6参照)を操作して入力した自装置のIPアドレスを，操作制御部14を介して受信し，記憶装置16に記憶する。この記憶により，IPアドレスが，転送装置GWに設定される。
【００８２】
テーブル管理部122は，転送テーブルTF，コネクションテーブルTCを管理し，各テーブルの記憶処理，変更処理などを実行する。制御装置通信部123は，転送装置の制御装置GWCとの通信に関する各種処理を実行する。転送先判定部124は，転送テーブルTFに基づき，通信パケットの転送先を判定する。受信部125は，通信パケットや，後記する各種通知(通知はメッセージとも呼ばれる)を受信する。送信部126は，通信パケットや，後記する各種通知を送信する。
【００８３】
全体管理部121，テーブル管理部122，制御装置通信部123，転送先判定部124，受信部125，送信部126は，プログラム(ソフトウェアとも呼ぶ)である。これらのプログラムは，例えば，記憶装置16に記憶されている。図6のCPU11は，起動時に，これらのプログラムを記憶装置16から読み出して，メモリ12に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【００８４】
(転送装置の制御装置)
図8は，転送装置の制御装置GWCのハードウェアの構成を示すブロック図の一例である。転送装置の制御装置GWCは，バスBを介して相互に接続された，CPU21と，メモリ22と，表示制御部23と，操作制御部24と，記録媒体読み取り装置25と，記憶装置26と，通信装置27とを有する。
【００８５】
CPU21は，転送装置の制御装置GWCの全体を制御するコンピュータ(制御部)である。メモリ22は，各種制御情報や，CPU21が実行する各種情報処理において演算されたデータなどを記憶する。
【００８６】
表示制御部23は，表示装置D2に各種画像を表示する処理を実行する。表示装置D2は，例えば，液晶ディスプレイである。
【００８７】
操作制御部24は，操作装置K2から入力される操作指示に対して，操作指示に応じた各種処理を実行する。操作装置K2は，例えば，キーボードやマウスである。
【００８８】
記録媒体読み取り装置25は，記録媒体M2に記録されたデータを読み取る装置である。記録媒体M2は，例えば，CD-ROM，DVD，USBメモリなどの可搬型記録媒体である。なお，後記するプログラムをこの記録媒体M2に記録してもよい。
【００８９】
記憶装置26は，各種記憶装置，例えば，不揮発性メモリや，ハードディスクドライブなどの磁気記憶装置である。記憶装置26は，例えば，トポロジテーブルTT，入口転送装置管理テーブルTI，出口転送装置管理テーブルTOを記憶する。他にも，記憶装置26は，後記するプログラムを記憶する。
【００９０】
通信装置27は，例えば，ネットワーク通信を行うための専用基板であるネットワークインターフェイスカードである。通信装置27は，ネットワークNを介して，他の装置と接続する。なお，他の装置とは，例えば，転送装置，サーバである。
【００９１】
図9は，各転送装置の接続関係を示すテーブルの一例である。トポロジテーブルTTは，最上行と最左列とに各転送装置を識別する符号を示す欄を有する。そして，トポロジテーブルTTは，最上行における転送装置を識別する符号を示す欄と，最左列における転送装置を識別する符号を示す欄とが交わる部分(セルとも呼ぶ)に両転送装置の接続関係を示す記号を記憶する。斜線が引いてあるセルについては，接続関係を考慮しない。
【００９２】
各転送装置を識別する符号は，GW1〜GW6である。GW1〜GW6は，図1で説明した第1の転送装置〜第6の転送装置に付した符号である。また，これらGW1〜GW6は，この符号により識別される転送装置に設定されたIPアドレスをも示す。例えば，GW1の場合，GW1は，第1の転送装置に設定されたIPアドレス"10.10.10.1"を示す。
【００９３】
図1の例では，第1の転送装置GW1と，第3の転送装置GW3および第4の転送装置GW4とは，接続している。そのため，トポロジテーブルTTは，最上行における第3の転送装置GW3，第4の転送装置GW4の欄と，最左列における第1の転送装置GW1の欄とが交わる部分に接続関係を示す記号として"1"を記憶する。
【００９４】
また，図1の例では，第2の転送装置GW2と，第3の転送装置GW3および第4の転送装置GW4とは，接続しているので，トポロジテーブルTTは，最上行における第3の転送装置GW3，第4の転送装置GW4の欄と，最左列における第2の転送装置GW2の欄とが交わる部分に接続関係を示す記号として"1"を記憶する。
【００９５】
また，図1の例では，第3の転送装置GW3と，第5の転送装置GW5とは，接続しているので，トポロジテーブルTTは，最上行における第5の転送装置GW5の欄と，最左列における第3の転送装置GW3の欄とが交わる部分に接続関係を示す記号として"1"を記憶する。
【００９６】
また，図1の例では，第4の転送装置GW4と，第6の転送装置GW6とは，接続しているので，トポロジテーブルTTは，最上行における第6の転送装置GW6の欄と，最左列における第4の転送装置GW4の欄とが交わる部分に接続関係を示す記号として"1"を記憶する。
【００９７】
図10は，最上流の転送装置に設定されたIPアドレスと，最上流の転送装置が下流側の転送装置に転送する通信パケットの峻別パラメータとを記憶するテーブルの一例である。入口転送装置管理テーブルTIは，峻別パラメータ欄と，入口の転送装置に設定されたIPアドレス欄とを有する。入口の転送装置は，最上流の転送装置と同義である。入口転送装置管理テーブルTIは，第1の転送装置GW1が転送する通信パケットの峻別パラメータを記憶している。
【００９８】
図11は，最下流の転送装置に設定されたIPアドレスと，最下流の転送装置がサーバに転送する通信パケットの峻別パラメータとを記憶するテーブルの一例である。出口転送装置管理テーブルTOは，峻別パラメータ欄と，出口の転送装置に設定されたIPアドレス欄とを有する。出口の転送装置は，最下流の転送装置と同義である。出口転送装置管理テーブルTOは，第5の転送装置GW5，第6の転送装置GW6が転送する通信パケットの峻別パラメータを記憶している。
【００９９】
図12は，転送装置の制御装置GWCのソフトウェアモジュールの構成を示すブロック図の一例である。転送装置の制御装置GWCは，全体管理部221と，テーブル管理部222と，転送経路決定部223と，転送テーブル送信部224と，移動完了通知受信部225と，通信パケット要求通知受信部226とを有する。なお，図12において，ハードウェア要素である記憶装置26，通信装置27については，点線で図示している。
【０１００】
全体管理部221は，転送装置の制御装置GWCが実行する各種処理を管理する。例えば，全体管理部221は，テーブル管理部222と，転送経路決定部223と，転送テーブル送信部224と，移動完了通知受信部225と，通信パケット要求通知受信部226とを管理する。
【０１０１】
テーブル管理部222は，トポロジテーブルTT，入口転送装置管理テーブルTI，出口転送装置管理テーブルTOを管理し，各テーブルの記憶処理，変更処理などを実行する。
【０１０２】
転送経路決定部223は，トポロジテーブルTTに基づき，最短転送経路を決定(計算とも呼ぶ)する。そして，転送経路決定部223は，転送装置が通信パケットPを前記最短転送経路に沿って転送する際に参照する転送テーブルを作成する。
【０１０３】
転送テーブル送信部224は，作成した転送テーブルを，前記最短転送経路上の転送装置に送信する。移動完了通知受信部225は，移動後のアプリを実行するサーバに接続する最下流の転送装置が送信した移動完了通知を受信する。通信パケット要求通知受信部226は，移動後のアプリを実行するサーバに接続する最下流の転送装置が送信した通信パケット要求通知を受信する。
【０１０４】
全体管理部221，テーブル管理部222，転送経路決定部223，転送テーブル送信部224，移動完了通知受信部225，通信パケット要求通知受信部226は，プログラムである。これらのプログラムは，例えば，記憶装置26に記憶されている。図8のCPU21は，起動時に，これらのプログラムを記憶装置26から読み出して，メモリ22に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【０１０５】
(サーバ)
図13は，サーバSVRのハードウェアの構成を示すブロック図の一例である。図1で説明した第1のサーバSVR1，第2のサーバSVR2は，図13で説明するサーバSVRと同じ構成を有する。
【０１０６】
サーバSVRは，バスBを介して相互に接続された，CPU31と，メモリ32と，表示制御部33と，操作制御部34と，記録媒体読み取り装置35と，記憶装置36と，通信装置37とを有する。
【０１０７】
CPU31は，サーバSVRの全体を制御するコンピュータ(制御部)である。メモリ32は，各種制御情報や，CPU31が実行する各種情報処理において演算されたデータなどを記憶する。
【０１０８】
表示制御部33は，表示装置D3に各種画像を表示する処理を実行する。表示装置D3は，例えば，液晶ディスプレイである。
【０１０９】
操作制御部34は，操作装置K3から入力される操作指示に対して，操作指示に応じた各種処理を実行する。操作装置K3は，例えば，キーボードやマウスである。
【０１１０】
記録媒体読み取り装置35は，記録媒体M3に記録されたデータを読み取る装置である。記録媒体M3は，例えば，CD-ROM，DVD，USBメモリなどの可搬型記録媒体である。なお，後記するプログラムをこの記録媒体M3に記録してもよい。
【０１１１】
記憶装置36は，各種記憶装置，例えば，不揮発性メモリや，ハードディスクドライブなどの磁気記憶装置である。記憶装置36は，後記するプログラムを記憶する。
【０１１２】
通信装置37は，例えば，ネットワーク通信を行うための専用基板であるネットワークインターフェイスカードである。通信装置37は，ネットワークNを介して，他の装置と接続する。なお，他の装置とは，例えば，転送装置の制御装置，転送装置である。
【０１１３】
メモリ32のアプリAPは，図1で説明したアプリAP1と同機能を有する。また，管理者が他のサーバにアプリAPを移動した場合，アプリAPは，通信パケットの転送要求通知を生成し，アプリAPを実行しているサーバに直接接続する最下流の転送装置に送信する。通信パケットの転送要求通知については図14で説明する。
【０１１４】
アプリAPは，プログラムである。このプログラムは，例えば，記憶装置36に記憶されている。CPU31は，起動時に，このプログラムを記憶装置36から読み出して，メモリ32に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【０１１５】
図14は，アプリAPが生成する通信パケットの転送要求通知Mの一例を模式的に示す図である。転送要求通知Mは，ヘッダH2と，ペイロードPY2とを含む。ヘッダH2は，転送要求通知Mの送信先(転送先とも呼ぶ)の装置に設定されたIPアドレスである送信先IPアドレスH21と，転送要求通知Mの送信元(転送元とも呼ぶ)の装置に設定されたIPアドレスである送信元IPアドレスH22とを含む。
【０１１６】
ペイロードPY2は，転送要求である旨を示す識別子と，測定結果を示すデータの属性を含む。具体的には，ペイロードPY2は，データDT2を含む。
【０１１７】
データDT2は，タグ<msg>とタグ </msg>とで挟まれた識別子"req"と，タグ<data>とタグ </data>とで挟まれた部分で示されるデータである。タグ<data>とタグ </data>とで挟まれた部分で示されるデータは，アプリAPが転送を要求するデータであり，峻別パラメータに相当する。図14の例では，測定結果を示す測定データの属性として，測定データの属性の"A社" タグ<user>とタグ</user>とで挟まれた"A社"で示す。そして，前記属性の"電力"をタグ<type>とタグ</type>とで挟まれた"電力"で示す。
【０１１８】
なお，データDT2に，図2で説明した"<?xml version="1.0" encoding="Shift-Jis" ?>"を含めてもよい。また，ペイロードPY2に，図2で説明した，ペイロードのヘッダHD1を含めてもよい。
【０１１９】
以上に説明した，転送要求通知Mは，データに関する第2の属性と第2の属性を含む通信パケットPの転送先とを含む通知の一例である。転送要求通知Mに含まれる通信パケットPの転送先は，アプリの移動後における通信パケットPの転送先の第3の装置を識別する識別子である。この識別子は，後記するヘッダH2の送信元IPアドレスH22である。
【０１２０】
転送装置GWの送信部126(図7参照)は，この識別子に基づき，第2の属性を含む通信パケットを第3の装置に転送する。
【０１２１】
アプリAPが生成し最下流の転送装置に送信する転送要求通知Mは，通信パケットが最終的に転送される最終転送先の処理装置が，他の処理装置に変更されたことを契機として他の処理装置から送信された通知の一例である。他の処理装置は，例えば，第2のサーバSVR2である。
【０１２２】
(転送装置が実行する処理の流れ)
図15は，図1の全体システムSYSにおける転送装置，転送装置の制御装置，アプリの処理の流れを説明するシーケンス図の一例である。
【０１２３】
ステップS1：図1で説明したアプリAP1の移動後，アプリAP1は，アプリAP1を実行する第2のサーバSVR2に直接接続する最下流の転送装置に転送要求通知Mを送信する。この最下流の転送装置は，第6の転送装置GW6である。
【０１２４】
すなわち，第2のサーバSVR2で動作を開始したアプリAP1は，転送要求通知Mを作成して，第6の転送装置GW6に送信する。アプリAP1は，転送要求通知Mの送信において，転送要求通知Mの送信元IPアドレスH22を第2のサーバSVR2に設定されたIPアドレス"192.1.2.15"とし，送信先IPアドレスH21を送信先の第6の転送装置GW6に設定されたIPアドレス"10.10.10.6"とする。そして，アプリAP1は，ペイロードPY2を図14で説明したデータDT2とする。
【０１２５】
ステップS2：第6の転送装置GW6は，アプリAP1から送信された転送要求通知Mを受信し，転送要求通知Mに基づき，転送テーブルTF6を変更する。
【０１２６】
ステップS3：第6の転送装置GW6は，受信した転送要求通知Mを第4の転送装置GW4に転送する。なお，ステップS2，ステップS3の処理については，図16で詳細に説明する。
【０１２７】
ステップS4：第4の転送装置GW4は，第6の転送装置GW6から転送された転送要求通知Mを受信し，転送要求通知Mに基づき，転送テーブルTF4を変更する。
【０１２８】
ステップS5：第4の転送装置GW4は，受信した転送要求通知Mを第1の転送装置GW1に転送する。
【０１２９】
ステップS6：第1の転送装置GW1は，第4の転送装置GW4から転送された転送要求通知Mを受信し，転送要求通知Mに基づき，転送テーブルTF1を変更する。なお，ステップS4〜ステップS6の処理については，図18で詳細に説明する。
【０１３０】
ステップS2，ステップS4，ステップS6の処理により，通信パケットPの転送経路が，第1の転送経路から第2の転送経路に変更される。第1の転送経路は，第1の転送装置GW1，第3の転送装置GW3，第5の転送装置GW5に至る転送経路であり，第2の転送経路は，第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6に至る転送経路である。
【０１３１】
ステップS7：センサが通信パケットを送信する。図1の例では，第1のセンサSN1が，図2の通信パケットPを第1の転送装置GW1に送信する。
【０１３２】
ステップS8：第1の転送装置GW1は，通信パケットPを受信し，変更後の転送テーブルTF1に基づき，通信パケットPを第4の転送装置GW4に転送する。
【０１３３】
ステップS9：第4の転送装置GW4は，通信パケットPを受信し，変更後の転送テーブルTF4に基づき，通信パケットPを第6の転送装置GW6に転送する。
【０１３４】
ステップS10：第6の転送装置GW6は，通信パケットPを受信し，変更後の転送テーブルTF6に基づき，通信パケットPを第2のサーバSVR2のアプリAP1に転送する。
【０１３５】
ステップS11：第6の転送装置GW6は，通信パケットPを受信した場合，移動完了通知を転送装置の制御装置GWCに送信する。なお，ステップS11の処理については，図22で詳細に説明する。
【０１３６】
ステップS12：転送装置の制御装置GWCは，受信した移動完了通知に基づき，図11の出口転送装置管理テーブルTOを変更する。なお，ステップS12の処理については，図23で詳細に説明する。
【０１３７】
ステップS13：第6の転送装置GW6が，通信パケットPを受信しない場合には，通信パケット要求通知を転送装置の制御装置GWCに送信する。
【０１３８】
ステップS14：転送装置の制御装置GWCは，通信パケット要求通知に基づき，最短転送経路を計算して，転送テーブルを作成し，最短転送経路上の転送装置に送信する。
【０１３９】
なお，ステップS13，ステップS14の処理については，本実施の形態の説明の最後で詳細に説明する。
【０１４０】
(第6の転送装置GW6の処理の流れ)
図14，図16，図17を参照し，第6の転送装置GW6の処理の流れを説明する。図16は，図1の第6の転送装置GW6の処理の流れを説明するフロー図の一例である。換言すれば，図16は，移動後のアプリを実行するサーバに接続する最下流の転送装置の処理の流れを説明するフロー図である。図17は，図1の第6の転送装置GW6が記憶する転送テーブルTF6の一例を示す図である。
【０１４１】
ここで，第2のサーバSVR2のアプリAP1は，図15のステップS1の処理を実行して，転送要求通知Mを第6の転送装置GW6に送信している。前記送信後，図16のステップS101が実行される。
【０１４２】
ステップS101：第6の転送装置GW6の受信部125は，アプリAP1が送信した転送要求通知Mを受信し，テーブル管理部122,転送先判定部124に出力する。
【０１４３】
ステップS102：第6の転送装置GW6の転送先判定部124は，コネクションテーブルTC6を検索し，転送要求通知Mを転送する装置のIPアドレスを取得する。
【０１４４】
ステップS103：第6の転送装置GW6の転送先判定部124は，転送要求通知Mを転送する装置のIPアドレスを取得できたか判定する。転送先判定部124は，前記IPアドレスを取得できた場合(ステップS103/YES)，ステップS104に移る。図1の例では，コネクションテーブルTC6は，第4の転送装置GW4のIPアドレス"10.10.10.4"を記憶している。従って，第6の転送装置GW6の転送先判定部124は，転送要求通知Mを転送する装置のIPアドレスを取得できるので，ステップS104に移る。
【０１４５】
ステップS104：第6の転送装置GW6のテーブル管理部122は，転送要求通知Mから峻別パラメータと送信元IPアドレスとを抽出する。図14の例では，第6の転送装置GW6のテーブル管理部122は，転送要求通知MのペイロードPY2から，峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出する。さらに，第6の転送装置GW6のテーブル管理部122は，転送要求通知Mの送信元IPアドレスH22である，IPアドレス"192.1.2.15"を抽出する。
【０１４６】
ステップS105：第6の転送装置GW6のテーブル管理部122は，抽出した峻別パラメータ，送信元IPアドレスを自装置の転送テーブルTF6に記憶する。具体的には，第6の転送装置GW6のテーブル管理部122は，転送テーブルTF6に新たな行を作成し(エントリの追加とも呼ぶ)，作成した行における峻別パラメータ欄と次の転送先IPアドレス欄とに，それぞれ，抽出した峻別パラメータと送信元IPアドレスとを記憶する。
【０１４７】
図17の例では，第6の転送装置GW6のテーブル管理部122は，転送テーブルTF6のタイプ欄にタイプ"電力"を記憶し，利用者欄に利用社"A社"を記憶する。そして，第6の転送装置GW6のテーブル管理部122は，次の転送先IPアドレス欄に，IPアドレス"192.1.2.15"を記憶する。
【０１４８】
ステップS106：第6の転送装置GW6の送信部126は，ステップS102で転送先判定部124が取得したIPアドレスが設定された転送装置に，転送要求通知Mを転送する。転送要求通知Mの転送先である転送装置は，図1の例では第4の転送装置GW4である。第6の転送装置GW6の送信部126は，この転送に先立ち，転送要求通知Mの送信元IPアドレスH22を自装置のIPアドレス"10.10.10.6"とし，さらに，送信先IPアドレスH21を第4の転送装置GW4のIPアドレス"10.10.10.4"とする。
【０１４９】
なお，ステップS102において，第6の転送装置GW6の転送先判定部124が何らかの理由で転送要求通知Mを転送する装置のIPアドレスを取得できない場合(ステップS103/NO)，ステップS107に移る。例えば，第6の転送装置GW6が第2のサーバSVR2，転送装置の制御装置GWCとのみ接続している場合には，コネクションテーブルTC6にはIPアドレスが記憶されていない可能性がある。このような場合，第6の転送装置GW6の転送先判定部124は，転送要求通知Mを転送する装置のIPアドレスを取得できず，ステップS107に移る。
【０１５０】
ステップS107：第6の転送装置GW6の送信部126は，転送装置の制御装置GWCに，通信パケット要求通知を送信する。なお，ステップS107については，後述する。
【０１５１】
なお，図17においては，同一行において，タイプ欄に"湿度"，利用者欄に"B社"，次の転送先IPアドレス欄に"192.1.2.15"などが記憶されているが，本実施の形態で説明する転送処理には関係しないので，この内容の説明は省略する。
【０１５２】
第1の転送装置GW1〜第6の転送装置GW6の送信部126は，ステップS106で説明したように，転送要求通知Mに含まれる通信パケットの転送先を自装置に変更し，変更後の転送要求通知Mを他の転送装置に転送する。具体的には，第1の転送装置GW1〜第6の転送装置GW6の送信部126は，転送要求通知Mに含まれる通信パケットPの転送先を示す送信元IPアドレスH22を自装置のIPアドレスに変更する。そして，第1の転送装置GW1〜第6の転送装置GW6の送信部126は，変更後の転送要求通知Mを，自装置のコネクションテーブルTCが記憶するIPアドレスが設定された前記他の転送装置に転送する。
【０１５３】
(第4の転送装置GW4)
図14，図18，図19，図20を参照し，第4の転送装置GW4の処理の流れを説明する。図18は，図1の第4の転送装置GW4，第1の転送装置GW1の処理の流れを説明するフロー図の一例である。換言すれば，図18は，最上流の転送装置，中流の転送装置の処理の流れを説明するフロー図の一例である。図19は，図1の第4の転送装置GW4が記憶する転送テーブルTF4の一例を示す図である。図20は，図19の転送テーブルTF4が変更された状態の一例を示す図である。
【０１５４】
ここで，第6の転送装置GW6は，図16のステップS106の処理を実行して，転送要求通知Mを第4の転送装置GW4に転送している。前記送信後，図18のステップS121が実行される。
【０１５５】
ステップS121：第4の転送装置GW4の受信部125は，他の転送装置である第6の転送装置GW6から転送された転送要求通知Mを受信し，テーブル管理部122，転送先判定部124に出力する。
【０１５６】
ステップS122：第4の転送装置GW4のテーブル管理部122は，転送要求通知Mから峻別パラメータと送信元IPアドレスとを抽出する。図14の例では，第4の転送装置GW4のテーブル管理部122は，転送要求通知MのペイロードPY2から，峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出する。さらに，第4の転送装置GW4のテーブル管理部122は，転送要求通知Mの送信元IPアドレスH22である，IPアドレス"10.10.10.6"を抽出する。
【０１５７】
ステップS123：第4の転送装置GW4の転送先判定部124は，ステップS112で抽出した峻別パラメータをキーにして，転送テーブルTF4を検索し，この峻別パラメータに対応する次の転送先IPアドレスを取得する。
【０１５８】
ステップS124：第4の転送装置GW4の転送先判定部124は，次の転送先IPアドレスを取得できたか判定する。すなわち，転送先判定部124は，転送要求通知Mに含まれる峻別パラメータが，自装置の転送テーブルTF4に記憶された峻別パラメータに一致するか判定している。アドレスを取得できない場合(ステップS124/NO)，ステップS125に移る。アドレスを取得した場合(ステップS124/YES)，ステップS129に移る。
【０１５９】
図14，図19の例の場合，転送テーブルTF4は，峻別パラメータとしてタイプ"湿度"，"B社"を記憶し，この峻別パラメータに対応する次の転送先IPアドレス"10.10.10.6"を記憶している。従って，転送先判定部124は，ステップS122で抽出した峻別パラメータ(タイプ"電力"，利用者"A社")に対応する次の転送先IPアドレスは取得できない。そのため，ステップS125に移る。
【０１６０】
ステップS125：第4の転送装置GW4の転送先判定部124は，コネクションテーブルTC4を検索し，転送要求通知Mを転送する装置のIPアドレスを取得する。
【０１６１】
ステップS126：第4の転送装置GW4の転送先判定部124は，転送要求通知Mを転送する装置のIPアドレスを取得できたか判定する。転送先判定部124は，前記IPアドレスを取得できた場合(ステップS126/YES)，ステップS127に移る。
【０１６２】
図1の例では，コネクションテーブルTC4は，第1の転送装置GW1のIPアドレス"10.10.10.1"と，第2の転送装置GW2のIPアドレス"10.10.10.2"とを記憶している。従って，ステップS127に移る。
【０１６３】
ステップS127：第4の転送装置GW4のテーブル管理部122は，ステップS122で抽出した峻別パラメータ，送信元IPアドレスを対応付けて転送テーブルTF4に記憶する。ステップS127の処理は，ステップS105で説明した処理と同様である。
【０１６４】
ステップS122では，一例として，峻別パラメータとしてタイプ"電力"，利用者"A社"が抽出され，送信元IPアドレスとして第6の転送装置GW6のIPアドレス"10.10.10.6"が抽出された。
【０１６５】
第4の転送装置GW4のテーブル管理部122は，図20の例では，転送テーブルTF4aで示すように，新たな行を作成し，作成した行における峻別パラメータ欄のタイプ欄にタイプ"電力"を記憶し，利用者欄に利用者"A社"を記憶する。そして，第4の転送装置GW4のテーブル管理部122は，作成した行における次の転送先IPアドレス欄に，第6の転送装置GW6のIPアドレス"10.10.10.6"を記憶する。この記憶処理により，図19の転送テーブルTF4が，図20の転送テーブルTF4aに示したように変更される。
【０１６６】
ステップS128：第4の転送装置GW4の送信部126は，ステップS125で転送先判定部124が取得したIPアドレスが設定された転送装置に，転送要求通知Mを転送する。図1の例では，ステップS125で転送先判定部124が取得したIPアドレスは，"10.10.10.1"，"10.10.10.2"である。
【０１６７】
第4の転送装置GW4の送信部126は，この転送に先立ち，転送要求通知Mの送信元IPアドレスH22を自装置のIPアドレス"10.10.10.4"とし，さらに，送信先IPアドレスH21を前記した転送先の装置のIPアドレス"10.10.10.1"とする。そして，送信部126は，変更後の転送要求通知Mを第1の転送装置GW1に送信する。同じく，第4の転送装置GW4の送信部126は，この転送に先立ち，転送要求通知Mの送信元IPアドレスH22を自装置のIPアドレス"10.10.10.4"とし，さらに，送信先IPアドレスH21を前記した転送先の装置のIPアドレス"10.10.10.2"とする。そして，転送先判定部124は，変更後の転送要求通知Mを第2の転送装置GW2に送信する。
【０１６８】
ステップS124において，第4の転送装置GW4の転送先判定部124が，次の転送先IPアドレスを取得した場合(ステップS124/YES)，ステップS129に移る。
【０１６９】
ステップS129：第4の転送装置GW4のテーブル管理部122は，転送テーブルTF4における，ステップS123で転送先判定部124が取得した次の転送先IPアドレスを，転送要求通知Mの送信元IPアドレスH22に変更する。
【０１７０】
なお，ステップS126において，IPアドレスを取得できない場合(ステップS126/NO)，すなわち，転送要求通知Mを転送する先の装置がない場合には，全体管理部121は，受信した転送要求通知Mを破棄する(ステップS130)。
【０１７１】
(第1の転送装置GW1)
図3，図14，図18，図21に基づき，第1の転送装置GW1の処理の流れを説明する。図21は，図3の転送テーブルTF1が変更された状態の一例を示す図である。
【０１７２】
ここで，第4の転送装置GW4は，図18のステップS128の処理を実行して，転送要求通知Mを第1の転送装置GW1に転送している。
【０１７３】
第1の転送装置GW1の受信部125は，他の転送装置である第4の転送装置GW4から転送された転送要求通知Mを受信し，テーブル管理部122，転送先判定部124に出力する(ステップS121)。
【０１７４】
第1の転送装置GW1のテーブル管理部122は，転送要求通知Mから峻別パラメータと送信元IPアドレスとを抽出する(ステップS122)。図14の例では，第1の転送装置GW1のテーブル管理部122は，転送要求通知MのペイロードPY2から，峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出する。さらに，第1の転送装置GW1のテーブル管理部122は，転送要求通知Mの送信元IPアドレスH22である，IPアドレス"10.10.10.4"を抽出する。
【０１７５】
第1の転送装置GW1の転送先判定部124は，ステップS112で抽出した峻別パラメータをキーにして，転送テーブルTF1を検索し，この峻別パラメータに対応する次の転送先IPアドレスを取得する(ステップS123)。
【０１７６】
図3の例の場合，転送テーブルTF1は，峻別パラメータとしてタイプ"電力"，"A社"を記憶し，この峻別パラメータに対応する次の転送先IPアドレス"10.10.10.3"を記憶している。
【０１７７】
従って，転送先判定部124は，ステップS122で抽出した峻別パラメータ(タイプ"電力"，利用者"A社")に対応する次の転送先IPアドレス"10.10.10.3"を取得できる(ステップS124/YES)。
【０１７８】
第1の転送装置GW1のテーブル管理部122は，転送テーブルTF1における，ステップS123で転送先判定部124が取得した次の転送先IPアドレスを，転送要求通知Mの送信元IPアドレスH22に変更する(ステップS129)。
【０１７９】
図3，図21の例では，第1の転送装置GW1のテーブル管理部122は，図3の転送テーブルTF1における，峻別パラメータであるタイプ"電力"，利用者"A社"に対応する次の転送先IPアドレス"10.10.10.3"を，転送要求通知Mの送信元IPアドレス"10.10.10.4"に変更する。この変更については，図21の点線丸を参照。以上で，第1の転送装置GW1の処理が終了する。
【０１８０】
(第2の転送装置GW2)
なお，第2の転送装置GW2の処理について説明する。第2の転送装置GW2の転送テーブルTF2は，タイプ欄に"湿度"，利用者欄に"C社"，次の転送先IPアドレス欄に"10.10.10.4を記憶しているとする。また，第2の転送装置GW2は，最上流の転送装置であるので，コネクションテーブルTC2には，IPアドレスを記憶していない。そのため，最上流の転送装置である第2の転送装置GW2は，図18の処理を実行すると，ステップS124でNOと判定し，さらに，ステップS126でNOと判定し，受信した転送要求通知Mを破棄する(ステップS130)。
【０１８１】
(経路変更後の転送処理)
以上の説明により，転送装置は，他の転送装置から転送された転送要求通知Mに基づき，自装置の転送テーブルを変更している。換言すれば，転送装置間で転送要求通知を送受信することにより転送装置間で連携して自装置の転送テーブルを変更し，転送経路を変更している。そのため，転送装置の制御装置GWCの制御を受けることなく，転送装置は，自装置の転送テーブルを変更することができる。
【０１８２】
さて，前記した転送装置間の連携により，通信パケットの転送経路が変更された。その結果，第1のセンサSN1が第1の転送装置GW1に送信した通信パケットP(図2参照)は，第1の転送装置GW1，第4の転送装置GW4を経て第6の転送装置GW6に転送される。以下，転送経路変更による通信パケットPの転送処理について説明する。以下の説明において，第1の転送装置GW1が第4の転送装置GW4に通信パケットPを転送する処理は，図15のステップS8に相当し，第4の転送装置GW4が第6の転送装置GW6に通信パケットPを転送する処理は，ステップS9の処理に相当する。
【０１８３】
第1のセンサSN1は，図1で説明したように，通信パケットPを第1の転送装置GW1に送信する。第1の転送装置GW1の受信部125は，通信パケットPを受信する。第1の転送装置GW1の転送先判定部124は，通信パケットPのペイロードPY1から峻別パラメータであるタイプ，利用者を抽出する。第1の転送装置GW1の転送先判定部124は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図21の転送テーブルTF1aを検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"10.10.10.4"を取得する。この次の転送先IPアドレスは，第4の転送装置GW4に設定されたIPアドレスである。
【０１８４】
第1の転送装置GW1の送信部126は，受信した通信パケットPの送信元IPアドレスH12を自装置のIPアドレス(10.10.10.1)とし，さらに，受信した通信パケットPの送信先IPアドレスH11を取得したIPアドレス(10.10.10.4)とする。そして，第1の転送装置GW1の送信部126は，このIPアドレスが置き換えられた通信パケットPを第4の転送装置GW4に転送する。
【０１８５】
第4の転送装置GW4の受信部125は，通信パケットPを受信する。第4の転送装置GW4の転送先判定部124は，通信パケットPのペイロードPY1から峻別パラメータであるタイプ，利用者を抽出する。第4の転送装置GW4の転送先判定部124は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図20の転送テーブルTF4aを検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"10.10.10.6"を取得する。この次の転送先IPアドレスは，第6の転送装置GW6に設定されたIPアドレスである。
【０１８６】
第4の転送装置GW4の送信部126は，受信した通信パケットPの送信元IPアドレスH12を自装置のIPアドレス(10.10.10.4)とし，さらに，受信した通信パケットPの送信先IPアドレスH11を取得したIPアドレス(10.10.10.6)とする。そして，第4の転送装置GW4の送信部126は，このIPアドレスが置き換えられた通信パケットPを第6の転送装置GW6に転送する。
【０１８７】
(第6の転送装置GW6)
図2，図14，図17，図22を参照し，第6の転送装置GW6が通信パケットを受信した場合の処理を説明する。図22は，第6の転送装置GW6が通信パケットを受信した場合の処理の流れを説明するフロー図の一例である。図22の処理は，図15のステップS10，ステップS11の処理に相当する。
【０１８８】
ステップS141：第6の転送装置GW6の受信部125は，上流の転送装置から通信パケットを受信する。具体的には，第6の転送装置GW6の受信部125は，第4の転送装置GW4から転送された通信パケットPを受信する。
【０１８９】
ステップS142：第6の転送装置GW6の送信部126は，受信した通信パケットPを移動したアプリAP1に転送する。具体的には，第6の転送装置GW6の転送先判定部124は，通信パケットPのペイロードPY1から峻別パラメータであるタイプ，利用者を抽出する。第6の転送装置GW6の転送先判定部124は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図17の転送テーブルTF6を検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"192.1.2.15"を取得する。この次の転送先IPアドレスは，第2のサーバSVR2に設定されたIPアドレスである。
【０１９０】
第6の転送装置GW6の送信部126は，通信パケットPの送信元IPアドレスH12を自装置のIPアドレス(10.10.10.6)とし，さらに，通信パケットPの送信先IPアドレスH11を取得したIPアドレス(192.1.2.15)とする。そして，第6の転送装置GW6の送信部126は，このIPアドレスが置き換えられた通信パケットPを第2のサーバSVR2に転送する。
【０１９１】
ステップS143：第6の転送装置GW6の制御装置通信部123は，転送装置の制御装置GWCに移動完了通知を送信する。移動完了通知は，例えば，図14で説明した転送要求通知Mと類似した構成を有する。第6の転送装置GW6の全体管理部121は，送信元IPアドレスが第6の転送装置GW6に設定されたIPアドレス"10.10.10.6"であり，送信先IPアドレスが転送装置の制御装置GWCに設定されたIPアドレス"10.10.1.1"とする移動完了通知を作成する。そして，全体管理部121は，移動開始通知のペイロードを，
<msg>finish</msg>
<data>
<user>A社</user>
<type>電力</type>
</data>
とする。
【０１９２】
この移動開始通知のペイロードは，図14のデータDT2において，タグ<msg>とタグ </msg>とで挟まれた識別子"req"が，移動完了を示す識別子"finish"に置き換わったものである。制御装置通信部123は，移動完了通知を転送装置の制御装置GWCに送信する。
【０１９３】
(転送装置の制御装置GWC)
図11，図12，図23，図24を参照して，移動完了通知を受信した転送装置の制御装置GWC(図12参照)が実行する処理の流れを説明する。
【０１９４】
図23は，移動完了通知を受信した転送装置の制御装置GWCが実行する処理の流れを説明するフロー図の一例である。図23の処理は，図15のステップS12の処理に相当する。図24は，図11の出口転送装置管理テーブルTOが変更された状態を示す図である。
【０１９５】
ステップS151：転送装置の制御装置GWCの移動完了通知受信部225は，第6の転送装置GW6から送信された移動完了通知を受信する。
【０１９６】
ステップS152：テーブル管理部222は，移動完了通知から峻別パラメータと，送信元IPアドレスとを抽出する。図22の例では，テーブル管理部222は，峻別パラメータとしてタイプ"電力"，利用者"A社"を抽出し，送信元IPアドレスとして"10.10.10.6"を抽出する。
【０１９７】
ステップS153：テーブル管理部222は，図11の出口転送装置管理テーブルTOにおける出口の転送装置に設定されたIPアドレスを，抽出した送信元IPアドレスに変更する。図11，図24の例では，テーブル管理部222は，峻別パラメータであるタイプ"電力"，利用者"A社"に対応するIPアドレス"10.10.10.5"(図11参照)を，送信元IPアドレス"10.10.10.6"に変更する。この変更については，図24の点線丸を参照。
【０１９８】
以上の処理により，転送装置の制御装置GWCは，転送装置間の連携により変更された通信パケットPの転送経路を管理する。
【０１９９】
図9，図10，図14，図16を参照して，通信パケット要求通知を受信した転送装置の制御装置GWCが実行する処理について説明する。図16のステップS103，ステップS107で説明したように，例えば，第6の転送装置GW6が第2のサーバSVR2，転送装置の制御装置GWCのみ接続している場合には，第6の転送装置GW6の転送先判定部124は，転送要求通知Mを転送する装置のIPアドレスを取得できない。そこで，図16のステップS107に移る。そして，ステップS107において，第6の転送装置GW6の送信部126は，転送装置の制御装置GWCに，通信パケット要求通知(データ送信要求通知とも呼ぶ)を送信する。通信パケット要求通知の送信は，図15のステップS13に相当する。
【０２００】
通信パケット要求通知は，例えば，図14で説明した転送要求通知Mと類似した構成を有する。全体管理部121は，送信元IPアドレスが第6の転送装置GW6に設定されたIPアドレス"10.10.10.6"であり，送信先IPアドレスが転送装置の制御装置GWCに設定されたIPアドレス"10.10.1.1"とする通信パケット要求通知を作成する。
【０２０１】
そして，全体管理部121は，通信パケット要求通知のペイロードを，転送要求通知Mのペイロードである図14のデータDT2とする。このとき，全体管理部121は，データDT2のタグ<msg>とタグ</msg>とで挟まれた識別子"req"を，通信パケットの要求を示す識別子"req_p"に置き換える。制御装置通信部123は，通信パケット要求通知を転送装置の制御装置GWCに送信する。
【０２０２】
転送装置の制御装置GWCの通信パケット要求通知受信部226は，通信パケット要求通知を受信する。転送経路決定部223は，通信パケット要求通知受信部226が通信パケット要求通知を受信すると，通信パケット要求通知に含まれる峻別パラメータに関する通信パケットの転送経路の計算を行う。転送経路の計算について説明する。
【０２０３】
まず，転送経路決定部223は，通信パケット要求通知から峻別パラメータと送信元IPアドレスとを抽出する。そして，転送経路決定部223は，通信パケットPを転送する最上流の転送装置を特定するために，抽出した峻別パラメータに対応するIPアドレスを図10の入口転送装置管理テーブルTIから抽出する。転送経路決定部223は，峻別パラメータとしてタイプ"電力"，利用者"A社"を抽出しているので，図10の入口転送装置管理テーブルTIから第1の転送装置GW1に設定されたIPアドレス"10.10.10.1"を抽出する。従って，転送経路決定部223は，通信パケットPを転送する最上流の転送装置を第1の転送装置GW1と特定する。
【０２０４】
次いで，転送経路決定部223は，通信パケットPを転送する最下流の転送装置を前記抽出した送信元IPアドレスが設定された転送装置とする。前記の例では，転送経路決定部223は，送信元IPアドレスとして第6の転送装置GW6に設定されたIPアドレス"10.10.10.6"を抽出している。従って，転送経路決定部223は，通信パケットPを転送する最下流の転送装置を第6の転送装置GW6とする。
【０２０５】
次いで，テーブル管理部222は，図11の出口転送装置管理テーブルTOにおける出口の転送装置に設定されたIPアドレスを，抽出した送信元IPアドレスに変更する(ステップS153参照)。
【０２０６】
図11，図24の例では，テーブル管理部222は，峻別パラメータであるタイプ"電力"，利用者"A社"に対応するIPアドレス"10.10.10.5"(図11参照)を，送信元IPアドレス"10.10.10.6"に変更する。
【０２０７】
最後に，転送経路決定部223は，第1の転送装置GW1を始点，第6の転送装置GW6を終点として，図9のトポロジテーブルTTの符号"1"が記憶されているセルに基づき，第1の転送装置GW1から第6の転送装置GW6に至る最短転送経路を計算(決定とも呼ぶ)する。
【０２０８】
図9の例の場合，最上行における第6の転送装置GW6の欄と，最左列における第4の転送装置GW4の欄とが交わるセルに"1"が記憶され，最上行における第4の転送装置GW4の欄と，最左列における第1の転送装置GW1の欄とが交わるセルに"1"が記憶されている。従って，転送経路決定部223は，第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6を最短転送経路と決定する。
【０２０９】
転送経路決定部223は，決定した最短転送経路に関する情報を含む転送テーブルを作成し，作成した転送テーブルを第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6に送信する。前記の例では，転送経路決定部223は，図21の転送テーブルTF1aを作成し第1の転送装置GW1に送信し，図20の転送テーブルTF4aを作成し第4の転送装置GW4に送信し，図17の転送テーブルTF6を作成し第6の転送装置GW6に送信する。
【０２１０】
(第1の実施の形態のまとめ)
図3，図7，図14，図16，図18を参照して，第1の実施の形態における転送装置の処理についてまとめる。
【０２１１】
転送装置GWのテーブル管理部122は，測定データに関する第1の属性と第1の属性を含む通信パケットの転送先とを対応付けて記憶装置16に記憶する。転送装置GWのテーブル管理部122は，前記した記憶において，第1の属性と第1の属性を含む通信パケットの転送先とを，図3などで説明した転送テーブルとして記憶する。なお，転送テーブルにおいては，例えば，この属性は峻別パラメータ欄に記憶され，この属性を含む通信パケットの転送先は次の転送先IPアドレス欄に記憶される 
テーブル管理部122は，転送要求通知Mに含まれる第2の属性が記憶装置16に記憶された第1の属性に一致する場合(図18のステップS124参照)，記憶装置16における第1の属性に対応する転送先を，転送要求通知Mに含まれる転送先に変更する(図18のステップS129参照)。転送要求通知Mに含まれる転送先は，例えば，送信元IPアドレスH22である。
【０２１２】
テーブル管理部122は，転送要求通知Mに含まれる第2の属性が記憶装置16に記憶された第1の属性に一致しない場合，第2の属性と第2の属性を含む通信パケットの転送先とを対応付けて記憶装置16に記憶する(図18のステップS127参照)。
【０２１３】
そして，送信部126は，第2の属性を含む通信パケットを受信すると，受信した通信パケットを第2の属性に対応付けて記憶装置16に記憶した通信パケットの転送先の第3の装置に転送する。この転送については，前記した経路変更後の転送処理を参照。
【０２１４】
以上説明した，本実施の形態によれば，転送装置の制御装置GWCの制御を受けることなく，転送装置間で転送要求通知を送受信することにより転送装置間で連携して自装置の転送テーブルを変更している。その結果，転送装置の制御装置の処理負荷が増大することによる，最短転送経路上に設置された転送装置における変更後の転送テーブルに基づく通信パケットの転送処理の開始時間の遅延を抑制することができる。また，前記連携を行うために送受信される転送要求通知のペイロードのデータは，ヘッダ部と峻別パラメータとを有するだけである。そのため，通信データ量の増加を抑制できるので，ネットワーク帯域の圧迫を抑制できる。
【０２１５】
[第2の実施の形態]
第1の実施の形態においては，図1で説明したように，第4の転送装置GW4のコネクションテーブルTC4は，第1の転送装置GW1，第2の転送装置GW2のIPアドレスを記憶していた。しかし，例えば，第4の転送装置GW4の管理者が，コネクションテーブルTC4が記憶していた第1の転送装置GW1のIPアドレスを誤って消去した場合に，コネクションテーブルTC4は，第2の転送装置GW2のIPアドレスしか記憶しないことになる。
【０２１６】
このように，コネクションテーブルTC4が，第2の転送装置GW2のIPアドレスしか記憶しない場合，第4の転送装置GW4は，第6の転送装置GW6が送信した転送要求通知Mを第2の転送装置GW2にのみ送信する(図18のステップ128参照)。換言すれば，第4の転送装置GW4は，転送要求通知Mを第1の転送装置GW1に送信することはない。そのため，第1の転送装置GW1は，転送要求通知Mを参照して，図21で説明した転送テーブルTF1の変更を実行することができない。
【０２１７】
その結果，通信パケットPは，第1の転送装置GW1，第3の転送装置GW3，第5の転送装置GW5を経由して，第1のサーバSVR1に転送され続ける。しかし，第1のサーバSVR1は，動作していないので，通信パケットPは破棄されてしまう。このような場合，第1の実施の形態で説明したように，転送装置の制御装置GWCは，通信パケットPが第2のサーバSVR2に転送されるように，第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6が有する転送テーブルを変更する必要がある。
【０２１８】
本実施の形態では，転送装置の制御装置GWCが，通信パケットPの転送経路の計算を行うためのトリガを発生する転送装置について説明する。このトリガを発生する転送装置は，移動先のアプリAP1を実行する第2のサーバSVR2に直接接続する最下流の転送装置GW6である。
【０２１９】
第6の転送装置GW6の制御装置通信部123は，転送要求通知Mの受信時を基準にした所定の時間内に，転送要求通知Mに含まれる第2の属性を含む通信パケットを受信しない場合，以下の処理を実行する。
【０２２０】
すなわち，制御装置通信部123は，第2の属性を含む通信パケットの転送経路に対応する，第2の属性と通信パケットの転送先とが対応付けられた対応情報を，この転送経路に設置された転送装置に送信する要求を転送装置の制御装置GWCに行う。制御装置通信部123は，第1の実施の形態で説明した，通信パケット要求通知を転送装置の制御装置GWCに送信することにより，この要求を行う。この対応情報は，例えば，第1の実施の形態で説明した，通信パケット要求通知の受信に応答して転送装置の制御装置GWCが作成する，最短転送経路に関する情報を含む転送テーブルである。
【０２２１】
そして，最短転送経路上に設置された転送装置は，この対応情報(例えば，転送テーブル)を受信し，対応情報に含まれる第2の属性を含む通信パケットを，この第2の属性と対応付けられた転送先の第3の装置に転送する。
【０２２２】
図25，図26を参照して，図1の第6の転送装置GW6で実行する処理について説明する。図25は，第6の転送装置GW6が実行する処理の流れを説明するフロー図の他の例である。図26は，第6の転送装置GW6が有するタイマ管理テーブルTMの一例を示す図である。図26のタイマ管理テーブルTMは，タイマの開始時間欄と，峻別パラメータ欄と，次の転送先IPアドレス欄とを有する。
【０２２３】
図25のフロー図は，図16のステップS105とステップS106との間に，ステップS105ａを有し，さらに，ステップS107の前段にステップS108を有する。従って，ステップS101〜ステップS107の説明については省略する。ステップS105の処理が終了すると，ステップS105ａに移る。
【０２２４】
なお，ステップS104の処理において，第6の転送装置GW6のテーブル管理部122は，転送要求通知MのペイロードPY2から，峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出している。さらに，第6の転送装置GW6のテーブル管理部122は，転送要求通知Mから送信元IPアドレスH22として，IPアドレス"192.1.2.15"を抽出している。
【０２２５】
ステップS105ａ：第6の転送装置GW6の全体管理部121は，タイマを起動して，計時を開始する。ここで，第6の転送装置GW6の全体管理部121は，例えば転送要求通知Mの受信時を基準にして，タイマの起動を実行している。
【０２２６】
そして，第6の転送装置GW6の全体管理部121は，起動したタイマの起動時間(例えば，"13時12分45秒")と，抽出された峻別パラメータと送信元IPアドレスとを，自装置の記憶装置16に記憶する。図26の例では，全体管理部121は，タイマ管理テーブルMMにおいて，開始時間欄にタイマの起動時間"13時12分45秒"を記憶し，峻別パラメータ欄にタイプ"電力"，利用者"A社"を記憶し，次の転送先IPアドレス欄に"192.1.2.15"を記憶する。なお，記憶装置16が，図26のタイマ管理テーブルTMを記憶する(図示しない)。次いで，ステップS106に移る。
【０２２７】
さて，第6の転送装置GW6は，タイマによる計時開始から所定の時間(例えば，10秒)内に通信パケットPを受信しない場合(ステップS108)，制御装置通信部123は，転送装置の制御装置GWCに，通信パケット要求通知を送信する(ステップS107)。換言すれば，転送要求通知Mの受信時を基準にした所定の時間内に通信パケットPを受信しない場合，制御装置通信部123は，転送装置の制御装置GWCに，通信パケット要求通知を送信する。そして，第6の転送装置GW6の全体管理部121は，起動したタイマを停止する。そして，第6の転送装置GW6の全体管理部121は，図26のタイマ管理テーブルTMからエントリの削除を行う。エントリの削除とは，全体管理部121が，起動したタイマの計時開始を削除し，さらに，このタイマに対応する峻別パラメータと，次の転送先IPアドレスとを削除する処理である。図26の例では，全体管理部121は，"13時12分45秒"，"電力"，"A社"，"192.1.2.15"を削除する。
【０２２８】
第6の転送装置GW6から通信パケット要求通知を受信した転送装置の制御装置GWCは，第1の実施の形態で説明したように，転送装置が通信パケットPを最短転送経路に沿って順次転送する際に参照する転送テーブルを作成する。そして，転送装置の制御装置GWCは，作成した転送テーブルを，前記最短転送経路上の第1の転送装置GW1，第4の転送装置GW4，第6の転送装置GW6に送信する。
【０２２９】
以上説明したように，何らかの理由で，転送装置間で連携して自装置の転送テーブルを変更できない場合でも，転送装置の制御装置により，転送テーブルを変更することができる。その結果，通信パケットが，移動したアプリに転送される。
【０２３０】
図27は，図25のステップS105ａでタイマを起動後，所定時間内に，第6の転送装置GW6が通信パケットPを受信した場合について説明するフロー図の一例である。図27のフロー図は，図22のステップS141とステップS142との間に，ステップS141aと，ステップS141bとを有する。従って，ステップS141〜ステップS143の詳細な説明については省略する。
【０２３１】
第6の転送装置GW6の受信部125は，第4の転送装置GW4から転送された通信パケットPを受信する(ステップS141)。
【０２３２】
ステップS141a：第6の転送装置GW6の全体管理部121は，受信した通信パケットPは，第2のサーバSVR2のアプリAP1から受信した転送要求通知Mに対応する通信パケットか判定する。受信した通信パケットPが，第2のサーバSVR2のアプリAP1から受信した転送要求通知Mに対応する通信パケットの場合(ステップS141a/YES)，ステップS141bに移る。
【０２３３】
具体的には，通信パケットPの峻別パラメータに一致する峻別パラメータが，図26のタイマ管理テーブルTMに記憶されているか判定する。図14，図26の例では，通信パケットPの峻別パラメータは，タイプ"電力"，利用者"A社"である。そして，この峻別パラメータに一致する峻別パラメータが，図26のタイマ管理テーブルTMに記憶されているので(ステップS141a/YES)，ステップS141bに移る。
【０２３４】
ステップS141b：第6の転送装置GW6の全体管理部121は，起動したタイマを停止する。そして，第6の転送装置GW6の全体管理部121は，前記したエントリの削除処理を実行する。
【０２３５】
なお，通信パケットPの峻別パラメータに一致する峻別パラメータが，図26のタイマ管理テーブルTMに記憶されていない場合(ステップS141a/NO)，ステップS142に移る。
【０２３６】
[第3の実施の形態]
さて，第1，第2の実施の形態においては，第1の時間から第2の時間までにタイムラグが発生する。ここで，第1の時間とは，図1の例では，第1のサーバSVR1のアプリAP1が起動を停止した時間である。そして，第2の時間とは，第1のセンサSN1に接続する第1の転送装置GW1が，図21で説明したように，転送テーブルTF1の変更を終了した時間である。
【０２３７】
このタイムラグの間にも，第1のセンサSN1は，通信パケットPを第1の転送装置GW1に送信する。この通信パケットは，第3の転送装置GW3，第5の転送装置GW5を経由して，第1のサーバSVR1に転送され続ける。しかし，第1のサーバSVR1は，動作していないので，この通信パケットは破棄されてしまう。
【０２３８】
このように第2のサーバSVR2のアプリAP1まで通信パケットが転送されず，この通信パケットが破棄されると，第2のサーバSVR2のアプリAP1が実行するデータ処理の品質が低下する。例えば，第2のサーバSVR2が，通信パケットの測定データの変化を時系列で表示出力している場合には，この破棄されている通信パケットの測定データを時系列で表示出力することができない。
【０２３９】
そこで，本実施の形態では，破棄される通信パケットの数をできるだけ減少させる転送装置，転送装置の制御装置について説明する。
【０２４０】
(アプリケーションの移動開始通知)
図1で説明したように，第1のサーバSVR1のアプリAP1が第2のサーバSVR2に移動する場合，第1のサーバSVR1のアプリAP1の動作が停止する。第1のサーバSVR1のアプリAP1は，その動作を停止する前に，移動開始通知を第5の転送装置GW5に送信する。移動開始通知は，通信パケットPの最終転送先が第1のサーバSVR1から第2のサーバSVR2に変更されたことを契機として第1のサーバSVR1から送信された，第2の属性を含む第2の通知の一例である。
【０２４１】
移動開始通知は，アプリAP1が処理するデータを識別する峻別パラメータを含む。移動開始通知は，例えば，図14で説明した転送要求通知Mと類似した構成を有する。
【０２４２】
アプリAP1は，送信元IPアドレスが第1のサーバSVR1に設定されたIPアドレス"192.1.1.10"であり，送信先IPアドレスが第5の転送装置GW5に設定されたIPアドレス"10.10.10.5"とする移動開始通知を作成する。そして，アプリAP1は，移動開始通知のペイロードを，
<msg>start</msg>
<data>
<user>A社</user>
<type>電力</type>
</data>
とする。
【０２４３】
この移動開始通知のペイロードは，図14のデータDT2において，タグ<msg>とタグ </msg>とで挟まれた識別子"req"が，移動開始を示す識別子"start"に置き換わったものである。
【０２４４】
(移動開始通知を受信した第5の転送装置GW5)
図5，図28，図29を参照して，移動開始通知を受信した第5の転送装置GW5が実行する処理の流れを説明する。
【０２４５】
図28は，移動開始通知を受信した第5の転送装置GW5が実行する処理の流れを説明するフロー図の一例である。図29は，図5の転送テーブルTF5が変更された状態を示す図である。
【０２４６】
ステップS161：第5の転送装置GW5の受信部125は，第1のサーバSVR1が実行するアプリAP1から移動開始通知を受信する。なお，第1のサーバSVR1が実行するアプリAP1は，移動開始通知を第5の転送装置GW5に送信後，その実行を停止する。
【０２４７】
ステップS162：第5の転送装置GW5のテーブル管理部122は，受信した移動開始通知の峻別パラメータを含む通信パケットを蓄積するための準備処理を実行する。具体的には，第5の転送装置GW5のテーブル管理部122は，図5の転送テーブルTF5において，受信した移動開始通知の峻別パラメータに対応する次の転送先IPアドレスを，通信パケットの蓄積処理開始を意味する文字列，例えば"localhost"に変更する。移動開始通知の峻別パラメータは，前記の例では，タイプ"電力"，利用者"A社"である。従って，第5の転送装置GW5のテーブル管理部122は，図5の例では，IPアドレス"192.1.1.10"を，図29に示すように"localhost"に変更する。
【０２４８】
ステップS163：第6の転送装置GW6の全体管理部121は，受信部125が受信した通信パケットを，記憶装置16に蓄積(記憶とも呼ぶ)する。
【０２４９】
具体的には，全体管理部121は，以下の要件を満たす場合には，受信部125が受信した通信パケットを記憶装置16に蓄積する。この要件とは，受信部125が受信した通信パケットの峻別パラメータと，図29の転送テーブルTF5aの峻別パラメータ欄が記憶する峻別パラメータとが一致し，さらに，一致する峻別パラメータに対応する次の転送先IPアドレスが"localhost"の場合である。
【０２５０】
前記の例では，通信パケットPが，第1の転送装置GW1，第3の転送装置GW3を経由して第5の転送装置GW5に転送され，第5の転送装置GW5の受信部125が，通信パケットPを受信する。そして，通信パケットPの峻別パラメータと，図29の転送テーブルTF5aの峻別パラメータ欄が記憶する峻別パラメータとが一致し，さらに，一致する峻別パラメータに対応する次の転送先IPアドレスが"localhost"である。従って，全体管理部121は，受信部125が受信した通信パケットPを記憶装置16に蓄積する。
【０２５１】
(転送装置の制御装置GWC)
図28で説明した処理と共に，第1の実施の形態で説明した転送経路の変更処理(図15のステップS1〜ステップS6参照)が終了する。すると，第1のセンサSN1が送信した通信パケットPは，第1の転送装置GW1，第4の転送装置GW4を経由して，第6の転送装置GW6に転送される。第6の転送装置GW6の受信部125は，第4の転送装置GW4から転送された通信パケットPを受信する。すると，第6の転送装置GW6の制御装置通信部123は，転送装置の制御装置GWCに移動完了通知を送信する(図22のステップS143)。
【０２５２】
図11，図14，図24，図30，図31を参照して，本実施の形態において，移動完了通知を受信した転送装置の制御装置GWCが実行する処理を説明する。
【０２５３】
図30は，転送装置の制御装置のソフトウェアモジュールの構成を示すブロック図の他の例である。図30は，図12の構成に加えて，蓄積通信パケット転送通知送信部227を有する。蓄積通信パケット転送通知送信部227は，移動完了通知の受信に応答して通信パケットPを蓄積している転送装置に，蓄積している通信パケットPを転送する旨を示す蓄積通信パケット転送通知を送信する。蓄積通信パケット転送通知は，第5の転送装置GW5が蓄積した通信パケットの転送先を含む第3の通知の一例である。
【０２５４】
図31は，移動完了通知を受信した転送装置の制御装置GWCが実行する処理の流れを説明するフロー図の他の例である。
【０２５５】
ステップS171：移動完了通知受信部225は，最下流の転送装置である第6の転送装置GW6から送信された移動完了通知を受信する。
【０２５６】
ステップS172：テーブル管理部222は，移動完了通知から峻別パラメータと，送信元IPアドレスとを抽出する。第1の実施の形態の例では，テーブル管理部222は，峻別パラメータとしてタイプ"電力"，利用者"A社"を抽出し，送信元IPアドレスとして"10.10.10.6"を抽出する。
【０２５７】
ステップS173：テーブル管理部222は，図11の出口転送装置管理テーブルTOを検索し，通信パケットPを蓄積している転送装置に設定されたIPアドレスを取得する。ここで，通信パケットPを蓄積している転送装置は，第5の転送装置GW5である。具体的には，テーブル管理部222は，図11の出口転送装置管理テーブルTOから，抽出した峻別パラメータに対応するIPアドレスを検索し，検索したIPアドレスを取得する。図11の例では，テーブル管理部222は，峻別パラメータとしてタイプ"電力"，利用者"A社"に対応するIPアドレス"10.10.10.5"を取得する。
【０２５８】
ステップS174：蓄積通信パケット転送通知送信部227は，取得したIPアドレスが設定された転送装置に蓄積通信パケット転送通知を送信する。蓄積通信パケット転送通知は，例えば，図14で説明した転送要求通知Mと類似した構成を有する。全体管理部221は，送信元IPアドレスが転送装置の制御装置GWCに設定されたIPアドレス"10.10.1.1"であり，送信先IPアドレスがステップS173で抽出されたIPアドレス"10.10.10.5"とする蓄積通信パケット転送通知を作成する。そして，全体管理部221は，蓄積通信パケット転送通知のペイロードを，
<msg>send</msg>
<addr>10.10.10.6</addr>
<data>
<user>A社</user>
<type>電力</type>
</data>
とする。
【０２５９】
この蓄積通信パケット転送通知のペイロードは，図14のデータDT2において，タグ<msg>とタグ</msg>とで挟まれた識別子"req"が，蓄積された通信パケットの転送実行を示す識別子"send"に置き換わったものである。さらに，このペイロードは，タグ<addr>とタグ</addr>との間に，蓄積された通信パケットの転送先の転送装置(第6の転送装置GW6)に設定されたIPアドレス"10.10.10.6"を有する。
【０２６０】
ステップS175：テーブル管理部222は，図11の出口転送装置管理テーブルTOの出口における転送装置に設定されたIPアドレスを，ペイロードに含まれるIPアドレス("10.10.10.6")に変更する(図24参照)。ステップS175は，図23のステップS153と類似する処理なので，その説明を省略する。
【０２６１】
(第5の転送装置GW5)
第5の転送装置GW5の受信部125は，転送装置の制御装置GWCから送信された，蓄積通信パケット転送通知を受信する。そして，第5の転送装置GW5の送信部126は，自装置の記憶装置16が蓄積する通信パケットを蓄積通信パケット転送通知に含まれる転送先の装置に転送する。この転送先の装置は，蓄積通信パケット転送通知のペイロードに含まれるタグ<addr>とタグ</addr>との間のIPアドレスで識別される装置である。
【０２６２】
図29，図32を参照し，蓄積通信パケット転送通知を受信した第5の転送装置GW5が実行する処理の流れを説明する。図32は，蓄積通信パケット転送通知を受信した第5の転送装置GW5が実行する処理の流れを説明するフロー図の一例である。
【０２６３】
ステップS181：第5の転送装置GW5の受信部125は，転送装置の制御装置GWCから送信された蓄積通信パケット転送通知を受信する。
【０２６４】
ステップS182：第5の転送装置GW5のテーブル管理部122は，蓄積通信パケット転送通知から，峻別パラメータと，蓄積された通信パケットの転送先の転送装置に設定されたIPアドレスとを抽出する。前記の例では，テーブル管理部122は，蓄積通信パケット転送通知の峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出する。そして，テーブル管理部122は，蓄積された通信パケットの転送先の転送装置に設定されたIPアドレス"10.10.10.6"を抽出する。
【０２６５】
ステップS183：第5の転送装置GW5の全体管理部121は，蓄積された通信パケットの転送先の転送装置とコネクションを構築する。前記の例では，蓄積された通信パケットの転送先の転送装置は，IPアドレス"10.10.10.6"が設定された第6の転送装置GW6である。従って，第5の転送装置GW5の全体管理部121は，第6の転送装置GW6の全体管理部121と，例えばTCPコネクションを構築する。
【０２６６】
ステップS184：第5の転送装置GW5の送信部126は，コネクションを構築した転送装置に，蓄積された通信パケットを転送する。前記の例では，第5の転送装置GW5の送信部126は，自装置の記憶装置16に蓄積されている通信パケットを，第6の転送装置GW6に転送する。
【０２６７】
このとき，第5の転送装置GW5の送信部126は，ステップS182で抽出した峻別パラメータと一致する峻別パラメータを有する全ての通信パケットを，自装置の記憶装置16から取得し，第6の転送装置GW6に転送する。
【０２６８】
ステップS185：第5の転送装置GW5の送信部126は，ステップS184の転送処理が完了したか判定する。第5の転送装置GW5の送信部126が，ステップS184の転送処理が完了したと判定しない間(ステップS185/NO)，ステップS184の処理を継続する。第5の転送装置GW5の送信部126が，ステップS184の転送処理が完了したと判定した場合(ステップS185/YES)，ステップS186に移る。
【０２６９】
ステップS186：第5の転送装置GW5のテーブル管理部122は，図29の転送テーブルTF5から，蓄積通信パケット転送通知の峻別パラメータに対応するエントリを削除する。具体的には，テーブル管理部122は，図29の転送テーブルTF5から，蓄積通信パケット転送通知の峻別パラメータを記憶している行全体を削除する。図29の転送テーブルTF5の例では，テーブル管理部122は，タイプ"電力"，利用者"A社"，"localhost"を削除する。
【０２７０】
本実施の形態によれば，前記した第1の時間から第2の時間までのタイムラグの間であっても，アプリケーション移動前のサーバに直接接続している転送装置は，通信パケットを自装置に蓄積する。そして，前記した転送装置は，他の転送装置間で連携して転送経路を変更した後に，自装置に蓄積していた通信パケットをアプリ移動後のサーバに直接している転送装置に送信する。そのため，前記した第1の時間から第2の時間までのタイムラグの間に，センサが送信した通信パケットが破棄されることがない。そして，アプリケーションは，この通信パケットのペイロードに含まれる測定データに対して情報処理を実行することができる。その結果，アプリケーションにおけるデータ処理の品質の低下を防止できる。
【０２７１】
[第4の実施の形態]
第3の実施の形態では，転送装置の制御装置GWCが，通信パケットを蓄積していた第5の転送装置GW5に，この蓄積していた通信パケットを，アプリ移動後のサーバSVR2に接続している最下流の転送装置GW6に送信するように指示(制御)していた(図31参照)。この場合，転送装置の制御装置GWCが，前記した指示を行うので，制御装置GWCの処理負荷が増す。そこで，本実施の形態では，転送装置の制御装置GWCによる指示がなくても，蓄積された通信パケットを，アプリ移動後のサーバに転送する転送装置について説明する。
【０２７２】
本実施の形態では，通信パケットPを蓄積している第5の転送装置GW5が，この通信パケットPを上流側の第3の転送装置GW3に転送する。そして，第3の転送装置GW3は，第5の転送装置GW5が転送した通信パケットPを受信し，第1の転送装置GW1に転送する。第1の転送装置GW1は，第3の転送装置GW3が転送した通信パケットPを受信し，第4の転送装置GW4に転送する。第4の転送装置GW4は，第1の転送装置GW1が転送した通信パケットPを受信し，第6の転送装置GW6に転送する。
【０２７３】
上記一連の転送を実現するために，第3の転送装置GW3の転送テーブルにおいて，通信パケットPの峻別パラメータに対応する次の転送先IPアドレスを第1の転送装置GW1のIPアドレスに変更する。以下に，上記一連の転送を実現する処理の流れを，図33〜図35を参照して説明する。
【０２７４】
以下の説明においては，まず，下記の第1〜第3の処理が実行されているとする。第1の処理とは，第3の実施の形態で説明した第5の転送装置GW5が実行する通信パケットPの蓄積処理(図28参照)である。第2の処理とは，第1の実施の形態で説明した第6の転送装置GW6が実行する転送テーブルの変更処理(図16，図17参照)である。第3の処理とは，第1の実施の形態で説明した第4の転送装置GW4が実行する転送テーブルの変更処理(図18，図20参照)である。
【０２７５】
第3の処理が終了すると，最上流の転送装置である第1の転送装置GW1が，図33の処理を実行する。
【０２７６】
(第1の転送装置GW1)
図33は，第1の転送装置GW1，第3の転送装置GW3が実行する処理の流れを説明するフロー図の他の例である。図33のフロー図は，図33のステップS124(YESに分岐)とステップS129との間に，ステップS124aを有する。
【０２７７】
第1の転送装置GW1の受信部125は，第1の実施の形態で説明したように，第4の転送装置GW4から転送された転送要求通知Mを受信し，テーブル管理部122，転送先判定部124に出力する(ステップS121)。さらに，第1の転送装置GW1のテーブル管理部122は，転送要求通知Mから峻別パラメータと送信元IPアドレスとを抽出する(ステップS122)。そして，第1の転送装置GW1の転送先判定部124は，ステップS122で抽出した峻別パラメータをキーにして，自装置の記憶装置16が記憶する転送テーブルを検索し，この峻別パラメータに対応する次の転送先IPアドレスを取得する(ステップS123)。
【０２７８】
図3の例では，第1の転送装置GW1のテーブル管理部122は，図3の転送テーブルTF1を検索し，峻別パラメータであるタイプ"電力"，利用者"A社"に対応する次の転送先IPアドレス"10.10.10.3"を取得する(ステップS123)。そのため，ステップS124ではYESと判定され，ステップS124aに移る。
【０２７９】
ステップS124a：第1の転送装置GW1の送信部126は，転送要求通知MをステップS123で取得した次の転送先IPアドレスが設定された転送装置に転送する。前記の例では，第1の転送装置GW1の送信部126は，IPアドレス"10.10.10.3"が設定された第3の転送装置GW3に転送要求通知Mを転送する。第1の転送装置GW1の送信部126は，この転送に先立ち，転送要求通知Mの送信元IPアドレスH22を自装置のIPアドレス"10.10.10.1"とし，さらに，送信先IPアドレスH21を前記した転送先の装置のIPアドレス"10.10.10.3"とする。そして，送信部126は，変更後の転送要求通知Mを第3の転送装置GW3に転送する。
【０２８０】
第1の転送装置GW1のテーブル管理部122は，転送テーブルTF1における，ステップS123で転送先判定部124が取得した次の転送先IPアドレスを，受信した転送要求通知Mの送信元IPアドレスH22に変更する(ステップS129)。
【０２８１】
図3，図21の例では，第1の転送装置GW1のテーブル管理部122は，転送テーブルTF1における，峻別パラメータであるタイプ"電力"，利用者"A社"に対応する次の転送先IPアドレス"10.10.10.3"(図3参照)を，転送要求通知Mの送信元IPアドレス"10.10.10.4"(図21の点線丸を参照)に変更する。
【０２８２】
(第3の転送装置GW3)
次に，転送要求通知Mを第1の転送装置GW1から受信した第3の転送装置GW3が実行する処理を，図33，図34を参照して説明する。
【０２８３】
図34は，図4の転送テーブルTF3が変更された状態の一例を示す図である。
【０２８４】
第3の転送装置GW3の受信部125は，第1の転送装置GW1から転送された転送要求通知Mを受信し，テーブル管理部122，転送先判定部124に出力する(ステップS121)。さらに，第3の転送装置GW3のテーブル管理部122は，ステップS122の処理を経て，転送要求通知Mの峻別パラメータをキーにして，図4の転送テーブルTF3を検索し，この峻別パラメータに対応する次の転送先IPアドレスを取得する(ステップS123)。
【０２８５】
図4の例では，第1の転送装置GW1のテーブル管理部122は，峻別パラメータであるタイプ"電力"，利用者"A社"に対応する次の転送先IPアドレス"10.10.10.5"を取得する(ステップS123)。そのため，ステップS124ではYESと判定され，ステップS124aに移る。
【０２８６】
第3の転送装置GW3の送信部126は，転送要求通知Mを，ステップS123で転送先判定部124が取得したIPアドレスが設定された転送装置に転送する(ステップS124a)。前記の例では，第3の転送装置GW3の送信部126は，IPアドレス"10.10.10.5"が設定された第5の転送装置GW5に転送要求通知Mを転送する。第3の転送装置GW3の送信部126は，この転送に先立ち，転送要求通知Mの送信元IPアドレスH22を自装置のIPアドレス"10.10.10.3"とし，さらに，送信先IPアドレスH21を前記した転送先の装置のIPアドレス"10.10.10.5"とする。そして，送信部126は，変更後の転送要求通知Mを第5の転送装置GW5に送信する。
【０２８７】
第3の転送装置GW3のテーブル管理部122は，転送テーブルTF3における，ステップS123で転送先判定部124が取得した次の転送先IPアドレスを，転送要求通知Mの送信元IPアドレスH22に変更する(ステップS129)。具体的には，第3の転送装置GW3のテーブル管理部122は，図4の転送テーブルTF3において，ステップS123で転送先判定部124が取得した次の転送先IPアドレス"10.10.10.5"(図4参照)を，転送要求通知Mの送信元IPアドレス"10.10.10.1"に変更する。この変更については，図34の点線丸を参照。
【０２８８】
(第1の転送装置GW1，第3の転送装置GW3のまとめ)
以上説明したように，第1の転送装置GW1の送信部126は，転送要求通知Mに含まれる第2の属性が，自装置の記憶装置16が記憶する第1の属性に一致する場合，以下の処理を実行する。ここで，この一致する場合とは，例えば，転送要求通知Mに含まれる峻別パラメータが，第1の転送装置GW1の転送テーブルTF1が記憶する峻別パラメータと一致する場合である。
【０２８９】
そして，この場合，第1の転送装置GW1の送信部126は，記憶装置16における第1の属性に対応する転送先の他の装置に転送要求通知Mを転送する(図33のステップS124a参照)。例えば，第1の転送装置GW1の送信部126は，転送要求通知Mに含まれる峻別パラメータ，すなわち，転送テーブルTF1が記憶する峻別パラメータに対応する次の転送先IPアドレスが設定された他の転送装置に転送要求通知Mを転送する。
【０２９０】
そして，テーブル管理部122は，記憶装置16における第1の属性に対応する転送先を，転送要求通知Mに含まれる転送先に変更する(図33のステップS129参照)。すなわち，テーブル管理部122は，転送テーブルTF1が記憶する峻別パラメータに対応する次の転送先IPアドレスを，転送要求通知Mの送信元IPアドレスH22に変更する。第3の転送装置GW3も，以上で説明した第1の転送装置GW1の処理と同様の処理を実行する。
【０２９１】
(第5の転送装置GW5)
次に，転送要求通知Mを第3の転送装置GW3から受信した第5の転送装置GW5が実行する処理を，図29，図35を参照して説明する。
【０２９２】
図35は，第5の転送装置GW5が実行する処理の流れを説明するフロー図の他の例である。
【０２９３】
ステップS191：第5の転送装置GW5の受信部125は，他の転送装置である第3の転送装置GW3から転送された転送要求通知Mを受信し，テーブル管理部122，転送先判定部124に出力する。
【０２９４】
ステップS192：第5の転送装置GW5のテーブル管理部122は，転送要求通知Mから峻別パラメータと送信元IPアドレスとを抽出する。図14の例では，第5の転送装置GW5のテーブル管理部122は，転送要求通知MのペイロードPY2から，峻別パラメータとして，タイプ"電力"，利用者"A社"を抽出する。さらに，第5の転送装置GW5のテーブル管理部122は，転送要求通知Mの送信元IPアドレスH22である，IPアドレス"10.10.10.3"を抽出する。
【０２９５】
ステップS193：第5の転送装置GW5の転送先判定部124は，ステップS192で抽出した峻別パラメータをキーにして，自装置の記憶装置16が記憶する転送テーブルを検索し，この峻別パラメータに対応する次の転送先IPアドレスを取得する。検索対象の転送テーブルは，図29の転送テーブルTF5aである。
【０２９６】
ステップS194：第5の転送装置GW5の転送先判定部124は，次の転送先IPアドレスが"localhost"か判定する。次の転送先IPアドレスが"localhost"の場合(ステップS194/YES)，ステップS195に移る。
【０２９７】
図14，図29の例の場合，転送テーブルTF5aは，峻別パラメータとしてタイプ"電力"，"A社"を記憶し，この峻別パラメータに対応する次の転送先IPアドレス"localhost"を記憶している。従って，ステップS192で抽出した峻別パラメータ(タイプ"電力"，利用者"A社")に対応する次の転送先IPアドレスは"localhost"なので，ステップS195に移る。
【０２９８】
ステップS195：第5の転送装置GW5の送信部126は，蓄積された通信パケットを転送要求通知Mの転送元の装置に転送する。転送要求通知Mの転送元の装置は，転送要求通知Mの送信元IPアドレスH22が設定された転送装置である。前記の例では，第5の転送装置GW5の送信部126は，自装置の記憶装置16に蓄積されている通信パケットPを，第3の転送装置GW3に転送する。このとき，第5の転送装置GW5の送信部126は，ステップS192で抽出した峻別パラメータと一致する峻別パラメータを有する全ての通信パケットを，自装置の記憶装置16から取得し，第3の転送装置GW3に転送する。
【０２９９】
次の転送先IPアドレスが"localhost"でない場合(ステップS194/NO)，ステップS196に移る。
【０３００】
ステップS196：第5の転送装置GW5の送信部126は，転送要求通知MをステップS193で取得した次の転送先IPアドレスが設定された転送装置に転送する。
【０３０１】
図35で説明したように，第5の転送装置GW5の送信部126は，自装置の記憶装置16が蓄積した通信パケットの中で，受信部125が受信した転送要求通知Mに含まれる第2の属性を含む通信パケットを，転送要求通知Mの転送元の転送装置に転送する(ステップS195)。転送要求通知Mに含まれる第2の属性は，例えば，峻別パラメータであり，前記の例では，タイプ"電力"，利用者"A社"である。
【０３０２】
(第3の転送装置GW3)
図14，図29の例の場合，第5の転送装置GW5の送信部126は，自装置の記憶装置16に蓄積されている通信パケットPを，第3の転送装置GW3に転送する(図35のステップS195参照)。
【０３０３】
第3の転送装置GW3の受信部125は，通信パケットPを受信する。第3の転送装置GW3の転送先判定部124は，通信パケットPのペイロードPY1から峻別パラメータであるタイプ，利用者を抽出する。第3の転送装置GW3の転送先判定部124は，抽出したタイプ(図2の例では電力)，利用者(図2の例ではA社)を検索キーとして，図34の転送テーブルTF3aを検索し，抽出したタイプ，利用者に対応する次の転送先IPアドレスとして"10.10.10.1"を取得する。この次の転送先IPアドレスは，第1の転送装置GW1に設定されたIPアドレスである。
【０３０４】
第3の転送装置GW3の送信部126は，受信した通信パケットPの送信元IPアドレスH12を自装置のIPアドレス(10.10.10.3)とし，さらに，受信した通信パケットPの送信先IPアドレスH11を取得したIPアドレス(10.10.10.1)とする。そして，第3の転送装置GW3の送信部126は，このIPアドレスが置き換えられた通信パケットPを第1の転送装置GW1に転送する。
【０３０５】
第1の転送装置GW1は，通信パケットPを受信し，第4の転送装置GW4に転送するが，この転送は，第1の実施の形態で説明したので，その説明を省略する。
【０３０６】
以上説明したように，第1の転送装置GW1，第3の転送装置GW3の送信部126は，第2の属性を含む通信パケットを，第2の属性に対応付けて記憶装置16に記憶した通信パケットの転送先の第3の装置に転送する。
【０３０７】
本実施の形態によれば，転送装置間の連携により，蓄積された通信パケットの転送経路が変更され，蓄積された通信パケットが変更後の転送経路に沿ってアプリ移動後のサーバに転送される。その結果，転送装置の制御装置GWCによる指示が不要になり，転送装置の制御装置GWCの処理負荷が増すことない。
【０３０８】
[その他の実施の形態]
第1〜第4の実施の形態で説明した転送装置の処理内容を適宜組み合わせても良い。例えば，第2の実施の形態で説明した第6の転送装置GW6の処理を，第3，第4の実施の形態で説明した，第6の転送装置GW6の処理に加えてもよい。
【０３０９】
他にも，第1〜第4の実施の形態においては，説明を簡明にするため，最上流の転送装置，最下流の転送装置，中流の転送装置毎に処理の内容を分けて記載した。しかし，第1〜第4の実施の形態で説明した各処理の内容を実行する機能を1台の転送装置に実装し，この転送装置の設置場所に応じて，各処理の内容を実行させてもよい。
例えば，第4の実施の形態で説明した第5の転送装置は，図36，図37で説明する処理を実行する。図36，図37の処理を実行する第5の転送装置は，第4の実施の形態で説明した最下流の転送装置および中流の転送装置(例えば，第3の転送装置GW3)としても機能する。
【０３１０】
図36は，第5の転送装置GW5が実行する処理の流れを説明する第1のフロー図の一例である。図37は，第5の転送装置GW5が実行する処理の流れを説明する，図36の第1のフロー図に続く第2のフロー図の一例である。
【０３１１】
図36のフロー図は，図36のステップS124(YESに分岐)の後に，ステップS194を有する。図36のフロー図は，図36のステップS194(YESに分岐)の後に，図37のステップS195を有する。図36のフロー図は，図36のステップS194(NOに分岐)の後に，図37のステップS124a，ステップS129を有する。図36のフロー図は，図36のステップS124(NOに分岐)の後に，ステップS125〜ステップS128，ステップS130を有する。
【０３１２】
図36のステップS191〜ステップS194，図37のステップS195は，図35のステップS191〜ステップS195と同じ処理なので，その説明を省略する。また，図37のステップS124a〜ステップS130は，図33のステップS124a〜ステップS130と同じ処理なので，その説明を省略する。
【０３１３】
以上説明したように，第1〜第4の実施の形態で説明した各処理の内容を実行する機能を1台の転送装置に実装することで，この転送装置の設置場所に応じて，各処理の内容を実行させることができる。
【０３１４】
以上の実施の形態をまとめると，次の付記のとおりである。
【０３１５】
（付記１）
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送プログラムであって，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，
受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，
前記通知を他の前記転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３１６】
(付記２)
付記1において，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶装置に記憶し，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先を，前記通知に含まれる前記転送先に変更し，
前記第2の属性が前記第1の属性に一致しない場合，前記第2の属性と前記第2の属性を含む前記通信データの転送先とを対応付けて前記記憶装置に記憶し，
前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３１７】
（付記３）
付記2において，
前記通知に含まれる転送先は，前記転送先の前記第3の装置を識別する識別子であり，
前記識別子に基づき，前記第2の属性を含む通信データを前記第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３１８】
(付記４)
付記1において，
前記通知に含まれる前記通信データの転送先を自装置に変更し，変更後の前記通知を前記他の転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３１９】
(付記５)
付記1において，
前記他の転送装置を識別する識別子を前記記憶装置に記憶し，
前記識別子に基づき，前記通知を前記他の転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２０】
(付記６)
付記1において，
前記通信データが最終的に転送される最終転送先の処理装置が，他の処理装置に変更されたことを契機として前記他の処理装置から送信された前記通知，または，他の前記転送装置から転送された前記通知を受信する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２１】
(付記７)
データと前記データに関する属性とを含む通信データを生成する生成装置と，前記通信データに含まれる前記データを処理する第1，第2の処理装置との間に設置され，第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する複数の転送装置の何れかの転送装置が実行する転送プログラムであって，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む第1の通知を受信し，
受信した前記第2の属性を含む通信データを，前記第1の通知に含まれる前記転送先の第3の装置に転送し，
前記第1の通知を他の前記転送装置に転送する
処理をコンピュータに実行させる   
ことを特徴とする転送プログラム。
【０３２２】
(付記８)
付記7において，
前記第1の通知の受信時を基準にした所定の時間内に，前記第1の通知に含まれる前記第2の属性を含む通信データを受信しない場合，前記第2の属性を含む通信データの転送経路に対応する，前記第2の属性と通信データの転送先とが対応付けられた対応情報を，前記転送経路に設置された転送装置に送信する要求を前記複数の転送装置を制御する制御装置に行い，
前記対応情報を受信し，前記対応情報に含まれる前記第2の属性を含む通信データを，当該第2の属性と対応付けられた前記転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２３】
(付記９)
付記7において，
前記通信データの最終転送先が前記第1の処理装置から前記第2の処理装置に変更されたことを契機として前記第1の処理装置から送信された，前記第2の属性を含む第2の通知を受信し，
前記第2の通知に含まれる前記第2の属性を含む通信データを受信し，受信した通信データを記憶装置に蓄積し，
前記複数の転送装置を制御する制御装置から送信された，前記蓄積した通信データの転送先を含む第3の通知を受信し，前記記憶装置が蓄積する通信データを前記第3の通知に含まれる転送先の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２４】
(付記１０)
付記7において，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶装置に記憶し，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先の前記他の装置に前記第1の通知を転送し，さらに，前記記憶装置における前記第1の属性に対応する前記転送先を，前記第1の通知に含まれる前記転送先に変更し，
前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２５】
(付記１１)
付記7において，
前記通信データの最終転送先が前記第1の処理装置から前記第2の処理装置に変更されたことを契機として前記第1の処理装置から送信された，前記第2の属性と前記通信データの転送先とを含む第2の通知を受信し，
前記第2の通知に含まれる前記第2の属性を含む通信データを受信し，受信した通信データを記憶装置に蓄積し，
前記第1の通知を受信し，前記記憶装置が蓄積した通信データの中で，前記第1の通知に含まれる前記第2の属性を含む通信データを，前記第1の通知の転送元の転送装置に転送する
処理をコンピュータに実行させる
ことを特徴とする転送プログラム。
【０３２６】
（付記１２）
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置であって，
前記第1の属性と前記第1の属性を含む前記通信データの転送先とを対応付けて記憶する記憶装置と，
前記第2の属性が前記第1の属性に一致する場合，前記記憶装置における前記第1の属性に対応する前記転送先を，前記通知に含まれる前記転送先に変更し，前記第2の属性が前記第1の属性に一致しない場合，前記第2の属性と前記第2の属性を含む前記通信データの転送先とを対応付けて前記記憶装置に記憶し，前記第2の属性を含む通信データを，前記第2の属性に対応付けて前記記憶装置に記憶した前記通信データの転送先の第3の装置に転送し，前記通知を他の前記転送装置に転送する制御部とを有する
ことを特徴とする転送装置。
【０３２７】
（付記１３）
第1の装置から送信された，データと前記データに関する第1の属性とを含む通信データを第2の装置に転送する転送装置で実行される転送方法であって，
前記転送装置は，
データに関する第2の属性と前記第2の属性を含む通信データの転送先とを含む通知を受信し，
受信した前記第2の属性を含む通信データを，前記通知に含まれる前記転送先の第3の装置に転送し，
前記通知を他の前記転送装置に転送する
ことを特徴とする転送方法。
【符号の説明】
【０３２８】
GW1〜GW6…第1〜第6の転送装置，SN1〜SN20…センサ，GWC…転送装置の制御装置，DC1，DC2…データセンタ，SVR1，SVR2…サーバ，AP1…アプリ，GW…転送装置，121…全体管理部，122…テーブル管理部，123…制御装置通信部，124…転送先判定部，125…受信部，126…送信部，TF…転送テーブル，TC…コネクションテーブル。
【図１】
2014135662.tif 000003
【図２】
2014135662.tif 000004
【図３】
2014135662.tif 000005
【図４】
2014135662.tif 000006
【図５】
2014135662.tif 000007
【図６】
2014135662.tif 000008
【図７】
2014135662.tif 000009
【図８】
2014135662.tif 000010
【図９】
2014135662.tif 000011
【図１０】
2014135662.tif 000012
【図１１】
2014135662.tif 000013
【図１２】
2014135662.tif 000014
【図１３】
2014135662.tif 000015
【図１４】
2014135662.tif 000016
【図１５】
2014135662.tif 000017
【図１６】
2014135662.tif 000018
【図１７】
2014135662.tif 000019
【図１８】
2014135662.tif 000020
【図１９】
2014135662.tif 000021
【図２０】
2014135662.tif 000022
【図２１】
2014135662.tif 000023
【図２２】
2014135662.tif 000024
【図２３】
2014135662.tif 000025
【図２４】
2014135662.tif 000026
【図２５】
2014135662.tif 000027
【図２６】
2014135662.tif 000028
【図２７】
2014135662.tif 000029
【図２８】
2014135662.tif 000030
【図２９】
2014135662.tif 000031
【図３０】
2014135662.tif 000032
【図３１】
2014135662.tif 000033
【図３２】
2014135662.tif 000034
【図３３】
2014135662.tif 000035
【図３４】
2014135662.tif 000036
【図３５】
2014135662.tif 000037
【図３６】
2014135662.tif 000038
【図３７】
2014135662.tif 000039