(57)【要約】【課題】安全な分散コンピューティングを行うこと。【解決手段】情報処理装置は、利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶部と、前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理部と、を備える。【選択図】図２
2018093281.tif 000002
【特許請求の範囲】
【請求項１】
利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶部と、
前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記データ処理部は、
前記利用者サーバから前記第２のタスクを取得するタスク取得部と、
前記第２のタスクを暗号化する暗号化部と、
暗号化された前記第２のタスクを複数の前記第１のタスクに分割するタスク分割部と、
複数の前記第１のタスクを、複数の前記受託者サーバにそれぞれ送信するタスク送信部と、
複数の前記受託者サーバによってそれぞれ実行された前記第１のタスクの結果を示す前記第１の実行結果を、複数の前記受託者サーバからそれぞれ取得する実行結果取得部と、
複数の前記受託者サーバからそれぞれ取得した複数の前記第１の実行結果を結合することによって前記第２のタスクの暗号化された前記第２の実行結果を生成する実行結果結合部と、
前記第２のタスクの暗号化された前記第２の実行結果を復号する復号部と、
復号された前記第２の実行結果を前記利用者サーバへ送信する実行結果送信部と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記暗号化部は、前記第２のタスクが暗号化された状態で分割された複数の前記第１のタスクが、それぞれ暗号化された状態のまま演算可能となるような暗号化手法によって暗号化する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記暗号化手法は、完全準同型暗号または制限付き完全準同型暗号に基づく暗号化手法である
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記受託者サーバによって提供されるコンピューティングリソースの受託量を示す情報を含む受託申込情報を取得し、受託申込を受け付ける受託申込受付部と、
前記第２のタスクの前記実行において要求される、前記コンピューティングリソースの希望利用量を示す情報を含む利用申込情報を取得し、利用申込を受け付ける利用申込受付部と、
前記受託申込情報と前記利用申込情報とに基づく前記実行予約情報を生成し、前記記憶部に記憶させるプロビジョニング部と、
を備えることを特徴とする請求項１から請求項４のうちいずれか一項に記載の情報処理装置。
【請求項６】
情報処理装置と、複数の受託者サーバと、少なくとも１つの利用者サーバと、を有するリソース割り当てシステムであって、
前記情報処理装置は、
利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶部と、
前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理部と、
を備え、
前記受託者サーバは、
前記データ処理部から依頼された前記第１のタスクを実行する実行部と、
前記実行部によって実行された前記第１のタスクの前記第１の実行結果を前記データ処理部へ送信する結果送信部と、
を備え、
前記利用者サーバは、
前記第２のタスクを前記データ処理部へ送信するタスク送信部と、
前記第２の実行結果を取得する結果取得部と、
を備える
ことを特徴とするリソース割り当てシステム。
【請求項７】
コンピュータによるリソース割り当て方法であって、
記憶部が、利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶ステップと、
データ処理部が、前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理ステップと、
を有することを特徴とするリソース割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、リソース割り当てシステム、およびリソース割り当て方法に関する。
【背景技術】
【０００２】
従来、ビッグデータの解析は、主に大手企業等が自ら保有するデータセンターに設置されたスーパーコンピュータや多数のサーバ装置等によって構成される情報処理システムによって行われてきた。このような、ビッグデータの解析において、当該情報処理システムの性能を最大限に活かさなければ処理することができないような莫大な計算量は、一般的には、常時発生するものではなく、一時的に発生するものであることが多い。そのため、当該情報処理システムは、多くの時間、稼働していないか、またはコンピューティングリソース（例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）やメモリの使用率等）に余力を残した状態で稼働していることがあり、この場合、システムの導入コストや運用コストの面から非効率的である。
【０００３】
そこで、効率的にシステムを活用するため、例えば、クラウドコンピューティングの技術を用いることにより、単一のデータセンターのコンピューティングリソースに処理を集中させるのではなく、通信ネットワークによって接続された複数のデータセンターのコンピューティングリソースにそれぞれ処理を分散させる分散処理が行われることがある。例えば、特許文献１に記載の分散処理システムは、１つのサービスを構成する複数の処理を分散配置する際に、Ｗｅｂ／ＡＰ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ；ウェブアプリケーション）等の前段処理を、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ；仮想プライベートネットワーク）等のネットワークを介した多数の分散拠点の計算資源に置き、ＤＢ（Ｄａｔａｂａｓｅ；データベース）等の後段処理をデータセンターの計算資源に分散配置する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９３１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の分散処理システムのような従来のシステムによれば、例えば、複数のデータセンターがそれぞれ異なる企業によって保有される設備である場合には、ビッグデータの解析において用いられるデータやプログラム等の情報が、コンピューティングリソースを受託する他の企業（以下、「受託者」と称する）に開示されてしまうことになる。そのため、従来、受託者のコンピューティングリソースを利用してビッグデータの解析を行う企業（以下、「利用者」と称する）は、信用度が高い受託者でなければ、当該解析情報を提供し難いという課題があった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、受託者に解析情報を開示することなく、複数の受託者のコンピューティングリソースを使った安全な分散コンピューティングを行うことができる情報処理装置、リソース割り当てシステム、およびリソース割り当て方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶部と、前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理部と、を備えることを特徴とする情報処理装置である。
【０００８】
（２）また、本発明の一態様としては、前記利用者サーバから前記第２のタスクを取得するタスク取得部と、前記第２のタスクを暗号化する暗号化部と、暗号化された前記第２のタスクを複数の暗号化された前記第１のタスクに分割するタスク分割部と、複数の前記第１のタスクを、複数の前記受託者サーバにそれぞれ送信するタスク送信部と、複数の前記受託者サーバによってそれぞれ実行された前記第１のタスクの結果を示す前記第１の実行結果を、複数の前記受託者サーバからそれぞれ取得する実行結果取得部と、複数の前記受託者サーバからそれぞれ取得した複数の前記第１の実行結果を結合することによって前記第２のタスクの暗号化された前記第２の実行結果を生成する実行結果結合部と、前記第２のタスクの暗号化された前記第２の実行結果を復号する復号部と、復号された前記第２の実行結果を前記利用者サーバへ送信する実行結果送信部と、を備えることを特徴とする（１）に記載の情報処理装置である。
【０００９】
（３）また、本発明の一態様としては、前記暗号化部は、前記第２のタスクが暗号化された状態で分割された複数の前記第１のタスクが、それぞれ暗号化された状態のまま演算可能となるような暗号化手法によって暗号化することを特徴とする（２）に記載の情報処理装置である。
【００１０】
（４）また、本発明の一態様としては、前記暗号化手法は、完全準同型暗号または制限付き完全準同型暗号に基づく暗号化手法であることを特徴とする（３）に記載の情報処理装置である。
【００１１】
（５）また、本発明の一態様としては、前記受託者サーバによって提供されるコンピューティングリソースの受託量を示す情報を含む受託申込情報を取得し、受託申込を受け付ける受託申込受付部と、前記第２のタスクの前記実行において要求される、前記コンピューティングリソースの希望利用量を示す情報を含む利用申込情報を取得し、利用申込を受け付ける利用申込受付部と、前記受託申込情報と前記利用申込情報とに基づく前記実行予約情報を生成し、前記記憶部に記憶させるプロビジョニング部と、を備えることを特徴とする（１）から（４）のうちいずれか一項に記載の情報処理装置である。
【００１２】
（６）また、本発明の一態様としては、情報処理装置と、複数の受託者サーバと、少なくとも１つの利用者サーバと、を有するリソース割り当てシステムであって、前記情報処理装置は、利用者サーバから送信され、暗号化及び分割した第１のタスクを演算させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶部と、前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理部と、を備え、前記受託者サーバは、前記データ処理部から依頼された前記第１のタスクを実行する実行部と、前記実行部によって実行された前記第１のタスクの前記第１の実行結果を前記データ処理部へ送信する結果送信部と、を備え、前記利用者サーバは、前記第２のタスクを前記データ処理部へ送信するタスク送信部と、前記第２の実行結果を取得する結果取得部と、を備えることを特徴とするリソース割り当てシステムである。
【００１３】
（７）また、本発明の一態様としては、コンピュータによるリソース割り当て方法であって、記憶部が、利用者サーバから送信され、暗号化及び分割した第１のタスクを実行させる複数の受託者サーバの実行予約を示す実行予約情報を記憶する記憶ステップと、データ処理部が、前記利用者サーバから第２のタスクを受信し、暗号化及び分割を行い、暗号化及び分割された前記第１のタスクを、前記記憶部の実行予約情報に基づいて、複数の前記受託者サーバに実行を依頼し、複数の前記受託者サーバから第１の実行結果を受信し、復号化及び結合を行い、復号化及び結合された第２の実行結果を前記利用者サーバに送信するデータ処理ステップと、を有することを特徴とするリソース割り当て方法である。
【発明の効果】
【００１４】
本発明によれば、受託者に解析情報を開示することなく、複数の受託者のコンピューティングリソースを使った安全な分散コンピューティングを行うことができる情報処理装置、リソース割り当てシステム、およびリソース割り当て方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るリソース割り当てシステム１の構成の概要を示す概略図である。
【図２】本発明の実施形態に係るリソース割り当てシステム１の機能構成を示すブロック図である。
【図３】本発明の実施形態に係るリソース割り当てシステム１のリソース受託申込画面の一例を示す図である。
【図４】本発明の実施形態に係るリソース割り当てシステム１のリソース利用申込画面の一例を示す図である。
【図５】本発明の実施形態に係るリソース割り当てシステム１のリソース受託登録受付時における情報処理装置１０の動作を示すフローチャートである。
【図６】本発明の実施形態に係るリソース割り当てシステム１のリソース利用登録受付時における情報処理装置１０の動作を示すフローチャートである。
【図７】本発明の実施形態に係るリソース割り当てシステム１のタスク実行時における情報処理装置１０の動作を示すフローチャートである。
【図８】本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境の構成の概要を示す概略図である。
【図９】本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるＣｏ−ｉｎｎｏｖａｔｉｏｎスペースの機能構成を示す概略ブロック図である。
【図１０】本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるＣｏ−ｉｎｎｏｖａｔｉｏｎスペース画面の画面構成の一例を示す図である。
【図１１】本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるアプリケーションボードによるアプリケーションストア画面の一例を示す図である。
【発明を実施するための形態】
【００１６】
［実施形態］
以下、本発明の実施形態に係るリソース割り当てシステムについて図面を参照しながら説明する。
図１は、本発明の実施形態に係るリソース割り当てシステム１の構成の概要を示す概略図である。図示するように、リソース割り当てシステム１は、情報処理装置１０と、ｍ台の受託者サーバ（受託者サーバ２０−１、受託者サーバ２０−２、・・・・、および受託者サーバ２０−ｍ）と、ｍ台の受託申込端末（受託申込端末２１−１、受託申込端末２１−２、・・・・、および受託申込端末２１−ｍ）と、ｎ台の利用者サーバ（利用者サーバ３０−１、利用者サーバ３０−２、・・・・、および利用者サーバ３０−ｎ）と、ｎ台の利用申込端末（利用申込端末３１−１、利用申込端末３１−２、・・・・、および利用申込端末３１−ｎ）と、通信ネットワーク５０と、を含んで構成される。
【００１７】
なお、以下の説明において、受託者サーバ２０−１、受託者サーバ２０−２、・・・・、および受託者サーバ２０−ｍを、区別して説明する必要がない場合には、単に「受託者サーバ２０」と称する。同様に、受託申込端末２１−１、受託申込端末２１−２、・・・・、および受託申込端末２１−ｍと、利用者サーバ３０−１、利用者サーバ３０−２、・・・・、および利用者サーバ３０−ｎと、利用申込端末３１−１、利用申込端末３１−２、・・・・、および利用申込端末３１−ｎとを、それぞれ区別して説明する必要がない場合には、それぞれ単に「受託申込端末２１」、「利用者サーバ３０」、「利用申込端末３１」と称する。
【００１８】
情報処理装置１０は、リソース割り当てシステム１を用いてリソース割り当てサービスを提供するサービス提供者Ａによって管理されるサーバ装置である。情報処理装置１０は、コンピュータ装置、例えば、大型コンピュータ、またはパーソナルコンピュータ等を含んで構成される。
【００１９】
受託者サーバ２０−１、受託者サーバ２０−２、・・・・、および受託者サーバ２０−ｍは、当該受託者サーバ２０が有するコンピューティングリソースを上記のリソース割り当てサービスを介して提供する、受託者Ｂ１、受託者Ｂ２、・・・および受託者Ｂｍによってそれぞれ管理されるサーバ装置である。受託者サーバ２０は、コンピュータ装置、例えば、大型コンピュータ、またはパーソナルコンピュータ等を含んで構成される。
なお、ここでいうコンピューティングリソースとは、例えば、ＣＰＵ等の演算処理装置や、メモリ等の記憶媒体である。
【００２０】
また、受託申込端末２１−１、受託申込端末２１−２、・・・・、および受託申込端末２１−ｍは、受託者Ｂ１、受託者Ｂ２、・・・および受託者Ｂｍによってそれぞれ管理される端末装置である。受託申込端末２１は、コンピュータ装置、例えば、パーソナルコンピュータ、またはタブレット型の小型端末等を含んで構成される。なお、受託者サーバ２０と受託申込端末２１とが別々のコンピュータ装置ではなく、1台のコンピュータ装置によって構成されても構わない。
【００２１】
利用者サーバ３０−１、利用者サーバ３０−２、・・・・、および利用者サーバ３０−ｎは、受託者サーバ２０が有するコンピューティングリソースを上記のリソース割り当てサービスを介して利用する利用者Ｃ１、利用者Ｃ２、・・・および利用者Ｃｎによってそれぞれ管理されるサーバ装置である。利用者サーバ３０は、コンピュータ装置、例えば、大型コンピュータ、またはパーソナルコンピュータ等を含んで構成される。
【００２２】
また、利用申込端末３１−１、利用申込端末３１−２、・・・・、および利用申込端末３１−ｎは、利用者Ｃ１、利用者Ｃ２、・・・および利用者Ｃｎによってそれぞれ管理される端末装置である。利用申込端末３１は、コンピュータ装置、例えば、パーソナルコンピュータ、またはタブレット型の小型端末等を含んで構成される。なお、利用者サーバ３０と利用申込端末３１とが別々のコンピュータ装置ではなく、1台のコンピュータ装置によって構成されても構わない。
【００２３】
なお、以下の説明において、受託者Ｂ１、受託者Ｂ２、・・・および受託者Ｂｍを区別して説明する必要がない場合には、単に「受託者Ｂ」と称する。同様に、利用者Ｃ１、利用者Ｃ２、・・・および利用者Ｃｎを区別して説明する必要がない場合には、それぞれ単に「利用者Ｃ」と称する。
【００２４】
通信ネットワーク５０は、情報処理装置１０と、受託者サーバ２０と、受託申込端末２１と、利用者サーバ３０と、および利用申込端末３１と、を通信接続する。通信ネットワーク５０は、通信網、例えば、インターネット等を含んで構成される。なお、通信ネットワーク５０を介して行われる通信は、有線通信、無線通信、または有線通信と無線通信との組合せによる通信のいずれであってもよい。
【００２５】
受託者Ｂは、受託者サーバ２０が有するコンピューティングリソースのうち、利用者Ｃへ提供可能なコンピューティングリソースの受託量を示す情報を含む受託申込情報を、受託申込端末２１によって入力し、通信ネットワーク５０を介して、情報処理装置１０へ送信する。情報処理装置１０は、受託申込端末２１から取得した受託申込情報に基づいて、リソース割り当てサービスに登録するコンピューティングリソースの受託量を調整して決定する。情報処理装置１０は、決定したコンピューティングリソースの受託量を示す受託登録情報を記憶し、また、当該受託登録情報を受託申込端末２１へ送信する。
なお、ここでいう受託量とは、例えば、ＣＰＵの占有率、およびメモリの容量等である。
【００２６】
利用者Ｃは、利用者サーバ３０に記憶されたタスクを処理するにあたって、受託者サーバ２０が提供するコンピューティングリソースのうち、利用を希望するコンピューティングリソースの利用量を示す情報を含む利用申込情報を、利用申込端末３１によって入力し、通信ネットワーク５０を介して、情報処理装置１０へ送信する。情報処理装置１０は、利用申込端末３１から取得した利用申込情報に基づいて、必要となるコンピューティングリソースの利用量を計算して決定する。情報処理装置１０は、決定したコンピューティングリソースの利用量を示す利用登録情報を記憶する。
【００２７】
情報処理装置１０は、上記において記憶した受託登録情報と利用登録情報とに基づいて、コンピューティングリソースの割り当て、およびスケジューリングを行う。情報処理装置１０は、割り当てたコンピューティングリソースおよびスケジュールを示す実行予約情報を、受託者サーバ２０および利用者サーバ３０へ送信する。
受託者サーバ２０は、取得した実行予約情報を自らの受託者サーバ２０が有するエージェントに登録する。これにより、受託者サーバ２０において、実行予約情報に基づくコンピューティングリソースが、実行予約情報に基づくスケジュールに従って、指定された利用者サーバ３０から委託されるタスクの処理の実行を受け付ける状態となる。
【００２８】
利用者サーバ３０は、実行予約情報に基づくスケジュールに従って、タスクを情報処理装置１０へ送信する。情報処理装置１０は、取得したタスクを、プライバシーを保った状態で計算量を分割してそれぞれ演算することが可能な暗号（例えば、完全準同型暗号、または制限付き完全準同型暗号）によって暗号化する。情報処理装置１０は、暗号化したタスクを、実行予約情報に基づいて、複数の個別タスクに分割し、分割した個別タスクを実行予約情報に基づいて複数の受託者サーバ２０へそれぞれ送信する。
【００２９】
なお、プライバシーを保った状態で計算量を分割してそれぞれ演算することができる技術として、例えば、ＭＩＴ（Ｍａｓｓａｃｈｕｓｅｔｔｓ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｔｅｃｈｎｏｌｏｇｙ；マサチューセッツ工科大学）メディアラボにおいて研究が進められている、制限付き完全準同型暗号を用いた「εｎｉｇｍａ（エニグマ）」（ｈｔｔｐ：／／ｅｎｉｇｍａ．ｍｅｄｉａ．ｍｉｔ．ｅｄｕ／を参照）がある。
【００３０】
個別タスクを取得した複数の受託者サーバ２０は、それぞれ個別タスクを実行し、個別タスクの実行結果データである個別実行結果データを情報処理装置１０へそれぞれ送信する。情報処理装置１０は、全ての個別実行結果データを取得すると、当該全ての個別実行結果データを結合することにより、暗号化された１つの実行結果データを生成する。情報処理装置１０は、暗号化された実行結果データを復号し、復号した実行結果データを利用者サーバ３０へ送信する。
【００３１】
なお、本実施形態においては、タスクの暗号化処理や復号処理、およびタスクの分割処理や結合処理を情報処理装置１０が実行するものとしたが、これに限られない。例えば、これらの処理の一部または全部を、外部のサーバ（図示せず）が実行するような構成であってもよい。
または、例えば、これらの処理を、利用者サーバ３０が実行するような構成であってもよい。この場合、受託者サーバ２０および利用者サーバ３０は、タスク、個別タスク、個別実行結果データ、および実行結果データを、情報処理装置１０を介さずに、直接送受信することができる。
【００３２】
以下、リソース割り当てシステム１が有する各装置の機能構成について図面を参照しながら説明する。
図２は、本発明の実施形態に係るリソース割り当てシステム１の機能構成を示すブロック図である。図示するように、リソース割り当てシステム１は、情報処理装置１０と、受託者サーバ２０と、受託申込端末２１と、利用者サーバ３０と、利用申込端末３１と、を含んで構成される。
【００３３】
なお、図２には、受託者サーバ２０、受託申込端末２１、利用者サーバ３０、および利用申込端末３１を、説明の簡略化のためそれぞれ一つずつしか図示していないが、図1に示したように、それぞれ複数存在してもよい。とくに、受託者サーバ２０は、実際には複数存在しなければタスクの演算処理が分散して行われないため、１つでも問題はないが、複数存在することが好ましい。
【００３４】
（情報処理装置の機能構成）
以下、情報処理装置１０の機能構成について説明する。図２に図示するように、情報処理装置１０は、記憶部１００と、受託申込受付部１０１と、受託量調整部１０２と、利用申込受付部１０３と、必要リソース計算部１０４と、プロビジョニング部１０５と、アロケート部１０６と、データ処理部１１０と、を含んで構成される。また、データ処理部１１０は、タスク取得部１１１と、暗号化部１１２と、タスク分割部１１３と、個別タスク送信部１１４と、個別実行結果取得部１１５と、個別実行結果結合部１１６と、復号部１１７と、実行結果送信部１１８と、を含んで構成される。
【００３５】
記憶部１００は、複数の受託者サーバ２０からそれぞれ受託されるコンピューティングリソースを示す受託登録情報（受託リソース情報）と、受託されたコンピューティングリソースを利用して利用者サーバ３０から送信されるタスクを実行させるための利用登録を示す利用登録情報と、当該タスクが分割されることによって生成された複数の個別タスクをそれぞれ実行させる複数のコンピューティングリソースの実行予約を示す実行予約情報と、を記憶する。  なお、実行予約情報は、利用者サーバ３０から送信され、暗号化及び分割したタスクを実行させる複数の受託者サーバ２０の実行予約を示す情報である。
【００３６】
記憶部１００は、記憶媒体、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ；ハードディスクドライブ）、フラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；イーイーピーロム）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  ｒｅａｄ／ｗｒｉｔｅ  Ｍｅｍｏｒｙ；読み書き可能なメモリ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ；読み出し専用メモリ）、またはこれらの記憶媒体の任意の組み合わせによって構成される。
【００３７】
受託申込受付部１０１は、受託者Ｂが管理する受託者サーバ２０が有するコンピューティングリソースのうち、利用者Ｃへ提供可能なコンピューティングリソースの受託量を示す情報を含む受託申込情報を、受託申込端末２１から通信ネットワーク５０を介して取得する。受託申込受付部１０１は、受託申込情報を取得したことに基づいて受託申込を受け付け、当該受託申込情報を後述する受託量調整部１０２へ出力する。受託申込受付部１０１は、通信ネットワーク５０を介して、受託申込端末２１の後述する送受信部２１３と通信接続するための通信インターフェースである。
【００３８】
受託量調整部１０２は、受託申込端末２１から取得した受託申込情報に基づいて、リソース割り当てサービスに登録するコンピューティングリソースの受託量を調整して決定する。受託量調整部１０２は、決定したコンピューティングリソースの受託量を示す受託登録情報を記憶部１００に記憶させ（すなわち、リソース割り当てサービスに登録させ）、また、当該受託登録情報を、受託申込受付部１０１を介して受託申込端末２１へ送信する。なお、上述したように、ここでいう受託量とは、例えば、ＣＰＵの占有率、およびメモリの容量等である。
【００３９】
なお、リソース割り当てサービスに登録するコンピューティングリソースの受託量を調整は、例えば、複数の受託者Ｂから提供される各コンピューティングリソースのそれぞれの受託量に基づいて、サービス提供者Ａがリソース割り当てサービスを提供するにあたって必要とする受託量となるようにする調整などである。
【００４０】
なお、受託登録情報は、初回の受託登録時に受託者Ｂとサービス提供者Ａとの間で結ばれる契約に基づく固定的な情報、または定期的に更新されるであってもよいし、情報処理装置１０が有するエージェント（図示せず）に登録され、受託者サーバ２０の稼働状況に応じて動的にコンピューティングリソースの受託量が調整される動的な情報であってもよい。
【００４１】
また、受託量調整部１０２は、全ての受託者サーバ２０に関する受託登録情報を記憶部１００に登録させる（すなわち、リソース割り当てサービスに登録させる）と、コンピューティングリソースの種類ごとに、１つの大きなコンピューティングリソースとして機能するように仮想化する。例えば、全ての受託者サーバ２０から提供されるＲＡＭのそれぞれの容量が合算された大きな容量を持つ１つＲＡＭとして機能するように、コンピューティングリソースを仮想化する。
【００４２】
利用申込受付部１０３は、利用者Ｃが管理する利用者サーバ３０に記憶されたタスクを処理するにあたって、受託者サーバ２０が提供するコンピューティングリソースのうち、利用者Ｃが利用を希望するコンピューティングリソースの利用量を示す情報を含む利用申込情報を、通信ネットワーク５０を介して利用申込端末３１から取得する。利用申込受付部１０３は、利用申込情報を取得したことに基づいて利用申込を受け付け、当該利用申込情報を後述する必要リソース計算部１０４へ出力する。利用申込受付部１０３は、通信ネットワーク５０を介して、利用申込端末３１の後述する送受信部３１３と通信接続するための通信インターフェースである。
【００４３】
必要リソース計算部１０４は、利用申込情報に基づいて、タスクの実行において必要となるコンピューティングリソースを示す必要リソースを計算して決定する。必要リソース計算部１０４は、決定したコンピューティングリソースの利用量を示す利用登録情報を記憶部１００に記憶させる（すなわち、リソース割り当てサービスに登録させる）。また、必要リソース計算部１０４は、当該利用登録情報を、後述するプロビジョニング部１０５へ出力する。
【００４４】
プロビジョニング部１０５は、複数の個別タスクをそれぞれ実行させる複数のコンピューティングリソースを必要リソースに基づいて決定し、決定された複数のコンピューティングリソースに基づいて実行予約情報を生成する。プロビジョニング部１０５は、割り当てたコンピューティングリソースおよびスケジュールを示す実行予約情報を、記憶部１００に記憶させる（すなわち、リソース割り当てサービスに登録させる）。また、プロビジョニング部１０５は、当該実行予約情報を、後述するアロケート部１０６を介して受託者サーバ２０へ送信する。また、プロビジョニング部１０５は、割り当てたコンピューティングリソースおよびスケジュールを示す実行予約情報を、通信ネットワーク５０を介して利用者サーバ３０の後述する送受信部３１３へ送信する。
【００４５】
アロケート部１０６は、実行予約情報に基づく複数のコンピューティングリソースをそれぞれ受託する複数の受託者サーバ２０に、それぞれコンピューティングリソースにおける個別タスクの実行予約をさせる（アロケートする）。具体的には、アロケート部１０６は、上述した実行予約情報を、通信ネットワーク５０を介して受託者サーバ２０へ送信し、当該受託者サーバ２０が有する、後述するエージェント２０１に当該実行予約情報を登録させる。
【００４６】
これにより、受託者サーバ２０のエージェント２０１は、実行予約情報に基づくスケジュールに従って、その処理実行予定時刻前に登録された実行予約情報に基づく自らの受託者サーバのコンピューティングリソースを使って仮想サーバ２０５を構築する。さらにエージェント２０１は、仮想サーバ２０５の構築完了と、仮想サーバ２０５の個別タスク取得部２０２のアドレス情報を、情報処理装置１０のアロケート部１０６に通知する。これにより、指定された利用者サーバ３０から委託されるタスクの処理の実行を受け付ける状態になる。
【００４７】
データ処理部１１０は、利用者サーバ３０からタスク（第２のタスク）を受信し、暗号化及び分割を行い、暗号化及び分割されたタスク（第１のタスク）を、記憶部１００の実行予約情報に基づいて、複数の受託者サーバ２０に実行を依頼し、複数の受託者サーバ２０から実行結果（第１の実行結果）を受信し、復号化及び結合を行い、復号化及び結合された実行結果（第２の実行結果）を利用者サーバ３０に送信する。
【００４８】
タスク取得部１１１は、利用者サーバ３０の後述するタスク送信部３０２から、通信ネットワーク５０を介してタスクを取得する。タスク取得部１１１は、取得したタスクを、後述する暗号化部１１２へ出力する。タスク取得部１１１は、通信ネットワーク５０を介して、利用者サーバ３０のタスク送信部３０２と通信接続するための通信インターフェースである。
【００４９】
暗号化部１１２は、タスクが暗号化された状態で分割された複数の個別タスクがそれぞれ暗号化された状態のまま（プライバシーを保った状態で）演算可能となるような暗号化手法（例えば、完全準同型暗号、または制限付き完全準同型暗号に基づく暗号化手法）によって暗号化する。暗号化部１１２は、暗号化したタスクを、後述するタスク分割部１１３へ出力する。
【００５０】
タスク分割部１１３は、暗号化部１１２によって暗号化されたタスクを、記憶部１００の実行予約情報に基づいて、複数の暗号化された個別タスクに分割する。タスク分割部１１３は、分割された個別タスクを、後述する個別タスク送信部１１４へ出力する。
【００５１】
個別タスク送信部１１４は、複数の暗号化された個別タスクを、記憶部１００の実行予約情報に基づいて、上述したアロケート部１０６によって実行予約された複数の受託者サーバ２０に構成された仮想サーバ２０５へ通信ネットワーク５０を介してそれぞれ送信する。個別タスク送信部１１４は、通信ネットワーク５０を介して、受託者サーバ２０の後述する個別タスク取得部２０２と通信接続するための通信インターフェースである。
【００５２】
個別実行結果取得部１１５は、複数の受託者サーバ２０が受託するコンピューティングリソースによってそれぞれ実行された、暗号化された個別タスクの実行結果を示す個別実行結果データを、複数の受託者サーバ２０に構成された複数の仮想サーバ２０５から通信ネットワーク５０を介してそれぞれ取得する。個別実行結果取得部１１５は、個別タスク送信部１１４が個別タスクを送信した全ての受託者サーバ２０に構成された複数の仮想サーバ２０５から個別実行結果データを取得すると、これら全ての個別実行結果データを、後述する個別実行結果結合部１１６へ出力する。個別実行結果取得部１１５は、通信ネットワーク５０を介して、受託者サーバ２０に構成された複数の仮想サーバ２０５の後述する個別実行結果送信部２０４と通信接続するための通信インターフェースである。
【００５３】
個別実行結果結合部１１６は、複数の受託者サーバ２０に構成された複数の仮想サーバ２０５からそれぞれ取得した全ての個別実行結果データを個別実行結果取得部１１５から取得すると、当該全ての個別実行結果データを結合することにより、暗号化された１つの実行結果データを生成する。個別実行結果結合部１１６は、生成した、タスクの暗号化された実行結果データを、後述する復号部１１７へ出力する。
【００５４】
復号部１１７は、個別実行結果結合部１１６からタスクの暗号化された実行結果データを取得すると、当該タスクの暗号化された実行結果データを復号する。復号部１１７は、復号した実行結果データを、後述する実行結果送信部１１８へ出力する。
【００５５】
実行結果送信部１１８は、復号部１１７によって復号された実行結果データを、通信ネットワーク５０を介して、タスク取得部１１１がタスクを受信した利用者サーバ３０の後述する実行結果取得部３０３へ送信する。実行結果送信部１１８は、通信ネットワーク５０を介して、利用者サーバ３０の実行結果取得部３０３と通信接続するための通信インターフェースである。
【００５６】
（受託者サーバの機能構成）
以下、受託者サーバ２０の機能構成について説明する。図２に図示するように、受託者サーバ２０は、エージェント２０１と、実行予約情報に基づいて動的に仮想される仮想サーバ２０５と、その上に設定される個別タスク取得部２０２と、個別タスク実行部２０３と、個別実行結果送信部２０４と、を含んで構成される。
【００５７】
エージェント２０１は、情報処理装置１０のアロケート部１０６から送信された実行予約情報に基づいてコンピューティングリソースにおける個別タスクの実行予約および仮想サーバ２０５の構築を行う。すなわち、エージェント２０１は、実行予約情報に基づくスケジュールに従って、登録された実行予約情報に基づく自らの受託者サーバのコンピューティングリソースを、指定された利用者サーバ３０から委託されるタスクの処理の実行を受け付ける状態にさせる。
【００５８】
個別タスク取得部２０２は、情報処理装置１０の個別タスク送信部１１４から送信された個別タスクを通信ネットワーク５０を介して取得し、後述する個別タスク実行部２０３へ出力する。個別タスク取得部２０２は、通信ネットワーク５０を介して、情報処理装置１０の個別タスク送信部１１４と通信接続するための通信インターフェースである。
【００５９】
個別タスク実行部２０３は、エージェント２０１による実行予約に基づいて、個別タスク取得部２０２から取得した個別タスクを実行する。個別タスク実行部２０３は、個別タスクを実行した結果を示すデータである個別実行結果データを、後述する個別実行結果送信部２０４へ出力する。
【００６０】
個別実行結果送信部２０４は、個別タスク実行部２０３から取得した個別実行結果データを、通信ネットワーク５０を介して情報処理装置１０の個別実行結果取得部１１５へ送信する。個別実行結果送信部２０４は、通信ネットワーク５０を介して、情報処理装置１０の個別実行結果取得部１１５と通信接続するための通信インターフェースである。
【００６１】
（受託申込端末の機能構成）
以下、受託申込端末２１の機能構成について説明する。図２に図示するように、受託申込端末２１は、表示部２１１と、入力部２１２と、送受信部２１３と、を含んで構成される。
【００６２】
表示部２１１は、受託申込端末２１における各種画面、例えば、受託申込画面を表示する出力インターフェースである。表示部２１１は、ディスプレイ、例えば、液晶ディスプレイ、または有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等を含んで構成される。
なお、受託申込画面の画面例については後述する。
【００６３】
入力部２１２は、ユーザからの操作入力に基づく電気信号を生成する入力インターフェースである。入力部２１２は、例えば、キーボード、およびマウス等を含んで構成される。
なお、表示部２１１と入力部２１２は、双方の機能を有する１つの部材、例えば、タッチパネル等によって構成されてもよい。
【００６４】
送受信部２１３は、ユーザの操作に基づいて入力部２１２によって生成された受託申込情報を、通信ネットワーク５０を介して情報処理装置１０の受託申込受付部１０１へ送信する。また、送受信部２１３は、情報処理装置１０の受託量調整部１０２によって生成された受託登録情報を、情報処理装置１０の受託申込受付部１０１から通信ネットワーク５０を介して取得する。送受信部２１３は、通信ネットワーク５０を介して、情報処理装置１０の受託申込受付部１０１と通信接続するための通信インターフェースである。
【００６５】
（利用者サーバの機能構成）
以下、利用者サーバ３０の機能構成について説明する。図２に図示するように、利用者サーバ３０は、タスク記憶部３０１と、タスク送信部３０２と、実行結果取得部３０３と、を含んで構成される。
【００６６】
タスク記憶部３０１は、タスク、例えば、リソース割り当てサービスにより受託者サーバ２０に実行させるタスクを予め記憶する。タスク記憶部３０１は、記憶媒体、例えば、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ、イーイーピーロム（ＥＥＰＲＯＭ）、ＲＡＭ（読み書き可能なメモリ）、ＲＯＭ（読み出し専用メモリ）、又はこれらの記憶媒体の任意の組み合わせによって構成される。
【００６７】
タスク送信部３０２は、タスク記憶部３０１に記憶されたタスクを、通信ネットワーク５０を介して情報処理装置１０のタスク取得部１１１へ送信する。タスク送信部３０２は、通信ネットワーク５０を介して、情報処理装置１０のタスク取得部１１１と通信接続するための通信インターフェースである。
なお、タスク送信部３０２によるタスクの送信は、実行予約情報に基づくスケジュールに従って自動的に行われてもよいし、利用申込端末３１におけるユーザからの操作入力に基づいて行われてもよい。
【００６８】
実行結果取得部３０３は、タスク送信部３０２から送信されたタスクの実行結果を示す、情報処理装置１０の実行結果送信部１１８から送信された実行結果データを、通信ネットワーク５０を介して取得する。実行結果取得部３０３は、通信ネットワーク５０を介して、情報処理装置１０の実行結果送信部１１８と通信接続するための通信インターフェースである。
【００６９】
（利用申込端末の機能構成）
以下、利用申込端末３１の機能構成について説明する。図２に図示するように、利用申込端末３１は、表示部３１１と、入力部３１２と、送受信部３１３と、を含んで構成される。
【００７０】
表示部３１１は、利用申込端末３１における各種画面、例えば、利用申込画面を表示する出力インターフェースである。表示部３１１は、ディスプレイ、例えば、液晶ディスプレイ、または有機ＥＬディスプレイ等を含んで構成される。
なお、利用申込画面の画面例については後述する。
【００７１】
入力部３１２は、ユーザからの操作入力に基づく電気信号を生成する入力インターフェースである。入力部２１２は、例えば、キーボード、およびマウス等を含んで構成される。
なお、表示部３１１と入力部３１２は、双方の機能を有する１つの部材、例えば、タッチパネル等によって構成されてもよい。
【００７２】
送受信部３１３は、ユーザの操作に基づいて入力部３１２によって生成された利用申込情報を、通信ネットワーク５０を介して情報処理装置１０の利用申込受付部１０３へ送信する。また、送受信部３１３は、情報処理装置１０のプロビジョニング部１０５によって生成された実行予約情報を、情報処理装置１０のプロビジョニング部１０５から通信ネットワーク５０を介して取得する。送受信部３１３は、通信ネットワーク５０を介して、情報処理装置１０の利用申込受付部１０３およびプロビジョニング部１０５と通信接続するための通信インターフェースである。
【００７３】
（受託申込画面の画面例）
以下、受託申込端末２１の表示部２１１に表示される受託申込画面の画面例について説明する。
図３は、本発明の実施形態に係るリソース割り当てシステム１の受託申込画面の一例を示す図である。図示するように、受託申込画面Ｓｃｒ１には、「受託者名」、「受託者ＩＤ（任意）」、「ＩＰアドレス」、「受託期間−開始」、「受託期間−終了」、「処理能力−ＣＰＵ」、「処理能力−ＲＡＭ」、「処理能力−ＨＤＤ」、「受託量−ＣＰＵ」、「受託量−ＲＡＭ」、および「受託量−ＨＤＤ」の１１個の入力項目と、「送信」ボタン、および「キャンセル」ボタンの２つのボタンが表示された入力画面である。
【００７４】
「受託者名」は、受託者Ｂの名前が入力される入力項目である。
「受託者ＩＤ（任意）」は、受託者Ｂを一意に識別する識別子が入力される入力項目である。なお、受託者ＩＤの入力は任意であり、受託者Ｂによって入力がなされなかった場合には、情報処理装置１０において自動的に生成される。
「ＩＰアドレス」は、受託者サーバ２０のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを入力される入力項目である。
【００７５】
「受託期間−開始」は、受託者Ｂによる受託者サーバ２０のコンピューティングリソースの提供開始日が入力される入力項目である。
「受託期間−終了」は、受託者Ｂによる受託者サーバ２０のコンピューティングリソースの提供終了日が入力される入力項目である。
【００７６】
「処理能力−ＣＰＵ」は、受託者Ｂによる受託者サーバ２０によって提供されるＣＰＵの処理能力を示すＭＩＰＳ（Ｍｉｌｌｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）値が入力される入力項目である。
「処理能力−ＲＡＭ」は、受託者Ｂによる受託者サーバ２０によって提供されるＲＡＭの処理能力を示す転送レートが入力される入力項目である。
「処理能力−ＨＤＤ」は、受託者Ｂによる受託者サーバ２０によって提供されるＨＤＤの処理能力を示す転送レートが入力される入力項目である。
【００７７】
「受託量−ＣＰＵ」は、受託者Ｂによる受託者サーバ２０によって提供されるＣＰＵの受託量を示すＣＰＵ占有率の値が入力される入力項目である。
「受託量−ＲＡＭ」は、受託者Ｂによる受託者サーバ２０によって提供されるＲＡＭの受託量を示す容量の値が入力される入力項目である。
「受託量−ＨＤＤ」は、受託者Ｂによる受託者サーバ２０によって提供されるＨＤＤの受託量を示す容量の値が入力される入力項目である。
なお、図示するように、「受託量−ＣＰＵ」、「受託量−ＲＡＭ」、および「受託量−ＨＤＤ」には、それぞれ上限の値と下限の値とが入力されるようになっている。すなわち、受託者サーバ２０が最低限提供することを保証する受託量（受託量の固定分）と、受託者サーバ２０の稼働状況に応じて受託者サーバ２０が更に固定分を超えて提供することが可能な最大受託量（受託量の変動分）と、が入力されるようになっている。
なお、これらの入力項目の一部または全部を何らかのルールに基づいて自動的に決定するように構成してもよい。
【００７８】
「送信」ボタンは、上記の各入力項目への入力に基づく受託申込情報を情報処理装置１０へ送信させるためのボタン画像である。
「キャンセル」ボタンは、受託申込情報を情報処理装置１０へ送信せずに、受託申込画面を終了させるためのボタン画像である。
【００７９】
（利用申込画面の画面例）
以下、利用申込端末３１の表示部３１１に表示される利用申込画面の画面例について説明する。
図４は、本発明の実施形態に係るリソース割り当てシステム１の利用申込画面の一例を示す図である。図示するように、利用申込画面Ｓｃｒ２には、「利用者名」、「利用者ＩＤ（任意）」、「希望利用期間−開始」、「希望利用期間−終了」、「希望処理能力−ＣＰＵ」、「希望処理能力−ＲＡＭ」、「希望処理能力−ＨＤＤ」、「希望利用量−ＣＰＵ」、「希望利用量−ＲＡＭ」、および「希望利用量−ＨＤＤ」の１０個の入力項目と、「送信」ボタン、および「キャンセル」ボタンの２つのボタンが表示された入力画面である。
【００８０】
「利用者名」は、利用者Ｃの名前が入力される入力項目である。
「利用者ＩＤ（任意）」は、利用者Ｃを一意に識別する識別子が入力される入力項目である。なお、利用者ＩＤの入力は任意であり、利用者Ｃによって入力がなされなかった場合には、情報処理装置１０において自動的に生成される。
【００８１】
「希望利用期間−開始」は、利用者Ｃによる受託者サーバ２０のコンピューティングリソースの利用希望開始日が入力される入力項目である。
「希望受託期間−終了」は、利用者Ｃによる受託者サーバ２０のコンピューティングリソースの利用希望終了日が入力される入力項目である。
【００８２】
「希望処理能力−ＣＰＵ」は、受託者サーバ２０によって提供されるＣＰＵの、利用者Ｃが希望する処理能力を示すＭＩＰＳ値が入力される入力項目である。
「希望処理能力−ＲＡＭ」は、受託者サーバ２０によって提供されるＲＡＭの、利用者Ｃが希望する処理能力を示す転送レートが入力される入力項目である。
「希望処理能力−ＨＤＤ」は、受託者サーバ２０によって提供されるＨＤＤの、利用者Ｃが希望する処理能力を示す転送レートが入力される入力項目である。
【００８３】
「希望利用量−ＣＰＵ」は、受託者サーバ２０によって提供されるＣＰＵの、利用者Ｃが希望する利用量を示すＣＰＵ占有率の値が入力される入力項目である。
「希望利用量−ＲＡＭ」は、受託者サーバ２０によって提供されるＲＡＭの、利用者Ｃが希望する利用量を示す容量の値が入力される入力項目である。
「希望利用量−ＨＤＤ」は、受託者サーバ２０によって提供されるＨＤＤの、利用者Ｃが希望する利用量を示す容量の値が入力される入力項目である。
なお、これらの入力項目の一部または全部を何らかのルールに基づいて自動的に決定するように構成してもよい。
【００８４】
「送信」ボタンは、上記の各入力項目への入力に基づく利用申込情報を情報処理装置１０へ送信させるためのボタン画像である。
「キャンセル」ボタンは、利用申込情報を情報処理装置１０へ送信せずに、利用申込画面を終了させるためのボタン画像である。
【００８５】
なお、利用者Ｃが利用するコンピューティングリソースを提供する受託者Ｂを限定することができるようにして、この受託申込画面に、受託者Ｂを限定するための情報の入力項目が表示されるようにしてもよい。受託者Ｂを限定するための情報の入力項目とは、例えば、コンピューティングリソースの提供を受けてもよい受託者Ｂの「受託者名」や「受託者ＩＤ」を入力する入力項目、または、コンピューティングリソースの提供を受けたくない受託者Ｂの「受託者名」や「受託者ＩＤ」を入力する入力項目等である。
【００８６】
（受託申込受付時の情報処理装置の動作）
以下、受託申込受付時の情報処理装置１０の動作について説明する。
図５は、本発明の実施形態に係るリソース割り当てシステム１のリソース受託申込受付時における情報処理装置１０の動作を示すフローチャートである。本フローチャートは、受託者Ｂのユーザの操作に基づいて受託申込端末２１の入力部２１２によって生成された受託申込情報が、受託申込端末２１の送受信部２１３から通信ネットワーク５０を介して情報処理装置１０の受託申込受付部１０１へ送信された際に開始する。
【００８７】
（ステップＳ００１）情報処理装置１０の受託申込受付部１０１が、受託申込端末２１から送信された受託申込情報を、通信ネットワーク５０を介して取得した場合には、ステップＳ００２へ進む。そうでない場合は、ステップＳ００１に留まる。なお、受託申込情報には、受託者Ｂが管理する受託者サーバ２０が有するコンピューティングリソースのうち、受託者Ｂが利用者Ｃへ提供可能なコンピューティングリソースの受託量を示す情報が含まれる。
【００８８】
（ステップＳ００２）情報処理装置１０の受託申込受付部１０１は、受託申込情報を取得したことに基づいて受託申込を受け付け、当該受託申込情報を受託量調整部１０２へ出力する。その後、ステップＳ００３へ進む。
【００８９】
（ステップＳ００３）情報処理装置１０の受託量調整部１０２は、受託申込受付部１０１から取得した受託申込情報に基づいて、リソース割り当てサービスに登録するコンピューティングリソースの受託量を調整して決定する。ここでいう調整とは、例えば、情報処理装置１０が、ＣＰＵの受託量については既に十分な受託量を確保しており、ＲＡＭの受託量については十分な受託量を確保できていないような場合に、ＲＡＭの受託量については受託申込情報に基づく受託量にそのまま決定し、ＣＰＵの受託量については受託申込情報に基づく受託量のうちの一部の受託量のみに決定するような調整等である。
受託量調整部１０２は、決定したコンピューティングリソースの受託量を示す受託登録情報を記憶部１００に記憶させ（すなわち、リソース割り当てサービスに登録させ）、また、当該受託登録情報を、受託申込受付部１０１を介して受託申込端末２１へ送信する。
【００９０】
（ステップＳ００４）情報処理装置１０の受託量調整部１０２は、全ての受託者サーバ２０に関する受託登録情報を記憶部１００に登録する（すなわち、リソース割り当てサービスに登録する）と、コンピューティングリソースの種類ごとに、１つの大きなコンピューティングリソースとして機能するように仮想化する。
以上で、本フローチャートの処理が終了する。
【００９１】
（利用申込受付時の情報処理装置の動作）
以下、利用申込受付時の情報処理装置１０の動作について説明する。
図６は、本発明の実施形態に係るリソース割り当てシステム１のリソース利用申込受付時における情報処理装置１０の動作を示すフローチャートである。本フローチャートは、利用者Ｃのユーザの操作に基づいて利用申込端末３１の入力部３１２によって生成された利用申込情報が、利用申込端末３１の送受信部３１３から通信ネットワーク５０を介して情報処理装置１０の利用申込受付部１０３へ送信された際に開始する。
【００９２】
（ステップＳ０１１）情報処理装置１０の利用申込受付部１０３が、利用申込端末３１から送信された利用申込情報を、通信ネットワーク５０を介して取得した場合には、ステップＳ０１２へ進む。そうでない場合は、ステップＳ０１１に留まる。なお、利用申込情報には、利用者Ｃが管理する利用者サーバ３０に記憶されたタスクを処理するにあたって、受託者サーバ２０が提供するコンピューティングリソースのうち、利用者Ｃが利用を希望するコンピューティングリソースの利用量を示す情報が含まれる。
【００９３】
（ステップＳ０１２）情報処理装置１０の利用申込受付部１０３は、利用申込情報を取得したことに基づいて利用申込を受け付け、当該利用申込情報を必要リソース計算部１０４へ出力する。その後、ステップＳ０１３へ進む。
【００９４】
（ステップＳ０１３）情報処理装置１０の必要リソース計算部１０４は、利用申込受付部１０３から取得した利用申込情報に基づいて、タスクの実行において必要となるコンピューティングリソースを示す必要リソースを計算して決定する。必要リソース計算部１０４は、決定したコンピューティングリソースの利用量を示す利用登録情報を記憶部１００に記憶させる（すなわち、リソース割り当てサービスに登録させる）。また、必要リソース計算部１０４は、当該利用登録情報を、後述するプロビジョニング部１０５へ出力する。その後、ステップＳ０１４へ進む。
【００９５】
（ステップＳ０１４）情報処理装置１０のプロビジョニング部１０５は、複数の個別タスクをそれぞれ実行させる複数のコンピューティングリソースを必要リソースに基づいて決定し、決定された複数のコンピューティングリソースに基づいて実行予約情報を生成する。プロビジョニング部１０５は、割り当てたコンピューティングリソースおよびスケジュールを示す実行予約情報を、記憶部１００に記憶させる。また、プロビジョニング部１０５は、実行予約情報に基づいて、複数の個別タスクの実行予定時刻に先立って当該実行予約情報を、アロケート部１０６へ出力する。また、プロビジョニング部１０５は、当該実行予約情報を、通信ネットワーク５０を介して利用者サーバ３０の送受信部３１３へ送信する。その後、ステップＳ０１５へ進む。
【００９６】
（ステップＳ０１５）情報処理装置１０のアロケート部１０６が、実行予約情報に基づく実行予定時刻になったことを検知した場合、ステップＳ０１６へ進む。そうでない場合は、ステップＳ０１５に留まる。
【００９７】
（ステップＳ０１６）情報処理装置１０のアロケート部１０６は、ステップＳ０１４においてプロビジョニング部１０５から取得した実行予約情報に基づく複数のコンピューティングリソースをそれぞれ受託する複数の受託者サーバ２０に、それぞれコンピューティングリソースにおける個別タスクの実行予約をさせる（アロケートする）。具体的には、アロケート部１０６は、上述した実行予約情報を、通信ネットワーク５０を介して受託者サーバ２０へ送信し、当該受託者サーバ２０が有するエージェント２０１に当該実行予約情報を登録させる。これにより、受託者サーバ２０のエージェント２０１は、実行予約情報に基づくスケジュールに従って、登録された実行予約情報に基づく自らの受託者サーバのコンピューティングリソースを、指定された利用者サーバ３０から委託されるタスクの処理の実行を受け付ける状態になる。
以上で、本フローチャートの処理が終了する。
【００９８】
（タスク実行時の情報処理装置の動作）
以下、タスク実行時の情報処理装置１０の動作について説明する。
図７は、本発明の実施形態に係るリソース割り当てシステム１のタスク実行時における情報処理装置１０の動作を示すフローチャートである。本フローチャートは、利用者サーバ３０のタスク記憶部３０１に記憶されているタスクの一つが、タスク送信部３０２から通信ネットワーク５０を介して情報処理装置１０のタスク取得部１１１へ送信された際に開始する。
【００９９】
（ステップＳ０２１）利用申込端末３１のタスク送信部３０２から送信されたタスクが、通信ネットワーク５０を介して、情報処理装置１０のタスク取得部１１１へ入力された場合には、ステップＳ０２２へ進む。そうでない場合は、ステップＳ０２１に留まる。
【０１００】
（ステップＳ０２２）情報処理装置１０のタスク取得部１１１はタスクを取得し、取得したタスクを暗号化部１１２へ出力する。その後、ステップＳ２０３へ進む。
【０１０１】
（ステップＳ０２３）情報処理装置１０の暗号化部１１２は、タスク取得部１１１から取得したタスクを、プライバシーを保った状態で計算量を分割してそれぞれ演算することが可能な暗号（例えば、完全準同型暗号、または制限付き完全準同型暗号）によって暗号化する。暗号化部１１２は、暗号化したタスクを、タスク分割部１１３へ出力する。その後、ステップＳ０２４へ進む。
【０１０２】
（ステップＳ０２４）情報処理装置１０のタスク分割部１１３は、暗号化部１１２から取得した暗号化されたタスクを、記憶部１００の実行予約情報に基づいて、複数の暗号化された個別タスクに分割する。タスク分割部１１３は、分割された個別タスクを、個別タスク送信部１１４へ出力する。その後、ステップＳ０２５へ進む。
【０１０３】
（ステップＳ０２５）情報処理装置１０の個別タスク送信部１１４は、複数の暗号化された個別タスクを、記憶部１００の実行予約情報に基づいて、アロケート部１０６によって実行予約された複数の受託者サーバ２０へ通信ネットワーク５０を介してそれぞれ送信する。その後、ステップＳ０２６へ進む。
【０１０４】
（ステップＳ０２６）複数の受託者サーバ２０が受託するコンピューティングリソースによってそれぞれ実行された、暗号化された個別タスクの実行結果を示す個別実行結果データが、通信ネットワーク５０を介して、情報処理装置１０の個別実行結果取得部１１５に入力された場合には、ステップＳ０２７へ進む。そうでない場合は、ステップＳ０２６に留まる。
【０１０５】
（ステップＳ０２７）情報処理装置１０の個別実行結果取得部１１５は、個別タスク送信部１１４が個別タスクを送信した受託者サーバ２０から個別実行結果データを取得する。その後、ステップＳ０２８へ進む。
【０１０６】
（ステップＳ０２８）情報処理装置１０の個別実行結果取得部１１５は、個別タスク送信部１１４が個別タスクを送信した全ての受託者サーバ２０から、全ての個別実行結果データを取得した場合、これら全ての個別実行結果データを、個別実行結果結合部１１６へ出力し、ステップＳ０２９へ進む。そうでない場合（全ての個別実行結果データを取得していない場合）は、ステップＳ０２６へ戻る。
【０１０７】
（ステップＳ０２９）情報処理装置１０の個別実行結果結合部１１６は、複数の受託者サーバ２０からそれぞれ取得した全ての個別実行結果データを個別実行結果取得部１１５から取得すると、当該全ての個別実行結果データを結合することにより、暗号化された１つの実行結果データを生成する。個別実行結果結合部１１６は、生成した、タスクの暗号化された実行結果データを、復号部１１７へ出力する。その後、ステップＳ０３０へ進む。
【０１０８】
（ステップＳ０３０）情報処理装置１０の復号部１１７は、個別実行結果結合部１１６からタスクの暗号化された実行結果データを取得すると、当該タスクの暗号化された実行結果データを復号する。復号部１１７は、復号した実行結果データを、実行結果送信部１１８へ出力する。その後、ステップＳ０３１へ進む。
【０１０９】
（ステップＳ０３１）情報処理装置１０の実行結果送信部１１８は、復号部１１７によって復号された実行結果データを、通信ネットワーク５０を介して、タスク取得部１１１がタスクを受信した利用者サーバ３０の実行結果取得部３０３へ送信する。
以上で、本フローチャートの処理が終了する。
【０１１０】
（クラウドコンピューティング環境への適用）
本発明の実施形態に係るリソース割り当てシステム１を、下記において説明するようなクラウドコンピューティング環境Ａ１において実現するようにしてもよい。リソース割り当てシステム１は、以下に説明するクラウドコンピューティング環境Ａ１のインテリジェンスノードＡ１１において実現されるものとするが、これに限られるものではなく、以下に説明するクラウドコンピューティング環境Ａ１のソーシャリゼーションノードＡ１０において実現されても構わない。
【０１１１】
以下に、本発明の実施形態に係るリソース割り当てシステム１を実現するクラウドコンピューティング環境の一例について図面を参照しながら説明する。
図８は、本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境の構成の概要を示す概略図である。図示するように、クラウドコンピューティング環境Ａ１は、デバイスノード、スパイナルノード、インテリジェンスノード、およびソーシャリゼーションノードの４階層の階層構造によって構成されるシステムである。
【０１１２】
デバイスノードは、各種センサー、各種デバイス、および各種システムによって構成される。各種センサーとは、例えば、温湿度センサー、圧力センサー、および流量センサー等である。また、各種デバイスとは、例えば、制御装置であるＰＬＣ（プログラマブルロジックコントローラ）、車両内のＣＡＮ−ＢＵＳ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  −  ＢＵＳ：バス型の制御ネットワーク）に接続されたＯＢＤ（Ｏｎ−Ｂｏａｒｄ  Ｄｉａｇｎｏｓｔｉｃｓ：自己故障診断）デバイス、ＫＰＩ（Ｋｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒ：重要業績評価指標）モニター、特定のセンサーの現在値を表示する表示器、ランプ、ブザー、バルブ、およびロボットアーム等である。また、各種システムとは、例えば、ＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ；分散制御システム）、ドローン管制システム、侵入検知システム、入室バッジリーダーが接続されたセキュリティシステム、および照明やドアロックやエレベーターやスプリンクラーなどが接続されたビルディング・オートメーション・システム等である。
【０１１３】
図８に例示するクラウドコンピューティング環境Ａ１においては、デバイスノードの階層には、センサーによって構成されるデバイスノードＡ１３−１およびデバイスノードＡ１３−２と、アクチュエータによって構成されるデバイスノードＡ１４とが含まれる。以下、デバイスノードＡ１３−１とデバイスノードＡ１３−２とデバイスノードＡ１４とを特に区別して説明する必要がない場合には、総称してデバイスノードＡ１３−１４と称する。
【０１１４】
なお、本実施形態に係るクラウドコンピューティング環境Ａ１のデバイスノードＡ１３−１４は、説明を簡略化するため、２つのセンサーと１つのアクチュエータとによって構成されるものとしたが、これに限られない。デバイスノードＡ１３−１４は、１つ以上のセンサー、アクチュエータ、およびシステム等によって任意に構成可能であり、一般的には、１つのスパイナルノードに対して多数のセンサー、アクチュエータ、およびシステム等が収容されている場合が多い。
【０１１５】
デバイスノードＡ１３−１４を構成するセンサー、アクチュエータ、およびシステム等には、データを送信するもの、データを受信して表示するもの、およびデータ受信してアクションを起こすもの等がある。また、当該センサー、アクチュエータ、およびシステム等は、例えば、プラグ・アンド・プレイに対応した装置である。また、当該センサー、アクチュエータ、およびシステム等は、例えば、複数のアプリケーションと同時に通信を行う機能を有する装置である。
【０１１６】
デバイスノードＡ１３−１４には、大きく分けて、スパイナルノードを構成する装置に通信接続する装置と、インテリジェンスノードを構成する装置に通信接続する装置とがある。
スパイナルノードを構成する装置に通信接続するデバイスノードＡ１３−１４は、例えば、リアルタイム性を必要とする装置、データの遅延（データ通信の遅れ）や揺らぎ（データ通信速度のばらつき）等が許されないアプリケーションに使用される装置、および大量のデータを生成するため直接インテリジェンスノードに接続すると通信帯域を逼迫させてしまう恐れがある装置等である。
一方、インテリジェンスノードを構成する装置に通信接続するデバイスノードＡ１３−１４は、例えば、遅延や揺らぎ等に影響されないような用途で使用される装置、および携帯電話網や衛星回線等の無線通信網を経由させなければ収容することが難しい遠隔地に設置される装置および移動される装置等がある。
【０１１７】
デバイスノードＡ１３−１およびデバイスノードＡ１４はスパイナルノードを構成する装置と、また、デバイスノードＡ１３−２はインテリジェンスノードを構成する装置と、イーサネット（登録商標）などのネットワークインターフェース、および複数のルーターやスイッチを介してインターネット経由で接続されている。
デバイスノードＡ１３−１４は、インターネットプロトコル（ＩＰ）によって、スパイナルノードを構成する装置、またはインテリジェンスノードを構成する装置と通信接続する。
【０１１８】
スパイナルノードは、サーバ装置によって構成され、ゲートウェイとして機能する。図８に例示するクラウドコンピューティング環境Ａ１においては、スパイナルノードの階層は、スパイナルノードＡ１２−１と、スパイナルノードＡ１２−２とを含んで構成される。以下、スパイナルノードＡ１２−１とスパイナルノードＡ１２−２とを特に区別して説明する必要がない場合には、総称してスパイナルノードＡ１２と称する。
【０１１９】
スパイナルノードＡ１２を構成するサーバ装置（以下、単にスパイナルノードＡ１２とも称する）は、クラウドコンピューティング環境において、少なくとも１つのデバイスノードＡ１３−１４を収容する（すなわち、論理的に接続、管理、またはデータの入出力を行う）サーバ装置である。なお、スパイナルノードＡ１２−２も、本来、スパイナルノードＡ１２−１と同様に少なくとも１つのデバイスノードＡ１３−１４を収容するものであるが、説明の簡略化のため、図８においては記載を省略する。
【０１２０】
スパイナルノードＡ１２は、一般的には、例えば、ゲートウェイサーバ、フォグコンピュータ、またはエッジコンピュータ等と呼ばれる装置である。スパイナルノードＡ１２は、クラウドコンピューティング環境におけるサーバ装置（本実施形態においては、ソーシャリゼーションノードＡ１０およびインテリジェンスノードＡ１１）と、デバイスノードＡ１３−１４を構成するセンサー、アクチュエータ、およびシステムとの間に設置される。
【０１２１】
スパイナルノードＡ１２は、例えば、インテリジェンスノードＡ１１が通信することができない通信プロトコルによって通信を行うようなデバイスノードＡ１３−１４からデータを受信して、受信したデータをインテリジェンスノードＡ１１が通信可能な通信プロトコルによってインテリジェンスノードＡ１１へデータ送信することにより、データの転送を行う。例えば、スパイナルノードＡ１２は、インターネットプロトコルによる通信を行うことができないアナログセンサー等から送信された信号を、インターネットプロトコル以外の通信プロトコルによって受信し、受信した信号をデジタル変換して正規化した後、インターネットプロトコルによる通信によってインテリジェンスノードＡ１１を構成するサーバ装置（以下、単にインテリジェンスノードＡ１１とも称する）へデータ送信することにより、データ転送を行う。
【０１２２】
また、スパイナルノードＡ１２は、例えば、デバイスノードＡ１３−１４から送信されたデータを受信し、受信したデータに対して、演算、解釈、および判定等の処理を行い、処理結果をインテリジェンスノードＡ１１へ送信する。
【０１２３】
スパイナルノードＡ１２は、例えば、デバイスノードＡ１３−１４からデータを取得し、当該データに対して前処理を行った後、タイムスタンプ（発生時刻を表す記号）を付加してタイムシリーズデータとし、当該データを処理するロジックやアルゴリズム等をインテリジェンスノードＡ１１から取得して、当該ロジックや当該アルゴリズム等に基づいて当該タイムシリーズデータに対する処理（加工や判断等の処理）を実行する。
また、スパイナルノードＡ１２は、例えば、必要に応じて、またはインテリジェンスノードＡ１１からの指示に基づいて、インテリジェンスノードＡ１１に当該タイムシリーズデータを送信する。また、スパイナルノードＡ１２は、当該タイムシリーズデータと当該ロジックや当該アルゴリズム等に基づいて生成されたアクションを示す制御信号を、適切なデバイスノードＡ１３−１４に対して送信する。
【０１２４】
また、スパイナルノードＡ１２は、当該タイムシリーズデータをスパイナルノードＡ１２に設けられたタイムシリーズデータベース（図示せず）に一時保存し、同時にスパイナルノードＡ１２は、インテリジェンスノードＡ１１からの要求に応じて、インテリジェンスノードＡ１１に対して当該タイムシリーズデータを送信する。さらにスパイナルノードＡ１２は、前記タイムシリーズデータベースに一時保存した古いデータから順に非同期的に、ヒストリアン（図示せず）に対してセキュリティを確保された通信経路を経由して送信する。なお、ヒストリアンはインテリジェンスノードＡ１１に直接接続されているため、インテリジェンスノードＡ１１は、ローカル環境にヒストリアンが存在するかのようにヒストリアンを参照・利用することができる。
【０１２５】
なお、スパイナルノードＡ１２が単一のハードウェアによって構成されるような場合には、スパイナルノードＡ１２において故障や異常な動作が発生した場合に備えて、スパイナルノードＡ１２に通信接続するデバイスノードＡ１３−１４は、２つ以上のスパイナルノードＡ１２に対して並行してデータを送信するようにしてもよい。デバイスノードＡ１３−１４がインターネットプロトコルによって通信する装置である場合には、デバイスノードＡ１３−１４が、マルチキャストやブロードキャストなどの技術を利用してデータおよび制御信号等を通信ネットワークへ送出し、複数のスパイナルノードＡ１２が当該データおよび当該制御信号等を並行して受信するような構成により冗長化を行ってもよい。
【０１２６】
ソーシャリゼーションノードＡ１０、およびインテリジェンスノードＡ１１は、クラウドコンピューティング環境を提供するサーバ装置およびネットワーク機器等を含んで構成される。なお、ソーシャリゼーションノードＡ１０とインテリジェンスノードＡ１１とは、別々の装置によって物理的に分けられているような構成であってもよいし、単一の装置の中で論理的に分けてられているような構成であってもよい。
【０１２７】
ソーシャリゼーションノードＡ１０を構成する装置（以下、単にソーシャリゼーションノードＡ１０とも称する）は、アプリケーションを共同開発する複数の企業（以下、テナントとも称する）間、アプリケーションを提供する企業とアプリケーションを利用する企業顧客との間、および企業と個人との間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。
【０１２８】
インテリジェンスノードＡ１１を構成する装置は、企業内のアプリケーションを共同開発する複数の部門やグループ等の組織（以下、サイトとも称する）の間、および複数の従業員（以下、アカウントとも称する）の間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。
【０１２９】
以下、ソーシャリゼーションノードＡ１０、およびインテリジェンスノードＡ１１によって構成される、企業間、企業と個人、および企業内のユーザ間において共同で利用可能な、本発明におけるアプリケーション開発環境およびアプリケーション実行環境等を総称して、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース（共創空間）と称する。
【０１３０】
ソーシャリゼーションノードＡ１０およびインテリジェンスノードＡ１１は、上述したようにサーバ装置において動作し、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースがソーシャリゼーションノードＡ１０およびインテリジェンスノードＡ１１に実装される。インテリジェンスノードＡ１１は、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの主要な機能を有する。一方、ソーシャリゼーションノードＡ１０は、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースが有する機能の中で、企業間、または企業と個人との間でアプリケーションプログラムの共有や売買、およびコミュニケーション等が行われる場合に必要となる機能を有する。
【０１３１】
インテリジェンスノードＡ１１は、インテリジェンスノードＡ１１と通信接続する、スパイナルノードＡ１２の管理、デバイスノードＡ１３−１４の管理を行う。また、ユーザは、ヒューマンマシンインターフェース（ＨＭＩ）（図示せず）を通じてインテリジェンスノードＡ１１にアクセスし、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースを利用する。
【０１３２】
また、インテリジェンスノードＡ１１は、様々な外部のシステムと連携するための多様な外部インターフェースを有しており、外部のＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ；モノのインターネット）およびＩＩｏＴ（Ｉｎｄｕｓｔｒｉａｌ  Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ；産業用ＩｏＴ）クラウドコンピューティング環境、外部の課金システム、および外部のデータベースシステム等との連携することができる。このように、インテリジェンスノードＡ１１が外部の様々なシステムと幅広く連携することができることによって、インテリジェンスノードＡ１１は、様々なＩｏＴクラウドコンピューティング環境において、外部の様々なシステムと幅広く連携したＣｏ−ｉｎｎｏｖａｔｉｏｎスペースおよびＣｏ−ｉｎｎｏｖａｔｉｏｎスペース上のアプリケーションを構築することができる。
【０１３３】
また、インテリジェンスノードＡ１１が様々な外部のシステムと連携するための多様な外部インターフェースを有していることによって、インテリジェンスノードＡ１１は、ＩｏＴおよびＩＩｏＴクラウドコンピューティング環境が提供するインターフェース群を活用することができるため、顧客企業における業務プロセスのサプライチェーン全体、およびライフサイクル全体を対象としたソリューションを開発することができる。
【０１３４】
Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースは、クラウドコンピューティング環境における仮想の空間であり、企業（テナント）単位、または組織（サイト）単位等で区切られた、互いに安全に隔離されたアプリケーション共創のための空間である。
【０１３５】
Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースのアーキテクチャを用いることにより、例えば、ビッグデータを用いたコンサルテーション、各種制御、アセット・マネジメント、リモートセンシング、リモートモニタリング、ＫＡＩＺＥＮ（改善）活動支援等を行うためのアプリケーションの開発、およびＭＥＳ（Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｅｘｅｃｕｔｉｏｎ  Ｓｙｓｔｅｍ；製造実行システム）やＤＣＳ等のシステムの開発を行うことができる。
なお、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースは、クラウドコンピューティング環境において実装される代わりに、ローカル環境のデータセンターのサーバ装置において実装するような構成にすることも可能である。
【０１３６】
なお、上述のＣｏ−ｉｎｎｏｖａｔｉｏｎスペースのアーキテクチャは、インテリジェンスノードＡ１１及びソーシャリゼーションノードＡ１０を構成する１または複数の装置により提供されるものでもよい。また、このＣｏ−ｉｎｎｏｖａｔｉｏｎスペースのアーキテクチャにおける記憶領域は、インテリジェンスノードＡ１１及びソーシャリゼーションノードＡ１０を構成する１または複数の装置の記憶部、あるいは、複数の装置が有する記憶部の記憶領域のうちの一部を複数組み合わせて構成されるものでもよい。
【０１３７】
（Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの機能構成）
以下に、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの機能構成について説明する。
図９は、本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるＣｏ−ｉｎｎｏｖａｔｉｏｎスペースの機能構成を示す概略ブロック図である。図示するように、インテリジェンスノードＡ１１は、アプリケーションボードＡ１１１と、コミュニケーションツールＡ１１２と、ライブラリＡ１１３と、ストレージＡ１１４と、デバイス管理部Ａ１１５と、テナント管理部Ａ１１６と、サイト・アカウント管理部Ａ１１７と、アプリケーションストアＡ１１８と、課金部Ａ１１９と、を含んで構成される。
【０１３８】
アプリケーションボードＡ１１１（プログラム開発部、プログラム開発表示部）は、マルチテナント、マルチサイト、およびマルチアカウントのアプリケーション開発環境およびアプリケーション実行環境をユーザへ提供する。アプリケーションボードＡ１１１は、コンパイラや、ユーザに対して視覚的にアプリケーションプログラムを表示させることができる表示部等の機能を有する。表示部は、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースを示す画像を表示し、当該Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースにおいて、レイアウト情報、結線情報、パラメータ情報、および選択領域情報等に基づいて、視覚的にアプリケーションプログラムを表示する。
【０１３９】
レイアウト情報とは、開発対象であるアプリケーションプログラムの処理の形態を示す情報である。例えば、レイアウト情報には、開発対象であるアプリケーションプログラムが、多入力２出力の処理を行うアプリケーションであること、あるいは多入力多出力の処理を行うアプリケーションであること、あるいは１入力多出力の処理を行うアプリケーションであること等を示す情報が含まれる。
【０１４０】
結線情報とは、開発対象であるアプリケーションプログラムにおける、入力データ項目と、処理内容であるロジックと、処理結果である出力データ項目とをそれぞれ導線で結ぶことによってデータ項目やロジック間の関係性を視覚的に示す図を生成する際に定義される、当該導線に関する情報である。
【０１４１】
パラメータ情報とは、開発対象であるアプリケーションにおいて設定される各種パラメータの設定値を示す情報である。
【０１４２】
選択領域情報とは、開発対象であるアプリケーションプログラムの一連の処理の中で、ユーザによる操作等によって選択（指定）された一部の処理の部分を示す情報である。例えば、アプリケーションボードＡ１１１によって視覚的に表示されたアプリケーションプログラムに対して、ユーザは当該アプリケーションプログラムの一部の領域を、マウス等を操作して囲むことにより、囲まれた領域を示す選択領域情報が生成される。
【０１４３】
テナントやサイトに紐づけられたアカウントを有するユーザは、予め設定された、または管理者によって設定された、アクセス権限および実行権限に基づいて、データ、ロジック、およびアプリケーション等を他のユーザと共有しながら、アプリケーションボードＡ１１１の表示部が表示する画面（以下、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース画面とも言う）を用いて、アプリケーションプログラムの作成、管理、および実行等を行うことができる。
【０１４４】
ユーザは、アプリケーションプログラムを開発するにあたり、アプリケーションボードＡ１１１において、例えば、各種開発パーツ（例えば上述した、入力データのデータ項目、処理内容であるロジック、および処理結果データのデータ項目等が含まれる）の一覧から必要な開発パーツを選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップする。これにより、アプリケーション設計領域には、選択された開発パーツが表示される。そして、ユーザは、アプリケーション設計領域において、例えば、選択された開発パーツ間を導線で結ぶようにドラッグするマウス操作等を行う。これにより、開発対象であるアプリケーションプログラムの処理のフロー（流れ）が定義され、アプリケーションプログラムが生成される。
【０１４５】
また、ユーザは、アプリケーションプログラムを開発するにあたり、アプリケーションボードＡ１１１において、汎用の各種アプリケーション、汎用の各種テンプレート、および汎用の各種ロジック等の一覧の中から、必要なアプリケーション、テンプレート、およびロジック等を選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップする。これにより、ユーザは、選択したアプリケーション、テンプレート、およびロジック等を利用してアプリケーションプログラムを開発することができる。
【０１４６】
なお、当該一覧に登録されているアプリケーション、テンプレートおよびロジック等には、有料のものと、無料のものとがあってもよい。この場合、ユーザが有料のアプリケーション、テンプレートまたはロジック等を利用した場合には、後述する課金部Ａ１１９によって課金処理が行われる。
【０１４７】
アプリケーションボードＡ１１１において用いられた各種情報、例えば、入出力データ、表示部に表示されている内容を示す情報、開発対象であるアプリケーションプログラム、共同開発において複数の開発者間で交わされたコメントの内容を示す情報、および開発のステータスを示す情報等は、予め指定された特定のテナント、あるいは予め指定された特定のサイトに所属するアカウントからのみアクセスができるようにアクセス権限の設定がなされる。
このように、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースは、アクセス権限の管理をしつつ各種情報をユーザ間で共有することができる仕組みであるため、情報漏洩等を防ぎつつ安全にアプリケーションプログラムを共創することができる環境を提供する。
【０１４８】
コミュニケーションツールＡ１１２は、ユーザ間で利用されるチャット機能、ビデオコミュニケーション機能、音声通話機能、画面共有機能、および掲示板やソーシャルネットワークサービス（ＳＮＳ）等のコミュニティ機能等を提供する。例えば、チャット機能は、テキストデータ（例えば、ソースコード等）、画像データ、およびプログラムの実行ファイル等だけでなく、開発対象であるアプリケーションプログラムの一部または全部を、パラメータ値等の設定情報も含めてユーザ間で送受信して共有することができる。
【０１４９】
例えば、ユーザは、マウス等を操作して囲むことによって選択したアプリケーションプログラムの一部を示す領域を、マウス操作等によりドラッグアンドドロップしてチャット画面に貼り付けることによって、他のユーザと共有することができる。また、例えば、リアルタイムに更新されるデータによって作成されるグラフがチャット画面に貼り付けられた場合には、チャット画面に表示されたグラフもリアルタイムに更新され、更に、他のユーザが参照しているＣｏ−ｉｎｎｏｖａｔｉｏｎスペースのチャット画面に表示されたグラフも同様に、リアルタイムに更新される。
【０１５０】
このように、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースによれば、アプリケーション開発環境とコミュニケーションツールとがシームレスに連携するため、容易に、かつ、柔軟にユーザ間でのアプリケーション共創のためのコミュニケーションを図ることができる。
【０１５１】
また、コミュニティは、リアルタイムまたは非リアルタイムに、複数のユーザ間でコミュニケーションを図ることができる機能であり、例えば、掲示板、コメント一覧、およびＳＮＳ等の機能である。なお、各ユーザからのコミュニティへのアクセスは、テナントごとに設定される管理ポリシーによって設定されたアクセス権限に基づく範囲で制限される。また、コミュニティ機能によりユーザによって書き込まれたトピック（話題）に対して、様々な絞り込み条件（例えば、課題、領域、業界、およびキーワード等）での絞り込み検索ができるようにしてもよい。
【０１５２】
このように、ユーザは、コミュニケーションツールＡ１１２によって、同一のテナントやサイト属するアカウントを有するユーザ、または異なるテナントやサイトに属するアカウントを有するユーザとの意見交換等を行うことができる。これにより、複数のユーザによるアプリケーションプログラムの共創が可能になる。
【０１５３】
ライブラリＡ１１３は、アプリケーションボードＡ１１１においてアプリケーションプログラムを開発または実行する際に用いられる、汎用的な、処理ロジック、テンプレート、分析ツール、およびヒストリアン（履歴情報や実績情報が格納されたデータベース）等を提供する。
【０１５４】
例えば、ライブラリＡ１１３は、類似波形検索ツール、回帰分析ツール、重回帰分析ツール、ＭＴ法分析ツール、誤差分散分析ツール、データドリブンモデリングツール、ディープラーニングツール、および相関分析ツール等の様々な分析ツールを記憶している。ユーザは、任意の分析ツールをアプリケーション設計領域にドラッグアンドドロップし、データ入力をすることにより、各種分析をすることができる。
【０１５５】
ストレージＡ１１４は、各種情報（例えば、開発したアプリケーションプログラムや分析結果データ等）を、一般公開される情報と、テナント共用の情報と、サイト共用の情報と、アカウント個人用の情報とに区別して、それぞれ一般公開用の記憶領域、テナント共用の記憶領域、サイト共用の記憶領域、またはアカウント個人用の記憶領域に記憶する。なお、各ユーザが、各種情報をどの記憶領域に保存可能であるかについては、予めテナントの管理者によってユーザごとに設定された権限に基づいて制御されるようにしてもよい。
なお、ストレージＡ１１４は、記憶媒体、例えば、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ、イーイーピーロム（ＥＥＰＲＯＭ）、ＲＡＭ（読み書き可能なメモリ）、ＲＯＭ（読み出し専用メモリ）、またはこれらの記憶媒体の任意の組み合わせによって構成される。
【０１５６】
デバイス管理部Ａ１１５は、インテリジェンスノードＡ１１が収容するデバイスノードＡ１３−１４を構成するセンサー、アクチュエータ、およびシステム等の情報を管理する。例えば、デバイス管理部Ａ１１５は、デバイスノードＡ１３−１４の収容のために用いられる、デバイスノードＡ１３−１４に付与された識別情報と、アカウント、サイト、およびテナントの識別情報とを紐づけた情報等を管理する。
【０１５７】
なお、スパイナルノードＡ１２が収容するデバイスノードＡ１３−１４を構成するセンサー、アクチュエータ、およびシステム等の情報については、インテリジェンスノードＡ１１のデバイス管理部Ａ１１５がスパイナルノードＡ１２を介し当該情報を取得して管理するようにしてもよいし、または、スパイナルノードＡ１２が当該情報管理して、インテリジェンスノードＡ１１のデバイス管理部Ａ１１５が当該情報をスパイナルノードＡ１２から取得するようにしてもよい。
【０１５８】
テナント管理部Ａ１１６は、テナント（企業）に関する各種情報を管理する。例えば、テナント管理部Ａ１１６は、テナントの基礎情報、課金情報、操作権限、および承認権限等の情報に対して、設定、変更、削除等を行う。また、例えば、テナント管理部Ａ１１６は、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの利用、および有料または無料の、アプリケーション、ツール、テンプレート、およびデータ等の利用に伴う契約に関する契約情報をテナントごとに管理する。
【０１５９】
サイト・アカウント管理部Ａ１１７は、サイト（組織）およびアカウント（ユーザ）に関する各種情報を管理する。例えば、サイト・アカウント管理部Ａ１１７は、サイトおよびアカウントの基礎情報、課金情報、操作権限、および承認権限等の情報に対して、設定、変更、削除等を行う。
【０１６０】
アプリケーションストアＡ１１８は、ユーザが、アプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等（以下、単にアプリケーション等と言う）の売買を行うための機能である。例えば、ユーザは、アプリケーションプログラムを開発するにあたり、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース画面において、アプリケーションストアＡ１１８によって販売されているアプリケーション等の一覧の中から、購入したいアプリケーション等を選択する。そして、ユーザは、選択したアプリケーション等をアプリケーション設計領域にマウス操作等によってドラッグアンドドロップする。これにより、ユーザは、選択したアプリケーション等を購入して、アプリケーションプログラムの開発等に利用することができる。
【０１６１】
なお、アプリケーションストアＡ１１８によって販売されるアプリケーション等は、月額課金、年額課金、利用度に応じた課金、またはワンタイムの課金等の、任意の課金方法で課金できるようにしてもよい。また、アプリケーションストアＡ１１８によって販売されているアプリケーション等のうち特定のアプリケーション等については、ユーザが使用開始した日から一定期間（例えば、一か月間）は無料のお試し期間として、課金が発生しないようにしてもよい。
【０１６２】
課金部Ａ１１９は、アプリケーションストアＡ１１８によって販売されているアプリケーション等を購入したユーザに対する課金処理を行う。なお、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの利用に対して課金処理を行うようにしてもよい。なお、課金先は、テナント、サイト、またはアカウントごとに予め登録することができるようにしてもよい。
また、購入されたアプリケーション等が、ユーザによってアプリケーションストアＡ１１８に登録されたアプリケーション等である場合には、当該アプリケーション等を購入したユーザに対して課金を行って徴収した金額の一部を、アプリケーション等を登録したユーザへ還元する（支払う）ことができるようにしてもよい。
【０１６３】
（アプリケーションボードによる表示例）
以下、アプリケーションボードＡ１１１の表示部に表示される画面（Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース画面）の一例について説明する。
【０１６４】
図１０は、本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるＣｏ−ｉｎｎｏｖａｔｉｏｎスペース画面の画面構成の一例を示す図である。図示するように、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース画面は、アプリケーション設計領域（編集エリア）と、グローバルナビ表示領域と、ローカルナビ表示領域と、開発パーツ一覧表示領域との４つの画面領域を含んで構成される。
【０１６５】
ユーザによる操作等に基づいて、開発パーツ表示領域は、表示されている状態から、画面の左方向にスライドして画面外へ移動するようにして非表示の状態へ切り替わる。これにより、アプリケーション設計領域が広がるため、ユーザは、アプリケーションプログラムの編集作業を行いやすくなる。
【０１６６】
また、ユーザによる操作等に基づいて、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペース画面の起動時には非表示とされているシミュレーション領域、およびチャット／コメント表示領域が、表示されている状態に切り替わる。図示するように、シミュレーション領域は、非表示の状態から、画面の右方向からスライドして画面内へ移動するようにして、表示されている状態に切り替わる。また、チャット／コメント領域は、非表示の状態から、画面の下方向からスライドして画面内へ移動するようにして、表示されている状態に切り替わる。
これにより、ユーザは、必要な時だけシミュレーション領域およびチャット／コメント表示領域を表示させることができ、これらの画面領域が必要でない時には非表示にさせることによってアプリケーション設計領域を広く確保できるため、ユーザは、アプリケーションプログラムの編集作業を行いやすくなる。
【０１６７】
アプリケーション設計領域は、開発対象であるアプリケーションプログラムの構造を視覚的に表示する画面領域である。
ユーザは、例えば、開発パーツ一覧表示領域に表示された開発パーツ、例えば、各種分析エレメント、各種入出力データのデータ項目、処理内容であるロジック、各種アプリケーション、各種テンプレート、各種ロジック、各種グラフ、および各種分析ツール等の一覧の中から、必要な開発パーツを選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップすることにより、選択した開発パーツを示す画像をアプリケーション設計領域に表示させることができる。
【０１６８】
また、ユーザは、例えば、アプリケーション設計領域に表示させた２つの開発パーツの間をマウス操作等によりドラッグすることにより、２つの開発パーツを紐づける導線を表示させることができる。このような操作に基づいて、ユーザは、開発対象であるアプリケーションプログラムを視覚的に設計・編集することができる。
【０１６９】
また、ユーザは、例えば、アプリケーション設計領域に視覚的に表示された開発対象であるアプリケーションプログラムに対して、マウス操作等によって一部の領域を囲むことにより、開発対象であるアプリケーションプログラムの一部の領域を選択することができる。そして、ユーザは、例えば、選択したアプリケーションプログラムの一部の領域を、マウス操作等によりドラッグアンドドロップしてチャット画面に貼り付けて、他のユーザと共有することができる。
【０１７０】
また、ユーザは、例えば、グローバルナビ表示領域に表示されるアプリケーションストアに表示されたアプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等の一覧の中から、必要な開発パーツを選択しアプリケーション設計領域へマウス操作によりドラッグアンドドロップし、当該開発パーツをアプリケーション設計領域に表示させることができる。これにより、ユーザは、必要な開発パーツをアプリケーションストアから購入して即座に利用することができる。
【０１７１】
また、ユーザは、例えば、アプリケーション設計領域に視覚的に表示された開発対象であるアプリケーションプログラムの一部または全部の領域を、マウス操作等によって選択し、選択した領域をマウス操作等によりグローバルナビ表示領域に表示されるアプリケーションストアにドラッグアンドドロップすることができる。これにより、選択されたアプリケーションプログラムの一部または全部がアプリケーションストアに登録され、当該アプリケーションプログラムの一部または全部を示す情報（例えば、アイコン画像等を含む）がアプリケーションストアに表示される。このようにして、ユーザは、例えば、開発したアプリケーションプログラムの一部または全部を、アプリケーションストアにおいて、他のユーザに対して販売することができる。
【０１７２】
グローバルナビ表示領域は、テナント（企業）またはサイト（組織）において共通のメニュー画面が表示される画面領域である。グローバルナビ表示領域には、例えば、ログイン／ログアウト、アカウント設定、プロジェクトの切り替え、検索、およびアプリケーションストア等の機能を利用するためのメニューが表示される。
【０１７３】
ローカルナビ表示領域は、アカウント（ユーザ）に応じたメニュー画面が表示される画面領域である。ローカルナビ表示領域には、例えば、開発対象であるアプリケーションプログラムにおける、課題管理およびタスク管理、バージョン管理、およびプロジェクト設定等の機能を利用するためのメニューが表示される。
【０１７４】
開発パーツ一覧表示領域は、アプリケーションプログラムに開発に用いられる開発パーツの一覧画面が表示される画面領域である。開発パーツ一覧表示領域には、例えば、上述した、各種分析エレメント、各種入出力データ項目、汎用の各種アプリケーション、汎用の各種テンプレート、汎用の各種ロジック、および各種分析ツール（例えば、類似波形検索ツール、回帰分析ツール、重回帰分析ツール、ＭＴ法分析ツール、誤差分散分析ツール、データドリブンモデリングツール、ディープラーニングツール、および相関分析ツール等）がカテゴリ別に分類され、一覧表示される。
【０１７５】
シミュレーション領域は、アプリケーション設計領域に表示されたアプリケーションプログラムを模擬的に実行（シミュレーション）するための設定情報や、シミュレーション結果を示す情報等を表示する画面領域である。
【０１７６】
チャット／コメント領域は、ユーザが他のユーザと開発対象であるアプリケーションプログラム等に関して、リアルタイムまたは非リアルタイムにメッセージのやり取りを行うため機能であるチャット画面や、ユーザまたは他のユーザによって過去に記録されたコメントの一覧等を表示する画面領域である。チャット／コメント領域に表示されるメッセージやコメントは、ユーザによるマウス操作等によって選択され、アプリケーション設計領域へドラッグアンドドロップ等の操作がなされることにより、アプリケーション設計領域の任意の位置へ転記される。
【０１７７】
以下、アプリケーションボードＡ１１１の表示部に表示されるアプリケーションストア画面について説明する。
図１１は、本発明の実施形態に係るリソース割り当てシステム１が含まれるクラウドコンピューティング環境におけるアプリケーションボードによるアプリケーションストア画面の一例を示す図である。
アプリケーションストア画面は、グローバルナビ領域に表示されたメニュー内に表示された「アプリケーションストア」の表示領域が、マウス操作等によりクリックされることによって表示される。
【０１７８】
アプリケーションストアでは、アプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等の売買が行われる。
図１１に示す例においては、アプリケーションストアには、購入された本数が多い順にそれぞれ上位２０個（トップ２０）のアプリケーションおよびテンプレートをそれぞれ表示されている。また、図１１に示す例においては、アプリケーションストアの左側の領域には、ユーザが、アプリケーションストアに登録されているアプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等を検索するための画面領域が表示されている。当該画面領域おいて、ユーザは、キーワード検索、登録されているアプリケーション等が対象としている業種によって絞り込みを行う業種別カテゴリ検索、登録されているアプリケーション等によって行われる処理の目的によって絞り込みを行う目的別カテゴリ検索、有料または無料のアプリケーション等に絞り込みを行う絞り込み検索を行うことができる。
【０１７９】
また、ユーザは、上述したように、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースにおいて開発したアプリケーションプログラム、ロジック、およびテンプレート等を、アプリケーションストアに登録し、他のユーザに対して販売をすることができる。
このように、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースは、アプリケーション開発環境とともにアプリケーションストアを有し、当該アプリケーション開発環境と当該アプリケーションストアとが連携して機能するため、ユーザは開発したアプリケーション等を容易に他のユーザに対し販売したり、他のユーザや外部のベンダー等が開発したアプリケーション等を容易に購入したりすることができる。
【０１８０】
本発明の実施形態に係るリソース割り当てシステム１を上述したクラウドコンピューティング環境Ａ１において実現する場合、例えば、リソース割り当てサービスの提供者Ａが上述したＣｏ−ｉｎｎｏｖａｔｉｏｎスペースを管理する。
【０１８１】
そして、複数の受託者Ｂが、Ｃｏ−ｉｎｎｏｖａｔｉｏｎスペースの上述したアプリケーションストアＡ１１８に対して、それぞれ受託申込情報をアップロードする。これにより、各受託者Ｂが提供するコンピューティングリソースの受託登録がなされ、アプリケーションストアＡ１１８には各受託者Ｂが提供するコンピューティングリソースに基づいて仮想化されたコンピューティングリソースを示す情報が表示される。
【０１８２】
一方、受託者Ｃのユーザは、アプリケーションストアＡ１１８に表示された、上記の仮想化されたコンピューティングリソースを示す情報を選択し、アプリケーションストアＡ１１８に対して、利用申込情報をアップロードする。これにより、利用者Ｃが受託者Ｂのコンピューティングリソースの利用するための利用登録がなされ、コンピューティングリソースの割り当て、およびスケジューリングがなされ、実行予約情報が生成される。そして、生成された実行予約情報は、割り当てられた受託者Ｂの受託者サーバ２０のエージェント２０１に登録される。
【０１８３】
このように、本発明の実施形態に係るリソース割り当てシステム１を上述したクラウドコンピューティング環境Ａ１において実現することにより、受託者Ｂおよび利用者Ｃは容易にリソース割り当てサービスを利用することができ、サービス提供者Ａは容易にリソース割り当てサービスを提供することができる。
【０１８４】
また、アプリケーションストアＡ１１８を実現することにより、受託者Ｂは、利用者Ｃへのコンピューティングリソースの提供に対する対価を、利用者Ｃから容易に徴収することができる。一方、利用者Ｃは、利用者Ｂのコンピューティングリソースの利用における利用料を、利用者Ｂへ容易に支払うことができる。
【０１８５】
以上説明したように、本発明の実施形態に係る情報処理装置１０は、複数の受託者サーバ２０からそれぞれ受託されるコンピューティングリソースを示す受託登録情報と、受託されたコンピューティングリソースを利用して利用者サーバから送信されるタスクを実行させるための利用登録を示す利用登録情報と、タスクが分割されることによって生成された複数の個別タスクをそれぞれ実行させる複数のコンピューティングリソースの実行予約を示す実行予約情報と、を記憶する記憶部１００とを備える。
【０１８６】
また、情報処理装置１０は、タスクの実行において必要となるコンピューティングリソースを示す必要リソースを計算する必要リソース計算部１０４を備える。また、情報処理装置１０は、複数の個別タスクをそれぞれ実行させる複数のコンピューティングリソースを必要リソースに基づいて決定し、決定された複数のコンピューティングリソースに基づいて実行予約情報を生成するプロビジョニング部１０５を備える。また、情報処理装置１０は、実行予約情報に基づく複数のコンピューティングリソースをそれぞれ受託する複数の受託者サーバ２０に、それぞれコンピューティングリソースにおける個別タスクの実行予約をさせるアロケート部１０６を備える。
【０１８７】
また、以上説明したように、本発明の実施形態に係る情報処理装置１０は、利用者サーバ３０からタスクを取得するタスク取得部１１１と、タスクを暗号化する暗号化部１１２と、暗号化されたタスクを複数の暗号化された個別タスクに分割するタスク分割部１１３と、複数の暗号化された個別タスクを、アロケート部１０６によって実行予約された複数の受託者サーバ２０にそれぞれ送信する個別タスク送信部１１４と、を備える。
なお、暗号化部１１２による暗号化は、プライバシーを保った状態で計算量を分割してそれぞれ演算することが可能な暗号（例えば、完全準同型暗号、または制限付き完全準同型暗号）によってなされる。
【０１８８】
また、情報処理装置１０は、複数の受託者サーバ２０が受託するコンピューティングリソースによってそれぞれ実行された暗号化された個別タスクの実行結果を示す個別実行結果を、複数の受託者サーバ２０からそれぞれ取得する個別実行結果取得部１１５と、複数の受託者サーバ２０からそれぞれ取得した複数の個別実行結果を結合することによってタスクの暗号化された実行結果を生成する個別実行結果結合部１１６と、タスクの暗号化された実行結果を復号する復号部１１７と、復号された実行結果を利用者サーバ３０へ送信する実行結果送信部１１８と、を備える。
【０１８９】
これにより、本発明の実施形態に係る情報処理装置１０は、受託者に解析情報を開示することなく、複数の受託者のコンピューティングリソースを使った安全な分散コンピューティングを行うことができる情報処理装置、リソース割り当てシステム、およびリソース割り当て方法を提供することができる。
【０１９０】
特許文献１に記載の分散処理システムのような従来のシステムによれば、ビッグデータの解析において用いられるデータやプログラム等の解析情報が受託者Ｂに開示されてしまうため、利用者Ｃは、信用度が高い受託者Ｂでなければ、解析情報を提供し難いという課題があった。一方、本発明の実施形態に係る情報処理装置１０によれば、解析情報が開示されないため、利用者Ｃは、受託者Ｂの信用度に関わらず、受託者Ｂのコンピューティングリソースを利用することができる。
【０１９１】
なお、上述した実施形態における情報処理装置１０の一部または全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【０１９２】
なお、ここでいう「コンピュータシステム」とは、情報処理装置１０に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１９３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０１９４】
また、上述した実施形態における情報処理装置１０一部または全部を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。情報処理装置１０の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１９５】
１・・・リソース割り当てシステム、１０・・・情報処理装置、２０・・・受託者サーバ、２１・・・受託申込端末、３０・・・利用者サーバ、３１・・・利用申込端末、５０・・・通信ネットワーク、１００・・・記憶部、１０１・・・受託申込受付部、１０２・・・受託量調整部、１０３・・・利用申込受付部、１０４・・・必要リソース計算部、１０５・・・プロビジョニング部、１０６・・・アロケート部、１１０・・・データ処理部、１１１・・・タスク取得部、１１２・・・暗号化部、１１３・・・タスク分割部、１１４・・・個別タスク送信部、１１５・・・個別実行結果取得部、１１６・・・個別実行結果結合部、１１７・・・復号部、１１８・・・実行結果送信部、２０１・・・エージェント、２０２・・・個別タスク取得部、２０３・・・個別タスク実行部、２０４・・・個別実行結果送信部、２０５・・・仮想サーバ、２１１・・・表示部、２１２・・・入力部、２１３・・・送受信部、３０１・・・タスク記憶部、３０２・・・タスク送信部、３０３・・・実行結果取得部、３１１・・・表示部、３１２・・・入力部、３１３・・・送受信部
【図１】
2018093281.tif 000003
【図２】
2018093281.tif 000004
【図３】
2018093281.tif 000005
【図４】
2018093281.tif 000006
【図５】
2018093281.tif 000007
【図６】
2018093281.tif 000008
【図７】
2018093281.tif 000009
【図８】
2018093281.tif 000010
【図９】
2018093281.tif 000011
【図１０】
2018093281.tif 000012
【図１１】
2018093281.tif 000013