【課題】コード実行サービスを用いて複数のプログラムコードを実行することにより業務を実現する場合に、実行するコード実行サービスをプログラムコード毎に独立して選択する構成と比較して、業務の処理効率を向上する。
【解決手段】コード関係定義管理テーブルは、複数のコード間の関係度を、複数のコード間の処理関係に基づいて格納している。関係度管理テーブルは、複数のコード間の関係度毎に、コードを実行するクラウドサービスを選択するためのクラウドサービス選択条件を格納している。コード実行環境選択部43は、複数のコード間の関係度をコード関係定義管理テーブルの情報を参照して判定し、判定した関係度と関係度管理テーブルの情報に基づいてクラウドサービス選択条件を特定し、特定したクラウドサービス選択条件に合致するクラウドサービスをそれぞれのコード毎に選択する。
前記第2の格納手段は、コード実行サービスのサービス提供場所の制約条件および提供事業者の制約条件を選択条件として関係度毎に格納する請求項1記載の情報処理装置。
コード実行サービスに関する情報が変更された場合、それぞれのプログラムコードの選択条件に合致する新たなコード実行サービスを選択して、当該プログラムコードを実行するコード実行サービスとして更新する更新手段をさらに備えた請求項1から3のいずれか1項記載の情報処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、クラウドサービスに予めプログラムコード(以下、コードと省略する。)を登録(アップロード)しておき、特定のリクエストやイベントの発生に基づいて登録されていたコードを実行するようなコード実行サービスが実現されている。このようなコード実行サービスを用いる場合、価格条件や性能条件等に基づいてコードを実行するクラウドサービスを選択することになる。
【0005】
しかし、複数のコードを実行することにより1つの業務を実現するような際に、コード毎にそれぞれ単独で実行するクラウドサービスを選択すると、複数のコード間に処理上の関係性があるような場合、実現される業務の処理効率が悪化してしまう可能性がある。
【0006】
例えば、あるコードの出力データが別のコードの入力データとなっているような場合、それぞれのコードが、異なるクラウド事業者により提供されるクラウドサービス上で実行されたり、異なる国において提供されるクラウドサービス上で実行されると異なる事業者間や異なる国間で頻繁にデータ送受信を行う必要があり業務の処理効率が悪化してしまう場合がある。
【0007】
本発明の目的は、コード実行サービスを用いて複数のプログラムコードを実行することにより業務を実現する場合に、実行するコード実行サービスをプログラムコード毎に独立して選択する構成と比較して、業務の処理効率を向上させることが可能な情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【0008】
[情報処理装置]
請求項1に係る本発明は、複数のプログラムコード間の関係度を、複数のプログラムコード間の処理関係に基づいて格納する第1の格納手段と、
複数のプログラムコード間の関係度毎に、プログラムコードを実行するコード実行サービスを選択する選択条件を格納する第2の格納手段と、
複数のプログラムコードを実行するコード実行サービスを複数のコード実行サービスの中からそれぞれ選択する際に、前記第1の格納手段によって格納された情報に基づいて算出された当該複数のプログラムコード間の関係度と前記第2の格納手段に格納された情報に基づいて、コード実行サービスの選択条件を特定し、特定した当該選択条件に合致するコード実行サービスをそれぞれのプログラムコード毎に選択する選択手段とを備えた情報処理装置である。
【0009】
請求項2に係る本発明は、前記第2の格納手段が、コード実行サービスのサービス提供場所の制約条件および提供事業者の制約条件を選択条件として関係度毎に格納する請求項1記載の情報処理装置である。
【0010】
請求項3に係る本発明は、プログラムコードの実行者毎に、プログラムコードを実行する際の価格条件、コード実行サービスのサービス提供場所の条件を格納する第3の格納手段をさらに備え、
前記選択手段は、実行者毎の価格条件およびサービス提供場所の条件を参照して、プログラムコードを実行するコード実行サービスを選択する請求項1又は2記載の情報処理装置である。
【0011】
請求項4に係る本発明は、コード実行サービスに関する情報が変更された場合、それぞれのプログラムコードの選択条件に合致する新たなコード実行サービスを選択して、当該プログラムコードを実行するコード実行サービスとして更新する更新手段をさらに備えた請求項1から3のいずれか1項記載の情報処理装置である。
【0012】
[プログラム]
請求項5に係る本発明は、複数のプログラムコード間の関係度を、複数のプログラムコード間の処理関係に基づいて格納する第1の格納ステップと、
複数のプログラムコード間の関係度毎に、プログラムコードを実行するコード実行サービスを選択する選択条件を格納する第2の格納ステップと、
複数のプログラムコードを実行するコード実行サービスを複数のコード実行サービスの中からそれぞれ選択する際に、前記第1の格納ステップにおいて格納された情報に基づいて算出された当該複数のプログラムコード間の関係度と前記第2の格納ステップにおいて格納された情報に基づいて、コード実行サービスの選択条件を特定し、特定した当該選択条件に合致するコード実行サービスをそれぞれのプログラムコード毎に選択する選択ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【0013】
請求項1に係る本発明によれば、コード実行サービスを用いて複数のプログラムコードを実行することにより業務を実現する場合に、実行するコード実行サービスをプログラムコード毎に独立して選択する構成と比較して、業務の処理効率を向上させることが可能な情報処理装置を提供することができる。
【0014】
請求項2に係る本発明によれば、コード実行サービスを用いて複数のプログラムコードを実行することにより業務を実現する場合に、実行するコード実行サービスをプログラムコード毎に独立して選択する構成と比較して、業務の処理効率を向上させることが可能な情報処理装置を提供することができる。
【0015】
請求項3に係る本発明によれば、プログラムコードの実行者毎の価格条件およびサービス提供場所の条件に合致したコード実行サービスを選択することが可能な情報処理装置を提供することができる。
【0016】
請求項4に係る本発明によれば、コード実行サービスに関する情報が変更された場合でも、プログラムコードを実行するコード実行サービスを更新することが可能な情報処理装置を提供することができる。
【0017】
請求項5に係る本発明によれば、コード実行サービスを用いて複数のプログラムコードを実行することにより業務を実現する場合に、実行するコード実行サービスをプログラムコード毎に独立して選択する構成と比較して、業務の処理効率を向上させることが可能なプログラムを提供することができる。
【発明を実施するための形態】
【0019】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0020】
図1は本発明の一実施形態のクラウドサービス実行システムの構成を示すシステム図である。
【0021】
本実施形態のクラウドサービ実行スシステムは、
図1に示されるように、タスク実行管理装置10と、端末装置21〜23と、クラウドサービスを提供しているサーバ装置31〜33とから構成されている。なお、端末装置21〜23とタスク実行管理装置10との間、およびサーバ装置31〜33とタスク実行管理装置10との間はインターネット等のネットワークにより接続されている。
【0022】
ここで、サーバ装置31、32、33は、それぞれ、クラウドサービス事業者(クラウド事業者)であるA社、B社、C社により運営され、クラウドサービスを提供するサービス提供装置として動作している。
【0023】
端末装置21〜23は、それぞれ、ユーザX、Y、Zにより操作されており、複数のプログラムコード(以下、コードと略す。)を実行することにより実現されるタスク(業務)の実行をタスク実行管理装置10に依頼する。
タスク実行管理装置10は、端末装置21〜23からの依頼に基づいて、依頼を受けたタスクを実現するための複数のコードを実行するクラウドサービスを、サーバ装置31〜33により提供されている複数のクラウドサービスの中から選択する。
【0024】
なお、
図1では、クラウド事業者A社、B社、C社のサーバ装置31〜33がそれぞれ1台であるような構成として示されているが、クラウド事業者A社、B社、C社はそれぞれ1台のサーバ装置を用いてクラウドサービスを提供しているのではなく、それぞれ複数のサーバ装置等の様々なハードウェア構成によりクラウドサービスを提供している。また、各クラウド事業者A社、B社、C社は、1つのクラウドサービスを提供しているのではなく、それぞれ複数のクラウドサービスを提供している。そして、それぞれのクラウドサービスを実現するためのサーバ装置等は、様々な場所に設置されており、異なる都市に設置されていたり異なる国に設置されている場合もある。
【0025】
次に、本実施形態のクラウドサービス実行システムにおけるタスク実行管理装置10のハードウェア構成を
図2に示す。
【0026】
タスク実行管理装置10は、
図2に示されるように、CPU11、メモリ12、ハードディスクドライブ(HDD)等の記憶装置13、ネットワーク30を介してクライアント装置20、Webサーバ装置41〜43等の外部装置との間でデータの送信及び受信を行う通信インタフェース(IF)14、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース(UI)装置15を有する。これらの構成要素は、制御バス16を介して互いに接続されている。
【0027】
CPU11は、メモリ12または記憶装置13に格納された制御プログラムに基づいて所定の処理を実行して、タスク実行管理装置10の動作を制御する。なお、本実施形態では、CPU11は、メモリ12または記憶装置13内に格納された制御プログラムを読み出して実行するものとして説明したが、当該プログラムをCD−ROM等の記憶媒体に格納してCPU11に提供することも可能である。
【0028】
図3は、上記の制御プログラムが実行されることにより実現されるタスク実行管理装置10の機能構成を示すブロック図である。
【0029】
本実施形態のタスク実行管理装置10は、
図3に示されるように、タスク実行指示受信部41と、タスク実行管理部42と、コード実行環境選択部43と、コード実行環境更新部44と、タスク情報管理DB(データベース)51と、クラウドサービス情報管理DB52と、コード関係度管理DB53と、コード管理DB54と、ユーザ条件管理DB55とを備えている。
【0030】
タスク情報管理DB51は、タスク管理テーブル、コード関係度管理テーブル、コード実行環境管理テーブルを格納している。
【0031】
クラウドサービス情報管理DB52は、クラウドサービス情報テーブルを格納している。このクラウドサービス情報テーブルは、複数のクラウドサービス(コード実行サービス)に関する情報を格納している。
【0032】
また、コード関係度管理DB53は、コード関係定義管理テーブルおよび関係度管理テーブルを格納している。このコード関係定義管理テーブルは、複数のコード間の関係度を、複数のコード間の処理関係に基づいて格納している。また、関係度管理テーブルは、複数のコード間の関係度毎に、コードを実行するクラウドサービスを選択するクラウドサービス選択条件を格納している。具体的には、関係度管理テーブルは、コードを実行するクラウドサービスのサービス提供場所の制約条件および提供事業者の制約条件をクラウドサービス選択条件として関係度毎に格納している。
【0033】
そして、コード管理DB54は、コード管理テーブルを格納している。ユーザ条件管理DB55は、ユーザ条件テーブルを格納している。ユーザ条件テーブルは、タスクの実行ユーザ毎に、コードを実行する際の価格条件、クラウドサービスのサービス提供場所の条件を格納している。
【0034】
次に、
図4を参照してクラウドサービス情報管理DB52内のクラウドサービス情報管理テーブルの一例を説明する。
【0035】
図4に示したクラウドサービス情報管理テーブルでは、クラウド事業者A社、B社、C社により提供されているコード実行サービス毎に、クラウドサービスID、それぞれのクラウドサービスを提供しているクラウド事業者、それぞれのクラウドサービスにおいて実行可能なプログラム言語、コードを実行する際の価格、サービス実行サービスのサービス提供場所であるロケーションの情報が格納されている。
【0036】
クラウドサービスIDは、システム内で割り当てられたIDであり、それぞれのクラウドサービスを識別可能な情報となっている。また、上記の価格の情報は、例えば、コードを1回実行するために必要な価格、コードを実行した際の単位時間あたりにかかる価格を示している。
【0037】
例えば、クラウドサービスIDが「CLOUD-001」のクラウドサービスは、クラウド事業者が「A社」であり、実行可能なプログラム言語が「Java(登録商標)」であり、例えば、1回の実行毎の価格が「$2.0」であり、ロケーションが「日本(東京)」であるという情報が登録されている。なお、他のクラウドサービスでは、「Java」以外のプログラム言語として、「JavaScript(登録商標)」や「Python」が使用可能なプログラム言語として登録されているものもある。
【0038】
次に、
図5を参照してコード管理DB54内のコード管理テーブルの一例を説明する。
【0039】
図5に示したコード管理テーブルでは、タスク実行管理装置10内において管理されている実行可能なコードの一覧情報が管理されており、コードID、実行コードの実行内容を表すコード名称、実行コードが記述されているプログラム言語および実行コードの情報が格納されている。
【0040】
例えば、コードIDが「CODE-001」の実行コードは、コード名称が「統計データ解析」で、プログラム言語が「Java」であるという情報が登録されている。
【0041】
次に、
図6を参照してタスク情報管理DB51内のタスク管理テーブルの一例を説明する。
【0042】
図6に示したタスク管理テーブルでは、端末装置21〜23を介して登録されたタスクに関する情報が管理されており、タスクID、実行ユーザ(実行者)、タスク処理内容の情報が格納されている。
【0043】
例えば、タスクIDが「TASK-001」のタスクでは、実行ユーザが「ユーザX」であり、タスク処理内容が「CODE-003の出力ファイルをCODE-002に渡して実行する。」という情報が登録されている。
【0044】
次に、
図7を参照してユーザ条件管理DB55内のユーザ条件管理テーブルの一例を説明する。
【0045】
図7に示したユーザ条件管理テーブルでは、コードをアップロードするクラウドサービスを決定するためにユーザが設定した各種条件が格納されている。具体的には、このユーザ条件管理テーブルでは、ユーザ条件ID、実行ユーザ、価格条件、ロケーション条件が格納されている。
【0046】
例えば、ユーザ条件IDが「CONDITION-001」のユーザ条件は、「ユーザX」により登録されたユーザ条件であり、価格条件として「$1.5以内」、ロケーション条件として「北米」という情報が登録されている。つまり、ユーザXは、コードを実行するクラウドサービスとして、1回の実行費用が$1.5以内であり、サービス提供場所が北米であるクラウドサービスを条件として登録していることになる。
【0047】
次に、
図8を参照してコード関係度管理DB53内のコード関係定義管理テーブルの一例を説明する。
【0048】
図8に示したコード関係定義管理テーブルでは、2つのコード(コード1、コード2)間の関係と、その関係度とが対応付けられて格納されている。
【0049】
例えば、コード関係定義IDが「RELATION-001」というコード関係定義では、「あるコード(コード1)の出力ファイルが別のコード(コード2)の入力ファイルになっている。」というコード関係が定義され、このコード関係定義に合致する2つのコード間の関係度は「大」であるという情報が登録されている。
【0050】
なお、
図8に示したコード関係定義管理テーブルでは、説明を簡単にするために2つのコード間の関係度が設定されている場合を用いて説明しているが、3つ以上のコード間の関係度を同様な方法により定義することも可能である。
【0051】
次に、
図9を参照してコード関係度管理DB53内の関係度管理テーブルの一例を説明する。
【0052】
図9に示した関係度管理テーブルでは、2つのコード間の関係度と、この関係度に対応したクラウドサービス選択条件とが対応付けられて格納されている。
【0053】
例えば、関係度が「大」の場合、クラウドサービス選択条件として、「クラウド事業者が同じ」、「ロケーションが同じ都市」であるという条件が設定されている。
【0054】
なお、タスク情報管理DB51内のコード関係度管理テーブルとコード実行環境管理テーブルの具体例については後述する。
【0055】
図3のブロック図に戻ってタスク実行管理装置10の他の構成を説明する。
【0056】
タスク実行指示受信部41は、端末装置21〜23からのタスク実行指示を受信する。
【0057】
タスク実行管理部42は、タスク実行指示受信部41により受信されたタスク実行指示に基づいて、実行指示されたタスクをタスク情報管理DB51のタスク管理テーブルに登録したり、実行指示されたタスクを実現するための複数のコードを、サーバ装置31〜33のいずれかに送信して実行するような処理を行う。
【0058】
コード実行環境選択部43は、ある1つのタスクを実現するために必要な複数のコードを実行するクラウドサービスを複数のクラウドサービスの中からそれぞれ選択する際に、その複数のコード間の関係度をコード関係度管理DB53に格納されたコード関係定義管理テーブルの情報に基づいて算出し、算出された関係度と関係度管理テーブルの情報に基づいてクラウドサービス選択条件を特定し、特定したクラウドサービス選択条件に合致するクラウドサービスをそれぞれのコード毎に選択する。
【0059】
さらに、コード実行環境選択部43は、ユーザ条件管理テーブルに格納されたコードの実行ユーザ毎の価格条件およびサービス提供場所の条件を参照して、コードを実行するクラウドサービスを選択する。
【0060】
また、コード実行環境更新部44は、クラウドサービス情報管理DB52内のクラウドサービス情報管理テーブルに格納されたクラウドサービスに関する情報が変更された場合、それぞれのコードのクラウドサービス選択条件に合致する新たなクラウドサービスを選択して、そのコードを実行するクラウドサービスとして更新する。
【0061】
そして、タスク実行管理部42は、タスク実行指示受信部41により受信されたタスクを実行する場合には、タスク情報管理DB51内のコード実行環境管理テーブルに登録されているコード実行環境において指定されたクラウドサービスに対して、コード情報を送信してコードの実行を指示してタスクを実現する。
【0062】
なお、クラウドサービスを提供しているサーバ装置31〜33は、それぞれコード実行部61と、コード格納部62とを備えている。サーバ装置31〜33は、タスク実行管理装置10から送信されてきたコードをコード格納部62に格納し、コード実行部61は、予め設定されたイベントの発生等に基づいてコード格納部62に格納されたコードを実行する。
【0063】
次に、本実施形態のタスク実行管理装置10の動作について図面を参照して説明する。
【0064】
図10は、本実施形態のタスク実行管理装置10の動作を説明するためのフローチャートである。
【0065】
以下の説明では、
図6のタスク管理テーブルに示されたタスクIDが「TASK-001」のタスクを新規登録する際の動作を参照して説明する。
【0066】
まず、コード実行環境選択部43は、
図7に示したユーザ条件管理テーブルから、新規登録を指示されたタスクの実行ユーザに対応する価格条件とロケーション条件を取得する(ステップS101)。ここでは、タスクIDが「TASK-001」のタスクの実行ユーザは「ユーザX」であるため、価格条件として「$1.5以内」、ロケーション条件として「北米」という情報が取得される。
【0067】
そして、コード実行環境選択部43は、
図6に示したタスク管理テーブルから、新規登録を指示されたタスクのコードの一覧を取得する(ステップS102)。ここでは、コード実行環境選択部43は、コードIDが「CODE-002」のコードとコードIDが「CODE-003」のコードを一覧情報として取得する。
【0068】
すると、コード実行環境選択部43は、
図8に示したコード関係定義管理テーブルから、取得した2つのコード(CODE-002、CODE-003)の関係度を取得する(ステップS103)。
【0069】
ここでは、一方のコード(CODE-003)の出力ファイルが他方のコード(CODE-002)の入力ファイルとなっているので、コード関係定義IDがRELATION-001のコード関係定義に合致する。そのため、コード実行環境選択部43は、2つのコードの関係度として「大」という情報を取得する。
【0070】
そして、コード実行環境選択部43は、
図11に示すように、取得した2つのコードの関係度をタスク情報管理DB51のコード関係度管理テーブルに登録する。
図11を参照すると、タスクID「TASK-001」のタスクでは、2つのコード(CODE-002、CODE-003)の関係度が「大」であるという情報が登録されているのが分かる。
【0071】
次に、コード実行環境選択部43は、
図9に示した関係度管理テーブルから、取得した関係度に対応するクラウドサービス選択条件を取得する(ステップS104)。
【0072】
ここでは、2つのコードの関係度が「大」であるため、コード実行環境選択部43は、クラウドサービス選択条件として、「クラウド事業者が同じ」、「ロケーションが同じ都市」であるという条件を取得する。
【0073】
最後に、コード実行環境選択部43は、
図4に示したクラウドサービス情報管理テーブルを参照して、それぞれのコードを実行するコード実行環境を選択する(ステップS105)。
【0074】
具体的には、コード実行環境選択部43は、ステップS101において取得した価格条件、ロケーション条件、それぞれのコードのプログラム言語、ステップS104において取得されたクラウドサービス条件に合致するクラウドサービスをそれぞれのコードのコード実行環境として選択する。
【0075】
上記で説明した具体例では、コードIDがCODE-002、CODE-003のコードは、プログラム言語がそれぞれ「JavaScript」、「Python」であり、ユーザXの価格条件が「$1.5以内」、ロケーション条件が「北米」であり、2つのコードの関係度に基づくクラウドサービス選択条件が「クラウド事業者が同じ」、「ロケーションが同じ都市」である。
【0076】
そのため、コード実行環境選択部43は、コードIDがCODE-002のコードのコード実行環境として、クラウドサービスIDがCLOUD-11のクラウドサービスを選択する。また、コード実行環境選択部43は、コードIDがCODE-003のコードのコード実行環境として、クラウドサービスIDがCLOUD-09のクラウドサービスを選択する。
【0077】
なお、1つのコードに対して全ての条件に合致するクラウドサービスが複数存在する場合には、コード実行環境選択部43は、価格が最も低いクラウドサービスを選択するようにしても良い。
【0078】
最後に、コード実行環境選択部43は、選択したコード実行環境で上記以外の指定された条件が満たされるか否かを判定する(ステップS106)。
【0079】
例えば、コード実行環境選択部43は、2つのコードを組み合わせて実行した場合の処理時間が制限時間以内に収まっていることのような条件が指定されている場合には、一時的にコードを選択したコード実行環境に配置して動作させたうえで指定された条件が満たされるか否かを判定する。
【0080】
そして、指定された条件が満たされる場合(ステップS106においてyes)、コード実行環境選択部43は、選択したコード実行環境を
図12に示したコード実行環境管理テーブルに登録する(ステップS107)。なお、同一のコードであっても、異なるタスクの実現に使用される場合には、別のクラウドサービスがコード実行環境として選択される場合もある。
【0081】
なお、指定された条件が満たされない場合(ステップS106においてno)、コード実行環境選択部43は、エラー処理を行って条件に合致するクラウドサービスが存在旨をユーザに通知する等の処理を行う(ステップS108)。
【0082】
このように本実施形態のタスク実行管理装置10では、1つのタスクを実現するために実行される2つのコードを実行するクラウドサービスを選択する際に、単にそれぞれのコードの条件に合致するクラウドサービスが別々に選択されるのではなく、2つのコード間の関係度に対応して登録されたクラウドサービス選択条件に基づいて、それぞれのコードを実行するクラウドサービスが選択される。
【0083】
次に、
図13のフローチャートを参照して、クラウドサービス情報管理テーブルの内容が変更された場合のコード実行環境更新部44の動作を説明する。
【0084】
例えば、
図14に示すようにクラウドサービス情報管理テーブルが変更された場合を用いて説明する。
【0085】
この
図14に示したクラウドサービス情報管理テーブルでは、クラウドサービス事業者であるD社によるクラウドサービス(CLOUD-013、CLOUD-014)が追加されている。
【0086】
このようなクラウドサービス情報管理テーブルが更新された場合(ステップS201においてyes)、コード実行環境更新部44は、タスク毎にそれぞれのコードで新たなコード実行環境が選択可能か否かを確認する(ステップS202)。
【0087】
そして、コード実行環境更新部44は、選択可能なコード実行環境が存在し(ステップS203においてyes)、指定された条件が選択可能なコード実行環境により満たされる場合(ステップS204においてyes)、その選択可能なコード実行環境によりコード実行環境管理テーブルを更新する(ステップS205)。
【0088】
例えば、
図14に示されたようにクラウドサービス情報管理テーブルが変更された場合、コード実行環境更新部44は、タスクIDがTASK-001のタスクについてのコード(CODE-002、CODE-003)の実行環境を、変更後のクラウドサービス情報管理テーブルを参照して検索する。
【0089】
すると、CODE-002のコードについては、プログラム言語が「JavaScript」であり、ユーザXのロケーション条件「北米」、価格条件「$1.5以内」に該当するCLOUD-014のクラウドサービスが新たコードな実行環境の候補となる。
【0090】
しかし、CODE-002とCODE-003との関係度が「大」であるため、コード実行環境更新部44は、この関係度に基づくクラウドサービス選択条件が満たされるか否かを確認する。すると、関係度が「大」に対応するクラウドサービス選択条件は「クラウド事業者が同じ」、「ロケーションが同じ都市」であるため、CODE-002の実行環境をCLOUD-011からCLOUD-014に変更すると、「ロケーションが同じ都市」という条件が満たされるが、CODE-003のクラウド事業者は「C社」でありCLOUD-014のクラウド事業者は「D社」であるため「クラウド事業者が同じ」という条件が満たされなくなってしまう。
【0091】
そのため、コード実行環境更新部44は、このタスク(TASK-001)におけるCODE-002の実行環境をCLOUD-011からCLOUD-014に変更することはできないと判定する。
【0092】
また、例えば、
図14に示されたようにクラウドサービス情報管理テーブルが変更された場合、コード実行環境更新部44は、タスクIDがTASK-003のタスクについてのコード(CODE-001、CODE-003)の実行環境を、変更後のクラウドサービス情報管理テーブルを参照して検索する。
【0093】
すると、CODE-001のコードについては、プログラム言語が「Java」であり、ユーザZのロケーション条件「指定なし」、価格条件「$1以内」に該当するCLOUD-013のクラウドサービスが新たコードな実行環境の候補となる。
【0094】
そして、CODE-001とCODE-003との関係度は「小」であるため、コード実行環境更新部44は、この関係度に基づくクラウドサービス選択条件が満たされるか否かを確認する。すると、関係度が「小」に対応するクラウドサービス選択条件は「クラウド事業者:指定なし」、「ロケーション:指定なし」であるため、CODE-001の実行環境をCLOUD-002からCLOUD-013に変更しても問題ない。
【0095】
そのため、コード実行環境更新部44は、このタスク(TASK-003)におけるCODE-001の実行環境をCLOUD-002からCLOUD-013に変更できると判定する。
【0096】
そして、コード実行環境更新部44は、他の指定された条件も満たされる場合、
図15に示すように、このタスク(TASK-003)におけるCODE-001の実行環境をCLOUD-002からCLOUD-013に更新する。
【0097】
このようにしてクラウドサービス情報管理テーブルが変更された場合でも、各タスクのそれぞれのコードのコード実行環境が動的に更新される。