JP2000242608A - コンピューティング装置、操作方法およびプログラム記憶装置 - Google Patents
コンピューティング装置、操作方法およびプログラム記憶装置Info
- Publication number
- JP2000242608A JP2000242608A JP2000039938A JP2000039938A JP2000242608A JP 2000242608 A JP2000242608 A JP 2000242608A JP 2000039938 A JP2000039938 A JP 2000039938A JP 2000039938 A JP2000039938 A JP 2000039938A JP 2000242608 A JP2000242608 A JP 2000242608A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- server
- request
- data processing
- server data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 クライアント/サーバ・トランザクション処
理システムに使用するコンピューティング装置を提供す
る。 【解決手段】 この装置は、サーバ・データ処理装置が
その局所的な資源をトランザクションに登録するために
登録要求を送るべきコンピューティング装置の標識を含
むトランザクション要求をサーバ・データ処理装置に送
ってサーバ・データ処理装置が分散トランザクションの
処理に関与するようになることを要求するための送信手
段と、登録要求を送出した装置の線形連鎖における現在
の最後の装置の標識を含むトランザクション要求への応
答をサーバ・データ処理装置から受け取るための受信手
段と、受信手段が受け取る応答に基づいて線形連鎖の最
後の現在の装置を追跡するための維持手段とを含み、送
信手段によってトランザクション要求と一緒にサーバ・
データ処理装置に送られる標識は、前記維持手段に基づ
いて線形連鎖の最後の現在の装置の標識である。
理システムに使用するコンピューティング装置を提供す
る。 【解決手段】 この装置は、サーバ・データ処理装置が
その局所的な資源をトランザクションに登録するために
登録要求を送るべきコンピューティング装置の標識を含
むトランザクション要求をサーバ・データ処理装置に送
ってサーバ・データ処理装置が分散トランザクションの
処理に関与するようになることを要求するための送信手
段と、登録要求を送出した装置の線形連鎖における現在
の最後の装置の標識を含むトランザクション要求への応
答をサーバ・データ処理装置から受け取るための受信手
段と、受信手段が受け取る応答に基づいて線形連鎖の最
後の現在の装置を追跡するための維持手段とを含み、送
信手段によってトランザクション要求と一緒にサーバ・
データ処理装置に送られる標識は、前記維持手段に基づ
いて線形連鎖の最後の現在の装置の標識である。
Description
【0001】
【発明の属する技術分野】本発明は、1つのコンピュー
ティング装置(「クライアント」)が別のコンピューテ
ィング装置(「サーバ」)にクライアントの作業の一部
を実行するように要求する、クライアント/サーバ
(「分散」としても知られる)コンピューティングの分
野に関する。クライアントおよびサーバは両方とも、同
一の物理的コンピューティング装置に配置することもで
きる。
ティング装置(「クライアント」)が別のコンピューテ
ィング装置(「サーバ」)にクライアントの作業の一部
を実行するように要求する、クライアント/サーバ
(「分散」としても知られる)コンピューティングの分
野に関する。クライアントおよびサーバは両方とも、同
一の物理的コンピューティング装置に配置することもで
きる。
【0002】
【従来の技術】クライアント/サーバ・コンピューティ
ングは、情報技術の世界において過去数年間でますます
重要になってきた。この種の分散コンピューティング
は、1つのマシンがその作業の一部を、例えばその作業
を実行するのにより適している別のマシンに委ねること
を可能にする。例えば、サーバは、大量のデータの記憶
を管理するデータベース・プログラムを実行する高能力
コンピュータとすることができる一方、クライアントは
単に、そのローカル・プログラムの1つで使用するため
にデータベースからの情報を要求するデスクトップ・パ
ーソナル・コンピュータ(PC)である。
ングは、情報技術の世界において過去数年間でますます
重要になってきた。この種の分散コンピューティング
は、1つのマシンがその作業の一部を、例えばその作業
を実行するのにより適している別のマシンに委ねること
を可能にする。例えば、サーバは、大量のデータの記憶
を管理するデータベース・プログラムを実行する高能力
コンピュータとすることができる一方、クライアントは
単に、そのローカル・プログラムの1つで使用するため
にデータベースからの情報を要求するデスクトップ・パ
ーソナル・コンピュータ(PC)である。
【0003】クライアント/サーバ・コンピューティン
グの利点は、クライアントおよびサーバを異なる(異
種)「プラットフォーム」に配置することを可能にす
る、オブジェクト指向プログラミング(OOP)と呼ば
れる周知のコンピュータ・プログラミング技術の使用に
よってさらに増強されてきた。プラットフォームとは、
マシンがその作業を行うために使用する特定のハードウ
ェア/ソフトウェア/オペレーティング・システム/通
信プロトコルの組合せである。OOPは、クライアント
・アプリケーション・プログラムの作業要求がどのよう
にサーバ・アプリケーション・プログラムによって交信
され受け入れられるかを気にすることなく、クライアン
ト・アプリケーション・プログラムおよびサーバ・アプ
リケーション・プログラムがそれ自体のプラットフォー
ムで動作することを可能にする。同様にサーバ・アプリ
ケーションは、OOPシステムがどのようにサーバ・ア
プリケーションの処理結果を受け取り、変換し、要求側
クライアント・アプリケーションに返送するかを気にす
る必要がない。
グの利点は、クライアントおよびサーバを異なる(異
種)「プラットフォーム」に配置することを可能にす
る、オブジェクト指向プログラミング(OOP)と呼ば
れる周知のコンピュータ・プログラミング技術の使用に
よってさらに増強されてきた。プラットフォームとは、
マシンがその作業を行うために使用する特定のハードウ
ェア/ソフトウェア/オペレーティング・システム/通
信プロトコルの組合せである。OOPは、クライアント
・アプリケーション・プログラムの作業要求がどのよう
にサーバ・アプリケーション・プログラムによって交信
され受け入れられるかを気にすることなく、クライアン
ト・アプリケーション・プログラムおよびサーバ・アプ
リケーション・プログラムがそれ自体のプラットフォー
ムで動作することを可能にする。同様にサーバ・アプリ
ケーションは、OOPシステムがどのようにサーバ・ア
プリケーションの処理結果を受け取り、変換し、要求側
クライアント・アプリケーションに返送するかを気にす
る必要がない。
【0004】OOP技術が異種クライアント/サーバ・
システムとどのように統合されてきたかの詳細は、米国
特許第5440744号および欧州特許公開出願EP
0677943 A2号に説明されている。これら2件
の刊行物を参照によって本明細書に組み込む。しかし、
本発明の環境の背景理解のために、基本的アーキテクチ
ャの1例を以下で取り上げる。
システムとどのように統合されてきたかの詳細は、米国
特許第5440744号および欧州特許公開出願EP
0677943 A2号に説明されている。これら2件
の刊行物を参照によって本明細書に組み込む。しかし、
本発明の環境の背景理解のために、基本的アーキテクチ
ャの1例を以下で取り上げる。
【0005】図1に示すように、クライアント・コンピ
ュータ10(例えばIBM OS/2オペレーティング
・システムを搭載したパーソナル・コンピュータとする
ことができる)は、そのオペレーティング・システム上
で実行するアプリケーション・プログラム40を有する
(「IBM」および「OS/2」はInternational Busi
ness Machines社の商標)。アプリケーション・プログ
ラム40は定期的に、サーバ・コンピュータ20上で作
業を実行するように、かつ/または後でアプリケーショ
ン・プログラム40で使用するためにデータをサーバ2
0から返送するように要求する。サーバ・コンピュータ
20は、例えばIBMのMVSオペレーティング・シス
テム上で実行する高性能メインフレーム・コンピュータ
とすることができる(「MVS」もIBM社の商標)。
本発明の場合、サーバによって実行される通信サービス
の要求が、第1アプリケーション・プログラム40との
ユーザの対話によって引き起こされるか、それともアプ
リケーション・プログラム40がユーザの対話に関係な
く動作して、プログラムの実行中に自動的に要求を行う
かは関係ない。
ュータ10(例えばIBM OS/2オペレーティング
・システムを搭載したパーソナル・コンピュータとする
ことができる)は、そのオペレーティング・システム上
で実行するアプリケーション・プログラム40を有する
(「IBM」および「OS/2」はInternational Busi
ness Machines社の商標)。アプリケーション・プログ
ラム40は定期的に、サーバ・コンピュータ20上で作
業を実行するように、かつ/または後でアプリケーショ
ン・プログラム40で使用するためにデータをサーバ2
0から返送するように要求する。サーバ・コンピュータ
20は、例えばIBMのMVSオペレーティング・シス
テム上で実行する高性能メインフレーム・コンピュータ
とすることができる(「MVS」もIBM社の商標)。
本発明の場合、サーバによって実行される通信サービス
の要求が、第1アプリケーション・プログラム40との
ユーザの対話によって引き起こされるか、それともアプ
リケーション・プログラム40がユーザの対話に関係な
く動作して、プログラムの実行中に自動的に要求を行う
かは関係ない。
【0006】クライアント・コンピュータ10がサーバ
・コンピュータ20のサービスを要求したいときに、第
1アプリケーション・プログラム40は、必要とするサ
ービスについて第1論理手段50に通知する。これは、
例えば、第1論理手段に遠隔手順の名前を入出力パラメ
ータのリストと共に送ることによって、実行することが
できる。次いで第1論理手段50は、記憶装置60に格
納された利用可能な通信サービスの定義を参照して、第
2コンピュータ20との必要な通信を確立するタスクを
処理する。可能なサービスはすべて、オブジェクト・ク
ラス70のコヒーシブ・フレームワークとして定義され
ており、これらのクラスは単一オブジェクト・クラスか
ら導出される。このようにしてサービスを定義すると、
性能および再使用可能性の点で多数の利点が得られる。
・コンピュータ20のサービスを要求したいときに、第
1アプリケーション・プログラム40は、必要とするサ
ービスについて第1論理手段50に通知する。これは、
例えば、第1論理手段に遠隔手順の名前を入出力パラメ
ータのリストと共に送ることによって、実行することが
できる。次いで第1論理手段50は、記憶装置60に格
納された利用可能な通信サービスの定義を参照して、第
2コンピュータ20との必要な通信を確立するタスクを
処理する。可能なサービスはすべて、オブジェクト・ク
ラス70のコヒーシブ・フレームワークとして定義され
ており、これらのクラスは単一オブジェクト・クラスか
ら導出される。このようにしてサービスを定義すると、
性能および再使用可能性の点で多数の利点が得られる。
【0007】サーバ20との必要な通信を確立するため
に、第1論理手段50はフレームワーク内のどのオブジ
ェクト・クラスを使用する必要があるかを判定し、次い
で、サーバにおいて、そのオブジェクトのインスタン
ス、つまりそのオブジェクトにそのメソッドの1つを呼
び出させるためにそのオブジェクトに送信されるメッセ
ージを形成する。これにより、接続手段80を介してサ
ーバ・コンピュータ20との接続の確立が生じ、続いて
要求が第2論理手段90に送信される。
に、第1論理手段50はフレームワーク内のどのオブジ
ェクト・クラスを使用する必要があるかを判定し、次い
で、サーバにおいて、そのオブジェクトのインスタン
ス、つまりそのオブジェクトにそのメソッドの1つを呼
び出させるためにそのオブジェクトに送信されるメッセ
ージを形成する。これにより、接続手段80を介してサ
ーバ・コンピュータ20との接続の確立が生じ、続いて
要求が第2論理手段90に送信される。
【0008】次いで第2論理手段90が要求を、サーバ
・コンピュータ20で実行している第2アプリケーショ
ン・プログラム100(以下、サービス・アプリケーシ
ョンという)に渡すので、サービス・アプリケーション
100は、データ検索手順を実行するなど、その要求に
よって要求される特定のタスクを実行することができ
る。このタスクが完了すると、サービス・アプリケーシ
ョンは、結果を第1コンピュータ10に返送する必要が
あるかもしれない。要求されたタスクの実行中、および
結果が第1コンピュータ10に返送される際、サーバ・
アプリケーション100は第2論理手段90と対話す
る。第2論理手段90はオブジェクトのインスタンスを
決定し、サーバ・アプリケーション100によって要求
されたときにこれらのオブジェクトの適切なメソッドを
呼び出し、記憶装置110に格納されたオブジェクト・
クラスのコヒーシブ・フレームワークからオブジェクト
・インスタンスが形成される。
・コンピュータ20で実行している第2アプリケーショ
ン・プログラム100(以下、サービス・アプリケーシ
ョンという)に渡すので、サービス・アプリケーション
100は、データ検索手順を実行するなど、その要求に
よって要求される特定のタスクを実行することができ
る。このタスクが完了すると、サービス・アプリケーシ
ョンは、結果を第1コンピュータ10に返送する必要が
あるかもしれない。要求されたタスクの実行中、および
結果が第1コンピュータ10に返送される際、サーバ・
アプリケーション100は第2論理手段90と対話す
る。第2論理手段90はオブジェクトのインスタンスを
決定し、サーバ・アプリケーション100によって要求
されたときにこれらのオブジェクトの適切なメソッドを
呼び出し、記憶装置110に格納されたオブジェクト・
クラスのコヒーシブ・フレームワークからオブジェクト
・インスタンスが形成される。
【0009】上記の技術を使用すると、クライアント・
アプリケーション・プログラム40は通信アーキテクチ
ャにさらされない。さらに、サービス・アプリケーショ
ン100が、その環境の標準機構を介して呼び出され
る。つまり、それは遠隔的に呼び出されていることを認
識しない。
アプリケーション・プログラム40は通信アーキテクチ
ャにさらされない。さらに、サービス・アプリケーショ
ン100が、その環境の標準機構を介して呼び出され
る。つまり、それは遠隔的に呼び出されていることを認
識しない。
【0010】オブジェクト管理グループ(OMG)は、
図1に示すような分散オブジェクトを持つ異種プラット
フォームでのクライアント/サーバ・コンピューティン
グの様々な側面に関与する組織の国際的コンソーシアム
である。OMGは、クライアント・コンピュータ(例え
ば10)がサーバ・マシン(例えば20)と(OOPの
形で)通信するための標準を規定し発行した。これらの
標準の一環として、クライアント・マシンとサーバ・マ
シンの間にオブジェクト指向ブリッジを提供するオブジ
ェクト要求ブローカ(CORBAつまり共通オブジェク
ト要求ブローカ・アーキテクチャと呼ばれる)が定義さ
れた。ORBは、オブジェクト指向実装の詳細からクラ
イアント・アプリケーションおよびサーバ・アプリケー
ションを切り離し、第1および第2論理手段50、90
ならびに接続手段80の作業の少なくとも一部分を実行
する。
図1に示すような分散オブジェクトを持つ異種プラット
フォームでのクライアント/サーバ・コンピューティン
グの様々な側面に関与する組織の国際的コンソーシアム
である。OMGは、クライアント・コンピュータ(例え
ば10)がサーバ・マシン(例えば20)と(OOPの
形で)通信するための標準を規定し発行した。これらの
標準の一環として、クライアント・マシンとサーバ・マ
シンの間にオブジェクト指向ブリッジを提供するオブジ
ェクト要求ブローカ(CORBAつまり共通オブジェク
ト要求ブローカ・アーキテクチャと呼ばれる)が定義さ
れた。ORBは、オブジェクト指向実装の詳細からクラ
イアント・アプリケーションおよびサーバ・アプリケー
ションを切り離し、第1および第2論理手段50、90
ならびに接続手段80の作業の少なくとも一部分を実行
する。
【0011】CORBAソフトウェア構造の一部とし
て、OMGは「トランザクション」に関連する標準を規
定した。これらの標準は、OTSつまりオブジェクト・
トランザクション・サービスとして知られる。例えば、
OMG文書94.8.4、CORBAオブジェクト・ト
ランザクション・サービス仕様1.0を参照されたい。
コンピュータによって実装されるトランザクション処理
システムは、いくつかの産業において重要なビジネス・
タスクに使用される。トランザクションは、完全に終了
しなければならないか、または動作せずに完全にパージ
しなければならない単一作業単位を定義する。例えば、
銀行の現金自動預け払い機で顧客が現金を引き出そうと
する場合、現金を払い出し、機械内にある現金の残高を
差し引き、顧客の銀行預金残高を差し引く動作が全部行
われるか、またはそれらが全く行われないかのいずれか
でなければならない。下位動作の1つが失敗すると、記
録と実際のオカレンスの不一致が生じる。
て、OMGは「トランザクション」に関連する標準を規
定した。これらの標準は、OTSつまりオブジェクト・
トランザクション・サービスとして知られる。例えば、
OMG文書94.8.4、CORBAオブジェクト・ト
ランザクション・サービス仕様1.0を参照されたい。
コンピュータによって実装されるトランザクション処理
システムは、いくつかの産業において重要なビジネス・
タスクに使用される。トランザクションは、完全に終了
しなければならないか、または動作せずに完全にパージ
しなければならない単一作業単位を定義する。例えば、
銀行の現金自動預け払い機で顧客が現金を引き出そうと
する場合、現金を払い出し、機械内にある現金の残高を
差し引き、顧客の銀行預金残高を差し引く動作が全部行
われるか、またはそれらが全く行われないかのいずれか
でなければならない。下位動作の1つが失敗すると、記
録と実際のオカレンスの不一致が生じる。
【0012】分散トランザクション処理は、複数の物理
位置または論理位置における資源に影響するトランザク
ションを伴う。上記の例では、トランザクションは、局
所現金自動預け払い機で管理される資源に影響するだけ
でなく、銀行のメイン・コンピュータによって管理され
る銀行預金残高にも影響する。そのようなトランザクシ
ョンは、サーバによって処理される一連のクライアント
要求により1つの特定のサーバ・コンピュータ(例えば
20)と通信する1つの特定のクライアント・コンピュ
ータ(例えば10)を伴う。OMGのOTSは、これら
の分散トランザクションを調整する責任がある。
位置または論理位置における資源に影響するトランザク
ションを伴う。上記の例では、トランザクションは、局
所現金自動預け払い機で管理される資源に影響するだけ
でなく、銀行のメイン・コンピュータによって管理され
る銀行預金残高にも影響する。そのようなトランザクシ
ョンは、サーバによって処理される一連のクライアント
要求により1つの特定のサーバ・コンピュータ(例えば
20)と通信する1つの特定のクライアント・コンピュ
ータ(例えば10)を伴う。OMGのOTSは、これら
の分散トランザクションを調整する責任がある。
【0013】クライアント・プロセスで実行するアプリ
ケーションは、複数の様々なサーバの呼出しを含むトラ
ンザクションを始動し、それぞれのサーバはサーバ・プ
ロセスを起動して、トランザクションに含まれる命令に
従ってそのローカル・データを変更する。トランザクシ
ョンを実行する(したがってすべてのサーバがそれらの
ローカル・データの変更を終了する)か、またはトラン
ザクションを打ち切る(したがってすべてのサーバがト
ランザクション中に行われたそれらのローカル・データ
の変更を「撤回」または無視する)かのいずれかによっ
て、トランザクションは終了する。トランザクション中
にサーバと通信する(例えばそれらにトランザクション
におけるそれらの役割を実行するかまたは打ち切るよう
に命令する)ために、含まれるプロセスの1つはトラン
ザクションのための状態データを維持しなければならな
い。OTS標準によると、これは一連のオブジェクトを
セットアップするプロセスを含み、そのうちの1つは、
様々なサーバに関してトランザクションを調整するコー
ディネータ・オブジェクトである。
ケーションは、複数の様々なサーバの呼出しを含むトラ
ンザクションを始動し、それぞれのサーバはサーバ・プ
ロセスを起動して、トランザクションに含まれる命令に
従ってそのローカル・データを変更する。トランザクシ
ョンを実行する(したがってすべてのサーバがそれらの
ローカル・データの変更を終了する)か、またはトラン
ザクションを打ち切る(したがってすべてのサーバがト
ランザクション中に行われたそれらのローカル・データ
の変更を「撤回」または無視する)かのいずれかによっ
て、トランザクションは終了する。トランザクション中
にサーバと通信する(例えばそれらにトランザクション
におけるそれらの役割を実行するかまたは打ち切るよう
に命令する)ために、含まれるプロセスの1つはトラン
ザクションのための状態データを維持しなければならな
い。OTS標準によると、これは一連のオブジェクトを
セットアップするプロセスを含み、そのうちの1つは、
様々なサーバに関してトランザクションを調整するコー
ディネータ・オブジェクトである。
【0014】このコーディネータ・オブジェクトの主な
目的は、どのサーバ・オブジェクトがトランザクション
に関与しているかを追跡し続けて、トランザクションが
終了したときに、トランザクションに関与する各サーバ
・オブジェクトに、1回の統一された努力で、そのサー
バ・オブジェクトに関連するローカル・データベースに
局所的に行われた変更をコミットするように命令するこ
とができるようにすることである。これにより、どのサ
ーバ・オブジェクトも、同一トランザクションに関与す
る他のサーバ・オブジェクトなしでは、データ変更を最
終決定しないことが保証される。したがって、トランザ
クションに参加する各サーバ・オブジェクトは最初にコ
ーディネータ・オブジェクトに登録して、コーディネー
タ・オブジェクトがサーバ・オブジェクトの存在、トラ
ンザクションへの参加の希望、およびトランザクション
を終了する時が来たときにサーバ・オブジェクトがどこ
にあるか(例えばサーバ・オブジェクトがどのサーバ・
マシンに常駐しているか)が分かるようにしておかなけ
ればならない(コーディネータ・オブジェクトはすべて
のサーバ・オブジェクトにそれぞれのローカル・データ
の変更を最終決定するように命令する)。
目的は、どのサーバ・オブジェクトがトランザクション
に関与しているかを追跡し続けて、トランザクションが
終了したときに、トランザクションに関与する各サーバ
・オブジェクトに、1回の統一された努力で、そのサー
バ・オブジェクトに関連するローカル・データベースに
局所的に行われた変更をコミットするように命令するこ
とができるようにすることである。これにより、どのサ
ーバ・オブジェクトも、同一トランザクションに関与す
る他のサーバ・オブジェクトなしでは、データ変更を最
終決定しないことが保証される。したがって、トランザ
クションに参加する各サーバ・オブジェクトは最初にコ
ーディネータ・オブジェクトに登録して、コーディネー
タ・オブジェクトがサーバ・オブジェクトの存在、トラ
ンザクションへの参加の希望、およびトランザクション
を終了する時が来たときにサーバ・オブジェクトがどこ
にあるか(例えばサーバ・オブジェクトがどのサーバ・
マシンに常駐しているか)が分かるようにしておかなけ
ればならない(コーディネータ・オブジェクトはすべて
のサーバ・オブジェクトにそれぞれのローカル・データ
の変更を最終決定するように命令する)。
【0015】データを更新する責任のあるサーバ・オブ
ジェクト(以下、資源オブジェクトという)は、別のサ
ーバ・オブジェクト(またはトランザクションを開始し
た元のクライアント・オブジェクト)が資源オブジェク
トに何らかの作業をするように資源オブジェクトに要求
を送ったときに、トランザクションに関与するようにな
る。この後者の要求は、要求が特定のトランザクション
の一部であることを資源オブジェクトに知らせる、トラ
ンザクション・コンテキストと呼ばれる何らかの情報を
含む。CORBAバージョン2では、トランザクション
・コンテキストは、ローカルCosTransactions::Coordin
atorオブジェクトget_txcontextメソッドによって構築
される。資源オブジェクトはそれが特定のトランザクシ
ョンに関与するようになることを認識すると、コーディ
ネータ・オブジェクトに登録要求を行う。
ジェクト(以下、資源オブジェクトという)は、別のサ
ーバ・オブジェクト(またはトランザクションを開始し
た元のクライアント・オブジェクト)が資源オブジェク
トに何らかの作業をするように資源オブジェクトに要求
を送ったときに、トランザクションに関与するようにな
る。この後者の要求は、要求が特定のトランザクション
の一部であることを資源オブジェクトに知らせる、トラ
ンザクション・コンテキストと呼ばれる何らかの情報を
含む。CORBAバージョン2では、トランザクション
・コンテキストは、ローカルCosTransactions::Coordin
atorオブジェクトget_txcontextメソッドによって構築
される。資源オブジェクトはそれが特定のトランザクシ
ョンに関与するようになることを認識すると、コーディ
ネータ・オブジェクトに登録要求を行う。
【0016】資源オブジェクトが、コーディネータ・オ
ブジェクトとは異なるオペレーティング・システム・プ
ロセスに配置されている場合、資源オブジェクト(22
3または224)と同じオペレーティング・システム・
プロセスに配置された下位コーディネータ・オブジェク
ト(図2の222)を使用すると便利であることが明ら
かになった。その場合、主コーディネータ・オブジェク
トを「上位コーディネータ・オブジェクト」211と呼
ぶ。資源オブジェクト223のトランザクションへの登
録中に、下位コーディネータ222は資源オブジェクト
223を収容しているサーバ・マシン22内で局所的に
セットアップされ、資源オブジェクト223は登録要求
を行うときに、この下位コーディネータ・オブジェクト
222と直接やり取りする。(ここでは用語「サーバ・
マシン」を使用しているが、分散サーバ・オブジェクト
を実際には、同じサーバ・マシンであるがそのサーバ・
マシン上で実行している別のオペレーティング・システ
ム・プロセスに配置することもできることを示すため
に、用語「サーバ・プロセス」を使用することもできる
ことに留意されたい。したがって、以下では、用語「サ
ーバ」は、両方の用語を指すのに使用する。)次に下位
コーディネータ222はそれ自体を、上位コーディネー
タ・オブジェクト211(あたかも資源オブジェクトで
あるかのように、おそらく別のサーバ・マシン上の別の
プロセスに配置されている)に登録する。
ブジェクトとは異なるオペレーティング・システム・プ
ロセスに配置されている場合、資源オブジェクト(22
3または224)と同じオペレーティング・システム・
プロセスに配置された下位コーディネータ・オブジェク
ト(図2の222)を使用すると便利であることが明ら
かになった。その場合、主コーディネータ・オブジェク
トを「上位コーディネータ・オブジェクト」211と呼
ぶ。資源オブジェクト223のトランザクションへの登
録中に、下位コーディネータ222は資源オブジェクト
223を収容しているサーバ・マシン22内で局所的に
セットアップされ、資源オブジェクト223は登録要求
を行うときに、この下位コーディネータ・オブジェクト
222と直接やり取りする。(ここでは用語「サーバ・
マシン」を使用しているが、分散サーバ・オブジェクト
を実際には、同じサーバ・マシンであるがそのサーバ・
マシン上で実行している別のオペレーティング・システ
ム・プロセスに配置することもできることを示すため
に、用語「サーバ・プロセス」を使用することもできる
ことに留意されたい。したがって、以下では、用語「サ
ーバ」は、両方の用語を指すのに使用する。)次に下位
コーディネータ222はそれ自体を、上位コーディネー
タ・オブジェクト211(あたかも資源オブジェクトで
あるかのように、おそらく別のサーバ・マシン上の別の
プロセスに配置されている)に登録する。
【0017】下位コーディネータ・オブジェクト222
はこのようにして、資源オブジェクトを収容しているサ
ーバ内におけるトランザクションの存在を表現する。上
位コーディネータ・オブジェクト211と直接やり取り
する代わりに、資源オブジェクト223、224は最初
にそれらのローカル下位コーディネータ・オブジェクト
222とやり取りし、次にこれが上位コーディネータ・
オブジェクトとやり取りする。これにより、オペレーテ
ィング・システム・プロセス間の相互呼出し回数が大幅
に減少する。
はこのようにして、資源オブジェクトを収容しているサ
ーバ内におけるトランザクションの存在を表現する。上
位コーディネータ・オブジェクト211と直接やり取り
する代わりに、資源オブジェクト223、224は最初
にそれらのローカル下位コーディネータ・オブジェクト
222とやり取りし、次にこれが上位コーディネータ・
オブジェクトとやり取りする。これにより、オペレーテ
ィング・システム・プロセス間の相互呼出し回数が大幅
に減少する。
【0018】トランザクションはしばしば、潜在的に異
なるサーバ・マシン上でそれぞれ実行するいくつかの異
なるプロセスを含む。例えば、サーバ・プロセス21
(これは上位コーディネータ211を含む)は、分散ト
ランザクションに参加する3つの異なるプロセスを呼び
出すことがあり、したがってそのような各プロセスは結
果的に、そのプロセスのトランザクションを局所的に調
整するために下位コーディネータを形成する。トランザ
クションの最後に、上位コーディネータは従来の2段階
コミット・プロトコルを使用して、3つのプロセスのそ
れぞれがその変更を、一括した「オール・オア・ナッシ
ング」方式で(つまり、それらが全部それぞれの変更を
確定するか、それともそれらが全部それぞれの変更を取
り消す)、最終決定することを確実にする。2段階コミ
ット・プロトコルは従来、3つの下位コーディネータの
それぞれにプリペア・コール(prepare call)を送り、
次いで、それらがプリペア・コールに応答してすべてコ
ミットすることをボーティングしたと仮定して、3つの
下位コーディネータのそれぞれにコミット・コールを送
ることを含む。したがって、これは上位コーディネータ
211による6つのプロセス間コールの送り出しを含
む。
なるサーバ・マシン上でそれぞれ実行するいくつかの異
なるプロセスを含む。例えば、サーバ・プロセス21
(これは上位コーディネータ211を含む)は、分散ト
ランザクションに参加する3つの異なるプロセスを呼び
出すことがあり、したがってそのような各プロセスは結
果的に、そのプロセスのトランザクションを局所的に調
整するために下位コーディネータを形成する。トランザ
クションの最後に、上位コーディネータは従来の2段階
コミット・プロトコルを使用して、3つのプロセスのそ
れぞれがその変更を、一括した「オール・オア・ナッシ
ング」方式で(つまり、それらが全部それぞれの変更を
確定するか、それともそれらが全部それぞれの変更を取
り消す)、最終決定することを確実にする。2段階コミ
ット・プロトコルは従来、3つの下位コーディネータの
それぞれにプリペア・コール(prepare call)を送り、
次いで、それらがプリペア・コールに応答してすべてコ
ミットすることをボーティングしたと仮定して、3つの
下位コーディネータのそれぞれにコミット・コールを送
ることを含む。したがって、これは上位コーディネータ
211による6つのプロセス間コールの送り出しを含
む。
【0019】2段階コミットにおけるプロセス間コール
の総数を減少するためにしばしば使用される2段階コミ
ット・プロトコルの周知の最適化は、「最終エージェン
トの最適化」として知られる(例えば、GrayとReuter共
著「Transaction Processing:Processes and Technique
s」(Morgan Kaufman Publishers社刊)1992年9
月、12.5.3節を参照のこと)。この最適化を要約
すると、トランザクション・ルート・コーディネータ
(例えば上位コーディネータ211)がトランザクショ
ンに含まれるN個の資源(例えば3つの下位コーディネ
ータを表す)を有する場合、それらのうちN−1個を準
備する(つまり、N−1個にプリペア・フローを送る)
ということである。この時点ですべての資源がコミット
することをボーティングすると(通常のケース)、トラ
ンザクションの結果は最終資源のプリペア・ボーティン
グによって決まる。したがって、最終資源のプリペア・
フローおよびコミット・フローを結合することができ、
この最適化された最終フローは、resource::commit_one
_phase法によってCORBA CosTransactions仕様で提供さ
れる。この議論では、下位コーディネータ、それらの資
源、およびその他の資源を同様に取り扱うことができ、
これらは総称して関連「エージェント」と呼ばれる。最
終エージェントの最適化により、2段階コミットの単純
なケースでは、コーディネータと最終エージェントとの
間のメッセージ・フローは半減する。
の総数を減少するためにしばしば使用される2段階コミ
ット・プロトコルの周知の最適化は、「最終エージェン
トの最適化」として知られる(例えば、GrayとReuter共
著「Transaction Processing:Processes and Technique
s」(Morgan Kaufman Publishers社刊)1992年9
月、12.5.3節を参照のこと)。この最適化を要約
すると、トランザクション・ルート・コーディネータ
(例えば上位コーディネータ211)がトランザクショ
ンに含まれるN個の資源(例えば3つの下位コーディネ
ータを表す)を有する場合、それらのうちN−1個を準
備する(つまり、N−1個にプリペア・フローを送る)
ということである。この時点ですべての資源がコミット
することをボーティングすると(通常のケース)、トラ
ンザクションの結果は最終資源のプリペア・ボーティン
グによって決まる。したがって、最終資源のプリペア・
フローおよびコミット・フローを結合することができ、
この最適化された最終フローは、resource::commit_one
_phase法によってCORBA CosTransactions仕様で提供さ
れる。この議論では、下位コーディネータ、それらの資
源、およびその他の資源を同様に取り扱うことができ、
これらは総称して関連「エージェント」と呼ばれる。最
終エージェントの最適化により、2段階コミットの単純
なケースでは、コーディネータと最終エージェントとの
間のメッセージ・フローは半減する。
【0020】2段階コミット・プロトコルのさらによく
知られている最適化は、「線形コミット」最適化と呼ば
れる(これも上記のGrayらの章節に記載されている)。
線形コミット最適化は、分散トランザクションに関係す
るシステムを線形連鎖状に配列することができれば、こ
の連鎖に最終エージェント最適化を繰返し使用すること
ができるという概念に基づいている。これは、分散トラ
ンザクションの完了に参加している分散システム間で受
け渡さなければならないメッセージの総数をほぼ半減す
る。
知られている最適化は、「線形コミット」最適化と呼ば
れる(これも上記のGrayらの章節に記載されている)。
線形コミット最適化は、分散トランザクションに関係す
るシステムを線形連鎖状に配列することができれば、こ
の連鎖に最終エージェント最適化を繰返し使用すること
ができるという概念に基づいている。これは、分散トラ
ンザクションの完了に参加している分散システム間で受
け渡さなければならないメッセージの総数をほぼ半減す
る。
【0021】
【発明が解決しようとする課題】しかし、これらの最適
化はトランザクション処理分野ではよく知られている
が、クライアント/サーバ分散トランザクション処理に
おいて、どのようにしてコーディネータを自動的に確実
にそのような線形連鎖状に配列するかがこれまで不明で
あり、従来技術におけるこの欠如が、本発明者が以下で
記述する本発明を考案するに至る刺激となった。
化はトランザクション処理分野ではよく知られている
が、クライアント/サーバ分散トランザクション処理に
おいて、どのようにしてコーディネータを自動的に確実
にそのような線形連鎖状に配列するかがこれまで不明で
あり、従来技術におけるこの欠如が、本発明者が以下で
記述する本発明を考案するに至る刺激となった。
【0022】
【課題を解決するための手段】第1の態様によると、本
発明は、クライアント/サーバ・トランザクション処理
システム用のコンピューティング装置であって、サーバ
・データ処理装置がサーバ・データ処理装置にとって局
所的な資源をトランザクションに登録するように要求す
るために登録要求を送るべきコンピューティング装置の
標識を含むトランザクション要求をサーバ・データ処理
装置に送ってサーバ・データ処理装置が分散トランザク
ションの処理に関与するようになることを要求するため
の送信手段と、トランザクション要求の受信に応答して
登録要求を送出した装置の線形連鎖における現在の最後
の装置の標識を含むトランザクション要求への応答をサ
ーバ・データ処理装置から受け取るための受信手段と、
受信手段が受け取る応答に基づいて線形連鎖の最後の現
在の装置を追跡するための維持手段とを含み、送信手段
によってトランザクション要求と一緒にサーバ・データ
処理装置に送られる標識が、前記維持手段に基づいて線
形連鎖の最後の現在の装置の標識である、コンピューテ
ィング装置を提供する。
発明は、クライアント/サーバ・トランザクション処理
システム用のコンピューティング装置であって、サーバ
・データ処理装置がサーバ・データ処理装置にとって局
所的な資源をトランザクションに登録するように要求す
るために登録要求を送るべきコンピューティング装置の
標識を含むトランザクション要求をサーバ・データ処理
装置に送ってサーバ・データ処理装置が分散トランザク
ションの処理に関与するようになることを要求するため
の送信手段と、トランザクション要求の受信に応答して
登録要求を送出した装置の線形連鎖における現在の最後
の装置の標識を含むトランザクション要求への応答をサ
ーバ・データ処理装置から受け取るための受信手段と、
受信手段が受け取る応答に基づいて線形連鎖の最後の現
在の装置を追跡するための維持手段とを含み、送信手段
によってトランザクション要求と一緒にサーバ・データ
処理装置に送られる標識が、前記維持手段に基づいて線
形連鎖の最後の現在の装置の標識である、コンピューテ
ィング装置を提供する。
【0023】第2の態様によれば、本発明は、第1の態
様の装置を操作する方法を提供する。
様の装置を操作する方法を提供する。
【0024】第3の態様によれば、本発明は、第2の態
様の方法のステップを実行するためにマシンによって実
行可能な命令のプログラムを有形に実施するマシン可読
プログラム記憶装置を提供する。
様の方法のステップを実行するためにマシンによって実
行可能な命令のプログラムを有形に実施するマシン可読
プログラム記憶装置を提供する。
【0025】したがって、本発明は、分散トランザクシ
ョンのコーディネータを自動的かつ確実に線形連鎖状に
並べることができ、したがって線形コミット最適化の使
用を可能にする。そうすると線形コミット最適化を使用
することができるので、2段階コミット・プロセス中の
コーディネータ間メッセージの流れの数を半減すること
ができる。現在および将来のオブジェクト指向電子取引
分野は分散トランザクションを実質的に利用するので
(トランザクションに必要なデータベースが様々なサー
バに保持されるため)、本発明は、システム間トラヒッ
クをかなり削減するという意味で、そのようなシステム
にとって事実上の確実な利益になるであろう。
ョンのコーディネータを自動的かつ確実に線形連鎖状に
並べることができ、したがって線形コミット最適化の使
用を可能にする。そうすると線形コミット最適化を使用
することができるので、2段階コミット・プロセス中の
コーディネータ間メッセージの流れの数を半減すること
ができる。現在および将来のオブジェクト指向電子取引
分野は分散トランザクションを実質的に利用するので
(トランザクションに必要なデータベースが様々なサー
バに保持されるため)、本発明は、システム間トラヒッ
クをかなり削減するという意味で、そのようなシステム
にとって事実上の確実な利益になるであろう。
【0026】
【発明の実施の形態】本発明の好適な実施形態がいかに
作用するかを例示するために、今、図3に関して、シナ
リオの例を提示する。このシナリオ例は、分散トランザ
クションがどのように実行されるかを示すかなり典型的
な例として選択した。
作用するかを例示するために、今、図3に関して、シナ
リオの例を提示する。このシナリオ例は、分散トランザ
クションがどのように実行されるかを示すかなり典型的
な例として選択した。
【0027】この例では、4つのシステムで動作する分
散トランザクションを取り上げる。(ここで、システム
はおそらくそれ自体の専用マシン上で動作する離散オペ
レーティング・システム・プロセスと認識することがで
き(各マシンはインターネットなどのネットワークを介
して他のマシンと接続している)、あるいはこの例と矛
盾することなくすべてのプロセスが同一物理マシン上で
実行していることもあり得る。)
散トランザクションを取り上げる。(ここで、システム
はおそらくそれ自体の専用マシン上で動作する離散オペ
レーティング・システム・プロセスと認識することがで
き(各マシンはインターネットなどのネットワークを介
して他のマシンと接続している)、あるいはこの例と矛
盾することなくすべてのプロセスが同一物理マシン上で
実行していることもあり得る。)
【0028】クライアント・アプリケーション31はシ
ステムA上にあり、ユーザのトランザクション作業単位
を実行している間、クライアント・アプリケーション3
1は、3つのサーバ・システムすなわちサーバB、サー
バC、およびサーバDをホストとするサーバ・アプリケ
ーションを利用する。
ステムA上にあり、ユーザのトランザクション作業単位
を実行している間、クライアント・アプリケーション3
1は、3つのサーバ・システムすなわちサーバB、サー
バC、およびサーバDをホストとするサーバ・アプリケ
ーションを利用する。
【0029】ユーザのトランザクションが関係する各サ
ーバ・システムについて、分散トランザクションの一部
として回復可能資源にアクセスが行われるが、このため
にはサーバ・システムがトランザクションおよびトラン
ザクションの分散2段階コミット・プロセスに関与する
ようになることが必要である。トランザクションが展開
するシナリオについて、以下で説明する。
ーバ・システムについて、分散トランザクションの一部
として回復可能資源にアクセスが行われるが、このため
にはサーバ・システムがトランザクションおよびトラン
ザクションの分散2段階コミット・プロセスに関与する
ようになることが必要である。トランザクションが展開
するシナリオについて、以下で説明する。
【0030】トランザクションの展開中、本発明の好適
な実施形態では、分散トランザクション・ツリーの「新
しい」部分の展開は常に、構築中の現在のトランザクシ
ョン「連鎖」の「最後」に配置されるようになることが
必要である。この結果、トランザクション・ツリーが線
形になり(関係するコーディネータの点から見て)、し
たがって「線形コミット」最適化の潜在的可能性が改善
される。
な実施形態では、分散トランザクション・ツリーの「新
しい」部分の展開は常に、構築中の現在のトランザクシ
ョン「連鎖」の「最後」に配置されるようになることが
必要である。この結果、トランザクション・ツリーが線
形になり(関係するコーディネータの点から見て)、し
たがって「線形コミット」最適化の潜在的可能性が改善
される。
【0031】ユーザは、クライアント・アプリケーショ
ン31「CLIENT APP」をシステム「A」で実
行し、このアプリケーションがユーザのためにトランザ
クション作業単位を実行している間に、アプリケーショ
ン・コードは、システム「B」に位置するサーバ・アプ
リケーション「APP SERVER B」に呼出しを
行う(図3の流れ「1」)。
ン31「CLIENT APP」をシステム「A」で実
行し、このアプリケーションがユーザのためにトランザ
クション作業単位を実行している間に、アプリケーショ
ン・コードは、システム「B」に位置するサーバ・アプ
リケーション「APP SERVER B」に呼出しを
行う(図3の流れ「1」)。
【0032】この呼出しが行われると、システムBのト
ランザクション・サービスは、アプリケーションの代わ
りにシステムB(宛先システム)でトランザクションを
確立する。これは、アプリケーションの要求と一緒に送
られる「トランザクション・コンテキスト」を用いて行
われる。トランザクション・コンテキストのこの確立
は、トランザクション・オブジェクトを目標とするすべ
てのアプリケーションの流れ(例えば我々のシナリオで
は流れ「1」、「5」、および「8」)を受信すると、
宛先システムで同様に行われる。
ランザクション・サービスは、アプリケーションの代わ
りにシステムB(宛先システム)でトランザクションを
確立する。これは、アプリケーションの要求と一緒に送
られる「トランザクション・コンテキスト」を用いて行
われる。トランザクション・コンテキストのこの確立
は、トランザクション・オブジェクトを目標とするすべ
てのアプリケーションの流れ(例えば我々のシナリオで
は流れ「1」、「5」、および「8」)を受信すると、
宛先システムで同様に行われる。
【0033】サーバ・アプリケーション・プログラムB
32を実行している間、資源「ResB1」33はアプ
リケーション32によってローカル・コーディネータ
「CoordB」34に登録される。「CoordB」
34は、分散トランザクションの完了に関与することが
まだ登録されていないので、現在確立されているトラン
ザクション・コンテキストに存在したコーディネータ参
照(「CoordA」35)にそれ自身のregister_res
ource呼出しを行う(流れ「2」)。したがって、「C
oordB」34は今、「CoordA」35によって
調整される分散トランザクションにリンクされる。した
がって、register_resourceの流れの処理を終了した
「CoordA」35は戻り、制御は発呼側システム
(「B」)に返される(流れ「3」)。
32を実行している間、資源「ResB1」33はアプ
リケーション32によってローカル・コーディネータ
「CoordB」34に登録される。「CoordB」
34は、分散トランザクションの完了に関与することが
まだ登録されていないので、現在確立されているトラン
ザクション・コンテキストに存在したコーディネータ参
照(「CoordA」35)にそれ自身のregister_res
ource呼出しを行う(流れ「2」)。したがって、「C
oordB」34は今、「CoordA」35によって
調整される分散トランザクションにリンクされる。した
がって、register_resourceの流れの処理を終了した
「CoordA」35は戻り、制御は発呼側システム
(「B」)に返される(流れ「3」)。
【0034】処理はシステムBで続き、サーバ・アプリ
ケーションB32の一部によって別の資源36(「Re
sB2」)がトランザクションに登録される。「Coo
rdB」34はすでにトランザクションに関与している
ので、新しいregister_resourceの流れ(「2」、
「3」などの)は不要である。
ケーションB32の一部によって別の資源36(「Re
sB2」)がトランザクションに登録される。「Coo
rdB」34はすでにトランザクションに関与している
ので、新しいregister_resourceの流れ(「2」、
「3」などの)は不要である。
【0035】ユーザのサーバ作業の処理がシステム
「B」で終了し、「B」は制御をシステムAに返す(流
れ「4」)。この流れに便乗して、返却側システム(シ
ステムB)がこのとき関与するコーディネータの分散ト
ランザクション連鎖の「最後」にあると考えるコーディ
ネータへの参照−この例の場合には「CoordB」の
参照−が送られ、この参照は返却側「トランザクション
・コンテキスト」に格納される。
「B」で終了し、「B」は制御をシステムAに返す(流
れ「4」)。この流れに便乗して、返却側システム(シ
ステムB)がこのとき関与するコーディネータの分散ト
ランザクション連鎖の「最後」にあると考えるコーディ
ネータへの参照−この例の場合には「CoordB」の
参照−が送られ、この参照は返却側「トランザクション
・コンテキスト」に格納される。
【0036】トランザクションの次のステップとして、
クライアント・アプリケーション・プログラム31はシ
ステムCの「APP SERVER C37」を呼び出
す(流れ「5」)。従来技術では、システムAはシステ
ムAのコーディネータ35に参照を渡す(この参照は、
流れ「5」に便乗するトランザクション・コンテキスト
に入れて送られる)ので、システムCは(システムCに
とって局所的な)ローカル資源をトランザクションに登
録するときに、システムCがシステムAの主コーディネ
ータ35に登録要求を行わなければならないことを知
る。しかし、本発明の好適な実施形態では、このシナリ
オ(実施形態)の流れ「5」で、システムAは「Coo
rdA」35が現在「連鎖」の最後にあると考えるコー
ディネータ(つまり「CoordB」34)に参照を渡
す。
クライアント・アプリケーション・プログラム31はシ
ステムCの「APP SERVER C37」を呼び出
す(流れ「5」)。従来技術では、システムAはシステ
ムAのコーディネータ35に参照を渡す(この参照は、
流れ「5」に便乗するトランザクション・コンテキスト
に入れて送られる)ので、システムCは(システムCに
とって局所的な)ローカル資源をトランザクションに登
録するときに、システムCがシステムAの主コーディネ
ータ35に登録要求を行わなければならないことを知
る。しかし、本発明の好適な実施形態では、このシナリ
オ(実施形態)の流れ「5」で、システムAは「Coo
rdA」35が現在「連鎖」の最後にあると考えるコー
ディネータ(つまり「CoordB」34)に参照を渡
す。
【0037】したがって、サーバ「C」のトランザクシ
ョン・サービスがトランザクションに関与するようにな
るとき、(従来技術の場合のように)「CoordA」
に接触して分散トランザクションに参加するようになる
(したがって、V字型のトランザクション・ツリーを形
成する)のではなく、「CoordB」34に接触して
線形連鎖を形成し、これは線形コミット最適化技術によ
り2段階コミットを使用してより効率的にコミットする
ことができる。
ョン・サービスがトランザクションに関与するようにな
るとき、(従来技術の場合のように)「CoordA」
に接触して分散トランザクションに参加するようになる
(したがって、V字型のトランザクション・ツリーを形
成する)のではなく、「CoordB」34に接触して
線形連鎖を形成し、これは線形コミット最適化技術によ
り2段階コミットを使用してより効率的にコミットする
ことができる。
【0038】したがって、CoordB34がシステム
Aからのトランザクション・コンテキストでシステムC
に渡されるコーディネータ参照であったので、「Coo
rdC」38は(システムCのローカル資源ResC1
39をトランザクションに登録するために)register
_resourceの流れを「CoordB」34に流す(流れ
「6」)。この流れは、流れ「2」と同様であり、同じ
装置を使用する。「CoordB」34は戻り(返流
「7」)、処理はシステムCで続行する。
Aからのトランザクション・コンテキストでシステムC
に渡されるコーディネータ参照であったので、「Coo
rdC」38は(システムCのローカル資源ResC1
39をトランザクションに登録するために)register
_resourceの流れを「CoordB」34に流す(流れ
「6」)。この流れは、流れ「2」と同様であり、同じ
装置を使用する。「CoordB」34は戻り(返流
「7」)、処理はシステムCで続行する。
【0039】このとき、関与システムの連鎖「A」→
「B」→「C」ができており、制御(つまり、移動中の
アプリケーションのスレッド)は現在ノード「C」にあ
る。トランザクションの現在実行中/稼働中の部分のト
ランザクション・サービスが連鎖における現在の「最
後」のコーディネータを知り、この「最後」のコーディ
ネータの参照をアウトバウンド・トランザクションの流
れと共に流し、この(または更新された)参照をどの応
答でも返す限り、トランザクションは常に連鎖内の「最
後」のシステム(システム間register_resourceを介し
て関与した)を追跡し、その後の新しいシステム間トラ
ンザクションの流れでこの参照を送る(かつそれを上述
の通り更新する)ことにより、分散トランザクション・
ツリーは、望む通りのコーディネータの線形連鎖を形成
する。
「B」→「C」ができており、制御(つまり、移動中の
アプリケーションのスレッド)は現在ノード「C」にあ
る。トランザクションの現在実行中/稼働中の部分のト
ランザクション・サービスが連鎖における現在の「最
後」のコーディネータを知り、この「最後」のコーディ
ネータの参照をアウトバウンド・トランザクションの流
れと共に流し、この(または更新された)参照をどの応
答でも返す限り、トランザクションは常に連鎖内の「最
後」のシステム(システム間register_resourceを介し
て関与した)を追跡し、その後の新しいシステム間トラ
ンザクションの流れでこの参照を送る(かつそれを上述
の通り更新する)ことにより、分散トランザクション・
ツリーは、望む通りのコーディネータの線形連鎖を形成
する。
【0040】このシナリオでは「CoordC」38は
現在の連鎖の最後にあるので、トランザクション作業が
システム「D」のサーバ・アプリケーションD41に送
られる(流れ「8」)と、CoordCの参照がこの流
れのトランザクション・コンテキストに入れて渡され
る。「CoordD」40は、流れ「9」および返流
「10」により現在の「最後」のコーディネータ(Co
ordC38)へのregister_resourceの流れ(そのロ
ーカル資源ResD1 42を登録するため)を介して
トランザクションに関与するようになる。我々のシナリ
オでは、作業はシステムCからDに流れ(流れ
「8」)、システム「C」に戻り(返流「11」)、次
いで最終的にシステムAに戻る(流れ「12」)。した
がって、コーディネータは、望む通りに線形連鎖状にA
→B→C→Dと並ぶ。
現在の連鎖の最後にあるので、トランザクション作業が
システム「D」のサーバ・アプリケーションD41に送
られる(流れ「8」)と、CoordCの参照がこの流
れのトランザクション・コンテキストに入れて渡され
る。「CoordD」40は、流れ「9」および返流
「10」により現在の「最後」のコーディネータ(Co
ordC38)へのregister_resourceの流れ(そのロ
ーカル資源ResD1 42を登録するため)を介して
トランザクションに関与するようになる。我々のシナリ
オでは、作業はシステムCからDに流れ(流れ
「8」)、システム「C」に戻り(返流「11」)、次
いで最終的にシステムAに戻る(流れ「12」)。した
がって、コーディネータは、望む通りに線形連鎖状にA
→B→C→Dと並ぶ。
【0041】別のシナリオでは、システム「D」は、シ
ステム「A」、「B」、および「C」のいずれかから流
れる作業のため、トランザクションに関与するようにな
ることがあり、これらの3つのシステムのいずれかが線
形連鎖「A」→「B」→「C」の分散トランザクション
・ツリーに関与するようになると、「A」、「B」、ま
たは「C」のいずれかからDへのトランザクションの流
れは、トランザクション・コンテキストに便乗して「C
oordC」38への参照を渡す。
ステム「A」、「B」、および「C」のいずれかから流
れる作業のため、トランザクションに関与するようにな
ることがあり、これらの3つのシステムのいずれかが線
形連鎖「A」→「B」→「C」の分散トランザクション
・ツリーに関与するようになると、「A」、「B」、ま
たは「C」のいずれかからDへのトランザクションの流
れは、トランザクション・コンテキストに便乗して「C
oordC」38への参照を渡す。
【0042】次に、本発明の好適な実施形態によるプロ
セスに従って実行されるステップを、図4の流れ図を参
照しながら説明する。例示のために、図3のプロセスC
を、図4の流れ図に関して説明する代表的プロセスとす
る。
セスに従って実行されるステップを、図4の流れ図を参
照しながら説明する。例示のために、図3のプロセスC
を、図4の流れ図に関して説明する代表的プロセスとす
る。
【0043】ステップ401で、プロセスCのサーバ・
アプリケーションC37はクライアント・アプリケーシ
ョン31から、プロセスCが分散トランザクションに関
与するようになることを要求するトランザクション要求
(図3の流れ5)を受け取る。受け取ったトランザクシ
ョン要求の伝搬コンテキストには、プロセスCがそのロ
ーカル資源ResC1 39をトランザクションに登録
するために登録要求を送出するときに、プロセスCがこ
の登録要求をプロセスBのCoordB34に送らなけ
ればならないという指示が含まれる(プロセスBが線形
連鎖の最後のコーディネータであったことを、プロセス
Bが前にプロセスAに知らせたため)。
アプリケーションC37はクライアント・アプリケーシ
ョン31から、プロセスCが分散トランザクションに関
与するようになることを要求するトランザクション要求
(図3の流れ5)を受け取る。受け取ったトランザクシ
ョン要求の伝搬コンテキストには、プロセスCがそのロ
ーカル資源ResC1 39をトランザクションに登録
するために登録要求を送出するときに、プロセスCがこ
の登録要求をプロセスBのCoordB34に送らなけ
ればならないという指示が含まれる(プロセスBが線形
連鎖の最後のコーディネータであったことを、プロセス
Bが前にプロセスAに知らせたため)。
【0044】ステップ402で、プロセスCは受け取っ
たトランザクション要求の伝搬コンテキストを調べ、プ
ロセスCが登録要求を送る宛先とすべきプロセスの識別
子を決定する。前段で説明した通り、図3のこのシナリ
オでは、登録要求を送るべき宛先プロセスはプロセスB
である。したがって、ステップ403で、プロセスCは
登録要求をプロセスBのCoordB34に送る(流れ
6)。このとき、プロセスCのCoordC38は登録
要求をプロセスBに送ったので、プロセスCのCoor
dCが今や、プロセスBのCoordBに代わってトラ
ンザクションの登録コーディネータの線形連鎖における
最後のコーディネータとなる。したがって、ステップ4
04で、プロセスCは、例えばプロセスBのCoord
Bが線形連鎖の最後のコーディネータであったという標
識を前に格納していた記憶場所を削除し、かつその記憶
場所にプロセスCのCoordCが今や登録コーディネ
ータの線形連鎖の最後のコーディネータであるという標
識を挿入することによって、線形連鎖における最後の登
録コーディネータを追跡する。
たトランザクション要求の伝搬コンテキストを調べ、プ
ロセスCが登録要求を送る宛先とすべきプロセスの識別
子を決定する。前段で説明した通り、図3のこのシナリ
オでは、登録要求を送るべき宛先プロセスはプロセスB
である。したがって、ステップ403で、プロセスCは
登録要求をプロセスBのCoordB34に送る(流れ
6)。このとき、プロセスCのCoordC38は登録
要求をプロセスBに送ったので、プロセスCのCoor
dCが今や、プロセスBのCoordBに代わってトラ
ンザクションの登録コーディネータの線形連鎖における
最後のコーディネータとなる。したがって、ステップ4
04で、プロセスCは、例えばプロセスBのCoord
Bが線形連鎖の最後のコーディネータであったという標
識を前に格納していた記憶場所を削除し、かつその記憶
場所にプロセスCのCoordCが今や登録コーディネ
ータの線形連鎖の最後のコーディネータであるという標
識を挿入することによって、線形連鎖における最後の登
録コーディネータを追跡する。
【0045】ステップ405で、プロセスCは、プロセ
スDが分散トランザクションに関与するようになること
を要求するために、プロセスDにトランザクション要求
を送る(流れ8)(プロセスCはプロセスDを、クライ
アント・アプリケーション31がサーバ・アプリケーシ
ョンCに送った(流れ5で)トランザクション要求の実
行の一部として呼び出すことに注意されたい)。トラン
ザクション要求の伝搬コンテキストには、プロセスDが
そのローカル資源ResD1 42をトランザクション
に登録するために登録要求を送出するときに、プロセス
Dはこの登録要求をプロセスCのCoordC38に送
らなければならないという指示が含まれる(前段落で述
べた通り、プロセスCがプロセスBに代わってそれ自身
を線形連鎖の最後のコーディネータとしたため)。
スDが分散トランザクションに関与するようになること
を要求するために、プロセスDにトランザクション要求
を送る(流れ8)(プロセスCはプロセスDを、クライ
アント・アプリケーション31がサーバ・アプリケーシ
ョンCに送った(流れ5で)トランザクション要求の実
行の一部として呼び出すことに注意されたい)。トラン
ザクション要求の伝搬コンテキストには、プロセスDが
そのローカル資源ResD1 42をトランザクション
に登録するために登録要求を送出するときに、プロセス
Dはこの登録要求をプロセスCのCoordC38に送
らなければならないという指示が含まれる(前段落で述
べた通り、プロセスCがプロセスBに代わってそれ自身
を線形連鎖の最後のコーディネータとしたため)。
【0046】ステップ406で、プロセスCはプロセス
Dから、プロセスDのローカル資源ResD1 42を
トランザクションに登録することを要求する登録要求を
受け取る(流れ9)。次いでプロセスCは、登録要求へ
の応答(流れ10)をプロセスDに送り返す(ステップ
407)。
Dから、プロセスDのローカル資源ResD1 42を
トランザクションに登録することを要求する登録要求を
受け取る(流れ9)。次いでプロセスCは、登録要求へ
の応答(流れ10)をプロセスDに送り返す(ステップ
407)。
【0047】ステップ407で、プロセスDがトランザ
クション作業のその役割を実行し終わると、プロセスC
は、ステップ405でプロセスCがプロセスDに送った
トランザクション要求(流れ8)へのプロセスDからの
応答を受け取る(流れ11)。この後者の応答(流れ1
1)は、プロセスDが今線形連鎖における最後の登録コ
ーディネータであるという標識を含む(プロセスDがプ
ロセスCに登録要求を送ったため(流れ9))。ステッ
プ408で、プロセスCは次に、例えばプロセスCのC
oordCが線形連鎖の最後のコーディネータであった
という標識を前に格納していた記憶場所を削除し、かつ
その記憶場所にプロセスDのCoordDが今や登録コ
ーディネータの線形連鎖の最後のコーディネータである
という標識を挿入することによって、線形連鎖における
最後の登録コーディネータを追跡する。
クション作業のその役割を実行し終わると、プロセスC
は、ステップ405でプロセスCがプロセスDに送った
トランザクション要求(流れ8)へのプロセスDからの
応答を受け取る(流れ11)。この後者の応答(流れ1
1)は、プロセスDが今線形連鎖における最後の登録コ
ーディネータであるという標識を含む(プロセスDがプ
ロセスCに登録要求を送ったため(流れ9))。ステッ
プ408で、プロセスCは次に、例えばプロセスCのC
oordCが線形連鎖の最後のコーディネータであった
という標識を前に格納していた記憶場所を削除し、かつ
その記憶場所にプロセスDのCoordDが今や登録コ
ーディネータの線形連鎖の最後のコーディネータである
という標識を挿入することによって、線形連鎖における
最後の登録コーディネータを追跡する。
【0048】ステップ409で、プロセスCがステップ
401で受け取ったトランザクション要求のその処理を
終了すると、プロセスCはトランザクション要求への応
答(流れ12)をプロセスAのクライアント・アプリケ
ーション31に送り返す。この応答の伝搬トランザクシ
ョン・コンテキストには、プロセスDが今や登録された
コーディネータの線形連鎖の最後のコーディネータであ
るという標識が含まれる。この応答を受け取ると、プロ
セスAは次いで線形連鎖における最後のコーディネータ
についてのそれ自体の記録を更新する(プロセスAは現
在、プロセスBを最後のコーディネータとして格納して
いるので)。このようにして、クライアント・アプリケ
ーション31がさらなるサーバE(図3には図示せず)
にトランザクション要求を送る場合、クライアント・ア
プリケーション31はサーバEに、サーバEがトランザ
クションに登録するときにはサーバEはその登録要求を
プロセスDに送らなければならないことを知らせる(こ
れによりサーバEは次に登録プロセスの線形連鎖の最後
に置かれる)。
401で受け取ったトランザクション要求のその処理を
終了すると、プロセスCはトランザクション要求への応
答(流れ12)をプロセスAのクライアント・アプリケ
ーション31に送り返す。この応答の伝搬トランザクシ
ョン・コンテキストには、プロセスDが今や登録された
コーディネータの線形連鎖の最後のコーディネータであ
るという標識が含まれる。この応答を受け取ると、プロ
セスAは次いで線形連鎖における最後のコーディネータ
についてのそれ自体の記録を更新する(プロセスAは現
在、プロセスBを最後のコーディネータとして格納して
いるので)。このようにして、クライアント・アプリケ
ーション31がさらなるサーバE(図3には図示せず)
にトランザクション要求を送る場合、クライアント・ア
プリケーション31はサーバEに、サーバEがトランザ
クションに登録するときにはサーバEはその登録要求を
プロセスDに送らなければならないことを知らせる(こ
れによりサーバEは次に登録プロセスの線形連鎖の最後
に置かれる)。
【0049】本発明の好適な実施形態を、オブジェクト
指向プログラミング環境で説明したが、本発明は非オブ
ジェクト指向プログラミング環境にも適用することがで
きる。
指向プログラミング環境で説明したが、本発明は非オブ
ジェクト指向プログラミング環境にも適用することがで
きる。
【0050】添付の請求の範囲において、用語「装置」
は、マシンまたはマシン上で実行するプロセスのどちら
ともすることができる。
は、マシンまたはマシン上で実行するプロセスのどちら
ともすることができる。
【0051】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0052】(1)クライアント/サーバ・トランザク
ション処理システムに使用するコンピューティング装置
であって、サーバ・データ処理装置がサーバ・データ処
理装置にとって局所的な資源をトランザクションに登録
するように要求するために登録要求を送るべきコンピュ
ーティング装置の標識を含むトランザクション要求をサ
ーバ・データ処理装置に送ってサーバ・データ処理装置
が分散トランザクションの処理に関与するようになるこ
とを要求するための送信手段と、トランザクション要求
の受信に応答して登録要求を送出した装置の線形連鎖に
おける現在の最後の装置の標識を含むトランザクション
要求への応答をサーバ・データ処理装置から受け取るた
めの受信手段と、受信手段が受け取る応答に基づいて線
形連鎖の最後の現在の装置を追跡するための維持手段と
を含み、送信手段によってトランザクション要求と一緒
にサーバ・データ処理装置に送られる標識が、前記維持
手段に基づく線形連鎖の最後の現在の装置の標識である
コンピューティング装置。 (2)前記標識がトランザクション伝搬コンテキストの
一部として応答に提供される、上記(1)に記載の装
置。 (3)前記装置が共通オブジェクト要求ブローカ・オブ
ジェクト・トランザクション・サービス仕様に従って実
現される、上記(1)に記載の装置。 (4)前記クライアント/サーバ・システムが通信媒体
としてインターネットを使用する、上記(1)に記載の
装置。 (5)クライアント/サーバ・トランザクション処理シ
ステムに使用するコンピューティング装置を操作する方
法であって、サーバ・データ処理装置がサーバ・データ
処理装置にとって局所的な資源をトランザクションに登
録するように要求するために登録要求を送るべきコンピ
ューティング装置の標識を含むトランザクション要求を
サーバ・データ処理装置に送ってサーバ・データ処理装
置が分散トランザクションの処理に関与するようになる
ことを要求するステップと、トランザクション要求の受
信に応答して登録要求を送出した装置の線形連鎖におけ
る現在の最後の装置の標識を含むトランザクション要求
への応答をサーバ・データ処理装置から受け取るステッ
プと、受信ステップによって受け取った応答に基づいて
線形連鎖の最後の現在の装置を追跡するステップとを含
み、送信ステップによりトランザクション要求と一緒に
サーバ・データ処理装置に送られる標識が、前記維持ス
テップに基づく線形連鎖の最後の現在の装置の標識であ
る方法。 (6)前記標識がトランザクション伝搬コンテキストの
一部として応答に提供される、上記(5)に記載の方
法。 (7)前記装置が共通オブジェクト要求ブローカ・オブ
ジェクト・トランザクション・サービス仕様に従って実
現される、上記(5)に記載の方法。 (8)前記クライアント/サーバ・システムが通信媒体
としてインターネットを使用する、上記(5)に記載の
方法。 (9)上記(5)の方法のステップを実行するためにマ
シンによって実行可能な命令のプログラムを有形に実施
する、マシン可読プログラム記憶装置。 (10)前記標識がトランザクション伝搬コンテキスト
の一部として応答に提供される、上記(9)に記載のプ
ログラム記憶装置。 (11)前記装置が共通オブジェクト要求ブローカ・オ
ブジェクト・トランザクション・サービス仕様書に従っ
て実現される、上記(9)に記載のプログラム記憶装
置。 (12)前記クライアント/サーバ・システムが通信媒
体としてインターネットを使用する、上記(9)に記載
のプログラム記憶装置。
ション処理システムに使用するコンピューティング装置
であって、サーバ・データ処理装置がサーバ・データ処
理装置にとって局所的な資源をトランザクションに登録
するように要求するために登録要求を送るべきコンピュ
ーティング装置の標識を含むトランザクション要求をサ
ーバ・データ処理装置に送ってサーバ・データ処理装置
が分散トランザクションの処理に関与するようになるこ
とを要求するための送信手段と、トランザクション要求
の受信に応答して登録要求を送出した装置の線形連鎖に
おける現在の最後の装置の標識を含むトランザクション
要求への応答をサーバ・データ処理装置から受け取るた
めの受信手段と、受信手段が受け取る応答に基づいて線
形連鎖の最後の現在の装置を追跡するための維持手段と
を含み、送信手段によってトランザクション要求と一緒
にサーバ・データ処理装置に送られる標識が、前記維持
手段に基づく線形連鎖の最後の現在の装置の標識である
コンピューティング装置。 (2)前記標識がトランザクション伝搬コンテキストの
一部として応答に提供される、上記(1)に記載の装
置。 (3)前記装置が共通オブジェクト要求ブローカ・オブ
ジェクト・トランザクション・サービス仕様に従って実
現される、上記(1)に記載の装置。 (4)前記クライアント/サーバ・システムが通信媒体
としてインターネットを使用する、上記(1)に記載の
装置。 (5)クライアント/サーバ・トランザクション処理シ
ステムに使用するコンピューティング装置を操作する方
法であって、サーバ・データ処理装置がサーバ・データ
処理装置にとって局所的な資源をトランザクションに登
録するように要求するために登録要求を送るべきコンピ
ューティング装置の標識を含むトランザクション要求を
サーバ・データ処理装置に送ってサーバ・データ処理装
置が分散トランザクションの処理に関与するようになる
ことを要求するステップと、トランザクション要求の受
信に応答して登録要求を送出した装置の線形連鎖におけ
る現在の最後の装置の標識を含むトランザクション要求
への応答をサーバ・データ処理装置から受け取るステッ
プと、受信ステップによって受け取った応答に基づいて
線形連鎖の最後の現在の装置を追跡するステップとを含
み、送信ステップによりトランザクション要求と一緒に
サーバ・データ処理装置に送られる標識が、前記維持ス
テップに基づく線形連鎖の最後の現在の装置の標識であ
る方法。 (6)前記標識がトランザクション伝搬コンテキストの
一部として応答に提供される、上記(5)に記載の方
法。 (7)前記装置が共通オブジェクト要求ブローカ・オブ
ジェクト・トランザクション・サービス仕様に従って実
現される、上記(5)に記載の方法。 (8)前記クライアント/サーバ・システムが通信媒体
としてインターネットを使用する、上記(5)に記載の
方法。 (9)上記(5)の方法のステップを実行するためにマ
シンによって実行可能な命令のプログラムを有形に実施
する、マシン可読プログラム記憶装置。 (10)前記標識がトランザクション伝搬コンテキスト
の一部として応答に提供される、上記(9)に記載のプ
ログラム記憶装置。 (11)前記装置が共通オブジェクト要求ブローカ・オ
ブジェクト・トランザクション・サービス仕様書に従っ
て実現される、上記(9)に記載のプログラム記憶装
置。 (12)前記クライアント/サーバ・システムが通信媒
体としてインターネットを使用する、上記(9)に記載
のプログラム記憶装置。
【図1】本発明の好適な実施形態を適用することができ
る、オブジェクト技術を使用した周知の異種クライアン
ト/サーバ・アーキテクチャのブロック図である。
る、オブジェクト技術を使用した周知の異種クライアン
ト/サーバ・アーキテクチャのブロック図である。
【図2】従来のシステムに従って2つの共通トランザク
ション・サーバ内でインスタンス化される様々なオブジ
ェクトを示すブロック図である。
ション・サーバ内でインスタンス化される様々なオブジ
ェクトを示すブロック図である。
【図3】本発明の好適な実施形態によるソフトウェア構
成要素を示すブロック図である。
成要素を示すブロック図である。
【図4】本発明の好適な実施形態に従ってプロセスによ
って実行されるステップを示す流れ図である。
って実行されるステップを示す流れ図である。
31 クライアント・アプリケーション 32 サーバ・アプリケーションB 33 資源B1 34 コーディネータB 35 コーディネータA 36 資源B2 37 サーバ・アプリケーションC 38 コーディネータC 39 資源C1 40 コーディネータD 41 サーバ・アプリケーションD 42 資源D1
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アマンダ・エリザベス・シェセル イギリス ジー・ユー34 5ビー・エイ ハンプシャー州オールトン フォア・マー クス リミントン・ライズ 10 (72)発明者 ゴードン・ダグラス・ハチソン イギリス エス・オウ53 1ジェイ・ゼッ ト ハンプシャー州チャンドラーズ・フォ ード ブラクンウェイ・ロード 5
Claims (12)
- 【請求項1】クライアント/サーバ・トランザクション
処理システムに使用するコンピューティング装置であっ
て、 サーバ・データ処理装置がサーバ・データ処理装置にと
って局所的な資源をトランザクションに登録するように
要求するために登録要求を送るべきコンピューティング
装置の標識を含むトランザクション要求をサーバ・デー
タ処理装置に送ってサーバ・データ処理装置が分散トラ
ンザクションの処理に関与するようになることを要求す
るための送信手段と、 トランザクション要求の受信に応答して登録要求を送出
した装置の線形連鎖における現在の最後の装置の標識を
含むトランザクション要求への応答をサーバ・データ処
理装置から受け取るための受信手段と、 受信手段が受け取る応答に基づいて線形連鎖の最後の現
在の装置を追跡するための維持手段とを含み、 送信手段によってトランザクション要求と一緒にサーバ
・データ処理装置に送られる標識が、前記維持手段に基
づく線形連鎖の最後の現在の装置の標識であるコンピュ
ーティング装置。 - 【請求項2】前記標識がトランザクション伝搬コンテキ
ストの一部として応答に提供される、請求項1に記載の
装置。 - 【請求項3】前記装置が共通オブジェクト要求ブローカ
・オブジェクト・トランザクション・サービス仕様に従
って実現される、請求項1に記載の装置。 - 【請求項4】前記クライアント/サーバ・システムが通
信媒体としてインターネットを使用する、請求項1に記
載の装置。 - 【請求項5】クライアント/サーバ・トランザクション
処理システムに使用するコンピューティング装置を操作
する方法であって、 サーバ・データ処理装置がサーバ・データ処理装置にと
って局所的な資源をトランザクションに登録するように
要求するために登録要求を送るべきコンピューティング
装置の標識を含むトランザクション要求をサーバ・デー
タ処理装置に送ってサーバ・データ処理装置が分散トラ
ンザクションの処理に関与するようになることを要求す
るステップと、 トランザクション要求の受信に応答して登録要求を送出
した装置の線形連鎖における現在の最後の装置の標識を
含むトランザクション要求への応答をサーバ・データ処
理装置から受け取るステップと、 受信ステップによって受け取った応答に基づいて線形連
鎖の最後の現在の装置を追跡するステップとを含み、 送信ステップによりトランザクション要求と一緒にサー
バ・データ処理装置に送られる標識が、前記維持ステッ
プに基づく線形連鎖の最後の現在の装置の標識である方
法。 - 【請求項6】前記標識がトランザクション伝搬コンテキ
ストの一部として応答に提供される、請求項5に記載の
方法。 - 【請求項7】前記装置が共通オブジェクト要求ブローカ
・オブジェクト・トランザクション・サービス仕様に従
って実現される、請求項5に記載の方法。 - 【請求項8】前記クライアント/サーバ・システムが通
信媒体としてインターネットを使用する、請求項5に記
載の方法。 - 【請求項9】請求項5の方法のステップを実行するため
にマシンによって実行可能な命令のプログラムを有形に
実施する、マシン可読プログラム記憶装置。 - 【請求項10】前記標識がトランザクション伝搬コンテ
キストの一部として応答に提供される、請求項9に記載
のプログラム記憶装置。 - 【請求項11】前記装置が共通オブジェクト要求ブロー
カ・オブジェクト・トランザクション・サービス仕様書
に従って実現される、請求項9に記載のプログラム記憶
装置。 - 【請求項12】前記クライアント/サーバ・システムが
通信媒体としてインターネットを使用する、請求項9に
記載のプログラム記憶装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9903850.7 | 1999-02-20 | ||
GB9903850A GB2346990B (en) | 1999-02-20 | 1999-02-20 | Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000242608A true JP2000242608A (ja) | 2000-09-08 |
JP3574030B2 JP3574030B2 (ja) | 2004-10-06 |
Family
ID=10848123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000039938A Expired - Fee Related JP3574030B2 (ja) | 1999-02-20 | 2000-02-17 | コンピューティング装置、操作方法およびプログラム記憶装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6542922B1 (ja) |
JP (1) | JP3574030B2 (ja) |
GB (1) | GB2346990B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003781B1 (en) * | 2000-05-05 | 2006-02-21 | Bristol Technology Inc. | Method and apparatus for correlation of events in a distributed multi-system computing environment |
GB2376096B (en) * | 2001-05-30 | 2005-06-29 | Ibm | Identification of the source of a client/server flow |
US7231397B2 (en) * | 2003-10-24 | 2007-06-12 | Microsoft Corporation | Method and system for transacted file operations over a network |
US7404189B2 (en) | 2003-12-30 | 2008-07-22 | International Business Machines Corporation | Scheduler supporting web service invocation |
US8074220B2 (en) * | 2004-05-21 | 2011-12-06 | Computer Associates Think, Inc. | System and method for interfacing an application to a distributed transaction coordinator |
GB0422007D0 (en) * | 2004-10-05 | 2004-11-03 | Ibm | Method and system for identifying a complete response to a request |
US7712096B2 (en) * | 2004-12-21 | 2010-05-04 | International Business Machines Corporation | Method, system, and storage medium for dynamically reordering resource participation in two-phase commit to heuristically optimize for last-agent optimization |
WO2007026268A1 (en) * | 2005-08-31 | 2007-03-08 | Nokia Corporation | Inter-access mobility and service control |
US7770186B2 (en) * | 2006-01-06 | 2010-08-03 | Microsoft Corporation | Framework for database transactions |
US7613814B2 (en) * | 2006-06-20 | 2009-11-03 | Microsoft Corporation | Discovering transactions silently propagated off-machine |
US8346851B2 (en) * | 2009-08-31 | 2013-01-01 | Red Hat, Inc. | System and method for determining when to generate subordinate coordinators on local machines |
US9602616B2 (en) * | 2013-11-06 | 2017-03-21 | Neustar, Inc. | System and method for facilitating routing |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4191657A (en) | 1975-12-24 | 1980-03-04 | Phillips Petroleum Company | Compositions for acidizing subterranean formations |
US4777595A (en) | 1982-05-07 | 1988-10-11 | Digital Equipment Corporation | Apparatus for transferring blocks of information from one node to a second node in a computer network |
US5191657A (en) | 1989-11-09 | 1993-03-02 | Ast Research, Inc. | Microcomputer architecture utilizing an asynchronous bus between microprocessor and industry standard synchronous bus |
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
JPH0827705B2 (ja) | 1990-07-25 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アダプタ |
US5715407A (en) | 1992-03-06 | 1998-02-03 | Rambus, Inc. | Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets |
US5390308A (en) | 1992-04-15 | 1995-02-14 | Rambus, Inc. | Method and apparatus for address mapping of dynamic random access memory |
JPH07312084A (ja) | 1994-05-18 | 1995-11-28 | Toshiba Corp | キャッシュメモリ内蔵メモリ装置 |
JP3129143B2 (ja) | 1994-05-31 | 2001-01-29 | 松下電器産業株式会社 | データ転送方法 |
US6317773B1 (en) * | 1994-10-11 | 2001-11-13 | International Business Machines Corporation | System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators |
GB2301909A (en) * | 1995-06-07 | 1996-12-18 | Ibm | Reduction of logging in distributed transaction processing systems |
US5872969A (en) * | 1995-06-23 | 1999-02-16 | International Business Machines Corporation | System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system |
US5924125A (en) | 1995-08-01 | 1999-07-13 | Arya; Siamak | Method and apparatus for parallel access to consecutive TLB entries |
JP3240897B2 (ja) | 1995-11-29 | 2001-12-25 | 日本電気株式会社 | 半導体記憶装置 |
US5754537A (en) * | 1996-03-08 | 1998-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for transmitting background noise data |
US6260078B1 (en) * | 1996-07-03 | 2001-07-10 | Sun Microsystems, Inc. | Using a distributed object system to find and download java-based applications |
US6253252B1 (en) * | 1996-07-11 | 2001-06-26 | Andrew Schofield | Method and apparatus for asynchronously calling and implementing objects |
US5790789A (en) * | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
US5905876A (en) | 1996-12-16 | 1999-05-18 | Intel Corporation | Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system |
US6292827B1 (en) * | 1997-06-20 | 2001-09-18 | Shore Technologies (1999) Inc. | Information transfer systems and method with dynamic distribution of data, control and management of information |
US5857098A (en) | 1997-06-24 | 1999-01-05 | Samsung Electronics Co., Ltd. | Branch instruction prediction apparatus |
GB2328044B (en) * | 1997-08-01 | 2002-02-27 | Ibm | Apparatus,method and computer program product for client/server computing with a transaction representation located on each transactionally involved server |
US5958004A (en) * | 1997-10-28 | 1999-09-28 | Microsoft Corporation | Disabling and enabling transaction committal in transactional application components |
US6209018B1 (en) * | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6125363A (en) * | 1998-03-30 | 2000-09-26 | Buzzeo; Eugene | Distributed, multi-user, multi-threaded application development method |
US6298352B1 (en) * | 1998-07-23 | 2001-10-02 | Mci Communications Corporation | Apparatus and method for managing number sources |
US6330601B1 (en) * | 1998-12-22 | 2001-12-11 | Nortel Networks Limited | Management system for a multi-level communication network |
-
1999
- 1999-02-20 GB GB9903850A patent/GB2346990B/en not_active Expired - Fee Related
- 1999-06-25 US US09/339,378 patent/US6542922B1/en not_active Expired - Fee Related
-
2000
- 2000-02-17 JP JP2000039938A patent/JP3574030B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB9903850D0 (en) | 1999-04-14 |
GB2346990A (en) | 2000-08-23 |
US6542922B1 (en) | 2003-04-01 |
JP3574030B2 (ja) | 2004-10-06 |
GB2346990B (en) | 2003-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7415522B2 (en) | Extensible framework for transferring session state | |
JP2000242615A (ja) | サーバ・コンピューティング装置、操作方法および記憶装置 | |
JP4464525B2 (ja) | 作業負荷によって管理されるクライアント/サーバ・データ処理システムにおける集中アフィニティ維持装置および方法 | |
EP0707265A2 (en) | A system and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators | |
US20040064564A1 (en) | Mechanism for enabling customized session managers to interact with a network server | |
US7162721B2 (en) | Application-independent API for distributed component collaboration | |
JPH06332870A (ja) | オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置 | |
US6038589A (en) | Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server | |
JP3574030B2 (ja) | コンピューティング装置、操作方法およびプログラム記憶装置 | |
JP3579353B2 (ja) | クライアント/サーバ・コンピューティング・システム、およびクライアント/サーバ処理方法 | |
US6345316B1 (en) | Apparatus, method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction state data | |
WO2001033356A1 (en) | Method for evaluating and selecting middleware | |
Saleh et al. | The distributed object computing paradigm: concepts and applications | |
JP3628577B2 (ja) | サーバ・データ処理装置、操作方法および記憶装置 | |
US6237018B1 (en) | Apparatus method and computer program product for client/server computing with improved transactional interface | |
JP3548030B2 (ja) | サーバ処理装置及びサーバ処理方法 | |
EP0834807A1 (en) | Method and apparatus for performing efficient corba transactions | |
US11163601B2 (en) | Dynamically determine the transaction coordinator in multitier hybrid transaction processing middleware systems | |
EP1654650B1 (en) | Transparent session migration across servers | |
US6324589B1 (en) | Apparatus, method and computer program product for client/server computing with reduced cross-process calls | |
KR100318974B1 (ko) | 트리거링 이벤트에 기초한 코디네이터 트랜잭션 상태 객체 생성의 타이밍을 가진 클라이언트/서버 컴퓨팅을 위한 장치, 방법 및 컴퓨터 프로그램 제품 | |
US7752254B2 (en) | Propagating contexts between a first and second system | |
Al Salaimeh et al. | Developing Enterprise system with CORBA and JAVA integrated Technologies | |
Samaras et al. | eee ARCHITECTURE | |
Zhou | Supporting Fault-tolerant and Open Distributed Processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
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: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |