JP2001514775A - 複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法 - Google Patents
複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法Info
- Publication number
- JP2001514775A JP2001514775A JP53958398A JP53958398A JP2001514775A JP 2001514775 A JP2001514775 A JP 2001514775A JP 53958398 A JP53958398 A JP 53958398A JP 53958398 A JP53958398 A JP 53958398A JP 2001514775 A JP2001514775 A JP 2001514775A
- Authority
- JP
- Japan
- Prior art keywords
- visibility
- database
- docking
- log
- rule
- 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.)
- Ceased
Links
- 238000007726 management method Methods 0.000 claims abstract description 20
- 238000003032 molecular docking Methods 0.000 claims description 260
- 238000000034 method Methods 0.000 claims description 46
- 230000008859 change Effects 0.000 claims description 13
- 230000010076 replication Effects 0.000 claims description 7
- 230000001902 propagating effect Effects 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000000644 propagated effect Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 29
- 238000012546 transfer Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 239000012634 fragment Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (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
【発明の詳細な説明】
複数のデータベース・トランザクションのリモート・データベース・クライアン
トの可視度決定方法
序論
I.技術分野
本発明は、部分的に複製したリレーショナル・データベース・システムのネッ
トワークをアップデートするためのシステムおよび方法に関し、より詳しくは、
データベースに対して処理するトランザクションのネットワーク上のクライアン
トに対する可視度を計算する効率的方法の提供に関する。
II.背景
リレーショナル・データベースは、ビジネスその他の環境でデータを表すため
に広く用いられるデータ構造である。リレーショナル・データベースは、2次元
の表の集合の形式でデータを表す。各テーブルは、行と列からなる一連のセルか
ら構成される。一般に、表の行は特定の観測を表す。列は、データフィールドま
たは別の表の行へのポインターを表す。
例えば、組織構造を表すデータベースは、組織各地位を記述するのに1つの表
を持ち、組織の各従業員を記述するのにもう1つの表を持つことができる。従業
員表には、氏名、従業員番号、年齢、給与等の従業員固有の情報を入れることが
できる。地位表には、肩書き(「販売員」、「副社長」等)、給与範囲等、地位
固有の情報を入れることができる。この表は、例えば、従業員表の各行に地位表
の特定の行へのポインターを備えて、従業員表の各行にその従業員の地位を記述
する地位表中の特定行へのポインターがあるように調
整して関連づけることができる。リレーショナル・データベース管理システム(
RDBMS)は、ユーザからの照会に対応したこれらの表の「結合」をサポート
し、例えば特定の従業員について照会を行うユーザが、従業員表の情報だけでな
く、関連する地位表の情報も含めて選択した従業員の報告を与えられるようにす
る。
リレーショナル・データベースは、この例よりはるかに複雑で、複数の表とそ
れらの間の多数の関係を持つ。
安価でポータブルなコンピュータの利用の普及により、中央コンピュータから
離れた場所でポータブルコンピュータにデータベースを複製して参照することが
有利である。そして複製したデータベースを、ポータブルコンピュータのユーザ
にとっては不便な中央位置に保持されたメイン・データベースを参照する必要な
く、ユーザがポータブルコンピュータで参照することができる。ただし、複製さ
れたデータベースの利用には、多数の難点がある。
短所の1つは、中央データベースのフルコピーには、望ましい、あるいは経済
的と言える以上のデータ保存が必要となることである。例えば、現場で働く販売
員は、自分の販売地域の販売機会に関する情報についてデータベースを参照する
必要があるが、自分の地域外の販売機会に関する情報を参照する必要はない。必
要なデータ保存量を少なくするアプローチの1つに、ユーザが必要とするデータ
ベース部分のみ複製するというものがある。ただし、このアプローチでは、デー
タのどの部分が必要かを決定する基準は時と共に変化するということを認識して
いない。例えば、販売員は自分のテリトリーに新しい都市を追加するかもしれな
い。従来のアプローチでは、この場合、販売員は、追加した都市を含むデータを
選択して、データベースの自分のロ一カルコピーを再複製する必要がある。この
ような操作は不便で、エラーを生じやすく、時間がかかる。
複製データベースのもう1つの短所は、複製したコピーを使ってデータをアッ
プデートしようとする時の困難さである。複製データベースに行った変更は中央
データベースには行われず、データベースの複製コピーに保存された情報と中央
データベースに保存された情報との間に不一致が生じることになる。複製コピー
の修正をジャーナルして、中央データベースに同じ修正を行うことはできるが、
このアプローチの持つ問題に、アップデートの衝突、即ち、複製コピーのユーザ
が、中央コピーのユーザまたは別の複製コピーのユーザが変更したデータを変更
してしまう可能性がある。
そのため、複製データベース全体のリフレッシュの必要なく複製の程度を容易
に変更でき、中央データベースのユーザと部分的複製データベースのューザとの
間でアップデートの調整をできるように、中央データベースの部分的に複製した
1つ以上のコピーを保持する機能を持たせるのが望ましい。
発明の概要
本発明は、中央データベース、または別の部分的複製データベースのアップデ
ートを、選択的に部分的複製データベースに伝播させるよう、部分的複製データ
ベースを保持する方法に関する。部分的複製データベースの所有者がアップデー
ト中のデータに対する可視度を持っているとみなされる場合、アップデートは部
分的複製データベースに伝播される。可視度は、ルールデータベースに保存され
たダイナミックルールまたはあらかじめ決められたルールなどの、ルールを使っ
て決定される。本発明の1態様では、保存したルールは、アップデートしており
、ドッキング・オブジェクト(docking object)として知られるロジカル・エン
ティティ(logical entity)を作成する各種テーブルのデータ・コンテンツに対
して評価され
る。
本発明の別の態様では、保存したルールは、必ずしもアップデートされないが
、アップデートしているドッキング・オブジェクトに関連する1つ以上のドッキ
ング・オブジェクトのデータ・コンテンツに対して評価される。ある実施例では
、関連するドッキング・オブジェクトの可視度の属性は繰り返し判断される。
本発明のさらに別の態様では、中央コンピュータがドッキング・オブジェクト
をその部分的複製データベースに挿入するようノード(node)に指示できるよう
に可視度の変更が決定される。このような可視度の変更は、中央コンピュータが
その部分的複製データベースからドッキング・オブジェクトを除去するようノー
ドに指示できるようにするために決定される。
本発明のさらに別の態様では、あらかじめ決められたルールは、宣言形式で、
データ・コンテンツを参照せずにデータの構造に基づいてデータの可視度を指定
する。
本発明のさらに別の態様では、データベースに行うトランザクション(transa
ction)は、トランザクションの可視度の計算に必要な計算リソースを削減する
よう順序づけて処理される。
本発明のさらに別の態様では、データベースに行うトランザクションは、トラ
ンザクションの可視度の計算に必要な計算リソースを削減するよう、キャッシュ
を使って順序づけて処理される。
本発明のさらに別の態様では、データベースのオブジェクトとトランザクショ
ンは、あるオブジェクに対するトランザクションの可視度を決定するために用い
る関連可視度強度を有する。
本発明のさらに別の態様では、可視度の計算は、中央ディクショナリーにある
簡易化したルールセットを使って実行する。
図面の簡単な説明
図1は、本発明の実施例の動作の概観を示す。
図2は、ドッキング・オブジェクトを作る各種コンポーネントの関係を示すデ
ータベース・スキーマ(schema)を示す。
図3は、データベースをアップデートするアップデート・マネージャが実行す
るステップを示す。
図4は、1つ以上のトランザクション・ログ(logs)を転送および/または受
けるドッキング・マネージャが実行するステップを示す。
図5は、既存データベースにトランザクション・ログ記録をマージするためマ
ージ・プロセッサが実行するステップを示す。
図6は、部分的トランザクション・ログを準備するためログマネージャ(log
manager)が実行するステップを示す。
図7は、ログ・マネージャが呼び出すドッキング・オブジェクトの可視度を計
算するため、可視度計算機が実行するステップを示す。
図8は、データ可視度の変更に応答して部分的複製データベースの同期を実行
するステップを示す。
図9は、トランザクション・ログ・テーブルのデータベース設計の構造を示す
。
図10は、中央ディクショナリーのデータベース図を示す。
特定の実施例の説明
概観
図1は、本発明の1つの実施例の動作の概観である。図1は、中央コンピュー
タシステム1と3つのリモートコンピュータシステム(または「ノード」)、2
1−a,21−bおよび21−cを示す
。ノード21−a,21−bおよび21−cはそれぞれ、これより詳しく説明す
る中央コンピュータシステムとの各種通信状態で示される。中央コンピュータシ
ステム1は、中央データベース3、ドッキング・マネージャ5、マージ・プロセ
ッサ7およびログ・マネージャ9を含む。中央コンピュータシステム1はさらに
、オプションでユーザ入力13に応答するアップデート・マネージャ11を含む
。
ノード21−aは、ラップトップコンピュータのようなモバイルクライアント
などのリモートコンピュータシステムである。ノード21−aは、部分的複製リ
モート・データベース23−a,ユーザ入力33−aに応答するアップデート・
マネージャ31−a、ドッキング・マネージャ25−a、マージ・マネージャ2
7−aを含む。オペレーションでは、アップデート・マネージャはユーザ入力3
3−aに応答して、ノード21=aのオペレータの指示どおりにリモート・デー
タベース23−aを変更する。アップデートは、ノードのアップデートログ35
−aに記録、あるいはジャーナルされる。
ある時点におけるノード21−aのオペレータの都合で、ノード・ドッキング
・マネージャ35−aが起動され、中央ドッキング・マネージャ5との通信に入
る。アップデート・ログ35−aをノード・ドッキング・マネージャ25−aが
入力として取り、中央ドッキング・マネージャ5に与える。中央ドッキング・マ
ネージャ5は受け取り済みノード・アップデート・ログ19を作り、これには、
アップデート・ログ35−aに記録されている情報がすべて入っている。オプシ
ョンで、部分ログ17−aを中央ドッキング・マネージャ5が入力として取り、
本書で詳しく説明するようにノード・ドッキング・マネージャ25−aに与える
。
ある時点における、中央コンピュータシステム1のオペレータの都合で、マー
ジ・プロセッサ7が起動される。マージ・プロセッサ7は受け取り済みノード・
アップデート・ログ19を入力として取り、そこに記述されたアップデートを中
央データベース3に適用する。受け取り済みノード・アップデート・ログ19か
らのアップデートの適用プロセスにおいて、マージ・プロセッサは中央アップデ
ート・ログ15に適用されたアップデートをジャーナルする。オプションで、ア
ップデート・マネージャ11は、ユーザ入力12に応答して、中央コンピュータ
システム1のオペレータの指示どおりに中央データベース3に追加変更を行う。
アップデート・マネージャ11によるアップデートはさらに中央アップデート・
ログ15にジャーナルされる。
ある時点における、中央コンピュータシステム1のオペレータの都合で、ログ
・マネージャ9が起動される。ログ・マネージャ9は中央アップデート・ログ1
5を入力として取り、ここで詳しく説明する可視度ルールに従って部分ログ17
−a、17−b、17−cのセットを出力として生成する。部分ログ17−a、
17−bおよび17−cのそれぞれは、ノード21−a、21−bおよび21−
cに対応する。ノード・ドッキング・マネージャ25−aのようなノード・ドッ
キング・マネージャが中央ドッキング・マネージャ5と通信に入り、オプション
で対応する部分ログの転送を要求すると、中央ドッキング・マネージャ5は入力
として部分ログ17−aなどの適当な部分ログを取り、これをノード・ドッキン
グ・マネージャ25−aに提示する。ノード・ドッキング・マネージャ25−a
は、マージ・ログ37−aとして部分ログ17−aを複製する。
将来のある時点における、ノード21−aのオペレータの都合で、マージ・プ
ロセッサ27−aが起動される。マージ・プロセッサ
27−aは、入力としてマージ・ログ37−aを取り、部分的複製データベース
23−aにそこに記述するアップデートを適用する。
ノード21−aに加えて、図1はまた2つの追加ノード21−bと21−cを
示す。ノード21−bは、中央コンピュータ1との通信で示される。ただし、ノ
ード21−aと異なり、ノード21−bのオペレータは自分のアップデートを中
央コンピュータシステム1に送ることのみ要求しており、自分の部分的複製デー
タベース23−bにどこかで行われた変更を与えられることは要求していない。
これは例えば、オペレータにできるだけ早く行わなければならない緊急のアップ
デートがあるが、他のノードからアップデートを受け取る時間がない場合などで
ある。従って、図1はノード・ドッキング・マネージャ25−bから中央ドッキ
ング・マネージャ5へのノード・アップデート・ログ35−aの転送のみ示し、
中央ドッキング・マネージャ5からノード・ドッキング・マネージャ25−bへ
の転送は示さない。従って、ノード21−bのマージ・マネージャは起動されず
、図示されない。
同様に、ノード21−cは、中央コンピュータシステム1と通信しない状態で
示される。従って、ノード21−cのドッキング・マネージャは起動されず、図
示されない。
上述のサイクルにより、ノード21−a、21−bおよび21−cそれぞれに
よるアップデートが中央コンピュータシステム1に与えられ、中央データベース
3をそのようにアップデートできる。さらにノード21−a、21−bおよび2
1−cによるアップデートのそれぞれと、中央コンピュータシステム1に対する
アップデートは、ノード21−a、21−bおよび21−cのそれぞれに戻され
、これによって部分的データベース23−a,23−bおよび23−cのそれぞ
れが互いと中央データベース3と同期させる。
データベース構造
中央データベース3とノード・データベース23−a,23−bおよび23−
cとの同期は、ドッキング・オブジェクトと呼ばれる構造を使って実行する。ド
ッキング・オブジェクトは、メンバ・テーブル(1つのプライマリ・テーブルを
含む)、可視度ルール、可視度イベント、関連するドッキング・オブジェクトか
ら構成される。各ドッキング・オブジェクトは可視度レベルと可視度レベルの属
性を持ち、これについては以下に詳しく説明する。本発明の追加的な態様では、
各メンバ・テーブルの行は、ドッキング・オブジェクトに対応する1以上の行を
持つことができる。
メンバ・テーブルは、ドッキング・オブジェクトを構成するリレーショナル・
データベースのテーブルである。ドッキング・オブジェクトが中央データベース
3からノード・データベース23−a、23−bまたは23−cに伝播する時、
その伝播は特定のドッキング・オブジェクトと関連するメンバ・テーブルのそれ
ぞれへの挿入の形を取る。同様に、ドッキング・オブジェクトがデータベースか
ら除去されるようスケジュールされると、その除去はドッキング・オブジェクト
に関連するメンバ・テーブルからの記録の削除によって構成される。例えば、販
売機会を表すドッキング・オブジェクトには、機会そのもの(例えば「S_OP
TY」という名前)、機会によって表される販売製品(例えば「S_OPTY_
PROD」という名前)、その機会の連絡先(例えば「S_OPTY_CONT
ACT」)等を表すテーブルを含むことができる。これらテーブルはそれぞれ「
機会ドッキング・オブジェクト」のメンバ・テーブルと言われる。
本発明の別の態様では、各メンバ・テーブルの行は、ドッキング・オブジェク
トに対応する1つ以上の行を持つことができる。
プライマリ・テーブルは、ドッキング・オブジェクトの特定のインスタンス(
instance)が特定のノードに見えるかどうかを制御するメンバ・テーブルである
。プライマリ・テーブルは、アップデート、削除または挿入されるプライマリ・
テーブルの行を特定するために使うプライマリ行ID値を有している。例えば、
「機会ドッキング・オブジェクト」は、プライマリ・テーブルとしてテーブルS
_OPTYを持つことができる。このテーブルの行ID、すなわち「S_OPT
Y.row_id」は、機会ドッキング・オブジェクトのプライマリ行IDであ
る。
各ドック・オブジェクトは、可視度ルールを使って分析される可視度レベルと
可視度レベル属性を持つ。有効値は「エンタープライズ(Enterprise)」,「リ
ミテッド(Limited)」,「プライベート(Private)」である。エンタープライズ
・ドック・オブジェクトのすべてのメンバ・テーブルの行は、あらゆるノードに
複製される。リミテッド・ドック・オブジェクトのメンバ・テーブルの行は、あ
らゆるノードに複製される。リミテッド・ドック・オブジェクトのメンバ・テー
ブルの行は、可視度チェックされ、その行に対する可視度を持つノードに送られ
る。
可視度ルールは、ドッキング・オブジェクトの特定のインスタンスが特定のノ
ード21に「可視」か否かを決定する基準である。ドッキング・オブジェクトが
特定のノードに可視なら、そのノードはドッキング・オブジェクトにデータのア
ップデートを受ける。可視度ルールには、RULE_TYPEのフィールドに応
じて2種類ある。「R」のRULE_TYPEを持つ可視度ルールは、SQLル
ールと呼ばれる。SQLルールには、SQLステートメントに指定する基準を満
たすデータがドッキング・オブジェクトに存在するか否か決定するために評価さ
れるストラクチャード・ケリー・ランゲ
ージ(SQL)ステートメントのセットが含まれる。仮にそうであれば、ドッキ
ング・オブジェクトはノードにとって可視である。「O」のRULE_TYPE
を持つ可視度ルールは、ドッキング・オブジェクト・ルールと呼ばれる。ドッキ
ング・オブジェクト・ルールは、可視度について照会する別のドッキング・オブ
ジェクトを指定する。指定のドッキング・オブジェクトが可視なら、それを指す
ドッキング・オブジェクトも可視である。
関連ドッキング・オブジェクトは、検討中のドッキング・オブジェクトが伝播
あるいは削除されるときに、伝播あるいは削除されるドッキング・オブジェクト
である。例えば、機会ドッキング・オブジェクトには、販売連絡先、組織、販売
する製品、機会の追求に必要な活動を表す関連ドッキング・オブジェクトがある
。機会ドッキング・オブジェクトが中央データベース3からノード・データベー
ス23の1つに伝播すると、関連ドッキング・オブジェクトも伝播される。
図2は、ドッキング・オブジェクトを構成する各種コンポーネントの関係を示
すデータベース・スキーマである。このスキーマは、メタ・データベース(meta-
database)で、データベースでアクセスしているデータを記述しない。というよ
り、このスキーマは、アクセスしているデータベースの構造を定義する別個のデ
ータベースである。すなわち、他のデータベースの関係とデータ・コンテキスト
を記述するデータベース構成テーブルである。
図2に示すテーブルはそれぞれ行列形式で示されるようなリレーショナル・デ
ータベースのテーブルである。多くの列はすべての図示テーブルに共通するフィ
ールドを表す。かかるフィールドには例えば、テーブルの特定の行を示すROW
_IDや、行を作成し、最後に修正した日付と時間を追跡するフィールド、行を
作成・修正し
たユーザの身元などが含まれる。さらに、各テーブルにはそのテーブル固有のフ
ィールドで、以下に詳細に説明するものを含む。
テーブルS_DOBJ61は、アプリケーションのドッキング・オブジェクト
を記述する。テーブルS_DOBJ61には、OBJ_NAMEおよびPRIM
ARY_TABLE_IDが含まれる。フィールドOBJ_NAMEは、記述す
るドッキング・オブジェクトの名前を定義する。フィールドPRIMARY_T
ABLE_IDを使って、このドッキング・オブジェクトに関連するプライマリ
・テーブルを識別する。
テーブルS_DOBJ_INST63は、テーブルS_DOBJ61で記述す
るドッキング・オブジェクトの特定のインスタンスが、特定のノードのデータベ
ースに存在するか否かを記述する。テーブルS_DOBJ_INST63は、フ
ィールドNODE_ID,DOBJ_IDおよびPR_TBL_ROW_IDを
含む。フィールドNODE_IDは、特定のノード・テーブル65を指す。フィ
ールドDOBJ_IDは、ドッキング・オブジェクトのインスタンスが適用され
るドッキング・オブジェクトを指す。フィールドPR_TBL_ROW_IDを
使って、ドッキング・オブジェクトのプライマリ・テーブルの特定の行を選択す
る。この値は、ドッキング・オブジェクトのインスタンスを識別する。
テーブルS_REL_DOBJ67は、テーブルS_DOBJ61で記述する
特定のドッキング・オブジェクトの関連ドッキング・オブジェクトを記述する。
テーブルS_REL_DOBJ67は、フィールドDOBJ_ID、REL_D
OBJ_IDおよびSQL_STATEMENTを含む。フィールドDOBJ_
IDは、特定の関連ドッキング・オブジェクトを所有するドッキング・オブジェ
クトを識別する。フィールドREL_DOBJ_IDは、DOBJ
_IDで識別されるドッキング・オブジェクトが所有する関連ドッキング・オブ
ジェクトを識別する。フィールドSQL_STATEMENTは、関連ドッキン
グ・オブジェクトのプライマリID値を取得するために実行できるSQLステー
トメントである。
テーブルS_DOBJ_TBL69は、テーブルS_DOBJ61で記述する
特定のドッキング・オブジェクトのメンバ・テーブルを記述する。テーブルS_
DOBJ_TBL69は、フィールドDOBJ_ID、TBL_IDおよびVI
S_EVENT_FLGを含む。フィールドDOBJ_IDは、行で記述するメ
ンバ・テーブルの入ったドッキング・オブジェクトを識別する。フィールドTB
L_IDは、行の記述するメンバ・テーブルであるデータベース中の特定のテー
ブルを識別する。フィールドVIS_EVENT_FLGは、このドッキング・
オブジェクトの変更が可視度イベントを生じるか否かを示すフラグである。「Y
」の値は、変更で可視度イベントが生じることを示し、「N」の値は、生じない
ことを示す。
テーブルS_DOBJ_VIS_RULE71には、特定のドッキング・オブ
ジェクトと関連する可視度ルールを含む。S_DOBJ_VIS_RULE71
には、フィールドDOBJ_ID,RULE_SEQUENCE,RULE_T
YPE,SQL_STATEMENTおよびCHECK_DOBJ_IDを含む
。フィールドDOBJ_IDは、特定の可視度ルールの関連するドッキング・オ
ブジェクトを識別する。フィールドRULE_SEQUENCEは、テーブルS
_DOBJ_VIS_RULE71の他の可視度ルールに関連するシーケンスを
示すシーケンス番号で、特定の可視度ルールを走らせなければならない。RUL
E_TYPEは、特定の可視度ルールがタイプ「R」で、SQL可視度ルールを
示すか、タイプ「O」で、ドッキング・オブジェクト可視度ルールを示すかを指
定する。
RULE_TYPEが「R」に等しい場合、フィールドCHECK_DOBJ
_IDは意味のあるものでなく、フィールドSQLSTATEMENTには、こ
のドッキング・オブジェクトと特定のノード21に関連するプライマリ・テーブ
ルのプライマリROW_IDを使って評価するSQLステートメントが入ってい
る。SQLステートメントが何らかの記録を戻すと、ドッキング・オブジェクト
はノード21にとって可視とみなされ、その可視度が決定される。
RULE_TYPEが「O」に等しい場合、フィールドCHECK_DOBJ
_IDとフィールドSQL_STATEMENTは両方とも意味のあるものであ
る。フィールドCHECK_DOBJIDは、可視度を決定しなければならない
ドッキング・オブジェクトを指定する。指定のドッキング・オブジェクトが可視
とみなされたら、その可視度ルールに関連するドッキング・オブジェクトも可視
である。フィールドSQL_STATEMENTには、実行されると,その可視
度ルールに関連するドッキング・オブジェクトのインスタンスに対応するCHE
CK_DOBJ_IDで識別するドッキング・オブジェクトの行IDを戻すSQ
Lステートメントを含む。
テーブルS_APP_TBL73は、特定のアプリケーションに用いるすべて
のテーブルを記述するアプリケーション・テーブルである。これは、ドッキング
・オブジェクトの各メンバ・テーブルは、テーブルS_DOBJ_TBL69に
よって、ドッキング・オブジェクトのプライマリ・テーブルはテーブルS_DO
BJによって指される。S_APP_TBL73は、テーブルS_APP_CO
L75を指すが、これは特定のアプリケーションのデータ列を記述
するアプリケーション列テーブルである。S_APP_TBL73は、プライマ
リ・キーを介して直接、および外部キー列テーブル81、ユーザ・キー列テーブ
ル83、列グループ・テーブル85などの手段を介して間接にテーブルS_AP
P_COL75を指す。アプリケーション・テーブル、アプリケーション列テー
ブル、外部キー列テーブル、ユーザ・キー列テーブル、列グループ・テーブルの
関係は当業者には周知であるのでこれ以上説明しない。
アップデート処理
図3は、ノードデータベース23−a,23−bまたは23−cなどのデータ
ベースをユーザ入力に対応してアップデートする際、アップデート・マネージャ
31−a,31−bまたは31−cなどのアップデート・マネージャ31が実行
するステップを示す。アップデート・マネージャ31の実行は、ステップ101
から始まる。ステップ103で、アップデート・マネージャ31はユーザ入力3
3からデータベース23のデータ変更を要求するコマンドの形で受取る。要求は
、テーブルの行の削除、テーブルへの行の追加、テーブルの特定の行の特定列の
セル値変更という要求の形になる。ステップ105では、周知の手段を使って、
アップデート・マネージャ31が要求されたアップデートをデータベース23に
適用する。ステップ107では、アップデート・マネージャ31はアップデート
を記述するログ記録を作り、アップデート・ログ35に書き込む。
ログ記録の内容は、行ったアップデートを記述する。各ログ記録は、アップデ
ートを作るノードのノード識別子、アップデートするテーブルの識別、行ってい
るアップデートのタイプの識別、すなわち、新しい行の挿入、既存の行の削除、
または既存の行のアップデートを示す。挿入では、ログ記録は追加的に、そのプ
ライマリ・キ
ーと行の他の列の値をはじめとする挿入する行の識別子を含む。削除では、ログ
記録は、削除する行のプライマリ・キーを識別する。アップデートでは、ログ記
録はアップデートする行のプライマリ・キー、アップデートする行内の列、アド
レス指定した行と列のセルの古い値、そのセルの新しい値を識別する。
ステップ107でログ記録を書きこんだ後、アップデート・プロセッサはこの
アップデートを終了する。アップデート処理の前述の説明には、本発明にとって
重要でない追加ステップ、例えば、ユーザがアップデートを行う認証を保障する
こと、ソフトウェアまたはハードウェアの故障の際にロールバック(rollback)
を許すためのデータベースへの書きこみのステージ(stage)及びコミット(com
mit)等をすることを含むことが望ましい。これらのステップは当業者には周知
であるので、これ以上説明しない。
中央コンピュータ・システム1で実行するアップデート・マネージャ11は類
似の方法で動作するが、中央データベース3をアップデートしてそのログ記録を
中央アップデート・ログ11に書きこむ点が異なる。
ドッキング処理
図4は、ドッキング・マネージャ25−a,25−bまたは25−cなどのド
ッキング・マネージャ25が、1つ以上のトランザクション・ログの転送および
/または受取りのために実行するステップを示す。ドッキング・マネージャ25
が、ノード21−a,21−bまたは21−cなどのリモートノードのユーザに
よって呼び出され、これによってユーザが中央コンピュータ1のノード・ドック
(dock)にアップデート・ログ35−aなどのアップデート・ログを中央コンピ
ュータ1にアップロードして、部分ログ17−aなど
の部分ログをダウンロードすること、あるいはその両方を要求する。ドッキング
・マネージャ25の実行はステップ121から始まる。ステップ123では、ド
ッキング・マネージャ25は中央コンピュータ1の制御下で中央ドッキング・マ
ネージャ5と接続する。この接続は、データ交換を可能にするあらゆる接続でよ
い。最も一般な接続形式は電話回線とモデムによるものと予想されるが、ローカ
ル・エリア・ネットワークまたはTCP/IP接続などの他の形式のデータ接続
も使用できる。ステップ125で、ユーザがノード・アップデート・ログ35−
aの中央コンピュータ1へのアップロードを要求したか否かをチェックする。し
ていたら、実行はステップ127に進む。していなかったら、ステップ127を
スキップして、制御はステップ129に与えられる。ステップ127では、ドッ
キング・マネージャ25はそのアップデート・ログを中央コンピュータ1にアッ
プロードする。アップロードは、XMODEM,ZMODEM,KERMIT,
FTP,ASCII転送などの周知のファイル転送手段、その他データ転送の他
の方法で行うことができる。ステップ129では、ドッキング・マネージャ25
はユーザが部分ログ17−aなどの部分ログの中央コンピュータ1からのダウン
ロードを要求したか否かをチェックする。していたら、実行はステップ131に
進む。していなかったら、ステップ131をスキップして、制御はステップ13
3に与えられる。ステップ131では、ドッキング・マネージャ25はその部分
ログを中央コンピュータ1からダウンロードする。ダウンロードは、XMODE
M,ZMODEM,KERMIT,FTP,ASCII転送などの周知のファイ
ル転送手段、その他データ転送の他の方法で行うことができる。ステップ133
で、要求されたデータ転送が完了すると、ドッキング・マネージャ25は終了す
る。
マージ(merge)処理
マージ処理は、ノード・マージ・プロセッサ27−a,27−bまたは27−
cまたは中央マージ・プロセッサ7などのプロセッサが実行する。マージ・プロ
セスは、マージ処理を実行しているコンピュータから離れたコンピュータのユー
ザが入力したトランザクションにその関連するデータベースをアップデートする
。マージ処理はアップデート処理と同じで、図3を参照して以前に開示したアッ
プデート処理と形式が似ているが、3つの違いがある。第1は、マージ・プロセ
ッサへの入力はユーザが直接入力するアップデートではなく、マージを実行する
コンピュータから離れたコンピュータから取得するログ・ファイルであることで
ある。第2の違いは、図1に示すように、マージ処理はノードで実行されたとき
にログを生成しない。ノードでのログの機能は、中央コンピュータシステム1と
、ひいては要求された他のノードへの伝播のトランザクションの記録である。ノ
ードでのマージ対象であるトランザクションは中央コンピュータシステム1には
通信されており、それを再通信する必要はない。
第3の違いは、マージ処理が複数の対立するトランザクションを検出・解決で
きなければならない点である。例えば、フィールドに「Keith Palme
r」という値が入っていたとする。さらに、ノード27−aのユーザがこのフィ
ールドを「Carl Lake」にアップデートするトランザクション、ノード
27−bのユーザが同じフィールドを「Greg Emerson」にアップデ
ートするトランザクションを入力したとする。衝突検出がないと、各種ノード間
のデータが崩壊する。ユーザ27−aのトランザクションをマージすると、フィ
ールドは「Keith Palmer」から「Carl Lake」にアップデ
ートされる。衝突処理がな
いと、ノード27−bのトランザクションがマージされると、フィールドは「G
reg Emerson」にアップデートされ、中央データベースはノード27
−aのデータベースと同期しなくなる。さらに、マージ処理をノード27−aと
27−bのそれぞれに実行すると、各ノードはそのデータベースを互いのトラン
ザクションでアップデートするため、少なくとも1つのノードが他方のノードお
よび中央データベースと同期しなくなる。
そのため、マージ処理は衝突の検出とその是正の手段も持たなければならない
。上記の例では、衝突を検出して是正する単純な方法は、データベースの値をノ
ード・データベースの前の値としてマージ・ログが反映する値と比較するもので
ある。2つの値が一致しなければマージ・プロセッサ7はそのトランザクション
を拒絶し、是正トランザクションを生成して対立するトランザクションを発した
ノードに送る。上記の例では、ノード27−bのトランザクションがマージ・プ
ロセッサ7に与えられた時、マージ・プロセッサ7は「Keith Palme
r」、ノード27−bが「Carl Lake」と記録したそのフィールドの前
の値、中央データベース3に記録されたフィールドの現在値とを比較する。不一
致を検出すると、マージ・プロセッサ7はトランザクションを生成して、値「G
reg Emerson」を「Carl Lake」に変更し、このトランザク
ションをアップデート・ログ15に書きこむ。
上記は、衝突の一例とその結果としての是正措置である。他のタイプの衝突に
は、例えば、前に削除した行へのアップデート、前に挿入した行の挿入などがあ
る。マージ処理では、これら衝突のそれぞれを検出・是正しなければならない。
これは、数多くの周知の方法を使って実行できるため、これ以上述べない。
図5は、中央マージ・プロセッサ7などのマージ・プロセッサが
実行するステップを示す。これはマージ・プロセッサ7が中央データベース3と
トランザクション・ログ15に書きこむところを示すが、ノード・マージ・プロ
セッサ27−a、27−bまたは27−cなどのノード・マージ・プロセッサが
ノード・データベース23−a,23−bまたは23−cをアップデートすると
ころも表している。マージ処理はステップ141から始まる。ステップ143で
、マージ・プロセッサ7は受け取ったログ19に第1の未処理トランザクション
を見つける。ステップ147で、マージ・プロセッサ7は受け取ったログ19か
らトランザクションを選択する。ステップ149で、マージ・プロセッサ149
はステップ147で選択したトランザクションに従ってデータベース3をアップ
デートしようとする。ステップ151で、マージ・プロセッサ7はステップ14
9のデータベースアップデートが衝突によって失敗したか否か判断する。失敗な
ら、マージ・プロセッサはステップ153に進み、是正トランザクションを生成
する。是正トランザクションの生成の後、マージ・プロセッサはステップ149
に戻り、再びデータベース3をアップデートしようとする。ステップ151で衝
突が検出されなければ、実行はステップ157に進む。ステップ157で、マー
ジ処理は中央コンピュータ1で実行しているか否かをチェックする。もしそうな
ら、ステップ155が実行され、トランザクションをログ15にジャーナルする
。いかなる場合も、ステップ157がノードまたはステップ155でマージ処理
が実行されていると判断する場合、実行はステップ159に進む。ステップ15
9は、ログ19から処理すべきトランザクションが残っていないかチェックする
。残っているなら、実行はステップ147から繰り返し、次のトランザクション
が選択される。残っていない場合、マージ処理はステップ161で終了する。
ログ管理
図6は、ログ・マネージャ9が部分トランザクションログ17−a,17−b
または17−cなどの部分トランザクション・ログを作成するために実行するス
テップを示す。図6に示す手順は、中央コンピュータシステム1とドックできる
各ノードについて実行される。ログ・マネージャ9は、ステップ171から実行
を始める。ステップ173で、ログ・マネージャ9は部分トランザクション・ロ
グを作成しているノードに第1の未処理トランザクションを発見する。ステップ
175で、ログ・マネージャ9は処理するトランザクションを選択する。ステッ
プ177で、ログ・マネージャ9は、選択したトランザクションが、処理を実行
するのと同じノードで発せられたか否かチェックする。もしそうなら、トランザ
クションをノードに戻す必要はなく、制御はステップ179に進む。ステップ1
79は、処理すべきトランザクションが残っていないかチェックする。残ってい
るなら、制御は再びステップ175に与えられる。残っていないなら、制御はス
テップ189に渡され、ここでこのノードが処理した最後のトランザクションが
記録され、ステップ191で終了する。トランザクションが、処理を実行してい
るノード以外のノードで発した場合、制御はステップ181に与えられる。ステ
ップ181は可視度計算機を呼び出して、選択したトランザクションが処理中の
ノードに可視か否かを決定する。可視度計算機ルーチンは以下に詳しく説明する
。ステップ183でログ・マネージャ9は可視度計算機がトランザクションが可
視と決定したかをチェックする。可視でない場合、制御はステップ179に渡さ
れ、上述のように実行される。トランザクションが可視の場合、制御はステップ
185に渡される。ステップ185はこのトランザクションの記録を、例えばノ
ード21−aの部分トランザクションログ17−aな
どの処理するノードの部分トランザクションログに書きこむ。ステップ187で
、ログ・マネージャ9はこのノードについて処理された最後のトランザクション
を記録してから、ステップ179に制御を渡し、そこで上述のように追加トラン
ザクションを選択するか終了するかを決定する。
可視度計算
図7は、ログ・マネージャ9のステップ181によって呼び出されたドッキン
グ・オブジェクトの可視度を計算するための可視度計算機のプロセスを説明する
フローチャートを示す。可視度計算機は、可視度を計算するノードのノードid
、可視度を計算するドッキング・オブジェクト、可視度idを計算するドッキン
グ・オブジェクトの行idで呼び出される。可視度計算機はこの情報と、図2に
示すスキーマに保存したメタ・データから取得した情報を使って、特定のドッキ
ング・オブジェクトの特定の行をアップデートする特定のトランザクションが、
特定のノードに可視か否かを決定する。
可視度計算機はステップ201から実行を始める。ステップ203で、可視度
計算機はトランザクションが可視でないというデフォルトの発見を行う。そのた
め、可視度計算機がトランザクションが可視であると判断しない限り、可視度な
しとの発見で終了する。ステップ205で、可視度計算機がドッキング・オブジ
ェクトと関連する第1の可視度ルールを選択する。これは、テーブルS_DOB
J_61が指す現在のドッキング・オブジェクトに関連するテーブルS_DOB
J_VIS_RULE71の発見によって行う。ステップ205で、可視度計算
機はフィールドRULE_SEQUENCEに最低値を持つテーブルS_DOB
J_VIS_RULE71の行を選択する。
ステップ207では、可視度計算機は「R」の値についてフィールドRULE
_TYPEをチェックする。「R」の値はルールがSQL可視度ルールであるこ
とを示す。もしそうなら、可視度計算機はステップ209に進む。ステップ20
9では、可視度計算機はフィールドSQL_STATEMENTからSQLステ
ートメントを取得し、これを実行する。このようなSQLステートメントの例は
次のようになる。
このSQLステートメントによって、アプリケーション・テーブルS_OPT
Y_EMPについての照会が行われる。この照会で2つの基準を満たすあらゆる
記録を選択する。第1に、選択した記録は、可視度を決定するドッキング・オブ
ジェクトのプライマリ行IDに等しい行idまたはキーのフィールドOPTY_
IDを持っていなければならない。第2に、選択した記録は、例えば、可視度を
決定するノードのノードidに等しい特定の従業員の識別子であるフィールドE
MP_IDを持っていなければならない。通常の言語では、このSQLステート
メントは、従業員を機会に一致させるテーブルで行が見つかり、その機会がアッ
プデートするものに等しく、機会を割り当てた従業員がノードのオペレータであ
る場合のみ記録を戻す。
これはわかりやすいように単純化した例である。より複雑なSQLステートメ
ントもあり得る。例えば、次のようなルールである。 このルールは、テーブルS_ACCT_POSTN(特定の顧客をその顧客を
担当する組織内の特定の地位に関連づける)とS_EMP_POSTN(どの従
業員が特定の地位に対応するかを関連づける)を照会する。条件「ap.POS
ITION_ID=ep.POSITION_ID」は、従業員対地位テーブル
の行と同じ地位を持つ顧客対地位テーブル中の行を発見しなけれなければならな
い。条件「ep.EMP_ID=:NodeId」はさらに、従業員対地位テー
ブル中で選択した行が、可視度を決定するノードのユーザのIDに等しい従業員
IDも持っていることを要求する。通常の言語における、この条件では、従業員
がアップデートしているドッキング・オブジェクトの顧客を担当する地位にある
場合に可視度が許される。
可視度評価に用いるSQLステートメントの条件の複雑さには特定の制限はな
い。SQLの特定の実現によっては制限が課されることがあり、リソースの検討
により複雑でないステートメントを使用することが望ましいことがあるが、この
ような制限は本発明固有のものではない。
ステップ211は、ステップ209でのSQL_STATEMENTの実行が
記録を戻したか否かを評価する。記録が戻されていれば、可視度をチェックして
いるノードが、処理しているドッキング・オブジェクトにとって可視度を持つこ
とを示す。従って、記録が戻されていれば、可視度計算機はステップ213に進
む。ステップ213では、トランザクションは可視とマークされる。可視度を決
定するためにそれ以上ルールを評価する必要がないため、可視度計算機はステッ
プ228に進む。ステップ228では、計算した可視度には、特定のノードの部
分的複製データベースにドッキング・オブジェクトを挿入したり削除したりする
必要があるかどうかを決定してデータベースを同期させる。これは例えば、ノー
ドが関連ドッキング・オブジェクトの変更のためにドッキング・オブジェクトに
対する可視度を持つと決定された場合に発生する。例えは、あるノードの所有者
が、特定の販売機会に関連する特定の活動に割り当てられた場合である。その結
果、ノードには販売機会を表すオブジェクトのコピーを提供しなければならない
。
図8は、データ可視度の変更に対応する部分的複製データベースの同期を実行
するステップを示す。実行はステップ241から始まる。ステップ243では、
可視度計算機はドッキング・オブジェクトについて計算したばかりの可視度を参
照する。ドッキング・オブジェクトが可視なら、実行はステップ245に進む。
ステップ245は、現在のノードについてドッキング・オブジェクトに行が存在
することをベリファイ(verify)するため、S_DOBJ_INSTテーブルを
参照する。行が存在する場合、問題のノードが参照したドッキング・オブジェク
トのコピーを既に持っていることを示し、ルーチンはステップ255に進んで終
了する。しかし、処理しているノードのドッキング・オブジェクトに行が存在し
ない場合、問題のノードにはその部分的複製データベースにドッキング・オブジ
ェクトのコピーがないことを示す。するとルーチンはステップ247に進み、ド
ッキング・オブジェクトをその部分的複製データベースに挿入するようノードに
指令するトランザクションが生成される。
ステップ243でドッキング・オブジェクトが可視でないと判断
した場合、実行はステップ249に進む。ステップ249はS_DOBJ_IN
STテーブルを参照し、現在のノードについてドッキング・オブジェクトに行が
存在しないことをベリファイする・ステップ243で、現在の行について現在の
ドッキング・オブジェクトのS_DOBJ_INSTテーブルに行が存在しない
と判断されると、これは問題のノードが参照したドッキング・オブジェクトのコ
ピーを持たないことを示し、ルーチンはステップ255に進んでここで終了する
。しかし、処理しているノードのドッキング・オブジェクトに行が存在する場合
、これは、問題のノードがその部分的複製データベースにドッキング・オブジェ
クトのコピーを持っていることを示す。するとルーチンはステップ251に進み
、ここでノードにその部分的複製データベースからドッキング・オブジェクトを
削除することを指令するトランザクションが生成される。
図7を再び参照すると、ステップ228のデータ同期ルーチンの後、可視度計
算機はステップ229に進んでそこで終了する。図6を参照すると、前に述べた
ように、結果として可視度の発見は、トランザクションの書きこみを決定するた
めに、ログ・マネージャがステップ183でチェックすることが可能である。
再び図7を参照すると、ステップ211で、SQLステートメントの実行によ
ってステップ209で記録が戻されなかったと決定された場合、実行はステップ
215に進む。ステップ215は、評価すべき可視度ルールが残っているか否か
をチェックする。残っていない場合、可視度計算機はステップ228に進んでデ
ータベースを同期させ、次にステップ229に進んで終了する。この場合、ステ
ップ203で設定した可視度なしのデフォルトマークは設定されたままになる。
この値は図6に示すようにステップ183でログ・マネージャも使って、トラン
ザクションを書きこまないことを決定す
る。
再び図7を参照すると、評価するルールが残っている場合、制御はステップ2
17に進み、次に処理するルールを選択する。すると制御は再びステップ207
に与えられ、新しいルールの処理を始める。
先行するテキストは、処理の記述またはSQL可視度ルール、即ち、「R」タ
イプの可視度ルールを提供した。ステップ207で、可視度ルールがタイプ「R
」でないと決定された場合、可視度ルールはタイプ「O」である。タイプ「O」
はドッキング・オブジェクトの可視度ルールを示す。このような場合、処理して
いるドッキング・オブジェクトは、可視である特定の関連ドッキング・オブジェ
クトに関連する場合、可視とみなされる。フィールドRULE_TYPEが「R
」に等しくない場合、実行はステップ221に進む。ステップ221で、可視度
を決定しなければならない関連ドッキング・オブジェクトを決定し、現在のドッ
キング・オブジェクトが可視であるか否かを決定する。関連ドッキング・オブジ
ェクトの識別子をテーブルS_DOBJ_VIS_RULE71のフィールドC
HECK_DOBJ_IDから取得する。ステップ223で、可視度計算機は、
関連ドッキング・オブジェクトのどの行を可視度について照会しなければならな
いかを決定する。これを決定するため、可視度計算機はフィールドSQL_ST
ATEMENTから所定のSQLステートメントを取得し、これを実行する。S
QLステートメントは、例えば可視度計算機を呼び出すドッキング・オブジェク
トに対応するドッキング・オブジェクトの1つ以上の行を選択する照会である。
例えば、ノードがその販売機会について作った販売見積りに対して可視度を持
っている場合、販売機会の記録が可視でなければなら
ないと示すことが望ましいと想定する。これは、次のSQLステートメントを使
って達成できる。
このSQLステートメントは、すべての販売見積りの入ったテーブルS_DO
C_QUOTEにアクセスする。WHEREクローズは、行の機会IDが可視度
を計算する機会の行IDに等しい場合、すべての行の取り出しを指定する。可視
度マネージャは、指定の行IDを取り出し、これによって可視度をチェックしな
ければならないS_DOC_QUOTEテーブルの行を識別する。
現在のドッキング・オブジェクトの可視度がその可視度に依存する関連ドッキ
ング・オブジェクトと、その関連ドッキング・オブジェクトの行IDを決定した
ら、可視度計算機はステップ225に進む。ステップ225では、可視度計算機
は繰り返し自分自身を呼び出して関連ドッキング・オブジェクトの可視度を決定
する。繰り返し呼び出された可視度計算機は、さらに繰り返し自分自身を呼び出
す機能を含み、ログ・マネージャ9から呼び出された可視度計算機と同じ方法で
動作する。繰り返し呼び出しが終了すると、それは関連ドッキング・オブジェク
トに対する可視度インジケータを戻し、制御はステップ227に進む。ステップ
227では、可視度計算機は関連するドッキング・オブジェクトが可視と決定さ
れたか否かを決定する。もしそうなら、可視度計算機はステップ213に進み、
元の現在のドッキング・オブジェクトを可視とマークしてから、ステップ228
に進み、データベースを同期してからステップ229で終了する。関連ドッキン
グ・オブジェクトが可視と決定されない場合、制御はステップ215に進んで他
に評価する可視度ルールが残っているか否かを決定する。
そのため、可視度計算機は、ログ・マネージャと共に、どのようなアップデー
ト・トランザクション・データのサブセットが特定のノードに送られることが要
求されているかを決定することができる。このオペレーションは、中央コンピュ
ータ1から部分的複製データベースを用いるノード21−a,21−bおよび2
1−cなどの各種ノードへの不要なデータの転送を減らし、保存に必要なディス
クスペースや処理に必要なCPU時間など、各リモートノードの完全複製データ
ベースを保持するのに必要だったであろうシステム・リソースを削減する働きを
する。
ログ・マネージャ9のここで説明された可視度計算機とのオペレーションは、
説明と図面を参照すれば明らかとなるであろう。しかしながら、これら機能の説
明をさらに補助するために、これら機能の擬似コード表現を付属物として添付す
る。
バッチ可視度計算
可視度イベントの計算と可視度トランザクションのルーティング(routing)
は、連続する行毎オペレーションの実行ではなく、関連SQLステートメントの
バッチング(batching)によって最適化できる。この最適化は、セット処理を使
ってネットワーク・トラフィックを減らし、リダンダント(redundant)なオペ
レーションを取り除くことで達成する。リダンダントな作業は、可視度の計算に
用いるキー・データをトランザクション・ログにデノーマライジング(denormali
zing)することで取り除く。例えば、ログ・マネージャ、ドッキング・オブジェ
クト、プライマリ・テーブルid,可視度イベントフラグ、関連データをトラン
ザクション・ログ・テーブルに保存する。このデータを各モバイル・クライアン
ト毎に1回計算する代りに、ログ・マネージャが使用するすべてのモバイル・ク
ライア
ントについて1回このデータを計算する。ログ・マネージャは、SQLステート
メントを提出してセット処理を用い、各トランザクションについてSQLステー
トメントを提出する代わりに数千のトランザクションの可視度を同時にチェック
する。ネットワーク・トラフィックは、データベース・サーバからドッキング・
サーバに可視のトランザクションのみ取り出すことで削減する。その結果、デー
タベース・サーバからドッキング・サーバへは、ネットワーク上を非常に少ない
データしか移動しない。
図9は、バッチ可視度チェックのサポートに用いるトランザクション・ログ・
テーブル300のデータベース設計の構造を示す。ノード・テーブル301はデ
ータベースの中央テーブルで、ドック・オブジェクト・インスタンス・テーブル
302、ドック状態テーブル304、トランザクション・テーブル306への1
対多ポインターを含む。
ドッキング・オブジェクト・インスタンス・テーブル302には、ドッキング
・オブジェクト・インスタンスがモバイル・クライアントに可視か及び、モバイ
ル・クライアントにダウンロードされているか否かを保存する。ドッキング・オ
ブジェクト・インスタンス・テーブル302には、ドッキング・オブジェクト・
インスタンスがモバイル・クライアントにとって完全に可視か部分的に可視であ
る場合に、行が存在する。ドッキング・オブジェクトが可視でない場合、そのド
ッキング・オブジェクト・インスタンスの行はドッキング・オブジェクト・イン
スタンス・テーブル302には現れない。ドッキング・オブジェクト・インスタ
ンス・テーブル302(S_DOBJ_INST)は、バッチ可視度チェックを
サポートする次のフィールドから構成される。
NODE_ID:このドッキング・オブジェクト・インスタンス
が関連するノードの非ゼロユーザ・キー。
DOBJ_ID:このドッキング・オブジェクト・インスタンスが関連するド
ッキング・オブジェクトの非ゼロユーザ・キー。
PR_TBL_ROW_ID:ドッキング・オブジェクト内のプライマリ・テ
ーブルの行IDの入った非ゼロユーザ・キー。この値は、ドッキング・オブジェ
クト・インスタンスを識別する。
STAT_Flag:値「F」または「P」の入った1バイトフラグ。値「F
」はドッキング・オブジェクト・インスタンスが完全に可視であることを示す。
値「P」は、ドッキング・オブジェクト・インスタンスが部分的に可視であるこ
とを示す。
LAST_CHK_TXN_ID:ドック・オブジェクト・インスタンスの可
視度を最後にチェックしたトランザクションのトランザクションID。この値を
使って、ドック・オブジェクト・インスタンスを再計算しなければならない時を
判断できる。例えば、LAST_CHK_TXN_ID=3000の場合、ログ
・マネージャはトランザクションID3000以降に可視度イベントが発生する
まで、ドック・オブジェクト・インスタンスの可視度を再計算してはならない。
ドック状態テーブル304は、各モバイル・クライアントに関連する状態情報
を保存する。これは、最後にマージしたファイル、最後に抽出したファイル、最
後に抽出したトランザクションのアイデンティティが含まれる。ドック状態テー
ブル304(S_DCKSTAT)は、バッチ可視度チェックをサポートする次
のフィールドから構成される。
ROW_ID:プライマリ・キー。
NODE_ID:この状態情報を所有するモバイル・クライアントのアイデン
ティティ。
TYPE:このフィールドを使って、VALフィールドを解釈し、ストリング
「EXTRACT_RECORD」、「LOG_EXTRACT」、「MERG
E_RECORD」、「LAST_MERGE」、または「SESSION」の
1つが入る。
VAL:このフィールドには、TYPEフィールドのデータタイプに対応する
値が入る。
さらに、このテーブルは、ログ・プリプロセッサと呼ばれる実行可能プログラ
ムが処理する最後のトランザクションを記録する。これは、VALフィールドで
ゼロのROW_IDおよび「EXTRACT_RECORD」のTYPEを持つ
行について示される。
トランザクション・テーブル306は、すべてのモバイル・クライアントにル
ート(route)される必要のあるトランザクションを保存する。トランザクション
・テーブル306(S_DCK_TXN_LOG)は、バッチ可視度チェックを
サポートする次のフィールドから構成される。
TXN_ID:トランザクションを識別する非ゼロのプライマリ・キー。
DOBJ_ID:このドッキング・オブジェクト・インスタンスが関連するド
ッキング・オブジェクトの非ゼロユーザ・キー。
PR_TBL_ROW_ID:ドッキング・オブジェクトのプライマリ・テー
ブルの行IDの入った非ゼロユーザ・キー。この値は、ドッキング・オブジェク
ト・インスタンスを識別する。
VIS_EVT_FLG:このフィールドには、値「Y」または「N」を含み
、トランザクションが可視度イベントを生じるか否かを示す。
VIS_LEVEL_FLG:このフィールドは、ドック・オブジェクトの可
視度レベルを示す。値「L」はドック・オブジェクト
が制限された可視度を有することを示す。値「P」は、ドック・オブジェクトが
プライベートであることを示す。値「E」このオブジェクトがエンタープライズ
可視度であることを示す。
バッチ可視度チェックは、4つのフェーズにより実行される。簡単に言うと、
フェーズ1はトランザクション・ログ・テーブル300の各トランザクションに
ついて1回実行され、トランザクション・ログ・データを構成テーブルにデノー
マライズ(denormalize)する。フェーズ2は、1反復あたり1モバイル・クライ
アントに1回実行され、モバイル・クライアントの可視度イベントをチェックす
る。フェーズ3は、1反復あたり1モバイル・クライアントに1回実行され、モ
バイル・クライアントの可視トランザクションを抽出する。フェーズ4は、1反
復あたり1回実行され、トランザクション・ログ・テーブル300からトランザ
クションを削除する。4つのフェーズすべての詳細を以下に説明する。
本発明のある実施形態では、フェーズ1および4を、ログ・プリプロセッサと
呼ばれる1つの実行可能プログラムに組み合わせることができる。1つのログ・
プリプロセッサのみが、いかなる時でも1つのインストールに対して実行される
。1つのインストールに対して同時に1つ以上のプリプロセッサを実行できる。
フェーズ2および3を、ログ・ルータと呼ばれる1つの実行可能プログラムに組
み合わせることができる。1つ以上のログ・ルータを、1つのインストールに対
して同時に実行することができる。ログ・ルータ・プログラムは、セマフォを使
い、1つ以上のログ・ルータがトランザクションを同じモバイル・クライアント
に同時にルーティングするのを防ぐ。
フェーズ1は、トランザクション・ログ・テーブル300の各トランザクショ
ンについて1回実行され、構成テーブルにトランザク
ション・ログ・データをデノーマライズする。このフェーズは、トランザクショ
ン・ログ・データに基づき、S_DCK_TXN_LOGの値をデノーマライズ
する。以下の擬似コードはフェーズ1のオペレーションを詳細に記述する。 フェーズ2は、1反復あたり1モバイル・クライアントに1回実行され、モバ
イル・クライアントの可視度イベントをチェックする。このフェーズは、すべて
の可視度イベント・トランザクションを探し、可視度を再計算する。このフェー
ズは、可視度変更に応答してドッキング・オブジェクト・インスタンスをダウン
ロードし、取り除いて、ドッキング・オブジェクト・インスタンスの可視度をテ
ーブルS_DOBJ_INST63に保存する。以下の擬似コードは、フェーズ
2のオペレーションを詳細に記述する。
フェーズ3は、1反復あたり1モバイル・クライアントに1回実行され、その
モバイル・クライアントの可視トランザクションを抽出する。以下の擬似コード
は、フェーズ3のオペレーションを詳細に記述する。
フェーズ4は、1反復あたり1回実行され、トランザクション・ログ・テーブ
ル300から、置換されたトランザクション・テーブル306とセット・トラン
ザクションIDテーブル308を含む使
用されないトランザクションを削除する。以下の擬似コードは、フェーズ4のオ
ペレーションを詳細に記述する。
可視度キャッシング(caching)
最近の可視度イベントをキャッシュする能力を備えることによって、パフォー
マンスを改善できる。S_DOBJ_INSTテーブル63は、このような「可
視度キャッシュ」を提供するのに特に適している。「S_DOBJ_INST」
テーブル63にある特定のドッキング・オブジェクト・インスタンスの存在を使
って、ドッキング・オブジェクト・インスタンスがモバイル・クライアントに可
視であることを主張することができる。
可視度キャッシュは、2つの方法でパフォーマンスを改善する。第1に、可視
度を計算しなければならない回数を減らす。ログ・マネージャ9は、トランザク
ションが暗黙的(implicit)可視度イベントを生じないテーブルにある時(すな
わち、VISIBILITY_EVT_FLGをテーブルについてチェックしな
い)、ドッキング・オブジェクト・インスタンスの可視度を決定するために、メ
モリーのキャッシュを使用することができる。ログ・マネージャは
、トランザクションの可視度を決定するために可視度SQLステートメントを実
行させる必要がない。トランザクションが可視度イベントを生じるテーブルに影
響を与える場合、ログ・マネージャは可視度SQLステートメントを再実行させ
てそのトランザクションの可視度を決定しなければならないことに注意する。
第2に、可視度キャッシュは、可視度計算1回あたりに実行されるSQLステ
ートメントの数を減らす。ログ・マネージャは、チェック・ドッキング・オブジ
ェクトの可視度を決定するために、キャッシュを使用する。ログ・マネージャは
、トランザクションの可視度を決定するのに、各チェック・ドッキング・オブジ
ェクト・インスタンスで可視度ルールSQLステートメントを繰り返し動作させ
る必要がない。その代わり、ログ・マネージャ9はS_DOBJ INSTテー
ブル63に加わってチェック・ドッキング・オブジェクトの可視度を決定する。
前に述べたように、ログ・マネージャは2種類の可視度ルールを用いるが、こ
れはSQLルールとチェック・ドッキング・オブジェクト・ルールとしてまとめ
ることができる。SQLルールは、ドッキング・オブジェクト・インスタンスが
可視であるか否かを表現するSQLフラグメントである。機会ドッキング・オブ
ジェクトに関してSQLルールが指定する可視度条件の例は、「販売員が販売チ
ームにいる場合、機会が可視である」というものである。チェック・ドッキング
・オブジェクト・ルールは、他のドッキング・オブジェクトが可視の場合にドッ
キング・オブジェクト・インスタンスが可視であることを示す。チェック・ドッ
キング・オブジェクト・ルールの定義には、ログ・マネージャにドッキング・オ
ブジェクト・インスタンスのすべてのチェック・ドッキング・オブジェクトを得
る方法を教えるSQLフラグメントが入っている。機会ドッキング
・オブジェクトに関してチェック・ドッキング・オブジェクト・ルールが指定す
る可視度条件の例は、「販売員にとって可視の見積もりによって機会を用いる場
合、機会は可視である」というものである。
SQLルールは実行リソースが比較的安価である。対照的に、チェック・ドッ
キング・オブジェクト・ルールは、多くのリソースを消費するため、高価である
。チェック・ドッキング・オブジェクト・ルールを実行するため、ログ・マネー
ジャは、チェックしているドッキング・オブジェクトの可視度SQLステートメ
ントを繰り返し実行する。トランザクションの可視度の決定には、数百、あるい
は数千のSQLステートメントの実行が必要なことがある。あるオブジェクトに
は、8個から10個のチェック・ドッキング・オブジェクト・ルールがある。これ
らオブジェクトについてすべての可視度ルールSQLステートメントを実行する
には、各モバイル・クライアントについて0.25秒から数秒かかる。モバイル
・クライアントの数が増加すれば、望ましくないサービスの低下につながる。ロ
グ・マネージャはまた、S_DOBJ_INSTテーブルを使ってドッキング・
オブジェクト・インスタンス(例えば、特定の機会インスタンス)をモバイル・
クライアントにダウンロードしたか否かを追跡する。S_DOBJ_INSTテ
ーブルは、ログ・マネージャが既に以前にダウンロードしたドッキング・オブジ
ェクト・インスタンスをダウンロードしたり、既に以前に取り除いたドッキング
・オブジェクト・インスタンスを取り除いたりするのを防ぐ。
可視度キャッシュは、2つの方法で実現される。第1に、S_DOBJ_IN
STテーブルを、非可視度イベント・テーブルのトランザクションに用いる。ト
ランザクションの可視度をチェックする時、トランザクションが可視度イベント
を生じないテーブルにある
場合(S_DOBJ_TBL.VIS_EVT_FLG=‘N’)、次にS_D
OBJ_INSTテーブルを使ってドッキング・オブジェクト・インスタンスが
可視か否かを決定する。トランザクションのドッキング・オブジェクト・インス
タンスがS_DOBJ_INSTテーブルに存在する場合、トランザクションは
モバイル・クライアントに可視である。そうでない場合、トランザクションはモ
バイル・クライアントにとって可視でない。この利点は、ログ・マネージャが可
視度SQLルールやチェック・ドッキング・オブジェクト・ルールを実行して可
視度を決定する必要がない点である。
第2に、S_DOBJ_INSTテーブルを使って、チェック・ドッキング・
オブジェクトの可視度を決定する。チェック・ドッキング・オブジェクト・ルー
ルの大半は、チェック・ドッキング・オブジェクトをS_DOBJ_INSTテ
ーブルに結合するSQLルールに変換できる。チェック・ドッキング・オブジェ
クトがS_DOBJ_INSTテーブルに存在する場合、チェック・ドッキング
・オブジェクトはモバイル・クライアントにとって可視でなければならない。こ
の利点は、ログ・マネージャがせいぜ1つのSQLステートメントを実行してチ
ェック・ドッキング・オブジェクトの可視度を決定する点である。
以下の例は、可視度キャッシュの利点を示すものである。可視度キャッシュな
しに、顧客を表すドッキング・オブジェクトの可視度のチェックに用いるルール
セットは、以下の4つのルールで表現される。
顧客ドッキング・オブジェクトの可視度を可視度キャッシュなしにチェックす
るには、ログ・マネージャは以下のステップを実行して、上記可視度ルールに基
づくSQLステートメントを生成・実行する。 取り出した各機会について、可視度ルールSQLステートメント(SQLルー
ルとチェック・ドッキング・オブジェクト・ルール)を実行し、機会が可視か否
か決定する。これは多くのSQLステー
トメントであり得る。
取り出した各見積もりについて、可視度ルールSQLステートメント(SQL
ルールとチェック・ドッキング・オブジェクト・ルール)を実行し、見積もりが
可視か否か決定する。これは多くのSQLステートメントであり得る。
このプロセスが実行するSQLステートメントの総数は、1+(Opty C
heck Objs*Opty vis rules)+(Quote Che
ck Objs*Quote vis rules)で計算できる。これは、取
り出した機会および見積もりオブジェクトの数により、1つのステートメントか
ら数百のステートメントまでさまざまである。
可視度キャッシュがある場合、顧客を表すドッキング・オブジェクトの可視度
をチェックするために用いるルールセットは、以下の4つのルールで表現される
。2つのSQLルール1および2は変更がない。2つのチェック・ドック・オブ
ジェクト・ルールが、SDOBJ_INSTテーブルを問い合わせるSQLルー
ルに置き換わる。
可視度キャッシュを使って顧客ドッキング・オブジェクトの可視度をチェック
するには、ログ・マネージャは4つのSQLルールから導き出した1つのSQL
ステートメントを生成・実行する。ログ・マネージャは4つのSQLルールのす
べてを共にORして、次のような1つのSQLルールを取得する。
この1つのSQLステートメントは、可視度キャッシュなしでは必要だった数
百に上る可能性のあるSQLステートメントと同じ結果を達成する。
SQLステートメントは非常に大きくなることがあるので、ログ
・マネージャが共にORするSQLルールの数に制限を設けることが望ましい。
この制限は、特定の構成に関するカスタマイズを容易にするパラメータ駆動であ
ることが望ましい。ある実現においては、SQLステートメントのテーブル数を
約16に制限すると便利である。
以下のSQLフラグメントはそれぞれ、S_DOBJ_INSTテーブルに結
合するメカニズムを提供する。特定の実現に最良のフラグメントは、その実現の
パフォーマンス特性によって変化する。
以下の擬似コードは、可視度キャッシュを使った可視度チェックエンジンのア
ルゴリズムを示す。このアルゴリズムは、Check TxnVisibili
ty,CheckObjectVisib
ility,CheckSqlRuleおよびCheckOtherRuleと
表される4つルーチンとして文書化される。
可視度の程度
ドッキング・プロセスは、非バイナリー条件としてオブジェクト可視度を取り
扱うことによりさらに強化される。すなわち、あるコンテキストで可視で他で可
視でないよう、オブジェクトに可視度の程度を持たせることである。これは、可
視度強度に各ドック・オブジェクト可視度ルールを関連させることによって提供
されることができる。可視度強度は、あるドック・オブジェクト・インスタンス
がどのように可視であるかを記述する正の整数である。
可視度強度は、完全および部分的に可視のドック・オブジェクト・インスタン
スのコンセプトの代替となる。可視度を完全または部分的のいずれかとして指定
するのではなく、可視度強度によって、あるオブジェクトの可視度に制限されな
い範囲を与える。
可視度ルールがパスしたら、ドック・オブジェクト・インスタンスはその可視
度ルールに関連する可視度強度を受け取る。この可視度強度は、2つの側面を制
御する。
可視度強度が制御する第1の側面は、メンバ・テーブル行のダウンロードまた
は除去である。各メンバ・テーブルも可視度強度を持っている。ドッキングは、
ドック・オブジェクト・インスタンスの可視度強度がメンバ・テーブルの可視度
強度より大きいかこれと等しい場合にのみ、メンバ・テーブル行をダウンロード
(あるいは除去)する。この側面を使って、ドッキング・クライアントに複製さ
れるメンバ・テーブル行の数を制限することができる。例えば、顧客が見積もり
によって可視である場合、ドッキングは顧客ヘッダをダウンロードしなければな
らないが、顧客ノート、顧客地位、その他メンバ・テーブルの行をダウンロード
する必要はない。ログ・マネージャのダウンロードおよび除去処理は、ログ・マ
ネージャが一定のメンバ・テーブルのダウンロードおよび除去をスキップできる
ため向上する。さらに、ドッキングがドッキング・クライアントに複製する行が
少なくなり、ドッキング・クライアントが占有するディスク・スペースが少なく
なる。
可視度強度が制御する第2の側面は、関連するドック・オブジェクト・インス
タンスのダウンロードまたは除去である。各関連ドック・オブジェクト・ルール
にも可視度強度がある。ドック・オブジェクト・インスタンスが可視の場合、ド
ッキングは、ドック・オブジェクト・インスタンスの可視度強度が関連するドッ
ク・オブジェクト・ルールの可視度強度より大きいかこれと等しい場合にのみ、
関連するドック・オブジェクト・インスタンスをダウンロード(あるいは除去)
する。この側面を使って、ドック・オブジェクト・インスタンスが可視である理
由により、関連ドック・オブジェクトのサブセットをフォローすることができる
。これによって、ドッキングは、ドック・オブジェクト・インスタンスが部分的
に可視でも関連ドック・オブジェクトのサブセットをフォローすることができる
。
可視度強度は、レポジトリな(repository)ドック・オブジェクト・テーブル
、ドック・オブジェクト可視度ルール、ドック・オブジェクト関連ドック・オブ
ジェクト・ルールに新しい属性を追加することで実現する。これら新しい属性は
、メンバ・テーブル、可視度ルール、関連ドック・オブジェクト・ルールの可視
度強度を指定する。
各ドック・オブジェクト可視度ルールは可視度強度を持つ。可視度ルールがパ
スすると、ドック・オブジェクト・インスタンスの可視度強度は、パスしたすべ
ての可視度ルールの可視度強度の最高値に等しい。ドック・オブジェクト・イン
スタンス可視度強度は、どのメンバ・テーブル行をドッキング・クライアントに
複製し、どの
関連ドック・オブジェクト・ルールを実行するかを指定する。
チェック・ドック・オブジェクト可視度ルールも、チェック・ドック・オブジ
ェクト可視度強度を持つ。チェック・ドック・オブジェクト可視度強度値は、他
のドック・オブジェクト・インスタンスがチェック・ドック・オブジェクト可視
度強度値より大きいか等しい可視度強度を持つ場合のみ、現在のドック・オブジ
ェクト・インスタンスが可視であると指定する。
可視度強度は、ドック・オブジェクト・インスタンスの強度を指定する属性V
IS_STRENGTHで示す。この属性の意味は、現れるテーブルのコンテキ
ストによって変わるが、より詳しくここに述べる。VIS_STRENGTHは
次の値を持つことができる。
0:可視でない
5:部分的に可視
10:完全に可視
データベース・スキーマ中の多数のテーブルを、VIS_STRENGTH属
性をサポートするよう修正する。S_DOCK_TABLEテーブルは、あるド
ッキング・オブジェクトのメンバ・テーブルを保存する。各ドッキング・オブジ
ェクトは、1つ以上のメンバ・テーブルを持つことができる。テーブルは、追加
フィールド、VIS_STRENGTHを含む。VIS_STRENGTHは、
ダウンロードするこのテーブルの行について、ドック・オブジェクト・インスタ
ンスの最小可視度強度を含んだ数値フィールドである。このフィールドのデフォ
ルト値は5で、ドック・オブジェクト・インスタンスが部分的に可視の場合、メ
ンバ・テーブル行をダウンロードすることを示す。
S_DOCK_VIS_RULEテーブルは、あるドッキング・
オブジェクトの可視度ルールを保存する。各ドッキング・オブジェクトは1つ以
上の可視度ルールを持つことができる。テーブルは、追加フィールド、VIS_
STRENGTHを含む。VIS_STRENGTHは、ルールがパスした場合
、ドック・オブジェクト・インスタンスの可視度強度を含む数値フィールドであ
る。このフィールドのデフォルト値はPARTIAL=‘y’の場合、5で(部
分的に可視)、そうでない場合は10に設定される。S_DOCK_VIS_R
ULEテーブルには、CHECK_VIS_STRENGTHフィールドも含ま
れ、チェック・ドック・オブジェクト・ルール(すなわち、ルールタイプ=‘C
’のあるルール)に用いられる。この値は、この可視度ルールをパスさせるため
のチェック・ドック・オブジェクト・インスタンスの最小可視度強度を表す。こ
のフィールドのデフォルト値は10で、ルールタイプ=‘C’ではチェック・ド
ック・オブジェクトは完全に可視でなければならず、そうでない場合は使用せず
、0に設定される。
S_DOCK_REL_OBJテーブルには、あるドッキング・オブジェクト
の関連ドック・オブジェクト・ルールが保存される。各ドッキング・オブジェク
トには、1つ以上の関連ドック・オブジェクト・ルールを持つことができる。こ
のテーブルは、追加フィールド、VIS_STRENGTHを含む。VIS_S
TRENGTHは、ログ・マネージャがこのルールを実行するためのドック・オ
ブジェクト・インスタンスの最小可視度強度を含んだ数値フィールドである。デ
フォルト値は10で、完全な可視度を必要とする。S_DOCK_REL_OB
Jテーブルは、フィールドREL_VIS_STRENGTHをも含む。このフ
ィールドは、関連ドック・インスタンスに可視度強度値を与えるために使われる
値を含んでいる。このデフォルト値は5である。
S_DOCK_INSTテーブルは、S_DOBJ_INSTに代わる新しい
テーブルで、各ドッキング・クライアントのドック・オブジェクト・インスタン
スの現在の可視度強度を保存する。これは次のフィールドを持つ。NODE_I
Dは非ゼロのユニークなキーで、この行に対応するドッキング・クライアントを
示す。DOCK_IDは非ゼロのユニークなキーで、このドック・オブジェクト
・インスタンスに対応するドック・オブジェクトを示す。PR_TBL_ROW
_IDには、ドック・オブジェクト・インスタンスのプライマリ・テーブル行i
dであるキーが含まれる。VIS_STRENGTHは、ドッキング・クライア
ントのドック・オブジェクト・インスタンスの現在の可視度強度を含んだ数値フ
ィールドである。
以下のSQLコードを使って、次のようにS_DOCK_INSTテーブルを
定義することができる。
S_DCK_TXN_LOGテーブルは、ドッキング・クライアントにルーテ
ィングするトランザクションを保存する。このテーブルは、追加フィールド、V
IS_STRENGTHを含む。VIS STRENGTHは、トランザクショ
ンが参照するテーブルの可視度強度を含んだ数値フィールドである。この値は、
ログ・プリプロセッサがデノーマライズして、ログ・ルータ(Router)が使用す
る。次のSQLコードを使ってS_DCK_TXN_LOGテーブルを次のよう
に定義することができる。
ログ・マネージャ処理
ログ・マネージャは、ドック・オブジェクト・インスタンスの可視度強度が、
メンバ・テーブルの可視度強度より大きいか等しい場合のみドッキング・クライ
アントにトランザクションを送る。ログ・プリプロセッサは、トランザクション
・ログ・テーブルにデノーマライズした値としてメンバ・テーブル可視度強度を
保存する。
ログ・ルータが可視度イベントを処理すると、可視度ルールがパスするまで、
可視度強度の降順で可視度ルールが実行される。可視度ルールがパスすると、ド
ック・オブジェクト・インスタンスはパスする可視度ルールの可視度強度を受け
取る。可視度ルールが1つもパスしないと、ドック・オブジェクト・インスタン
スは、なしの可視度強度(値=0)を得る。可視度強度を計算した後、ドック・
オブジェクト・インスタンス可視度強度が0でなければ、ドック・オブジェクト
・インスタンスの可視度強度がS_DOCK_INSTテーブルに書きこまれる
。
ログ・ルータが可視のトランザクションを検索する時、S_DOCK_INS
Tテーブルがトランザクション・ログのデノーマライズしたメンバ・テーブルの
可視度強度より大きいか等しい可視度強度を持つ場合のみ、トランザクションが
フェッチされる。
ログ・マネージャはメンバ・テーブルの可視度強度属性を使って、ダウンロー
ドまたは除去するメンバ・テーブル行を識別する。ドック・オブジェクト・イン
スタンスの可視度強度が変化すると、ロ
グ・マネージャはそのドック・オブジェクト・インスタンスのメンバ・テーブル
行をダウンロードまたは除去する。新しい可視度強度が古い可視度強度より大き
い場合、参照したメンバ・テーブル行は以前にダウンロードされておらず、ここ
でダウンロードしなければならない。新しい可視度強度が古い可視度強度より小
さい場合、ログ・マネージャは、以前にダウンロードしたメンバ・テーブル行を
除去し、ここでダウンロードしてはならない。
関連ドック・オブジェクト・ルールを処理する場合、ログ・マネージャは各ル
ールの可視度強度の属性を使ってどの関連ドック・オブジェクト・ルールを実行
するか識別する。ドック・オブジェクトの可視度強度が変化せず、可視度強度が
なしでない場合、ログ・マネージャは関連ドック・オブジェクト・インスタンス
をチェックし、その可視度強度が変化していないことをベリファイする。ドック
・オブジェクト・インスタンスの可視度強度が変化すると、ログ・マネージャは
、すべての関連ドック・オブジェクト・インスタンスをチェックし、必要に応じ
て関連ドック・オブジェクト・インスタンスをダウンロードまたは除去する。新
しい可視度強度が古い可視度強度より大きい場合、ログ・マネージャは以前に実
行しておらず、ここで実行しなければならない関連ドック・オブジェクト・ルー
ルを実行する。新しい可視度強度が古い可視度強度より小さい場合、ログ・マネ
ージャは以前に実行して、ここで実行してはならない関連ドック・オブジェクト
・ルールを実行する。
ログ・マネージャは、各ルールのrelVisStrengthの属性を使っ
て可視度チェックを減らす。新しい可視度強度が古い可視度強度より大きいか等
しい場合で、ログ・マネージャが関連ドック・オブジェクト・インスタンスを発
見し、関連ドック・オブジェクトのrelVisStrengthが他のドック
・オブジェク
トの最大可視度ルールvisStrengthより大きいか等しい場合、ログ・
マネージャは他のドック・オブジェクト・インスタンスの可視度を再チェックす
る必要はない。関連ドック・オブジェクト・インスタンスvisStrengt
hを関連ドック・オブジェクトのrelVisStrengthに設定する。
単純化されたドッキング可視度ルール
本発明のユーティリティは、ドッキング可視度ルールを単純化することでより
便利になる。特に、ドッキング可視度ルールを1つの場所、中央ディクショナリ
に保存して、ログ・マネージャがトランザクションを抽出してモバイル・クライ
アントにルートするのに同じ定義に依存するようにできる。地位依存性、従業員
依存性、チェック・ドック・オブジェクト・ルールなどの共通して必要な可視度
タスクをサポートするために前もって定義されたドッキング可視度ルールも提供
されることができる。このアプローチにはいくつかの利点がある。
第1に、すべてのドッキング可視度ルールを中央ディクショナリに保存するこ
とで、ログ・マネージャは同じ定義を使ってモバイル・クライアントにトランザ
クションをルートし、ドッキング可視度ルールを保持するコストを減らすことが
できる。これによって異なる各データベース・ベンダー(SybaseTM,Or
acleTMまたはInformixTM等)について、SQLスクリプトを保持す
る必要もなくなる。第2に、ベンダー供給アプリケーションが広く用いる前もっ
て定義された可視度ルールを定義できる。これらルールによって、SQLフラグ
メントの入力や関連ドッキング・オブジェクト・ルールの定義が不要になる。代
表的なアプリケーションのすべての可視度ルールの90%は、所定の可視度ルー
ルを用いるこ
とができる。第3に、中央ディクショナリによって、顧客がドッキング・オブジ
ェクト・リスト・ビューを使ってドッキング可視度ルールを簡単にカスタマイズ
してサイト固有の要件を満たすことができる。顧客はまた、可視度ルールの属性
を変更することで、可視度ルールを簡単に起動または非起動にすることもできる
。単純化された可視度ルールによって、エンドユーザなどのクライアントは、使
いやすいグラフィカル・ユーザ・インターフェイスを使って可視度ルールを変更
することができる。これにより、小セットの顧客専用の可視度ルールを非アクテ
ィブなルールと定義し、その顧客に専用ルールを起動させることで、過半数の顧
客にとってパフォーマンスが改善する。専用ルールを使わない顧客には専用ルー
ルのパフォーマンス・コストがかからない。第4に、統一された場所にすべての
ドッキング可視度ルールを保存することで、将来のドッキング強化構築が容易に
なる。
単純化ドッキング・ルールは次のように実現する。5種類の新しい可視度ルー
ルを定義し、中央ディクショナリに保存する。
1)チェック・ドック・オブジェクト・ルールは2つのドッキング・オブジェ
クト・インスタンスをSQLフラグメントを使用せずに互いと関連させる。チェ
ック・ドック・オブジェクト・ルールはSQLルールに似ているが、2つのドッ
キング・オブジェクト間のチェック・ドック・オブジェクトの定義をSQLフラ
グメントの代わりに保存する点が異なる。例えば、完全に可視のアクティビティ
が機会を使う場合、機会は可視である。
2)地位ルールは、ドッキング・クライアントの従業員がそのドッキング・オ
ブジェクトの地位を占めていれば、ドッキング・オブジェクト・インスタンスが
可視であると指定する。例
えば、ドッキング・クライアントの従業員が機会販売チーム・メンバなら、機会
は可視である。
3)地位マネージャ・ルールは、ドッキング・クライアントの従業員がそのド
ッキング・オブジェクトの地位を占める従業員のマネージャならドッキング・オ
ブジェクト・インスタンスが可視であると指定する。例えば、ドッキング・クラ
イアントの従業員が機会販売チーム・メンバのマネージャである場合、機会は可
視である。
4)従業員ルールは、ドッキング・クライアントの従業員がドッキング・オブ
ジェクトに割り当てられる場合、ドッキング・オブジェクト・インスタンスが可
視と指定する。例えば、ドッキング・クライアントの従業員がアクティビティに
割り当てられる場合、アクティビティは可視である。従業員ルールは一般に所有
者、作成者などについて用いる。
5)従業員マネージャ・ルールは、ドッキング・クライアントの従業員がドッ
キング・オブジェクトに割り当てられた従業員のマネージャである場合にドッキ
ング・オブジェクト・インスタンスが可視と指定する。例えば、ドッキング・ク
ライアントの従業員がアクティビティに割り当てられた従業員のマネージャであ
る場合、アクティビティは可視である。従業員マネージャ・ルールは、一般に所
有者のマネージャ、作成者のマネージャなどに用いられる。
ログ・マネージャでは、可視度SQLステートメントは実行時間中に中央ディ
クショナリから生成する。コードを可視度チェッカー共通APIに追加して、新
しい可視度ルールタイプのSQLステートメントを生成・実行する。ログ・マネ
ージャの可視度イベント・コードを修正して、新しいタイプの可視度ルールを使
い、関連ドッ
キング・オブジェクト・インスタンスを見つける。
図10は、中央ディクショナリのデータベース図を示す。この図は、図2のス
キーマに似ているが、S_DOCK_VIS_RULEテーブルに以下のように
追加サポートが追加される。
S_DOCK_VIS_RULEテーブルは、特定のドッキング・オブジェク
トに関連する可視度ルールを含む。S_DOCK_VIS_RULE71は、D
OCK_ID,SEQUENCE,TYPE,ACTIVEおよびPARTIA
Lの追加フィールドを含む。フィールドDOCK_IDは、特定の可視度ルール
が関連し、「現在のドッキング・オブジェクト」と呼ばれるドッキング・オブジ
ェクトを識別する。フィールドSEQUENCEは、テーブルの他の可視度ルー
ルに対して、特定の可視度ルールを実行しなければならないシーケンスを示すシ
ーケンス番号である。ACTIVEフィールドは、特定ルールがアクティブか否
かを示す。「Y」またはゼロの値は、ルールがアクティブであること、「N」の
値は非アクティブであることを示す。フィールドTYPEは、特定の可視度ルー
ルのタイプを指定する。「S」の値は、SQLルール、「O」の値はパラメータ
・ドック・オブジェクト・ルールを示す。「C」の値はチェック・ドック・オブ
ジェクト・ルールを示し、「P」の値は、地位ルールを示す。「Q」の値は地位
マネージャ・ルール、「E」は従業員ルール、「F」の値は従業員マネージャ・
ルールを示す。フィールドPARTIALは、「Y」に設定されている場合、可
視度ルールを満たす場合、現在のドッキング・オブジェクトが部分的に可視であ
ることを示す。「N」またはゼロに設定されている場合、可視度ルールを満たす
場合、現在のドッキング・オブジェクト・インスタンスは完全に可視であること
を示す。
さらに、S_DOCK_VIS_RULEテーブルは、ルールタ
イプによってその意味と有意性が決まる多数のフィールドを含む。
SQLルールは、SQL_STATEMENTとVIS_EVT_COLSフ
ィールドを用いる。このコンテキストで、SQL_STATEMENTフィール
ドは、行を戻す場合は、ドック・オブジェクト・インスタンスが可視であること
を示すSQLフラグメントである。
パラメータ・ドック・オブジェクト・ルールは、フィールドCHECK_DO
CK_IDとSQL_STATEMENTを使う。このコンテキストで、CHE
CK_DOCK_IDは、別のドッキング・オブジェクトへのポインターを含み
、SQL_STATEMENTは、他のドック・オブジェクトのプライマリID
値を取得するSQLステートメントを含む。取り出した各プライマリIDについ
て、ログ・マネージャは他のドック・オブジェクトの可視度ルールを動作させる
。
チェック・ドック・オブジェクト・ルールは、フィールドCHECK_DOC
K_ID,SRC_COLUMN_IDおよびTAR_COLUMN_IDを用
いる。このコンテキストで、SRC_COLUMN_IDは、チェック・ドック
・オブジェクトに結合する現在のドック・オブジェクトの列を識別し、TAR_
COLUMN_IDは、ドック・オブジェクト結合列に結合するチェック・ドッ
ク・オブジェクトの列を識別する。チェック・ドック・オブジェクト・タイプに
ついては、可視度イベント列は暗黙なもので、現在のドック・オブジェクトのプ
ライマリ・テーブルからドック・オブジェクト結合列に結合する必要のあるすべ
ての列である。
地位ルールは、S_POSTNテーブルを指す現在のドック・オブジェクトの
テーブルのメンバの列であるフィールドPOSTNCOLUMN_IDを使う。
地位ルールについては、可視度イベン
ト列は暗黙なもので、現在のドック・オブジェクトのプライマリ・テーブルから
地位列に結合する必要のあるすべての列である。
地位マネージャ・ルールは、S_POSTNテーブルを指す現在のドック・オ
ブジェクトのテーブルのメンバの列であるフィールドPOSTN_COLUMN
_IDを使う。地位マネージャ・ルールについては、可視度イベント列は暗黙な
もので、現在のドック・オブジェクトのプライマリ・テーブルから地位列に結合
する必要のあるすべての列である。
従業員ルールは、S_EMPLOYEEテーブルを指す現在のドック・オブジ
ェクトのメンバ・テーブルの列を識別するフィールドEMP_COLUMN_I
Dを使う。従業員ルールについては、可視度イベント列は暗示で、現在のドック
・オブジェクトのプライマリ・テーブルから従業員列に結合する必要のあるすべ
ての列である。
従業員マネージャ・ルールは、S_POSTNテーブルを指す現在のドック・
オブジェクトのメンバ・テーブルの列を識別するフィールドEMP_COLUM
N_IDを使う。従業員マネージャ・ルールについては、可視度イベント列は暗
黙なもので、現在のドック・オブジェクトのプライマリ・テーブルから従業員列
に結合する必要のあるすべての列である。
SQLステートメントは、中央ディクショナリ・メモリー構造に保存し、ログ
・マネージャがアクセスできるようにする。ディクショナリをロードすると、S
QLステートメントを生成し、メモリー構造に保存する。SQLステートメント
の数が小さいため、生成コードは1秒かからないと予想される。あるいは、生成
に時間がかかりすぎる場合、ディクショナリAPIを修正して、ドック・オブジ
ェクトが最初に参照された時は常に、あるドック・オブジェクトの
SQLステートメントを生成することができる。
付属物Bに、ログ・マネージャが実行時間中に生成するフォーマットSQLス
テートメントを記述し、顧客ドック・オブジェクトを使ったこれらSQLステー
トメントの例を示す。
結論
これら実施例の各種修正は当業者にとって明白であり、ここに定義する総括的
な原則は、発明的能力を利用せずに他の実施例に適用できる。そのため、本発明
は、ここに示す実施例に限定するものではなく、ここに開示される原則と新規な
特徴と一貫した最も広い思想に一致する。
本明細書で述べたすべての刊行物および特許出願は、各刊行物または特許出願
を参照として組み込んだ、特定且つ個々に示されたと同程度に、参照としてここ
に組み込まれる。
ここで本発明を完全に記述したが、当業者にとって、そこから離れることなく
多くの変更および修正が可能なことは明白である。
付属物A
与えられたラップトップ・ノードのユーザ・トランザクション・ログ・ファイル
の書き方
このプログラムは、すべてのラップトップ・ノードのトランザクション・ログ
・エントリーを処理するサーバ側プロセスにより呼び出される。各ラップトップ
・ノードについて、呼び出しはUserTrxnLogFileNameを構築
しプログラム1を呼び出す。
入力パラメータ
・LaptopNodeId−宛先ラップトップのnodeid・UserTx
nLogFileName−txnを書き込むファイルのフルパス
・MaxBatchTxns−S_DOCK_STATUSテーブルへのコミッ
トとアップデートの間のtxnの数
・MaxTxns−このセッションで処理するtxnの数。このパラメータを使
って処理を制限する。
メイン・アルゴリズム 可視度ルーティングのチェック
プライマリIDを獲得するためのSQLステートメントの生成
可視度イベントの処理
付属物B:SQLステートメントと例
トップレベルSQLステートメント
このセクションでは、ログ・マネージャが実行時間中に生成するフォーマット
SQLステートメントを説明する。顧客ドック・オブジェクトを使ったこれらS
QLステートメントの例については次のセクションを参照。
ログ・マネージャ可視度SQLステートメント
ログ・マネージャは、ドック・オブジェクト・インスタンスの可視度をチェッ
クする時、可視度SQLステートメントを生成する。
ログ・マネージャは、各可視度ルールについて<サブSQLステートメント>を
生成するが、その構造は可視度ルールタイプで決まる(以下のサブSQLステー
トメント参照)。
ログ・マネージャ関連ドック・オブジェクトSQLステートメント
ログ・マネージャは、ドック・オブジェクト・インスタンスの可視度が変更さ
れた後、関連ドック・オブジェクトSQLステートメントを生成する。ログ・マ
ネージャは各可視度ルールについて1つ以上の<サブSQLステートメント>を
生成するが、その構造は可視度ルールタイプで決まる(以下のサブSQLステー
トメント参照)。
SQLルールのサブステートメント
ログ・マネージャ可視度SQLステートメント
ログ・マネージャ関連ドック・オブジェクトSQLステートメント
ユーザは関連ドック・オブジェクトSQLステートメントを入力。
ドック・オブジェクト・ルールをチェックするためのサブステートメント
ログ・マネージャ可視度SQLステートメント 3.ログ・マネージャ関連ドック・オブジェクトSQLステートメント
地位ルールのためのサブステートメント
ログ・マネージャ可視度SQLステートメント ログ・マネージャ関連ドック・オブジェクトSQLステートメント
地位マネージャ・ルールのためのサブステートメント
ログ・マネージャ可視度SQLステートメント
ログ・マネージャ関連ドック・オブジェクトSQLステートメント 従業員ルールのためのサブステートメント
ログ・マネージャ可視度SQLステートメントログ・マネージャ関連ドック・オブジェクトSQLステートメント
従業員マネージャ・ルールのためのサブステートメント
ログ・マネージャ可視度SQLステートメントログ・マネージャ関連ドック・オブジェクトSQLステートメント
【手続補正書】
【提出日】平成11年12月27日(1999.12.27)
【補正内容】
請求の範囲
1.(i)中央データベース(3)と、
(ii)別個の部分的複製データベース(23a,23b,23c)とを含み、前
記別個の部分的複製データベース(23a,23b,23c)は別個のノード(
33a,33b,33c)を有するデータベースの管理方法において、
(a)伝播しているデータに対する部分的複製データベース(23a,23b
,23c)のノード(33a,33b,33c)の可視度を決定し、
(b)部分的複製データベース(23a,23b,23c)のノード(33a
,33b,33c)がデータに対する可視度を持つ場合のみ、前記データを部分
的複製データベース(23a,23b,23c)に伝播する、
ステップを有するデータベースの管理方法。
2.アップデートしていないが、アップデートしている部分的複製データベー
ス(23a,23b,23c)に関連する部分的複製データベース(23a,2
3b,23c)のノード(33a,33b,33c)の可視度を決定する請求項
1に記載のデータベース管理方法。
3.伝播しているデータに対する部分的複製データベース(23a,23b,
23c)のノード(33a,33b,33c)の可視度をキャッシュ・メモリー
に保存する請求項1又は2に記載のデータベース管理方法。
4.ノード(33a,33b,33c)が可視度ルールを変更できるよう可視
度ルールを中央ディクショナリに保存する請求項1〜3のいずれか一項に記載の
データベース管理方法。
5.伝播しているデータに対する部分的複製データベース(23a,23b,
23c)のノード(33a,33b,33c)の可視度を決定し、且つ部分的複
製データベース(23a,23b,23c)のノード(33a,33b,33c
)がデータに対する可視度を持つ場合のみ、前記データを部分的複製データベー
ス(23a,23b,23c)に伝播することによって、部分的複製データベー
ス(23a,23b,23c)を管理するためにそこに具体化されたコンピュー
タが使用可能なプログラム・コードを持つコンピュータが使用可能な媒体からな
る製造物。
6.(i)中央データベース(3)と、
(ii)別個の部分的複製データベース(23a,23b,23c)と有し、それ
ぞれが別個のノード(33a,33b,33c)を有するデータベースの管理シ
ステムにおいて、
(a)伝播しているデータに対する部分的複製データベース(23a,23b
,23c)のノード(33a,33b,33c)の可視度を決定し、
(b)部分的複製データベース(23a,23b,23c)のノード(33a
,33b,33c)がデータに対する可視度を持つ場合のみ、前記データを部分
的複製データベース(23a,23b,23c)に伝播する
構成を有するデータベースの管理システム。
7.アップデートしていないが、アップデートしている部分的複製データベー
ス(23a,23b,23c)に関連する部分的複製データベース(23a,2
3b,23c)のノード(33a,33b,33c)の可視度を決定するように
構成される請求項6に記載のシステム。
8.伝播しているデータに対する部分的複製データベース(23a,23b,
23c)のノード(33a,33b,33c)の可視度をキャッシュ・メモリー
に保存するように構成されている請求項6又は7に記載のシステム。
9.ノード(33a,33b,33c)が可視度ルールを変更できるよう可視
度ルールを中央ディクショナリに保存するように構成されている請求項6〜8の
いずれか一項に記載のシステム。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FI,FR,GB,GR,IE,IT,L
U,MC,NL,PT,SE),OA(BF,BJ,CF
,CG,CI,CM,GA,GN,ML,MR,NE,
SN,TD,TG),AP(GH,GM,KE,LS,M
W,SD,SZ,UG,ZW),EA(AM,AZ,BY
,KG,KZ,MD,RU,TJ,TM),AL,AM
,AT,AU,AZ,BA,BB,BG,BR,BY,
CA,CH,CN,CU,CZ,DE,DK,EE,E
S,FI,GB,GE,GH,GW,HU,ID,IL
,IS,JP,KE,KG,KP,KR,KZ,LC,
LK,LR,LS,LT,LU,LV,MD,MG,M
K,MN,MW,MX,NO,NZ,PL,PT,RO
,RU,SD,SE,SG,SI,SK,SL,TJ,
TM,TR,TT,UA,UG,US,UZ,VN,Y
U,ZW
(72)発明者 リム,ピーター エス.
アメリカ合衆国,カリフォルニア 94065,
レッドウッド シティ,ガバナーズ ベイ
ドライブ 917
Claims (1)
- 【特許請求の範囲】 1.中央データベース(3)と別個の部分的複製データベース(23a,23 b,23c)を含み、前記別個の部分的複製データベース(23a,23b,2 3c)は別個のノード(33a,33b,33c)を有するデータベースの管理 方法において、伝播しているデータに対する部分的複製データベース(23a, 23b,23c)のノード(33a,33b,33c)の可視度を決定し、部分 的複製データベース(23a,23b,23c)のノード(33a,33b,3 3c)がデータに対する可視度を持つ場合のみ、前記データを部分的複製データ ベース(23a,23b,23c)に伝播するデータベースの管理方法。 2.アップデートしていないが、アップデートしている部分的複製データベー ス(23a,23b,23c)に関連する部分的複製データベース(23a,2 3b,23c)のノード(33a,33b,33c)の可視度を決定する請求項 1に記載のデータベース管理方法。 3.アップデートしている部分的複製データベース(23a,23b,23c )のノード(33a,33b,33c)の可視度を繰り返し決定する請求項2に 記載のデータベース管理方法。 4.部分的複製データベース(23a,23b,23c)のノード(33a, 33b,33c)の可視度が宣言形式である請求項1に記載のデータベース管理 方法。 5.伝播しているデータに対する部分的複製データベース(23a,23b, 23c)のノード(33a,33b,33c)の可視度をキャッシュ・メモリー に保存する請求項1に記載のデータベース管理方法。 6.部分的複製データベース(23a,23b,23c)の前記ノード(33 a,33b,33c)が、伝播するデータに対する可視度強度を持つ請求項1に 記載のデータベース管理方法。 7.少なくとも1セットの可視度ルールを1つの場所に保存する請求項1に記 載のデータベース管理方法。 8.アップデートするドッキング・オブジェクトの可視度を決定するために、 アップデートしない関連ドッキング・オブジェクトのデータ・コンテンツに対し て可視度ルールを保存する請求項1に記載のデータベース管理方法。 9.ノード(33a,33b,33c)が可視度ルールを変更できるよう可視 度ルールを中央ディクショナリに保存する請求項1に記載のデータベース管理方 法。 10.可視度ルールの変更にグラフィカル・ユーザ・インターフェイスを用い る請求項1に記載のデータベース管理方法。 11.可視度ルールの変更にグラフィカル・ユーザ・インターフェイスを用い る請求項9に記載のデータベース管理方法。 12.伝播しているデータに対する部分的複製データベース(23a,23b ,23c)のノード(33a,33b,33c)の可視度を決定し、且つ部分的 複製データベース(23a,23b,23c)のノード(33a,33b,33 c)がデータに対する可視度を持つ場合のみ、前記データを部分的複製データベ ース(23a,23b,23c)に伝播することによって、部分的複製データベ ース(23a,23b,23c)を管理するためにそこに具体化されたコンピュ ータが使用可能なプログラム・コードを持つコンピュータが使用可能な媒体から なる製造物であって、 製造物のコンピュータが読み取り可能なプログラムは、 伝播しているデータに対する部分的複製データベース(23a, 23b,23c)のノード(33a,33b,33c)の可視度をコンピュータ に判断させるコンピュータが読み取り可能なプログラム・コード手段と、 部分的複製データベース(23a,23b,23c)のノード(33a,33 b,33c)がデータに対する可視度を持つ場合のみ、コンピュータにかかるデ ータを部分的複製データベース(23a,23b,23c)に伝播させるための コンピュータが読み取り可能なプログラム・コード手段とを有する製造物。 13.データベースを管理するための方法を実行するために、装置が実行可能 な指示を明白に具現化するプログラムを保存するための、装置によって読み取り 可能なプログラム保存装置であって、前記方法は、伝播しているデータに対する 部分的複製データベース(23a,23b,23c)のノード(33a,33b ,33c)の可視度を決定することと、部分的複製データベース(23a,23 b,23c)のノード(33a,33b,33c)がデータに対する可視度を持 つ場合のみ、前記データを部分的複製データベース(23a,23b,23c) に伝播することを有するプログラム保存装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3947797P | 1997-02-26 | 1997-02-26 | |
US60/039,477 | 1997-02-26 | ||
PCT/US1998/003574 WO1998040806A2 (en) | 1997-02-26 | 1998-02-24 | Method of determining the visibility to a remote database client of a plurality of database transactions |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001514775A true JP2001514775A (ja) | 2001-09-11 |
Family
ID=21905679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53958398A Ceased JP2001514775A (ja) | 1997-02-26 | 1998-02-24 | 複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0963576A4 (ja) |
JP (1) | JP2001514775A (ja) |
AU (1) | AU6665998A (ja) |
WO (1) | WO1998040806A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957982B2 (en) | 2004-06-14 | 2011-06-07 | Olympus Corporation | Data management system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE515459C2 (sv) * | 1999-02-10 | 2001-08-06 | Ericsson Telefon Ab L M | Metod för att synkronisera en värddatabas och en fjärrdatabas |
JP2002175209A (ja) * | 2000-12-06 | 2002-06-21 | Plus Alpha:Kk | 情報サーバー内データ自動更新方法及びそのシステム |
JP3926778B2 (ja) * | 2003-08-28 | 2007-06-06 | 株式会社亀田医療情報研究所 | 医療情報システム及びコンピュータプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446885A (en) * | 1992-05-15 | 1995-08-29 | International Business Machines Corporation | Event driven management information system with rule-based applications structure stored in a relational database |
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US5642503A (en) * | 1993-12-15 | 1997-06-24 | Microsoft Corporation | Method and computer system for implementing concurrent accesses of a database record by multiple users |
US5729733A (en) * | 1995-05-05 | 1998-03-17 | Harris Corporation | Method of operating a distributed databse based on object ownership and transaction classification utilizing an aggressive reverse one phase commit protocol |
AU2533797A (en) * | 1996-03-19 | 1997-10-10 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
-
1998
- 1998-02-24 EP EP98908694A patent/EP0963576A4/en not_active Withdrawn
- 1998-02-24 JP JP53958398A patent/JP2001514775A/ja not_active Ceased
- 1998-02-24 WO PCT/US1998/003574 patent/WO1998040806A2/en active Application Filing
- 1998-02-24 AU AU66659/98A patent/AU6665998A/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957982B2 (en) | 2004-06-14 | 2011-06-07 | Olympus Corporation | Data management system |
Also Published As
Publication number | Publication date |
---|---|
AU6665998A (en) | 1998-09-29 |
WO1998040806A2 (en) | 1998-09-17 |
EP0963576A2 (en) | 1999-12-15 |
WO1998040806A3 (en) | 1998-12-10 |
EP0963576A4 (en) | 2005-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002511164A (ja) | 単純化された可視度ルールに用いるための複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法 | |
US6216135B1 (en) | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths | |
US6446089B1 (en) | Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions | |
US6189011B1 (en) | Method of maintaining a network of partially replicated database system | |
US11520770B2 (en) | System and method for providing high availability data | |
JP2001513926A (ja) | 複数レベルのリモート・クライアントを持つ部分的複製分散データベース | |
US11288002B2 (en) | System and method for providing high availability data | |
JP2001514776A (ja) | ローカルな修正を組み込むソフトウェア配布の連続レベル移送の方法 | |
US6324693B1 (en) | Method of synchronizing independently distributed software and database schema | |
KR101069350B1 (ko) | 클라이언트/서버 환경에서 동기화를 용이하게 하는 방법 및 컴퓨터 판독 가능 기록 매체 | |
US7533136B2 (en) | Efficient implementation of multiple work areas in a file system like repository that supports file versioning | |
WO1998040804A2 (en) | Distributed relational database | |
JP2004295870A (ja) | アプリケーション定義のシステムにおける整合性ユニットのレプリケーション | |
EP1010096B1 (en) | Method of maintaining a network of partially replicated database system | |
JP2001514775A (ja) | 複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法 | |
JP2002063055A (ja) | 書き込み遅延データベース管理方式及びシステム | |
JPH04118729A (ja) | 重複データ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
A313 | Final decision of rejection without a dissenting response from the applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A313 Effective date: 20080819 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081007 |