(57)【特許請求の範囲】
【請求項１】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するステップと、
取得された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、
前記サービス・コンシューマがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップと
を含む、方法。
【請求項２】
前記複数のサービス・プロバイダのいずれかの前記資源情報に変更があるたびに前記評価テーブルを更新するステップをさらに含み、
前記取得するステップでは、更新された前記評価テーブルを取得する、請求項１の方法。
【請求項３】
前記抽出するステップでは、前記複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、当該一のサービス・プロバイダが利用不能であることを示す資源情報が反映された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、当該一のサービス・プロバイダを除いて当該複数のサービス・プロバイダの中から前記サービス・レベルを満たすサービス・プロバイダを抽出する、請求項２の方法。
【請求項４】
前記抽出するステップでは、取得された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、サービス・プロバイダが提供するサービスの品質に影響を与え得る当該サービス・プロバイダの状態を表す情報の項目を含む当該メソッドの前記関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から抽出する、請求項１ないし請求項３のいずれかの方法。
【請求項５】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得するステップと、
前記資源情報を前記複数のサービス・プロバイダについて共通の形式で表した評価テーブルを、取得された最新の前記資源情報に基づいて作成または更新するステップと、
前記評価テーブルが更新されるたびに、更新された当該評価テーブルを取得するステップと、
更新された前記評価テーブルを取得したことに応じて、当該評価テーブルを参照することにより、前記サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目であってサービス・プロバイダが提供するサービスの品質に影響を与え得る当該サービス・プロバイダの状態を表す情報の項目を含む当該メソッドの関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、
前記サービス・コンシューマがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップとを含み、
前記抽出するステップでは、前記複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、当該一のサービス・プロバイダが利用不能であることを示す資源情報が反映された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、当該一のサービス・プロバイダを除いて当該複数のサービス・プロバイダの中から前記サービス・レベルを満たすサービス・プロバイダを抽出する、方法。
【請求項６】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
エンド・ユーザからのリクエストを受け付けるステップと、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを参照することにより、当該サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている当該資源情報の項目である関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすものとして、前記複数のサービス・プロバイダの中から当該サービス・コンシューマがメソッドを呼び出す前に予め抽出されたサービス・プロバイダのうち、当該エンド・ユーザから受け付けた前記リクエストに基づいて当該サービス・コンシューマが呼び出すメソッドについて抽出されたサービス・プロバイダを選択するステップと、
前記サービス・コンシューマが呼び出すメソッドを当該メソッドについて選択されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップと
を含む、方法。
【請求項７】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマと、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを提供するサービス・ディレクトリとを備え、
前記サービス・コンシューマが、
前記サービス・ディレクトリから前記評価テーブルを取得するテーブル取得部と、
前記テーブル取得部が取得した前記評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、
自装置がメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部と
を備える、コンピュータ・システム。
【請求項８】
予め定めた期間ごとに前記複数のサービス・プロバイダのそれぞれから前記資源情報を取得する資源情報取得部と、
前記資源情報取得部が取得した最新の前記資源情報に基づいて前記評価テーブルを作成または更新する作成部と、
前記作成部が作成または更新した前記評価テーブルを前記サービス・コンシューマに通知する通知部と
を前記サービス・ディレクトリが備える、請求項７のコンピュータ・システム。
【請求項９】
前記テーブル取得部が新たな前記評価テーブルを取得したことに応じて前記抽出部が前記抽出する処理を行う、請求項８のコンピュータ・システム。
【請求項１０】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータであって、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって自装置がサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、
前記テーブル取得部が取得した前記評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、
自装置がメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部と
を備える、コンピュータ。
【請求項１１】
予め定めた期間ごとに前記複数のサービス・プロバイダのそれぞれから取得された最新の前記資源情報に基づいて作成または更新された前記評価テーブルを前記テーブル取得部が取得し、
前記テーブル取得部が新たな前記評価テーブルを取得したことに応じて前記抽出部が前記抽出する処理を行う、請求項１０のコンピュータ。
【請求項１２】
サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータが当該サービス・プロバイダにメソッドを送信するように機能させるプログラムであって、
前記コンピュータを、
サービス・プロバイダが提供するサービスおよび／または当該サービス・プロバイダの品質または状態を表す情報であって前記コンピュータがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、
前記テーブル取得部が取得した前記評価テーブルを参照することにより、前記コンピュータが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して当該コンピュータが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該コンピュータがメソッドを呼び出す前に予め抽出する抽出部と、
前記コンピュータがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部
として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラムに関する。
【背景技術】
【０００２】
相互運用可能な複数の互換性のないクラウドサービスを透過的に提供する連邦型クラウドサービス環境が知られている（例えば、特許文献１参照）。また、プライマリクラウドで提供したサービスレベルの実績値又は更新されたプリファレンス情報に応じて、サービスレベルアグリーメントを動的に決定することにより、セカンダリクラウドも含めてサービスを選択して提供するプライマリクラウドサーバ、サービスを提供する方法及びコンピュータ・プログラムが知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１２９１１７号公報
【特許文献２】特開２０１１−１１８４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
様々なサービス・プロバイダが、インターネットなどのネットワークを介して、ソフトウェアやデータなどをサービスの形で提供している。サービス・コンシューマは、サービス・プロバイダが提供するインフラストラクチャを使って、自己が提供するサービス用のアプリケーションを構築する。
【０００５】
１つのサービス・プロバイダのみに依存してアプリケーションを構築することはサービス・コンシューマにとってリスクが大きいため、複数のサービス・プロバイダを使用してリスクを分散する形態が注目を浴びている。そうした形態では、アプリケーションを構築して稼働した後でも、サービス・コンシューマは随時最適なサービス・プロバイダを選択して使用していくことが望ましい。
【０００６】
本発明の目的は、複数のサービス・プロバイダを使用可能なサービス・コンシューマが、アプリケーションの実行時に呼び出すそれぞれのメソッドについて、要求するサービス・レベルを満たすサービス・プロバイダを動的に選択できるようにすることにある。
【課題を解決するための手段】
【０００７】
かかる目的のもと、本発明の第１の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するステップと、取得された評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、サービス・コンシューマがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含む、方法を提供する。
本発明の第２の態様は、複数のサービス・プロバイダのいずれかの資源情報に変更があるたびに評価テーブルを更新するステップをさらに含み、取得するステップでは、更新された評価テーブルを取得する、第１の態様の方法を提供する。
本発明の第３の態様は、抽出するステップでは、複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、一のサービス・プロバイダが利用不能であることを示す資源情報が反映された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、一のサービス・プロバイダを除いて複数のサービス・プロバイダの中からサービス・レベルを満たすサービス・プロバイダを抽出する、第２の態様の方法を提供する。
本発明の第４の態様は、抽出するステップでは、取得された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、サービス・プロバイダが提供するサービスの品質に影響を与え得るサービス・プロバイダの状態を表す情報の項目を含むメソッドの関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から抽出する、第１の態様ないし第３の態様のいずれかの方法を提供する。
本発明の第５の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得するステップと、資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを、取得された最新の資源情報に基づいて作成または更新するステップと、評価テーブルが更新されるたびに、更新された評価テーブルを取得するステップと、更新された評価テーブルを取得したことに応じて、評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目であってサービス・プロバイダが提供するサービスの品質に影響を与え得るサービス・プロバイダの状態を表す情報の項目を含むメソッドの関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、サービス・コンシューマがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含み、抽出するステップでは、複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、一のサービス・プロバイダが利用不能であることを示す資源情報が反映された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、一のサービス・プロバイダを除いて複数のサービス・プロバイダの中からサービス・レベルを満たすサービス・プロバイダを抽出する、方法を提供する。
本発明の第６の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、エンド・ユーザからのリクエストを受け付けるステップと、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすものとして、複数のサービス・プロバイダの中からサービス・コンシューマがメソッドを呼び出す前に予め抽出されたサービス・プロバイダのうち、エンド・ユーザから受け付けたリクエストに基づいてサービス・コンシューマが呼び出すメソッドについて抽出されたサービス・プロバイダを選択するステップと、サービス・コンシューマが呼び出すメソッドをメソッドについて選択されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含む、方法を提供する。
本発明の第７の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマと、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを提供するサービス・ディレクトリとを備え、サービス・コンシューマが、サービス・ディレクトリから評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、自装置がメソッドを呼び出すときに、メソッドをメソッドについて抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部とを備える、コンピュータ・システムを提供する。
本発明の第８の態様は、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから資源情報を取得する資源情報取得部と、資源情報取得部が取得した最新の資源情報に基づいて評価テーブルを作成または更新する作成部と、作成部が作成または更新した評価テーブルをサービス・コンシューマに通知する通知部とをサービス・ディレクトリが備える、第７の態様のコンピュータ・システムを提供する。
本発明の第９の態様は、テーブル取得部が新たな評価テーブルを取得したことに応じて抽出部が抽出する処理を行う、第８の態様のコンピュータ・システムである。
本発明の第１０の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータであって、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であって自装置がサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、自装置がメソッドを呼び出すときに、メソッドをメソッドについて抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部とを備える、コンピュータを提供する。
本発明の第１１の態様は、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得された最新の資源情報に基づいて作成または更新された評価テーブルをテーブル取得部が取得し、テーブル取得部が新たな評価テーブルを取得したことに応じて抽出部が抽出する処理を行う、第１０の態様のコンピュータを提供する。
本発明の第１２の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータがサービス・プロバイダにメソッドを送信するように機能させるプログラムであって、コンピュータを、サービス・プロバイダが提供するサービスおよび／またはサービス・プロバイダの品質または状態を表す情報であってコンピュータがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、コンピュータが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してコンピュータが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、コンピュータがメソッドを呼び出す前に予め抽出する抽出部と、コンピュータがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部として機能させる、プログラムを提供する。
【発明の効果】
【０００８】
本発明によれば、複数のサービス・プロバイダを使用可能なサービス・コンシューマが、アプリケーションの実行時に呼び出すそれぞれのメソッドについて、要求するサービス・レベルを満たすサービス・プロバイダを動的に選択できるようになる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態におけるコンピュータ・システムの構成例を示した図である。
【図２】本発明の実施の形態におけるクラウド・サービス・コンシューマ（ＣＳＣ）の機能構成例を示したブロック図である。
【図３】本発明の実施の形態におけるクラウド・サービス・ディレクトリ（ＣＳＤ）の機能構成例を示したブロック図である。
【図４】本発明の実施の形態におけるＣＳＣが使用する各テーブルの例を示した図である。
【図５】本発明の実施の形態におけるＣＳＣが使用するテーブルの例を示した図である。
【図６】本発明の実施の形態におけるＣＳＣがクラウド・サービス・プロバイダ（ＣＳＰ）を選択する際に使用するテーブルを作成する動作の例を示したフローチャートである。
【図７】本発明の実施の形態におけるＣＳＣがＣＳＰにメソッドを送信する際の動作例を示したフローチャートである。
【図８】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００１１】
図１は、本発明の実施の形態におけるコンピュータ・システムの構成例を示した図である。図示するように、このコンピュータ・システムは、エンド・ユーザ（クライアント）１０と、クラウド・サービス・コンシューマ（以下、ＣＳＣという）２０と、クラウド・サービス・プロバイダ（以下、ＣＳＰという）３０と、クラウド・サービス・ディレクトリ（以下、ＣＳＤという）４０とを含む。各エンド・ユーザ１０、各ＣＳＣ２０、各ＣＳＰ３０およびＣＳＤ４０は、インターネットなどのネットワークを介して接続されている。ＣＳＣ２０は１つでも複数でもよいが、ＣＳＰ３０は複数（一般には多数）ある場合を考える。図１では２つのＣＳＣ２０と４つのＣＳＰ３０を示しているが、この数は一例である。以下では、これらのＣＳＣ２０とＣＳＰ３０をそれぞれ区別して、ＣＳＣ１，ＣＳＣ２，ＣＳＰ１，ＣＳＰ２，ＣＳＰ３，ＣＳＰ４と書くこともある。
【００１２】
エンド・ユーザ１０（クライアント）は、例えばＰＣなどの端末である。エンド・ユーザ１０は、各ＣＳＣ２０のアプリケーションにアクセスして、そのＣＳＣ２０が提供するサービスを利用する。
【００１３】
ＣＳＣ２０は、各ＣＳＰ３０が提供するインフラストラクチャを使って構築したアプリケーションにより、自己のサービスをエンド・ユーザ１０に提供するサーバ装置である。ＣＳＣ２０の例としては、金融機関や、市役所、小売業者などがある。
【００１４】
ＣＳＰ３０は、ネットワークを介してソフトウェアやデータなどをサービスの形で各ＣＳＣ２０に提供するサーバ装置である。ＣＳＰ３０の例としては、Ａｍａｚｏｎ．Ｃｏｍ，Ｉｎｃ．や、Ｇｏｏｇｌｅ  Ｉｎｃ．、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎなどがある。本実施の形態では、複数のＣＳＰ３０により実現される図１のコンピュータ・システムのような形態のことを、マルチ・クラウドと呼ぶ。
【００１５】
ＣＳＤ４０は、各ＣＳＰ３０の資源情報をまとめてネットワーク上で公開するサーバ装置である。この資源情報は、ＣＳＰ３０が提供するサービスおよび／またはＣＳＰ３０の品質または状態を表す情報であって、ＣＳＣ２０がＣＳＰ３０を選択する際の基準となる情報である。資源情報には、例えば、各ＣＳＰ３０が提供するサービスの情報（サービスの種類や、パフォーマンス、セキュリティの程度など）、各ＣＳＰ３０の稼働状況の情報（稼働／停止や、故障の有無、電力効率など）、各ＣＳＰ３０の経営状態（サービスの継続性）の情報などがある。ＣＳＤ４０は、言わば第三者の立場から各ＣＳＰ３０を評価する役割を果たす。
【００１６】
ところで、ＣＳＣ２０が複数のＣＳＰ３０を共通のＡＰＩ（Application Program Interface）で利用できるようにした、メタ・クラウドＡＰＩというライブラリがいくつか発表されている。これにより、ＣＳＣ２０の開発者は、どのＣＳＰ３０でも動作するアプリケーションを、標準化されたＡＰＩで記述できるようになる。しかし、メタ・クラウドＡＰＩでは、ＣＳＰ３０に対してメソッドを使用する際にどのＣＳＰ３０を対象とするかをパラメータとして与える必要がある。
【００１７】
現状では、マルチ・クラウドに対応したＣＳＣ２０のアプリケーションを開発し、その稼動後にもＣＳＣ２０が常に最適なＣＳＰ３０を使用するようにするには、以下のようなステップが考えられる。まず、ＣＳＤ４０が提供する各ＣＳＰ３０の資源情報を参考にしつつ、メソッドごとにどのＣＳＰ３０が最適かを開発者が考慮し、ＣＳＰ３０指定のパラメータを与えてメタ・クラウドＡＰＩを使用することにより、アプリケーションを開発する。そして、アプリケーションの稼動後に開発者がＣＳＤ４０の情報を参照してより最適なＣＳＰ３０を見つけた場合には、メタ・クラウドＡＰＩに渡すＣＳＰ３０指定のパラメータを変更するためにアプリケーションを書き換え、そのアプリケーションに置き換えることで、新たな組み合わせでＣＳＰ３０を使用する。
【００１８】
このように、現状ではメソッドとＣＳＰ３０の対応がアプリケーション開発時に静的に決定されてしまうので、ＣＳＰ３０を動的に選択するためには以下のような課題がある。まず、アプリケーション稼動後は、定期的にＣＳＣ２０の担当者がＣＳＤ４０をチェックし、現在使用しているＣＳＰ３０と逐一比較し、メソッドとＣＳＰ３０の組み合わせが現時点で最適かどうかを判断しなければならない。また、使用するＣＳＰ３０を変更する必要がある場合は、その度にコードを書き換え、稼動中のアプリケーションを止めて置き換えるため、大きな工数とリスクが発生する。
【００１９】
このため、最適なＣＳＰ３０を担当者が判断するのではなく、ＣＳＣ２０が随時最適なＣＳＰ３０を選択して使用してくことが望ましい。このような目的で従来一般に行われている動的最適化の技術には、ワークロード・バランシングなどがある。これは、タスクのディスパッチャ（またはそれに準じるもの）が適宜各リソースのパフォーマンスなどをチェックし、タスクの割り当てなどを動的に行うものである。しかし、こうした技術をＣＳＰ３０の選択に適用するには、以下のような課題がある。
【００２０】
まず、ディスパッチャによりＣＳＰ３０のパフォーマンスをチェックするには、そのＣＳＰ３０と契約して評価用のアカウントをとらなければならない。このため、パフォーマンスなどを動的にチェックするには、現在使用していないＣＳＰ３０も含め、対象となる可能性のあるすべてのＣＳＰ３０についてそのユーザ・アカウントを取得しなければならず、取得コストや管理コストが余分に発生する。また、ＣＳＰ３０の評価にはＣＳＰ３０の経営状態なども影響し得るが、ディスパッチャなどの従来の手段ではこうしたパラメータを取得することができない。
【００２１】
そこで本実施の形態では、提供されるサービスの品質についての情報だけでなく、サービスの品質に影響を与え得る経営状態などの情報も含めたＣＳＰ３０の評価を、複数のＣＳＰ３０について共通の形式でＣＳＤ４０がネットワーク上に提供する。そして、ＣＳＣ２０の使用するＡＰＩレベルで各ＣＳＣ２０が動的に適切なＣＳＰ３０を判断し、そのＣＳＰ３０を使用することができるフレームワークを提供する。すなわち、本実施の形態では、マルチ・クラウド環境におけるＣＳＣ２０のアプリケーションが、各ＣＳＰ３０を意識することなく、各メソッドについて現時点で適切なＣＳＰ３０を自らリアルタイムに選択して、そのＣＳＰ３０にリクエストを発行することができるライブラリを提供する。
【００２２】
図２は、本発明の実施の形態におけるＣＳＣ２０の機能構成例を示したブロック図である。図示するように、ＣＳＣ２０は、アプリケーション５０と、ＣＳＰ選択ライブラリ６０を含む。ＣＳＰ選択ライブラリ６０は、エンド・ユーザ１０からのリクエストに対して適切なＣＳＰ３０を動的に判断して割り振るための、メタ・クラウドＡＰＩのライブラリである。
【００２３】
アプリケーション５０は、ＣＳＣ２０が自己のサービスをエンド・ユーザ１０に提供するために実行される。アプリケーション５０は、例えばＪＳＰ（JavaServer Pages）５１とサーブレット５２により実現され、要求テーブル５３を含む。
【００２４】
要求テーブル５３は、ＣＳＣ２０が要求するサービス・レベルを、ＣＳＰ選択ライブラリ６０用にＸＭＬ等の形式で記載したテーブルである。各ＣＳＣ２０は、自己のアプリケーション５０にはどの程度のパフォーマンスやセキュリティ・レベルなどが必要かということを資源情報の項目ごとに予め定義し、その情報を要求テーブル５３として保持しておく。要求テーブル５３は、アプリケーション５０の起動時などに、ＣＳＰ選択ライブラリ６０の要求テーブルロード用メソッドによりロードされる。
【００２５】
ＣＳＰ選択ライブラリ６０は、ＣＳＣ２０が要求するサービス・レベルの情報と、ＣＳＤ４０が提供する資源情報を動的に取得・解析し、各メソッド（リクエスト）に対して適切なＣＳＰ３０の情報をライブラリ内部で作成し、メソッドの実行をその適切なＣＳＰ３０に対して行う。ＣＳＰ選択ライブラリ６０は、評価テーブル取得部６１と、関連テーブル６２と、照合部６３と、分配テーブル６４と、ＣＳＰ選択部６５とを含む。
【００２６】
評価テーブル取得部６１は、各ＣＳＰ３０のサービス・レベル項目の評価をＣＳＰ選択ライブラリ６０用にＸＭＬ等の形で表したテーブルである評価テーブル４２（後述する図３を参照）を、ネットワークを介してＣＳＤ４０から取得する。本実施の形態では、評価テーブルを取得するテーブル取得部の一例として評価テーブル取得部６１を設けている。
【００２７】
関連テーブル６２は、アプリケーション５０の実行時に呼び出されるそれぞれのメソッドについて、関連するサービス・レベルの項目をＸＭＬ等の形式で記載したテーブルである。すなわち、関連テーブル６２は、要求テーブル５３に載っている資源情報の項目のうち、あるメソッドを呼び出す際にＣＳＣ２０が要求するサービス・レベルが確保されるべき項目を、それぞれのメソッドについて予め定義したものである。
【００２８】
照合部６３は、要求テーブル５３と、関連テーブル６２と、評価テーブル取得部６１が取得した評価テーブル４２とを照合して、後述する分配テーブル６４を作成する。その際、照合部６３は、それぞれのテーブルを照合することにより、あるメソッドに関連するものとして関連テーブル６２で定義されている資源情報の項目のすべてに関して要求テーブル５３で要求されているサービス・レベルを満たすＣＳＰ３０を、それぞれのメソッドについて抽出する。本実施の形態では、サービス・プロバイダを抽出する抽出部の一例として、照合部６３を設けている。
【００２９】
分配テーブル６４は、各メソッドについて適切なＣＳＰ３０をＸＭＬ等の形式で記載したテーブルである。ここでの「適切」とは、あるメソッドに関連するものとして関連テーブル６２で定義されている資源情報の項目のすべてが、要求テーブル５３にて要求されているサービス・レベルを満たしている状態のことをいう。分配テーブル６４は、アプリケーション５０の起動時などの特定のタイミングでＣＳＣ２０がＣＳＰ選択ライブラリ６０の分配テーブル作成メソッドを呼び出すことにより、ＣＳＰ選択ライブラリ６０が内部的に作成する。
【００３０】
ＣＳＰ選択部６５は、アプリケーション５０の実行によりあるメソッドが呼び出されるときに、分配テーブル６４を参照することにより、そのメソッドについて適切なＣＳＰ３０を選択する。そしてＣＳＰ選択部６５は、ＣＳＰ選択ライブラリ６０のＡＰＩを使い、そのメソッドをその適切なＣＳＰ３０に対する命令に変換してそのＣＳＰ３０に送る。本実施の形態では、抽出されたサービス・プロバイダに対する命令にメソッドを変換して送信する変換部の一例として、ＣＳＰ選択部６５を設けている。
【００３１】
図３は、本発明の実施の形態におけるＣＳＤ４０の機能構成例を示したブロック図である。図示するように、ＣＳＤ４０は、ＣＳＰ情報取得部４１と、評価テーブル４２と、評価テーブル通知部４３とを含む。
【００３２】
ＣＳＰ情報取得部４１は、各ＣＳＰ３０（図１の例では、ＣＳＰ１〜ＣＳＰ４）から、ネットワークを介して、上述したような資源情報を取得する。この取得のためには、予め定めた期間ごとに各ＣＳＰ３０がＣＳＤ４０に資源情報を送信してもよいし、または、いずれかのＣＳＰ３０の資源情報に変更があるたびに、そのＣＳＰ３０がＣＳＤ４０に資源情報を送信してもよい。本実施の形態では、資源情報を取得する資源情報取得部および評価テーブルを作成または更新する作成部の一例として、ＣＳＰ情報取得部４１を設けている。
【００３３】
評価テーブル４２は、各ＣＳＰ３０の各資源情報の項目に関する評価をＣＳＰ選択ライブラリ６０用にＸＭＬ等の形で表したテーブルである。ＣＳＰ情報取得部４１が資源情報の更新内容を取得することにより、評価テーブル４２には各ＣＳＰ３０の最新の評価が記載されるようにする。
【００３４】
評価テーブル通知部４３は、ネットワークを介して評価テーブル４２を各ＣＳＣ２０に通知する。評価テーブル通知部４３は、例えば各ＣＳＣ２０内の評価テーブル取得部６１からの要求に基づいて受動的に評価テーブル４２を送信してもよい（Ｐｕｌｌ型）。または、評価テーブル通知部４３は、予め定めた期間ごとや評価テーブル４２が更新されるたびに、ＣＳＤ４０から各ＣＳＣ２０に能動的に評価テーブル４２を送信してもよい（Ｐｕｓｈ型）。本実施の形態では、評価テーブルをサービス・コンシューマに通知する通知部の一例として、評価テーブル通知部４３を設けている。
【００３５】
次に、要求テーブル５３、関連テーブル６２、評価テーブル４２および分配テーブル６４の具体例について説明する。図４および図５は、本発明の実施の形態におけるＣＳＣ２０が使用する各テーブルの例を示した図である。このうち、図４は要求テーブル５３、関連テーブル６２、評価テーブル４２の例を、図５は分配テーブル６４の例を示している。要求テーブル５３、関連テーブル６２、評価テーブル４２および分配テーブル６４は、実際にはＸＭＬ等の書式で記述されるが、ここでは便宜上、それらの内容を表で示している。
【００３６】
図４Ａは、要求テーブル５３の例である。例えば、図１のＣＳＣ１は、自己が使用するサービスの、「ネットワーク・パフォーマンス」、「仮想システムのパフォーマンス」、「稼働率」、「セキュリティ」および「ＣＳＰ経営状態」を重要視するものとする。そこでＣＳＣ１は、これらの項目について要求するサービス・レベルを、例えば１０段階の数値で図４Ａのように定義している。また、図１のＣＳＣ２は、自己が重要視する項目について要求するサービス・レベルを、図４Ａと同様に定義している。
【００３７】
図４では、レベルは「１」が最も高く、数字が大きくなるにつれて低くなるものとする。なお、１０段階の数値は一例であり、例えば、「稼働率」であれば何％以上が「１」、それ未満の何％までが「２」、・・・のように、「セキュリティ」であればどの機能に対応していれば「１」、一部の機能に対応していなければ「２」、・・・などのように、より具体的にレベルを定義することができる。
【００３８】
図４Ｂは、関連テーブル６２の例である。例えば、「Ｍｅｔｈｏｄ１」については、図４Ｂに示すように、「ネットワーク・パフォーマンス」と「ＣＳＰ経営状態」が関連項目として定義されている。一般に、メソッドごとに関連する項目は異なると考えられるが、この例では「ＣＳＰ経営状態」はすべてのメソッドに関連するものとする。図４ＢがＣＳＣ１の関連テーブル６２であるとすると、ＣＳＣ１は、「Ｍｅｔｈｏｄ１」が呼び出されるときには、「ネットワーク・パフォーマンス」と「ＣＳＰ経営状態」の項目について、図４Ａの要求テーブル５３で定義したレベルが確保されることを要求することになる。なお、ＣＳＣ２も図４Ｂと同様の関連テーブル６２をもっている。
【００３９】
なお、関連テーブル６２には、関連項目とともに各項目の重要度の情報を含めてもよい。そして、照合部６３が関連テーブル６２を参照して分配テーブル６４を作成する際は、例えばこの重要度が高い関連項目について評価が高いＣＳＰ３０を優先的に選択するなど、項目の重要度によって重み付けを行ってもよい。
【００４０】
ＣＳＰ選択ライブラリ６０は、アプリケーション５０の実行時に呼び出されるすべてのメソッドについて、図４Ｂのように、関連する資源情報の項目を関連テーブル６２で予め定義しておく。ただし、メソッドによっては適切なＣＳＰ３０を選択することなくデフォルトのＣＳＰ３０を使えばよい場合もある。その場合、そのメソッドについては関連テーブル６２に載っていなくてもよい。
【００４１】
図４Ｃは、評価テーブル４２の例である。ここでは、図４Ａに示した「ネットワーク・パフォーマンス」、「仮想システムのパフォーマンス」、「稼働率」、「セキュリティ」および「ＣＳＰ経営状態」の各項目について、ＣＳＰ１〜ＣＳＰ４の評価を示している。図４Ｃに示すように、評価テーブル４２には、各ＣＳＰ３０に関する様々な資源情報の評価が、要求テーブル５３のものと同じレベルの定義に従ってまとめられている。
【００４２】
以上、図４Ａ〜図４Ｃに示したように、本実施の形態では、各ＣＳＣ２０およびＣＳＤ４０がもつ要求テーブル５３、関連テーブル６２および評価テーブル４２のフォーマットや資源情報の項目ごとのサービス・レベルの定義は、オープンな業界標準仕様などとして、コンピュータ・システム全体で共通のものを予め定義しておく。
【００４３】
また、図５Ａおよび図５Ｂは、分配テーブル６４の例である。例えば図５Ａは、「Ｍｅｔｈｏｄ１」について適切なＣＳＰ３０がＣＳＰ１〜ＣＳＰ４のうちのＣＳＰ２であることを示している。要求テーブル５３、関連テーブル６２および評価テーブル４２から分配テーブル６４を作成する方法については、この後具体的に説明する。
【００４４】
以下では、本実施の形態における各ＣＳＣ２０とＣＳＤ４０の動作について説明する。図６は、本発明の実施の形態におけるＣＳＣ２０がＣＳＰ３０を選択する際に使用する分配テーブル６４を作成する動作（分配テーブル作成メソッド）の例を示したフローチャートである。
【００４５】
まず、ＣＳＤ４０のＣＳＰ情報取得部４１が、ネットワークを介して各ＣＳＰ３０（ＣＳＰ１〜ＣＳＰ４）から資源情報を取得する（ステップ１１）。上述したように、ＣＳＰ情報取得部４１は、予め定めた期間ごとか、またはいずれかのＣＳＰ３０の資源情報に変更があるたびに、その資源情報を取得する。次いで、ＣＳＤ４０は、ＣＳＰ情報取得部４１が取得した資源情報から、評価テーブル４２を作成または更新する（ステップ１２）。そしてこの評価テーブル４２を、例えば予め定めた期間ごとか評価テーブル４２が更新されるたびに、評価テーブル通知部４３がネットワークを介して各ＣＳＣ２０に通知する（ステップ１３）。
【００４６】
一方、各ＣＳＣ２０では、ＣＳＰ選択ライブラリ６０の評価テーブル取得部６１がＣＳＤ４０から評価テーブル４２を取得する（ステップ２１）。次いで、照合部６３が、この評価テーブル４２と、ＣＳＰ選択ライブラリ６０が予め保持している関連テーブル６２と、アプリケーション５０がもつ要求テーブル５３とを取得する（ステップ２２）。そして照合部６３は、関連テーブル６２に載っている１つのメソッドについて、要求テーブル５３と評価テーブル４２を照合する（ステップ２３）。照合部６３は、そのメソッドに関連するものとして関連テーブル６２で定義されている資源情報の項目のすべてに関して要求テーブル５３で要求されているサービス・レベルを満たすＣＳＰ３０を、そのメソッドについて使用すべきＣＳＰ３０であるとして、分配テーブル６４に記載する（ステップ２４）。他にもメソッドがあればステップ２３に戻り、もうすべてのメソッドについて分配テーブル６４に記載していれば動作を終了する（ステップ２５）。
【００４７】
照合部６３が行うステップ２３とステップ２４について、図４Ａ〜図４Ｃに示した例を用いて詳しく説明する。まず「Ｍｅｔｈｏｄ１」については、関連テーブル６２で関連項目として定義されている項目が「ネットワーク・パフォーマンス」と「ＣＳＰ経営状態」であるから、これらについて要求テーブル５３で定義されている、「ネットワーク・パフォーマンス」が最高の「１」かつ「ＣＳＰ経営状態」が「５」以上という要求レベルを満たすＣＳＰ３０を、評価テーブル４２の中から探す。この要求レベルを満たすものは、ＣＳＰ１〜ＣＳＰ４のうちでＣＳＰ２だけであるから、「Ｍｅｔｈｏｄ１」について使用するＣＳＰは「ＣＳＰ２」と記載する。
【００４８】
また、「Ｍｅｔｈｏｄ２」については、関連テーブル６２によると関連項目が「セキュリティ」および「ＣＳＰ経営状態」であるから、要求テーブル５３で定義されている、「セキュリティ」が「３」以上かつ「ＣＳＰ経営状態」が「５」以上という要求レベルを満たすＣＳＰ３０を、評価テーブル４２の中から探す。この要求レベルを満たすものはＣＳＰ１とＣＳＰ３の２つがあるが、この例ではＣＳＰ３を選ぶものとして、「Ｍｅｔｈｏｄ２」について使用するＣＳＰは「ＣＳＰ３」と記載する。これは、「ＣＳＰ経営状態」よりも「セキュリティ」の方が高いレベルが要求されていることから、「セキュリティ」についてＣＳＰ１とＣＳＰ３の評価を比べると、ＣＳＰ１の「３」よりもＣＳＰ３の「２」の方が高いためである。このように、条件を満たすＣＳＰ３０が複数存在するときは、そのメソッドについての関連項目の中で要求されるサービス・レベルが高い項目に着目し、その項目の評価が高いものを優先して選ぶようにしてもよい。
【００４９】
また、「Ｍｅｔｈｏｄ３」については、関連テーブル６２によると関連項目が「仮想システムのパフォーマンス」、「稼働率」および「ＣＳＰ経営状態」であるから、要求テーブル５３で定義されている、「仮想システムのパフォーマンス」が「３」以上、「稼働率」が「２」以上かつ「ＣＳＰ経営状態」が「５」以上という要求レベルを満たすＣＳＰ３０を、評価テーブル４２の中から探す。この要求レベルを満たすものは、ＣＳＰ１だけであるから、「Ｍｅｔｈｏｄ３」について使用するＣＳＰは「ＣＳＰ１」と記載する。
【００５０】
以上のようにして作成される分配テーブル６４が、図５Ａに示したものである。なお、すべての関連項目について要求レベルを満たすＣＳＰ３０が存在しないときは、そのメソッドについては例えばデフォルトのＣＳＰ３０を、使用するＣＳＰとしてもよい。または、要求レベルを満たす関連項目の個数が最も多いＣＳＰ３０を、使用するＣＳＰとしてもよい。
【００５１】
次に、各ＣＳＣ２０が分配テーブル６４を用いて適切なＣＳＰ３０にメソッドを送信する際の動作について説明する。図７は、本発明の実施の形態におけるＣＳＣ２０がＣＳＰ３０にメソッドを送信する際の動作例を示したフローチャートである。
【００５２】
まず、ＣＳＣ２０は、アプリケーション５０を起動する（ステップ３１）。アプリケーション５０は、起動時にＣＳＰ選択ライブラリ６０をロードする（ステップ３２）。アプリケーション５０内では、例えばサーブレット５２が起動するときにＣＳＰ選択ライブラリ６０のライブラリをロードする。そしてＣＳＰ選択ライブラリ６０は、この起動時や、予め定めた期間ごと、または評価テーブル取得部６１がＣＳＤ４０から評価テーブル４２を取得したときなどの適当なタイミングで図６の分配テーブル作成メソッドを実行し、分配テーブル６４を作成している。
【００５３】
ここで、ＣＳＣ２０のアプリケーション５０は、エンド・ユーザ１０からのリクエスト（トランザクション）を受け付ける（ステップ３３）。一般に、リクエストは複数のメソッドに分解されて１つずつ呼び出されるが、本実施の形態では、このときどのＣＳＰ３０を使用してメソッドを呼び出すかということをアプリケーション５０自体が指定する必要はない。その代わり、そのメソッドが実行されるのに適切なＣＳＰ３０を、ＣＳＰ選択ライブラリ６０が分配テーブル６４を用いて選択する（ステップ３４）。そしてＣＳＰ選択ライブラリ６０のＣＳＰ選択部６５が、そのメソッドを選択されたＣＳＰ３０に対する命令に変換して、ＣＳＰ３０にリクエストを行う（ステップ３５）。すなわち、アプリケーション５０は、ＣＳＰ選択ライブラリ６０のＡＰＩを使って、そのメソッドを選択されたＣＳＰ３０に送信する。他にも実行すべきメソッドがあればステップ３４に戻り、もう実行すべきメソッドがなければ動作を終了する（ステップ３６）。
【００５４】
本実施の形態では、ＣＳＣ２０がＣＳＤ４０から評価テーブル４２の更新を受け取る手法について、特にＣＳＤ４０からのＰｕｓｈ通知を利用することが可能である。このようなＰｕｓｈ通知を利用した構成について、次に説明する。
【００５５】
本実施の形態では、例えば、いずれかのＣＳＰ３０が災害、その他の障害によりダウンした状態となった場合には、そのＣＳＰ３０の資源情報に変更があった（ダウンが起こった）タイミングで、ＣＳＤ４０のＣＳＰ情報取得部４１がその変更の情報を取得するようにする。そして、ＣＳＤ４０は評価テーブル４２を更新し、評価テーブル通知部４３がその更新した評価テーブル４２をすべてのＣＳＣ２０に対してＰｕｓｈ通知するようにする。これにより、評価テーブル４２が更新された場合に各ＣＳＣ２０が最新の評価テーブル４２をタイムリーに受け取るように実装することができる。さらに、Ｐｕｓｈ通知された最新の評価テーブル４２を取得したことに応じて各ＣＳＣ２０のＣＳＰ選択ライブラリ６０が図６の分配テーブル作成メソッドを行えば、各ＣＳＣ２０は各メソッドについて現時点で適切なＣＳＰ３０が記載された分配テーブル６４をもつことができる。これにより、各ＣＳＣ２０は、各メソッドを呼び出すときに現時点で適切なＣＳＰ３０を動的に選択することが可能となる。
【００５６】
図４Ａ〜図４Ｃに示した例において、例えばＣＳＰ３がダウンした場合を考える。上述したように、「Ｍｅｔｈｏｄ２」については適切なＣＳＰ３０の候補として、ＣＳＰ１とＣＳＰ３があった。しかし、この場合、各ＣＳＣ２０のＣＳＰ選択ライブラリ６０はＣＳＰ３がダウンしたという情報を含んだ評価テーブル４２を取得して図６の分配テーブル作成メソッドを行うため、「Ｍｅｔｈｏｄ２」について使用すべきＣＳＰ３０としてはＣＳＰ１が選ばれることになる。したがって、この場合に作成される分配テーブル６４は、図５Ｂに示したものとなる。このように、各ＣＳＣ２０がＣＳＤ４０からＰｕｓｈ通知で最新の評価テーブル４２を取得することにより、災害等があった場合でも、エンド・ユーザ１０および各ＣＳＣ２０が受ける影響が最小限になるように、ＣＳＰ３０の選択を行うことが可能になる。
【００５７】
以上説明したように、本実施の形態では、各ＣＳＰ３０の資源情報の評価を評価テーブル４２としてＣＳＤ４０が提供し、自己が要求するサービス・レベルおよび各メソッドについて関連する資源情報の項目を、それぞれ要求テーブル５３および関連テーブル６２として各ＣＳＣ２０が定義する。そして、これらのテーブルのフォーマットや資源情報の項目ごとのサービス・レベルの定義を、コンピュータ・システム全体で共通のものにする。これにより、各ＣＳＣ２０は、分配テーブル６４を用いて各メソッドについて適切なＣＳＰ３０を選択して使用することが可能になる。
【００５８】
さらに本実施の形態では、各ＣＳＰ３０の資源情報に変更があるたびにＣＳＤ４０が評価テーブル４２を更新して各ＣＳＣ２０にＰｕｓｈ通知し、各ＣＳＣ２０は最新の評価テーブル４２を取得したことに応じて分配テーブル６４を更新する。これにより、各ＣＳＣ２０は各メソッドについて現時点で適切なＣＳＰ３０を選択して使用することが可能になる。
【００５９】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図８は、ＣＳＣ２０やＣＳＤ４０を実現するコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００６０】
なお、図８において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続してもよいが、表示機構９０ｄがＰＣＩ  Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、およびフレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００６１】
ここで、本発明のサービス・コンシューマおよびサービス・ディレクトリの機能は、すべてハードウェアで実現してもよいし、すべてソフトウェアで実現してもよい。また、ハードウェアおよびソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータ・プログラムとして実現することができる。このコンピュータ・プログラムは、コンピュータにより読み取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線または半導体システム（装置または機器）、あるいは、伝搬媒体が考えられる。また、コンピュータにより読み取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、および光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）およびＤＶＤが含まれる。
【００６２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神および範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６３】
１０…エンド・ユーザ、２０…クラウド・サービス・コンシューマ（ＣＳＣ）、３０…クラウド・サービス・プロバイダ（ＣＳＰ）、４０…クラウド・サービス・ディレクトリ（ＣＳＤ）、４１…ＣＳＰ情報取得部、４２…評価テーブル、４３…評価テーブル通知部、５０…アプリケーション、５１…ＪＳＰ、５２…サーブレット、５３…要求テーブル、６０…ＣＳＰ選択ライブラリ、６１…評価テーブル取得部、６２…関連テーブル、６３…照合部、６４…分配テーブル、６５…ＣＳＰ選択部
【図１】
0005936224.tif 000002
【図２】
0005936224.tif 000003
【図３】
0005936224.tif 000004
【図４】
0005936224.tif 000005
【図５】
0005936224.tif 000006
【図６】
0005936224.tif 000007
【図７】
0005936224.tif 000008
【図８】
0005936224.tif 000009