以下に、開示する割当決定装置、割当決定方法、割当システム及び割当決定プログラムの実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[実施例1による構成]
図1を用いて、実施例1に係る割当決定装置100の構成の一例を示す。図1は、実施例1に係る割当決定装置の構成の一例を示すブロック図である。図1に示す例では、割当決定装置100は、入力部101と、出力部102と、記憶部110と、制御部120とを有する。以下に詳細に説明するように、割当決定装置100は、リソースの割り当てを要求する割当要求の入力を受け付けると、割り当てるリソースの組み合わせを出力する。
実施例1におけるリソースについて更に説明する。リソースには複数の種類があり、異なる種類のリソースと併せて用いられる。また、同一の種類に属するリソースが複数ある。また、リソースは、異なる管理装置により提供される。
ここで、リソースの一例について説明する。例えば、リソースには、クラウドシステムにより割り当てられるサーバのリソースとネットワークのリソースとがある。また、例えば、リソースには、スマートグリッドにおいて用いられる発電所のリソースと送電網のリソースとがある。また、例えば、リソースには、物流システムにおける倉庫のリソースと交通網のリソースとがある。また、例えば、リソースには、旅行システムにおける泊地のリソースとフライトのリソースとがある。
クラウドシステムにより割り当てられるサーバのリソースとネットワークのリソースとについて更に説明する。例えば、利用者がサーバのリソースを利用する場合、サーバのリソースにアクセスするためのネットワークのリソースがサーバのリソースと併せて利用される。言い換えると、サーバのリソースは、単体で利用されるのではなく、異なる種類のリソースとなるネットワークのリソースと併せて用いられる。この場合、割当決定装置100は、サーバのリソースを要求する割当要求の入力を受け付けると、利用者に割り当てるサーバのリソースとネットワークのリソースとの組み合わせを出力する。
スマートグリッドにおいて用いられる発電所のリソースと送電網のリソースとについて更に説明する。例えば、利用者が動力資源を利用する場合、動力資源を提供する発電所から利用者の居場所まで電力が流れる送電網のリソースが、発電所のリソースと併せて利用される。言い換えると、発電所のリソースは、単体で利用されるのではなく、異なる種類のリソースとなる送電網のリソースと併せて利用される。
物流システムにおける倉庫のリソースと交通網のリソースとについて更に説明する。例えば、利用者が倉庫の格納空間を利用する場合、倉庫の格納空間まで利用者がアクセスするための交通網のリソースが併せて利用される。言い換えると、倉庫のリソースは、単体で利用されるのではなく、異なる種類のリソースとなる交通網のリソースと併せて利用される。
旅行システムにおける泊地のリソースとフライトのリソースとについて更に説明する。例えば、旅行者が泊地を利用する場合、泊地までのアクセス手段となるフライトのリソースが併せて利用される。言い換えると、泊地のリソースは、単体で利用されるのではなく、異なる種類のリソースとなるフライトのリソースと併せて利用される。なお、上述したリソースは一例であり、これに限定されるものではなく、任意のリソースを用いて良い。
以下では、割当要求により要求されるリソースの種類に属するリソースを「主のリソース」や「第1のリソース」とも称し、「主のリソース」や「第1のリソース」と併せても用いられる種類のリソースを「第2のリソース」や「従のリソース」とも称する。例えば、利用者によりサーバのリソースが要求された場合には、サーバのリソースが「主のリソース」又は「第1のリソース」となる。また、サーバのリソースを用いる場合には、ネットワークのリソースが併せて用いられる。この結果、ネットワークのリソースが「従のリソース」又は「第2のリソース」となる。
また、以下では、詳細な例をあげて説明する場合には、割当決定装置100が、サーバのリソースを要求する割当要求の入力を受け付け、サーバのリソースとネットワークのリソースとの組み合わせを出力する場合を用いて説明する。
図2は、実施例1に係る割当決定装置の実施形態の一例を示す図である。図2に示す例では、サーバのリソースとなるサーバ401−1〜9と、ネットワークのリソースとなるネットワーク402−1〜3とがある場合を示した。また、図2に示す例では、ユーザにより用いられるユーザ端末300−1〜3を併せて示した。ユーザ端末300は、例えば、リソースの新規割当を要求する新規割当要求を割当決定装置100に送信する。なお、図2に示す例では、記載の便宜上、ユーザ端末300と割当決定装置100とが接続してない場合を示したが、これに限定されるものではない。例えば、ユーザ端末300と割当決定装置100とが接続されても良い。
また、図2に示す例では、管理装置200−1〜3が、それぞれ、サーバのリソースとして、サーバ401−1〜3、サーバ401−4〜6、サーバ401−7〜9を管理する場合を示した。また、図2に示す例では、管理装置200−4〜管理装置200−6が、それぞれ、ネットワークのリソースとして、ネットワーク402−1、ネットワーク402−2、ネットワーク402−3を管理する場合を示した。
ここで、管理装置200−1〜6は、サーバのリソースやネットワークのリソースをユーザ端末300に割り当てたり、ユーザ端末300からリソースを回収したりする。複数ある管理装置200−1〜6は、それぞれ独自のリソースを管理し、独自に管理するリソースをユーザに割り当てる。
また、図2に示す例では、ユーザ端末300−1が、ネットワーク402−1とサーバ401−7とを利用している場合を示した。また、図2に示す例では、ユーザ端末300−2が、ネットワーク402−2とサーバ401−5及びサーバ401−9とを利用している場合を示した。また、図2に示す例では、ユーザ端末300−3が、ネットワーク402−3とサーバ401−1及びサーバ401−6とを利用している場合を示した。
ここで、割当決定装置100は、例えば、異なる管理装置200により割り当てられるリソース各々について、リソースの空き状況を示す空きリソース情報とリソースの利用状況を示す利用状況情報とを収集する。そして、割当決定装置100は、収集した利用状況情報を解析することで、既に割り当てられているリソースの過不足を判定し、過不足を解消する割り当てを決定する。そして、割当決定装置100は、決定したリソースの割当を管理装置200に出力する。
すなわち、例えば、割当決定装置100は、異なる種類のリソース各々について空きリソース情報と利用状況情報とを収集し、収集した情報に基づいて利用者に割り当てるリソースの組み合わせを決定し、決定した組み合わせをリソース割当として管理装置200に出力する。この結果、異なる種類のリソースを簡単に組み合わせ可能となる。
なお、図2に示した構成は一例であり、これに限定されるものではない。例えば、図2に示す例では、管理装置200が6つあり、サーバ401のリソースが9つあり、ネットワーク402のリソースが3つある場合を示したが、これに限定されるものではなく、任意の数であって良い。
図2を用いての説明では、割当決定装置100が、空きリソース情報と利用状況情報とを自ら収集するものとして説明したが、これに限定されるものではない。例えば、割当決定装置100は、他の装置により収集された空きリソース情報と利用状況情報とを用いてリソースの組み合わせを決定しても良く、予め記憶していた空きリソース情報と利用状況情報とを用いてリソースの組み合わせを決定しも良い。以下では、割当決定装置100が、空きリソース情報と利用状況情報とを予め記憶しており、予め過不足が判定されている場合を用いて説明する。つまり、割当決定装置100が、過不足を解消するリソースの割り当てを如何に決定するかについて詳細に説明する。
図1の説明に戻る。入力部101は、制御部120と接続される。入力部101は、情報や指示を利用者から受け付け、受け付けた情報や指示を制御部120に入力する。入力部101は、例えば、利用者から情報の入力を受け付けるためのキーボードやマウス、マイクなどが該当する。また、入力部101は、例えば、他の装置から情報の入力を受け付ける情報入出力端子などが該当する。出力部102は、制御部120と接続される。出力部102は、制御部120から情報を受け付け、受け付けた情報を出力する。出力部102は、モニタや情報入出力端子などが該当する。
なお、入力部101によって受け付けられる情報や、出力部102によって出力される情報の詳細については、ここでは説明を省略し、関係する各部について説明する際に併せて説明する。
記憶部110は、制御部120と接続される。記憶部110は、制御部120による各種処理に用いるデータを記憶する。記憶部110は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、又は、ハードディスクや光ディスクなどが該当する。図1に示す例では、記憶部110は、制約条件テーブル111と、リソース情報テーブル112とを有する。
制約条件テーブル111は、ユーザを識別するユーザID(Identifier)と、リソースの割当に関する制約条件とを対応付けて記憶する。図3は、実施例1における制約条件テーブルに記憶された情報の一例を示す図である。図3に示すように、制約条件テーブル111は、ユーザIDと対応付けて制約条件を記憶する。例えば、図3に示す例では、制約条件テーブル111は、ユーザID「USER0001」やユーザID「USER0002」などについて制約条件を記憶する。
また、図3に示す例では、制約条件テーブル111は、制約条件の一例として、「料金の上限値」と「リソースの属性」と「リソースの上限値」と「リソースの下限値」とを記憶する場合を示した。「料金の上限値」は、ユーザが許容する料金の上限値を示す。「リソースの属性」は、ユーザが割当可能とするリソースの属性を示す。リソースの属性とは、例えば、リソースの所在地が該当する。「リソースの上限値」と「リソースの下限値」とは、それぞれ、ユーザが割当可能とするリソースのリソース量の範囲を示す。
図3に示す例では、制約条件テーブル111は、ユーザID「USER0001」に対応付けて、料金の上限値「100万円/月」と、リソースの属性「サーバの所在地:東京」と、リソースの上限値「100Mbps」と、リソースの下限値「10Mbps」とを記憶する。すなわち、制約条件テーブル111は、ユーザID「USER0001」により識別されるユーザが許容する料金の上限値が「100万円/月」であり、東京にあるサーバのリソースを割当可能とすることを記憶する。また、制約条件テーブル111は、ユーザID「USER0001」により識別されるユーザに対して、「100Mbps」から「10Mbps」の範囲に収まるリソースを割当可能とすることを記憶する。
なお、制約条件テーブル111に記憶される情報は、例えば、ユーザ端末300により新規割当要求とともに割当決定装置100に送信される。すなわち、例えば、割当決定装置100は、ユーザIDと制約条件とを含む新規割当要求をユーザ端末300から受信すると、受信した新規割当要求に含まれるユーザIDと制約条件とを対応付けて制約条件テーブル111に格納する。
また、図3に示した制約条件テーブル111は一例であり、これに限定されるものではない。すなわち、制約条件テーブル111は、任意の情報を制約条件として記憶して良い。例えば、制約条件テーブル111は、サーバのリソースについての制約条件として、耐震基準やセキュリティ基準、稼働率についての基準など、任意の条件を記憶して良い。
リソース情報テーブル112は、リソースについての情報を記憶する。具体的には、リソース情報テーブル112は、各種のリソースについての情報を記憶する。例えば、リソース情報テーブル112は、リソース各々についての空きリソース情報と利用状況情報とを記憶する。また、例えば、リソース情報テーブル112は、異なるリソース間における依存関係を記憶する。
図4は、実施例1におけるリソース情報テーブルに記憶された情報の一例を示す図である。図4に示す例では、「リソース名」に対応付けて、リソースの種類を示す「リソース種類」と、従となるリソースの種類を示す「従となるリソース」と、「リソース属性」とを記憶する。図4において、「リソース種類」と「従となるリソース」との対応付けは、異なるリソース間における依存関係の一例を示す。また、図4において、「リソース属性」は、リソースについての各種情報や空きリソース情報、利用状況情報を示す。なお、図4の「リソース属性」には、記載の便宜上、リソースについての各種情報として、リソースの所在地を示した。
図4に示す例では、リソース情報テーブル112は、リソース名「サーバリソースA」に対応付けて、リソース種類「サーバ」と、従となるリソース「ネットワーク」と、リソース属性「東京都港区」とを記憶する。つまり、リソース情報テーブル112は、「サーバリソースA」は、「東京都港区」にあり、リソースの種類が「サーバ」であり、従となるリソースが「ネットワーク」であることを記憶する。
制御部120は、入力部101、出力部102及び記憶部110と接続される。制御部120は、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部120は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などが該当する。図1に示す例では、制御部120は、受付部121と、生成部122と、判定部123と、選択部124とを有する。
受付部121は、リソースの割り当てを要求する割当要求の入力を受け付ける。例えば、受付部121は、入力部101に入力された割当要求を受け付ける。割当要求は、リソースの割当先となるユーザのユーザIDと、割当要求により要求されるリソース量を示す情報とが含まれる。
ここで、割当要求により要求されるリソース量は、利用者が必要とするリソース量と、現在利用者が割り当てられているリソース量との差分となる。この結果、割当要求により要求されるリソース量は、利用者が必要とするリソース量が、現在利用者が割り当てられているリソース量よりも少ない場合には、現在利用者が割り当てられているリソース量のうち利用者にとって不要であり返却が必要なリソース量となる。また、割当要求により要求されるリソース量は、利用者が必要とするリソース量が、現在利用者が割り当てられているリソース量よりも多い場合には、利用者に足りない分を補うための追加が必要なリソース量となる。
生成部122は、複数あるリソース各々のうち、受付部121により受け付けられた割当要求により要求されるリソースの種類に属する第1のリソースを選択し、選択した第1のリソースが属する種類のリソースと併せて用いられる種類のリソースである第2のリソースとの組み合わせを生成する。
サーバのリソースが要求された場合を用いて生成部122について更に説明する。この場合、生成部122は、要求情報により要求されたリソースの種類となるサーバのリソースを1つ選択する。そして、生成部122は、サーバのリソースと組み合わせて用いられる種類のリソースであるネットワークのリソースを1つ選択し、選択したサーバのリソースとネットワークのリソースとの組み合わせを生成する。なお、割当要求は、サーバのリソースを要求するものであっても良く、サーバのリソースとネットワークのリソースとを両方要求するものであっても良い。
より詳細な一例をあげて説明すると、生成部122は、割当先となるユーザのユーザIDに対応付けられた制約条件を制約条件テーブル111から読み出す。そして、生成部122は、要求情報により要求されたリソースの種類となるサーバのリソースとして、読み出した制約条件を満たすサーバのリソースを選択する。例えば、制約条件によりサーバの所在地が「日本」に制約される場合には、所在地が「日本」となっているサーバのリソースを選択する。そして、生成部122は、選択したサーバと利用者の所在地との間を結ぶネットワークのリソースとして、制約条件を満たすネットワークのリソースを選択する。そして、生成部122は、選択したサーバのリソースとネットワークのリソースとの組み合わせを生成する。
ここで、制約条件を満たすサーバのリソースや、制約条件を満たすネットワークのリソースが複数ある場合がある。この場合、生成部122は、制約条件を満たすサーバのリソースとネットワークのリソースとの全組み合わせを生成する。
また、サーバにより割り当てられるリソースに、複数の種類がある場合について説明する。例えば、サーバにより割り当てられるのがVM(仮想マシン、Virtual Machine)であり、VMには処理能力の違う複数のVMタイプがある場合を用いて説明する。また、割当要求により要求されるリソース量が、VMタイプごとに指定される場合を用いて説明する。この場合、生成部122は、VMタイプごとに、制約条件を満たすサーバのリソースを選択する。言い換えると、生成部122は、割当要求により要求されたVMタイプ各々についてサーバのリソースを選択する。
また、生成部122は、第1のリソースと第2のリソースとに加えて、複数の第1のリソース又は複数の第2のリソースを用いる際に併せて用いられる種類のリソースである第3のリソースを更に組み合わせた組み合わせを生成する。
例えば、サーバのリソースとして、複数のサーバのリソースの組み合わせが選択された場合を用いて説明する。この場合、複数のサーバ間を結ぶネットワークのリソースが更に用いられることになる。このことを踏まえ、生成部122は、複数のサーバのリソースの組み合わせと、選択されたサーバと利用者の所在地との間についてのネットワークのリソースとに加えて、複数のサーバ間を結ぶネットワークのリソースとして、制約条件を満たすネットワークのリソースを選択する。
つまり、例えば、第1のリソースとなるデータセンタのリソースを複数利用する場合、それぞれのデータセンタにアクセスするためのリソースが併せて用いられる。具体的には、ユーザとデータセンタ間のネットワークが第2のリソースとして併せて用いられる。また、第1のリソースとなるデータセンタのリソースを複数利用する場合、複数あるデータセンタ各々にあるリソースを一つのデータセンタのリソースとして利用するためのリソースが併せて用いられる。具体的には、データセンタ間のネットワークが第3リソースとして併せて用いられる。すなわち、生成部122は、例えば、複数のサーバのリソースと、サーバとユーザとの間のネットワークのリソースとに加えて、サーバ間のネットワークのリソースを加えて組み合わせを生成する。
判定部123は、生成部122により生成された組み合わせについて、組み合わせに含まれる第1のリソースと第2のリソースとが組み合わせ可能なリソースであるか否かを判定する。具体的には、判定部123は、生成部122により生成された組み合わせ各々について、組み合わせに含まれるリソースの提供元が、割当要求により要求されるリソース量を割当可能か否かを判定する。例えば、判定部123は、組み合わせに含まれるリソース各々が利用可能なリソースであるか否かについて判定する。
例えば、割当要求により要求されるサーバのリソース量が、VMタイプ1について「10台」であり、VMタイプ2について「2台」であり、VMタイプ3について「2台」である場合を用いて説明する。この場合、組み合わせに含まれるリソースの提供元となるサーバが、VMタイプ1について「10台」割当可能であり、VMタイプ2について「2台」割当可能であり、VMタイプ3について「2台」割当可能であるか否かをVMタイプごとに判定する。
また、判定部123は、生成部122により生成された組み合わせについて、組み合わせに含まれる第1のリソースと第2のリソースとが同時に利用可能であるか否かを判定することで、組み合わせ可能なリソースであるか否かを判定する。
例えば、判定部123は、同一のサーバが異なるVMタイプ各々について同時に割当可能であるかを判定する。例えば、同一のサーバが、異なるVMタイプ各々についてそれぞれリソースを割り当てる場合を用いて説明する。例えば、サーバ「1」が、VMタイプ1について「10台」割り当てるとともに、VMタイプ2について「2台」割り当てることになる組み合わせを用いて説明する。この場合、判定部123は、サーバ「1」が、VMタイプ1について「10台」割り当てると共に、VMタイプ2について「2台」割り当てることが可能であるか否かを判定する。
つまり、サーバのリソースの提供元は、VMタイプ1のリソース10台割り当てることが可能であり、また、VMタイプ2のリソース2台割り当てることが可能であったとしても、VMタイプ1のリソース10台とVMタイプ2のリソース2台とを同時に割り当てることはできない場合がある。例えば、VMタイプ1の10台分のリソースはVMタイプ2を割り当てる際にも用いられる場合がある。この場合、サーバのリソースの提供元は、VMタイプ1を10台割り当てるとともに、同時に、VMタイプ2を2台割り当てることはできない。このことを踏まえ、判定部123は、異なるVMタイプ各々について同一のサーバが割り当てる場合に、VMタイプ各々を同時に割り当て可能であるか否かを判定する。
なお、ここでは、同一のサーバが異なるVMタイプ各々についてリソースを割り当てる場合を例に説明したが、これに限定されるものではない。例えば、ネットワークのリソースの提供元が、異なるタイプのリソース各々を割り当てる場合についても同様である。
また、例えば、判定部123は、組み合わせに含まれるサーバのリソースとネットワークのリソースとが、同時に利用可能な組み合わせとなるか否かを判定する。例えば、判定部123は、組み合わせに含まれるネットワークのリソースが、ユーザの所在地とサーバのリソースの場所とを結ぶネットワークであるか否かを判定する。ここで、判定部123は、組み合わせに含まれるネットワークのリソースが、ユーザの所在地とサーバのリソースの場所とを結ぶネットワークであると判定した場合には、同時に利用可能な組み合わせであると判定する。一方、判定部123は、組み合わせに含まれるネットワークのリソースが、ユーザの所在地とサーバのリソースの場所とを結ぶネットワークでないと判定した場合には、同時に利用可能な組み合わせでないと判定する。
なお、上述の説明では、生成部122が組み合わせを生成した上で、判定部123が判定を行う場合を用いて説明したが、これに限定されるものではない。例えば、生成部122が組み合わせを生成する際に、判定部123が適宜判定処理を実行し、生成部122が、判定部123により組み合わせ可能なリソースであると判定されたリソースを用いて組み合わせを生成しても良い。
選択部124は、判定部123により組み合わせ可能なリソースであると判定された組み合わせを1つ選択する。具体的には、選択部124は、判定部123により組み合わせ可能なリソースであると判定された組み合わせから、組み合わせについての所定の基準に従って組み合わせを1つ選択する。例えば、選択部124は、リソースの提供元やリソースの要求元により要求された基準に従って、組み合わせを1つ選択する。つまり、選択部124は、リソースの利用者またリソースの提供元の意思を反映した上で、組み合わせを選択する。
例えば、選択部124は、所定の基準としての複数のアルゴリズムのうち任意のアルゴリズムのうち任意のアルゴリズムに従って組み合わせを1つ選択する。この場合、選択部124は、リソースの提供元やリソースの要求元により使用することが要求されたアルゴリズムを用いて、組み合わせを1つ選択する。言い換えると、選択部124は、リソースの提供元又はリソースの要求元による要求を満たす組み合わせを選択するアルゴリズムを所定の基準として用いて、判定部123により組み合わせ可能なリソースであると判定された組み合わせから1つの組み合わせを選択する。
ここで、所定の基準により選択される組み合わせの一例を示す。例えば、選択部124は、リソースを利用する上で必要となる料金が低い組み合わせを、料金が高い組み合わせより優先して選択する。また、例えば、選択部124は、ネットワークのリソースの平均帯域が高い組み合わせを、平均帯域が低い組み合わせより優先して選択する。また、例えば、選択部124は、ネットワークのリソースの遅延が小さい組み合わせを、遅延が大きい組み合わせより優先して選択する。また、例えば、選択部124は、組み合わせに含まれるリソースを割り当てることでリソースの提供元となるサーバが集中する組み合わせを、リソースの提供元となるサーバが分散する組み合わせより優先して選択する。また、例えば、選択部124は、組み合わせに含まれるリソースを割り当てることでリソースの提供元となるサーバが分散する組み合わせを、集中する組み合わせより優先して選択する。
ここで、組み合わせに含まれるリソースを割り当てることでリソースの提供元となるサーバが集中する組み合わせを優先して選択する場合について、更に説明する。選択部124は、アルゴリズムとして、判定部123により組み合わせ可能なリソースであると判定された組み合わせごとに、組み合わせに含まれるリソースを割り当てた場合における複数あるリソースごとの割当状況を算出する。そして、判定部123は、複数あるリソース間における分散度合いを組み合わせごとに算出する。そして、選択部124は、算出された分散度合いが低い組み合わせを分散度合いが高い組み合わせより優先して選択する。
より詳細な一例をあげて説明する。ここでは、サーバのリソースとして、データセンタが備えるコアを割り当てる場合を用いて説明する。また、データセンタ1が、処理を実行する「コア」を100個備え、データセンタ2が「コア」を50個備える場合を用いて説明する。また、組み合わせを実行する結果、データセンタ1が有する100個のコアのうち、80個のコアが割当中となり、データセンタ2が有する50個のコアのうち、30個のコアが割当中となる場合を用いて説明する。この場合、選択部124は、リソースごとの割当状況として、割当状況をデータセンタごとに算出する。例えば、データセンタ1についての割当状況は「80%」となり、データセンタ2についての割当状況は「60%」となる場合には、選択部124は、「80%」と「60%」の分散値を算出することで、リソース間の分散度合いを算出する。
ここで、分散値が最大となる組み合わせを選択するということは、各リソース間における割当状況の差が最も大きくなることを示す。例えば、データセンタごとに、割当状況の差が最も大きくなることを示す。言い換えると、コアが多く利用されるデータセンタと、コアがあまり利用されないデータセンタとがあることを示す。この場合、リソースの提供元は、例えば、割当状況が小さくなるデータセンタについて、コアの一部を一時的にシャットダウンすることで、消費電力を低減させることが可能となる。
また、分散値が最小となる組み合わせを選択するということは、各リソース間における割当状況の差が最も小さくなる組み合わせを選択することを示す。例えば、データセンタごとに、割当状況の差が最も小さくなることを示す。言い換えると、どのデータセンタについても同じように利用されることになることを示す。この場合、リソースの提供元は、例えば、各データセンタに対する処理負荷を均一にすることが可能となる。
また、選択部124は、出力部102を介して、選択した組み合わせを出力する。ここで、選択部124により選択された組み合わせが、リソースの要求元に対するリソースの割当を示すリソース割当となる。その後、例えば、選択部124により出力されたリソース割当に従って管理装置200がリソースを割り当てる。
[実施例1による処理]
図5は、実施例1に係る割当決定装置による処理の流れの一例を示すフローチャートである。図5に示すように、割当決定装置100では、割当要求の入力を受付部121が受け付けると(ステップS101肯定)、生成部122が、組み合わせを生成する(ステップS102)。つまり、生成部122は、複数あるリソース各々のうち、割当要求により要求されるリソースの種類に属する第1のリソースを選択し、選択した第1のリソースが属する種類のリソースと併せて用いられる種類のリソースである第2のリソースとの組み合わせを生成する。
そして、判定部123は、生成部122により生成された組み合わせについて、組み合わせに含まれる第1のリソースと第2のリソースとが組み合わせ可能なリソースであるか否かを判定する(ステップS103)。
例えば、割当要求により要求されるサーバのリソース量が、VMタイプ1について「10台」であり、VMタイプ2について「2台」であり、VMタイプ3について「2台」である場合を用いて説明する。この場合、判定部123は、組み合わせ各々について、VMタイプ1について「10台」割当可能であり、VMタイプ2について「2台」割当可能であり、VMタイプ3について「2台」割当可能であるか否かを判定する。また、判定部123は、同一のサーバが、異なるVMタイプ各々についてそれぞれリソースを割り当てる場合には、VMタイプ1について「10台」割り当てると共に、VMタイプ2について「2台」割り当てることが可能であるか否かを判定する。
また、例えば、判定部123は、組み合わせに含まれるサーバのリソースとネットワークのリソースとが、同時に利用可能な組み合わせとなるか否かを判定する。例えば、判定部123は、組み合わせに含まれるネットワークのリソースが、ユーザの所在地とサーバのリソースの場所とを結ぶネットワークであるか否かを判定する。
そして、選択部124は、判定部123により組み合わせ可能なリソースであると判定された組み合わせを1つ選択する(ステップS104)。例えば、選択部124は、リソースの提供元又はリソースの要求元による要求を満たす組み合わせを選択するアルゴリズムを所定の基準として用いて、判定部123により組み合わせ可能なリソースであると判定された組み合わせから、組み合わせを1つ選択する。
そして、選択部124は、出力部102を介して、選択した組み合わせを出力する(ステップS105)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[実施例1の効果]
上述したように、実施例1によれば、割当決定装置100は、割当要求の入力を受け付ける。また、割当決定装置100は、複数あるリソース各々のうち、受け付けられた割当要求により要求されるリソースの種類に属する第1のリソースを選択し、選択した第1のリソースが属する種類のリソースと併せて用いられる種類のリソースである第2のリソースとの組み合わせを生成する。また、割当決定装置100は、生成した組み合わせについて、組み合わせに含まれる第1のリソースと第2のリソースとが組み合わせ可能なリソースであるか否かを判定する。また、割当決定装置100は、組み合わせ可能なリソースであると判定された組み合わせを1つ選択し、出力する。この結果、異なる種類のリソースを適切に組み合わせ可能である。
また、実施例1によれば、割当決定装置100は、組み合わせに含まれる第1のリソースと第2のリソースとが同時に利用可能であるか否かを判定することで、組み合わせ可能なリソースであるか否かを判定する。この結果、組み合わせ可能な組み合わせを確実に1つ出力することが可能である。
また、実施例1によれば、割当決定装置100は、複数の第1のリソース又は複数の第2のリソースに加えて、第1のリソース又は第2のリソースを用いる際に併せて用いられる種類のリソースである第3のリソースを更に組み合わせた組み合わせを生成する。この結果、第1のリソースと第2のリソースとは別に更にリソースが併せて用いられる場合であっても、利用可能な組み合わせを出力することが可能である。
また、実施例1によれば、割当決定装置100は、組み合わせ可能なリソースであると判定された組み合わせから、組み合わせについての所定の基準に従って組み合わせを1つ選択する。この結果、組み合わせ可能なリソースであると判定された組み合わせが複数あったとしても、1つの組み合わせを選択可能である。
また、実施例1によれば、割当決定装置100は、所定の基準としての複数のアルゴリズムのうち任意のアルゴリズムのうち任意のアルゴリズムに従って組み合わせを1つ選択する。この結果、組み合わせ可能なリソースであると判定された組み合わせが複数あったとしても、1つの組み合わせを選択可能である。
また、実施例1によれば、割当決定装置100は、リソースの提供元による要求を満たす組み合わせを選択するアルゴリズムを所定の基準として用いて、組み合わせ可能なリソースであると判定された組み合わせから組み合わせを1つ選択する。この結果、リソースの利用者又はリソースの提供元が制御したいポリシを反映した上で、組み合わせを1つ選択することが可能である。
また、実施例1によれば、割当決定装置100は、アルゴリズムとして、組み合わせ可能なリソースであると判定された組み合わせ各々について、組み合わせに含まれるリソースを割り当てた場合における複数あるリソースごとの割当状況を算出する。また、割当決定装置100は、組み合わせごとに算出された割当状況の複数あるリソース間における分散度合いを算出する。また、割当決定装置100は、算出された分散度合いが高い組み合わせを低い組み合わせと比較して優先して選択し、又は、算出された分散度合いが低い組み合わせを高い組み合わせと比較して優先して選択するアルゴリズムを有する。この結果、リソースの割り当て状況が分散する又は集中する組み合わせを選択可能である。
また、実施例1によれば、割当決定装置100は、第1のリソースは、データセンタのサーバリソースであり、第2のリソースは、ネットワークのリソースである。この結果、ネットワークのリソースやサーバのリソースなどを提供する複数のクラウドシステムについて、複数のクラウドシステムを横断したリソースの割当を出力することが可能である。
実施例2では、割当決定装置が、ネットワークのリソースとサーバのリソースとを割り当てる場合について詳細に説明する。また、サーバのリソースとして、データセンタのリソースを割り当てる場合を用いて説明する。具体的には、以下に説明するように、リソース割当装置が、リソースを管理する管理装置各々から、リソースについての情報を収集し、収集した情報に基づいてリソース割当を決定する場合について説明する。以下では、割当決定装置を「インタークラウドサーバ」とも称する。
なお、以下では、クラウドシステムにより提供されるリソースが、ASP(Application Service Provider)運用者やユーザに割り当てられる場合を用いて説明する。なお、ASP運用者により提供されるサービスは、ユーザにより利用される。
図6は、実施例2におけるインタークラウドサーバの全体像について示す図である。実施例2におけるインタークラウドサーバ500は、データセンタのリソースやネットワークのリソースを提供するクラウドシステム各々について、リソースの状況を示す情報を収集し、異なるクラウドシステムに属するリソース各々をASP運用者に割り当てる。例えば、実施例2におけるインタークラウドサーバ500は、異なるクラウドシステムにより提供されるリソースを組み合わせて提供することで、スケールアウト等のマイグレーションを支援する。
図6に示す例では、インタークラウドサーバ500に加えて、オペレータ端末601と、ASP端末602と、DC−OPS(Data Center−Operation System)603と、NW−OPS(Network−Operation System)604と、DC(Data Center、データセンタ)605と、R(Router、ルータ)606と、ユーザ端末607とを併せて示した。
オペレータ端末601は、インタークラウドサーバ500と接続される。オペレータ端末601は、インタークラウドサーバ500を管理するオペレータにより用いられる。オペレータ端末601は、Webブラウザを有する。例えば、オペレータ端末601は、インタークラウドサーバ500の設定や運用、管理等を行うためのインタフェースをWebブラウザ上に表示する。
ASP端末602は、インタークラウドサーバ500と接続される。ASP端末602は、クラウドシステムにより提供されるリソースを用いてサービスを提供するASP運用者により用いられる。ASP端末602は、Webブラウザを有する。例えば、ASP端末602は、インタークラウドサーバ500の設定や運用、管理等を行うためのインタフェースをWebブラウザ上に表示する。
R606は、NW−OPS604及びDC605、ユーザ端末607と接続される。R606は、ネットワーク装置であり、例えば、ルータである。R606は、ネットワークを形成する。なお、R606により形成されるネットワーク608により、DC605とユーザ端末607とが接続され、複数あるDC605各々が接続される。R606は、NW−OPS604により管理される。
DC605は、DC−OPS603及びR606と接続される。DC605は、仮想マシンサービスを提供する。DC605は、DC−OPS603により管理される。なお、仮想マシン(VM、Virtual Machine)とは、ソフトウェアによって提供される仮想的なPCを示す。なお、以下では、DC605を「データセンタ605」とも記載する。
DC−OPS603は、インタークラウドサーバ500及びDC605と接続される。DC−OPS603は、DC605のリソースを管理する管理装置である。具体的には、DC−OPS603は、DC605の利用状況情報をASP運用者ごとに把握し、DC605各々の空きリソース情報を把握する。例えば、DC−OPS603は、1つ又は複数のDC605を管理する。
NW−OPS604は、インタークラウドサーバ500及びR606と接続される。NW−OPS604は、R606を管理する管理装置である。具体的には、NW−OPS604は、R606により形成されるネットワーク608各々について、ネットワーク608の利用状況情報をASP運用者ごとに把握し、R606により形成されるネットワーク608各々について空きリソース情報を把握する。例えば、NW−OPS604は、1つ又は複数のR606を管理する。
なお、図6に示す例では、説明の便宜上、オペレータ端末601が1つあり、ASP端末602が1つあり、DC−OPS603が4つあり、NW−OPS604が4つあり、DC605が4つあり、R606が4つあり、ユーザ端末607が3つある場合を示した。ただし、これに限定されるものではなく、各装置の数は任意であって良い。例えば、ASP端末602が2つ以上あっても良く、DC−OPS603やNW−OPS604、DC605、R606などが3つ以下でも良く、5つ以上でも良い。
また、図6に示す例では、オペレータ端末601と、ASP端末602と、ユーザ端末607とが別装置である場合を例に示したが、これに限定されるものではない。例えば、オペレータ端末601と、ASP端末602と、ユーザ端末607とのうち、任意の装置を組み合わせて1つの装置としても良い。
インタークラウドサーバ500は、各種のハードウェアを有し、OSやミドルウェアなどの各種プログラムが予めインストールされる。具体的には、インタークラウドサーバ500は、詳細については後述するように、インタークラウドサーバ500が有する各種のハードウェアにより実行されるプログラムとして、ICSソフトウェア501と、RAF(リソース要件推定アルゴリズム)502とを実行する。
なお、ICSソフトウェア501は、実施例1における制御部120の各部により実行される処理を実行する。また、RAF502は、ASP運用者に割り当てられているリソースについての利用状況情報と制約条件とに基づいて、ASP運用者に割り当てることが推奨されるリソースのリソース要件を推定する。例えば、RAF502は、利用状況情報を解析することで、ASP運用者が必要とするリソース量を推定し、制約条件に合致して推定したリソース量を満たすリソース要件を推定する。なお、RAF502による推定処理は、任意の手法を用いて良い。
また、実施例2におけるICSソフトウェア501は、後述するように、過不足しているリソースの要件を判定する場合に、RAF502により推定されたリソース要件と、利用状況情報により示される利用中のリソースとを比較する。そして、実施例2におけるICSソフトウェア501は、後述するように、RAF502により推定されたリソース要件と、利用状況情報により示される利用中のリソースとの差分について、空きリソースのうち制約条件を満たす任意のリソースを新たに追加するリソース割当を決定したり、利用状況情報により示される利用中のリソースのうち任意のリソースを開放するリソース割当を決定したりする。
なお、以下では、RAF502が、ICSソフトウェア501と同一のコンピュータにインストールされたプログラムである場合を用いて説明する。ただし、RAF502は、これに限定されるものではなく、ICSソフトウェア501とは別のコンピュータにインストールされても良く、インタークラウドサーバ500とは別の装置としても良い。
[実施例2におけるインタークラウドサーバによるリソース割当処理の動作概要]
実施例2におけるインタークラウドサーバ500によるリソース割当処理の動作概要について説明する。具体的には、リソース割当処理の動作概要として、ASP運用者に新規にリソースを割り当てられる新設時における動作概要と、ASP運用者に割り当てられたリソースのリソース量を増減する増設・減設時における動作概要と、ASP運用者に割り当てられたリソースを開放する廃止時における動作概要とを順に説明する。
[新設時における動作概要]
図7は、実施例2におけるASP運用者に新規にリソースを割り当てられる新設時における動作概要を示す図である。図7に示すように、インタークラウドサーバ500は、制約条件DB511と、管理情報DB512とを有する。なお、図7のNW608−1は、NW−OPS604−1により管理されるR606により形成されるネットワーク608である。なお、以下では、ネットワーク608を「NW608」とも称する。
制約条件DB511は、クラウドシステムにより提供されるリソースが割り当てられるASP運用者を識別するユーザ識別情報と制約条件とを対応付けて記憶する。言い換えると、制約条件DB511は、ASP運用者ごとの制約条件を記憶する。制約条件とは、例えば、ASP運用者に割り当てるリソースの上限値や下限値、ASP運用者に割り当てるリソースの属性などが該当する。
なお、制約条件DB511に記憶された情報は、例えば、ASP運用者によって入力され、リソースを割り当てる際に用いられる。実施例2における制約条件DB511に記憶される情報の詳細な一例については、後述する。
管理情報DB512は、リソースを管理する管理装置についての管理情報を記憶する。具体的には、DC−OPS603についての管理情報を記憶し、NW−OPS604についての管理情報を記憶する。管理情報とは、例えば、管理装置の識別名や管理装置にアクセスする際に用いられるURL、管理装置にアクセスする際に用いられるパスワードなどが該当する。
なお、管理情報DB512に記憶された情報は、例えば、オペレータによってインタークラウドサーバ500に入力され、インタークラウドサーバ500が管理装置にアクセスする際に用いられる。実施例2における管理情報DB512に記憶される管理情報の詳細な一例については、後述する。
リソースの新設時には、ASP端末602は、ASP運用者から制約条件を受け付け、新規割当要求をインタークラウドサーバ500に送信する。ここで、ASP端末602により送信される新規割当要求には、ASP運用者から受け付けた制約条件が含まれる。
すると、図7の(1)に示すように、インタークラウドサーバ500では、制約条件を含む新規割当要求をASP端末602から受信する。そして、ICSソフトウェア501は、受信した制約条件を制約条件DB511に格納する。また、図7の(2)に示すように、ICSソフトウェア501は、リソースの空き状況を示す空きリソース情報を管理装置に要求する。図7に示す例では、ICSソフトウェア501は、管理情報DB512からDC−OPS603やNW−OPS604の管理情報を読み出し、読み出した管理情報を用いて空きリソース情報をDC−OPS603−1に要求する。また、同様に、ICSソフトウェア501は、空きリソース情報をDC−OPS603−2に要求し、空きリソース情報をNW−OPS604−1に要求する。すなわち、ICSソフトウェア501は、異なるクラウドシステムにより割り当てられるリソース各々について、空きリソース情報を収集する。なお、実施例2における空きリソース情報の詳細な一例については、後述する。
そして、図7(3)に示すように、ICSソフトウェア501は、所定のアルゴリズムに基づいて、リソース配分計算を実行する。すなわち、ICSソフトウェア501は、空きリソース情報により示される空きリソースから、新規割当要求に含まれる制約条件を満たす任意のリソースを選択し、選択した任意のリソースを割り当てるリソース割当を決定する。
そして、図7の(4)に示すように、ICSソフトウェア501は、決定したリソース割当を管理装置に出力する。図7の(4)に示す例では、ICSソフトウェア501は、管理情報DB512からDC−OPS603−1についての管理情報を読み出す。そして、ICSソフトウェア501は、読み出した管理情報を用いて、DC605−1のリソースを割り当てるリソース割当をDC−OPS603−1に出力する。つまり、ICSソフトウェア501は、リソース配分計算により決定されたリソースの配分を出力する。また、同様にICSソフトウェア501は、DC−OPS603−2にリソース割当を出力し、NW−OPS604−1にリソース割当を出力する。
その後、各管理装置は、受信したリソース割当に従ってリソースを割り当てる。例えば、DC605−2のリソースとNW(ネットワーク)608−1のリソースがASP運用者「A」に割り当てられた場合を用いて説明する。この結果、例えば、ユーザAは、ASP運用者「A」により提供されるサービスを、ネットワーク608−1を介してDC605−2から提供される。
[増設・減設時における動作概要]
図8は、実施例2におけるASP運用者に割り当てられたリソースのリソース量を増減する増設・減設時における動作概要を示す図である。以下に説明するように、ICSソフトウェア501は、既にリソースを利用しているASP運用者のリソースの利用状況を収集する。そして、ICSソフトウェア501は、RAF502による推測により、リソースの既存の割り当てが妥当ではなくなったASP運用者について、リソースを追加したり削減したりする。なお、ICSソフトウェア501は、以下に説明する一連の処理を任意のタイミングにて実行する。例えば、ICSソフトウェア501は、利用者によって予め設定された時間間隔ごとに実行する。
図8の(1)に示すように、ICSソフトウェア501は、ASP運用者ごとの利用状況情報を管理装置に要求する。図8に示す例では、ICSソフトウェア501は、DC−OPS603やNW−OPS604の管理情報を管理情報DB512から読み出し、読み出した管理情報を用いてDC−OPS603やNW−OPS604に利用状況情報を要求する。すなわち、ICSソフトウェア501は、異なるクラウドシステム各々について、ASP運用者ごとの利用状況情報を収集する。
そして、図8の(2)に示すように、ICSソフトウェア501は、制約条件DB511から制約条件を読み出し、収集した利用状況情報と読み出した制約条件とをRAF502に出力する。すなわち、ICSソフトウェア501は、RAF502に、ASP運用者に割り当てられているリソースの過不足の判定を依頼する。
ここで、RAF502は、ICSソフトウェア501により収集された利用状況情報と制約条件とを解析することで、ASP運用者に既に割り当てられているリソースの過不足をASP運用者ごとに判定する。言い換えると、RAF502は、割り当てられているリソースにユーザが満足しているかを利用状況情報と制約条件とに基づいて判定し、ユーザが満足するリソースの要件を利用状況情報と制約条件とに基づいて推定する。
RAF502は、過不足していると判定したASP運用者については、過不足しているリソースのリソース要件を判定する。例えば、RAF502は、不足しているリソースのリソース量を判定したり、余っているリソースのリソース量を判定したりする。そして、図8の(3)に示すように、RAF502は、判定結果となるリソース要件をICSソフトウェア501に出力する。なお、RAF502による判定処理は、任意の手法を用いて良い。
そして、図8の(4)に示すように、ICSソフトウェア501は、図7の(2)と同様に、空きリソース情報を管理装置に要求する。そして、図8の(5)に示すように、ICSソフトウェア501は、所定のアルゴリズムに基づいて、リソース配分計算を実行する。すなわち、ICSソフトウェア501は、RAF502によりリソースが不足していると判定されたASP運用者に対して、空き状況情報により示される異なる種類の空きリソースのうち、制約条件を満たす任意のリソースを割り当てるリソース割当を決定する。また、ここで、ICSソフトウェア501が割り当てるリソースは、RAF502による判定結果となるリソース要件を満たすリソースとなる。また、同様に、ICSソフトウェア501は、RAF502によりリソースが余っていると判定されたASP運用者に対して、利用状況情報により示される利用中のリソースのうち、RAF502による判定結果となるリソース要件を満たすリソース分、任意のリソースを開放するリソース割当を決定する。
そして、図8の(6)に示すように、ICSソフトウェア501は、図7の(4)と同様に、決定したリソース割当を管理装置に出力する。
[廃止時における動作概要]
図9は、実施例2におけるASP運用者に割り当てられたリソースを開放する廃止時における動作概要を示す図である。リソースの割当をASP運用者が終了する時には、ASP端末602は、ASP運用者から廃止する旨の指示を受け付け、割当廃止要求をインタークラウドサーバ500に送信する。
すると、図9の(1)に示すように、ICSソフトウェア501は、割当廃止要求をASP端末602から受信する。そして、図9の(2)に示すように、ICSソフトウェア501は、図8の(1)と同様に、ASP運用者ごとの利用状況情報を管理装置に要求する。つまり、異なるクラウドシステム各々について、ASP運用者ごとの利用状況情報を収集する。言い換えると、ASP運用者に割り当てられたリソースの利用状況を確認する。
そして、図9の(3)に示すように、ICSソフトウェア501は、ASP運用者に割り当てられているリソースを開放するリソース割当を決定し、決定したリソース割当を管理装置に出力する。
[実施例2におけるインタークラウドサーバのユースケース]
図10は、実施例2におけるインタークラウドサーバのユースケースの一例を示す図である。以下では、図10を用いて、オペレータ端末601を用いるインタークラウドサーバ500のオペレータや、ASP端末602を用いるASP運用者により、インタークラウドサーバ500がどのように用いられるかの一例を示す。
なお、図10では、説明の便宜上、インタークラウドサーバ500に加えて、オペレータ端末601と、ASP端末602と、DC−OPS603と、NW−OPS604とを併せて示した。
以下では、インタークラウドサーバ500のユースケースの一例として、7つのユースケースを順に説明する。具体的には、システム情報を登録する場面と、リソース配分を行う場面と、新設を実行する場面と、廃止を実行する場面と、制約条件を登録する場面と、クラウドサービス利用中のASP運用者の削除する場面と、利用状況を確認する場面とについて、順に説明する。
[システム情報を登録する場面]
図10の(1)に示すように、システム情報を登録する場面について説明する。具体的には、インタークラウドサーバ500が各種の処理を実行する上で用いられる各種設定の登録を行う場面について説明する。図10の(1)に示すように、システム情報を登録する場面については、ICS運用者により利用される。
この場合、インタークラウドサーバ500の運用者は、リソース配分計算にて用いるアルゴリズムをオペレータ端末601から、インタークラウドサーバ500に登録する。また、インタークラウドサーバ500のオペレータは、オペレータ端末601から、管理情報を管理情報DB512に格納したり、管理情報を更新したりする。また、インタークラウドサーバ500のオペレータは、DC−OPS603についての管理情報を管理情報DB512に格納したり、NW−OPS604についての管理情報を管理情報DB512に格納したり、管理情報に変更があった場合に管理情報DB512を更新したりする。
[リソース配分を行う場面]
図10の(2)に示すように、リソースを配分する場面について説明する。具体的には、ICSソフトウェア501が、リソースを増設したり減設したりする場面について説明する。図10の(2)に示すように、リソースを配分する場面については、ICS運用者により利用される。なお、図10の(2)に示すリソースを配分する場面については、クラウドシステムを利用しているASP運用者が存在することが前提となる。
この場合、例えば、ICSソフトウェア501は、ASP運用者各々についての利用状況情報をオペレータ端末601から受信すると、DC−OPS603やNW−OPS604各々から、全ASP運用者について利用状況情報を収集する。そして、ICSソフトウェア501は、収集した利用状況情報をオペレータ端末601に出力する。
そして、ICSソフトウェア501は、RAF502にリソース要件を要求する指示をオペレータ端末601から受信すると、全ASP運用者についての利用状況情報と制約条件とをRAF502に出力し、RAF502にリソース要件を要求する。
そして、RAF502は、ICSソフトウェア501から受信した利用状況情報と制約条件とに基づいてASP運用者ごとのリソース要件を推定し、推定結果となるASP運用者ごとのリソース要件をICSソフトウェア501に出力する。そして、ICSソフトウェア501は、RAF502からASP運用者ごとのリソース要件を受信すると、オペレータ端末601に出力する。
ここで、ICS運用者は、ASP運用者ごとのリソース要件を確認し、増設・減設が必要なASP運用者を1人選択し、オペレータ端末601からICSソフトウェア501に出力する。なお、増設・減設が必要なASP運用者がいない場合には、処理終了となる。
そして、ICSソフトウェア501は、DC−OPS603とNW−OPS604とから空きリソース情報を収集し、ICS運用者により選択されたASP運用者についての利用状況情報と空きリソース情報とをオペレータ端末601に出力する。
ここで、ICS運用者は、オペレータ端末601に出力された情報を確認し、任意のリソース配分計算を実行するアルゴリズムを選択し、オペレータ端末601からICSソフトウェア501にリソース配分計算を行う指示を出力する。
そして、ICSソフトウェア501は、ICS運用者により選択されたアルゴリズムを用いて、リソース配分計算を行い、リソース配分計算により得られたリソース割当をオペレータ端末601に出力する。
そして、ICS運用者は、オペレータ端末601に出力されたリソース割当を確認し、リソース割当を実行する指示をオペレータ端末601からICSソフトウェア501に出力する。
そして、ICSソフトウェア501は、ICS運用者により指示されたリソース割当をDC−OPS603とNW−OPS604に出力する。また、その後、ICSソフトウェア501は、DC−OPS603とNW−OPS604とから処理結果を受信し、受信した処理結果をオペレータ端末601に出力する。その後、ICS運用者は、オペレータ端末601に出力された処理結果を確認する。
なお、上述の説明では、ICSソフトウェア501が、ICS運用者から指示や情報を受信すると処理を実行する場合を用いて説明した。ただし、これに限定されるものではなく、ICSソフトウェア501は、ICS運用者による指示を待つことなく、一連の処理を自動的に実行しても良い。例えば、ICSソフトウェア501は、任意のタイミングにて、上述した一連の処理を自律的に実行しても良い。また、上述した説明では、ICS運用者が、増設・減設が必要なASP運用者を選択する場合を用いて説明したが、これに限定されるものではない。例えば、ICSソフトウェア501が、増設・減設が必要なASP運用者を識別し、識別したASP運用者各々について一連の処理を実行しても良い。
[新設を実行する場面]
図10の(3)に示すように、新設を実行する場面について説明する。具体的には、ICSソフトウェア501が、新たなASP運用者に新規にリソースを割り当てる場面について説明する。図10の(3)に示すように、新設を実行する場合については、ICS運用者により利用される。なお、図10の(3)に示す新設を実行する場面については、ASP運用者により制約条件が制約条件DB511に登録された後、新設が実行されていないことを前提として説明する。言い換えると、新設処理待ちのASP運用者がある場合を用いて説明する。
この場合、ICSソフトウェア501は、ICS運用者により、新設処理待ちのASP運用者の一覧を要求されると、要求された一覧をオペレータ端末601に出力する。
ここで、ICS運用者は、新設処理待ちのASP運用者一覧から、新設を実行するASP運用者を選択し、オペレータ端末601からICSソフトウェア501に出力する。なお、新設処理待ちのASP運用者がいない場合には、処理が終了することになる。
そして、ICSソフトウェア501は、DC−OPS603とNW−OPS604とから空きリソース情報を収集し、収集した空きリソース情報をオペレータ端末601に出力する。
そして、ICS運用者は、オペレータ端末601に出力された空きリソース情報を確認し、リソース配分計算を実行するアルゴリズムを選択し、オペレータ端末601からICSソフトウェア501にリソース配分計算を行う指示を送信する。
そして、ICSソフトウェア501は、ICS運用者により選択されたASP運用者について、ICS運用者により選択されたアルゴリズムを用いてリソース配分計算を行い、計算結果となるリソース割当をオペレータ端末601に出力する。
ここで、ICS運用者は、オペレータ端末601に出力されたリソース割当を確認し、リソース割当を実行する指示をオペレータ端末601からICSソフトウェア501に出力する。その後、ICSソフトウェア501は、DC−OPS603とNW−OPS604とにリソース割当を出力し、DC−OPS603とNW−OPS604とから処理結果を受信し、受信した処理結果をオペレータ端末601に出力する。そして、ICS運用者は、オペレータ端末601に出力された処理結果を確認する。
なお、上述の説明では、ICSソフトウェア501が、ICS運用者から指示や情報を受信すると処理を実行する場合を用いて説明した。ただし、これに限定されるものではなく、ICSソフトウェア501は、ICS運用者による指示を待つことなく、一連の処理を自動的に実行しても良い。例えば、ICSソフトウェア501は、任意のタイミングにて、上述した一連の処理を自律的に実行しても良い。また、上述した説明では、ICS運用者が、新設が必要なASP運用者を選択する場合を用いて説明したが、これに限定されるものではない。例えば、ICSソフトウェア501が、新規割当要求を受信すると、新設することを要求されたASP運用者について自動的に一連の処理を実行しても良い。
[廃止を実行する場面]
図10の(4)に示すように、廃止を実行する場面について説明する。具体的には、ICSソフトウェア501が、ASP運用者に新規にリソースを割り当てる場面について説明する。図10の(3)に示すように、新設を実行する場合については、ICS運用者により利用される。なお、図10の(3)に示す新設を実行する場面については、ASP運用者により、ASP運用者廃止が登録されているが、未だ廃止されていない場合を前提として説明する。言い換えると、廃止待ちのASP運用者がある場合を用いて説明する。
この場合、ICSソフトウェア501は、ICS運用者により、廃止処理待ちのASP運用者の一覧を要求されると、要求された一覧をオペレータ端末601に出力する。
ここで、ICS運用者は、廃止処理待ちのASP運用者の一覧から、廃止を実行するASP運用者を選択し、オペレータ端末601からICSソフトウェア501に出力する。なお、廃止処理待ちのASP運用者がいない場合には、処理が終了することになる。
そして、ICSソフトウェア501は、廃止するASP運用者についての利用状況情報をDC−OPS603やNW−OPS604から収集し、収集した利用状況情報をオペレータ端末601に出力する。
そして、ICS運用者は、オペレータ端末601に出力された利用状況情報を確認し、廃止を実行するリソース割当を実行する指示をオペレータ端末601からICSソフトウェア501に出力する。
そして、ICSソフトウェア501は、ICS運用者により選択されたリソース割当を
DC−OPS603やNW−OPS604に出力し、DC−OPS603とNW−OPS604とから処理結果を受信し、受信した処理結果をオペレータ端末601に出力する。その後、ICS運用者は、オペレータ端末601に出力された処理結果を確認する。
なお、上述の説明では、ICSソフトウェア501が、ICS運用者から指示や情報を受信すると処理を実行する場合を用いて説明した。ただし、これに限定されるものではなく、ICSソフトウェア501は、ICS運用者による指示を待つことなく、一連の処理を自動的に実行しても良い。例えば、ICSソフトウェア501は、任意のタイミングにて、上述した一連の処理を自律的に実行しても良い。また、上述した説明では、ICS運用者が、廃止が必要なASP運用者を選択する場合を用いて説明したが、これに限定されるものではない。例えば、ICSソフトウェア501が、割当廃止要求を受信すると、廃止することが要求されたASP運用者について自動的に一連の処理を実行しても良い。
[制約条件を登録する場面]
図10の(5)に示すように、制約条件を登録する場面について説明する。具体的には、ICSソフトウェア501の制約条件DB511に、ASP運用者ごとの制約条件を格納する場面について説明する。図10の(5)に示すように、制約条件を登録する場面については、ASP運用者により利用される。
この場合、ICSソフトウェア501は、ASP運用者により用いられるASP端末602から、制約条件を含む新規割当要求を受信する。ここで、ICSソフトウェア501は、例えば、受信した制約条件を制約条件DB511に格納すると共に、受信した旨の返信をASP端末602に出力する。その後、例えば、ASP運用者は、ASP端末602に出力された返信を確認する。
また、ここで、例えば、ASP運用者は、ASP運用者により用いられるASP端末602から、登録済みのASP運用者の一覧をICSソフトウェア501に要求する。すると、ICSソフトウェア501は、登録済みのASP運用者の一覧をASP端末602に出力する。
そして、ASP運用者は、ASP端末602に出力された登録済みのASP運用者一覧を確認し、制約条件を登録したASP運用者を選択し、利用状況情報の確認をICSソフトウェア501に要求する。すると、ICSソフトウェア501は、選択されたASP運用者についての利用状況情報を収集し、収集した利用状況情報をASP端末602に出力する。
その後、ASP運用者は、ASP端末602に出力された利用状況情報を確認し、選択したASP運用者にリソースが割り当てられていれば完了となる。一方、ASP運用者は、割り当てられていなかった場合には、再度一連の処理を実行する。
[ASP運用者を削除する場面]
図10の(6)に示すように、クラウドサービス利用中のASP運用者を削除する場面について説明する。言い換えると、制約条件が制約条件DB511に東独されているASP運用者のユーザIDを削除する場合について説明する。図10の(6)に示すように、ASP運用者の削除する場面については、ASP運用者により利用される。なお、図10の(6)に示す場面については、クラウドシステムにより提供されるリソースを利用しているASP運用者がある場合を前提として説明する。
この場合、例えば、ICSソフトウェア501は、ASP運用者により用いられるASP端末602から、クラウドシステムにより提供されるリソースを利用中のASP運用者の一覧が要求されると、制約条件DB511に制約条件が登録されたASP運用者の一覧を出力する。
すると、ASP運用者は、ASP端末602に出力されたASP運用者の一覧を確認し、ASP運用者を1人選択して廃止する旨の指示をASP端末602からICSソフトウェア501に出力する。
そして、ICSソフトウェア501は、ASP端末602から廃止する旨の指示を受信すると、受信した旨を返信するとともに、廃止対象となるASP運用者についての制約条件を制約条件DB511から削除する。その後、ASP運用者は、ASP端末602に出力された返信を確認する。
また、ここで、例えば、ASP運用者は、ASP運用者により用いられるASP端末602から、登録済みのASP運用者の一覧をICSソフトウェア501に要求する。すると、ICSソフトウェア501は、登録済みのASP運用者の一覧をASP端末602に出力する。そして、ASP運用者は、ASP端末602に出力された登録済みのASP運用者一覧を確認し、廃止したASP運用者がなくなっていることを確認する。
[利用状況を確認する場面]
図10の(7)に示すように、利用状況を確認する場面について説明する。図10の(7)に示すように、利用状況を確認する場面については、ASP運用者やICS運用者により利用される。なお、図10の(7)に示す場面については、クラウドシステムにより提供されるリソースを利用しているASP運用者がある場合を前提として説明する。
この場合、ICSソフトウェア501は、ICS運用者により用いられるオペレータ端末601から、ASP運用者の一覧が要求されると、制約条件DB511に制約条件が登録されたASP運用者の一覧をオペレータ端末601に出力する。
そして、ICS運用者は、オペレータ端末601に出力されたASP運用者の一覧からASP運用者を1人選択し、選択したASP運用者についての利用状況情報をICSソフトウェア501に要求する。
すると、ICSソフトウェア501は、ICS運用者により選択されたASP運用者について、RAF502にリソース要件の判定を依頼し、RAF502による処理結果をオペレータ端末601に出力する。その後、ICS運用者は、オペレータ端末601に出力されたリソース要件を確認する。
なお、上述の説明では、ICS運用者を例に説明したが、ASP運用者が実行する場合であっても同様である。また、上述の説明では、ICSソフトウェア501が、RAF502にリソース要件の判定を依頼し、RAF502による処理結果となるリソース要件を出力する場合を用いて説明したが、これに限定されるものではない。例えば、ICSソフトウェア501は、割り当てられているリソース全てが制約条件を満たしているかを確認し、確認結果をオペレータ端末601に出力しても良く、任意の情報を出力して良い。
[実施例2におけるインタークラウドサーバによる処理の流れ]
以下では、シーケンス図を用いて、実施例2におけるインタークラウドサーバ500による処理の流れの一例について説明する。具体的には、新設時における処理の流れと、リソースの増設・減設時における処理の流れと、リソースの廃止時における処理の流れとを順に説明する。なお、以下に説明する各処理の流れは、図7〜図9を用いて説明した動作概要に対応する。
[新設時における処理の流れ]
図11は、実施例2における新設時における処理の流れの一例を示すシーケンス図である。図11に示す例では、説明の便宜上、インタークラウドサーバ500のICSソフトウェア501に加えて、1つのASP端末602と、2つのDC−OPS603と、2つのNW−OPS604とを用いて説明する。
図11に示すように、ASP運用者がASP端末602からICSソフトウェア501に制約条件を入力すると(ステップS301)、ICSソフトウェア501は、受け付け完了をASP端末602に出力する(ステップS302)。つまり、ICSソフトウェア501は、制約条件を受け付けた旨をASP端末602に出力する。
そして、ICSソフトウェア501は、図11の「Loop.1」に示すように、全DC−OPS603について空きリソース情報を収集する。例えば、ICSソフトウェア501は、DC−OPS603−1に対して、DC−OPS603−1により管理されるDC605の空きリソース情報を要求する(ステップS303)。そして、ICSソフトウェア501は、DC−OPS603−1から空きリソース情報を収集する(ステップS304)。また、同様に、ICSソフトウェア501は、DC−OPS603−2に対して、DC−OPS603−2により管理されるDC605の空きリソース情報を要求する(ステップS305)。そして、ICSソフトウェア501は、DC−OPS603−2から空きリソース情報を収集する(ステップS306)。
また、ICSソフトウェア501は、図11の「Loop.2」に示すように、全NW−OPS604について空きリソース情報を収集する。具体的には、ICSソフトウェア501は、NW−OPS604−1に対して、NW−OPS604−1により管理されるNW608の空きリソース情報を要求する(ステップS307)。そして、ICSソフトウェア501は、NW−OPS604−1から空きリソース情報を収集する(ステップS308)。また、同様に、ICSソフトウェア501は、NW−OPS604−2に対して、NW−OPS604−2により管理されるNW608の空きリソース情報を要求する(ステップS309)。そして、ICSソフトウェア501は、NW−OPS604−2から空きリソース情報を収集する(ステップS310)。
そして、ICSソフトウェア501は、ASP運用者各々について、リソース分散計算を行う(ステップS311)。つまり、ICSソフトウェア501は、所定のアルゴリズムに基づいて、リソースの過不足を解消するリソース割当を決定する。例えば、ICSソフトウェア501は、空きリソース情報により示される空きリソースから、新規割当要求に含まれる制約条件を満たす任意のリソースを選択し、選択した任意のリソースを割り当てるリソース割当を決定する。
そして、ICSソフトウェア501は、図11の「Loop.3」に示すように、配分が必要な全DC−OPS603に対して、リソース割当を出力する。例えば、ICSソフトウェア501は、DC−OPS603−1にリソース割当を出力し(ステップS312)、DC−OPS603−1から結果を取得する(ステップS313)。つまり、ICSソフトウェア501は、DC−OPS603−1にリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、DC−OPS603−2にリソース割当を出力し(ステップS314)、DC−OPS603−2から結果を取得する(ステップS315)。
また、ICSソフトウェア501は、図11の「Loop.4」に示すように、配分が必要な全NW−OPS604に対して、リソース割当を出力する。例えば、ICSソフトウェア501は、NW−OPS604−1にリソース割当を出力し(ステップS316)、NW−OPS604−1から結果を取得する(ステップS317)。つまり、ICSソフトウェア501は、NW−OPS604−1にリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、NW−OPS604−2にリソース割当を出力し(ステップS318)、NW−OPS604−2から結果を取得する(ステップS319)。
[増設・減設時における処理の流れ]
図12は、実施例2における増設・減設時における処理の流れの一例を示すシーケンス図である。図12に示す例では、説明の便宜上、インタークラウドサーバ500のICSソフトウェア501とRAF502とに加えて、2つのDC−OPS603と、2つのNW−OPS604とを用いて説明する。
ICSソフトウェア501は、図12の「Loop.1」に示すように、全DC−OPS603について、ASP運用者ごとの利用状況情報を収集する。具体的には、図12の「Loop.2」に示すように、ICSソフトウェア501は、DC−OPS603−1に対して、ASP運用者ごとの利用状況情報を要求する(ステップS401)。そして、ICSソフトウェア501は、DC−OPS603−1からASP運用者ごとの利用状況情報を収集する(ステップS402)。また、同様に、図12の「Loop.3」に示すように、ICSソフトウェア501は、DC−OPS603−2に対して、ASP運用者ごとの利用状況情報を要求する(ステップS403)。そして、ICSソフトウェア501は、DC−OPS603−2からASP運用者ごとの利用状況情報を収集する(ステップS404)。
また、ICSソフトウェア501は、図12の「Loop.4」に示すように、全NW−OPS604について、ASP運用者ごとの利用状況情報を収集する。具体的には、図12の「Loop.5」に示すように、ICSソフトウェア501は、NW−OPS604−1に対して、ASP運用者ごとの利用状況情報を要求する(ステップS405)。そして、ICSソフトウェア501は、NW−OPS604−1からASP運用者ごとの利用状況情報を収集する(ステップS406)。また、同様に、図12の「Loop.6」に示すように、ICSソフトウェア501は、NW−OPS604−2に対して、ASP運用者ごとの利用状況情報を要求する(ステップS407)。そして、ICSソフトウェア501は、NW−OPS604−2からASP運用者ごとの利用状況情報を収集する(ステップS408)。
そして、ICSソフトウェア501は、図12の「Loop.7」に示すように、全ASP運用者について、RAF502にリソース要件を推定させる。具体的には、ICSソフトウェア501は、ASP運用者ごとの利用状況情報と制約条件とをRAF502に出力する(ステップS409)。その後、RAF502は、ASP運用者に割り当てられているリソースについての利用状況情報と制約条件とに基づいて、ASP運用者に割り当てることが推奨されるリソースのリソース要件を推定する(ステップS410)。例えば、RAF502は、利用状況情報を解析することで、ASP運用者が必要とするリソース量を推定し、制約条件に合致して推定したリソース量を満たすリソース要件を推定する。その後、RAF502は、推定結果となるリソース要件の計算結果をICSソフトウェア501に出力する。
その後、ICSソフトウェア501は、図12の「Loop.8」に示すように、リソースの増設や減設が必要となった全ASP運用者について、リソース割当を決定し、DC−OPS603やNW−OPS604に出力する。すなわち、RAF502による計算結果となるリソース要件と、利用状況情報により示される利用中のリソースとの間に過不足があるASP運用者各々について、過不足を解消するリソース割当を決定し、決定したリソース割当をリソースの管理装置に出力する。
具体的には、図12の「Loop.9」に示すように、ICSソフトウェア501は、全DC−OPS603について空きリソース情報を収集する。例えば、ICSソフトウェア501は、DC−OPS603−1に対して、DC−OPS603−1により管理されるDC605の空きリソース情報を要求する(ステップS411)。そして、ICSソフトウェア501は、DC−OPS603−1から空きリソース情報を収集する(ステップS412)。また、同様に、ICSソフトウェア501は、DC−OPS603−2に対して、DC−OPS603−2により管理されるDC605の空きリソース情報を要求する(ステップS413)。そして、ICSソフトウェア501は、DC−OPS603−2から空きリソース情報を収集する(ステップS414)。
また、図12の「Loop.10」に示すように、ICSソフトウェア501は、全NW−OPS604について空きリソース情報を収集する。具体的には、ICSソフトウェア501は、NW−OPS604−1に対して、NW−OPS604−1により管理されるNW608の空きリソース情報を要求する(ステップS415)。そして、ICSソフトウェア501は、NW−OPS604−1から空きリソース情報を収集する(ステップS416)。また、同様に、ICSソフトウェア501は、NW−OPS604−2に対して、NW−OPS604−2により管理されるNW608の空きリソース情報を要求する(ステップS417)。そして、ICSソフトウェア501は、NW−OPS604−2から空きリソース情報を収集する(ステップS418)。
そして、ICSソフトウェア501は、ソースの増設や減設が必要となった全ASP運用者について、リソース分散計算を行う(ステップS419)。
そして、ICSソフトウェア501は、図12の「Loop.11」に示すように、配分が必要な全DC−OPS603に対して、リソース割当を出力する。つまり、リソースを再配分する。例えば、ICSソフトウェア501は、DC−OPS603−1にリソース割当を出力し(ステップS420)、DC−OPS603−1から結果を取得する(ステップS421)。つまり、ICSソフトウェア501は、DC−OPS603−1にリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、DC−OPS603−2にリソース割当を出力し(ステップS422)、DC−OPS603−2から結果を取得する(ステップS423)。
また、ICSソフトウェア501は、図12の「Loop.12」に示すように、配分が必要な全NW−OPS604に対して、リソース割当を出力する。つまり、リソースを再配分する。例えば、ICSソフトウェア501は、NW−OPS604−1にリソース割当を出力し(ステップS424)、NW−OPS604−1から結果を取得する(ステップS425)。つまり、ICSソフトウェア501は、NW−OPS604−1にリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、NW−OPS604−2にリソース割当を出力し(ステップS426)、NW−OPS604−2から結果を取得する(ステップS427)。
[廃止時における処理の流れ]
図13は、実施例2における廃止時における処理の流れの一例を示すシーケンス図である。図13に示す例では、説明の便宜上、インタークラウドサーバ500のICSソフトウェア501に加えて、1つのASP端末602と、2つのDC−OPS603と、2つのNW−OPS604とを用いて説明する。
図13に示すように、ASP運用者がASP端末602からICSソフトウェア501に割当廃止要求を入力すると(ステップS501)、ICSソフトウェア501は、受け付け完了をASP端末602に出力する(ステップS502)。つまり、ICSソフトウェア501は、割当廃止要求を受け付けた旨をASP端末602に出力する。
そして、ICSソフトウェア501は、図13の「Loop.1」に示すように、全DC−OPS603について、ASP運用者ごとの利用状況情報を収集する。具体的には、ICSソフトウェア501は、割当廃止要求による廃止の対象となるASP運用者について、ASP運用者ごとの利用状況情報を収集する。例えば、ICSソフトウェア501は、DC−OPS603−1に対して、ASP運用者ごとの利用状況情報を要求する(ステップS503)。そして、ICSソフトウェア501は、DC−OPS603−1からASP運用者ごとの利用状況情報を収集する(ステップS504)。また、同様に、ICSソフトウェア501は、DC−OPS603−2に対して、ASP運用者ごとの利用状況情報を要求する(ステップS505)。そして、ICSソフトウェア501は、DC−OPS603−2からASP運用者ごとの利用状況情報を収集する(ステップS506)。
そして、ICSソフトウェア501は、図13の「Loop.2」に示すように、全NW−OPS604について、ASP運用者ごとの利用状況情報を収集する。具体的には、ICSソフトウェア501は、割当廃止要求による廃止の対象となるASP運用者について、ASP運用者ごとの利用状況情報を収集する。例えば、ICSソフトウェア501は、NW−OPS604−1に対して、ASP運用者ごとの利用状況情報を要求する(ステップS507)。そして、ICSソフトウェア501は、NW−OPS604−1からASP運用者ごとの利用状況情報を収集する(ステップS508)。また、同様に、ICSソフトウェア501は、NW−OPS604−2に対して、ASP運用者ごとの利用状況情報を要求する(ステップS509)。そして、ICSソフトウェア501は、NW−OPS604−2からASP運用者ごとの利用状況情報を収集する(ステップS510)。
そして、ICSソフトウェア501は、図13の「Loop.3」に示すように、指定ASP運用者が使用中の全DC−OPS603について、リソースの割当を廃止するリソース割当を出力する。言い換えると、ICSソフトウェア501は、割当廃止要求による廃止の対象となるASP運用者にリソースを割り当てているDC−OPS603各々に対して、リソースの割当を廃止するリソース割当を出力する。例えば、ICSソフトウェア501は、DC−OPS603−1にリソース割当を出力し(ステップS511)、DC−OPS603−1から結果を取得する(ステップS512)。つまり、ICSソフトウェア501は、DC−OPS603−1にリソースの割当を廃止するリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、DC−OPS603−2にリソース割当を出力し(ステップS513)、DC−OPS603−2から結果を取得する(ステップS514)。
また、ICSソフトウェア501は、図13の「Loop.4」に示すように、指定ASP運用者が使用中の全NW−OPS604について、リソースの割当を廃止するリソース割当を出力する。言い換えると、ICSソフトウェア501は、割当廃止要求による廃止の対象となるASP運用者にリソースを割り当てているNW−OPS604各々に対して、リソースの割当を廃止するリソース割当を出力する。例えば、ICSソフトウェア501は、NW−OPS604−1にリソース割当を出力し(ステップS515)、NW−OPS604−1から結果を取得する(ステップS516)。つまり、ICSソフトウェア501は、NW−OPS604−1にリソースの割当を廃止するリソース割当を実行させ、実行結果を取得する。また、同様に、ICSソフトウェア501は、NW−OPS604−2にリソース割当を出力し(ステップS517)、NW−OPS604−2から結果を取得する(ステップS518)。
[実施例2において用いられる各種データのデータ構造の一例]
実施例2において用いられる各種データのデータ構造の一例について説明する。以下では、管理情報の一例と、制約条件の一例と、DCについての利用状況情報の一例と、DCについての空きリソース情報の一例と、DCについてのリソース割当の一例と、NWについての利用状況情報の一例と、NWについての空きリソース情報の一例と、NWについてのリソース割当の一例とを順に説明する。
なお、実施例2において用いられる各種データのデータ構造の一例について説明する際には、データ構造に含まれるテーブル各々を識別する「テーブル番号」と、テーブルに含まれる要素を示す「要素」と、テーブルに要素がいくつあるかを示す「個数」と、要素についての説明となる「備考」とを用いて説明する。
[管理情報]
図14及び図15を用いて、実施例2における管理情報DB512に記憶される管理情報の詳細な一例を示す。管理情報DB512は、以下に説明するように、DC−OPS603についての管理情報を記憶し、NW−OPS604についての管理情報を記憶する。
図14は、実施例2におけるDC−OPSについての管理情報の一例を示す図である。図14のテーブル番号「1」に示すように、管理情報DB512は、DC−OPS管理情報リストを記憶する。ここで、DC−OPS管理情報リストには、DC−OPS603についての管理情報であるDC−OPS管理情報が複数含まれる。すなわち、DC−OPS管理情報リストには、DC−OPS603とDC605との対応表が複数含まれる。DC−OPS管理情報は、例えば、ICSソフトウェア501の初期設定として入力される。
DC−OPS管理情報の詳細な一例について説明する。図14のテーブル番号「2」に示すように、DC−OPS管理情報は、例えば、1つの「DC−OPS名」と、1つの「DC−OPSのURL」と、1つの「アクセスID」と、1つの「パスワード」と、1つの「コメント」と、1つの「フラグ」とを含む。
ここで、「DC−OPS名」は、DC−OPSの識別名である。「DC−OPSのURL」は、DC−OPS603にアクセスするためのURLである。「アクセスID」は、DC−OPS603にアクセスするためのアクセスIDである。「パスワード」は、DC−OPS603にアクセスするためのパスワードである。「コメント」は、DC−OPS603の注釈等情報である。「フラグ」は、DC−OPS603の有効、無効などの情報である。
例えば、DC−OPS管理情報は、DC−OPS名「N社の管理装置」と、DC−OPSのURL「www.123〜」と、アクセスID「USER0001」と、パスワード「sakura」と、コメント「使い勝手が良い」と、フラグ「有効」を含む。この場合、DC−OPS管理情報には、例えば、N社の管理装置というDC−OPSについて、URLが「www.123〜」であることが含まれ、アクセスする際にはアクセスID「USE0001」とパスワード「sakura」とを用いることが含まれ、「使い勝手が良い」というコメントが含まれ、「有効」であるというフラグが含まれる。
図15は、実施例2におけるNW−OPSについての管理情報の一例を示す図である。図15のテーブル番号「3」に示すように、管理情報DB512は、NW−OPS管理情報リストを記憶する。ここで、NW−OPS管理情報リストには、NW−OPS604についての管理情報であるNW−OPS管理情報が複数含まれる。すなわち、NW−OPS管理情報リストには、NW−OPS604とNW608との対応表が複数含まれる。NW−OPS管理情報は、例えば、ICSソフトウェア501の初期設定として入力される。
NW−OPS管理情報の詳細な一例ついて説明する。図14のテーブル番号「4」に示すように、NW−OPS管理情報は、例えば、1つの「NW−OPS名」と、1つの「NW−OPSのURL」と、1つの「アクセスID」と、1つの「パスワード」と、1つの「コメント」と、1つの「フラグ」とを含む。
[制約条件]
図16は、実施例2における制約条件DBに記憶された制約条件の一例を示す図である。図16のテーブル番号「5」に示すように、制約条件DB511は、制約条件リストを記憶する。ここで、制約条件リストには、ASP運用者ごとの制約条件となる制約条件テーブルが複数含まれる。制約条件リストは、例えば、ASP運用者によって入力される。
制約条件テーブルの詳細な一例について説明する。図16のテーブル番号「6」に示すように、制約条件テーブルは、例えば、1つの「ユーザID」と、1つ又は複数の「VMリスト」と、1つ又は複数の「ユーザ所在地」と、1つの「NW帯域」と、1つの「NW遅延」と、1つの「料金上限」と、1つ又は複数の「DC地域指定」と、1つ又は複数の「セキュリティ」と、1つの「DC稼働率」とを含む。
ここで、「ユーザID」は、ASP運用者を識別するユーザIDである。「VMリスト」は、ASP運用者により要求されたVMのリストを示す。なお、VMリストの詳細については、後述する。「ユーザ所在地」は、リソースの割当を要求したユーザの所在地を示す。「NW帯域」は、要求されたネットワークの帯域を示す。「料金上限」は、ユーザが許容する料金の上限値を示す。「DC地域指定」は、割り当て可能となるDC605の地域についての情報を示す。「セキュリティ」は、リソースに備えられたセキュリティについての情報を示す。「DC稼働率」は、割当可能となるDC605の許容最低稼働率を示す。「NW遅延」は、ネットワークの遅延量として許容される値を示す。
例えば、制約条件テーブルは、ユーザID「USER0001」と、VMリスト「A」と「B」と、ユーザ所在地「東京」「大阪」と、NW帯域「各ユーザ−DCまでの帯域は100Mbps」と、NW遅延「1sec」と、料金上限「月額200万以下」と、DC地域指定「日本国内」と、セキュリティ「特になし」と、DC稼働率「99.99%」を含む。この場合、制約条件テーブルは、ユーザID「USER0001」についての制約条件を含む。具体的には、制約条件テーブルは、制約条件として、「USER0001」にVMリスト「A」と「B」とにより識別されるVMが要求されることと、「各ユーザ−DCまでの帯域は100Mbps」であることを含む。また、制約条件テーブルは、制約条件として、NW遅延「1sec」以内となることと、料金上限が「月額200万以下」となることと、「日本国内」にあるDCであることと、DC稼働率が「99.99%」であることとを含む。
[DCについての利用状況情報]
図17は、実施例2におけるDCについての利用状況情報の一例を示す図である。図17のテーブル番号「7」に示すように、DC605についての利用状況情報には、DC605の利用状況を示すDC利用状況テーブルが複数含まれる。
DC利用状況テーブルの詳細な一例について説明する。図17のテーブル番号「8」に示すように、DC利用状況テーブルは、1つの「ユーザID」と、1つ又は複数の「DCリソース」と、1つの「利用料金」とを含む。ここで、「DCリソース」は、DC605のリソースを示す。なお、DC利用状況テーブルに含まれるDCリソースは、ユーザIDにより識別されるASP運用者により利用されているDC605のリソースを示す。「DCリソース」の詳細については、後述する。
例えば、DC利用状況テーブルは、ユーザID「USER0001」と、利用料金「合計で24万/月」を含む。この場合、DC利用状況テーブルは、「USER0001」により利用されている「DCリソース」と、「USER0001」により利用されているDC605のリソースの料金が「合計で24万/月」であることを含む。
[DCについての空きリソース情報]
図18は、実施例2におけるDCについての空きリソース情報の一例を示す図である。図18のテーブル番号「9」に示すように、DC605についての空きリソース情報であるDC空きリソース情報は、DCリソースを複数含む。
図19は、実施例2におけるDCリソース情報の一例を示す図である。図19のテーブル番号「10」に示すように、DCリソースには、DC605を識別する「DC名」が1つ含まれ、DC605の所在地を示す「DC所在地」が1つ含まれ、DC605を管理するDC−OPS603の「DC−OPS名」が1つ含まれ、DC605により提供されるリソースを示す「VMリスト」が複数含まれる。
VMリストの詳細な一例について説明する。図19のテーブル番号「11」に示すように、VMリストは、VMのタイプを示す「VMタイプ」が1つ含まれ、VMの数を示す「VM数」が1つ含まれ、VMの使用率を示す「使用率」が1つ含まれる。例えば、VMリストは、VMタイプ「Type1」とVM数「10台」と使用率「50%」とを含む。この場合、VMリストには、Type1のVMが10台あり、そのうちの50%のVMが使用されていることが含まれる。
VMタイプの詳細な一例について説明する。図19のテーブル番号「12」に示すように、VMタイプは、VMタイプのタイプ名を示す「VMタイプ名」と、VMのコア数を示す「コア数」と、VMのメモリ容量を示す「メモリ」と、VMのHDD容量を示す「HDD」と、VMの料金を示す「料金」を1つ含む。すなわち、VMタイプは、DC605により提要されるVMについての詳細を含む。
[DCについてのリソース割当]
図20は、実施例2におけるDCについてのリソース割当の一例を示す図である。図20に示す例では、ASP運用者ごとのリソース割当を例として示した。図20のテーブル番号「13」に示すように、DCのリソース割当には、リソースの割当の対象となるASP運用者を示す「ユーザID」が1つ含まれる。また、割り当てられるリソースを示す「VM割当」が複数含まれる。
ここで、「VM割当」各々には、リソース割当が実行されるDC605を示す「DC名」が1つと、VMのタイプごとの割当を示す「タイプ別VM割当」を複数含む。「タイプ別VM割当」は、VMのタイプごとに、リソース割当前の「VMリスト」と、リソース割当後の「VMリスト」とが含まれる。図20に示すリソース割当では、ASP運用者ごとに、複数のDCに対して、複数のVMの割り当てが行えるようになっている。
[NWについての利用状況情報]
図21は、実施例2におけるNWについての利用状況情報の一例を示す図である。図21のテーブル番号「14」に示すように、NW608についての利用状況情報には、NW608の利用状況を示すNW利用状況テーブルが複数含まれる。
NW利用状況テーブルの詳細な一例について説明する。図21のテーブル番号「15」に示すように、NW利用状況テーブルは、1つの「ユーザID」と、1つ又は複数の「NWリソース」と、1つの「利用料金」とを含む。ここで、「NWリソース」は、NW608のリソースを示す。なお、NW利用状況テーブルに含まれるNWリソースは、ユーザIDにより識別されるASP運用者により利用されているNW608のリソースを示す。「NWリソース」の詳細については、後述する。
[NWについての空きリソース情報]
図22は、実施例2におけるNWについての空きリソース情報の一例を示す図である。図22のテーブル番号「16」に示すように、NW608についての空きリソース情報であるNW空きリソース情報は、NWリソースを複数含む。
図23は、実施例2におけるNWリソース情報の一例を示す図である。図23のテーブル番号「17」に示すように、NWリソースには、NW608を識別する「NW名」が1つと、NW608を管理するNW−OPS604の「NW−OPS名」が1つと、NW608により提供されるリソースを示す複数の「NWリスト」とが含まれる。
なお、図23に示す例では、NW名として、どこからどこまでのネットワークであるかを示す名称を用いる場合を示した。例えば、NW名「End−to−End」は、DC605とユーザ端末607との間のネットワークと、DC605間のNWとの両方を含むネットワークを示す。
NWリストの詳細な一例について説明する。図23のテーブル番号「18」に示すように、NWリストは、ネットワークの始点を示す「始点」が1つと、ネットワークの終点を示す「終点」が1つと、ネットワークのタイプを示す「NWタイプ」が1つと、ネットワークの数を示す「NW数」が1つと、ネットワークの使用率を示す「使用率」を1つ含む。なお、図23のテーブル番号「18」における「NW数」と「使用率」とは、「NWタイプ」のネットワークの数と使用率とを示す。
NWタイプの詳細な一例について説明する。図23のテーブル番号「19」に示すように、NWタイプは、ネットワークのタイプ名を示す「NWタイプ名」が1つと、ネットワークの帯域を示す「回線帯域」が1つと、ネットワークの遅延を示す「回線遅延」が1つと、ネットワークの料金である「料金」を1つ含む。
[NWについてのリソース割当]
図24は、実施例2におけるNWについてのリソース割当の一例を示す図である。図24に示す例では、ASP運用者ごとのリソース割当を例として示した。図24のテーブル番号「20」に示すように、NWのリソース割当には、リソースの割当の対象となるASP運用者を示す「ユーザID」が1つ含まれる。また、割り当てられるリソースを示す「NW割当」が複数含まれる。
ここで、「NW割当」各々には、リソース割当が実行されるNW608を示す「NW名」が1つと、NWのタイプごとの割当を示す「タイプ別NW割当」を複数含む。「タイプ別NW割当」は、NWのタイプごとに、リソース割当後の「NWリスト」が含まれる。図24に示すリソース割当では、ASP運用者ごとに、複数のNWに対して、複数のNWの割り当てが行えるようになっている。
[ICSソフトウェアによるリソース配分計算]
以下に、ICSソフトウェア501によるリソース配分計算の詳細について説明する。以下に詳細に説明するように、ICSソフトウェア501は、空きリソース情報や利用状況情報、制約条件、割当要求が入力されると、管理情報DB512に記憶された管理情報を用いてリソース配分計算を実行し、計算結果としてリソース割当を決定する。
[リソース配分計算の全体像]
図25−1〜図25−5は、実施例2におけるICSソフトウェアによるリソース配分計算の全体像を示す図である。図25−1〜図25−5において、DC利用状況情報701と、DC空きリソース情報702と、NW利用状況情報703と、NW空きリソース情報704と、制約条件705と、割当要求情報706は、それぞれ、リソース配分計算を実行する際に入力される情報となる。また、図25−1〜図25−5において、DC利用可能リソース情報711と、NW利用可能リソース情報712と、DC条件による制約DCリスト713と、NW条件による制約DCリスト714と、VMタイプ別DC候補リスト715と、VMタイププランリスト716と、NW制約プランリスト717とは、リソース配分計算の過程において生成される情報となる。
なお、DC利用状況情報701は、DC605についての利用状況情報である。DC空きリソース情報702は、DC605についての空きリソース情報である。NW利用状況情報703は、NW608についての利用状況情報である。NW空きリソース情報704は、NW608についての空きリソース情報である。制約条件705は、ユーザごとの制約条件である。DC利用可能リソース情報711〜NW制約プランリスト717の詳細については、適宜後述する。
図25−1のDC利用可能リソース計算721に示すように、ICSソフトウェア501は、DC利用状況情報701とDC空きリソース情報702とを用いて、DC605についての利用可能なリソースを示すDC利用可能リソース情報711を生成する。つまり、ICSソフトウェア501は、空きリソース情報と利用状況情報とを統合し、ユーザごとのリソース割当を決定する際に用いることが可能なDC605についてのリソースを特定可能な情報を生成する。
また、図25−2のNW利用可能リソース計算722に示すように、ICSソフトウェア501は、NW利用状況情報703とNW空きリソース情報704とを用いて、NW608についての利用可能リソースを示すNW利用可能リソース情報712を生成する。つまり、ICSソフトウェア501は、空きリソース情報と利用状況情報とを統合し、ユーザごとのリソース割当を決定する際に用いることが可能なNW608についてのリソースを特定可能な情報を生成する。
そして、図25−3の「ユーザのDC制約条件によるDC選択723」に示すように、ICSソフトウェア501は、DC利用可能リソース情報711と制約条件705とを用いて、制約条件705を満たすDC605のリストである「DC条件による制約DCリスト713」を生成する。
そして、図25−3の「ユーザのNW制約条件によるDC選択724」に示すように、ICSソフトウェア501は、NW利用可能リソース情報712と、DC条件による制約DCリスト713と、制約条件705とに基づいて、NW条件による制約DCリスト714を生成する。つまり、ICSソフトウェア501は、制約条件のうちNW608についての制約条件により、ユーザの所在地とDC605との間で使用可能なNW608を選択し、選択したNW608のリストがDC605に対応付けて登録されたリストとなるNW条件による制約DCリスト714を生成する。
そして、図25−4の「VMタイプ別DC候補リスト選択725」に示すように、ICSソフトウェア501は、DC利用可能リソース情報711と、NW条件による制約DCリストと、割当要求情報とに基づいて、VMタイプ別DC候補リストを生成する。つまり、ICSソフトウェア501は、VMの割り当て要求により要求されるVMを確保できるか否かをVMタイプごとに確認し、VMタイプごとに割り当て可能となるDC605のリストとなるVMタイプ別DC候補リスト715を生成する。
そして、図25−4の「VMタイププラン選択726」に示すように、ICSソフトウェア501は、VMタイプごとのDC候補の可能な組み合わせを列挙したプランリストであるVMタイププランリスト716を生成する。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストから、組み合わせ可能なDC605を組み合わせたリストを生成する。
そして、図25−5の「DC−DC間のNW制約条件によるプラン選択727」に示すように、ICSソフトウェア501は、VMタイププランリスト716に含まれるプランにおいて使用されるDC605間にて使用可能なNW608を制約条件により選択し、選択されたNW608を含むリストであるNW制約プランリスト717を生成する。
そして、図25の「アルゴリズム選択729」に示すように、ICSソフトウェア501は、プランを選択するためのアルゴリズムを1つ選択し、選択したアルゴリムに従って、制約条件を用いて、NW制約プランリスト717からプランを1つ選択する。そして、「アルゴリズムによるプラン選択728」に示すように、ICSソフトウェア501は、選択した1つのプランを「最も条件を満たすプラン出力718」として出力する。ここで、ICSソフトウェア501によって出力されたプランが、リソース割当となる。
[リソース配分計算の流れの全体像]
図26は、実施例2におけるICSソフトウェアによるリソース配分計算の全体像を示すフローチャートである。図26に示すフローチャートでは、記載の便宜上、図25に示す処理のうち、DC利用可能リソース計算721とNW利用可能リソース計算722とについては記載を省略した。なお、図26を用いて説明する際には、各処理について簡単に説明するに留め、各処理の詳細については後述する。
図26に示すように、ICSソフトウェア501は、ユーザのDC制約条件によるDC判定を行う(ステップS601)。つまり、ICSソフトウェア501は、制約条件のうちDC605についての制約条件に基づいて、制約条件を満たすDC605を選択する。つまり、ICSソフトウェア501は、DC条件による制約DCリストを生成する。
そして、ICSソフトウェア501は、ユーザのNW制約条件によるDC判定を行う(ステップS602)。つまり、ICSソフトウェア501は、DC条件による制約DCリストに含まれるDC605各々について、制約条件のうちNW608についての制約条件に基づいて、ユーザの所在地とDC605との間で使用可能なNW608を選択し、選択したNW608のリストを生成する。ここで、ICSソフトウェア501は、ユーザ所在地とDC605との間のネットワークが存在しないDC605や、制約条件を満たすネットワーク608が1つもないDC605について、DC条件による制約DCリストから削除し、削除後のリストをNW条件による制約DCリストとする。
そして、ICSソフトウェア501は、リソース種類別のDC判定を行う(ステップS603)。つまり、ICSソフトウェア501は、NW条件による制約DCリストに含まれるDC605各々について、VMタイプごとに、ユーザに割り当てられる量のVMを確保できるか否かを判定し、VMタイプごとのDC605のリストである割当可能DCリストを生成する。ここで、ICSソフトウェア501は、ユーザに割り当てられる量のVMを確保できるDC605がないVMタイプがある場合には、ユーザに割り当てられる量を減らした上で、再度確保可能であるかを判定し、処理を繰り返す。
そして、ICSソフトウェア501は、データセンタプランを生成する(ステップS604)。つまり、ICSソフトウェア501は、ステップS603にて生成された割当可能DCリストから、VMタイププランリストを生成する。ここで、VMタイププランリストに含まれる組み合わせ各々をプランとも記載する。ここで、ICSソフトウェア501は、割当可能DCリストに基づいて、総当たりにてプランを生成し、生成したプランのリストであるVMタイププランリストを生成する。
そして、ICSソフトウェア501は、プランのリソース提供・返却可能性を判定する(ステップS605)。つまり、ICSソフトウェア501は、同一のDC605に対して複数のタイプのリソースが要求された場合に、あるタイプのリソース確保によって、他のVMタイプについてもリソースを確保可能であるか否かを判定し、リソースが確保できないプランをVMタイププランリストから削除する。
そして、ICSソフトウェア501は、利用可能なプランがあるか否かを判定する(ステップS606)。つまり、ICSソフトウェア501は、ステップS605による処理の後、VMタイププランリストにプランが残っているか否かを判定する。
ここで、ICSソフトウェア501は、利用可能なプランがあると判定した場合には(ステップS606肯定)、DC間NWの制約条件によるプラン選択を行う(ステップS607)。つまり、各プランで使用されるDC605間において使用可能なNW608を、NW608についての制約条件により選択し、選択したNW608が登録されたNW制約プランリストを生成する。ここで、ICSソフトウェア501は、VMタイププランリストに含まれるプランのうち、プランに含まれるDC605間にネットワーク608がないプランや、制約条件を満たすネットワーク608については、NW制約プランリストに登録されない。
そして、ICSソフトウェア501は、利用可能なプランがあるか否かを再度判定する(ステップS608)。つまり、ICSソフトウェア501は、ステップS607による処理の後、NW制約プランリストにプランがあるか否かを判定する。
ここで、ICSソフトウェア501は、利用可能なプランがあると判定した場合には(ステップS608肯定)、アルゴリズムによるプラン選択を行う(ステップS609)。つまり、ICSソフトウェア501は、選択されたアルゴリズムによってNW制約プランリストから最適なプランを選択する。
そして、ICSソフトウェア501は、利用可能なプランがあるか否かを判定する(ステップS610)。つまり、ICSソフトウェア501は、ステップS609による処理により、選択されたプランが1つ以上あるか否かを判定する。
ここで、ICSソフトウェア501は、利用可能なプランがあると判定した場合には(ステップS610肯定)、プランのうち1つを解として選択する(ステップS611)。ここで、ICSソフトウェア501により選択されたプランが、ICSソフトウェア501により決定されたリソース割当となる。
なお、ここで、上述したステップS606、ステップS608、ステップS610において、利用可能なプランがないと判定した場合について説明する。この場合(ステップS606否定又はステップS608否定又はステップS610否定)、ICSソフトウェア501は、要求VM増分を変更する(ステップS612)。つまり、ICSソフトウェア501は、条件を満たすプランがなくなってしまった場合、ユーザに割り当てるVMを減らすことで、条件を満たすプランがでないかを試行する。
そして、ICSソフトウェア501は、要求増分が「0」となるか否かを判定する(ステップS613)。つまり、ICSソフトウェア501は、ユーザに割り当てるVMを減らした結果、ユーザに割り当てるVMが全てのタイプで「0」となるか否かを判定する。
ここで、ICSソフトウェア501は、要求増分が「0」となると判定した場合には(ステップS613肯定)、新規にVMを割り当てられないことになり、エラーとして処理を終了する。一方、ICSソフトウェア501は、要求増分が「0」とならないと判定した場合には(ステップS613否定)、上述したステップS603に戻り、処理を繰り返す。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[ユーザのDC制約条件によるDC選択処理の流れ]
図27は、実施例2におけるユーザのDC制約条件によるDC選択処理の流れの一例を示すフローチャートである。図27に示す一連の処理は、図26におけるステップS601に対応する。つまり、DC605についての制約条件に基づいてDC605を選択する処理の流れについて説明する。
なお、以下では、DC605についての制約条件として、制約条件DB511が、地域についての制約条件である指定地域条件と、セキュリティについての制約条件であるセキュリティ基準と、耐震基準についての制約条件である耐震条件と、稼働率についての制約条件である稼働率条件とを記憶する場合を用いて説明する。ただし、これに限定されるものではなく、任意の制約条件を用いて良い。
図27に示すように、ICSソフトウェア501は、DC利用可能リソース情報の個数分、処理をループする(ステップS701)。言い換えると、ICSソフトウェア501は、DC利用可能リソース情報各々について、DC利用可能リソース情報の個数分ループEND(ステップS707)までの処理を繰り返す。
具体的には、ICSソフトウェア501は、DC605についての制約条件全てについて、DC605ごとに満たすか否かを判定する。図27に示す例では、ICSソフトウェア501は、DC605各々について、指定地域条件を満たせるか否かを判定し(ステップS702)、セキュリティ基準を満たせるか否かを判定し(ステップS703)、耐震条件が満たせるか否かを判定し(ステップS704)、稼働率条件が満たせるか否かを判定する(ステップS705)。
すなわち、ICSソフトウェア501は、DC605各々について、制約条件に含まれる指定地域条件を満たしているかを判定する。なお、ICSソフトウェア501は、指定地域条件がない場合には、満たしていると判定する。また、ICSソフトウェア501は、制約条件に含まれるセキュリティ基準を満たしているかを判定する。ここで、ICSソフトウェア501は、セキュリティ基準により要求されるセキュリティよりDC605のセキュリティが同じか上であれば、条件を満たすと判定する。また、ICSソフトウェア501は、制約条件に含まれる耐震条件を満たしているかを判定する。ここで、ICSソフトウェア501は、耐震条件により要求される耐震性よりDC605の耐震性が同じか上であれば、条件を満たすと判定する。また、ICSソフトウェア501は、制約条件に含まれる稼働率条件を満たしているかを判定する。ここで、ICSソフトウェア501は、稼働率条件により要求される稼働率よりDC605の稼働率が同じか上であれば、条件を満たすと判定する。
ここで、ICSソフトウェア501は、制約条件全てについて満たすと判定したDC605について(ステップS702肯定及びステップS703肯定及びステップS704肯定及びステップS705肯定)、DC条件による制約DCリストに登録する(ステップS706)。つまり、ICSソフトウェア501は、DC605についての制約条件全てを満たすDC605のリストである制約DCリストを生成する。
そして、ICSソフトウェア501は、DC利用可能リソース情報の個数分ループが終了すると(ステップS707)、DC条件による制約DCリストを出力する(ステップS708)。つまり、ICSソフトウェア501は、ステップS706にて制約DCリストに登録されたDC605のリストを出力する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、ステップS702〜S705について、任意の順番に変更しても良い。
図28は、図27に示される一連の処理について説明する図である。図28の(1)に示すように、例えば、DC605として、「DC A」「DC B」「DC C」「DC D」について、DC利用可能リソース情報がある場合を用いて説明する。言い換えると、「DC A」と「DC B」と「DC C」と「DC D」とについて処理を実行する場合を用いて説明する。また、「DC D」が、指定地域条件を満たさない場合を用いて説明する。なお、図28に示す例では、DC605各々について、VMの台数をVMタイプごとに示した。
この場合、図28の(2)に示すように、ICSソフトウェア501は、DC605のリストから、DC605についての制約条件を満たさない「DC D」を削除する。この結果、図28の(2)に示すように、DC605のリストには、DC605についての制約条件を満たす「DC A」と「DC B」と「DC C」とが残る。
[ユーザのNW制約条件によるDC選択処理の流れ]
図29は、実施例2におけるユーザのNW制約条件によるDC選択処理の流れの一例を示すフローチャートである。図29に示す一連の処理は、図26におけるステップS602に対応する。つまり、ICSソフトウェア501が、DC条件による制約DCリストに含まれるDC605各々について、NWについての制約条件により、ユーザの所在地とDC605との間で使用可能なNW608を選択し、選択したNW608のリストがDC605に対応付けて登録されたリストとなるNW条件による制約DCリストを出力する処理ついて説明する。
すなわち、例えば、ICSソフトウェア501が、DC605についての制約条件を満たすDC605について、帯域確保条件や本数条件などのネットワーク608についての制約条件を全て満たし、利用者からDC605までアクセス可能となるネットワーク608があるか否かを判定する処理の流れについて説明する。
図29に示すように、ICSソフトウェア501は、DC条件による制約DCリストの個数分、処理をループする(ステップS801)。言い換えると、ICSソフトウェア501は、DC条件による制約DCリストに含まれるDC605各々について、DC条件による制約DCリストの個数分ループEND(ステップS809)までの処理を繰り返す。なお、DC条件による制約DCリストは、図27による一連の処理の結果得られるDC605のリストであって、DC605についての制約条件を全て満たすDC605のリストである。
具体的には、ICSソフトウェア501は、DC別NW制約リストを初期化する(ステップS802)。つまり、DC605ごとにピックアップするNW608のリストを初期化する。そして、ICSソフトウェア501は、利用者の所在地の個数分、処理をループする(ステップS803)。言い換えると、ICSソフトウェア501は、処理対象となるDC605について、利用者の所在地全てについて、利用者の所在地の個数分ループEND(ステップS807)までの処理を繰り返す。
利用者の所在地全てについて繰り返す処理について説明する。ICSソフトウェア501は、利用者の所在地と処理対象となるDC605との間にNW608があるか否かを判定する(ステップS804)。つまり、ユーザの所在地とDC605との間にNW608がない場合には、処理対象となるDC605を使用できないことを踏まえ、ユーザの所在地とDC605との間にNW608があるか否かを判定する。
ここで、ICSソフトウェア501は、利用者の所在地と処理対象となるDC605との間にNW608があると判定した場合には(ステップS804肯定)、利用者条件を満たせるNW608をDC別NW制約リストにピックアップする(ステップS805)。つまり、ICSソフトウェア501は、利用者の所在地と処理対象となるDC605との間にあるネットワーク608のうち、ネットワーク608についての制約条件を満たすネットワーク608をピックアップし、ピックアップしたネットワーク608のリストとなるDC別NW制約リストを生成する。なお、ステップS805の処理の詳細については、後述する。
そして、ICSソフトウェア501は、DC別NW制約リストに制約条件を満たすNW608があるか否かを判定する(ステップS806)。つまり、制約条件を満たすNW608が利用者の所在地と処理対象となるDC605との間になければ、処理対象となるDC605は使用できないことを踏まえ、制約条件を満たすNW608があるか否かを判定する。
ここで、利用者の所在地全てについて、利用者の所在地と処理対象となるDC605との間にNW608があると判定し(ステップS804肯定)、制約条件を満たすNW608があると判定した場合には(ステップS806肯定)、NW条件による制約DCリストに該当DC605とDC別NW制約リストを登録する(ステップS808)。つまり、ICSソフトウェア501は、ネットワーク608についての制約条件を満たすNW608を全てのユーザ所在地について確保可能なDC605と、ユーザの所在地とDC605との間において利用可能なネットワーク608のリストとが対応付けられたリストを生成する。ここで生成されるリストが、NW制約プランリストとなる。
なお、ICSソフトウェア501は、利用者の所在地と処理対象となるDC605との間にNW608がないと判定した場合や(ステップS804否定)、制約条件を満たすNW608がないと判定した場合には(ステップS806否定)、処理対象となるDC605をNW制約プランリストに登録することなく、処理対象となるDC605についての処理を終了する。
そして、ICSソフトウェア501は、DC条件による制約DCリストに含まれるDC605各々について処理を実行すると(ステップS809)、NW条件による制約DCリストを出力する。つまり、制約条件を満たすDC605と、制約条件を満たすDC605に対応づけられた利用可能なネットワーク608のリストとを出力する(ステップS810)。
図30は、図29に示される一連の処理により出力されるNW条件による制約DCリストの一例を示す図である。図30に示す例では、ユーザの所在地として、「ユーザの所在地A」と「ユーザの所在地B」と「ユーザの所在地C」とがある場合を示した。図30において、「NWclass1」と「NWclass2」と「NWclass3」とは、それぞれ、ネットワーク608の種類を示す。「×」は、ユーザの所在地とDC605との間にネットワーク608がないことを示す。また、ネットワーク608についての情報として、帯域と、利用料金とを記載した。また、図30において、ネットワーク608についての情報の上に斜線が引かれている場合については、ネットワーク608が制約条件を満たさないことを示す。
図30に示す例では、「DC C」については、「ユーザの所在地A」と「DC C」との間にネットワーク608がない。この結果、「DC C」の上に斜線が引かれているように、「DC C」がNW条件による制約DCリストから除外されることになる。
[利用者条件を満たせるNWをDC別NW制約リストにピックアップする処理]
図31は、実施例2における利用者条件を満たせるNWをDC別NW制約リストにピックアップする処理の流れの一例を示すフローチャートである。図31に示す一連の処理は、図29におけるステップS805に対応する。
なお、以下では、NW608についての制約条件として、帯域についての制約条件である帯域確保条件と、回線の本数についての制約条件である本数条件と、帯域についての制約条件である帯域条件と、遅延時間についての制約条件である遅延条件と、ネットワーク608についての制約条件であるセキュリティ条件とがある場合を用いて説明する。ただし、これに限定されるものではなく、任意の制約条件を用いて良い。
図31に示すように、ICSソフトウェア501は、ユーザの所在地とDC605間のNWクラス個数分、処理をループする(ステップS901)。言い換えると、ICSソフトウェア501は、ユーザの所在地とDC605との間にあるNW608各々について、所在地-DC間のNWクラス個数分ループEND(ステップS908)までの処理を繰り返す。
具体的には、ICSソフトウェア501は、NW608についての制約条件全てについて、NW608ごとに満たすか否かを判定する。図31に示す例では、ICSソフトウェア501は、NW608各々について、帯域確保条件を満たせるか否かを判定し(ステップS902)、本数条件を満たせるか否かを判定し(ステップS903)、帯域条件を満たせるか否かを判定し(ステップS904)、遅延条件を満たせるか否かを判定し(ステップS905)、セキュリティ条件を満たせるか否かを判定する(ステップS906)。
そして、ICSソフトウェア501は、制約条件全てについて満たすと判定したNW608について(ステップS902肯定及びステップS903肯定及びステップS904肯定及びステップS905肯定及びステップS906肯定)、ユーザ所在地とクラスをDC別NW制約リストに登録する(ステップS907)。つまり、ICSソフトウェア501は、全ての制約条件を満たすNW608を、DC605に対応付けてDC別NW制約リストに登録する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、ステップS902〜S906について、任意の順番に変更しても良い。
[リソース種類別のDC判定]
図32は、実施例2におけるリソース種類別のDC判定の流れの例を示すフローチャートである。つまり、図32を用いて、NW条件による制約DCリストに含まれるDC605各々について、VMの割り当て要求により要求されるVMを確保できるか否かをVMタイプごとに確認し、VMタイプごとに割り当て可能となるDC605のリストとなるVMタイプ別DC候補リストを生成する処理の流れの一例を示す。
具体的には、以下に説明するように、ICSソフトウェア501は、DC605を選択し、各タイプの仮想マシンを提供できるかどうかを判定し、VMタイプ別DC候補リストを出力する。また、ここで、ICSソフトウェア501は、全てのデータセンタが必要なリソースを提供できないVMタイプについては、割り当てるVM数を減らした上で再度処理を実行する。なお、図32に示す一連の処理は、図26におけるステップS603に対応する。
図32に示すように、ICSソフトウェア501は、NW条件による制約DCリストの個数分、処理をループする(ステップS1001)。つまり、ICSソフトウェア501は、NW条件による制約DCリストに含まれるDC605各々について、NW条件による制約DCリスト個数分ループEND(ステップS1007)までの処理を繰り返す。これにより、ICSソフトウェア501は、DC605ごとにVMタイプ各々について実際に割り当て可能か確認する。
具体的には、ICSソフトウェア501は、処理対象となるDC605について、選択したDCのVMタイプの個数分、処理をループする(ステップS1002)。つまり、ICSソフトウェア501は、VMタイプ各々について選択したDCのVMタイプの個数分ループEND(ステップS1006)までの処理を繰り返す。これにより、ICSソフトウェア501は、処理対象となるDC605について、VMタイプごとに実際に割り当て可能か確認する。
ここで、ICSソフトウェア501は、ユーザが必要なVMタイプか否かを判定し(ステップS1003)、ユーザが必要なVMタイプであると判定すると(ステップS1003肯定)、当該VMタイプが必要数確保できるか否かを判定する(ステップS1004)。ICSソフトウェア501は、該当VMタイプのリソース分、DCの使用可能リソースから引いたものが0以上か確認する。
そして、ICSソフトウェア501は、当該VMタイプが必要数確保できると判定した場合には(ステップS1004肯定)、VMタイプ別DC候補リストに登録する(ステップS1005)。つまり、ICSソフトウェア501は、VMタイプ別に利用可能なDC候補をリストとして登録する。ここで、ICSソフトウェア501が、VMタイプ別に利用可能なDC候補を登録したリストをVMタイプ別DC候補リストと称する。
なお、ICSソフトウェア501は、ユーザが必要なVMタイプでないと判定した場合には(ステップS1003否定)、処理対象となるVMタイプについての処理を終了する。これは、ユーザの要求がないVMタイプについては、当該VMタイプが必要数確保できるか否かを判定する必要がないからである。
その後、ICSソフトウェア501は、NW条件による制約DCリストの個数分、処理をループすると(ステップS1007)、割り当てられるDCが1つもないタイプがあるか否かを判定する(ステップS1008)。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストにおいて、DC候補が1つもないVMタイプがあるか否か確認する。
ここで、ICSソフトウェア501は、割り当てられるDCが1つもないタイプがないと判定した場合には(ステップS1008否定)、VMタイプ別DC候補リストを出力する(ステップS1009)。つまり、ICSソフトウェア501は、VMタイプ別に利用可能と思われるDC605のリストを出力する。
一方、ICSソフトウェア501は、割り当てられるDCが1つもないタイプがあると判定した場合には(ステップS1008肯定)、割り当てられるDCが1つもないタイプの要求VM増分を1つ減らし(ステップS1010)、上述したステップS1001に戻り、処理を繰り返す。つまり、ICSソフトウェア501は、どのDC605にも割り当てられないVMタイプの要求を1つ減らし、処理を繰り返す。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップS1003をS1004の後に実行しても良い。
図33は、実施例2におけるリソース種類別のDC判定について説明する図である。図33に示す例では、要求されているVMが、「VM Type1」が「5台」であり、「VM Type2」が「2台」であり、「VM Type3」が「2台」である場合を用いて説明する。また、図33の(1)に示す例では、図28や図30に示すように、「DC C」と「DC D」とについては、リストから除外されている場合を例に示した。ここで、図33の(2)に示すように、ICSソフトウェア501は、「DC A」及び「DC B」について、各DC605のVMタイプごとに、要求されているVMの台数を割当可能であるか否かを判定する。図33の(2)に示す例では、「DC A」は、「VM Type3」の台数が「1台」であり、要求されている「2台」を満たさない。この結果、図33の(2)に示す例では、「DC A」の「VM Type3」について、斜線が記載されている。この結果、図33の(3)に示すように、ICSソフトウェア501は、VMタイプ別DC候補リストにおいては、「DC A」と「DC B」とが記載され、「DC A」の「VM Type3」については不可となる。
[データセンタプラン作成の流れ]
図34は、実施例2におけるデータセンタプラン作成の流れの一例を示すフローチャートである。つまり、図34は、VMタイプごとのDC候補の可能な組み合わせを列挙したプランリストであるVMタイププランリスト作成の流れの一例を示す。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストから、組み合わせ可能なDC605を組み合わせたリストを作成する。なお、図34に示す一連の処理は、図26におけるステップS604に対応する。なお、以下では、VMのタイプとして、VMタイプ1とVMタイプ2とVMタイプ3とがある場合を用いて説明する。
図34に示すように、ICSソフトウェア501は、VMタイプ1のDC候補リストの個数分、処理をループする(ステップS1101)。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストに含まれるDC605のうち、VMタイプ1を割当可能なDC605各々について、VMタイプ1のDC候補リストの個数分ループEND(ステップS1107)までの処理を繰り返す。
また、ICSソフトウェア501は、VMタイプ2のDC候補リストの個数分、処理をループする(ステップS1102)。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストに含まれるDC605のうち、VMタイプ2を割当可能なDC605各々について、VMタイプ2のDC候補リストの個数分ループEND(ステップS1106)までの処理を繰り返す。
また、ICSソフトウェア501は、VMタイプ3のDC候補リストの個数分、処理をループする(ステップS1103)。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストに含まれるDC605のうち、VMタイプ2を割当可能なDC605各々について、VMタイプ2のDC候補リストの個数分ループEND(ステップS1105)までの処理を繰り返す。
ここで、ICSソフトウェア501は、処理対象となったVMタイプごとのDC605の組み合わせをVMタイププランリストに登録する(ステップS1104)。つまり、ICSソフトウェア501は、VMタイププランリストに登録された全てのVMタイプについてDC候補の可能な組み合わせを1つずつリストに登録する。このように、ICSソフトウェア501は、VMタイプ別DC候補リストから、VMタイプ各々について、割当可能なDC605全てについて処理をループすることで、VMタイプとDCの全組み合わせを取得し、VMタイププランリストに登録する。
そして、ICSソフトウェア501は、VMタイプ1のDC候補リストの個数分ループEND(ステップS1107)となると、VMタイププランリストを出力する(ステップS1108)。つまり、ICSソフトウェア501は、VMタイプ別DC候補リストに登録されたDC605の組み合わせ全てを列挙したVMタイププランリストを出力する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップS1101〜ステップS1103を任意の順番にてループしても良い。
図35は、実施例2におけるデータセンタプラン作成の流れを説明する図である。図35の(1)は、VMタイプ別DC候補リストを示す。ここで、図35の(2)に示すように、ICSソフトウェア501は、VMタイプそれぞれについて、VMタイプ別DC候補リストにより割当可能とされているDC605を1つ選択したリストとなるVMタイププランリストを生成する。つまり、図35の(2)に示す例では、「プラン1」〜「プラン4」を含むVMタイププランリストを生成する。
[プランのリソース提供・返却可能性判定]
図36は、実施例2におけるプランのリソース提供・返却可能性判定の流れの一例を示すフローチャートである。図36は、同一のDCに対して複数のVMタイプのリソースが要求された場合に、あるタイプのリソース確保によって、他のタイプのリソースが、足りなくなる場合がないかをチェックする処理について説明する。なお、図36に示す一連の処理は、図26におけるステップS605に対応する。
図36に示すように、ICSソフトウェア501は、VMタイププランリストの個数分、処理をループする(ステップS1201)。つまり、ICSソフトウェア501は、VMタイププランリストに含まれるプラン各々について、VMタイププランリストの個数分ループEND(ステップS1206)までの処理を繰り返す。言い換えると、ICSソフトウェア501は、VMタイププランリストから、条件を満たすプランをピックアップする処理を実行する。
ここで、ICSソフトウェア501は、処理対象となるプランの内DC605の個数分、処理をループする(ステップS1202)。つまり、ICSソフトウェア501は、プラン内のDC605個数分ループEND(ステップS1205)までの処理を繰り返す。言い換えると、ICSソフトウェア501は、処理対象となるプランのVMタイプ全てについてリソースが確保できるか否かを確認することを目的として、処理をループする。
具体的には、ICSソフトウェア501は、処理対象となるDC605にプラン内のTypeのリソースが全て割り当て可能であるか否かを判定する(ステップS1203)。つまり、ICSソフトウェア501は、処理対象となるプランにおいて、同一のDC605により複数のタイプのVMが提供される場合に、複数のタイプ全てについて、対象となるDC605がVMを割当可能であるか否かを判定する。つまり、例えば、DC605が、VMタイプ1を10台割り当て可能であり、VMタイプ2を5台割り当て可能であり、VMタイプ3を1台割り当て可能である場合を用いて説明する。ここで、DC605は、VMタイプ1を10台割り当てるとともに、同時に、VMタイプ2を5台割り当てることができない場合がある。例えば、VMタイプ1の10台分のリソースはVMタイプ2を割り当てる際にも用いられる場合には、VMタイプ1を10台割り当てるとともに、VMタイプ2を5台割り当てることはできない。このことを踏まえ、ICSソフトウェア501は、各DC605が、プランに含まれるVMタイプ各々を同時に割り当て可能であるか否かを判定する。
ここで、ICSソフトウェア501は、処理対象となるDC605にプラン内のTypeのリソースが全て割り当て可能であると判定した場合には(ステップS1203肯定)、該当プランをDCリソース提供条件プランリストに登録する(ステップS1204)。一方、ICSソフトウェア501は、処理対象となるDC605にプラン内のTypeのリソースが全て割り当て可能でないと判定した場合には(ステップS1203否定)、DCリソース提供条件プランリストに登録することなく、次の処理を実行する。
そして、ICSソフトウェア501は、VMタイププランリストの個数分、処理をループすると(ステップS1206)、DCリソース提供条件プランリストを出力する(ステップS1207)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[要求VM増分の変更]
図37は、実施例2における要求VM増分の変更の処理の流れの一例を示すフローチャートである。つまり、図37は、制約条件を満たすプランがなくなってしまった場合に、要求されたVM数を減らすことで制約条件を満たすプランがでる可能性があることを踏まえ、要求されたVM数を変更する。
つまり、以下では、仮想マシンの増設・減設の要求に対して台数分の増減ができない場合に、要求台数を再計算する場合における処理の流れを示す。言い換えると、仮想マシンの増設に必要なリソースは全てのプランが提供できない場合、ICSソフトウェア501が、台数の最も多いタイプのうち、スペックの最も低い仮想マシンの要求を減らし、再度プランの組み合わせを生成する場合について説明する。なお、図37に示す一連の処理は、図26におけるステップS612に対応する。
図37に示すように、ICSソフトウェア501は、要求増分が最も多いVMタイプを選択する(ステップS1301)。例えば、ICSソフトウェア501は、「VMタイプ1」と「VMタイプ2」と「VMタイプ3」とのうち、要求された台数が最も多いVMタイプを選択する。
そして、ICSソフトウェア501は、該当のVMタイプが複数あるか否かを判定する(ステップS1302)。ここで、ICSソフトウェア501は、複数あると判定した場合には(ステップS1302肯定)、スペックが低いタイプを選択する(ステップS1303)。
そして、ICSソフトウェア501は、該当タイプの要求を一台減らす(ステップS1304)。つまり、該当タイプのVMの割り当て要求数を1つ減らす。なお、ICSソフトウェア501は、該当のVMタイプが複数ないと判定した場合には(ステップS1302否定)、スペックが低いタイプを選択することなく、1つのVMタイプについてVMの割り当て要求数を1つ減らす。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。また、例えば、上述した処理では、VMタイプが複数ある場合にスペックが低いタイプを選択する場合を例に示したが、これに限定されるものではなく、任意の観点からVMタイプを選択して良い。また、上述した処理では、要求数を1つ減らす場合を用いて説明したが、これに限定されるものではなく、任意の数減らして良い。
[DC間のNW制約条件によるプラン選択]
図38は、実施例2におけるDC―DC間のNW制約条件によるプラン選択の流れの一例を示すフローチャートである。図38は、VMタイププランリストに含まれるプランにおいて使用されるDC605間にて使用可能なNW608を制約条件により選択し、選択されたNW608を含むリストであるNW制約プランリストを生成する。
すなわち、以下では、仮想マシンを提供可能としたプランのうち、複数のデータセンタ605を利用するものに対して、全てのデータセンタ605同士間におけるネットワーク608の有無、及び、制約条件を満たせるかどうかを判定する。この結果、ICSソフトウェア501は、データセンタ605間を接続するネットワーク608が利用可能となるプランを出力する。
なお、DC605間のネットワーク608が存在しない場合や、制約条件を満たすNW608が1つもないプランについては、NW制約プランリストに登録されないことになる。なお、図38に示す一連の処理は、図26におけるステップS607に対応する。
図38に示すように、ICSソフトウェア501は、VMタイププランリストの個数分、処理をループする(ステップS1401)。つまり、ICSソフトウェア501は、Mタイププランリストの個数分ループEND(ステップS1407)までの処理を繰り返す。言い換えると、ICSソフトウェア501は、VMタイププランリストに含まれるプランのうち、条件を満たすものをピックアップする。
具体的には、ICSソフトウェア501は、プラン別NW制約リストを初期化し(ステップS1402)、処理対象となるプランが複数のDC605で構成されているか否かを判定する(ステップS1403)。例えば、ICSソフトウェア501は、プランごとに処理を行う際に用いられるメモリを初期化する。
ここで、ICSソフトウェア501は、処理対象となるプランが複数のDC605で構成されていると判定した場合には(ステップS1403肯定)、ユーザ条件を満たせるNWをDC間NW制約リストにピックアップする(ステップS1404)。つまり、DC605間接続で制約条件を満たすNW608の選択を行う。なお、ステップS1404の詳細については、後述する。
そして、ICSソフトウェア501は、DC605間に条件を満たすNW608はあるか否かを判定する(ステップS1405)。ここで、ICSソフトウェア501は、DC605間に条件を満たすNW608はあると判定した場合には(ステップS1405肯定)、NW制約プランに該当プランとプラン別NW制約リストを登録する(ステップS1406)。つまり、ICSソフトウェア501は、処理対象となるプランと、処理対象となるDC605間で制約条件を満たすNW608とが登録されたリストを生成する。ここで、ICSソフトウェア501により生成されたリストが制約プランリストとなる。
なお、ICSソフトウェア501は、処理対象となるプランが複数のDC605で構成されていないと判定した場合には(ステップS1403否定)。処理対象となるプランをそのままNW制約プランリストに登録する。これは、処理対象となるプランが1つのDC605で構成されている場合、DC605間での接続がないからである。
その後、ICSソフトウェア501は、NW制約プランリストを出力する(ステップS1408)。つまり、ICSソフトウェア501は、VMタイププランリストに含まれるプランのうち条件を満たすプランをピックアップし、ピックアップされたプランが登録されたNW制約プランリストを出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
図39は、実施例2におけるDC―DC間に条件を満たすNWはあるか否かの判定について説明する図である。図39に示す例では、「DC A」と「DC B」とを含むプランが処理対象となっている場合を用いて説明する。また、「DC A」と「DC B」との間には、NW608として、「NW class1」と「NW class2」とがある場合を用いて説明する。なお、図39に示す例では、「DC A」と「DC B」との間には「NW class3」はない場合を示した。ここで、例えば、ネットワーク608についての制約条件として、「80Mbps以上」と「110万以下」という制約条件がある場合を用いて説明する。この場合、ICSソフトウェア501は、「NW class1」については条件を満たさず、「NW class2」については条件を満たすと判定する。この結果、ICSソフトウェア501は、「DC A」と「DC B」とを含むプランについて、「NW class2」と対応付けた上でNW制約プランリストに登録する。
[ユーザ条件を満たせるNWをDC間NW制約リストにピックアップする処理]
図40は、実施例2におけるユーザ条件を満たせるNWをDC間NW制約リストにピックアップする処理の流れの一例を示すフローチャートである。図40は、DC605間を接続するNW608について、制約条件に基づいて使用可能なクラスのNWを選択する。なお、以下では、制約条件として、帯域確保条件と、本数条件と、帯域条件と、遅延条件と、セキュリティ条件とがある場合を用いて説明する。図40に示す一連の処理は、図38におけるステップS1404に対応する。
図40に示すように、ICSソフトウェア501は、処理対象となるプランに含まれるDC605間のNW個数分、処理をループする(ステップS1501)。つまり、例えば、ICSソフトウェア501は、DC605間にあるNW608各々について、DC605間のNW個数分ループEND(ステップS1508)までの処理を繰り返すことで、制約条件を満たすか否かを判定する。
具体的には、ICSソフトウェア501は、帯域確保条件を満たすか否かを判定し(ステップS1502)、本数条件を満たすか否かを判定し(ステップS1503)、帯域条件を満たすか否かを判定し(ステップS1504)、遅延条件を満たすか否かを判定し(ステップS1505)、セキュリティ条件を満たすかを判定する(ステップS1506)。
ここで、ICSソフトウェア501は、全てを満たすと判定した場合に(ステップS1502肯定及びステップS1503肯定及びステップS1504肯定及びステップS1506肯定)、DC605間とクラスとをNW制約プランリストに登録する(ステップS1507)。つまり、全てを満たすと判定NW608をNW制約プランリストに登録する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップS1502〜S1506を任意の順番にて実行しても良い。
[アルゴリズムによるプラン選択]
図41は、実施例2におけるアルゴリズムによるプラン選択の流れの一例を示すフローチャートである。図41は、NW制約プランリストに含まれるプランのうち、選択されたアルゴリズムによって最適なプランを選択する処理を示す。ICSソフトウェア501は、利用者又は事業者の規定したポリシを反映できるアルゴリズムを選択する。
図41に示すように、ICSソフトウェア501は、アルゴリズムを1つ選択する(ステップS1601)。例えば、ICSソフトウェア501は、任意の選択基準に従って、アルゴリズムを1つ選択する。
例えば、ICSソフトウェア501は、アルゴリズムとしてコスト最小アルゴリズムを選択すると、NW制約プランリストからコストが最小となるプランを1つ選択する(ステップS1602)。つまり、ICSソフトウェア501は、価格が最小のプランをNW制約プランリストから選択する。
また、例えば、ICSソフトウェア501は、アルゴリズムとして帯域最大アルゴリズムを選択すると、NW制約プランリストから帯域が最大となるプランを1つ選択する(ステップS1603)。つまり、ICSソフトウェア501は、制約条件の価格を満たした上でネットワークの帯域の平均が最大となるプランをNW制約プランリストから選択する。
また、例えば、ICSソフトウェア501は、アルゴリズムとして遅延最小アルゴリズムを選択すると、NW制約プランリストから遅延が最小となるプランを1つ選択する(ステップS1604)。つまり、ICSソフトウェア501は、プランの中から制約条件の価格を満たした上でネットワークの遅延の平均が最小となるプランをNW制約プランリストから選択する。
また、例えば、ICSソフトウェア501は、アルゴリズムとして集中アルゴリズムを選択すると、割り当て元となるリソースが集中するプランをNW制約プランリストから1つ選択する(ステップS1605)。つまり、ICSソフトウェア501は、制約条件の価格を満たした上でDC605の使用率の分散度合いが最大となるNW制約プランリストから選択する。言い換えると、ICSソフトウェア501は、特定のDC605に負担が集中することになるプランを選択する。
また、例えば、ICSソフトウェア501は、アルゴリズムとして分散アルゴリズムを選択すると、割り当て元となるリソースが分散するプランをNW制約プランリストから1つ選択する(ステップS1606)。つまり、ICSソフトウェア501は、制約条件の価格を満たした上でDC605の使用率の分散度合いが最小となるプランをNW制約プランリストから選択する。言い換えると、ICSソフトウェア501は、特定のDC605に負担が集中することなく、平均してDC605を使用することになるプランを選択する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。また、上述した例では、アルゴリズムが5種類ある場合を用いて説明したが、これに限定されるものではなく、任意の数のアルゴリズムがあって良い。
[コスト最小アルゴリズム]
図42は、実施例2におけるコスト最小アルゴリズムによる処理の一例を示すフローチャートである。図42に示す一連の処理は、図41におけるステップS1602に対応する。すなわち、以下では、プラン各々について、利用者とデータセンタ605との間におけるネットワーク608と、データセンタ605間を接続するネットワーク608とについて、最もコストが小さくなるネットワーク608を選択し、仮想マシンについての料金とネットワークの料金との合計料金をそれぞれ計算し、合計金額が最も小さくなるプランを出力する場合について説明する。
図42に示すように、ICSソフトウェア501は、NW制約プランリストに登録されたプランとなるNW制約プランの個数分、処理をループする(ステップS1701)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、NW制約プランの個数分ループEND(ステップS1708)までの処理を繰り返す。
具体的には、ICSソフトウェア501は、処理対象となるプランのVM料金を合算しDC料金を算出する(ステップS1702)。つまり、ICSソフトウェア501は、処理対象となるプランについて、VMの割当数に、処理対象となるプランにおけるDC605のVMタイプの料金を掛けて算出し、算出した料金を合算することでプランのDC605についての合計金額を算出する。
そして、ICSソフトウェア501は、利用者所在地-DC間のNW料金合計を算出する(ステップS1703)。つまり、ICSソフトウェア501は、処理対象となるプランについて、全てのユーザ所在地からDC605までの間において最も安いNW608の料金の合計を算出する。なお、ステップS1703の詳細については後述する。
そして、ICSソフトウェア501は、DC605−DC605間のNW料金合計を算出する(ステップS1704)。つまり、ICSソフトウェア501は、処理対象となるプランについて、全てのDC605間について、最も安いNW608のクラスの料金の合計を算出する。なお、ステップS1704の詳細については後述する。
そして、ICSソフトウェア501は、各料金を合算する(ステップS1705)。つまり、ICSソフトウェア501は、VMの料金とNW料金の合計を算出する。
そして、ICSソフトウェア501は、合計が記録最安プランより安いか否かを判定する(ステップS1706)。つまり、ICSソフトウェア501は、ループを実行する過程にて算出されたVMの料金とNW料金の合計の最安値と比較して、ステップS1705にて算出した直近の合計金額が安いか否かを判定する。
ここで、ICSソフトウェア501は、記録最安プランより安いと判定した場合には(ステップS1706肯定)、処理対象となる該当プランを最安プランとして記録する(ステップS1707)。つまり、ICSソフトウェア501は、処理対象となったプランについての金額が、最安値となる。一方、ICSソフトウェア501は、記録最安プランより安いと判定しなかった場合には(ステップS1706否定)、直近に算出した合計金額を最安値として記憶することなく、次の処理に進む。
そして、ICSソフトウェア501は、NW制約プランの個数分ループENDまでの処理を繰り返すと(ステップS1708)、最安値が利用者制約条件の所定コスト以下であるか否かを判定する(ステップS1709)。つまり、ICSソフトウェア501は、算出した合計金額を最安値が、制約条件により示される料金の上限以下となるか否かを判定する。
ここで、ICSソフトウェア501は、最安値が利用者制約条件の所定コスト以下であると判定した場合には(ステップS1709肯定)、記録してある最もコストの安いプランを出力する(ステップS1710)。つまり、ICSソフトウェア501は、合計金額を最安値となったプランをリソース割当として出力する。
一方、ICSソフトウェア501は、最安値が利用者制約条件の所定コスト以下でないと判定した場合には(ステップS1709否定)、解なしとして出力する(ステップS1711)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるリスト各々が、制約条件により示される料金の上限を満たさないことを踏まえ、プランなしとして出力する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップ1702〜S1704を任意の順番にて実行しても良い。
[利用者所在地-DC間のNW料金合計を算出]
図43は、実施例2における利用者所在地-DC間のNW料金合計を算出する流れの一例を示すフローチャートである。図43は、処理対象となるプランにおいて、全てのユーザ所在地とDC605との間において、最も安いNWのクラスの料金の合計を算出する処理を示す。図43に示す一連の処理は、図42におけるステップS1703に対応する。
図43に示すように、ICSソフトウェア501は、合計値をクリアする(ステップS1801)。つまり、ICSソフトウェア501は、ユーザ所在地-DC605間の、NW料金の最安合計値を積算する前にメモリをクリアする。
そして、ICSソフトウェア501は、処理対象となるプラン内のDCの個数分、処理をループする(ステップS1802)。つまり、ICSソフトウェア501は、プラン内のDCの個数分ループEND(ステップS1807)となるまで処理を繰り返すことで、処理対象となるプランに含まれるDC605各々についてチェックする。
具体的には、ICSソフトウェア501は、処理対象となる該当DC605に対応するDC別NW制約リストの利用者所在地の個数分、処理をループする(ステップS1803)。つまり、ICSソフトウェア501は、該当DCに対応するDC別NW制約リストの利用者所在地の個数分ループEND(ステップS1806)となるまで処理を繰り返すことで、処理対象となるDC605について、ユーザの所在地全てについてチェックする。
ここで、ICSソフトウェア501は、DC605と利用者の所在地との間における最安クラス料金を選択する(ステップS1804)。つまり、ICSソフトウェア501は、処理対象となるDC605とユーザの所在との間におけるネットワーク608のうち、最も安価となるネットワーク608の料金を選択する。
そして、ICSソフトウェア501は、合計に料金を加算する(ステップS1805)。つまり、ICSソフトウェア501は、ステップS1802からS1807までのループにおいて、ステップS1804にて選択された料金を積算する。
そして、ICSソフトウェア501は、処理対象となるDC605について、利用者の所在地各々についての処理を終了し(ステップS1806)、処理対象となるプランに含まれるDC605各々についての処理を終了すると(ステップS1807)、合計値を出力する(ステップS1808)。つまり、ICSソフトウェア501は、処理対象となるプランにおいて、ユーザの全ての所在地とDC605とを接続する上で必要となるネットワーク608の合計金額の最安値を出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[DC605−DC605間のNW料金合計を算出]
図44は、実施例2におけるDC−DC間のNW料金合計を算出する流れの一例を示すフローチャートである。図44は、処理対象となるプランにおいて、全てのDC605間において、最も安いNWのクラスの料金の合計を算出する処理を示す。図44に示す一連の処理は、図42におけるステップS1704に対応する。
図44に示すように、ICSソフトウェア501は、合計値をクリアする(ステップS1901)。つまり、ICSソフトウェア501は、DC605間を接続するNW608の料金の最安合計値を積算する前にメモリをクリアする。
そして、ICSソフトウェア501は、プラン別NW制約リストのDC605−DC605間個数分、処理をループする(ステップS1902)。つまり、ICSソフトウェア501は、プラン別NW制約リストのDC−DC間個数分ループEND(ステップS1905)となるまで処理を繰り返すことで、処理対象となるプランに含まれるDC605間各々全てについてチェックする。
具体的には、ICSソフトウェア501は、DC605−DC605間の最安クラス料金を選択する(ステップS1903)。つまり、ICSソフトウェア501は、処理対象となるDC605間について、最も料金の安いネットワーク608を選択する。つまり、処理対象となるDC605間にあるネットワーク608において、最も料金の安いクラスを選択する。
そして、ICSソフトウェア501は、合計に料金を加算する(ステップS1904)。つまり、ICSソフトウェア501は、ステップS1902からS1905までのループにおいて、ステップS1903にて選択された料金を積算する。
そして、ICSソフトウェア501は、DC605間各々についての処理が終了すると(ステップS1905)、合計値を出力する(ステップS1906)。つまり、ICSソフトウェア501は、処理対象となるプランにおいて、DC605間を接続する上で必要となるネットワーク608の合計金額の最安値を出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[帯域最大アルゴリズム]
図45は、実施例2における帯域最大アルゴリズムによる処理の一例を示すフローチャートである。図45は、プランの中から制約条件の価格を満たした上で、ネットワークの帯域の平均が最大となるプランを選択する処理を示す。すなわち、図45では、プランのうち、料金の上限値を超えない範囲プランであって、利用者とデータセンタ605との間のネットワーク608の帯域と、データセンタ605間を接続するネットワーク608の帯域との平均帯域が最も大きくなるプランを出力する場合について説明する。なお、図42に示す一連の処理は、図41におけるステップS1603に対応する。
図45に示すように、ICSソフトウェア501は、プラン内で最小のDC使用数を記録する(ステップS2001)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプランのうち、DC605の使用数が少ないプランのDC使用数を記録する。例えば、DC605の使用数が「1」となるプランが含まれる場合には、後述するステップS2003に示されるように、ICSソフトウェア501は、「1」を記憶し、DC605の使用数が「1」となるプランが以降の処理対象とする。
そして、ICSソフトウェア501は、NW制約プランの個数分、処理をループする(ステップS2002)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、NW制約プランの個数分ループEND(ステップS2009)までの処理を繰り返す。
ここで、ICSソフトウェア501は、処理対象となるプランにおいて使用されるDC605の数が、最小DC使用数を超えないか否かを判定する(ステップS2003)。つまり、ICSソフトウェア501は、処理対象となるプランに含まれるDC605の数が、ステップS2001にて記憶した最小のDC使用数となるか否かを判定する。例えば、ICSソフトウェア501は、DC605の使用数が「1」である場合には、DC605の使用数が「1」となるプランについてのみ、以降の処理対象となる。
そして、ICSソフトウェア501は、最小DC使用数を超えると判定した場合には(ステップS2003否定)、処理対象となるプランについてのループ処理を終了する。
一方、ICSソフトウェア501は、最小DC使用数を超えないと判定した場合には(ステップS2003肯定)、プランのVM料金を合算しDC料金を算出する(ステップS2004)。つまり、ICSソフトウェア501は、VMの割当数に、処理対象となるプランにおいて用いられるDC605におけるVMタイプの料金を掛けた料金をVMタイプごとに合算し、処理対象となるプランにおけるDC605についての料金を算出する。
そして、ICSソフトウェア501は、利用者所在地-DC間の対地リストを作成する(ステップS2005)。つまり、ICSソフトウェア501は、処理対象となるプランにおいて、全てのユーザ所在地とDC605との間についての対地リストを作成する。なお、利用者所在地-DC間の対地リストは、処理対象となるプランに含まれるDC605各々と、利用者の所在地各々との間の区間各々のリストとなる。言い換えると、利用者の所在地とDC605とを接続するためのネットワーク608が用いられる区間各々のリストとなる。ステップS2005の詳細については後述する。
そして、ICSソフトウェア501は、DC605−DC605間の対地リストを作成する(ステップS2006)。つまり、ICSソフトウェア501は、処理対象となるプランに含まれるDC605間各々についての対地リストを作成する。なお、ステップS2006の詳細については後述する。
そして、ICSソフトウェア501は、制約条件の最大価格を超えない、帯域最大となるクラスの組み合わせを選択する(ステップS2007)。つまり、ICSソフトウェア501は、対地リストに含まれる区間各々について、制約条件を満たした上で帯域の平均値が最大となるネットワーク608のクラスの組み合わせを選択する(ステップS2007)。なお、ステップS2007の詳細については後述する。
そして、ICSソフトウェア501は、記録されたプランより選択したプランの帯域が大きければそのプランを記録する(ステップS2008)。つまり、ICSソフトウェア501は、処理対象となったプランについての平均帯域が、プラン各々について今までに算出された値よりも高い場合いは、処理対象となったプランを帯域最大プランとして記録する。なお、ステップS2008の詳細については後述する。
そして、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、NW制約プランの個数分ループENDとなると(ステップS2009)、解があるか否かを判定する(ステップS2010)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について処理をループした結果、上述したステップS2008において記録されたプランがあるか否かを判定する。
ここで、ICSソフトウェア501は、解があると判定した場合には(ステップS2010肯定)、帯域最大プランを出力する(ステップS2011)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプランのうち、平均帯域が最大となるプランをリソース割当として出力する。一方、ICSソフトウェア501は、解がないと判定した場合には(ステップS2010否定)、解なしとして出力する(ステップS2012)。つまり、ICSソフトウェア501は、制約条件を満たすプランが存在しない旨を出力する。
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上記のステップS2005とS2006とを入れ替えて実行しても良い。
[利用者所在地-DC間の対地リストを作成]
図46は、実施例2における利用者所在地-DC間の対地リストを作成する流れの一例を示すフローチャートである。図46に示す一連の処理は、図45のステップS2005に対応する。つまり、以下では、処理対象となるプランについて、利用者の所在地とDC605とを接続するためのネットワーク608が用いられる区間各々のリストを作成する場合について説明する。
図46に示すように、ICSソフトウェア501は、対地リストを初期化する(ステップS2101)。つまり、ICSソフトウェア501は、処理対象となるプランについて対地リストを作成する前に、メモリをクリアする。
そして、ICSソフトウェア501は、プラン内のDCの個数分、処理をループする(ステップS2102)。つまり、ICSソフトウェア501は、処理対象となるプランに含まれるDC605各々について、プラン内のDCの個数分ループEND(ステップS2106)となるまで処理を繰り返すことで、プラン内のユーザ所在地とDC605との間の区間全てをリストアップする。
具体的には、ICSソフトウェア501は、該当DCに対応するDC別NW制約リストの利用者所在地の個数分、処理をループする(ステップS2103)。つまり、ICSソフトウェア501は、処理対象となるDC605について、該当DCに対応するDC別NW制約リストの利用者所在地の個数分ループEND(ステップS2105)となるまで処理を繰り返すことで、処理対象となったDC605と利用者の所在地との間の区間全てをリストアップする。
ICSソフトウェア501は、DC、利用者所在地間を対地リストに追加する(ステップS2104)。つまり、ICSソフトウェア501は、処理対象となったDC605と利用者の所在地との間の区間を対地リストに登録する。
そして、ICSソフトウェア501は、該当DCに対応するDC別NW制約リストの利用者所在地の個数分ループEND(ステップS2105)となり、プラン内のDCの個数分ループEND(ステップS2106)となると、対地リストを出力する。つまり、ICSソフトウェア501は、処理対象となったプランに含まれるDC605全てについて、利用者の全所在地との間の区間を対地リストにリストアップすると、作成した対地リストを出力する(ステップS2107)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[DC−DC間の対地リストを作成]
図47は、実施例2におけるDC−DC間の対地リストを作成する流れの一例を示すフローチャートである。図47に示す一連の処理は、図45のステップS2006に対応する。つまり、以下では、処理対象となるプランに含まれるDC605各々間の箇所各々のリストを作成する場合について説明する。
図47に示すように、ICSソフトウェア501は、プラン別NW制約リストのDC−DC間個数分、処理をループする(ステップS2201)。つまり、ICSソフトウェア501は、プラン別NW制約リストのDC−DC間個数分ループEND(ステップS2203)となるまで、処理を繰り返すことで、処理対象となるプランに含まれるDC605各々全てについて、処理を実行する。
そして、ICSソフトウェア501は、DC605−DC605間を対地リストに追加する(ステップS2202)。つまり、ICSソフトウェア501は、処理対象となるDC605間の区間を対地リストに登録する。なお、対地リストには、図46に示す一連の処理の結果、利用者の全所在地との間の区間が既に登録されている。
そして、ICSソフトウェア501は、プラン別NW制約リストのDC−DC間個数分ループEND(ステップS2203)となると、対地リストを出力する(ステップS2204)。つまり、ICSソフトウェア501は、DC605各々とユーザの所在地全てとの間についての全区間に加え、DC605間の全区間が登録された対地リストを出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[制約条件の最大価格を超えない、帯域最大となるクラスの組み合わせを選択]
図48は、実施例2における制約条件の最大価格を超えない、帯域最大となるクラスの組み合わせを選択する流れの一例を示すフローチャートである。つまり、以下では、対地リストに含まれる全区間についてのネットワーク608の組み合わせのうち、制約条件を満たした上で帯域の平均が最大となる組み合わせを選択する処理について説明する。図48に示す一連の処理は、図45のステップS2007に対応する。
なお、以下では、対地リストにN個の区画が登録されている場合を用いて説明する。つまり、DC605間の区間やDC605とユーザの所在地との間の区間がN個あり、N個の区間各々についてネットワーク608を割り当てることになる場合を用いて説明する。
図48に示すように、ICSソフトウェア501は、対地リスト1のクラス個数分、選択可能なネットワーク608を選択する処理をループし(ステップS2301)、同様に、対地リストNのクラス個数分、選択可能なネットワーク608を選択する処理をループする(ステップS2302)。つまり、ICSソフトウェア501は、(ステップS2301)及び(ステップS2302)により、対地リストに含まれる区間各々についてループを実行する。具体的には、ICSソフトウェア501は、対地リストNのクラス個数分ループEND(ステップS2306)となり、対地リスト1のクラス個数分ループEND(ステップS2307)となるまで処理を繰り返すことで、対地リストに含まれる区間各々について、各区間において選択可能なネットワーク608の組み合わせ全てについて処理を繰り返す。
ここで、ICSソフトウェア501は、処理対象となった区間ごとに選択されたネットワーク608の組み合わせについて、VM分を加えて制約条件の最大価格を超えないかを判定する(ステップS2303)。つまり、ICSソフトウェア501は、選択されたネットワーク608の組み合わせによる料金と、VMの料金とを合計した金額が、制約条件により示される料金の上限を超えていないかを判定する。
そして、ICSソフトウェア501は、VM分を加えて制約条件の最大価格を超えたと判定した場合には(ステップS2303否定)、処理対象となったネットワーク608の組み合わせについて処理を終了する。一方、ICSソフトウェア501は、VM分を加えて制約条件の最大価格を超えないと判定した場合には(ステップS2303肯定)、最大記録より帯域が大きいかを判定する(ステップS2304)。つまり、ICSソフトウェア501は、今までに選択されたネットワーク608の組み合わせについての帯域と比較して、処理対象となるネットワーク608の組み合わせについての帯域が大きい否かを判定する。
ここで、ICSソフトウェア501は、最大記録より帯域が大きいと判定した場合には(ステップS2304肯定)、最大記録にクラスの組み合わせを記録する(ステップS2305)。つまり、ICSソフトウェア501は、処理対象となるネットワーク608の組み合わせを記録する。
そして、ICSソフトウェア501は、対地リストに含まれる区間各々について、各区間において選択可能なネットワーク608の組み合わせ全てについて処理を繰り返すと(ステップS2306、ステップS2307)、記録されたクラスの組み合わせを出力(ステップS2308)。つまり、ICSソフトウェア501は、制約条件により示される料金の上限以下となり、対地リストに含まれる区間全てについての帯域の平均値が最も高くなるネットワーク608の組み合わせを出力する。より詳細には、ICSソフトウェア501は、各区間において適用されるネットワーク608のクラスの組み合わせを出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[記録されたプランより選択したプランの帯域が大きければそのプランを記録]
図49は、実施例2における記録されたプランより選択したプランの帯域が大きければそのプランを記録する流れの一例を示すフローチャートである。つまり、処理対象となるプランについて選択されたネットワーク608の組み合わせについての平均帯域が、今までに処理されたプランについての平均帯域より大きければ、処理対象となるプランを記録する。なお、図49に示す一連の処理は、図45のステップS2008に対応する。
図49に示すように、ICSソフトウェア501は、処理対象となるプランについて、制約条件を超えない解はあるか否かを判定し(ステップS2401)、最大記録より帯域が大きいか否かを判定する(ステップS2402)。つまり、ICSソフトウェア501は、処理対象となるプランについて、制約条件を満たすネットワーク608のクラスの組み合わせが存在するかを判定し、既に処理済みのプランのうち最も平均帯域が高かったプランについての平均帯域よりも平均帯域が高いかを判定する。
ここで、ICSソフトウェア501は、制約条件を超えない解があると判定し(ステップS2401肯定)、最大記録より帯域が大きいと判定した場合には(ステップS2402肯定)、最大記録にプランを記録する(ステップS2403)。つまり、ICSソフトウェア501は、既に処理済みのプランのうち最も平均帯域が高かったプランとして、処理対象となるプランを記録する。
一方、ICSソフトウェア501は、制約条件を超えない解があると判定したり(ステップS2401否定)、最大記録より帯域が大きくないと判定したりした場合には(ステップS2402否定)、処理対象となるプランについての処理を終了する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[遅延最小アルゴリズム]
図50は、実施例2における遅延最小アルゴリズムによる処理の一例を示すフローチャートである。図50は、NW制約プランリストに含まれるプランの中から、制約条件の価格を満たした上で、ネットワークの遅延の平均が最小となるプランを選択する処理を示す。すなわち、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、利用者とデータセンタ605との間の区間と、データセンタ605間の区間とにおけるネットワーク608の組み合わせを算出し、各ネットワーク608の組み合わせにおけるネットワーク608の平均遅延を算出する。また、ICSソフトウェア501は、仮想マシンとネットワークの合計料金をそれぞれ計算する。また、ICSソフトウェア501は、コストが制約条件を超えない組み合わせの中、平均遅延の最も小さいデータセンタ605とネットワーク608との組み合わせを出力する。なお、図50に示す一連の処理は、図41におけるステップS1604に対応する。
図50に示すように、ICSソフトウェア501は、プラン内で最小のDC使用数を記録する(ステップS2501)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプランのうち、DC605の使用数が最も少ないプランのDC605使用数を記録する。
ここで、ICSソフトウェア501は、NW制約プランの個数分、処理をループする(ステップS2502)。つまり、ICSソフトウェア501は、NW制約プランの個数分ループEND(ステップS2509)となるまで処理を繰り返すことで、NW制約プランリストに含まれるプラン各々について処理を実行する。
具体的には、ICSソフトウェア501は、処理対象となるプランにおいて使用されるDC605の数が、最小DC使用数を超えないか否かを判定する(ステップS2503)。ここで、ICSソフトウェア501は、最小DC使用数を超えると判定した場合には(ステップS2503否定)、処理対象となるプランについての処理を終了する。
一方、ICSソフトウェア501は、最小DC使用数を超えないと判定した場合には(ステップS2503肯定)、プランのVM料金を合算しDC料金を算出する(ステップS2504)。つまり、ICSソフトウェア501は、VMの割当数に処理対象となるプランにおけるDC605のVMタイプの料金を掛けた料金を算出し、VMタイプごとに合算することで、プランのDC料金を算出する。
そして、ICSソフトウェア501は、利用者所在地-DC605間の対地リストを作成し(ステップS2505)、DC605−DC605間の対地リストを作成する(ステップS2506)。なお、ステップS2505とS2506は、それぞれ、図45におけるステップS2005とS2006とに対応する。
そして、ICSソフトウェア501は、制約条件の最大価格を超えない、遅延最小となるクラスの組み合わせを選択する(ステップS2507)。つまり、ICSソフトウェア501は、対地リストに含まれる区間各々についてのネットワーク608のクラスの全組み合わせから、制約条件を満たした上で、遅延の平均が最小となる組み合わせを選択する。なお、ステップS2505とS2507の詳細については後述する。
そして、ICSソフトウェア501は、記録されたプランより選択したプランの遅延が小さければそのプランを記録(ステップS2508)。つまり、ICSソフトウェア501は、処理対象となったプランについての遅延の平均値が、今までに処理済みのプランについての遅延のうち最小の値と比較して小さい場合には、遅延が最小となるプランとして処理対象となるプランを記憶する。
そして、ICSソフトウェア501は、NW制約プランに含まれるプラン全てについて処理を実行すると(ステップS2509)、解があるか否かを判定する(ステップS2510)。つまり、ICSソフトウェア501は、条件を満たすプランが存在するか確認する。ここで、ICSソフトウェア501は、解があると判定した場合には(ステップS2510肯定)、遅延が最小となったプランをリソース割当として出力する。(ステップS2511)。一方、ICSソフトウェア501は、解がないと判定した場合には(ステップS2510否定)、解なしとして出力する(ステップS2512)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[制約条件の最大価格を超えない、遅延最小となるクラスの組み合わせを選択]
図51は、実施例2における制約条件の最大価格を超えない、遅延最小となるクラスの組み合わせを選択する流れの一例を示すフローチャートである。つまり、以下では、処理対象となるプランについて、対地リストに含まれる区間各々についてのネットワーク608の全組み合わせから、制約条件を満たした上で遅延の平均が最小となる組み合わせを選択する。なお、図51に示す一連の処理は、図50のステップS2507に対応する。
なお、以下では、対地リストにN個の区画が登録されている場合を用いて説明する。つまり、DC605間の区間やDC605とユーザの所在地との間の区間がN個あり、N個の区間各々についてネットワーク608を割り当てることになる場合を用いて説明する。
図51に示すように、ICSソフトウェア501は、対地リスト1のクラス個数分、処理をループし(ステップS2601)、同様に、対地リストNのクラス個数分、処理をループする(ステップS2602)。つまり、ICSソフトウェア501は、ステップS2601及びステップS2602により、対地リストに含まれる区間各々についてループを実行する。具体的には、ICSソフトウェア501は、対地リストNのクラス個数分ループEND(ステップS2606)となり、対地リスト1のクラス個数分ループEND(ステップS2607)となるまで処理を繰り返すことで、対地リストに含まれる区間各々について、各区間において選択可能なネットワーク608の組み合わせ全てについて処理を繰り返す。
ここで、ICSソフトウェア501は、処理対象となった区間ごとに選択されたネットワーク608の組み合わせについて、VM分を加えて制約条件の最大価格を超えないかを判定する(ステップS2603)。つまり、選択されたネットワーク608の組み合わせによる料金と、VMの料金とを合計した金額が、制約条件により示される料金の上限を超えているか否かを判定する。
そして、ICSソフトウェア501は、VM分を加えて制約条件の最大価格を超えたと判定した場合には(ステップS2603否定)、処理対象となったネットワーク608の組み合わせについて処理を終了する。一方、ICSソフトウェア501は、VM分を加えて制約条件の最大価格を超えないと判定した場合には(ステップS2603肯定)、最小記録より遅延が小さいかを判定する(ステップS2604)。つまり、ICSソフトウェア501は、今までに選択されたネットワーク608の組み合わせについての遅延と比較して、処理対象となるネットワーク608の組み合わせについての遅延が小さいか否かを判定する。
そして、ICSソフトウェア501は、最小記録より遅延が小さいと判定した場合には(ステップS2604肯定)、最小記録にクラスの組み合わせを記録する(ステップS2605)。つまり、ICSソフトウェア501は、処理対象となるネットワーク608の組み合わせを記録する。一方、ICSソフトウェア501は、最小記録より遅延が小さいと判定しなかった場合には(ステップS2604否定)、処理対象となったネットワーク608の組み合わせについて処理を終了する。
そして、ICSソフトウェア501は、対地リストに含まれる区間各々について、各区間において選択可能なネットワーク608の組み合わせ全てについて処理を繰り返すと(ステップS2606、ステップS2607)、記録されたクラスの組み合わせを出力する(ステップS2608)。つまり、ICSソフトウェア501は、処理対象となるプランについて、制約条件により示される料金の上限以下となり、遅延が最小となるネットワーク608の組み合わせを出力する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[記録されたプランより選択したプランの遅延が小さければそのプランを記録開始]
図52は、実施例2における記録されたプランより選択したプランの遅延が小さければそのプランを記録開始する流れの一例を示すフローチャートである。つまり、以下では、NW制約プランリストに含まれるプラン各々について算出される遅延のうち、遅延が最小となるプランを選択する処理について説明する。なお、図52に示す一連の処理は、図50のステップS2508に対応する。
図52に示すように、ICSソフトウェア501は、処理対象となるプランについて、制約条件を超えない解はあるか否かを判定し(ステップS2701)、最小記録より遅延が大小さいか否かを判定する(ステップS2702)。つまり、ICSソフトウェア501は、処理対象となるプランについて、制約条件を満たすネットワーク608のクラスの組み合わせが存在するかを判定し、既に処理済みのプランのうち最も平均帯域が高かったプランについての平均帯域よりも平均帯域が高いかを判定する。
ここで、ICSソフトウェア501は、制約条件を超えない解がないと判定し(ステップS2701肯定)、最小記録より遅延が小さいと判定した場合には(ステップS2702肯定)、最小記録にプランを記録する(ステップS2703)。つまり、ICSソフトウェア501は、既に処理済みのプランのうち最も遅延が小さかったプランとして、処理対象となるプランを記録する。
一方、ICSソフトウェア501は、制約条件を超えない解があると判定したり(ステップS2701否定)、最小記録より遅延が小さくないと判定したりした場合には(ステップS2702否定)、処理対象となるプランについての処理を終了する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[集中アルゴリズム]
図53は、実施例2における集中アルゴリズムによる処理の一例を示すフローチャートである。図53は、NW制約プランリストに含まれるプランのうち、制約条件の価格を満たした上で、DC605の使用率の分散が最大となるプランを選択する処理を示す。言い換えると、特定のDC605に集中することになるプランを選択する場合について説明する。
すなわち、以下に説明するように、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、コストの最も小さいネットワーク608を選択し、各プランにおけるリソース割当後の各データセンタ605の使用率の分散値を算出する。また、ICSソフトウェア501は、仮想マシンとネットワークの合計料金を算出する。そして、ICSソフトウェア501は、制約条件により示される料金の上限以下となり、分散値が最も大きくなるプランをリソース割当として出力する。
図53に示すように、ICSソフトウェア501は、NW制約プランの個数分、処理をループする(ステップS2801)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、NW制約プランの個数分ループEND(ステップS2810)までの処理を繰り返す。
具体的には、ICSソフトウェア501は、VMプランの配分後の分散値を算出する(ステップS2802)。つまり、ICSソフトウェア501は、処理対象となるプランを実行した場合におけるDC605の使用率の分散パラメータを算出する。より詳細な一例をあげて説明すると、ICSソフトウェア501は、各DC605のコアの使用率の分散パラメータを算出する。なお、ステップS2802の詳細については後述する。
そして、ICSソフトウェア501は、分散値が記録値以上となるか否かを判定する(ステップS2803)。つまり、ICSソフトウェア501は、処理対象となるプランについて算出された分散パラメータの値が、今までに処理済みのプランについて算出された分散値の最大値よりも大きいか否かを判定する。
ここで、ICSソフトウェア501は、分散値が記録値以上とならない場合には(ステップS2803否定)、処理対象となるプランについての処理を終了する。一方、ICSソフトウェア501は、分散値が記録値以上となる場合には(ステップS2803肯定)、プランのVM料金を合算しDC料金を算出する(ステップS2804)。つまり、ICSソフトウェア501は、処理対象となるプランについて、VMの割当数に、処理対象となるプランにおけるDC605のVMタイプの料金を掛けて算出し、算出した料金を合算することでプランのDC605についての合計金額を算出する。
そして、ICSソフトウェア501は、利用者所在地-DC605間のNW料金合計を算出し(ステップS2805)、DC605−DC605間のNW料金合計を算出する(ステップS2806)。なお、ステップS2805とS2806とは、それぞれ、図42のステップS1703とS1704とに対応する。
そして、ICSソフトウェア501は、各料金を合算する(ステップS2807)。つまり、ICSソフトウェア501は、VMの料金とNW料金の合計を算出する。
そして、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下であるか否かを判定する(ステップS2808)。つまり、ICSソフトウェア501は、処理対象となったプランの料金が、制約条件により示される料金の上限以下となるか否かを判定する。
ここで、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下となると判定した場合には(ステップS2808肯定)、処理対象となるプランを最集中プランとして記録する(ステップS2809)。一方、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下とならないと判定した場合には(ステップS2808否定)、処理対象となったプランについての処理を終了する。
そして、ICSソフトウェア501は、NW制約プランの個数分ループENDまでの処理を繰り返すと(ステップS2810)、解があるか否かを判定する(ステップS2811)。ここで、ICSソフトウェア501は、解があると判定した場合には(ステップS2811肯定)、記録してあるプランを出力する(ステップS2812)。すなわち、ここで出力されたプランが、リソース割当となる。一方、ICSソフトウェア501は、解がないと判定した場合には(ステップS2811否定)、解なしとして出力する(ステップS2813)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[VMプランの配分後の分散値を算出]
図54は、実施例2におけるVMプランの配分後の分散値の算出の流れの一例を示す図である。図54に示す一連の処理は、図53におけるステップS2802に対応する。
図54に示すように、ICSソフトウェア501は、全DCの個数分、処理をループする(ステップS2901)。つまり、ICSソフトウェア501は、プラン内のDCの個数分ループEND(ステップS2904)となるまで処理を繰り返すことで、処理対象となったプランに含まれるDC605各々について、処理を繰り返す。
具体的には、ICSソフトウェア501は、各DCのコア使用率を取得する(ステップS2902)。つまり、ICSソフトウェア501は、空きリソース情報から、処理対象となるDC605についてのコア使用率と総コア数とを取得する。そして、ICSソフトウェア501は、処理対象となったプランのVM配分後のDCの使用率を算出する(ステップS2903)。つまり、ICSソフトウェア501は、処理対象となったプランを実行した場合に、処理対象となるDC605の使用率を算出する。
そして、ICSソフトウェア501は、プラン内のDCの個数分ループENDとなると(ステップS2904)、すなわち、処理対象となるプランについて、DC605各々について使用率を算出すると、DC605のコア使用率平均を求める(ステップS2905)。つまり、ICSソフトウェア501は、DC605各々について算出した使用率の平均値を算出する。
そして、ICSソフトウェア501は、処理対象となったプランに含まれる全DCの個数分、処理をループする(ステップS2906)。つまり、ICSソフトウェア501は、プラン内のDCの個数分ループEND(ステップS2909)となるまで処理を繰り返すことで、処理対象となったプランに含まれる全DC605各々について処理を繰り返す。
具体的には、ICSソフトウェア501は、各DCの配分後コア使用率の偏差を計算し(ステップS2907)、偏差の2乗を積算する(ステップS2908)。
そして、ICSソフトウェア501は、プラン内のDCの個数分ループENDとなると(ステップS2909)、偏差の2乗の平均値を出力する(ステップS2910)。つまり、ICSソフトウェア501は、処理対象となったプランについての分散値を算出する。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。
[分散アルゴリズム]
図55は、実施例2における分散アルゴリズムによる処理の流れの一例を示すフローチャートである。図55は、NW制約プランリストに含まれるプランのうち、制約条件により示される料金の上限を満たした上で、DC605の使用率の分散が最小となるプランを選択する処理を示す。言い換えると、全体のDCに使用率が分散することになるプランを選択する場合について説明する。
すなわち、以下に説明するように、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、コストの最も小さいネットワーク608の組み合わせを選択する。また、ICSソフトウェア501は、各プランにおける配分後の分散値を算出し、分散値が最も小さくなるプランをリソース割当として出力する。
図55に示すように、ICSソフトウェア501は、NW制約プランの個数分、処理をループする(ステップS3001)。つまり、ICSソフトウェア501は、NW制約プランリストに含まれるプラン各々について、NW制約プランの個数分ループEND(ステップS3010)までの処理を繰り返す。
具体的には、ICSソフトウェア501は、VMプランの配分後の分散値を算出する(ステップS3002)。つまり、ICSソフトウェア501は、処理対象となるプランを実行した場合におけるDC605の使用率の分散パラメータを算出する。より詳細な一例をあげて説明すると、ICSソフトウェア501は、各DC605のCoreの使用率の分散パラメータを算出する。なお、ステップS3002の詳細については後述する。
そして、ICSソフトウェア501は、分散値が記録値以下となるか否かを判定する(ステップS3003)。つまり、ICSソフトウェア501は、処理対象となるプランについて算出された分散パラメータの値が、今までに処理済みのプランについて算出された分散値の最大値よりも小さいか否かを判定する。
ここで、ICSソフトウェア501は、分散値が記録値以下とならない場合には(ステップS3003否定)、処理対象となるプランについての処理を終了する。一方、ICSソフトウェア501は、分散値が記録値以下となる場合には(ステップS3003肯定)、プランのVM料金を合算しDC料金を算出する(ステップS3004)。つまり、ICSソフトウェア501は、処理対象となるプランについて、VMの割当数に、処理対象となるプランにおけるDC605のVMタイプの料金を掛けて算出し、算出した料金を合算することでプランのDC605についての合計金額を算出する。
そして、ICSソフトウェア501は、利用者所在地-DC間のNW料金合計を算出し(ステップS3005)、DC605−DC605間のNW料金合計を算出する(ステップS3006)。なお、ステップS3005とS3006とは、それぞれ、図42のステップS1703とS1704とに対応する。
そして、ICSソフトウェア501は、各料金を合算する(ステップS3007)。つまり、ICSソフトウェア501は、VMの料金とNW料金の合計を算出する。
そして、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下であるか否かを判定する(ステップS3008)。つまり、ICSソフトウェア501は、処理対象となったプランの料金が、制約条件により示される料金の上限以下となるか否かを判定する。
ここで、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下となると判定した場合には(ステップS3008肯定)、処理対象となるプランを最分散プランとして記録する(ステップS3009)。一方、ICSソフトウェア501は、合計額が利用者制約条件の最大価格以下とならないと判定した場合には(ステップS3008否定)、処理対象となったプランについての処理を終了する。
そして、ICSソフトウェア501は、NW制約プランの個数分ループENDまでの処理を繰り返すと(ステップS3010)、解があるか否かを判定する(ステップS3011)。ここで、ICSソフトウェア501は、解があると判定した場合には(ステップS3011肯定)、記録してあるプランを出力する(ステップS3012)。すなわち、ここで出力されたプランが、リソース割当となる。一方、ICSソフトウェア501は、解がないと判定した場合には(ステップS3011否定)、解なしとして出力する(ステップS3013)。なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。