(57)【要約】【課題】ネットワーク内の処理を効率よく実行可能な情報処理装置を提供する。【解決手段】情報処理装置は、情報処理装置は、ネットワーク内に接続された他の情報処理装置の経路情報と前記他の情報処理装置の負荷を示す負荷情報とを含む判定基礎情報を記憶する記憶部と、前記判定基礎情報に基づいて得られる優先度に基づいて、受信したパケットに含まれる命令を実行する情報処理装置を判定する命令判定部と、を有する。【選択図】図２
2020150368.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内に接続された他の情報処理装置の経路情報と前記他の情報処理装置の負荷を示す負荷情報とを含む判定基礎情報を記憶する記憶部と、
前記判定基礎情報に基づいて得られる優先度に基づいて、受信したパケットに含まれる命令を実行する情報処理装置を判定する命令判定部と、を有する、情報処理装置。
【請求項２】
前記命令判定部により他の情報処理装置での命令の実行が判定された場合、判定された情報処理装置に、実行を決定した命令を含むパケットを転送するパケット転送部をさらに有する、請求項１に記載の情報処理装置。
【請求項３】
前記判定基礎情報は、自情報処理装置の負荷を示す負荷情報を含み、
前記命令判定部が自情報処理装置での命令の実行を判定した場合に命令を実行する命令実行部をさらに有する、請求項１または２に記載の情報処理装置。
【請求項４】
前記判定基礎情報は、他の情報処理装置との通信により更新可能な、請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
他の情報処理装置から受信する制御パケットに含まれる前記経路情報と前記負荷情報とに基づいて前記記憶部に記憶された前記判定基礎情報を更新し、更新した前記判定基礎情報に基づいて前記優先度を更新する経路制御部をさらに有する、請求項４に記載の情報処理装置。
【請求項６】
前記経路制御部は、前記経路情報で示される経路長が他の情報処理装置に比べて短く、かつ、前記負荷情報で示される負荷が他の情報処理装置に比べて小さいほど、前記優先度を高く設定する、請求項５に記載の情報処理装置。
【請求項７】
前記記憶部には、命令を実行可能な情報処理装置の前記経路情報および前記負荷情報と、命令を実行可能な情報処理装置までの経路上にある中継情報処理装置の前記経路情報および前記負荷情報とを含む前記判定基礎情報が、命令を実行可能な情報処理装置毎に保持され、
前記経路制御部は、
判定基礎情報毎に、前記判定基礎情報に含まれる前記負荷情報により示される負荷が他より小さい情報処理装置を選択し、
選択した情報処理装置の負荷と、選択した情報処理装置までの経路長との積をそれぞれ算出し、
前記積が小さい順に優先度を高く設定する、
請求項６に記載の情報処理装置。
【請求項８】
前記記憶部は、前記ネットワーク内の情報処理装置で実行可能な命令毎に、前記判定基礎情報を記憶する、請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
請求項１から８のいずれか１項に記載の情報処理装置を複数備える情報処理システム。
【請求項１０】
前記複数の情報処理装置は、それぞれが保持する前記判定基礎情報または自情報処理装置の負荷情報を交換し、前記判定基礎情報を更新する、請求項９に記載の情報処理システム。
【請求項１１】
ネットワーク内で他の情報処理装置に接続される情報処理装置の制御方法であって、
ネットワーク内に接続された他の情報処理装置の経路情報と前記他の情報処理装置の負荷を示す負荷情報とを含む判定基礎情報を記憶し、
前記判定基礎情報に基づいて得られる優先度に基づいて、受信したパケットに含まれる命令を実行する情報処理装置を判定する、情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理システム及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
ネットワークにおけるパケットの転送中に計算を行うＩｎ−ｎｅｔｗｏｒｋ Ｃｏｍｐｕｔｉｎｇが注目されている。Ｉｎ−ｎｅｔｗｏｒｋ Ｃｏｍｐｕｔｉｎｇでは、例えば、転送するパケットが、演算機能を有するノード（情報処理装置）上において、パケットが要求する順番で処理が行われるようにネットワークが制御される。
【０００３】
また、識別装置が、パケットに適用するサービス機能を識別して、パケットに識別子（ＮＳＨ：Network Service Header）を付与し、転送装置が、識別子を参照してパケットをサービス機能等に転送するサービスチェイニングシステムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１２９７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、ネットワーク内の処理を効率よく実行可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の実施形態の情報処理装置は、ネットワーク内に接続された他の情報処理装置の経路情報と前記他の情報処理装置の負荷を示す負荷情報とを含む判定基礎情報を記憶する記憶部と、前記判定基礎情報に基づいて得られる優先度に基づいて、受信したパケットに含まれる命令を実行する情報処理装置を判定する命令判定部と、を有する。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態における情報処理システムの例を示すブロック図である。
【図２】図１の情報処理装置の例を示すブロック図である。
【図３】図２のリソーステーブルの例を示す図である。
【図４】図２の命令経路テーブルの例を示す図である。
【図５】図２のノード経路テーブルの例を示す図である。
【図６】図２の命令判定部の処理の例を示すフローチャートである。
【図７】図２のパケット転送部の処理の例を示すフローチャートである。
【図８】図２の経路制御部の処理の例を示すフローチャートである。
【図９】図８のステップＳ１６５で送信される経路制御パケットの例を示す図である。
【図１０】命令経路テーブルを構築するための経路制御パケットの転送例を示す説明図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【０００９】
図１は、本発明の一実施形態における情報処理システムの例を示すブロック図である。図１に示す情報処理システム１００は、ネットワークＮＷ中に配置された複数の情報処理装置１０１（第１の情報処理装置１０１−１、第２の情報処理装置１０１−２、第３の情報処理装置１０１−３、第４の情報処理装置１０１−４）を有している。なお、ネットワークＮＷに含まれる情報処理装置１０１の数は、図１に限定されない。以下では、第１の情報処理装置１０１−１、第２の情報処理装置１０１−２、第３の情報処理装置１０１−３及び第４の情報処理装置１０１−４を区別なく説明する場合、情報処理装置１０１と称する場合がある。
【００１０】
例えば、情報処理装置１０１の少なくとも一つは、スマートフォン等の携帯端末に含まれてもよく、ロボット、自動車等の機器に含まれてもよい。また、情報処理装置１０１の少なくとも一つは、クラウドに含まれてもよい。例えば、携帯端末またはロボット等をはじめとする機器に搭載される情報処理装置１０１は、ディープラーニング等の推論の手法を用いて、カメラで撮影した画像に含まれる物体を認識する。この際、推論処理を自情報処理装置１０１で実行するか、ネットワークＮＷ内のクラウド等に含まれる他の情報処理装置１０１により実行するかを自律的に決定することができる。
【００１１】
なお、情報処理装置１０１は、伝送装置でもよく、情報処理装置１０１の間にスイッチ等の伝送装置が配置されてもよい。ネットワークＮＷは、ＷＡＮ（Wide Area Network）でもよく、ＷＡＮ以外のネットワークを含んでもよい。ネットワークＮＷの規模及びトポロジは、図１に限定されない。以下では、各情報処理装置１０１はノードとも称される。
【００１２】
第１の情報処理装置１０１−１は、第１のリンクｌｉｎｋ１を介して第２の情報処理装置１０１−２に接続され、第２のリンクｌｉｎｋ２を介して第３の情報処理装置１０１−３に接続される。第２の情報処理装置１０１−２は、第３のリンクｌｉｎｋ３を介して第４の情報処理装置１０１−４に接続され、第５のリンクｌｉｎｋ５を介して第１の端末１０２−１に接続される。第４の情報処理装置１０１−４は、第４のリンクｌｉｎｋ４を介して第３の情報処理装置１０１−３に接続され、第６のリンクｌｉｎｋ６を介して第２の端末１０２−２に接続される。
【００１３】
以下では、第１の端末１０２−１及び第２の端末１０２−２を区別なく説明する場合、端末１０２と称する場合がある。ネットワークＮＷに接続される端末１０２の数は、図１に限定されない。また、以下では、第１のリンクｌｉｎｋ１、第２のリンクｌｉｎｋ２、第３のリンクｌｉｎｋ３、第４のリンクｌｉｎｋ４、第５のリンクｌｉｎｋ５及び第６のリンクｌｉｎｋ６を区別なく説明する場合、リンクｌｉｎｋと称する場合がある。
【００１４】
各情報処理装置１０１は、他の情報処理装置１０１又は端末１０２から受信したパケットを転送する機能と、受信したパケットに含まれる実行可能な命令を実行する機能を有している。例えば、第１の端末１０２−１又は第２の端末１０２−２は、ネットワークＮＷ内で処理を行うべき命令群のリストを含むパケットを発行する。そして、ネットワークＮＷ内の情報処理装置１０１の１つ又は複数によりパケットに含まれる命令が順次実行され、命令の実行結果が第１の端末１０２−１又は第２の端末１０２−２に転送される。すなわち、ネットワークＮＷに配置された情報処理装置１０１により、Ｉｎ−ｎｅｔｗｏｒｋ  ｃｏｍｐｕｔｉｎｇが実現される。
【００１５】
図２は、図１の情報処理装置１０１の例を示すブロック図である。本実施形態の情報処理装置１０１は、それぞれ、インタフェース部１１、パケット識別部１２、命令判定部１３、命令実行部１４、パケット転送部１５、経路制御部１６、リソーステーブル１７、命令経路テーブル１８及びノード経路テーブル１９を有している。なお、図３で説明するように、第１の情報処理装置１０１−１、第２の情報処理装置１０１−２、第３の情報処理装置１０１−３、第４の情報処理装置１０１−４は、命令実行部１４により実行する処理（すなわち、実行可能な命令）が異なってもよい。
【００１６】
インタフェース部１１は、例えば、端末１０２又は他の情報処理装置１０１に対してリンクｌｉｎｋを介してパケット（データの一例）を送受信する。インタフェース部１１は、例えば、受信したパケットをパケット識別部１２に転送し、パケット転送部１５又は経路制御部１６から転送されたパケットを端末１０２又は他の情報処理装置１０１に送信する。
【００１７】
パケット識別部１２は、インタフェース部１１から転送されたパケットが、経路制御や死活監視など、情報処理装置１０１を制御するための情報を含むかどうか、本実施形態においては、特に経路制御用の制御パケットであるか、それ以外のパケットであるかを識別する。例えば、経路制御用の制御パケットは、命令経路テーブル１８を更新するための情報を含む。以下では、経路制御用の制御パケットは、経路制御パケットとも称する。
【００１８】
例えば、上述した経路制御パケット以外のパケットは、自情報処理装置１０１の命令実行部１４又は他の情報処理装置１０１の命令実行部１４が実行する命令を含むパケット、あるいは、他の情報処理装置１０１に転送されるパケットである。パケット識別部１２は、例えば、経路制御パケットを検出した場合、受信したパケットを経路制御部１６に送り、それ以外のパケットを検出した場合、受信したパケットを命令判定部１３に転送する。
【００１９】
命令判定部１３は、パケット識別部１２から受信したパケットを解釈し、例えば、パケットに命令が含まれず、パケットの宛先が他の情報処理装置１０１又は端末１０２の場合、受信したパケットをパケット転送部１５に転送する。また、命令判定部１３は、パケット識別部１２から受信したパケットに命令に含まれる場合、命令経路テーブル１８に記憶された情報を参照する。そして、命令判定部１３は、命令を自情報処理装置１０１の命令実行部１４に処理させるか、他の情報処理装置１０１の命令実行部１４に処理させるかを判定する。なお、命令判定部１３は、命令経路テーブル１８の参照とともに、リソーステーブル１７に記憶された情報を参照してもよい。リソーステーブル１７の例は、図３に示し、命令経路テーブル１８の例は、図４に示す。
【００２０】
例えば、命令実行部１４に転送されるパケットは、少なくとも１つの命令と、命令で処理するデータと、パケットの送信元情報と、パケットの宛先情報とを含む。パケットは、複数の命令を含む場合、命令の実行順を示す情報を含んでもよい。
【００２１】
命令判定部１３は、例えば、命令を自情報処理装置１０１の命令実行部１４に処理させる場合、パケットを命令実行部１４に転送し、命令を他の情報処理装置１０１の命令実行部１４に処理させる場合、パケットをパケット転送部１５に転送する。命令判定部１３の処理の例は、図６で説明する。命令判定部１３は、命令経路テーブル１８に記憶された情報に基づいて、受信したパケットに含まれる命令を実行する情報処理装置１０１を判定する命令判定部の一例である。
【００２２】
命令実行部１４は、命令判定部１３から受信したパケットに含まれる命令のうち、自ノードで実行すべき命令を実行する。さらに、本実施形態の命令実行部１４は、実行する命令により変化する使用リソース量に応じて、リソーステーブル１７及び命令経路テーブル１８の更新を行う。使用リソース量については、図３で説明する。命令実行部１４は、命令の処理結果を含むパケットをパケット転送部１５に転送する。命令の処理結果を含むパケットは、次に処理する命令を含んでもよく、処理結果を転送先である端末１０２の宛先を含んでもよい。
【００２３】
なお、命令判定部１３は、パケットに含まれる情報のうち、命令と、命令の実行に必要な情報とを命令実行部１４に転送してもよい。そして、命令判定部１３は、命令実行部１４から命令の実行結果を受けた場合、実行結果を含むパケットを生成し、生成したパケットをパケット転送部１５に転送してもよい。
【００２４】
パケット転送部１５は、パケットを出力するリンクｌｉｎｋを決定する。例えば、命令判定部１３からパケットを受信した場合、パケットに含まれる宛先に基づいてノード経路テーブル１９を参照し、パケットを出力するリンクｌｉｎｋを決定する。パケット転送部１５は、命令実行部１４から次に処理する命令を含むパケットを受信した場合、命令経路テーブル１８を参照し、命令を処理させるノードを決定する。パケット転送部１５は、決定したノードに基づいてノード経路テーブル１９を参照し、次に処理させる命令を含むパケットを出力するリンクｌｉｎｋを決定する。そして、パケット転送部１５は、決定したリンクｌｉｎｋを示すリンク情報とともに、パケットをインタフェース部１１に転送する。
【００２５】
インタフェース部１１は、リンク情報が示すリンクｌｉｎｋにパケットを送信する。パケット転送部１５の動作の例は、図７に示す。命令経路テーブル１８の例は、図４に示し、ノード経路テーブル１９の例は、図５に示す。
【００２６】
経路制御部１６は、例えば、パケット識別部１２より受信した経路制御パケットを用いて命令経路テーブル１８の更新を行い、更新した情報に基づいて命令を実行させる優先度を再設定する。そして、経路制御部１６は、更新後の命令経路テーブル１８に含まれる情報（再設定した優先度を含む）を、インタフェース部１１を介して隣接する情報処理装置１０１（ホップ数＝"１"）に送信する。経路制御部１６の動作の例は、図８に示す。
【００２７】
図３は、図２のリソーステーブル１７の例を示す図である。リソーステーブル１７は、自情報処理装置１０１のリソースの使用状況についての情報を格納するテーブルであり、例えば、現在使用している使用リソース量と、リソース量の最大値である最大リソース量とを、命令種別毎に記憶する。使用リソース量は、情報処理装置１０１の命令種別毎の負荷を示す負荷情報の一例である。
【００２８】
例えば、使用リソース量は、情報処理装置１０１に搭載されるＣＰＵ等のプロセッサの使用率、情報処理装置１０１のメモリの使用率、又は、命令を実行するＣＰＵコア等の機能ユニットの使用率（使用数）等に基づいて設定される。しかしながら、リソース量は、プロセッサの使用率、メモリの使用率及びユニットの使用率等の組合せから得られるリソース量でもよく、他のパラメータに基づいて得られるリソース量でもよい。また、使用率や使用数は、所定の時間内における平均値であってもよい。
【００２９】
例えば、第１の情報処理装置１０１−１のリソーステーブル１７では、圧縮処理命令に基づくデータの圧縮処理が可能であり、圧縮処理に割り当てられた最大リソース量（＝"１００"）に対する現在の使用リソース量が"２０"であることが分かる。第４の情報処理装置１０１−４のリソーステーブル１７では、圧縮処理命令に基づくデータの圧縮処理と、推論処理命令に基づく推論処理が可能であることが分かる。また、圧縮処理に割り当てられた最大リソース量（＝"１００"）に対する現在の使用リソース量が"１０"であり、推論処理に割り当てられた最大リソース量（＝"１００"）に対する現在の使用リソース量が"７０"であることが分かる。なお、情報処理システム１００で実行可能な命令の種別は、図３に示す例に限定されない。
【００３０】
図４は、図２の命令経路テーブル１８の例を示す図である。命令経路テーブル１８に格納される情報は、情報処理装置１０１毎に異なる。図４は、第２の情報処理装置１０１−２の命令経路テーブル１８の例を示している。命令経路テーブル１８は、各情報処理装置１０１の経路情報と各情報処理装置１０１の負荷を示す使用リソース量（負荷情報）とを含む判定基礎情報を記憶する記憶部の一例である。判定基礎情報は、命令種別毎に記憶される。
【００３１】
命令経路テーブル１８は、例えば、各種命令を実行可能な着目する情報処理装置１０１毎に、命令種別と、判定基礎情報と、優先度とが格納される複数のエントリを有する。判定基礎情報は、着目する情報処理装置１０１のノードＩＤと、着目する情報処理装置１０１までの経路上にある中継情報処理装置１０１のノードＩＤと、これら情報処理装置１０１のそれぞれの負荷を示す負荷情報とを含む。そして、判定基礎情報に含まれる少なくとも１つのノードＩＤおよびノードＩＤの並び順が、各種命令を実行可能な着目する情報処理装置１０１までの経路情報を示している。
【００３２】
図４では、ノードＩＤを、各情報処理装置１０１の符号と同じにしているが、ノードＩＤは情報処理装置１０１を識別可能であれば、上記符号に限定されない。例えば、ノードＩＤとして、ＩＰ（Internet Protocol）アドレスやＭＰＬＳ（Multi-Protocol Label Switching）ラベル等が使用されてもよい。
【００３３】
判定基礎情報のノードＩＤの"ｌｏｃａｌ"は、自ノード（この例では、第２の情報処理装置１０１−２）を示す。判定基礎情報の"１０１−１"、"１０１−３"、"１０１−４"は、それぞれ第１の情報処理装置１０１−１、第３の情報処理装置１０１−３、第４の情報処理装置１０１−４を示す。また、判定基礎情報のかぎ括弧内の値は、使用リソース量を示し、かぎ括弧内の"ｎｏｐ"は、対応する命令を実行できないノードであることを示す。
【００３４】
１つのノードＩＤが含まれる判定基礎情報は、命令の転送先までのホップ数が"１"であることを示す。なお、図４では、説明を分かりやすくするために、自ノード（ｌｏｃａｌ）のホップ数は"１"としているが、"０"以外の最小値（例えば、０．５など）としてもよい。これに対して、カンマで区切られた複数のノードＩＤが含まれる判定基礎情報は、命令の転送先までのホップ数が、判定基礎情報に含まれるノードＩＤの数と等しいことを示す。また、判定基礎情報に含まれるカンマで区切られた複数のノードＩＤは、命令の転送順を示し、左のノードから命令が順次転送されることを示す。
【００３５】
例えば、この命令経路テーブル１８の上から４番目のエントリは、推論処理を実行可能な第３の情報処理装置１０１−３に命令を転送するためには、中継情報処理装置である第１の情報処理装置１０１−１を経由する必要があることを示す。また、上から４番目のエントリは、第１の情報処理装置１０１−１は、推論処理を実行できないことを示す。
【００３６】
優先度の領域には、命令種別毎に命令を実行させる情報処理装置１０１の優先度を示す値が格納される。この例では、値が大きいほど命令実行の優先度が高いことを示す。例えば、第２の情報処理装置１０１−２からの圧縮処理命令の転送先の優先度は、第４の情報処理装置１０１−４＞第１の情報処理装置１０１−１＞第２の情報処理装置１０１−２（自ノード）の順に高い。図４に示す例では、圧縮処理命令を実行させる情報処理装置１０１までの距離は、自ノードを含めて全て1ホップであるため、優先度は、使用リソース量が小さい情報処理装置１０１ほど高くなる（値が小さくなる）よう定められている。
【００３７】
例えば、優先度は、各エントリの判定基礎情報の領域において使用リソース量が最も少ないノードの使用リソース量と、使用リソース量が最も少ないノードまでのホップ数との乗算結果（積）が小さい順に高く設定される。これにより、優先度を、判定基礎情報で示される経路長が他の情報処理装置１０１に比べて短く、かつ、判定基礎情報で示される負荷が他の情報処理装置１０１に比べて小さいほど高く設定することができる。なお、命令を実行することができない"ｎｏｐ"の使用リソース量は、乗算対象にされないものとする。
【００３８】
例えば、圧縮処理において、１番上のエントリの乗算結果は９０になり、２番目のエントリの乗算結果は２０になり、３番目のエントリの乗算結果は１０になる。このため、圧縮処理命令の転送先の情報処理装置１０１の優先度は、乗算結果が小さい順に、上述した第４の情報処理装置１０１−４＞第１の情報処理装置１０１−１＞第２の情報処理装置１０１−２（自ノード）の順に高くなる。
【００３９】
推論処理において、１番目のエントリの乗算結果は、６０（３０×２ホップ）になり、２番目のエントリの乗算結果は、７０になる。このため、推論処理命令の転送先の情報処理装置１０１の優先度は、乗算結果が小さい順に、第３の情報処理装置１０１−３、第４の情報処理装置１０１−４になる。
【００４０】
このように、命令実行の優先度をホップ数等の経路長だけでなく、情報処理装置１０１の使用リソース量等の負荷を考慮して決めることで、例えば、特定の情報処理装置１０１への負荷の集中を低減しながら、ネットワークＮＷ内で命令を実行することができる。また、本実施形態の命令経路テーブル１８は、自情報処理装置１０１の使用リソース量と、他の情報処理装置１０１から受信する経路制御パケットにより更新され、優先度が更新される。これにより、外部からの制御によらず、パケットに含まれる命令を実行する情報処理装置１０１を自律的かつ動的に決定し、命令を適切に分散して実行することができる。
【００４１】
なお、図１に示したネットワークＮＷでは、第２の情報処理装置１０１−２は、第４の情報処理装置１０１−４を介して第３の情報処理装置１０１−３に推論処理命令を転送可能である。このため、命令経路テーブル１８の上から４番目のエントリの判定基礎情報に、"１０１−１［ｎｏｐ］,１０１−３［３０］"の代わりに、"１０１−４［７０］,１０１−３［３０］"が格納されてもよい。この場合、優先度を求めるために、例えば、使用リソース量が最も少ない第３の情報処理装置１０１−３の使用リソース量（３０）と、使用リソース量が最も少ない第３の情報処理装置１０１−３までのホップ数（２）とが乗算される。換言すれば、使用リソース量が第３の情報処理装置１０１−３の使用リソース量より多い第４の情報処理装置１０１−４は、優先度を求める対象から外される。
【００４２】
なお、優先度を求めるための計算手法は、上述した乗算を用いる手法に限定されない。また、優先度は、上述のような順位の数値として算出されてもよいが、判定基礎情報に基づいたその他の情報であってもよい。また、命令経路テーブル１８に優先度を記憶せず、例えば、パケット転送部１５が、命令を含むパケットを転送する毎に、命令経路テーブル１８に保持された判定基礎情報に基づいて、優先度を算出してもよい。
【００４３】
図５は、図２のノード経路テーブル１９の例を示す図である。ノード経路テーブル１９に格納される情報は、ノード経路に関する情報を含み、情報処理装置１０１毎に異なる。図５は、第２の情報処理装置１０１−２のノード経路テーブル１９の例を示している。以下では、端末１０２も情報処理装置として１つのノードとして扱われる。
【００４４】
ノード経路テーブル１９は、ネットワークＮＷに含まれる情報処理装置１０１とネットワークＮＷに接続される端末１０２のそれぞれに対応する複数のエントリを有する。各エントリは、ノードＩＤと経路種別と出力先とを示す情報をそれぞれ格納する領域を有している。
【００４５】
経路種別の領域には、例えば、ノードが自ノードに隣接するノードである場合、"ｄｉｒｅｃｔ"を示す情報が格納され、ノードが他のノード介して自ノードに接続される場合、"ｒｅｍｏｔｅ"を示す情報が格納される。出力先の領域には、ノードに接続されているリンクｌｉｎｋを識別するリンクＩＤが格納され、自ノードの場合、"ｌｏｃａｌ"を示す情報が格納される。
【００４６】
ノード経路テーブル１９は、例えば、パケット転送部１５及び経路制御部１６が他の情報処理装置１０１又は端末１０２にパケットを転送する場合に参照される。例えば、ノード経路テーブル１９は、ネットワークＮＷの構成が決まった場合、情報処理装置１０１が命令等の実行に使用されるか否かにかかわらず生成される。なお、ノードＩＤは、情報処理装置１０１を識別できればＩＰアドレスやＭＰＬＳラベル等の他の識別情報が使用されてもよい。出力先は、リンクの識別情報ではなく、ネクストホップを示す識別情報が使用されてもよい。
【００４７】
図６は、図２の命令判定部１３の処理の例を示すフローチャートである。すなわち、図６は、情報処理装置１０１の制御方法の例を示している。図６に示す処理は、パケット識別部１２から命令を含むパケットを受信したことに基づいて開始される。
【００４８】
まず、ステップＳ１３１において、命令判定部１３は、リソーステーブル１７を参照し、パケット識別部１２から受信したパケットに含まれる命令を命令実行部１４で実行可能か否かを判定する。具体的には、命令判定部１３は、パケット識別部１２から受信したパケットに含まれる命令の種別が、リソーステーブル１７に記憶された命令種別のいずれかと一致するかを判定する。命令種別が一致する場合、処理はステップＳ１３２に移行され、命令種別が一致しない場合、処理はステップＳ１３４に移行される。
【００４９】
ステップＳ１３２において、命令判定部１３は、命令経路テーブル１８を参照し、ステップＳ１３１で判定された実行可能な命令に対応する自ノードの優先度が最も高いか否かを判定する。優先度が最も高い場合、処理はステップＳ１３３に移行され、他のノードの優先度が自ノードの優先度より高い場合、処理はステップＳ１３４に移行される。
【００５０】
ステップＳ１３３において、命令判定部１３は、自ノードで命令を処理することが最適であるため、命令を含むパケットを命令実行部１４に転送し、処理を終了する。一方、ステップＳ１３４において、命令判定部１３は、最も優先度の高い他のノードに命令を送信するため、命令を含むパケットをパケット転送部１５に転送し、処理を終了する。
【００５１】
なお、ステップＳ１３２において、命令判定部１３は、優先度による判定ではなく、自ノードの使用リソース量に基づいて、自ノードの命令実行部１４で命令を実行することを判定してもよい。例えば、命令判定部１３は、使用リソース量が所定の閾値以下である場合に、自ノードでの処理が適切であるとして、処理をステップＳ１３３に移行してもよい。また、過去のリソースの使用量の傾向に基づいて、命令が実行されるときのリソース使用量を予測し、予測結果が所定の閾値以下である場合に、処理をステップＳ１３３に移行してもよい。さらに、宛先の端末１０２までのホップ数が少なく、命令を処理する情報処理装置１０１が限定される場合には、自ノードでの処理が適切であるとして、リソースの使用量が上記所定の閾値を超えている場合にも、リソースに余裕があるものとして処理をステップＳ１３３に移行してもよい。
【００５２】
図７は、図２のパケット転送部１５の処理の例を示すフローチャートである。すなわち、図７は、情報処理装置１０１の制御方法の例を示している。図７に示す処理は、命令判定部１３又は命令実行部１４からパケットを受信したことに基づいて開始される。
【００５３】
まず、ステップＳ１５１において、パケット転送部１５は、実行が必要な命令が、受信したパケットに含まれているか否かを判定する。実行が必要な命令が含まれている場合、処理はステップＳ１５２に移行され、実行が必要な命令が含まれていない場合、処理はステップＳ１５４に移行される。
【００５４】
ステップＳ１５２において、パケット転送部１５は、パケットに含まれる命令を抽出する。次に、ステップＳ１５３において、パケット転送部１５は、命令経路テーブル１８を参照し、ステップＳ１５２で抽出した命令の種別に対応するエントリのうち、最も優先度が高いエントリの判定基礎情報に含まれる先頭のノードＩＤを抽出する。抽出した先頭のノードＩＤは、隣接ノードを示し、パケットの宛先ノードとして使用される。ステップＳ１５３の後、処理はステップＳ１５５に移行される。
【００５５】
一方、ステップＳ１５４において、パケット転送部１５は、パケットから宛先ノードのＩＤを抽出し、処理をステップＳ１５５に移行する。
【００５６】
ステップＳ１５５において、パケット転送部１５は、ノード経路テーブル１９を参照し、宛先ノードに対応する出力先情報（リンクＩＤ）を抽出する。次に、ステップＳ１５６において、パケット転送部１５は、ステップＳ１５５で抽出した出力先情報が示すリンクに、インタフェース部１１を介してパケットを転送し、処理を終了する。
【００５７】
図８は、図２の経路制御部１６の処理の例を示すフローチャートである。すなわち、図８は、情報処理装置１０１の制御方法の例を示している。図８に示す処理は、所定の周期で繰り返し実行されることが好ましい。
【００５８】
まず、ステップＳ１６１において、経路制御部１６は、経路制御パケットを受信したか否かを判定し、経路制御パケットを受信した場合、処理をステップＳ１６２に移行し、経路制御パケットを受信していない場合、処理をステップＳ１６４に移行する。
【００５９】
ステップＳ１６２において、経路制御部１６は、経路制御パケットから命令種別と判定基礎情報とを抽出し、抽出した命令種別と判定基礎情報と、デフォルトの優先度とを命令経路テーブル１８に追加する。デフォルトの優先度は、無効な値を示す"０"に設定されてもよい。
【００６０】
次に、ステップＳ１６３において、経路制御部１６は、ステップＳ１６２で追加した命令種別と同一の命令種別を保持するエントリについて、所定の計算式に基づいて優先度を再計算し、命令経路テーブル１８を更新する。例えば、経路制御部１６は、判定基礎情報で示される命令の転送先までの経路長（例えば、ホップ数）と命令の転送先の情報処理装置１０１の命令種別毎のリソース量とに応じて優先度を決定する。そして、経路制御部１６は、命令種別毎に優先度が最も高いエントリを選択する。
【００６１】
一例として、図４で説明したように、優先度は、命令種別毎に、使用リソース量が最も少ない情報処理装置１０１までのホップ数と使用リソース量とを乗じた値が小さいほど高く（値は小さい）設定される。そして、追加されたエントリと、追加されたエントリに基づいて再計算された優先度により命令経路テーブル１８が更新される。なお、優先度を更新する際に、命令種別毎に優先度が低い順に所定数のエントリが命令経路テーブル１８から削除されても良い。
【００６２】
一方、ステップＳ１６４において、経路制御部１６は、前回の経路制御パケットの送信から所定時間が経過したか否かを判定し、所定時間が経過した場合、処理をステップＳ１６５に移行し、所定時間が経過していない場合、処理を終了する。
【００６３】
ステップＳ１６５において、経路制御部１６は、命令経路テーブル１８において、命令種別毎に選択された優先度が最も高いエントリの判定基礎情報に、自ノードのノードＩＤと使用リソース量とを追加した経路制御パケットを生成する。ここで、自ノードのノードＩＤと使用リソース量とは、判定基礎情報の先頭に付与される。経路制御パケットの例は、図９に示す。
【００６４】
例えば、自ノードの使用リソース量は、リソーステーブル１７から抽出される。経路制御部１６は、生成した経路制御パケットを、自ノードに隣接する情報処理装置１０１（ホップ数＝"１"）に送信し、処理を終了する。なお、経路制御部１６は、命令種別毎に、優先度が高い順に２以上のエントリの判定基礎情報に、それぞれ自ノードのノードＩＤと使用リソース量とを追加した経路制御パケットを生成してもよい。
【００６５】
また、ステップＳ１６４での所定時間の経過に基づくステップＳ１６５の処理では、自ノードの使用リソース量の変化量が所定の閾値以下（例えば、変化量が１０％以下）の場合、経路制御パケットの転送を保留してもよい。これにより、経路制御パケットの転送頻度を削減することができ、ネットワークＮＷの通信負荷を軽減することができる。
【００６６】
なお、経路制御パケットを受信した隣接する情報処理装置１０１の経路制御部１６は、図８のステップＳ１６１、Ｓ１６２、Ｓ１６３の処理を実行し、命令経路テーブル１８の更新処理を行う。また、経路制御部１６は、図８のステップＳ１６５の処理を実行し、更新により優先度が最も高くなった情報処理装置１０１を示す判定基礎情報を、自ノードの判定基礎情報とともに隣接ノードに転送する。
【００６７】
これにより、図１に示したネットワークＮＷに含まれる情報処理装置１０１において命令経路テーブル１８の更新処理が順に行われる。このように、本実施形態では、情報処理装置１０１間で、自ノードで演算可能な命令種別と使用リソース量とを自律分散的に相互に交換することができる。これにより、パケットの最適な転送経路と演算リソースの使用状況を動的に更新することができ、処理を行うために適した情報処理装置１０１を適切に選択することができる。
【００６８】
また、経路制御部１６は、他の情報処理装置１０１の生存を確認する生存確認パケットを所定の頻度で転送してもよい。そして、生存が確認できない情報処理装置１０１の情報を命令経路テーブル１８から削除してもよい。
【００６９】
さらに、命令経路テーブル１８に登録されていない情報処理装置１０１が、命令種別で示される命令の少なくともいずれかを実行できるようになった場合、当該情報処理装置１０１の経路制御部１６は、新規登録用の経路制御パケットを隣接ノードに転送してもよい。これにより、命令の実行が可能になった情報処理装置１０１の情報が命令経路テーブル１８に登録され、命令の実行が可能になった情報処理装置１０１に命令を処理させることが可能になる。
【００７０】
また、命令経路テーブル１８に登録された情報処理装置１０１が、命令経路テーブル１８に登録済みの命令を実行できなくなった場合、登録抹消用の経路制御パケットを隣接ノードに転送してもよい。これにより、他の情報処理装置１０１の命令経路テーブル１８が更新され、誤った命令経路テーブル１８を用いてパケットが正常に転送されなくなる不具合を防止することができる。
【００７１】
命令の実行が可能になった他の情報処理装置１０１又は命令の実行が不可能になった他の情報処理装置１０１から経路制御パケットを受信した情報処理装置１０１の経路制御部１６は、エントリを追加又は削除する。また、経路制御部１６は、エントリの追加又は削除後に命令経路テーブル１８の判定基礎情報を更新した後、命令種別毎に優先度を再計算し、再計算により得られた新たな優先度を命令経路テーブル１８に格納する。
【００７２】
図９は、第２の情報処理装置１０１−２が送信する経路制御パケットの例を示す。図９に示す経路制御パケットは、図８のステップＳ１６４において、所定時間の経過が判定された場合に、第２の情報処理装置１０１−２の経路制御部１６が送信する経路制御パケットの例を示す。
【００７３】
経路制御パケットは、例えば、命令種別毎に判定基礎情報を格納する領域を有する。経路制御パケットに含まれる命令種別と判定基礎情報の意味は、図４に示した命令経路テーブル１８に格納される情報と同様である。但し、経路制御パケットに含まれる判定基礎情報の先頭には、経路制御パケットの発行元である自ノードのノードＩＤと使用リソース量とが格納される。また、経路制御パケットに含まれる判定基礎情報の２番目には、命令経路テーブル１８において優先度が最も高いエントリのノードＩＤと使用リソース量とが格納される。
【００７４】
図４に示した命令経路テーブル１８では、圧縮処理において、第４の情報処理装置１０１−４の優先度が最も高く、推論処理において、第３の情報処理装置１０１−３の優先度が最も高い。このため、経路制御パケットの圧縮処理のエントリには、自ノードの判定基礎情報（１０１−２［９０］）に続き、第４の情報処理装置１０１−４の判定基礎情報（１０１−４［１０］）が格納される。経路制御パケットの推論処理のエントリには、自ノードの判定基礎情報（１０１−２［ｎｏｐ］）に続き、第３の情報処理装置１０１−３の判定基礎情報（１０１−３［３０］）が格納される。ここで、第２の情報処理装置１０１−２は、推論処理を実行できないため、第２の情報処理装置１０１−２の判定基礎情報の使用リソース量は"ｎｏｐ"に設定される。
【００７５】
なお、上述したように、経路制御部１６は、命令種別毎に、命令経路テーブル１８において優先度が高い順に２以上のエントリの判定基礎情報に、それぞれ自ノードのノードＩＤと使用リソース量とを追加した経路制御パケットを生成してもよい。例えば、優先度の高い順に２つのエントリの判定基礎情報を経路制御パケットに含ませる場合、圧縮処理では、判定基礎情報（１０１−４［１０］）の後に、判定基礎情報（１０１−１［２０］）が付加される。推論処理では、判定基礎情報（１０１−３［３０］）の後に、判定基礎情報（１０１−４［７０］）が付加される。
【００７６】
優先度が高い順に２以上のエントリの判定基礎情報を経路制御パケットに含めて送信することで、図８のステップＳ１６３による優先度の計算処理の精度を向上することができ、情報処理システム１００で実行される命令の実効性能を向上することができる。
【００７７】
図１０は、命令経路テーブル１８を構築するための経路制御パケットの転送例を示す説明図である。図１０では、第２の情報処理装置１０１−２の命令経路テーブル１８（図４）を構築する例を示す。
【００７８】
例えば、第３の情報処理装置１０１−３は、図８のステップＳ１６４において、所定時間の経過が判定されたため、隣接ノードに判定基礎情報（１０１−３［３０］）を含む経路制御パケットを送信する。ここで、第３の情報処理装置１０１−３の経路制御部１６は、自ノードの優先度が最も高いため、自ノードの判定基礎情報のみを含む経路制御パケットを、隣接ノードである第１の情報処理装置１０１−１と第４の情報処理装置１０１−４とに送信する。また、この例では、圧縮処理を実行できない第３の情報処理装置１０１−３の命令経路テーブル１８には、圧縮処理の判定基礎情報が格納されていない。このため、圧縮処理に対応する判定基礎情報は経路制御パケットに含まれない。
【００７９】
第３の情報処理装置１０１−３から経路制御パケットを受信した第１の情報処理装置１０１−１は、命令種別毎に、自ノードの判定基礎情報と優先度が最も高いノードの判定基礎情報とを含む経路制御パケットを生成する。命令種別毎に自ノードの優先度が最も高い場合、自ノードの判定基礎情報のみが経路制御パケットに含まれる。経路制御パケットの生成方法は、図８のステップＳ１６５の説明及び図９の説明と同様である。そして第１の情報処理装置１０１−１は、生成した経路制御パケットを第２の情報処理装置１０１−２に送信する。
【００８０】
第３の情報処理装置１０１−３から経路制御パケットを受信した第４の情報処理装置１０１−４も、第１の情報処理装置１０１−１と同様に、命令種別毎に、自ノードの判定基礎情報と優先度が最も高いノードの判定基礎情報とを含む経路制御パケットを生成する。そして、生成した経路制御パケットを第２の情報処理装置１０１−２に送信する。
【００８１】
第２の情報処理装置１０１−２の経路制御部１６は、隣接ノードから経路制御パケットを受信する毎に、命令経路テーブル１８を更新し、優先度を再計算して、命令経路テーブル１８に格納する。そして、図４に示した命令経路テーブル１８が生成される。
【００８２】
以上説明したように、本実施形態では、パケットに含まれる命令を実行する情報処理装置１０１を、単にホップ数に応じて決めるのではなく、ホップ数と使用リソース量とから得られる優先度に基づいて決定する。換言すれば、命令を含むパケットの転送先を、経路長とノードの負荷とから得られる優先度に基づいて決定する。
【００８３】
これにより、各情報処理装置１０１までの経路長と各情報処理装置１０１の負荷とを考慮して、パケットに含まれる命令を実行する情報処理装置１０１を自律的かつ動的に決定することができる。例えば、複数のサービスをつなぎ合わせて１つのサービスとして実行するサービスチェイニングを、外部からの制御によらず、各情報処理装置１０１により自律的に実行することができる。
【００８４】
また、命令経路テーブル１８を所定の頻度で更新して優先度を再計算し、命令を実行する情報処理装置１０１を決定するため、各情報処理装置１０１の処理能力の余裕度に応じて、動的に負荷を分散することができる。負荷が特定の情報処理装置１０１に偏ることを防止できるため、情報処理システム１００の処理性能の低下を抑制することができる。
【００８５】
また、自律的なパケットの転送制御及び命令の実行制御ができるため、情報処理装置１０１を集中して制御するためにネットワークＮＷに接続される制御装置を設ける必要がない。また、新たな情報処理装置１０１で命令を実行可能になった場合にも、経路制御パケットを送信し、各情報処理装置１０１の命令経路テーブル１８を更新し、優先度を再計算することで対応することができる。この結果、上述の制御装置で制御する場合に問題となる情報処理システム１００の規模の制限を取り除くことができ、スケーラブルな情報処理システム１００を構築することができる。
【００８６】
また、生存確認パケットにより生存が確認できない情報処理装置１０１の情報を命令経路テーブル１８から削除することができる。このため、情報処理装置１０１又はリンクｌｉｎｋがダウンした場合にも、命令経路テーブル１８に保持された優先度に基づいて決定した情報処理装置１０１に命令を実行させることができる。この結果、情報処理システム１００の対障害性を向上することができる。
【００８７】
さらに、情報処理装置１０１のいずれかが携帯端末やロボット等の機器に搭載され、ディープラーニング等の処理を実行するとする。この場合、処理を自分（携帯端末またはロボット等）で行うのか、ネットワークＮＷに含まれるクラウドやスイッチ等に任せるのかを判定することができる。この際、各情報処理装置１０１は、隣接ノードから経路制御パケットを受信する毎に判定基礎情報を更新し、命令実行の優先度を更新する。このため、各情報処理装置１０１は、ネットワークＮＷの全体の状況を把握していなくても、誰が処理を実行すべきかを自律的かつ動的に判定することができる。
【００８８】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８９】
１１  インタフェース部
１２  パケット識別部
１３  命令判定部
１４  命令実行部
１５  パケット転送部
１６  経路制御部
１７  リソーステーブル
１８  命令経路テーブル
１９  ノード経路テーブル
１００  情報処理システム
１０１  情報処理装置
１０２  端末
ＮＷ  ネットワーク
【図１】
2020150368.tif 000003
【図２】
2020150368.tif 000004
【図３】
2020150368.tif 000005
【図４】
2020150368.tif 000006
【図５】
2020150368.tif 000007
【図６】
2020150368.tif 000008
【図７】
2020150368.tif 000009
【図８】
2020150368.tif 000010
【図９】
2020150368.tif 000011
【図１０】
2020150368.tif 000012