Source: https://patents.google.com/patent/JP3367385B2/en
Timestamp: 2019-01-20 15:55:24
Document Index: 760670351

Matched Legal Cases: ['art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 11', 'art 111', 'art 111', 'art 111', 'art 111', 'art 1', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 11', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 111', 'art 112']

JP3367385B2 - Machine-readable recording medium storing a distributed transaction consistency METHOD AND PROGRAM - Google Patents
Machine-readable recording medium storing a distributed transaction consistency METHOD AND PROGRAM
JP3367385B2
JP3367385B2 JP18740197A JP18740197A JP3367385B2 JP 3367385 B2 JP3367385 B2 JP 3367385B2 JP 18740197 A JP18740197 A JP 18740197A JP 18740197 A JP18740197 A JP 18740197A JP 3367385 B2 JP3367385 B2 JP 3367385B2
JP18740197A
JPH1124973A (en )
仁浩 田淵
【発明の詳細な説明】 【０００１】 【発明の属する技術分野】本発明は、複数のクライアントがネットワークを介してサーバに接続された分散システムにおける分散トランザクション整合方法に関する。 BACKGROUND OF THE INVENTION [0001] [Technical Field of the Invention The present invention relates to a method for distributed transaction consistency in a distributed system in which a plurality of clients connected to the server via a network. 【０００２】 【従来の技術】この種の分散システムにおいて、複数のクライアント間で共有するデータに対して個々のクライアントから異なる操作を指示するトランザクションが投入された場合に、これら競合するトランザクションを調停する方法として、従来、以下のような方法が採用されている。 [0002] In this type of distributed system, when a transaction that indicate different operation from individual clients to data to be shared among multiple clients is turned arbitrates transactions these competing as a method, a conventional method such as is employed below. 【０００３】第１の従来方法は、複数のトランザクションを並行して実行できる分散トランザクションシステムにおいて一般に採用されている方法で、処理が先行している更新トランザクション内で共有データに対してロックをかけて、同じデータを参照や更新している他のトランザクションの処理を待たせ、共有データに対するトランザクションを時間的に直列化する方法である。 [0003] The first conventional method is a method commonly employed in the distributed transaction system capable of running multiple concurrent transactions, over a lock on shared data within the update transaction process is ahead , I have kept you waiting processing of other transactions referencing and updating the same data, a method of temporally serialized transaction to shared data. 【０００４】第２の従来方法は、特開昭６３−３１００ [0004] The second conventional method, JP-A-63-3100
４２号公報に記載されている方法で、共有データに対して複数の利用者が意味的に異なる操作を指示した場合に、利用者間で打ち合わせを行って意思の疎通を図り、 In the method described in 42 JP, when instructed to semantically different operating multiple users for shared data, achieving mutual understanding by performing a meeting among users,
正しい操作を決定する方法である。 It is a method to determine the correct operation. 【０００５】 【発明が解決しようとする課題】競合するトランザクションを調停する方法として、従来より上述した各種の方法が提案されているが、何れの従来方法も画一的な調停しか行えないという問題がある。 As a method for arbitrating conflicting transactions [0008] Although various methods described above have been proposed, the problem that any only can be uniform arbitration conventional methods there is. その理由は、第１の従来方法では、競合するトランザクションをその意味的矛盾の内容にかかわらず必ず直列的に実行するからであり、第２の従来方法では、競合するトランザクションの調停をその意味的矛盾の内容にかかわらず必ず利用者間の打ち合わせによって解消するからである。 The reason is that in the first conventional method, is because executing competing transactions that semantic inconsistency always in series regardless of the content of the, in the second conventional method, the semantic arbitrates conflicting transactions regardless of the contents of the contradiction it is because always resolved by a meeting between users. 【０００６】また第２の従来方法では更に、トランザクションが競合する度に利用者間の打ち合わせが必ず行われるため、オンラインで協調作業を進める場合、作業が度々中断して煩わしいという問題もある。 [0006] Further, in the second conventional method, because the transaction is a meeting between the user is always performed in time to compete, if you proceed with the collaborative work online, there is also a problem that troublesome to suspend work often. 【０００７】そこで本発明の目的は、複数のクライアントでサーバ側の文書作成アプリケーション，図形描画アプリケーションなどのアプリケーションを共有して協調作業を行う分散システムにおいて、複数のクライアントからのトランザクションが意味的に矛盾する場合の整合方法を、サーバ側の各アプリケーション毎および意味的矛盾の内容毎に定めることができるようにした分散トランザクション整合方法を提供することにある。 An object of the present invention is therefore, document creation application server with multiple clients, in a distributed system for cooperative work sharing applications such as drawing application, semantically conflicting transactions from a plurality of clients matching method when the present invention is to provide a distributed transaction matching method which make it possible to determine for each content of each application and for each semantic inconsistency server. 【０００８】 【課題を解決するための手段】本発明は上記の目的を達成するために、サーバと、該サーバにネットワークを介して接続可能な複数のクライアントとから構成される分散システムにおけるトランザクション整合方法において、クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、ネットワークを介してサーバ側のトランザクションマネージャが受信したとき、他のクライアントから受信したトランザクションと意味的に矛盾するか否かの検査を、サーバ側のアプリケーションの意味的矛盾検査部にて行い、意味的矛盾が存在しない場合はトランザクションマネージャがそのトランザクションを実行し、 [0008] The present invention SUMMARY OF] To achieve the above object, the server and the transaction integrity in a distributed system comprised of a plurality of clients can be connected via a network to the server in the method, a transaction the user through the client application is generated when performing the operation of changing the data, when via the network server side of the transaction manager receives, semantically inconsistent with transaction received from another client whether the test is performed at semantic inconsistency check unit of the server side of the application, the transaction manager if the semantic inconsistency does not exist to perform the transaction,
意味的矛盾が存在する場合は、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスを意味的矛盾検査部からトランザクションマネージャに返却し、トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、前記複数のトランザクションの意味的矛盾を解消することを特徴とする。 If semantic inconsistency exists, it returns the address to the processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency from semantic inconsistency check part to the transaction manager at the transaction manager, which is the return by calling the processing routine of the address, characterized by eliminating the semantic inconsistency of the plurality of transactions. 【０００９】より具体的には、複数のクライアントがネットワークを介してサーバに接続された分散システムにおける分散トランザクション整合方法において、以下の手順を含んでいる。 More specifically [0009] is in a distributed transaction consistency method in a distributed system in which a plurality of clients connected to the server via a network, includes the following steps. （１）クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、クライアントからネットワークを介してサーバ側のトランザクションマネージャに送信する段階（２）サーバ側のトランザクション競合検知部にて、クライアントから受信したトランザクションと他のクライアントから受信したトランザクションとで共有データへのアクセスの競合が生じているか否かを検知する段階（３）サーバ側のトランザクションマネージャにて、アクセスの競合する複数のトランザクション間の意味的矛盾を検査するようにサーバ側のアプリケーションに要求する段階（４）サーバ側のアプリケーションの意味的矛盾検査部にて、競合する複数のトランザクションの意味的矛盾を検査する段階 (1) a transaction by a user through the client application is generated when performing the operation of changing the data, the transaction conflict detection portion of the step (2) server via a network from a client to the server side of the transaction manager Te at whether step or detecting the (3) the server-side transaction manager contention access to the shared data in the transaction received transactions and from other client received from the client occurs, a plurality of access contention step of in semantic conflicting request to the server side of the application to check the step (4) semantic inconsistency check unit of the server side of the application between transactions, checking the semantic inconsistencies of a plurality of conflicting transactions ５）サーバ側のトランザクションマネージャにて、競合する複数のトランザクションに意味的矛盾が存在しない場合に前記複数のトランザクションの実行を継続する段階（６）サーバ側のアプリケーションの意味的矛盾検査部にて、競合する複数のトランザクションに意味的矛盾が存在する場合に、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャに返却する段階（７）トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、前記複数のトランザクションの意味的矛盾を解消する段階【００１０】このように本発明では、競合する複数のトランザクションに意味的矛盾が存在する場合のその解消方法が、各アプリケーション毎および意味的 5) at the server side of the transaction manager in semantic inconsistency check part of a plurality of stages transaction semantic inconsistency continue execution of the plurality of transactions in the absence (6) the server-side applications to compete, If the semantic inconsistency multiple conflicting transactions exists at step (7) the transaction manager to return the address to the processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency transaction manager, the by calling the processing routine of the returned address, the elimination of the case where the plurality of steps to solve the semantic inconsistency transaction [0010] in this way the present invention, the semantic inconsistency multiple conflicting transactions exists method, each application and for each semantic 盾の内容毎に定めることができるため、各アプリケーションおよび意味的矛盾の内容に適した解消方法をとることができる。 It is possible to determine for each content of the shields can take resolution method which is suitable to the contents of each application and semantic inconsistency. 【００１１】また本発明では、サーバ側のアプリケーションは、アクセス競合する複数のトランザクションの意味的矛盾が、同一データの同一属性値を変更することにある場合、更にその変更度合いの差が予め定められた範囲内にあるか否かを検査し、予め定められた範囲内にあるときは、変更度の大きいトランザクションのみ実行する処理ルーチン、或いは競合するトランザクションをその到着順に実行する処理ルーチンへのアドレスをトランザクションマネージャに返却する。 [0011] In the present invention, the server-side applications, semantic inconsistency multiple transactions accessing conflict, if is to change the same attribute values ​​of the same data, defined further by the change degree in advance was examined whether in the range, when in the predetermined range, the address of the processing routine for executing the processing routine executed only large transactions change degree, or the conflicting transactions in order of arrival It returned to the transaction manager. このように無視できる程度の意味的矛盾の場合には、ユーザの介入無しに処理を進めることで、協調作業の効率化が可能となる。 In the case of such a degree of semantic inconsistencies negligible, by proceeding without user intervention, it becomes possible to streamline the cooperative work. 【００１２】また本発明では、サーバ側のアプリケーション毎に、競合する複数のトランザクションの意味的矛盾の種類毎に、複数の処理ルーチンの内から実際に使用する処理ルーチンを事前に選択しておくため、任意の解消方法を利用できる。 [0012] In the present invention, each server-side application, each type semantic inconsistencies of a plurality of conflicting transactions, to keep selecting the processing routine to be actually used from among a plurality of processing routines in advance , you can utilize any of the resolution methods. 【００１３】なお、サーバ側のトランザクションマネージャにて、オンライン接続中のクライアントから受信したトランザクションが他のクライアントから受信したトランザクションとアクセス競合するか否かは、例えば、 [0013] Incidentally, in the server side of the transaction manager, whether the transaction received from the client in the online connection to transactions and access conflict received from another client, for example,
共有データに対するロック待ちが生じているか否かによって検知することができる。 It can be detected depending on whether the lock wait against the shared data is generated. 【００１４】更に、本発明は、サーバと、該サーバにネットワークを介して接続可能な複数のクライアントとから構成される分散システムにおけるクライアント再接続時のトランザクション整合方法において、クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、そのクライアントの再接続時にネットワークを介してサーバ側のトランザクションマネージャが受信したとき、他のクライアントから受信し記憶装置にログとして記録したトランザクションと意味的に矛盾するか否かの検査を、サーバ側のアプリケーションの意味的矛盾検査部にて行い、意味的矛盾が存在しない場合はトランザクションマネージャがそのトランザクションを実行し、意味的矛盾が存在する場合は、 Furthermore, the present invention includes a server, the transaction matching method when the client reconnects in a distributed system comprised of a plurality of clients can be connected via a network to the server, the user through the client application data transactions that are generated when performing the changing operation, when received by the server side of the transaction manager via a network upon reconnection of the client, transaction and meanings logged to the received storage device from other client the manner of whether inconsistency check, carried out by the semantic inconsistency check unit of the server side of the application, if the transaction manager if the semantic inconsistency does not exist to perform the transaction, semantic inconsistency exists , の意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスを意味的矛盾検査部からトランザクションマネージャに返却し、トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、トランザクションの意味的矛盾を解消する。 The address to the processing routine for implementing the resolution method according to the semantic content of the discrepancy return to the transaction manager Semantic inconsistency check unit, at the transaction manager, by calling the routine of the return address, to eliminate the semantic inconsistency of the transaction. 【００１５】この場合、クライアントの再接続時にネットワークを介して受信したトランザクションの意味的矛盾の検知範囲を、他のクライアントから受信し記憶装置にログとして記録した一部のトランザクションに限定して行うようにしても良い。 [0015] As performed this case, the detection range of semantic inconsistencies transactions received via the network when the client reconnects, is limited to the part that is logged in the received memory transaction from another client it may be. 【００１６】 【発明の実施の形態】次に本発明の実施の形態の例について図面を参照して詳細に説明する。 [0016] Examples of embodiments of the invention will now embodiment of the present invention will be described in detail with reference to the drawings. 【００１７】図１は本発明を適用した分散処理システムの一例を示すブロック図である。 [0017] FIG. 1 is a block diagram showing an example of a distributed processing system according to the present invention. この例の分散処理システムは、サーバ１００と複数のクライアント２００とがＬＡＮ，ＷＡＮなどのネットワークを介して接続されている。 Distributed processing system of this example, and a server 100 and a plurality of clients 200 are connected via LAN, and network such as WAN. 【００１８】サーバ１００は、複数のアプリケーション１１０と、これら複数のアプリケーション１１０に共通な共通処理部１２０と、磁気ディスク等の記憶装置１３ The server 100 includes a plurality of applications 110, and these common shared processing unit 120 into a plurality of applications 110, such as a magnetic disk storage device 13
０と、記録媒体１４０とを有している。 0, and a recording medium 140. 個々のアプリケーション１１０は、例えば文書作成アプリケーション， Individual application 110, for example, a document creation application,
図形描画アプリケーションの如きアプリケーションプログラムであり、文書作成や図形描画にかかる基本的な機能を司る主処理部１１２を有すると共に、アプリケーション意味的矛盾検査部１１１を有している。 A such an application program drawing application, and has a main processor 112 that controls the basic function according to the document creation or drawing, and has an application semantic inconsistency check part 111. また共通処理部１２０は、トランザクション競合検知部１２１とトランザクションマネージャ１２２とを有している。 The common processing unit 120, and a transaction conflict detection unit 121 and the transaction manager 122. 【００１９】各アプリケーション１１０内のアプリケーション意味的矛盾検査部１１１は、自アプリケーションに関して競合する複数のトランザクションの意味的矛盾を検査し、その解消方法を決定する部分である。 [0019] Application semantic inconsistency check part 111 of the application 110 examines the semantic inconsistencies of a plurality of transactions competing for the own application is a part that determines how to resolve the conflict. このアプリケーション意味的矛盾検査部１１１は、トランザクションマネージャ１２２から競合する複数のトランザクションの意味的矛盾を検査するよう要求された場合に、 This application semantic inconsistency check unit 111, when requested to inspect semantic inconsistencies of a plurality of conflicting transaction from the transaction manager 122,
これら競合するトランザクションの意味的矛盾を検査し、意味的矛盾がない場合にはその旨をトランザクションマネージャ１２２に通知し、意味的矛盾が存在する場合には、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャに返却する。 Check the semantic inconsistency transactions that these conflict resolution, when there is no semantic inconsistencies notify the transaction manager 122, if the semantic inconsistency exists, corresponding to the contents of the semantic inconsistency to return the address of the processing routine that implements the method to the transaction manager. アプリケーション意味的矛盾検査部１１１には、システムの立ち上げ時或いはシステムの運用中に、競合する複数のトランザクションの意味的矛盾の内容に応じて、それに適した解消方法を実装する処理ルーチンのアドレスを各アプリケーション毎に設定することが可能である。 The application semantic inconsistency check unit 111, when starting the system or during operation of the system, depending on the content of semantic inconsistencies of a plurality of conflicting transaction, the address of the processing routine for implementing the resolution method suitable therefor It can be set for each application. 【００２０】トランザクション競合検知部１２１は、競合するトランザクションを検知する部分である。 The transaction conflict detection unit 121 is a section for detecting a conflicting transaction. トランザクションが競合するか否かは、本実施例の場合、トランザクションの実行によって共有データに対するロック待ちが生じたか否かによって行う。 Whether the transaction is a conflict, if the present embodiment is carried out by determining whether or not the lock wait against the shared data by the execution of a transaction has occurred. 【００２１】トランザクションマネージャ１２２は、クライアント２００から送られてくるトランザクションのサーバ１００上での実行全般を管理する部分である。 The transaction manager 122 is a part for managing the execution general on the server 100 of the transaction sent from the client 200. 各クライアント２００から送られたトランザクションに対して時刻印を付与して記憶装置１３０にトランザクションログ（受信ログ）として記録する処理や、トランザクションを実行する処理や、その実行結果をクライアントに通知する処理などを行う。 Processing and recorded as transaction logs to the storage device 130 by applying a time stamp for the transaction sent from the client 200 (reception log), processing for executing the transaction, such as a process of notifying the execution result to the client I do. また、トランザクション競合検知部１２１で或るアプリケーション１１０に関する複数のトランザクションの競合が検知された場合、そのアプリケーション１１０のアプリケーション意味的矛盾検査部１１１にその意味的矛盾を検査するように要求し、意味的矛盾が存在した場合にアプリケーション意味的矛盾検査部１１１から返却されるアドレスの処理ルーチンを呼び出すことにより、競合する複数のトランザクション間の意味的矛盾を解消する。 Further, when a plurality of transactions conflict is detected regarding a certain application 110 in the transaction conflict detection unit 121, requests to check the meaning inconsistency in the application semantic inconsistency check part 111 of the application 110, semantic by calling the address of the processing routine is returned from the application semantic inconsistency check part 111 when the conflict exists, eliminating the semantic conflicts between multiple conflicting transactions. 意味的矛盾が存在しない旨の通知をアプリケーション意味的矛盾検査部１１ A notification that semantic inconsistency does not exist the application semantic inconsistency check unit 11
１から受けたときは、当該競合する複数のトランザクションの実行を継続する。 Upon receiving from 1 continues the execution of multiple transactions the conflict. トランザクションマネージャ１ Transaction Manager 1
２２は複数のトランザクションなどを並行処理できるようにマルチスレッドで動作する。 22 operates in a multi-threaded, such as to the possible parallel processing a plurality of transactions. 【００２２】記録媒体１４０は、ＣＤ−ＲＯＭ，磁気ディスク，半導体メモリ等の機械読み取り可能な記録媒体であり、ここに記録されたサーバ用プログラムは、サーバ１００を構成するコンピュータに読み取られ、そのコンピュータ上に各アプリケーション１１０および共通処理部１２０を実現する。 The recording medium 140, CD-ROM, a magnetic disk, a machine-readable recording medium such as a semiconductor memory, program stored server here is read by the computer constituting the server 100, the computer realizing the application 110 and the shared processing unit 120 above. 【００２３】他方、各クライアント２００は、複数のアプリケーション２１０と、これら複数のアプリケーション２１０に共通な共通処理部２２０と、記憶装置２３０ [0023] On the other hand, each client 200 includes a plurality of applications 210, and these common shared processing unit 220 into a plurality of applications 210, storage device 230
と、表示装置２４０と、入力装置２５０と、記録媒体２ When a display device 240, an input device 250, a recording medium 2
６０とを有している。 And a 60. 個々のアプリケーション２１０ Of individual applications 210
は、例えば文書作成アプリケーション，図形描画アプリケーションの如きアプリケーションプログラムであり、 Is, for example, document creation application, is a such as application program of the drawing application,
入力装置２５０でデータに対する変更操作が行われたとき、その変更操作にかかるトランザクションを生成して実行し、その実行結果に応じて記憶装置２３０中のデータを更新したり、表示装置２４０の画面を更新したりする文書作成や図形描画にかかる基本的な機能を司る主処理部２１１を有する。 When changing operation for data is performed in the input device 250, and executed by generating a transaction related to the change operation, and updates the data in the storage device 230 according to the execution result, the screen of the display device 240 having a main processing unit 211 that controls the basic function according to the document creation or drawing or update. また、共通処理部２２０はトランザクションロギング部２２１を有している。 The common processor 220 has a transaction logging unit 221. 【００２４】共通処理部２２０は、アプリケーション２ [0024] The common processing unit 220, application 2
１０によってユーザ毎の操作に対応して生成されたトランザクションをサーバ１００に送出する処理や、他のクライアント２００のトランザクション実行結果をサーバ１００から受信したときに自クライアント上の該当するアプリケーションの状態をそれに合わせる処理などを司る。 10 executes a process of sending the transactions generated in response to an operation of each user to the server 100 by the transaction execution result of another client 200 the state of the corresponding application on the host client when received from the server 100 thereto responsible for processing and the like together. また、トランザクションロギング部２２１は、サーバ１００に送出したトランザクションを、送出した順番に、記憶装置２２０にトランザクションログ（送信ログ）として保存する処理や、サーバ１００からトランザクションのキャンセルが通知されてきた時などに、送信ログを参照して該当するアプリケーション２１０の状態をそのトランザクションの実行前の状態に戻す処理などを行う。 Also, transaction logging unit 221, a transaction sent to the server 100, the delivery order, the transaction log to the storage unit 220 and processing to save as (transmission log), such as when the cancel transaction has been notified from the server 100 in, and it operates to return the state of the application 210 in question refers to the transmission logs to the state before execution of the transaction. 【００２５】記録媒体２６０は、ＣＤ−ＲＯＭ，磁気ディスク，半導体メモリ等の機械読み取り可能な記録媒体であり、ここに記録されたクライアント用プログラムは、クライアント２００を構成するコンピュータに読み取られ、そのコンピュータ上に各アプリケーション２１ The recording medium 260, CD-ROM, a magnetic disk, a machine-readable recording medium such as a semiconductor memory, a client program recorded here, is read by the computer to configure the client 200, the computer each on the application 21
０および共通処理部２２０を実現する。 0 and realizing the common processing unit 220. 【００２６】本実施例の動作は、クライアント２００のアプリケーション２１０を介したユーザからのデータ変更操作をクライアント２００上で実行すると共に、そのデータ変更操作にかかるトランザクションをサーバ１０ The operation of this embodiment is adapted to perform the data change operation from the user via the application 210 of the client 200 on the client 200, the server 10 a transaction relating to the data change operation
０に送信し、それを受信したサーバ１００がトランザクションを実行する際に、互いに競合するトランザクションをトランザクション競合検知部１２１で検知し、その競合するトランザクションの意味的矛盾，その解消方法を該当するアプリケーション１１０のアプリケーション意味的矛盾検査部１１１で決定し、トランザクションマネージャ１２２がその決定された解消方法を実行するという流れが基本となる。 Sent to 0, when the server 100 receives it performs a transaction, to detect a transaction that compete with each other in a transaction conflict detection unit 121, semantic inconsistency transactions that the competing application 110 corresponding the resolution method determined by the application semantic inconsistency check part 111, the flow of running a resolution methods transaction manager 122 is the determined forms the basis of. 【００２７】図２はクライアント２００の処理の一例を示すフローチャート、図３はサーバ１００の処理の一例を示すフローチャートである。 [0027] Figure 2 is a flowchart showing an example of processing in the client 200, FIG. 3 is a flow chart showing an example of processing of the server 100. 以下、図１〜図３を参照して本実施の形態の動作を説明する。 Hereinafter, with reference to FIGS explaining the operation of the present embodiment. 【００２８】各クライアント２００のユーザが入力装置２５０を通じてアプリケーション２１０にデータ変更操作を指示すると（図２の２０１）、各クライアント２０ [0028] When the user of each client 200 instructs the data change operation to the application 210 through the input device 250 (201 in FIG. 2), each client 20
０のアプリケーション２１０はその変更操作にかかる処理を実行する（２０２）。 0 application 210 executes a process according to the changing operation (202). これにより、各クライアント２００ではその変更操作に対応する処理が即座に行われる。 Thus, in each client 200 processes corresponding to the change operation is immediately performed. 次にアプリケーション２１０は、その変更操作にかかるトランザクションを生成し（２０３）、この生成したトランザクションを共通処理部２２０に通知する。 Then application 210 generates a transaction relating to the change operation (203), and notifies the generated transaction to the common processing unit 220. 共通処理部２２０は、このトランザクションをネットワークを介してサーバ１００に送信し（２０４）、また、トランザクションロギング部２２１は、このトランザクションを記憶装置２３０に送信ログとして記録する（２０ Common processing unit 220 sends the transaction to the server 100 via the network (204), also, transaction logging unit 221 records the transmission log of the transaction to the memory device 230 (20
５）。 5). 【００２９】サーバ１００のトランザクションマネージャ１２２は、各クライアント２００から或るアプリケーション１１０に関するトランザクションを受信すると（図３の３０１）、一旦、受信ログとして記憶装置１３ The transaction manager 122 of the server 100 receives the transactions for application 110 certain from each client 200 (301 in FIG. 3), temporarily storage as reception log 13
０に保存する（３０２）。 To save to 0 (302). 記憶装置１３０に保存されたトランザクションのうち未実行のトランザクションは、 Unexecuted transactions among the transactions stored in the storage device 130,
トランザクションマネージャ１２２によってその到着順に読みだされ、トランザクションの実行が開始される（３０３）。 Read out in order of arrival by the transaction manager 122, the execution of the transaction is initiated (303). 即ち、該当するアプリケーション１１０の主処理部１１２にトランザクション実行スレッドを割り当て、当該トランザクションを実行する。 In other words, it assigns a transaction execution threads to the main processing unit 112 for the appropriate application 110, to execute the transaction. 次に、実行を開始した当該トランザクションが当該アプリケーションに関する他の実行中のトランザクションとアクセス競合するか否かがトランザクション競合検知部１２１で調べられる（３０４）。 Next, the transaction that initiated the execution whether transactions and access conflicts other running about the application is examined by the transaction conflict detection unit 121 (304). 【００３０】並行して実行されている他のトランザクションと競合しない場合には（３０４でＮＯ）、当該トランザクションの実行を継続し（３１１）、その実行完了時に実行結果を当該トランザクションの送出元クライアント以外のクライアントに通知する（３１２）。 [0030] If no conflicts with other transactions concurrently being executed (NO at 304), and continue execution of the transaction (311), the execution result than sending source client of the transaction when the execution completion to notify the client (312). この通知を受けたクライアント２００では、自クライアント上で同じ変更操作を行うことで、他のクライアントで行われた変更操作を自クライアントに反映する。 In the client 200 receives the notification, by performing the same change operation on its own client, it reflects the change operation made by other clients in the client's own client. 【００３１】他方、他のトランザクションと競合することがトランザクション競合検知部１２１で検知された場合（３０４でＹＥＳ）、トランザクションマネージャ１ [0031] On the other hand, (YES at 304) if it is detected in the transaction conflict detection unit 121 to compete with other transactions, transaction manager 1
２２は、競合するトランザクション間の意味的矛盾を検査するように当該トランザクションにかかるアプリケーション１１０のアプリケーション意味的矛盾検査部１１ 22, the application semantic inconsistency check part 11 of the according to the transaction application 110 to inspect semantic conflicts between conflicting transactions
１に要求する（３０５）。 Request 1 (305). 【００３２】アプリケーション意味的矛盾検査部１１１ [0032] application semantic inconsistency inspection section 111
は、競合するトランザクションの内容を記録装置１３０ A recording apparatus the contents of the transaction to compete 130
の受信ログから参照し、それらのトランザクションの意味的矛盾を検査する（３０６）。 Referring from reception log, checking the semantic inconsistency those transactions (306). 意味的矛盾が存在しない場合（３０７でＹＥＳ）は、アプリケーション意味的矛盾検査部１１１はその旨をトランザクションマネージャ１２２に通知し、トランザクションマネージャ１２２ If semantic inconsistency is not present (YES at 307), the application semantic inconsistency check part 111 notifies the transaction manager 122, transaction manager 122
は当該トランザクションの実行を継続する（３１１）。 Continues the execution of the transaction (311). 【００３３】他方、意味的矛盾が存在する場合、アプリケーション意味的矛盾検査部１１１は、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンを決定し、そのアドレスをトランザクションマネージャ１２２ [0033] On the other hand, if the semantic inconsistency exists, the application semantic inconsistency check part 111 determines a processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency, a transaction manager that address 122
に通知する（３０８）。 To notify the (308). トランザクションマネージャ１ Transaction Manager 1
２２は、この返却されたアドレスの処理ルーチンを呼び出すことで、競合する複数のトランザクション間の意味的矛盾を解消する（３０９）。 22, by calling the routine of this return address, to resolve the semantic conflicts between multiple conflicting transactions (309). 具体的な解消方法については後述するが、この処理ルーチンの実行によって、本トランザクションがキャンセルされたり、トランザクションの実行順序が変更されたりする。 It described later for specific resolution method, but by the execution of this routine, or the transaction is canceled, the order of execution of the transaction or changed. 【００３４】次にトランザクションマネージャ１２２ [0034] Next, the transaction manager 122
は、処理ルーチンの実行によって、本トランザクションがキャンセルされた場合には（３１０でＹＥＳ）、本トランザクションに関する処理を終了する。 Is the execution of the processing routine, if the transaction is canceled, the processing is terminated regarding (YES at 310), the transaction. 本トランザクションがキャンセルされなかった場合は、本トランザクションの実行を継続し（３１１）、その実行完了時に実行結果を当該トランザクションの送出元クライアント以外のクライアントに通知する（５１０）。 If the transaction is not canceled continues the execution of the transaction (311), and notifies the execution result at the time of execution completion to the client other than sending source client of the transaction (510). この通知を受けたクライアント２００では、自クライアント上で同じ変更操作を行うことで、他のクライアントで行われた変更操作を自クライアントに反映する。 In the client 200 receives the notification, by performing the same change operation on its own client, it reflects the change operation made by other clients in the client's own client. 【００３５】次に、クライアント２００とサーバ１００ [0035] Next, the client 200 and the server 100
の動作を、トランザクションの整合方法を中心に具体例を挙げて説明する。 Operation will be explained with a specific example mainly matching method transactions. 【００３６】例としては、図４のように、Ａ，Ｂの二つのクライアント２００がネットワークを介してサーバ１ [0036] Examples, as shown in FIG. 4, A, the server 1 via two clients 200 and B network
００（Ｓ）に接続された分散処理システムにおいて、図形描画アプリケーション１１０，２１０を使用して、一つの文書Ｘを共有しながら協調作業を行う例を用いる。 00 in the connected distributed processing system (S), using a drawing application 110, 210 share a document X using an example of performing cooperative work with.
ここで、協調作業の開始時点では、図５に示すように文書部品Ｘ１，Ｘ２，Ｘ３（各々１つのオブジェクトである）から成る文書Ｘが、各クライアントＡ，Ｂの記憶装置２３０およびサーバ１００の記憶装置１３０に記憶されており、各クライアントＡ，Ｂは同じ画面表示を得ているものとする。 Here, in the beginning of the collaborative work document X consisting FIG document as shown in 5 parts X1, X2, X3 (each is a single object), each client A, the storage device 230 and the server 100 B is stored in the storage device 130, each client a, B are assumed to have gotten the same screen display. 【００３７】この状態で、各クライアントＡ，Ｂのユーザが入力装置２５０を通じてアプリケーション２１０に文書Ｘにかかる変更操作を行うと、各クライアントＡ， [0037] In this state, the client A, the user of the B can make such change operation to the document X to the application 210 through the input device 250, each client A,
Ｂのアプリケーション２１０はその変更操作に対応した処理を自クライアント上で実行すると共に、その変更操作にかかるトランザクションを生成して各々の共通処理部２２０に通知する。 Application 210 B is and executes the processing corresponding to the change operation on the own client, notifies each of the common processor 220 to generate a transaction relating to the change operation. 【００３８】図６に、このとき生成されるトランザクションのレコード形式の一例を示す。 [0038] FIG. 6 shows an example of the record format of the transaction to be generated at this time. 図６において、データ操作コマンド列６０３は、ユーザが文書Ｘに対して行った変更操作の内容を示し、例えば文書部品Ｘ１を削除するコマンドや、文書部品Ｘ１の位置を移動するコマンドなどが設定される。 6, the data operation command string 603 shows the contents of the changing operation performed by the user to the document X, for example, a command to delete a document component X1, such as a command to move the position of the document component X1 is set that. 【００３９】操作カテゴリ６０１とオプションデータ６ [0039] and the operation category 601 option data 6
０２とは、アプリケーション意味的矛盾検査部１１１の意味的矛盾検査の便宜のためのアプリケーション情報である。 02 and is application information for the convenience of semantic inconsistency check application semantic inconsistency check part 111. このうち操作カテゴリ６０１は、変更操作のカテゴリを示す。 Among operation category 601, indicating the category of change operation. 操作カテゴリ６０１には、オブジェクトの追加とオブジェクトの削除とオブジェクトの属性値の変更という三つの何れかが設定される。 The operation category 601, one of three that the change of additional and attribute values ​​of removal and objects of objects of objects is set. 例えば図形描画アプリケーションでは、オブジェクトの追加と削除とは、 For example, in a drawing application, and add and remove objects,
丸，四角，三角などの各図形オブジェクトの追加と削除とにそれぞれ対応する。 Round, square, corresponding respectively to the adding and removing the graphic object, such as a triangle. また、各図形オブジェクトの位置，大きさ，塗りつぶし色などがオブジェクトの属性であり、従ってオブジェクトの属性値の変更は、各図形オブジェクトの位置の移動，大きさの変更，色の変更などに対応する。 The position of each graphic object, the size is an attribute, such as fill color object, thus changing the attribute value of the object, the movement of the position of each graphic object, corresponding to such changes in size, color change . 他方、オプションデータ６０２は、競合するトランザクションの調停方法を決定する際に利用する付加的な情報を設定する部分である。 On the other hand, option data 602 is a part for setting the additional information to be utilized in determining the method of arbitrating conflicting transaction. このオプションデータ６０２の利用方法については後述する。 It will be described later how to use this option data 602. 【００４０】各クライアントＡ，Ｂの共通処理部２２０ The common processing unit 220 of each client A, B
は、アプリケーション２１０からトランザクションを受け取ると、それをネットワークを介してサーバ１００に送信すると共に、トランザクションロギング部２２１を通じて記憶装置２３０に送信ログとして記録する。 Upon receipt of a transaction from the application 210, and transmits it to the server 100 via the network is recorded as the transmission log in the storage device 230 through the transaction logging unit 221. 【００４１】サーバ１００のトランザクションマネージャ１２２は、クライアントＡ，Ｂからトランザクションを受信すると、受信ログとして記憶装置１３０に保存した後、受信した各々のトランザクションの実行スレッドを生成し、複数のトランザクションを並行して処理する。 The transaction manager of the server 100 122, upon receiving a transaction from the client A, B, after storage in the storage device 130 as a reception log to generate an execution thread for each transaction received, multiple concurrent transactions to process Te. また、トランザクションマネージャ１２２は、トランザクション間の競合を検知するためにトランザクション競合検知部１２１を或るスレッドにてバックグラウンドで走行させておく。 Further, the transaction manager 122, allowed to run in the background transaction conflict detection unit 121 to detect conflicts between transactions in one thread. 【００４２】或るトランザクションがロックした共有データに対して別のトランザクションがロックしようとした場合、即ち共有データのアクセス競合が生じた場合、 [0042] In the case if another transaction for the shared data a certain transaction is locked tried to lock, ie shared data access conflict occurs,
トランザクション競合検知部１２１がそのことを検知し、トランザクション競合が発生したことをトランザクションマネージャ１２２に通知する。 Transaction conflict detection unit 121 detects that the, to notify that the transaction conflicts arise transaction manager 122. 【００４３】この通知を受けるとトランザクションマネージャ１２２は、１つのスレッドを生成し、競合しているトランザクションの識別子などを伴ってアプリケーション１１０のアプリケーション意味的矛盾検査部１１１ The transaction manager 122 receives the notification, generates one thread, the application semantic inconsistency check part 111 of the application 110 with a like identifier of the transaction in conflict
を呼び出す。 The call. 【００４４】アプリケーション意味的矛盾検査部１１１ [0044] application semantic inconsistency inspection section 111
は、記憶装置１３０の受信ログから該当するトランザクションの内容を読み出し、競合する複数のトランザクションの意味的矛盾を検査する。 Reads the contents of the transaction corresponding from reception log storage unit 130, it examines the semantic inconsistency multiple conflicting transactions. 意味的矛盾は、競合する複数のトランザクションの図６の操作カテゴリ６０１と必要に応じてデータ操作コマンド列６０３とに基づいて行う。 Semantic inconsistency is performed based on a data operation command string 603 if necessary a plurality of operation categories 601 of FIG. 6 of conflicting transaction. そして、意味的矛盾が存在しない場合には、その旨をトランザクションマネージャ１２２に通知する。 When the semantic inconsistency does not exist, notifies the transaction manager 122. 他方、意味的矛盾が存在する場合には、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャに返却する。 On the other hand, if the semantic inconsistency exists, it returns the address to the processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency transaction manager. 以下、 Less than,
具体例に基づき、アプリケーション意味的矛盾検査部１ Based on specific examples, the application semantic inconsistency check part 1
１１の機能を説明する。 11 function will be described. 【００４５】（１）同じオブジェクトの削除と属性値の変更が競合する場合図４および図５において、クライアントＡが文書部品Ｘ [0045] (1) In case FIGS. 4 and 5 changing the purge and attribute values ​​of the same object conflict, client A document part X
１を削除するトランザクションを発行した直後に、クライアントＢが文書部品Ｘ１の位置を移動するトランザクションを発行した場合が、この競合の一例である。 Immediately after issuing a transaction to delete the, if the client B has issued a transaction to move the position of the document parts X1, which is an example of this conflict. クライアントＡの上記トランザクションをＴＲ i ，このトランザクションＴＲ iをサーバ１００が受信した時刻をｔ The above-mentioned transaction of client A TR i, a time that has received the transaction TR i server 100 t
i ，クライアントＢの上記トランザクションをＴ i, the above-mentioned transaction of client B T
Ｒ i+1 ，このトランザクションＴＲ i+1をサーバ１００ R i + 1, this transaction TR i + 1 server 100
が受信した時刻をｔ i+1とした場合、図７に示すように、サーバ１００上では、例えば、スレッド１でトランザクションＴＲ iが、スレッド２でトランザクションＴ If There was a time of receiving a t i + 1, as shown in FIG. 7, on the server 100, for example, the transaction TR i thread 1, a transaction T thread 2
Ｒ i+1がそれぞれ実行される。 R i + 1 is executed, respectively. なお、トランザクション競合検知部１２１はスレッド３で実行されているものとする。 Incidentally, the transaction conflict detection unit 121 is assumed to be executed by the thread 3. そして、先行するトランザクションＴＲ iの実行中に文書部品Ｘ１にロックをかけると、後続のトランザクションＴＲ i+1は文書部品Ｘ１の参照で待たされ、その結果、バックグラウンドのスレッド３で走行しているトランザクション競合検知部１２１がアクセス競合を検知して、トランザクションマネージャ１２２に通知する。 When during the preceding transaction TR i locks the document module X1, subsequent transaction TR i + 1 is kept waiting in the reference document components X1, as a result, running the thread 3 of the background transaction conflict detection unit 121 detects an access contention, notifies the transaction manager 122. これにより、トランザクションマネージャ１２２はアプリケーション意味的矛盾検査部１１１用のスレッド４を生成し、アプリケーション１１０のアプリケーション意味的矛盾検査部１１１を呼び出す。 Accordingly, the transaction manager 122 generates a thread 4 for application semantic inconsistency check part 111, an application calls semantic inconsistency check part 111 of the application 110. 【００４６】アプリケーション意味的矛盾検査部１１１ [0046] application semantic inconsistency inspection section 111
は、記憶装置１３０の受信ログからトランザクションＴ The transaction T from reception log storage unit 130
Ｒ i ，ＴＲ i+1の内容を読み出す。 R i, read the contents of the TR i + 1. 今の場合、トランザクションＴＲ iの図６における操作カテゴリ６０１は文書部品Ｘ１の「削除」，トランザクションＴＲ i+1における操作カテゴリ６０１は文書部品Ｘ１の「属性値の変更」になっている。 For now, the operation category 601 "Delete" of the document parts X1 in FIG. 6 of the transaction TR i, operation category 601 in the transaction TR i + 1 is in a "change of attribute values" of the document parts X1. このことからアプリケーション意味的矛盾検査部１１１は、削除しようとするオブジェクトの属性値の変更が行われようとしているという意味的矛盾を検知し、それに応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャ１２２ Application semantic inconsistency check part 111 From this fact, the address of the routine to detect semantic contradiction that attribute value changes of an object to be deleted is about to take place, to implement a resolution method corresponding thereto transaction Manager 122
に返却する。 To return to. 具体的な処理ルーチンの内容としては、以下のようなものがある。 The contents of specific processing routine, are as follows. 【００４７】（ａ）トランザクションＴＲ iの実行が終了する前に、トランザクションＴＲ i+1との意味的矛盾が検知された場合は以下の何れか。 [0047] (a) before the execution of a transaction TR i is completed, the transaction TR i + 1 either semantic inconsistency below when it is detected in. トランザクションＴＲ i+1をキャンセルし、その旨をクライアントＢに伝える。 To cancel the transaction TR i + 1, tell that to the client B. トランザクションＴＲ iをキャンセルし、その旨をクライアントＡに伝える。 To cancel the transaction TR i, tell that to the client A. トランザクションＴＲ i ，ＴＲ i+1の実行順序を入れ替えるために、トランザクションＴＲ iの実行をキャンセルして、トランザクションＴＲ i+1を実行してから、 Transaction TR i, in order to switch the execution order of TR i + 1, to cancel the execution of a transaction TR i, after executing the transaction TR i + 1,
トランザクションＴＲ iの実行をなお行うか否かをクライアントＡに確認する。 To confirm whether or not still carry out the execution of the transaction TR i to the client A. （ｂ）トランザクションＴＲ iの実行が終了した後に、 (B) after the execution of transaction TR i is completed,
トランザクションＴＲ i+1との意味的矛盾が検知された場合は以下の何れか。 Transaction TR i + 1 either semantic inconsistency below when it is detected in. トランザクションＴＲ i+1をキャンセルし、その旨をクライアントＢに伝える。 To cancel the transaction TR i + 1, tell that to the client B. トランザクションＴＲ iの実行を元に戻し、上記（ａ）の何れかを実行する。 Based on the return of the execution of a transaction TR i, to perform any of the above (a). 【００４８】例えば、上記の処理ルーチンのアドレスがアプリケーション意味的矛盾検査部１１１から返却された場合、トランザクションマネージャ１２２は、トランザクションＴＲ i+1をキャンセルし、その旨をクライアントＢに伝える。 [0048] For example, if the address of the processing routine is returned from the application semantic inconsistency check part 111, the transaction manager 122 to cancel the transaction TR i + 1, conveys that to the client B. このときクライアントＢでは文書部品Ｘ１の位置を元の位置に戻す。 At this time returning the position of the document component X1 at the client B to the original position. トランザクションＴＲ Transaction TR
iの実行完了後、その結果をクライアントＢに送るので、クライアントＢでも文書部品Ｘ１が削除される。 i after the completion of the execution of, so send the results to the client B, document parts X1 is deleted any client B. 【００４９】（２）オブジェクトの追加と削除とが競合する場合図４および図５において、クライアントＡが文書部品Ｘ [0049] (2) In case 4 and 5 and the adding and removing objects conflict, client A document part X
１〜Ｘ３が記載されているページＰ１を削除するトランザクションを発行した直後に、クライアントＢがページＰ１上に新しい文書部品Ｘ４を追加するトランザクションを発行した場合が、この競合の一例である。 Immediately after the 1~X3 has issued a transaction that you want to delete the page P1 which have been described, it is a case where the client B has issued the transaction to add a new document parts X4 on page P1, which is an example of this conflict. クライアントＡの上記トランザクションをＴＲ i ，サーバ１００ The above-mentioned transaction of client A TR i, server 100
でトランザクションＴＲ iを受信した時刻をｔ i ，クライアントＢの上記トランザクションをＴＲ i+1 ，サーバ１００でトランザクションＴＲ i+1を受信した時刻をｔ In the transaction TR i time a t i which has received, TR i + 1 to the client's transaction B, and time of receiving the transaction TR i + 1 in the server 100 t
i+1とした場合、図７に示すように、サーバ１００上では、例えば、スレッド１でトランザクションＴＲ iが、 If a i + 1, as shown in FIG. 7, on the server 100, for example, the transaction TR i is thread 1,
スレッド２でトランザクションＴＲ i+1がそれぞれ実行される。 Transaction TR i + 1 are respectively executed in the thread 2. なお、トランザクション競合検知部１２１はスレッド３で実行されているものとする。 Incidentally, the transaction conflict detection unit 121 is assumed to be executed by the thread 3. そして、先行するトランザクションＴＲ iの実行中に文書部品Ｘ１〜Ｘ Then, the document parts X1~X during the execution of the preceding transaction TR i
３が記載されたページＰ１にロックをかけると、後続のトランザクションＴＲ i+1はページＰ１上の文書部品Ｘ 3 when locks to the page P1 that is described, the document module X on subsequent transaction TR i + 1 pages P1
１の参照で待たされ、その結果、バックグラウンドのスレッド３で走行しているトランザクション競合検知部１ Wait 1 reference, so that the transaction conflict detection unit 1 running at the thread 3 of the background
２１がアクセス競合を検知して、トランザクションマネージャ１２２に通知する。 21 detects the access contention, notifies the transaction manager 122. これにより、トランザクションマネージャ１２２は、アプリケーション意味的矛盾検査部１１１用のスレッド４を生成し、アプリケーション１１０のアプリケーション意味的矛盾検査部１１１を呼び出す。 Accordingly, the transaction manager 122 generates a thread 4 for application semantic inconsistency check part 111, an application calls semantic inconsistency check part 111 of the application 110. 【００５０】アプリケーション意味的矛盾検査部１１１ [0050] application semantic inconsistency inspection section 111
Ｒ i ，ＴＲ i+1の内容を読み出す。 R i, read the contents of the TR i + 1. 今の場合、トランザクションＴＲ iの図６における操作カテゴリ６０１はページＰ１の「削除」，トランザクションＴＲ i+1における操作カテゴリ６０１はページＰ１への文書部品Ｘ４の「追加」になっている。 For now, the operation category 601 "Delete" on page P1 in FIG. 6 of the transaction TR i, operation category 601 in the transaction TR i + 1 is in the "Add" of the document parts X4 to the page P1. このことからアプリケーション意味的矛盾検査部１１１は、削除しようとするオブジェクト配下に新たなオブジェクトの追加が行われようとしているという意味的矛盾を検知し、それに応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャ１２２に返却する。 Application semantic inconsistency check part 111 from this that detects semantic contradiction that addition of a new object to the object under to be deleted is about to take place, to the processing routine for implementing the resolution method accordingly to return the address to the transaction manager 122. 具体的な処理ルーチンの内容としては、前記（１）同様のものが考えられる。 The contents of specific processing routine, wherein (1) the like are conceivable. 勿論、前記（１）と異なる処理ルーチンを用意しておくことも可能である。 Of course, it is also possible to be prepared the a different processing routine (1). 【００５１】（３）オブジェクトの削除どうしが競合する場合図４および図５において、クライアントＡが文書部品Ｘ [0051] (3) In the case 4 and 5 deleting each other objects conflict, client A document part X
１を削除するトランザクションを発行した直後に、クライアントＢが同じ文書部品Ｘ１を削除するトランザクションを発行した場合が、この競合の一例である。 Immediately after issuing a transaction to delete the, if the client B issues a transaction to delete the same document component X1, which is an example of this conflict. クライアントＡの上記トランザクションをＴＲ i ，サーバ１０ The above-mentioned transaction of client A TR i, server 10
０でトランザクションＴＲ iを受信した時刻をｔ i ，クライアントＢの上記トランザクションをＴＲ i+1 ，サーバ１００でトランザクションＴＲ i+1を受信した時刻をｔ i+1とした場合、図７に示すように、サーバ１００上では、例えば、スレッド１でトランザクションＴＲ The time of reception of the transaction TR i at 0 t i, if the TR i + 1 to the client's transaction B, and time of receiving the transaction TR i + 1 in the server 100 and the t i + 1, as shown in FIG. 7 to, on the server 100, for example, transaction TR thread 1
iが、スレッド２でトランザクションＴＲ i+1がそれぞれ実行される。 i is a transaction TR i + 1 are respectively executed in the thread 2. トランザクション競合検知部１２１はスレッド３で実行されているものとする。 Transaction conflict detection unit 121 is assumed to be executed by the thread 3. そして、先行するトランザクションＴＲ iの実行中に文書部品Ｘ１にロックをかけると、後続のトランザクションＴＲ i+1は文書部品Ｘ１の参照で待たされ、その結果、バックグラウンドのスレッド３で走行しているトランザクション競合検知部１２１がアクセス競合を検知して、トランザクションマネージャ１２２に通知する。 When during the preceding transaction TR i locks the document module X1, subsequent transaction TR i + 1 is kept waiting in the reference document components X1, as a result, running the thread 3 of the background transaction conflict detection unit 121 detects an access contention, notifies the transaction manager 122. これにより、トランザクションマネージャ１２２はアプリケーション意味的矛盾検査部１１１用のスレッド４を生成し、アプリケーション１１０のアプリケーション意味的矛盾検査部１１ Accordingly, the transaction manager 122 generates a thread 4 for application semantic inconsistency check part 111, an application semantic inconsistency check part 11 of the application 110
１を呼び出す。 Call 1. 【００５２】アプリケーション意味的矛盾検査部１１１ [0052] application semantic inconsistency inspection section 111
Ｒ i ，ＴＲ i+1の内容を読み出す。 R i, read the contents of the TR i + 1. 今の場合、トランザクションＴＲ iの図６における操作カテゴリは文書部品Ｘ１の「削除」，トランザクションＴＲ i+1における操作カテゴリも文書部品Ｘ１の「削除」になっている。 For now, the operation category in Figure 6 of the transaction TR i is "Delete" of the document parts X1, also operation category in the transaction TR i + 1 is "Delete" of the document parts X1. このことからアプリケーション意味的矛盾検査部１１１ Application semantic inconsistency check part 111 from this that
は、削除しようとするオブジェクトが更に削除されようとしているという意味的矛盾を検知し、それに応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャ１２２に返却する。 Detects semantic contradiction that object to be deleted is about to be further removed, it returns the address to the processing routine for implementing the resolution method accordingly to the transaction manager 122. 具体的な処理ルーチンとしては、トランザクションＴＲ iの実行が終了する前にトランザクションＴＲ i+1との意味的矛盾が検知された場合、トランザクションＴＲ iの実行が終了した後にトランザクションＴＲ i+1との意味的矛盾が検知された場合とも、トランザクションＴＲ i+1をキャンセルする処理ルーチンが考えられる。 As a specific process routine, if the execution of a transaction TR i semantic conflicts with transaction TR i + 1 is detected before the completion of the transaction TR i + 1 after execution of the transaction TR i is completed both If semantic inconsistency is detected, it is considered routine to cancel the transaction TR i + 1. 【００５３】（４）同じオブジェクトの属性値の変更が競合する場合図４および図５において、クライアントＡが文書部品Ｘ [0053] (4) In case 4 and 5 change the attribute values ​​of the same object conflict, client A document part X
１を或る位置ｐに移動するトランザクションを発行した直後に、クライアントＢが文書部品Ｘ１を別の位置ｑに移動するトランザクションを発行した場合が、この競合の一例である。 Immediately after issuing a transaction to move 1 to a location p, if the client B has issued a transaction to move the document component X1 to another position q, which is an example of this conflict. クライアントＡの上記トランザクションをＴＲ i ，サーバ１００でトランザクションＴＲ iを受信した時刻をｔ i ，クライアントＢの上記トランザクションをＴＲ i+1 ，サーバ１００でトランザクションＴＲ The transaction client A TR i, a time of receiving the transaction TR i server 100 t i, the transaction TR the transaction client B TR i + 1, the server 100
i+1を受信した時刻をｔ i+1とした場合、図７に示すように、サーバ１００上では、例えば、スレッド１でトランザクションＴＲ iが、スレッド２でトランザクションＴＲ i+1がそれぞれ実行される。 If i + 1 the time of receiving the a t i + 1, as shown in FIG. 7, on the server 100, for example, the transaction TR i thread 1, the transaction TR i + 1 are respectively executed by the thread 2 that. なお、トランザクション競合検知部１２１はスレッド３で実行されているものとする。 Incidentally, the transaction conflict detection unit 121 is assumed to be executed by the thread 3. そして、先行するトランザクションＴＲ iの実行中に文書部品Ｘ１にロックをかけると、後続のトランザクションＴＲ i+1は文書部品Ｘ１の参照で待たされ、 When during the preceding transaction TR i locks the document module X1, subsequent transaction TR i + 1 is kept waiting in the reference document parts X1,
その結果、バックグラウンドのスレッド３で走行しているトランザクション競合検知部１２１がアクセス競合を検知して、トランザクションマネージャ１２２に通知する。 As a result, transaction conflict detection unit 121 running at the thread 3 of the background to detect the access contention, notifies the transaction manager 122. これにより、トランザクションマネージャ１２２はアプリケーション意味的矛盾検査部１１１用にスレッド４を生成し、アプリケーション１１０のアプリケーション意味的矛盾検査部１１１を呼び出す。 Accordingly, the transaction manager 122 generates a thread 4 for application semantic inconsistency check part 111, an application calls semantic inconsistency check part 111 of the application 110. 【００５４】アプリケーション意味的矛盾検査部１１１ [0054] application semantic inconsistency inspection section 111
Ｒ i ，ＴＲ i+1の内容を読み出す。 R i, read the contents of the TR i + 1. 今の場合、トランザクションＴＲ iの図６における操作カテゴリ６０１は文書部品Ｘ１の「属性値の変更」，トランザクションＴＲ For now, "Changing the attribute value" of the operation category 601 document parts X1 in FIG. 6 of the transaction TR i, transaction TR
i+1における操作カテゴリ６０１も文書部品Ｘ１の「属性値の変更」になっている。 Operation category 601 in the i + 1 is also made to the "change of attribute values" of the document parts X1. このようにアクセス競合する複数のトランザクションが、共に属性値を変更することにある場合、アプリケーション意味的矛盾検査部１１ If multiple transactions such access conflict is to both change the attribute values, the application semantic inconsistency check unit 11
１は、更にトランザクションＴＲ i ，ＴＲ i+1の図６のデータ操作コマンド列６０３を参照し、属性値の変更内容を更に詳細に検査する。 1 further transaction TR i, refers to the data operation command string 603 of FIG. 6 of TR i + 1, more detailed examination changes attribute values. 【００５５】今の場合、トランザクションＴＲ iは文書部品Ｘ１を位置ｐへ移動することであり、トランザクションＴＲ i+1は同じ文書部品Ｘ１を位置ｑへ移動することであり、意味的な矛盾がある。 [0055] In the case of now, the transaction TR i is to move the document parts X1 to the position p, transaction TR i + 1 is to move the same document parts X1 to the position q, there is a semantic contradiction . しかし、変更される属性は共に「位置」で等しい。 However, attributes which are changed are equal in the "position". そこで、移動後の位置ｐと位置ｑとの差を求め、その差が予め設定された差以下であれば意味的矛盾がごく僅かである場合の解消方法を実装する処理ルーチンのアドレスをトランザクションマネージャ１２２に返却する。 Therefore, obtains the difference between the position p and the position q of the moved transaction manager the address of the routine semantically inconsistent if the difference is less than a preset difference implements resolution methods if negligible to return to 122. このような処理ルーチンとしては以下のようなものがある。 Such processing routine are as follows. 【００５６】（ａ）トランザクションＴＲ iの実行が終了する前に、トランザクションＴＲ i+1との意味的矛盾が検知された場合は以下の何れか。 [0056] (a) before the execution of a transaction TR i is completed, the transaction TR i + 1 either semantic inconsistency below when it is detected in. トランザクションＴＲ iによる移動量とトランザクションＴＲ i+1による移動量とを比較し、移動量の大きい方を実行し、小さい方をキャンセルする。 Comparing the amount of movement by the movement amount and the transaction TR i + 1 by a transaction TR i, performs a larger amount of movement, to cancel the smaller. トランザクションＴＲ iの実行終了後に、トランザクションＴＲ i+1を実行する。 After the end of the execution of the transaction TR i to, to perform the transaction TR i + 1. 即ち、到着順に実行する。 In other words, to run in the order of arrival. （ｂ）トランザクションＴＲ iの実行が終了した後に、 (B) after the execution of transaction TR i is completed,
トランザクションＴＲ i+1との意味的矛盾が検知された場合は以下の何れか。 Transaction TR i + 1 either semantic inconsistency below when it is detected in. トランザクションＴＲ iによる移動量とトランザクションＴＲ i+1による移動量とを比較し、トランザクションＴＲ iによる移動量が大きい場合にはトランザクションＴＲ i+1をキャンセルし、その旨をクライアントＢに伝える。 Comparing the amount of movement by the movement amount and the transaction TR i + 1 by a transaction TR i, when the amount of movement by the transaction TR i is large cancels the transaction TR i + 1, conveys that to the client B. トランザクションＴＲ iの実行終了後に、トランザクションＴＲ i+1を実行する。 After the end of the execution of the transaction TR i to, to perform the transaction TR i + 1. 即ち、到着順に実行する。 In other words, to run in the order of arrival. 【００５７】このようにアクセス競合する複数のトランザクションの意味的矛盾が、同一データの同一属性値を変更することにある場合、更にその変更度合いの差が予め定められた範囲内にあるか否かを検査し、予め定められた範囲内にあるときは、変更度の大きいトランザクションのみ実行する処理ルーチン、或いは競合するトランザクションをその到着順に実行する処理ルーチンへのアドレスをトランザクションマネージャに返却する。 [0057] Thus semantic inconsistency multiple transactions accessing conflict, if is to change the same attribute values ​​of the same data, further whether or not the difference of the change degree is within a predetermined range Check the, if within a predetermined range, and returns the address to the processing routine executed processing routine executed only large transactions change degree, or the conflicting transactions in order of arrival to the transaction manager. 「大きさ」や「色」など他の属性値についても同様に扱う。 Handled in the same manner for the other attribute values ​​such as "size" and "color". 【００５８】他方、トランザクションＴＲ iによる位置ｐとトランザクションＴＲ i+1による位置ｑとの差が予め定められた値を超えている場合には、例えば上記（１）と同様の方法で処理ルーチンを決定する。 [0058] On the other hand, when the difference between the position q of the position p and transaction TR i + 1 by a transaction TR i exceeds a predetermined value, for example, the processing routine in the same manner as in (1) decide. 【００５９】また、例えばトランザクションＴＲ i ，Ｔ [0059] Also, for example transaction TR i, T
Ｒ i+1で変更する属性値が異なる場合は、意味的な矛盾が無いとする。 If the attribute value to change in R i + 1 are different, and semantic inconsistencies. アクセス競合する複数のトランザクションに意味的矛盾が無い他の例としては、同一ページにそれぞれ文書部品を新たに追加する場合などがある。 Other examples meaningless contradiction to multiple transactions accessing conflict, or they may be newly added each document part in the same page. 【００６０】次に図６のトランザクション中に付加するオプションデータ６０２の利用方法について説明する。 [0060] Next will be described how to use the option data 602 to be added during the transaction of FIG. 【００６１】オプションデータ６０２の利用方法の一つは、トランザクションのキャンセル可，不可をそのトランザクションにかかるデータ変更操作を行ったユーザが指定できるようにすることである。 [0061] One method of using the option data 602, is that the transaction allowed the cancellation, impossible is the user who made the data change operation related to the transaction to be able to specify. 前述した実施例では、意味的矛盾がある複数のトランザクションの何れかが、サーバ側のトランザクションマネージャ１２２で一方的にキャンセルされる場合があった。 In the above-described embodiment, any of a plurality of transactions with semantic inconsistency, there have been cases where unilaterally is canceled by the transaction manager 122 on the server side. このような一方的なキャンセルを望まないユーザは、データ変更操作時にキャンセル不可を指定すれば、この情報がアプリケーション２１０によってトランザクションのオプションデータ６０２に設定され、意味的矛盾検査時にアプリケーション意味的矛盾検査部１１１で考慮される。 Users such not desired unilateral cancellation, by specifying the not cancel when data change operation, the information is set in the option data 602 of the transaction by the application 210, the application semantic inconsistency check unit during semantic inconsistency check It is considered in the 111. この場合にアプリケーション意味的矛盾検査部１１１で選択される処理ルーチンの内容としては、例えば、競合するトランザクションの実行を停止し、競合するトランザクションを投入した複数のクライアントに対して何れのトランザクションを実行するかを決めるように促すものなどが考えられる。 As the contents of the processing routine is selected in the application semantic inconsistency check unit 111 when, for example, to stop the execution of the conflicting transactions, to perform any transaction for a plurality of clients which supplied the conflicting transactions such as those that encourage or to decide may be considered. 多数決などでクライアント間で１つのトランザクションが決まると、それが実行され、残りのトランザクションはキャンセルされる。 When one transaction is determined between clients like majority decision, it is executed and the rest of the transaction is canceled. 【００６２】オプションデータ６０２の他の利用方法は、意味的矛盾の詳細な検出をアプリケーション意味的矛盾検査部１１１が簡単に行えるようにするために、トランザクションのオプションデータ６０２に意味的矛盾の検出に役立つ情報をクライアント側でオプションデータ６０２に設定しておくことである。 [0062] Another method of using the option data 602, detailed detection of semantic inconsistency to an application semantic inconsistency check part 111, so that it can be easily, the detection of semantic inconsistency option data 602 of the transaction useful information on the client side is that to set the option data 602. 例えば、前記（４）の例では、クライアントＡのトランザクションのオプションデータ６０２に、属性値の変更の詳細な情報として「文書部品Ｘ１を位置ｐに移動すること」を、クライアントＢのトランザクションのオプションデータ６ For example, in the example (4), the option data 602 of the client's transaction A, a "moving the document component X1 to position p 'as detailed information attribute value change, optional data transaction Client B 6
０２に、属性値の変更の詳細な情報として「文書部品Ｘ To 02, "the document components X as detailed information of the change of the attribute value
１を位置ｑに移動すること」を、それぞれクライアントＡ，Ｂ側で設定しておく。 That "moving a 1 to a position q, is set each client A, the B side. こうすれば、アプリケーション意味的矛盾検査部１１１は、データ操作コマンド列６ In this way, the application semantic inconsistency check part 111, a data operation command string 6
０３を解析せずに、意味的矛盾の詳細を判断することができる。 03 without analyzing, it is possible to determine the details of the semantic inconsistency. 【００６３】以上の実施例では、オンライン接続中のクライアント２００から送出されるトランザクションの整合方法について説明したが、本発明は、クライアント２ [0063] In the above embodiment has been described alignment method of transactions sent from the client 200 during online connection, the present invention is, client 2
００をネットワークから切り離して単独で使用した後に、再び、ネットワークを通じてサーバ１００に接続して協調作業を行うモバイル環境における携帯端末上のアプリケーションとサーバとの間の分散トランザクション整合方法としても利用可能である。 00 after using solely disconnect from the network, again, is also available as a distributed transaction matching method between an application and a server on a mobile terminal in a mobile environment for collaborative work connected to the server 100 via the network . 以下、この点について説明する。 This point will be described below. 【００６４】クライアント２００がサーバ１００と接続されている状況において、サーバ１００のトランザクションマネージャ１２２は、記憶装置１３０に保存した最新のトランザクションログのトランザクション識別子をクライアント２００に送り付け、クライアント２００側ではその最新の識別子を記録しておく。 [0064] In situations where the client 200 is connected to the server 100, the transaction manager 122 of the server 100, dispatched the transaction identifier of the most recent transaction log stored in the storage device 130 to the client 200, the latest on the client 200 side keep a record of identifier. クライアント２ Client 2
００がサーバ１００とのネットワーク接続を切断すると、このような最新の識別子を受信できなくなるため、 When 00 disconnects the network connection to the server 100, it becomes impossible receive such date identifier,
クライアント２００のサーバ１００への再接続時にクライアント２００が保持する最新の識別子をサーバ１００ The latest identifier server to which the client 200 at the time of re-connection to the server 100 of the client 200 holds 100
に送れば、サーバ１００では、そのクライアント２００ If you send in, the server 100, the client 200
の分離中に発生したトランザクションログ（当該クライアント２００に実行結果を送っていないトランザクション）を把握できる。 The transaction log that occurred during the separation of the (transaction without sending the execution result to the client 200) can be grasped. 【００６５】クライアント２００は、サーバ１００と分離した状態でもアプリケーション２１０の実行により文書等の作成が可能である。 [0065] The client 200 is capable of creating a document or the like by executing the application 210 even when separated from the server 100. 但し、サーバ１００と接続されていないので、アプリケーション２１０で生成されたトランザクションはサーバ１００には送出されず、記憶装置２３０に保存されるだけである。 However, because they are not connected to the server 100, the transaction generated by the application 210 is not sent to the server 100, is only stored in the storage device 230. クライアント２０ The client 20
０のサーバ１００への再接続時、この保存されたトランザクションがサーバ１００に転送される。 Reconnection of 0 to the server 100, the stored transaction is forwarded to the server 100. 【００６６】サーバ１００のトランザクションマネージャ１２２は、クライアント２００から送られてきた個々のトランザクション毎に、そのクライアント２００の分離中に他のクライアントから送出され記憶装置１３０にログとして記録されたトランザクションとの意味的矛盾を検査し、意味的矛盾がある場合に解消を行う。 [0066] transaction manager 122 of the server 100, individual for each transaction transmitted from the client 200, the meaning of its during the separation of the client 200 sent from another client transactions recorded as a log in the storage device 130 Check the contradiction, it performs solved if there is a semantic inconsistency. このときに、本発明の分散トランザクション整合方法を適用できる。 In this case, it can be applied distributed transactions matching method of the present invention. 即ち、アプリケーション意味的矛盾検査部１１１ That is, the application semantic inconsistency check part 111
を呼び出し、意味的な矛盾を検査させ、意味的矛盾がある場合は、その解消方法を実装する処理ルーチンを決定させる。 The call is examined semantic inconsistencies, if there is a semantic inconsistency causes determine a processing routine that implements the resolution method. 【００６７】例えば図８に示すように、再接続したクライアント２００からトランザクションＴＲ１１〜ＴＲ１ [0067] For example, as shown in FIG. 8, a transaction from client 200 reconnects TR11~TR1
３が送られてきたとする。 3 and has been sent. また、そのクライアント２０ In addition, the client 20
０の分離中にサーバ１００が他のクライアントから受信し記憶装置１３０にログとして記録されたトランザクションとしてＴＲ２１〜ＴＲ２３があるとする。 Server 100 during the separation of the zero and there is TR21~TR23 as recorded transaction as a log of the received storage device 130 from another client. この場合、アプリケーション意味的矛盾検査部１１１は、トランザクションＴＲ１１とトランザクションＴＲ２１とに意味的矛盾があることを検知し、その解消方法として例えばトランザクションＴＲ１１をキャンセルする処理ルーチンを決定する。 In this case, the application semantic inconsistency check unit 111 detects that there is a semantic inconsistency and transactions TR11 and transaction TR21, determines the processing routine for canceling the example transaction TR11 As the resolution method. また、トランザクションＴＲ１２とトランザクションＴＲ２２とに意味的矛盾があることを検知し、その解消方法として例えばトランザクションＴ Further, to detect that there is a semantic inconsistency and transactions TR12 and transaction TR22, e.g. transaction T as its resolution method
Ｒ １２をキャンセルする処理ルーチンを決定する。 To determine the processing routine to cancel the R 12. 残りのトランザクションについては意味的な矛盾はない。 There is no semantic contradiction for the remainder of the transaction. この結果、再接続したクライアント２００では、トランザクションＴＲ１１，ＴＲ１２がキャンセルされ、またサーバ１００からそのクライアント２００にトランザクションＴＲ２１，ＴＲ２２，ＴＲ２３の実行結果が送られ、クライアント２００に反映される。 As a result, the client 200 reconnects, transaction TR11, TR12 is canceled, also transactions TR21, TR22, the execution result of TR23 is sent to the client 200 from the server 100, it is reflected to the client 200. 従って、クライアント２００では、トランザクションＴＲ１３，ＴＲ２ Therefore, the client 200, transaction TR13, TR2
１，ＴＲ２２，ＴＲ２３が実行された状態となる。 1, TR22, a state of TR23 is performed. また、サーバ１００はトランザクションＴＲ１３を実行し、その実行結果を他のクライアントに送る。 The server 100 executes the transaction TR13, and sends the execution result to the other clients. これにより、全クライアントの状態が同じになる。 As a result, of all client state is the same. 【００６８】なお、トランザクションＴＲ１１〜ＴＲ１ [0068] It should be noted that the transaction TR11~TR1
３の意味的矛盾を、そのクライアント２００の分離中にサーバ１００が他のクライアントから受信し記憶装置１ 3 of semantic inconsistencies, the server 100 during the separation of the client 200 received from the other client storage device 1
３０にログとして記録された全てのトランザクションＴ All transactions T, which has been recorded as a log to 30
Ｒ２１〜ＴＲ２３との間で検査する代わりに、記憶装置１３０にログとして記録されたトランザクションＴＲ２ Instead of testing between R21～TR23, transaction TR2 which is logged in the storage device 130
１〜ＴＲ２３のうちのカレントなトランザクション（まさに実行されようとしているトランザクション）を基準に或る範囲内で時間的に近接するトランザクションとのみ意味的矛盾を検査するようにしても良い。 Current transaction may be a (very transaction that is about to be performed) so as to check only semantic conflicts with transaction temporally close within a certain range to the reference of the 1～TR23. この時間的に近接する範囲の条件はアプリケーション１１０が自由に変更できるようにパラメータとして与えられる。 Conditions in the range of the temporal proximity application 110 is given as a parameter to be freely changed. 例えば、条件としてｔ±ａとあれば、ａ＝１のときサーバ上のトランザクションログにおけるカレントなトランザクションの前後１つずつの範囲内のトランザクションとのみ意味的矛盾の検査を行う。 For example, if the t ± a condition, inspect the saw semantic conflict with transactions in the range of one before and after the current transaction in the transaction log on the server when a = 1. 従って、図８の場合、例えばトランザクションＴＲ２３がカレントなトランザクションであれば、トランザクションＴＲ２１は除外される。 Therefore, in the case of FIG. 8, for example, the transaction TR23 is if the current transaction, the transaction TR21 is excluded. この結果、トランザクションＴＲ１１は意味的矛盾無しと判断されることになり、サーバ１００で実行され、その結果が他のクライアントに送られ、文書部品Ｘ As a result, the transaction TR11 becomes to be determined that there is no semantic inconsistencies, are performed at the server 100, the result is sent to the other client, the document module X
１が全クライアントで削除される。 1 is deleted in all clients. 【００６９】 【発明の効果】以上説明したように本発明によれば、以下のような効果を得ることができる。 [0069] According to the present invention as described in the foregoing, it is possible to obtain the following effects. 【００７０】競合する複数のトランザクションに意味的矛盾が存在する場合のその解消方法を、各アプリケーション毎および意味的矛盾の内容毎に定めることができるため、各アプリケーションおよび意味的矛盾の内容に適した解消方法をとることができる。 [0070] The resolution method when semantic inconsistency multiple transactions conflict exists, it is possible to determine for each content of each application and for each semantic inconsistencies, suitable to the contents of each application and semantic inconsistency resolution method can take. 【００７１】競合する複数のトランザクションの意味的矛盾が、同一データの同一属性値を変更することにある場合、更にその変更度合いの差が予め定められた範囲内にあるか否かを検査し、予め定められた範囲内にあるときは、変更度の大きいトランザクションのみ実行する処理ルーチン、或いは競合するトランザクションをその到着順に実行する処理ルーチンを実行することにより、無視できる程度の意味的矛盾の場合には、ユーザの介入無しに処理を進めることができ、協調作業の効率化が可能となる。 [0071] Semantic inconsistency of a plurality of conflicting transaction, who is to change the same attribute values ​​of the same data, and further checks whether the difference between the change degree is within a predetermined range, when there within a predetermined range, the processing routine to be executed only large transactions change degree, or the conflicting transaction by executing the processing routine executed by the order of arrival, in the case of the degree of semantic inconsistencies negligible may proceed without user intervention, it becomes possible to streamline the cooperative work.
【図面の簡単な説明】 【図１】本発明を適用した分散処理システムの一例を示すブロック図である。 Is a block diagram showing an example of the drawings BRIEF DESCRIPTION OF THE [Fig. 1] distributed processing system according to the present invention. 【図２】クライアントの処理の一例を示すフローチャートである。 2 is a flowchart showing an example of a process of the client. 【図３】サーバの処理の一例を示すフローチャートである。 3 is a flowchart showing an example of a server processing. 【図４】本発明の実施例の動作説明に用いる分散処理システムの例を示すブロック図である。 4 is a block diagram showing an example of a distributed processing system for use in explaining the operation of the embodiment of the present invention. 【図５】本発明の実施例の動作説明に用いる文書の構造例を示す図である。 5 is a diagram showing a structural example of a document to be used for explaining the operation of the embodiment of the present invention. 【図６】トランザクションのレコード形式の一例を示す図である。 6 is a diagram showing an example of a record format of the transaction. 【図７】サーバ上で複数のトランザクションなどがマルチスレッドで実行される様子を示す図である。 7 is a diagram showing a state in which such plurality of transactions on the server is running on a multi-threaded. 【図８】再接続したクライアントから送出されるトランザクションの例と、その時点でサーバに記録されているトランザクションログの例とを示す図である。 [8] and examples of transactions sent from a client reconnects, a diagram illustrating an example of a transaction log that is recorded in the server at that time. 【符号の説明】 １００…サーバ１１０…アプリケーション１１１…アプリケーション意味的矛盾検査部１１２…主処理部１２０…共通処理部１２１…トランザクション競合検知部１２２…トランザクションマネージャ１３０…記憶装置１４０…記録媒体２００…クライアント２１０…アプリケーション２１１…主処理部２２０…共通処理部２２１…トランザクションロギング部２３０…記憶装置２４０…表示装置２５０…入力装置２６０…記録媒体 [Reference Numerals] 100 ... server 110 ... application 111 ... Application semantic inconsistency check part 112 ... main processing unit 120 ... common processing unit 121 ... transaction conflict detection unit 122 ... transaction manager 130 ... storage device 140 ... recording medium 200 ... client 210 ... application 211 ... main processing unit 220 ... common processing unit 221 ... transaction logging unit 230 ... storage device 240 ... display device 250 ... input device 260 ... recording medium
フロントページの続き (56)参考文献 特開 昭63−310042（ＪＰ，Ａ) 田淵 仁浩 外１名，分散マルチメデ ィア文書同時共有ミドルウェアのグルー プ学習への応用，情報処理学会研究報 告，日本，社団法人情報処理学会，1996 年 ４月26日，Ｖｏｌ． Of the front page Continued (56) Reference Patent Sho 63-310042 (JP, A) Tabuchi HitoshiHiroshi out of one person, its application to group learning of distributed MultiMediaCard and breakfasts document simultaneous sharing middleware, Information Processing Society of Japan Research Report, Japan, Japan information processing Society of Japan, April 26, 1996, Vol. 96，Ｎｏ． 96, No. 35 （96−ＧＷ−17），ｐ． 35 (96-GW-17), p. 19 −− 24 Ｐ． 19 - 24 P. Ｄ． D. Ｓｔａｌｌｍｅｎ，Ｆｒｅｅ Ｓｏｆｔｗａｒｅの世界 ＣＶＳ，ＵＮ ＩＸ ＭＡＧＡＺＩＮＥ，日本，株式会 社アスキー，1990年12月 １日，Ｖｏ ｌ． Stallmen, Free Software of the world CVS, UN IX MAGAZINE, Japan, stock company ASCII, December 1, 1990, Vo l. ５，Ｎｏ． 5, No. 12，ｐ． 12, p. 79 −− 90 (58)調査した分野(Int.Cl. 7 ，ＤＢ名) G06F 12/00 G06F 9/06 G06F 17/21 79 - 90 (58) investigated the field (Int.Cl. 7, DB name) G06F 12/00 G06F 9/06 G06F 17/21
(57)【特許請求の範囲】 【請求項１】 サーバと、該サーバにネットワークを介して接続可能な複数のクライアントとから構成される分散システムにおけるトランザクション整合方法において、 クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、ネットワークを介してサーバ側のトランザクションマネージャが受信したとき、他のクライアントから受信したトランザクションと意味的に矛盾するか否かの検査を、サーバ側のアプリケーションの意味的矛盾検査部にて行い、意味的矛盾が存在しない場合はトランザクションマネージャがそのトランザクションを実行し、意味的矛盾が存在する場合は、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレス (57) and [claimed is: 1. A server, in a transaction matching method in a distributed system comprised of a plurality of clients can be connected via a network to the server, the user through the client application data transactions that are generated when performing the changing operation, when via the network server side of the transaction manager receives, whether the test semantically inconsistent with transaction received from another client, the server-side deeds in semantic inconsistency check part of the application, and executes the transaction is a transaction manager if the semantic inconsistency does not exist, if the semantic inconsistency exists, the resolution method corresponding to the contents of the semantic inconsistency address to the processing routine that implements を意味的矛盾検査部からトランザクションマネージャに返却し、トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、前記複数のトランザクションの意味的矛盾を解消することを特徴とする分散トランザクション整合方法。 Return to the transaction manager Semantic inconsistency check part, by calling in the transaction manager, the processing routine of the return address, distributed transaction consistency, characterized in that to eliminate the semantic inconsistency of the plurality of transactions Method. 【請求項２】 複数のクライアントがネットワークを介してサーバに接続された分散システムにおけるトランザクション整合方法において、 クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、クライアントからネットワークを介してサーバ側のトランザクションマネージャに送信する段階、 サーバ側のトランザクション競合検知部にて、クライアントから受信したトランザクションと他のクライアントから受信したトランザクションとで共有データへのアクセスの競合が生じているか否かを検知する段階、 サーバ側のトランザクションマネージャにて、アクセスの競合する複数のトランザクション間の意味的矛盾を検査するようにサーバ側のアプリケーションに要求する段階 2. A transaction matching method multiple clients in a distributed system connected to the server via the network, the transaction that is generated when the user performs the operation of changing the data through the client application, from the client network through the step of transmitting to the server-side transaction manager at the transaction conflict detection unit of the server side, or contention for access to shared data in the transaction received transactions and from other client received from the client occurs not step of detecting whether the step of requesting by the server side of the transaction manager in the server-side application to inspect semantic conflicts between multiple transactions to access contention 、 サーバ側のアプリケーションの意味的矛盾検査部にて、 , At the semantic inconsistency inspection unit of the server side of the application,
競合する複数のトランザクションの意味的矛盾を検査する段階、 サーバ側のトランザクションマネージャにて、競合する複数のトランザクションに意味的矛盾が存在しない場合に前記複数のトランザクションの実行を継続する段階、 サーバ側のアプリケーションの意味的矛盾検査部にて、 The step of checking the semantic inconsistencies of a plurality of conflicting transactions, at the server side of the transaction manager, the step of continuing execution of the plurality of transactions when a semantically inconsistent is not present in the plurality of conflicting transactions, the server-side by the application of semantic contradiction inspection section,
競合する複数のトランザクションに意味的矛盾が存在する場合に、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスをトランザクションマネージャに返却する段階、 トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、前記複数のトランザクションの意味的矛盾を解消する段階、 を含むことを特徴とする分散トランザクション整合方法。 If the semantic inconsistency multiple transactions conflict exists, the step of returning an address of the processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency transaction manager at the transaction manager, is the return It was by calling the routine address, distributed transaction matching method characterized by comprising, to resolve semantic inconsistency of the plurality of transactions. 【請求項３】 サーバ側のアプリケーションは、アクセス競合する複数のトランザクションの意味的矛盾が、同一データの同一属性値を変更することにある場合、更にその変更度合いの差が予め定められた範囲内にあるか否かを検査し、予め定められた範囲内にあるときは、変更度の大きいトランザクションのみ実行する処理ルーチン、或いは競合するトランザクションをその到着順に実行する処理ルーチンへのアドレスをトランザクションマネージャに返却することを特徴とする請求項２記載の分散トランザクション整合方法。 Wherein the server side application, semantic inconsistency multiple transactions accessing conflict, if is to change the same attribute values ​​of the same data, further within the difference is predetermined by the change degree checks whether the, when in the predetermined range, the processing routine to be executed only large transactions change degree, or the conflicting transaction address to the processing routine executed in order of arrival to the transaction manager distributed transaction matching method according to claim 2, wherein the return. 【請求項４】 サーバ側のアプリケーション毎に、競合する複数のトランザクションの意味的矛盾の種類毎に、 Each wherein the server side application, for each type of semantic inconsistencies of a plurality of conflicting transactions,
複数の処理ルーチンの内から実際に使用する処理ルーチンを事前に選択しておく段階を含むことを特徴とする請求項２または３記載の分散トランザクション整合方法。 Claim 2 or 3 distributed transaction matching method according to characterized in that it comprises a step to keep selecting the processing routine to be actually used from among a plurality of processing routines in advance. 【請求項５】 サーバ側のトランザクションマネージャにて、オンライン接続中のクライアントから受信したトランザクションが他のクライアントから受信したトランザクションとアクセス競合するか否かを、共有データに対するロック待ちが生じているか否かによって検知することを特徴とする請求項２，３または４記載の分散トランザクション整合方法。 At 5. The server-side transaction manager, whether the transaction received from the client is online connection whether transactions and access conflict received from another client, lock wait occurs to shared data claim 2, 3 or 4 distributed transaction matching method wherein a is detected by. 【請求項６】 サーバと、該サーバにネットワークを介して接続可能な複数のクライアントとから構成される分散システムにおけるクライアント再接続時のトランザクション整合方法において、 クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、そのクライアントの再接続時にネットワークを介してサーバ側のトランザクションマネージャが受信したとき、他のクライアントから受信し記憶装置にログとして記録したトランザクションと意味的に矛盾するか否かの検査を、サーバ側のアプリケーションの意味的矛盾検査部にて行い、意味的矛盾が存在しない場合はトランザクションマネージャがそのトランザクションを実行し、 6. A server, in a transaction matching method when the client reconnects in a distributed system comprised of a plurality of clients can be connected via a network to the server, the change operation the user data through an application of the client transactions that are generated when performing, when received by the server side of the transaction manager via a network upon reconnection of the client, semantically inconsistent with recorded transaction as a log of the received storage device from other client whether the test is performed at semantic inconsistency check unit of the server side of the application, the transaction manager if the semantic inconsistency does not exist to perform the transaction,
意味的矛盾が存在する場合は、その意味的矛盾の内容に応じた解消方法を実装する処理ルーチンへのアドレスを意味的矛盾検査部からトランザクションマネージャに返却し、トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、トランザクションの意味的矛盾を解消することを特徴とする分散トランザクション整合方法。 If semantic inconsistency exists, it returns the address to the processing routine for implementing the resolution method corresponding to the contents of the semantic inconsistency from semantic inconsistency check part to the transaction manager at the transaction manager, which is the return by calling the routine address, distributed transaction matching method characterized by eliminating semantic inconsistency transaction. 【請求項７】 クライアントの再接続時にネットワークを介して受信したトランザクションの意味的矛盾の検知範囲を、他のクライアントから受信し記憶装置にログとして記録した一部のトランザクションに限定して行うことを特徴とする請求項６記載の分散トランザクション整合方法。 7. A detection range of semantic inconsistency transaction received via the client network during reconnection, to do by limiting the recorded portion of the transaction as the received logs to the storage device from other client distributed transaction matching method according to claim 6, wherein. 【請求項８】 複数のクライアントがネットワークを介してサーバに接続された分散コンピュータシステムに、 クライアントのアプリケーションを通じてユーザがデータの変更操作を行ったときに生成されるトランザクションを、クライアントからネットワークを介してサーバ側のトランザクションマネージャに送信する段階、 サーバ側のトランザクション競合検知部にて、クライアントから受信したトランザクションと他のクライアントから受信したトランザクションとで共有データへのアクセスの競合が生じているか否かを検知する段階、 サーバ側のトランザクションマネージャにて、アクセスの競合する複数のトランザクション間の意味的矛盾を検査するようにサーバ側のアプリケーションに要求する段階、 サーバ側のアプリケーシ The distributed computer system connected to the server via a 8. multiple clients network, a transaction the user through the client application is generated when performing the operation of changing the data, via a network from a client step of transmitting to the server-side transaction manager at the transaction conflict detection unit of the server side, detecting whether contention access to shared data is generated by the transaction received transactions and from other client received from the client stages at the server side of the transaction manager, the step of requesting the server side of the application to check the semantic conflicts between multiple transactions to access conflicts, the server-side Apurikeshi ンの意味的矛盾検査部にて、 In emissions of semantic contradiction inspection section,
競合する複数のトランザクションに意味的矛盾が存在する場合に、その意味的矛盾の内容に応じたトランザクション整合方法を実装する処理ルーチンへのアドレスをトランザクションマネージャに返却する段階、 トランザクションマネージャにて、前記返却されたアドレスの処理ルーチンを呼び出すことで、前記複数のトランザクションの意味的矛盾を解消する段階、 を実行させるプログラムを記録した機械読み取り可能な記録媒体。 If the semantic inconsistency multiple transactions conflict exists, the step of returning an address of the routine that implements the transaction consistency method corresponding to the contents of the semantic inconsistency transaction manager at the transaction manager, the return been by calling the processing routine of addresses, the plurality of transactions of semantic inconsistencies the step of eliminating, machine-readable recording medium on which a program to be executed has been recorded.
JP18740197A 1997-06-27 1997-06-27 Machine-readable recording medium storing a distributed transaction consistency METHOD AND PROGRAM Expired - Fee Related JP3367385B2 (en)
JP18740197A JP3367385B2 (en) 1997-06-27 1997-06-27 Machine-readable recording medium storing a distributed transaction consistency METHOD AND PROGRAM
US09104356 US6332160B1 (en) 1997-06-27 1998-06-25 Method for matching distributed transactions and machine-readable recording medium with method programs
JPH1124973A true JPH1124973A (en) 1999-01-29
JP3367385B2 true JP3367385B2 (en) 2003-01-14
ID=16205391
JP18740197A Expired - Fee Related JP3367385B2 (en) 1997-06-27 1997-06-27 Machine-readable recording medium storing a distributed transaction consistency METHOD AND PROGRAM
US (1) US6332160B1 (en)
JP (1) JP3367385B2 (en)
JP5652228B2 (en) 2011-01-25 2015-01-14 富士通株式会社 Database server, the database updating method, and a database update
JPS63310042A (en) 1987-06-12 1988-12-19 Nippon Telegr & Teleph Corp <Ntt> Matching guarantee system for data base
FR2630838A2 (en) 1987-07-15 1989-11-03 Centre Nat Rech Scient the access management unit in memory, a logical identifiers invariants, including databases management, and method of corresponding management access
JPH01166231A (en) 1987-12-23 1989-06-30 Mitsubishi Electric Corp Data processing system for index file
JPH0520269A (en) 1991-07-12 1993-01-29 Hitachi Eng Co Ltd Exclusive control system
JPH05143434A (en) 1991-11-18 1993-06-11 Toshiba Corp Distributed data base system
JP3733695B2 (en) * 1997-02-05 2006-01-11 富士ゼロックス株式会社 Database management system
Ｐ．Ｄ．Ｓｔａｌｌｍｅｎ，ＦｒｅｅＳｏｆｔｗａｒｅの世界 ＣＶＳ，ＵＮＩＸ ＭＡＧＡＺＩＮＥ，日本，株式会社アスキー，１９９０年１２月 １日，Ｖｏｌ．５，Ｎｏ．１２，ｐ．７９ −− ９０
田淵 仁浩 外１名，分散マルチメディア文書同時共有ミドルウェアのグループ学習への応用，情報処理学会研究報告，日本，社団法人情報処理学会，１９９６年 ４月２６日，Ｖｏｌ．９６，Ｎｏ．３５（９６−ＧＷ−１７），ｐ．１９ −− ２４
JPH1124973A (en) 1999-01-29 application
US6332160B1 (en) 2001-12-18 grant
2013-11-08 LAPS Cancellation because of no payment of annual fees