(57)【要約】【課題】複数のリクエスタとプロバイダとを有する分散コンピューティング環境内でサービス品質を保証する方法、システム、およびコンピュータ・プログラムを提供する。【解決手段】前記方法がサービス品質要件を有する、あるサービスのための要求をブロードキャストするステップであって、該要求はブローカによって受け取られ、該ブローカは前記サービス品質要件受け取ることに依存して複数の参加プロバイダを特定する、ステップと、前記複数の参加プロバイダから、前記要求されるサービスと、要求されるサービスに関係する操作パラメータを有するメタデータとを受け取るステップと、前記要求されるサービスのメタデータおよび前記サービス品質要件を分析するステップであって、その結果、前記要求されるサービスを前記サービス品質要件の通りに履行する参加プロバイダが特定される、ステップとを有する。【選択図】図４
2008522263.tif 000002
【特許請求の範囲】
【請求項１】
複数のリクエスタとプロバイダとを有する分散コンピューティング環境内でサービス品質を保証する方法であって、
サービス品質要件を有する、あるサービスのための要求をブロードキャストするステップであって、該要求はブローカによって受け取られ、該ブローカは前記サービス品質要件受け取ることに依存して複数の参加プロバイダを特定する、ステップと、
前記複数の参加プロバイダから、前記要求されるサービスと、要求されるサービスに関係する操作パラメータを有するメタデータとを受け取るステップと、
前記要求されるサービスのメタデータおよび前記サービス品質要件を分析するステップであって、その結果、前記要求されるサービスを前記サービス品質要件の通りに履行する参加プロバイダが特定される、ステップと、
を有する方法。
【請求項２】
参加プロバイダを特定する際、前記リクエスタが前記参加プロバイダとバインドする、請求項１に記載の方法。
【請求項３】
複数の参加プロバイダを特定する際、前記リクエスタが前記複数の参加プロバイダとバインドする、請求項１に記載の方法。
【請求項４】
前記要求されるサービスを前記サービス品質要件の通りに受け取る際、前記リクエスタが前記参加プロバイダとバインドする規約を形成する、請求項１に記載の方法。
【請求項５】
前記複数のサービス品質要件が複数の操作パラメータを有する、請求項１に記載の方法。
【請求項６】
各々の操作パラメータが優先順位を決める重み付けを有する、請求項１に記載の方法。
【請求項７】
前記分析するステップが、前記メタデータと前記サービス品質要件との間で最も一致するものを決定するためにルール・エンジンを用いて分析するステップをさらに有する、請求項１に記載の方法。
【請求項８】
前記サービスをサービス品質要件の通りに履行する参加プロバイダを特定する際、前記リクエスタが前記参加プロバイダとバインドする規約を形成する、請求項１に記載の方法。
【請求項９】
複数のリクエスタとプロバイダとを有する分散コンピューティング環境でプロバイダをリクエスタに照合させる方法であって、
サービス品質要件を有する、あるサービスの要求をブロードキャストするステップであって、該要求は、レジストリ・コンポーネントが受け取って複数の参加プロバイダを決定するステップと、
前記複数の参加プロバイダから、前記要求されるサービスと、前記要求されるサービスの操作パラメータを有するメタデータとを受け取るステップと、
前記メタデータを前記要求されるサービスのサービス品質要件と比較するステップであって、その結果、前記要求されるサービスを前記サービス品質要件の通りに履行したプロバイダが特定される、ステップと、
を有する方法。
【請求項１０】
複数のリクエスタとプロバイダとを有する分散コンピューティング環境内でサービス品質を保証するブローカであって、
複数の参加プロバイダを決定するためのレジストリ・コンポーネントで受け取られるように、複数のサービス品質要件を有する、あるサービスの要求をブロードキャストする、ブロードキャスト・コンポーネントと、
前記複数の参加プロバイダから、前記要求されるサービスと、前記要求されるサービスの操作パラメータを有するメタデータとを受け取るレシーバと、
前記メタデータを前記要求されるサービスの前記サービス品質要件と比較するコンパレータ、および、前記要求されるサービスを前記サービス品質要件の通りに履行したプロバイダを特定する識別子と、
を有するブローカ。
【請求項１１】
参加プロバイダを特定する際、前記リクエスタが前記参加プロバイダとバインドする、請求項９に記載の方法。
【請求項１２】
複数の参加プロバイダを特定する際、前記リクエスタが前記複数の参加プロバイダとバインドする、請求項９に記載の方法。
【請求項１３】
前記要求されるサービスを前記サービス品質要件通りに受け取る際、前記リクエスタが前記参加プロバイダとバインドする規約を形成する、請求項９に記載の方法。
【請求項１４】
前記サービス品質要件が複数の操作パラメータを有する、請求項９に記載の方法。
【請求項１５】
各々の操作パラメータが優先順位を決める重み付けを有する、請求項９に記載の方法。
【請求項１６】
前記比較するステップが、前記メタデータと前記サービス品質要件との間で最も一致するものを決定するために、ルール・エンジンを用いて分析するステップをさらに有する、請求項９に記載の方法。
【請求項１７】
前記サービスをサービス品質要件の通りに履行する参加プロバイダを特定する際、前記リクエスタが前記参加プロバイダとバインドする規約を形成する、請求項９に記載の方法。
【請求項１８】
複数のリクエスタとプロバイダとを有する分散コンピューティング環境内でサービス品質を保証するシステムであって、
複数のリクエスタからサービスの要求を受け取るブローカを有し、前記各要求がサービス品質要件を有し、前記ブローカがディレクトリ内でルックアップを行って、前記受け取った要求に一致し、かつ前記サービス品質要件の範囲内である、サービスを登録するプロバイダを特定する、システム。
【請求項１９】
コンピュータ・プログラムをコンピュータでランするとき、請求項１から９の本発明を実行するように動作するソフトウェア・コード部分を有する、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散コンピューティング環境でサービス品質を保証する方法、システム、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ｅビジネスは情報技術で急速に発展している分野であり続けている。典型的なｅビジネス取引は、インターネットなどのコンピュータ・ネットワークでの商品の売買を含む。一般的に企業体は異種システム、アプリケーション、データベース、および通信技術を使ってインターネット上で取引を行う傾向にある。これらインターネット型ｅビジネス取引は典型的には人とプログラムの対話によって定義されてきた。例えば、当該対話は個人がネットワーク・ブラウザ上でプログラムにアクセスするのを可能にする。これらネットワーキング・システムは多くの面で画期的であるが、それでもなお当該ネットワーキング・システムにはいくつかの制限がある。
【０００３】
この点に関し、ウエブ・サービスが次世代の分散データ処理システムを構築するインターネット上で使用するツールとして出現している。基本的に、ウエブ・サービスは異種コンピュータ・システムがネットワーク上でシームレスに、特にそれによってクロス・プラットフォーム・アプリケーションの統合が起こるように通信できるビジネスおよびコンシューマ・アプリケーションを必要とする。当該ウエブ・サービスは典型的には、ＸＭＬおよび簡易オブジェクト・アクセス・プロトコル（ＳＯＡＰ）などの標準技術に依存する。ウエブ・サービスのリクエスタとプロバイダとの間のメッセージはＸＭＬフォーマットで通信され、ＨＴＴＰ接続でネットワーク中立のＳＯＡＰを使って伝えられる。その結果、ウエブ・サービスはｅビジネスに関わる多様なコンピュータおよびソフトウェアの統合を統一するアプローチを提供する。このアプローチを使うと、ユーザとプログラムの対話を必要とせずにプログラム間の対話を促し、このことが当然著しい利点となる。
【０００４】
典型的なウエブ・サービスの商取引では、サービス・リクエスタ・アプリケーションが機能を指定しウエブ・サービスの登録プロバイダを探すことによってウエブ・サービス・レジストリを照会する。ウエブ・サービス・プロバイダは典型的には自身が提供するサービスをウエブ・サービス記述言語（ＷＳＤＬ）と呼ばれる標準的な符号化を使って公開（例、広告）する。ウエブ・サービス・リクエスタは、ウエブ・サービス・プロバイダへの接続方法など、レジストリから保管された情報を検索する。このように、一旦選択されたら、リクエスタ・アプリケーションとプロバイダ・アプリケーションは商取引を成立させるために通信する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、一旦商取引が成立したら、すなわちリクエスタがリクエスタのニーズに合致するサービスに関してプロバイダと契約してしまったら、サービス品質要件は考慮されないことが多く、リクエスタが結果に失望するのはよくあることである。前述の問題はウエブ・サービスだけに限らず、グリッド・コンピューティング環境においてはサービスを処理するとき等、サービス品質要件が考慮されないことがよくある。
【０００６】
そのため、先行技術において前述の問題を改善する必要がある。
【課題を解決するための手段】
【０００７】
第１の側面から見て、本発明は複数のリクエスタとプロバイダを有する分散コンピューティング環境内でサービス品質を保証する方法を提供し、前記方法は、サービス品質要件を有する、あるサービスのための要求をブロードキャストするステップであって、該要求はブローカによって受け取られ、該ブローカは前記サービス品質要件受け取ることに依存して、複数の参加プロバイダを特定する、ステップと、複数の参加プロバイダから、要求されるサービスと、要求されるサービスに関係する操作パラメータを有するメタデータとを受け取るステップと、要求されるサービスのメタデータおよびサービス品質要件を分析するステップであって、その結果、要求されるサービスをサービス品質要件の通りに履行する参加プロバイダが特定されるステップとを有する。
【０００８】
有利なことに、本発明は、リクエスタは、要求されるサービスが適合するべきパラメータを詳述する多数のサービス品質パラメータを指定できる。例えば、サービス品質パラメータは、要求されるサービスを２時間以内に実施し、かつデータの正確さが９０パーセント以上とすると明記できる。サービスの要求は、要求されるサービスを提供できる多数のプロバイダを特定するレジストリおよび要求されるサービス品質パラメータに送信される。
【０００９】
好ましくは、本発明は、参加プロバイダを特定する際、リクエスタが参加プロバイダとバインドする方法を提供する。
【００１０】
好ましくは、本発明は、複数の参加プロバイダを特定する際、リクエスタが複数の参加プロバイダとバインドする方法を提供する。
【００１１】
好ましくは、本発明は、要求されるサービスをサービス品質要件通りに受け取る際、リクエスタが参加プロバイダとバインドする規約を形成する方法を提供する。
【００１２】
好ましくは、本発明は、サービス品質要件が複数の操作パラメータを有する方法を提供する。
【００１３】
好ましくは、本発明は、各々の操作パラメータが優先順位を決定する重み付けを有する方法を提供する。
【００１４】
好ましくは、本発明は、分析するステップが、メタデータとサービス品質要件との間で最も一致するものを決定するためにルール・エンジンを用いて分析するステップをさらに有する方法を提供する。
【００１５】
好ましくは、本発明は、サービスをサービス品質要件の通りに履行する参加プロバイダを特定する際、リクエスタが参加プロバイダとバインドする規約を形成する方法を提供する。
【００１６】
第２の側面から見ると、本発明は、複数のリクエスタとプロバイダとを有する分散コンピューティング環境でプロバイダをリクエスタに照合させる方法を提供し、前記方法は、サービス品質要件を有する、あるサービスの要求をブロードキャストするステップであって、該要求は、レジストリ・コンポーネントが受け取って複数の参加プロバイダを決定するステップと、複数の参加プロバイダから、要求されるサービスと、要求されるサービスの操作パラメータを有するメタデータとを受け取るステップと、メタデータを要求されるサービスのサービス品質要件と比較するステップであって、その結果、要求されるサービスをサービス品質要件の通りに履行するプロバイダが特定されるステップとを有する。
【００１７】
好ましくは、本発明は、複数のリクエスタとプロバイダとを有する分散コンピューティング環境内でサービス品質を保証するブローカを提供し、前記ブローカは、複数の参加プロバイダを決定するためのレジストリ・コンポーネントで受け取られるように、複数のサービス品質要件を有する、あるサービスの要求をブロードキャストする、ブロードキャスト・コンポーネントと、複数の参加プロバイダから、要求されるサービスと、要求されるサービスの操作パラメータを有するメタデータとを受け取るレシーバと、メタデータを要求されるサービスのサービス品質要件とを比較するコンパレータ、および、要求されるサービスをサービス品質要件の通りに履行するプロバイダを特定する識別子とを有する。
【００１８】
好ましくは、本発明は、プロバイダを特定する際、バインディング・コンポーネントがリクエスタと特定されたプロバイダとの契約を結ぶブローカを提供する。
【００１９】
好ましくは、本発明は、プロバイダを特定する際、バインディング・コンポーネントがリクエスタと複数の特定されたプロバイダとの契約を結ぶブローカを提供する。
【００２０】
好ましくは、本発明は、サービス品質要件が複数の操作パラメータを有するブローカを提供する。
【００２１】
好ましくは、本発明は、各々の操作パラメータが優先順位を決める重み付けを有するブローカを提供する。
【００２２】
好ましくは、本発明は、コンパレータ・コンポーネントがメタデータを分析して、最近傍数学的アルゴリズムを使い、メタデータとサービス品質要件との間で最も一致するものを決定するステップを有するブローカを提供する。
【００２３】
第３の側面から見ると、本発明は、複数のリクエスタとプロバイダとを有する分散コンピューティング・システム内でサービス品質を保証するシステムを提供し、前記システムが、複数のリクエスタからサービスの要求を受け取るブローカを有し、各要求がサービス品質要件を有し、前記ブローカがディレクトリ内でルックアップを行って、受け取った要求に一致し、かつ前記サービス品質要件の範囲内である、サービスを登録するプロバイダを特定するブローカを有する。
【００２４】
第４の側面から見ると、本発明は、デジタル・コンピュータの内部メモリにロード可能で、コンピュータ・プログラムをコンピュータ上でランするとき、前述した発明を実行するように動作するソフトウェア・コード部分を有するコンピュータ・プログラムを提供する。
【発明を実施するための最良の形態】
【００２５】
図１は、双方向通信回線でウエブ・サービス・プロバイダ１０５およびウエブ・サービス・リクエスタ１００を連結したネットワーク１１０にリンクする一または複数のウエブ・サービス・プロバイダ１０５と一または複数のウエブ・サービス・リクエスタ１００を有する異種ネットワーク化コンピューティング環境のある実施例を示す。ネットワーク１１０は好ましくはインターネットであるが、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークなど他のネットワークも想定される。ネットワーク１１０は例えばＨＴＴＰなど適切なネットワーク・プロトコルと協働するように作動する。ネットワーク１１０はモジュールまたはコンポーネント間の相互依存性を減らすように緩く連結してモジュール間の設計するのが好ましい。また、記載するネットワークを図示しているが、ウエブ・サービス・リクエスタ１０５とウエブ・サービス・プロバイダ１００を密に連結した独立型コンピュータ・システムも予想されることは認識されるであろう。
【００２６】
ウエブ・サービス環境では、ウエブ・サービス・プロバイダ１０５はそのサービスをユニバーサル・ディスクリプション・ディスカバリ・アンド・インテグレーション（ＵＤＤＩ）ウエブ・サービス・レジストリ１１５を介して公開する。ウエブ・サービス・レジストリ１１５は、ウエブ・サービス・リクエスタ１００に自社のサービスを記述し他社のサービスを発見する統一された方法を提供するグローバルな公開オンライン・ディレクトリであることが好ましい。基本的に、ＵＤＤＩウエブ・サービス・レジストリ１１５はウエブ・サービス・プロバイダ１０５のリストを含み、各リストは各ウエブ・サービス・プロバイダ１０５が提供するウエブ・サービスのカテゴリーを含む。ＵＤＤＩレジストリ１１５は、ウエブ・サービス・リクエスタ１００が共有ディレクトリにアクセスでき、かつウエブ・サービス・プロバイダ１０５のサービスを公開できるＸＭＬインターフェースを提供する。周知のごとく、ウエブ・サービス・レジストリ１１５は、ウエブ・サービス・リクエスタ１００が入力した要求のいくつかの属性を定義できるウエブ・ページの作成を可能にするアプリケーションを使用する。ウエブ・サービス・レジストリ１１５はさらに、ウエブ・サービス・プロバイダ１０５からブロードキャストされるサービス品質要件に照合させるウエブ・サービス・ブローカ１２５を有する。
【００２７】
ウエブ・サービス型の環境が好ましいが、オンデマンドでサービス・リソースをリンクする他のシステムも想定される。これら属性はウエブ・サービス・リクエスタ１００が望む商品およびサービス、情報等の種類に関係し、当然システムで使用可能である。例えば、ウエブ・サービス・リクエスタ１００は特定のビジネス・アプリケーションの情報を要求する。
【００２８】
図２を参照すると、ウエブ・サービス・リクエスタ１００とウエブ・サービス・プロバイダ１０５が使用できるネットワーク接続されたコンピュータ環境の多くの好適な実施例の１つを図示している。各ウエブ・サービス・プロバイダ１０５とウエブ・サービス・リクエスタ１００はコンピュータ・システム２１０と一緒に使うように作動する。コンピュータ・システム２１０はクライアント・コンピュータ、サーバー・コンピュータ、もしくは携帯機器等など、どのタイプのコンピュータまたは他のプログラム可能な電子機器でもよい。
【００２９】
各コンピュータ・システム２１０は多数のアプリケーション・プログラム、すなわちウエブ・サービス・リクエスタ・アプリケーション２１５、ブラウザ２２０、およびサービス品質ブローカ２００を有する。ウエブ・サービス・リクエスタ・アプリケーション２１５は簡易オブジェクト・アクセス・プロトコル（ＳＯＡＰ）要求を生成して、それを直接ウエブ・サービス・プロバイダ１０５に、またはウエブ・サービス・レジストリ１１５を介して他のウエブ・サービス・プロバイダ１０５に送信するように作動する。ＳＯＡＰはウエブ・サービス・リクエスタ１００の一または複数のアプリケーションと一または複数のウエブ・サービス・プロバイダ１０５とのＸＭＬ交換を助ける１セットのルールである。
【００３０】
ウエブ・サービス・リクエスタ１００は以下説明するようにウエブ・サービス・プロバイダ１０５からの応答を受け取り解釈する。また、ウエブ・サービス・リクエスタ・アプリケーション２１５はレガシー・アプリケーション用のプラグイン型でもよい。当該レガシー・アプリケーションはＳＯＡＰおよびＷＳＤＬをハンドルする機能を追加することによってウエブ・サービス環境に変換されるであろう。他の好適な環境では、ブラウザ２２０をクライアント・サーバー環境で使用することもでき、ブラウザ２２０がアプリケーション・サーバーのウエブ・サービス・リクエスタ・アプリケーション２１５と対話するであろう。各コンピュータ・システム２１０は前に説明したようにネットワーク１１０で各他のコンピュータ・システムと通信する。
【００３１】
以下説明するように、サービス品質ブローカ２００をウエブ・サービス・プロバイダ１０５およびリクエスタ１００と関係する各コンピュータ・システム２１０に配置する。サービス品質ブローカ２００は要求されるサービスと関係する多数のサービス品質要件を入力するインターフェースを提供する。サービス品質ブローカ２００のコンポーネントは図３を参照して以下説明する。
【００３２】
図３は、要求を送受信するためにウエブ・ブラウザ２２０と協働するように作動するサービス品質ブローカ２００を示す。サービス品質ブローカ２００は要求されるサービスのサービス品質要件を定め、特定されるサービス品質要件の範囲内でサービスを競い合うことに同意する複数のサービス・プロバイダ１０５を特定し、要求されるサービスを引き渡すウエブ・サービス・プロバイダ１０５の各々に対して、ウエブ・サービス・リクエスタ１００が好ましいサービスを選択するように作動する。好ましいサービスを選択する際、リクエスタは追加サービスに関してウエブ・サービス・プロバイダ１０５と契約してもよい。
【００３３】
サービス品質ブローカ２００は、ウエブ・サービス・リクエスタ・アプリケーション２１５の機能性を修正および拡張する一または複数のコンポーネントを有する。コンポーネントは、ウエブ・サービス・リクエスタ１００が指定する一または複数のサービス品質パラメータを受け取るインターフェースを有するジェネレータ・コンポーネント３００、サービスの要求をサービス品質要件と一緒に多数のウエブ・サービス・プロバイダ１０５にブロードキャストするブロードキャスト・コンポーネント３１０、履行されるサービスおよびサービス品質要件に関する統計データを受け取るレシーバ・コンポーネント３０５、どのサービス・プロバイダが要求されるサービス品質要件の範囲内で要求されるサービスを履行したかを決定するインテリジェント・エージェント３１５、およびそのサービスがサービス品質パラメータを満たすと決定される、またはほぼ満たすと決定されるウエブ・サービス・プロバイダ１０５の１つとバインドするバインディング・コンポーネント３２０を有する。
【００３４】
サービスが一定のサービス品質要件の範囲内で履行されることを要求するには、まず、ウエブ・サービス・リクエスタ１００は、サービス・プロバイダ１０５に対してどの基準なら契約することに同意するのかを確認しなければならない。例えば、ある特定の要求に関し、ウエブ・サービス・リクエスタ１００は要求が指定される期限内で完了することが好ましいと決定することがあり、そのためウエブ・サービス・プロバイダ１０５が指定される期限内に作業を実行するためにウエブ・サービス・リクエスタ１００はこれら要求事項をウエブ・サービス・プロバイダ１０５にブロードキャストする。ウエブ・サービス・プロバイダ１０５のすべてから作業が返されて初めて、ウエブ・サービス・リクエスタ１００は最も好ましいウエブ・サービス・プロバイダ１０５と契約する。代わりの方法として、ウエブ・サービス・リクエスタ１００は、最も速く要求に返信したウエブ・サービス・プロバイダと契約してもよい。
【００３５】
サービス品質要件は以下のパラメータのうちの一または複数のパラメータを有することができる。
・サービスの完了にかかる時間
○サーバーの待ち時間、ＨＴＴＰ転送メカニズムの不信頼度を考慮する
・完了したサービスの正確さ
・完了したサービスのコスト
・データを処理している間のリクエスタのデータのセキュリティ
・履行するサービスの種類
・サービスをある特定のサービス・プロバイダが行うか、または他のサービス・プロバイダに下請するか
・サービスのアクセス可能性
【００３６】
ウエブ・サービス・リクエスタ１００は上記パラメータのうちいくつ指定してもよいので、ウエブ・サービス・リクエスタ１００がそのサービスをウエブ・サービス・プロバイダ１０５に履行して欲しいパラメータの組み合わせとなる。各パラメータは重み付けを有してもよい。各重み付けはパラメータにより高いもしくはより低い優先度を与える。これら重み付けはウエブ・サービス・リクエスタ１００がその要求をウエブ・サービス・レジストリ１１５に通信する時点で選択できる。重み付けはウエブ・サービス・リクエスタにとってのパラメータの重要度を決めることができる。例は以下のとおりである。
【００３７】
【表１】
2008522263.tif 000003
【００３８】
上記表に示すように、サービス品質パラメータの各々に重み付けを割り当てる。この例では、数値１は数値２よりも重要性が高いが、当業者には他の値を使用して重要性の高さまたは低さを表せることは認識されるであろう。
【００３９】
上記表を参照すると、パラメータの各々に１から６までの優先度の重み付けを割り当てている。これはウエブ・サービス・ブローカ１１５に、どのパラメータがウエブ・サービス・リクエスタ１００にとって重要性が高いかを知らせる。
【００４０】
好ましくは、ウエブ・サービス・ブローカ１１５は、指定のパラメータ内かつ割り当てられる優先度の重み内で適合してサービスを履行できるウエブ・サービス・プロバイダ１０５を照合する。ウエブ・サービス・リクエスタ１００が要求するパラメータと一致するウエブ・サービス・プロバイダ１０５が複数いることもある。この場合、ウエブ・サービス・ブローカ１１５はパラメータを特定されるウエブ・サービス・プロバイダ１０５全部にブロードキャストする。代わりの方法として、ウエブ・サービス・ブローカ１１５は最も優先順位の高いものだけに従って、ウエブ・サービス・プロバイダと要求されるパラメータとを照合してもよい。
【００４１】
リクエスタ１００およびサービス・プロバイダ１０５がサービス品質要件をうまく通信するには、サービス品質パラメータを統一したフォーマットで記述する標準的な表現および表記法を開発するのが賢明である。
【００４２】
ウエブ・サービス環境では、ウエブ・サービスを記述するＷＳＤＬと呼ばれる標準表記法が採用されている。ＷＳＤＬサービス記述は１セットの動作およびメッセージに対して抽象定義を有する。ＷＳＤＬサービス記述を作成するには、記述はウエブ・サービス・レジストリ１１５のデータの種類に適合しなければならない。ビジネス・エンティティ、ビジネス・サービス、バインディング・テンプレートおよびｔＭｏｄｅｌである。ビジネス・エンティティはビジネスに関する情報を提供し、一または複数のサービス・プロバイダを有することができる。ウエブ・サービスの技術的な記述およびビジネスに関する記述はビジネス・サービスおよびそのバインディング・テンプレートに定義される。各バインディング・テンプレートは一または複数のｔＭｏｄｅｌへの参照を有する。ｔＭｏｄｅｌはサービスの技術仕様を定義するために使う。ＷＳＤＬ言語をある特定のサービスのサービス品質要件の記述を組み込むように修正する。例えば、ＷＳＤＬサービス・インターフェース・ドキュメント内では、サービス品質要件の記述を保持する追加タグを組み込むことができる。例は以下のとおりである。
【００４３】
ＷＳＬサービス実装ドキュメント
＜定義．．．．．．＞
＜インポート．．．．．．＞
＜サービス＝記録の処理＞
＜サービス品質＝サービスを６０分で返す＞
＜ポート．．．．．．＞
＜／サービス品質＞
＜／サービス．．．．．．＞
＜／定義．．．．．．＞
【００４４】
ＷＳＤＬは多数のタグを指定する。タグは要求のメッセージがどのパラメータを含むかを定義する。ＷＳＤＬファイルを使用してメッセージ・フォーマットを記述する表記法はＸＭＬスキームに基づく。メッセージの内容を記述することに加えて、ＷＳＤＬはどこでサービスを利用できるかとどの通信プロトコルを使ってサービスと対話するかを定義できる。上記例を使うと、リクエスタはサービス・プロバイダが多数の記録を処理するサービスを要求するが、これは＜サービス＞タグで表示される。続いて下にいくとＸＭＬスキーマを使って、サービス品質タグ＜サービス品質＞がパラメータ＜サービスを６０分以内に返す＞を指定するが、これはサービスがウエブ・サービス・リクエスタ１００に６０分以内の期限内に返されることが重要であることを意味する。このタグの中に、ウエブ・サービス・リクエスタ１００はサービス品質パラメータの優先度の序列を指定することもできる。
【００４５】
ＷＳＤＬファイルを読んで、ウエブ・サービスにとって構文上正しいメッセージを作るのに必要なコードを生成するツールはいくつか利用できる。これらツールは当分野でよく知られているため、詳しく述べない。
【００４６】
ウエブ・サービス・リクエスタ１００がサービスの要求を公開する前に、ウエブ・サービス・リクエスタ１００は、サービス・プロバイダ１０５がサービスを履行するのに必要なデータも送らなければならず、例えば、データは処理すべき２００の従業員の記録を有することができる。実際には、各ウエブ・サービス・プロバイダ１０５が要求されるサービスを履行するためにネットワーク上でデータを送るのは合理的ではなく、代わりにデータの場所と、各サービス・プロバイダがそのデータにアクセスできる方法を知らせるリンクをウエブ・サービス・プロバイダ１０５の各々に送るとよい。このデータ交換にはデータのセキュリティおよび機密性が求められ、それをＷＳ−セキュリティで提供する。ＷＳ−セキュリティはＳＯＡＰの拡張機能がメッセージの保全性およびメッセージの機密性を確保しながら、エンティティを確実に特定し認証するセキュリティ・トークンを渡すことができる。サービス品質ブローカ２００は、サービス品質ブローカ２００ではなくＳＯＡＰ技術を修正したものであるのでＷＳ−セキュリティの仕様で機能できる。ＷＳ−セキュリティに関する詳しい情報はｗｗｗ．ｉｂｍ．ｃｏｍ／ｒｅｓｅａｒｃｈに掲載されている。
【００４７】
ウエブ・サービス・プロバイダ１０５はそのサービスをＷＳＤＬ仕様で利用できるようにして公開する。この実施例では、プロバイダ・アプリケーションは、サービスのインターフェース定義とサービスの実装定義を含むファイルを作成するためにＷＳＤＬを使用する。サービス属性のセットはサービス品質要件も有する。サービス品質要件は、ウエブ・サービス・プロバイダ１０５がそのサービスを、例えば指定の期限内で引渡しのできるパラメータを含むように構成される。このようにこれらサービス品質パラメータはウエブ・サービス・リクエスタ１００が要求するサービス品質パラメータに対して照合できる。
【００４８】
ウエブ・サービス・リクエスタ１００からＷＳＤＬ仕様と処理すべきデータを受け取る際、ウエブ・サービス・ブローカ１１５はデータ・ストア内でルックアップを行って、サービス品質要件に対して要求されるサービスの照合を決定する。クエリ言語を使用してデータ・ストアを照会し、サービスを提供しリクエスタが指定する重要度の順番でサービス品質要件に一致すると登録されているサービス・プロバイダ１０５を探す。
【００４９】
ウエブ・サービス・ブローカ１１５が一または複数のウエブ・サービス・プロバイダ１０５を特定する際、ウエブ・サービス・ブローカ１１５はデータを特定されたサービス・プロバイダ１０５の各々にブロードキャストする。特定されたサービス・プロバイダ１０５は要求されるウエブ・サービスを提供するために参加するかどうかの判断をする。ウエブ・サービス・プロバイダ１０５が参加することに決めたら、ウエブ・サービス・プロバイダ１０５はウエブ・サービス・リクエスタ１００から処理すべき情報を受け取って、次に、技術インターフェースを提供して要求されるウエブ・サービスをウエブ・サービス・リクエスタ１００に送るために、ウエブ・サービス・リクエスタ１００とバインドする。参加する各ウエブ・サービス・プロバイダ１０５は、データ交換のための技術インターフェースを提供するために、ウエブ・サービス・リクエスタとバインドする。
【００５０】
サービスの完了時、各ウエブ・サービス・プロバイダ１０５はリクエスタに完了したサービスを、要求されるサービス品質パラメータと関係する統計データと一緒に送り、レシーバ・コンポーネント３０５が受け取る。例えば、要求されるサービス品質パラメータが「要求されるサービスを指定の期限内に完了し、サービスのコストが１ポンド以下で、かつデータの正確さが９８パーセント以上でなければならない」というものであれば、そのパラメータに関する統計データはサービスを履行するのにかかった時間、サービスのコスト、およびデータの正確さを有するであろう。このことは、サービス・プロバイダの経済的な変化のために、サービスの時間、コスト、および正確さが時が経つにつれて変わることがあるため有利である。さらに、このことは、ウエブ・サービス・プロバイダがウエブ・サービス・リクエスタの要求するサービス品質パラメータ内でできるだけ高い標準通りにサービスを履行するよう促す。
【００５１】
ウエブ・サービス・リクエスタ１００がサービスの履行に参加したウエブ・サービス・プロバイダ１０５の各々から受け取る統計データのすべてを受け取ったら、ウエブ・サービス・リクエスタ１００のインテリジェント・エージェント３１５がどのウエブ・サービス・プロバイダ１０５と契約するかを決定する。インテリジェント・エージェント３１５はどのサービス・プロバイダ１０５が要求される要求事項によく一致したサービスを履行できたかを決定する。インテリジェント・エージェント３１０は、データ照合アルゴリズム、または最も一致するものを見つけるために要求される要求事項を受け取った統計データと一緒に解析するルール・エンジンとともに使用するように作動する。最も一致するものは、ウエブ・サービス・リクエスタ１００がその要求事項を順序付けた優先順位で判断でき、または代わりに最初のウエブ・サービス・プロバイダ１０５がウエブ・サービス・リクエスタ１００の要求事項と一致する１セットの結果を返す。
【００５２】
好ましいウエブ・サービス・プロバイダ１０５を特定する際、ウエブ・サービス・リクエスタ１００は履行されるサービスに関する拘束力のある契約、または追加サービスに関する拘束力のある契約を締結することができる。契約の拘束力が好ましいサービス・プロバイダの選定後必ず履行されることに留意することが重要である。
【００５３】
上記の説明は、ウエブ・サービス・リクエスタ１００が１つだけのウエブ・サービス・プロバイダ１１５を選定して契約する例を説明する。別の実施例では、ウエブ・サービス・リクエスタは複数のウエブ・サービス・プロバイダ１１５を選定して契約でき、多数の異なる目的のために複数のウエブ・サービス・プロバイダから処理したウエブ・サービスを利用できる。このため、ウエブ・サービス・リクエスタ１００とウエブ・サービス・プロバイダ１０５との１対１の関係を説明する実施例を説明しているが、ウエブ・サービス・プロバイダ１０５とウエブ・サービス・リクエスタ１００が要求する履行されるサービスとが多数対多数の関係でもよいと想定される。
【００５４】
図４に移ると、ウエブ・サービス・リクエスタ１００の操作ステップが示されている。ステップ４００で、ウエブ・サービス・リクエスタ１００はジェネレータ・コンポーネント３００を介して、ＷＳＤＬ仕様で指定する１もしくは多数のサービス品質パラメータを受け取る。ステップ４０５で、ブロードキャスト・コンポーネント３１０がＷＳＤＬ仕様を多数のサービス・プロバイダ１０５またはウエブ・サービス・ブローカ１１５にブロードキャストする。ウエブ・サービス・ブローカ１１５がサービス品質要件を１もしくは多数のウエブ・サービス・プロバイダ１０５に照合させたら、ウエブ・サービス・プロバイダ１０５は参加してサービスを提供するかどうかを決定する。肯定の決定の場合、参加する各ウエブ・サービス・プロバイダ１１５はウエブ・サービス・リクエスタ１００とのバインドに進んで、データ交換のできる技術インターフェースを定義する。要求されるウエブ・サービスが完了したら、要求されるウエブ・サービスがウエブ・サービス・リクエスタ１００に返される。ウエブ・サービス・プロバイダ１０５は履行したサービスのパフォーマンス統計を詳述する１セットの統計データも返す。ステップ４１０で、インテリジェント・エージェント３１５が受け取った統計データを解析して、サービス品質パラメータに対して統計データを照合し、どのサービス・プロバイダが要求されるサービス品質要件に最も近いサービスを履行できたかを決定する。
【００５５】
ステップ４２０で、インテリジェント・エージェント３１５が結果および、指定のサービス品質要件の範囲内で最も高いパフォーマンスをしたウエブ・サービス・プロバイダ１０５を選定する。代わりの方法として、複数のウエブ・サービス・プロバイダを選定して契約してもよく、従って履行されたウエブ・サービスより多くの結果が使用される。
【００５６】
ステップ４２５で、バインディング・コンポーネント３２０が選定されたサービス・プロバイダ１０５と通信して、履行されたサービスまたは今後要求されるサービスに関し選定されたサービス・プロバイダと契約する。
【００５７】
図５に移ると、バインディング・コンポーネント３２０のより詳細な操作ステップが示されている。ステップ５００で、レシーバ・コンポーネント３０５が履行されたサービスと統計データを受け取る。制御は決定５０５に進んで、複数のサービス・プロバイダが履行したサービスを返したかどうかについての決定を行う。決定が否定で、サービスを履行したウエブ・サービス・プロバイダ１０５が１つだけなら、バインディング・コンポーネント３２０はそのサービス・プロバイダとバインドする。決定が肯定で、複数のウエブ・サービス・プロバイダ１０５が履行したサービスを返していれば、インテリジェント・エージェント３１５がステップ５１５で履行したサービスを返した各ウエブ・サービス・プロバイダ１０５の統計データの解析を開始する。インテリジェント・エージェント３１５が統計データを解析しながら、インテリジェント・エージェント３１５はどのウエブ・サービス・プロバイダ１０５がステップ５２０でサービス品質要件の範囲内のサービスを履行したかを特定する。特定されたら、制御は５２５に進んで、インテリジェント・エージェント３１５が複数のウエブ・サービス・プロバイダ１０５を探したかどうかを決定する。
【００５８】
決定が否定で、探されたウエブ・サービス・プロバイダ１０５が１つだけなら、ステップ５３０でバインディング・コンポーネント３２０が探されたウエブ・サービス・プロバイダ１０５とバインドする。他方で、複数のウエブ・サービス・プロバイダ１０５が探された場合、インテリジェント・エージェント３１５は、ウエブ・サービス・リクエスタが複数のウエブ・サービス・プロバイダ１０５と契約したいかどうかを決定する。決定が肯定の場合、インテリジェント・エージェントはどのウエブ・サービス・プロバイダと契約するかの選定に進む。どのウエブ・サービス・プロバイダを選定するかを決定するために、インテリジェント・エージェントは要求されるサービスを履行してサービス品質パラメータと最もよく一致するウエブ・サービス・プロバイダを選定できる。代わりの方法として、ステップ５３５で、どのウエブ・サービス・プロバイダを選定するかの決定要因として、ウエブ・サービス・リクエスタ１００が要求するサービス品質要件の各々に優先順位を決める。インテリジェント・エージェント３１５が優先順位と一致する複数のサービス・プロバイダを探した場合（制御５４０）、インテリジェント・エージェント３１５はステップ５５０に進んで、どのウエブ・サービス・プロバイダ１０５が最も速い時間でサービスを返したかを計算し、そこで特定されたサービス・プロバイダと契約する。代わりに、制御５４０に戻って、優先順位の要求事項を満たすサービス・プロバイダが１つだけ探された場合、ステップ５４５でバインディング・コンポーネントは特定されたサービス・プロバイダと契約する。
【図面の簡単な説明】
【００５９】
本発明の実施例を、添付の図面を参照しながら、単なる例として以下詳細に説明する。
【００６０】
【図１】本発明の原理を具現するウエブ・サービス・コンピュータ・ネットワークの図表である。
【図２】本発明によるサービス品質ブローカの概略図である。
【図３】サービス品質ブローカのコンポーネントを詳述するコンポーネント図である。
【図４】サービス品質ブローカの操作ステップを詳述するフローチャートである。
【図５】図２に示すサービス品質ブローカのバインディング・コンポーネントの操作ステップを詳述するフローチャートである。
【図１】
2008522263.tif 000004
【図２】
2008522263.tif 000005
【図３】
2008522263.tif 000006
【図４】
2008522263.tif 000007
【図５】
2008522263.tif 000008
【国際調査報告】
2008522263.tif 000009
2008522263.tif 000010