JPH0916453A - 同期システム及び同期方法 - Google Patents

同期システム及び同期方法

Info

Publication number
JPH0916453A
JPH0916453A JP8129479A JP12947996A JPH0916453A JP H0916453 A JPH0916453 A JP H0916453A JP 8129479 A JP8129479 A JP 8129479A JP 12947996 A JP12947996 A JP 12947996A JP H0916453 A JPH0916453 A JP H0916453A
Authority
JP
Japan
Prior art keywords
transaction
registered
synchronization
data
processing
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
JP8129479A
Other languages
English (en)
Other versions
JP3762479B2 (ja
Inventor
Prentiss Copeland George
ジョージ・プレンティス・コープランド
Anthony James Holdswors Simon
シモン・アンソニー・ジェィムズ・ホールズウォース
Alan Smith Stanley
スタンレー・アラン・スミス
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 JPH0916453A publication Critical patent/JPH0916453A/ja
Application granted granted Critical
Publication of JP3762479B2 publication Critical patent/JP3762479B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

Landscapes

  • Engineering & Computer Science (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)【要約】 【課題】 オブジェクト指向の分散トランザクション処
理システム中の揮発性データと不揮発性データとを効率
良く同期させること。 【解決手段】 若し第1レベルの揮発性データに対して
同期していないデータ変更があれば、揮発性データを持
つ各オブジェクトを、同期オブジェクトとして登録す
る。各ノードの登録オブジェクトは、そのノードに対し
て登録された同期オブジェクトを追跡する。登録された
同期オブジェクトが存在する時、登録された各同期オブ
ジェクトは、その上位のノードに登録する。これによ
り、登録された同期オブジェクトの階層と同期オブジェ
クトが作成される。トランザクションの終了処理は上述
の階層に「準備」メッセージを転送し、同期オブジェク
トのデータを第2レベルの不揮発性データ・ストレージ
にフラッシュする機会を各同期オブジェクトに与える。
この階層構造がメッセージの数を最小にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、トランザクション
処理システムにおいて2レベルのデータ・ストレージ・
システムを管理する装置及び方法、より詳細に言えば、
キャッシュ・メモリにストアされた揮発性データと、ス
トレージ装置中の持続性(不揮発性)データとを同期化
することに関する。より具体的に言えば、本発明は、分
散オブジェクト指向トランザクション処理システムにお
けるデータ管理に関し、この処理システムにおいて、オ
ブジェクトのデータは、揮発性キャッシュ・メモリ中に
ストアされ、そして不揮発性ストレージ装置へ周期的に
コミット(commit)される。
【0002】
【従来の技術】コンピュータで実行されるトランザクシ
ョン(商業上の取引き、物品の搬入及び搬出など、もの
の出し入れ)の計算処理システムは、種々の産業界にお
ける重要な仕事について用いられている。1つのトラン
ザクションとは、アクション(処理動作)を行なうこと
なく完全に終了されねばならない単一の仕事単位、また
はアクションを行なうことなく完全に除去されねばなら
ない単一の仕事単位を意味する。例えば、顧客が預金の
引き出しを要求する銀行用自動端末装置(bank automat
ed teller machine-ATM)の場合において、紙幣の支
払い動作、銀行用自動端末装置中に保持された紙幣の合
計額から支払い額を差し引く計算処理動作及び顧客の預
金額から支払い金額を差し引く計算処理動作はすべて発
生しなければならないか、あるいは、これらすべての処
理動作は発生してはならない。後続する動作のうちの1
つが生じなければ、記録と実際の動作結果との間で不一
致が生じることになる。
【0003】分散トランザクション処理は、1つ以上の
物理的なロケーション(位置)か、または論理的なロケ
ーションにあるリソース(データ・リソース)に影響す
るトランザクションを含んでいる。上述の例において、
ATMのトランザクションは、遠隔ロケーションに設け
られたATM装置において管理されるデータ・リソース
と、銀行のメイン・コンピュータによって管理される銀
行の取引き額に関するデータ・リソースとに影響を与え
る。分散トランザクションは物理的に分散されている必
要はないけれども、成功裡にトランザクション処理を完
了させるためには、同期して完了されねばならない協働
的なタスクを含んでいる。
【0004】エックス・オープン社(X/Open Company L
imited)は分散トランザクション処理を行なうための1
つの処理モデルを説明した案内書を公表している。19
91年10月に刊行されたこの案内書「The X/Open Gui
de, Distributed Transaction Processing Reference M
odel」は、分散トランザクション処理システムの構成要
素と、それらの構成要素間の相互関係とについて説明し
ている。エックス・オープン社の分散トランザクション
処理モデル(DTPモデル)は、3つの主要な構成要
素、つまり、アプリケーション・プログラム(AP)、
トランザクション・マネージャ(Transaction Manager-
TM)及び1つまたはそれ以上のリソース・マネージャ
(Resorce Manager-RM)について説明している。アプ
リケーション・プログラムは、1つまたはそれ以上のリ
ソース・マネージャによって制御されるリソースを使用
し、かつリソースを変更する。トランザクション・マネ
ージャは、大域的なトランザクションについて責任を持
ち、そして、リソース・マネージャによって行なわれた
動作をコミットするか、あるいは、ロールバックするか
の決定を調整(コーディネート)する。(コミットは、
リソースを変更させるが、他方、ロールバックは、すべ
ての仕事を破棄して、トランザクションが開始した時点
の状態にリソースを復帰させる。)リソース・マネージ
ャは、特定のリソースを管理する。リソース・マネージ
ャは、データベース管理システム(DBMS)、ファイ
ル管理システム、または同じようなリソースを含んでい
る。
【0005】オブジェクト指向プログラミング・システ
ムは、機能を明確に分離することによって、オブジェク
トの再使用を可能にし、かつシステムの保守を単純化す
ることによりプログラムの開発効率を向上するように設
計されている。オブジェクト指向システム中の各オブジ
ェクトは、そのオブジェクトのためのデータと、そのデ
ータを処理するための手続き、即ちメソッドとをカプセ
ル化している。カプセル化と言う用語は、あるオブジェ
クトのためのデータは、決められたメソッドを用いて、
そのオブジェクトによってのみ操作されることができる
ことを意味する。また、オブジェクト指向システムは、
オブジェクト継承を実施する。継承は、包括的なオブジ
ェクトから、より特定されたオブジェクトを引き出すこ
とを可能にする。より特定されたオブジェクトは、親の
オブジェクトのデータ及びメソッドのすべてを「継承す
る」ことができるけれども、その特別の機能を実行する
ために、選択されたデータ及びメソッドを無効にし、他
のデータ及びメソッドを加えることができる。
【0006】トランザクション処理システムに対してオ
ブジェクトに指向技術を適用することは、多くの新しい
問題を生じるけれども、しかし、オブジェクト指向原理
を使用することによってシステム効率を向上させる機会
が与えられる。オブジェクト・マネージメント・グルー
プ社(Object Management Group, Inc.−OMG社)
は、相互動作可能なオブジェクト指向システムの標準を
設定している。OMG社によって定義された全体のアー
キテクチャは、共通オブジェクト要求ブローカ・アーキ
テクチャ(Common Object Request Broker Architectur
e−CORBA)である。CORBAは、オブジェクト
間の対話、より詳細に言えば、異なったコンピュータ・
システムにおける分散オブジェクト間の対話を定義して
いる。OMG社は、オブジェクト指向システムにおける
トランザクション処理を標準化するための提案を受け付
けている。オブジェクト・トランザクション・サービス
(OTS)と名付けられたこの提案は、トランザクショ
ン処理システムを実行するために必要とするオブジェク
ト・サービスのための要件を記載している。OTSの仕
様書は、オブジェクト指向システムの多くの独特な能力
を用いている。然しながら、OTSモデルは、エックス
・オープン社のDTPモデル及び従来の手続き型トラン
ザクション処理システムと相互動作されるように設計さ
れている。
【0007】トランザクションによって行なわれた変更
をコミットするか否かを決定するための「2相式コミッ
ト(two phase commit)」処理は、エックス・オープン
社のDTPモデルによって記載され、多くの商業用トラ
ンザクション処理システムによって使用されている。第
1相の処理には、そのトランザクションによって行なわ
れた変更を成功裡にコミットできると各リソース・マネ
ージャが信じているか否かをトランザクション・マネー
ジャが決定することを必要とする。若し何れかのリソー
ス・マネージャがコミットできないことを表示したか、
あるいはリソース・マネージャが応答しなければ、トラ
ンザクション・マネージャは、その変更を各リソース・
マネージャにロールバックさせる。若しすべてのリソー
ス・マネージャからの応答が肯定的であれば、トランザ
クション・マネージャは、すべてのリソース・マネージ
ャに対してそのトランザクションをコミットするよう命
令する。
【0008】オブジェクト指向システムは、しばしば、
データをストアするために2レベルのストレージ装置の
モデルを用いて実行される。2レベルのストレージ装置
のモデルは、持続性データをストアするためのハード・
ディスク、不揮発性メモリ、または読み取り/書き込み
CD−ROMのような第1のレベルの不揮発性ストレー
ジ装置を用いている。トランザクション・システム中の
持続性データはデータベース・マネージメント・システ
ム(DBMS)のようなリソース・マネージャによって
保持されている。第2のレベルの揮発性ストレージ装置
がオブジェクトのそれぞれと関連して設けられている。
この第2のレベルのストレージ装置中にある揮発性デー
タは、使用可能なオブジェクトのメソッドを介して、ア
プリケーション・プログラムによってより高速度でアク
セスされる。この第2のレベルのストレージ装置中にあ
るデータは、しばしば「キャッシュされたデータ」と呼
ばれる。
【0009】キャッシュされたデータを変更することに
よって、システム中で付加され、または変更されたオブ
ジェクトのデータは、最終的に、持続性ストレージ装
置、即ち不揮発性ストレージ装置に移行させなければな
らない。このデータ移行は、キャッシュ・メモリの周期
的なフラッシュ動作とか、あるいはそのデータを不揮発
性ストレージ装置に書き込むための明示的なプログラム
・インストラクションのような種々のアルゴリズムを通
して発生することができる。データの不揮発性ストレー
ジ装置へのフラッシュ動作は、かなり多数のシステム・
リソースを必要とし、しかも、システムを効率的に設計
するためには、オブジェクト・データのキャッシュ・メ
モリのフラッシュ動作を最小限にとどめることが要求さ
れる。
【0010】従来の適用例で説明されたような分散トラ
ンザクション処理システムは、2レベルのストレージ装
置のシステムに対して独特の問題を提起する。不揮発性
ストレージ装置に対してデータをフラッシュする動作
は、その不揮発性ストレージ装置のデータを変更するこ
とになる。不揮発性データ・ストレージ装置は、上述し
たように、トランザクション処理システムにおいては、
しばしば、リソース・マネージャによって管理される。
リソース・マネージャは、コミット及びロールバック処
理を含んで、データの更新を制御する。特定のトランザ
クションのためのデータが、そのリソース・マネージャ
に対して終了処理(「コミット」または「ロールバッ
ク」処理)を完了した後には、リソース・マネージャ
は、不揮発性ストレージ装置のデータを更新するため
に、そのトランザクションからの付加的なデータを受け
入れない。若し揮発性データがオブジェクト・データの
ストレージ装置中に残留しているならば、不揮発性スト
レージ装置への通常のキャッシュされたデータ移行はリ
ソース・マネージャによって拒否されるので、その残留
した揮発性データは喪失される。
【0011】手続き型トランザクション処理システム
(オブジェクト指向トランザクション処理システムでは
ない)は、トランザクションが終了する時期で、下位レ
ベルのデータ・ストレージ装置への変更を調整する問題
を取り扱っている。手続き型トランザクション処理シス
テムのための問題解決方法は、手続き型トランザクショ
ン処理システムのコミット・ツリーの静的な性質のた
め、オブジェクト指向システムに対して必要とされる解
決方法よりも遥かに容易である。コミット・ツリーは、
2相式コミット処理の間、そのシステムによって使用さ
れる。準備用のメッセージ及びコミット用のメッセージ
は、トランザクション・マネージャから送られ、そし
て、ツリー階層に従ってコミット・ツリーの各エレメン
トに転送される。手続き型トランザクション処理システ
ムにおけるコミット・ツリーでは、常に、そのツリーの
底部に不揮発性データ・ストレージ装置が設けられてい
る。この静的なコミット・ツリーは、コミット要求が下
位の不揮発性リソース・マネージャによって受け取られ
る前に、上位レベルのリソース(揮発性ストレージ装
置)によって受け取られることを保証している。その結
果、キャッシュはリソース・マネージャよりも先にコミ
ットされることが保証されているので、トランザクショ
ンが終了した時に、揮発性データ・ストレージ装置の内
容を、キャッシュが不揮発性データのリソース・マネー
ジャ中にフラッシュさせることができる。
【0012】また、手続き型トランザクション処理シス
テムは、物理的に同じコンピュータ・システムの中に、
トランザクション・マネージャと、キャッシュされたデ
ータと、下位のリソース・マネージャとを共存させる傾
向がある。このような共存態様によって、各オブジェク
トが、キャッシュされたデータをフラッシュすることが
できるように、変更データの差し迫ったコミット動作ま
たはロールバック動作をすべてのデータ・ストレージ装
置「オブジェクト」に通知するような、キャッシュの同
期化の問題について他の解決方法が可能となる。然しな
がら、このような解決方法は、分散トランザクション処
理システムが実施される場合には極めて不満足である。
分散トランザクション処理システム中のすべてのオブジ
ェクトに通知することは、分散された各オブジェクトへ
メッセージを転送することに関連する通信コストが高価
になり、しかも、システムの性能が低下するので実用的
ではない。
【0013】分散オブジェクト指向トランザクション処
理システムは、従来の手続き型トランザクション処理シ
ステムには見られない特別な問題を提起する。オブジェ
クト・ベースのシステムにおけるコミット・ツリーの動
的な構造がこれらの特別な問題を生じる。トランザクシ
ョン中に含まれているオブジェクト、従ってコミット・
ツリーの中に位置付ける必要のあるオブジェクトは、特
定のトランザクションのインスタンスのためのメッセー
ジの流れに基づいて動的に変化する。オブジェクトの動
的な構造は、プログラムを設計する際に著しい柔軟性を
与えるので、望ましい構造であるけれども、オブジェク
トの動的な構造は、コミット・ツリーの底部に設けられ
た最下位の不揮発性データのストレージ装置(リソース
・マネージャ)を持つコミット構造を保証しない。スト
レージ装置に関するこのような相互関係の保証が欠如し
ているので、不揮発性データ・ストレージ装置へフラッ
シュされるべきデータを含んでいる揮発性オブジェクト
よりも先に、不揮発性データ・ストレージ装置がコミッ
ト要求、またはロールバック要求を受け取るような状態
を生じることがある。この状態においては、不揮発性リ
ソース・マネージャはトランザクションが完了したとみ
なすので、そのキャッシュは、該不揮発性リソース・マ
ネージャの中に、フラッシュされることができない。
【0014】2レベルのストレージ装置に関する問題の
他の解決方法は、2レベルのストレージ装置の代わり
に、1レベルのストレージ装置のモデルを使用すること
である。IBM社のOS/400オペレーティング・シ
ステム及びオブジェクト・デザイン社(Object Design
Inc.)のシステムは1レベルのストレージ装置で動作す
る。これらのシステムにおいては、揮発性ストレージ装
置に対する書き込みがトランザクション活動とは無関係
に不揮発性ストレージ装置へ書き込まれることを保証す
るようにストレージ装置が管理されている。
【0015】従って、トランザクションがコミットされ
る前に、キャッシュされたすべてのオブジェクト・デー
タが不揮発性ストレージ装置にフラッシュされることを
効果的に保証することのできる分散トランザクションの
処理システムを実施するためには技術的な問題に遭遇す
る。
【0016】この技術的な問題は、オブジェクト・デー
タ・キャッシュ警告メッセージがそのトランザクション
によって影響される揮発性データを持っているオブジェ
クトだけに送られ、かつ、データの同期化を必要とする
1つまたはそれ以上のオブジェクトを含む各分散された
ノードへ、ただ1つのキャッシュ同期メッセージを送ら
せる、分散トランザクション処理システムを実行する必
要があると言う問題を含んでいる。キャッシュ同期メッ
セージのメッセージ流は、コミット・メッセージが送ら
れる前に完了しなければならない。データをフラッシュ
する責任は、クライアントのアプリケーションの側にあ
るのではなく、そのデータを保持しているオブジェクト
の側になければならない。
【0017】
【発明が解決しようとする課題】従って、本発明の目的
は、同期されていないデータを有するオブジェクトへ最
小限のメッセージを送ることによってオブジェクト・デ
ータの同期処理を開始させることにある。
【0018】本発明の他の目的は、同期オブジェクト
(synchronization object)の階層を作成することによ
って、複数の分散処理ノードに拡がった同期処理を管理
することにある。
【0019】本発明の他の目的は、同期処理の失敗によ
って影響されるであろう同期オブジェクトだけを登録す
ることによって、同期オブジェクトの最も小さな階層を
作成することにある。
【0020】本発明の他の目的は、不揮発性ストレージ
への更新がコミットまたはロールバックされる前に、す
べての揮発性データが不揮発性ストレージと同期される
ことを保証した、トランザクションを終了するための処
理を実施することにある。
【0021】本発明の他の目的は、クライアントの処理
要求を受けることなく、データを保持するオブジェクト
に対して、そのデータの同期処理を行なう責任を持たせ
た処理を実施することにある。
【0022】
【課題を解決するための手段】本発明は、上述した従来
のトランザクション処理システムの持つ問題点を解決す
るための、分散オブジェクト指向トランザクション処理
システムに向けられている。より具体的に言えば、本発
明は、トランザクションが完了する前(コミット動作の
前か、またはロールバック動作の前)に、同期メッセー
ジを必要とするオブジェクトを決定するシステム及び方
法に向けられている。本発明のシステム及び方法は、登
録された同期オブジェクトで構成された同期オブジェク
トのツリーを、変更されたデータを有する各オブジェク
ト及び同期オブジェクトのための事前に準備された処理
に含まれることを要求する各処理ノードに対して作成す
ることによって、最少数のメッセージが送られることを
保証している。トランザクションの終了を警告する、事
前に準備された同期メッセージは、登録された同期オブ
ジェクトの各々へ、トランザクションの終了を示すオブ
ジェクトによって送られる。登録された同期オブジェク
トは、フラッシュされるべきデータを持つオブジェクト
でもよく、あるいは、そのノード中の各同期オブジェク
トへ次々とメッセージを送る他の処理ノードのコーディ
ネータ(Coordinator)同期オブジェクトであってもよ
い。他の実施例において、終了処理が成功したこと、ま
たは終了処理が失敗したことを表示する第2のメッセー
ジが同期オブジェクトのツリーに送られる。
【0023】本発明のシステムは、より詳細に言えば、
プロセッサ手段を持つ処理ノード、メモリ及び不揮発性
ストレージ手段を有するコンピュータ・システムにおい
てトランザクション処理のオブジェクト・データを不揮
発性データと同期化するシステムであって、この同期化
システムは、トランザクション処理のトランザクション
終了を制御する終了手段と、トランザクションの完了前
に、同期を必要とするデータを持つオブジェクトを、前
記終了手段に登録する手段と、トランザクションのコミ
ット動作が開始する前に、登録されたオブジェクトだけ
に通知する手段とを含んでいる。
【0024】
【発明の実施の形態】エックス・オープン社の分散トラ
ンザクション処理(DTP)システムのモデルの概略が
図1に示されている。「アプリケーション・プログラム
(AP)」102が実行されて、データまたは他のリソ
ースの状態が変更される。リソースは「リソース・マネ
ージャ(Resouce Manager−RM)」106、108、
110によって管理され、これらリソース・マネージャ
の各々はデータベース管理システム(DBMS)、ファ
イル管理システムまたは類似のシステムであってよい。
これらの「リソース・マネージャ」は、「アプリケーシ
ョン・プログラム」102を実行するコンピュータ・シ
ステムから離れたコンピュータ・システムに分散されて
いてもよいし、あるいは、同じコンピュータ・システム
の中の別個のプロセスとして実施されてもよい。「トラ
ンザクション・マネージャ(TransactionManager−T
M)」104は「アプリケーション・プログラム」10
2によって開始された夫々の特定のトランザクション処
理の完了を制御する。「トランザクション・マネージ
ャ」104は、すべてのリソースがトランザクションの
終了時に一貫性を有することを保証するために「リソー
ス・マネージャ」の動作を調整する。この調整は、トラ
ンザクションが所定のよう原子的に処理されたように見
えることを保証する。つまり、トランザクションが、そ
のトランザクションに関連したすべてのリソースを変更
するか、またはトランザクションが、そのトランザクシ
ョンに関連したリソースを全く変更しなかったことの保
証を行なう。
【0025】オブジェクト・マネージメント・グループ
社によって定義された「オブジェクト・トランザクショ
ン・サービス」モデルの概略が図2に示されている。分
散クライアント/サーバ(C/S)のアプリケーション
・プログラムは参照数字120で示されている。分散C
/Sアプリケーション・プログラム120は、トランザ
クションによって必要とされる動作を行なうためのメッ
セージを交換する幾つかのオブジェクトを含んでいる。
アプリケーション・プログラムで与えられるオブジェク
トは、「トランザクション関連のオブジェクト」の操作を
呼び出す1つまたはそれ以上の「トランザクション関連
のクライアント」122を含んでいる。トランザクショ
ンを開始するオブジェクトはトランザクション・オリジ
ネータであり、そしてトランザクション・オリジネータ
は、トランザクションの開始時点及びトランザクション
の終了時点において「トランザクション関連のサービ
ス」へメッセージ138を送る。「トランザクション関
連のオブジェクト」とは、トランザクションの範囲内で
呼び出されることによってその動作が影響を受けるオブ
ジェクトのことである。通常、トランザクション関連の
オブジェクトはトランザクション関連の要求によって変
更することのできる持続性データを含むか、またはその
ような持続性データを参照する。持続性データはシステ
ムを再開始しても保持されるデータである。持続性デー
タは、通常、ディスク・ストレージ装置、不揮発性メモ
リ、またはそれらと類似する装置中に保持される。
【0026】トランザクション関連のオブジェクトは、
2つのタイプのアプリケーション・サーバ、即ち「トラ
ンザクション関連のサーバ」124及び「回復可能サー
バ」126を実施するために使用される。回復可能サー
バ126は、トランザクションのすべての参加者がトラ
ンザクション処理の最終結果、つまり、そのトランザク
ションをコミットするかまたはロールバックするかにつ
いて同意するのを保証し、障害からの回復を可能にする
ために必要なプロトコルを実施する。回復可能なオブジ
ェクトは、トランザクション関連のオブジェクトである
けれども、しかし、トランザクション関連のオブジェク
トのすべては回復可能ではない。トランザクション関連
の回復不能なオブジェクトは、回復可能な他のオブジェ
クトを用いてトランザクション関連の回復不能なオブジ
ェクトの状態を元のオブジェクトの状態に復帰すること
ができる。
【0027】回復可能なオブジェクトは「トランザクシ
ョン・サービス」130プロトコルに参画しなければな
らない。「トランザクション・サービス」130は、ト
ランザクション・コンテキスト(トランザクションの内
容)132として各トランザクションの範囲を定義する
幾つかのデータを保持している。トランザクション・コ
ンテキスト132は、各オブジェクト要求ブローカー
(Object Request Broker-ORB)感知スレッドと関連
されている。(ORBの特性はOMG社のCORBAア
ーキテクチャによって定義されている。)トランザクシ
ョン・コンテキスト132はクライアント・アプリケー
ションから発生された各要求とともに与えられ、そし
て、その要求が処理される動作環境特性を定義するため
に使用される。トランザクション・コンテキスト132
の内容は、トランザクション・コーディネータの参照
子、入れ子にされたトランザクションの先祖の参照子、
トランザクション・コーディネータのための大域的に固
有なトランザクション識別子及び下位のトランザクショ
ン・コーディネータによって理解される特別の実施デー
タを含むことができる。
【0028】回復可能なオブジェクトは、リソースを
「トランザクション・サービス」130に登録すること
によって、その「トランザクション・サービス」に参画
する。「トランザクション・サービス」130は、ある
トランザクションのために登録された複数のリソースと
接触することによってコミット・プロトコル(2相式コ
ミット)を活動化する。
【0029】「トランザクション関連のサーバ(transa
ctional server)」124は、トランザクションによっ
てその動作が影響されるオブジェクトの集合であって、
オブジェクト自身の回復可能な状態を持たない1つまた
はそれ以上のオブジェクトの集合である。トランザクシ
ョン関連のサーバ124は、回復可能な他のオブジェク
トを用いてトランザクション関連のデータ変更を実行す
る。トランザクション関連のサーバ124はトランザク
ションの完了には参画しないけれども、しかしロールバ
ック・メッセージ140を送ることによって、トランザ
クションをロールバックさせることができる。
【0030】回復可能サーバ126は、少なくとも1つ
が回復可能なオブジェクトであるオブジェクトの集合で
ある。回復可能サーバ126は、「登録」メッセージ1
42を用いて、1つまたはそれ以上の「リソース」・オ
ブジェクト128を、「トランザクション・サービス」
に登録することによってそのプロトコルに参画する。
「トランザクション・サービス」130は、トランザク
ションのために登録されたリソースへ要求144を発行
することによってコミット・プロトコルを活動化する。
【0031】図3を参照すると、本発明に従った分散処
理システムを説明するためのブロック図が示されてい
る。複数のコンピュータ・システムが通信ネットワーク
を用いて相互接続されている。例えば、コンピュータ・
システム212及び204は通信ネットワーク210に
よって接続されている。コンピュータ・システム20
4、202及び206は通信ネットワーク208によっ
て接続されている。コンピュータ・システム206、2
16、218、220及び222は、通信ネットワーク
214により、そしてコンピュータ・システム222、
226及び228は通信ネットワーク224によって接
続されている。通信ネットワークは公知のトークン・リ
ング、イーサネット、あるいは他のネットワークを含む
任意のローカル・エリア・ネットワーク(LAN)、ま
たは広域ネットワーク(WAN)であってよい。また、
「ネットワーク」は単一のコンピュータ・システム中の
複数のプロセスの間の通信バスであってもよい。
【0032】本発明を実施する代表的なコンピュータ・
システムが図4に示されている。各コンピュータ・シス
テム250は1つまたはそれ以上の中央処理装置25
2、揮発性メモリ254及び入出力コントローラ256
を含んでいる。入出力コントローラ256は、磁気また
は光学ディスク・ストレージ装置262、取り外し可能
なストレージ装置258、260、表示装置268、キ
ーボード266、ポインティング装置264などへの入
出力を管理する。システム通信コントローラ270は通
信リンク272を介してネットワークとの通信を管理す
る。この構成は、本発明の実施例を説明するために示し
たものであって、本発明の技術的な範囲を限定するもの
ではない。IBM社のPS/2コンピュータとか、IB
M社のRISCシステム/6000ワークステーション
などの市販のコンピュータ・システム(PS/2及びR
ISCシステム/6000はIBM社の商標)が本発明
を適用するためのコンピュータ・システムの例である。
既に述べたように、分散環境のシステムは、メモリ及び
ディスク・ストレージ装置を共有する単一の通信バスを
介してすべてリンクされることができる。
【0033】コンピュータ・システム250は、OS/
2オペレーティング・システム、またはAIXオペレー
ティング・システム(OS/2及びAIXはIBM社の
商標)のようなオペレーティング・システムによって制
御される。ネットワーク通信は、Novell Netwareオペレ
ーティング・システム、またはIBM社のLANサーバ
・オペレーティング・システムのようなネットワーク・
オペレーティング・システムによって管理することがで
きる。
【0034】本発明は、上述したようなコンピュータ・
システムを制御するための適当なハードウェア、または
コンピュータが読取可能媒体中に書き込まれたプログラ
ムを用いて実施される。
【0035】本発明の実施例は、「OMG社のオブジェ
クト・トランザクション・サービス」の仕様書で定義さ
れた複数のOMGクラスに複数のオブジェクトを付加す
ることによって実施される。これらの付加的なオブジェ
クトは、2レベルのストレージ装置の同期を管理するた
めの新規な処理及び構成を与える。本発明の良好な実施
例は図5に示したようなOMG仕様の実施態様例を利用
している。OMGで定義された各クラス、例えば「Fact
ory(工場)」は、例えば「IFactory」のように明確に
実施される。この構成は、OMG仕様になされる変更と
は無関係に、実施の実施を変更する柔軟性を提供するこ
とができる。
【0036】図6を参照すると、トランザクションの処
理機能を遂行するために特定のOMGクラスに加えられ
た実施クラスが示されている。これらの実施クラス(頭
文字「I」を持たない実施クラス)は、トランザクショ
ン処理を遂行するためにOMGクラスによって使用され
る機能を与える。
【0037】図7は、2レベルのデータ・ストレージ装
置の同期を制御するための本発明の良好な実施例によっ
て用いられる同期クラスを説明するための図である。
【0038】Synchronizationクラス702は、2相式
コミット動作には含まれないかも知れないが、特定のト
ランザクションの完了について通知されることを必要と
するオブジェクト(「同期オブジェクト」)を表わして
いる。これらのオブジェクトは、一方の実施例におい
て、トランザクションの完了直前に通知されることが必
要であり、他方の実施例において、トランザクションの
完了直後に通知されることが必要である。これにより、
2レベルのストレージ装置の動作態様を持つオブジェク
トについて、トランザクションの完了直前の時期におい
て、オブジェクトの状態をストレージ装置中のデータと
同期させることが可能となる。Synchronizationオブジ
ェクト・インスタンスは「トランザクション・サーバ」
124(図2)によって作成され、そして、必要なトラ
ンザクション情報にアクセスできるように「トランザク
ション関連のオブジェクト」から継承される。
【0039】CoordinatorSyncクラス704は、例えばI
Coordinatorクラス502のような上位のCoordinatorク
ラス(TopCoordinatorクラスかまたはSubCoordinatorク
ラス)から、同期操作を受け取る責任と、トランザクシ
ョンの完了に参画するために、CoordinatorSyncオブジ
ェクトを登録した下位のTopCoordinatorまたはSubCoord
inatorクラス602へ同期操作を中継する責任とを持っ
ている。CoordinatorSyncクラス704は、Synchroniza
tionクラス702から継承され、TopCoordinatorクラス
またはSubCoordinatorクラス602によって使用され
る。CoordinatorSyncクラスは、それがSynchronization
オブジェクトを登録した時に、TopCoordinatorクラスま
たはSubCoordinatorクラスによって作成される。
【0040】RegisteredSyncsクラス706は、1つの
トランザクションにおける同期処理のために、含まれて
いるTop/Subcoordinatorクラスに、登録されているSync
hronizationクラスのオブジェクト(Synchronizationク
ラスのインスタンス702)を記録する。RegisteredSy
ncsクラス706は、任意の個数のSynchronizationクラ
スの参照子を含んでおり、それらの参照子は一組の固有
の参照子として保持される。Synchronizationクラスの
参照子は、異なった処理ノード中にあるCordinatorSync
オブジェクトのための参照子を含むことができる。
【0041】RegisteredSyncsクラス706は、トラン
ザクションの完了時に含まれているCoordinatorによっ
て指令された時、トランザクションの完了前及び完了後
に、RegisteredSyncクラスに登録されたSynchronizatio
nクラスのオブジェクトへ、メッセージを分配する責任
を持っている。Synchronizationオブジェクト及びCoord
inatorSyncオブジェクトは、上述と同じような態様で、
トランザクションの完了前及び完了後に、メッセージを
受け取る。
【0042】RegisteredSyncsインスタンスは、Top/Sub
Coordinatorインスタンスと共に作成され、破棄され、
そしてTop/SubCoordinatorクラスに含まれる。
【0043】図7に示された新規な構成は、以下に細述
される本発明の新規な処理方法を実施するのに用いられ
る。
【0044】トランザクションの完了は、トランザクシ
ョンを完了し、そのトランザクションによって行なわれ
たすべてのデータ変更をコミットするか、またはロール
バックする処理である。トランザクションの終了は、ト
ランザクションを完了するためのメッセージをICurrent
疑似オブジェクト504へ送る「トランザクション関連
のクライアント」122(図2及び図8参照)によって
開始される。ICurrentオブジェクトは、そのトランザク
ションのためのIControlクラスのオブジェクト506を
決定し、そして、そのトランザクションのためのITermi
natorクラス508の識別子を要求する。ITerminatorク
ラスはトランザクションのために2相式コミット動作を
管理する。若し現在、トランザクションがなければ、処
理は終了する。若し現在、トランザクションがあれば、
その完了操作は、CoordinatorTermクラス604にその
完了操作を渡すITerminatorクラス508に転送され、
これは、次に、2相式コミット・プロトコルを介して、
ルートのTopCoordinatorクラス602に差し向けられ
る。2相式コミット・プロトコルの第1相動作である
「準備」メッセージを送る前に、before_completionメ
ソッドが、CoordinatorTermクラス604によって、ル
ート・トランザクションの TopCoordinatorクラス60
2に呼び出される。TopCoordinatorクラス602は、差
し迫ったトランザクションの完了を通知されることに関
心を持つことを登録したすべての関連するオブジェクト
にそれを通知する。RegisteredSyncsオブジェクト70
6は、それらすべての参照子を含んでおり、そして、デ
ータの同期処理を始動させるbefore_completion同期メ
ッセージを各オブジェクトに送る。
【0045】RegisteredSyncsオブジェクト706中に
含まれた幾つかのオブジェクト参照子は、CoordinatorS
yncsのノードのための参照子である場合がある。従っ
て、CoordinatorSync704へメッセージを送ることに
より、CoordinatorSyncクラス704が実行されている
ノード(多くの場合、分散システム・ネットワーク中の
他のシステム)のために、RegisteredSyncsオブジェク
ト706に登録された各Synchronizationオブジェクト
へ、before_completion同期メッセージを転送するステ
ップが始動される。他のシステム中の複数のオブジェク
トが同期メッセージを受け取るよう登録している時でさ
えも、ただ1つの同期要求がシステムの間を通過するだ
けだから、この構造(CoordinatorSyncsクラスを含んで
いる構造)は効率的なメッセージの流れを保証する。
【0046】このメッセージ流の細部は図8に示されて
いる。図8において、特定クラスのインスタンス、例え
ば、CoordinatorTerm604は、aCoordinatorTerm60
4aで示されているように、a、b、c等のような添字
を付けて表示されている。
【0047】トランザクションが完了すると、Coordina
torTermは、TopCoordinatorに、befor_completion同期
メッセージについて説明した処理と同じ処理を用いて、
そのトランザクションが完了したことを、すべてのRegi
steredSyncオブジェクトに通知させる。このことが行な
われた後において、そのトランザクションに関係したす
べての処理は完了して、TopCoordinatorは除去される。
【0048】図8は同期処理を遂行するために必要なメ
ッセージの流れを示す図である。メッセージは番号が付
けられている。本発明に関係あるメッセージだけが説明
される。
【0049】若しクライアントが「コミット」を要求し
たならば、CoordinatorTerm604aは、トランザクシ
ョンのためのルートとして記憶しているTopCoordinator
参照子602aに対してTopCoordinator::before_compl
etion11*を呼び出す。(「オブジェクト::メッセー
ジ」という表示形式は、メッセージが、ある動作のため
にオブジェクトへ送られることを表わしている。)若し
ルートTopCoordinatorが同期処理をサポートしなけれ
ば、後続の処理は飛び越される。ルートTopCoordinator
602aは、RegisteredSyncs::distribute_before12
*を呼び出すことによって、そのトランザクションが完
了しようとしていることを、例えばSynchronization7
02aのような登録されたすべての同期オブジェクトに
通知する。若し同期オブジェクトがなければ、同期処理
は終了する。若し同期オブジェクトがあれば、Register
edSyncsは、登録された同期オブジェクトの組を調べ
て、夫々の同期オブジェクトに対して、Synchronizatio
n::before_completion13*を呼び出す。
【0050】他のノード中にあり、かつ同期処理を必要
とするオブジェクトは、CoordinatorSyncオブジェクト
704aを介してアクセスされる。既に説明したよう
に、これらのオブジェクト参照子は、RegisteredSyncs
オブジェクトの中の組に含まれている。RegisteredSync
sはCoordinatorSyncsとSynchronizationとを実際上区別
しないけれども、RegisteredSyncs706aオブジェク
トは、実際にCoordinatorSyncオブジェクトである複数
のオブジェクトに対してCoordinatorSync::before_comp
letion14*を呼び出す。
【0051】他のノード中に存在するCoordinatorSync
704aは、TopCoordinator::before_completion15*
を使用して上述の他のノード中の下位のTopCoordinator
602bへ同期操作を転送する。下位のTopCoordinator
602bは、RegisteredSyncs::distibute_before16*
を使用して、すべてのRegisteredSyncsオブジェクト7
06bに同期操作を分配する。RegisteredSyncs706
bは、メッセージの組17*において、Synchronization
オブジェクト702bのそれぞれに対してSynchronizat
ion::before_competionを呼び出す。
【0052】より上位レベルのRegisteredSyncsの組の
中のCoordinatorSyncオブジェクトを登録する能力は、
完了メッセージを階層的に分配することを可能にする。
メッセージ、14*乃至17*の処理ステップは、登録さ
れたすべての同期オブジェクトが通知されることを保証
するために、階層全体を通して繰り返される。
【0053】コミットまたはロールバックを介してトラ
ンザクションが終了された後、トランザクションの結果
を登録されたすべての同期オブジェクトに通知するため
に、after_completion処理が遂行される。これにより、
登録されたオブジェクトは、その結果に基づいた処理、
例えば、ロールバックにより必要なデータが破壊されて
しまった場合に、個別のスレージ装置からデータを回復
することが可能となる。after_completion処理は、図8
に示したステップと同じような処理ステップに従って行
なわれる。
【0054】本発明はトランザクションの完了通知を必
要とするSynchronizationオブジェクトの階層的な記録
を維持するために、CoordinatorSyncオブジェクト及びR
egisteredSyncオブジェクトを用いる。Synchronization
のインターフェースは、そのメソッドの実施がトランザ
クション・コンテキストにアクセスできるように、「ト
ランザクション関連のオブジェクト」から継承する。Sy
nchronizationオブジェクトがトランザクション完了の
通知を必要とする状態に移った時、これは、当該ノード
のためのRegisteredSyncsオブジェクトに登録する。若
しRegisteredSyncsオブジェクトがそのルート・ノード
になければ、それは、CoordinatorSyncオブジェクトに
よって、上位のRegisteredSyncに登録させなければなら
ない。従って、RegisteredSync及びCoordinatorSyncオ
ブジェクトの階層は、図9に示したように作成される。
その結果、CoordinatorSyncは各ノードにおいて構成さ
れた代用物である。この代用物は、同期を必要とするオ
ブジェクトが識別された時にのみそれよりも上位のオブ
ジェクトに動的に結合される。
【0055】各処理ノードは最大限、1個だけのCoordin
atorSyncオブジェクトを持っている。従って、最大限、
1個だけのメッセージが、より上位のRegisteredSyncオ
ブジェクトから送られる。若し当該ノードにあるオブジ
ェクトが同期化を必要としなければ、オブジェクトの階
層にはCoordinatorSyncオブジェクトは付加されず、当
該ノードに対してメッセージが送られることはない。1
つのノード内では、トランザクション完了の通知が必要
であると登録されているSynchronizationオブジェクト
だけに完了メッセージが送られる。このことは、メッセ
ージの転送量及びこの転送に関連した負担を最小限にと
どめることを保証する。
【0056】トランザクションが完了しようとしている
ことを効率的な方法により、揮発性オブジェクトに通知
することを保証することに関する問題は、before_compl
etion方式及びafter_completion方式の技術を使用する
ことによって解決される。この処理は、2相式コミット
完了プロトコルが開始する前に行なわれ、そのトランザ
クションが完了される前に、データがそのオブジェクト
・データから下位のストレージ装置へフラッシュさせる
ことができるのを保証する。
【0057】上述した本発明の実施例について、本発明
の技術的思想の範囲内で当業者により多くの修正、変更
を施すことができるのは理解されるべきである。
【0058】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0059】(1)プロセッサ手段を持つ処理ノード
と、メモリと、不揮発性ストレージ手段とを有するコン
ピュータ・システムの中にある揮発性トランザクション
処理オブジェクト・データを不揮発性データと同期させ
るシステムであって、トランザクション終了を処理する
トランザクションを制御する終了手段と、トランザクシ
ョン終了前に、同期を必要とするデータを持っているオ
ブジェクトを、上記終了手段に登録する手段であって、
上記オブジェクトが他には終了処理に参画しない手段
と、トランザクションのコミット処理が開始する前に、
登録されたオブジェクトだけに通知する手段であって、
上記終了手段及び上記登録する手段に対して責任を持つ
通知手段と、を含む同期システム。 (2)各々がプロセッサ手段及びメモリを有する、複数
の付加的な処理ノードを含み、上記登録する手段は、同
期を必要とするオブジェクトを持つ各付加的な処理ノー
ドについて最大1個のオブジェクトを登録する手段を含
み、上記通知する手段は、(a) 付加的な処理ノード
が同期を必要とするオブジェクトを持っているか否かを
テストする手段と、(b) 同期を必要とするオブジェ
クトを含む各処理ノードに対して、ただ1つの通知を送
る手段と、を含む(1)に記載の同期システム。 (3)1個のローカル処理ノード及び複数個の分散処理
ノードを有するオブジェクト指向トランザクション処理
システムにおいて複数レベルのデータ記憶を同期させる
システムであって、上記処理ノードの各々において、デ
ータ同期を必要とする複数個の同期オブジェクトを登録
する手段と、1つまたはそれ以上の同期オブジェクトが
1つの処理ノードに登録された時には必ず、上記1つの
処理ノードを、終了手段に登録する手段と、同期オブジ
ェクトが登録されている分散処理ノードだけに、メッセ
ージが送られるように、上記登録された処理ノードの各
々に、事前準備メッセージを送信する手段と、上記登録
された処理ノード中の上記複数個の同期オブジェクトの
各々に、上記事前準備メッセージを送信する手段と、を
含む同期システム。 (4)分散トランザクション処理システムにおいて、揮
発性オブジェクト・データを不揮発性データと同期させ
る方法であって、各分散処理ノード内で変更された揮発
性オブジェクト・データを有するオブジェクトを登録す
るステップと、登録されたオブジェクトを持つ各分散処
理ノードを、トランザクション・マネージャに登録する
ステップと、トランザクションの完了前に、登録された
各処理ノード及び登録されたローカル・オブジェクトへ
メッセージを送るステップと、を含む同期方法。 (5)トランザクションの完了後に、登録された各処理
ノード及び登録されたローカル・オブジェクトへメッセ
ージを送るステップを含む(4)に記載の同期方法。 (6)複数個の処理ノードを有する分散コンピュータ・
システムで使用されるコンピュータ・プログラム・プロ
ダクトであって、上記コンピュータ・システムに揮発性
データを不揮発性データと同期させるための、コンピュ
ータにより使用可能な媒体中に具現化された、コンピュ
ータにより読み取り可能なプログラム・コード手段を有
する上記媒体と、上記処理ノードの各々において、デー
タの同期を必要とする複数個の同期オブジェクトを登録
するよう上記コンピュータ・システムに指示するプログ
ラム・コード手段と、1つまたはそれ以上の同期オブジ
ェクトが1つの処理ノードに登録された時には必ず、上
記処理ノードを終了手段に登録するよう上記コンピュー
タ・システムに指示するプログラム・コード手段と、同
期オブジェクトが登録されている分散処理ノードに対し
てだけ、メッセージが送られるように、上記登録された
処理ノードの各々に対して、事前準備メッセージを送信
するよう上記コンピュータ・システムに指示するプログ
ラム・コード手段と、上記登録された処理ノード中の上
記複数個の同期オブジェクトの各々に対して、上記事前
準備メッセージを送信するよう上記コンピュータ・シス
テムに指示するプログラム・コード手段と、を含むコン
ピュータ・プログラム・プロダクト。 (7)上記登録された処理ノード中の上記複数個の同期
オブジェクトの各々に対して、after_completionメッセ
ージを送信するよう上記コンピュータ・システムに指示
するプログラム・コード手段を含む(6)に記載のコン
ピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【図1】エックス・オープン社の分散トランザクション
処理モデルを説明するためのブロック図である。
【図2】オブジェクト・マネージメント・グループ社
(OMG)の「オブジェクト・トランザクション・サー
ビス」のモデルを説明するためのブロック図である。
【図3】本発明の良好な実施例を適用するための、ネッ
トワークによって接続された分散コンピユータ・システ
ムを説明するためのブロック図である。
【図4】本発明の良好な実施例を適用するためのコンピ
ュータ・システムを示す図である。
【図5】OMG社の「オブジェクト・トランザクション
・サービス」の仕様書で定義された複数の実行クラスを
示すオブジェクトの図である。
【図6】「オブジェクト・トランザクション・サービ
ス」をサポートする本発明に従った複数の実行クラスを
表わしたオブジェクトの図である。
【図7】本発明に従って、トランザクション終了処理の
前または後の時期において、同期オブジェクトのデータ
の同期を保証する同期クラスを説明するオブジェクトの
図である。
【図8】本発明の処理に従って、オブジェクトの複数の
インスタンスのオブジェクト間で転送されるメッセージ
の流れを説明するための図である。
【図9】本発明に従って、RegisteredSync及びCoordina
torSyncオブジェクトの階層的配列を説明するためのブ
ロック図である。
【符号の説明】
102 アプリケーション・プログラム(AP) 104 トランザクション・マネージャ(TM) 106、108、110 リソース・マネージャ(R
M) 120 分散クライアント/サーバ(C/S)・アプリ
ケーション・プログラム 122 トランザクション関連のクライアント 124 トランザクション関連のサーバ 126 回復可能なオブジェクト・サーバ 128 リソース 130 トランザクション・サービス 132 トランザクション・コンテキスト 138 メッセージ 140 ロールバックのメッセージ 142 登録メッセージ 144 リソース要求 202、204、206、212、222、226、2
28、250 コンピュータ・システム 208、210、214、224 通信ネットワーク 252 中央処理装置 254 揮発性メモリ 256 入出力コントローラ 258 取り外し可能なストレージ装置 262 磁気ディスク、または光学ディスク・ストレー
ジ装置 264 ポインティング装置 266 キーボード 268 表示装置 270 通信コントローラ 272 通信リンク
フロントページの続き (72)発明者 シモン・アンソニー・ジェィムズ・ホール ズウォース イギリス国 ツゥー・エヌ・エヌ、エス・ ピー・アイ・オー、ハンツ、アンドオーバ ー、ザ・ウイロウズ 7 (72)発明者 スタンレー・アラン・スミス アメリカ合衆国 78717 テキサス州、オ ースチン、フリッシュ・コーブ 16110

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ手段を持つ処理ノードと、メ
    モリと、不揮発性ストレージ手段とを有するコンピュー
    タ・システムの中にある揮発性トランザクション処理オ
    ブジェクト・データを不揮発性データと同期させるシス
    テムであって、 トランザクション終了を処理するトランザクションを制
    御する終了手段と、 トランザクション終了前に、同期を必要とするデータを
    持っているオブジェクトを、上記終了手段に登録する手
    段であって、上記オブジェクトが他には終了処理に参画
    しない手段と、 トランザクションのコミット処理が開始する前に、登録
    されたオブジェクトだけに通知する手段であって、上記
    終了手段及び上記登録する手段に対して責任を持つ通知
    手段と、 を含む同期システム。
  2. 【請求項2】 各々がプロセッサ手段及びメモリを有す
    る、複数の付加的な処理ノードを含み、 上記登録する手段は、同期を必要とするオブジェクトを
    持つ各付加的な処理ノードについて最大1個のオブジェ
    クトを登録する手段を含み、 上記通知する手段は、 (a) 付加的な処理ノードが同期を必要とするオブジ
    ェクトを持っているか否かをテストする手段と、 (b) 同期を必要とするオブジェクトを含む各処理ノ
    ードに対して、ただ1つの通知を送る手段と、 を含む請求項1に記載の同期システム。
  3. 【請求項3】 1個のローカル処理ノード及び複数個の
    分散処理ノードを有するオブジェクト指向トランザクシ
    ョン処理システムにおいて複数レベルのデータ記憶を同
    期させるシステムであって、 上記処理ノードの各々において、データ同期を必要とす
    る複数個の同期オブジェクトを登録する手段と、 1つまたはそれ以上の同期オブジェクトが1つの処理ノ
    ードに登録された時には必ず、上記1つの処理ノード
    を、終了手段に登録する手段と、 同期オブジェクトが登録されている分散処理ノードだけ
    に、メッセージが送られるように、上記登録された処理
    ノードの各々に、事前準備メッセージを送信する手段
    と、 上記登録された処理ノード中の上記複数個の同期オブジ
    ェクトの各々に、上記事前準備メッセージを送信する手
    段と、 を含む同期システム。
  4. 【請求項4】 分散トランザクション処理システムにお
    いて、揮発性オブジェクト・データを不揮発性データと
    同期させる方法であって、 各分散処理ノード内で変更された揮発性オブジェクト・
    データを有するオブジェクトを登録するステップと、 登録されたオブジェクトを持つ各分散処理ノードを、ト
    ランザクション・マネージャに登録するステップと、 トランザクションの完了前に、登録された各処理ノード
    及び登録されたローカル・オブジェクトへメッセージを
    送るステップと、 を含む同期方法。
  5. 【請求項5】 トランザクションの完了後に、登録され
    た各処理ノード及び登録されたローカル・オブジェクト
    へメッセージを送るステップを含む請求項4に記載の同
    期方法。
  6. 【請求項6】 複数個の処理ノードを有する分散コンピ
    ュータ・システムで使用されるコンピュータ・プログラ
    ム・プロダクトであって、 上記コンピュータ・システムに揮発性データを不揮発性
    データと同期させるための、コンピュータにより使用可
    能な媒体中に具現化された、コンピュータにより読み取
    り可能なプログラム・コード手段を有する上記媒体と、 上記処理ノードの各々において、データの同期を必要と
    する複数個の同期オブジェクトを登録するよう上記コン
    ピュータ・システムに指示するプログラム・コード手段
    と、 1つまたはそれ以上の同期オブジェクトが1つの処理ノ
    ードに登録された時には必ず、上記処理ノードを終了手
    段に登録するよう上記コンピュータ・システムに指示す
    るプログラム・コード手段と、 同期オブジェクトが登録されている分散処理ノードに対
    してだけ、メッセージが送られるように、上記登録され
    た処理ノードの各々に対して、事前準備メッセージを送
    信するよう上記コンピュータ・システムに指示するプロ
    グラム・コード手段と、 上記登録された処理ノード中の上記複数個の同期オブジ
    ェクトの各々に対して、上記事前準備メッセージを送信
    するよう上記コンピュータ・システムに指示するプログ
    ラム・コード手段と、 を含むコンピュータ・プログラム・プロダクト。
  7. 【請求項7】 上記登録された処理ノード中の上記複数
    個の同期オブジェクトの各々に対して、after_completi
    onメッセージを送信するよう上記コンピュータ・システ
    ムに指示するプログラム・コード手段を含む請求項6に
    記載のコンピュータ・プログラム・プロダクト。
JP12947996A 1995-06-23 1996-05-24 同期システム及び同期方法 Expired - Fee Related JP3762479B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US494049 1995-06-23
US08/494,049 US5872969A (en) 1995-06-23 1995-06-23 System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system

Publications (2)

Publication Number Publication Date
JPH0916453A true JPH0916453A (ja) 1997-01-17
JP3762479B2 JP3762479B2 (ja) 2006-04-05

Family

ID=23962817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12947996A Expired - Fee Related JP3762479B2 (ja) 1995-06-23 1996-05-24 同期システム及び同期方法

Country Status (2)

Country Link
US (1) US5872969A (ja)
JP (1) JP3762479B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265362A (ja) * 1998-01-16 1999-09-28 Internatl Business Mach Corp <Ibm> クライアント処理装置、サ―バ処理装置、クライアント処理方法、サ―バ処理方法及びコンピュ―タ・プログラム製品
JP2002169718A (ja) * 2000-10-13 2002-06-14 Miosoft Corp 持続的データ記憶技術
JP2004536402A (ja) * 2001-07-17 2004-12-02 ビーイーエイ システムズ, インコーポレイテッド 同期されたコールバック処理特徴をもったトランザクション処理システム及び方法
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法
US8489567B2 (en) 2000-10-13 2013-07-16 Microsoft Corporation Persistent data storage techniques
US9189536B2 (en) 2000-10-13 2015-11-17 Miosoft Corporation Maintaining a relationship between two different items of data

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205464B1 (en) * 1994-09-16 2001-03-20 International Businesss Machines Corporation System for building optimal commit trees in a distributed transaction processing system
GB2312766A (en) * 1996-05-01 1997-11-05 Ibm Transactional layer for object management system
US6845505B1 (en) 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6119145A (en) * 1997-02-28 2000-09-12 Oracle Corporation Multithreaded client application storing a separate context for each transaction thus allowing threads to resume transactions started by other client threads
FR2762950B1 (fr) * 1997-05-02 2000-08-04 Alsthom Cge Alcatel Procede de transmission d'une notification dans un reseau a applications distribuees comportant plusieurs services de notifications et reseau pour sa mise en oeuvre
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
JP3808608B2 (ja) * 1997-10-20 2006-08-16 富士通株式会社 蓄積交換型電子会議システムにおけるオブジェクトの移動処理装置及び方法並びに移動処理プログラムを記録したコンピュータ読取可能な記録媒体
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6047289A (en) * 1997-11-07 2000-04-04 Novell, Inc. Method and apparatus for directed data propagation
US6029177A (en) * 1997-11-13 2000-02-22 Electronic Data Systems Corporation Method and system for maintaining the integrity of a database providing persistent storage for objects
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
GB2335518A (en) * 1998-03-18 1999-09-22 Ibm Triggering event causes creation of Coordinator transaction state object
US6128623A (en) * 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US6292880B1 (en) 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6209003B1 (en) 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
US6289358B1 (en) 1998-04-15 2001-09-11 Inktomi Corporation Delivering alternate versions of objects from an object cache
US6260045B1 (en) * 1998-05-22 2001-07-10 Apple Computer, Inc. Method and apparatus for optimizing interface dispatching in an object-oriented programming environment
US6438582B1 (en) * 1998-07-21 2002-08-20 International Business Machines Corporation Method and system for efficiently coordinating commit processing in a parallel or distributed database system
US6728958B1 (en) * 1998-07-31 2004-04-27 Hewlett-Packard Development Company, L.P. Volatile resource manager with pre-prepare notification
GB2346990B (en) * 1999-02-20 2003-07-09 Ibm Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization
US6411981B1 (en) 1999-03-12 2002-06-25 Compaq Computer Corporation Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer
US7124203B2 (en) * 2000-07-10 2006-10-17 Oracle International Corporation Selective cache flushing in identity and access management systems
US7249369B2 (en) * 2000-07-10 2007-07-24 Oracle International Corporation Post data processing
US7464162B2 (en) * 2000-07-10 2008-12-09 Oracle International Corporation Systems and methods for testing whether access to a resource is authorized based on access information
US7194764B2 (en) * 2000-07-10 2007-03-20 Oracle International Corporation User authentication
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US6853994B1 (en) 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
US6611898B1 (en) 2000-12-22 2003-08-26 Convergys Customer Management Group, Inc. Object-oriented cache management system and method
US7921033B2 (en) * 2001-01-29 2011-04-05 Microsoft Corporation System and method for high-density interactive voting using a computer network
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US7231661B1 (en) 2001-06-21 2007-06-12 Oracle International Corporation Authorization services with external authentication
US7225256B2 (en) * 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US6769048B2 (en) * 2001-12-06 2004-07-27 Sun Microsystems, Inc. Cache synchronization method, system and apparatus for a distributed application and an object located in a client cache
WO2004010319A2 (en) * 2002-07-22 2004-01-29 Thought, Inc. Dynamic object- driven database manipulation and mapping system
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7882132B2 (en) * 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7904487B2 (en) * 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
GB0323780D0 (en) * 2003-10-10 2003-11-12 Ibm A data brokering method and system
US7630974B2 (en) 2004-09-28 2009-12-08 Oracle International Corporation Multi-language support for enterprise identity and access management
US7437080B2 (en) * 2005-02-03 2008-10-14 Stratalight Communications, Inc. Optical transmission system having optimized filter wavelength offsets
US7647346B2 (en) * 2005-03-29 2010-01-12 Microsoft Corporation Automatic rules-based device synchronization
US20060230349A1 (en) * 2005-04-06 2006-10-12 Microsoft Corporation Coalesced per-file device synchronization status
US8688813B2 (en) 2006-01-11 2014-04-01 Oracle International Corporation Using identity/resource profile and directory enablers to support identity management
US7475078B2 (en) * 2006-05-30 2009-01-06 Microsoft Corporation Two-way synchronization of media data
US20090112915A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Class configuration for locally cached remote data binding
US8606947B2 (en) 2008-05-27 2013-12-10 International Business Machines Corporation Heuristics processing
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US10089711B2 (en) * 2010-09-03 2018-10-02 Adobe Systems Incorporated Reconstructable digital image cache
JP2016081169A (ja) * 2014-10-14 2016-05-16 富士通株式会社 情報処理装置、データ処理システム、データ処理管理プログラム、及び、データ処理管理方法
US10565168B2 (en) * 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation
US11740928B2 (en) 2019-08-26 2023-08-29 International Business Machines Corporation Implementing crash consistency in persistent memory
US11928497B2 (en) 2020-01-27 2024-03-12 International Business Machines Corporation Implementing erasure coding with persistent memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592664A (en) * 1991-07-29 1997-01-07 Borland International Inc. Database server system with methods for alerting clients of occurrence of database server events of interest to the clients
US5727203A (en) * 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265362A (ja) * 1998-01-16 1999-09-28 Internatl Business Mach Corp <Ibm> クライアント処理装置、サ―バ処理装置、クライアント処理方法、サ―バ処理方法及びコンピュ―タ・プログラム製品
JP2002169718A (ja) * 2000-10-13 2002-06-14 Miosoft Corp 持続的データ記憶技術
US8489567B2 (en) 2000-10-13 2013-07-16 Microsoft Corporation Persistent data storage techniques
US8935225B2 (en) 2000-10-13 2015-01-13 Miosoft Corporation Persistent data storage techniques
US9189536B2 (en) 2000-10-13 2015-11-17 Miosoft Corporation Maintaining a relationship between two different items of data
US9830348B2 (en) 2000-10-13 2017-11-28 Miosoft Corporation Persistent data storage techniques
JP2004536402A (ja) * 2001-07-17 2004-12-02 ビーイーエイ システムズ, インコーポレイテッド 同期されたコールバック処理特徴をもったトランザクション処理システム及び方法
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法

Also Published As

Publication number Publication date
US5872969A (en) 1999-02-16
JP3762479B2 (ja) 2006-04-05

Similar Documents

Publication Publication Date Title
JP3762479B2 (ja) 同期システム及び同期方法
US6513056B1 (en) System and method for efficiently synchronizing cache and persistant data in an object oriented transaction processing system
US5956506A (en) System and method for functionally enhancing procedural software using objects
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
US6317773B1 (en) System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
US6338146B1 (en) Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
US6694368B1 (en) Communication apparatus and method between distributed objects
US5964838A (en) Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster
US7895156B2 (en) Method, system, and computer program product for implementing a model exchange framework generating a synchronization record in response to a model exchange request using fusion technology
CN100545851C (zh) 使用命令行环境的远程系统管理
US7609703B2 (en) Group communication system and method
CN101146127B (zh) 一种分布式系统中客户端缓存更新的方法和装置
US6385668B1 (en) Method and apparatus for compound hardware configuration control
US6658587B1 (en) Emulation of persistent group reservations
WO2012000997A1 (en) An apparatus for processing a batched unit of work
JP2539185B2 (ja) 多重フェ―ズ・コミット処理方法
CN103414712A (zh) 一种分布式虚拟桌面管理系统和方法
JPH11272484A (ja) クライアント要求をディスパッチする装置及び方法
US6138169A (en) System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions
CN117354260A (zh) 一种电磁暂态跨域分布式并行计算调度方法及装置
JPH11272630A (ja) サ―バ処理装置、サ―バ処理方法、コンピュ―タ・プログラム製品及びサ―バ
CN112104504B (zh) 一种大规模资源访问的事务管理框架、设计方法及云平台
CN115373816A (zh) 一种基于应用控制状态管理的无服务器计算应用执行方法和系统
Serrano-Alvarado et al. Self-adaptive component-based transaction commit management
Gankevich et al. Novel approaches for distributing workload on commodity computer systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060113

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120120

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130120

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees