【手続補正書】
【提出日】平成16年4月2日(2004.4.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
そのメモリ中に在るプログラムのコンポネントの相互接続を管理するためのコンピュータ・システムにおいて、
該コンピュータ・システムは、トランザクション・マネージャ・コンポネントの制御の下に、管理されたリソースがトランザクション内部で参画するよう管理するためのコンポネント・ベースのリソース管理フレームワークをその中に記憶しているメモリを持って成り、
上記トランザクション・マネージャ・コンポネントは、２フェーズ・コミット・プロトコルに従って参画するコンポネントにノーティフィケーションを送達するための命令を持ち、
上記コンポネント・ベースのリソース管理フレームワークは、ログ・エントリーをログ記憶部中に耐久的に記録するためのログ命令と；リソース特定管理命令を上記フレームワーク中に統合するための、一般化されたインターフェース命令と；管理されたリソースに特定され、且つ一般化されたインターフェースを介してフレームワーク中に統合されているコンポネント・ベースの命令を含み、クライアント・アプリケーションの要請に応じてトランザクションのスコープ内部の管理されたリソース中に保持されるデータを繰り返し変更するワークを実行するよう動作するところの補償するリソース・マネージャ・コンポネントと；を上記メモリ中に有し、
上記補償するリソース・マネージャ・コンポネントの命令は、ワークを完全に反転するのに十分な情報をログ記憶部中にログし、且つトランザクションがアボートされたことを示すトランザクション・マネージャ・コンポネントからのノーティフィケーションに応じて、上記ログされた情報に従ってワークを完全に反転するために補償アクションを実行するよう動作するものであり、また
上記コンピュータ・システムは更に、トランザクション内部で管理されたリソースの統合を実現するよう上記フレームワークの命令を実行するための中央処理ユニット(CPU) を持って成る
ことを特徴とするコンピュータ・システム。
【請求項２】
請求項１に記載のコンピュータ・システムにおいて、上記補償するリソース・マネージャ・コンポネントは、ワーカー・コンポネント及びコンペンセータ・コンポネントを含み、上記ワーカー・コンポネントは、ワークを実行しログ記憶部内の情報をログするよう動作する命令を持ち、上記コンペンセータ・コンポネントは、ログされた情報に従って補償アクションを実行するよう動作する命令を持ち、また、上記ワーカー・コンポネントは、ログ記憶部のみを経由して上記コンペンセータ・コンポネントに情報を受け渡すことを特徴とするコンピュータ・システム。
【請求項３】
CPU とプログラム・コンポネントの相互接続を実行するメモリとを持つコンピュータ・システムにプログラミングするための、コンピュータで実行可能なプログラム・コードを記憶させてあるコンピュータで読み取り可能な記憶媒体であって、
上記プログラム・コードは持続性のあるリソース・コンポネントをトランザクション処理システムに統合してトランザクション・マネージャ・コンポネントの制御の下にトランザクション内部で参画させるために、コンポネント・ベースのリソース管理フレームワークを含み、
上記統合は、アプリケーション・コンポネントが要請すれば耐久性のあるリソース・コンポネントに対しワーク演算を実行するよう動作できるプログラム・コードを含むワーカー・コンポネントの使用と、上記ワーク演算を反転させる補償演算を実行するよう動作できるプログラム・コードを含むコンペンセータ・コンポネントの使用とを通してなされるところの、コンピュータで読み取り可能な記憶媒体において、
上記コンポネント・ベースのリソース管理フレームワークのプログラム・コードは：
コンペンセータ登録コンポネントのプログラム・コードを実行するに際しCPUがコンペンセータ・コンポネントを登録する場合に、コンペンセータ・コンポネントを登録するためのワーカー・コンポネントによる呼出しに対するコンペンセータ登録インタフェースを持っているコンペンセータ登録コンポネントと；
ロギング・コンポネントのプログラム・コードを実行するに際しCPU がワーク演算の情報を繰り返しログする場合に、ワーク演算の情報を繰り返しログするためのワーカー・コンポネントによる呼出しに対するロギング・インタフェースを持っているロギング・コンポネントと；
補償開始コンポネントのプログラム・コードを実行するに際しCPU がメモリ中にコンペンセータ・コンポネントを創成してワーク演算をそれにより反転させる場合に、トランザクションがアボートしようとしているというノーティフィケーションをトランザクション・マネージャから受け取るためのノーティフィケーション・インタフェースを持ち、また、コンペンセータ・コンポネントを創成するように動作することでき、更にまた、上記ノーティフィケーションに応答してワーカー・コンポネントによりログされる情報に基づきコンペンセータ・コンポネントに補償演算を実行させてそれによりワーク演算を反転させるように動作することができるところの補償開始コンポネントと；
を有して成ることを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項４】
請求項３に記載のコンピュータで読み取り可能な記憶媒体において、コンペンセータ登録コンポネントのプログラム・コードを実行するに際し、CPU はコンペンセータ登録インタフェースへのワーカー・コンポネントの呼出しから戻るに当たりロギング・インタフェースへのポインターをワーカー・コンポネントに受け渡すことを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項５】
請求項３に記載のコンピュータで読み取り可能な記憶媒体において、コンペンセータ登録コンポネントのプログラム・コードを実行するに際し、コンペンセータ登録インタフェースへのワーカー・コンポネントの呼出しに応答して、補償開始コンポネントのプログラム・コードを実行するに当たってCPU がトランザクション・マネージャからノーティフィケーションを受け取るように、CPU は更にワーカー・コンポネントがその中で参画するところのトランザクション中の補償開始コンポネントをリストに掲載するように動作できることを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項６】
請求項３に記載のコンピュータで読み取り可能な記憶媒体において、補償開始コンポネントのプログラム・コードを実行するに際し、CPU は更に、ノーティフィケーション・インタフェース上のトランザクション・マネージャから準備ノーティフィケーションを受け取るように動作でき、また、該準備ノーティフィケーションに応答してトランザクションの準備フェーズ中に、該トランザクションをアボートするか否かの表決演算をコンペンセータ・コンポネントに実行させるように動作できることを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項７】
請求項３に記載のコンピュータで読み取り可能な記憶媒体において、補償開始コンポネントのプログラム・コードを実行するに際し、CPU は更に、ノーティフィケーション・インタフェース上のトランザクション・マネージャからコミット・ノーティフィケーションを受信するように動作でき、且つ該コミット・ノーティフィケーションに応答してワーク演算によって部分的に達成されたワークの完了のためにログされた情報に準拠してクリーンアップ演算及びどのような実演算もコンペンセータ・コンポネントに実行させるように動作できることを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項８】
そのメモリ内のプログラムのコンポネントの相互接続を管理するためのオンライン・トランザクション処理コンピュータ・システムであって、
該コンピュータ・システムはトランザクション・マネージャ・コンポネントをその中に記憶しているメモリと、該トランザクション・マネージャ・コンポネントの制御の下にトランザクションの内部で耐久性のあるリソースを参画させるように管理するための補償するリソース・マネージャ・コンポネントとを有し、
該補償するリソース・マネージャ・コンポネントは、トランザクションの一部として耐久性のあるリソース・コンポネント上へワーク演算を要請するアプリケーションによる呼出しに対するワーク要請インタフェースを持つワーカー・コンポネントを有して成り、CPU が該ワーカー・コンポネントのプログラム命令を執行し、且つ該アプリケーションによる呼出しに応答して要請されたワーク演算に関係する情報を繰り返しログに書き込み、及び耐久性のあるリソース上のワーク演算を成し遂げるためのワーク・アクションを実行するように動作し、
また、上記補償するリソース・マネージャ・コンポネントは、トランザクションをアボートするためにトランザクション・マネージャによって発出されるノーティフィケーションを受け取るためのノーティフィケーション・インタフェースを持つコンペンセータ・コンポネントを有して成り、上記CPU は該コンペンセータ・コンポネントのプログラム命令を執行し、且つ上記ノーティフィケーションに応答してログから情報を読み出し、及び耐久性のあるリソース上のワーク・アクションの効果を反転するための補償アクションを実行するように動作し、
上記ワーカー・コンポネント及び上記コンペンセータ・コンポネントは上記ワーカー・コンポネントによりログされた情報によってのみ状態を共有する
ことを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項９】
請求項８に記載のコンピュータ・システムにおいて、上記補償するリソース・マネージャ・コンポネントは更に、コンペンセータ・コンポネントを登録するためのワーカー・コンポネントによる呼出しに対するコンペンセータ登録インタフェースを持つ補償マネージャ・コンポネントを有して成り、上記CPU は該補償マネージャ・コンポネントのプログラム命令を執行し、且つワーカー・コンポネントによる呼出しに応答してコンペンセータ・コンポネントを創成し、及びトランザクション・マネージャにより発出されるノーティフィケーションを受け取るためにトランザクション中のリストに掲載するように動作することを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１０】
請求項９に記載のコンピュータ・システムにおいて、上記補償するリソース・マネージャ・コンポネントのプログラム命令を執行するCPU は、更にワーカー・コンポネントの呼出しに応答してワーカー・コンポネントが情報をログに書き込むためのアクセスを供給するように動作できることを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１１】
請求項８に記載のコンピュータ・システムにおいて、CPU はトランザクション中の障害後の障害回復のために補償するリソース・マネージャ・コンポネントのプログラム命令を執行し、補償するリソース・マネージャ・コンポネントは更に障害回復マネージャ・コンポネントを有し、そのときCPU は該障害回復マネージャ・コンポネントのプログラム命令を執行するに当たり、障害後に障害回復が開始されるとトランザクションの結果をトランザクション・マネージャ・コンポネントから決定し、補償するコンポネントを創成し、もし該結果が該トランザクションをアボートさせるべきであったならばログからの情報に基づいて補償するコンポネントに補償アクションを実行させるように動作できることを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１２】
請求項11に記載のコンピュータ・システムにおいて、障害回復マネージャ・コンポネントのプログラム命令を執行するCPU は、障害回復中に補償アクションを実行すべき補償するコンポネントの障害に当たって、該補償アクションを後続の障害回復まで延期するためにログ内の情報を保存するように動作できることを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１３】
請求項８に記載のコンピュータ・システムにおいて、補償するコンポネントのプログラム命令を執行するCPU は、障害回復中の補償アクションの実行の障害に当たって、操作する人間が持続性のあるリソースに対するアクションを反転させる手動アクションを実施するために操作する人間に供給されるべき注意及び情報をもたらすように動作できることを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１４】
請求項８に記載のコンピュータ・システムにおいて、補償するコンポネントの補償アクションはべき等(idempotent)であることを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１５】
請求項８に記載のコンピュータ・システムにおいて、補償するコンポネントの補償アクションは反転できないことを特徴とするオンライン・トランザクション処理コンピュータ・システム。
【請求項１６】
フレームワーク・デベロッパーを履行するコンポネント・ベースのトランザクション処理フレームワーク内で、選ばれたリソースがトランザクション処理プロトコルをサポートしないときに、リソースをフレームワークに統合する方法であって、この方法はCPU とメモリとを持つコンピュータ・システム内で実行され、該メモリは該方法を実行するための命令を含んで成るところの方法において、該方法は
CPU が２番目のデベロッパーにより履行される命令を含むワーカー・コンポネントの命令を執行することによりリソースを変えること、及び
CPU が該２番目のデベロッパーにより履行される命令を含むコンペンセータ・コンポネントの命令を執行することによりリソースを元へ戻すこと
を含んで成り、また
リソースのロギング及び復帰は、リソース変更がトランザクションのコミットに際しリソース上で耐久的のままであるように、且つリソースがトランザクションのアボートに際しトランザクション以前の状態に戻されるように、CPU が執行するフレームワークの命令によってサポートされる
ことを特徴とするリソースをフレームワークに統合する方法。
【請求項１７】
フレームワーク・デベロッパーを履行するコンポネント・ベースのトランザクション処理フレームワーク内で、選ばれたリソースがトランザクション処理プロトコルをサポートしないときに、リソースをフレームワークに統合する方法であって、CPU がメモリから得られた命令に従って該方法を執行するところの方法において、該方法は
──    CPU が執行する命令は、２番目のデベロッパーにより履行される執行可能な命令      を含むワーカー・コンポネントからのリソース更新要請を受け入れること、
──    CPU が執行する命令は、上記リソース更新要請をログすること、
──    CPU が執行する命令は、更新リソース要請に従ってリソースを更新すること、
──    CPU が執行する命令は、ワーカー・コンポネントをコンペンセータ・コンポネン      トと関連させること、及び
──    トランザクションのアボートに際しCPU が執行する命令は、コンペンセータ・コ      ンポネントからのリソースを元へ戻す要請を受け入れ、該コンペンセータ・コンポ      ネントは２番目のデベロッパーにより履行される執行可能な命令がその中に入って      いること
を含むことを特徴とするリソースをフレームワークに統合する方法。
【請求項１８】
コンポネント・ベースのトランザクション処理フレームワーク内で、選ばれたリソースがトランザクション処理プロトコルをサポートしないときに、該リソースにトランザクション処理サポートを供給する方法であって、CPU がメモリから得られた命令に従って該方法を執行するところの方法において、該方法は
──    CPU が執行する命令は、２番目のデベロッパーにより履行されるコードによりな      される要請をむき出しのインタフェースで受け入れ、このコードは、書記コンポネ      ントの創成とコンペンセータ・コンポネントの登録とリソースの変更とを要請する      こと、
──    CPU が執行する命令は、むき出しのインタフェースでなされた要請に応じて、書      記を創成し、コンペンセータ・コンポネントを登録し、且つリソースに加えられた      変更をログすること、及び
──    CPU が執行する命令は、トランザクションのコミット又はアボートの指示に応じ      て、コンペンセータ・コンポネントを創成し、トランザクション中に変更が作った      コンペンセータ・コンポネントをリソースに受け渡すこと
を含むことを特徴とするリソースにトランザクション処理サポートを供給する方法。
【請求項１９】
請求項18に記載の方法において、該方法は
──    CPU が執行する命令は、コンペンセータ・コンポネントによりなされた要請に応      じてリソースに加えられた変更をログすること
を更に含むことを特徴とするリソースにトランザクション処理サポートを供給する方法。
【請求項２０】
むき出しのインタフェースを持つコンポネント・ベースのトランザクション処理フレームワーク内で、選ばれたリソースがトランザクション処理プロトコルをサポートしないときに、且つ２番目のデベロッパーがリソースへの変更をもたらすであろうサーバー・アプリケーション・プログラムを展開しようとするときに、リソースをトランザクション処理プロトコルと統合するために２番目のデベロッパーにより用いられる方法であって、CPU がメモリから得られた命令に従って該方法を執行するところの方法において、該方法は
──    CPU が執行する命令は、書記コンポネントの創成を要請するためのインタフェー      スと命令を含むコンポネントを創成し、コンペンセータ・コンポネントの登録を要      請し、変更をリソースにログすること、及び
──    CPU が執行する命令は、コンペンセータ・コンポネントを具体化し、トランザク      ションがアボートされるという指示を受け取り、リソースにログされた変更の確認      を受け取ること
を含むことを特徴とするリソースをトランザクション処理プロトコルと統合するために２番目のデベロッパーにより用いられる方法。
【請求項２１】
トランザクション・フレームワークを持つリソースを管理するようコンポネント・コードを統合するための、コンポネント・ベースのリソース管理システムとしてコンピュータを動作させるプログラムであって、第１の役割のデベロッパーがトランザクション・マネージャ・プログラム・コードを展開し、第２の役割のデベロッパーがトランザクション・マネージャの制御の下にリソースがトランザクション内部で参画するよう管理するための補償するリソース・マネージャ・プログラム・コードを展開するところのプログラムにおいて、
該補償するリソース・マネージャ・プログラム・コードは、トランザクションの一部としてリソース上のワーク演算を要請するためアプリケーションによる呼び出しのためのワーク要請インタフェースを持つワーカー・コンポネントを含んで成り、CPU が、ワーカー・コンポネントのプログラム・コードを執行しアプリケーション呼び出しに応じて動作するに当たり、要請されたワーク演算に付随する情報をログに繰り返し書き込み、ワーク動作を実行してリソース上にワーク演算を実現し、また
上記補償するリソース・マネージャ・プログラム・コードは、トランザクションをアボートするようトランザクション・マネージャの発するノーティフィケーションを受け取るためのノーティフィケーション・インタフェースを持つコンペンセータ・コンポネントを含んで成り、CPU が、コンペンセータ・コンポネントのプログラム・コードを執行しログからの情報を読み出すノーティフィケーションに応じて動作するに当たり、補償する動作を実行してリソース上のワーク動作の効果を反転させ、
上記CPU が執行するワーカー・コンポネント及びコンペンセータ・コンポネントのプログラム・コードは、CPU が執行するワーカー・コンポネントのプログラム・コードによりログされた情報のみを通して状態を共有する
ことを特徴とするプログラム。
【請求項２２】
コンポネント・ベースの執行可能な命令とデータをその中に記憶するメモリを有するコンピュータ・システムにおいて、
トランザクション・マネージャの執行可能な命令の制御の下にトランザクション内部で参画するようリソースを管理するためのコンポネント・ベースのフレームワークを含み、該トランザクション・マネージャは第１の役割のパーティにより展開され、２フェーズ・コミット・プロトコルに従って参画するコンポネントへのノーティフィケーションを送出するための執行可能な命令を持ち、上記フレームワークは
──    ログ・エントリーを記録するために第１の役割のパーティにより展開される執行      可能な命令を持つログ記憶コンポネントと、
──    第２の役割のパーティにより展開される執行可能な命令を持ち、クライエントの      アプリケーション要請の執行可能な命令に応じて動作してトランザクションの範囲      内のリソース中に保持されるデータを繰り返し変更するワークを実行し、ログ記憶      部内でワークを完全に反転させるのに十分な情報をログするための命令をも更に持      つ補償するリソース・マネージャ・コンポネントとを有し
──    該補償するリソース・マネージャ・コンポネントは、アボートされたトランザク      ションを指定するトランザクション・マネージャ・コンポネントからのノーティフ      ィケーションを創成する執行可能な命令に応じて動作する命令を持ち、ワークを完      全に反転させるログされた情報に従って補償するアクションを実行するものであり      、
また、CPU がフレームワークの執行可能な命令を執行してトランザクション内部のリソースの管理を実現することを特徴とするコンピュータ・システム。
【請求項２３】
コンポネント・ベースの執行可能な命令とデータをその中に記憶するメモリを有するコンピュータ・システムにおいて、
トランザクション・マネージャの執行可能な命令の制御の下にトランザクション内部で参画するようリソースを管理するためのフレームワーク・デベロッパーが履行するコンポネント・ベースのフレームワークを含み、該トランザクション・マネージャの執行可能な命令は２フェーズ・コミット・プロトコルに従って参画するコンポネントへのノーティフィケーションを送出し、上記フレームワークは
──    ログ・エントリーを耐久的に記録するための執行可能な命令を持つログ記憶部と      、
──    クライエントのアプリケーション要請に応じて動作する執行可能な命令を持って      トランザクションの範囲内のリソース中に保持されるデータを繰り返し変更するワ      ークを実行し、ログ記憶部内でワークを完全に反転させるのに十分な情報をログす      る補償するリソース・マネージャとを有し、
──    該補償するリソース・マネージャ・コンポネントは、アボートされたトランザク      ションを指定するトランザクション・マネージャからのノーティフィケーションに      応じて動作する執行可能な命令を持ち、ワークを完全に反転させるログされた情報      に従って補償するアクションを実行するものであり、
また、中央処理ユニットが執行可能な命令を執行してトランザクション内部のリソースの管理を実現することを特徴とするコンピュータ・システム。
【請求項２４】
１番目のフレームワーク・デベロッパーにより展開された命令を持つコンポネント・ベースのリソース管理フレームワークを含むリソース管理フレームワークとしてコンピュータを動作させる命令で、コンピュータで執行することのできる命令がその中に記憶してあるコンピュータで読み取り可能な記憶媒体であって、
上記１番目のフレームワーク・デベロッパーにより展開された命令とは、トランザクション・マネージャの制御の下でリソースがトランザクション内部で参画するようトランザクション処理システムへ該リソースを統合するための命令で、この統合はワーカー・コンポネント及びコンペンセータ・コンポネントを用いることを通してなされ、
上記ワーカー・コンポネントには２番目のデベロッパーにより履行される複数の執行可能な命令が入っており、それらはアプリケーションが要請すればリソース上でワーク演算を実行するよう動作し、また、上記コンペンセータ・コンポネントには２番目のデベロッパーにより履行される複数の執行可能な命令が入っており、それらは上記ワーク演算を反転させる補償演算を実行するよう動作するものであるところの、コンピュータで読み取り可能な記憶媒体において、
コンポネント・ベースのフレームワークの執行可能な命令は
CPU が執行するワーカー・コンポネントの執行可能な命令により呼び出しを行ってコンペンセータ・コンポネントを登録するための、コンペンセータ登録インタフェースを持つコンペンセータ登録コンポネント、
ワーカー・コンポネントによる呼び出しを行うためのロギング・インタフェースを持ち、またCPU により執行可能な、ワーク演算の情報を繰り返しログする命令を持つロギング・コンポネント、及び
トランザクション・マネージャからのトランザクションがアボートしようとしているというノーティフィケーションを受け取るためのノーティフィケーション・インタフェースを持ち、またCPU により執行可能な命令で、且つコンペンセータ・コンポネントを創成するように動作することでき、更に上記ノーティフィケーションに応答してワーカー・コンポネントによりログされる情報に基づきコンペンセータ・コンポネントに補償演算を実行させてそれによりワーク演算を反転させるように動作することもできる命令を持つ補償開始コンポネント
を含むことを特徴とするコンピュータで読み取り可能な記憶媒体。
【請求項２５】
コンピュータがトランザクション処理システムを動作させるコンピュータ・プログラムで、これは１番目のパーティによって展開され、且つトランザクション・マネージャと、該トランザクション・マネージャの制御の下にトランザクション内部で参画するようリソースを管理するための２番目のパーティによって履行される命令が入っている補償するリソース・マネージャとを持つコンピュータ・プログラムにおいて、
該補償するリソース・マネージャは、トランザクションの一部としてリソース上のワーク演算を要請するためアプリケーションによる呼び出しのためのワーク要請インタフェースを持つワーカー・コンポネントを含んで成り、このワーカー・コンポネントはアプリケーション呼び出しに応じて動作して、要請されたワーク演算に付随する情報をログに繰り返し書き込み、ワーク動作を実行してリソース上にワーク演算を実現する執行可能な命令を持ち、また
上記補償するリソース・マネージャは、トランザクションをアボートするようトランザクション・マネージャの発するノーティフィケーションを受け取るためのノーティフィケーション・インタフェースを持つコンペンセータ・コンポネントを含んで成り、このコンペンセータ・コンポネントはログからの情報を読み出すノーティフィケーションに応じて動作してリソース上のワーク動作の効果を反転させるよう補償する動作を実行する執行可能な命令を持ち、
これらのワーカー・コンポネント及びコンペンセータ・コンポネントは、CPUが執行するワーカー・コンポネントの命令によりログされた情報のみを通して状態を共有する
ことを特徴とするコンピュータ・プログラム。