(57)【特許請求の範囲】
【請求項１】
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記情報処理装置に割り当てた処理量の合計を表す合計処理量を算出する処理量算出手段と、
前記複数の処理のうち、前記仮想ネットワーク装置が処理を行う順または逆順に、まだ割り当てが決まっていない前記処理を割り当て対象として選択し、選択した前記割り当て対象に関する処理量と、前記合計処理量との合計値を算出する合計算出手段と、
前記合計値が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定するリソース判定手段と、
前記合計値が前記装置処理量以下である場合に、前記割り当て対象を前記情報処理装置に割り当て、前記合計値が前記装置処理量よりも大きな場合に、前記割り当て対象を前記情報処理装置とは異なる情報処理装置に割り当てるリソース割り当て手段と
を備え、
前記処理量算出手段は、前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記合計処理量を算出する
割り当て装置。
【請求項２】
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記複数の処理において相互に隣接している前記処理の組み合わせであって、前記処理の処理量の合計が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるような、前記組み合わせを算出する組み合わせ算出手段と、
算出した前記組み合わせのうち、前記組み合わせに含まれる処理数が最多または略最多の前記組み合わせを選択し、選択した前記組み合わせに前記情報処理装置を割り当てるリソース割り当て手段と
を備え、
前記組み合わせ算出手段は、前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記組み合わせを算出する
割り当て装置。
【請求項３】
請求項１に記載の割り当て装置である第１割り当て装置と、
請求項２に記載の割り当て装置である第２割り当て装置と、
前記仮想ネットワーク装置を前記情報処理装置にて実行する場合に要する通信量に基づいて、前記第１割り当て装置が割り当てる割り当てと、前記第２割り当て装置が割り当てる割り当てとのいずれかを選択する割り当て決定手段と
を備える割り当て装置。
【請求項４】
前記割り当て装置は、前記処理の間にて移動するデータ量から、異なる前記情報処理装置に割り当てられた前記処理の間における総移動量を算出することにより、前記通信量を算出する
請求項３に記載の割り当て装置。
【請求項５】
仮想ネットワーク装置と、
前記仮想ネットワーク装置に関する割り当てを算出する請求項１乃至請求項４のいずれかに記載の割り当て装置と、
を備える通信ネットワーク装置。
【請求項６】
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記情報処理装置に割り当てた処理量の合計を表す合計処理量を算出し、前記複数の処理のうち、前記仮想ネットワーク装置が処理を行う順または逆順に、まだ割り当てが決まっていない前記処理を割り当て対象として選択し、選択した前記割り当て対象に関する処理量と、前記合計処理量との合計値を算出し前記合計値が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定し、前記合計値が前記装置処理量以下である場合に、前記割り当て対象を前記情報処理装置に割り当て、前記合計値が前記装置処理量よりも大きな場合に、前記割り当て対象を前記情報処理装置とは異なる情報処理装置に割り当て前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記合計処理量を算出する割り当て方法。
【請求項７】
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記情報処理装置に割り当てた処理量の合計を表す合計処理量を算出する処理量算出機能と、
前記複数の処理のうち、前記仮想ネットワーク装置が処理を行う順または逆順に、まだ割り当てが決まっていない前記処理を割り当て対象として選択し、選択した前記割り当て対象に関する処理量と、前記合計処理量との合計値を算出する合計算出機能と、
前記合計値が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定するリソース判定機能と、
前記合計値が前記装置処理量以下である場合に、前記割り当て対象を前記情報処理装置に割り当て、前記合計値が前記装置処理量よりも大きな場合に、前記割り当て対象を前記情報処理装置とは異なる情報処理装置に割り当てるリソース割り当て機能と
をコンピュータに実現させ、
前記処理量算出機能においては、前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記合計処理量を算出する
割り当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ネットワーク装置における処理を情報処理装置に割り当てる割り当て装置等に関する。
【背景技術】
【０００２】
汎用のコンピュータにおいて、通信ネットワーク（以降、単に、「ネットワーク」と表す）における通信を制御するネットワーク機能を、ハードウェアではなくソフトウェアを用いて実現する仮想ネットワーク装置が増えている。ソフトウェアを用いてネットワーク機能を実現する一例として、仮想ネットワーク機能（Ｎｅｔｗｏｒｋ＿Ｆｕｎｃｔｉｏｎ＿Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＮＦＶ）がある。これは、たとえば、クラウドコンピューティングにおいて仮想化された計算機資源を確保し、確保した計算機資源を用いてネットワーク機能を実現し、通信を制御する必要がなくなれば、確保した計算機資源を解放することにより実現される。
【０００３】
Ｖｉｒｔｕａｌ＿Ｎｅｔｗｏｒｋ＿Ｆｕｎｃｔｉｏｎ＿Ｃｏｍｐｏｎｅｎｔ（ＶＮＦＣ）は、仮想ネットワーク機能に含まれる処理単位を表す複数の機能（以降、「構成機能」と表す）を表す。多くの場合、ネットワーク機能は、複数の構成機能が順次実行されることにより実現される。したがって、ネットワーク機能において複数の構成機能が相互に関連している態様は、チェインとも呼ばれる。すなわち、チェインは、複数の構成機能が順次実行される態様を表す。
【０００４】
ソフトウェアによってネットワーク機能を実現する場合であっても、該ネットワークにおける情報（パケット）は、物理的なネットワーク（たとえば、ネットワークケーブル）を介して送受信されることもある。または、ネットワークにおけるパケットは、物理的な情報処理装置における信号として送受信されることもある。パケットは、物理的なネットワークよりも、物理的な情報処理装置において送受信される方が、通信遅延が発生しないので、早く伝搬する。したがって、パケットは、物理的なネットワークを経由するよりも、情報処理装置において処理される方が、ネットワーク機能に関する処理効率が高い。
【０００５】
たとえば、特許文献１には、ネットワークにおける通信帯域が効率的に利用されるように仮想計算機に関する処理を割り当てる情報処理装置を調整する仮想計算機管理装置が開示される。該仮想計算機管理装置は、ネットワークに関する帯域等に基づき、仮想計算機に関する処理を割り当てる情報処理装置を決定する。該仮想計算機管理装置は、情報処理装置とゲートウェイとの間における通信経路に存在するネットワーク機器の最大帯域及び使用可能帯域と、仮想計算機の最大帯域と、情報処理装置が有するリソース量とに基づき、情報処理装置を決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２５０７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ソフトウェアを用いてネットワーク機能を実現する場合に、複数の構成機能に対して、特許文献１に従い、該構成機能を実現する物理的な情報処理装置を割り当てたとしても、該割り当てを効率的に決めることはできない。これは、複数の構成機能が逐次的に処理を行うによって、ネットワーク機能が実現されることが多い傾向があるにもかかわらず、特許文献１においては、該傾向を考慮せずに処理を割り当てるからである。
【０００８】
そこで、本発明の主たる目的は、仮想ネットワーク装置を効率的に処理する割り当てを高速に算出する割り当て装置等を提供することである。
【課題を解決するための手段】
【０００９】
前述の目的を達成するために、本発明の一態様において、割り当て装置は、
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記情報処理装置に割り当てた処理量の合計を表す合計処理量を算出する処理量算出手段と、
前記複数の処理のうち、前記仮想ネットワーク装置が処理を行う順または逆順に、まだ割り当てが決まっていない前記処理を割り当て対象として選択し、選択した前記割り当て対象に関する処理量と、前記合計処理量との合計値を算出する合計算出手段と、
前記合計値が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定するリソース判定手段と、
前記合計値が前記装置処理量以下である場合に、前記割り当て対象を前記情報処理装置に割り当て、前記合計値が前記装置処理量よりも大きな場合に、前記割り当て対象を前記情報処理装置とは異なる情報処理装置に割り当てるリソース割り当て手段と
を備え、
前記処理量算出手段は、前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記合計処理量を算出する。
【００１０】
また、本発明の他の見地として、割り当て方法は、
仮想ネットワーク装置を構成する複数の処理を情報処理装置に割り当てる場合に、前記情報処理装置に割り当てた処理量の合計を表す合計処理量を算出し、前記複数の処理のうち、前記仮想ネットワーク装置が処理を行う順または逆順に、まだ割り当てが決まっていない前記処理を割り当て対象として選択し、選択した前記割り当て対象に関する処理量と、前記合計処理量との合計値を算出し前記合計値が、前記情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定し、前記合計値が前記装置処理量以下である場合に、前記割り当て対象を前記情報処理装置に割り当て、前記合計値が前記装置処理量よりも大きな場合に、前記割り当て対象を前記情報処理装置とは異なる情報処理装置に割り当て前記仮想ネットワーク装置において割り当てが決まっていない前記処理がある場合に、前記合計処理量を算出する。
【００１１】
さらに、同目的は、係る割り当てプログラム、及び、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１２】
本発明に係る割り当て装置等によれば、仮想ネットワーク装置を効率的に処理する割り当てを高速に算出することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に係る割り当て装置が有する構成を示すブロック図である。
【図２】仮想ネットワーク装置を実行する情報処理システムが有する構成の一例を表すブロック図である。
【図３】仮想ネットワーク装置が有する構成の一例を概念的に表すブロック図である。
【図４】第１の実施形態に係る割り当て装置における処理の流れを示すフローチャートである。
【図５】本発明の第２の実施形態に係る割り当て装置が有する構成を示すブロック図である。
【図６】第２の実施形態に係る移動量情報の一例を概念的に表す図である。
【図７】第２の実施形態に係る割り当て装置における処理の流れを示すフローチャートである。
【図８】本発明の第２の実施形態に係る割り当て装置が有する構成を示すブロック図である。
【図９】本発明の第３の実施形態に係る割り当て装置が有する構成を表すブロック図である。
【図１０】第３の実施形態に係る割り当て装置における処理の流れを示すフローチャートである。
【図１１】本発明の第３の実施形態に係る第１割り当て部が有する構成を表すブロック図である。
【図１２】第３の実施形態に係る第１割り当て部における処理の流れを示すフローチャートである。
【図１３】本発明の第３の実施形態に係る第２割り当て部が有する構成を表すブロック図である。
【図１４】第３の実施形態に係る第２割り当て部における処理の流れを示すフローチャートである。
【図１５】本発明の各実施形態に係る割り当て装置を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００１４】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００１５】
＜第１の実施形態＞
まず、仮想ネットワーク装置と、該仮想ネットワーク装置における処理を実際に実行する情報処理システムとに関して詳細に説明する。
【００１６】
図２と、図３とを参照しながら、仮想ネットワーク装置２０４における処理を実際に実行する情報処理システム２０１が有する構成の一例、及び、仮想ネットワーク装置２０４が有する構成の一例について説明する。図２は、仮想ネットワーク装置２０４を実行する情報処理システム２０１が有する構成の一例を表すブロック図である。図３は、仮想ネットワーク装置２０４が有する構成の一例を概念的に表すブロック図である。
【００１７】
図２に示す例を参照すると、情報処理システム２０１は、情報処理装置１乃至情報処理装置３と、ルータ２０２と、ルータ２０３とを有する。尚、情報処理装置１乃至情報処理装置３は、仮想ネットワーク装置２０４における処理を、実際に処理可能な物理的な情報処理装置を表す。
【００１８】
図３を参照すると、仮想ネットワーク装置２０４は、仮想ネットワーク装置２０４を構成する１まとまりの処理を実行する仮想処理部を複数個有する。すなわち、仮想ネットワーク装置２０４は、仮想ネットワーク装置２０４を実現する構成機能として、仮想処理部を複数個有する。たとえば、図２に示す例において、仮想ネットワーク装置２０４は、仮想処理部１乃至仮想処理部１０を有する。さらに、仮想ネットワーク装置２０４は、ルータ２０２及びルータ２０３と、データ（情報）を送受信することができる。１つの仮想処理部は、たとえば、ファイアウォールに関する処理を実行することにより、構成機能を実現する。１つの仮想処理部は、たとえば、ネットワークアドレス変換（ＮＡＴ）に関する処理を実行することにより構成機能を実現する。尚、仮想処理部が行う処理は、上述した例に限定されない。
【００１９】
説明の便宜上、仮想処理部１乃至仮想処理部１０は、仮想計算機（ＶＭ）を用いて実現されているとする。また、仮想処理部は、仮想処理部１乃至仮想処理部１０であり、１０台であるとする。仮想処理部は、複数台であればよいので、上記の例に限定されない。
【００２０】
仮想処理部１乃至仮想処理部１０が、相互に隣接している仮想処理部と情報（データ）を交換しながら処理を実行することにより、仮想ネットワーク装置２０４に関する機能が実現される。ここで、相互に隣接しているとは、情報（データ）を送信、受信、または、送受信する態様を表す。または、相互に隣接しているとは、異なる仮想処理部において、一方の仮想処理部におけるデータを、他方の仮想処理部が参照可能な態様を表す。
【００２１】
一般に、仮想ネットワーク装置２０４に関する機能は、仮想処理部１乃至仮想処理部１０が、順次、処理を行うことにより実現される。尚、仮想ネットワーク装置２０４に関する機能は、仮想処理部１０乃至仮想処理部１が、順次、処理を行うことにより実現されてもよい。
【００２２】
チェイン２０５は、上述したように、仮想ネットワーク装置２０４に関する機能を実現する仮想処理部１乃至仮想処理部１０を表す総称である。
【００２３】
情報処理装置１乃至情報処理装置３は、仮想処理部１乃至仮想処理部１０における処理を物理的に実行する。仮想処理部１乃至仮想処理部１０は、情報処理装置１乃至情報処理装置３のいずれかにおいて実行されているオペレーティングシステム（ＯＳ）が有する機能を用いて、ＶＭとして実現されている。
【００２４】
図２に例示する情報処理システム２０１において、ＶＭに含まれる機能を実行する情報処理装置は、３台であるが、必ずしも３台である必要はなく、２台、または、４台以上であってもよい。さらに、図２に例示する情報処理システム２０１において、情報処理装置は、３つの仮想処理部における処理を実行しているが、必ずしも３つである必要はない。
【００２５】
次に、図１を参照しながら、本発明の第１の実施形態に係る割り当て装置１０１が有する構成について詳細に説明する。図１は、本発明の第１の実施形態に係る割り当て装置１０１が有する構成を示すブロック図である。
【００２６】
第１の実施形態に係る割り当て装置１０１は、処理量算出部１０２と、合計算出部１０３と、リソース判定部１０４と、リソース割り当て部１０５とを有する。
【００２７】
割り当て装置１０１は、たとえば、上述したような仮想ネットワーク装置２０４に含まれる仮想処理部１乃至仮想処理部１０に関する処理を実行する情報処理装置を選ぶ。すなわち、割り当て装置１０１は、たとえば、仮想処理部１乃至仮想処理部１０に関する処理を、情報処理装置１乃至情報処理装置３に割り当てる。この場合に、割り当て装置１０１は、仮想ネットワーク装置２０４に関する機能が実際に実行される順序、または、その逆順にて、仮想処理部に関する処理を情報処理装置に割り当てる。
【００２８】
処理量算出部１０２は、情報処理装置に割り当てられた処理量の合計を表す合計処理量を算出する。たとえば、仮想処理部を一意に識別可能な仮想処理部識別子（以降、識別子を「ＩＤ」と表す）と、該仮想処理部に関する処理量とが関連付けされた処理情報を記憶可能な処理情報部３０１を参照することにより、処理量算出部１０２は、合計処理量を算出する。
【００２９】
たとえば、情報処理装置に対する割り当てが決まっていない場合に、処理量算出部１０２は、該情報処理装置に対する処理量を合計することにより０を算出する。また、情報処理装置に対して仮想処理部１及び仮想処理部２に関する処理が割り当てられている場合に、処理量算出部１０２は、処理情報部３０１において、仮想処理部１に関連付けされた処理量、及び、仮想処理部２に関連付けされた処理量を読み取る。処理量算出部１０２は、読み取った処理量を合計することにより、情報処理装置に対する処理量の合計値を算出する。
【００３０】
合計算出部１０３は、まだ処理を割り当てていない仮想処理部のうち、仮想ネットワーク装置２０４において最も早期に処理を実行する仮想処理部に関する処理量と、処理量算出部１０２が算出した合計値とを合計し、合計した結果を第２合計値として算出する。たとえば、仮想処理部１及び仮想処理部２に関する処理が情報処理装置に割り当てられている場合に、合計算出部１０３は、処理情報部３０１から、仮想処理部３に関する処理量を読み取る。合計算出部１０３は、読み取った仮想処理部３に関する処理量と、処理量算出部１０２が算出した合計値との第２合計値を算出する。
【００３１】
リソース判定部１０４は、合計算出部１０３が算出した第２合計値が、該処理を割り当てた情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定する。たとえば、リソース判定部１０４は、装置情報部３０２において、該情報処理装置を表す装置ＩＤと関連付けされた装置処理量を読み取り、第２合計値が、読み取った装置処理量以下であるか否かを判定する。
【００３２】
第２合計値が装置処理量以下である場合に、リソース割り当て部１０５は、該仮想処理部に関する処理を該情報処理装置に割り当てる。第２合計値が装置処理量よりも大きい場合に、リソース割り当て部１０５は、該仮想処理部に関する処理を、該情報処理装置とは異なる情報処理装置に割り当てる。
【００３３】
尚、上述した処理は、たとえば、仮想ネットワーク装置２０４におけるすべての仮想処理部に関する処理が、情報処理装置に割り当てられるまで繰り返し実行される。
【００３４】
次に、図４を参照しながら、第１の実施形態に係る割り当て装置１０１が行う処理について詳細に説明する。図４は、第１の実施形態に係る割り当て装置１０１における処理の流れを示すフローチャートである。
【００３５】
処理量算出部１０２は、仮想処理部における処理に関して、情報処理装置に割り当てられた処理量を合計する（ステップＳ１０１）。
【００３６】
合計算出部１０３は、まだ処理を割り当てていない仮想処理部のうち、仮想ネットワーク装置２０４において最も早期に処理を実行する仮想処理部に関する処理量と、処理量算出部１０２が算出した合計値とを合計し、合計した結果を第２合計値として算出する（ステップＳ１０２）。
【００３７】
リソース判定部１０４は、合計算出部１０３が算出した第２合計値が、該処理を割り当てた情報処理装置が処理可能な処理量を表す装置処理量以下であるか否かを判定する（ステップＳ１０３）。
【００３８】
第２合計値が装置処理量以下である場合に（ステップＳ１０３にてＹＥＳ）、リソース割り当て部１０５は、該仮想処理部に関する処理を該情報処理装置に割り当てる（ステップＳ１０４）。第２合計値が装置処理量よりも大きい場合に（ステップＳ１０３にてＮＯ）、リソース割り当て部１０５は、該仮想処理部に関する処理を該情報処理装置とは異なる情報処理装置に割り当てる（ステップＳ１０５）。
【００３９】
尚、図４においては、該情報処理装置とは異なる情報処理装置が「第２情報処理装置」と表され、処理量算出部１０２が処理量を合計した情報処理装置が「第１情報処理装置」と表されている。
【００４０】
次に、第１の実施形態に係る割り当て装置１０１に関する効果について説明する。
【００４１】
割り当て装置１０１によれば、仮想ネットワーク装置２０４を効率的に処理する割り当てを高速に算出することができる。
【００４２】
この理由は、仮想ネットワーク装置２０４において相互に隣接している処理が、異なる情報処理装置に割り当てられるのを回避しつつ、割り当て装置１０１が該処理を、順次、情報処理装置に割り当てるからである。
【００４３】
割り当て装置１０１は、図４に示すフローチャートに従い処理を実行する場合に、情報処理装置が処理可能な装置処理量以下である限り、該情報処理装置に相互に隣接している処理を割り当てる。したがって、割り当て装置１０１は、仮想ネットワーク装置２０４を効率的に処理する割り当てを算出する。
【００４４】
また、割り当て装置１０１は、仮想ネットワーク装置２０４における処理を、仮想ネットワーク装置２０４における処理の順に、情報処理装置に割り当てる。したがって、割り当て装置１０１は、相互に隣接している仮想処理部のみを、情報処理装置に割り当てる対象とする。この結果、割り当て装置１０１は、高速に割り当てを算出することができる。
【００４５】
一方、特許文献１等に開示された装置等においては、処理が一般的な処理態様である場合に適用可能な手法に従い割り当てを算出するので、割り当て装置１０１よりも、割り当てを算出するのに多くの計算時間を要する。
【００４６】
したがって、割り当て装置１０１によれば、仮想ネットワーク装置２０４を効率的に処理する割り当てを高速に算出することができる。
【００４７】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００４８】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４９】
図５を参照しながら、第２の実施形態に係る割り当て装置１１１が有する構成について説明する。図５は、本発明の第２の実施形態に係る割り当て装置１１１が有する構成を示すブロック図である。
【００５０】
第２の実施形態に係る割り当て装置１１１は、処理量算出部１０２と、合計算出部１０３と、リソース判定部１０４と、リソース割り当て部１０５とを有する。割り当て装置１１１は、さらに、組み合わせ算出部１１２と、第２リソース割り当て部１１３と、割り当て決定部１２１とを有する。
【００５１】
組み合わせ算出部１１２は、仮想ネットワーク装置２０４において、相互に隣接している仮想処理部に関する組み合わせのうち、組み合わせに含まれる仮想処理部に関する処理量が、情報処理装置が処理可能な処理量を表す装置処理量以下である組み合わせを算出する。たとえば、仮想処理部３乃至仮想処理部５に関する処理量が、該処理を割り当てる対象である情報処理装置が処理可能な装置処理量以下であれば、組み合わせ算出部１１２は、該組み合わせを算出する。組み合わせ算出部１１２は、たとえば、仮想ネットワーク装置２０４に含まれる仮想処理部に関して、上述したような処理に従い、全ての組み合わせを算出する。
【００５２】
第２リソース割り当て部１１３は、算出された組み合わせのうち、該組み合わせに含まれる仮想処理数（すなわち、処理の種類数）が最多または略最多の組み合わせを選択する。たとえば、組み合わせが仮想処理部１乃至仮想処理部３に関する組み合わせである場合に、該組み合わせは、３つの仮想処理部を含む。また、組み合わせが仮想処理部２乃至５に関する組み合わせである場合に、該組み合わせは、４つの仮想処理部を含む。たとえば、組み合わせが上記に例示した２つの組み合わせである場合に、第２リソース割り当て部１１３は、仮想処理部２乃至仮想処理部５なる組み合わせを選択する。
【００５３】
第２リソース割り当て部１１３は、選択した組み合わせに関して、該情報処理装置を割り当てる。
【００５４】
組み合わせ算出部１１２、及び、第２リソース割り当て部１１３は、仮想ネットワーク装置２０４に含まれるすべての仮想処理部に関する割り当てが算出されるまで、上述した処理を繰り返し実行してもよい。
【００５５】
割り当て決定部１２１は、１０２乃至１０５に示す各部が算出した割り当てと、１１２及び１１３に示す各部が算出した割り当てとに関して、それぞれ、移動量情報（図６、後述する）に基づき、異なる情報処理装置に割り当てられた仮想処理部間において送受信される移動量を特定する。次に、割り当て決定部１２１は、特定した移動量を合計することにより、算出した割り当てに関する総移動量を算出する。その後、割り当て決定部１２１は、総移動量が小さな割り当てを選択する。
【００５６】
ここで、図６を参照しながら、本実施形態に係る移動量情報について説明する。図６は、第２の実施形態に係る移動量情報の一例を概念的に表す図である。
【００５７】
移動量情報においては、仮想処理部を一意に識別可能な、２つの装置識別子（以降、識別子を「ＩＤ」と表す）と、２つの装置ＩＤがそれぞれ表す仮想処理部間を移動するデータ量を表す移動量とが関連付けされている。たとえば、移動量情報においては、仮想処理部２と、仮想処理部３と、移動量「４０」とが関連付けされている。これは、仮想処理部２と、仮想処理部３との間において移動されるデータ量が４０であることを表す。
【００５８】
たとえば、割り当て決定部１２１は、仮想処理部２が割り当てられている情報処理装置と、仮想処理部３が割り当てられている情報処理装置とが異なる場合に、移動量情報に基づき、仮想処理部２と仮想処理部３とに関連付けされた移動量である４０を特定する。同様に、割り当て決定部１２１は、仮想処理部に関する処理が割り当てられた情報処理装置が異なる場合に、異なる情報処理装置に割り当てられた仮想処理部間に関して、移動量情報に基づき移動量を特定する。割り当て決定部１２１は、特定した移動量を合計することにより、算出された割り当てに関する総移動量を算出する。
【００５９】
図７を参照しながら、第２の実施形態に係る割り当て装置１１１が行う処理について説明する。図７は、第２の実施形態に係る割り当て装置１１１における処理の流れを示すフローチャートである。
【００６０】
組み合わせ算出部１１２は、仮想ネットワーク装置２０４において、相互に隣接している仮想処理部に関する組み合わせのうち、組み合わせに含まれる仮想処理部に関する処理量が、情報処理装置が処理可能な装置処理量以下である組み合わせを算出する（ステップＳ１１１）。
【００６１】
第２リソース割り当て部１１３は、算出された組み合わせのうち、該組み合わせに含まれる仮想処理数（すなわち、処理の種類数）が最多または略最多の組み合わせを選択する（ステップＳ１１２）。
【００６２】
第２リソース割り当て部１１３は、選択した組み合わせに関して、該情報処理装置を割り当てる（ステップＳ１１３）。
【００６３】
尚、組み合わせ算出部１１２、及び、第２リソース割り当て部１１３は、図８に示すように割り当て装置１２２において処理を実行してもよい。図８は、本発明の第２の実施形態に係る割り当て装置１２２が有する構成を示すブロック図である。
【００６４】
第２の実施形態に係る割り当て装置１２２は、組み合わせ算出部１１２と、第２リソース割り当て部１１３とを有する。
【００６５】
割り当て装置１２２は、処理情報部３０１及び装置情報部３０２に基づき、仮想処理部に関する処理を割り当てる情報処理装置を算出する。
【００６６】
割り当て装置１２２によれば、仮想ネットワーク装置２０４を効率的に処理する割り当てを高速に算出することができる。この理由は、仮想ネットワーク装置２０４において相互に隣接している処理が、異なる情報処理装置に割り当てられるのを回避しつつ、割り当て装置１０１が該処理を、順次、情報処理装置に割り当てるからである。さらに、仮想処理部が逐次的に処理を行うという仮想ネットワーク装置２０４における処理態様に基づき割り当て装置１２２が割り当てを算出するので、割り当て装置１２２によれば、効率的に処理する割り当てを高速に算出することができる。
【００６７】
次に、第２の実施形態に係る割り当て装置１１１に関する効果について説明する。
【００６８】
本実施形態に係る割り当て装置１１１によれば、仮想ネットワーク装置２０４を効率的に処理する割り当てを高速に算出することができる。この理由は、第２の実施形態に係る割り当て装置１１１が、第１の実施形態に係る割り当て装置１０１を含むからである。
【００６９】
さらに、本実施形態に係る割り当て装置１１１によれば、より効率的な仮想ネットワーク装置２０４における処理の割り当てを算出することができる。この理由は、異なる情報処理装置間における移動量が少ない割り当てを、割り当て決定部１２１が選択するからである。
【００７０】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【００７１】
次に、図９と、図１０とを参照しながら、本発明の第３の実施形態に係る割り当て装置２１０が有する構成と、第３の実施形態に係る割り当て装置２１０における処理について説明する。図９は、本発明の第３の実施形態に係る割り当て装置２１０が有する構成を表すブロック図である。図１０は、第３の実施形態に係る割り当て装置２１０における処理の流れを示すフローチャートである。
【００７２】
本発明の第３の実施形態に係る割り当て装置２１０は、第１割り当て部２１１と、第２割り当て部２１２と、割り当て決定部２１３とを有する。
【００７３】
第１割り当て部２１１は、処理手順１に従い、仮想処理部１乃至仮想処理部１０における処理を実行する情報処理装置を割り当てる（ステップＳ１５１）。尚、処理手順１は、第１の実施形態に係る処理量算出部１０２、合計算出部１０３、リソース判定部１０４、及び、リソース割り当て部１０５において実行される処理、または、後述するような処理手順である。
【００７４】
第２割り当て部２１２は、処理手順２に従い、仮想処理部１乃至仮想処理部１０における処理を実行する情報処理装置を割り当てる（ステップＳ１５２）。尚、処理手順２は、第２の実施形態に係る組み合わせ算出部１１２、及び、第２リソース割り当て部１１３において実行される処理、または、後述するような処理手順である。
【００７５】
割り当て決定部２１３は、処理手順１に従い算出された割り当てと、処理手順２に従い算出された割り当てとのうち、情報処理装置間において移動するデータ（情報）量が少ない割り当てを選択する。たとえば、割り当て決定部２１３は、相互に隣接している仮想処理部間において移動するデータ量を記憶する移動量情報（図６）に基づき、異なる情報処理装置に割り当てられる仮想処理部間において移動するデータ量を算出する（ステップＳ１５３）。割り当て決定部２１３は、算出したデータ量が少ない割り当てを選択する（ステップＳ１５４）。
【００７６】
仮想処理部に関する処理を割り当てられた情報処理装置は、該仮想処理部に関する処理を実行する。たとえば、仮想処理部がファイアウォールであれば、選択された情報処理装置は、ファイアウォールに関する処理を実行する。割り当て装置２１０が、仮想処理部に関する割り当てを変更するのに応じて、情報処理装置が処理する仮想処理部の台数は増減する。
【００７７】
説明の便宜上、以降の説明においては、仮想処理部ｉ（ただし、１≦ｉ≦１０）における処理を実行するのに要する処理量をＲｉと表すとする。また、物理的な情報処理装置が有する装置処理量をＲＭと表すとする。さらに、Ｒｉは、ＲＭ以下であるとする。
【００７８】
次に、図１１と図１２とを参照しながら、本発明の第３の実施形態に係る第１割り当て部２１１が有する構成と、第３の実施形態に係る第１割り当て部２１１における処理について説明する。図１１は、本発明の第３の実施形態に係る第１割り当て部２１１が有する構成を表すブロック図である。図１２は、第３の実施形態に係る第１割り当て部２１１における処理の流れを示すフローチャートである。
【００７９】
本実施形態に係る第１割り当て部２１１は、処理量算出部２２２と、合計算出部２２３と、リソース判定部２２４と、リソース割り当て部２２５と、再割り当て部２２６とを有する。
【００８０】
上述したように、第１割り当て部２１１は、処理手順１に従い、仮想処理部における処理を実行する情報処理装置を割り当てる。第１割り当て部２１１は、１つの物理的な情報処理装置に関する装置処理量ＲＭを超えないようにしながら、仮想ネットワーク装置２０４を実現する処理の順番、または、該処理の逆順に、仮想処理部に関する処理を物理的な情報処理装置に割り当てる。
【００８１】
たとえば、処理量算出部２２２は、ある物理的な情報処理装置に割り当てられた処理量（リソース量）の合計値を算出する（ステップＳ２０１）。次に、合計算出部２２３は、処理量算出部２２２が算出した合計値と、割り当てが決められていない仮想処理部のうち、チェイン２０５において処理順番が最も早い仮想処理部に関する処理量との合計値（以降、「第２合計値」と表す）を算出する（ステップＳ２０２）。
【００８２】
リソース判定部２２４は、算出した第２合計値が、該ある情報処理装置によって処理可能な装置処理量以下であるか否かを判定する（ステップＳ２０３）。
【００８３】
リソース割り当て部２２５は、第２合計値が該装置処理量以下である場合に（ステップＳ２０３にてＹＥＳ）、該仮想処理部に関する処理を、該ある情報処理装置に割り当てる（ステップＳ２０４）。リソース割り当て部２２５は、第２合計値が該装置処理量を超えると判定する場合に（ステップＳ２０３にてＮＯ）、該仮想処理部に関する処理を、まだ処理が割り当てられていない情報処理装置に割り当てる（ステップＳ２０５）。
【００８４】
チェイン２０５において最後（または、最初）に処理を実行する仮想処理部以外の仮想処理部に関する割り当てが算出（ステップＳ２０６）されるまで、ステップＳ２０１乃至ステップＳ２０５に示す処理を繰り返す。
【００８５】
次に、再割り当て部２２６は、各情報処理装置に関して、該情報処理装置に割り当てられた仮想処理部に関する処理の処理量の合計値を算出し、さらに、該情報処理装置が処理可能な装置処理量と、合計値との差を算出する。算出した差がまだ割り当てが決まっていない仮想処理部に関する処理量以上であれば（ステップＳ２０７にてＹＥＳ）、再割り当て部２２６は、該差が算出された情報処理装置に、該仮想処理部に関する処理を割り当てる（ステップＳ２０８）。
【００８６】
いずれの情報処理装置に関しても、算出した差がまだ割り当てが決まっていない仮想処理部に関する処理量未満である場合に（ステップＳ２０７にてＮＯ）、リソース割り当て部２２５は、該仮想処理部に関する処理を、まだ処理が割り当てられていない情報処理装置を割り当てる（ステップＳ２０９）。
【００８７】
上述したように、処理手順１は、チェイン２０５において処理が進む順序にて、仮想処理部に関する処理量を合計し、合計した結果が情報処理装置に関する装置処理量ＲＭを超えないようにしつつ組み合わせ（グループ）を作成する手順である。また、処理手順１は、処理１乃至処理５に示す処理としても表すことができる。すなわち、
（処理１）ａに１を設定する、
（処理２）「Σ（ｉ＝ａ）ｂＲｉ≦ＲＭ」を満たす最大のｂを算出する。仮想処理部ａ乃至仮想処理部ｂを１つの組み合わせとする、
（処理３）（ｂ＋１）を算出し、結果をａに設定する、
（処理４）処理２及び処理３を、すべての仮想処理部に情報処理装置が割り当てられるまで繰り返す、
（処理５）最後に設定された組み合わせ以外は、１つ組み合わせにつき１台の情報処理装置を割り当てる。該情報処理装置のうち、最後に設定された組み合わせに関する処理量を処理可能な特定の情報処理装置がある場合には、組み合わせに含まれる仮想処理部を特定の情報処理装置に割り当てる。特定の情報処理装置がない場合には、該組み合わせに新たに情報処理装置を割り当てる。
【００８８】
ただし、ａ及びｂは、整数を表す。「Σ（ｉ＝ａ）ｂＲｉ」は、Ｒａ乃至Ｒｂの総和を算出することを表す。
【００８９】
次に、図１３と図１４とを参照しながら、本発明の第３の実施形態に係る第２割り当て部２１２が有する構成と、第３の実施形態に係る第２割り当て部２１２における処理について説明する。図１３は、本発明の第３の実施形態に係る第２割り当て部２１２が有する構成を表すブロック図である。図１４は、第３の実施形態に係る第２割り当て部２１２における処理の流れを示すフローチャートである。
【００９０】
本実施形態に係る第２割り当て部２１２は、組み合わせ算出部２３３と、第２リソース割り当て部２３４と、第２再割り当て部２３５とを有する。
【００９１】
上述したように、第２割り当て部２１２は、処理手順２に従い、仮想処理部における処理を実行する情報処理装置を割り当てる。
【００９２】
組み合わせ算出部２３３は、割り当てがまだ決まっていない仮想処理部のうち、仮想処理部に関する処理量の合計が、情報処理装置が処理可能な装置処理量以下である仮想処理部の組み合わせを算出する（ステップＳ２１１）。この場合に、組み合わせ算出部２３３は、該組み合わせを、相互に隣接している仮想処理部によって作成する。
【００９３】
次に、第２リソース割り当て部２３４は、算出された組み合わせのうち、該組み合わせに含まれる仮想処理部の台数が最多または略最多である組み合わせを選択する。第２リソース割り当て部２３４は、選択した組み合わせに含まれる仮想処理部における処理を、情報処理装置に割り当てる（ステップＳ２１２）。
【００９４】
ステップＳ２１１及びステップＳ２１２は、すべての仮想処理部に関する処理が物理的な情報処理装置に割り当てられるまで繰り返し実行される（ステップＳ２１３）。
【００９５】
ここで、説明の便宜上、最後に割り当てられた情報処理装置を「第１情報処理装置」と表す。
【００９６】
次に、第２再割り当て部２３５は、仮想処理部における処理が割り当てられた情報処理装置のうち、第１情報処理装置以外の情報処理装置に関して、該情報処理装置に割り当てられた処理量の合計値を算出する。第２再割り当て部２３５は、物理的な第１情報処理装置以外の情報処理装置に関して、情報処理装置が処理可能な装置処理量と、算出した合計値との差を算出する。第２再割り当て部２３５は、算出した差が、第１情報処理装置に割り当てられた処理量以上である情報処理装置があるか否かを判定する。第２再割り当て部２３５は、該情報処理装置がある場合に（ステップＳ２１４にてＹＥＳ）、第１情報処理装置に割り当てていた処理を、該情報処理装置に割り当てる（ステップＳ２１５）。すなわち、この場合に、第２再割り当て部２３５は、第１情報処理装置に割り当てていた処理の割り当てを、該情報処理装置に割り当て直す（ステップＳ２１５）。
【００９７】
上述したように、処理手順２においては、チェイン２０５にて相互に隣接しており、かつ、割り当てが決まっていない仮想処理部に関して、情報処理装置に関する装置処理量を超えない範囲、かつ、仮想処理部数が最多または略最多である組み合わせを作成する。処理手順２においては、一つ組み合わせを作成した後に、割り当てが決まっていない仮想処理部について、同様に組み合わせを作成する。また、処理手順１は、前述した処理１乃至処理５に示す処理としても表すことができる。また、処理手順２は、処理６乃至処理１２に示す処理としても表すことができる。すなわち、
（処理６）ａに０を設定する、
（処理７）「Σ（ｉ＝ａ）ｂＲｉ≦ＲＭ」を満たす最大または略最大のｂを探す。説明の便宜上、最大であるｂをｂａと表すとする。ただし、Ｒａ乃至Ｒｂに情報処理装置が割り当てられていないとする。該処理によって、１つの組み合わせが算出される、
（処理８）「ａ＋１」を算出し、算出した結果をａに設定する、
（処理９）すべての組み合わせが算出されるまで、処理７及び処理８を繰り返す、
（処理１０）「ｂａ−ａ」を算出し、算出した値が最大または略最大である組み合わせ（すなわち、Ｒａ乃至Ｒｂａ）に情報処理装置を割り当てる、
（処理１１）すべての仮想処理部に関する割り当てが決まるまで、処理７乃至処理１０を繰り返す、
（処理１２）最後の組み合わせ以外は、１つの組み合わせにつき１台の情報処理装置を割り当てる。該情報処理装置のうち、最後の組み合わせに関する処理量を処理可能な特定の情報処理装置がある場合には、組み合わせに含まれる仮想処理部を特定の情報処理装置に割り当てる。特定の情報処理装置がない場合には、該組み合わせに新たに情報処理装置を割り当てる。
【００９８】
次に、割り当て決定部２１３は、第１割り当て部２１１が算出した割り当てと、第２割り当て部２１２が算出した割り当てとに関して、それぞれ、移動量情報に基づき、異なる情報処理装置の間において移動するデータ量の合計値を算出する。
【００９９】
たとえば、相互に隣接している仮想処理部が、異なる情報処理装置に割り当てられた場合に、該異なる情報処理装置の間において、データを送受信する通信が必要である。
【０１００】
説明の便宜上、相互に隣接している仮想処理部のうち、異なる物理的な情報処理装置に割り当てられている仮想処理部を、「第１仮想処理部」、及び、「第２仮想処理部」と表すとする。
【０１０１】
この場合に、割り当て決定部２１３は、移動量情報において、第１仮想処理部を表す識別子と、第２仮想処理部を表す識別子とに関連付けされた移動量を選択する。割り当て決定部２１３は、相互に隣接している仮想処理部のうち、異なる情報処理装置に割り当てられている仮想処理部に関して、移動量情報に基づき、それぞれ、移動量を選択する。次に、割り当て決定部２１３は、選択した移動量の合計を算出する。
【０１０２】
割り当て決定部２１３は、第２割り当て部２１２が算出した割り当てに関しても、上述した処理と同様な処理を実行することにより、移動量の合計を算出する。
【０１０３】
次に、割り当て決定部２１３は、第１割り当て部２１１が算出した割り当てに関する移動量の合計と、第２割り当て部２１２が算出した割り当てに関する移動量の合計とを比較し、合計が小さい割り当てを、仮想処理部における処理の割り当てとして決定する。
【０１０４】
次に、具体例を参照しながら、本実施形態に係る割り当て装置２１０が行う処理について説明する。
【０１０５】
まず、情報処理装置が処理可能な装置処理量は１であるとする。また、チェイン２０５は、１０台の仮想処理部（仮想処理部１乃至仮想処理部１０）によって実現されるとする。また、仮想処理部に関する処理を実現するのに要する処理量は、それぞれ、以下の通りであるとする。すなわち、
仮想処理部１：０．３、
仮想処理部２：０．３、
仮想処理部３：０．４、
仮想処理部４：０．２、
仮想処理部５：０．２、
仮想処理部６：０．２、
仮想処理部７：０．５、
仮想処理部８：０．２、
仮想処理部９：０．３、
仮想処理部１０：０．２。
【０１０６】
処理量算出部２２２は、まず、情報処理装置１に割り当てられた処理量の合計値を算出する。この場合に、処理量算出部２２２は、まだ、仮想処理部を割り当てていないので合計値として０を算出する。次に、合計算出部２２３は、該合計値（＝０）と、仮想処理部１に関する処理量（＝０．３）との合計値（第２合計値＝０．３）を算出する。リソース割り当て部２２５は、算出した第２合計値（＝０．３）が、情報処理装置１が有する装置処理量（＝１）以下であるので、仮想処理部１に関する処理を第１情報処理装置に割り当てる。
【０１０７】
次に、処理量算出部２２２は、情報処理装置１に割り当てられた処理量の合計値が０．３であると算出する。次に、合計算出部２２３は、該合計値（＝０．３）と、仮想処理部２に関する処理量（＝０．３）との第２合計値（＝０．６）を算出する。リソース割り当て部２２５は、算出した第２合計値（＝０．６）が、情報処理装置１が有する装置処理量（＝１）以下であるので、仮想処理部２に関する処理を情報処理装置１に割り当てる。
【０１０８】
以降、第１割り当て部２１１は、上述した処理と同様の処理を実行することにより、以下の割り当てを算出する。
【０１０９】
情報処理装置１：仮想処理部１、仮想処理部２、仮想処理部３、
情報処理装置２：仮想処理部４、仮想処理部５、仮想処理部６、
情報処理装置３：仮想処理部７、仮想処理部８、仮想処理部９。
【０１１０】
次に、再割り当て部２２６は、各情報処理装置に関して、該情報処理装置に割り当てられた仮想処理部に関する処理の処理量の合計値を算出する。たとえば、再割り当て部２２６は、情報処理装置１に関する合計値が１（＝０．３＋０．４＋０．３）であると算出する。再割り当て部２２６は、情報処理装置２に関する合計値が０．６（＝０．２＋０．２＋０．２）であると算出する。再割り当て部２２６は、情報処理装置３に関する合計値が０．９（＝０．２＋０．５＋０．２）であると算出する。
【０１１１】
次に、再割り当て部２２６は、該情報処理装置が処理可能な装置処理量と、合計値との差を算出する。たとえば、再割り当て部２２６は、情報処理装置１に関して、差０（＝１−１）を算出する。再割り当て部２２６は、情報処理装置２に関して、差０．４（＝１−０．６）を算出する。再割り当て部２２６は、情報処理装置３に関して、差０．１（＝１−０．９）を算出する。
【０１１２】
再割り当て部２２６は、物理的な情報処理装置２に関する差（＝０．４）が、仮想処理部１０に関する処理に要する処理量（＝０．２）よりも小さいので、仮想処理部１０に関する処理を情報処理装置２に割り当てる。
【０１１３】
次に、第２割り当て部２１２における処理について説明する。組み合わせ算出部２３３は、割り当てがまだ決まっていない仮想処理部のうち、仮想処理部に関する処理の合計値が、物理的な情報処理装置が処理可能な装置処理量以下である仮想処理部の組み合わせを算出する。たとえば、組み合わせ算出部２３３は、以下の組み合わせを算出する。すなわち、
（組み合わせ１）仮想処理部１、仮想処理部２、仮想処理部３、
（組み合わせ２）仮想処理部２、仮想処理部３、仮想処理部４、
（組み合わせ３）仮想処理部３、仮想処理部４、仮想処理部５、仮想処理部６、
（組み合わせ４）仮想処理部４、仮想処理部５、仮想処理部６、
（組み合わせ５）仮想処理部５、仮想処理部６、仮想処理部７、
（組み合わせ６）仮想処理部６、仮想処理部７、仮想処理部８、
（組み合わせ７）仮想処理部７、仮想処理部８、仮想処理部９、
（組み合わせ８）仮想処理部８、仮想処理部９、仮想処理部１０。
【０１１４】
次に、第２リソース割り当て部２３４は、算出した組み合わせのうち、該組み合わせに含まれる仮想処理部の台数が最大または略最大である組み合わせを選び、選んだ組み合わせに含まれる仮想処理部における処理を１台の情報処理装置に割り当てる。この場合に、第２リソース割り当て部２３４は、組み合わせ３を選び、組み合わせ３に含まれる仮想処理部３乃至仮想処理部６における処理に情報処理装置２を割り当てる。
【０１１５】
次に、組み合わせ算出部２３３は、割り当てがまだ決まっていない仮想処理部のうち、仮想処理部に関する処理の合計値が、物理的な情報処理装置が処理可能な装置処理量以下である仮想処理部の組み合わせを算出する。たとえば、組み合わせ算出部２３３は、以下の組み合わせを算出する。すなわち、
（組み合わせ１）仮想処理部１、仮想処理部２
（組み合わせ７）仮想処理部７、仮想処理部８、仮想処理部９、
（組み合わせ８）仮想処理部８、仮想処理部９、仮想処理部１０。
【０１１６】
次に、第２リソース割り当て部２３４は、算出した組み合わせのうち、該組み合わせに含まれる仮想処理部の台数が最多または略最多である組み合わせを選択し、選択した組み合わせに含まれる仮想処理部における処理を１台の情報処理装置に割り当てる。この場合に、第２リソース割り当て部２３４は、組み合わせ７を選択し、組み合わせ７に含まれる仮想処理部７乃至仮想処理部９における処理に情報処理装置３を割り当てる。以降、第２割り当て部２１２は、上述した処理と同様の処理を実行することにより、以下の割り当てを算出する。
【０１１７】
情報処理装置１：仮想処理部１、仮想処理部２、
情報処理装置２：仮想処理部３、仮想処理部４、仮想処理部５、仮想処理部６、
情報処理装置３：仮想処理部７、仮想処理部８、仮想処理部９、
情報処理装置４：仮想処理部１０。
【０１１８】
次に、第２再割り当て部２３５は、仮想処理部における処理が割り当てられた情報処理装置のうち、最後に割り当てが決められた情報処理装置４以外の情報処理装置に関して、該情報処理装置に割り当てられた処理量の合計値を算出する。たとえば、第２再割り当て部２３５は、情報処理装置１に関して、０．６（＝０．３＋０．３）を算出する。第２再割り当て部２３５は、情報処理装置２に関して、１（＝０．４＋０．２＋０．２＋０．２）を算出する。第２再割り当て部２３５は、情報処理装置３に関して、１（＝０．５＋０．２＋０．３）を算出する。
【０１１９】
次に、第２再割り当て部２３５は、情報処理装置４以外の情報処理装置に関して、情報処理装置が処理可能な装置処理量と、算出した合計値との差を算出する。たとえば、第２再割り当て部２３５は、情報処理装置１に関して、０．４（＝１−０．６）を算出する。第２再割り当て部２３５は、情報処理装置２に関して、０（＝１−１）を算出する。第２再割り当て部２３５は、情報処理装置３に関して、０（＝１−１）を算出する。
【０１２０】
次に、第２再割り当て部２３５は、算出した差が、情報処理装置４に割り当てられた処理量以上である情報処理装置があるか否かを判定する。上述した例の場合に、情報処理装置１に関する差は、０．４であり、情報処理装置４に割り当てられた処理量（＝０．２）以上である。したがって、第２再割り当て部２３５は、情報処理装置４に割り当てられた仮想処理部１０に関する処理を、情報処理装置１に割り当て直す。
【０１２１】
次に、割り当て決定部２１３は、第１割り当て部２１１が算出した割り当てと、第２割り当て部２１２が算出した割り当てとに関して、それぞれ、移動量情報に基づき、異なる情報処理装置の間において移動するデータの移動量の合計値を算出する。
【０１２２】
第１割り当て部２１１が算出した割り当てに関しては、通信１乃至通信３に関する通信が必要である。すなわち、
（通信１）仮想処理部３、及び、仮想処理部４の間、
（通信２）仮想処理部６、及び、仮想処理部７の間、
（通信３）仮想処理部９、及び、仮想処理部１０の間。
【０１２３】
一方、第２割り当て部２１２が算出した割り当てに関しては、通信４乃至通信６に関する通信が必要である。すなわち、
（通信４）仮想処理部２、及び、仮想処理部３の間、
（通信５）仮想処理部６、及び、仮想処理部７の間、
（通信６）仮想処理部９、及び、仮想処理部１０の間。
【０１２４】
次に、割り当て決定部２１３は、第１割り当て部２１１が算出した割り当てと、第２割り当て部２１２が算出した割り当てとに関して、それぞれ、移動量情報に基づき、異なる情報処理装置の間において移動する移動量の合計値を算出する。たとえば、割り当て決定部２１３は、通信１に関して、移動量情報において、仮想処理部３と、仮想処理部４とに関連付けされた移動量（＝２３）を読み取る。同様に、割り当て決定部２１３は、通信２及び通信３に関してそれぞれ移動量を読み取る。割り当て決定部２１３は、読み取った移動量に関する合計値を算出する。
【０１２５】
同様に、割り当て決定部２１３は、第２割り当て部２１２が算出した割り当てに関して、移動量の合計値を算出する。第１割り当て部２１１が決定した割り当てに関する移動量が、第２割り当て部２１２が決定した割り当てに関する移動量よりも少ない場合に、割り当て決定部２１３は、第１割り当て部２１１が決定した割り当てを選択する。
【０１２６】
次に、第３の実施形態に係る割り当て装置２１０に関する効果について説明する。
【０１２７】
本実施形態に係る割り当て装置２１０によれば、仮想ネットワーク装置２０４を効率的に処理する割り当てを高速に算出することができる。さらに、本実施形態に係る割り当て装置２１０によれば、仮想ネットワーク装置２０４における処理を効率よく実行することができる。
【０１２８】
この理由は、理由１及び理由２である。すなわち、
（理由１）第３の実施形態に係る割り当て装置２１０が有する構成は、第１の実施形態に係る割り当て装置１０１が有する構成を含むからである、
（理由２）割り当て装置２１０が、処理が連なる複数の仮想処理部に対して、移動量及び処理量に基づき、情報処理装置を割り当てるからである。
【０１２９】
したがって、割り当て装置２１０が、相互に隣接している複数の仮想処理部に対して、情報処理装置を割り当てるので、該複数の仮想処理部間に関する処理が、異なる情報処理装置に割り当てられる可能性は低い。したがって、割り当て装置２１０によれば、仮想ネットワーク装置２０４における処理を効率よく実行することができる。
【０１３０】
尚、装置処理量は、たとえば、中央演算処理装置（ＣＰＵ）に関する処理能力、メモリの大きさ等、複数の指標であってもよい。この場合に、割り当て装置２１０は、たとえば、情報処理装置が有する装置処理量、及び、該情報処理装置が参照可能なメモリの大きさに基づき、仮想処理部に関する割り当てを算出する。
【０１３１】
また、複数の情報処理装置に関する装置処理量は、必ずしも、一様でなくともよい。情報処理装置は、仮想処理部に関する処理のみを実行する必要はなく、仮想ネットワーク装置とは異なる処理を実行していてもよい。
【０１３２】
（ハードウェア構成例）
上述した本発明の各実施形態における割り当て装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る割り当て装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る割り当て装置は、専用の装置として実現してもよい。
【０１３３】
図１５は、第１の実施形態乃至第３の実施形態に係る割り当て装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４を有する。計算処理装置２０は、さらに、入力装置２５、出力装置２６、通信インターフェース（以降、「通信ＩＦ」と表す。）２７、及び、ディスプレー２８を有する。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１３４】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１３５】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレー２８に出力結果を表示する。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図５、図８、図９、図１１、または、図１３に示す各部が表す機能（処理）に対応するところのメモリ２２にある割り当てプログラム（図４、図７、図１０、図１２、または、図１４）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【０１３６】
すなわち、このような場合、本発明は、係る割り当てプログラムによっても成し得ると捉えることができる。更に、係る割り当てプログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１３７】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１３８】
１０１    割り当て装置
１０２    処理量算出部
１０３    合計算出部
１０４    リソース判定部
１０５    リソース割り当て部
３０１    処理情報部
３０２    装置情報部
２０１    情報処理システム
２０２    ルータ
２０３    ルータ
２０４    仮想ネットワーク装置
２０５    チェイン
１１１    割り当て装置
１１２    組み合わせ算出部
１１３    第２リソース割り当て部
１２１    割り当て決定部
１２２    割り当て装置
２１０    割り当て装置
２１１    第１割り当て部
２１２    第２割り当て部
２１３    割り当て決定部
２２２    処理量算出部
２２３    合計算出部
２２４    リソース判定部
２２５    リソース割り当て部
２２６    再割り当て部
２３３    組み合わせ算出部
２３４    第２リソース割り当て部
２３５    第２再割り当て部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレー
【図１】
0006540141.tif 000002
【図２】
0006540141.tif 000003
【図３】
0006540141.tif 000004
【図４】
0006540141.tif 000005
【図５】
0006540141.tif 000006
【図６】
0006540141.tif 000007
【図７】
0006540141.tif 000008
【図８】
0006540141.tif 000009
【図９】
0006540141.tif 000010
【図１０】
0006540141.tif 000011
【図１１】
0006540141.tif 000012
【図１２】
0006540141.tif 000013
【図１３】
0006540141.tif 000014
【図１４】
0006540141.tif 000015
【図１５】
0006540141.tif 000016