JP2003036190A - アンドゥ処理システム及びアンドゥ処理方法 - Google Patents

アンドゥ処理システム及びアンドゥ処理方法

Info

Publication number
JP2003036190A
JP2003036190A JP2001224345A JP2001224345A JP2003036190A JP 2003036190 A JP2003036190 A JP 2003036190A JP 2001224345 A JP2001224345 A JP 2001224345A JP 2001224345 A JP2001224345 A JP 2001224345A JP 2003036190 A JP2003036190 A JP 2003036190A
Authority
JP
Japan
Prior art keywords
undo
data
name
difference
request
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.)
Pending
Application number
JP2001224345A
Other languages
English (en)
Inventor
Yoshiki Nakamatsu
芳樹 中松
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2001224345A priority Critical patent/JP2003036190A/ja
Publication of JP2003036190A publication Critical patent/JP2003036190A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】同じ主キー、又は、ディレクトリに対して同じ
エントリ又は属性に対する変更が複数存在しても、最初
のデータのみを保存するため、差分データを節約するこ
とができる。しかも、データの更新時刻を必要としない
ので処理時間を短縮することができ、他のクライアント
がいつでもデータを参照及び更新することができるよう
にする。 【解決手段】クライアントが使用するデータが表形式で
格納されるリレーショナルデータベースと、差分情報を
格納するアンドゥ情報格納部と、アンドゥ可能か否かの
フラグを格納するアンドゥモード格納部と、データ処理
を実行するデータ処理部とを有し、差分情報は、表が定
義された時点で作成されて格納され、データ処理部は、
クライアントからのコマンドが変更処理であり、かつ、
アンドゥ可能である場合、差分情報を変更して表を更新
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アンドゥ処理シス
テム及びアンドゥ処理方法に関するものである。
【0002】
【従来の技術】従来、ネットワーク環境におけるデータ
ベースにおいては、アプリケーションが利用するデータ
が大規模であり、信頼性、保守性、機密性等が求められ
る場合、RDBMS(Relational Data
Base Management System)が
使用されている。前記ネットワーク環境においては、デ
ータが共有されたり、他のアプリケーションで使用され
たりすることが多い。
【0003】例えば、複数のエンドユーザが同一のアプ
リケーション、又は、複数のアプリケーションを使用し
て、データを操作したり検索を行ったりする。この場
合、RDBMSによって、トランザクション(tran
saction)と呼ばれるデータの読み書きの実行処
理単位に基づいてデータを管理することによって、デー
タベースが誤って操作されないようにする。そして、前
記トランザクションは原子的性質を持つため、前記トラ
ンザクションがデータベースに対して一連の操作を行う
場合、該操作が全て行われるか、又は、該操作が全く行
われないかのどちらかである。
【0004】そして、前記各トランザクションはcom
mitを実行することによって処理が完結される。完結
されたトランザクションがデータベースに対して行った
更新内容はデータベースに反映される。
【0005】また、前記各トランザクションをアンドゥ
(undo)する場合、rollbackを実行する。
これにより、アンドゥされたトランザクションがデータ
ベースに対して行った更新内容は全て取り消される。
【0006】
【発明が解決しようとする課題】しかしながら、前記従
来のリレーショナルデータベースのようなデータベース
においては、アンドゥする場合、実行中のトランザクシ
ョンによって更新されたデータは、commit又はr
ollbackが実行されるまで、他のトランザクショ
ンによって読み書きすることができないので、トランザ
クションを実行するための操作に時間がかかってしま
う。
【0007】このため、リレーショナルデータベースの
処理効率を向上させるためには、トランザクションの実
行時間を短縮することが必要である。
【0008】本発明は、前記従来のリレーショナルデー
タベースにおけるアンドゥ処理方法の問題点を解決し
て、同じ主キー、又は、ディレクトリに対して、同じエ
ントリ又は属性に対する変更が複数存在しても、最初の
データのみを保存するため、差分データを節約すること
ができ、しかも、データの更新時間を必要としないので
処理時間を短縮することができ、他のクライアントがい
つでもデータを参照及び更新することができるアンドゥ
処理システム及びアンドゥ処理方法を提供することを目
的とする。
【0009】
【課題を解決するための手段】そのために、本発明のア
ンドゥ処理システムにおいては、クライアントが使用す
るデータが表形式で格納されるリレーショナルデータベ
ースと、差分情報を格納するアンドゥ情報格納部と、ア
ンドゥ可能か否かのフラグを格納するアンドゥモード格
納部と、データ処理を実行するデータ処理部とを有し、
前記差分情報は、表が定義された時点で作成されて格納
され、前記データ処理部は、クライアントからのコマン
ドが変更処理であり、かつ、アンドゥ可能である場合、
前記差分情報を変更して前記表を更新する。
【0010】本発明の他のアンドゥ処理システムにおい
ては、さらに、前記クライアントからのコマンドを受け
付け、応答を返す通信制御部を有する。
【0011】本発明の更に他のアンドゥ処理システムに
おいては、さらに、前記アンドゥ情報格納部は、前記差
分情報として、エントリ差分表及び属性差分表を格納す
る。
【0012】本発明の更に他のアンドゥ処理システムに
おいては、さらに、前記アンドゥ情報格納部は、最初の
差分情報のみを格納する。
【0013】本発明の更に他のアンドゥ処理システムに
おいては、さらに、ディレクトリ情報ツリーを格納する
ディレクトリサーバ内に構築される。
【0014】本発明のアンドゥ処理方法においては、ク
ライアントが使用するデータをリレーショナルデータベ
ースに表形式で格納し、表が定義されると、差分情報を
作成してアンドゥ情報格納部に格納し、前記クライアン
トからのコマンドが変更処理であり、かつ、アンドゥ可
能である場合、前記差分情報を変更して前記表を更新す
る。
【0015】本発明の他のアンドゥ処理方法において
は、さらに、前記差分情報として、エントリ差分表及び
属性差分表をアンドゥ情報格納部に格納する。
【0016】本発明の更に他のアンドゥ処理方法におい
ては、さらに、最初の差分情報のみを格納する。
【0017】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら詳細に説明する。
【0018】図1は本発明の第1の実施の形態における
データ編集システムの構成を示す図である。
【0019】図において、10はコンピュータとしての
データ編集システムであり、RDBMS11、データ処
理部12、通信制御部13、差分データを格納するアン
ドゥ情報格納部14、アンドゥモード格納部15を有す
る。ここで、前記データ編集システム10は、例えば、
ネットワーク環境において利用されるシステムであり、
アプリケーションの利用するデータが大規模であり、信
頼性、保守性、機密性等が求められるシステムである。
【0020】そして、前記通信制御部13は、AP(A
pplication Program)やユーザによ
るコマンドを、前記データ編集システム10に通信可能
に接続されたコンピュータとしてのクライアント16か
ら受け付け、結果を返信する。なお、前記クライアント
16からのコマンドとして、start、end及びc
ancelのコマンドを含む、拡張されたSQL(St
ructured Query Language)コ
マンドが入力されてもよいが、該SQLコマンドでなく
ても、同等の機能を有する独自のコマンドが入力されて
もよい。
【0021】ここで、前記startコマンドは、該s
tartコマンドが入力された以降のデータの更新がア
ンドゥの対象となることを指示するコマンドであり、前
記endコマンドは、前記startコマンド以降に更
新されたデータを確定し、アンドゥの対象としないこと
を指示するコマンドであり、また、前記cancelコ
マンドは、前記startコマンド以降に更新されたデ
ータをアンドゥし、前記startコマンド入力時のデ
ータへ復旧させることを指示するコマンドである。
【0022】そして、前記データ処理部12は、sta
rtコマンド、endコマンド及びcancelコマン
ドのそれぞれを解釈し、適当な処理を行い、前記通信制
御部13を介して、クライアント16へ応答を返信す
る。
【0023】また、前記RDBMS11上には、クライ
アント16が使用するデータがリレーショナルデータベ
ースとして構築されている。そして、アンドゥ情報格納
部14は、実際にはRDBMS11上に構築され、差分
情報を格納するリレーショナルデータベースとして機能
する。
【0024】次に、アンドゥ処理の動作について説明す
る。
【0025】図2は本発明の第1の実施の形態における
社員表の例を示す図、図3は本発明の第1の実施の形態
における部門表の例を示す図、図4は本発明の第1の実
施の形態における図2のアンドゥ情報としての社員差分
表を示す図、図5は本発明の第1の実施の形態における
図3のアンドゥ情報としての部門差分表を示す図、図6
は本発明の第1の実施の形態における通常モードのデー
タ処理部のフローチャートを示す図、図7は本発明の第
1の実施の形態におけるアンドゥ可能モードのデータ処
理部のフローチャートを示す図である。
【0026】本実施の形態において、クライアント16
は、図2及び3に示されるようなリレーショナルデータ
ベースを使用している。図において、下線が引かれた属
性は主キーを表す。そして、図2に示される社員表にお
ける所属は、図3に示される部門表の外部キーである。
このとき、アンドゥ情報格納部14には図2及び3に対
応するアンドゥ情報として、図4及び5に示されるよう
なスキーマ(schema)の差分表が格納される。
【0027】また、該差分表は、ユーザが社員表等の表
を定義した時点において、同じスキーマに変更種別を追
加したスキーマが作成される。そして、ユーザが定義し
た表、すなわち、ユーザ定義の表と同じ属性が主キーで
あるが、外部キーは存在しない。また、差分情報として
は、クライアント16からのstartコマンドを受け
付けた以降の更新データを格納し、途中のコマンドにお
いて、commitやrollbackが混在していて
もよい。
【0028】ここで、アンドゥ処理方法の例について説
明する。
【0029】まず、通信制御部13がクライアント16
からのコマンドを受け付けると、該コマンドをデータ処
理部12に送信する。該データ処理部12はアンドゥモ
ード格納部15のアンドゥモードを参照して処理を行
う。
【0030】そして、該アンドゥモードが通常モードの
場合、データ処理部12は以下の処理を行う。
【0031】まず、該データ処理部12はコマンドがe
ndまたはcancelであるか否かを判断する。前記
コマンドがendまたはcancelである場合、通信
制御部13を介してクライアント16へオペレーション
エラーを送信して処理を終了する。また、コマンドがe
ndまたはcancelではなくstartであると判
断すると、アンドゥモードをアンドゥ可能モードに変更
して、アンドゥモード格納部15に格納する。その結果
を成功として通信制御部13を介し、クライアント16
へ送信し、処理を終了する。また、コマンドがstar
tではない場合、RDBMS11へ、そのままコマンド
を送信し、前記RDBMS11は通常のSQLコマンド
の処理を行い、その結果をデータ処理部12へ返信す
る。
【0032】また、前記アンドゥモードがアンドゥ可能
モードの場合、データ処理部12は以下の処理を行う。
【0033】まず、該データ処理部12はコマンドがs
tartであるか否かを判断する。そして、前記コマン
ドがstartである場合、通信制御部13を介してク
ライアント16へオペレーションエラーを送信して処理
を終了する。
【0034】また、前記コマンドがstartでない場
合、さらに、cancelであるか否かを判断する。前
記コマンドがcancelである場合、ユーザ定義の表
の参照制約を一時無効にする。そして、前記アンドゥ情
報格納部14の差分表を参照して、全てのデータの逆操
作をユーザ定義の表に対して行う。
【0035】ここで、前記逆操作においては、差分表の
変更種別が追加のデータである場合、対応する前記ユー
ザ定義の表から該データを削除する。また、ユーザ定義
の表に前記データが存在しない場合、RDBMS11か
らエラーが返信されるが、該エラーは無視される。
【0036】そして、差分表の変更種別が削除のデータ
である場合、対応する前記ユーザ定義の表に該データを
追加する。また、ユーザ定義の表に既に同じ主キーを持
つ前記データが存在する場合、RDBMS11から主キ
ー制約違反のエラーが返されるが、差分表のデータを優
先する。すなわち、ユーザ定義の表のデータを削除し、
差分表のデータを追加する。また、このような逆操作の
順序は、任意であるので、検索順に行えばよい。
【0037】次に、ユーザ定義の表の参照制約を有効に
する。そして、アンドゥ情報格納部14の差分表のデー
タを全て削除する。また、アンドゥモードを通常モード
に変更し、前記アンドゥモード格納部15に格納する。
そして、前記通信制御部13を介して結果をクライアン
ト16に送信し、処理を終了する。
【0038】また、前記コマンドがcancelでない
場合、前記RDBMS11へ、そのままコマンドを送信
する。すると、前記RDBMS11は通常のSQLコマ
ンドの処理を行い、結果をデータ処理部12へ返信す
る。
【0039】そして、前記RDBMS11においてコマ
ンドの処理が成功したか否かを判断し、処理が成功しな
い場合は、前記通信制御部13を介して結果をクライア
ント16に送信し、処理を終了する。また、処理が成功
し、コマンドが変更処理の場合、すなわち、inser
t、delete及びupdateのいずれかのコマン
ドを入力した場合、前記アンドゥ情報格納部14の差分
表へ差分データを追加する。そして、該差分データを変
更前のデータとして、前記差分データの変更種別がde
leteとupdateの場合、削除を指定し、ins
ertの場合、追加を指定する。
【0040】また、差分表へ差分データを追加する場
合、既に同じ主キーのデータが存在する時、主キー制約
違反のエラーが前記RDBMS11から返信されるが、
前記主キー制約違反のエラーは単に無視される。そし
て、前記通信制御部13を介して結果をクライアント1
6に送信し、処理を終了する。
【0041】次に、通常モードにおけるデータ処理部の
フローチャートについて説明する。 ステップS1 コマンドがend又はcancelであ
るか否かを判断する。end又はcancelである場
合はステップS2へ進み、end又はcancelでな
い場合はステップS3へ進む。 ステップS2 通信制御部13を介してクライアント1
6へオペレーションエラーを送信して処理を終了する。 ステップS3 コマンドがstartであるか否かを判
断する。startである場合はステップS5に進み、
startでない場合はステップS4に進む。 ステップS4 RDBMS11に、そのままコマンドを
送信する。 ステップS5 アンドゥモードをアンドゥ可能モードに
変更して、アンドゥモード格納部15へ格納する。 ステップS6 通信制御部13を介して、結果をクライ
アント16へ送信して処理を終了する。
【0042】次に、アンドゥ可能モードにおけるデータ
処理部のフローチャートについて説明する。 ステップS11 データ処理部12はコマンドがsta
rtであるか否かを判断する。startである場合は
ステップS12に進み、startでない場合はステッ
プS13に進む。 ステップS12 通信制御部13を介してクライアント
16へオペレーションエラーを送信して処理を終了す
る。 ステップS13 コマンドがcancelであるか否か
を判断する。cancelである場合はステップS17
に進み、cancelでない場合はステップS14に進
む。 ステップS14 RDBMS11へ、そのままコマンド
を送信する。 ステップS15 RDBMS11においてコマンドが成
功したか否かを判断する。成功した場合はステップS1
6に進み、成功しない場合はステップS22に進む。 ステップS16 コマンドが変更処理の場合、アンドゥ
情報格納部14の差分表へ差分データを追加する。 ステップS17 ユーザ定義の表の参照制約を一時無効
にする。 ステップS18 アンドゥ情報格納部14の差分表を参
照して、全てのデータの逆操作をユーザ定義の表に対し
て行う。 ステップS19 ユーザ定義の表の参照制約を有効にす
る。 ステップS20 アンドゥ情報格納部14の差分表のデ
ータを全て削除する。 ステップS21 アンドゥモードを通常モードに変更
し、アンドゥモード格納部15に格納する。 ステップS22 通信制御部13を介して結果をクライ
アント16へ送信して処理を終了する。
【0043】次に、データベースの内容が図2及び3に
示されるものであり、コマンドのシーケンスがクライア
ント16から入力された場合について説明する。
【0044】図8は本発明の第1の実施の形態における
社員表の他の例を示す図、図9は本発明の第1の実施の
形態における部門表の他の例を示す図、図10は本発明
の第1の実施の形態における図8のアンドゥ情報として
の社員差分表を示す図、図11は本発明の第1の実施の
形態における図9のアンドゥ情報としての部門差分表を
示す図である。
【0045】ここで、前記コマンドのシーケンスは、 第1コマンド:start 第2コマンド:delete from 社員表 where 社員番号=’0005’ 第3コマンド:update 社員表 set 所属=’G60’ where 社員番号=’0011’ 第4コマンド:insert into 社員表(社員
番号、社員名、給与、所属) values(’0014’、’△□’、’40’、’
G60’) 第5コマンド:delete from 部門表 where 部門番号=’G50’ 第6コマンド:cancel である。
【0046】ここで、前記第5コマンドのdelete
が入力された後、ユーザ定義の表は、図8及び9に示さ
れるようになっている。また、差分表は、図10及び1
1のようになっている。続いて、第6コマンドのcan
celが入力されると、社員表の参照制約を一時無効に
して、差分表の逆操作を行う。
【0047】該逆操作の順序は任意なので、データ(’
0005’、’○○’、’65’、’G50’)を追加
することもある。この場合、所属のG50に対応するデ
ータが部門表に含まれていないが、あらかじめ、参照制
約を一時無効にしているので、前記データ(’000
5’、’○○’、’65’、’G50’)は、エラーと
ならずに、追加される。
【0048】次に、データ(’0011’、’△
△’、’50’、’G50’)を復元する。社員表には
既に同じ主キーを持つデータが含まれるので、主キー制
約違反のエラーがRDBMS11から返信される。した
がって、社員表のデータを削除した後、前記データ(’
0011’、’△△’、’50’、’G50’)が追加
される。
【0049】次に、データ(’0014’、’△
□’、’40’、’G60’)を社員表から削除する。
そして、部門差分表からデータ(’G50’、’開発
部’)を検索し、部門表に追加する。
【0050】最後に、参照制約を有効にして第6コマン
ドのcancelの処理が終了する。そして、該can
celの処理が行われた結果、図2及び3に示されるデ
ータに復元される。また、図10及び11に示される各
差分表の内容は空になる。
【0051】次に、データベースの内容が図2及び3に
示されるものであり、コマンドのシーケンスがクライア
ント16から入力された他の場合について説明する。
【0052】図12は本発明の第1の実施の形態におけ
る社員表の更に他の例を示す図、図13は本発明の第1
の実施の形態における部門表の更に他の例を示す図、図
14は本発明の第1の実施の形態における図12のアン
ドゥ情報としての社員差分表を示す図、図15は本発明
の第1の実施の形態における図13のアンドゥ情報とし
ての部門差分表を示す図である。
【0053】ここで、前記コマンドのシーケンスは、 第1コマンド:start 第2コマンド:delete from 社員表 where 社員番号=’0005’ 第3コマンド:insert into 社員表(社員
番号、社員名、給与、所属) values(’0005’、’◇○’、’55’、’
G50’) 第4コマンド:insert into 社員表(社員
番号、社員名、給与、所属) values(’0014’、’△□’、’40’、’
G60’) 第5コマンド:delete from 社員表 where 社員番号=’0014’ 第6コマンド:cancel である。
【0054】ここで、第3コマンドのinsertを入
力した時に、社員差分表にデータ(’0005’、’◇
○’、’55’、’G50’)を追加しようとするが、
社員差分表には既に同じ主キーを持つデータが存在する
ので、主キー制約違反になり追加することができない。
しかし、このエラーは単に無視される。
【0055】同様に、第5コマンドのdeleteを入
力した時に、社員差分表にデータ(’0014’、’△
□’、’40’、’G60’)を追加しようとするが、
社員差分表には既に同じ主キーを持つデータが存在する
ので、主キー制約違反になり追加することができない
が、このエラーも単に無視される。
【0056】ここで、前記第5コマンドのdelete
が入力された後、ユーザ定義の表は、図12及び13に
示されるようになっている。
【0057】そして、第6コマンドのcancelが入
力されると社員表の参照制約を一時無効にして、差分表
の逆操作を行う。
【0058】まず、データ(’0005’、’○
○’、’65’、’G50’)を復元する。この場合、
社員表には既に同じ主キーを持つデータが存在するの
で、主キー制約違反のエラーがRDBMS11から返信
される。したがって、ユーザ定義の表のデータを削除し
た後、データ(’0005’、’○○’、’65’、’
G50’)を追加する。
【0059】次に、データ(’0014’、’△
□’、’40’、’G60’)を削除しようとするが該
データ(’0014’、’△□’、’40’、’G6
0’)は社員表に存在しないので、エラーがRDBMS
11から返信されるが前記エラーは単に無視される。
【0060】最後に、参照制約を有効にして第6コマン
ドのcancelの処理が終了する。そして、該can
celの処理が行われた結果、図2及び3に示されるデ
ータに復元される。また、図14及び15に示される各
差分表の内容は空になる。
【0061】このように、本実施の形態において、同じ
主キーに対する変更が複数存在しても、最初のデータの
みが差分表に保存され、かつ、正しく復元される。ま
た、最初のデータのみを保存するので、差分データを節
約することができる。しかも、データの更新時刻を必要
としないので、更新量が膨大になっても、メモリや2次
記憶をそれほど消費することなく、処理時間を短縮する
ことができる。
【0062】また、RDBMS11の機能を活用して同
じ主キーに対する操作であるか否かを判定するので、実
現も容易である。また、個々の操作に対するcommi
tさえ行っていれば、他のクライアントがいつでもデー
タを参照及び更新することが可能である。
【0063】次に、本発明の第2の実施の形態について
説明する。なお、前記第1の実施の形態と同じ構成を有
するもの及び同じ動作については、その説明を省略す
る。
【0064】図16は本発明の第2の実施の形態におけ
るディレクトリサーバの構成を示す図である。
【0065】図において、20はコンピュータとしての
ディレクトリサーバであり、アンドゥ情報格納部21、
RDBMS22、ディレクトリ制御部23、通信制御部
24、ディレクトリ情報部25、データ処理部としての
アンドゥ処理部26、アンドゥモード格納部27及びク
ライアント28を有する。
【0066】前記ディレクトリサーバ20は、ディレク
トリ情報ツリー(tree)として管理された、開始ア
ドレスとしてのエントリ(entry)を保持する。そ
れぞれの該エントリは、DN(Distinguish
ed Name:識別名)で一意に特定することができ
る。なお、該DNは、属性型と属性値からなるものであ
り、国、組織、組織単位、名前を特定する。また、DN
から一部の情報が省略されている時、そこから得ること
ができる前記エントリをRDN(Relative D
istinguished Name:相対識別名)と
言う。
【0067】次に、本実施の形態におけるディレクトリ
サーバ20の動作について説明する。
【0068】図17は本発明の第2の実施の形態におけ
るLDAPの追加操作の構文を示す図、図18は本発明
の第2の実施の形態におけるLDAPの削除操作の構文
を示す図、図19は本発明の第2の実施の形態における
LDAPの変更操作の構文を示す図、図20は本発明の
第2の実施の形態におけるLDAPのRDN変更操作の
構文を示す図、図21は本発明の第2の実施の形態にお
けるLDAPの拡張操作と拡張応答の構文を示す図、図
22は本発明の第2の実施の形態におけるエントリ差分
表を示す図、図23は本発明の第2の実施の形態におけ
る属性差分表を示す図である。
【0069】まず、前記ディレクトリサーバ20は、ク
ライアント28からコマンドとしてのLDAP(Lig
htweight Directory Access
Protocol)の要求を受け付ける。
【0070】ここで、前記LDAPとは、RFC(Re
quest for Comment)1777によっ
て定められたディレクトリサービスにアクセスするため
の標準的なIP(Internet Protoco
l)であり、要求としてディレクトリにおけるエントリ
の検索、追加、削除、変更、RDNの変更、サブディレ
クトリ情報ツリーの移動等のほかに拡張操作が規定され
ている。
【0071】なお、該拡張操作はプライベートな操作を
拡張するために設けられており、その応答は拡張応答と
して規定されている。また、図21に示されるように、
前記拡張操作としてのExtended Reques
t、及び、拡張応答としてのExtended Res
ponseの構文が規定されている。
【0072】そして、図17に示されるようなLDAP
の追加操作の構文において、entryは追加する上位
のエントリの識別名である。また、attribute
sは追加するエントリの属性型と属性値のリストであ
り、オブジェクトクラス、RDN、必須属性が必ず含ま
れる。なお、指定のエントリが既に存在すればエラーに
なる。
【0073】そして、図18に示されるようなLDAP
の削除操作の構文においては、削除するエントリの識別
名を指定する。
【0074】また、図19に示されるようなLDAPの
変更操作の構文においては、objectは変更するエ
ントリの識別名、modificationはそのエン
トリで行う操作のリストを示す。そして、該操作はad
d、delete及びreplaceのいずれかであ
り、リストの順に実行される。
【0075】まず、addは指定の属性に指定の属性値
を追加する。そして、指定の属性がない場合は該属性を
作成する。次に、deleteは指定の属性から指定の
属性値を削除する。そして、属性値の指定がない場合は
全ての属性値を削除する。最後に、replaceは指
定の属性の全既存属性値を指定の属性値に置き換える。
そして、指定の属性がない場合は該属性を作成する。ま
た、属性値の指定がない場合、既存の属性を削除する
が、該既存の属性が存在しなければ単に無視する。
【0076】そして、図20に示されるようなLDAP
のRDNの変更操作の構文において、entryは変更
を行うエントリの識別名、newrdnはエントリの更
新後の相対識別名、deleteoldrdnは更新前
の相対識別名に使われている属性値をエントリの属性値
として残すか否かのフラグ、newSuperior
は、存在するならば、直接上位におけるエントリの識別
名を表す。
【0077】また、前記通信制御部24は、前記APや
ユーザによるクライアント28からの要求を受け付け、
結果を返信する。また、前記クライアント28からの要
求として、拡張されたLDAPの要求を入力することが
できる。なお、実際には、LDAPの要求でなく、同等
の操作をすることができる独自の要求であってもよい。
【0078】本実施の形態においては、前記拡張操作で
start、end及びcancelを定義する。ま
た、図21に示されるように、ExtendedReq
uestは、requestNameとrequest
Valueとから成る。ここで、前記requestN
ameは一意な要求識別子であり、start、end
及びcancelに相当する一意な識別子を割り当て
る。また、前記requestValueは存在しなく
てもよい任意の項目であり、本実施の形態においては、
前記項目は存在しない。
【0079】ここで、前記start要求は、該sta
rt要求が入力された以降のデータの更新がアンドゥの
対象となることを指示する要求である。
【0080】また、end要求は、前記start要求
以降の更新データを確定し、アンドゥの対象とはしない
ことを指示する要求である。
【0081】そして、cancel要求は、前記sta
rt要求以降の更新データをアンドゥし、前記star
t要求入力時のデータへ復旧することを指示する要求で
ある。
【0082】ここで、前記アンドゥ処理部26は、st
art、end及びcancelのそれぞれの要求を解
釈し、適当な処理を行って、前記通信制御部24を介し
て結果をクライアント28へ送信して処理を終了する。
【0083】また、前記ディレクトリ制御部23はLD
APの要求を受け付けると、前記ディレクトリ情報部2
5にアクセスし、処理を実行する。該ディレクトリ情報
部25は、ディレクトリ情報ツリーとして管理されたエ
ントリを保持する。
【0084】そして、アンドゥ情報格納部は21は、実
際はRDBMS22上に構築され、差分情報を格納する
リレーショナルデータベースのエントリ差分表及び属性
差分表として表現される。なお、前記エントリ差分表
は、図22に示されるようなスキーマを持ち、エントリ
のDN及び変更種別から成る。ここで、図において、下
線が引かれたDNは主キーを表す。
【0085】また、前記属性差分表は図23に示される
ようにスキーマを持ち、エントリのDN、属性、及び属
性値から成る。ここで、図において、下線が引かれたエ
ントリのDNと属性は主キーを表す。
【0086】そして、前記アンドゥモード格納部27
は、現在の処理がアンドゥの対象にならないことを意味
する通常モードであるか、アンドゥの対象であることを
意味するアンドゥ可能モードのいずれかを示すフラグを
格納する。
【0087】ここで、アンドゥ処理方法の例について説
明する。
【0088】図24は本発明の第2の実施の形態におけ
る通常モードのデータ処理部のフローチャートを示す
図、図25は本発明の第2の実施の形態におけるアンド
ゥ可能モードのデータ処理部のフローチャートを示す図
である。
【0089】まず、通信制御部24がクライアント28
からの要求を受け付けると、該要求をアンドゥ処理部2
6に送信する。すると、該アンドゥ処理部26はアンド
ゥモード格納部27のアンドゥモードを参照して処理を
行う。
【0090】そして、該アンドゥモードが通常モードの
場合、アンドゥ処理部26は以下の処理を行う。
【0091】まず、要求がend又はcancelであ
るか否かを判断する。そして、該要求がend又はca
ncelである場合、通信制御部24を介してクライア
ント28へオペレーションエラーを送信して処理を終了
する。また、要求がend又はcancelではなくs
tartであると判断すると、アンドゥモードをアンド
ゥ可能モードに変更して、アンドゥモード格納部27に
格納する。その結果を成功として通信制御部24を介
し、クライアント28へ送信し、処理を終了する。
【0092】また、要求がstartではない場合、デ
ィレクトリ制御部23へ、そのまま要求を送信し、前記
ディレクトリ制御部23は通常のLDAP要求の処理を
行い、その結果をアンドゥ処理部26へ送信する。
【0093】また、前記アンドゥモードがアンドゥ可能
モードの場合、アンドゥ処理部26は以下の処理を行
う。
【0094】なお、要求がstartであるか否かを判
断する。前記要求がstartである場合、通信制御部
24を介してクライアント28へオペレーションエラー
を送信して処理を終了する。
【0095】次に、要求がstartでない場合、さら
に、要求がcancelであるか否かを判断する。
【0096】そして、前記要求がcancelである場
合、アンドゥ情報格納部21の差分表を参照して、全て
のデータの逆操作にあたるLDAP要求をディレクトリ
制御部23送信する。ここで、前記逆操作は、エントリ
差分表、属性差分表の順に行うが、それぞれの表におけ
る逆操作の順序は任意であるので、検索順に行えばよ
い。
【0097】まず、エントリ差分表の逆操作は、該エン
トリ差分表を検索し、検索データとして(DN、”追
加”)が得られた場合、逆操作のLDAP要求としてD
elRequest DNをディレクトリ制御部23へ
送る。そして、エントリ差分表を検索し、検索データと
して(DN、”削除”)が得られた場合、属性差分表か
ら該当するエントリの属性を検索する。このとき、検索
されたデータは属性差分表からは削除する。または、逆
操作のLDAP要求としてAddRequestDNか
らRDNを除いた部分である、属性リストをディレクト
リ制御部23へ送る。
【0098】いずれの場合も、もし指定のエントリがデ
ィレクトリ情報部25に存在しなければ、前記ディレク
トリ制御部23によるLDAP要求の処理の結果として
エラーを返信すことになるが、そのエラーは単に無視す
る。
【0099】また、属性差分表の逆操作は、該属性差分
表を検索し、検索データとして(DN、A、”a”)が
得られたとすると、逆操作のLDAP要求としてのMo
difyRequest DN(replace
(A、”a”))を前記ディレクトリ制御部23へ送
る。もし、指定のエントリがディレクトリに存在しない
場合、前記ディレクトリ制御部23によるLDAP要求
処理の結果としてエラーを返信するが、そのエラーは単
に無視する。
【0100】続いて、アンドゥ情報格納部21の差分表
のデータを全て削除する。また、アンドゥモードを通常
モードに変更し、アンドゥモード格納部27に格納す
る。そして、前記通信制御部24を介して結果をクライ
アント28に送信し、処理を終了する。
【0101】また、前記要求がcancelでない場
合、すなわち、通常の要求が入力された場合、前記ディ
レクトリ制御部23へ、そのまま要求を送信する。前記
ディレクトリ制御部23は通常のLDAP要求の処理を
行い、結果をアンドゥ処理部26へ送信する。そして、
前記ディレクトリ制御部23において要求の処理が成功
したか否かを判断し、処理が成功しない場合は前記通信
制御部24を介して結果をクライアント28に送信し、
処理を終了する。また、処理が成功し、要求が変更処理
の場合、すなわち、AddRequest、DelRe
quest、ModifyRequest、又は、Mo
difyDNRequestのいずれかの要求を入力し
た場合、前記アンドゥ情報格納部21の差分表へ差分デ
ータを追加する。
【0102】ここで、前記要求がAddRequest
の場合、エントリ差分表へentryで指定された上位
エントリのDNとattributesに含まれるRD
Nとによって、構成される識別名と変更種別が‘追加’
から成るデータを挿入する。ただし、主キー制約違反が
発生する場合は前記データを挿入しない。なお、属性差
分表へのデータの挿入は行わない。
【0103】また、前記要求がDelRequestの
場合、前記エントリ差分表へ、指定のDNと変更種別が
‘削除’から成るデータを挿入する。さらに、属性差分
表に、指定のDNとそのエントリが保持していた属性
と、属性値から成るデータを挿入する。ただし、主キー
制約違反が発生する場合は前記データを挿入しない。
【0104】そして、前記要求がModifyRequ
estの場合、前記エントリ差分表へのデータの挿入は
行わない。前記属性差分表へobjectで指定される
エントリのDNとmodificationで指定され
る属性とその属性の変更前の属性値から成るデータを挿
入する。ただし、主キー制約違反が発生する場合は前記
データを挿入しない。
【0105】また、前記要求がModifyDNReq
uestの場合、前記エントリ差分表へ、entryで
指定されるエントリのDNと変更種別が‘削除’から成
るデータを挿入する。また、entry、newrdn
及びnewSuperiorのいずれかで指定されるエ
ントリのDNと変更種別が‘追加’から成るデータを挿
入する。ただし、主キー制約違反が発生する場合には、
前記データを挿入しない。
【0106】例えば、entryが”A=a、B=b、
C=c”、newrdnが”D=d”、newSupe
riorが存在しない場合、(”A=a、B=b、C=
c”、削除)、(”A=a、B=b、D=d”、”追
加”)を挿入する。また、entryが”A=a、B=
b、C=c”、newrdnが”D=d”、newSu
periorが”A=a、E=e”の場合、(”A=
a、B=b、C=c”、削除)、(”A=a、E=e、
D=d”、”追加”)を挿入する。
【0107】次に、前記属性差分表へentryで指定
されるエントリのDNとそのエントリが保持していた属
性と属性値から成るデータを挿入する。ただし、主キー
制約違反が発生する場合は前記データを挿入しない。
【0108】続いて、通信制御部24を介してクライア
ント28へオペレーションエラーを送信して処理を終了
する。
【0109】次に、通常モードにおけるデータ処理部の
フローチャートについて説明する。 ステップS31 要求がend又はcancelである
か否かを判断する。end又はcancelである場合
はステップS32へ進み、end又はcancelでな
い場合はステップS33へ進む。 ステップS32 通信制御部24を介してクライアント
28へオペレーションエラーを送信して処理を終了す
る。 ステップS33 要求がstartであるか否かを判断
する。startである場合はステップS35に進み、
startでない場合はステップS34に進む。 ステップS34 ディレクトリ制御部23へ、そのまま
要求を送信する。 ステップS35 アンドゥモードをアンドゥ可能モード
に変更して、アンドゥモード格納部27へ格納する。 ステップS36 通信制御部24を介して結果をクライ
アント28へ送信して処理を終了する。
【0110】次に、アンドゥ可能モードにおけるデータ
処理部のフローチャートについて説明する。 ステップS41 要求がstartであるか否かを判断
する。startである場合はステップS42に進み、
startでない場合はステップS43に進む。 ステップS42 通信制御部24を介してクライアント
28へオペレーションエラーを送信して処理を終了す
る。 ステップS43 要求がcancelであるか否かを判
断する。cancelである場合はステップS47に進
み、cancelでない場合はステップS44に進む。 ステップS44 ディレクトリ制御部23へ、そのまま
要求を送信する。 ステップS45 ディレクトリ制御部23において要求
の処理が成功したか否かを判断する。成功した場合はス
テップS46に進み、成功しない場合はステップS50
に進む。 ステップS46 要求が変更処理の場合、アンドゥ情報
格納部21の差分表へ差分データを追加する。 ステップS47 前記アンドゥ情報格納部21の差分表
を参照して、全てのデータの逆操作にあたるLDAP要
求を前記ディレクトリ制御部23へ送信する。 ステップS48 前記アンドゥ情報格納部21の差分表
のデータを全て削除する。 ステップS49 アンドゥモードを通常モードに変更
し、アンドゥモード格納部27に格納する。 ステップS50 通信制御部24を介して結果をクライ
アント28へ送信して処理を終了する。
【0111】次に、本実施の形態における属性値を変更
する動作について説明する。
【0112】図26は本発明の第2の実施の形態におけ
るディレクトリ情報ツリーを示す図、図27は本発明の
第2の実施の形態における変更操作後のディレクトリ情
報ツリーを示す図、図28は本発明の第2の実施の形態
における属性差分表を示す図である。
【0113】まず、ディレクトリ情報ツリーが図26に
示されるものであり、以下の要求のシーケンスがクライ
アント28から入力された場合について説明する。
【0114】この場合、前記要求のシーケンスは、 第1要求:start 第2要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=営業
部、一般名=△□一郎”、(add(内線番号、”23
4”)) 第3要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=営業
部、一般名=△□一郎”、(replace(内線番
号、”111”)) 第4要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=営業
部、一般名=△□一郎”、(delete(住所、”千
葉”)) 第5要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=営業
部、一般名=△□一郎”、(add(住所、”横
浜”)) 第6要求:cancel である。
【0115】ここで、第3要求入力時において、属性差
分表に第2要求のデータ(”国名=JP、地域名=東
京、組織名=ABC、組織単位名=営業部、一般名=△
□一郎”、内線番号、”234”)を追加しようとする
が、既に同じ主キーのデータが前記属性差分表に存在す
るため、主キー制約違反になり、追加することができな
い。しかし、このエラーは単に無視される。
【0116】また、第5要求入力時においても、同様の
エラーが発生するが単に無視され、前記属性差分表に前
記データは追加されない。そして、第5要求入力後のデ
ィレクトリ情報ツリーは図27に示されるようになって
おり、属性差分表は図28に示されるようになってい
る。この時、エントリ差分表は空のままである。
【0117】続いて、第6要求のcancelが入力さ
れると、差分表の逆操作を行う。ここで、該逆操作の順
序は、任意であるが、まず、(”国名=JP、地域名=
東京、組織名=ABC、組織単位名=営業部、一般名=
△□一郎”、内線番号、null)に置き換える。その
ために、LDAPの要求として、ModifyRequ
est ”国名=JP、地域名=東京、組織名=AB
C、組織単位名=営業部、一般名=△□一郎”、(re
place(内線番号、null))を発行する。
【0118】次に、(国名=JP、地域名=東京、組織
名=ABC、組織単位名=営業部、一般名=△□一
郎’、住所、千葉)に置き換える。そのために、LDA
Pの要求として、ModifyRequest ”国名
=JP、地域名=東京、組織名=ABC、組織単位名=
営業部、一般名=△□一郎”、(replace(住
所、”千葉”))を発行する。
【0119】最後に、差分表の内容を全て削除してca
ncel処理が終了する。そして、cancelの結
果、図26に示されるディレクトリ情報ツリーに復元す
ることができることがわかる。
【0120】このように、同じエントリの同じ属性に対
して複数の変更が存在する場合、最初のデータのみが差
分表に保存されるが、正しく復元される。
【0121】次に、本実施の形態におけるエントリを変
更する動作について説明する。
【0122】図29は本発明の第2の実施の形態におけ
る他の変更操作後のディレクトリ情報ツリーを示す図、
図30は本発明の第2の実施の形態におけるエントリ差
分表を示す図、図31は本発明の第2の実施の形態にお
ける他の属性差分表を示す図である。
【0123】まず、ディレクトリ情報ツリーが図26に
示されるものであり、以下の要求のシーケンスがクライ
アント28から入力された場合について説明する。
【0124】この場合、前記要求のシーケンスは、 第1要求:start 第2要求:AddRequest ”国名=JP、地域
名=東京、組織名=ABC、組織単位名=営業部””一
般名=×△次郎、オブジェクトクラス=人、姓=×△、
住所=大宮” 第3要求:DelRequest ”国名=JP、地域
名=東京、組織名=ABC、組織単位名=営業部、一般
名=×△次郎” 第4要求:AddRequest ”国名=JP、地域
名=東京、組織名=ABC、組織単位名=営業部””一
般名=×△次郎、オブジェクトクラス=人、姓=×△、
住所=浦和、内線番号=456” 第5要求:cancel である。
【0125】ここで、第3要求入力時において、エント
リ差分表にデータ(”国名=JP、地域名=東京、組織
名=ABC、組織単位名=営業部、一般名=△□一
郎”、削除)を追加しようとするが、既に同じ主キーの
データが前記エントリ差分表に存在するため、主キー制
約違反になり、追加することができない。しかし、この
エラーは単に無視される。
【0126】また、第4要求入力時においては、前記エ
ントリ差分表にデータ(”国名=JP、地域名=東京、
組織名=ABC、組織単位名=営業部、一般名=×△次
郎”、追加)を追加しようとするが、既に同じ主キーの
データが前記エントリ差分表に存在するため、主キー制
約違反になり、追加することができない。しかし、この
エラーは単に無視される。
【0127】そして、第4要求入力後のディレクトリ情
報ツリーは図29に示されるようになっており、エント
リ差分表は図30に示されるようになっており、また、
属性差分表は図31に示されるようになっている。
【0128】続いて、第5要求のcancelが入力さ
れると、差分表の逆操作を行う。ここで、該逆操作は、
まず、エントリ差分表のデータから行われ、(”国名=
JP、地域名=東京、組織名=ABC、組織単位名=営
業部、一般名=×△次郎”)を削除する。そのために、
LDAPの要求としてDelRequest ”国名=
JP、地域名=東京、組織名=ABC、組織単位名=営
業部、一般名=×△次郎”を発行する。
【0129】次に、属性差分のデータに基づいて、属性
の逆操作を行う。まず、(”国名=JP、地域名=東
京、組織名=ABC、組織単位名=営業部、一般名=×
△次郎”、”オブジェクトクラス”、”人”)へ置き換
える。そのために、LDAPの要求として、Modif
yRequest ”国名=JP、地域名=東京、組織
名=ABC、組織単位名=営業部、一般名=×△次郎”
(replace(オブジェクトクラス、”人”))を
発行する。
【0130】これは、既にエントリがないためエラーと
なるが、単に無視する。また、一般名、姓、住所の属性
についても同様のエラ−が発生するが全て無視する。
【0131】最後に、差分表の内容を全て削除してca
ncel処理が終了する。そして、cancelの結
果、図26に示されるディレクトリ情報ツリーに復元す
ることができることがわかる。
【0132】このように、同じエントリの追加、削除が
複数回なされている場合、最初のデータのみが差分表に
保存されるが、正しく復元される。
【0133】次に、本実施の形態におけるディレクトリ
と属性の変更が混在する場合の動作について説明する。
【0134】図32は本発明の第2の実施の形態におけ
る第1要求処理後のディレクトリ情報ツリーを示す図、
図33は本発明の第2の実施の形態における第5要求処
理後のディレクトリ情報ツリーを示す図、図34は本発
明の第2の実施の形態における他のエントリ差分表を示
す図、図35は本発明の第2の実施の形態における更に
他の属性差分表を示す図である。
【0135】まず、ディレクトリ情報ツリーが図26に
示されるものであり、以下の要求のシーケンスがクライ
アント28から入力された場合について説明する。
【0136】この場合、前記要求のシーケンスは、 第1要求:AddRequest ”国名=JP、地域
名=東京、組織名=ABC、組織単位名=営業部””一
般名=○×礼子、オブジェクトクラス=人、姓=○×、
内線番号=222” 第2要求:start 第3要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=営業
部、一般名=○×礼子”、(replace(内線番
号、”333”)) 第4要求:ModifyDNRequest ”国名=
JP、地域名=東京、組織名=ABC、組織単位名=営
業部、一般名=○×礼子”、”一般名=□◇礼子”、t
rue、”国名=JP、地域名=東京、組織名=AB
C、組織単位名=開発部” 第5要求:ModifyRequest ”国名=J
P、地域名=東京、組織名=ABC、組織単位名=開発
部、一般名=□◇礼子”、(add(姓、”□◇”) 第6要求:cancel である。
【0137】ここで、第1要求入力後のディレクトリ情
報ツリーは図32に示されるようになっており、前記第
1要求は、第2要求のstartの前であるので、ca
ncel処理の対象にはならない。したがって、第3要
求〜第5要求までがcancel処理の対象になる。
【0138】そして、第4要求入力時に、属性差分表に
データ(”国名=JP、地域名=東京、組織名=AB
C、組織単位名=営業部、一般名=○×礼子”、内線番
号、”333”)を追加しようとすると、既に同じ主キ
ーのデータが前記エントリ差分表に存在するため、主キ
ー制約違反になり、追加することができない。しかし、
このエラーは単に無視される。
【0139】次に、第5要求入力後において、ディレク
トリ情報ツリーは図33に示されるようになっており、
エントリ差分表は図34に示されるようになっており、
また、属性差分表は図35に示されるようになってい
る。
【0140】続いて、第6要求のcancelが入力さ
れると、差分表の逆操作を行う。該逆操作は、まず、エ
ントリ差分表のデータから行われ、(‘国名=JP、地
域名=東京、組織名=ABC、組織単位名=営業部、一
般名=○×礼子’)を追加する。そのために、属性差分
表から該当するエントリの属性を検索した後、LDAP
の要求として、AddRequest ”国名=JP、
地域名=東京、組織名=ABC、組織単位名=営業
部””内線番号=222、オブジェクトクラス=人、一
般名=○×礼子、姓=○×”を発行する。また、検索し
たデータは属性差分表から削除する。
【0141】さらに、(”国名=JP、地域名=東京、
組織名=ABC、組織単位名=開発部、一般名=□◇礼
子”)を削除する。そのために、LDAPの要求とし
て、DelRequest ”国名=JP、地域名=東
京、組織名=ABC、組織単位名=開発部、一般名=□
◇礼子”を発行する。
【0142】次に、属性差分表のデータに基づいて、属
性の逆操作を行う。まず、(”国名=JP、地域名=東
京、組織名=ABC、組織単位名=営業部、一般名=□
◇礼子”、姓、”○×”)に置き換える。そのために、
LDAPの要求として、ModifyRequest
”国名=JP、地域名=東京、組織名=ABC、組織
単位名=開発部、一般名=□◇礼子”、(replac
e(姓、”○×”))を発行する。これは、既にエント
リがないためエラーとなるが単に無視する。
【0143】最後に、差分表の内容を全て削除してca
ncel処理が終了する。そして、cancelの結
果、図28に示されるディレクトリ情報ツリーに復元す
ることができることがわかる。
【0144】このように、本実施の形態においては、デ
ィレクトリに対して同じエントリ又は属性に対する変更
が複数存在しても、最初のデータのみを保存するので、
差分データを節約することができる。しかも、データの
更新時間を必要としないので更新量が膨大になっても、
メモリや2次記憶をそれほど消費することなく、処理時
間を短縮することができる。
【0145】また、RDBMS22の機能を活用して同
じ主キーに対する操作かどうかを判定するので、実現も
容易である。さらに、他のクライアント28がいつでも
データを参照及び更新することが可能である。
【0146】なお、本発明は前記実施の形態に限定され
るものではなく、本発明の趣旨に基づいて種々変形させ
ることが可能であり、それらを本発明の範囲から排除す
るものではない。
【0147】
【発明の効果】以上詳細に説明したように、本発明によ
れば、アンドゥ処理システムにおいては、クライアント
が使用するデータが表形式で格納されるリレーショナル
データベースと、差分情報を格納するアンドゥ情報格納
部と、アンドゥ可能か否かのフラグを格納するアンドゥ
モード格納部と、データ処理を実行するデータ処理部と
を有し、前記差分情報は、表が定義された時点で作成さ
れて格納され、前記データ処理部は、クライアントから
のコマンドが変更処理であり、かつ、アンドゥ可能であ
る場合、前記差分情報を変更して前記表を更新する。
【0148】また、本発明によれば、アンドゥ処理方法
においては、クライアントが使用するデータをリレーシ
ョナルデータベースに表形式で格納し、表が定義される
と、差分情報を作成してアンドゥ情報格納部に格納し、
前記クライアントからのコマンドが変更処理であり、か
つ、アンドゥ可能である場合、前記差分情報を変更して
前記表を更新する。
【0149】この場合、同じ主キーに対する変更が複数
存在しても、最初のデータのみを保存するので差分デー
タを節約することができる。しかも、データの更新時刻
を必要としないので更新量が膨大になっても、メモリや
2次記憶をそれほど消費することなく、処理時間を短縮
することができる。また、他のクライアントがいつでも
データを参照及び更新することが可能である。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるデータ編集
システムの構成を示す図である。
【図2】本発明の第1の実施の形態における社員表の例
を示す図である。
【図3】本発明の第1の実施の形態における部門表の例
を示す図である。
【図4】本発明の第1の実施の形態における図2のアン
ドゥ情報としての社員差分表を示す図である。
【図5】本発明の第1の実施の形態における図3のアン
ドゥ情報としての部門差分表を示す図である。
【図6】本発明の第1の実施の形態における通常モード
のデータ処理部のフローチャートを示す図である。
【図7】本発明の第1の実施の形態におけるアンドゥ可
能モードのデータ処理部のフローチャートを示す図であ
る。
【図8】本発明の第1の実施の形態における社員表の他
の例を示す図である。
【図9】本発明の第1の実施の形態における部門表の他
の例を示す図である。
【図10】本発明の第1の実施の形態における図8のア
ンドゥ情報としての社員差分表を示す図である。
【図11】本発明の第1の実施の形態における図9のア
ンドゥ情報としての部門差分表を示す図である。
【図12】本発明の第1の実施の形態における社員表の
更に他の例を示す図である。
【図13】本発明の第1の実施の形態における部門表の
更に他の例を示す図である。
【図14】本発明の第1の実施の形態における図12の
アンドゥ情報としての社員差分表を示す図である。
【図15】本発明の第1の実施の形態における図13の
アンドゥ情報としての部門差分表を示す図である。
【図16】本発明の第2の実施の形態におけるディレク
トリサーバの構成を示す図である。
【図17】本発明の第2の実施の形態におけるLDAP
の追加操作の構文を示す図である。
【図18】本発明の第2の実施の形態におけるLDAP
の削除操作の構文を示す図である。
【図19】本発明の第2の実施の形態におけるLDAP
の変更操作の構文を示す図である。
【図20】本発明の第2の実施の形態におけるLDAP
のRDN変更操作の構文を示す図である。
【図21】本発明の第2の実施の形態におけるLDAP
の拡張操作と拡張応答の構文を示す図である。
【図22】本発明の第2の実施の形態におけるエントリ
差分表を示す図である。
【図23】本発明の第2の実施の形態における属性差分
表を示す図である。
【図24】本発明の第2の実施の形態における通常モー
ドのデータ処理部のフローチャートを示す図である。
【図25】本発明の第2の実施の形態におけるアンドゥ
可能モードのデータ処理部のフローチャートを示す図で
ある。
【図26】本発明の第2の実施の形態におけるディレク
トリ情報ツリーを示す図である。
【図27】本発明の第2の実施の形態における変更操作
後のディレクトリ情報ツリーを示す図である。
【図28】本発明の第2の実施の形態における属性差分
表を示す図である。
【図29】本発明の第2の実施の形態における他の変更
操作後のディレクトリ情報ツリーを示す図である。
【図30】本発明の第2の実施の形態におけるエントリ
差分表を示す図である。
【図31】本発明の第2の実施の形態における他の属性
差分表を示す図である。
【図32】本発明の第2の実施の形態における第1要求
処理後のディレクトリ情報ツリーを示す図である。
【図33】本発明の第2の実施の形態における第5要求
処理後のディレクトリ情報ツリーを示す図である。
【図34】本発明の第2の実施の形態における他のエン
トリ差分表を示す図である。
【図35】本発明の第2の実施の形態における更に他の
属性差分表を示す図である。
【符号の説明】
12 データ処理部 13、24 通信制御部 14、21 アンドゥ情報格納部 15、27 アンドゥモード格納部 16、28 クライアント 20 ディレクトリサーバ 26 アンドゥ処理部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 (a)クライアントが使用するデータが
    表形式で格納されるリレーショナルデータベースと、
    (b)差分情報を格納するアンドゥ情報格納部と、
    (c)アンドゥ可能か否かのフラグを格納するアンドゥ
    モード格納部と、(d)データ処理を実行するデータ処
    理部とを有し、(e)前記差分情報は、表が定義された
    時点で作成されて格納され、(f)前記データ処理部
    は、クライアントからのコマンドが変更処理であり、か
    つ、アンドゥ可能である場合、前記差分情報を変更して
    前記表を更新することを特徴とするアンドゥ処理システ
    ム。
  2. 【請求項2】 前記クライアントからのコマンドを受け
    付け、応答を返す通信制御部を有する請求項1に記載の
    アンドゥ処理システム。
  3. 【請求項3】 前記アンドゥ情報格納部は、前記差分情
    報として、エントリ差分表及び属性差分表を格納する請
    求項1又は2に記載のアンドゥ処理システム。
  4. 【請求項4】 前記アンドゥ情報格納部は、最初の差分
    情報のみを格納する請求項1〜3のいずれか1項に記載
    のアンドゥ処理システム。
  5. 【請求項5】 ディレクトリ情報ツリーを格納するディ
    レクトリサーバ内に構築される請求項1〜4のいずれか
    1項に記載のアンドゥ処理システム。
  6. 【請求項6】 (a)クライアントが使用するデータを
    リレーショナルデータベースに表形式で格納し、(b)
    表が定義されると、差分情報を作成してアンドゥ情報格
    納部に格納し、(c)前記クライアントからのコマンド
    が変更処理であり、かつ、アンドゥ可能である場合、前
    記差分情報を変更して前記表を更新することを特徴とす
    るアンドゥ処理方法。
  7. 【請求項7】 前記差分情報として、エントリ差分表及
    び属性差分表をアンドゥ情報格納部に格納する請求項6
    に記載のアンドゥ処理方法。
  8. 【請求項8】 最初の差分情報のみを格納する請求項6
    又は7に記載のアンドゥ処理方法。
JP2001224345A 2001-07-25 2001-07-25 アンドゥ処理システム及びアンドゥ処理方法 Pending JP2003036190A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001224345A JP2003036190A (ja) 2001-07-25 2001-07-25 アンドゥ処理システム及びアンドゥ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001224345A JP2003036190A (ja) 2001-07-25 2001-07-25 アンドゥ処理システム及びアンドゥ処理方法

Publications (1)

Publication Number Publication Date
JP2003036190A true JP2003036190A (ja) 2003-02-07

Family

ID=19057526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001224345A Pending JP2003036190A (ja) 2001-07-25 2001-07-25 アンドゥ処理システム及びアンドゥ処理方法

Country Status (1)

Country Link
JP (1) JP2003036190A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172453A (ja) * 2004-12-17 2006-06-29 Microsoft Corp 文書中の変更を追跡するための方法およびシステム
CN104714930A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 一种文档快速处理方法和装置
CN106598926A (zh) * 2016-11-29 2017-04-26 青岛海信电器股份有限公司 操作撤销方法及装置
US10579605B2 (en) 2017-02-20 2020-03-03 Fujitsu Limited Information processing device, method, and computer-readable recording medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172453A (ja) * 2004-12-17 2006-06-29 Microsoft Corp 文書中の変更を追跡するための方法およびシステム
CN104714930A (zh) * 2013-12-12 2015-06-17 鸿合科技有限公司 一种文档快速处理方法和装置
CN104714930B (zh) * 2013-12-12 2018-10-02 鸿合科技股份有限公司 一种文档快速处理方法和装置
CN106598926A (zh) * 2016-11-29 2017-04-26 青岛海信电器股份有限公司 操作撤销方法及装置
US10579605B2 (en) 2017-02-20 2020-03-03 Fujitsu Limited Information processing device, method, and computer-readable recording medium

Similar Documents

Publication Publication Date Title
US11567919B2 (en) Methods and systems for performing transparent object migration across storage tiers
US7730097B2 (en) Smart database
US7421458B1 (en) Querying, versioning, and dynamic deployment of database objects
US6834286B2 (en) Method and system for representing and accessing object-oriented data in a relational database system
US7533136B2 (en) Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US7620658B2 (en) Configuration of a directory system
US6915287B1 (en) System, method and computer program product for migrating data from one database to another database
US6502088B1 (en) Method and system for improved access to non-relational databases
US7165078B2 (en) Collaborative data cleansing
US9251199B2 (en) Stateless database cache
US7401085B2 (en) System and method for controlling the release of updates to a database configuration
US7269593B2 (en) Data processing apparatus and method
US7593951B2 (en) Application programming interface for centralized storage of principal data
US6651070B1 (en) Client/server database system
US8185562B2 (en) Business object browser for business query language
US6301581B1 (en) Method and system for managing access to a plurality of data objects
JP2000163303A (ja) ディレクトリデータ変換方法、ディレクトリデータ変換プログラムが記憶された記憶媒体、およびディレクトリ変換サーバ
US6453324B1 (en) Method for maintaining a version history of objects in a repository
JP2002149468A (ja) マルチデータベース統合システムのアクセス権管理方法
JP2006524376A (ja) 汎用データベーススキーマ
US7707211B2 (en) Information management system and method
CN117453980A (zh) 元数据管理、配置页面生成方法、服务器及存储介质
JP2003036190A (ja) アンドゥ処理システム及びアンドゥ処理方法
CN111460779A (zh) 一种基于Activiti的流程表单数据渲染和存取方法
US7213020B1 (en) Methods and system for facilitating updating of data in a database by a data access system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100126