JP2004094850A - Exclusive control device and its method - Google Patents

Exclusive control device and its method Download PDF

Info

Publication number
JP2004094850A
JP2004094850A JP2002258548A JP2002258548A JP2004094850A JP 2004094850 A JP2004094850 A JP 2004094850A JP 2002258548 A JP2002258548 A JP 2002258548A JP 2002258548 A JP2002258548 A JP 2002258548A JP 2004094850 A JP2004094850 A JP 2004094850A
Authority
JP
Japan
Prior art keywords
operation request
entry
lock
directory
exclusive control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002258548A
Other languages
Japanese (ja)
Other versions
JP4107019B2 (en
Inventor
Suguru Shimamura
島村 英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002258548A priority Critical patent/JP4107019B2/en
Publication of JP2004094850A publication Critical patent/JP2004094850A/en
Application granted granted Critical
Publication of JP4107019B2 publication Critical patent/JP4107019B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve exclusive control without applying any change to a directory server device and a client. <P>SOLUTION: This exclusive control device 10 is arranged at the front stage of the directory server device 20 for managing information about which entry in the directory server device 20 is locked by which client 30. When receiving an updating operation request for the entry contained in a locked relative entry group, it returns an error to a client 30 as a request source when the client 30 as the request source is not a lock owner and it transmits the updating operation request to the directory server device 20 for exclusive control when the client 30 as the request source is the lock owner. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は排他制御装置および排他制御方法に関し、特に複数のクライアントとディレクトリサーバ装置とが存在するシステムにおける排他制御装置および排他制御方法に関する。
【0002】
【従来の技術】
ディレクトリサーバ装置は、インターネット/イントラネットの各利用者に関する個人情報を管理するとともに、各ユーザからの要求によりそれらの情報を提供するデータベースである。現在最も利用されているディレクトリアクセスのプロトコルがLDAP(Lightweight
Directory Access Protocol)であるため、ディレクトリサーバ装置はLDAPサーバと呼ばれることがある。ディレクトリサーバ装置は、具体的には、各ユーザの氏名,所属部署,電話番号,メールアドレス,ユーザ認証に必要なパスワード等を管理する。各ユーザからの参照要求に対してそれらの情報を提供する他、他のディレクトリサービスとの間で、設定されたセキュリティの範囲内で個人情報の交換を行うことができる。
【0003】
ディレクトリサーバ装置は、データオブジェクトをツリー状の階層構造として持ち、 個々のデータオブジェクトをエントリ、各エントリが持つ個々のデータフィールドを属性と呼び、各エントリは階層上でのエントリの位置情報を含んだDN(Distinguished Name)と呼ばれる識別子を持つ。
【0004】
ところで、ディレクトリサーバ装置は、電話帳のようなデータを格納する検索主体のデータベースとして考案されたが、LDAPという標準化されたプロトコルによりアクセスできることから、さまざまなアプリケーションのデータを一元管理するものとして使用されるようになってきており、検索主体とはいえなくなってきている。
【0005】
また、ディレクトリサーバ装置を用いたシステムにおいては、構築時には、同時に同じデータ領域にアクセスするクライアントが1つだったために排他制御を行っていなかったが、システム規模の拡大に伴って同等の処理を行うクライアントを増やすために、途中から排他制御を導入する必要が出てくることもある。
【0006】
しかし、標準のディレクトリサーバ装置では、1つのエントリに対する1つのディレクトリ操作要求の単位でしか排他制御(トランザクション制御)はされていなかった。
【0007】
ディレクトリサーバ装置における排他制御もしくはトランザクション制御に関する従来の技術は、例えば、特開平11−96062号公報に、トランザクション制御機能を備えたディレクトリサーバ装置として開示されている。
【0008】
また、インターネットドラフトdraft−zeilenga−ldap−grouping−04.txtおよびdraft−zeilenga−ldap−txn−04.txtでは、トランザクション制御機能を備えたディレクトリサーバ装置の持つべきクライアントに対するインタフェースの標準について提案されている。
【0009】
【発明が解決しようとする課題】
しかし、上記した従来の技術は、いずれもLDAPの拡張操作の枠組みを使用して、トランザクション開始操作,トランザクション終了操作といった新たなLDAP操作を定義し、クライアントが1つのトランザクションとして行いたいディレクトリ操作要求を、トランザクション開始操作要求とトランザクション終了操作要求とで囲んで発行することになっていたので、以下のような問題点あった。
【0010】
第1の問題点は、新たに排他制御が必要になった場合に、既存のクライアントの変更が必要なことである。また、トランザクションの切り方を変更したい場合は、そのつどクライアントの変更が必要である。その理由は、トランザクション開始操作およびトランザクション終了操作といった排他制御のための新たな処理をクライアントに実装する必要があるためである。
【0011】
第2の問題点は、排他制御機能を備えていない一般的なディレクトリサーバ装置でシステムをすでに構築してあり、その後、新たに排他制御が必要になった場合に、現在使用中のディレクトリサーバ装置を置き換えてデータ移行を行うことが必要なことである。その理由は、トランザクション制御機能を備えた特別なディレクトリサーバ装置が必要なためである。
【0012】
これに対して、トランザクション制御機能を備えた特別なディレクトリサーバ装置を使用せずに排他制御を実現するための手段としては、ディレクトリデータベース中の1つ1つのエントリの上に排他制御用にロックされているか否かのフラグの属性を用意し、クライアントが、ディレクトリ操作要求の対象エントリがロックされていないかどうかを確認し、ロックされていなければそれらのエントリをロックし、一連の操作が終了した時点でロックの解除を行うことが考えられる。
【0013】
しかし、このようにした場合には、次のような問題点がある。
【0014】
第1の問題点は、上記のように新たに排他制御が必要になった場合に、既存のすべてのクライアントの変更が必要であり、特にロック確認を怠るクライアントが現れると、排他が侵されるということである。その理由は、ロック確認,ロック,ロック解除といった処理をすべてのクライアントが行うことにより排他制御が実現されるためである。
【0015】
第2の問題点は、ディレクトリサーバ装置において、ディレクトリデータベースのスキーマ変更が必要になる可能性があることである。その理由は、排他制御用のフラグの属性が必要なためである。
【0016】
第3の問題点は、排他制御のための処理が性能面に影響を与えることである。その理由は、1つのエントリの更新操作のたびに、ロック確認,ロック,ロック解除の各処理がディレクトリサーバ装置と通信することにより行われるためである。
【0017】
第4の問題点は、ネットワーク障害等によりロック解除処理が失敗した場合にロックが残ってしまうことである。その理由は、クライアントによるロック解除処理より他にロック解除を行う仕組みがないためである。
【0018】
第5の問題点は、デッドロックの起こる可能性が高いことである。その理由は、更新操作要求の対象エントリを1つ1つロックする必要があるため、例えば、エントリA,BをロックしたいクライアントC,Dが存在し、クライアントCがエントリAを、クライアントDがエントリBを先にロックした場合、クライアントC,Dともにロックの取得に失敗するということが起こるためである。
【0019】
本発明の目的は、あるクライアントがディレクトリサーバ装置上の複数のエントリに対する複数の更新操作要求を行っている間、それらのエントリに対する他のクライアントからの更新操作要求を制限するような排他制御を実現できる排他制御装置および排他制御方法を提供することにある。
【0020】
【課題を解決するための手段】
本発明の排他制御装置は、ディレクトリサーバ装置の前段に配置され、ディレクトリサーバ装置内のどのエントリがどのクライアントによりロックされているかの情報を管理して、すでにロックされているエントリに対する更新操作要求を受けたときに要求元のクライアントがロックの所有者以外であれば要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者であれば更新操作要求をディレクトリサーバ装置に送信することで排他制御を行うことを特徴とする。
【0021】
また、本発明の排他制御装置は、排他制御エントリサブツリー毎のロック設定条件をあらかじめ記録するロック設定条件表と、ロック済関係エントリ群毎のロックを記録するロック状態表と、クライアントからディレクトリ操作要求を受信する操作受信部と、ディレクトリ操作要求をディレクトリサーバ装置に送信する操作送信部と、ディレクトリサーバ装置からディレクトリ応答を受信する応答受信部と、前記応答受信部で受信されたディレクトリ応答およびエラーを要求元のクライアントへ送信する応答送信部と、前記操作受信部で受信したディレクトリ操作要求の種別を判定する操作種別判定部と、前記操作種別判定部によりディレクトリ操作要求が更新操作要求であると判定されたときに、前記ロック状態表を参照してロック済関係エントリ群に含まれるエントリに対する更新操作要求であれば要求元のクライアントがロックの所有者以外である場合に前記応答送信部から要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者である場合に更新操作要求を前記操作送信部からディレクトリサーバ装置に送信し、ロック済関係エントリ群に含まれていないエントリに対する更新操作要求であれば前記ロック設定条件表を参照して前記ロック状態表に関係エントリ群に対するロックを記録して要求元のクライアントに付与し更新操作要求を前記操作送信部からディレクトリサーバ装置に送信するロック状態管理部と、前記ロック状態表に定期的にアクセスしてタイムアウトしたロックを解除するタイムアウト処理部とを有することを特徴とする。
【0022】
さらに、本発明の排他制御装置は、前記ロック状態管理部が、前記操作種別判定部によりディレクトリ操作要求が接続切断操作要求であると判定されたときに前記ロック状態表から要求元のクライアントが所有するロックを全て解除することを特徴とする。
【0023】
さらにまた、本発明の排他制御装置は、前記ロック状態管理部が、前記操作種別判定部によりディレクトリ操作要求が接続切断操作要求および更新操作要求以外であると判定されたときに、ディレクトリ操作要求を前記操作送信部からディレクトリサーバ装置に送信することを特徴とする。
【0024】
また、本発明の排他制御装置は、前記ロック設定条件表の各行が、排他制御エントリサブツリーの根エントリのDNが設定される根エントリDNフィールドと、排他制御エントリサブツリーにおいて同時に排他制御を必要とするエントリの位置関係が設定される位置関係フィールドと、ロックのタイムアウト時間が設定されるタイムアウト時間フィールドとを有することを特徴とする。
【0025】
さらに、本発明の排他制御装置は、前記ロック状態表の各行が、更新操作要求の対象エントリのDNが設定される基点エントリDNフィールドと、前記基点エントリDNフィールドで特定されるエントリを基点として同時に排他制御を必要とするエントリの位置関係が設定される位置関係フィールドと、ロックのタイムアウト時間が設定されるタイムアウト時間フィールドと、ロックを所有しているクライアントのセッションIDが設定されるセッションIDフィールドと、ロックを所有しているクライアントからのロック済関係エントリ群に含まれるエントリに対する最後の更新操作要求が発行された最終アクセス時刻が設定される最終アクセス時刻フィールドとを有することを特徴とする。
【0026】
さらにまた、本発明の排他制御装置は、前記タイムアウト処理部が、前記ロック状態表のタイムアウト時間フィールドおよび最終アクセス時刻フィールドを定期的に走査し、最終アクセス時刻フィールドの最終アクセス時刻と現在時刻との差がタイムアウト時間フィールドのタイムアウト時間を超えている行を削除することによりロックを解除することを特徴とする。
【0027】
一方、本発明の排他制御方法は、複数のクライアントと、ディレクトリサーバ装置とが存在するシステムの排他制御方法において、ディレクトリサーバ装置の前段にディレクトリサーバ装置内のどのエントリがどのクライアントによりロックされているかの情報を管理してエントリの排他制御を行う排他制御装置を配置する工程と、ロックされていないエントリに更新操作要求があったときに対象エントリに対するロックを生成して要求元のクライアントに付与し更新操作要求をディレクトリサーバ装置に送信する工程と、すでにロックされているエントリに対する更新操作要求を受けたときに要求元のクライアントがロックを所有しているかどうかを判定し、要求元のクライアントがロックを所有していなければエラーを要求元のクライアントに返し、要求元のクライアントがロックを所有していれば更新操作要求をディレクトリサーバ装置に送信する工程と、要求元のクライアントが接続を切るか一定のタイムアウト時間の経過後に自動的にロックを解除する工程とを含むことを特徴とする。
【0028】
また、本発明の排他制御方法は、クライアントからディレクトリ操作要求を受信する工程と、受信されたディレクトリ操作要求が接続切断操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が接続切断操作要求であったときに要求元のクライアントが所有しているロックを全て解除する工程と、ディレクトリ操作要求が接続切断操作要求でなかったときに該ディレクトリ操作要求が更新操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が更新操作要求でなかったときにディレクトリ操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ操作要求が更新操作要求であったときに該更新操作要求の対象エントリがロック済関係エントリ群に含まれているかどうかを調べる工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれていなかったときに該更新操作要求の対象エントリが排他制御エントリサブツリーに所属しているかどうかを調べる工程と、更新操作要求の対象エントリが排他制御エントリサブツリーに所属していたときに該対象エントリを含む関係エントリ群に対するロックを生成して要求元のクライアントに付与し、該更新操作要求をディレクトリサーバ装置へ送信する工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれているときに要求元のクライアントがロックの所有者であるかどうかを調べる工程と、要求元のクライアントがロックの所有者でなかったときに要求元のクライアントにエラーを返す工程と、要求元のクライアントがロックの所有者であったときに最終アクセス時刻を現在時刻で更新した後に更新操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ応答を受信したときに該ディレクトリ応答を要求元のクライアントへ送信する工程とを含むことを特徴とする。
【0029】
さらに、本発明の排他制御方法は、要求元のクライアントが接続を切るか一定のタイムアウト時間の経過後に自動的にロックを解除する工程を含むことを特徴とする。
【0030】
他方、本発明のプログラムは、コンピュータを、排他制御エントリサブツリー毎のロック設定条件をあらかじめ記録するロック設定条件表と、ロック済関係エントリ群毎のロックを記録するロック状態表と、クライアントからディレクトリ操作要求を受信する操作受信部と、ディレクトリ操作要求をディレクトリサーバ装置に送信する操作送信部と、ディレクトリサーバ装置からディレクトリ応答を受信する応答受信部と、前記応答受信部で受信されたディレクトリ応答およびエラーを要求元のクライアントへ送信する応答送信部と、前記操作受信部で受信したディレクトリ操作要求の種別を判定する操作種別判定部と、前記操作種別判定部によりディレクトリ操作要求が更新操作要求であると判定されたときに、前記ロック状態表を参照してロック済関係エントリ群に含まれるエントリに対する更新操作要求であれば要求元のクライアントがロックの所有者以外である場合に前記応答送信部から要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者である場合に更新操作要求を前記操作送信部からディレクトリサーバ装置に送信し、ロック済関係エントリ群に含まれていないエントリに対する更新操作要求であれば前記ロック設定条件表を参照して前記ロック状態表に関係エントリ群に対するロックを記録して要求元のクライアントに付与し更新操作要求を前記操作送信部からディレクトリサーバ装置に送信するロック状態管理部と、前記ロック状態表に定期的にアクセスしてタイムアウトしたロックを解除するタイムアウト処理部として機能させることを特徴とする。
【0031】
また、本発明のプログラムは、コンピュータに、クライアントからディレクトリ操作要求を受信する工程と、受信されたディレクトリ操作要求が接続切断操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が接続切断操作要求であったときに要求元のクライアントが所有しているロックを全て解除する工程と、ディレクトリ操作要求が接続切断操作要求でなかったときに該ディレクトリ操作要求が更新操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が更新操作要求でなかったときにディレクトリ操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ操作要求が更新操作要求であったときに該更新操作要求の対象エントリがロック済関係エントリ群に含まれているかどうかを調べる工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれていなかったときに該更新操作要求の対象エントリが排他制御エントリサブツリーに所属しているかどうかを調べる工程と、更新操作要求の対象エントリが排他制御エントリサブツリーに所属していたときに該対象エントリを含む関係エントリ群に対するロックを生成して要求元のクライアントに付与し、該更新操作要求をディレクトリサーバ装置へ送信する工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれているときに要求元のクライアントがロックの所有者であるかどうかを調べる工程と、要求元のクライアントがロックの所有者でなかったときに要求元のクライアントにエラーを返す工程と、要求元のクライアントがロックの所有者であったときに最終アクセス時刻を現在時刻で更新した後に更新操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ応答を受信したときに該ディレクトリ応答を要求元のクライアントへ送信する工程とを実行させることを特徴とする。
【0032】
図2に示すように、本発明の排他制御装置10は、複数のクライアント30と、ディレクトリサーバ装置20とが存在したとき、ディレクトリサーバ装置20の前段に配置される。排他制御装置10は、ディレクトリサーバ装置20内のどのエントリがどのクライアント30によりロックされているかの情報を管理しており、ロック済関係エントリ群に含まれるエントリに対する更新操作要求を受けると、要求元のクライアント30がロックの所有者であるかどうかを判断して、ロックの所有者でなければエラーを返し、要求元のクライアントがロックの所有者であれば更新操作要求をディレクトリサーバ装置に送信することで排他制御を行う。排他制御装置10に対して排他制御エントリサブツリーをあらかじめ設定をしておくことで、対象エントリを基点エントリとして含む関係エントリ群に対するロックが更新操作要求したクライアント30に付与され、要求元のクライアント30が接続を切るか一定時間の経過後に自動的にロックが解除される。これにより、クライアント30が何も意識することなしに、また既存のディレクトリサーバ装置20およびクライアント30になんらの変更も加えることなく、排他制御を実現することができる。
【0033】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0034】
[第1の実施の形態]
図2は、本発明の第1の実施の形態に係る排他制御装置10が配置されるシステム図である。このシステムは、ディレクトリサーバ装置20と、複数のクライアント30と、それらの間に介在する排他制御装置10とから構成される。
【0035】
図3は、図2に示したシステムにおいて、クライアント30としてメンテナンス装置30aおよび30bが配置されたメール情報管理システムを示す図である。
【0036】
ディレクトリサーバ装置20は、ディレクトリデータベース(図示せず)内にデータオブジェクトをエントリとしてツリー状に格納しており、各エントリの内容は、属性型名と属性値とのペアのリストになっている。そのペアのうちのいずれか1つを選択してエントリの名前付けに使用し、エントリのDNは、そのエントリからディレクトリツリーの根エントリまでの各エントリの名前付け属性を並べて、「属性型名=属性値,属性型名=属性値,…」という文字列になる。
【0037】
図1を参照すると、排他制御装置10は、操作受信部111および応答送信部112からなるクライアント通信部11と、操作種別判定部121,ロック状態管理部123,タイムアウト処理部124,ロック状態表125およびロック設定条件表126からなる排他制御部12と、操作送信部131および応答受信部132からなるサーバ通信部13とから構成されている。
【0038】
操作受信部111は、クライアント30からディレクトリ操作要求を受信する。
【0039】
応答送信部112は、ディレクトリ応答およびエラーをクライアント30へ送信する。
【0040】
操作送信部131は、ディレクトリ操作要求をディレクトリサーバ装置20に送信する。
【0041】
応答受信部132は、ディレクトリサーバ装置20からディレクトリ応答を受信する。
【0042】
操作種別判定部121は、操作受信部111で受信されたディレクトリ操作要求の種別を判定する。
【0043】
ロック状態管理部123は、ロック状態表125およびロック設定条件表126にアクセスしながら、操作種別判定部121から受け取ったディレクトリ操作要求を処理し、排他制御を行う。すなわち、ロック状態管理部123は、ロック状態表125に行を追加することで関係エントリ群を単位にロックを生成して要求元のクライアント30に付与する。ロック状態管理部123は、クライアント30からの更新操作要求の対象エントリのDNと、ロック状態表125の基点エントリDNフィールド41および位置関係フィールド42とを比較照合することにより、ディレクトリサーバ装置20を参照することなく更新操作要求の対象エントリがロック済関係エントリ群に含まれているかどうかを高速に判定することができる。またロック状態管理部123は、クライアント30からの更新操作要求の対象エントリのDNと、ロック設定条件表126の根エントリDNフィールド51とを比較照合することにより、ディレクトリサーバ装置20を参照することなく更新操作要求の対象エントリが排他制御エントリサブツリーに含まれているかどうかを高速に判定することができる。
【0044】
タイムアウト処理部124は、ロック状態表125を参照してロックのタイムアウトを監視し、タイムアウトしたロックの行をロック状態表125から削除することによりロックを解除する。
【0045】
ロック状態表125は、ディレクトリサーバ装置20中のどの関係エントリ群がどのクライアント30によりロックされているかを記録している。
【0046】
図4を参照すると、ロック状態表125の各行は、基点エントリDNフィールド41,位置関係フィールド42,タイムアウト時間フィールド43,セッションID(IDentification)フィールド44,および最終アクセス時刻フィールド45を有し、1つの行が1つのロックを表す。
【0047】
基点エントリDNフィールド41には、ロック済関係エントリ群においてロックの基点となるエントリのDNが設定される。
【0048】
位置関係フィールド42には、基点エントリDNフィールド41に設定されたエントリとの位置関係により、図6に示す自身,親,子,兄弟のいずれかが設定され、基点エントリDNフィールド41と位置関係フィールド42との組み合わせにより、ロック済関係エントリ群が特定される。なお、基点エントリDNフィールド41および位置関係フィールド42により、1回のロック処理で複数のエントリをまとめてロックすることができる。
【0049】
タイムアウト時間フィールド43には、ロックのタイムアウト時間が設定される。
【0050】
セッションIDフィールド44には、ロックを所有しているクライアント30を特定するセッションID(アドレスおよびポート番号)が設定される。
【0051】
最終アクセス時刻フィールド45には、ロックを所有しているクライアント30からのロック済関係エントリ群に含まれるエントリに対する最後の更新操作要求が発行された時刻を記録している。タイムアウト時間フィールド43に設定されたタイムアウト時間の間に次の更新操作要求がなかった場合には、タイムアウト処理部124によりロックは解除される。
【0052】
ロック設定条件表126には、排他制御装置10における排他制御エントリサブツリー毎に、根エントリDN,位置関係およびタイムアウト時間を記録している。
【0053】
図5を参照すると、ロック設定条件表126の各行は、根エントリDNフィールド51,位置関係フィールド52,およびタイムアウト時間フィールド53を有し、1つの行が1つの排他制御エントリサブツリーに対するロック設定条件を表す。
【0054】
根エントリDNフィールド51には、当該行のロック設定条件を有効とする排他制御エントリサブツリーの根エントリのDNを指定する。根エントリDNフィールド51に指定されたエントリを根エントリとする排他制御エントリサブツリーに所属するエントリに対して更新操作要求が発行され、更新操作要求の対象エントリを含む関係エントリ群に含まれる全てのエントリが未だロックされていない場合は、ロック状態表125内に、次のように行が追加されてロックが生成され、要求元のクライアント30に付与される。
【0055】
位置関係フィールド52には、ディレクトリサーバ装置20における排他制御エントリサブツリー毎に、関係エントリ群とすべき位置関係を、図6に示す自身,親,子,兄弟のいずれかとして設定される。
【0056】
タイムアウト時間フィールド53には、ディレクトリサーバ装置20における排他制御エントリサブツリー毎に、ロックのタイムアウト時間が設定される。
【0057】
図7は、ディレクトリサーバ装置20における排他制御エントリサブツリーの一例を示す。この排他制御エントリサブツリーは、根エントリ70と、ドメインエントリ71と、アカウントエントリ72,73,74とが階層的に接続されて構成されている。根エントリ70は、ドメインcomに関する諸設定を格納している。ドメインエントリ71は、メールドメインabc.comに関する諸設定を格納している。ドメインエントリ71の直下に並ぶアカウントエントリ72,73,74は、メールドメインabc.comに所属するメールアカウントuser1@abc.com,user2@abc.com,user3@abc.comに関する諸設定をそれぞれ格納している。ここで、アカウントエントリ72,73,74はそれぞれのアカウントのメールボックスサイズの上限値を最大容量という属性に格納しており、ドメインエントリ71は各アカウントの最大容量の合計の上限値を、やはり最大容量という属性に格納している。
【0058】
クライアント30は、図3に示したメール情報管理システムの管理者に対して図8または図9に示すような入力画面を提供し、ディレクトリクライアントとして排他制御装置10を介してディレクトリサーバ装置20にアクセスして、アカウントエントリ72,73,74の最大容量の属性を変更する。なお、その際に、クライアント30は、あらかじめドメインエントリ71を参照し、アカウントエントリ72,73,74の最大容量の合計がドメインエントリ71の最大容量を超えないように、管理者からの入力を制限する。
【0059】
図10を参照すると、第1の実施の形態に係る排他制御装置10の処理は、ディレクトリ操作要求受信ステップA1と、接続切断操作要求判定ステップA2と、所有ロック解除ステップA3と、更新操作要求判定ステップA4と、ロック済関係エントリ群判定ステップA5と、排他制御エントリサブツリー所属判定ステップA6と、ロック付与ステップA7と、ロック所有者判定ステップA8と、エラー返却ステップA9と、最終アクセス時刻更新ステップA10と、ディレクトリ操作要求送信ステップA11とからなる。
【0060】
次に、このように構成された第1の実施の形態に係る排他制御装置10の動作について詳しく説明する。
【0061】
(1) 排他制御装置10がクライアント30よりディレクトリ操作要求を受信した場合
【0062】
まず、クライアント30からのディレクトリ操作要求を操作受信部111で受信すると(ステップA1)、排他制御装置10は、操作種別判定部121により、受信されたディレクトリ操作要求が接続切断操作要求であるかどうかを調べる(ステップA2)。
【0063】
ディレクトリ操作要求が接続切断操作要求であった場合は(ステップA2でイエス)、排他制御装置10は、ロック状態管理部123により、ロック状態表125のセッションIDフィールド44を走査して接続切断操作要求に含まれるセッションIDと比較し、要求元のクライアント30が所有しているロックの行をロック状態表125から全て削除することによって要求元のクライアント30に付与されているロックを全て解除し(ステップA3)、接続切断操作要求を操作送信部131からディレクトリサーバ装置20へ送信する(ステップA11)。
【0064】
ディレクトリ操作要求が接続切断操作要求ではなかった場合は(ステップA2でノー)、排他制御装置10は、ロック状態管理部123により、ディレクトリ操作要求が更新操作要求であるかどうかを調べる(ステップA4)。
【0065】
ディレクトリ操作要求が更新操作要求ではなかった場合(参照操作要求等であった場合)は(ステップA4でノー)、排他制御装置10は、ロック状態管理部123により、ディレクトリ操作要求を操作送信部131からディレクトリサーバ装置20へ送信する(ステップA11)。
【0066】
ディレクトリ操作要求が更新操作要求であった場合は(ステップA4でイエス)、排他制御装置10は、ロック状態管理部123により、ロック状態表125の基点エントリDNフィールド41および位置関係フィールド42を走査して更新操作要求の対象エントリのDNと比較し、更新操作要求の対象エントリがすでにロックされている基点エントリを基点として位置関係を満足するエントリ群(以下、ロック済関係エントリ群という)に含まれているかどうかを調べる(ステップA5)。
【0067】
更新操作要求の対象エントリがロック済関係エントリ群に含まれていなかった場合は(ステップA5でノー)、排他制御装置10は、ロック状態管理部123により、ロック設定条件表126の根エントリDNフィールド51を走査して更新操作要求の対象エントリのDNと比較し、更新操作要求の対象エントリが排他制御エントリサブツリーに所属しているかどうかを調べる(ステップA6)。詳しくは、更新操作要求の対象エントリのDN中の「属性型名=属性値」に、根エントリDNフィールド51のDN中の「属性型名=属性値」と一致するものがあるかどうかを調べる。
【0068】
更新操作要求の対象エントリが排他制御エントリサブツリーに所属していない場合は(ステップA6でノー)、排他制御装置10は、ロック状態管理部123により、更新操作要求を操作送信部131からディレクトリサーバ装置20へ送信する(ステップA11)。
【0069】
更新操作要求の対象エントリが排他制御エントリサブツリーに所属していた場合は(ステップA6でイエス)、排他制御装置10は、ロック状態管理部123により、ロック設定条件表126の該当行のロック設定条件に従ってロック状態表125に行を追加することにより更新操作要求の対象エントリを基点として位置関係を満足する関係エントリ群に対するロックを生成して要求元のクライアント30に付与する(ステップA7)。詳しくは、基点エントリDNフィールド41に更新操作要求の対象エントリのDNを、位置関係フィールド42にロック設定条件表126の根エントリDNが一致する行の位置関係フィールド52の位置関係を、タイムアウト時間フィールド43にロック設定条件表126の根エントリDNが一致する行のタイムアウト時間フィールド53のタイムアウト時間を、セッションIDフィールド44に要求元のクライアント30のセッションIDを、最終アクセス時刻フィールド45に現在時刻をそれぞれ設定した行をロック状態表125に追加する。
【0070】
この後、排他制御装置10は、ロック状態管理部123により、更新操作要求を操作送信部131からディレクトリサーバ装置20へ送信する(ステップA11)。
【0071】
更新操作要求の対象エントリがロック済関係エントリ群に含まれている場合は(ステップA5でイエス)、排他制御装置10は、ロック状態管理部123により、ロック状態表125の該当行のセッションIDフィールド44を参照して更新操作要求のセッションIDと比較することにより、要求元のクライアント30がロックの所有者であるかどうかを調べる(ステップA8)。
【0072】
要求元のクライアント30がロックの所有者でなかった場合は(ステップA8でノー)、排他制御装置10は、ロック状態管理部123により、応答送信部112から要求元のクライアント30にエラーを返す(ステップA9)。
【0073】
クライアント30がロックの所有者であった場合は(ステップA8でイエス)、排他制御装置10は、ロック状態管理部123により、ロック状態表125の該当行の最終アクセス時刻フィールド45を現在時刻で更新した後(ステップA10)、更新操作要求を操作送信部131からディレクトリサーバ装置20へ送信する(ステップA11)。
【0074】
(2) ディレクトリサーバ装置200からディレクトリ応答を受信した場合
【0075】
排他制御装置10は、ディレクトリサーバ装置200からのディレクトリ応答を応答受信部132で受信すると、そのディレクトリ応答をそのまま応答送信部112からクライアント30へ送信する。
【0076】
(3) ロックがタイムアウトした場合
【0077】
排他制御装置10は、タイムアウト処理部124により、定期的にロック状態表125のタイムアウト時間フィールド43および最終アクセス時刻フィールド45を走査し、最終アクセス時刻フィールド45の最終アクセス時刻と現在時刻との差がタイムアウト時間フィールド43のタイムアウト時間を超えている行をロック状態表125から削除することにより、タイムアウトしたロックを解除する。
【0078】
次に、図3に示した複数のクライアント30がメンテナンス装置30a,30bであるメール情報管理システムを例にとって、システム全体の動作についてより具体的に説明する。
【0079】
メンテナンス装置30a,30bは、メール情報管理システムの管理者に対して図8または図9に示すような入力画面を提供し、クライアント30として排他制御装置10を介してディレクトリサーバ装置20にアクセスして、アカウントエントリ72,73,74の最大容量の属性を変更する。なお、その際に、メンテナンス装置30a,
30bは、あらかじめドメインエントリ71を参照し、アカウントエントリ72,73,74の最大容量の合計がドメインエントリ71の最大容量を超えないように、管理者からの入力を制限する。
【0080】
いま、メールドメインabc.comの管理者A,Bがいて、管理者Aはメンテナンス装置30aを通して図8に示した内容の設定変更を行う更新操作要求を、管理者Bはメンテナンス装置30bを通して図9に示した内容の設定変更を行う更新操作要求を、同時に送信したとする。ここで、メンテナンス装置30a,30bの更新操作要求が、次のような順番で排他制御装置10に到着したとする。
【0081】
更新操作要求r1: メンテナンス装置30aからアカウントエントリ72への更新操作要求(アカウントエントリ72の最大容量を20MBに更新)
【0082】
更新操作要求r2: メンテナンス装置30aからアカウントエントリ73への更新操作要求(アカウントエントリ73の最大容量を30MBに更新)
【0083】
更新操作要求r3: メンテナンス装置30bからアカウントエントリ72への更新操作要求(アカウントエントリ72の最大容量を40MBに更新)
【0084】
更新操作要求r4: メンテナンス装置30bからアカウントエントリ73への更新操作要求(アカウントエントリ73の最大容量を30MBに更新)
【0085】
更新操作要求r5: メンテナンス装置30bからアカウントエントリ74への更新操作要求(アカウントエントリ74の最大容量を20MBに更新)
【0086】
更新操作要求r6: メンテナンス装置30aからアカウントエントリ74への更新操作要求(アカウントエントリ74の最大容量を40MBに更新)
【0087】
排他制御装置10が存在するメール情報管理システムの動作は、次の通りである。
【0088】
更新操作要求r1は、図10のステップA1,A2,A4,A5,A6,A7,A11を経て、図5のロック設定条件表126のロック設定条件に応じてアカウントエントリ72,73,74からなる関係エントリ群へのロックが生成されてメンテナンス装置30aに付与された後に、ディレクトリサーバ装置20へ送信される。詳しくは、更新操作要求r1がアカウントエントリ72(DNが「uid=user1,dc=abc,dc=com」)を対象エントリとして発行された場合、アカウントエントリ72は、図5中の根エントリDNフィールド51の「dc=com」を根エントリとする排他制御エントリサブツリーに所属しているので、図5のロック設定条件表126の該当行のロック設定条件に応じてアカウントエントリ72,73,74からなる関係エントリ群へのロックが生成されてメンテナンス装置30aに付与された後に、更新操作要求r1がディレクトリサーバ装置20へ送信される。すなわち、図4のロック状態表125では、基点エントリDNフィールド41にはアカウントエントリ72のDN「uid=user1,dc=abc,dc=com」が、位置関係フィールド42には図5のロック設定条件表126の該当行に指定された位置関係「兄弟」が、タイムアウト時間フィールド43には図5のロック設定条件表126の該当行に指定されたタイムアウト時間「100msec」が、セッションIDフィールド44には更新操作要求r1の要求元のメンテナンス装置30aのセッションID(アドレス「192.168.1.1」およびポート番号「1234」)が、最終アクセス時刻フィールド45には現在時刻「2002/03/01 20;00;12.355」がそれぞれ登録される。
【0089】
更新操作要求r2は、メンテナンス装置30aがアカウントエントリ73に対するロックを所有しているので、図10のステップA1,A2,A4,A5,A8,A10,A11を経て、ディレクトリサーバ装置20へ送信される。詳しくは、メンテナンス装置30aからアカウントエントリ73への更新操作要求r2では、図4のロック状態表125の該当行における基点エントリDNフィールド41および位置関係フィールド42を走査し、アカウントエントリ73のDN「uid=user2,dc=abc,dc=com」中の「親」を表す「dc=abc,dc=com」とロック状態表125の該当行における基点エントリDNフィールド41の「uid=user1,dc=abc,dc=com」中の「親」を表す「dc=abc,dc=com」とを比較し、両者が一致するので「兄弟」関係にあることが判り、ロックされていると判定する(ステップA5でイエス)。次に、更新操作要求r2をしたメンテナンス装置30aのセッションID(アドレスおよびポート番号)と、図4のロック状態表125の該当行におけるセッションIDフィールド44のセッションID(アドレスおよびポート番号)とを比較し、両者が一致するので、要求元のメンテナンス装置30aがロックの所有者である判定する(ステップA8でイエス)。続いて、ロック状態表125の該当行における最終アクセス時刻フィールド45に現在時刻を上書きし(ステップA10)、更新操作要求r2をディレクトリサーバ装置20へ送信する(ステップA11)。
【0090】
更新操作要求r3は、メンテナンス装置30aがアカウントエントリ73に対するロックを所有しているので、図10のステップA1,A2,A4,A5,A8,A9を経て、メンテナンス装置30bに対してエラーが返される。詳しくは、メンテナンス装置30aからアカウントエントリ73への更新操作要求r2では、図4のロック状態表125の該当行における基点エントリDNフィールド41および位置関係フィールド42を走査し、アカウントエントリ73のDN「uid=user2,dc=abc,dc=com」中の「親」を表す「dc=abc,dc=com」とロック状態表125の該当行における基点エントリDNフィールド41の「uid=user1,dc=abc,dc=com」中の「親」を表す「dc=abc,dc=com」とを比較し、両者が一致するので「兄弟」関係にあることが判り、ロックされていると判定する(ステップA5でイエス)。しかし、更新操作要求r3のセッションID(要求元のメンテナンス装置30bのアドレスおよびポート番号)と、セッションIDフィールド44のセッションID(メンテナンス装置30aのアドレスおよびポート番号)とを比較し、両者が一致しないので、ロックの所有者ではないと判定し(ステップA8でノー)、要求元のメンテナンス装置30bにエラーを返す(ステップA9)。
【0091】
更新操作要求r4および更新操作要求r5についても、更新操作要求r3と同様の動作となる。
【0092】
更新操作要求r6は、更新操作要求r2と同様に、メンテナンス装置30aがアカウントエントリ74に対するロックを所有しているので、図10のステップA1,A2,A4,A5,A8,A10,A11を経て、ディレクトリサーバ装置20へ送信される。
【0093】
最後の更新操作要求r6の後、タイムアウト時間フィールド43に指定されたタイムアウト時間100msecが経過すると、タイムアウト処理部124により、図4のロック状態表125中のタイムアウトしたロック状態の行は全て削除されてロックが解除される。
【0094】
また、メンテナンス装置30aが明示的にディレクトリサーバ装置20に対する接続切断操作要求を発行しても、図4のロック状態表125中のロック状態の行は削除されてロックが解除される(ステップA2,A3)。
【0095】
その後、メンテナンス装置30bが更新操作要求r3を再度発行すると、図10のステップA1,A2,A4,A5,A6,A7,A11を経て、図5のロック設定条件表126のロック設定条件により、アカウントエントリ72,73,74をロック済関係エントリ群とするロックが生成されてメンテナンス装置30bに付与され、更新操作要求r3がディレクトリサーバ装置20へ送信される。
【0096】
メンテナンス装置30bが引き続き更新操作要求r4および更新操作要求r5を発行すると、図10のステップA1,A2,A4,A5,A8,A10,A11を経て、更新操作要求r4および更新操作要求r5がディレクトリサーバ装置20へ送信される。
【0097】
ここで、メンテナンス装置30bが接続切断操作要求を行うか、あるいはあらかじめ指定したタイムアウト時間100msecが経過すれば、ロック解除が行われる。
【0098】
以上を経て、最終的に、アカウントエントリ72,73,74の内容は、管理者Bによるメンテナンス装置30bからの更新操作要求のみが反映された形となる。
【0099】
なお、ここでもしも、排他制御装置10が存在せず、メンテナンス装置30a,30bからディレクトリサーバ装置20に対して更新操作要求が直接行われたとすると、結果として反映される更新操作要求は、次の通りである。
【0100】
アカウントエントリ72に対しては更新操作要求r3、アカウントエントリ73に対しては更新操作要求r4、アカウントエントリ74に対しては更新操作要求r6をすると、アカウントエントリ72,73,74の最大容量の属性は、それぞれ、40MB,30MB,40MBとなり、その合計は110MBとなって、ドメインエントリ71の最大容量100MBを超えてしまう。
【0101】
これに対して、本実施の形態に係る排他制御装置10を使用した場合には、管理者Aからの更新操作要求r1,r2およびr6と、管理者Bからの更新操作要求r3,r4およびr5とが排他制御されるので、アカウントエントリ72,73,74の最大容量の合計がドメインエントリ71の最大容量100MBを超えることがなくなる。
【0102】
[第2の実施の形態]
図11は、本発明の第2の実施の形態に係る排他制御装置10の構成を示すブロック図である。本実施の形態に係る排他制御装置10は、コンピュータ100に排他制御プログラム1000をインストールすることにより排他制御装置10を実現するようにしたものである。
【0103】
排他制御プログラム1000は、コンピュータ100に読み込まれ、同コンピュータ100の動作を、第1の実施の形態における操作受信部111,応答送信部112,操作種別判定部121,ロック状態管理部123,タイムアウト処理部124,ロック状態表125,ロック設定条件表126,操作送信部131,および応答受信部132とから構成される排他制御装置10の動作と全く同様に制御する。よって、第2の実施の形態に係る排他制御装置10の詳しい動作の説明は割愛する。
【0104】
【発明の効果】
第1の効果は、クライアントが排他制御について何も意識する必要がないことである。その理由は、排他制御装置による自動的なロック処理およびロック解除処理を行うためである。
【0105】
第2の効果は、ディレクトリサーバ装置は排他制御機能やトランザクション制御機能を備えている必要はなく、また、その中のデータおよびスキーマになんら変更を加える必要もないことである。その理由は、排他制御装置がディレクトリサーバ装置中のエントリのロック状態を管理し排他制御を行うためである。
【0106】
第3の効果は、排他制御をディレクトリサーバ装置の外で行っているにもかかわらず、更新操作要求の対象エントリがロック済関係エントリ群に含まれているか否か、および排他制御エントリサブツリーに所属しているか否かの判定が高速にできることである。その理由は、ロック済関係エントリ群に含まれているか否かの判定,および排他制御エントリサブツリーに所属しているか否かの判定の際にディレクトリサーバ装置を参照する必要がないためである。
【0107】
第4の効果は、ネットワーク障害等によりロックがいつまでも残ることがないことである。その理由は、排他制御装置が、クライアントからのアクセス時刻を追跡し、ロックのタイムアウト処理を行うためである。
【0108】
第5の効果は、排他制御したいエントリが複数でも、必ずしも1エントリずつロックする必要がないため、デッドロックの確率を減らすことができることである。その理由は、関連するエントリの配置としてよくある位置関係に応じた関係エントリ群の単位で、複数のエントリを1回のロック処理でロックすることができるためである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る排他制御装置の構成を示すブロック図である。
【図2】第1の実施の形態に係る排他制御装置が配置されたシステム図である。
【図3】図2中のクライアントとしてメンテナンス装置が配置されたメール情報管理システムを示す図である。
【図4】図1中のロック状態表の内容を例示する図である。
【図5】図1中のロック設定条件表の内容を例示する図である。
【図6】図4および図5中の位置関係フィールドに設定される位置関係を例示する図である。
【図7】図2中のディレクトリサーバ装置における排他制御エントリサブツリーを例示する図である。
【図8】図3中のメンテナンス装置がシステムの管理者に対して提供する入力画面の一例を示す図である。
【図9】図3中のメンテナンス装置がシステムの管理者に対して提供する入力画面の他の例を示す図である。
【図10】第1の実施の形態に係る排他制御装置の動作を示すフローチャートである。
【図11】本発明の第2の実施の形態に係る排他制御装置の構成を示すブロック図である。
【符号の説明】
10 排他制御装置
11 クライアント通信部
12 排他制御部
13 サーバ通信部
20 ディレクトリサーバ装置
30 クライアント
30a,30b メンテナンス装置
41 基点エントリDNフィールド
42 位置関係エントリサブツリーフィールド
43 タイムアウト時間フィールド
44 セッションIDフィールド
45 最終アクセス時刻フィールド
51 根エントリDNフィールド
52 位置関係フィールド
53 タイムアウト時間フィールド
100 コンピュータ
111 操作受信部
112 応答送信部
121 操作種別判定部
123 ロック状態管理部
124 タイムアウト処理部
125 ロック状態表
126 ロック設定条件表
131 操作送信部
132 応答受信部
1000 排他制御プログラム
A1 ディレクトリ操作要求受信ステップ
A2 接続切断操作要求判定ステップ
A3 所有ロック解除ステップ
A4 更新操作要求判定ステップ
A5 ロック済関係エントリ群判定ステップ
A6 排他制御エントリサブツリー所属判定ステップ
A7 ロック付与ステップ
A8 ロック所有者判定ステップ
A9 エラー返却ステップ
A10 最終アクセス時刻更新ステップ
A11 ディレクトリ操作要求送信ステップ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an exclusive control device and an exclusive control method, and more particularly, to an exclusive control device and an exclusive control method in a system having a plurality of clients and a directory server device.
[0002]
[Prior art]
The directory server device is a database that manages personal information on each user of the Internet / intranet and provides the information at the request of each user. Currently, the most used directory access protocol is LDAP (Lightweight).
Since the directory server is Directory Access Protocol, the directory server may be called an LDAP server. Specifically, the directory server manages each user's name, department, telephone number, mail address, password required for user authentication, and the like. In addition to providing the information in response to a reference request from each user, personal information can be exchanged with another directory service within the set security range.
[0003]
The directory server device has a data object as a tree-like hierarchical structure, each data object is called an entry, each data field of each entry is called an attribute, and each entry contains position information of the entry on the hierarchy. It has an identifier called DN (Distinguished Name).
[0004]
By the way, the directory server device has been devised as a database of a search entity that stores data such as a telephone directory. However, since the directory server device can be accessed by a standardized protocol called LDAP, it is used to centrally manage data of various applications. And is no longer a search entity.
[0005]
Also, in a system using a directory server device, at the time of construction, exclusive control was not performed because there was only one client accessing the same data area at the same time, but equivalent processing is performed as the system scale increases. It may be necessary to introduce exclusive control in the middle to increase the number of clients.
[0006]
However, in a standard directory server device, exclusive control (transaction control) is performed only in units of one directory operation request for one entry.
[0007]
Conventional technology related to exclusive control or transaction control in a directory server device is disclosed, for example, in Japanese Patent Application Laid-Open No. 11-96062 as a directory server device having a transaction control function.
[0008]
In addition, Internet draft draft-zeilenga-ldap-grouping-04. txt and draft-zeilenga-ldap-txtn-04. txt proposes an interface standard for a client that a directory server device having a transaction control function should have.
[0009]
[Problems to be solved by the invention]
However, in the above-described conventional technologies, new LDAP operations such as a transaction start operation and a transaction end operation are defined using the framework of the extended operation of the LDAP, and a directory operation request that the client wants to perform as one transaction is defined. However, since the transaction start operation request and the transaction end operation request are to be issued and enclosed, there are the following problems.
[0010]
The first problem is that when exclusive control is newly required, the existing client needs to be changed. If you want to change the way the transaction is cut, you must change the client each time. The reason is that it is necessary to implement a new process for exclusive control such as a transaction start operation and a transaction end operation in the client.
[0011]
The second problem is that when a system has already been constructed using a general directory server device that does not have an exclusive control function, and a new exclusive control is required, the directory server device that is currently in use is required. It is necessary to perform data migration by replacing. The reason is that a special directory server device having a transaction control function is required.
[0012]
On the other hand, as a means for implementing exclusive control without using a special directory server device having a transaction control function, a lock is provided on each entry in the directory database for exclusive control. Prepares the attribute of the flag of whether or not the client has been locked, the client checks whether the target entry of the directory operation request is locked, and if it is not locked, locks those entries and completes the series of operations It is conceivable to release the lock at the time.
[0013]
However, in this case, there are the following problems.
[0014]
The first problem is that, when exclusive control is newly required as described above, all existing clients need to be changed, and if a client who does not confirm locks appears, exclusion is violated. That is. The reason is that exclusive control is realized when all clients perform processes such as lock confirmation, lock, and lock release.
[0015]
The second problem is that the directory server apparatus may need to change the schema of the directory database. The reason is that an attribute of a flag for exclusive control is required.
[0016]
The third problem is that the processing for exclusive control affects performance. The reason is that each time an update operation of one entry is performed, each process of lock confirmation, lock, and lock release is performed by communicating with the directory server device.
[0017]
A fourth problem is that the lock remains when the lock release processing fails due to a network failure or the like. The reason is that there is no mechanism for unlocking other than the unlocking process by the client.
[0018]
The fifth problem is that the possibility of deadlock is high. The reason is that it is necessary to lock the target entries of the update operation request one by one. For example, there are clients C and D who want to lock the entries A and B, and the client C has the entry A and the client D has the entry. This is because if B is locked first, it may happen that both clients C and D fail to acquire the lock.
[0019]
An object of the present invention is to realize exclusive control such that while a client makes a plurality of update operation requests for a plurality of entries on a directory server device, the update operation requests for those entries from other clients are restricted. It is an object of the present invention to provide an exclusive control device and an exclusive control method that can be used.
[0020]
[Means for Solving the Problems]
The exclusive control device according to the present invention is arranged in front of a directory server device, manages information on which entry in the directory server device is locked by which client, and issues an update operation request for an already locked entry. If the requesting client is not the lock owner, an error is returned to the requesting client, and if the requesting client is the lock owner, an update operation request is sent to the directory server device. The exclusive control is performed.
[0021]
Further, the exclusive control device of the present invention includes a lock setting condition table for recording a lock setting condition for each exclusive control entry subtree in advance, a lock state table for recording a lock for each locked relationship entry group, and a directory operation request from a client. An operation receiving unit that receives a directory operation request to the directory server device; a response receiving unit that receives a directory response from the directory server device; and a directory response and an error received by the response receiving unit. A response transmitting unit that transmits the request to the client, an operation type determining unit that determines the type of the directory operation request received by the operation receiving unit, and the operation type determining unit determines that the directory operation request is an update operation request When locked, the locked status is referenced with reference to the lock status table. In the case of an update operation request for an entry included in the entry group, if the requesting client is not the lock owner, an error is returned from the response transmission unit to the requesting client, and the requesting client is If the update operation request is transmitted from the operation transmission unit to the directory server device if the update operation request is for an entry that is not included in the locked related entry group, the lock state is referred to by referring to the lock setting condition table. A lock state management unit that records a lock on the related entry group in the table, gives the lock to the requesting client, and transmits an update operation request from the operation transmission unit to the directory server device; and periodically accesses the lock state table. A timeout processing unit that releases a lock that has timed out.
[0022]
Further, in the exclusive control device according to the present invention, when the lock state management unit determines that the directory operation request is a connection disconnection operation request by the operation type determination unit, the lock state management unit owns the request source client from the lock state table. It is characterized in that all locks to be released are released.
[0023]
Furthermore, the exclusive control device according to the present invention, when the lock state management unit determines that the directory operation request is other than the disconnection operation request and the update operation request by the operation type determination unit, the directory operation request. The data is transmitted from the operation transmitting unit to the directory server device.
[0024]
In the exclusive control device of the present invention, each row of the lock setting condition table requires exclusive control in the root entry DN field in which the DN of the root entry of the exclusive control entry subtree is set and the exclusive control entry subtree at the same time. It is characterized by having a positional relationship field in which the positional relationship of entries is set, and a timeout time field in which a lock timeout time is set.
[0025]
Further, in the exclusive control device of the present invention, each row of the lock state table may be set such that the base entry DN field in which the DN of the target entry of the update operation request is set and the entry specified by the base entry DN field are simultaneously set as base points. A positional relationship field in which a positional relationship of an entry requiring exclusive control is set, a timeout time field in which a lock timeout time is set, and a session ID field in which a session ID of a client owning the lock is set. And a last access time field in which the last access time at which the last update operation request for the entry included in the locked relationship entry group from the client owning the lock is issued is set.
[0026]
Still further, in the exclusive control device of the present invention, the timeout processing unit periodically scans the timeout time field and the last access time field of the lock state table, and compares the last access time and the current time in the last access time field. The lock is released by deleting a row in which the difference exceeds the timeout time in the timeout time field.
[0027]
On the other hand, in the exclusive control method of the present invention, in the exclusive control method of a system including a plurality of clients and a directory server, which entry in the directory server is locked by which client before the directory server Arranging an exclusive control device that performs exclusive control of an entry by managing the information of the entry, and when an update operation request is made to an unlocked entry, a lock for the target entry is generated and given to the requesting client. A step of transmitting an update operation request to the directory server, and determining whether the requesting client owns the lock when the update operation request for the already locked entry is received, and determining whether the requesting client has the lock. If the client does not own the Sending the update operation request to the directory server device if the lock is owned by the requesting client; and automatically locking the lock after the requesting client disconnects or after a certain timeout period elapses. And a step of releasing.
[0028]
Further, the exclusive control method of the present invention includes a step of receiving a directory operation request from a client, a step of checking whether or not the received directory operation request is a disconnection operation request, and a step of determining whether the directory operation request is a disconnection operation request. Releasing all locks owned by the requesting client when there is a request; and checking whether the directory operation request is an update operation request when the directory operation request is not a disconnection operation request. Transmitting a directory operation request to the directory server device when the directory operation request is not an update operation request; and when the directory operation request is an update operation request, the target entry of the update operation request is a locked relationship entry. The process of checking whether the group is included in the group and the target Checking whether the target entry of the update operation request belongs to the exclusive control entry subtree when the bird is not included in the locked relation entry group; and A step of generating a lock for the related entry group including the target entry when belonging to the client, and providing the lock to the requesting client; transmitting the update operation request to the directory server; Checking whether the requesting client is the owner of the lock when it is included in the requesting relationship entries, and issuing an error to the requesting client if the requesting client is not the owner of the lock. Return and the last access time when the requesting client was the owner of the lock. And transmitting an update operation request after updating by standing time to the directory server device, characterized by comprising a step of transmitting said directory responsive to the requesting client when it receives a directory response.
[0029]
Further, the exclusive control method according to the present invention is characterized in that the exclusive control method includes a step of disconnecting the connection from the requesting client or automatically releasing the lock after a predetermined timeout period has elapsed.
[0030]
On the other hand, the program according to the present invention comprises: a computer configured to execute a lock setting condition table for recording in advance a lock setting condition for each exclusive control entry subtree, a lock state table for recording a lock for each locked related entry group, An operation receiving unit that receives a request, an operation transmitting unit that transmits a directory operation request to a directory server device, a response receiving unit that receives a directory response from the directory server device, and a directory response and an error received by the response receiving unit. A response transmitting unit that transmits the request to the client, an operation type determining unit that determines the type of the directory operation request received by the operation receiving unit, and that the directory operation request is an update operation request by the operation type determining unit. When determined, refer to the lock status table In the case of an update operation request for an entry included in the locked relationship entry group, if the requesting client is not the owner of the lock, an error is returned from the response transmission unit to the requesting client, and the requesting client is locked. If the owner of the update operation request is transmitted from the operation transmission unit to the directory server device if the owner of the update operation request for an entry that is not included in the locked related entry group, refer to the lock setting condition table A lock state management unit that records a lock on the related entry group in the lock state table, gives the lock to the requesting client, and transmits an update operation request from the operation transmission unit to the directory server device; It can function as a timeout processing unit that releases the lock that has timed out by accessing. The features.
[0031]
Further, the program of the present invention includes a step of receiving a directory operation request from a client, a step of checking whether the received directory operation request is a disconnection operation request, and a step of determining whether the directory operation request is a connection disconnection operation request. Releasing all locks owned by the requesting client when the request has been issued, and checking whether the directory operation request is an update operation request when the directory operation request is not a disconnection operation request Transmitting a directory operation request to the directory server device when the directory operation request is not an update operation request; and, when the directory operation request is an update operation request, the target entry of the update operation request is locked. The process of checking whether entries are included in the Checking whether the target entry of the update operation request belongs to the exclusive control entry subtree when the target entry of the request is not included in the locked relation entry group; A step of generating a lock on a related entry group including the target entry when belonging to the entry subtree, giving the lock to the requesting client, and transmitting the update operation request to the directory server device; Checking if the requesting client is the owner of the lock when the entry is included in the locked relationship entries; and requesting the client if the requesting client was not the owner of the lock And returns an error if the requesting client was the owner of the lock. Transmitting the update operation request to the directory server device after updating the access time with the current time, and transmitting the directory response to the requesting client when the directory response is received. .
[0032]
As shown in FIG. 2, the exclusive control device 10 of the present invention is arranged in front of the directory server device 20 when there are a plurality of clients 30 and the directory server device 20. The exclusive control device 10 manages information on which entry in the directory server device 20 is locked by which client 30. When receiving an update operation request for an entry included in the locked related entry group, the exclusive control device 10 Is determined to be the owner of the lock, an error is returned if the client is not the owner of the lock, and an update operation request is transmitted to the directory server device if the requesting client is the owner of the lock. Exclusive control is performed by doing this. By setting the exclusive control entry subtree in the exclusive control device 10 in advance, a lock on the related entry group including the target entry as the base entry is given to the client 30 that has requested the update operation, and the requesting client 30 is Automatically unlocked after disconnecting or after a certain period of time. Thereby, exclusive control can be realized without the client 30 being conscious of anything and without making any changes to the existing directory server device 20 and the client 30.
[0033]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0034]
[First Embodiment]
FIG. 2 is a system diagram in which the exclusive control device 10 according to the first embodiment of the present invention is arranged. This system includes a directory server device 20, a plurality of clients 30, and an exclusive control device 10 interposed therebetween.
[0035]
FIG. 3 is a diagram showing a mail information management system in which maintenance devices 30a and 30b are arranged as clients 30 in the system shown in FIG.
[0036]
The directory server device 20 stores data objects as entries in a directory database (not shown) in the form of a tree, and the content of each entry is a list of pairs of attribute type names and attribute values. One of the pairs is selected and used for naming the entry, and the DN of the entry lists the naming attributes of each entry from that entry to the root entry of the directory tree, and sets "Attribute type name = Attribute value, attribute type name = attribute value, ... ".
[0037]
Referring to FIG. 1, the exclusive control device 10 includes a client communication unit 11 including an operation reception unit 111 and a response transmission unit 112, an operation type determination unit 121, a lock state management unit 123, a timeout processing unit 124, and a lock state table 125. The exclusive control unit 12 includes a lock setting condition table 126, and the server communication unit 13 includes an operation transmitting unit 131 and a response receiving unit 132.
[0038]
The operation receiving unit 111 receives a directory operation request from the client 30.
[0039]
The response transmitting unit 112 transmits the directory response and the error to the client 30.
[0040]
The operation transmitting unit 131 transmits a directory operation request to the directory server device 20.
[0041]
The response receiving unit 132 receives a directory response from the directory server device 20.
[0042]
The operation type determining unit 121 determines the type of the directory operation request received by the operation receiving unit 111.
[0043]
The lock state management unit 123 processes the directory operation request received from the operation type determination unit 121 and performs exclusive control while accessing the lock state table 125 and the lock setting condition table 126. That is, the lock state management unit 123 generates a lock for each related entry group by adding a row to the lock state table 125, and gives the lock to the requesting client 30. The lock state management unit 123 refers to the directory server device 20 by comparing and comparing the DN of the target entry of the update operation request from the client 30 with the base entry DN field 41 and the positional relationship field 42 of the lock state table 125. It is possible to determine at a high speed whether or not the target entry of the update operation request is included in the locked related entry group without performing. Further, the lock state management unit 123 compares and checks the DN of the target entry of the update operation request from the client 30 with the root entry DN field 51 of the lock setting condition table 126 without referring to the directory server device 20. It is possible to quickly determine whether or not the target entry of the update operation request is included in the exclusive control entry subtree.
[0044]
The timeout processing unit 124 monitors the lock timeout by referring to the lock status table 125, and releases the lock by deleting the row of the locked timeout lock from the lock status table 125.
[0045]
The lock state table 125 records which relation entry group in the directory server device 20 is locked by which client 30.
[0046]
Referring to FIG. 4, each row of the lock state table 125 includes a base entry DN field 41, a positional relationship field 42, a timeout time field 43, a session ID (IDentification) field 44, and a last access time field 45. A row represents one lock.
[0047]
In the base entry DN field 41, the DN of the entry serving as the base of the lock in the locked relation entry group is set.
[0048]
One of itself, parent, child, and sibling shown in FIG. 6 is set in the positional relationship field 42 according to the positional relationship with the entry set in the base entry DN field 41, and the base entry DN field 41 and the positional relationship field are set. The combination with 42 specifies a locked relationship entry group. It should be noted that a plurality of entries can be collectively locked by a single lock process using the base entry DN field 41 and the positional relationship field 42.
[0049]
In the timeout time field 43, a lock timeout time is set.
[0050]
In the session ID field 44, a session ID (address and port number) for specifying the client 30 owning the lock is set.
[0051]
The last access time field 45 records the time at which the last update operation request for the entry included in the locked relation entry group from the client 30 owning the lock is issued. If there is no next update operation request during the timeout period set in the timeout period field 43, the lock is released by the timeout processing unit 124.
[0052]
The lock setting condition table 126 records a root entry DN, a positional relationship, and a timeout time for each exclusive control entry subtree in the exclusive control device 10.
[0053]
Referring to FIG. 5, each row of the lock setting condition table 126 has a root entry DN field 51, a positional relationship field 52, and a timeout time field 53, and one row indicates a lock setting condition for one exclusive control entry subtree. Represent.
[0054]
In the root entry DN field 51, the DN of the root entry of the exclusive control entry subtree that validates the lock setting condition of the row is specified. An update operation request is issued for an entry belonging to the exclusive control entry subtree having the entry specified in the root entry DN field 51 as a root entry, and all entries included in the related entry group including the target entry of the update operation request If has not been locked yet, a row is added to the lock state table 125 as follows, a lock is generated, and the lock is generated and granted to the requesting client 30.
[0055]
In the positional relationship field 52, for each exclusive control entry subtree in the directory server device 20, the positional relationship to be a related entry group is set as one of itself, parent, child, and sibling shown in FIG.
[0056]
In the timeout time field 53, a lock timeout time is set for each exclusive control entry subtree in the directory server device 20.
[0057]
FIG. 7 shows an example of the exclusive control entry subtree in the directory server device 20. The exclusive control entry subtree is configured by hierarchically connecting a root entry 70, a domain entry 71, and account entries 72, 73, 74. The root entry 70 stores various settings related to the domain com. The domain entry 71 contains the mail domain abc. com for various settings. Account entries 72, 73, 74 arranged immediately below the domain entry 71 are mail domains abc. com user account belonging to com1@abc.com com, user2 @ abc. com, user3 @ abc. com for various settings. Here, the account entries 72, 73, and 74 store the upper limit of the mailbox size of each account in an attribute called maximum capacity, and the domain entry 71 also stores the upper limit of the total maximum capacity of each account. It is stored in the attribute called capacity.
[0058]
The client 30 provides the administrator of the mail information management system shown in FIG. 3 with an input screen as shown in FIG. 8 or 9 and accesses the directory server device 20 via the exclusive control device 10 as a directory client. Then, the attribute of the maximum capacity of the account entries 72, 73, 74 is changed. At this time, the client 30 refers to the domain entry 71 in advance and restricts the input from the administrator so that the sum of the maximum capacities of the account entries 72, 73, and 74 does not exceed the maximum capacity of the domain entry 71. I do.
[0059]
Referring to FIG. 10, the process of the exclusive control device 10 according to the first embodiment includes a directory operation request receiving step A1, a disconnection operation request determination step A2, a possession lock release step A3, an update operation request determination Step A4, locked relation entry group determination step A5, exclusive control entry subtree belonging determination step A6, lock grant step A7, lock owner determination step A8, error return step A9, last access time update step A10 And a directory operation request transmission step A11.
[0060]
Next, the operation of the exclusive control apparatus 10 according to the first embodiment configured as described above will be described in detail.
[0061]
(1) When the exclusive control device 10 receives a directory operation request from the client 30
[0062]
First, when a directory operation request from the client 30 is received by the operation receiving unit 111 (step A1), the exclusive control device 10 determines whether the received directory operation request is a connection disconnection operation request by the operation type determination unit 121. Is checked (step A2).
[0063]
If the directory operation request is a connection disconnection operation request (Yes in step A2), the exclusive control device 10 causes the lock state management unit 123 to scan the session ID field 44 of the lock state table 125 and perform the connection disconnection operation request. , And deletes all the rows of the locks owned by the requesting client 30 from the lock state table 125 to release all the locks granted to the requesting client 30 (step A3), a connection disconnection operation request is transmitted from the operation transmitting unit 131 to the directory server device 20 (step A11).
[0064]
If the directory operation request is not a connection disconnection operation request (No in step A2), the exclusive control device 10 checks by the lock state management unit 123 whether the directory operation request is an update operation request (step A4). .
[0065]
If the directory operation request is not an update operation request (if it is a reference operation request or the like) (No in step A4), the exclusive control device 10 causes the lock state management unit 123 to transmit the directory operation request to the operation transmission unit 131. To the directory server 20 (step A11).
[0066]
When the directory operation request is an update operation request (Yes in step A4), the exclusive control device 10 scans the base entry DN field 41 and the positional relationship field 42 of the lock state table 125 by the lock state management unit 123. The DN of the target entry of the update operation request is compared with the DN of the target entry of the update operation request, and the target entry of the update operation request is included in an entry group that satisfies the positional relationship with the base entry already locked (hereinafter referred to as a locked relation entry group). It is checked whether or not it is (step A5).
[0067]
When the target entry of the update operation request is not included in the locked relation entry group (No in step A5), the exclusive control device 10 causes the lock state management unit 123 to execute the root entry DN field of the lock setting condition table 126. 51 is scanned and compared with the DN of the target entry of the update operation request to check whether or not the target entry of the update operation request belongs to the exclusive control entry subtree (step A6). More specifically, it is checked whether or not “attribute type name = attribute value” in the DN of the target entry of the update operation request matches “attribute type name = attribute value” in the DN of the root entry DN field 51. .
[0068]
If the target entry of the update operation request does not belong to the exclusive control entry subtree (No in step A6), the exclusive control device 10 sends the update operation request from the operation transmission unit 131 to the directory server device by the lock state management unit 123. 20 (step A11).
[0069]
If the target entry of the update operation request belongs to the exclusive control entry subtree (YES in step A6), the exclusive control device 10 causes the lock state management unit 123 to set the lock setting condition of the corresponding row of the lock setting condition table 126. By adding a row to the lock state table 125 in accordance with the above, a lock is generated for the related entry group satisfying the positional relationship with the target entry of the update operation request as a base point, and given to the requesting client 30 (step A7). More specifically, the DN of the target entry of the update operation request is stored in the base entry DN field 41, the positional relationship of the positional relationship field 52 of the row where the root entry DN of the lock setting condition table 126 matches in the positional relationship field 42, and the timeout time field. Reference numeral 43 denotes the timeout period of the timeout period field 53 of the row where the root entry DN of the lock setting condition table 126 matches, the session ID field 44 the session ID of the requesting client 30, and the last access time field 45 the current time. The set row is added to the lock state table 125.
[0070]
Thereafter, the exclusive control device 10 causes the lock state management unit 123 to transmit an update operation request from the operation transmission unit 131 to the directory server device 20 (step A11).
[0071]
When the target entry of the update operation request is included in the locked relation entry group (Yes in step A5), the lock control unit 123 causes the lock control unit 123 to set the session ID field of the corresponding row of the lock control table 125. By referring to 44 and comparing with the session ID of the update operation request, it is checked whether or not the requesting client 30 is the owner of the lock (step A8).
[0072]
If the requesting client 30 is not the owner of the lock (No in step A8), the exclusive control device 10 returns an error from the response transmission unit 112 to the requesting client 30 by the lock state management unit 123 (step A8). Step A9).
[0073]
When the client 30 is the owner of the lock (Yes in step A8), the exclusive control device 10 updates the last access time field 45 of the corresponding row of the lock status table 125 with the current time by the lock status management unit 123. After that (Step A10), an update operation request is transmitted from the operation transmitting unit 131 to the directory server device 20 (Step A11).
[0074]
(2) When a directory response is received from the directory server device 200
[0075]
When the response receiving unit 132 receives the directory response from the directory server device 200, the exclusive control device 10 transmits the directory response as it is from the response transmitting unit 112 to the client 30.
[0076]
(3) When lock times out
[0077]
The exclusive control device 10 periodically scans the timeout time field 43 and the last access time field 45 of the lock state table 125 by the timeout processing unit 124, and determines the difference between the last access time in the last access time field 45 and the current time. The lock that has timed out is released by deleting from the lock state table 125 the row exceeding the timeout time in the timeout time field 43.
[0078]
Next, the operation of the entire system will be described more specifically, taking as an example a mail information management system in which the plurality of clients 30 shown in FIG. 3 are the maintenance devices 30a and 30b.
[0079]
The maintenance devices 30a and 30b provide an input screen as shown in FIG. 8 or FIG. 9 to the administrator of the mail information management system, and access the directory server device 20 via the exclusive control device 10 as the client 30. Then, the attribute of the maximum capacity of the account entries 72, 73, 74 is changed. At this time, the maintenance device 30a,
30b refers to the domain entry 71 in advance, and restricts the input from the administrator so that the sum of the maximum capacities of the account entries 72, 73, 74 does not exceed the maximum capacity of the domain entry 71.
[0080]
Now, mail domain abc. There are administrators A and B of the com. The administrator A issues an update operation request to change the settings shown in FIG. 8 through the maintenance device 30a, and the administrator B sets the content shown in FIG. 9 through the maintenance device 30b. It is assumed that an update operation request for making a change is transmitted at the same time. Here, it is assumed that the update operation requests of the maintenance devices 30a and 30b arrive at the exclusive control device 10 in the following order.
[0081]
Update operation request r1: Update operation request from maintenance device 30a to account entry 72 (updates the maximum capacity of account entry 72 to 20 MB)
[0082]
Update operation request r2: Update operation request from maintenance device 30a to account entry 73 (updates the maximum capacity of account entry 73 to 30 MB)
[0083]
Update operation request r3: Update operation request from maintenance device 30b to account entry 72 (updates the maximum capacity of account entry 72 to 40 MB)
[0084]
Update operation request r4: Update operation request from maintenance device 30b to account entry 73 (updates the maximum capacity of account entry 73 to 30 MB)
[0085]
Update operation request r5: Update operation request from maintenance device 30b to account entry 74 (updates the maximum capacity of account entry 74 to 20 MB)
[0086]
Update operation request r6: Update operation request from maintenance device 30a to account entry 74 (updates the maximum capacity of account entry 74 to 40 MB)
[0087]
The operation of the mail information management system in which the exclusive control device 10 exists is as follows.
[0088]
The update operation request r1 is made up of account entries 72, 73 and 74 according to the lock setting conditions of the lock setting condition table 126 of FIG. 5 through steps A1, A2, A4, A5, A6, A7 and A11 of FIG. After a lock on the related entry group is generated and given to the maintenance device 30a, the lock is transmitted to the directory server device 20. More specifically, when the update operation request r1 is issued with the account entry 72 (DN is “uid = user1, dc = abc, dc = com”) as the target entry, the account entry 72 becomes the root entry DN field in FIG. Since it belongs to the exclusive control entry subtree 51 whose root entry is “dc = com”, it consists of account entries 72, 73 and 74 according to the lock setting condition of the corresponding row of the lock setting condition table 126 in FIG. After a lock on the related entry group is generated and given to the maintenance device 30a, an update operation request r1 is transmitted to the directory server device 20. That is, in the lock state table 125 of FIG. 4, the DN “uid = user1, dc = abc, dc = com” of the account entry 72 is stored in the base entry DN field 41, and the lock setting condition of FIG. The position relationship “siblings” specified in the corresponding row of the table 126, the timeout time field 43 indicates the timeout time “100 msec” specified in the corresponding row of the lock setting condition table 126 in FIG. The session ID (address “192.168.1.1” and port number “1234”) of the maintenance device 30a that has issued the update operation request r1 is stored in the last access time field 45 in the current time “2002/03/01 20”. ; 00; 12.355 "are respectively registered.
[0089]
The update operation request r2 is transmitted to the directory server device 20 through steps A1, A2, A4, A5, A8, A10, and A11 in FIG. 10 because the maintenance device 30a owns the lock on the account entry 73. . Specifically, in the update operation request r2 from the maintenance device 30a to the account entry 73, the base entry DN field 41 and the positional relationship field 42 in the corresponding row of the lock state table 125 in FIG. 4 are scanned, and the DN “uid” of the account entry 73 is scanned. = User2, dc = abc, dc = com ”,“ dc = abc, dc = com ”representing“ parent ”and“ uid = user1, dc = abc ”in the base entry DN field 41 in the corresponding row of the lock state table 125 , Dc = com ”and“ dc = abc, dc = com ”representing the“ parent ”, and since they match, it is known that they are in a“ sibling ”relationship, and it is determined that they are locked (step Yes at A5). Next, the session ID (address and port number) of the maintenance device 30a that has issued the update operation request r2 is compared with the session ID (address and port number) of the session ID field 44 in the corresponding row of the lock state table 125 in FIG. Then, since they match, it is determined that the maintenance device 30a of the request source is the owner of the lock (Yes in step A8). Subsequently, the current time is overwritten in the last access time field 45 in the corresponding row of the lock state table 125 (step A10), and an update operation request r2 is transmitted to the directory server device 20 (step A11).
[0090]
The update operation request r3 returns an error to the maintenance device 30b through steps A1, A2, A4, A5, A8, and A9 in FIG. 10 because the maintenance device 30a owns the lock on the account entry 73. . Specifically, in the update operation request r2 from the maintenance device 30a to the account entry 73, the base entry DN field 41 and the positional relationship field 42 in the corresponding row of the lock state table 125 in FIG. 4 are scanned, and the DN “uid” of the account entry 73 is scanned. = User2, dc = abc, dc = com ”,“ dc = abc, dc = com ”representing“ parent ”and“ uid = user1, dc = abc ”in the base entry DN field 41 in the corresponding row of the lock state table 125 , Dc = com ”and“ dc = abc, dc = com ”representing the“ parent ”, and since they match, it is known that they are in a“ sibling ”relationship, and it is determined that they are locked (step Yes at A5). However, the session ID of the update operation request r3 (the address and the port number of the maintenance device 30b of the request source) is compared with the session ID of the session ID field 44 (the address and the port number of the maintenance device 30a). Therefore, it is determined that the user is not the owner of the lock (No in Step A8), and an error is returned to the maintenance device 30b that has issued the request (Step A9).
[0091]
The update operation request r4 and the update operation request r5 operate in the same manner as the update operation request r3.
[0092]
Like the update operation request r2, since the maintenance device 30a owns the lock on the account entry 74, the update operation request r6 passes through steps A1, A2, A4, A5, A8, A10, and A11 in FIG. It is transmitted to the directory server device 20.
[0093]
When the timeout period 100 msec specified in the timeout period field 43 elapses after the last update operation request r6, the timeout processing unit 124 deletes all the rows in the locked state in the locked state table 125 of FIG. The lock is released.
[0094]
Further, even if the maintenance device 30a explicitly issues a connection disconnection operation request to the directory server device 20, the locked row in the locked status table 125 of FIG. 4 is deleted and the lock is released (step A2). A3).
[0095]
Thereafter, when the maintenance device 30b issues the update operation request r3 again, the account is passed through steps A1, A2, A4, A5, A6, A7, and A11 in FIG. 10 according to the lock setting condition in the lock setting condition table 126 in FIG. A lock with entries 72, 73, and 74 as locked related entry groups is generated and provided to the maintenance device 30b, and an update operation request r3 is transmitted to the directory server device 20.
[0096]
When the maintenance device 30b continuously issues the update operation request r4 and the update operation request r5, the update operation request r4 and the update operation request r5 are transmitted to the directory server through steps A1, A2, A4, A5, A8, A10, and A11 in FIG. Sent to device 20.
[0097]
Here, the lock is released when the maintenance device 30b issues a connection disconnection operation request or when a predetermined timeout period of 100 msec has elapsed.
[0098]
Through the above, finally, the contents of the account entries 72, 73, 74 reflect only the update operation request from the maintenance device 30b by the administrator B.
[0099]
Here, if the exclusive control device 10 does not exist and the maintenance device 30a, 30b directly issues an update operation request to the directory server device 20, the update operation request reflected as a result is as follows. It is on the street.
[0100]
When an update operation request r3 is issued to the account entry 72, an update operation request r4 is issued to the account entry 73, and an update operation request r6 is issued to the account entry 74, the attribute of the maximum capacity of the account entries 72, 73, 74 is obtained. Are 40 MB, 30 MB, and 40 MB, respectively, and the total is 110 MB, which exceeds the maximum capacity of the domain entry 71 of 100 MB.
[0101]
On the other hand, when the exclusive control device 10 according to the present embodiment is used, the update operation requests r1, r2, and r6 from the administrator A and the update operation requests r3, r4, and r5 from the administrator B. Are exclusively controlled, so that the sum of the maximum capacities of the account entries 72, 73, and 74 does not exceed the maximum capacity of the domain entry 71 of 100 MB.
[0102]
[Second embodiment]
FIG. 11 is a block diagram illustrating a configuration of the exclusive control device 10 according to the second embodiment of the present invention. The exclusive control device 10 according to the present embodiment realizes the exclusive control device 10 by installing the exclusive control program 1000 in the computer 100.
[0103]
The exclusion control program 1000 is read by the computer 100 and controls the operation of the computer 100 according to the operation receiving unit 111, the response transmitting unit 112, the operation type determining unit 121, the lock state managing unit 123, the timeout process in the first embodiment. The control is performed in exactly the same way as the operation of the exclusive control device 10 including the section 124, the lock state table 125, the lock setting condition table 126, the operation transmitting section 131, and the response receiving section 132. Therefore, a detailed description of the operation of the exclusive control device 10 according to the second embodiment is omitted.
[0104]
【The invention's effect】
The first effect is that the client does not need to be aware of the exclusive control. The reason is that the exclusive control device performs automatic lock processing and unlock processing.
[0105]
A second effect is that the directory server device does not need to have an exclusive control function or a transaction control function, and it is not necessary to make any changes to the data and schema in the directory server device. The reason is that the exclusive control device manages the locked state of the entry in the directory server device and performs exclusive control.
[0106]
A third effect is that, even though the exclusive control is performed outside the directory server device, whether or not the target entry of the update operation request is included in the locked related entry group, and belongs to the exclusive control entry subtree. That is, it can be determined at a high speed whether or not it is performed. The reason is that it is not necessary to refer to the directory server device when judging whether or not it is included in the locked relationship entry group and whether or not it belongs to the exclusive control entry subtree.
[0107]
A fourth effect is that the lock does not remain forever due to a network failure or the like. The reason is that the exclusive control device tracks the access time from the client and performs a lock timeout process.
[0108]
The fifth effect is that even if there are a plurality of entries to be exclusively controlled, it is not always necessary to lock one entry at a time, so that the probability of deadlock can be reduced. The reason is that a plurality of entries can be locked by a single lock process in a unit of a related entry group corresponding to a positional relationship that is common as an arrangement of related entries.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an exclusive control device according to a first embodiment of the present invention.
FIG. 2 is a system diagram in which an exclusive control device according to the first embodiment is arranged.
FIG. 3 is a diagram showing a mail information management system in which a maintenance device is arranged as a client in FIG. 2;
FIG. 4 is a diagram illustrating the contents of a lock state table in FIG. 1;
FIG. 5 is a diagram illustrating the contents of a lock setting condition table in FIG. 1;
FIG. 6 is a diagram illustrating a positional relationship set in a positional relationship field in FIGS. 4 and 5;
FIG. 7 is a diagram illustrating an exclusive control entry subtree in the directory server device in FIG. 2;
8 is a diagram showing an example of an input screen provided by a maintenance device in FIG. 3 to a system administrator.
9 is a diagram showing another example of the input screen provided by the maintenance device in FIG. 3 to a system administrator.
FIG. 10 is a flowchart showing an operation of the exclusive control device according to the first embodiment.
FIG. 11 is a block diagram illustrating a configuration of an exclusive control device according to a second embodiment of the present invention.
[Explanation of symbols]
10 Exclusive control device
11 Client communication section
12 Exclusive control unit
13 Server communication section
20 Directory server device
30 clients
30a, 30b maintenance device
41 Base entry DN field
42 Location Relationship Subtree Field
43 Timeout field
44 Session ID field
45 Last access time field
51 Root entry DN field
52 Positional relationship field
53 Timeout time field
100 computer
111 Operation receiver
112 Response sending unit
121 operation type determination unit
123 Lock state management unit
124 timeout processing unit
125 Lock status table
126 Lock setting condition table
131 Operation transmission unit
132 Response receiver
1000 exclusive control program
A1 Directory operation request receiving step
A2 disconnection operation request determination step
A3 Lock release step
A4 Update operation request determination step
A5 Locked related entry group determination step
A6 Exclusive control entry subtree belonging determination step
A7 Lock grant step
A8 Lock owner determination step
A9 Error return step
A10 Last access time update step
A11 Directory operation request transmission step

Claims (12)

ディレクトリサーバ装置の前段に配置され、ディレクトリサーバ装置内のどのエントリがどのクライアントによりロックされているかの情報を管理して、すでにロックされているエントリに対する更新操作要求を受けたときに要求元のクライアントがロックの所有者以外であれば要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者であれば更新操作要求をディレクトリサーバ装置に送信することで排他制御を行うことを特徴とする排他制御装置。It is located in front of the directory server device, manages information on which entry in the directory server device is locked by which client, and when a request is made to update an already locked entry, the requesting client If is not the lock owner, an error is returned to the requesting client, and if the requesting client is the lock owner, an exclusive operation is performed by sending an update operation request to the directory server device. Exclusive control unit. 排他制御エントリサブツリー毎のロック設定条件をあらかじめ記録するロック設定条件表と、
ロック済関係エントリ群毎のロックを記録するロック状態表と、
クライアントからディレクトリ操作要求を受信する操作受信部と、
ディレクトリ操作要求をディレクトリサーバ装置に送信する操作送信部と、
ディレクトリサーバ装置からディレクトリ応答を受信する応答受信部と、
前記応答受信部で受信されたディレクトリ応答およびエラーを要求元のクライアントへ送信する応答送信部と、
前記操作受信部で受信したディレクトリ操作要求の種別を判定する操作種別判定部と、
前記操作種別判定部によりディレクトリ操作要求が更新操作要求であると判定されたときに、前記ロック状態表を参照してロック済関係エントリ群に含まれるエントリに対する更新操作要求であれば要求元のクライアントがロックの所有者以外である場合に前記応答送信部から要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者である場合に更新操作要求を前記操作送信部からディレクトリサーバ装置に送信し、ロック済関係エントリ群に含まれていないエントリに対する更新操作要求であれば前記ロック設定条件表を参照して前記ロック状態表に関係エントリ群に対するロックを記録して要求元のクライアントに付与し更新操作要求を前記操作送信部からディレクトリサーバ装置に送信するロック状態管理部と、
前記ロック状態表に定期的にアクセスしてタイムアウトしたロックを解除するタイムアウト処理部と
を有することを特徴とする排他制御装置。
A lock setting condition table in which lock setting conditions for each exclusive control entry subtree are recorded in advance,
A lock state table that records locks for each locked relationship entry group,
An operation receiving unit that receives a directory operation request from a client;
An operation transmitting unit that transmits a directory operation request to the directory server device,
A response receiving unit that receives a directory response from the directory server device;
A response transmitting unit that transmits the directory response and the error received by the response receiving unit to the requesting client,
An operation type determining unit that determines a type of the directory operation request received by the operation receiving unit;
When the operation type determination unit determines that the directory operation request is an update operation request, the requesting client is an update operation request for an entry included in the locked relationship entry group with reference to the lock state table. Returns an error from the response transmission unit to the requesting client when the request is not the owner of the lock, and sends an update operation request from the operation transmission unit to the directory server device when the requesting client is the lock owner. If the request is an update operation request for an entry that is not included in the locked related entry group, the lock on the related entry group is recorded in the lock state table with reference to the lock setting condition table, and is given to the requesting client. A lock state management unit for transmitting an update operation request from the operation transmission unit to the directory server device;
An exclusive control device comprising: a timeout processing unit that periodically accesses the lock state table and releases a lock that has timed out.
前記ロック状態管理部が、前記操作種別判定部によりディレクトリ操作要求が接続切断操作要求であると判定されたときに前記ロック状態表から要求元のクライアントが所有するロックを全て解除することを特徴とする請求項2記載の排他制御装置。The lock state management unit releases all the locks owned by the requesting client from the lock state table when the operation type determination unit determines that the directory operation request is a disconnection operation request. 3. The exclusive control device according to claim 2, wherein 前記ロック状態管理部が、前記操作種別判定部によりディレクトリ操作要求が接続切断操作要求および更新操作要求以外であると判定されたときに、ディレクトリ操作要求を前記操作送信部からディレクトリサーバ装置に送信することを特徴とする請求項2記載の排他制御装置。The lock state management unit transmits a directory operation request from the operation transmission unit to the directory server device when the operation type determination unit determines that the directory operation request is other than the disconnection operation request and the update operation request. 3. The exclusive control device according to claim 2, wherein: 前記ロック設定条件表の各行が、排他制御エントリサブツリーの根エントリのDNが設定される根エントリDNフィールドと、排他制御エントリサブツリーにおいて同時に排他制御を必要とするエントリの位置関係が設定される位置関係フィールドと、ロックのタイムアウト時間が設定されるタイムアウト時間フィールドとを有することを特徴とする請求項2記載の排他制御装置。Each row of the lock setting condition table has a root entry DN field in which the DN of the root entry of the exclusive control entry subtree is set, and a positional relation in which the positional relationship of the entries requiring exclusive control in the exclusive control entry subtree is set at the same time. 3. The exclusive control device according to claim 2, further comprising a field and a timeout time field in which a lock timeout time is set. 前記ロック状態表の各行が、更新操作要求の対象エントリのDNが設定される基点エントリDNフィールドと、前記基点エントリDNフィールドで特定されるエントリを基点として同時に排他制御を必要とするエントリの位置関係が設定される位置関係フィールドと、ロックのタイムアウト時間が設定されるタイムアウト時間フィールドと、ロックを所有しているクライアントのセッションIDが設定されるセッションIDフィールドと、ロックを所有しているクライアントからのロック済関係エントリ群に含まれるエントリに対する最後の更新操作要求が発行された最終アクセス時刻が設定される最終アクセス時刻フィールドとを有することを特徴とする請求項2記載の排他制御装置。Each row of the lock state table is a base entry DN field in which the DN of an entry to be updated is set, and a positional relationship between entries that require exclusive control at the same time with the entry specified by the base entry DN field as a base. Is set, a timeout time field in which a lock timeout time is set, a session ID field in which a session ID of the client owning the lock is set, and a 3. The exclusive control device according to claim 2, further comprising: a last access time field in which a last access time at which a last update operation request for an entry included in the locked relation entry group is issued is set. 前記タイムアウト処理部が、前記ロック状態表のタイムアウト時間フィールドおよび最終アクセス時刻フィールドを定期的に走査し、最終アクセス時刻フィールドの最終アクセス時刻と現在時刻との差がタイムアウト時間フィールドのタイムアウト時間を超えている行を削除することによりロックを解除することを特徴とする請求項6記載の排他制御装置。The timeout processing unit periodically scans the timeout time field and the last access time field of the lock state table, and the difference between the last access time and the current time of the last access time field exceeds the timeout time of the timeout time field. 7. The exclusive control device according to claim 6, wherein the lock is released by deleting a row that is present. 複数のクライアントと、ディレクトリサーバ装置とが存在するシステムの排他制御方法において、
ディレクトリサーバ装置の前段にディレクトリサーバ装置内のどのエントリがどのクライアントによりロックされているかの情報を管理してエントリの排他制御を行う排他制御装置を配置する工程と、
ロックされていないエントリに更新操作要求があったときに対象エントリに対するロックを生成して要求元のクライアントに付与し更新操作要求をディレクトリサーバ装置に送信する工程と、
すでにロックされているエントリに対する更新操作要求を受けたときに要求元のクライアントがロックを所有しているかどうかを判定し、要求元のクライアントがロックを所有していなければエラーを要求元のクライアントに返し、要求元のクライアントがロックを所有していれば更新操作要求をディレクトリサーバ装置に送信する工程と、
要求元のクライアントが接続を切るか一定のタイムアウト時間の経過後に自動的にロックを解除する工程と
を含むことを特徴とする排他制御方法。
In an exclusive control method of a system including a plurality of clients and a directory server device,
A step of arranging an exclusive control device that manages information on which entry in the directory server device is locked by which client and performs exclusive control of the entry at a stage preceding the directory server device;
A step of generating a lock on the target entry when an update operation request is issued to an unlocked entry, attaching the lock to the requesting client, and transmitting the update operation request to the directory server device;
Determines whether the requesting client owns the lock when it receives an update operation request for an entry that is already locked, and returns an error to the requesting client if the requesting client does not own the lock. Returning an update operation request to the directory server device if the requesting client owns the lock;
Automatically releasing the lock after the requesting client disconnects or after a certain timeout period elapses.
クライアントからディレクトリ操作要求を受信する工程と、
受信されたディレクトリ操作要求が接続切断操作要求であるかどうかを調べる工程と、
ディレクトリ操作要求が接続切断操作要求であったときに要求元のクライアントが所有しているロックを全て解除する工程と、
ディレクトリ操作要求が接続切断操作要求でなかったときに該ディレクトリ操作要求が更新操作要求であるかどうかを調べる工程と、
ディレクトリ操作要求が更新操作要求でなかったときにディレクトリ操作要求をディレクトリサーバ装置へ送信する工程と、
ディレクトリ操作要求が更新操作要求であったときに該更新操作要求の対象エントリがロック済関係エントリ群に含まれているかどうかを調べる工程と、
更新操作要求の対象エントリがロック済関係エントリ群に含まれていなかったときに該更新操作要求の対象エントリが排他制御エントリサブツリーに所属しているかどうかを調べる工程と、
更新操作要求の対象エントリが排他制御エントリサブツリーに所属していたときに該対象エントリを含む関係エントリ群に対するロックを生成して要求元のクライアントに付与し、該更新操作要求をディレクトリサーバ装置へ送信する工程と、
更新操作要求の対象エントリがロック済関係エントリ群に含まれているときに要求元のクライアントがロックの所有者であるかどうかを調べる工程と、
要求元のクライアントがロックの所有者でなかったときに要求元のクライアントにエラーを返す工程と、
要求元のクライアントがロックの所有者であったときに最終アクセス時刻を現在時刻で更新した後に更新操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ応答を受信したときに該ディレクトリ応答を要求元のクライアントへ送信する工程と
を含むことを特徴とする排他制御方法。
Receiving a directory operation request from a client;
Checking whether the received directory operation request is a disconnection operation request;
Releasing all locks owned by the requesting client when the directory operation request is a disconnection operation request;
Checking whether the directory operation request is an update operation request when the directory operation request is not a disconnection operation request;
Transmitting a directory operation request to the directory server device when the directory operation request is not an update operation request;
Checking whether the target entry of the update operation request is included in the locked relation entry group when the directory operation request is an update operation request,
Checking whether the target entry of the update operation request belongs to the exclusive control entry subtree when the target entry of the update operation request is not included in the locked relation entry group;
When the target entry of the update operation request belongs to the exclusive control entry subtree, a lock on the related entry group including the target entry is generated and attached to the requesting client, and the update operation request is transmitted to the directory server device The process of
Checking whether the requesting client is the owner of the lock when the target entry of the update operation request is included in the locked relationship entries,
Returning an error to the requesting client if the requesting client was not the owner of the lock;
A step of transmitting an update operation request to the directory server device after updating the last access time with the current time when the requesting client is the owner of the lock; and transmitting the directory response when the directory response is received. The exclusive control method.
要求元のクライアントが接続を切るか一定のタイムアウト時間の経過後に自動的にロックを解除する工程を含むことを特徴とする請求項9記載の排他制御方法。10. The exclusive control method according to claim 9, further comprising the step of automatically releasing the lock after the requesting client disconnects the connection or after a predetermined timeout period has elapsed. コンピュータを、排他制御エントリサブツリー毎のロック設定条件をあらかじめ記録するロック設定条件表と、ロック済関係エントリ群毎のロックを記録するロック状態表と、クライアントからディレクトリ操作要求を受信する操作受信部と、ディレクトリ操作要求をディレクトリサーバ装置に送信する操作送信部と、ディレクトリサーバ装置からディレクトリ応答を受信する応答受信部と、前記応答受信部で受信されたディレクトリ応答およびエラーを要求元のクライアントへ送信する応答送信部と、前記操作受信部で受信したディレクトリ操作要求の種別を判定する操作種別判定部と、前記操作種別判定部によりディレクトリ操作要求が更新操作要求であると判定されたときに、前記ロック状態表を参照してロック済関係エントリ群に含まれるエントリに対する更新操作要求であれば要求元のクライアントがロックの所有者以外である場合に前記応答送信部から要求元のクライアントにエラーを返し、要求元のクライアントがロックの所有者である場合に更新操作要求を前記操作送信部からディレクトリサーバ装置に送信し、ロック済関係エントリ群に含まれていないエントリに対する更新操作要求であれば前記ロック設定条件表を参照して前記ロック状態表に関係エントリ群に対するロックを記録して要求元のクライアントに付与し更新操作要求を前記操作送信部からディレクトリサーバ装置に送信するロック状態管理部と、前記ロック状態表に定期的にアクセスしてタイムアウトしたロックを解除するタイムアウト処理部として機能させるためのプログラム。A computer comprising: a lock setting condition table for recording in advance a lock setting condition for each exclusive control entry subtree; a lock state table for recording a lock for each locked relationship entry group; and an operation receiving unit for receiving a directory operation request from a client. An operation transmitting unit that transmits a directory operation request to the directory server device, a response receiving unit that receives a directory response from the directory server device, and transmits the directory response and the error received by the response receiving unit to the requesting client. A response transmission unit, an operation type determination unit that determines the type of the directory operation request received by the operation reception unit, and a lock when the operation type determination unit determines that the directory operation request is an update operation request. Refer to the state table and include in the locked related entry group. If the requesting client is an update operation request for the entry to be issued, an error is returned from the response transmission unit to the requesting client if the requesting client is not the lock owner, and if the requesting client is the lock owner, An update operation request is transmitted from the operation transmission unit to the directory server device. If the update operation request is for an entry that is not included in the locked relation entry group, the relevant entry in the lock state table is referred to by referring to the lock setting condition table. A lock state management unit that records a lock on the group, grants the request to the client, and transmits an update operation request from the operation transmission unit to the directory server device; and a lock that periodically accesses the lock state table and times out. A program for functioning as a timeout processing unit to cancel. コンピュータに、クライアントからディレクトリ操作要求を受信する工程と、受信されたディレクトリ操作要求が接続切断操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が接続切断操作要求であったときに要求元のクライアントが所有しているロックを全て解除する工程と、ディレクトリ操作要求が接続切断操作要求でなかったときに該ディレクトリ操作要求が更新操作要求であるかどうかを調べる工程と、ディレクトリ操作要求が更新操作要求でなかったときにディレクトリ操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ操作要求が更新操作要求であったときに該更新操作要求の対象エントリがロック済関係エントリ群に含まれているかどうかを調べる工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれていなかったときに該更新操作要求の対象エントリが排他制御エントリサブツリーに所属しているかどうかを調べる工程と、更新操作要求の対象エントリが排他制御エントリサブツリーに所属していたときに該対象エントリを含む関係エントリ群に対するロックを生成して要求元のクライアントに付与し、該更新操作要求をディレクトリサーバ装置へ送信する工程と、更新操作要求の対象エントリがロック済関係エントリ群に含まれているときに要求元のクライアントがロックの所有者であるかどうかを調べる工程と、要求元のクライアントがロックの所有者でなかったときに要求元のクライアントにエラーを返す工程と、要求元のクライアントがロックの所有者であったときに最終アクセス時刻を現在時刻で更新した後に更新操作要求をディレクトリサーバ装置へ送信する工程と、ディレクトリ応答を受信したときに該ディレクトリ応答を要求元のクライアントへ送信する工程とを実行させるためのプログラム。A step of receiving a directory operation request from a client, a step of checking whether or not the received directory operation request is a disconnection operation request; Releasing all the locks owned by the client; checking if the directory operation request is an update operation request when the directory operation request is not a disconnection operation request; and Transmitting a directory operation request to the directory server device when the request is not a request; and determining whether the target entry of the update operation request is included in the locked relation entry group when the directory operation request is an update operation request Check process and the target entry of the update operation request is locked Checking whether the target entry of the update operation request belongs to the exclusive control entry subtree when the target entry of the update operation request does not belong to the exclusive control entry subtree when it is not included in the related entry group; Generating a lock on the relational entry group including the target entry and assigning the lock to the requesting client, and transmitting the update operation request to the directory server device; and Determining if the requesting client is the owner of the lock when included in the, and returning an error to the requesting client if the requesting client is not the owner of the lock; Update last access time with current time when requesting client was lock owner And transmitting an update operation request to the directory server device after the program for executing the step of transmitting said directory responsive to the requesting client when it receives a directory response.
JP2002258548A 2002-09-04 2002-09-04 Exclusive control device and exclusive control method Expired - Fee Related JP4107019B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002258548A JP4107019B2 (en) 2002-09-04 2002-09-04 Exclusive control device and exclusive control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002258548A JP4107019B2 (en) 2002-09-04 2002-09-04 Exclusive control device and exclusive control method

Publications (2)

Publication Number Publication Date
JP2004094850A true JP2004094850A (en) 2004-03-25
JP4107019B2 JP4107019B2 (en) 2008-06-25

Family

ID=32063134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002258548A Expired - Fee Related JP4107019B2 (en) 2002-09-04 2002-09-04 Exclusive control device and exclusive control method

Country Status (1)

Country Link
JP (1) JP4107019B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011555A (en) * 2004-06-22 2006-01-12 Sony Corp License evaluation device, computer program, license evaluation method
WO2006060963A1 (en) * 2004-12-09 2006-06-15 Tencent Technology (Shenzhen) Company Limited A control method and a control system for data transmission procedure
JP2010103850A (en) * 2008-10-24 2010-05-06 Hde Inc Mail system
JP2011164918A (en) * 2010-02-09 2011-08-25 Nec Corp Database management apparatus, database management method, and program
WO2019202888A1 (en) * 2018-04-19 2019-10-24 村田機械株式会社 Exclusive control system and exclusive control method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011555A (en) * 2004-06-22 2006-01-12 Sony Corp License evaluation device, computer program, license evaluation method
JP4543773B2 (en) * 2004-06-22 2010-09-15 ソニー株式会社 License evaluation apparatus, computer program, and license evaluation method
WO2006060963A1 (en) * 2004-12-09 2006-06-15 Tencent Technology (Shenzhen) Company Limited A control method and a control system for data transmission procedure
CN100388666C (en) * 2004-12-09 2008-05-14 腾讯科技(深圳)有限公司 Method and system for controlling data transmission procedure
US9002743B2 (en) 2004-12-09 2015-04-07 Tencent Technology (Shenzhen) Company Limited Method, system and server for managing data transmission
JP2010103850A (en) * 2008-10-24 2010-05-06 Hde Inc Mail system
JP2011164918A (en) * 2010-02-09 2011-08-25 Nec Corp Database management apparatus, database management method, and program
WO2019202888A1 (en) * 2018-04-19 2019-10-24 村田機械株式会社 Exclusive control system and exclusive control method
JPWO2019202888A1 (en) * 2018-04-19 2021-06-24 村田機械株式会社 Exclusive control system and exclusive control method
TWI795551B (en) * 2018-04-19 2023-03-11 日商村田機械股份有限公司 Exclusive control system and exclusive control method

Also Published As

Publication number Publication date
JP4107019B2 (en) 2008-06-25

Similar Documents

Publication Publication Date Title
US8375113B2 (en) Employing wrapper profiles
US6192405B1 (en) Method and apparatus for acquiring authorized access to resources in a distributed system
US7114037B2 (en) Employing local data stores to maintain data during workflows
US7865959B1 (en) Method and system for management of access information
US7330971B1 (en) Delegated administration of namespace management
US7512585B2 (en) Support for multiple mechanisms for accessing data stores
US7062563B1 (en) Method and system for implementing current user links
US5784560A (en) Method and apparatus to secure distributed digital directory object changes
US20040024764A1 (en) Assignment and management of authentication &amp; authorization
US7024693B2 (en) Filter-based attribute value access control
US7366724B2 (en) Managing secure resources in web resources that are accessed by multiple portals
US7165182B2 (en) Multiple password policies in a directory server system
US8959613B2 (en) System and method for managing access to a plurality of servers in an organization
US20050060572A1 (en) System and method for managing access entitlements in a computing network
US20030110246A1 (en) Macro-based access control
JPH04310188A (en) Library service method for document/image library
US8739255B2 (en) Replicating selected secrets to local domain controllers
US20050154915A1 (en) Networked computer user identification and authentication apparatus method and system
US20030088648A1 (en) Supporting access control checks in a directory server using a chaining backend method
JP4537819B2 (en) Information processing apparatus, information processing system, information processing method, information processing program, and recording medium
JP4107019B2 (en) Exclusive control device and exclusive control method
JP2000250832A (en) Distributed directory management system
US11818112B2 (en) Directory service user synchronization
CN109905365B (en) Distributed deployed single sign-on and service authorization system and method
JP2002324053A (en) Use authorization controlling system, use authorization controlling method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040427

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050308

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080324

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees