JP5936224B2 - サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム - Google Patents

サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム Download PDF

Info

Publication number
JP5936224B2
JP5936224B2 JP2011229031A JP2011229031A JP5936224B2 JP 5936224 B2 JP5936224 B2 JP 5936224B2 JP 2011229031 A JP2011229031 A JP 2011229031A JP 2011229031 A JP2011229031 A JP 2011229031A JP 5936224 B2 JP5936224 B2 JP 5936224B2
Authority
JP
Japan
Prior art keywords
service
service provider
resource information
consumer
evaluation table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011229031A
Other languages
English (en)
Other versions
JP2013089033A (ja
Inventor
利康 本木
利康 本木
弾 立野
弾 立野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011229031A priority Critical patent/JP5936224B2/ja
Priority to US13/649,516 priority patent/US9176710B2/en
Publication of JP2013089033A publication Critical patent/JP2013089033A/ja
Application granted granted Critical
Publication of JP5936224B2 publication Critical patent/JP5936224B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラムに関する。
相互運用可能な複数の互換性のないクラウドサービスを透過的に提供する連邦型クラウドサービス環境が知られている(例えば、特許文献1参照)。また、プライマリクラウドで提供したサービスレベルの実績値又は更新されたプリファレンス情報に応じて、サービスレベルアグリーメントを動的に決定することにより、セカンダリクラウドも含めてサービスを選択して提供するプライマリクラウドサーバ、サービスを提供する方法及びコンピュータ・プログラムが知られている(例えば、特許文献2参照)。
特開2011−129117号公報 特開2011−118451号公報
様々なサービス・プロバイダが、インターネットなどのネットワークを介して、ソフトウェアやデータなどをサービスの形で提供している。サービス・コンシューマは、サービス・プロバイダが提供するインフラストラクチャを使って、自己が提供するサービス用のアプリケーションを構築する。
1つのサービス・プロバイダのみに依存してアプリケーションを構築することはサービス・コンシューマにとってリスクが大きいため、複数のサービス・プロバイダを使用してリスクを分散する形態が注目を浴びている。そうした形態では、アプリケーションを構築して稼働した後でも、サービス・コンシューマは随時最適なサービス・プロバイダを選択して使用していくことが望ましい。
本発明の目的は、複数のサービス・プロバイダを使用可能なサービス・コンシューマが、アプリケーションの実行時に呼び出すそれぞれのメソッドについて、要求するサービス・レベルを満たすサービス・プロバイダを動的に選択できるようにすることにある。
かかる目的のもと、本発明の第1の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するステップと、取得された評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを複数のサービス・プロバイダの中から、サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、サービス・コンシューマがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含む、方法を提供する。
本発明の第2の態様は、複数のサービス・プロバイダのいずれかの資源情報に変更があるたびに評価テーブルを更新するステップをさらに含み、取得するステップでは、更新された評価テーブルを取得する、第1の態様の方法を提供する。
本発明の第3の態様は、抽出するステップでは、複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、一のサービス・プロバイダが利用不能であることを示す資源情報が反映された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、一のサービス・プロバイダを除いて複数のサービス・プロバイダの中からサービス・レベルを満たすサービス・プロバイダを抽出する、第2の態様の方法を提供する。
本発明の第4の態様は、抽出するステップでは、取得された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、サービス・プロバイダが提供するサービスの品質に影響を与え得るサービス・プロバイダの状態を表す情報の項目を含むメソッドの関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から抽出する、第1の態様ないし第3の態様のいずれかの方法を提供する。
本発明の第5の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得するステップと、資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを、取得された最新の資源情報に基づいて作成または更新するステップと、評価テーブルが更新されるたびに、更新された評価テーブルを取得するステップと、更新された評価テーブルを取得したことに応じて、評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目であってサービス・プロバイダが提供するサービスの品質に影響を与え得るサービス・プロバイダの状態を表す情報の項目を含むメソッドの関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、複数のサービス・プロバイダの中から、サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、サービス・コンシューマがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含み、抽出するステップでは、複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、一のサービス・プロバイダが利用不能であることを示す資源情報が反映された評価テーブルを参照することにより、サービス・コンシューマが呼び出すメソッドごとに、一のサービス・プロバイダを除いて複数のサービス・プロバイダの中からサービス・レベルを満たすサービス・プロバイダを抽出する、方法を提供する。
本発明の第6の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマからサービス・プロバイダにメソッドを送信する方法であって、エンド・ユーザからのリクエストを受け付けるステップと、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを参照することにより、サービス・コンシューマが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してサービス・コンシューマが要求するサービス・レベルを満たすものとして、複数のサービス・プロバイダの中からサービス・コンシューマがメソッドを呼び出す前に予め抽出されたサービス・プロバイダのうち、エンド・ユーザから受け付けたリクエストに基づいてサービス・コンシューマが呼び出すメソッドについて抽出されたサービス・プロバイダを選択するステップと、サービス・コンシューマが呼び出すメソッドをメソッドについて選択されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信するステップとを含む、方法を提供する。
本発明の第7の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマと、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であってサービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを提供するサービス・ディレクトリとを備え、サービス・コンシューマが、サービス・ディレクトリから評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、自装置がメソッドを呼び出すときに、メソッドをメソッドについて抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部とを備える、コンピュータ・システムを提供する。
本発明の第8の態様は、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから資源情報を取得する資源情報取得部と、資源情報取得部が取得した最新の資源情報に基づいて評価テーブルを作成または更新する作成部と、作成部が作成または更新した評価テーブルをサービス・コンシューマに通知する通知部とをサービス・ディレクトリが備える、第7の態様のコンピュータ・システムを提供する。
本発明の第9の態様は、テーブル取得部が新たな評価テーブルを取得したことに応じて抽出部が抽出する処理を行う、第8の態様のコンピュータ・システムである。
本発明の第10の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータであって、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であって自装置がサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、自装置がメソッドを呼び出すときに、メソッドをメソッドについて抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部とを備える、コンピュータを提供する。
本発明の第11の態様は、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得された最新の資源情報に基づいて作成または更新された評価テーブルをテーブル取得部が取得し、テーブル取得部が新たな評価テーブルを取得したことに応じて抽出部が抽出する処理を行う、第10の態様のコンピュータを提供する。
本発明の第12の態様は、サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータがサービス・プロバイダにメソッドを送信するように機能させるプログラムであって、コンピュータを、サービス・プロバイダが提供するサービスおよび/またはサービス・プロバイダの品質または状態を表す情報であってコンピュータがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、テーブル取得部が取得した評価テーブルを参照することにより、コンピュータが呼び出し得るメソッドごとに、メソッドに関連するものとして予め定義されている資源情報の項目である関連項目に関してコンピュータが要求するサービス・レベルを満たすサービス・プロバイダを複数のサービス・プロバイダの中から、コンピュータがメソッドを呼び出す前に予め抽出する抽出部と、コンピュータがメソッドを呼び出すときに、メソッドをメソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、命令をサービス・プロバイダに送信する変換部として機能させる、プログラムを提供する。
本発明によれば、複数のサービス・プロバイダを使用可能なサービス・コンシューマが、アプリケーションの実行時に呼び出すそれぞれのメソッドについて、要求するサービス・レベルを満たすサービス・プロバイダを動的に選択できるようになる。
本発明の実施の形態におけるコンピュータ・システムの構成例を示した図である。 本発明の実施の形態におけるクラウド・サービス・コンシューマ(CSC)の機能構成例を示したブロック図である。 本発明の実施の形態におけるクラウド・サービス・ディレクトリ(CSD)の機能構成例を示したブロック図である。 本発明の実施の形態におけるCSCが使用する各テーブルの例を示した図である。 本発明の実施の形態におけるCSCが使用するテーブルの例を示した図である。 本発明の実施の形態におけるCSCがクラウド・サービス・プロバイダ(CSP)を選択する際に使用するテーブルを作成する動作の例を示したフローチャートである。 本発明の実施の形態におけるCSCがCSPにメソッドを送信する際の動作例を示したフローチャートである。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施の形態におけるコンピュータ・システムの構成例を示した図である。図示するように、このコンピュータ・システムは、エンド・ユーザ(クライアント)10と、クラウド・サービス・コンシューマ(以下、CSCという)20と、クラウド・サービス・プロバイダ(以下、CSPという)30と、クラウド・サービス・ディレクトリ(以下、CSDという)40とを含む。各エンド・ユーザ10、各CSC20、各CSP30およびCSD40は、インターネットなどのネットワークを介して接続されている。CSC20は1つでも複数でもよいが、CSP30は複数(一般には多数)ある場合を考える。図1では2つのCSC20と4つのCSP30を示しているが、この数は一例である。以下では、これらのCSC20とCSP30をそれぞれ区別して、CSC1,CSC2,CSP1,CSP2,CSP3,CSP4と書くこともある。
エンド・ユーザ10(クライアント)は、例えばPCなどの端末である。エンド・ユーザ10は、各CSC20のアプリケーションにアクセスして、そのCSC20が提供するサービスを利用する。
CSC20は、各CSP30が提供するインフラストラクチャを使って構築したアプリケーションにより、自己のサービスをエンド・ユーザ10に提供するサーバ装置である。CSC20の例としては、金融機関や、市役所、小売業者などがある。
CSP30は、ネットワークを介してソフトウェアやデータなどをサービスの形で各CSC20に提供するサーバ装置である。CSP30の例としては、Amazon.Com,Inc.や、Google Inc.、Microsoft Corporationなどがある。本実施の形態では、複数のCSP30により実現される図1のコンピュータ・システムのような形態のことを、マルチ・クラウドと呼ぶ。
CSD40は、各CSP30の資源情報をまとめてネットワーク上で公開するサーバ装置である。この資源情報は、CSP30が提供するサービスおよび/またはCSP30の品質または状態を表す情報であって、CSC20がCSP30を選択する際の基準となる情報である。資源情報には、例えば、各CSP30が提供するサービスの情報(サービスの種類や、パフォーマンス、セキュリティの程度など)、各CSP30の稼働状況の情報(稼働/停止や、故障の有無、電力効率など)、各CSP30の経営状態(サービスの継続性)の情報などがある。CSD40は、言わば第三者の立場から各CSP30を評価する役割を果たす。
ところで、CSC20が複数のCSP30を共通のAPI(Application Program Interface)で利用できるようにした、メタ・クラウドAPIというライブラリがいくつか発表されている。これにより、CSC20の開発者は、どのCSP30でも動作するアプリケーションを、標準化されたAPIで記述できるようになる。しかし、メタ・クラウドAPIでは、CSP30に対してメソッドを使用する際にどのCSP30を対象とするかをパラメータとして与える必要がある。
現状では、マルチ・クラウドに対応したCSC20のアプリケーションを開発し、その稼動後にもCSC20が常に最適なCSP30を使用するようにするには、以下のようなステップが考えられる。まず、CSD40が提供する各CSP30の資源情報を参考にしつつ、メソッドごとにどのCSP30が最適かを開発者が考慮し、CSP30指定のパラメータを与えてメタ・クラウドAPIを使用することにより、アプリケーションを開発する。そして、アプリケーションの稼動後に開発者がCSD40の情報を参照してより最適なCSP30を見つけた場合には、メタ・クラウドAPIに渡すCSP30指定のパラメータを変更するためにアプリケーションを書き換え、そのアプリケーションに置き換えることで、新たな組み合わせでCSP30を使用する。
このように、現状ではメソッドとCSP30の対応がアプリケーション開発時に静的に決定されてしまうので、CSP30を動的に選択するためには以下のような課題がある。まず、アプリケーション稼動後は、定期的にCSC20の担当者がCSD40をチェックし、現在使用しているCSP30と逐一比較し、メソッドとCSP30の組み合わせが現時点で最適かどうかを判断しなければならない。また、使用するCSP30を変更する必要がある場合は、その度にコードを書き換え、稼動中のアプリケーションを止めて置き換えるため、大きな工数とリスクが発生する。
このため、最適なCSP30を担当者が判断するのではなく、CSC20が随時最適なCSP30を選択して使用してくことが望ましい。このような目的で従来一般に行われている動的最適化の技術には、ワークロード・バランシングなどがある。これは、タスクのディスパッチャ(またはそれに準じるもの)が適宜各リソースのパフォーマンスなどをチェックし、タスクの割り当てなどを動的に行うものである。しかし、こうした技術をCSP30の選択に適用するには、以下のような課題がある。
まず、ディスパッチャによりCSP30のパフォーマンスをチェックするには、そのCSP30と契約して評価用のアカウントをとらなければならない。このため、パフォーマンスなどを動的にチェックするには、現在使用していないCSP30も含め、対象となる可能性のあるすべてのCSP30についてそのユーザ・アカウントを取得しなければならず、取得コストや管理コストが余分に発生する。また、CSP30の評価にはCSP30の経営状態なども影響し得るが、ディスパッチャなどの従来の手段ではこうしたパラメータを取得することができない。
そこで本実施の形態では、提供されるサービスの品質についての情報だけでなく、サービスの品質に影響を与え得る経営状態などの情報も含めたCSP30の評価を、複数のCSP30について共通の形式でCSD40がネットワーク上に提供する。そして、CSC20の使用するAPIレベルで各CSC20が動的に適切なCSP30を判断し、そのCSP30を使用することができるフレームワークを提供する。すなわち、本実施の形態では、マルチ・クラウド環境におけるCSC20のアプリケーションが、各CSP30を意識することなく、各メソッドについて現時点で適切なCSP30を自らリアルタイムに選択して、そのCSP30にリクエストを発行することができるライブラリを提供する。
図2は、本発明の実施の形態におけるCSC20の機能構成例を示したブロック図である。図示するように、CSC20は、アプリケーション50と、CSP選択ライブラリ60を含む。CSP選択ライブラリ60は、エンド・ユーザ10からのリクエストに対して適切なCSP30を動的に判断して割り振るための、メタ・クラウドAPIのライブラリである。
アプリケーション50は、CSC20が自己のサービスをエンド・ユーザ10に提供するために実行される。アプリケーション50は、例えばJSP(JavaServer Pages)51とサーブレット52により実現され、要求テーブル53を含む。
要求テーブル53は、CSC20が要求するサービス・レベルを、CSP選択ライブラリ60用にXML等の形式で記載したテーブルである。各CSC20は、自己のアプリケーション50にはどの程度のパフォーマンスやセキュリティ・レベルなどが必要かということを資源情報の項目ごとに予め定義し、その情報を要求テーブル53として保持しておく。要求テーブル53は、アプリケーション50の起動時などに、CSP選択ライブラリ60の要求テーブルロード用メソッドによりロードされる。
CSP選択ライブラリ60は、CSC20が要求するサービス・レベルの情報と、CSD40が提供する資源情報を動的に取得・解析し、各メソッド(リクエスト)に対して適切なCSP30の情報をライブラリ内部で作成し、メソッドの実行をその適切なCSP30に対して行う。CSP選択ライブラリ60は、評価テーブル取得部61と、関連テーブル62と、照合部63と、分配テーブル64と、CSP選択部65とを含む。
評価テーブル取得部61は、各CSP30のサービス・レベル項目の評価をCSP選択ライブラリ60用にXML等の形で表したテーブルである評価テーブル42(後述する図3を参照)を、ネットワークを介してCSD40から取得する。本実施の形態では、評価テーブルを取得するテーブル取得部の一例として評価テーブル取得部61を設けている。
関連テーブル62は、アプリケーション50の実行時に呼び出されるそれぞれのメソッドについて、関連するサービス・レベルの項目をXML等の形式で記載したテーブルである。すなわち、関連テーブル62は、要求テーブル53に載っている資源情報の項目のうち、あるメソッドを呼び出す際にCSC20が要求するサービス・レベルが確保されるべき項目を、それぞれのメソッドについて予め定義したものである。
照合部63は、要求テーブル53と、関連テーブル62と、評価テーブル取得部61が取得した評価テーブル42とを照合して、後述する分配テーブル64を作成する。その際、照合部63は、それぞれのテーブルを照合することにより、あるメソッドに関連するものとして関連テーブル62で定義されている資源情報の項目のすべてに関して要求テーブル53で要求されているサービス・レベルを満たすCSP30を、それぞれのメソッドについて抽出する。本実施の形態では、サービス・プロバイダを抽出する抽出部の一例として、照合部63を設けている。
分配テーブル64は、各メソッドについて適切なCSP30をXML等の形式で記載したテーブルである。ここでの「適切」とは、あるメソッドに関連するものとして関連テーブル62で定義されている資源情報の項目のすべてが、要求テーブル53にて要求されているサービス・レベルを満たしている状態のことをいう。分配テーブル64は、アプリケーション50の起動時などの特定のタイミングでCSC20がCSP選択ライブラリ60の分配テーブル作成メソッドを呼び出すことにより、CSP選択ライブラリ60が内部的に作成する。
CSP選択部65は、アプリケーション50の実行によりあるメソッドが呼び出されるときに、分配テーブル64を参照することにより、そのメソッドについて適切なCSP30を選択する。そしてCSP選択部65は、CSP選択ライブラリ60のAPIを使い、そのメソッドをその適切なCSP30に対する命令に変換してそのCSP30に送る。本実施の形態では、抽出されたサービス・プロバイダに対する命令にメソッドを変換して送信する変換部の一例として、CSP選択部65を設けている。
図3は、本発明の実施の形態におけるCSD40の機能構成例を示したブロック図である。図示するように、CSD40は、CSP情報取得部41と、評価テーブル42と、評価テーブル通知部43とを含む。
CSP情報取得部41は、各CSP30(図1の例では、CSP1〜CSP4)から、ネットワークを介して、上述したような資源情報を取得する。この取得のためには、予め定めた期間ごとに各CSP30がCSD40に資源情報を送信してもよいし、または、いずれかのCSP30の資源情報に変更があるたびに、そのCSP30がCSD40に資源情報を送信してもよい。本実施の形態では、資源情報を取得する資源情報取得部および評価テーブルを作成または更新する作成部の一例として、CSP情報取得部41を設けている。
評価テーブル42は、各CSP30の各資源情報の項目に関する評価をCSP選択ライブラリ60用にXML等の形で表したテーブルである。CSP情報取得部41が資源情報の更新内容を取得することにより、評価テーブル42には各CSP30の最新の評価が記載されるようにする。
評価テーブル通知部43は、ネットワークを介して評価テーブル42を各CSC20に通知する。評価テーブル通知部43は、例えば各CSC20内の評価テーブル取得部61からの要求に基づいて受動的に評価テーブル42を送信してもよい(Pull型)。または、評価テーブル通知部43は、予め定めた期間ごとや評価テーブル42が更新されるたびに、CSD40から各CSC20に能動的に評価テーブル42を送信してもよい(Push型)。本実施の形態では、評価テーブルをサービス・コンシューマに通知する通知部の一例として、評価テーブル通知部43を設けている。
次に、要求テーブル53、関連テーブル62、評価テーブル42および分配テーブル64の具体例について説明する。図4および図5は、本発明の実施の形態におけるCSC20が使用する各テーブルの例を示した図である。このうち、図4は要求テーブル53、関連テーブル62、評価テーブル42の例を、図5は分配テーブル64の例を示している。要求テーブル53、関連テーブル62、評価テーブル42および分配テーブル64は、実際にはXML等の書式で記述されるが、ここでは便宜上、それらの内容を表で示している。
図4Aは、要求テーブル53の例である。例えば、図1のCSC1は、自己が使用するサービスの、「ネットワーク・パフォーマンス」、「仮想システムのパフォーマンス」、「稼働率」、「セキュリティ」および「CSP経営状態」を重要視するものとする。そこでCSC1は、これらの項目について要求するサービス・レベルを、例えば10段階の数値で図4Aのように定義している。また、図1のCSC2は、自己が重要視する項目について要求するサービス・レベルを、図4Aと同様に定義している。
図4では、レベルは「1」が最も高く、数字が大きくなるにつれて低くなるものとする。なお、10段階の数値は一例であり、例えば、「稼働率」であれば何%以上が「1」、それ未満の何%までが「2」、・・・のように、「セキュリティ」であればどの機能に対応していれば「1」、一部の機能に対応していなければ「2」、・・・などのように、より具体的にレベルを定義することができる。
図4Bは、関連テーブル62の例である。例えば、「Method1」については、図4Bに示すように、「ネットワーク・パフォーマンス」と「CSP経営状態」が関連項目として定義されている。一般に、メソッドごとに関連する項目は異なると考えられるが、この例では「CSP経営状態」はすべてのメソッドに関連するものとする。図4BがCSC1の関連テーブル62であるとすると、CSC1は、「Method1」が呼び出されるときには、「ネットワーク・パフォーマンス」と「CSP経営状態」の項目について、図4Aの要求テーブル53で定義したレベルが確保されることを要求することになる。なお、CSC2も図4Bと同様の関連テーブル62をもっている。
なお、関連テーブル62には、関連項目とともに各項目の重要度の情報を含めてもよい。そして、照合部63が関連テーブル62を参照して分配テーブル64を作成する際は、例えばこの重要度が高い関連項目について評価が高いCSP30を優先的に選択するなど、項目の重要度によって重み付けを行ってもよい。
CSP選択ライブラリ60は、アプリケーション50の実行時に呼び出されるすべてのメソッドについて、図4Bのように、関連する資源情報の項目を関連テーブル62で予め定義しておく。ただし、メソッドによっては適切なCSP30を選択することなくデフォルトのCSP30を使えばよい場合もある。その場合、そのメソッドについては関連テーブル62に載っていなくてもよい。
図4Cは、評価テーブル42の例である。ここでは、図4Aに示した「ネットワーク・パフォーマンス」、「仮想システムのパフォーマンス」、「稼働率」、「セキュリティ」および「CSP経営状態」の各項目について、CSP1〜CSP4の評価を示している。図4Cに示すように、評価テーブル42には、各CSP30に関する様々な資源情報の評価が、要求テーブル53のものと同じレベルの定義に従ってまとめられている。
以上、図4A〜図4Cに示したように、本実施の形態では、各CSC20およびCSD40がもつ要求テーブル53、関連テーブル62および評価テーブル42のフォーマットや資源情報の項目ごとのサービス・レベルの定義は、オープンな業界標準仕様などとして、コンピュータ・システム全体で共通のものを予め定義しておく。
また、図5Aおよび図5Bは、分配テーブル64の例である。例えば図5Aは、「Method1」について適切なCSP30がCSP1〜CSP4のうちのCSP2であることを示している。要求テーブル53、関連テーブル62および評価テーブル42から分配テーブル64を作成する方法については、この後具体的に説明する。
以下では、本実施の形態における各CSC20とCSD40の動作について説明する。図6は、本発明の実施の形態におけるCSC20がCSP30を選択する際に使用する分配テーブル64を作成する動作(分配テーブル作成メソッド)の例を示したフローチャートである。
まず、CSD40のCSP情報取得部41が、ネットワークを介して各CSP30(CSP1〜CSP4)から資源情報を取得する(ステップ11)。上述したように、CSP情報取得部41は、予め定めた期間ごとか、またはいずれかのCSP30の資源情報に変更があるたびに、その資源情報を取得する。次いで、CSD40は、CSP情報取得部41が取得した資源情報から、評価テーブル42を作成または更新する(ステップ12)。そしてこの評価テーブル42を、例えば予め定めた期間ごとか評価テーブル42が更新されるたびに、評価テーブル通知部43がネットワークを介して各CSC20に通知する(ステップ13)。
一方、各CSC20では、CSP選択ライブラリ60の評価テーブル取得部61がCSD40から評価テーブル42を取得する(ステップ21)。次いで、照合部63が、この評価テーブル42と、CSP選択ライブラリ60が予め保持している関連テーブル62と、アプリケーション50がもつ要求テーブル53とを取得する(ステップ22)。そして照合部63は、関連テーブル62に載っている1つのメソッドについて、要求テーブル53と評価テーブル42を照合する(ステップ23)。照合部63は、そのメソッドに関連するものとして関連テーブル62で定義されている資源情報の項目のすべてに関して要求テーブル53で要求されているサービス・レベルを満たすCSP30を、そのメソッドについて使用すべきCSP30であるとして、分配テーブル64に記載する(ステップ24)。他にもメソッドがあればステップ23に戻り、もうすべてのメソッドについて分配テーブル64に記載していれば動作を終了する(ステップ25)。
照合部63が行うステップ23とステップ24について、図4A〜図4Cに示した例を用いて詳しく説明する。まず「Method1」については、関連テーブル62で関連項目として定義されている項目が「ネットワーク・パフォーマンス」と「CSP経営状態」であるから、これらについて要求テーブル53で定義されている、「ネットワーク・パフォーマンス」が最高の「1」かつ「CSP経営状態」が「5」以上という要求レベルを満たすCSP30を、評価テーブル42の中から探す。この要求レベルを満たすものは、CSP1〜CSP4のうちでCSP2だけであるから、「Method1」について使用するCSPは「CSP2」と記載する。
また、「Method2」については、関連テーブル62によると関連項目が「セキュリティ」および「CSP経営状態」であるから、要求テーブル53で定義されている、「セキュリティ」が「3」以上かつ「CSP経営状態」が「5」以上という要求レベルを満たすCSP30を、評価テーブル42の中から探す。この要求レベルを満たすものはCSP1とCSP3の2つがあるが、この例ではCSP3を選ぶものとして、「Method2」について使用するCSPは「CSP3」と記載する。これは、「CSP経営状態」よりも「セキュリティ」の方が高いレベルが要求されていることから、「セキュリティ」についてCSP1とCSP3の評価を比べると、CSP1の「3」よりもCSP3の「2」の方が高いためである。このように、条件を満たすCSP30が複数存在するときは、そのメソッドについての関連項目の中で要求されるサービス・レベルが高い項目に着目し、その項目の評価が高いものを優先して選ぶようにしてもよい。
また、「Method3」については、関連テーブル62によると関連項目が「仮想システムのパフォーマンス」、「稼働率」および「CSP経営状態」であるから、要求テーブル53で定義されている、「仮想システムのパフォーマンス」が「3」以上、「稼働率」が「2」以上かつ「CSP経営状態」が「5」以上という要求レベルを満たすCSP30を、評価テーブル42の中から探す。この要求レベルを満たすものは、CSP1だけであるから、「Method3」について使用するCSPは「CSP1」と記載する。
以上のようにして作成される分配テーブル64が、図5Aに示したものである。なお、すべての関連項目について要求レベルを満たすCSP30が存在しないときは、そのメソッドについては例えばデフォルトのCSP30を、使用するCSPとしてもよい。または、要求レベルを満たす関連項目の個数が最も多いCSP30を、使用するCSPとしてもよい。
次に、各CSC20が分配テーブル64を用いて適切なCSP30にメソッドを送信する際の動作について説明する。図7は、本発明の実施の形態におけるCSC20がCSP30にメソッドを送信する際の動作例を示したフローチャートである。
まず、CSC20は、アプリケーション50を起動する(ステップ31)。アプリケーション50は、起動時にCSP選択ライブラリ60をロードする(ステップ32)。アプリケーション50内では、例えばサーブレット52が起動するときにCSP選択ライブラリ60のライブラリをロードする。そしてCSP選択ライブラリ60は、この起動時や、予め定めた期間ごと、または評価テーブル取得部61がCSD40から評価テーブル42を取得したときなどの適当なタイミングで図6の分配テーブル作成メソッドを実行し、分配テーブル64を作成している。
ここで、CSC20のアプリケーション50は、エンド・ユーザ10からのリクエスト(トランザクション)を受け付ける(ステップ33)。一般に、リクエストは複数のメソッドに分解されて1つずつ呼び出されるが、本実施の形態では、このときどのCSP30を使用してメソッドを呼び出すかということをアプリケーション50自体が指定する必要はない。その代わり、そのメソッドが実行されるのに適切なCSP30を、CSP選択ライブラリ60が分配テーブル64を用いて選択する(ステップ34)。そしてCSP選択ライブラリ60のCSP選択部65が、そのメソッドを選択されたCSP30に対する命令に変換して、CSP30にリクエストを行う(ステップ35)。すなわち、アプリケーション50は、CSP選択ライブラリ60のAPIを使って、そのメソッドを選択されたCSP30に送信する。他にも実行すべきメソッドがあればステップ34に戻り、もう実行すべきメソッドがなければ動作を終了する(ステップ36)。
本実施の形態では、CSC20がCSD40から評価テーブル42の更新を受け取る手法について、特にCSD40からのPush通知を利用することが可能である。このようなPush通知を利用した構成について、次に説明する。
本実施の形態では、例えば、いずれかのCSP30が災害、その他の障害によりダウンした状態となった場合には、そのCSP30の資源情報に変更があった(ダウンが起こった)タイミングで、CSD40のCSP情報取得部41がその変更の情報を取得するようにする。そして、CSD40は評価テーブル42を更新し、評価テーブル通知部43がその更新した評価テーブル42をすべてのCSC20に対してPush通知するようにする。これにより、評価テーブル42が更新された場合に各CSC20が最新の評価テーブル42をタイムリーに受け取るように実装することができる。さらに、Push通知された最新の評価テーブル42を取得したことに応じて各CSC20のCSP選択ライブラリ60が図6の分配テーブル作成メソッドを行えば、各CSC20は各メソッドについて現時点で適切なCSP30が記載された分配テーブル64をもつことができる。これにより、各CSC20は、各メソッドを呼び出すときに現時点で適切なCSP30を動的に選択することが可能となる。
図4A〜図4Cに示した例において、例えばCSP3がダウンした場合を考える。上述したように、「Method2」については適切なCSP30の候補として、CSP1とCSP3があった。しかし、この場合、各CSC20のCSP選択ライブラリ60はCSP3がダウンしたという情報を含んだ評価テーブル42を取得して図6の分配テーブル作成メソッドを行うため、「Method2」について使用すべきCSP30としてはCSP1が選ばれることになる。したがって、この場合に作成される分配テーブル64は、図5Bに示したものとなる。このように、各CSC20がCSD40からPush通知で最新の評価テーブル42を取得することにより、災害等があった場合でも、エンド・ユーザ10および各CSC20が受ける影響が最小限になるように、CSP30の選択を行うことが可能になる。
以上説明したように、本実施の形態では、各CSP30の資源情報の評価を評価テーブル42としてCSD40が提供し、自己が要求するサービス・レベルおよび各メソッドについて関連する資源情報の項目を、それぞれ要求テーブル53および関連テーブル62として各CSC20が定義する。そして、これらのテーブルのフォーマットや資源情報の項目ごとのサービス・レベルの定義を、コンピュータ・システム全体で共通のものにする。これにより、各CSC20は、分配テーブル64を用いて各メソッドについて適切なCSP30を選択して使用することが可能になる。
さらに本実施の形態では、各CSP30の資源情報に変更があるたびにCSD40が評価テーブル42を更新して各CSC20にPush通知し、各CSC20は最新の評価テーブル42を取得したことに応じて分配テーブル64を更新する。これにより、各CSC20は各メソッドについて現時点で適切なCSP30を選択して使用することが可能になる。
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図8は、CSC20やCSD40を実現するコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
なお、図8において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続してもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、およびフレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明のサービス・コンシューマおよびサービス・ディレクトリの機能は、すべてハードウェアで実現してもよいし、すべてソフトウェアで実現してもよい。また、ハードウェアおよびソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータ・プログラムとして実現することができる。このコンピュータ・プログラムは、コンピュータにより読み取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線または半導体システム(装置または機器)、あるいは、伝搬媒体が考えられる。また、コンピュータにより読み取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、および光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)およびDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神および範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…エンド・ユーザ、20…クラウド・サービス・コンシューマ(CSC)、30…クラウド・サービス・プロバイダ(CSP)、40…クラウド・サービス・ディレクトリ(CSD)、41…CSP情報取得部、42…評価テーブル、43…評価テーブル通知部、50…アプリケーション、51…JSP、52…サーブレット、53…要求テーブル、60…CSP選択ライブラリ、61…評価テーブル取得部、62…関連テーブル、63…照合部、64…分配テーブル、65…CSP選択部

Claims (12)

  1. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するステップと、
    取得された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、
    前記サービス・コンシューマがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップと
    を含む、方法。
  2. 前記複数のサービス・プロバイダのいずれかの前記資源情報に変更があるたびに前記評価テーブルを更新するステップをさらに含み、
    前記取得するステップでは、更新された前記評価テーブルを取得する、請求項1の方法。
  3. 前記抽出するステップでは、前記複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、当該一のサービス・プロバイダが利用不能であることを示す資源情報が反映された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、当該一のサービス・プロバイダを除いて当該複数のサービス・プロバイダの中から前記サービス・レベルを満たすサービス・プロバイダを抽出する、請求項2の方法。
  4. 前記抽出するステップでは、取得された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、サービス・プロバイダが提供するサービスの品質に影響を与え得る当該サービス・プロバイダの状態を表す情報の項目を含む当該メソッドの前記関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から抽出する、請求項1ないし請求項3のいずれかの方法。
  5. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を、予め定めた期間ごとに複数のサービス・プロバイダのそれぞれから取得するステップと、
    前記資源情報を前記複数のサービス・プロバイダについて共通の形式で表した評価テーブルを、取得された最新の前記資源情報に基づいて作成または更新するステップと、
    前記評価テーブルが更新されるたびに、更新された当該評価テーブルを取得するステップと、
    更新された前記評価テーブルを取得したことに応じて、当該評価テーブルを参照することにより、前記サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目であってサービス・プロバイダが提供するサービスの品質に影響を与え得る当該サービス・プロバイダの状態を表す情報の項目を含む当該メソッドの関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該サービス・コンシューマがメソッドを呼び出す前に予め抽出するステップと、
    前記サービス・コンシューマがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップとを含み、
    前記抽出するステップでは、前記複数のサービス・プロバイダのうちの一のサービス・プロバイダに障害が発生した場合に、当該一のサービス・プロバイダが利用不能であることを示す資源情報が反映された前記評価テーブルを参照することにより、前記サービス・コンシューマが呼び出すメソッドごとに、当該一のサービス・プロバイダを除いて当該複数のサービス・プロバイダの中から前記サービス・レベルを満たすサービス・プロバイダを抽出する、方法。
  6. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマから当該サービス・プロバイダにメソッドを送信する方法であって、
    エンド・ユーザからのリクエストを受け付けるステップと、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを参照することにより、当該サービス・コンシューマが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている当該資源情報の項目である関連項目に関して当該サービス・コンシューマが要求するサービス・レベルを満たすものとして、前記複数のサービス・プロバイダの中から当該サービス・コンシューマがメソッドを呼び出す前に予め抽出されたサービス・プロバイダのうち、当該エンド・ユーザから受け付けた前記リクエストに基づいて当該サービス・コンシューマが呼び出すメソッドについて抽出されたサービス・プロバイダを選択するステップと、
    前記サービス・コンシューマが呼び出すメソッドを当該メソッドについて選択されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信するステップと
    を含む、方法。
  7. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するサービス・コンシューマと、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって前記サービス・コンシューマがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを提供するサービス・ディレクトリとを備え、
    前記サービス・コンシューマが、
    前記サービス・ディレクトリから前記評価テーブルを取得するテーブル取得部と、
    前記テーブル取得部が取得した前記評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、
    自装置がメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部と
    を備える、コンピュータ・システム。
  8. 予め定めた期間ごとに前記複数のサービス・プロバイダのそれぞれから前記資源情報を取得する資源情報取得部と、
    前記資源情報取得部が取得した最新の前記資源情報に基づいて前記評価テーブルを作成または更新する作成部と、
    前記作成部が作成または更新した前記評価テーブルを前記サービス・コンシューマに通知する通知部と
    を前記サービス・ディレクトリが備える、請求項7のコンピュータ・システム。
  9. 前記テーブル取得部が新たな前記評価テーブルを取得したことに応じて前記抽出部が前記抽出する処理を行う、請求項8のコンピュータ・システム。
  10. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータであって、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって自装置がサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、
    前記テーブル取得部が取得した前記評価テーブルを参照することにより、自装置が呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して自装置が要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、自装置がメソッドを呼び出す前に予め抽出する処理を行う抽出部と、
    自装置がメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部と
    を備える、コンピュータ。
  11. 予め定めた期間ごとに前記複数のサービス・プロバイダのそれぞれから取得された最新の前記資源情報に基づいて作成または更新された前記評価テーブルを前記テーブル取得部が取得し、
    前記テーブル取得部が新たな前記評価テーブルを取得したことに応じて前記抽出部が前記抽出する処理を行う、請求項10のコンピュータ。
  12. サービス・プロバイダを使用してエンド・ユーザにサービスを提供するコンピュータが当該サービス・プロバイダにメソッドを送信するように機能させるプログラムであって、
    前記コンピュータを、
    サービス・プロバイダが提供するサービスおよび/または当該サービス・プロバイダの品質または状態を表す情報であって前記コンピュータがサービス・プロバイダを選択する際の基準となる資源情報を複数のサービス・プロバイダについて共通の形式で表した評価テーブルを取得するテーブル取得部と、
    前記テーブル取得部が取得した前記評価テーブルを参照することにより、前記コンピュータが呼び出し得るメソッドごとに、当該メソッドに関連するものとして予め定義されている前記資源情報の項目である関連項目に関して当該コンピュータが要求するサービス・レベルを満たすサービス・プロバイダを、前記複数のサービス・プロバイダの中から、当該コンピュータがメソッドを呼び出す前に予め抽出する抽出部と、
    前記コンピュータがメソッドを呼び出すときに、当該メソッドを当該メソッドについて予め抽出されたサービス・プロバイダに対する命令に変換して、当該命令を当該サービス・プロバイダに送信する変換部
    として機能させる、プログラム。
JP2011229031A 2011-10-18 2011-10-18 サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム Expired - Fee Related JP5936224B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011229031A JP5936224B2 (ja) 2011-10-18 2011-10-18 サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム
US13/649,516 US9176710B2 (en) 2011-10-18 2012-10-11 Dynamically selecting service provider, computing system, computer, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011229031A JP5936224B2 (ja) 2011-10-18 2011-10-18 サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム

Publications (2)

Publication Number Publication Date
JP2013089033A JP2013089033A (ja) 2013-05-13
JP5936224B2 true JP5936224B2 (ja) 2016-06-22

Family

ID=48086862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011229031A Expired - Fee Related JP5936224B2 (ja) 2011-10-18 2011-10-18 サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム

Country Status (2)

Country Link
US (1) US9176710B2 (ja)
JP (1) JP5936224B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150074678A1 (en) * 2013-09-09 2015-03-12 Avraham Vachnis Device and method for automating a process of defining a cloud computing resource
WO2015065421A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Optimizing a computing task for deployment on a workload tuned server
US9923773B2 (en) * 2015-06-04 2018-03-20 Cisco Technology, Inc. Dynamic, broker-based virtual service platform (VSP) engagement for computer networks
JP6727804B2 (ja) * 2015-12-25 2020-07-22 株式会社ユーズテック ミドルウェア
US10535002B2 (en) 2016-02-26 2020-01-14 International Business Machines Corporation Event resolution as a dynamic service
JP6872117B2 (ja) 2017-01-26 2021-05-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
CN111222903B (zh) * 2018-11-27 2023-04-25 北京嘀嘀无限科技发展有限公司 用于处理来自在线按需服务平台的数据的系统和方法
KR102418251B1 (ko) * 2020-11-24 2022-07-07 주식회사 이노그리드 장애 대비를 위한 멀티클라우드 서비스 시스템 및 방법
US11924292B2 (en) 2020-12-04 2024-03-05 International Business Machines Corporation Deployment updates in multivendor cloud environments

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433929B2 (en) * 2000-12-29 2008-10-07 At&T Mobility Ii Llc Intelligent network selection based on quality of service and applications over different wireless networks
CN1509444A (zh) * 2001-02-20 2004-06-30 用于监视服务提供商成绩的系统和方法
US8073967B2 (en) * 2002-04-15 2011-12-06 Fisher-Rosemount Systems, Inc. Web services-based communications for use with process control systems
US20040194085A1 (en) * 2002-05-09 2004-09-30 Globespanvirata Incorporated Method and system for providing capability management and prioritization in a computer system
AU2003200220B1 (en) * 2002-05-23 2003-05-01 River Dynamics Pty Ltd System and method for selecting a service provider
TWI241503B (en) 2002-08-28 2005-10-11 Ibm Network system, method and recording medium of searching for software services
US7809595B2 (en) * 2002-09-17 2010-10-05 Jpmorgan Chase Bank, Na System and method for managing risks associated with outside service providers
US20040098606A1 (en) * 2002-11-18 2004-05-20 International Business Machines Corporation System, method and program product for operating a grid of service providers based on a service policy
JP2006072785A (ja) * 2004-09-03 2006-03-16 Hitachi Electronics Service Co Ltd サービス利用のためのリクエストメッセージ制御方法、および、サービス提供システム
US8140371B2 (en) * 2005-02-18 2012-03-20 International Business Machines Corporation Providing computing service to users in a heterogeneous distributed computing environment
US7904875B2 (en) * 2005-12-12 2011-03-08 Microsoft Corporation Configuring and allocating software product technical services
US7930681B2 (en) * 2005-12-30 2011-04-19 Sap Ag Service and application management in information technology systems
US20080195410A1 (en) * 2007-02-12 2008-08-14 Pascal Stolz Service provider selection system and method
US7921195B2 (en) * 2008-06-09 2011-04-05 International Business Machines Corporation Optimizing service processing based on business information, operational intelligence, and self-learning
JP4868262B2 (ja) * 2009-08-26 2012-02-01 エヌイーシーコンピュータテクノ株式会社 分散処理システム、そのジョブ振り分け方法及びプログラム
JP4939594B2 (ja) * 2009-11-30 2012-05-30 インターナショナル・ビジネス・マシーンズ・コーポレーション プライマリクラウドが提供したサービスレベルの実績値又は更新されたプリファレンス情報に基づいて、サービスレベルアグリーメントを動的に決定してサービスを提供することができるクラウドシステムを構成する装置、方法及びコンピュータプログラム
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US20120030356A1 (en) * 2010-07-30 2012-02-02 International Business Machines Corporation Maximizing efficiency in a cloud computing environment
US8607242B2 (en) * 2010-09-02 2013-12-10 International Business Machines Corporation Selecting cloud service providers to perform data processing jobs based on a plan for a cloud pipeline including processing stages
US9015320B2 (en) * 2011-07-12 2015-04-21 Bank Of America Corporation Dynamic provisioning of service requests

Also Published As

Publication number Publication date
US9176710B2 (en) 2015-11-03
JP2013089033A (ja) 2013-05-13
US20130097578A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
JP5936224B2 (ja) サービス・プロバイダを動的に選択する方法、コンピュータ・システム、コンピュータおよびプログラム
US11159411B2 (en) Distributed testing service
US9600353B2 (en) Persistent and resilient worker processes
CN102223398B (zh) 一种部署在云计算环境中部署服务的方法
JP5496683B2 (ja) カスタマイズ方法及びコンピュータシステム
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN113312037B (zh) 应用于微服务的数据处理方法、装置、设备和存储介质
US20120089549A1 (en) Rule authoring for events in a grid environment
US20160371102A1 (en) System and method for supporting execution of application based on multi-platform using virtual platform service
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
US11522747B1 (en) Cloud service outage reporting
US11531526B1 (en) Creating portable serverless applications
RU2580079C2 (ru) Инфраструктура активации приложений
JP6385471B2 (ja) 移行および遠隔ランタイム統合
US20100023950A1 (en) Workflow processing apparatus
EP1949228B1 (en) Asynchronous just-in-time compilation
US11494184B1 (en) Creation of transportability container files for serverless applications
CN113448650A (zh) 直播功能插件加载方法、装置、设备及存储介质
CN110717992B (zh) 调度模型的方法、装置、计算机系统和可读存储介质
US10579373B2 (en) Seamless extension porting
US11513833B1 (en) Event listener interface for container-based execution of serverless functions
US11340952B2 (en) Function performance trigger
JP5839604B2 (ja) Apl−gw−fe
JP7332950B2 (ja) サービス連携支援装置、サービス連携支援方法、および、サービス連携支援プログラム
JP6920501B1 (ja) 情報処理システム、プログラム、及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160412

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160506

R150 Certificate of patent or registration of utility model

Ref document number: 5936224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees