(57)【特許請求の範囲】
【請求項１】
通信装置に接続されてソフトウェアを提供するサーバと、前記通信装置に接続されて前記ソフトウェアを利用する端末と、前記複数の通信装置を接続するネットワークとを備えて、前記端末が前記サーバにアクセスする経路を設定する通信経路の管理方法であって、
前記ネットワークに接続されて前記通信装置及びサーバを管理する管理計算機が、前記ソフトウェアを提供するサーバが同一である端末と、前記端末が実行するソフトウェアの組合せを論理的な集約グループに割り当てる第１のステップと、
前記管理計算機が、前記集約グループ毎に前記通信装置の通信経路を設定する第２のステップと、
を含むことを特徴とする通信経路の管理方法。
【請求項２】
請求項１に記載の通信経路の管理方法であって、
前記管理計算機は、ドメイン名を受信してアドレスを応答する名前解決部を有し、
前記第１のステップは、
前記集約グループ毎に、前記サーバのアドレスとポート番号を対応付けることを特徴とする通信経路の管理方法。
【請求項３】
請求項２に記載の通信経路の管理方法であって、
前記通信装置は、
トラフィックの宛先アドレス及び送信元アドレスの少なくとも一方を変更可能であって、
前記管理計算機が、同一の集約グループに対応づけられた複数の前記サーバのアドレスとポート番号を相互に変換する第３のステップをさらに有することを特徴とする通信経路の管理方法。
【請求項４】
請求項３に記載の通信経路の管理方法であって、
前記第３のステップは、
前記管理計算機が、所定の契機となったときに実行することを特徴とする通信経路の管理方法。
【請求項５】
請求項１に記載の通信経路の管理方法であって、
前記第２のステップは、
前記端末と前記サーバ間の通信遅延が所定の閾値を超えるときには、前記通信遅延が所定の閾値以下となる同一集約グループの他のサーバを設定することを特徴とする通信経路の管理方法。
【請求項６】
請求項１に記載の通信経路の管理方法であって、
前記第２のステップは、
前記端末とソフトウェアの組み合わせに対応する集約グループを変更する場合には、前記管理計算機が、当該端末のアドレスとポート番号を指定して前記通信装置に通知することを特徴とする通信経路の管理方法。
【請求項７】
請求項１に記載の通信経路の管理方法であって、
前記第１のステップは、
前記端末とソフトウェアの組合せ毎に要求する通信特性と、前記端末のネットワーク上の位置に基づいて前記集約グループを割り当てることを特徴とする通信経路の管理方法。
【請求項８】
請求項１に記載の通信経路の管理方法であって、
前記第２のステップは、
前記端末とソフトウェアの組み合わせから前記サーバのコストと、前記ネットワークのコストを算出するステップと、
前記サーバのコストと前記ネットワークのコストの和が所定の条件を満たす通信経路を前記通信装置に設定するステップと、
を含むことを特徴とする通信経路の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路及び宛先を計算して、通信装置に設定するネットワーク制御装置に関する。
【背景技術】
【０００２】
近年、ＩＴコストの削減を目的に、各拠点に分散していたデータをデータセンタに集約して運用管理するクラウドサービスが進展している。クラウドサービスにおいては、端末が遠隔に存在するデータセンタ内のソフトウェアリソース（仮想サーバ、アプリケーション、データ）に接続するため、端末がＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｅｒ）にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを問い合わせると、ＤＮＳが端末から受け取ったドメイン名に対応するＩＰアドレスを応答する技術が開発されている。以下では、ドメイン名に対してＩＰアドレスを応答する技術を名前解決と呼ぶ。名前解決によって、端末はソフトウェアリソースを提供するサーバのＩＰアドレスを取得することができ、上記ＩＰアドレス宛にパケットを送信することによって、ソフトウェアリソースを提供する計算機と接続を確立することが可能になる。【０００３】
上記名前解決では、同一のソフトウェアが複数のデータセンタに分散する場合に、負荷分散、および端末から最寄りのデータセンタに接続することが課題である。負荷分散とは、一部のサーバに多量のトラフィックが集中することによってサーバのＣＰＵやメモリや通信経路上の通信回線が圧迫することを軽減するため、複数のサーバにトラフィックを分散させることである。最寄りのデータセンタとは、端末からのＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）が小さい低遅延なデータセンタである。上記名前解決では、ＤＮＳは端末の問い合わせに対して、端末から最寄りのデータセンタ内のサーバのＩＰアドレスを応答することができない。【０００４】
他方、各通信装置の転送処理等を外部のネットワーク制御サーバによって一元的に制御するＳＤＮ(Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ)が検討されている。例えば、非特許文献１では、ＯｐｅｎＦｌｏｗが提案されている。ＯｐｅｎＦｌｏｗでは、通信装置がＭＡＣアドレス、ＩＰアドレス、プロトコル種別、およびポート番号等の情報を含むフローテーブルを保持し、フローテーブルによって規定されるトラフィックのグループをフローとして定義する。ネットワーク制御サーバは、フローを特定するルール（条件）と、フローの処理方法を規定するアクションに基づいてトラフィック処理（転送先ポートの決定、宛先ＩＰアドレス、ポート番号、および送信元ＩＰアドレスの変更、廃棄処理等）を行う。本技術を用いることによって負荷分散や障害切替をすることが検討されている。【０００５】
しかし、上記ＯｐｅｎＦｌｏｗ技術を用いた負荷分散や障害切替では、細かなフローエントリの設定により、負荷分散を実現するためには、複雑な処理が必要になるため、ネットワーク制御サーバの処理負荷が増大してしまい、ネットワーク制御サーバの処理遅延を招くことが予想される。【０００６】
以下に上記問題に関係する従来技術を説明する。【０００７】
特許文献１では、上記名前解決の課題を解決するため、ＥＤＮＳと呼ばれる装置が、各ＬＤＮＳ（Ｌｏｃａｌ  ＤＮＳ）がドメイン名に対して応答するＩＰアドレスを変更する。これによって、ＬＤＮＳ毎に、端末からのＩＰアドレスの問い合わせに対して、異なるＩＰアドレスを応答することが可能になり、その結果、同一のソフトウェアを複数のサーバに分散配置している場合に、サーバ間で、ＣＰＵやメモリの負荷が分散される。さらに、ＩＰアドレスと地理的な位置関係を取得することによって、ＬＤＮＳから地理的に近いサーバのＩＰアドレスを通知することができる。これによって、端末は通信遅延が小さいサーバに通信接続することができる。【０００８】
特許文献２では、上記通信経路の制御の課題を解決するため、通常の処理時は、ＤＮＳラウンドロビン機能により負荷分散を行い、複数のサービス提供サーバのそれぞれが、それぞれの負荷状況を監視し、自身に対する負荷が閾値以上であると判定すると、負荷分散要求をネットワーク制御サーバに発行し、ネットワーク制御サーバが負荷分散要求に応じて、通信装置に設定したフローエントリを変更する（段落００１３〜００１７）。これにより、ラウンドロビン機能による負荷分散方法で対処できない負荷の集中を防止すると共に、ネットワーク制御サーバにおける通信経路の変更処理にかかる処理負荷を軽減することができる。【０００９】
特許文献３では、上記通信経路の制御の課題を解決するため、通信ネットワーク毎に運用系サーバおよび予備系サーバを設けずに、冗長構成を可能にすることを目的に、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）で通信状況を監視する監視サーバが、異常が発生したことを検知すると、待機系サーバは障害が発生した運用系サーバの論理ＩＰアドレスを取得して、通信経路を待機系サーバに切り替えるように通信装置に設定する（段落０００５〜０００７）。これによって、運用系サーバ及び予備系サーバを設けずに、冗長構成を形成することが可能になる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第７４４１０４５号明細書
【特許文献２】特開２０１１−１７０７１８号公報
【特許文献３】特開２０１１−２５００３３号公報
【非特許文献】
【００１１】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ１．３．０（Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０４）”、Ｐａｇｅ６−２１、 [ｏｎｌｉｎｅ]、平成２４年６月２５日、ＯＰＥＮ  ＮＥＴＷＯＲＫＩＮＧ  ＦＯＵＮＤＡＴＩＯＮ、[平成２４年７月２５日検索]
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以下に、従来技術の課題を説明する。【００１３】
端末のアプリケーションの変化に伴って、アプリケーションはより低遅延で広帯域な通信を求めており、他方で、広域ネットワークに流れるトラフィックの総量が肥大化している。そのため、端末からソフトウェアリソースを提供するサーバまでの通信遅延の低減、上記端末と上記サーバ間でのＥｎｄ-Ｅｎｄで利用可能な帯域の改善、広域ネットワークに流れるトラフィック総量の削減を目的に、現在、ソフトウェアリソースを集約している各データセンタを小規模化し、地理的に離れた各地に分散して設置するアーキテクチャになることが予想される。【００１４】
データセンタを各地に分散して設置することは、従来の上記端末から上記サーバに接続する際にＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）のネットワークによって構成されるインターネット等の広域ネットワークを経由するデータセンタに限らず、上記端末と上記インターネットとを繋ぐ通信事業者網内や上記通信事業者網よりも端末側のネットワークであるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等にデータセンタを設置することを示す。なお、以下では、データセンタとは、地理的に離れた各地に分散して設置されるデータセンタのことを示す。【００１５】
また、本発明においては、端末とアプリケーションの組合せによってソフトウェアリソースを提供するデータセンタの位置が異なる場合がある。本発明においては、同一のＬＤＮＳ（Ｌｏｃａｌ  ＤＮＳ）に問い合わせる複数の端末間で、最適なデータセンタが異なる可能性がある。ここで、最適なデータセンタとは、端末とアプリケーションに対応するソフトウェアリソースを提供しており、かつ、上記端末から上記ソフトウェアリソースを提供するサーバまでの通信遅延が小さい、または、上記端末と上記サーバ間でのＥｎｄ−ｔｏ−Ｅｎｄで利用可能な帯域が大きい、または、広域ネットワークに流れるトラフィック量の削減効果が大きいデータセンタである。【００１６】
しかし、前記特許文献１に示される名前解決を用いた方法では、ＬＤＮＳ毎にドメイン名に対するＩＰアドレスを規定するため、同一のＬＤＮＳに問い合わせた端末は、端末のネットワーク内における論理的位置が異なるために、最適なデータセンタが異なる場合でも、必ずしも最適なデータセンタ内のサーバのＩＰアドレスを応答されずに、上記複数の端末には、同じＩＰアドレスが応答されるか、ラウンドロビン機能によってランダムなＩＰアドレスが通知されてしまう。【００１７】
更に、上記アーキテクチャでは、端末が、例えば、数百メートル移動することに伴って、ネットワーク内における論理的な位置が変更し、最適なデータセンタが変わる事象が頻繁に生じる。【００１８】
しかし、特許文献１では、ＬＤＮＳに登録されたＩＰアドレスを瞬時に変更したとしても、端末は、一度、ＬＤＮＳに問い合わせたＩＰアドレスをキャッシュとして一定期間（通常、一日程度）保持しており、上記キャッシュをリフレッシュして、再度、ＬＤＮＳに対して問い合わせない限り、端末が取得する宛先ＩＰアドレスは変更されない。その結果、端末が移動することによって、最適なデータセンタが変わった場合にも、端末は元々接続していたデータセンタ内のサーバに接続し続けてしまう。【００１９】
更に、上記アーキテクチャでは、データセンタの容量等の理由から、ソフトウェアリソースを提供するサーバが変更される可能性がある。【００２０】
しかし、特許文献１では、ソフトウェアリソースを提供するデータセンタが変更された場合にも、端末が移動した場合と同様の理由で、端末が取得する宛先ＩＰアドレスはＬＤＮＳに問い合わせない限り変更されない。その結果、ソフトウェアリソースを提供するデータセンタが変更された場合にも、端末は元々接続していたデータセンタ内のサーバに接続し続けてしまう。その結果、端末は、ＬＤＮＳに再度、問い合わせるまでの間、ソフトウェアリソースに接続できなくなる。【００２１】
特許文献２では、ＤＮＳのラウンドロビン機能を用いているため、特許文献１と同様に、同一のＤＮＳに問い合わせた複数の端末間で、通信遅延が小さいデータセンタが異なる場合でも、必ずしも通信遅延が小さいデータセンタ内のサーバのＩＰアドレスが応答されずに、上記複数の端末には、ラウンドロビン機能によってランダムなＩＰアドレスが通知されてしまう。また、端末が移動した場合、およびソフトウェアリソースが提供されるデータセンタが変更された場合に、端末は元々接続していたデータセンタ内のサーバに接続し続けてしまう。【００２２】
特許文献３では、通信経路上の全ての通信装置に対して通信経路を待機系サーバに切り替える設定を行うことができる場合に有効な手段であるが、全ての通信装置が上記設定に対応する装置ではない場合や、他事業者のネットワークを経由する場合には適用できない。そのため、データセンタ内等のローカルなエリアには適用できるが、複数事業者のネットワークが混在し、また、様々な通信装置が混在する広域ネットワークには適用が難しい。【００２３】
上記の通り、従来技術では、広域ネットワークにソフトウェアリソースを提供するサーバが広域ネットワークに分散したアーキテクチャにおいて、端末とアプリケーションの組合せに対して最適なサーバに接続することが課題である。また、ソフトウェアリソースを提供するサーバが変更した場合や、端末が移動した場合等においても、端末が速やかに最適なサーバに接続することが課題である。
【課題を解決するための手段】
【００２４】
本発明は、通信装置に接続されてソフトウェアを提供するサーバと、前記通信装置に接続されて前記ソフトウェアを利用する端末と、前記複数の通信装置を接続するネットワークとを備えて、前記端末が前記サーバにアクセスする経路を設定する通信経路の管理方法であって、前記ネットワークに接続されて前記通信装置及びサーバを管理する管理計算機が、前記ソフトウェアを提供するサーバが同一である端末と、前記端末が実行するソフトウェアの組合せを論理的な集約グループに割り当てる第１のステップと、前記管理計算機が、前記集約グループ毎に前記通信装置の通信経路を設定する第２のステップと、を含む。
【発明の効果】
【００２５】
本発明によれば、端末のユーザが利用するソフトウェアリソースを提供するサーバがネットワークに分散して存在する場合に、端末数の増大やトラフィック量増大に対して、ネットワーク制御サーバの処理負荷と通信装置の処理負荷を抑えつつ、端末やアプリ毎に最適なサーバに接続を可能になる。また、前記ソフトウェアリソースを提供するサーバが変更された場合や、端末が移動した場合等においても、端末は速やかに最適なサーバに接続することが可能になる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施例を示し、計算機システムの一例を示すブロック図である。
【図２Ａ】本発明の実施例を示し、ネットワーク制御サーバの構成例を示すブロック図である。
【図２Ｂ】本発明の実施例を示し、ネットワーク制御サーバのデータ記憶部の構成例を示すブロック図である。
【図３】本発明の実施例を示し、サーバが複数の計算機で構成された例を示すブロック図である。
【図４】本発明の実施例を示し、本発明の実施例を示し、ネットワーク制御サーバが保持する集約グループ情報の構成を例示する図である。
【図５】本発明の実施例を示し、ネットワーク制御サーバが保持する集約グループ変更コスト情報の構成を例示する図である。
【図６】本発明の実施例を示し、ネットワーク制御サーバが保持する集約グループ宛先情報の構成を例示する図である。
【図７】本発明の実施例を示し、ネットワーク制御サーバが保持する集約グループ宛先変更情報の構成を例示する図である。
【図８】本発明の実施例を示し、ネットワーク制御サーバが保持する通信装置間通信特性情報の構成を例示する図である。
【図９】本発明の実施例を示し、ネットワーク制御サーバが保持するアクセスポイント−通信装置間通信特性情報の構成を例示する図である。
【図１０】本発明の実施例を示し、ネットワーク制御サーバが保持する要求通信特性情報の構成を例示する図である。
【図１１】本発明の実施例を示し、ネットワーク制御サーバが保持するリソース提供位置情報の構成を例示する図である。
【図１２】本発明の実施例を示し、ネットワーク制御サーバがリソース管理サーバに送信する名前解決情報の構成を例示する図である。
【図１３】本発明の実施例を示し、ネットワーク制御サーバが通信装置に送信する設定情報の構成を例示する図である。
【図１４Ａ】本発明の実施例を示し、経路切替における計算機システムの処理を例示するシーケンス図の前半部である。
【図１４Ｂ】本発明の実施例を示し、経路切替における計算機システムの処理を例示するシーケンス図の後半部である。
【図１５】本発明の実施例を示し、端末がサービスルックアップする前にソフトウェアリソースを提供するサーバに接続する処理を例示するシーケンス図である。
【図１６】本発明の実施例を示し、端末がサービスルックアップした後にソフトウェアリソースを提供するサーバに接続する処理を例示するシーケンス図である。
【図１７】本発明の実施例を示し、障害や輻輳発生時に情報システムに通信接続する処理を例示するシーケンス図である。
【図１８】本発明の実施例を示し、端末が移動して接続するアクセスポイントが変更される処理を例示するシーケンス図である。
【図１９】本発明の実施例を示し、集約グループ判断部と集約グループ生成・変更部が集約グループを判断する処理を示すフローチャートである。
【図２０】本発明の実施例を示し、集約グループの追加時に集約グループアドレス管理部が通信装置への設定情報を生成する処理を示すフローチャートである。
【図２１】本発明の実施例を示し、集約グループの追加時に経路・宛先設定部が経路と宛先を通信装置に設定する処理を示すフローチャートである。
【図２２】本発明の実施例を示し、集約グループの変更時に集約グループアドレス管理部が通信装置への設定情報を生成する処理を示すフローチャートである。
【図２３】本発明の実施例を示し、集約グループの変更時に端末・アプリ管理部が端末とアプリケーションの組合せ毎に集約グループアドレス管理部が通信装置への設定情報を生成する処理を示すフローチャートである。
【図２４】集約グループ変更時に経路・宛先設定部が経路と宛先を通信装置に設定する処理を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明の一実施の形態について添付図面を用いて説明する。
【００２８】
本実施例においては、端末の利用者（またはユーザ）が利用するソフトウェアリソースを提供するサーバの識別子が同一の端末と、アプリケーションの組合せを集約グループとして管理する。以下では、端末のユーザが利用するソフトウェアリソースの一例として、仮想サーバ、アプリケーション、データ、記憶領域（ストレージサービス）などの端末から利用可能なリソースとする。また、端末のユーザが利用するソフトウェアリソースは、ＤａａＳ（Ｄｅｓｋｔｏｐ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などとして提供される仮想サーバや、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）などとして提供されるアプリケーション、およびデータであってもよい。また、サーバの識別子は、ＩＰアドレス等とは異なり、ネットワーク制御サーバ（またはネットワーク制御装置）１００が管理する一意の識別子である。
【００２９】
図１は、本実施例におけるコンピューティングシステムの構成を示すブロック図である。
【００３０】
本発明の実施例のコンピューティングシステムは、ネットワーク制御サーバ１００、リソース管理サーバ１１０、サービスルックアップサーバ１２０、ネットワーク１３０、通信装置１４０（通信装置１４０−１〜１４０−ｎ）、サーバ（サーバ１５０−１〜１５０−ｎ）、アクセスポイント（アクセスポイント１６０−１〜１６０−ｎ）、及び、端末１７０（１７０−１〜１７０−ｎ）を備える。なお、端末、サーバや通信装置の符号は、個々の端末、サーバ及び通信装置を特定する際には、符号に添え字「−１〜−Ｎ」を付し、端末、サーバ、通信装置の総称を示す場合には添え字を用いないものとする。また、ネットワーク制御サーバ１００、リソース管理サーバ１１０、サービスルックアップサーバ１２０はひとつの管理計算機で提供されても良い。
【００３１】
ネットワーク制御サーバ１００は通信装置１４０を通過するトラフィック（またはパケット）を制御するための計算機である。ネットワーク制御サーバ１００は、画面表示及びシステム操作の機能を、管理者等に提供する管理端末を備える。
【００３２】
ネットワーク制御サーバ１００は、複数の通信装置１４０、リソース管理サーバ１１０、及び、サービスルックアップサーバ１２０に接続される。ネットワーク制御サーバ１００は、各通信装置１４０を接続する通信経路を設定する。通信経路を設定する技術としては、前記非参照文献１で提案されているＯｐｅｎ  Ｆｌｏｗなどを適用することができる。通信装置１４０を接続する通信経路は、上記集約グループ毎、または、端末とアプリケーションの組合せ毎に設定される。
【００３３】
リソース管理サーバ１１０は、サーバ１５０、およびサーバ１５０で提供されるリソースを管理する計算機である。リソース管理サーバ１１０は、画面表示及びシステム操作の機能を、管理者等に提供する管理端末（図示省略）を備える。
【００３４】
リソース管理サーバ１１０は、複数のサーバ１５０と、ネットワーク制御サーバ１００、及び、サービスルックアップサーバ１２０に接続される。リソース管理サーバ１１０は、各サーバ１５０で提供するソフトウェアリソースを計算し、ソフトウェアリソースを提供しているサーバ１５０を管理し、また、各端末１７０とアプリケーションの組合せ毎に接続するサーバ１５０を管理する。なお、端末１７０は、プロセッサとメモリと通信インタフェースとを含む計算機で構成される。リソース管理サーバ１１０、サービスルックアップサーバ１２０も同様であり、プロセッサとメモリと通信インタフェースとを含む計算機で構成される。
【００３５】
サービスルックアップサーバ１２０は、端末１７０とアプリケーションの組合せ毎に、最適なＩＰアドレスを応答する計算機である。サービスルックアップサーバ１２０は、画面表示及びシステム操作の機能を、管理者等に提供する管理端末（図示省略）を備える。
【００３６】
サービスルックアップサーバ１２０は、端末１７０、ネットワーク制御サーバ１００、及び、リソース管理サーバ１１０に接続される。サービスルックアップサーバ１２０は、端末１７０からのＩＰアドレスの問い合わせに対して、端末１７０から受け取ったドメイン名と、端末１７０の識別子と、アプリケーションの識別子との組合せによって名前解決を実施して、端末１７０にドメイン名に対応するＩＰアドレスを応答する。ここで、端末１７０の識別子、アプリケーションの識別子とは、サービスルックアップサーバ１２０、リソース管理サーバ１１０、及び、ネットワーク制御サーバ１００が独自に割り当てて、管理する一意の識別子である。
【００３７】
ネットワーク１３０は、ＩＰアドレスでルーティングを行うインターネットのようなネットワーク、及び、ラベルやタグでスイッチングを行うＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）、ＱｉｎＱ、ＥｏＥ（Ｅｔｈｅｒ  ｏｖｅｒ  Ｅｔｈｅｒ）などのプロトコルによって構成される広域ネットワークである。ネットワーク１３０は複数のルータやスイッチなどのネットワーク装置とそれらを物理的に接続するケーブルまたはファイバーで構成される。また、本実施例のネットワークは仮想的に実装されたネットワークでもよい。
【００３８】
通信装置１４０は、ネットワーク制御サーバ１００によって管理されるネットワーク装置である。通信装置１４０は、トラフィックのＴＣＰ／ＩＰ参照モデルにおけるレイヤ２、レイヤ３、レイヤ４のパケットのヘッダー情報を参照し、ネットワーク制御サーバ１００によってトラフィックを転送または廃棄し、レイヤ２、レイヤ３またはレイヤ４のパケットのヘッダーの変更等を行う、ルータまたはスイッチ等で構成されたネットワーク装置である。また、本実施例の通信装置１４０は、仮想的に実装されたスイッチ等でもよい。
【００３９】
サーバ１５０は、リソース管理サーバ１１０によって管理される計算機である。サーバ１５０は、端末１７０のユーザが利用するソフトウェアリソースを提供して、端末１７０から情報の閲覧や更新の要求に応答して、端末１７０から要求された処理を行う。
【００４０】
また、サーバ１５０は、同じ集約グループに属する端末１７０とアプリケーションの組合せに対応する複数のサーバ１５０間で、データを同期することによって、端末１７０が、同一の集約グループに属する任意のサーバ１５０に、情報閲覧や更新の要求を送信した場合や、通信装置１４０がトラフィックの宛先を、同じ集約グループに属する端末１７０とアプリケーションの組合せに対応する他のサーバ１５０に変更した場合においても、サーバ１５０は端末１７０からの情報の閲覧や更新の要求に応答して、端末１７０から要求された処理を行う。更に、サーバ１５０間でデータやアプリケーション等を同期する際には、リソース管理サーバ１１０からの指示に従う。また、本実施例のサーバ１５０は仮想的に実装されたサーバでもよい。
【００４１】
アクセスポイント（図中ＡＰ）１６０は、ＷｉＦｉや３Ｇ、ＬＴＥなどの電波を送受信する機能と、有線で構成されるネットワーク１３０と接続してトラフィックを送受信する機能を持つ。アクセスポイント１６０は、ローカルＩＰアドレスとグローバルＩＰアドレスとを相互変換するＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）の機能、または一つのグローバルＩＰアドレスと複数のＩＰアドレスを相互変換するＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  ａｎｄ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）の機能などを持つ。
【００４２】
端末１７０は、携帯、スマートフォン、タブレット、ＰＣ等の計算機である。アクセスポイント１６０を経由して、通信装置１４０、サービスルックアップサーバ１２０、及び、ネットワーク制御サーバ１００に接続する。
【００４３】
端末１７０は、画面表示及びシステム操作の機能を備えており、端末１７０の利用者は、サーバ１５０で提供されるソフトウェアリソースの情報を更新、削除、及び、閲覧することができる。端末１７０は、アクセスポイント１６０を経由することなく、ネットワーク１３０、または、通信装置１４０に接続してもよい。
【００４４】
図３は、サーバ１５０の一例を示すブロック図である。サーバ１５０は、ひとつの計算機で構成することもできるが、図３で示すように、複数の計算機１８０−１〜１８０−ｎを通信装置１４０−１に接続し、各計算機１８０で端末１７０のユーザが利用するソフトウェアリソースを提供することができる。この場合、符号１５０−１はノードとして機能する。そして、ノード１５０−１と通信装置１４０−１を合わせてデータセンタ１５０００−１として機能することができる。なお、計算機１８０は仮想計算機で構成することができる。
【００４５】
図２Ａ、図２Ｂは、本実施例におけるネットワーク制御サーバ１００の機能構成を示すブロック図である。なお、図２Ａは、ネットワーク制御サーバの構成例を示すブロック図である。また、図２Ｂは、ネットワーク制御サーバのデータ記憶部２３０の構成例を示すブロック図である。
【００４６】
ネットワーク制御サーバ１００は、プロセッサ２１、メモリ２２、通信ＩＦ２５０、データ記憶部２３０、及び、制御部２１１を備える。
【００４７】
通信ＩＦ２５０は、直接あるいはＥＭＳ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を介して、ネットワーク１３０の通信装置１４０に通信経路を設定、削除、又は変更する。また、通信ＩＦ２５０は、通信装置１４０が保持する情報を送信する指示を含むメッセージを、通信装置１４０に送信する。そして、通信ＩＦ２５０は、情報を含むメッセージを通信装置１４０から受信する。
【００４８】
データ記憶部２３０は、制御部２１１によって値の参照または更新が行われる。データ記憶部２３０は、ネットワーク制御サーバ１００に備わる不揮発性の記憶装置等に構築される。
【００４９】
データ記憶部２３０は、集約グループ情報記憶部２３１、経路情報記憶部２３２、トポロジ情報記憶部２３３、端末・アプリ情報記憶部２３４を備える。以下にデータ記憶部２３０が保持する情報を示す。
【００５０】
集約グループ情報記憶部２３１は、端末１７０とアプリケーションの組合せのうち、特徴が類似（または一致）するもの同士を集約したグループの情報を保持する記憶部である。
【００５１】
特徴が類似するとは、ソフトウェアリソースが提供されるサーバ１５０の識別子が同じである、または、ソフトウェアリソースが提供されるサーバ１５０の識別子が同じで、かつ、端末１７０が要求する通信遅延や優先度などの通信特性が同等であることを示す。例えば、通信特性情報のうち通信遅延が閾値（例えば、３０ｍｓ）以下で、帯域が閾値（例えば、２００Ｍｂｐｓ）以上であれば特徴は類似する、と判定することができる。
【００５２】
集約グループ情報記憶部２３１は、図２Ｂで示すように、後述する集約グループ情報テーブル１３００、集約グループ変更コスト情報テーブル１４００を保持する。
【００５３】
経路情報記憶部２３２は、通信装置１４０に設定する宛先や通信経路の情報を、集約グループ毎、または、ユーザとアプリケーションの組合せ毎に保持する記憶部である。
【００５４】
集約グループ情報記憶部２３１は、図２Ｂで示すように、後述する集約グループ宛先情報テーブル１５００、及び、集約グループ宛先変更情報テーブル１９００を保持する。
【００５５】
トポロジ情報記憶部２３３は、通信装置１４０間の通信遅延などの通信特性と、アクセスポイント１６０と通信装置１４０間の通信特性の情報を保持する記憶部である。
【００５６】
トポロジ情報記憶部２３３は、図２Ｂで示すように、後述する通信装置間通信特性情報テーブル１７００、及びアクセスポイント−通信装置間通信特性情報テーブル１８００を保持する。
【００５７】
端末・アプリ情報記憶部２３４は、端末１７０とアプリケーションの組合せ毎に要求される通信特性、及び、端末とアプリケーションの組合せ毎に、ソフトウェアリソースが提供されるサーバの識別子等を保持する記憶部である。
【００５８】
端末・アプリ情報記憶部２３４は、後述する要求通信特性情報テーブル１１００、リソース提供位置情報テーブル１２００を保持する。
【００５９】
制御部２１１は、データ記憶部２３０に保持される各種テーブルの値を参照し、各端末１７０とアプリケーションの組合せ毎に対応する集約グループを判定する。そして、制御部２１１は通信装置１４０に設定が必要か否かを判定し、設定が必要な場合には、宛先、通信経路、及び、帯域等を計算して、通信装置１４０に指示する。また、制御部２１１は、リソース管理サーバ１１０から、要求される通信特性やソフトウェアリソースの提供位置などの情報を受信する。なお、帯域は、実測値や理論値を適宜採用することができる。
【００６０】
また、制御部２１１は、リソース管理サーバ１１０に対して、ソフトウェアリソースを提供できるサーバの識別子の組合せ、及び、端末が接続するサーバの変更などを送信する。また、制御部２１１は、サービスルックアップサーバ１２０に対して、ドメイン名とＩＰアドレスの組合せを送信する。
【００６１】
制御部２１１は、図２Ａのように、集約グループ判断部２０１、集約グループアドレス管理部２０２、集約グループ生成・変更部２０４、端末・アプリ管理部２０５、通信特性計算・計測部２０６、経路・リソース計算部２０８、経路・宛先設定部２０９の機能を含む。
【００６２】
集約グループ判断部２０１は、端末１７０とアプリケーションの組合せ毎に、要求通信特性情報等に基づいて集約グループを判断する機能である。
【００６３】
集約グループアドレス管理部２０２は、通信装置１４０毎に、集約グループに対して宛先と送信元のアドレス情報を生成する機能を含む。
【００６４】
集約グループ生成・変更部２０４は、新しい集約グループを生成する、または既存の集約グループのアドレス等を変更、または削除する機能である。
【００６５】
端末・アプリ管理部２０５は、端末１７０とアプリケーションの組合せの属する集約グループが変更された際に、端末１７０とアプリケーションの組合せのアドレスを生成、削除する機能である。
【００６６】
通信特性計算・計測部２０６は、通信装置１４０間、及びアクセスポイント１６０と通信装置１４０との間の、通信遅延等の通信特性を計測、または計算する機能である。
【００６７】
経路・リソース計算部２０８は、通信装置１４０がトラフィックを転送するポートを算出し、また、通信装置１４０が接続するネットワーク１３０がＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）やＭＰＬＳ−ＴＰ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｆｉｌｅ）などの帯域を予約可能なネットワークである場合に、帯域を計算する機能を持つ。
【００６８】
経路・宛先設定部２０９は、通信装置１４０に対して、トラフィックの転送や廃棄または、レイヤ２、レイヤ３、レイヤ４のパケットのヘッダーの変更等を設定する。
【００６９】
メッセージ送受信部２１０は、経路・宛先設定部２０９によって生成されたデータに基づいて、トラフィックの転送、廃棄、レイヤ２、レイヤ３、レイヤ４のパケットのヘッダーの変更等を処理するための設定、設定変更、又は、設定を削除するためのメッセージを作成し、通信ＩＦ２１０を介してノード１５０に送信する。
【００７０】
また、メッセージ送受信部２１０は、通信ＩＦ２５０が通信装置１４０の情報に関するメッセージを、通信装置１４０から収集した際、収集されたメッセージを解釈し、通信特性計算・計測部２０６、集約グループ判断部２０１及び経路・リソース計算部２０８に送信する。
【００７１】
また、メッセージ送受信部２１０は、リソース管理サーバ１１０から、要求される通信特性やソフトウェアリソースの提供位置などの情報を受信し、また、リソース管理サーバ１１０に対して、ソフトウェアリソースを提供できるサーバの識別子の組合せ、端末１７０が接続するサーバの変更などを送信する。
【００７２】
また、メッセージ送受信部２１０は、サービスルックアップサーバ１２０に対して、ドメイン名とＩＰアドレスの組合せを送信する。
【００７３】
制御部２１１の各機能部はプログラムとしてメモリ２２にロードされる。プロセッサ２１は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ２１は、集約グループ判断プログラムに従って動作することで集約グループ判断部２０１として機能する。他のプログラムについても同様である。さらに、プロセッサ２１は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００７４】
制御部２１１の各機能を実現するプログラム、テーブル等の情報は、データ記憶部２０３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００７５】
＜データ記憶部＞
以下、本実施例において、データ記憶部２３０が管理する情報について説明する。
【００７６】
＜集約グループ情報記憶部２３１＞
まず、図２Ｂで示すように、集約グループ情報記憶部２３１が管理する、集約グループ情報テーブル１３００、及び、集約グループ変更コスト情報テーブル１４００について説明する。
【００７７】
図４は、集約グループ情報テーブル１３００を示す説明図である。
【００７８】
集約グループ情報テーブル１３００は、集約グループ１３０１、リソース提供サーバ１３０２、通信特性情報１３０３、１３０４、端末１３０５、アプリ１３０６、コスト１３０７からひとつのレコードが構成される。
【００７９】
集約グループ１３０１は、集約グループの識別子であり、後述のソフトウェアリソースの提供位置が同じで、通信特性情報が類似する端末１７０とアプリケーションの組合せをグルーピングして管理するために用いる。
【００８０】
リソース提供サーバ１３０２は、ソフトウェアリソースを提供するサーバ１５０の識別子を格納する。識別子としては、例えば、ドメイン名である。通信特性情報は、集約グループに属するサーバ１５０間の通信特性を表わしており、通信遅延１３０３と、帯域１３０４に分類される。通信遅延はサーバ１５０間のＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）を示す。３つ以上のサーバ１５０が含まれる場合には、各サーバ１５０間のＲＴＴの最大値を示す。帯域はサーバ１５０間で流せるトラフィック量（ビットレート）を示す。３つ以上のサーバ１５０が含まれる場合には、各サーバ１５０間の帯域の最小値を示す。
【００８１】
端末１３０５は、携帯、スマートフォン、タブレット、ＰＣ等の計算機を一意に特定する識別子であり、リソース管理サーバ１１０などによって決定される端末１７０に固有の値であり、端末１７０の移動や再起動などによって変更しない不変値である。アプリ１３０６は、アプリケーションの識別子であり、リソース管理サーバ１１０などによって決定されるアプリケーション固有の値である。コスト１３０７は、集約グループを選択する指標の一つであり、集約グループを使用することに伴う経済的な負担を示す。すなわち、コストはサーバ１５０のプロセッサやメモリやストレージを使用することに伴うコストや、サーバ１５０間のネットワークの帯域を使用することに伴うコストを含む。
【００８２】
以下にコストＣの計算方法を（１）式に例示する。
【００８３】
【数１】
0005944537.tif 000002
コストＣはサーバ１５０やストレージのコストＣｓと、ネットワークのコストＣｎの和で算出される。
【００８４】
ここで、サーバ１５０やストレージ（データ記憶部２３０）等サーバ１５０側のコストＣｓは、次の（２）式で算出される。
【００８５】
【数２】
0005944537.tif 000003
ここで、Ａ、Ａ’はそれぞれ、現在のＣＰＵ使用量、ＣＰＵの総量であり、Ｂ、Ｂ’は、それぞれ、メインメモリの使用量、メインメモリ総量であり、Ｄ、Ｄ’はディスクストレージ使用量、ディクスストレージ総量である。α、β、γは０〜１の所定の係数である。
【００８６】
次に、ネットワークのコストＣｎの計算方法を（３）式に示す。ここでは、現用経路と予備経路が存在する場合を示す。予備経路が存在する場合には、予備経路に関する係数を０にすることによって、現用経路のみの場合のコストを計算することができる。
コストＣｎは、
【００８７】
【数３】
0005944537.tif 000004
によって算出される。
ここで、ａ、ｖは余剰帯域の有無、ｂ、ｗは遅延制約、ｃ、ｘはdisjoint、ｄ、ｙは帯域有効活用、ｅ、ｚは負荷分散に関する項である。Disjointとは、単一障害による障害断を回避するため、現用経路と予備経路が同じリンクを経由しないことである。ａ、ｂ、ｃ、ｄ、ｅは重み係数であり、ｖ、ｗ、ｘ、ｙ、ｚは、以下の（４）〜（６）式によって算出される関数である。
【００８８】
以下の式において、ｌはリンク、bｌ、ｒはそれぞれリンクｌの余剰帯域、および契約帯域を示す。dａ、dｂ、d’はそれぞれ現用パスの遅延、予備パスの遅延、および遅延制約を示す。ｍlはリンクlのメトリックであり、メトリックｍlには、多くのパスを収容可能とするＥｘｐｏｎｅｎｔ法などを用いることができる。
【００８９】
Ｅｘｐｏｎｅｎｔ法において、メトリックｍlはリンクｌの余剰帯域の物理帯域に対する割合の関数として算出される。Ｌａ、Ｌｂはそれぞれ現用パスが経由するリンクの集合、予備パスが経由するリンクの集合である。余剰帯域の有無、遅延制約、disjointの制約条件を満たす経路が選択される必要十分条件は、コストＣｎが下記の（７）式を満たすことである。
【００９０】
【数４】
0005944537.tif 000005
【００９１】
【数５】
0005944537.tif 000006
【００９２】
【数６】
0005944537.tif 000007
【００９３】
【数７】
0005944537.tif 000008
【００９４】
【数８】
0005944537.tif 000009
これによって、遅延制約やdisjointを保ちつつ、余剰帯域が少ないリンクを迂回して負荷分散することができる。
【００９５】
集約グループ情報テーブル１３００によって、ネットワーク制御サーバ１００は、サーバ提供位置が同じで、通信特性情報が類似する、端末１７０とアプリケーションの組合せをグルーピングして管理することができる。そして、ネットワーク制御サーバ１００は、通信装置１４０への設定メッセージを集約グループ毎にまとめて送信することによって、設定メッセージの量を削減することができる。その結果、ネットワーク制御サーバ１００と、通信装置１４０のＣＰＵやメモリの負荷を下げることができる。
【００９６】
また、集約グループ情報テーブル１３００において、サーバ１５０と通信特性情報の両方を管理することによって、ネットワーク制御サーバ１００は、後述の要求通信特性情報テーブル１１００と照らし合わせることによって、端末１７０とアプリケーションの組合せ毎に必要となる通信特性を考慮して、端末１７０とアプリケーションの組合せをどの集約グループにするかを判断できる。
【００９７】
さらに、集約グループ情報テーブル１３００において、ネットワーク制御サーバ１００は、経済的な負担を考慮して、集約グループ毎にコストを管理することによって、端末１７０とアプリケーションの組合せをどの集約グループにするかを判断できる。また、コストの値Ｃを動的に変更することによって、負荷分散を行うことができる。
【００９８】
図５は、集約グループ変更コスト情報テーブル１４００を示す説明図である。
【００９９】
集約グループ変更コスト情報テーブル１４００は、端末１４０１、アプリ１４０２、変更コスト１４０３を含むレコードで構成される。
【０１００】
変更コスト１４０３は、ソフトウェアリソースを提供するサーバ１５０を変更することに対するネットワーク１３０やサーバの負荷、または、経済的な負担を示す。変更コストは、後述の要求通信特性情報テーブル１１００の保管データ量と正の相関を持つ。例えば、保管データ量が小さい端末１７０とアプリケーションの組合せに対しては、サーバ１５０の変更に伴って転送するデータ量が少ないため、変更コスト１４０３は小さくなる。ネットワーク制御サーバ１００は、例えば、変更コストが小さい端末１７０とアプリケーションの組合せに対して、集約グループを頻繁に変更するように判断する。これによって、保管データ量が少ないゲーム等のアプリケーションにおいては、集約グループを頻繁に変更することによって、端末１７０の移動に対して速やかに通信遅延が小さい集約グループに変更し、保管データ量が多い動画配信等のアプリケーションにおいては、集約グループを頻繁に変更しないことによって、集約グループの移動に伴う過負荷を回避することができる。
【０１０１】
ここで、変更コストＣｍの計算方法を（９）式に例示する。
【０１０２】
【数９】
0005944537.tif 000010
ここで、Ｎは集約グループ変更に伴ってデータが移動するサーバｉの集合である。Ａiは、サーバｉの移動するデータ量であり、ｂｉは移動するサーバｉのデータを移動する際に経由する経路で使用可能な帯域であり、δｉは０〜１の所定の係数である。
【０１０３】
＜経路情報記憶部２３２＞
次に、経路情報記憶部２３２が管理する、集約グループ宛先情報テーブル１５００、及び、集約グループ宛先変更情報テーブル１９００について説明する。
【０１０４】
図６は、集約グループ宛先情報テーブル１５００を示す説明図である。
【０１０５】
集約グループ宛先情報テーブル１５００は、管理情報１５０１〜１５０３、ルール１５０４〜１５０７、及び、アクション１５０８〜１５１１を含んでひとつのレコードが構成される。
【０１０６】
管理情報は、集約グループ１５０１、設定対象通信装置１５０２、転送先通信装置１５０３を含む。集約グループ１５０１は、アクセス先のサーバ１５０とアプリケーション（ＴＣＰポート番号）が同一の端末１７０をまとめるグループの識別子を格納する。設定対象通信装置１５０２は、ルールとアクションを設定する通信装置１４０を示す識別子である。上記識別子とは、例えば、運用管理用のＩＰアドレスなどである。転送先通信装置１５０３は、設定対象通信装置１５０２にトラフィックが流れてきた場合に、上記トラフィックを転送する宛先となる通信装置１４０の識別子である。
【０１０７】
ルールは、設定対象通信装置１５０２にトラフィックが流れてきたときに、処理方法を決定するための条件である。ルールは、宛先アドレス１５０４、ポート番号１５０５、送信元アドレス１５０６、優先度１５０７を含む。
【０１０８】
宛先アドレス１５０４は、受信したトラフィックの宛先ＩＰアドレスである。ポート番号は、受信したトラフィックのＴＣＰやＵＤＰのポート番号で、アプリケーションを特定する。ポート番号は、宛先ポート番号、または、送り元ポート番号のいずれか、または、その両方を含む。送信元アドレス１５０６は、受信したトラフィックの送信元ＩＰアドレスである。優先度１５０７は、トラフィックが複数の条件に合致した際に、どの処理を行うかを設定対象通信装置が判断するための優先度である。
【０１０９】
アクションは、設定対象通信装置１５０２にトラフィックが流れてきたときの処理方法である。アクションは、出力宛先アドレス１５０８、出力ポート番号１５０９、出力送信元アドレス１５１０、出力ポート１５１１を含む。出力宛先アドレス１５０８は、設定対象通信装置１５０２に入力されたトラフィックを他のサーバ１５０へ転送する際に設定する、トラフィックの宛先ＩＰアドレスである。出力宛先アドレス１５０８が同行の宛先アドレス１５０４と異なる場合には、トラフィックの宛先ＩＰアドレスを変更することを意味する。
【０１１０】
出力ポート番号１５０９は、出力宛先アドレス１５０８と同様に、トラフィックを転送する際に設定する、ＴＣＰまたはＵＤＰのトラフィックのポート番号である。出力送信元アドレス１５１０は、出力宛先アドレス１５０８と同様に、設定対象に入ってきたトラフィックを転送する際に設定する、トラフィックの送信元アドレスである。出力ポート１５１１は、通信装置１４０が転送する際にトラフィックを送信するポートの識別子を示す。このポートは、通信装置１４０が有する複数のポートのうち、どのポートからトラフィックを出力するかを特定する。
【０１１１】
ソフトウェアリソースを提供するサーバ１５０が同じ端末１７０とアプリケーションの組合せを集約グループとして管理することによって、集約グループ宛先情報テーブル１５００において、端末１７０のＩＰアドレスではなく、サーバのＩＰアドレスに基づいてルールとアクションを規定することができる。これによって、ネットワーク制御サーバ１００は、大量になる端末１７０のＩＰアドレス毎にルールとアクションを規定する場合に比べて、設定対象通信装置１５０２に送信するメッセージを削減することができる。その結果、ネットワーク制御サーバ１００の処理負荷を軽減することができる。
【０１１２】
また、設定対象通信装置１５０２においては、大量の端末１７０のＩＰアドレス毎にルールとアクションを規定する場合に比べて、保持するＩＰアドレス数が減少し、テーブルサイズが減少するため、設定対象通信装置１５０２がトラフィックの転送や廃棄処理を行う際の処理負荷を軽減することができる。
【０１１３】
さらに、ＩＰアドレスとポート番号１５０５は有限であり、特にＩＰｖ4ではＩＰアドレス数が枯渇している。端末１７０とアプリケーションの組合せではなく、集約グループに対して、ルールとアクションを規定することによって、使用するＩＰアドレスとポート番号数の肥大化を軽減することができる。
【０１１４】
図７は、集約グループ宛先変更情報テーブル１９００を示す説明図である。
【０１１５】
集約グループ宛先変更情報テーブル１９００は、ある端末１７０とアプリケーションの組合せに対して、ソフトウェアリソースを提供するサーバ１５０の移動に伴って、所属する集約グループが変更された上記端末１７０とアプリケーションの組合せを管理し、元の集約グループとは異なるアクションを管理するための情報である。
【０１１６】
集約グループ宛先変更情報テーブル１９００は、管理情報１９０１〜１９０６、ルール１９０７〜１９１０、及び、アクション１９１１〜１９１４を含んでひとつのレコードが構成される。管理情報１９０１〜１９０６は、端末１９０１、アプリ１９０２、変更前集約グループ１９０３、変更後集約グループ１９０４、設定対象通信装置１９０５、及び、転送先通信装置１９０６を含む。変更前集約グループ１９０３は、ソフトウェアリソースの移動前に端末１７０とアプリケーションの組合せが所属していた集約グループの識別子である。変更後集約グループ１９０４は、ソフトウェアリソースの移動後に、端末１７０とアプリケーションの組合せが属する集約グループの識別子である。
【０１１７】
ルール１９０７〜１９１０、及び、アクション１９１１〜１９１４は、集約グループ宛先情報テーブル１５００のルール１５０４〜１５０７、及び、アクション１５０８〜１５１１と同じである。
【０１１８】
通信装置１４０は、基本的に、端末１７０のＩＰアドレスではなく、宛先または送信元のサーバのＩＰアドレスとポート番号を元に、処理方法を判断する。しかし、ソフトウェアリソースが異なるサーバ１５０に移動して、集約グループが変更された場合、端末１７０がサービスルックアップサーバ１２０に問い合わせて送信先ＩＰアドレスの変更を行うまでの間、端末１７０が送信するトラフィックのＩＰアドレスは、元の集約グループに属するサーバのＩＰアドレスである。そのため、端末１７０はサービスルックアップサーバ１２０に問い合わせるまで、ソフトウェアリソースが提供されるサーバ１５０に接続できない。
【０１１９】
そこで、集約グループ宛先変更情報テーブル１９００によって、集約グループが変更された端末１７０とアプリケーションの組合せを、一定期間の間、端末１７０のＩＰアドレスやポート番号を元に、集約グループ宛先情報テーブル１５００に規定されるアクションとは異なるアクションを、設定対象通信装置１９０５に設定可能になる。
【０１２０】
これによって、端末１７０がサービスルックアップを行うまでの間、ネットワーク制御サーバ１００は、通信装置１４０に、端末１７０のＩＰアドレスに基づいて通信経路を変更する指示を送ることによって、ソフトウェアリソースを提供するサーバ１５０の移動後に、端末１７０がサービスルックアップサーバに問い合わせるまでの間も、端末からのトラフィックが移動先のサーバに転送されるように設定することができる。
【０１２１】
＜トポロジ情報記憶部２３３＞
次に、トポロジ情報記憶部２３３が管理する、通信装置間通信特性情報テーブル１７００、及び、アクセスポイント−通信装置間通信特性情報テーブル１８００について説明する。
【０１２２】
図８は、通信装置間通信特性情報テーブル１７００を示す説明図である。通信装置間通信特性情報テーブル１７００は、通信装置１４０間の通信特性を示すもので、経路・リソース計算部２０８によって計測、または算出される。通信装置間通信特性情報テーブル１７００は、通信装置１（１７０１）、通信装置２（１７０２）、通信遅延１７０３、帯域１７０４を含んでひとつのレコードが構成される。通信装置１（１７０１）、通信装置２（１７０２）は、通信装置１４０の識別子である。
【０１２３】
通信遅延１７０３は、通信装置１と通信装置２の間のＲＴＴである。帯域１７０４は通信装置１と通信装置２の間に流せるトラフィック量（ビットレート）である。
【０１２４】
通信装置間通信特性情報テーブル１７００の通信遅延１７０３と帯域１７０４は、通信装置１４０間、または通信装置１４０に接続するサーバ１５０間でＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）等を用いて計測して求めることができる。なお、ＲＴＴは、測定値の内、最小値や平均値のうち予め設定した値を用いる。また、ビットレートについても、実測値や平均値あるいは理論値のうち予め設定した値を用いる。
【０１２５】
図９は、アクセスポイント−通信装置間通信特性情報テーブル１８００を示す説明図である。アクセスポイント−通信装置間通信特性情報テーブル１８００は、通信装置１４０間の通信特性を示すもので、経路・リソース計算部２０８によって計測、または算出される。
【０１２６】
通信装置間通信特性情報テーブル１８００は、アクセスポイント１８０１、通信装置１８０２、通信遅延１８０３、及び、帯域１８０４を含んでひとつのレコードが構成される。アクセスポイント１８０１は、アクセスポイント１６０の識別子である。通信遅延１８０３はアクセスポイント１６０と通信装置１４０間のＲＴＴである。帯域１８０４はアクセスポイント１６０と通信装置１４０の間に流せるトラフィック量（ビットレート）である。
【０１２７】
アクセスポイント−通信装置間通信特性情報テーブル１８００の通信遅延１８０３と帯域１８０４は、通信装置とアクセスポイント間、または通信装置やアクセスポイントに接続するサーバ間でＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）等を用いて計測して求めることができる。なお、ＲＴＴは、測定値の内、最小値や平均値のうち予め設定した値を用いる。また、ビットレートについても、実測値や平均値あるいは理論値のうち予め設定した値を用いる。
【０１２８】
通信装置間通信特性情報テーブル１７００、アクセスポイント−通信装置間通信特性情報テーブル１８００、及び、後述の要求通信特性情報テーブル１１００の要求遅延と同テーブルのアクセスポイント１８０１によってネットワーク制御サーバ１００は、端末１７０とアプリケーションの組合せ毎に、要求遅延を満たす通信装置１４０、またはその候補を選択することができる。
【０１２９】
＜端末・アプリ情報記憶部２３４＞
次に、端末・アプリ情報記憶部２３４が管理する、要求通信特性情報テーブル１１００、及び、リソース提供位置情報テーブル１２００について説明する。
【０１３０】
図１０は、要求通信特性情報テーブル１１００を示す説明図である。要求通信特性情報テーブル１１００は、端末１７０とアプリケーションの組合せの情報を示し、端末１７０とアプリケーションの組合せをどの集約グループに属させるかを判断するために用いる。
【０１３１】
要求通信特性情報テーブル１１００は、端末・アプリ基本情報１１０１〜１１０５、切替可否フラグ１１０８、要求遅延１１０７〜１１０８、要求優先度１１０９、要求帯域１１１０〜１１１１、保管データ量１１１２、及び、アクセスポイント１１１３を含んでひとつのレコードが構成される。
【０１３２】
端末・アプリ基本情報１１０１〜１１０５は、端末１１０１、端末アドレス１１０２、ポート番号１１０３、アプリ１１０４、セッション１１０５、切替可否フラグ１１０６を含む。端末１１０１は、端末１７０の識別子を格納する。端末アドレス１１０２は端末１７０のＩＰアドレスを示す。ポート番号１１０３は、端末１７０から送信されるトラフィックのＴＣＰまたはＵＤＰのポート番号を示す。セッション１１０５は、端末１７０とアプリケーションの組合せ毎に所有するセッションであり、例えば、クッキーなどである。
【０１３３】
切替可否フラグ１１０６は、同一の集約グループに属するサーバ１５０に通信装置１４０が宛先を変更してよいか否かを示す。
【０１３４】
要求遅延は、通信遅延（端末−サーバ間）１１０７と通信遅延（サーバ間）１１０８を含む。通信遅延（端末―サーバ間）１１０７は、アクセスポイント１０６とサーバ１５０の間に要求される通信遅延の閾値を示し、この閾値以下の値を要求することを意味する。通信遅延（サーバ間）１１０８は、サーバ１５０間に要求される通信遅延の閾値を示し、この閾値以下の値を要求することを意味する。要求優先度１１０９は、ＱｏＳを行う際の優先度が格納される。
【０１３５】
要求帯域は、帯域（端末−サーバ間）１１１０と帯域（サーバ間）１１１１を含む。帯域（端末―サーバ間）１１１０は、アクセスポイント１６０とサーバ１５０間の間に要求される帯域の閾値を示し、この閾値以上の値を要求することを意味する。帯域（サーバ間）１１１１は、サーバ１５０間に要求される帯域の閾値を示し、この閾値以上の値を要求することを意味する。
【０１３６】
保管データ量１１１２は、サーバ１５０で保持するデータ量（バイト）を示す。アクセスポイント１１１３は、端末１７０とアプリケーションの組合せが、最も頻繁に接続するアクセスポイント１６０の識別子を示す。
【０１３７】
図１１は、リソース提供位置情報テーブル１２００を示す説明図である。リソース提供位置情報テーブル１２００は、ネットワーク制御サーバ１００が、リソース管理サーバ１１０から受け取る情報であり、ソフトウェアリソースが提供されているサーバ１５０の位置を示す。リソース提供位置情報テーブル１２００は、集約グループ１２０１、端末１２０２、アプリ１２０３、リソース提供サーバ１２０４、アドレス１２０５、及び、ポート番号１２０６を含む。集約グループ１２０１、端末１２０２、アプリ１２０３にはそれぞれの識別子が格納される。
【０１３８】
リソース提供サーバ１２０４は、端末１７０とアプリケーションの組合せ毎に、ソフトウェアリソースが提供されているサーバ１５０の識別子を示す。リソース提供サーバ１２０４、アドレス１２０５、ポート番号１２０６には、それぞれ複数の値を持つ場合があるが、リソース提供サーバ１２０４、アドレス１２０５、ポート番号１２０６はそれぞれ、所定の順序にて対応づけられて管理される。
【０１３９】
＜設定情報＞
次に、制御部２１１が、データ記憶部２３０で管理されるデータを元に作成する、名前解決情報テーブル１６００、及び、設定情報テーブル１９５０について説明する。
【０１４０】
図１２は、名前解決情報テーブル１６００を示す説明図である。
【０１４１】
名前解決情報テーブル１６００は、後述する図１４のシーケンス２１３５において、ネットワーク制御サーバ１００が、リソース管理サーバ１１０に送信する名前解決要求に含まれる。名前解決情報テーブル１６００には、集約グループを格納する集約グループ１６０１と、集約グループに対応するサーバ１５０の名称または識別子を格納するリソース提供サーバ１６０２と、当該サーバ１５０のＩＰアドレスを格納するアドレス１６０３、及び、アプリケーションが使用するポート番号１６０４が含まれる。なお、サーバ１５０の名称または識別子は、例えば、ＵＲＬやドメイン名で構成することができる。
【０１４２】
図１３は、設定情報テーブル１９５０を示す説明図である。設定情報テーブル１９５０は、後述する図１４のシーケンス２１３０において、ネットワーク制御サーバ１００が、通信装置１４０−１、及び１４０−２毎に生成し、後述する図１４のシーケンス２１３０において、ネットワーク制御サーバ１００が、通信装置１４０−１、及び１４０−２にそれぞれ送信する設定変更に含まれる。
【０１４３】
設定情報テーブル１９５０には、ルール１９５１〜１９５４とアクション１９５５〜１９５８が含まれる。ルール１９５１〜１９５４は、トラフィックを受信した通信装置１４０が処理方法を判断するための条件を示す。ルール１９５１〜１９５４には、宛先アドレス１９５１、ポート番号１９５２、送信元アドレス１９５３、優先度１９５４が含まれる。宛先アドレス１９５１は、受信したトラフィックのヘッダーに含まれる宛先ＩＰアドレスを示す。ポート番号１９５２は、受信したトラフィックのヘッダーに含まれるＴＣＰやＵＤＰなどのポート番号を示す。送信元アドレス１９５３は、受信したトラフィックのヘッダーに含まれる送信元ＩＰアドレスを示す。優先度１９５４は、受信したトラフィックが複数のルールに当てはまる場合に、どのルールに対応する処理（アクション）を優先的に適用するかを判断するための値を示す。ただし、通信の状態が輻輳、障害、または、メンテナンスによって、正常には通信ができない場合は、正常には通信できないルールをいて最も優先度が高いルールに対応する処理（アクション）を適用する。
【０１４４】
宛先アドレス１９５５は、転送する際にトラフィックのヘッダーにつける宛先ＩＰアドレスを示す。ポート番号１９５６は、転送する際にトラフィックのヘッダーにつけるＴＣＰやＵＤＰなどのポート番号を示す。送信元アドレス１９５７は、転送する際にトラフィックのヘッダーにつける送信元ＩＰアドレスを示す。出力ポート１９５８は、通信装置１４０が出力するポートの位置を特定する番号である。
【０１４５】
＜シーケンスの説明＞
図１４Ａ、図１４Ｂは、本実施例における集約グループ判断、及び、宛先と経路切替の設定を行う処理を示すシーケンス図である。
【０１４６】
シーケンス２０１０において、端末１７０−１は、サービスルックアップを行う。サービスルックアップとは、サーバ１５０で提供されるソフトウェアリソースを、端末１７０の画面で閲覧や更新する上で、端末１７０はサーバ１５０−１または１５０−２に接続する必要があり、端末１７０が接続するサーバ１５０のＩＰアドレスを問い合わせることを示す。サービスルックアップは、端末１７０の利用者によるアプリケーションの起動または再起動した際、あるいは、端末１７０が備えるタイマー機能によって定期的に起動する。
【０１４７】
定期的にルックアップを起動することによって、一定期間（端末１７０がルックアップを実行する期間より長い時間）後に、図２３のステップ５６３０において、ネットワーク制御サーバ１００は、端末・アプリ毎設定情報を削除することができる。
【０１４８】
シーケンス２０２０において、端末１７０−１は、サービスルックアップサーバ１２０に名前解決要求を送信する。名前解決要求には、ソフトウェアリソースを提供するドメイン名が含まれる。本ドメイン名は、端末１７０とアプリケーションの組み合わせ毎に、一意に決まるソフトウェアリソースを提供するサーバ１５０の識別子である。
【０１４９】
シーケンス２０３０において、サービスルックアップサーバ１２０は、名前解決応答を、端末１７０−１に送信する。名前解決応答には、ドメイン名に対応するＩＰアドレス、及び、ポート番号が含まれる。サービスルックアップサーバ１２０が、問い合わせを受けた端末１７０とアプリケーションの組み合わせに対するドメイン名に対応するＩＰアドレス、及び、ポート番号を保持していない場合、サービスルックアップサーバ１２０は、デフォルトのサーバ１５０のＩＰアドレスを応答する。
【０１５０】
シーケンス２０４０において、サービスルックアップサーバ１２０は、名前解決要求受信通知をリソース管理サーバ１１０に送信する。名前解決要求受信通知には、シーケンス２０２０において名前解決要求の送信元のＩＰアドレス、及び、ポート番号、及び、ステップ２０３０において通知したサーバのＩＰアドレス、及び、ポート番号が含まれる。シーケンス２０２０、及び、シーケンス２０３０の両方とも過去に送受信したメッセージと同じである場合には、シーケンス２０４０は省略して良い。
【０１５１】
シーケンス２０５０において、リソース管理サーバ１１０は、リソース提供位置要求２０５０を、ネットワーク制御サーバ１００に通知する。図１１に示したリソース提供位置要求には、要求通信特性情報テーブル１１００が含まれる。
【０１５２】
ステップ２０６０において、ネットワーク制御サーバ１００は、リソース提供位置の判定を行う。リソース提供位置の判定では、ネットワーク制御サーバ１００が、要求通信特性情報テーブル１１００、通信装置間通信特性情報テーブル１７００、アクセスポイント−通信装置間通信特性情報テーブル１８００、及び、集約グループ情報テーブル１３００を参照して、リソース提供位置情報テーブル１２００を算出し、集約グループ情報テーブル１３００を更新する。
【０１５３】
＜集約グループ判断２０６０の処理＞
以下、図１４Ａのシーケンス２０６０で行われる処理を、図１９を用いて説明する。ここで、図１９は、集約グループ判断部２０１と集約グループ生成・変更部２０４が集約グループを判断する処理の一例を示すフローチャートである。
【０１５４】
まず、図１９では、ステップ５０１０において、ネットワーク制御サーバ１００のメッセージ送受信部２１０は、要求通信特性情報テーブル１１００を受信すると、集約グループ判断部２０１に渡す。
【０１５５】
ステップ５０２０において、集約グループ判断部２０１は、図４に示した要求通信特性情報テーブル１１００をメッセージ送受信部２１０から受信すると、集約グループ情報テーブル１３００を参照して、要件を満たす集約グループがあるか否かを判断する。
【０１５６】
集約グループ判断部２０１は、要求通信特性情報テーブル１１００の、端末・アプリ基本情報の端末１１０１、アプリ１１０４、切替可否フラグ、要求遅延の通信遅延（端末−サーバ間）１１０７、通信遅延（サーバ間）１１０８、保管データ量１１１２、及びアクセスポイント１１１３を取得する。
【０１５７】
集約グループ判断部２０１は、図４に示した集約グループ情報テーブル１３００の、通信特性情報の通信遅延１３０３が本ステップで取得した通信遅延（サーバ間）１１０８よりも小さく、かつ、通信特性情報の帯域１３０４が本ステップで取得した帯域（サーバ間）１１１１よりも大きい集約グループ１３０１、及び、ソフトウェアリソースを提供するサーバ１３０２を選択する。
【０１５８】
集約グループ判断部２０１は、図９に示したアクセスポイント−通信装置間通信特性情報テーブル１８００のアクセスポイント１８０１、及び、通信装置１８０２が、本ステップで取得した要求通信特性情報テーブル１１００のアクセスポイント１１１３である行の、通信遅延１８０３と帯域１８０４を取得する。さらに、上記通信遅延１８０３が、本ステップで取得した通信遅延（端末−サーバ間）１１０７よりも小さく、かつ、上記帯域が本ステップで取得した帯域（端末−サーバ間）１１１１よりも大きい行のアクセスポイント１８０１、通信装置１８０２、通信遅延１８０３、及び、帯域１８０４を取得する。取得したアクセスポイント１８０１、通信装置１８０２、通信遅延１８０３、帯域１８０４の候補を以下では、それぞれアクセスポイント候補、通信装置候補、通信遅延候補、帯域候補と呼ぶ。
【０１５９】
集約グループ判断部２０１は、図４に示した集約グループ情報テーブル１３００のリソース提供サーバ１３０２が、通信装置候補に含まれる行の集約グループ１３０１とコスト１３０７を取得する。以下では、取得した集約グループ１３０１とコスト１３０７を以下では、それぞれ、集約グループ候補、コスト候補と呼ぶ。
【０１６０】
集約グループ候補が一つ以上ある場合にはステップ５０４０に進む。集約グループ候補が一つも存在しない場合には、ステップ５０３０に進む。
【０１６１】
ステップ５０３０において、集約グループ生成・変更部２０４は、集約グループ情報テーブル１３００に新しい集約グループを追加する。以下では、追加した集約グループを新規集約グループと呼ぶ。
【０１６２】
集約グループ生成・変更部２０４は、集約グループ情報テーブル１３００の新規集約グループの行のリソース提供サーバ１３０２に、通信装置候補を追加する。通信装置候補が多数存在する場合には、通信遅延候補の合計が所定の閾値以下、または帯域候補の合計が所定の閾値よりも大きい通信装置候補の組合せを選択し、当該通信装置１４０に隣接するサーバを取得する。以下では、選択した通信装置候補を新規通信装置と呼び、取得したサーバ１５０を新規リソース提供サーバと呼ぶ。
【０１６３】
これによって、集約グループに登録されるリソース提供サーバ１３０２の数を減らすことができ、集約グループ内のリソース提供サーバの組合せ数で必要となるＩＰアドレスの数とポート番号の数の肥大化を抑えることができる。
【０１６４】
集約グループ生成・変更部２０４は、ステップ５０１０において取得した切替可否フラグ１１０６がＮＯになっており、通信装置候補が複数ある場合には、通信遅延候補が最小である通信装置を通信遅延候補、それに対応するサーバを新規リソース提供サーバとする。
【０１６５】
これによって、通信装置１４０が、リソース管理サーバ１１０から通知を受けることなく、障害や輻輳が発生した場合の宛先の変更や端末１７０が接続するアクセスポイントの変更に伴う宛先の変更を、通信装置１４０で自律的に行う端末１７０とアプリケーションの組合せと、自律的に行わない端末１７０とアプリケーションの組合せを共存させることができる。
【０１６６】
集約グループ生成・変更部２０４は、図８に示した通信装置間通信特性情報テーブル１７００の通信装置１（１７０１）、通信装置２（１７０２）が新規通信装置である行の通信遅延１７０３と帯域１７０４を取得し、取得した通信遅延１７０３の最大値を最大通信遅延、帯域１７０４の最小値を最小帯域として取得する。
【０１６７】
集約グループ生成・変更部２０４は、新規集約グループの行のリソース提供サーバ１３０２に、新規リソース提供サーバを追加し、通信遅延１３０３に最大通信遅延を追加し、帯域１３０４に最小帯域を追加し、端末１３０５にステップ５０１０で取得した端末１７０を、アプリ１３０６にステップ５０２０で取得したアプリを追加する。
【０１６８】
ステップ５０３０の処理を実施した後、ステップ５０８０に進む。
【０１６９】
ステップ５０４０において、集約グループ判断部２０１は、集約グループを変更するか否かを判断する。
【０１７０】
集約グループ判断部２０１は、集約グループ情報テーブル１３００の端末１３０５、及び、アプリ１３０６が、それぞれ、ステップ５０２０において取得した要求通信特性情報テーブル１１００の端末１１０１、アプリ１１０４である行が存在するか否かを判定し、存在する場合には同行の集約グループを取得する。以下では、取得した集約グループを既存集約グループと呼ぶ。
【０１７１】
集約グループ判断部２０１は、既存集約グループと同行の通信遅延１３０３、帯域１３０４、及びコスト１３０７と、ステップ５０２０において取得した通信遅延候補、帯域候補、コスト候補を比較する。既存集約グループと同行の通信遅延１３０３が通信遅延候補よりも大きい、または、既存集約グループと同行の帯域１３０４が帯域候補よりも小さい、または、既存集約グループと同行のコスト１３０７がコスト候補よりも大きい場合に、集約グループを変更すると判断する。
【０１７２】
なお、集約グループ判断部２０１は、図５に示した集約グループ変更コスト情報テーブル１４００の端末１４０１、アプリ１４０２が、要求通信特性情報テーブル１１００の端末１１０１、アプリ１１０４に一致する行の変更コスト１４０３を取得し、既存集約グループと同行のコストが、コスト候補と変更コスト１４０３の和よりも大きい場合に集約グループを変更すると判断してもよい。
【０１７３】
これによって、集約グループ判断部２０１は、集約グループの変更に伴う負荷を加味して集約グループ変更の要否を判断することができる。通信装置１４０間の通信遅延や帯域は短い期間で変動することに伴って、端末１７０とアプリケーションの組合せに対して最適な集約グループが頻繁に変更することを防ぐことができる。
【０１７４】
その結果、集約グループの変更によってソフトウェアリソースを提供するサーバ１５０が移動するために流れるトラフィックによって、ネットワーク１３０の帯域が消費されて、端末１７０とサーバ１５０間、またはサーバ１５０とサーバ１５０間の通信の帯域が圧迫されることを防ぐことができる。また、ソフトウェアリソースをサーバ１５０間で移動する際に、サーバ１５０がソフトウェアリソースを削除、追加することによるサーバ１５０のＣＰＵやメモリのリソースの圧迫を防ぐことができる。
【０１７５】
集約グループを変更すると判断した場合は、ステップ５０５０に進む。集約グループを変更しないと判断した場合は、ステップ５０４５に進む。
【０１７６】
ステップ５０４５において、集約グループ判断部２０１は、リソース提供位置を変更しないことを、メッセージ送受信部２１０を介してリソース管理サーバ１１０に通知する。例えば、集約グループ判断部２０１は、空のリソース提供位置情報テーブル１２００を、メッセージ送受信部２１０を介してリソース管理サーバ１１０に送信する。
【０１７７】
ステップ５０５０において、集約グループ判断部２０１は、ステップ５０４０において、既存集約グループと同行の通信遅延１３０３が通信遅延候補よりも大きい、または、既存集約グループと同行の帯域１３０４が帯域候補よりも小さい、または、既存集約グループと同行のコスト１３０７がコスト候補よりも大きいと判断した候補集約グループを、変更先集約グループとして取得する。
【０１７８】
ステップ５０６０において、集約グループ生成・変更部２０４は、変更先集約グループ、及び、ステップ５０２０において取得した端末１１０１、アプリ１１０４を、図１１に示したリソース提供位置情報テーブル１２００の新しい行の集約グループ１２０１、端末１２０２、及び、アプリ１２０３に追加し、同行のリソース提供サーバ１２０４に、集約グループ情報テーブル１３００の集約グループが変更先集約グループである行のリソース提供サーバを追記する。そして、集約グループ生成・変更部２０４は、リソース提供位置情報テーブル１２００の、同行のアドレス１２０５、ポート番号１２０６に、未使用のアドレスとポート番号の組合せであるＩＰアドレスと、ポート番号を追加する。
【０１７９】
ステップ５０７０において、集約グループ判断部２０１は、ステップ５０６０において追記したリソース提供位置情報テーブル１２００を、メッセージ送受信部２１０を介してリソース管理サーバ１１０に送信する。
【０１８０】
ステップ５０７０の処理を行った後、ネットワーク制御サーバ１００は、待機状態となり、図１４Ａのシーケンス２１１０において、宛先／経路設定要求を受信した際に、図２１のＣへ進む。
【０１８１】
ステップ５０８０において、集約グループ生成・変更部２０４は、リソース提供位置情報テーブル１２００を作成する。集約グループ生成・変更部２０４は、新規集約グループ、及び、ステップ５０２０において取得した端末１１０１、アプリ１１０４を、リソース提供位置情報テーブル１２００の新しい行の集約グループ１２０１、端末１２０２、及び、アプリ１２０３に追加し、同行のリソース提供サーバ１２０４に新規リソース提供サーバを追記し、同行のアドレス１２０５、ポート番号１２０６に、未使用のアドレス、及び、ポート番号を追加する。
【０１８２】
ステップ５０９０において、集約グループ判断部２０１は、ステップ５０８０において追記したリソース提供位置情報テーブル１２００を、メッセージ送受信部２１０を介してリソース管理サーバ１１０に送信する。
【０１８３】
ステップ５０９０の処理を行った後、ネットワーク制御サーバ１００は、待機状態となり、図１４Ａのシーケンス２１１０において、宛先／経路設定要求を受信した際に、図２０のＡへ進む。
【０１８４】
以上の処理により、ネットワーク制御サーバ１００は、端末１７０とソフトウェアの組合せ毎に要求する通信特性と、端末１７０のネットワーク１３０上の位置に基づいて集約グループを割り当てることができる。
【０１８５】
次に、図１４Ａのシーケンス２０７０において、ネットワーク制御サーバ１００は、リソース提供位置情報を、リソース管理サーバ１１０に送信する。リソース提供位置情報には、図１１に示したリソース提供位置情報テーブル１２００が含まれる。
【０１８６】
シーケンス２０８０において、リソース管理サーバ１１０は、リソース移動・複製要求２０８０を、リソース提供位置情報テーブル１２００で指定される、リソース提供サーバ１２０４（サーバ１５０−１、１５０−２）に送信する。
【０１８７】
シーケンス２０９０において、サーバ１５０−１は、リソース移動・複製要求で受け取ったメッセージに基づいて、サーバ１５０−２に、同メッセージで指定されるソフトウェアリソースを移動、または、複製する。ソフトウェアリソースを複製した場合、サーバ１５０−１とサーバ１５０−２は、同期することによって、いずれのサーバのリソースに対して端末１７０−１がデータを更新した場合においても、他方のサーバに更新が反映される。
【０１８８】
シーケンス２１００において、サーバ１５０−１、及び、サーバ１５０-２は、リソース管理サーバ１１０に対して、ソフトウェアリソースの移動、または、複製が完了したことを通知する。
【０１８９】
シーケンス２１１０において、リソース管理サーバ１１０は、宛先／経路設定要求を、ネットワーク制御サーバ１００に送信する。宛先／経路設定要求には、要求通信特性情報テーブル１１００が含まれる。なお、本シーケンスにおいては、シーケンス２１２０において、ネットワーク制御サーバ１００が受信した要求通信特性情報テーブル１１００を保存している場合には、要求通信特性情報テーブル１１００を送信する代わりに、端末・アプリ基本情報１１０１〜１１０５を送信してもよい。
【０１９０】
次に、シーケンス２１２０において、ネットワーク制御サーバ１００は、通信装置１４０に通信経路を設定するため、宛先／経路設定情報を生成する。
【０１９１】
＜宛先／経路設定情報生成２１２０＞
以下、シーケンス２１２０における処理を、図２０から図２４を用いて説明する。図２０と図２１は新しくソフトウェアリソースを追加する場合の宛先／経路設定情報生成の処理を示す説明図であり、図２２から図２４は端末１７０とアプリケーションの組合せが異なる集約グループに変更する場合の宛先／経路設定情報生成の処理を示す説明図である。
【０１９２】
図２０は、集約グループの追加時に集約グループアドレス管理部２０２が通信装置への設定情報を生成する処理の一例を示すフローチャートである。図２１は、集約グループの追加時に経路・宛先設定部２０９が経路と宛先を通信装置１４０に設定する処理の一例を示すフローチャートである。図２２は、集約グループの変更時に集約グループアドレス管理部２０２が通信装置１４０への設定情報を生成する処理の一例を示すフローチャートである。図２３は、集約グループの変更時に端末・アプリ管理部２０５が端末とアプリケーションの組合せ毎に集約グループアドレス管理部が通信装置への設定情報を生成する処理の一例を示すフローチャートである。図２４は、集約グループ変更時に経路・宛先設定部２０９が経路と宛先を通信装置に設定する処理の一例を示すフローチャートである。
【０１９３】
まず、図２０のステップ５１１０において、集約グループアドレス管理部２０２は、図６に示した集約グループ宛先情報テーブル１５００の集約グループ１５０１に、新規集約グループが格納されているか否かを判断する。集約グループ１５０１に、新規集約グループが格納されている場合は、図２１のＦへ進む。一方、集約グループ１５０１に、新規集約グループが格納されていない場合は、ステップ５１２０に進む。
【０１９４】
ステップ５１２０において、集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００に、新規集約グループの情報を追加する。
【０１９５】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の集約グループ１５０１に、新規集約グループを追加し、同行の設定対象通信装置１５０２に、新規通信装置を追加する。集約グループアドレス管理部２０２は、新規通信装置が複数存在する場合には、総当たりになるように、転送先通信装置１５０３に、新規通信装置を追加する。なお、設定対象通信装置１５０２と転送先通信装置１５０３が同じ値が入る場合は、他の通信装置１４０に転送しないことを意味する。
【０１９６】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の同行の宛先アドレス１５０４、及び、ポート番号１５０５に、リソース提供位置情報テーブル１２００の集約グループ１２０１が新規集約グループであり、リソース提供サーバ１２０４が、本ステップで追加した設定対象通信装置１５０２である行のアドレス１２０５、及び、ポート番号１２０６を追加する。以下では、上記アドレス１２０５、及び、ポート番号１２０６をそれぞれ、転送前アドレス、転送前ポート番号と呼ぶ。
【０１９７】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の同行の送信元アドレス１５０６には、任意のアドレスを意味する「任意」を追加し、同行の優先度１５０７に、設定対象通信装置１５０２と転送先通信装置１５０３が同じ行においては優先度に中優先を示す３、設定対象通信装置１５０２と転送先通信装置１５０３が異なる行においては３よりも優先度が低い４を追加する。
【０１９８】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の設定対象通信装置１５０２と転送先通信装置１５０３が同じ行においては、出力宛先アドレス１５０８、及び、出力ポート番号１５０９に、同行の宛先アドレス１５０４、及び、ポート番号１５０５を追加する。そして、集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の出力送信元アドレス１５１０には、受信したトラフィックの宛先アドレスから変更しないことを意味する「変更なし」を追加し、出力ポートには隣接するリソース提供サーバに繋がるポート番号を追加する。
【０１９９】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の設定対象通信装置１５０２と転送先通信装置１５０３が異なる行においては、出力宛先アドレス１５０８、出力ポート番号１５０９に、設定対象通信装置１５０２に隣接するサーバ１５０のアドレスとポート番号の組合せのうち、未使用であるＩＰアドレス、ポート番号を追加する。ここで追加したアドレス、ポート番号を以下では、転送アドレス、転送ポート番号と呼ぶ。
【０２００】
集約グループアドレス管理部２０２は、図１１のリソース提供位置情報テーブル１２００の集約グループが新規集約グループで、リソース提供サーバが新規リソース提供サーバである行のアドレス１２０５、及び、ポート番号１２０６に、転送アドレスと転送ポート番号を追加する。
【０２０１】
集約グループアドレス管理部２０２は、集約グループ宛先情報テーブル１５００の集約グループ１５０１に、新規集約グループを追加し、同行の設定対象通信装置１５０２、及び、転送先通信装置１５０３に新規通信装置を追加し、送信元アドレス１５０６、ポート番号１５０５に転送先アドレス、転送先ポート番号を追加し、優先度に中優先を意味する３を追加する。集約グループアドレス管理部２０２は、出力宛先アドレス１５０８には、受信したトラフィックの宛先アドレスから変更しないことを意味する「変更なし」を追加する。集約グループアドレス管理部２０２は、出力ポート番号１５０９、出力送信元アドレス１５１０には、それぞれ、転送前アドレス、転送前ポート番号を追加する。
【０２０２】
本ステップにおいて、ネットワーク制御サーバ１００は新規集約グループに含まれる各新規通信装置に対して、転送先通信装置１５０３に、同一の集約グループ（新規集約グループ）に含まれる他の新規通信装置を追加する。この追加によって、ネットワーク制御サーバ１００は、通信装置１４０に対して、通常時は、優先度が中優先である隣接するサーバ１５０への転送を行う処理を指示する。
【０２０３】
そして、ネットワーク制御サーバ１００は、通信装置１４０と隣接するサーバ１５０間での通信障害や輻輳、または隣接するサーバ１５０内における障害、メンテナンスによって他のサーバ１５０に通信を切り替える場合に、上記サーバ１５０のＩＰアドレスを端末１７０が宛先ＩＰアドレスとして送信した際に、優先度が低優先である、他の転送先通信装置を経由して、同一の集約グループであるサーバに宛先を変更して送信する処理を指示することが可能になる。
【０２０４】
上記指示によって、上記障害、輻輳、または、メンテナンス時に、通信装置１４０は指示に従って自律的に宛先を切り替えることができるため、障害時の宛先切替時間を短縮できる。また、通信装置１４０がネットワーク制御サーバ１００に処理方法の指示を要求することがないため、複数の通信装置１４０が集約グループ毎にネットワーク制御サーバ１００に指示を要求してＣＰＵやメモリのリソースを圧迫することを防ぐことができる。
【０２０５】
出力宛先アドレス１５０８、及び、出力ポート番号１５０９に、同行の宛先アドレス１５０４、及び、ポート番号１５０５を追加し、出力送信元アドレス１５１０には、受信したトラフィックの宛先アドレスから変更しないことを意味する「変更なし」を追加し、出力ポート１５１１には隣接するサーバ１５０に接続された通信装置１４０のポート番号を追加する。
【０２０６】
また、本ステップによって、宛先アドレス１５０４とポート番号１５０５を転送先アドレス、転送先ポート番号に変更することを指示する設定対象通信装置１５０２と同行の、転送先通信装置１５０３に対して、送信元アドレス１５０６、ポート番号１５０５を転送前アドレス、転送前ポート番号に変更する処理を設定することが可能になる。そのため、宛先アドレス１５０４とポート番号１５０５を変更した設定対象通信装置１５０２で送信元アドレス１５０６とポート番号１５０５を変更する場合に比べて、トラフィックは設定対象通信装置１５０２を必ずしも経由する必要がないため、経由する通信装置１４０の数が減少し、トラフィックの通信遅延は小さくなり、また、経由する通信装置１４０の帯域消費を低減することが可能になる。
【０２０７】
ステップ５２２０の処理を行った後、図２１のＢへ進む。
【０２０８】
図２１は、通信装置１４０に対して宛先と通信経路の設定を行う処理を示すフローチャートである。
【０２０９】
ステップ５５２０において、経路・宛先設定部２０９は、集約グループアドレス管理部２０２が、ステップ５１２０において、集約グループ宛先情報テーブル１５００に追記した行の設定対象通信装置１５０２を取得し、設定対象通信装置１５０２が同一である行のルール１５０４〜１５０７、及びアクション１５０８〜１５１１を、設定情報テーブル１９５０のルール１９５１〜１９５４、アクション１９５５〜１９５８に追加することで、設定対象通信装置１５０２毎に、設定情報テーブル１９５０を生成する。
【０２１０】
ステップ５５３０において、経路・宛先設定部２０９は、ステップ５５２０で取得した各設定対象通信装置に対して、通信ＩＦ２１０を介して、各通信装置１４０に対応する設定情報テーブル１９５０を送信する。
【０２１１】
ステップ５５４０において、集約グループ判断部２０１は、図１２に示した名前解決情報テーブル１６００の集約グループ１６０１に新規集約グループを追加し、同行のリソース提供サーバ１６０２、アドレス１６０３、ポート番号１６０４に、それぞれ、リソース提供位置情報テーブル１２００の集約グループが新規集約グループである行のリソース提供サーバ１２０４、アドレス１２０５、ポート番号１２０６を追加する。
【０２１２】
集約グループ判断部２０１は、メッセージ送受信部２１０を介して、名前解決情報テーブル１６００を、リソース管理サーバ１１０に送信する。
【０２１３】
ステップ５５４０の処理を行うと、通信装置１４０に対する宛先と通信経路の設定処理が完了する。
【０２１４】
図２２は、端末１７０とアプリケーションの組合せが異なる集約グループに変更する場合に、宛先と通信経路を計算する処理を示すフローチャートである。
【０２１５】
ステップ５２１０、及び、ステップ５２２０は、図２０のステップ５１１０、及び、ステップ５１２０において、新規集約グループとなっている箇所を、変更先集約グループに変更したものである。そして、ステップ５２１０において、ステップ５０５０で選択した集約グループが集約グループ宛先情報テーブル１５００に存在すると判断した場合に、図２０のＦに代わって、Ｇに進むと変更したものである。
【０２１６】
図２３は、端末１７０とアプリケーションの組合せが異なる集約グループに変更する場合に、送信元アドレスに基づいて宛先を変更するための宛先と通信経路を計算する処理を示すフローチャートである。
【０２１７】
ステップ５３１０において、端末・アプリ管理部２０５は、集約グループ宛先情報テーブル１５００を参照して、変更先集約グループの情報を取得する。
【０２１８】
端末・アプリ管理部２０５は、集約グループ宛先情報テーブル１５００の集約グループ１５０１が変更先集約グループである行の管理情報１５０１〜１５０３、ルール１５０４〜１５０７、アクション１５０８〜１５１１を取得する。
【０２１９】
ステップ５３２０において、端末・アプリ管理部２０５は、ステップ５０１０で受け取った要求通信特性情報テーブル１１００を参照して端末１１０１とアプリ１１０４を取得する。
【０２２０】
ステップ５３３０において、端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００に変更後集約グループの情報が存在するか否かを判断する。
【０２２１】
端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００の、端末１９０１、及び、アプリ１９０２がステップ５０２０において取得した端末１１０１、アプリ１１０４であり、かつ、変更後集約グループが変更先集約グループである行が存在するか否かを判断する。変更後集約グループが変更先集約グループである行が存在する場合、図２４のＧに進む。一方、存在しない場合、ステップ５３４０に進む。
【０２２２】
ステップ５３４０において、端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００に新しく変更先集約グループを追加する。
【０２２３】
端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００の端末１９０１、アプリ１９０２、ステップ５３２０において取得した端末１１０１、アプリ１１０４を追加し、変更前集約グループに、図１９のステップ５０４０で取得した既存集約グループを追加し、変更後集約グループに図１９のステップ５０５０で取得した変更先集約グループを追加する。
【０２２４】
端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００の設定対象通信装置１９０５、転送先通信装置１９０６、ルール１９０７〜１９１０、及び、アクション１９１１〜１９１４に、それぞれ、集約グループ宛先情報テーブル１５００の集約グループが変更先集約グループである行の設定対象通信装置１５０２、転送先通信装置１５０３、ルール１５０４〜１５０７、及び、アクション１５０８〜１５１１を追加し、下記３点を変更する。
【０２２５】
端末・アプリ管理部２０５は、集約グループ宛先情報テーブル１５００の宛先アドレスが任意になっている場合は、集約グループ宛先変更情報テーブル１９００の宛先アドレス１９０７をステップ５０２０にて取得した端末１１０１のアドレスにする。
【０２２６】
端末・アプリ管理部２０５は、集約グループ宛先情報テーブル１５００の送信元アドレスが任意になっている場合は、集約グループ宛先変更情報テーブル１９００の送信元アドレス１９０９をステップ５０２０にて取得した端末１１０１のアドレスにする。
【０２２７】
端末・アプリ管理部２０５は、集約グループ宛先変更情報テーブル１９００の優先度１９１０を、集約グループ宛先情報テーブル１５００の優先度が中優先の３になっている場合には、最高優先を意味する１に、低優先になっている場合には、高優先を意味する２に設定する。
【０２２８】
ステップ５３４０の処理を行った後、図２４のＥへ進む。
【０２２９】
図２４は、端末１７０とアプリケーションの組合せが異なる集約グループに変更する場合に、通信装置１４０に対して宛先と通信経路の設定を行う処理を示すフローチャートである。
【０２３０】
ステップ５６２０において、経路・宛先設定部２０９は、設定対象通信装置毎に、設定情報を生成する。
【０２３１】
集約グループアドレス管理部２０２が、ステップ５２２０において、集約グループ宛先情報テーブル１５００に追記した行の設定対象通信装置１５０２を取得し、設定対象通信装置１５０２が同一である行のルール１５０４〜１５０７、及びアクション１５０８〜１５１１を、設定情報テーブル１９５０のルール１９５１〜１９５４、アクション１９５５〜１９５８に追加する。
【０２３２】
また、経路・宛先設定部２０９は、集約グループアドレス管理部２０２が、ステップ５３４０において、集約グループ宛先変更情報テーブル１９００に追記した行の設定対象通信装置１９０５を取得し、設定対象通信装置１９０５が同一である行のルール１９０７〜１９１０、及びアクション１９１１〜１９１４を、設定情報テーブル１９５０のルール１９５１〜１９５４、アクション１９５５〜１９５８に追加する。以下では、集約グループ宛先変更情報テーブル１９００を元に追記した内容を端末・アプリ毎設定情報と呼ぶ。
【０２３３】
ステップ５６３０において、経路・宛先設定部２０９は、ステップ５６２０で取得した各設定対象通信装置に対して、通信ＩＦ２１０を介して、各通信装置１４０に対応する設定情報テーブル１９５０を送信する。
【０２３４】
ステップ５６４０において、集約グループ判断部２０１は、名前解決情報テーブル１６００の集約グループ１６０１に新規集約グループを追加し、同行のリソース提供サーバ１６０２、アドレス１６０３、ポート番号１６０４に、それぞれ、リソース提供位置情報テーブル１２００の集約グループが変更先グループである行のリソース提供サーバ１２０４、アドレス１２０５、ポート番号１２０６を追加する。
【０２３５】
集約グループ判断部２０１は、メッセージ送受信部２１０を介して、名前解決情報テーブル１６００を、リソース管理サーバ１１０に送信する。
【０２３６】
ステップ５６４０の処理を行うと、通信装置１４０に対する宛先と通信経路の設定処理が完了する。
【０２３７】
上記図２２〜図２４の処理によって、ソフトウェアリソースを提供するサーバ１５０が変更されることによって集約グループが変更したにもかかわらず、端末１７０が、ソフトウェアリソースが元々提供されていたサーバ１５０のアドレス、ポート番号を宛先にして送信してしまった場合でも、通信装置１４０が自律的に宛先を、ソフトウェアリソースが提供されるサーバ１５０に転送することが可能になる。これによって、ソフトウェアリソースが移動した後に、端末１７０はサービスルックアップを行う前であっても、ソフトウェアリソースを継続して利用することが可能になる。
【０２３８】
なお、ネットワーク制御サーバ１００は、ステップ５６３０で設定した端末・アプリ毎設定情報を、一定期間後、またはリソース管理サーバ１１０から通知を受けた際に削除する指示を設定対象通信装置に指示してもよい。ここで、一定期間とは、図１４のシーケンス２０１０において端末１７０がルックアップを行う時間よりも長い任意の時間である。これによって、通信装置が保持する情報のうち、最も膨大になる可能性がある、端末・アプリ毎設定情報を減らすことができ、通信装置が保持するフォワーディングテーブルの肥大化による通信装置１４０の処理負荷圧迫を抑えることができる。
【０２３９】
次に、図１４Ａに戻り、シーケンス２１３０において、ネットワーク制御サーバ１００は、集約グループ宛先情報テーブル１５００に追記した列の設定対象通信装置１５０２に、設定変更メッセージを送信する。設定変更メッセージには、設定情報テーブル１９５０が含まれる。
【０２４０】
シーケンス２１３５において、ネットワーク制御サーバ１００は、リソース管理サーバ１１０に対して、宛先／経路設定の完了を通知する。宛先／経路設定完了通知には、名前解決情報テーブル１６００が含まれる。
【０２４１】
次に、図１４Ｂのシーケンス２１４０において、リソース管理サーバ１１０は、サービスルックアップサーバ１２０に対して、名前解決変更要求を通知する。名前解決変更要求通知には、名前解決情報テーブル１６００が含まれる。
【０２４２】
シーケンス２１５０において、リソース管理サーバ１１０は、リソース移動・複製後処理要求を、ステップ２０８０においてリソース移動・複製要求を送信したサーバ１５０−１に送信する。リソース移動・複製後処理とは、ソフトウェアリソースをサーバ１５０−１から１５０−２への移動することに伴って、不要になったサーバ１５０−１に存在する情報（ソフトウェアリソース）を削除することなどである。本ステップは、リソース移動・複製後処理が不要な場合には省略することができる。
【０２４３】
次に、シーケンス２１６０において、サーバ１５０−１は、上述のリソース移動・複製後処理を実行する。
【０２４４】
以上の処理により、ソフトウェアリソースがサーバ１５０−１からサーバ１５０−２へ移動して、端末１７０−１が所属する集約グループのアクセスは、サーバ１５０−２に対して行われる。
【０２４５】
図１５〜図１８は、本実施例における端末１７０がソフトウェアリソースを閲覧または更新する処理を示すシーケンス図である。
【０２４６】
図１５は、上述した図１４Ａ、図１４Ｂのシーケンス図の処理が一通り行われた直後から、再度、シーケンス２０１０からシーケンス２０３０の処理と同等の処理を実行するまでの間に、端末１７０がソフトウェアリソースに対して、閲覧または更新要求する処理を示すシーケンス図である。この処理は、端末１７０−１のサービスルックアップ以前のものである。
【０２４７】
図１５のシーケンス２２１０において、端末１７０−１は、サーバ１５０−１宛に情報閲覧・更新を送信する。情報閲覧・更新のトラフィックの宛先ＩＰアドレスとポート番号は、端末１７０−１がサービスルックアップサーバ１２０から、最後に受信した名前解決応答に示されるＩＰアドレスとポート番号であり、送信元ＩＰアドレスは端末１７０−１自身のＩＰアドレスである。
【０２４８】
シーケンス２２２０において、通信装置１４０−１は、シーケンス２２１０において、端末１７０-１が送信した情報閲覧・更新のトラフィックを受信すると、宛先変更を行う。通信装置１４０−１は、受信したトラフィックの宛先ＩＰアドレス、ポート番号、送信元ＩＰアドレスを取得し、設定情報テーブル１９５０のルール１９５１〜１９５４に合致する行のアクション１９５５〜１９５８に規定される処理を受信したトラフィックに行う。
【０２４９】
シーケンス２２３０において、通信装置１４０−１はシーケンス２２２０で処理したトラフィックの宛先ＩＰアドレス、ポート番号がサーバ１５０−２である場合には、通信装置１４０−２に送信する。
【０２５０】
シーケンス２２４０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックをサーバ１５０−２に転送する。
【０２５１】
シーケンス２２４０においてサーバ１５０−２は情報閲覧・更新に対する応答を、通信装置１４０−２に送信する。この際、送信するトラフィックにおいては、宛先ＩＰアドレスを受信したトラフィックのヘッダーに記載される送信元ＩＰアドレス、ポート番号を、受信したトラフィックのヘッダーに記載されるポート番号、送信元ＩＰアドレスを受信したトラフィックのヘッダーに記載される宛先ＩＰアドレスとする。
【０２５２】
シーケンス２２６０において、通信装置１４０−２は、シーケンス２２５０において、サーバ１５０−２が送信した応答のトラフィックを受信すると、宛先変更を行う。通信装置１４０−２は、受信したトラフィックの宛先ＩＰアドレス、ポート番号、送信元ＩＰアドレスを取得し、設定情報テーブル１９５０のルール１９５１〜１９５４に合致する行のアクション１９５５〜１９５８に規定される処理を受信したトラフィックに行う。
【０２５３】
シーケンス２２７０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックを端末１７０−１に転送する。
【０２５４】
図１６は、図１４Ａ、図１４Ｂに示したシーケンス図の処理一通りが行われた後に、再度、シーケンス２０１０からシーケンス２０３０の処理と同等の処理を実行した場合に、端末１７０がソフトウェアリソースを提供するサーバ１５０に対して、閲覧または更新要求する処理を示すシーケンス図である。この処理は、端末１７０−１のサービスルックアップ以降の処理である。
【０２５５】
シーケンス２３１０において、端末１７０−１は、サービスルックアップを行う。サービスルックアップは、端末１７０の利用者によるアプリケーションの起動または再起動後、あるいは、端末１７０−１が持つタイマー機能によって定期的に起動する。
【０２５６】
シーケンス２３２０において、端末１７０−１は、サービスルックアップサーバ１２０に名前解決要求を送信する。
【０２５７】
シーケンス２３３０において、サービスルックアップサーバ１２０は、名前解決応答を、端末１７０−１に送信する。名前解決応答には、ドメイン名に対応するＩＰアドレス、及び、ポート番号が含まれる。
【０２５８】
シーケンス２３４０において、端末１７０−１は、サーバ１５０−２宛に情報閲覧・更新を送信する。情報閲覧・更新のトラフィックの宛先ＩＰアドレスとポート番号は、端末１７０−１がサービスルックアップサーバ１２０から、最後に受信した名前解決応答に示されるＩＰアドレスとポート番号であり、送信元ＩＰアドレスは自身のＩＰアドレスである。
【０２５９】
シーケンス２３４０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックをサーバ１５０−２に転送する。
【０２６０】
シーケンス２３５０においてサーバは情報閲覧・更新に対する応答を、通信装置１４０−２に送信する。この際、送信するトラフィックにおいては、宛先ＩＰアドレスを受信したトラフィックのヘッダーに記載される送信元ＩＰアドレス、ポート番号を受信したトラフィックのヘッダーに記載されるポート番号、送信元ＩＰアドレスを受信したトラフィックのヘッダーに記載される宛先ＩＰアドレスとする。
【０２６１】
シーケンス２３６０において、サーバ１５０−２は情報閲覧・更新のトラフィックを通信装置１５０−２に送信する。
【０２６２】
シーケンス２３６０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックを端末１７０−１に転送する。
【０２６３】
＜障害発生時＞
次に、図１７は、通信装置１４０−１とサーバ１５０−１の間、または、サーバ１５０−１内において障害が発生した際の処理を示すシーケンス図である。
【０２６４】
シーケンス２４１０において、通信装置１４０−１が障害を検知する。ここで、障害とは通信装置１４０−１とサーバ１５０−１間のリンクダウンや輻輳などの通信障害、サーバ１５０−１のアプリケーションがダウンする等のサーバ１５０−１における障害、メンテナンスによるシステム停止を示す。
【０２６５】
上記通信障害の検知は、通信装置１４０−１のポートダウンから通信装置１４０−１がサーバ１５０の障害の発生を検知する。上記サーバ１５０−１における障害の検知は、通信装置１４０−１がサーバ１５０−１とサーバ１５０−２間のハートビートのトラフィックを、トラフィックの宛先ＩＰアドレス、ポート番号、及び、送信元ＩＰアドレスから識別して、トラフィックの登りと下りのパケット量をモニタすることによって、サーバ１５０内の障害時にサーバ１５０−１からのハートビートのトラフィック量が減少することから障害と判断する。
【０２６６】
なお、障害の検知は通信装置１４０−１ではなく、リソース管理サーバ１１０やネットワーク制御サーバ１００が行って、通信装置１４０−１に通知してもよい。
【０２６７】
シーケンス２４２０において、通信装置１４０−１は発生した障害内容をネットワーク制御サーバ１００に送信する。
【０２６８】
シーケンス２４３０において、ネットワーク制御サーバ１００は通信装置１４０−１から受信した障害内容をリソース管理サーバ１１０に送信する。
【０２６９】
シーケンス２４３５において、リソース管理サーバ１１０は、名前解決情報テーブル１６００の情報において、シーケンス２４３０において受信した障害内容のメッセージからサーバ１５０−１にて障害が発生したことを取得して、名前解決情報テーブル１６００から、サーバ１５０−１のＩＰアドレスを、同じ集約グループに属するサーバ１５０−２のＩＰアドレスに変更する。
【０２７０】
シーケンス２４４０において、リソース管理サーバ１１０は、サービスルックアップサーバ１２０に名前解決変更通知を送信する。名前家解決変更通知には、シーケンス２４３５において、更新した名前解決情報テーブル１６００が含まれる。
【０２７１】
シーケンス２４５０の情報閲覧または更新からシーケンス２５２０の応答までの処理は、図１５におけるシーケンス２２１０からシーケンス２２７０までの処理と同じである。
【０２７２】
シーケンス２４１０からシーケンス２４４０までの一通りの処理が行われた後に、再度、図１４のシーケンス２０１０からシーケンス２０３０の処理と同等の処理を実行した場合に、端末１７０がソフトウェアリソースを提供するサーバ１５０に対して、閲覧または更新要求する処理は、図１６のシーケンス２３１０からシーケンス２３７０までと同じである。
【０２７３】
＜端末移動時＞
図１８は、サーバ１５０−１から情報閲覧、または更新する端末１７０が移動して最寄りのサーバがサーバ１５０−１からサーバ１５０−２に移動した後、再度、図１４のシーケンス２０１０からシーケンス２０３０までの処理と同等の処理を実行するまでの間に、端末１７０がソフトウェアリソースに対して、閲覧または更新要求する処理を示す説明図である。
【０２７４】
シーケンス２６１０において、端末１７０−１は、サーバ１５０−１宛に情報閲覧・更新を送信する。情報閲覧・更新のトラフィックの宛先ＩＰアドレスとポート番号は、端末１７０−１がサービスルックアップサーバ１２０から、最後に受信した名前解決応答に示されるＩＰアドレスとポート番号であり、送信元ＩＰアドレスは自身のＩＰアドレスである。
【０２７５】
シーケンス２６２０において、通信装置１４０−１は受信した情報閲覧・更新のトラフィックをサーバ１５０−１に転送する。
【０２７６】
シーケンス２６３０においてサーバは情報閲覧・更新に対する応答を、通信装置１４０−１に送信する。この際、送信するトラフィックにおいては、宛先ＩＰアドレスを受信したトラフィックのヘッダーに記載される送信元ＩＰアドレス、ポート番号を受信したトラフィックのヘッダーに記載されるポート番号、送信元ＩＰアドレスを受信したトラフィックのヘッダーに記載される宛先ＩＰアドレスとする。
【０２７７】
シーケンス２６４０において、通信装置１４０−１は情報閲覧・更新に対する応答のトラフィックを端末１７０−１に送信する。
【０２７８】
シーケンス２６５０において、端末１７０−１の移動に伴い、端末１７０−１が接続するアクセスポイント１６０が、サーバ１５０−１までよりもサーバ１５０−２までのＲＴＴが小さいアクセスポイント１６０−２に変更する。
【０２７９】
シーケンス２６６０において、端末１７０−１は、サーバ１５０−１宛に情報閲覧・更新を送信する。情報閲覧・更新のトラフィックの宛先ＩＰアドレスとポート番号は、シーケンス２６１０において端末１７０−１が送信する、情報閲覧・更新のトラフィックの宛先ＩＰアドレスとポート番号と同じである。
【０２８０】
シーケンス２６７０において、通信装置１４０−２は、シーケンス２６６０において、端末１７０-１が送信した情報閲覧・更新のトラフィックを受信すると、宛先変更を行う。
【０２８１】
通信装置１４０−２は、受信したトラフィックの宛先ＩＰアドレス、ポート番号、送信元ＩＰアドレスを取得し、設定情報テーブル１９５０のルールに合致する行のアクションに規定される処理を受信したトラフィックに対して行う。設定情報テーブル１９５０は、予めネットワーク制御サーバ１００が通信装置１４０毎に生成したものであり、同じポート番号１９５２であれば、通信遅延が小さい宛先アドレス１９５５に変換するようにルールとアクションが設定されている。例えば、当該通信装置１４０に接続されたサーバ１５０で提供しているアプリケーションに対応するポート番号１９５２が同一であれば、移動してきた端末１７０のサーバ１５０の宛先を当該通信装置１４０の配下のサーバ１５０に変換する。これにより、通信遅延の少ないサーバ１５０を端末１７０に提供できる。
【０２８２】
シーケンス２６８０において、通信装置１４０−２はシーケンス２６７０で処理したトラフィックの宛先ＩＰアドレス、ポート番号がサーバ１５０−２である場合には、サーバ１５０−２に送信する。
【０２８３】
シーケンス２６９０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックをサーバ１５０−２に転送する。
【０２８４】
シーケンス２６９０においてサーバ１５０−２は情報閲覧・更新に対する応答を、通信装置１４０−２に送信する。この際、送信するトラフィックにおいては、宛先ＩＰアドレスを受信したトラフィックのヘッダーに記載される送信元ＩＰアドレス、ポート番号を受信したトラフィックのヘッダーに記載されるポート番号、送信元ＩＰアドレスを受信したトラフィックのヘッダーに記載される宛先ＩＰアドレスとする。
【０２８５】
シーケンス２７１０において、通信装置１４０−２は、シーケンス２６９０において、サーバ１５０−２が送信した応答のトラフィックを受信すると、宛先変更を行う。通信装置１４０−２は、受信したトラフィックの宛先ＩＰアドレス、ポート番号、送信元ＩＰアドレスを取得し、設定情報テーブル１９５０のルールに合致する行のアクションに規定される処理を受信したトラフィックに行う。
【０２８６】
シーケンス２７２０において、通信装置１４０−２は受信した情報閲覧・更新のトラフィックを端末１７０−１に送信する。
【０２８７】
以上より、端末１７０−１は、移動によってアクセスポイント１６０が代わると、ソフトウェアリソースを提供するサーバ１５０のうち、遅延の少ないサーバ１５０へ自動的に切り替えることが可能になるのである。
【０２８８】
なお、上記実施例では、ネットワーク制御サーバ１００と、リソース管理サーバ１１０と、サービスルックアップサーバ１２０を異なる計算機で実行する例を示したが、ひとつの計算機で上記各サーバの機能を提供してもよい。この場合、ネットワーク制御部と、リソース提供部と、サービスルックアップ部を一つの計算機で提供すれば良い。
【０２８９】
以上説明したように、本発明は、ソフトウェアリソースを提供するサーバ１５０がネットワーク１３０に分散して複数存在する場合に、端末１７０の数の増大やトラフィック量の増大に対して、ネットワーク制御サーバ１００の処理負荷と通信装置１４０の処理負荷を抑えつつ、ソフトウェアリソースを提供するサーバ１５０の位置が変更された場合や、端末１７０が移動した場合等においても、端末１７０とアプリケーションの組合せに対して最適なサーバ１５０に接続することを可能にすることができる。
【０２９０】
本発明の第１の特徴は、上述のように、トラフィックの宛先アドレスや送信元アドレスを変更する通信装置１４０と、端末１７０とアプリケーションの組合せ毎にソフトウェアリソースを提供するサーバ１５０とで構成される計算機システムにおいて、ソフトウェアリソースを提供するサーバ１５０が同一である端末１７０と、端末１７０で実行するアプリケーションとの組合せを論理的な集約グループとして管理し、集約グループ毎に通信装置１４０及びリソース管理サーバ１１０に設定情報を通知する。
【０２９１】
これによって、ネットワーク制御サーバ１００は、端末１７０とアプリケーションの組合せである集約グループ毎に通信装置１４０、及び、リソース管理サーバ１１０に設定を通知することで、設定の変更を実施視することができる。すなわち、前記従来例のように端末１７０のＩＰアドレス毎に設定情報を通知するのに比してネットワーク制御サーバ１００のＣＰＵ負荷及び、メモリの使用量を抑制することができる。
【０２９２】
さらに、本発明の第２の特徴は、トラフィックの宛先アドレスや送信元アドレスを変更する通信装置１４０と、端末１７０とアプリケーションの組合せ毎にソフトウェアリソースを提供するサーバ１５０と、サーバ１５０を管理するリソース管理サーバ１１０と、端末１７０とアプリケーションの組合せ毎に名前解決を実施するサービスルックアップサーバ１２０で構成される計算機システムにおいて、集約グループとソフトウェアリソースを提供するサーバ１５０のＩＰアドレスとポート番号を対応づけて通信装置１４０に設定を行う。
【０２９３】
これによって、通信装置１４０はクッキー等のレイヤ７の情報を参照せずに、ＩＰアドレスとポート番号を参照して、端末１７０とアプリケーションの組合せ毎に異なる宛先のサーバ１５０でソフトウェアリソースを提供する場合においても、端末１７０とアプリケーションの組合せから、ソフトウェアリソースを提供するサーバ１５０にトラフィックを転送することが可能になる。
【０２９４】
また、本発明の第３の特徴は、上記第２の特徴において、集約グループにソフトウェアリソースを提供する複数のサーバ１５０のＩＰアドレスとポート番号を対応づけておく。そして、同一の集約グループに対応づけられる複数のサーバ１５０のＩＰアドレスとポート番号の間で、相互に変換できるように通信装置１４０に設定する。
【０２９５】
これによって、障害発生時や輻輳発生時など所定の契機で、通信装置１４０は、設定された内容に基づいて自律的に、同一集約グループに対応づけられるサーバ１５０に宛先を変更することができるため、短い時間で経路を切り替えることができる。
【０２９６】
本発明の第４の特徴は、上記第２の特徴において、集約グループにソフトウェアリソースを提供する複数のサーバ１５０のＩＰアドレスとポート番号を対応づけておく。そして、同一の集約グループに対応づけられる複数のサーバ１５０のＩＰアドレスとポート番号の間で対応づけて、トラフィックの宛先が、ＲＴＴが大きいサーバ１５０への宛先になっている場合には、ＲＴＴが閾値以下の近くのサーバへ宛先を変更するように通信装置１４０に設定する。
【０２９７】
これによって、端末１７０が移動して、接続するアクセスポイント１６０が変更されると、通信装置１４０は設定された内容に基づいて自律的に、同一集約グループに対応づけられるＲＴＴの小さいサーバ１５０に宛先を変更することができる。このため、端末１７０は、ＲＴＴが小さいサーバのＩＰアドレスに変更してトラフィックを送信しなくても、通信装置１４０の制御によってＲＴＴが小さいサーバ１５０へ自動的に接続することができる。
【０２９８】
本発明の第５の特徴は、上記第２の特徴において、集約グループにソフトウェアリソースを提供する複数のサーバのＩＰアドレスとポート番号を対応づけておく。そして、同一の集約グループに対応づけられる複数のサーバのＩＰアドレスとポート番号の間で、端末とアプリケーションの組合せに対応する集約グループが変更する際には、ネットワーク制御サーバ１００が端末のＩＰアドレスとポート番号を指定して通信装置１４０に指示する。
【０２９９】
これによって、ある端末１７０とアプリケーションの組合せに対応するソフトウェアリソースを提供するサーバ１５０が変更されることに伴って、端末１７０とアプリケーションの組合せに対応する集約グループが変更する際には、通信装置１４０が、ネットワーク制御サーバ１００からの指示に基づいて、集約グループが変更した端末１７０とアプリケーションの組合せに対して、サーバ１５０のＩＰアドレスとポート番号が同じ元の集約グループの他のトラフィックとは異なる宛先に転送するができる。
【０３００】
本発明の第６の特徴は、上記第１の特徴において、端末１７０とアプリケーションの組合せ毎に要求する通信特性と、端末１７０のネットワーク１３０上の位置に基づいて、集約グループを判断する。これによって、端末１７０とアプリケーションの組合せ毎に要求する通信特性を満たすことができる。
【０３０１】
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
【０３０２】
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体（例えば、非一時的な記憶媒体）に格納可能であり、インターネット等の通信網を介して、コンピュータにダウンロード可能である。
【０３０３】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【０３０４】
＜補足＞
通信装置に接続されてソフトウェアを提供するサーバと、
前記通信装置に接続されて前記ソフトウェアを利用する端末と、
前記複数の通信装置を接続するネットワークと、
前記ネットワークに接続されて前記通信装置及びサーバを管理する管理計算機と、を備えた計算機システムであって、
管理計算機は、
前記ソフトウェアを提供するサーバが同一である端末と、前記端末が実行するソフトウェアの組合せを論理的な集約グループに割り当てる集約グループ管理部と、
前記集約グループ毎に前記通信装置の通信経路を設定する経路設定部と、
を有することを特徴とする計算機システム。
【０３０５】
また、通信装置に接続されてソフトウェアを提供するサーバと、
前記通信装置に接続されて前記ソフトウェアを利用する端末と、
前記複数の通信装置を接続するネットワークと、
前記ネットワークに接続されて前記通信装置及びサーバを管理する管理計算機であって、
管理計算機は、
前記ソフトウェアを提供するサーバが同一である端末と、前記端末が実行するソフトウェアの組合せを論理的な集約グループに割り当てる集約グループ管理部と、
前記集約グループ毎に前記通信装置の通信経路を設定する経路設定部と、
を有することを特徴とする管理計算機。
【０３０６】
また、プロセッサとメモリを備えた管理計算機を制御するプログラムを格納した記憶媒体であって、
ソフトウェアを提供するサーバが同一である端末と、前記端末が実行するソフトウェアの組合せを論理的な集約グループに割り当てる第１の手順と、
前記集約グループ毎に通信装置の通信経路を設定する第２の手順と、
を前記管理計算機に実行させるプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
【図１】
0005944537.tif 000011
【図２Ａ】
0005944537.tif 000012
【図２Ｂ】
0005944537.tif 000013
【図３】
0005944537.tif 000014
【図４】
0005944537.tif 000015
【図５】
0005944537.tif 000016
【図６】
0005944537.tif 000017
【図７】
0005944537.tif 000018
【図８】
0005944537.tif 000019
【図９】
0005944537.tif 000020
【図１０】
0005944537.tif 000021
【図１１】
0005944537.tif 000022
【図１２】
0005944537.tif 000023
【図１３】
0005944537.tif 000024
【図１４Ａ】
0005944537.tif 000025
【図１４Ｂ】
0005944537.tif 000026
【図１５】
0005944537.tif 000027
【図１６】
0005944537.tif 000028
【図１７】
0005944537.tif 000029
【図１８】
0005944537.tif 000030
【図１９】
0005944537.tif 000031
【図２０】
0005944537.tif 000032
【図２１】
0005944537.tif 000033
【図２２】
0005944537.tif 000034
【図２３】
0005944537.tif 000035
【図２４】
0005944537.tif 000036