JPH1124973A - 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体 - Google Patents

分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体

Info

Publication number
JPH1124973A
JPH1124973A JP9187401A JP18740197A JPH1124973A JP H1124973 A JPH1124973 A JP H1124973A JP 9187401 A JP9187401 A JP 9187401A JP 18740197 A JP18740197 A JP 18740197A JP H1124973 A JPH1124973 A JP H1124973A
Authority
JP
Japan
Prior art keywords
transaction
server
semantic
transactions
client
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
JP9187401A
Other languages
English (en)
Other versions
JP3367385B2 (ja
Inventor
Jinkou Tabuchi
仁浩 田淵
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP18740197A priority Critical patent/JP3367385B2/ja
Priority to US09/104,356 priority patent/US6332160B1/en
Publication of JPH1124973A publication Critical patent/JPH1124973A/ja
Application granted granted Critical
Publication of JP3367385B2 publication Critical patent/JP3367385B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 複数のクライアントで協調作業を行う分散シ
ステムにおいて、複数のクライアントからのトランザク
ションが意味的に矛盾する場合の整合方法を、サーバ側
のアプリケーション毎に定めることができるようにす
る。 【解決手段】 サーバ100 のトランザクションマネージ
ャ122 は、複数のクライアント200 から送出されるトラ
ンザクションを並行して実行する。複数のトランザクシ
ョン間でデータのアクセス競合が生じると、これら競合
する複数のトランザクションの意味的矛盾の検査がサー
バ100 のアプリケーション110 の意味的矛盾検査部111
で行われる。意味的矛盾検査部111 は、意味的矛盾が存
在する場合、その意味的矛盾の内容に応じた解消方法を
実装する処理ルーチンへのアドレスをトランザクション
マネージャ122 に返却する。トランザクションマネージ
ャ122 は、この処理ルーチンを呼び出すことで、複数の
トランザクションの意味的矛盾を解消する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のクライアン
トがネットワークを介してサーバに接続された分散シス
テムにおける分散トランザクション整合方法に関する。
【0002】
【従来の技術】この種の分散システムにおいて、複数の
クライアント間で共有するデータに対して個々のクライ
アントから異なる操作を指示するトランザクションが投
入された場合に、これら競合するトランザクションを調
停する方法として、従来、以下のような方法が採用され
ている。
【0003】第1の従来方法は、複数のトランザクショ
ンを並行して実行できる分散トランザクションシステム
において一般に採用されている方法で、処理が先行して
いる更新トランザクション内で共有データに対してロッ
クをかけて、同じデータを参照や更新している他のトラ
ンザクションの処理を待たせ、共有データに対するトラ
ンザクションを時間的に直列化する方法である。
【0004】第2の従来方法は、特開昭63−3100
42号公報に記載されている方法で、共有データに対し
て複数の利用者が意味的に異なる操作を指示した場合
に、利用者間で打ち合わせを行って意思の疎通を図り、
正しい操作を決定する方法である。
【0005】
【発明が解決しようとする課題】競合するトランザクシ
ョンを調停する方法として、従来より上述した各種の方
法が提案されているが、何れの従来方法も画一的な調停
しか行えないという問題がある。その理由は、第1の従
来方法では、競合するトランザクションをその意味的矛
盾の内容にかかわらず必ず直列的に実行するからであ
り、第2の従来方法では、競合するトランザクションの
調停をその意味的矛盾の内容にかかわらず必ず利用者間
の打ち合わせによって解消するからである。
【0006】また第2の従来方法では更に、トランザク
ションが競合する度に利用者間の打ち合わせが必ず行わ
れるため、オンラインで協調作業を進める場合、作業が
度々中断して煩わしいという問題もある。
【0007】そこで本発明の目的は、複数のクライアン
トでサーバ側の文書作成アプリケーション,図形描画ア
プリケーションなどのアプリケーションを共有して協調
作業を行う分散システムにおいて、複数のクライアント
からのトランザクションが意味的に矛盾する場合の整合
方法を、サーバ側の各アプリケーション毎および意味的
矛盾の内容毎に定めることができるようにした分散トラ
ンザクション整合方法を提供することにある。
【0008】
【課題を解決するための手段】本発明は上記の目的を達
成するために、サーバと、該サーバにネットワークを介
して接続可能な複数のクライアントとから構成される分
散システムにおけるトランザクション整合方法におい
て、クライアントのアプリケーションを通じてユーザが
データの変更操作を行ったときに生成されるトランザク
ションを、ネットワークを介してサーバ側のトランザク
ションマネージャが受信したとき、他のクライアントか
ら受信したトランザクションと意味的に矛盾するか否か
の検査を、サーバ側のアプリケーションの意味的矛盾検
査部にて行い、意味的矛盾が存在しない場合はトランザ
クションマネージャがそのトランザクションを実行し、
意味的矛盾が存在する場合は、その意味的矛盾の内容に
応じた解消方法を実装する処理ルーチンへのアドレスを
意味的矛盾検査部からトランザクションマネージャに返
却し、トランザクションマネージャにて、前記返却され
たアドレスの処理ルーチンを呼び出すことで、前記複数
のトランザクションの意味的矛盾を解消することを特徴
とする。
【0009】より具体的には、複数のクライアントがネ
ットワークを介してサーバに接続された分散システムに
おける分散トランザクション整合方法において、以下の
手順を含んでいる。 (1)クライアントのアプリケーションを通じてユーザ
がデータの変更操作を行ったときに生成されるトランザ
クションを、クライアントからネットワークを介してサ
ーバ側のトランザクションマネージャに送信する段階 (2)サーバ側のトランザクション競合検知部にて、ク
ライアントから受信したトランザクションと他のクライ
アントから受信したトランザクションとで共有データへ
のアクセスの競合が生じているか否かを検知する段階 (3)サーバ側のトランザクションマネージャにて、ア
クセスの競合する複数のトランザクション間の意味的矛
盾を検査するようにサーバ側のアプリケーションに要求
する段階 (4)サーバ側のアプリケーションの意味的矛盾検査部
にて、競合する複数のトランザクションの意味的矛盾を
検査する段階 (5)サーバ側のトランザクションマネージャにて、競
合する複数のトランザクションに意味的矛盾が存在しな
い場合に前記複数のトランザクションの実行を継続する
段階 (6)サーバ側のアプリケーションの意味的矛盾検査部
にて、競合する複数のトランザクションに意味的矛盾が
存在する場合に、その意味的矛盾の内容に応じた解消方
法を実装する処理ルーチンへのアドレスをトランザクシ
ョンマネージャに返却する段階 (7)トランザクションマネージャにて、前記返却され
たアドレスの処理ルーチンを呼び出すことで、前記複数
のトランザクションの意味的矛盾を解消する段階
【0010】このように本発明では、競合する複数のト
ランザクションに意味的矛盾が存在する場合のその解消
方法が、各アプリケーション毎および意味的矛盾の内容
毎に定めることができるため、各アプリケーションおよ
び意味的矛盾の内容に適した解消方法をとることができ
る。
【0011】また本発明では、サーバ側のアプリケーシ
ョンは、アクセス競合する複数のトランザクションの意
味的矛盾が、同一データの同一属性値を変更することに
ある場合、更にその変更度合いの差が予め定められた範
囲内にあるか否かを検査し、予め定められた範囲内にあ
るときは、変更度の大きいトランザクションのみ実行す
る処理ルーチン、或いは競合するトランザクションをそ
の到着順に実行する処理ルーチンへのアドレスをトラン
ザクションマネージャに返却する。このように無視でき
る程度の意味的矛盾の場合には、ユーザの介入無しに処
理を進めることで、協調作業の効率化が可能となる。
【0012】また本発明では、サーバ側のアプリケーシ
ョン毎に、競合する複数のトランザクションの意味的矛
盾の種類毎に、複数の処理ルーチンの内から実際に使用
する処理ルーチンを事前に選択しておくため、任意の解
消方法を利用できる。
【0013】なお、サーバ側のトランザクションマネー
ジャにて、オンライン接続中のクライアントから受信し
たトランザクションが他のクライアントから受信したト
ランザクションとアクセス競合するか否かは、例えば、
共有データに対するロック待ちが生じているか否かによ
って検知することができる。
【0014】更に、本発明は、サーバと、該サーバにネ
ットワークを介して接続可能な複数のクライアントとか
ら構成される分散システムにおけるクライアント再接続
時のトランザクション整合方法において、クライアント
のアプリケーションを通じてユーザがデータの変更操作
を行ったときに生成されるトランザクションを、そのク
ライアントの再接続時にネットワークを介してサーバ側
のトランザクションマネージャが受信したとき、他のク
ライアントから受信し記憶装置にログとして記録したト
ランザクションと意味的に矛盾するか否かの検査を、サ
ーバ側のアプリケーションの意味的矛盾検査部にて行
い、意味的矛盾が存在しない場合はトランザクションマ
ネージャがそのトランザクションを実行し、意味的矛盾
が存在する場合は、その意味的矛盾の内容に応じた解消
方法を実装する処理ルーチンへのアドレスを意味的矛盾
検査部からトランザクションマネージャに返却し、トラ
ンザクションマネージャにて、前記返却されたアドレス
の処理ルーチンを呼び出すことで、トランザクションの
意味的矛盾を解消する。
【0015】この場合、クライアントの再接続時にネッ
トワークを介して受信したトランザクションの意味的矛
盾の検知範囲を、他のクライアントから受信し記憶装置
にログとして記録した一部のトランザクションに限定し
て行うようにしても良い。
【0016】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0017】図1は本発明を適用した分散処理システム
の一例を示すブロック図である。この例の分散処理シス
テムは、サーバ100と複数のクライアント200とが
LAN,WANなどのネットワークを介して接続されて
いる。
【0018】サーバ100は、複数のアプリケーション
110と、これら複数のアプリケーション110に共通
な共通処理部120と、磁気ディスク等の記憶装置13
0と、記録媒体140とを有している。個々のアプリケ
ーション110は、例えば文書作成アプリケーション,
図形描画アプリケーションの如きアプリケーションプロ
グラムであり、文書作成や図形描画にかかる基本的な機
能を司る主処理部112を有すると共に、アプリケーシ
ョン意味的矛盾検査部111を有している。また共通処
理部120は、トランザクション競合検知部121とト
ランザクションマネージャ122とを有している。
【0019】各アプリケーション110内のアプリケー
ション意味的矛盾検査部111は、自アプリケーション
に関して競合する複数のトランザクションの意味的矛盾
を検査し、その解消方法を決定する部分である。このア
プリケーション意味的矛盾検査部111は、トランザク
ションマネージャ122から競合する複数のトランザク
ションの意味的矛盾を検査するよう要求された場合に、
これら競合するトランザクションの意味的矛盾を検査
し、意味的矛盾がない場合にはその旨をトランザクショ
ンマネージャ122に通知し、意味的矛盾が存在する場
合には、その意味的矛盾の内容に応じた解消方法を実装
する処理ルーチンへのアドレスをトランザクションマネ
ージャに返却する。アプリケーション意味的矛盾検査部
111には、システムの立ち上げ時或いはシステムの運
用中に、競合する複数のトランザクションの意味的矛盾
の内容に応じて、それに適した解消方法を実装する処理
ルーチンのアドレスを各アプリケーション毎に設定する
ことが可能である。
【0020】トランザクション競合検知部121は、競
合するトランザクションを検知する部分である。トラン
ザクションが競合するか否かは、本実施例の場合、トラ
ンザクションの実行によって共有データに対するロック
待ちが生じたか否かによって行う。
【0021】トランザクションマネージャ122は、ク
ライアント200から送られてくるトランザクションの
サーバ100上での実行全般を管理する部分である。各
クライアント200から送られたトランザクションに対
して時刻印を付与して記憶装置130にトランザクショ
ンログ(受信ログ)として記録する処理や、トランザク
ションを実行する処理や、その実行結果をクライアント
に通知する処理などを行う。また、トランザクション競
合検知部121で或るアプリケーション110に関する
複数のトランザクションの競合が検知された場合、その
アプリケーション110のアプリケーション意味的矛盾
検査部111にその意味的矛盾を検査するように要求
し、意味的矛盾が存在した場合にアプリケーション意味
的矛盾検査部111から返却されるアドレスの処理ルー
チンを呼び出すことにより、競合する複数のトランザク
ション間の意味的矛盾を解消する。意味的矛盾が存在し
ない旨の通知をアプリケーション意味的矛盾検査部11
1から受けたときは、当該競合する複数のトランザクシ
ョンの実行を継続する。トランザクションマネージャ1
22は複数のトランザクションなどを並行処理できるよ
うにマルチスレッドで動作する。
【0022】記録媒体140は、CD−ROM,磁気デ
ィスク,半導体メモリ等の機械読み取り可能な記録媒体
であり、ここに記録されたサーバ用プログラムは、サー
バ100を構成するコンピュータに読み取られ、そのコ
ンピュータ上に各アプリケーション110および共通処
理部120を実現する。
【0023】他方、各クライアント200は、複数のア
プリケーション210と、これら複数のアプリケーショ
ン210に共通な共通処理部220と、記憶装置230
と、表示装置240と、入力装置250と、記録媒体2
60とを有している。個々のアプリケーション210
は、例えば文書作成アプリケーション,図形描画アプリ
ケーションの如きアプリケーションプログラムであり、
入力装置250でデータに対する変更操作が行われたと
き、その変更操作にかかるトランザクションを生成して
実行し、その実行結果に応じて記憶装置230中のデー
タを更新したり、表示装置240の画面を更新したりす
る文書作成や図形描画にかかる基本的な機能を司る主処
理部211を有する。また、共通処理部220はトラン
ザクションロギング部221を有している。
【0024】共通処理部220は、アプリケーション2
10によってユーザ毎の操作に対応して生成されたトラ
ンザクションをサーバ100に送出する処理や、他のク
ライアント200のトランザクション実行結果をサーバ
100から受信したときに自クライアント上の該当する
アプリケーションの状態をそれに合わせる処理などを司
る。また、トランザクションロギング部221は、サー
バ100に送出したトランザクションを、送出した順番
に、記憶装置220にトランザクションログ(送信ロ
グ)として保存する処理や、サーバ100からトランザ
クションのキャンセルが通知されてきた時などに、送信
ログを参照して該当するアプリケーション210の状態
をそのトランザクションの実行前の状態に戻す処理など
を行う。
【0025】記録媒体260は、CD−ROM,磁気デ
ィスク,半導体メモリ等の機械読み取り可能な記録媒体
であり、ここに記録されたクライアント用プログラム
は、クライアント200を構成するコンピュータに読み
取られ、そのコンピュータ上に各アプリケーション21
0および共通処理部220を実現する。
【0026】本実施例の動作は、クライアント200の
アプリケーション210を介したユーザからのデータ変
更操作をクライアント200上で実行すると共に、その
データ変更操作にかかるトランザクションをサーバ10
0に送信し、それを受信したサーバ100がトランザク
ションを実行する際に、互いに競合するトランザクショ
ンをトランザクション競合検知部121で検知し、その
競合するトランザクションの意味的矛盾,その解消方法
を該当するアプリケーション110のアプリケーション
意味的矛盾検査部111で決定し、トランザクションマ
ネージャ122がその決定された解消方法を実行すると
いう流れが基本となる。
【0027】図2はクライアント200の処理の一例を
示すフローチャート、図3はサーバ100の処理の一例
を示すフローチャートである。以下、図1〜図3を参照
して本実施の形態の動作を説明する。
【0028】各クライアント200のユーザが入力装置
250を通じてアプリケーション210にデータ変更操
作を指示すると(図2の201)、各クライアント20
0のアプリケーション210はその変更操作にかかる処
理を実行する(202)。これにより、各クライアント
200ではその変更操作に対応する処理が即座に行われ
る。次にアプリケーション210は、その変更操作にか
かるトランザクションを生成し(203)、この生成し
たトランザクションを共通処理部220に通知する。共
通処理部220は、このトランザクションをネットワー
クを介してサーバ100に送信し(204)、また、ト
ランザクションロギング部221は、このトランザクシ
ョンを記憶装置230に送信ログとして記録する(20
5)。
【0029】サーバ100のトランザクションマネージ
ャ122は、各クライアント200から或るアプリケー
ション110に関するトランザクションを受信すると
(図3の301)、一旦、受信ログとして記憶装置13
0に保存する(302)。記憶装置130に保存された
トランザクションのうち未実行のトランザクションは、
トランザクションマネージャ122によってその到着順
に読みだされ、トランザクションの実行が開始される
(303)。即ち、該当するアプリケーション110の
主処理部112にトランザクション実行スレッドを割り
当て、当該トランザクションを実行する。次に、実行を
開始した当該トランザクションが当該アプリケーション
に関する他の実行中のトランザクションとアクセス競合
するか否かがトランザクション競合検知部121で調べ
られる(304)。
【0030】並行して実行されている他のトランザクシ
ョンと競合しない場合には(304でNO)、当該トラ
ンザクションの実行を継続し(311)、その実行完了
時に実行結果を当該トランザクションの送出元クライア
ント以外のクライアントに通知する(312)。この通
知を受けたクライアント200では、自クライアント上
で同じ変更操作を行うことで、他のクライアントで行わ
れた変更操作を自クライアントに反映する。
【0031】他方、他のトランザクションと競合するこ
とがトランザクション競合検知部121で検知された場
合(304でYES)、トランザクションマネージャ1
22は、競合するトランザクション間の意味的矛盾を検
査するように当該トランザクションにかかるアプリケー
ション110のアプリケーション意味的矛盾検査部11
1に要求する(305)。
【0032】アプリケーション意味的矛盾検査部111
は、競合するトランザクションの内容を記録装置130
の受信ログから参照し、それらのトランザクションの意
味的矛盾を検査する(306)。意味的矛盾が存在しな
い場合(307でYES)は、アプリケーション意味的
矛盾検査部111はその旨をトランザクションマネージ
ャ122に通知し、トランザクションマネージャ122
は当該トランザクションの実行を継続する(311)。
【0033】他方、意味的矛盾が存在する場合、アプリ
ケーション意味的矛盾検査部111は、その意味的矛盾
の内容に応じた解消方法を実装する処理ルーチンを決定
し、そのアドレスをトランザクションマネージャ122
に通知する(308)。トランザクションマネージャ1
22は、この返却されたアドレスの処理ルーチンを呼び
出すことで、競合する複数のトランザクション間の意味
的矛盾を解消する(309)。具体的な解消方法につい
ては後述するが、この処理ルーチンの実行によって、本
トランザクションがキャンセルされたり、トランザクシ
ョンの実行順序が変更されたりする。
【0034】次にトランザクションマネージャ122
は、処理ルーチンの実行によって、本トランザクション
がキャンセルされた場合には(310でYES)、本ト
ランザクションに関する処理を終了する。本トランザク
ションがキャンセルされなかった場合は、本トランザク
ションの実行を継続し(311)、その実行完了時に実
行結果を当該トランザクションの送出元クライアント以
外のクライアントに通知する(510)。この通知を受
けたクライアント200では、自クライアント上で同じ
変更操作を行うことで、他のクライアントで行われた変
更操作を自クライアントに反映する。
【0035】次に、クライアント200とサーバ100
の動作を、トランザクションの整合方法を中心に具体例
を挙げて説明する。
【0036】例としては、図4のように、A,Bの二つ
のクライアント200がネットワークを介してサーバ1
00(S)に接続された分散処理システムにおいて、図
形描画アプリケーション110,210を使用して、一
つの文書Xを共有しながら協調作業を行う例を用いる。
ここで、協調作業の開始時点では、図5に示すように文
書部品X1,X2,X3(各々1つのオブジェクトであ
る)から成る文書Xが、各クライアントA,Bの記憶装
置230およびサーバ100の記憶装置130に記憶さ
れており、各クライアントA,Bは同じ画面表示を得て
いるものとする。
【0037】この状態で、各クライアントA,Bのユー
ザが入力装置250を通じてアプリケーション210に
文書Xにかかる変更操作を行うと、各クライアントA,
Bのアプリケーション210はその変更操作に対応した
処理を自クライアント上で実行すると共に、その変更操
作にかかるトランザクションを生成して各々の共通処理
部220に通知する。
【0038】図6に、このとき生成されるトランザクシ
ョンのレコード形式の一例を示す。図6において、デー
タ操作コマンド列603は、ユーザが文書Xに対して行
った変更操作の内容を示し、例えば文書部品X1を削除
するコマンドや、文書部品X1の位置を移動するコマン
ドなどが設定される。
【0039】操作カテゴリ601とオプションデータ6
02とは、アプリケーション意味的矛盾検査部111の
意味的矛盾検査の便宜のためのアプリケーション情報で
ある。このうち操作カテゴリ601は、変更操作のカテ
ゴリを示す。操作カテゴリ601には、オブジェクトの
追加とオブジェクトの削除とオブジェクトの属性値の変
更という三つの何れかが設定される。例えば図形描画ア
プリケーションでは、オブジェクトの追加と削除とは、
丸,四角,三角などの各図形オブジェクトの追加と削除
とにそれぞれ対応する。また、各図形オブジェクトの位
置,大きさ,塗りつぶし色などがオブジェクトの属性で
あり、従ってオブジェクトの属性値の変更は、各図形オ
ブジェクトの位置の移動,大きさの変更,色の変更など
に対応する。他方、オプションデータ602は、競合す
るトランザクションの調停方法を決定する際に利用する
付加的な情報を設定する部分である。このオプションデ
ータ602の利用方法については後述する。
【0040】各クライアントA,Bの共通処理部220
は、アプリケーション210からトランザクションを受
け取ると、それをネットワークを介してサーバ100に
送信すると共に、トランザクションロギング部221を
通じて記憶装置230に送信ログとして記録する。
【0041】サーバ100のトランザクションマネージ
ャ122は、クライアントA,Bからトランザクション
を受信すると、受信ログとして記憶装置130に保存し
た後、受信した各々のトランザクションの実行スレッド
を生成し、複数のトランザクションを並行して処理す
る。また、トランザクションマネージャ122は、トラ
ンザクション間の競合を検知するためにトランザクショ
ン競合検知部121を或るスレッドにてバックグラウン
ドで走行させておく。
【0042】或るトランザクションがロックした共有デ
ータに対して別のトランザクションがロックしようとし
た場合、即ち共有データのアクセス競合が生じた場合、
トランザクション競合検知部121がそのことを検知
し、トランザクション競合が発生したことをトランザク
ションマネージャ122に通知する。
【0043】この通知を受けるとトランザクションマネ
ージャ122は、1つのスレッドを生成し、競合してい
るトランザクションの識別子などを伴ってアプリケーシ
ョン110のアプリケーション意味的矛盾検査部111
を呼び出す。
【0044】アプリケーション意味的矛盾検査部111
は、記憶装置130の受信ログから該当するトランザク
ションの内容を読み出し、競合する複数のトランザクシ
ョンの意味的矛盾を検査する。意味的矛盾は、競合する
複数のトランザクションの図6の操作カテゴリ601と
必要に応じてデータ操作コマンド列603とに基づいて
行う。そして、意味的矛盾が存在しない場合には、その
旨をトランザクションマネージャ122に通知する。他
方、意味的矛盾が存在する場合には、その意味的矛盾の
内容に応じた解消方法を実装する処理ルーチンへのアド
レスをトランザクションマネージャに返却する。以下、
具体例に基づき、アプリケーション意味的矛盾検査部1
11の機能を説明する。
【0045】(1)同じオブジェクトの削除と属性値の
変更が競合する場合 図4および図5において、クライアントAが文書部品X
1を削除するトランザクションを発行した直後に、クラ
イアントBが文書部品X1の位置を移動するトランザク
ションを発行した場合が、この競合の一例である。クラ
イアントAの上記トランザクションをTRi ,このトラ
ンザクションTRi をサーバ100が受信した時刻をt
i ,クライアントBの上記トランザクションをT
i+1 ,このトランザクションTRi+1 をサーバ100
が受信した時刻をti+1 とした場合、図7に示すよう
に、サーバ100上では、例えば、スレッド1でトラン
ザクションTRi が、スレッド2でトランザクションT
i+1 がそれぞれ実行される。なお、トランザクション
競合検知部121はスレッド3で実行されているものと
する。そして、先行するトランザクションTRi の実行
中に文書部品X1にロックをかけると、後続のトランザ
クションTRi+1 は文書部品X1の参照で待たされ、そ
の結果、バックグラウンドのスレッド3で走行している
トランザクション競合検知部121がアクセス競合を検
知して、トランザクションマネージャ122に通知す
る。これにより、トランザクションマネージャ122は
アプリケーション意味的矛盾検査部111用のスレッド
4を生成し、アプリケーション110のアプリケーショ
ン意味的矛盾検査部111を呼び出す。
【0046】アプリケーション意味的矛盾検査部111
は、記憶装置130の受信ログからトランザクションT
i ,TRi+1 の内容を読み出す。今の場合、トランザ
クションTRi の図6における操作カテゴリ601は文
書部品X1の「削除」,トランザクションTRi+1 にお
ける操作カテゴリ601は文書部品X1の「属性値の変
更」になっている。このことからアプリケーション意味
的矛盾検査部111は、削除しようとするオブジェクト
の属性値の変更が行われようとしているという意味的矛
盾を検知し、それに応じた解消方法を実装する処理ルー
チンへのアドレスをトランザクションマネージャ122
に返却する。具体的な処理ルーチンの内容としては、以
下のようなものがある。
【0047】(a)トランザクションTRi の実行が終
了する前に、トランザクションTRi+1 との意味的矛盾
が検知された場合は以下の何れか。 トランザクションTRi+1 をキャンセルし、その旨を
クライアントBに伝える。 トランザクションTRi をキャンセルし、その旨をク
ライアントAに伝える。 トランザクションTRi ,TRi+1 の実行順序を入れ
替えるために、トランザクションTRi の実行をキャン
セルして、トランザクションTRi+1 を実行してから、
トランザクションTRi の実行をなお行うか否かをクラ
イアントAに確認する。 (b)トランザクションTRi の実行が終了した後に、
トランザクションTRi+1 との意味的矛盾が検知された
場合は以下の何れか。 トランザクションTRi+1 をキャンセルし、その旨を
クライアントBに伝える。 トランザクションTRi の実行を元に戻し、上記
(a)の何れかを実行する。
【0048】例えば、上記の処理ルーチンのアドレス
がアプリケーション意味的矛盾検査部111から返却さ
れた場合、トランザクションマネージャ122は、トラ
ンザクションTRi+1 をキャンセルし、その旨をクライ
アントBに伝える。このときクライアントBでは文書部
品X1の位置を元の位置に戻す。トランザクションTR
i の実行完了後、その結果をクライアントBに送るの
で、クライアントBでも文書部品X1が削除される。
【0049】(2)オブジェクトの追加と削除とが競合
する場合 図4および図5において、クライアントAが文書部品X
1〜X3が記載されているページP1を削除するトラン
ザクションを発行した直後に、クライアントBがページ
P1上に新しい文書部品X4を追加するトランザクショ
ンを発行した場合が、この競合の一例である。クライア
ントAの上記トランザクションをTRi,サーバ100
でトランザクションTRi を受信した時刻をti ,クラ
イアントBの上記トランザクションをTRi+1 ,サーバ
100でトランザクションTRi+1 を受信した時刻をt
i+1 とした場合、図7に示すように、サーバ100上で
は、例えば、スレッド1でトランザクションTRi が、
スレッド2でトランザクションTRi+1 がそれぞれ実行
される。なお、トランザクション競合検知部121はス
レッド3で実行されているものとする。そして、先行す
るトランザクションTRi の実行中に文書部品X1〜X
3が記載されたページP1にロックをかけると、後続の
トランザクションTRi+1 はページP1上の文書部品X
1の参照で待たされ、その結果、バックグラウンドのス
レッド3で走行しているトランザクション競合検知部1
21がアクセス競合を検知して、トランザクションマネ
ージャ122に通知する。これにより、トランザクショ
ンマネージャ122は、アプリケーション意味的矛盾検
査部111用のスレッド4を生成し、アプリケーション
110のアプリケーション意味的矛盾検査部111を呼
び出す。
【0050】アプリケーション意味的矛盾検査部111
は、記憶装置130の受信ログからトランザクションT
i ,TRi+1 の内容を読み出す。今の場合、トランザ
クションTRi の図6における操作カテゴリ601はペ
ージP1の「削除」,トランザクションTRi+1 におけ
る操作カテゴリ601はページP1への文書部品X4の
「追加」になっている。このことからアプリケーション
意味的矛盾検査部111は、削除しようとするオブジェ
クト配下に新たなオブジェクトの追加が行われようとし
ているという意味的矛盾を検知し、それに応じた解消方
法を実装する処理ルーチンへのアドレスをトランザクシ
ョンマネージャ122に返却する。具体的な処理ルーチ
ンの内容としては、前記(1)同様のものが考えられ
る。勿論、前記(1)と異なる処理ルーチンを用意して
おくことも可能である。
【0051】(3)オブジェクトの削除どうしが競合す
る場合 図4および図5において、クライアントAが文書部品X
1を削除するトランザクションを発行した直後に、クラ
イアントBが同じ文書部品X1を削除するトランザクシ
ョンを発行した場合が、この競合の一例である。クライ
アントAの上記トランザクションをTRi ,サーバ10
0でトランザクションTRi を受信した時刻をti ,ク
ライアントBの上記トランザクションをTRi+1 ,サー
バ100でトランザクションTRi+1 を受信した時刻を
i+1 とした場合、図7に示すように、サーバ100上
では、例えば、スレッド1でトランザクションTR
i が、スレッド2でトランザクションTRi+1 がそれぞ
れ実行される。トランザクション競合検知部121はス
レッド3で実行されているものとする。そして、先行す
るトランザクションTRi の実行中に文書部品X1にロ
ックをかけると、後続のトランザクションTRi+1 は文
書部品X1の参照で待たされ、その結果、バックグラウ
ンドのスレッド3で走行しているトランザクション競合
検知部121がアクセス競合を検知して、トランザクシ
ョンマネージャ122に通知する。これにより、トラン
ザクションマネージャ122はアプリケーション意味的
矛盾検査部111用のスレッド4を生成し、アプリケー
ション110のアプリケーション意味的矛盾検査部11
1を呼び出す。
【0052】アプリケーション意味的矛盾検査部111
は、記憶装置130の受信ログからトランザクションT
i ,TRi+1 の内容を読み出す。今の場合、トランザ
クションTRi の図6における操作カテゴリは文書部品
X1の「削除」,トランザクションTRi+1 における操
作カテゴリも文書部品X1の「削除」になっている。こ
のことからアプリケーション意味的矛盾検査部111
は、削除しようとするオブジェクトが更に削除されよう
としているという意味的矛盾を検知し、それに応じた解
消方法を実装する処理ルーチンへのアドレスをトランザ
クションマネージャ122に返却する。具体的な処理ル
ーチンとしては、トランザクションTRiの実行が終了
する前にトランザクションTRi+1 との意味的矛盾が検
知された場合、トランザクションTRi の実行が終了し
た後にトランザクションTRi+1 との意味的矛盾が検知
された場合とも、トランザクションTRi+1 をキャンセ
ルする処理ルーチンが考えられる。
【0053】(4)同じオブジェクトの属性値の変更が
競合する場合 図4および図5において、クライアントAが文書部品X
1を或る位置pに移動するトランザクションを発行した
直後に、クライアントBが文書部品X1を別の位置qに
移動するトランザクションを発行した場合が、この競合
の一例である。クライアントAの上記トランザクション
をTRi ,サーバ100でトランザクションTRi を受
信した時刻をti ,クライアントBの上記トランザクシ
ョンをTRi+1 ,サーバ100でトランザクションTR
i+1 を受信した時刻をti+1 とした場合、図7に示すよ
うに、サーバ100上では、例えば、スレッド1でトラ
ンザクションTRi が、スレッド2でトランザクション
TRi+1 がそれぞれ実行される。なお、トランザクショ
ン競合検知部121はスレッド3で実行されているもの
とする。そして、先行するトランザクションTRi の実
行中に文書部品X1にロックをかけると、後続のトラン
ザクションTRi+1 は文書部品X1の参照で待たされ、
その結果、バックグラウンドのスレッド3で走行してい
るトランザクション競合検知部121がアクセス競合を
検知して、トランザクションマネージャ122に通知す
る。これにより、トランザクションマネージャ122は
アプリケーション意味的矛盾検査部111用にスレッド
4を生成し、アプリケーション110のアプリケーショ
ン意味的矛盾検査部111を呼び出す。
【0054】アプリケーション意味的矛盾検査部111
は、記憶装置130の受信ログからトランザクションT
i ,TRi+1 の内容を読み出す。今の場合、トランザ
クションTRi の図6における操作カテゴリ601は文
書部品X1の「属性値の変更」,トランザクションTR
i+1 における操作カテゴリ601も文書部品X1の「属
性値の変更」になっている。このようにアクセス競合す
る複数のトランザクションが、共に属性値を変更するこ
とにある場合、アプリケーション意味的矛盾検査部11
1は、更にトランザクションTRi ,TRi+1 の図6の
データ操作コマンド列603を参照し、属性値の変更内
容を更に詳細に検査する。
【0055】今の場合、トランザクションTRi は文書
部品X1を位置pへ移動することであり、トランザクシ
ョンTRi+1 は同じ文書部品X1を位置qへ移動するこ
とであり、意味的な矛盾がある。しかし、変更される属
性は共に「位置」で等しい。そこで、移動後の位置pと
位置qとの差を求め、その差が予め設定された差以下で
あれば意味的矛盾がごく僅かである場合の解消方法を実
装する処理ルーチンのアドレスをトランザクションマネ
ージャ122に返却する。このような処理ルーチンとし
ては以下のようなものがある。
【0056】(a)トランザクションTRi の実行が終
了する前に、トランザクションTRi+1 との意味的矛盾
が検知された場合は以下の何れか。 トランザクションTRi による移動量とトランザクシ
ョンTRi+1 による移動量とを比較し、移動量の大きい
方を実行し、小さい方をキャンセルする。 トランザクションTRi の実行終了後に、トランザク
ションTRi+1 を実行する。即ち、到着順に実行する。 (b)トランザクションTRi の実行が終了した後に、
トランザクションTRi+1 との意味的矛盾が検知された
場合は以下の何れか。 トランザクションTRi による移動量とトランザクシ
ョンTRi+1 による移動量とを比較し、トランザクショ
ンTRi による移動量が大きい場合にはトランザクショ
ンTRi+1 をキャンセルし、その旨をクライアントBに
伝える。 トランザクションTRi の実行終了後に、トランザク
ションTRi+1 を実行する。即ち、到着順に実行する。
【0057】このようにアクセス競合する複数のトラン
ザクションの意味的矛盾が、同一データの同一属性値を
変更することにある場合、更にその変更度合いの差が予
め定められた範囲内にあるか否かを検査し、予め定めら
れた範囲内にあるときは、変更度の大きいトランザクシ
ョンのみ実行する処理ルーチン、或いは競合するトラン
ザクションをその到着順に実行する処理ルーチンへのア
ドレスをトランザクションマネージャに返却する。「大
きさ」や「色」など他の属性値についても同様に扱う。
【0058】他方、トランザクションTRi による位置
pとトランザクションTRi+1 による位置qとの差が予
め定められた値を超えている場合には、例えば上記
(1)と同様の方法で処理ルーチンを決定する。
【0059】また、例えばトランザクションTRi ,T
i+1 で変更する属性値が異なる場合は、意味的な矛盾
が無いとする。アクセス競合する複数のトランザクショ
ンに意味的矛盾が無い他の例としては、同一ページにそ
れぞれ文書部品を新たに追加する場合などがある。
【0060】次に図6のトランザクション中に付加する
オプションデータ602の利用方法について説明する。
【0061】オプションデータ602の利用方法の一つ
は、トランザクションのキャンセル可,不可をそのトラ
ンザクションにかかるデータ変更操作を行ったユーザが
指定できるようにすることである。前述した実施例で
は、意味的矛盾がある複数のトランザクションの何れか
が、サーバ側のトランザクションマネージャ122で一
方的にキャンセルされる場合があった。このような一方
的なキャンセルを望まないユーザは、データ変更操作時
にキャンセル不可を指定すれば、この情報がアプリケー
ション210によってトランザクションのオプションデ
ータ602に設定され、意味的矛盾検査時にアプリケー
ション意味的矛盾検査部111で考慮される。この場合
にアプリケーション意味的矛盾検査部111で選択され
る処理ルーチンの内容としては、例えば、競合するトラ
ンザクションの実行を停止し、競合するトランザクショ
ンを投入した複数のクライアントに対して何れのトラン
ザクションを実行するかを決めるように促すものなどが
考えられる。多数決などでクライアント間で1つのトラ
ンザクションが決まると、それが実行され、残りのトラ
ンザクションはキャンセルされる。
【0062】オプションデータ602の他の利用方法
は、意味的矛盾の詳細な検出をアプリケーション意味的
矛盾検査部111が簡単に行えるようにするために、ト
ランザクションのオプションデータ602に意味的矛盾
の検出に役立つ情報をクライアント側でオプションデー
タ602に設定しておくことである。例えば、前記
(4)の例では、クライアントAのトランザクションの
オプションデータ602に、属性値の変更の詳細な情報
として「文書部品X1を位置pに移動すること」を、ク
ライアントBのトランザクションのオプションデータ6
02に、属性値の変更の詳細な情報として「文書部品X
1を位置qに移動すること」を、それぞれクライアント
A,B側で設定しておく。こうすれば、アプリケーショ
ン意味的矛盾検査部111は、データ操作コマンド列6
03を解析せずに、意味的矛盾の詳細を判断することが
できる。
【0063】以上の実施例では、オンライン接続中のク
ライアント200から送出されるトランザクションの整
合方法について説明したが、本発明は、クライアント2
00をネットワークから切り離して単独で使用した後
に、再び、ネットワークを通じてサーバ100に接続し
て協調作業を行うモバイル環境における携帯端末上のア
プリケーションとサーバとの間の分散トランザクション
整合方法としても利用可能である。以下、この点につい
て説明する。
【0064】クライアント200がサーバ100と接続
されている状況において、サーバ100のトランザクシ
ョンマネージャ122は、記憶装置130に保存した最
新のトランザクションログのトランザクション識別子を
クライアント200に送り付け、クライアント200側
ではその最新の識別子を記録しておく。クライアント2
00がサーバ100とのネットワーク接続を切断する
と、このような最新の識別子を受信できなくなるため、
クライアント200のサーバ100への再接続時にクラ
イアント200が保持する最新の識別子をサーバ100
に送れば、サーバ100では、そのクライアント200
の分離中に発生したトランザクションログ(当該クライ
アント200に実行結果を送っていないトランザクショ
ン)を把握できる。
【0065】クライアント200は、サーバ100と分
離した状態でもアプリケーション210の実行により文
書等の作成が可能である。但し、サーバ100と接続さ
れていないので、アプリケーション210で生成された
トランザクションはサーバ100には送出されず、記憶
装置230に保存されるだけである。クライアント20
0のサーバ100への再接続時、この保存されたトラン
ザクションがサーバ100に転送される。
【0066】サーバ100のトランザクションマネージ
ャ122は、クライアント200から送られてきた個々
のトランザクション毎に、そのクライアント200の分
離中に他のクライアントから送出され記憶装置130に
ログとして記録されたトランザクションとの意味的矛盾
を検査し、意味的矛盾がある場合に解消を行う。このと
きに、本発明の分散トランザクション整合方法を適用で
きる。即ち、アプリケーション意味的矛盾検査部111
を呼び出し、意味的な矛盾を検査させ、意味的矛盾があ
る場合は、その解消方法を実装する処理ルーチンを決定
させる。
【0067】例えば図8に示すように、再接続したクラ
イアント200からトランザクションTR11〜TR1
3が送られてきたとする。また、そのクライアント20
0の分離中にサーバ100が他のクライアントから受信
し記憶装置130にログとして記録されたトランザクシ
ョンとしてTR21〜TR23があるとする。この場
合、アプリケーション意味的矛盾検査部111は、トラ
ンザクションTR11とトランザクションTR21とに
意味的矛盾があることを検知し、その解消方法として例
えばトランザクションTR11をキャンセルする処理ル
ーチンを決定する。また、トランザクションTR12と
トランザクションTR22とに意味的矛盾があることを
検知し、その解消方法として例えばトランザクションT
R21をキャンセルする処理ルーチンを決定する。残り
のトランザクションについては意味的な矛盾はない。こ
の結果、再接続したクライアント200では、トランザ
クションTR11,TR12がキャンセルされ、またサ
ーバ100からそのクライアント200にトランザクシ
ョンTR21,TR22,TR23の実行結果が送ら
れ、クライアント200に反映される。従って、クライ
アント200では、トランザクションTR13,TR2
1,TR22,TR23が実行された状態となる。ま
た、サーバ100はトランザクションTR13を実行
し、その実行結果を他のクライアントに送る。これによ
り、全クライアントの状態が同じになる。
【0068】なお、トランザクションTR11〜TR1
3の意味的矛盾を、そのクライアント200の分離中に
サーバ100が他のクライアントから受信し記憶装置1
30にログとして記録された全てのトランザクションT
R21〜TR23との間で検査する代わりに、記憶装置
130にログとして記録されたトランザクションTR2
1〜TR23のうちのカレントなトランザクション(ま
さに実行されようとしているトランザクション)を基準
に或る範囲内で時間的に近接するトランザクションとの
み意味的矛盾を検査するようにしても良い。この時間的
に近接する範囲の条件はアプリケーション110が自由
に変更できるようにパラメータとして与えられる。例え
ば、条件としてt±aとあれば、a=1のときサーバ上
のトランザクションログにおけるカレントなトランザク
ションの前後1つずつの範囲内のトランザクションとの
み意味的矛盾の検査を行う。従って、図8の場合、例え
ばトランザクションTR23がカレントなトランザクシ
ョンであれば、トランザクションTR21は除外され
る。この結果、トランザクションTR11は意味的矛盾
無しと判断されることになり、サーバ100で実行さ
れ、その結果が他のクライアントに送られ、文書部品X
1が全クライアントで削除される。
【0069】
【発明の効果】以上説明したように本発明によれば、以
下のような効果を得ることができる。
【0070】競合する複数のトランザクションに意味的
矛盾が存在する場合のその解消方法を、各アプリケーシ
ョン毎および意味的矛盾の内容毎に定めることができる
ため、各アプリケーションおよび意味的矛盾の内容に適
した解消方法をとることができる。
【0071】競合する複数のトランザクションの意味的
矛盾が、同一データの同一属性値を変更することにある
場合、更にその変更度合いの差が予め定められた範囲内
にあるか否かを検査し、予め定められた範囲内にあると
きは、変更度の大きいトランザクションのみ実行する処
理ルーチン、或いは競合するトランザクションをその到
着順に実行する処理ルーチンを実行することにより、無
視できる程度の意味的矛盾の場合には、ユーザの介入無
しに処理を進めることができ、協調作業の効率化が可能
となる。
【図面の簡単な説明】
【図1】本発明を適用した分散処理システムの一例を示
すブロック図である。
【図2】クライアントの処理の一例を示すフローチャー
トである。
【図3】サーバの処理の一例を示すフローチャートであ
る。
【図4】本発明の実施例の動作説明に用いる分散処理シ
ステムの例を示すブロック図である。
【図5】本発明の実施例の動作説明に用いる文書の構造
例を示す図である。
【図6】トランザクションのレコード形式の一例を示す
図である。
【図7】サーバ上で複数のトランザクションなどがマル
チスレッドで実行される様子を示す図である。
【図8】再接続したクライアントから送出されるトラン
ザクションの例と、その時点でサーバに記録されている
トランザクションログの例とを示す図である。
【符号の説明】
100…サーバ 110…アプリケーション 111…アプリケーション意味的矛盾検査部 112…主処理部 120…共通処理部 121…トランザクション競合検知部 122…トランザクションマネージャ 130…記憶装置 140…記録媒体 200…クライアント 210…アプリケーション 211…主処理部 220…共通処理部 221…トランザクションロギング部 230…記憶装置 240…表示装置 250…入力装置 260…記録媒体

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 サーバと、該サーバにネットワークを介
    して接続可能な複数のクライアントとから構成される分
    散システムにおけるトランザクション整合方法におい
    て、 クライアントのアプリケーションを通じてユーザがデー
    タの変更操作を行ったときに生成されるトランザクショ
    ンを、ネットワークを介してサーバ側のトランザクショ
    ンマネージャが受信したとき、他のクライアントから受
    信したトランザクションと意味的に矛盾するか否かの検
    査を、サーバ側のアプリケーションの意味的矛盾検査部
    にて行い、意味的矛盾が存在しない場合はトランザクシ
    ョンマネージャがそのトランザクションを実行し、意味
    的矛盾が存在する場合は、その意味的矛盾の内容に応じ
    た解消方法を実装する処理ルーチンへのアドレスを意味
    的矛盾検査部からトランザクションマネージャに返却
    し、トランザクションマネージャにて、前記返却された
    アドレスの処理ルーチンを呼び出すことで、前記複数の
    トランザクションの意味的矛盾を解消することを特徴と
    する分散トランザクション整合方法。
  2. 【請求項2】 複数のクライアントがネットワークを介
    してサーバに接続された分散システムにおけるトランザ
    クション整合方法において、 クライアントのアプリケーションを通じてユーザがデー
    タの変更操作を行ったときに生成されるトランザクショ
    ンを、クライアントからネットワークを介してサーバ側
    のトランザクションマネージャに送信する段階、 サーバ側のトランザクション競合検知部にて、クライア
    ントから受信したトランザクションと他のクライアント
    から受信したトランザクションとで共有データへのアク
    セスの競合が生じているか否かを検知する段階、 サーバ側のトランザクションマネージャにて、アクセス
    の競合する複数のトランザクション間の意味的矛盾を検
    査するようにサーバ側のアプリケーションに要求する段
    階、 サーバ側のアプリケーションの意味的矛盾検査部にて、
    競合する複数のトランザクションの意味的矛盾を検査す
    る段階、 サーバ側のトランザクションマネージャにて、競合する
    複数のトランザクションに意味的矛盾が存在しない場合
    に前記複数のトランザクションの実行を継続する段階、 サーバ側のアプリケーションの意味的矛盾検査部にて、
    競合する複数のトランザクションに意味的矛盾が存在す
    る場合に、その意味的矛盾の内容に応じた解消方法を実
    装する処理ルーチンへのアドレスをトランザクションマ
    ネージャに返却する段階、 トランザクションマネージャにて、前記返却されたアド
    レスの処理ルーチンを呼び出すことで、前記複数のトラ
    ンザクションの意味的矛盾を解消する段階、 を含むことを特徴とする分散トランザクション整合方
    法。
  3. 【請求項3】 サーバ側のアプリケーションは、アクセ
    ス競合する複数のトランザクションの意味的矛盾が、同
    一データの同一属性値を変更することにある場合、更に
    その変更度合いの差が予め定められた範囲内にあるか否
    かを検査し、予め定められた範囲内にあるときは、変更
    度の大きいトランザクションのみ実行する処理ルーチ
    ン、或いは競合するトランザクションをその到着順に実
    行する処理ルーチンへのアドレスをトランザクションマ
    ネージャに返却することを特徴とする請求項2記載の分
    散トランザクション整合方法。
  4. 【請求項4】 サーバ側のアプリケーション毎に、競合
    する複数のトランザクションの意味的矛盾の種類毎に、
    複数の処理ルーチンの内から実際に使用する処理ルーチ
    ンを事前に選択しておく段階を含むことを特徴とする請
    求項2または3記載の分散トランザクション整合方法。
  5. 【請求項5】 サーバ側のトランザクションマネージャ
    にて、オンライン接続中のクライアントから受信したト
    ランザクションが他のクライアントから受信したトラン
    ザクションとアクセス競合するか否かを、共有データに
    対するロック待ちが生じているか否かによって検知する
    ことを特徴とする請求項2,3または4記載の分散トラ
    ンザクション整合方法。
  6. 【請求項6】 サーバと、該サーバにネットワークを介
    して接続可能な複数のクライアントとから構成される分
    散システムにおけるクライアント再接続時のトランザク
    ション整合方法において、 クライアントのアプリケーションを通じてユーザがデー
    タの変更操作を行ったときに生成されるトランザクショ
    ンを、そのクライアントの再接続時にネットワークを介
    してサーバ側のトランザクションマネージャが受信した
    とき、他のクライアントから受信し記憶装置にログとし
    て記録したトランザクションと意味的に矛盾するか否か
    の検査を、サーバ側のアプリケーションの意味的矛盾検
    査部にて行い、意味的矛盾が存在しない場合はトランザ
    クションマネージャがそのトランザクションを実行し、
    意味的矛盾が存在する場合は、その意味的矛盾の内容に
    応じた解消方法を実装する処理ルーチンへのアドレスを
    意味的矛盾検査部からトランザクションマネージャに返
    却し、トランザクションマネージャにて、前記返却され
    たアドレスの処理ルーチンを呼び出すことで、トランザ
    クションの意味的矛盾を解消することを特徴とする分散
    トランザクション整合方法。
  7. 【請求項7】 クライアントの再接続時にネットワーク
    を介して受信したトランザクションの意味的矛盾の検知
    範囲を、他のクライアントから受信し記憶装置にログと
    して記録した一部のトランザクションに限定して行うこ
    とを特徴とする請求項6記載の分散トランザクション整
    合方法。
  8. 【請求項8】 複数のクライアントがネットワークを介
    してサーバに接続された分散コンピュータシステムに、 クライアントのアプリケーションを通じてユーザがデー
    タの変更操作を行ったときに生成されるトランザクショ
    ンを、クライアントからネットワークを介してサーバ側
    のトランザクションマネージャに送信する段階、 サーバ側のトランザクション競合検知部にて、クライア
    ントから受信したトランザクションと他のクライアント
    から受信したトランザクションとで共有データへのアク
    セスの競合が生じているか否かを検知する段階、 サーバ側のトランザクションマネージャにて、アクセス
    の競合する複数のトランザクション間の意味的矛盾を検
    査するようにサーバ側のアプリケーションに要求する段
    階、 サーバ側のアプリケーションの意味的矛盾検査部にて、
    競合する複数のトランザクションの意味的矛盾を検査す
    る段階、 サーバ側のトランザクションマネージャにて、競合する
    複数のトランザクションに意味的矛盾が存在しない場合
    に前記複数のトランザクションの実行を継続する段階、 サーバ側のアプリケーションの意味的矛盾検査部にて、
    競合する複数のトランザクションに意味的矛盾が存在す
    る場合に、その意味的矛盾の内容に応じたトランザクシ
    ョン整合方法を実装する処理ルーチンへのアドレスをト
    ランザクションマネージャに返却する段階、 トランザクションマネージャにて、前記返却されたアド
    レスの処理ルーチンを呼び出すことで、前記複数のトラ
    ンザクションの意味的矛盾を解消する段階、 を実行させるプログラムを記録した機械読み取り可能な
    記録媒体。
JP18740197A 1997-06-27 1997-06-27 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体 Expired - Fee Related JP3367385B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP18740197A JP3367385B2 (ja) 1997-06-27 1997-06-27 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体
US09/104,356 US6332160B1 (en) 1997-06-27 1998-06-25 Method for matching distributed transactions and machine-readable recording medium with method programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18740197A JP3367385B2 (ja) 1997-06-27 1997-06-27 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPH1124973A true JPH1124973A (ja) 1999-01-29
JP3367385B2 JP3367385B2 (ja) 2003-01-14

Family

ID=16205391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18740197A Expired - Fee Related JP3367385B2 (ja) 1997-06-27 1997-06-27 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体

Country Status (2)

Country Link
US (1) US6332160B1 (ja)
JP (1) JP3367385B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155498A (ja) * 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
JP2013077063A (ja) * 2011-09-29 2013-04-25 Fujitsu Ltd データ管理プログラム、ノード、および分散データベースシステム
JP2019121946A (ja) * 2018-01-09 2019-07-22 Kddi株式会社 文書管理システム、文書管理方法及び文書管理プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3828290B2 (ja) * 1998-07-24 2006-10-04 富士通株式会社 ドキュメント管理装置およびコンピュータをドキュメント管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000278290A (ja) * 1999-03-29 2000-10-06 Matsushita Electric Ind Co Ltd ネットワーク管理システム
US9052944B2 (en) * 2002-07-16 2015-06-09 Oracle America, Inc. Obstruction-free data structures and mechanisms with separable and/or substitutable contention management mechanisms
US20040167863A1 (en) * 2003-02-21 2004-08-26 Knowles W. Jeffrey System and method of transferring data through transaction process
US20040167854A1 (en) * 2003-02-21 2004-08-26 Knowles W. Jeffrey System and method of currency conversion in financial transaction process
US8041633B2 (en) 2003-02-21 2011-10-18 Mtrex, Inc. System and method of electronic data transaction processing
US20040187108A1 (en) * 2003-02-21 2004-09-23 Knowles W. Jeffrey Method of scheduling and event processing in computer operating system
US20050027648A1 (en) * 2003-07-29 2005-02-03 Knowles W. Jeffrey System and method of account reconciliation for electronic transactions
US8813021B1 (en) 2006-02-16 2014-08-19 Cypress Semiconductor Corporation Global resource conflict management for an embedded application design
WO2007124616A1 (en) * 2006-04-27 2007-11-08 Intel Corporation System based method for content-based partitioning and mining
US9985843B2 (en) 2015-02-27 2018-05-29 International Business Machines Corporation Efficient parallel processing of a network with conflict constraints between nodes
US20240394096A1 (en) * 2023-05-23 2024-11-28 Microsoft Technology Licensing, Llc Cloud-based architecture for processing distributed transactions

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63310042A (ja) 1987-06-12 1988-12-19 Nippon Telegr & Teleph Corp <Ntt> デ−タベ−スの整合保証方式
FR2630838A2 (fr) 1987-07-15 1989-11-03 Centre Nat Rech Scient Unite de gestion d'acces en memoire, a identifiants logiques invariants, notamment pour la gestion de bases de donnees, et procede de gestion d'acces correspondant
US4974191A (en) * 1987-07-31 1990-11-27 Syntellect Software Inc. Adaptive natural language computer interface system
JPH01166231A (ja) 1987-12-23 1989-06-30 Mitsubishi Electric Corp 索引ファイルのデータ処理方式
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5329626A (en) * 1990-10-23 1994-07-12 Digital Equipment Corporation System for distributed computation processing includes dynamic assignment of predicates to define interdependencies
JPH0520269A (ja) 1991-07-12 1993-01-29 Hitachi Eng Co Ltd 排他制御方式
US5455949A (en) * 1991-09-06 1995-10-03 International Business Machines Corporation Method for representing and signaling run-time program conditions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
JPH05143434A (ja) 1991-11-18 1993-06-11 Toshiba Corp 分散データベースシステム
US5515491A (en) * 1992-12-31 1996-05-07 International Business Machines Corporation Method and system for managing communications within a collaborative data processing system
GB9316948D0 (en) * 1993-08-14 1993-09-29 Ibm Programming aid for distributed computing systems
JPH0784851A (ja) * 1993-09-13 1995-03-31 Toshiba Corp 共有データ管理方法
US5774644A (en) * 1993-12-17 1998-06-30 International Business Machines Corporation Method and apparatus for generating a pair of interoperating communications programs
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
JPH08286916A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法
US5835758A (en) * 1995-02-28 1998-11-10 Vidya Technologies, Inc. Method and system for respresenting and processing physical and conceptual entities
US5724508A (en) * 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US5828880A (en) * 1995-07-06 1998-10-27 Sun Microsystems, Inc. Pipeline system and method for multiprocessor applications in which each of a plurality of threads execute all steps of a process characterized by normal and parallel steps on a respective datum
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6012083A (en) * 1996-09-24 2000-01-04 Ricoh Company Ltd. Method and apparatus for document processing using agents to process transactions created based on document content
GB2320594A (en) * 1996-12-20 1998-06-24 Ibm Dispatching client method calls to parallel execution threads within a server
JP3733695B2 (ja) * 1997-02-05 2006-01-11 富士ゼロックス株式会社 データベース管理システム
US6009269A (en) * 1997-03-10 1999-12-28 Digital Equipment Corporation Detecting concurrency errors in multi-threaded programs
US6021413A (en) * 1997-04-01 2000-02-01 The University Of Illinois Board Of Trustees Application-directed variable-granularity caching and consistency management
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155498A (ja) * 2011-01-25 2012-08-16 Fujitsu Ltd データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
US9020916B2 (en) 2011-01-25 2015-04-28 Fujitsu Limited Database server apparatus, method for updating database, and recording medium for database update program
JP2013077063A (ja) * 2011-09-29 2013-04-25 Fujitsu Ltd データ管理プログラム、ノード、および分散データベースシステム
JP2019121946A (ja) * 2018-01-09 2019-07-22 Kddi株式会社 文書管理システム、文書管理方法及び文書管理プログラム

Also Published As

Publication number Publication date
US6332160B1 (en) 2001-12-18
JP3367385B2 (ja) 2003-01-14

Similar Documents

Publication Publication Date Title
JP3367385B2 (ja) 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体
JP2705717B2 (ja) ロック装置及び方法、ロック要求の細分性を判別するための装置及び方法
US20090287749A1 (en) Method and system for data processing with data replication for the same
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
JPH0833857B2 (ja) システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式
JPH0131216B2 (ja)
JPH11306173A (ja) 共同作業支援システム及びプログラムを記録した機械読み取り可能な記録媒体
US20060064408A1 (en) Program, method and apparatus for database management, and recording medium
JP3042600B2 (ja) 分散ファイルの同期方式
JPH036751A (ja) フアイル・ロツク方法及び装置
US7089265B1 (en) Database management system for implementing independent database actions in response to events of interest
JP3006491B2 (ja) トランザクション実行状態管理システム、管理方法、および管理プログラムを記憶する媒体
JP2830826B2 (ja) 分散ファイルの同期システムと方法
JPH0528138A (ja) 文書編集システム
US20020062317A1 (en) Apparatuses and method for information processing
JP2904243B2 (ja) ネットワーク管理システムにおける排他制御方式
JPH09330240A (ja) 資源排他制御方式
JP4430900B2 (ja) データベース制御システム及びデータベース制御用プログラム
JPH09288608A (ja) 分散処理システムにおけるファイル共用制御装置
JP2000003333A (ja) クライアント・サーバ・システム及び記録媒体
JPH10312331A (ja) データベースの動的アクセス方法
JPH11272536A (ja) データベースのデータロック方法
KR100266220B1 (ko) 실시간 운영체제 커널 상에서의 락 서버방법
JP2001014274A (ja) 情報処理装置及び排他制御方法
JPH06139208A (ja) 共用データ管理システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071108

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081108

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081108

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091108

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091108

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101108

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111108

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111108

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121108

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121108

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20131108

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees