(57)【特許請求の範囲】
【請求項１】
ネットワーク上に、情報処理装置と、前記情報処理装置に処理を要求する端末とが配置さ
れる情報システムであって、
前記ネットワークの境界位置またはゲートウェイ位置に配置される複数のネットワークノ
ードと、複数の前記ネットワークノードを管理する管理ノードとを更に備え、
前記ネットワークノードは、
任意のアプリケーションを実行するための情報処理機能部と、
受信したパケットを任意の宛先に転送するため、前記パケットに関して設定したルールに基づいて同一のヘッダ情報を持つ前記パケット群をフローとして識別し、
前記フロー各々の、前記情報処理機能部または前記情報処理装置に対する接続状態、及び出力先を記録するためのテーブルに合致する前記フローの宛先、または出力先を、前記出力先に基づき変更する通信機能部を備え、
前記管理ノードは、前記ネットワークノードの前記情報処理機能部に、前記情報処理装置で実施するアプリケーションを複製する要求と、前記テーブルの書換え要求を生成して、前記ネットワークノードに送信し、
前記ネットワークノードは、前記管理ノードからの要求に従って、前記情報処理機能部にアプリケーションを複製し、前記書換え要求に基づき前記テーブルの指定の前記フローに属する前記パケットの出力先を書換える、
ことを特徴とする情報システム。
【請求項２】
請求項１に記載の情報システムであって、
前記ネットワークノードは、前記書換え要求に基づき、前記接続状態が未接続状態にある前記フローの前記テーブルの前記出力先を書換えする、
ことを特徴とする情報システム。
【請求項３】
請求項１に記載の情報システムであって、
前記ネットワークノードは、
前記情報処理機能部の負荷情報に基づき、前記テーブルの前記出力先を書換える、
ことを特徴とする情報システム。
【請求項４】
請求項１に記載の情報システムであって、
前記テーブルは、指定の条件に従って、複数の前記パケットをフローとして認識して記録する第一のテーブルと、前記フロー各々の前記接続状態及び前記出力先を記録するための第二のテーブルと、
からなることを特徴とする情報システム。
【請求項５】
請求項４に記載の情報システムであって、
前記第二のテーブルは、前記フロー各々の最終宛先を更に記録する、
ことを特徴とする情報システム。
【請求項６】
請求項１に記載の情報システムであって、
前記ネットワークノードの前記情報処理機能部は、前記情報処理装置が実行するアプリケーションを前記ネットワーク経由でダウンロードし、当該アプリケーションを実行する、
ことを特徴とする情報システム。
【請求項７】
請求項６に記載の情報システムであって、
前記ネットワークノードの前記通信機能部は、前記アプリケーションを実行するため、当該アプリケーションに関係する前記フローの前記テーブルの前記出力先を当該ネットワークノードの前記情報処理機能部に変更する、
ことを特徴とする情報システム。
【請求項８】
ネットワークを介して情報処理装置と接続されるノード装置であって、
任意のアプリケーションを実行するための情報処理機能部と、
受信したパケットを任意の宛先に転送するための通信機能部を備え、
前記通信機能部は、複数の前記パケットからなるフロー各々の、前記情報処理機能部または前記情報処理装置に対する接続状態及び出力先を記録するためテーブルと、前記テーブルに合致する前記フローの宛先、または出力先を、前記テーブルの前記出力先に基づき変更する出力先決定部を備え、
前記出力先決定部は、前記接続状態が未接続状態にある前記フローの前記テーブルの前記出力先を書換える、
ことを特徴とするノード装置。
【請求項９】
請求項８に記載のノード装置であって、
前記通信機能部は、前記情報処理機能部の負荷情報に基づき、前記テーブルの前記出力先を書換える、
ことを特徴とするノード装置。
【請求項１０】
請求項９に記載のノード装置であって、
前記テーブルの内容に優先度を設け、前記書換えの候補が複数ある際に、前記優先度の低い前記フローの前記テーブルの前記出力先を前記情報処理機能部以外に書換える、
ことを特徴とするノード装置。
【請求項１１】
請求項８に記載のノード装置であって、
前記情報処理機能部は、当該情報処理機能部のIPアドレスと、当該IPアドレス以外の指定されたIPアドレスを、当該情報処理機能部宛と認識し、前記指定されたIPアドレスに基づく処理の結果を出力する際に、送信元IPアドレスとして前記指定されたIPアドレスを用いる、
ことを特徴とするノード装置。
【請求項１２】
請求項８に記載のノード装置であって、
前記情報処理機能部で実行する前記アプリケーションを、前記情報処理装置から前記ネットワーク経由でダウンロードする、
ことを特徴とするノード装置。
【請求項１３】
請求項８に記載のノード装置であって、
前記テーブルは、
指定の条件に従って、複数の前記パケットをフローとして認識して記録する第一のテーブルと、
前記フロー各々の前記接続状態及び前記出力先を記録するための第二のテーブルと、
からなることを特徴とするノード装置。
【請求項１４】
請求項１３に記載のノード装置であって、
前記第二のテーブルは、更に前記フロー各々の最終宛先を更に記録する、
ことを特徴とするノード装置。
【請求項１５】
ネットワーク上に、情報処理機能部を有するネットワークノードと、情報処理装置とが配置される情報システムの前記ネットワークノードにおける宛先変更方法であって、
前記ネットワークノードは、
受信したパケットを、複数の前記パケットからなるフロー各々の、前記情報処理機能部または前記情報処理装置に対する接続状態及び出力先を記録するテーブルを用いて、前記テーブルに合致する前記フローの宛先、または出力先を、前記テーブルの前記出力先に基づき変更し、更に
前記パケットの情報に基づき、前記テーブルの前記出力先を書換える、
ことを特徴とする宛先変更方法。
【請求項１６】
請求項１５に記載の宛先変更方法であって、
前記ネットワークノードは、前記パケットの情報である、前記ネットワークに接続された管理ノードからの書換え要求に基づき、前記接続状態が未接続状態にある前記フローの前記テーブルの前記出力先を書換える、
ことを特徴とする宛先変更方法。
【請求項１７】
請求項１５に記載の宛先変更方法であって、
前記ネットワークノードは、
前記情報処理機能部の負荷情報に基づき、前記テーブルの前記出力先を書換える、
ことを特徴とする宛先変更方法。
【請求項１８】
請求項１５に記載の宛先変更方法であって、
前記ネットワークノードは、アプリケーションを前記ネットワーク経由でダウンロードし、前記アプリケーションに関係する前記フローの前記テーブルの出力先を前記ネットワークノードの前記情報処理機能部に書換えし、
前記情報処理機能部で前記アプリケーションを実行する、
ことを特徴とする宛先変更方法。
【請求項１９】
請求項１６に記載の宛先変更方法であって、
前記ネットワークノードは、前記管理ノードからの要求に従って、前記情報処理装置が実行するアプリケーションをダウンロードし、前記情報処理機能部が前記アプリケーションを実行する、
ことを特徴とする宛先変更方法。
【請求項２０】
請求項１９に記載の宛先変更方法であって、
前記ネットワークノードは、前記管理ノードからの前記書換え要求に従って、当該アプリケーションに関係する前記フローの前記テーブルの出力先を当該ネットワークノードの前記情報処理機能部に書換えする、
ことを特徴とする宛先変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システム、特にデータセンタ集約型情報システムでの遅延時間・信頼性・エネルギー効率の諸問題を解決可能な情報処理と情報伝達の融合技術に関する。
【背景技術】
【０００２】
情報システムの肥大化・複雑化を受けて「所有から利用」の流れが加速し、データセンタを利用するクラウド・コンピューティングの台頭、普及が進んでいる。
【０００３】
このデータセンタを利用する際、ネットワークを経由するため、遅延時間が生じる。特にデータセンタが遠方にある場合、公衆網を経由しての長距離伝送となるため遅延時間の他にも、信頼性の低下や、エネルギー効率の低下を招く可能性が高い。こうした問題に対し、情報処理位置をユーザ近傍に変更して情報処理を行う新情報通信技術(Information and Communication Technology: ICT)プラットフォームが解決策のひとつと考えられるが、情報システムは既に企業や社会の一部と化しているため、従来の情報システムを新ITCプラットフォームへ一度に移行することは困難である。
そこで、既存のデータセンタなどの情報システムとの整合性を取りながらシームレスに移行できる仕組みを持つ新ICTプラットフォームが必要となる。すなわち、情報伝達時のアドレスを既存体系のまま、新規設置される情報処理装置、情報処理位置へ伝達する技術が必要となる。従来、この情報処理位置を変えることで低遅延化を図る技術として以下の技術があった。
【０００４】
例えば、特許文献１において、ユーザLANに配置されたローカルサーバなどの情報処理装置に対して、ユーザが明示的にアプリケーション実行処理を依頼した場合、ローカルサーバに該当するアプリケーションが存在しなければ、ネットワーク外におかれるデータセンタなどの情報処理装置宛にパケットを流し、アプリケーション実行処理を依頼する構成が開示されている。
【０００５】
また、特許文献２においては、世界各地に分散配置された多数のサイトが存在する状況にあって、情報処理要求発行元の地域に応じて近接するサイトのアドレスを応答するように、DNS(Domain Name System)によって宛先アドレスを付与し、情報処理要求元が適切なサイトを参照するためのシステムを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３１２３１２号公報
【特許文献２】特表２００２−５２０７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本明細書において、ノード装置であるネットワークノードであって情報処理機能と宛先変更機能を有するものを、インテリジェントノード(Intelligent Node: IN)と呼ぶ。ここで、情報処理機能とはサーバなどの通常のコンピュータ（情報処理装置）などによるアプリケーションの実行や各種データを処理する機能を、宛先変更機能とはネットワーク上で転送されるパケットの宛先、または、出力先を変更する機能を言う。本明細書においては、このインテリジェントノード(IN)において、その内部のサーバによる情報処理する部位を情報処理機能部と呼び、当該インテリジェントノード(IN)外部のデータセンタや他のインテリジェントノード(IN)内のサーバ等を情報処理装置と呼ぶ。
また、センサからの情報を集約し、情報のフィルタリングを行うと共に、アクチュエータなどの制御対象などへの指示を伝達する機能を有する情報処理装置をエッジノードと呼ぶ。
新規に情報処理位置を設置した場合、データセンタなどの既存の情報システムとの整合性を取るためには、次の二つの課題をクリアする必要があると考えられる。
【０００８】
まず、課題１として、利用者側の設定の手間を省く必要があるため、新規提供するインテリジェントノードやエントランスノードを追加した場合でも、利用者側の設定を変更しないか、変更しても変更量を最小限に抑えて、情報伝達の流れを変更できなければならない。
【０００９】
次に、課題２として、通常、新規提供のノード単体はデータセンタより小型となるため、情報処理の負荷が高くなった場合、他のノードや、最悪の場合にデータセンタで当該情報処理を行った方が良い可能性がある。この場合、実行位置は比較的短時間で動的に変更させることになり、かつ、アプリケーション実行の不整合を起こさないように、アプリケーションの実行の切れ目で正しく実行位置を変えることが出来なければならない。
【００１０】
第一の従来技術では、利用者に対してローカルサーバへアクセスさせるための設定が必要であるが、この設定は全アプリケーションで共通化できるため、課題１は問題にならない可能性がある。しかしながら、ローカルサーバの処理負荷に応じて実行位置を変えることは言及しておらず、また、単純な拡張では対応できないので、課題２をクリアできない。
【００１１】
第二の従来技術では、利用者が目的の宛先を直接指定する場合には対応できないが、URL(Uniform Resource Locator)指定する場合は、利用者側の設定が不要であり、課題１をクリアできる。しかしながら、ユーザを誘導したサイトの負荷が増加してレスポンスが悪化する場合にDNSに新しい宛先を設定するまで、及びそれをユーザに反映するまでには時間がかかり、課題２をクリアできない。
【００１２】
本発明の目的は、既存の情報システムを利用している環境に対し、新たな情報処理位置を追加した場合に、利用者やデータセンタの設定や構成変更を極力抑えることを可能とし、更に、アプリケーション実行の切れ目を正しく認識して、その実行位置を動的に変更可能にする情報処理・伝達融合システム、ノード装置、及び方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記の目的を達成するため、本発明においては、ネットワーク上に情報処理装置と、情報処理装置に処理を要求する端末とが配置される情報システムであって、ネットワークの境界位置（エッジルータ位置）またはゲートウェイ位置に配置される複数のネットワークノードと、複数のネットワークノードを管理する管理ノードとを備え、ネットワークノードは、任意のアプリケーションを実行するための情報処理機能部と、設定したルールに基づいて同一のヘッダ情報を持つパケット群をフローとして識別し、各フローの情報処理機能部または情報処理装置に対する接続状態、及び出力先を記録するためのテーブルに合致するフローの宛先、または出力先を、前記テーブルに記載の出力先に基づき変更する通信機能部を備え、管理ノードは、ネットワークノードの情報処理機能部に、情報処理装置で実施するアプリケーションを複製する要求と、テーブルの書換え要求を生成して、ネットワークノードに送信し、ネットワークノードは、管理ノードからの要求に従って、情報処理機能部にアプリケーションを複製し、書換え要求に基づきテーブルの出力先を書換える構成の情報システムを提供する。
【００１４】
また、本発明においては、上記の目的を達成するため、ネットワークを介して情報処理装置と接続されるノード装置であって、任意のアプリケーションを実行するための情報処理機能部と、受信したパケットを任意の宛先、または出力先に転送するための通信機能部を備え、通信機能部は、複数のパケットからなるフロー各々の、情報処理機能部または情報処理装置に対する接続状態及び出力先を記録するためテーブルと、テーブルに合致するフローの宛先、または出力先を、テーブルの出力先に基づき変更する出力先決定部を備え、出力先決定部は、接続状態が未接続状態にあるフローのテーブルの出力先を書換える構成のノード装置を提供する。
【００１５】
更に、本発明においては、上記の目的を達成するため、ネットワーク上に情報処理機能部を有するネットワークノードと情報処理装置とが配置される情報システムのネットワークノードにおける宛先変更方法として、ネットワークノードは、
受信したパケットを、複数のパケットからなるフロー各々の、情報処理機能部または情報処理装置に対する接続状態及び出力先を記録するテーブルを用いて、テーブルに合致するフローの宛先、または出力先を、テーブルの出力先に基づき変更し、パケットの情報に基づき、テーブルの出力先を書換える宛先変更方法を提供する。
【００１６】
また更に、本発明の好適な態様においては、情報処理機能部と宛先変更機能部を備えたノード装置であるインテリジェントノード（IN）をパケットの通り道となるようにネットワークの境界（エッジルータ位置）上に配置する。このインテリジェントノード（IN）は、テーブルとして、各ユーザ端末から送信されるパケット群をフローとして識別するためのフローテーブルと、各フローの接続状態（パケット通信のコネクション状態）と次の宛先、または、最終的な宛先を決定するフロー状態テーブルと、自身の情報処理機能部の負荷状況観測機能を備える。そして、フロー状態テーブルで接続状態にないフローに関して、自身の情報処理機能部のうち負荷状況の少ない情報処理機能部か、外部の情報処理装置宛に宛先を書き換える。
【００１７】
この「接続状態にないフローの宛先を書き換える」ことで、アプリケーションの実行の切れ目で、実行位置を変更可能にする。また、本操作は、利用者の設定を変更する必要がない。
【００１８】
本発明は、インテリジェントノード(IN)をエッジルータ位置、または、デフォルトゲートウェイ位置とするか、インテリジェントノード(IN)周囲の通信機器の特定方向のパケットの次宛先を当該インテリジェントノード（IN）とするネットワーク構成においてより好適に適用される。
【発明の効果】
【００１９】
本発明によれば、データセンタ集約型情報システムでの遅延時間・信頼性・エネルギー効率の諸問題を解決可能なシステムを提供できる。
【００２０】
また、新規提供するインテリジェントノードやエントランスノードを追加した場合でも、情報伝達時のアドレスを既存体系のまま、利用者側の設定の変更をしないか、変更しても変更量を最小限にして、情報伝達の流れを変更可能なシステムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施例に係る、インテリジェントノードの装置構成を示す図である。
【図２】第１の実施例に係る、通信機能部の一構成を示すブロック図である。
【図３】第１の実施例に係る、フロー検出部とフローテーブルの一例を示す図である。
【図４】第１の実施例に係る、出力先決定部とフロー状態テーブルの一例を示す図である。
【図５】第１の実施例に係る、出力先決定部とフロー状態テーブルの他の例を示す図である。
【図６】第１の実施例に係る、パケットフォーマットの一例を示す図である。
【図７】第１の実施例に係る、フローテーブル及びフロー状態テーブルの式登録を説明するフローチャート図である。
【図８】第１の実施例に係る、フロー状態テーブルの書換えを説明するフローチャート図である。
【図９】第１の実施例に係る、フロー状態テーブルの状態遷移のための信号関係を示す図である。
【図１０】第１の実施例に係る、フロー状態テーブルの状態遷移のフローチャートを示す図である。
【図１１】従来のネットワーク構成を示す図である。
【図１２】データセンタの一構成を示すブロック図である。
【図１３】第１の実施例に係る、ネットワークの一構成を示す図である。
【図１４】第１の実施例に係る、ネットワークの他の構成を示す図である。
【図１５】第１の実施例に係る、ＷＡＮ内にインテリジェントノードを配置する場合の一構成例を示す図である。
【図１６】第１の実施例に係る、フロー状態テーブルの遷移例（１）を示す図である。
【図１７】第１の実施例に係る、フロー状態テーブルの遷移例（２）を示す図である。
【図１８】第１の実施例に係る、フロー状態テーブルの遷移例（３）を示す図である。
【図１９】第１の実施例に係る、フロー状態テーブルの遷移例（４）を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面に従い、本発明の情報処理・伝達融合システム、並びにノード装置の好適な一実施例を説明する。
【実施例１】
【００２３】
まず、第１の実施例である情報処理・伝達融合装置としてのインテリジェントノード(IN)の基本構成とネットワーク上での配置位置を図１、図１３〜図１５を用いて説明する。本実施例のインテリジェントノード（IN）は、サーバによる情報処理機能（サーバ処理機能）と宛先変更機能を備えている。後で詳述するように、この宛先変更機能により、例えば宛先、または出力先を自ノードに変えることで、本来、遠方のデータセンタ（Data Center: DC）等で行っていたアプリケーション処理を端末近傍のネットワークノードで実行でき、端末側から見た処理遅延を小さくする効果を得ることができる。更に、副次的にネットワーク中を流れるデータ量を抑えることができ、システム全体で見て省電力化の効果を得ることができる。
【００２４】
図１は第１の実施例のインテリジェントノード(IN)の構成の一例を示す図である。このインテリジェントノード100は、少なくとも一個のサーバによるサーバ処理機能と、通信機能部による宛先変更機能を備えている。
【００２５】
図１において、インテリジェントノード100は、複数のサーバ110-1〜110-4と、スイッチ120と、通信機能部130と、複数のネットワークインタフェース140-1〜140-4と、管理用ポート150とから構成される。サーバは通常のコンピュータ構成を有し、処理部である中央処理部(Central Processing Unit: CPU)と、CPUが実行する各種のプログラムやデータを記憶する記憶部としてのメモリや記憶装置を備えていることは言うまでもない。なお、具体的なサーバの内部構成は、図１２の際に言及することとする。
【００２６】
図１のインテリジェントノード100のネットワークインタフェース140-1〜140-4には、MAC(Media Access Control)アドレスeth3、eth2、eth1、eth0が与えられ、サーバ110-1〜110-4にはそれぞれIPアドレスIP B1〜IP B4、MACアドレスeth4〜eth7が与えられる。スイッチ120と、複数のサーバ110-1〜110-4、複数のネットワークインタフェース140-1〜140-4間は、イーサネット（登録商標）等を用いて接続する。なお、これらのイーサネットとしては、例えば１０ギガビットイーサネット（10Gigabit Ethernet）などが使用できる。
【００２７】
本実施例のインテリジェントノード(IN)が配置されるネットワーク構成は種々考えられるが、代表的な例を図１３〜図１５で説明する。
【００２８】
図１３は、好適なネットワーク構成の一例を示し、図１に示したインテリジェントノード100が複数、広域網(Wide Area Network: WAN)310と構内通信網(Local Area Network: LAN)330との間に配置されている。LAN340にはそれぞれ、ユーザのパーソナルコンピュータ(Personal Computer: PC)などの端末340が接続されている。一方、WAN310には少なくとも一個のインテリジェントノード100と、少なくとも一個の情報処理装置を備えたデータセンタ(DC)300と、管理ノード400が接続されている。
【００２９】
管理ノード400は、後で説明するように、アプリケーションを実行可能なインテリジェントノード100、及びデータセンタ(DC)300の性能情報、位置情報を収集し、アプリケーションの配置、インテリジェントノード(IN)の設定、ネットワーク間のネットワーク装置の設定等を行う。性能情報とは、装置が備えているCPUの種別や動作周波数、搭載数、メモリ容量、ディスク容量、OS種類、専用ハードウェア種別などである。位置情報とは、インテリジェントノードとデータセンタ(DC)300、情報処理を要求する端末やセンサなどとの間のネットワーク上の接続関係や通信遅延情報である。
この構成にあっては、情報処理位置は複数のインテリジェントノード100と複数のデータセンタ(DC)300となる。すなわち、情報処理位置が、データセンタ(DC)300のみならず、ユーザ近傍のインテリジェントノード100となる。このシステム構成をクラウド二層モデルと称する。なお、データセンタ(DC)300の内部構成は後で説明する。
【００３０】
図１４は、ネットワーク構成の他の例を示し、図１３のネットワーク構成との差分は、LAN330に複数の端末340の他に、エッジノード(EN)350が接続されていることにある。このエッジノード(EN)350には、各種のセンサ351や制御対象352が接続される。エッジノード(EN)350はLAN330と、センサ351、アクチュエータ等の制御対象352間に配置する。すなわち、エッジノード(EN)350はセンサ351からの情報を集約し、情報のフィルタリングを行うと共に、アクチュエータなどの制御対象352などへの指示を伝達する機能を有する。
【００３１】
これは、PCやモバイル端末などに代表される端末340の他に、大量のセンサ351や制御対象352をネットワーク接続する場合に、大量のセンサ情報がネットワークに流れ込み続けてネットワーク帯域を圧迫することを防ぐためである。エッジノード(EN)350は予め定めたルールに従ってセンサ情報をフィルタリングする。この構成において、エッジノード(EN)350も管理ノード400の管理対象である。なお、このエッジノード(EN)350にPC等のユーザ端末が接続されていても良い。本システム構成においても、情報処理位置は複数のデータセンタ(DC)300と複数のインテリジェントノード100となる。図１４のシステム構成はクラウド三層モデルと称する。
【００３２】
図１５は、ネットワーク構成の第三の例として、図１３や図１４のWAN310の中でインテリジェントノード100を配置するネットワーク構成を示す。同図において、WANとしてのネットワークA460-1では、WANの中でインターネットサービスプロバイダ(Internet Services Provider: ISP)などが管理する当該ネットワークの末端（ゲートウェイが置かれる位置、または、エッジルータが置かれる位置）にインテリジェントノード100を配置する方法を示す。450-1〜450-3は通信装置を示す。
【００３３】
この場合、ネットワークA460-1に流入するパケットは必ずインテリジェントノード100を通過するため、後述の宛先変更機能により、インテリジェントノード100において流入するパケットを自身のサーバに取り込んで情報処理したり、そのままデータセンタ(DC)等に転送したりすることができる。
【００３４】
一方、ネットワークB460-2では、ネットワークの末端の通信装置450-4、450-6、450-9に隣接する位置にインテリジェントノード100を配置する方法を示す。この場合、インテリジェントノード100に隣接する通信装置450-4、450-6、450-9がネットワークB460-2に流入してくるパケットをインテリジェントノード100へ転送する設定をしておくことで、ネットワークB460-2に流入する情報であるパケットのインテリジェントノード100での情報処理が可能になる。なお、450-5、450-7、450-8も通信装置を示す。
【００３５】
図１３〜図１５のネットワーク構成において、インテリジェントノード(IN)300は、後述する管理ノード400の指示に基づき配置されるアプリケーションを複製（コピー）し、その内部のサーバ処理機能によって実行する。
【００３６】
また、インテリジェントノード(IN)は、後で詳述するように、その宛先変更機能を利用し、特定の条件、すなわち、送信元IP(Internet Protocol)アドレス（SIP）、宛先IPアドレス(DIP)、送信元ポート番号(SP)、宛先ポート番号(DP)の組合せのみ、または、更にセッション識別子(ID)などに合致するパケットの宛先を、自ノード管理のサーバ110のいずれか、もしくは外部のインテリジェントノード(IN)、もしくはデータセンタ(DC）へ変更する機能を持つ。この際、後で詳述するように、インテリジェントノード(IN)内の宛先変更機能、もしくは、サーバ処理機能は、データセンタ(DC)300のIPアドレスを、自身のIPアドレスとしても利用する機能を持つ。
【００３７】
この宛先変更機能に基づく操作により、データセンタ(DC)300行きのパケットをインテリジェントノード(IN)に取り込むことを可能にする。自ノードのサーバ処理機能の負荷が高ければ宛先変更機能へ通知し、新規の優先度の低いユーザのパケットを外部へ転送する。また、自ノードのアプリケーションと連動するデータセンタ(DC)部分のアプリケーションに対し、一部のパケットを送信することも可能となる。更に、データセンタ（DC）は、インテリジェントノード(IN)から転送されるデータを蓄積、処理し、新規のパラメータやアクションをインテリジェントノード(IN)に通知する。
【００３８】
図１２に、図１３、図１４に示したデータセンタ(DC)300の一構成例を示す。同図に示すように、データセンタ(DC)300は、入り口に配置された代表サーバ301、内部でネットワーク接続された複数のサーバ302-1、302-2…、ディスク群303からなる。サーバ302-1で例示するように、各サーバは、通常のコンピュータであり、ネットワークインタフェース111、記憶部であるメモリ113とハードディスクドライブ(HDD)、マウスやディスプレイなどの入出力部(I/O)、処理部であるCPU112が内部バスで接続されている。
【００３９】
複数のサーバ302-1、302-2…は、CPU112上で種々のアプリケーションを実行する。ここで入り口に設置された代表サーバ301はWANに接続され、データセンタ300のロードバランサとして機能する。なお、本明細書において、このデータセンタ(DC)のサーバによる情報処理機能を纏めて情報処理装置と呼ぶことは上述した通りである。また、先に説明した図１のサーバ110-1〜110-4の内部構成は、上述のサーバと同様の構成を備えることは言うまでもない。
【００４０】
次に、図１３、図１４に示した管理ノード400の機能・役割について説明する。なお、管理ノード400の機能中、各種テーブルの設定管理については、図２〜図１１を用いた通信機能部130の説明中に行うものとする。
【００４１】
ユーザの要求するアプリケーション処理の結果を可能な限り速くユーザに返すためには、ネットワークの通信遅延とサーバ処理遅延の和が小さくなるように制御する必要がある。このために、図１３、図１４に示したように、ユーザ近傍のネットワークで従来ゲートウェイ(図１１のgateway320)装置が置かれる位置にインテリジェントノード100を配置し、複数のインテリジェントノードを管理するための管理ノード400をネットワーク上に配置する。なお、詳細な説明は省略するが、図１１は比較のために従来のネットワーク構成の一例を図示したものである。図１１のネットワーク構成の場合、情報処理位置はデータセンタ(DC)300のみである。
【００４２】
本実施例における管理ノード400の役割は、データセンタ(DC)300で実行している各種アプリケーションなどのサービスと対応するデータの一部、特にデータセンタ(DC)300内のアプリケーションサーバが実行中のものをインテリジェントノード(IN)に配置するなどの制御を行うことにある。
【００４３】
インテリジェントノード(IN)への各種の設定も、管理ノード400によって行われる。インテリジェントノード(IN)は、上述のとおりネットワーク中に複数存在し、それぞれが自身を通過するパケットフローの情報や、自身の各種の装置情報、例えば情報処理機能部を構成するサーバの数、それらのCPU性能、現在備えているアプリケーション、通信負荷状況や情報処理負荷状況、消費電力情報、などを通知する。管理ノード400はこれらの情報を鑑みて、上述のように、データセンタ(DC)300で稼動中のアプリケーションのうち、インテリジェントノード(IN)に配置したほうが良いものを選択し、インテリジェントノード(IN)へ複製して実行できる種類のアプリケーションであれば、指定のインテリジェントノード(IN)に当該アプリケーション、及び実行に必要な最小限のデータを転送する。
【００４４】
各インテリジェントノード(IN)は、これを受信し、管理ノード400から割り当てられたポリシーに従って、自身の情報処理機能部の一部もしくは複数に、当該アプリケーションとデータを複製する。ついでインテリジェントノード(IN)は、管理ノードからの宛先変更許可の指示を受けて、後で詳述する自身のフロー状態テーブル内の情報を観測しながら、未接続状況となった当該フローの宛先、または出力先を書換え、以後、当該フローから新規通信があると、当該フローの宛先、または出力先を替えることができる。
【００４５】
更に、管理ノード400は、データセンタ(DC)300と端末340等間の通信遅延を情報として含む全インテリジェントノード100、全エッジノード(EN)350のネットワーク上での配置関係、インテリジェントノード100上の情報処理資源、データセンタ(DC)300での情報処理内容をモニタする。このモニタは、インテリジェントノード100、エッジノード(EN)350、データセンタ(DC)300では、モニタ用プログラムを動作させておき、管理ノード400と各モニタ用プログラムの間でパケットベースの情報交換を行うことで実現可能である。
【００４６】
なお、管理ノード400は、管理対象の数が膨大になりうるため、階層的に管理ノードとして構成しても良い。例えば、複数のエッジノード(EN)を管理する孫管理ノードをインテリジェントノード100内のサーバの一つ（110−4）に割当て、複数のインテリジェントノード(IN)を管理する子管理ノードと、複数の子管理ノードを管理することで全体を管理する親管理ノードをWAN310上に配置し、相互に情報交換しながら管理を行うなどである。
【００４７】
階層的な場合においても、管理ノード400は、モニタした情報に基づき、データセンタ(DC)300に代わって、インテリジェントノード100が情報処理するためのアプリケーションを配布する役割を持つ。具体的には、管理ノード400は、インテリジェントノード100の中で孫管理ノードとして割り当てた管理用サーバ110-4に対して、アプリケーションを配布し、管理用サーバ110-4内の管理プログラムが所定のポリシーに基づき、アプリケーションをインテリジェントノード100内部のいずれかのサーバ110に適用する。
【００４８】
このポリシーとしては、例えば、当該アプリケーションで要求されるCPU能力、メモリ容量を満たしているサーバのうち稼働率の低い一つ、または複数のサーバに割り当てる方法がある。そのほか、アプリケーション毎に優先度を決めて、優先度の高いアプリケーションは稼働率の低い一つ、または複数のサーバに割り当て、優先度の低いアプリケーションは稼働率の高い一つ、または複数のサーバに割り当てる方法もある。尚、アプリケーションは配布した時点ではアイドル状態にあり、実際に、端末からのアプリケーション実行用のデータなどのパケット群が到着した時点で、実稼動することになる。
【００４９】
以上、本実施例における情報処理・情報伝達融合装置としてのインテリジェントノード(IN)の基本構成と、ネットワーク上での位置付け等を説明した。続いて、図２〜図６を用いてインテリジェントノード100の各種の機能・動作を説明する。
【００５０】
図２は、図１のインテリジェントノード100中の通信機能部130の一構成例を示す機能ブロック図である。同図から明らかなように、通信機能部130は、ネットワークインタフェース集約部131、パケット解析部132、フローテーブルを備えたフロー検出部133、フロー状態テーブルを備えた出力先決定部134、ネットワークインタフェース出力部135、テーブル更新部136の各機能ブロックから構成される。これらの各種機能ブロックはソフトウェアのみならずハードウェアとして構成しても良い。ソフトウェアとして構成する場合、通信機能部は、CPUとメモリを使い、そのCPUがメモリ上のプログラムを実行することにより実現することができる。
【００５１】
まず、ネットワークインタフェース集約部131は、図１の複数のネットワークインタフェース140-1〜140-4から流入するパケットを集約する機能を持つ。ここで集約されたパケットはパケット解析部132に送られ解析される。
【００５２】
図６に、本実施例で使用されるパケットのパケットフォーマットの一例を示す。なお図６のフォーマットにおいては、本実施例のシステム、装置と関係する部分のみを図示し、他は省略した。図６に示すとおり、データリンク層であるレイヤ２（L2）ヘッダ（一部抜粋）には、宛先MACアドレス10と、送信元MACアドレス11が配置されている。L2ヘッダは、装置Aから装置Bに対してパケットを転送する場合に、送信元MACアドレス11を装置Aの装置Bに接続されているネットワークインタフェースのMACアドレス（例えば、図１のeth1）、宛先MACアドレス１０を装置Bの装置Aに接続されているネットワークインタフェースのMACアドレスに設定する。
【００５３】
本実施例のシステムでは、インテリジェントノード100の通信機能部130のテーブル更新部136により、後で詳述するフロー状態テーブル中のインタフェース(interface)を書き換えることによって、パケットに付与するL2ヘッダのMACアドレスを変更する。例えば、インテリジェントノード100自身のサーバ110-1にパケットの宛先を強制的に変更する場合、送信元MACアドレス11を図１のeth0、宛先MACアドレス10をサーバ110-1のMACアドレスであるeth4と書き換えることによって、パケットをサーバ110-1に送信することができる。
【００５４】
このとき、前記パケットの宛先MACアドレスはサーバ110-1宛になっているが、宛先IPアドレスは元のままである。すなわち、自ノードのサーバ110は、自身のIPアドレス宛ではないパケットを受信することになる。通常は、サーバ110は、このパケットを受信することができないため、事前の設定、すなわち、フロー状態テーブル210で自身宛に設定するより前のタイミングで、当該フローの宛先IPアドレスを受信できるように設定しておく。また、当該フローに対してパケット返信する場合には、送信元IPアドレスを、本来の自身のIPアドレスではなく、上記の当該フローの宛先IPアドレスとする。この操作により、端末340側では、本来の宛先IPアドレス宛にパケットを送信しながら、実態として、本実施例のインテリジェントノード100の複数のサーバからなる情報処理機能部上で、不整合を起こすことなくアプリケーションの実行を行うことができる。
【００５５】
また、図６のパケットフォーマットにおいて、ネットワーク層であるレイヤ３(L3)ヘッダ（一部抜粋）には送信元IP(Internet Protocol)アドレス(SIP)12、宛先IPアドレス(DIP)13、プロトコル(Protocol)番号14が配置されている。このL3ヘッダは、IP通信をする場合に、送信元IPアドレス12から宛先IPアドレス13に対してパケットをルーティングするのに用いる。また、プロトコル番号14によって、L4のプロトコル種別を区別する。本実施例においては、これらは、フローを検出するための条件として利用する。
【００５６】
更に、トランスポート層であるレイヤ４(L4)ヘッダには、送信元ポート番号(SP)15、宛先ポート番号(DP)16が配置されている。L4ヘッダは、通信するアプリケーションなどを示すために用いられるが、これらも、フローを検出するための条件として利用する。
【００５７】
最後に、アプリケーション層であるレイヤ７(L7)ヘッダ、もしくはL7ペイロード（一部抜粋）にはセッション識別子(ID)17とその他のペイロードが配置されている。
【００５８】
このセッションID１７は、特定のユーザや情報発信元からのアクセスを認識するための識別子である。例えば、webデータのやりとりにはhttp（HyperText Transfer Protocol）というプロトコルがwebブラウザとwebサーバ間で利用されるが、httpには状態を保持する機能がなく、ユーザが連続的に複数回のアクセス(webページの表示)をしても、サーバ側はそれを特定のユーザのアクセスとは認識できず、複数のユーザによるアクセスと看做してしまう。これは、あるサイトにログインして買い物などをする場合に不都合であり、特定ユーザを認識する必要がある。セッションID17は、このような場合に特定ユーザを識別するために用いることができる。
【００５９】
通常、ユーザを特定するための仕組みとして、初回アクセス時のユーザに対して、サーバ側からユーザに対して自動的に識別コードを割り振り、その識別コードを使用してユーザを特定する。この識別コードが上述のセッションIDである。ユーザ（ブラウザ）は、そのWebサイトにアクセスする度に、毎回必ずセッションIDを送信する必要がある。セッションIDは、通常クッキーとしてブラウザに記憶され、Webサイトにアクセスするときにはブラウザが自動的に送信する。セッションIDを使用してユーザを識別できるようになれば、そのセッションIDをキーにして、サーバ側で情報を保存する場所を用意できる。この説明では、webデータのやりとりのクッキーを例にしたが、ユーザや情報発信元を特定する情報をセッションID１７と定義することができ、本実施例においてもその役割を利用する。
【００６０】
このセッションID１７は、各パケットのL7ヘッダかL7ペイロードに含まれる場合と、複数のパケットのL7ペイロードに跨って含まれる場合がある。前者の場合は、各パケットの中身を検査することでセッションIDを特定できる。後者の場合は、一旦、パケットのL7までのヘッダを外し、正しい順番でL7ペイロードを組み合わせ、アプリケーションのデータとして復元してそのデータを調べることでセッションIDを特定できる。
【００６１】
図２のインテリジェントノード(IN)の通信機能部130の説明に戻り、パケット解析部132は、順次流入する各パケットを解析し、必要な情報をテーブル更新部136に送信すると、テーブル更新部136は、受信した情報に基づき、記憶部に記憶されたテーブルの内容を更新する。すなわち、テーブル更新部136は、フローテーブル、フロー状態テーブルの更新を行う。
【００６２】
ここで図１に戻り、インテリジェントノード100内部の各サーバ110-1〜110-4の負荷情報の通知機能について説明する。サーバ110の処理部であるCPUは、サーバ自身の負荷情報をつめた制御パケットを定期的に通信機能部130に転送する。転送の時間間隔は、上述の管理ノード400からの指示によるが、例えば、10ms間隔、50ms間隔、1s間隔などに設定される。言うまでもなく、各サーバ110上には負荷情報をモニタし、一定間隔で指示された宛先にパケットとして通知するための上記のプログラムを稼動させておく。
【００６３】
各サーバ110-1〜110-4が負荷情報通知機能で通知する負荷情報は、例えば、CPUの利用率の平均値（定期通知するまでの期間の平均値）、メモリ利用率（または、搭載メモリ容量に対するメモリ利用量）の平均値を通知する。CPU利用率、および、記憶部であるメモリ利用率の片方、または、双方が予め定めた閾値を超えていれば負荷が高いと判断できる。負荷の高低の判断は、送信元のインテリジェントノード(IN)で行っても良いし、受信側のインテリジェントノード(IN)で行っても良い。いずれの場合でも、最終的には、受信側のインテリジェントノード(IN)のテーブル更新部136が判断結果としての負荷情報を利用して、各テーブルの更新を行う。
【００６４】
インテリジェントノード(IN)の通信機能部130でパケットを受信すると、パケット解析部132で、宛先MACアドレスと宛先IPアドレスを検査することにより、当該インテリジェントノード(IN)自身宛の制御パケットか、それ以外の宛先のパケットか調べる。自身宛の制御パケットであり、負荷情報が記載されていれば、該当する負荷情報をテーブル更新部136へ転送し、次回のフロー情報テーブル210の更新時に利用する。例えば、テーブル更新部136は、各更新時において、到着している負荷情報を検査する。そこに該当サーバのCPUの負荷が80%となっており、閾値が70%に設定してあった場合、処理負荷が閾値を超えたと判断することができる。
【００６５】
なお、負荷情報を通知するパケットの形式は、例えば、図６のパケットフォーマットでL7ペイロード18部分に負荷情報を記載したものとなる。送信元IPアドレス12はサーバ自身のIPアドレスとし、宛先IPアドレス13を指定するインテリジェントノードとする。
【００６６】
図３に示すよう、フロー検出部133は、フローテーブル200を用いて、フロー検出、フロー番号の特定を行う。図３のフローテーブル200に明らかなように、フロー検出に使用するサーチキー（search key）201は、パケットを解析して得た各種レイヤの情報に対応することは言うまでもない。そして、該当するフロー検出結果(result #)202が出力先決定部134に出力される。
【００６７】
図４に示すように、出力先決定部134は、フロー状態テーブル210を用いて、フロー検出部133の検出結果に基づき、該当パケットを出力するネットワークを決定し、ネットワークインタフェース出力部135に出力する。図４に明らかなように、フロー状態テーブル210は、フロー(flow)番号211に対応して、状態(status)212、次ホップ(next hop)213、及びインタフェース(interface)214についての情報を蓄積、更新している。
【００６８】
このフロー状態テーブル210の次ホップ(next hop)213とは、「次に中継する必要のある装置のIPアドレス（L3論理情報）」を、インタフェース(interface)214とは、「next hop213に接続されている当該装置のインタフェース名称（送信元MACアドレス相当）（L2物理情報）」である。宛先MACアドレスは、next hop213のIPアドレスに対してアドレス解決プロトコル(Address Resolution Protocol: ARP）処理することで求まり、その結果は、一般に、ARPテーブルと呼ばれる情報リストに記録される。本実施例では、このARPテーブルの説明は省略する。
【００６９】
図４のフロー状態テーブル210に見るように、フロー211中のflow#0〜flow#3には、それぞれ状態(status)212として「接続開始中」、「接続中」、「接続終了中」、「未接続」が対応している。
【００７０】
図５に出力先決定部134が利用するフロー状態テーブルの他の構成を示す。図５に示すフロー状態テーブル210Bでは、図４のフロー状態テーブル210の構成に加え、更に、新宛先(new destination)215欄を備えている。この新宛先215は、例えば、flow#3のように状態212が「未接続」の場合、新宛先の装置のIPアドレス（IP D）が、当該フローの最終宛先として設定されたことを示している。
【００７１】
図３にその一例を示したフローテーブル200の設定は、先に説明した管理ノード400が行う。具体的には、フローとして定義したいフィールドの組合せ、例えば上述の宛先IPアドレス(DIP)、送信元IPアドレス(SIP)、宛先ポート番号(DP)、送信元ポート番号(SP)などの組合せを列挙した情報を、フロー番号(flow#)と一緒に各インテリジェントノード(IN)に通知する。これを受信したインテリジェントノード100の通信機能部130が、テーブル更新部136を利用してフローテーブル200の設定更新を行う。尚、フロー番号と一緒に通知するフィールド組合せの情報と共に、各フローの優先度を定義して通知しても良い。フロー状態テーブル210は専用のハードウェア回路、もしくは、ソフトウェアにより作成することができる。
【００７２】
さて、インテリジェントノード100自身宛以外のすべてパケットは、パケット解析部132でパケット内の各種のヘッダ情報、必要ならペイロード情報の解析をして、フローテーブル200が管理する要素を抽出したのち、フロー検出部133へ渡され、フロー検出部133が当該パケットのフロー番号(flow#)を特定する。インテリジェントノード100自身宛のパケットは、制御パケットであり、制御パケットの中身がフロー更新情報であれば、テーブル更新部136がフローテーブル200を更新する。また、制御パケットの中身が、後述する負荷情報であれば、フロー状態テーブル210の更新に利用される。
【００７３】
フロー状態テーブル210の初期設定、および、フロー状態テーブル210の更新のためのポリシー定義は上述の通り、管理ノード400が行う。具体的には、管理ノード400は、初期設定として、対応するフローの次ホップ(next hop)、及びインタフェース(interface)の初期値を予め準備する。最初にデータセンタ(DC)300上で動作しているアプリケーションであれば、次ホップ(next hop)はデータセンタ(DC)300へパケットを転送するための次転送先の通信装置のIPアドレス、インタフェース(interface)は、その通信装置が接続されているインテリジェントノード100の物理ポートとする。
【００７４】
フロー状態テーブル210は専用のハードウェア回路、もしくは、ソフトウェアにより作成する。例えば、図１の通信機能部130の中の出力先決定部134にフロー状態テーブル210を配置する。ソフトウェアで作成する場合、上述したメモリ上にテーブルが作成される。なお、出力先決定部134には、通常のルーティングテーブルも置かれている。そして、本実施例において、フロー状態テーブル210に登録があるフローに関しては、ルーティングテーブルによるルーティングではなく、フロー状態テーブル210に記載のルーティングを優先することで、パケットの宛先変更を可能にする。
【００７５】
変形例としてフロー状態テーブル210を図１のサーバ110部分に備えても良い。この場合、通信機能部130では、宛先、または出力先を変更する可能性のあるものは出力先決定部134で、通常のポリシーベースルーティングの機能を用い、アプリケーションの切れ目に関係なく、該当するフローに属するパケットを該当するサーバ110に転送する。サーバ110は、ソフトウェア的、論理的にフロー状態テーブルを備え、そこでパケットを当該フロー状態テーブルの記載通りに転送する。サーバ110はCPUによるソフトウェアプログラムベースで動作するため速度的に問題があれば、サーバ110部分に専用のハードウェア回路を用いることもできる。
【００７６】
さて、図５のフロー状態テーブル210Bに示す新宛先(new destination)215のフィールドを設ける場合、出力先決定部134において、入力パケットの宛先IPアドレスを新宛先(new destination)215に記載のIPアドレスに変更することになる。この場合、出力先決定部134は、一旦、通信の終端を行い、新たに、新宛先(new destination)215に対して通信を開始することになる。フロー状態テーブル210Bの新宛先(new destination)215を用いる方法は、端末に対し一旦通信を終端し、新規の通信を新宛先に対して行い、結果として端末が新宛先と通信しているのと同等の効果が得られる。
【００７７】
なお、上述した通り、本実施例においても、パケットのインテリジェントノード(IN)からの出力先を決定するために、図示を省略したルーティングテーブルを併用する。より具体的には、フロー情報テーブル210、210Ｂを検索した結果、登録がないことが判明すれば、その後に従来どおりルーティングテーブルを検索して出力先を示す次ホップ(next hop)とインタフェース(interface）を決定する。なお実装上は、フロー情報テーブルとルーティングテーブルを同時に検索しておいても良い。この場合、フロー情報テーブル210、210Bに登録があればフロー情報テーブルで出力先を決定する。
【００７８】
フロー情報テーブルもルーティングテーブルも、インテリジェントノード(IN)からの出力先を決定するという基本機能は同一である。しかしながら、ルーティングテーブルが、OSPF(Open Shortest Path First)やBGP(Border Gateway Protocol)等のルーティングプロトコルにしたがって宛先IPアドレスに対する出力先を決定するのに対し、本実施例におけるフロー状態テーブルは、管理ノード400の指示、および、サーバ110の負荷状況によってパケット内の複数のフィールドに対応する出力先を決定する点において、その機能構成は全く異なっている。すなわち、本実施例におけるフロー状態テーブルを用いることによって、フローの状態に応じて出力先を変更するため、アプリケーションを実行するサーバ位置、すなわち情報処理位置の動的な変更が可能になる。
【００７９】
次に、図７〜図９を用いて、本実施例における各テーブルの初期登録、およじその書換え処理フローについて説明する。
【００８０】
まず、フローテーブル200自体の登録は、上述したとおり、図１３、図１４に示した外部の管理ノード400または、管理者が行う。前者の場合は、先に説明したとおりフローテーブル200を更新するためのフロー更新情報を含むパケットを管理ノード400が生成し、該当のインテリジェントノード100宛に送信する。インテリジェントノード100内部での具体的処理は後に述べる後者の場合は、図１に示した管理用ポート150経由で通信機能部130内のテーブル更新部136へ指示する。尚、前者の場合に、管理ノード400からの通信用のネットワークを管理用ポート150に接続するよう構成しても良い。
【００８１】
図７にフローテーブル200とフロー状態テーブル210の初期登録フローチャートを示した。同図において、テーブル更新部136において初期登録が開始されると（S400）、まず自ノード通過パケットの有無が判断され（S401）、通過パケット有りの場合、フローテーブル200に登録有か否かが判断される（S402）。フローテーブル200に登録が有る場合、フロー状態テーブル210の状態(status)212を更新する。
【００８２】
次に、図８にフロー状態テーブルの書換えフローチャートを示した。テーブル更新部136において、書換えフォローチャートが開始されると(S500)、まずフロー状態テーブル登録フローに対し、自ノードサーバで実行要求があるか否かがチェックされる(S501)。実行要求が有り(yes)の場合、当該フローの状態(status)212が「未接続」か否かがチェックされる（S502）。ここで「未接続」と判断(yes)された場合、フロー状態テーブル210の該当エントリの次ホップ(next hop)213、インタフェース(interface)214、更には新宛先(new destination)215を自ノードの指定宛先に書換える。
【００８３】
自ノードサーバで実行要求がない場合(S501でno)、先に例示して説明したように、フロー状態テーブルと登録フローが利用するサーバの処理負荷が閾値を超えたか否かを判断する(S504)。超えたと判断(yes)された場合、該当フローで未接続状態のものが有るか否かを判断し(S505)、有り(yes)の場合、フロー状態テーブル210の該当エントリの次ホップ(next hop)213、インタフェース(interface)214、更には新宛先(new destination)215を、現在とは別の指定先に書換えを行う（S506）。ステップS503、S506終了後、あるいはステップS502、S504、S505で否(no)と判断された場合、ステップS501に戻る。
【００８４】
図９に、伝送制御プロトコル(Transmission Control Protocol: TCP)接続の場合を例にとり、フロー状態テーブル210の状態(status)遷移のための信号関係の一例を示した。同図において、端末Ａとは、図１３、図１４の端末340の何れか一つを示し、本装置は、本実施例のインテリジェントノード(IN)、外部サーバとは、後で説明するデータセンタ(DC)300内のサーバ、あるいはネットワーク上の他のインテリジェントノード(IN)内のサーバを意味する。
【００８５】
同図から明らかなように、通常のTCP接続同様、未接続状態において、端末Ａから、同期（syn）パケットが送信(S600）されると、インテリジェントノード(IN)である本装置から、所定の外部サーバに対して同期(syn)パケットが送信され(S601)をステップS602〜S605で接続開始中の状態に移る。接続中、端末Ａから本装置を介して外部サーバにデータ等の情報パケットが送信される（S606）。送信終了後、ステップS607〜S614で接続終了処理がなされ、処理完了後、未接続状態に戻る。以上の接続開始中、接続中、接続終了中、未接続は、図４、図５中の状態(status)に対応することは言うまでもない。
【００８６】
図１０に、所定のフローが未接続または不明状態の場合の状態(status)遷移のフローチャートを示す。図９の本装置であるインテリジェントノード100が同期（syn）パケットを受信(S601)し、ステップS602〜S604を経て、フローの状態を接続中に遷移する(S605)。その後、図９で説明したように、接続中の状態で情報パケットが送なされた後（S606）、ステップS607〜S613を経て、接続終了処理がなされ、未接続状態に遷移する（S614）。
【００８７】
さて、本実施例における管理ノード400は、あるフローに属するアプリケーションは、所定のインテリジェントノード(IN)上で実行したほうが良いと判断した場合、当該インテリジェントノード(IN)に対して実行指示を出す。この実行指示が記載された制御パケットは、当該インテリジェントノード(IN)のテーブル更新部136に到達し、上述した図８のフローチャートでS501からS502状態へ遷移する。
【００８８】
ここで、フロー情報テーブル210の状態（status）フィールド212の初期値は、タイミングによって変わってしまうので、最初は不明の状態である。不明状態の場合、当該フローの状態遷移自体は図１０のフローチャートどおりであるが、図８のステップS502の判断で未接続とならないため、ステップS503の状態に遷移はできない。しかし、当該フローの観測を続けることで、不明状態からやがて接続開始中状態（S601→S602）に遷移でき、この遷移を続けるとやがて、必ず未接続状態に遷移できる。この未接続状態に遷移した後、図８のフローチャートでS502からS503の状態に遷移し、フロー状態テーブル210の宛先情報を変更し、管理ノード400の指示等に従い、パケットの転送先をデータセンタ(DC)からインテリジェントノード100の中のサーバ110に変えることで情報処理位置を変更することができる。
【００８９】
上述の通り、管理ノード400は、フロー状態テーブル210更新のポリシー定義も制御パケットを通じてインテリジェントノード100のテーブル更新部136へ通知する。ポリシー定義の例としては、優先度の高いフローは、インテリジェントノード100内部の極力同じサーバ110に割当続け、優先度の中くらいのフローは、インテリジェントノード100内部の優先度の高いフローとは別のサーバ110に割り当て直す、優先度の低いフローは、別のインテリジェントノード(IN)か、データセンタ(DC)に割り当てなおす、というものがあげられる。このポリシーは、図８のフローチャートのS504状態において観測するサーバの処理負荷の閾値を優先度毎にわける、例えば高優先のフローは閾値を高くし、低優先のフローは閾値を低くすることなどで実現できる。
【００９０】
尚、情報処理機能を別のインテリジェントノード(IN)に割り当てる場合は、当該インテリジェントノード100でパケットを、別のインテリジェントノード(IN)宛のIPアドレスを含むL3ヘッダでカプセル化するか、IPアドレス自体を書き換えてしまう方法がある。このほかにも、データセンタ(DC)までの経路上に別のインテリジェントノード100が存在することを期待して、データセンタ(DC)に通じる出口インタフェースからパケットをそのまま出力してしまう変形もある。
【００９１】
更に、本実施例においては、管理ノード400からの指定があれば、インテリジェントノード100は自身の各サーバ110の負荷情報をまとめた情報を、定期的に他のインテリジェントノード100の通信機能部130へ通知する。全てのインテリジェントノード同士が通知しあうと、オーバーヘッドが大きくなってしまう場合や、そもそも、元のデータセンタ(DC)で実施したほうが小さい遅延になる場合があるので、当該ユーザ用の情報処理を実施する可能性のあるインテリジェントノード(IN)同士で通知しあう。また、可能であれば、管理ノード400はデータセンタ(DC)の負荷情報を集約し、これを、関係するインテリジェントノード(IN)へ通知するようにしてもよい。
【００９２】
続いて、図１６〜図１９の具体例を用いて、本実施例の宛先変更機能の理解のため、フロー状態テーブルの遷移の一例を説明する。本例は未接続のフローに対して、次ホップ(next hop)、インタフェース(interface)を書換える場合の例である。
【００９３】
図１６において、フロー状態テーブル210は、初期状態S1において、全フローともにノード外部宛に設定されている。すなわち、全てのフロー(flow#0〜flow#3)に対し、次ホップ(next hop)213、インタフェース(interface)214がIPアドレスIP A、MACアドレスeth1に設定されている。次に状態S2では、flow#0が接続中、flow#2が未接続となったことを検出する。そして、状態S3において、未接続のflow#2の次宛先をIPアドレスIP B1の自ノードサーバ110-1、出力インタフェース(interface)をサーバ110-1が接続されるMACアドレスeth0に変更する。その後、状態S4では、flow#2が接続開始中となり、宛先はIPアドレスB1のサーバ110-1に変更されている。また、flow#3の次宛先をIPアドレスB1の自ノードサーバ110-1、出力インタフェース(interface)をMACアドレスeth0に変更する。
【００９４】
図１７において、状態S4に続き、状態S5では、flow#2が接続中となり、flow#0、flow#1が接続終了中に遷移し、flow#3が接続開始中に遷移する。同様に、状態S6では、flow#0、flow#1が未接続に遷移し、flow#3が接続中に遷移する。更に、状態S7では、未接続状態のflow#0、flow#1の次宛先をそれぞれIPアドレスがIP B1、IP B2の自ノードサーバ110-1、110-2、出力インタフェース(interface)をMACアドレスethoに変更する。
【００９５】
図１８において、状態S7に引き続き、状態S8では、flow#0、flow#1が接続中に遷移し、flow#3が接続終了中に遷移する。そして、状態S9では、flow#3が未接続に遷移すると、状態S10において、当該ノードの処理負荷が高くなったと判断し、未接続状態のflow#3の次宛先をIPアドレスIP Aの当該ノードに接続される次の装置とし、出力インタフェース(interface)をMACアドレスeth1に変更する。
【００９６】
図１９において、状態S10に引続く状態S11では、flow#3が自ノード外で接続開始中に遷移していることを検出する。この後、fflow#3に対しては、未接続状態になるまで次ホップ(next hop)213とインタフェース(interface)214の変更は禁止される。最後に、状態S12では、flow#3が自ノード外で接続中に遷移する。
【００９７】
上述した第１の実施例の構成により、遠方のデータセンタの処理を、端末近傍のネットワークノードで実行できるようになる。通常は、この宛先変更機能により、端末から見た処理遅延Z（通信距離の遅延Aとアプリケーション実行時間の遅延Bの和）が小さくなる。ただし、ネットワークノードのサーバによる情報処理機能の負荷が高くなってくると、アプリケーション実効時間の遅延Bが大きくなって、結果として端末から見た処理遅延Zが当初の目論見より大きな値になりうる。その際には、インテリジェントノード(IN)が現状を管理ノードへ報告し、管理ノードから新規の宛先変更指示を待つよう構成することもできる。あるいは、予め、宛先変更ポリシーを管理ノードから貰っておいて、そのポリシーが適用される状況（ここでは、当初目論見より大きな遅延になってしまった状況）になったら、各インテリジェントノードが自律的に宛先変更を行うよう構成してもよい。
【００９８】
新規の宛先は、次ホップ（next hop）とインタフェース(interface)を書き換えるだけであれば、自インテリジェントノードに直結される次の装置（多くの場合は通信装置）に転送され、その後は、通常のルーティングに従う。この際、データセンタまでの経路上の別のインテリジェントノードがあり、そのインテリジェントノードでフロー状態テーブルが同様に記載されていればそのインテリジェントノードにパケットが取り込まれ、そこでアプリケーションが実行される。経路上にインテリジェントノードがなければ、データセンタに到達し、当初どおり、データセンタで処理が行われる。また、次宛先（next destination）を変えれば、明示的に最終的な宛先を変更することができる。つまり、明示的に次の近傍に存在するインテリジェントノードを指定しても良いし、最終的なデータセンタを指定しても良い。
【００９９】
以上詳述してきた本発明によれば、本来、遠方のデータセンタで行っていたアプリ処理を端末近傍のネットワークノードで実行でき、端末側から見た処理遅延を小さくすることができる。また、ネットワーク中を流れるデータ量を抑えられ、システム全体で見て省電力化が図れる。
【産業上の利用可能性】
【０１００】
本発明は、情報システム、特にデータセンタ集約型情報システムでの遅延時間・信頼性・エネルギー効率の諸問題を解決可能な情報伝達と情報処理の融合技術として極めて有用である。
【符号の説明】
【０１０１】
100…インテリジェントノード
110…サーバ
120…スイッチ
130…通信機能部
131…ネットワークインタフェース集約部
132…パケット解析部
133…フロー検出部
134…出力先決定部
135…ネットワークインタフェース出力部
140…ネットワークインタフェース
150…管理用ポート
200…フローテーブル
210、210B…フロー状態テーブル
300…データセンタ(DC)
301…代表サーバ
302…サーバ
303…ディスク群
310…WAN
320…ゲートウェイ
330…LAN
340…端末
350…エッジノード
351…センサ
352…制御対象。
【図１】
0005506444.tif 000002
【図２】
0005506444.tif 000003
【図３】
0005506444.tif 000004
【図４】
0005506444.tif 000005
【図５】
0005506444.tif 000006
【図６】
0005506444.tif 000007
【図７】
0005506444.tif 000008
【図８】
0005506444.tif 000009
【図９】
0005506444.tif 000010
【図１０】
0005506444.tif 000011
【図１１】
0005506444.tif 000012
【図１２】
0005506444.tif 000013
【図１３】
0005506444.tif 000014
【図１４】
0005506444.tif 000015
【図１５】
0005506444.tif 000016
【図１６】
0005506444.tif 000017
【図１７】
0005506444.tif 000018
【図１８】
0005506444.tif 000019
【図１９】
0005506444.tif 000020