JP2021505989A - エラー・ハンドリングのための方法、コンピュータ・プログラム、データ処理システム、およびエラー・ハンドリング・コンポーネント - Google Patents

エラー・ハンドリングのための方法、コンピュータ・プログラム、データ処理システム、およびエラー・ハンドリング・コンポーネント Download PDF

Info

Publication number
JP2021505989A
JP2021505989A JP2020528250A JP2020528250A JP2021505989A JP 2021505989 A JP2021505989 A JP 2021505989A JP 2020528250 A JP2020528250 A JP 2020528250A JP 2020528250 A JP2020528250 A JP 2020528250A JP 2021505989 A JP2021505989 A JP 2021505989A
Authority
JP
Japan
Prior art keywords
provider
handling
request
algorithm
component
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.)
Granted
Application number
JP2020528250A
Other languages
English (en)
Other versions
JP7189952B2 (ja
JP2021505989A5 (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
Publication of JP2021505989A publication Critical patent/JP2021505989A/ja
Publication of JP2021505989A5 publication Critical patent/JP2021505989A5/ja
Application granted granted Critical
Publication of JP7189952B2 publication Critical patent/JP7189952B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】方法、コンピュータ・プログラム製品、およびエラー・コンポーネントを提供する。【解決手段】方法、コンピュータ・プログラム製品、およびエラー・コンポーネントは、プロバイダのサービスのためのリクエストをリクエスタから受信することと、リクエストの要件を決定することと、プロセッサによって、リクエストの要件およびサービス・プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを識別することと、を含み得る。【選択図】図4

Description

本発明は、エラー・ハンドリングに関し、より詳細には、リクエスタ(requester)とプロバイダ(provider)との間のエラー・ハンドリングに関する。
現在、多くのビジネス・プロセスは、サービス指向アーキテクチャ(service-oriented architecture、SOA)などの、分散処理アーキテクチャに頼っている。これらのアーキテクチャは、インターネットなどのネットワークを通じたコンポーネント、システム、またはコンピュータ、あるいはその組み合わせの協働を、合意された通信規格、例えば、このようなコンピュータの間の通信のためのメッセージ・フォーマットを必要とせずに促進する。
エラー・ハンドリングの方法、システム、プログラムを提供する。
リクエスタとプロバイダとの間のエラー・ハンドリングのための方法、コンピュータ・プログラム製品、およびエラー・コンポーネントが提供される。コンピューティング・システムのプロセッサがプロバイダのサービスのためのリクエストをリクエスタから受信する。リクエストの要件が決定される。リクエストの要件およびサービス・プロバイダの特質(characteristic)に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムが識別される。
次に、添付の図面を参照して本発明の実施形態を例としてのみ説明する。
本発明の実施形態に係る、例示の実施形態の態様が実施され得る例示的な分散システムの図的表現である。 本発明の実施形態に係る、例示の実施形態の態様が実施され得る例示的なデータ処理システムのブロック図である。 本発明の実施形態に係る、エラー・ハンドリング・コンポーネントの例示的な一実装形態の簡略ブロック図である。 本発明の実施形態に係るハンドリング・アルゴリズムのフロー図である。 本発明の実施形態に係る、コンピュータ実施方法のフロー図である。 本発明の実施形態に係る、寄与スコアを生成するように構成されたシステムを示す図である。
システムの間の対話の実施は、対話が成功する場合には、比較的容易である。しかし、可能なエラー条件の全ての順列に応じることは、再試行、冪等性、ヘルス・チェック、トランザクション境界(transactional boundary)、一意性競合(uniqueness conflict)、移送信頼性、待ち時間、タイムアウト、およびその他などの課題を理解することを必要とする。コンポーネント、システム、またはコンピュータ、あるいはその組み合わせの間の統合の複雑な側面は、エラー・ハンドリングに関連する。
通例、エラー・ハンドリング・アルゴリズムは、実施される対話ごとに、固有のメッセージ・フロー、またはコネクタ内の専用コードなどの、固有のコードまたは命令を必要とする。したがって、エラー・ハンドリングの実装形態は、通例、固有のものであり、リクエスタのランタイムのプログラミング言語/モデルで書かれている。それゆえ、このような実装形態は、書いて維持することが複雑になり得、それらは再使用も難しくなり得る。
コンポーネント、システム、またはコンピュータ、あるいはその組み合わせの間の共通性が見いだされる場合、それは、通例、Java(R)(TM)コネクタ・アーキテクチャなどの、コード・フレームワーク内に組み込まれるのみであるが、これは言語特定的なアプローチのままであり、対話の個々の機微を解決するためには、相当な追加または固有あるいはその両方の実施作業を依然として必要とする。
新たなコネクタを最小限の労力で書くことができるよう標準化されたコネクタ・フレームワークをしばしば有する、システムの間の統合を可能にするための多くの製品が存在する。コネクタ・フレームワークのうちのいくつかは、新たなコネクタを作成するために必要とされる作業量を低減するために、このような例の1つをJava(R)(TM)コネクタ・アーキテクチャとして、標準化されている。しかし、これらのコネクタは、通例、プログラミング言語またはランタイムあるいはその両方に特定的であり、それゆえ、1つのプラットフォームのための作成/構成は、別のプラットフォームへの単純な移行/可搬性の要求に応じないことを意味する。また、このようなコネクタは、通例、全アルゴリズムが選定されることを可能にするであろう対話の論理特質に対処するのではなく、再試行回数、またはタイムアウト値などの、エラー・ハンドリングの低レベル特性の要求に応じるのみである。したがって、全体的な対話要件に応じるために、通例、追加のコードまたはフロー論理がリクエスタによって実施されなければならない。
さらに、プロトコルのために標準化されたコネクタを作成する試みは、多くの場合、システムが規格を厳格に順守しないことがしばしばあるという事実を無視しており、これにより、エラー・ハンドリングは対話ごとにコードまたは統合フロー内に戻される。
本発明の実施形態は、(例えば、特注統合コードまたはフロー論理の必要性を無くすことによって)統合実装形態の大幅な単純化をもたらし得る、リクエスタとプロバイダとの間のエラー・ハンドリングのための方法を提供し得る。本発明の実施形態は、データ処理システムのプロセッサ上で実行されたときに本方法を実施するためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム製品をさらに提供し得る。本発明の実施形態は、このコンピュータ・プログラム・コードを実行するように構成されたデータ処理システムをなおさらに提供し得る。本発明の実施形態はまた、リクエスタとプロバイダとの間のエラー・ハンドリングのためのエラー・ハンドリング・コンポーネントを提供し得る。
本発明の一実施形態によれば、リクエスタとプロバイダとの間のエラー・ハンドリングのためのコンピュータ実施方法が提供され得る。本方法は、リクエスタから、プロバイダのサービスのためのリクエストを受信することを含み得る。本方法はまた、リクエストの要件を決定することを含み得る。リクエストの決定された要件およびサービス・プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを識別することができる。
本発明の実施形態はリクエストの要件およびプロバイダの特質を識別し、その後、識別された要件および特質を用いて、エラーをハンドリングするためのアルゴリズムを決定し得る。リクエスト要件の評価によって、例えば、リクエストがプロバイダにおいてどのように呼び出されるべきであるのかについて決定され得る。
したがって、実施形態は、技術に依存しない仕方による共通/包括的エラー・ハンドリング論理/アルゴリズム/シナリオ/セマンティクスの構成および実施を可能にするためのドメイン固有ポリシー言語(domain-specific policy language)を提供し得、かくして、統合実施コードを低減し、プラットフォームにわたる可搬性をもたらす。このようなポリシー言語は、例えば、広範囲の、様々な、網羅的な、記述的な、特定的な、または要件関連の、あるいはその組み合わせの用語を含む用語集を利用することによって、向上した(例えば、より大きな)リッチネス(richness)をもたらし得る。実施形態によってもたらされるポリシー言語のリッチネスの改善は、改善された、動的な、またはあつらえの、あるいはその組み合わせの論理を有するポリシー・アルゴリズムの提供を可能にし得る。
本発明の例示的な実施形態は、所与の統合上のリクエストを傍受する宣言的エラー・ハンドリング方法を提供し得る。ここで、統合は、リクエスタ要件およびプロバイダ特質のセットによって定義される。これらの要件および特質に基づいて、本方法は、発生し得るエラーを管理するためのアルゴリズムを識別し得る。例えば、アルゴリズムは、欠落した挙動を提供し、標準的でないエラー・レスポンスの再分類を可能にし得る。したがって、例示的な一実施形態は以下の特性を有し得る:
(i) プラットフォーム非依存性 − 実施形態は、特質およびアルゴリズムが包括的であるため、プラットフォーム/言語にわたって用いられ得る、ならびに
(ii) コードの最小化/除去 − 実施形態は、インターフェース内におけるエラー・ハンドリングのためのカスタム・コードの必要性を低減し得、多くの場合、カスタム・コードの必要性を完全に除去し得、それゆえ、インターフェースを準備するために必要とされるスキルセットを変更する。
インターフェースの特質によってインターフェースを類別することによって、およびクライアント(例えば、リクエスタ)要件のセットを所与として、例示的な実施形態はエラー・ハンドリング・アルゴリズムを識別し、そのアルゴリズムをプロセス・フロー内に投入し得る。投入されたエラー・ハンドリング・アルゴリズムはまた、プロバイダの任意の欠落した特質も提供するように構成され得る。
例示的な一実施形態では、クライアント(例えば、リクエスタ)が「作成」リクエストを行いたいと欲し、信頼できない媒体を用いても構わないが、重複を欲しないという事例を考え得る(例えば、これは、典型的なハイパーテキスト転送プロトコル(Hypertext Transfer Protocol、HTTP)ベースのRESTリクエストであり得るであろう)。このような例のために、冪等であるHTTPインターフェースに適合したプロバイダが存在すると考え得る。投入されたエラー・ハンドラ・アルゴリズムは、再試行が必要とされる場合には、インターフェースを複数回コールし得る。しかし、上述のサービスが冪等でなかった場合には、エラー・ハンドラ・アルゴリズムは、重複を作成するであろう、再試行の代わりに、延期された読み込み(deferred read)を実行し、欠落した「重複なし」のクライアント要件を提供することができるであろう。同様に、信頼できる媒体が必要とされる場合には、コールは、ウェブ・サーバ・リクエストを介するのではなく、メッセージングを通じて橋渡しすることができ、この場合も先と同様に、投入されたエラー・ハンドラは、欠落したインターフェース特質を作り出す。
本発明の例示的な実施形態は、構成可能なオーバーライド・ポリシーがプロトコルの標準的でない実施を再整列させることを可能にするように構成され得る。
例示的な実施形態は、以前は、対話ごとに特定的にコード化されるか、または構成されるか、あるいはその両方を行われなければならなかったであろう、広範なエラー回復シナリオを表現し得る、エラー回復セマンティクスの表現のためのドメイン固有ポリシー言語を提供し得る。それゆえ、複数の技術にわたって、エラー・ハンドリング要件が論理的に一度定義され、その後、純粋に構成によって実施されることを可能にし得る、技術に依存しない仕方で対話の特質を記述するドメイン固有ポリシー言語に基づいて、エラー・ハンドリング論理(例えば、ポリシー・アルゴリズム)が選定され、実施されることを可能にするコンポーネントが提供され得る。
したがって、例示的な実施形態によってもたらされる恩恵は以下のものを含み得る:
(i) 統合実装形態の大幅な単純化 − 実施形態は、さもなければ、通例、プロトコルごとに書かれ、サービス動作ごとにさらにカスタマイズされるであろう特注統合コードまたはフロー論理を解消し得る、
(ii) コネクタの発展の加速、
(iii) 共通構成を介した、実施された統合の、異なる言語のランタイムへの単純な移行、ならびに
(iv) アルゴリズムの標準化。これにより、エラー・ハンドリング挙動が決定論的になり、深く理解され得る − 統合回帰試験の準備および実行を大幅に単純化する。
したがって、上述された恩恵は、エラー・ハンドリングの抜本的な単純化によって現況技術の改善をもたらし得る。
例示的な実施形態によれば、技術に依存しない仕方によるエラー・ハンドリング・アルゴリズムの構成および実施を可能にするコンポーネントを用いるドメイン固有ポリシー言語が提供され得、これにより、統合実施コードが低減されるか、プラットフォームにわたる可搬性の改善がもたらされるか、あるいはその両方がなされ得る。
エラー・ハンドリング・アルゴリズムは、対話に関する論理特質の主要なセットによって統御され得る。例としては、プロバイダ・インターフェースを、重複を生じさせることなく安全に再試行することができるかどうか(例えば、冪等性)、リクエスタが即座のレスポンスを期待するかどうか(例えば、ブロッキング)、および対話が完了しなければならない時間フレームがどれであるのかを挙げることができる。これらの特質は技術に依存せず、リクエスタの要件、プロバイダの能力、およびアルゴリズムを実施するコンポーネントの能力にのみ関連し得る。これらの特質に基づいて、エラー・ハンドリングを遂行する仕方のための特定のポリシー・アルゴリズムを選定することができる。アルゴリズムは技術に非依存的であり得、これにより、アルゴリズムは、任意のプログラミング言語によって実施のための論理レベルで記述することができる。
例示的な一実施形態では、リクエストの要件は、重複の容認性(acceptability of duplicates)、リクエスタによって必要とされる確認、レスポンス・タイム、スループット、およびトランザクション参加(transaction participation)のうちの少なくとも1つに関連し得る。したがって、このような実施形態は、実施すべきエラー・ハンドリング・アルゴリズムを決定するために、リクエストに関連する限定因子または考慮事項を考慮し得る。他の異なる要件が本発明の実施形態によって決定されるか、または対応されるか、あるいはその両方を行われてもよく、これらは、単独で、または組み合わせて考慮され得る。
例示的な一実施形態では、プロバイダの特質は、プロバイダのインターフェース、プロバイダの通信プロトコル、チェック試験の利用可能性、レスポンス・タイム、スループット、プロバイダの対話方法、プロバイダの冪等能力(idempotent capability)、プロバイダの同期または非同期性、1つまたは複数のエラー種別、トランザクション支援、およびプロバイダの挙動特徴(behavioral trait)のうちの少なくとも1つに関連し得る。したがって、実施形態は、実施すべきエラー・ハンドリング・アルゴリズムを決定するために、プロバイダに関連する限定因子または考慮事項を考慮し得る。他の異なる特質が本発明の実施形態によって決定されるか、または対応されるか、あるいはその両方を行われてもよく、これらは、単独で、または組み合わせて考慮され得る。
したがって、本発明の実施形態は、最も適切なエラー・ハンドリング・アルゴリズムを決定するために、リクエスタとプロバイダとの間の対話の要件および特質を分析するというコンセプトを利用し得る。このように、例示的な実施形態は、プログラミングまたは実施あるいはその両方の複雑さを低減しつつ、エラーが低減されるか、ハンドリングされるか、処理されるか、または管理されるか、あるいはその組み合わせを行われることを確実にするために適切なエラー・ハンドリング論理またはプロセス・ステップを決定するように設計され得る。
例示的な一実施形態では、ハンドリング・アルゴリズムを識別するステップは、リクエストの決定された要件およびプロバイダの決定された特質に基づいて、複数のアルゴリズムからハンドリング・アルゴリズムを選択することを含み得る。したがって、潜在的なハンドリング・アルゴリズムの集中または共有リソースが実施形態によって活用され得る。また、ハンドリング・アルゴリズムを選択することは、リクエストの決定された要件またはプロバイダの決定された特質が所定の通信プロトコルに関連するかどうかに基づいて、ハンドリング・アルゴリズムを選択することを含み得、これは、特定の通信プロトコルのための、以前の、または確立されたエラー・ハンドリング知識が役立てられ、用いられることを可能にし得、それゆえ、さもなければ、ハンドリング・アルゴリズムを実施するために必要とされるであろう専門家または特注プログラミングあるいはその両方の量を潜在的に低減する。
例示的な一実施形態では、ハンドリング・アルゴリズムを識別するステップは、例えば、最良適合評価に従ってハンドリング・アルゴリズムを選択することを含み得る。このように、対話の決定された詳細(例えば、要件および特質)のための最も適切なハンドリング・アルゴリズムの評価が行われ得、その後、結果が、用いるべきハンドリング・アルゴリズムを識別するために用いられ得る。
ハンドリング・アルゴリズムは、プロバイダへのリクエストの送達を保証するように構成され得る。例えば、ハンドリング・アルゴリズムは、プロバイダへのリクエストの送達を保証するために、再試行手順、延期手順、比較、および併合手順のうちの少なくとも1つを実施するように構成され得る。したがって、実施形態によって利用されるアルゴリズムは、リクエストを正しく呼び出すことができるか、またはエラー・レスポンスを正しく処理することができるか、あるいはその両方をできることを確実にするために、欠落した、または必要とされるプロセスを提供し得る。
いくつかの実施形態は、プロバイダの特質を決定するステップを含み得る。例示的な実施形態は、プロバイダの1つまたは複数の特質に関連する情報をデータ・リポジトリから得るステップを含み得る。例えば、プロバイダの特質が設計段階の間に(例えば、設計時に)決定され得、その後、以前に決定された特質に関する情報が実行時に参照され得、それゆえ、実行時のリソース要件を最小限に抑える。
本発明の別の例示的な実施形態によれば、リクエスタとプロバイダとの間のエラー・ハンドリングのためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、プログラム命令が、データ処理システムの少なくとも1つのプロセッサ上で実行されたときに、処理ユニットに、1つまたは複数の例示的な実施形態に係る方法を遂行させるように処理ユニットによって実行可能である、コンピュータ・プログラム製品が提供される。
さらに別の例示的な実施形態によれば、データ処理システムであって、少なくとも1つのプロセッサと、1つまたは複数の実施形態に係るコンピュータ・プログラム製品とを備え、少なくとも1つのプロセッサが、コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように構成されている、データ処理システムが提供される。データ処理システムは、メッセージ・プロデューサとメッセージ・コンシューマとの間のメッセージ・ブローカの役割を果たすように構成され得る。さらに、データ処理システムは、サービス指向アーキテクチャの一部を実施するように構成され得る。
したがって、実施形態は、インターネットなどのネットワークを通じたサービスの提供のためにサービス指向アーキテクチャ(SOA)内で利用され得る。この目的を達成するために、SOAは、通例、必要とされるメッセージ(例えば、リクエスト)変換またはデータ抽出を実施するソフトウェア・モジュールである、メッセージ・ブローカを含む。メッセージ・ブローカは、メッセージ内の各データ・フィールドが包含することができる内容の構造および形式を定義する、いわゆるメッセージ・スキーマへのアクセスを有し得る。
さらに別の例示的な実施形態によれば、リクエスタとプロバイダとの間のエラー・ハンドリングのためのエラー・ハンドリング・コンポーネントが提供される。コンポーネントは、リクエスタから、プロバイダのサービスのためのリクエストを受信するように構成された入力インターフェースを備える。コンポーネントはまた、リクエストの要件を決定するように構成された分析コンポーネントを含み得る。さらに、コンポーネントは、リクエストの決定された要件およびサービス・プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを決定するように構成されたアルゴリズム・コンポーネントを備える。
例示的な実施形態は、所与の統合上のリクエストを傍受するように構成された、技術に依存しない宣言的エラー・ハンドリング・コンポーネントを提供し得る。ここで、統合は、リクエスタ要件およびプロバイダ特質のセットによって定義され得る。プロバイダの能力などの、リクエスタの要件およびプロバイダの特質に基づいて、コンポーネントはエラー・ハンドリング・アルゴリズムを選択して実施し、欠落した挙動を提供し、標準的でないエラー・レスポンスの再分類を可能にするなど、発生し得るエラーを管理し得る。
それゆえ、コンポーネントは、任意の対話に対するインターセプタとして構成され得、さもなければ、発生し得るであろうエラーの複数の順列を管理するために必要とされ得る固有/カスタム・コード化の必要性を軽減する。コンポーネントの実施形態は、技術に依存しない特質を用い、いかなる言語、プロトコル、または移送にも特定的でない論理アルゴリズムを実施し得る。その後、このような論理アルゴリズムは複数の言語ランタイムにわたって実施され得、これにより、一旦、所与の対話のための特質が合意されれば、複数の言語にわたってコネクタを提供することは、単に、構成をコピーするだけの問題になり得る。
また、本出願の文脈において、データ処理システムは、本発明の方法の1つまたは複数の実施形態を実行するように構成された単一のデバイス、または分散デバイスの集合であり得る。例えば、システムは、パーソナル・コンピュータ(personal computer、PC)、サーバ、あるいは本発明の方法の少なくとも1つの実施形態を協働して実行するためにローカル・エリア・ネットワーク、インターネット等などのネットワークを介して接続されたPCまたはサーバあるいはその両方の集合であり得る。
本発明の実施形態は、リクエスタとプロバイダとの間のエラー・ハンドリングに関する。リクエストの1つまたは複数の要件およびプロバイダの1つまたは複数の特質の評価によって、エラーをハンドリングするためのアルゴリズムが決定され得る。したがって、例示的な実施形態は、技術に依存しない仕方による共通/包括的エラー・ハンドリング論理/アルゴリズム/シナリオ/セマンティクスの構成および実施を可能にし得、かくして、統合実施コードを低減し、プラットフォームにわたる可搬性をもたらす。
例えば、本発明の実施形態は、所与の統合上のリクエストを傍受する宣言的エラー・ハンドリング・コンセプトを提供し得る。ここで、統合は、リクエスタ要件およびプロバイダ特質のセットによって定義される。これらの要件および特質に基づいて、エラーを管理するためのアルゴリズムが識別され、その後、利用され得る。インターフェースの特質によってインターフェースを類別することによって、およびクライアント(例えば、リクエスタ)要件のセットを所与として、例示的な実施形態はエラー・ハンドリング・アルゴリズムを識別し、そのアルゴリズムをプロセス・フロー内に投入し得る。投入されたエラー・ハンドリング・アルゴリズムはまた、例えば、プロバイダの任意の欠落した特質も提供するように構成され得る。
したがって、例示的な実施形態は、統合要件または特質あるいはその両方を分析し、最も適切なエラー・ハンドリング・プロセスを決定し得る。したがって、動的なエラー・ハンドリングの最適化が本提案の実施形態によってもたらされ得る。
下流の呼び出しは規格を順守するように見える場合があるが、呼び出しは、その規格の「スタイル」を厳格に実施しない場合がある。例えば、呼び出しは、HTTPレスポンス・コードを正しく用いない場合があるか、または真にRESTfulでない場合があるか、またはSOAPフォルトを正しく用いない場合がある。これらの小さな機微は、実際にはエラーでないエラーを管理するため、または実はエラー・レスポンスであった、一見したところ成功のレスポンスの提供のため、あるいはその両方のためのコードなどの、過剰な量のレスポンス・ハンドリング・コードの必要性を生じさせ得る。本発明の実施形態は、既知のスタイルを誤用しているターゲットを、より適合したレスポンスに再形成することができるよう、レスポンス・オーバーライドを構成し得る。これにより、エラー・ハンドリング・アルゴリズムが個々のインターフェースの機微に応じる必要がなくなるため、エラー・ハンドリング・アルゴリズムの再利用可能性が大幅に改善され得る。
例示的な実施形態は、統合要件の進展に応じるために新たな特質およびアルゴリズムを追加することができるよう、拡張可能であり得る。例えば、分散処理の分野における近年の発展は、大部分の統合が、信頼性の高い制御された移送およびトランザクション性の高いプロトコルに基づくことから、トランザクション性がなく、信頼できない媒体を通じて遂行されるウェブ・サービスおよびRESTfulなインターフェースに移った。このような発展は新たな特質およびアルゴリズムを導入するが、宣言的エラー・ハンドリング・コンポーネントの核心的意図は同じままとなるであろう。
システムの間の対話のための方法またはコンポーネントの例示的な実施形態は、要件、または対話の特質、あるいはその両方に関するいくつかの高レベルの問いに対処し得る。例が以下において詳述されているが、他の実施形態が、本明細書において提案されるコンセプトを用いて実施され得ることを理解されたい。
また、本提案のコンセプトの価値および効用を高め得る、従来のエラー・ハンドリング・コンセプトに対する変更および追加のステップも提案され得る。
例示的な実施形態は多くの異なる種類の処理環境において利用され得る。例示的な実施形態の要素および機能性の説明のための文脈を提供するために、図1および図2が、以下において、例示的な実施形態の態様が実施され得る例示的な環境として提供される。図1および図2は単なる例にすぎず、本発明の実施形態の態様が実施され得る環境に関するいかなる限定を主張または示唆することも意図されていない。図示の環境に対する多くの変更が、本発明の思想および範囲から逸脱することなくなされ得る。
図1は、本発明の実施形態に係る、例示の実施形態の態様が実施され得る例示的な分散システムの図的表現を示す。分散システム100は、例示的な実施形態の態様が実施され得るコンピュータのネットワークを含み得る。分散システム100は、分散データ処理システム100内で互いに接続された様々なデバイスおよびコンピュータの間の通信リンクを提供するために用いられる媒体である、少なくとも1つのネットワーク102を包含する。ネットワーク102は、有線、無線通信リンク、または光ファイバ・ケーブルなどの、接続を含み得る。
図示の例では、第1のサーバ104および第2のサーバ106が記憶ユニット108と共にネットワーク102に接続されている。加えて、クライアント110、112、および114もネットワーク102に接続されている。クライアント110、112、および114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ、または同様のものであり得る。図示の例では、第1のサーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供する。クライアント110、112、および114は、図示の例では、第1のサーバ104に対するクライアントである。分散処理システム100は、図示されていない追加のサーバ、クライアント、および他のデバイスを含み得る。
図示の例では、分散システム100はインターネットであり、ネットワーク102は、互いに通信するためのプロトコルの伝送制御プロトコル/インターネット・プロトコル(Transmission Control Protocol/Internet Protocol、TCP/IP)群を用いるネットワークおよびゲートウェイの世界的規模の集合を表す。インターネットの中核には、データおよびメッセージを経路制御する、数千もの民営、官営、教育、および他のコンピュータ・システムから成る、大ノードまたはホスト・コンピュータの間の高速データ通信線のバックボーンがある。無論、分散システム100はまた、例えば、イントラネット、ローカル・エリア・ネットワーク(local area network、LAN)、ワイド・エリア・ネットワーク(wide area network、WAN)、または同様のものなどの、いくつかの異なる種類のネットワークを含むように実施されてもよい。上述されたように、図1は一例として意図されており、本発明の異なる実施形態のためのアーキテクチャ上の限定として意図されておらず、したがって、図1に示される特定の要素は、本発明の例示的な実施形態が実施され得る環境に関する限定と考えられるべきでない。
図2は、本発明の実施形態に係る、例示の実施形態の態様が実施され得る例示的なシステム200のブロック図を示す。システム200は、本発明の例示の実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令が配置され得る、図1におけるクライアント110などの、コンピュータの一例である。
図示の例では、システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(north bridge and memory controller hub、NB/MCH)202、ならびにサウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(south bridge and input/output controller hub、SB/ICH)204を含むハブ・アーキテクチャを利用し得る。処理ユニット206、主メモリ208、およびグラフィック・プロセッサ210がNB/MCH202に接続されている。グラフィック・プロセッサ210は、アクセラレイティッド・グラフィックス・ポート(accelerated graphics port、AGP)を通じてNB/MCH202に接続されていてもよい。
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ212がSB/ICH204に接続している。オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、リード・オンリー・メモリ(read only memory、ROM)224、ハード・ディスク・ドライブ(hard disk drive、HDD)226、CD−ROMドライブ230、ユニバーサル・シリアル・バス(universal serial bus、USB)ポートおよび他の通信ポート232、ならびにPCI/PCIeデバイス234が、第1のバス238および第2のバス240を通じてSB/ICH204に接続している。PCI/PCIeデバイスは、例えば、イーサネット(R)アダプタ、アドイン・カード、およびノートブック・コンピュータのためのPCカードを含み得る。PCIはカード・バス・コントローラを用い、その一方で、PCIeは用いない。ROM224は、例えば、フラッシュ基本入力/出力システム(basic input/output system、BIOS)であり得る。
HDD226およびCD−ROMドライブ230は第2のバス240を通じてSB/ICH204に接続している。HDD226およびCD−ROMドライブ230は、例えば、インテグレーティッド・ドライブ・エレクトロニクス(integrated drive electronics、IDE)またはシリアル・アドバンスド・テクノロジー・アタッチメント(serial advanced technology attachment、SATA)インターフェースを用い得る。スーパーI/O(Super I/O、SIO)デバイス236がSB/ICH204に接続され得る。
オペレーティング・システムが処理ユニット206上で実行する。オペレーティング・システムは図2におけるシステム200内の様々なコンポーネントを協調させ、これらを制御する。クライアントとして、オペレーティング・システムは市販のオペレーティング・システムであり得る。Java(R)(TM)プログラミング・システムなどの、オブジェクト指向プログラミング・システムがオペレーティング・システムと連係して実行でき、システム200上で実行するJava(R)(TM)プログラムまたはアプリケーションからオペレーティング・システムにコールを提供する。
サーバとして、システム200は、例えば、新型対話型エクゼクティブ(Advanced Interactive Executive、AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行する、IBM(R)eServer(TM)System p(R)コンピュータ・システムであり得る。システム200は、処理ユニット206内に複数のプロセッサを含む対称型マルチプロセッサ(symmetric multiprocessor、SMP)システムであり得る。代替的に、単一プロセッサ・システムが利用されてもよい。
オペレーティング・システム、プログラミング・システムのための命令、ならびにアプリケーションまたはプログラムは、HDD226などの、記憶デバイス上に配置されており、処理ユニット206による実行のために主メモリ208内にロードされ得る。同様に、一実施形態に係る1つまたは複数のメッセージ処理プログラムが、記憶デバイスまたは主メモリ208あるいはその両方によって記憶されるように構成され得る。
本発明の例示的な実施形態のためのプロセスは、処理ユニット206によって、例えば、主メモリ208、ROM224などの、メモリ内、または1つもしくは複数の周辺デバイス226および230内に配置され得る、コンピュータ使用可能プログラム・コードを用いて遂行され得る。
図2に示されるとおりの第1のバス238または第2のバス240などの、バス・システムは1つまたは複数のバスを含み得る。無論、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた異なるコンポーネントまたはデバイスの間のデータの転送を提供する任意の種類の通信ファブリックまたはアーキテクチャを用いて実施され得る。図2のモデム222またはネットワーク・アダプタ212などの、通信ユニットは、データを送信および受信するために用いられる1つまたは複数のデバイスを含み得る。メモリは、例えば、主メモリ208、ROM224、または図2におけるNB/MCH202において見いだされるものなどのキャッシュであり得る。
図1および図2におけるハードウェアは実装形態に依存して異なり得る。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ、および同様のものなどの、他の内部ハードウェアまたは周辺デバイスが、図1および図2に示されるハードウェアに加えて、またはその代わりに用いられてもよい。また、例示的な実施形態のプロセスは、本発明の思想および範囲から逸脱することなく、上述されたシステム以外の、マルチプロセッサ・データ処理システムにも適用され得る。
さらに、システム200は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話もしくは他の通信デバイス、パーソナル・デジタル・アシスタント(personal digital assistant、PDA)、または同様のものを含むいくつかの異なるデータ処理システムのうちの任意のものの形態を取り得る。例示の例によっては、システム200は、フラッシュ・メモリを用いて、例えば、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するように構成されたポータブル・コンピューティング・デバイスであり得る。それゆえ、システム200は、アーキテクチャ上の制限なく、本質的に、任意の公知の、または将来開発されるデータ処理システムであり得る。
次に図3を参照して、これより、一実施形態に係るエラー・ハンドリング・コンポーネント300の例示的な一実装形態が説明される。図3は、本発明の実施形態に係る、エラー・ハンドリング・コンポーネント300の例示的な一実装形態の簡略ブロック図を示す。エラー・ハンドリング・コンポーネント300は、サービスをリクエストするネットワーク・ノードなどの、リクエスタ310と、受信されたリクエストに応答して1つまたは複数のサービスを提供するように構成されたネットワーク・ノードなどの、プロバイダ320との間のエラー・ハンドリングのためのものであり得る。
エラー・ハンドリング・コンポーネント300は、リクエスタ310から、プロバイダ320のサービスのためのリクエスト305を受信するように構成された入力インターフェース330を備え得る。
入力インターフェース330は、受信されたリクエスト305をエラー・ハンドリング・コンポーネント300の分析コンポーネント340に渡すように構成され得る。
分析コンポーネント340は、リクエスト305の要件を決定するように構成され得る。例示的な一実施形態では、分析コンポーネント340は、エラー・ハンドリング・コンポーネント300の一部としてプロビジョニングされたデータベース345にアクセスするように構成され得、データベース345は、リクエスト、リクエスタ、またはプロバイダあるいはその組み合わせの要件もしくは特質またはその両方に関連する情報を記憶するように構成され得る。このような情報は、例えば、リクエスト特性、リクエスタ要件、リクエスタ特質、プロバイダ特質、ノード能力、インターフェース能力、ならびに同様のものに関する情報を含み得る。データベース345からのこのような情報をリクエスト305と組み合わせて用いて、分析コンポーネントは、リクエストの1つまたは複数の要件を決定するように構成され得る。決定された要件は、例えば、重複の容認性、リクエスタによって必要とされる確認、レスポンス・タイム、スループット、またはトランザクション参加、あるいはその組み合わせに関連し得る。
分析コンポーネント340はまた、プロバイダの特質を識別するように構成され得る。例えば、分析コンポーネント340は、データベース345にアクセスし、データベース345からの情報をリクエスト305と組み合わせて用いて、プロバイダ320の1つまたは複数の特質を決定するように構成され得る。このように、データベース345は、設計または作成段階において決定されたプロバイダ320の特質に関する情報を記憶し得、その後、情報は、単に実行時に分析コンポーネント340によって参照されるのみであり得る。決定される特質は、例えば、プロバイダのインターフェース、プロバイダの通信プロトコル、チェック試験の利用可能性、レスポンス・タイム、スループット、プロバイダの対話方法、プロバイダの冪等能力、プロバイダの同期または非同期性、1つまたは複数のエラー種別、トランザクション支援、およびプロバイダの挙動特徴に関連し得る。
分析コンポーネント340は、リクエストの決定された要件およびプロバイダの決定された特質に関する情報をエラー・ハンドリング・コンポーネント300のアルゴリズム・コンポーネント350に渡すように構成され得る。リクエストの決定された要件およびプロバイダの決定された特質に関する情報に基づいて、アルゴリズム・コンポーネント350は、エラーをハンドリングするためのハンドリング・アルゴリズムを決定するように構成され得る。この目的のために、アルゴリズム・コンポーネント350は、エラー・ハンドリング・コンポーネント300の一部としてプロビジョニングされた第2のデータベース355の情報にアクセスするように構成され得る。第2のデータベース355は、例えば、例として、利用可能なアルゴリズムまたはアルゴリズム選択規則あるいはその両方のセットなどの、ハンドリング・アルゴリズムの決定のために有用な情報を記憶し得る。
例示的な一実施形態では、アルゴリズム・コンポーネント350は、リクエストの決定された要件およびプロバイダの決定された特質に基づいて、複数のアルゴリズムからハンドリング・アルゴリズムを選択し得る。例えば、アルゴリズム・コンポーネント350は、リクエストの決定された要件またはプロバイダの決定された特質あるいはその両方が所定の通信プロトコルに関連するかどうかに基づいて、ハンドリング・アルゴリズムを選択し得る。例えば、アルゴリズム・コンポーネント350は、共通プロトコル(例えばSOAP/HTTP)、または実際には、共通システムのためのアルゴリズム選択規則を利用し、その後、アルゴリズムを再使用するか、またはアルゴリズムを同様の終点のための始点として用い得る。
代替的に、または追加的に、アルゴリズム・コンポーネント350は最良適合評価に従ってハンドリング・アルゴリズムを選定してもよい。
アルゴリズム・コンポーネント350は、選択されたハンドリング・アルゴリズムをエラー・ハンドリング・コンポーネント300の実行コンポーネント360に渡し得、実行コンポーネント360は、ハンドリング・アルゴリズムに従ってプロバイダ320においてリクエストを呼び出すように構成され得る。実行コンポーネント360は、リアル・タイムに(例えば、実行時に)行われ得る、リクエスト呼び出しまたはエラー管理あるいはその両方のハンドリングを促進するために、ハンドリング・アルゴリズムのランタイム実行を企て得る。
図3のエラー・ハンドリング・コンポーネント300の一実装形態を実際に示すために、ハンドリング・アルゴリズムは、プロバイダ320へのリクエスト305の送達を保証するように構成され得、この目的のために、ハンドリング・アルゴリズムは、プロバイダへのリクエストの送達を保証するために、再試行手順、延期手順、比較、および併合手順のうちの少なくとも1つを実施し得る。
例示的な一実施形態に係るエラー・ハンドリング・コンポーネント300の上述の説明から、リクエスタ310とプロバイダ320との中間に位置し得る宣言的エラー・ハンドラ・コンポーネント300が提供され得る。
コンポーネント300の実施形態は、リクエスタ・ランタイム内、ブローカもしくはコネクタなどの、中間のミドルウェア内、またはプロバイダ内でプロビジョニングされ得る。実施形態は、リクエスタ要件およびプロバイダ特質を選択規則のセットと組み合わせて用いて、適切なエラー・ハンドリング・アルゴリズムを選択し得る。これは設計時に(例えば、性能の理由のために)行われてもよく、または選択は、例えば、実行時に行われ、キャッシュされてもよい。
エラー・ハンドリング・アルゴリズムを決定するための考慮事項は、(i)プロバイダ・インターフェース特質、(ii)リクエスタ要件、および(iii)コンポーネント能力などの、いくつかの異なるカテゴリに分割され得る。
(I)プロバイダ・インターフェース特質
プロバイダ・インターフェース特質は、プロバイダ・インターフェースについての特質を含み得る。例としては、移送媒体が対話の確実性をもたらすかどうか(例えば、未確定(in-doubt)リクエストが可能か)、プロバイダがリクエストを受け付けるかどうかを調べるためのヘルス・チェック試験が利用可能かどうか、どのようなレスポンス・タイムが達成可能であるか、どのようなスループットが達成可能であるか、どのようなセッション/接続が効率性のために別個の対話にわたって保持される必要があるか、ならびにインターフェースのために提供されたクライアントが、ブロッキングを生じさせるのか、コール・バックを生じさせるのか、それともポーリング・スタイルの対話を生じさせるのかを挙げることができる。
上述のもののうちのいくつかを含む、これらの特質の多くは、プロバイダ・インターフェース上の異なる動作のために異なり得ることに留意されたい。多くの場合、動作固有である特質の例としては、対話がデータの「読み込み」のみを遂行するのか、それとも「データの変更」をもたらすのか − 「変更」は、作成、更新、抹消等にさらに分けることができるであろう − 、インターフェースが冪等であるかどうか(重複リクエストをハンドリングするかどうか)、プロバイダがアクションを即座に遂行するのかどうか、またはリクエストが肯定応答をもって応答された後に完了が非同期的に行われるのかどうか、アクションが予想よりも長くかかった場合には、プロバイダがどのように、いつ挙動することになるのか − 例えば、タイムアウトおよびロールバック、または受信の肯定応答をもって応答し、非同期的に継続するか、または未確定ステータスをもって応答する − 、を挙げることができる。
無論、上述のものの多くは、別のインターフェースが本システムに実装された場合には、既知であり得る。プロバイダが、ウェブ・サービス、またはREST、またはJava(R)(TM)データベース・コネクティビティ(Java Database Connectivity、JDBC)などの、プロトコルおよび移送のためのよく知られた規格を用いている場合には、特質のうちのいくつかは容易に導き出され得る。
(II)リクエスタ要件
リクエスタ要件は、プロバイダとの対話に関するリクエスタの必要/期待に関連する要件を含み得る。例としては、重複が容認可能であろうかどうか、リクエスタが、アクションがバックエンド・システム内で即座に行われたことの確認を(すなわち、それが継続することができる前に)必要とするかどうか、または延期された確認で十分であろうかどうか、または実際には、確認が必要ないかどうか、どのようなレスポンス・タイムが必要であるのか、およびどのようなスループットが必要であるのかを挙げることができる。
(III)コンポーネント能力
コンポーネント能力は、宣言的エラー・ハンドラ(Declarative Error Handler、DEH)コンポーネントが利用可能な能力を含み得る。例としては、例えば、リクエストのためのレスポンス・タイム予想の差を管理するための、レスポンス・キャッシング、記憶転送(例えば、イベント記憶)、および例えば、処理されたトランザクションのユニーク・キー記憶を挙げることができる。
例示的なポリシー用語集
上述のことに基づき、ポリシー・アルゴリズムの論理を作り上げるための用語集は以下のようになり得る:
− リクエスタ要件。これは、受信するリクエストによってオーバライドされ得る:重複が問題となる、ブロッキング、SLA、およびトランザクション参加。
− リクエスタ特質:重複が可能。
− プロバイダ特質:動作動詞、動作種別、現在の状態が読み込み可能か?、冪等/再試行可能、保証された完了時間(assured completion time)、プロトコル同期/非同期、エラー種別、動作状態、トランザクション支援。
− アルゴリズム:保証された送達
− サブアルゴリズム:再試行、比較、併合。
− コンポーネント能力:サービス品質保証(Service-Level Agreement、SLA)測定。
例示的な一実施形態において、次に、HTTPベースのSOAPリクエストを含む一例が考察される。このような例のために、特定のプロバイダは、「冪等である」、「信頼できない媒体」を通じた「作成」動作のインターフェース特質を有し得、リクエスタ要件は、「重複なし」であることであり得るであろう。本発明の実施形態は、リクエスタ要件およびインターフェース特質を識別し、「信頼できない媒体を通じた作成」アルゴリズムなどのハンドリング・アルゴリズムを識別(例えば、選択)し得る。その後、リクエストは、リクエスタ要件「重複なし」、および「冪等でない」のインターフェース特質を用いてアルゴリズムに従ってプロバイダ上で呼び出され得る。
図4に、このようなアルゴリズムの一例がフロー図として示されている。図4は、本発明の実施形態に係るハンドリング・アルゴリズムのフロー図を示す。このようなアルゴリズムのために、同期トランスポート・プロトコル(例えば、HTTP)が利用されること、および信頼できない通信媒体(例えば、インターネット)が利用されることが仮定されている。
アルゴリズムはステップ410において開始し、作成動作を実施するステップ415に進む。作成動作が成功した場合には、本方法は、成功を報告するステップ420に進む。しかし、ステップ415の作成動作のゆえに永久エラーが生じた場合には、本方法は、失敗を報告するステップ425に進む。ステップ415の作成動作のゆえに、一時エラーが生じた場合には、本方法は、重複が問題となるか否かを判定するステップ430に進む。
重複が実際に問題となる場合には、本方法は、作成動作を再試行するステップ435に進む。逆に、重複が問題とならない場合には、本方法は、インターフェースが冪等であるか否かを判定するステップ440に進む。インターフェースが冪等である場合には、本方法はステップ435に進む。
ステップ435の作成動作の再試行のゆえに、一時エラーが生じた場合には、本方法は、一時エラーを報告するステップ440に進む。ステップ435における作成動作の再試行が成功した場合には、本方法は、成功を報告するステップ445に進む。しかし、ステップ435における作成動作の再試行のゆえに永久エラーが生じた場合には、本方法は、エラーを報告するステップ450に進む。
インターフェースが冪等であるか否かを判定する、ステップ440の考察に戻ると、インターフェースが冪等でない場合には、本方法はステップ460に進む。ステップ460において、読み込み動作が利用可能であるか否かを判定する。読み込み動作が利用可能でないと判定された場合には、本方法は、未確定の指示を提供するステップ465に進む。逆に、ステップ460において、読み込み動作が利用可能であると判定された場合には、本方法は、作成動作のための保証された完了時間が存在するかどうかを判定するステップ470に進む。
ステップ470において、作成動作のための保証された完了時間が存在すると判定された場合には、本方法は、延期された読み込み動作を企てるステップ475に進む。ステップ475における延期された読み込みが存在を指示する場合には、本方法は、成功を報告するステップ480に進む。逆に、ステップ475における延期された読み込みが不存在を指示する場合には、本方法は本方法の開始410に戻る。
しかし、ステップ470において、作成動作のための保証された完了時間が存在しないと判定された場合には、本方法は、読み込み動作を企てるステップ485に進む。ステップ485における読み込みの再試行が存在を指示する場合には、本方法は、成功を報告するステップ490に進む。逆に、ステップ485における読み込みの再試行が不存在を指示する場合には、本方法は、未確定の指示を提供するステップ495に進む。
図4に示される例示的なアルゴリズムは、冪等なプロバイダのゆえに重複が作成されることがないため安心な一時エラーの自動再試行を生じさせる。
ターゲットは、「永久」エラーと「一時」エラーとの相違の正しい表現を有しない場合がある。プラグ可能な「レスポンス・インタープリタ(response interpreter)」は、関連情報をプロトコルから選び出し(unpick)、アルゴリズムによって用いられ得る依存性のないレスポンスに入れることができる。例えば、一見したところ成功のレスポンスSOAPメッセージが、実際には、或る形態の一時エラーを表現するために用いられている場合には、これを捕らえ、アルゴリズムのために正しい一時エラー結果に翻訳することができる。
したがって、要約すれば、インターフェースのエラー・ハンドリング論理は純粋にドメイン固有ポリシー言語によって実施され、標準ポリシー・アルゴリズムを利用してきた。また、図4のフロー図によって示されるアルゴリズムは実行可能言語に変換され、例えば、ビジネス・プロセス実行言語(business process execution language、BPEL)エンジンのために、実行可能エンジンが動作するのと同じ仕方で、処理エンジンによって実行され得ることも理解されるであろう。
図5を参照すると、同図は、本発明の実施形態に係る、コンピュータ実施方法500のフロー図を示す。本方法は、プロバイダのサービスのためのリクエストを(例えば、発信元のリクエスタから)受信する、ステップ510において開始する。次に、ステップ520において、リクエストの要件を決定し、ステップ530において、プロバイダの特質を決定する。ここで、ステップ520および530は、別個に、および任意の好適な順序で完了され得る。例えば、ステップ530は、ステップ520の前に企てられてもよく、あるいはステップ520および530は並列に企てられてもよい。
次に、ステップ540において、リクエストの決定された要件およびサービス・プロバイダの決定された特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを識別する。このような識別は、例えば、利用可能なアルゴリズムのセットからアルゴリズムを選択することによって達成され得る。
最後に、ステップ550において、ハンドリング・アルゴリズムに従ってプロバイダにおいてリクエストを呼び出す。
以上において図1〜図5を参照して提示されたものなどの実施形態は、リクエスタ要件およびプロバイダ特質のセットによって定義されるリクエスタとプロバイダとの間の統合をもたらし得ることは理解されるであろう。リクエスタ要件およびプロバイダ特質に基づいて、一実施形態は、発生し得るエラーを管理するために、エラー・ハンドリング・アルゴリズムをプロセス・フロー内に投入し得る。投入されたアルゴリズムは、例えば、欠落した、または必要とされる挙動を提供するか、標準的でないエラー・レスポンスの再分類を可能にするか、あるいはその両方をなし得る。このように、さもなければエラーとして識別されなかった可能性のある肯定レスポンスが検出され、処理され得る。
実施形態によっては、図1〜図5を参照して上述された任意の方法を実施するように構成された処理機構を備えるシステムが提供され得る。
図6は、本発明の実施形態に係る、寄与スコアを生成するように構成されたシステムを示す。例として、図6に示されるように、実施形態は、ネットワーク化システムの一部を形成し得る、コンピュータ・システム70を備え得る。コンピュータ・システム/サーバ70のコンポーネントは、限定するものではないが、例えば、プロセッサもしくは処理ユニット71を含む、1つまたは複数の処理機構、システム・メモリ74、およびシステム・メモリ74を含む様々なシステム・コンポーネントを処理ユニット71に結合するバス90を含み得る。
バス90は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、ならびに種々のバス・アーキテクチャのうちの任意のものを用いるプロセッサまたはローカル・バスを含む、いくつかの種類のバス構造のうちの任意のもののうちの1つまたは複数を表す。限定ではなく、例として、このようなアーキテクチャとしては、業界標準アーキテクチャ(Industry Standard Architecture、ISA)・バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)・バス、拡張ISA(Enhanced ISA、EISA)バス、ビデオ・エレクトロニクス規格協会(Video Electronics Standards Association、VESA)ローカル・バス、および周辺装置相互接続(Peripheral Component Interconnect、PCI)バスが挙げられる。
コンピュータ・システム/サーバ70は通例、種々のコンピュータ・システム可読媒体を含む。このようなコンピュータ・システム可読媒体は、コンピュータ・システム/サーバ70によってアクセス可能である任意の利用可能な媒体であり得、コンピュータ・システム可読媒体は、揮発性および不揮発性媒体、取り外し可能および非取り外し可能な媒体の両方を含む。
システム・メモリ74は、ランダム・アクセス・メモリ(random accessmemory、RAM)75またはキャッシュ・メモリ76あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ70は、他の取り外し可能/非取り外し可能な、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、記憶システム74は、非取り外し可能な不揮発性磁気媒体(図示されておらず、通例、「ハード・ドライブ」と呼ばれる)からの読み取り、およびそれへの書き込みのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読み取り、およびそれへの書き込みのための磁気ディスク・ドライブ、ならびにCD−ROM、DVD−ROM、または他の光媒体などの取り外し可能な不揮発性光ディスクからの読み取り、またはそれへの書き込みのための光ディスク・ドライブを設けることができる。このような場合には、1つまたは複数のデータ媒体インターフェースによって各々をバス90に接続することができる。以下においてさらに図示され、説明されるように、メモリ74は、本発明の実施形態の機能を実施するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール79のセット(例えば、少なくとも1つ)を有するプログラム/ユーティリティ78が、限定ではなく、例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ74内に記憶されてもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、あるいはこれらの何らかの組み合わせの各々は、ネットワーキング環境の一実装形態を含み得る。プログラム・モジュール79は、本明細書において説明されるとおりの本発明の実施形態の機能または方法論あるいはその両方を一般的に実施する。
コンピュータ・システム/サーバ70はまた、キーボード、ポインティング・デバイス、ディスプレイ85等などの1つまたは複数の外部デバイス80、ユーザがコンピュータ・システム/サーバ70と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ70が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組み合わせと通信し得る。このような通信は入力/出力(I/O)インターフェース72を介して行うことができる。それでもなお、コンピュータ・システム/サーバ70は、ネットワーク・アダプタ73を介して、ローカル・エリア・ネットワーク(LAN)、一般のワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはこの組み合わせなどの1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ73はバス90を介してコンピュータ・システム/サーバ70の他のコンポーネントと通信する。図示されていないが、他のハードウェアまたはソフトウェア・コンポーネントあるいはその両方をコンピュータ・システム/サーバ70と併せて用いることができるであろう。例としては、限定するものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システム等が挙げられる。
本出願の文脈において、本発明の実施形態が方法を構成する場合には、このような方法は、コンピュータによる実行のためのプロセス、すなわち、コンピュータ実施可能方法であることを理解されたい。したがって、本方法の様々なステップは、コンピュータ・プログラムの様々な部分、例えば、1つまたは複数のアルゴリズムの様々な部分を反映する。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または媒体群)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMもしくはフラッシュ・メモリ)、ストレージ・クラス・メモリ(storage class memory、SCM)、スタティック・ランダム・アクセス・メモリ(static random access memory、SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(compact disc read-only memory、CD−ROM)、デジタル多用途ディスク(digital versatile disk、DVD)、メモリ・スティック、フロッピー(R)・ディスク、穿孔カード、または命令が記録された溝内の隆起構造などの、機械的に符号化されたデバイス、ならびに上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波もしくは他の自由伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通して伝送される電気信号などの、一過性信号自体であると解釈されるべきでない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組み合わせを経由して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースがネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(instruction-set-architecture、ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++、もしくは同様のものなどの、オブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの、従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれた、ソース・コードまたはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は完全にユーザのコンピュータ上で実行するか、一部ユーザのコンピュータ上で実行するか、独立型ソフトウェア・パッケージとして実行するか、一部ユーザのコンピュータ上で、且つ一部リモート・コンピュータ上で実行するか、または完全にリモート・コンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、あるいは外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを利用してインターネットを通じて)行われてもよい。実施形態によっては、例えば、プログラマブル論理回路機構、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array、FPGA)、またはプログラマブル論理アレイ(programmable logic array、PLA)を含む電子回路機構が、本発明の態様を遂行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機構を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能/行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、内部に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックもしくはブロック群内で指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ可読記憶媒体内に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組み合わせを特定の仕方で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能/行為を実施するように、コンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを遂行させるものであってもよい。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的実装形態では、ブロック内に記された機能は、図面に記された順序に従わずに生じてもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時として、含まれる機能性に依存して、逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を遂行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
一実施形態では、本発明のシステムは、コンピュータ、ポータブル・デバイス等などのハードウェア・デバイスであるか、またはこれらを含み得る。一実施形態では、ハードウェア・デバイスは、本発明の方法のみを実行するために(独立して、または組み合わせて)特定化されるための、特殊な非包括的ハードウェアおよび回路機構(すなわち、特殊な個別の非包括的アナログ、デジタル、および論理ベースの回路機構)を備える専用デバイス(例えば、コンピュータ、機械、ポータブル・デバイス)であるか、またはそれを含む。特殊な個別の非包括的アナログ、デジタル、および論理ベースの回路機構は、専有の特別に設計されたコンポーネント(例えば、例として、本発明の方法を実施するためにのみ設計された、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)などの、特殊集積回路)を含み得る。
別の実施形態では、本提案の発明は、結果として得られるグラフが検索エンジン技術を改善し得るため、コンピュータ技術に必然的に根差す技術的問題を解決する。これは、ユーザが、さらなるウェブサイトへナビゲートするのを回避すること、または情報のさらなる検索を遂行することを可能にする位置において関連情報を提供することによって、コンピュータ・リソースを節約する。
本発明のコンピュータ・プログラム製品は、内部に記憶されたコンピュータ可読プログラム・コードを有する1つまたは複数のコンピュータ可読ハードウェア記憶デバイスを含み得、前記プログラム・コードは、コンピューティング・システム(またはコンピュータ・システム)の1つまたは複数のプロセッサによって、本発明の方法を実施するように実行可能な命令を包含する。
本発明のコンピュータ・システムは、1つまたは複数のプロセッサと、1つまたは複数のメモリと、1つまたは複数のコンピュータ可読ハードウェア記憶デバイスとを含み得、前記1つまたは複数のハードウェア記憶デバイスは、1つまたは複数のメモリを介して1つまたは複数のプロセッサによって、本発明の方法を実施するよう実行可能なプログラム・コードを包含する。
本発明の様々な実施形態の説明が例示の目的のために提示されたが、網羅的であること、または開示された実施形態に限定されることを意図されてはいない。当業者には、説明された実施形態の範囲および思想から逸脱することなく、多くの変更および変形が明らかであろう。本明細書において使用される用語は、実施形態の原理、実際の適用、もしくは市場において見いだされる技術に対する技術的改善を最もよく説明するため、または他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選定された。

Claims (22)

  1. リクエスタとプロバイダとの間のエラー・ハンドリングのための方法であって、
    コンピューティング・システムのプロセッサによって、前記プロバイダのサービスのためのリクエストを前記リクエスタから受信することと、
    前記プロセッサによって、前記リクエストの要件を決定することと、
    前記プロセッサによって、前記リクエストの前記要件および前記サービス・プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを識別することと、
    を含む方法。
  2. 前記プロセッサによって、前記ハンドリング・アルゴリズムに従って前記プロバイダにおいて前記リクエストを呼び出すことをさらに含む、請求項1に記載の方法。
  3. 前記リクエストの前記要件が、
    重複の容認性、
    前記リクエスタによって必要とされる確認、
    レスポンス・タイム、
    スループット、および
    トランザクション参加、
    のうちの少なくとも1つに関連する、請求項1に記載の方法。
  4. 前記プロバイダの前記特質が、
    前記プロバイダのインターフェース、
    前記プロバイダの通信プロトコル、
    チェック試験の利用可能性、
    レスポンス・タイム、
    スループット、
    前記プロバイダの対話方法、
    前記プロバイダの冪等能力、
    前記プロバイダの同期または非同期性、
    1つまたは複数のエラー種別、
    トランザクション支援、および
    前記プロバイダの挙動特徴、
    のうちの少なくとも1つに関連する、請求項1に記載の方法。
  5. 識別することが、前記プロセッサによって、前記リクエストの前記要件および前記プロバイダの前記特質に基づいて、複数のアルゴリズムから前記ハンドリング・アルゴリズムを選択することを含む、請求項1に記載の方法。
  6. 前記ハンドリング・アルゴリズムを選択することが、前記リクエストの前記要件または前記プロバイダの前記特質が所定の通信プロトコルに関連するかどうかに基づいて、前記ハンドリング・アルゴリズムを選択することを含む、請求項5に記載の方法。
  7. ハンドリング・アルゴリズムを識別することが、最良適合評価に従って前記ハンドリング・アルゴリズムを選択することを含む、請求項5に記載の方法。
  8. 前記ハンドリング・アルゴリズムが、前記プロバイダへの前記リクエストの送達を保証するように構成されており、前記ハンドリング・アルゴリズムが、前記プロバイダへの前記リクエストの送達を保証するために、再試行手順、延期手順、比較、および併合手順のうちの少なくとも1つを実施するように構成されている、請求項1に記載の方法。
  9. 前記プロセッサによって、前記プロバイダの特質を決定することをさらに含み、前記プロバイダの前記特質を決定することが、前記プロバイダの1つまたは複数の特質に関連する情報をデータ・リポジトリから得ることを含む、請求項1に記載の方法。
  10. リクエスタとプロバイダとの間のエラー・ハンドリングのためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、前記プログラム命令が、処理ユニットに、
    コンピューティング・システムのプロセッサによって、前記プロバイダのサービスのためのリクエストを前記リクエスタから受信することと、
    前記プロセッサによって、前記リクエストの要件を決定することと、
    前記プロセッサによって、前記リクエストの前記要件および前記サービス・プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを識別することと、
    を含む方法を遂行させるように前記処理ユニットによって実行可能である、コンピュータ・プログラム製品。
  11. データ処理システムであって、少なくとも1つのプロセッサと、請求項10に記載のコンピュータ・プログラム製品とを備え、前記少なくとも1つのプロセッサが、前記コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように構成されている、データ処理システム。
  12. 前記データ処理システムが、メッセージ・プロデューサとメッセージ・コンシューマとの間のメッセージ・ブローカの役割を果たすように構成されている、請求項11に記載のデータ処理システム。
  13. 前記データ処理システムが、サービス指向アーキテクチャの一部を実施するように構成されている、請求項11に記載のデータ処理システム。
  14. リクエスタとプロバイダとの間のエラー・ハンドリングのためのエラー・ハンドリング・コンポーネントであって、前記コンポーネントが、
    前記リクエスタから、前記プロバイダのサービスのためのリクエストを受信するように構成された入力インターフェースと、
    前記リクエストの要件を決定するように構成された分析コンポーネントと、
    前記リクエストの前記要件および前記プロバイダの特質に基づいて、エラーをハンドリングするためのハンドリング・アルゴリズムを決定するように構成されたアルゴリズム・コンポーネントと、
    を備える、エラー・ハンドリング・コンポーネント。
  15. 前記ハンドリング・アルゴリズムに従って前記プロバイダにおいて前記リクエストを呼び出すように構成された実行コンポーネントをさらに備える、請求項14に記載のエラー・ハンドリング・コンポーネント。
  16. 前記リクエストの前記要件が、
    重複の容認性、
    前記リクエスタによって必要とされる確認、
    レスポンス・タイム、
    スループット、および
    トランザクション参加、
    のうちの少なくとも1つに関連する、請求項14に記載のエラー・ハンドリング・コンポーネント。
  17. 前記プロバイダの前記特質が、
    前記プロバイダのインターフェース、
    前記プロバイダの通信プロトコル、
    チェック試験の利用可能性、
    レスポンス・タイム、
    スループット、
    前記プロバイダの対話方法、
    前記プロバイダの冪等能力、
    前記プロバイダの同期または非同期性、
    1つまたは複数のエラー種別、
    トランザクション支援、および
    前記プロバイダの挙動特徴、
    のうちの少なくとも1つに関連する、請求項14に記載のエラー・ハンドリング・コンポーネント。
  18. 前記アルゴリズム・コンポーネントが、前記リクエストの前記要件および前記プロバイダの前記特質に基づいて、複数のアルゴリズムから前記ハンドリング・アルゴリズムを選択するように構成されている、請求項14に記載のエラー・ハンドリング・コンポーネント。
  19. 前記アルゴリズム・コンポーネントが、前記リクエストの前記要件または前記プロバイダの前記特質が所定の通信プロトコルに関連するかどうかに基づいて、前記ハンドリング・アルゴリズムを選択するように構成されている、請求項18に記載のエラー・ハンドリング・コンポーネント。
  20. 前記アルゴリズム・コンポーネントが、最良適合評価に従って前記ハンドリング・アルゴリズムを選択するように構成されている、請求項18に記載のエラー・ハンドリング・コンポーネント。
  21. 前記分析コンポーネントが、前記プロバイダの特質を決定するように構成されており、前記分析コンポーネントが、前記プロバイダの1つまたは複数の特質に関連する情報をデータ・リポジトリから得るように構成されている、請求項14に記載のエラー・ハンドリング・コンポーネント。
  22. 前記ハンドリング・アルゴリズムが、前記プロバイダへの前記リクエストの送達を保証するように構成されており、前記ハンドリング・アルゴリズムが、前記プロバイダへの前記リクエストの送達を保証するために、再試行手順、延期手順、比較、および併合手順のうちの少なくとも1つを実施するように構成されている、請求項14に記載のエラー・ハンドリング・コンポーネント。
JP2020528250A 2017-12-04 2018-11-29 エラー・ハンドリングのための方法、コンピュータ・プログラム、データ処理システム、およびエラー・ハンドリング・コンポーネント Active JP7189952B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/830,102 2017-12-04
US15/830,102 US10831590B2 (en) 2017-12-04 2017-12-04 Error handling
PCT/IB2018/059441 WO2019111109A1 (en) 2017-12-04 2018-11-29 Error handling

Publications (3)

Publication Number Publication Date
JP2021505989A true JP2021505989A (ja) 2021-02-18
JP2021505989A5 JP2021505989A5 (ja) 2021-04-01
JP7189952B2 JP7189952B2 (ja) 2022-12-14

Family

ID=66659147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020528250A Active JP7189952B2 (ja) 2017-12-04 2018-11-29 エラー・ハンドリングのための方法、コンピュータ・プログラム、データ処理システム、およびエラー・ハンドリング・コンポーネント

Country Status (6)

Country Link
US (1) US10831590B2 (ja)
JP (1) JP7189952B2 (ja)
CN (1) CN111373377B (ja)
DE (1) DE112018006175T5 (ja)
GB (1) GB2582509B (ja)
WO (1) WO2019111109A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936488B1 (en) * 2018-08-31 2021-03-02 Splunk Inc. Incident response in an information technology environment using cached data from external services
US11880835B2 (en) * 2020-04-24 2024-01-23 Salesforce, Inc. Prevention of duplicate transactions across multiple transaction entities in database systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299109A1 (en) * 2010-06-02 2011-12-08 Toshiba Tec Kabushiki Kaisha Image processing apparatus and management apparatus
US20120158813A1 (en) * 2010-12-16 2012-06-21 Udaya Kumar Service abstraction layer for accessing a plurality of services
US20130254254A1 (en) * 2012-03-20 2013-09-26 Massachusetts Mutual Life Insurance Company Service mediation model

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US101217A (en) * 1870-03-29 George p
US7086066B2 (en) * 2000-03-31 2006-08-01 Schlumbergersema Telekom Gmbh & Co. Kg System and method for exception handling
US7243267B2 (en) * 2002-03-01 2007-07-10 Avaya Technology Llc Automatic failure detection and recovery of applications
US7076762B2 (en) 2002-03-22 2006-07-11 Sun Microsystems, Inc. Design and redesign of enterprise applications
US7007200B2 (en) * 2002-07-11 2006-02-28 International Business Machines Corporation Error analysis fed from a knowledge base
US7412626B2 (en) * 2004-05-21 2008-08-12 Sap Ag Method and system for intelligent and adaptive exception handling
WO2007006128A1 (en) * 2005-04-18 2007-01-18 Research In Motion Limited Method for handling a detected error in a script-based application
CN102081970B (zh) 2010-12-31 2012-12-19 成都市华为赛门铁克科技有限公司 纠错处理的方法、装置及固态硬盘设备
US9201723B2 (en) 2011-06-27 2015-12-01 International Business Machines Corporation Fault handling in a distributed IT environment
CN103530199B (zh) * 2012-07-02 2015-12-02 腾讯科技(深圳)有限公司 一种修复软件运行错误的方法、装置及系统
US10756967B2 (en) * 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299109A1 (en) * 2010-06-02 2011-12-08 Toshiba Tec Kabushiki Kaisha Image processing apparatus and management apparatus
US20120158813A1 (en) * 2010-12-16 2012-06-21 Udaya Kumar Service abstraction layer for accessing a plurality of services
US20130254254A1 (en) * 2012-03-20 2013-09-26 Massachusetts Mutual Life Insurance Company Service mediation model

Also Published As

Publication number Publication date
GB202008748D0 (en) 2020-07-22
GB2582509A (en) 2020-09-23
GB2582509B (en) 2022-10-12
DE112018006175T5 (de) 2020-09-03
US10831590B2 (en) 2020-11-10
US20190171512A1 (en) 2019-06-06
CN111373377A (zh) 2020-07-03
JP7189952B2 (ja) 2022-12-14
WO2019111109A1 (en) 2019-06-13
CN111373377B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US8452853B2 (en) Browser with offline web-application architecture
US10353750B2 (en) Discovery and exposure of transactional middleware server-based applications as consumable service endpoints
US20060294141A1 (en) Smart business object proxy
US11755744B2 (en) Application programming interface specification inference
US11689626B2 (en) Transport channel via web socket for ODATA
US11221907B1 (en) Centralized software issue triage system
JP7189952B2 (ja) エラー・ハンドリングのための方法、コンピュータ・プログラム、データ処理システム、およびエラー・ハンドリング・コンポーネント
US11330053B1 (en) Making eventual consistency cache updates deterministic
CN114489622A (zh) 静态资源管理方法、Node.js应用、电子设备和存储介质
US11729111B2 (en) Pluggable data resource management controller
CN111581098B (zh) 接口数据转移存储的方法、装置、服务器及存储介质
CN112765246A (zh) 任务处理方法、装置、电子设备和存储介质
CN108496157B (zh) 使用扩展接口提供运行时跟踪的系统和方法
CN114730305A (zh) 控制应用和服务器之间的事务请求
US9224010B2 (en) Secure document creation from potentially unsecure source templates
US20080065679A1 (en) Method for rules-based drag and drop processing in a network environment
US11429400B2 (en) User interface metadata from an application program interface
US11675584B1 (en) Visualizing dependent relationships in computer program analysis trace elements
WO2021232860A1 (zh) 通信方法、装置及系统
US11178216B2 (en) Generating client applications from service model descriptions
US10620946B1 (en) Dynamic modeling for opaque code during static analysis
WO2023230797A1 (zh) 一种跨系统测试方法及装置
US11893589B2 (en) Automated support query
US11038765B2 (en) Cloud software defined networking application programming interface converter
CN113110913A (zh) 镜像管理系统、方法及计算设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210423

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220720

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: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221202

R150 Certificate of patent or registration of utility model

Ref document number: 7189952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150