JP2013530442A - ディレクトリデータを解決するための技法 - Google Patents

ディレクトリデータを解決するための技法 Download PDF

Info

Publication number
JP2013530442A
JP2013530442A JP2013508142A JP2013508142A JP2013530442A JP 2013530442 A JP2013530442 A JP 2013530442A JP 2013508142 A JP2013508142 A JP 2013508142A JP 2013508142 A JP2013508142 A JP 2013508142A JP 2013530442 A JP2013530442 A JP 2013530442A
Authority
JP
Japan
Prior art keywords
directory
data
group
cache
entry
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
JP2013508142A
Other languages
English (en)
Other versions
JP5675963B2 (ja
Inventor
モーサー・ナサン
モバラック・アイマン
ジャマート・チャド
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.)
Gen Digital Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2013530442A publication Critical patent/JP2013530442A/ja
Application granted granted Critical
Publication of JP5675963B2 publication Critical patent/JP5675963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]

Landscapes

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

Abstract

ディレクトリデータを解決するための技法が開示される。特定の一例示的実施形態において、技法は、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信することと、プロセッサを使用して、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリを、現在の対象グループに対応するディレクトリエントリからトラバースすることと、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出すことと、メンバーが第1のディレクトリエントリに格納されている場合に、そのメンバーのマッピングを現在の対象グループに追加することと、を含む、ディレクトリデータを解決するための方法として実現され得る。方法は、キャッシュ保存および再帰の使用も含み得る。

Description

本開示は、概してディレクトリデータサービスに関し、詳細にはディレクトリデータを解決するための技法に関する。
ディレクトリデータサービスは、ユーザー認証、メッセージ配送、およびグループポリシーの適用を含む様々なクライアントおよびアプリケーションにディレクトリデータを提供し得る。ディレクトリデータサービスは、例えば企業クラスのメッセージングセキュリティなど、高スループットが重要である複数の用途を果たし得る。アプリケーションおよび/またはディレクトリデータサービスは、キャッシュされたディレクトリデータを使用して性能を高め、ディレクトリサーバーにかかる負荷を減らす。ディレクトリデータは、グループと配布リストとを格納し得る。本開示において、配布リストは、メッセージを配送できる少なくとも1つの宛先電子メールアドレスを有するという点についてのみ、グループとは異なる。グループは複数のメンバーを有し得る。そしてメンバーの各々が、別のグループ(ネスト関係)であり得るか、ユーザーを表すエントリなどの「葉」エントリであり得る。グループは、多数のレベルに及ぶ深いネスト構造であり得る。適用ポリシーは、ディレクトリサーバー内にある1つまたはそれ以上のグループで設定されるか、それらのグループにバインドされ得る。適用ポリシーにバインドされたグループを「対象グループ」と称する。どのポリシーがユーザーに適用されるかを判断するには、アプリケーションが複数のレベルのグループをトラバースしてメンバーを特定する必要がある。トラバース中に、対象グループのメンバーを特定する必要のないグループおよびユーザーがメモリに読み込まれ得る。これらの余剰グループおよびユーザーは、特定のグループのグループメンバーシップ識別情報の解決を試行するときに、さらなる処理時間およびオーバーヘッドを加え得る。加えて、キャッシュ内でグループメンバーシップおよび関連データ構造をリフレッシュすると、ディレクトリサーバーにかかる負担が大きく増加し得る。
上記内容から、現在のディレクトリ技術に関しては、ユーザーまたはサブグループがどのグループのメンバーであるかを判断する目的で使用されるときに、大きな課題および欠点が存在し得ることが理解され得る。
ディレクトリデータを解決するための技法が開示される。特定の一例示的実施形態において、技法は、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信することと、プロセッサを使用して、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリを、現在の対象グループに対応するディレクトリエントリからトラバースすることと、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出すことと、メンバーが第1のディレクトリエントリに格納されている場合に、そのメンバーのマッピングを現在の対象グループに追加することと、第1のディレクトリエントリがさらなるディレクトリエントリを格納しているかどうかを判断することと、第1のディレクトリエントリにさらなるディレクトリエントリが格納されている場合に、現在の対象グループが別のメンバーのマッピングに追加されるかどうか、およびさらなる階層状のディレクトリデータレベルが現在の対象グループを対象にトラバースされるかどうかを判断するために、さらなるディレクトリエントリを読み出すことと、を含む、ディレクトリデータを解決するための方法として実現され得る。
この特定の例示的実施形態の他の態様によれば、1つまたはそれ以上のディレクトリエントリは、ユーザー、グループ、および配布リストのうちの少なくとも1つを含み得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、第2の対象グループの階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリのトラバースを繰り返すことをさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、グループメンバーシップマップと関連付けられている特定されたユーザーのリストをキャッシュすることをさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、グループメンバーシップマップと関連付けられている特定された配布リストのリストをキャッシュすることをさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、グループメンバーシップマップと関連付けられている特定されたグループのリストをキャッシュすることをさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、ポリシーが対象グループに適用され得ることに加え、対象グループに対する1人またはそれ以上のメンバーのマッピングにより、ポリシーを適用することに関わる性能が向上し得る。
この特定の例示的実施形態のさらなる態様によれば、キャッシュでディレクトリエントリが利用可能である場合に、キャッシュを使用して解析が実行され、キャッシュでディレクトリエントリが利用できない場合には、ディレクトリサーバーに対してクエリが実行され得る。
この特定の例示的実施形態のさらなる態様によれば、ディレクトリエントリの期限が切れている場合には、キャッシュでディレクトリエントリが利用できない。
この特定の例示的実施形態のさらなる態様によれば、キャッシュ内のディレクトリエントリは、各ディレクトリエントリに割り当てられた別々のランダム値によって判断される期限に基づいて期限が切れ、ランダム値は、ある時点でキャッシュ内の期限切れのディレクトリエントリをリフレッシュするために必要な負荷を減らすために、キャッシュされたディレクトリエントリの期限を分散させる。
この特定の例示的実施形態のさらなる態様によれば、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータは、アプリケーションから受信され、対象グループに対する少なくとも1つのメンバーのマッピングが、ポリシーを適用するためアプリケーションに提供される。
この特定の例示的実施形態のさらなる態様によれば、技法は、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリにおける循環グループ関係をトラバース時に特定することと、循環グループ関係と関連付けられたデータ統合エラー情報を格納しているアラートを管理者に提供することと、をさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、ディレクトリサーバーが利用不可であると判断することと、ディレクトリデータを解決するために期限切れの対応ディレクトリエントリを使用することと、をさらに含み得る。
この特定の例示的実施形態のさらなる態様によれば、ディレクトリサーバーは、LDAP対応ディレクトリサーバーであり得る。
この特定の例示的実施形態のさらなる態様によれば、キャッシュされたディレクトリエントリは、グループに対する1つまたはそれ以上のユーザーのマッピングを生成するために階層状のディレクトリデータをトラバースするプロセスによって、およびディレクトリデータサービスクライアントによって使用され得る。
この特定の例示的実施形態のさらなる態様によれば、技法は、少なくとも1つのプロセッサに、方法を実行するためのコンピュータ処理を実行するように命令するために、少なくとも1つのプロセッサによって読み取り可能に構成されたコンピュータプログラム命令を記憶するための少なくとも1つのプロセッサ読み取り可能な記憶媒体として実現され得る。
別の特定の例示的実施形態において、技法は、ディレクトリデータを解決するための製品として実現され得る。そして製品は、少なくとも1つのプロセッサ読み出し可能な媒体と、その少なくとも1つの媒体に記憶された命令と、を備え、命令は、少なくとも1つのプロセッサによって少なくとも1つの媒体から読み出し可能であり、それによって少なくとも1つのプロセッサに、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信するように動作させ、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリに対し、現在の対象グループに対応するディレクトリエントリから始まるトラバースを実行し、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出し、メンバーが第1のディレクトリエントリに格納されている場合には、現在の対象グループを、そのメンバーのマッピングに追加し、第1のディレクトリエントリがさらなるディレクトリエントリを格納しているかどうかを判断し、第1のディレクトリエントリにさらなるディレクトリエントリが格納されている場合には、さらなる階層状のディレクトリデータレベルが現在の対象グループを対象にトラバースされるかどうかを判断するために、さらなるディレクトリエントリを読み出すように構成されている。
さらに別の特定の例示的実施形態において、技法は、ネットワークに通信可能に連結された1つまたはそれ以上のプロセッサを備える、ディレクトリデータを解決するためのシステムとして実現され得る。そして1つまたはそれ以上のプロセッサは、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信し、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリに対し、現在の対象グループに対応するディレクトリエントリから始まるトラバースを実行し、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出し、メンバーが第1のディレクトリエントリに格納されている場合には、現在の対象グループを、そのメンバーのマッピングに追加し、第1のディレクトリエントリがさらなるディレクトリエントリを格納しているかどうかを判断し、第1のディレクトリエントリにさらなるディレクトリエントリが格納されている場合には、さらなる階層状のディレクトリデータレベルが現在の対象グループを対象にトラバースされるかどうかを判断するために、さらなるディレクトリエントリを読み出すように構成されている。
この特定の例示的実施形態のさらなる態様によれば、1つまたはそれ以上のディレクトリエントリは、メンバー、グループ、および配布リストのうちの少なくとも1つを含み得る。
この特定の例示的実施形態のさらなる態様によれば、1つまたはそれ以上のプロセッサは、第2の対象グループの階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリのトラバースを繰り返すようにさらに構成され得る。
この特定の例示的実施形態のさらなる態様によれば、キャッシュでディレクトリエントリが利用可能である場合に、キャッシュを使用して解析が実行され、キャッシュでディレクトリエントリが利用できない場合には、ディレクトリサーバーに対する問い合わせが行われ得る。
この特定の例示的実施形態のさらなる態様によれば、ディレクトリエントリは、各ディレクトリエントリに割り当てられた別々のランダム値によって判断される期限に基づいて期限が切れ、これらのランダム値は、ある時点で期限切れのディレクトリエントリをリフレッシュするために必要な負荷を減らすために、ディレクトリエントリの期限を分散させる。
この特定の例示的実施形態のさらなる態様によれば、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータは、アプリケーションから受信され、対象グループに対する少なくとも1つのメンバーのマッピングが、ポリシーを適用するためにそのアプリケーションに提供される。
この特定の例示的実施形態のさらなる態様によれば、キャッシュで利用可能なディレクトリエントリが、電子メールアドレスのローカル部に由来する完全名を使用したディレクトリエントリの一致を可能にするクエリフィルタトークンを使用して、キャッシュインデックスによって特定される。
さらに別の特定の例示的実施形態において、技法は、電子メールアドレスを格納している、複数の電子メールアドレスをサポートするディレクトリサーバーに向けられたディレクトリデータクエリを受信することと、完全名での一致を可能にするクエリフィルタトークンを使用してディレクトリサーバーに問い合わせることであって、クエリフィルタトークンが、問い合わせ用の完全名を導出するために、電子メールアドレスのローカル部におけるピリオドまたはアンダースコアをスペースに置き換えることと、完全名に対応するディレクトリエントリを取り出すことと、ディレクトリエントリをリクエスタに提供することと、を含む、ディレクトリデータを解決するための方法として実現され得る。
これより、本開示について、添付の図面に示す本開示の例示的実施形態を参照しながら、さらに詳しく説明する。本開示について、例示的実施形態を参照しながら以下説明するが、本開示はこれらの実施形態に制限されないことを理解すべきである。本明細書の教示にアクセスできる当業者であれば、さらなる実施態様、変更態様、および実施形態、さらには、本明細書に記載されている本開示の範囲内であり、かつ本開示が大きな有用性を持つであろう他の使用分野を認識するであろう。
本開示について十分な理解を促すために、添付の図面を参照する。図面中、同様の要素は同様の番号で参照されている。これらの図面は、本開示を制限するものと解釈されるべきなく、例示のみを意図するものである。
本開示の一実施形態にかかる、ディレクトリデータを解決するためのネットワークアーキテクチャを表すブロック図を示す。 本開示の一実施形態にかかるコンピュータシステムのブロック図を表す。 本開示の一実施形態にかかる、ディレクトリデータを解決するためのモジュールを示す。 本開示の一実施形態にかかる、ディレクトリデータを解決するための方法を示す。 本開示の一実施形態にかかる、ディレクトリデータを解決するための構成要素を示すブロック図を表す。 本開示の一実施形態にかかるディレクトリデータ構造を表す。 本開示の一実施形態にかかるディレクトリデータサービスキャッシュアクセスを示す流れ図を表す。 本開示の一実施形態にかかる、クエリフィルタトークンを使用してディレクトリエントリを一致させる方法を表す。
図1は、本開示の一実施形態にかかる、ディレクトリデータを解決するためのネットワークアーキテクチャ100を表すブロック図を示す。図1は、ネットワークアーキテクチャ100の簡略図であり、表されていない追加要素を含み得る。ネットワークアーキテクチャ100は、クライアントシステム110、120および130に加え、ディレクトリサーバー140(1)−(N)およびネットワークデバイス170(1)−(N)も含み得る(そのうちの1つまたはそれ以上が、図2に示すコンピュータシステム200を使用して実装され得る)。クライアントシステム110、120および130は、ネットワーク150に通信可能に連結され得る。ディレクトリサーバー140(1)−(N)は、記憶デバイス160(1)−(N)に通信可能に連結され得る。ネットワークデバイス170(1)−(N)は、管理モジュール(例えばディレクトリデータサービス154)を格納し得る。
図2のコンピュータシステム200を参照すると、クライアントシステム110、120および130のうちの1つまたはそれ以上からネットワーク150への接続を提供するために、モデム247、ネットワークインターフェース248、またはその他何らかの方法が使用され得る。クライアントシステム110、120および130は、例えば、ライトウェイトディレクトリアクセスプロトコル(LDAP)クライアントまたは他のクライアントソフトウェアを使用して、ディレクトリサーバー140(1)−(N)にある情報にアクセス可能であり得る。かかるクライアントにより、クライアントシステム110、120および130が、ディレクトリサーバー140(1)−(N)か、あるいは記憶デバイス160(1)−(N)のうちの1つによってホストされるデータにアクセスでき得る。
ネットワーク150および/または180は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、セルラー方式ネットワーク、衛星ネットワーク、または、クライアント110、120、130、ディレクトリサーバー140(1)−(N)、およびネットワーク150および/または180に通信可能に連結された他のデバイスとの間での通信を許可する別のネットワークであり得る。ネットワーク150および/または180は、スタンドアロンネットワークとして、あるいは互いに協同して動作する上記例示的なタイプのネットワークのうちの1つまたは任意の数をさらに含み得る。ネットワーク150および/または180は、通信可能に連結された1つまたはそれ以上のクライアントまたはサーバーのうちの1つまたはそれ以上のプロトコルを利用し得る。ネットワーク150および/または180は、ネットワークデバイスのうちの1つまたはそれ以上のプロトコルと他のプロトコルとの間での変換を行い得る。ネットワーク150および180は、単一のネットワークとして各々表されているが、1つまたはそれ以上の実施形態によれば、ネットワーク150および/または180が複数の相互接続されたネットワークを備え得ることが理解されるべきである。
記憶デバイス160(1)−(N)は、ネットワークアクセス可能記憶装置であってよく、ディレクトリサーバー140(1)−(N)に対してローカル、リモート、またはそれらの組み合わせであってもよい。記憶デバイス160(1)−(N)は、低価格ディスクの冗長配列(「RAID」)、磁気テープ、ディスク、記憶装置エリアネットワーク(「SAN」)、インターネット小型コンピュータシステムインターフェース(「iSCSI」) SAN、ファイバチャネルSAN、共通インターネットファイルシステム(「CIFS」)、ネットワーク接続型記憶装置(「NAS」)、ネットワークファイルシステム(「NFS」)、光学ベース記憶装置、または他のコンピュータアクセス可能記憶装置を利用してもよい。記憶デバイス160(1)−(N)は、バックアップまたはアーカイブ目的で使用されてもよい。
いくつかの実施形態によれば、クライアント110、120、および130は、スマートフォン、PDA、デスクトップコンピュータ、ラップトップコンピュータ、サーバー、他のコンピュータ、またはネットワーク150に無線または有線接続経由で連結された他のデバイスであり得る。クライアント110、120、および130は、ユーザー入力、データベース、ファイル、ウェブサービス、および/またはアプリケーションプログラミングインターフェースからデータを受信し得る。
ディレクトリサーバー140(1)−(N)は、例えば、Microsoft(登録商標) Active Directory(登録商標)サーバー、IBM(登録商標) Lotus(登録商標) Domino(登録商標)サーバー、Sun(登録商標)ディレクトリサーバー、LDAP対応ディレクトリサーバー、データベースサーバー、1つまたはそれ以上のフラットファイルまたは他のデータ構造を格納するサーバー(例えばXML)、あるいはネットワーク150に通信可能に連結された他のデバイスなどのディレクトリデータの1つまたはそれ以上のホストであり得る。ディレクトリサーバー140(1)−(N)は、アプリケーションデータ、バックアップデータ、または他のデータを記憶するための記憶デバイス160(1)−(N)のうちの1つまたはそれ以上を利用し得る。ディレクトリサーバー140(1)−(N)のうちの1つまたはそれ以上は、アプリケーションサーバーなど、クライアント110、120、および130に対するデータリクエストを処理し得るホストであり得る。
いくつかの実施形態によれば、ネットワーク180は、インターネットを表し得る。そしてネットワークデバイス170は、企業WANまたはLANであり得るネットワーク150とネットワーク180との間の多量のデータトラフィックを扱うデバイスであり得る。例えば、ネットワークデバイス170のうちの1つまたはそれ以上は、メールゲートウェイ、ウェブゲートウェイ、あるいは、ユーザー認証および/または認可、識別情報管理、受信者の妥当性検証、アドレス解決、メッセージルーティング、アクセス制御、または他のアプリケーション挙動のためにディレクトリデータサービスを使用する別の機器またはアプリケーションであり得る。非制限的な例として、ネットワークデバイス170のうちの1つまたはそれ以上が、Symantec(登録商標) Brightmail(登録商標) Gateway、Symantec(登録商標) Web Gateway、Symantec(登録商標) Data Loss Prevention Host、Symantec(登録商標) Endpoint Protection Application、またはBrightmail(登録商標) Message Filterであり得る。ネットワークデバイス170のうちの1つまたはそれ以上は、ディレクトリデータサービス154を使用して、1つまたはそれ以上のディレクトリサーバーからのキャッシュデータを管理する。いくつかの実施形態によれば、各ネットワークデバイス170は、自身のデータをキャッシュし得る。1つまたはそれ以上の実施形態によれば、キャッシュデータは、ネットワークデバイス170のうちの2つまたはそれ以上の間で共有され得る。例えば、ネットワークデバイス170(1)は、複数のBrightmail Gatewayスキャナのコントロールセンターホストであり得る。コントロールセンターホストは、Brightmail Gatewayスキャナであり得る複数の他のネットワークデバイス170間で共有されるキャッシュディレクトリサービスデータを含み得る。キャッシュデータは、ネットワークデバイス170に記憶され得るか、あるいはネットワークデバイス170に通信可能に連結された電子記憶装置に記憶され得る。
ディレクトリデータサービス154は、ネットワークデバイスの構成要素、モジュール、あるいは、ディレクトリデータキャッシュ動作を管理するために統合されたハードウェアおよびソフトウェアの別の組み合わせであり得る。いくつかの実施形態によれば、ディレクトリデータサービス154は、高スループット処理用のディレクトリデータサービスを使用して、ゲートウェイ機器あるいは別の装置またはアプリケーションとのディレクトリデータ統合を行うための統一サービス指向アーキテクチャを提供し得る。
ディレクトリデータサービス154は、効率的なディレクトリデータグループ解決およびキャッシュ管理を可能にし得る。ディレクトリデータサービス154は、階層状のディレクトリサーバーに格納された1つまたはそれ以上のディレクトリエントリをトラバースし得る。トラバースは、現在の対象グループから開始され得る。ディレクトリエントリがキャッシュで利用可能な場合には、キャッシュを使用して解析が実行され得る。ディレクトリエントリがキャッシュで利用不可の場合には、ディレクトリサーバーに対する問い合わせが行われる。ディレクトリエントリがディレクトリサーバーから取り出されたら、キャッシュに書き込まれ得る。ディレクトリデータサービス154は、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出し得る。メンバーが特定された場合、ディレクトリデータサービス154はそのメンバーのマッピングに現在の対象グループを追加し得る。メンバーのマッピングは、そのメンバーと関連付けられた1つまたはそれ以上のグループおよび/または配布リストを示すフラットなデータ構造であり得る。ディレクトリデータサービス154は、第1のディレクトリエントリがさらなるディレクトリエントリ(例えば、現在のディレクトリエントリよりもさらに下の階層レベル)を含むかどうかを判断し得る。ディレクトリデータサービス154は、現在の対象グループが別のメンバー(例えば、さらなるディレクトリサービスエントリに格納されたネスト構造のグループは、対象グループにマップされるメンバーを含む)のマッピングに追加されるかどうかを判断するために、第1のディレクトリエントリ(例えばネスト構造のグループ)に格納されたさらなるディレクトリエントリを読み出し得る。ディレクトリデータサービス154は、現在の対象グループを対象にさらなる階層状のディレクトリデータサービスレベルがトラバースされるかどうか(例えば、対象グループ下に、下方にトラバースしていくさらなる階層レベルが存在するかどうか)を判断し得る。いくつかの実施形態によれば、ディレクトリデータサービス154は、グループメンバーシップマップと関連付けられている特定されたユーザーのリスト、グループメンバーシップマップと関連付けられている特定された配布リストのリスト、および/またはグループメンバーシップマップと関連付けられている特定されたグループのリストをキャッシュし得る。いくつかの実施形態によれば、ポリシーが対象グループに適用され、対象グループに対する1人またはそれ以上のメンバーのマッピングにより、ポリシーを適用することに関わる性能が向上し得る。例えば、ディレクトリサーバー内にある1つまたはそれ以上の対象グループを特定するデータが、アプリケーションから受信され得る。特定された対象グループに対するメンバーの1つまたはそれ以上のマッピングが、ポリシーを適用するためのアプリケーションに提供され得る。
いくつかの実施形態によれば、キャッシュエントリは、グループに対する1人またはそれ以上のユーザーのマッピングを生成するためにディレクトリデータサービスによって、およびディレクトリデータサービスクライアントによって同時に使用され得る。
いくつかの実施形態によれば、グループ、配布リスト、および他のディレクトリエントリは期限が切れ得る。期限切れは、各ディレクトリエントリに割り当てられた別々のランダム値によって判断される期限に基づき得る。ランダム値は、多数の期限切れのエントリが同時にリフレッシュされる必要性が発生してディレクトリサーバーに過剰な負荷がかかる確率を下げるために、ディレクトリエントリの期限を分散し得る。
ディレクトリデータサービス154は、例えばディレクトリサーバー140(1)などのディレクトリサーバーからキャッシュデータを管理できるようにし得る。ディレクトリデータサービス154は、ディレクトリサービスデータのリクエストも管理し得る。データをキャッシュすることにより、メールゲートウェイなどのネットワークデバイスの動作が高速化され得るし、1つまたはそれ以上のディレクトリサーバー140からの負担が軽減され得る。ただし、初期キャッシュをビルドすると、負荷が大きくなる可能性がある。1つまたはそれ以上の実施形態によれば、ディレクトリデータサービス154は、ネットワークデバイスによって使用される前に、キャッシュされたディレクトリデータを事前に読み込み得る。キャッシュデータは、(例えば、ディレクトリサーバーで行われた可能性のあるディレクトリデータに対する変更を省略するなど)「陳腐化」しないように周期的にリフレッシュされる必要があり得る。多数のキャッシュエントリは、同時に、あるいは同じ短時間内に作成され得る。同じ生存時間(TTL)、またはキャッシュエントリの期限切れを決定する他の同様の設定を用いて多数のキャッシュエントリを設定すると、短時間に多数のキャッシュエントリをリフレッシュするために、ディレクトリサーバーに多数のクエリが出される可能性がある。この好ましくない挙動は、ディレクトリサーバーおよび/またはディレクトリサーバーを使用するアプリケーションまたはデバイスにおけるスパイク、性能障害、あるいは他の好ましくない挙動の原因となり得る。
本開示の1つまたはそれ以上の実施形態によれば、同じ時点で多数のキャッシュエントリがディレクトリサーバーにリフレッシュリクエスト(例えば、LDAP対応ディレクトリサーバーに対するLDAPクエリ)に課せられることのないように、キャッシュエントリの期限(例えばTTL設定)は多様であり得る。例えば、複数のキャッシュディレクトリエントリの許容期限の範囲を決定する1つまたはそれ以上のパラメータが、管理者によって設定され得る。ディレクトリデータサービス154は、ユーザーインターフェースを提供し得るし、かつ/または設定されたパラメータを受容し得る。ディレクトリデータサービスからキャッシュディレクトリエントリが作成されると、そのエントリは、ディレクトリデータサービス154によって作成時刻が割り当てられ得る。キャッシュディレクトリエントリは、ディレクトリデータサービス154によって1つまたはそれ以上のランダム値が割り当てられ得る。1つまたはそれ以上のランダム値は、キャッシュディレクトリエントリの期限(例えば生存時間(TTL)を期限の許容範囲内で決定し得る。複数のキャッシュディレクトリエントリの許容期限の範囲内でキャッシュディレクトリエントリの期限をランダム化することにより、ある時点でネットワークデバイス170のキャッシュメモリとディレクトリサーバー140との間で必要とされる同期の量(例えばリフレッシュリクエスト)が減少し得る。そのため、キャッシュエントリは、ディレクトリサーバーでパフォーマンススパイクまたは他の性能低下が起こらないように、TTL設定を、許容される生存時間設定の範囲全体に分散させ得る。
キャッシュエントリの期限が切れている場合には、ディレクトリデータサービス154が、ディレクトリサーバーに問い合わせること(例えば、LDAP対応ディレクトリサーバーに対するLDAPクエリ)によってキャッシュエントリのリフレッシュを試行し得る。キャッシュエントリは、キャッシュで受信され、新たに設定された作成時刻と新たに計算されたTTLとを用いて更新または作成され得る。
いくつかの実施形態によれば、ディレクトリデータサービスが利用不可である場合には、期限切れの対応ディレクトリエントリがリクエストを受けて提供され得る。ディレクトリサーバーが別のディレクトリサーバー(例えば、同じキャッシュエントリを含むディレクトリサーバー)に対して冗長である場合には、ディレクトリサーバーに対するクエリが第1のサーバーから第2のサーバーにフェイルオーバーされ得る。例えば、冗長ディレクトリサーバーにフェイルオーバーするには、ラウンドロビンDNS(ドメイン名サーバー)方式が使用され得る。いくつかの実施形態によれば、ロードバランシングおよび/またはフェイルオーバーは、ディレクトリサーバー(例えばLDAP)ティアで実施され得る。1つまたはそれ以上の実施形態によれば、データアクセスの失敗(例えば、ネットワークの問題や、ディレクトリサーバーの停止)が発生したときに、ディレクトリデータサービス154は、キャッシュデータのTTLの期限が切れていても、キャッシュが利用可能であれば、キャッシュからのデータで以てリクエストにサービスする。このため、サイズ限度を超えない限り、データソースキャッシュからデータが削除されることはない。例えば、いくつかのデータアクセスの失敗が短時間で検出された場合に開始し得る高速フェイルオーバーモードが存在し得る。これにより、データソースは、キャッシュデータが利用可能であれば、そのキャッシュデータに対して直ちにサービスを直ちに提供しうるか、あるいは例外(例えばDataAccessUnavailableException)を伴って直ちに失敗し得る。これにより、ディレクトリデータサービス154は、ディレクトリサーバーのリソースが利用できない場合でも高スループットを維持することができ得る。一実施形態によれば、ディレクトリデータサービス154の高速フェイルオーバー構成は、以下のように実装され得る。
データアクセスの失敗が120秒間で5回検出されたら、300秒間の高速フェイルオーバーに切り替わる。特定のリクエストについて、フェイルオーバー先のキャッシュデータが存在しない場合、ディレクトリデータサービス(DDS)コールが一時エラーで失敗し得る。受信者の妥当性検証の場合、かかる一時エラーはSMTPエラーとなる可能性があり、上流の送信者にそのメッセージを再試行するように命令し得る。他の機能の場合、これらのエラーにより、メッセージが各種内部MTA(メッセージトランスファーエージェント)キューに残る可能性があり、そこで再試行され得る。
いくつかの実施形態によれば、キャッシュデータは、冗長ディレクトリデータソースに優先し得る。ディレクトリデータソースとキャッシュとの間での優先順位は設定可能であってよい。例えば、SourceAおよびSourceBという2つの同一の受信者妥当性検証ソースを用いてシステムが構成された場合を考えてみる。ここではSourceAがクエリ順序における最初のソースである。通常の状況下では、有効な受信者に対してSourceAだけが問い合わせられ得る。通常の状況下では、無効な受信者に対して両方のソースが問い合わせられ得る。SourceAが停止している場合には、キャッシュされた有効な受信者に対してSourceAのキャッシュからサービスされ得るため、SourceBが参照されない場合がある。SourceAが停止している場合、キャッシュされていない有効な受信者はSourceBからサービスされ得る。スティッキーリフレッシュにより、キャッシュされていない有効な受信者はその後もSourceBからサービスされ得る。SourceAが停止している場合、キャッシュされているが期限が切れていない無効な受信者は、通常の状況下と同様に扱われ得る。SourceAが停止している場合、キャッシュされた無効な受信者、あるいはキャッシュされているが期限が切れている無効な受信者は、リクエスタに後で再試行するように命令するエラーをもたらし得る。
いくつかの実施形態によれば、SourceBが停止している場合には、キャッシュされた有効な受信者がSourceAのキャッシュからサービスされ得るため、SourceBが参照されない場合がある。SourceBが停止している場合、キャッシュされていない有効な受信者はSourceAからサービスされ得る。早期終了およびスティッキーリフレッシュにより、キャッシュされていない有効な受信者はその後もSourceAからサービスを提供され得る。早期終了とは、検索結果の一意性を検証することなく、複数のデータソースを用いて構成されたディレクトリデータサービスに対する検索を終了することであり得る(例えば、受信者の妥当性検証の場合、リクエストされたディレクトリエントリが見つかる最初のデータソースで検索が停止し得る)。スティッキーリフレッシュとは、キャッシュ内のディレクトリエントリが特定のデータソースと関連付けられており、ディレクトリエントリの期限が切れたときに、ディレクトリデータサービスが、そのデータソースからのディレクトリエントリのリフレッシュを試行するように定義された設定のことであり得る(例えば、ディレクトリエントリが同じデータソースからリフレッシュされ得る限り、システム内の他のデータソースは問い合わせられない)。SourceBが停止している場合、キャッシュされているが期限が切れていない無効な受信者は、通常の状況下と同様に扱われ得る。
SourceBが停止している場合、キャッシュされた無効な受信者、あるいはキャッシュされているが期限が切れている無効な受信者は、リクエスタに後で再試行するように命じるエラーをもたらし得る。
いくつかの実施形態によれば、冗長ソースはサポートされなくてもよい。ディレクトリデータソースが停止していても、利用可能であれば、キャッシュデータにフェイルオーバーし得る。使用するキャッシュデータが存在しない場合、ソースはデータアクセスエラーを記録し得る。そしてディレクトリデータサービス154はデータアクセスアラートを生成し得る。ただし、ディレクトリデータサービス154は、引き続き他のデータソースを検索してもよい。一意のエントリが健全なソースのうちの1つに見つかれば、そのコールは成功する可能性があり、スティッキーリフレッシュは、そのエントリを求める以降の要求をそのソースに向け得る。1つより多くのエントリが見つかった場合には、重複エラーが記録され得る。そして、ディレクトリデータサービス154は、データ整合アラートを生成し得る。一致するエントリが見つからない場合には、リクエストが一時エラーで失敗し、再試行され得る。
いくつかの実施形態によれば、ディレクトリデータサービス154は、1つまたはそれ以上のデータ整合エラーまたは他のエラーを検出し得る。そして、そのエラーと関連付けられた記録および/またはアラート通知を提供し得る。例えば、ディレクトリデータサービス154は、処理中にデータエラーに遭遇し得る。そしてエラーを記録し、かつ/またはアラートを管理者に提供し得る。検出されたエラーは、非制限的な例として、電子メールアドレスの重複、ユーザー名重複、行方不明または無効な属性データ(例えば、行方不明の電子メールアドレス、無効な電子メールアドレスフォーマット、存在しないエントリを参照しているグループメンバーシップ属性、および下位および上位グループメンバーシップ属性の不整合値)、および循環グループ関係を含み得る。ディレクトリデータサービス154は、各種ディレクトリデータと統合し得る。例えば、ディレクトリデータサービス154は、LDAPディレクトリ、SQLデータベース、および/またはフラットファイルを格納しているサーバーであり得るディレクトリサーバー140(1)...(N)にアクセスし得る。ディレクトリデータサービス154は、電子メールアドレスまたは他のデータを探すディレクトリサーバー(例えばLDAPクエリ)にアクセスし得る。受信したデータに基づいて、ディレクトリデータサービス154はデータ整合エラーを検出し得る。受信した電子メールアドレスが単一のデータソースにおける複数のディレクトリエントリに対応し得るか、あるいはユーザー名が単一のデータソースにおける複数のディレクトリエントリに対応し得る。いくつかの実施形態によれば、データ整合エラーに加え、ディレクトリデータサービス154によって認識される他のエラーとしては、ディレクトリデータアクセスエラー(例えば、LDAPサーバーからデータを読み出せなかった)、過小データソースキャッシュエラー(例えば、データソースキャッシュまたはキャッシュインデックスが、リクエストされたメモリ内データまたはフェッチされたディレクトリエントリのすべてを保持できるだけの大きさがないことを示している)、および/または(エンドユーザー設定複製エラー(エンドユーザー設定複製動作が失敗したことを示している)を含むエラーを扱い得る。
ディレクトリデータサービス154は、サービスの無応答または非稼働、不適切なシャットダウン後のサービス開始、サービスのシャットダウン、およびサービス開始を含むイベントのアラートを提供し得る。これらのアラートに加え、ディレクトリデータサービス154は、ディレクトリデータサービス(DDS)に固有のアラートを扱い得る。ディレクトリデータサービス154は、ディレクトリサーバーデータアクセスアラートを提供し得る。このタイプのアラートは、ディレクトリデータサービス154がディレクトリサーバー(例えばLDAPサーバー)からデータを読み出せない場合にトリガーされ得る。これは、様々な理由で起こり得る。いくつかの例は、LDAPサーバーの停止、ネットワークインフラストラクチャの問題、DNSの問題、ファイアウォールルールのブロックリクエスト、不良データソース管理バインド証明書、および/またはLDAP検索タイムアウトを含み得る。
ディレクトリデータサービス154によって扱われる他のアラートは、ディレクトリサーバーデータ整合アラートを含み得る。このタイプのアラートは、リクエストが正常に実行されるのを妨げるディレクトリデータに関する問題をディレクトリデータサービス154が検出したときにトリガーされ得る。リクエストの失敗に至らないデータ整合の問題は、ディレクトリデータサービス154によって「警告」レベルで記録され得るため、アラートをトリガーしない場合がある。ディレクトリデータサービス154は、受信者の妥当性検証エラーを記録し得る。受信者アドレスでの検索に対して複数のエントリ(単一のデータソース内に、あるいは複数のソースにまたがって存在)が返された場合、このイベントは、ディレクトリデータサービス154によって「情報」レベルで記録され得るため、アラートが生成されない場合がある。複製された受信者は、受信者の妥当性検証機能上、有効であるとみなされ得る。
以下のデータ整合エラーは、アラートをトリガーし得る。
電子メールアドレス(単一のデータソース内に、あるいは複数のソースにまたがって存在)での検索に対して1つより多くのエントリが返される。
ユーザー名(単一のデータソース内に、あるいは複数のソースにまたがって存在)での検索に対して1つより多くのエントリが返される。
以下のデータ整合問題は、ディレクトリデータサービス154によって「警告」レベルで記録され得るため、アラートをトリガーしない場合がある。循環グループ参照、無効なグループメンバーシップ属性値、行方不明のプライマリ電子メール属性値、および/または電子メールアドレス値の無効フォーマット。
循環グループ参照は、ディレクトリサーバーがグループメンバーシップを判断するために上から下へとトラバースしているときにディレクトリデータサービス154によって認識され得る。例えば、グループAがグループBのメンバーであり、グループBがグループAのメンバーである場合に、ディレクトリデータサービス154がこれを検出してエラーを記録し得る。グループの関係は、多数のレベルに及び深いネスト構造になっていることがあるために、循環グループ参照がいくつか下のレベルで発生し得る。例えば、グループが上位から下位にA〜Eのネスト構造になっていると仮定すると、グループBがグループEのメンバーである可能性があり、循環グループ参照をもたらし得る。いくつかの実施形態によれば、ツリー(すなわちグループ)の特定ノードが以前にアクセスされていると判断し得る再帰的ツリートラバースアルゴリズムが使用され得る。これが循環グループ参照を表し得る。循環グループ参照は、データソース(例えば単一のディレクトリサーバー)で、あるいはデータソースにまたがって検出され得る。
ディレクトリデータサービス154は、ディレクトリデータサービス(DDS)キャッシュサイズアラートを提供し得る。このタイプのアラートは、ディレクトリデータサービス154が、データアクセス層から取り出された新規エントリ用のスペースを確保するために、期限が切れる前にキャッシュエントリを追い出すときにトリガーされ得る。管理者は、アラートおよびログステートメントを参照して適切な措置をとり得る。例示的なアラートは以下を含む。
Entry Cache
修復方法:キャッシュサイズを増やす。
Recipient Ref Cache(電子メールアドレスに関するキャッシュインデックス)
修復方法:キャッシュインデックスサイズ乗数(すなわち、キャッシュインデックスサイズ=(N×キャッシュサイズ)と設定するパラメータNなど、キャッシュインデックスのサイズを決定するパラメータ)を増やす。
User Ref Cache(ユーザー名に関するキャッシュインデックス)
修復方法:キャッシュインデックスサイズ乗数を増やす。
アラートファイルが、ホスト、特定タイプのアラート条件、およびトリガー事象の時期を伝達し得る。アラートテキストは、管理者に、システムログファイルを参照して追加診断情報を確認するよう促し得る。これにより、影響を抑えつつ、アラート機能の変更または拡張が可能となり得る。
生成されたアラート電子メールは、以下の情報を含み得る。
アラートイベントのタイムスタンプ、
アラートイベントのホスト識別子、
アラートイベント(例えばディレクトリデータサービス154)を生成した構成要素、および
所定のディレクトリデータサービスステータスコードに対応するローカライズされたメッセージ。
ステータスコードは大雑把である可能性があり、特定のコードに至る可能性のある多数の潜在的なエラー状況が存在し得る。アラートメカニズムは、特定ホスト上のディレクトリデータサービスインスタンスが特定時期にリクエストを処理できなかったことを単に伝えるだけであり得る。そして根本原因についての詳細な情報はログを参照するように管理者に示し得る。
ディレクトリデータアクセスアラート、ディレクトリデータ整合アラート、ディレクトリデータサービスキャッシュサイズアラート、ユーザー設定複製アラート、または他のタイプのアラートのうちの1つまたはそれ以上のサブタイプを使用可能または使用不可にするためのユーザーインターフェース要素(例えばチェックボックス)が存在してもよい。
ディレクトリデータサービス154は、1つまたはそれ以上のデータ整合エラーまたは他のエラーを記録し得る。そしてアラートが別のメカニズムによって生成され得る。例えば、ディレクトリデータサービス154は、ディスク上、あるいは他の電子ストレージにアラートファイルを作成する。アラートファイルは、タイムスタンプと、アラート条件のタイプを表す識別子とを格納し得る。ネットワークデバイス170上で実行中のプロセスまたはエージェントが、周期的にアラートファイルをポーリングし、アラートメタデータを処理し、1人またはそれ以上のユーザー(例えば、登録されたシステム管理者)にアラート電子メールを送り得る。他の通信チャネルが、SMSテキストメッセージ、ボイスメール、および/またはウェブページ投稿などをユーザーに通知する目的で使用され得る。いくつかの実施形態によれば、ディレクトリデータサービス154は、追加プロセスまたはエージェントを使用せずに直接アラートを送り得る。1つまたはそれ以上の実施形態によれば、ディレクトリデータサービス154または別のプロセスが、インターフェースを使用して(例えば、SNMP、Windows System Event、またはカスタムIPC(プロセス間通信)を介して)アラートを送り得る。
ディレクトリデータサービス154によるデータ整合エラーの検出およびシステム管理者への迅速なアラート通知により、システムの性能低下または故障が起きる前にシステム管理者が問題に対処することを可能にし得る。
いくつかの実施形態によれば、ディレクトリデータサービスグループの解決が、1つまたはそれ以上のアプリケーション機能を支援するために実行され得る。例えば、メールゲートウェイが、どのポリシーをユーザーに適用するかを判断するために、1つまたはそれ以上の対象グループのメンバーシップを判断する必要があり得る。すべてのグループを解決しようとすると、ディレクトリサーバーに不要かつ重い負担がかかり得る。例えば、例示的実施形態によれば、メールゲートウェイは、ポリシーグループメンバーシップ(例えば、bmiconfig.xmlなど構成可能なリストに記憶されたポリシーグループメンバーシップ)と交差するグループメンバーシップを解決することのみ必要であり得る。いくつかの実施形態によれば、実行時のグループメンバーシップ拡張は、配布リストの下位メンバーシップに限られ得る(配布拡張が有効である場合)。配布リストの下方拡張および構成可能なリスト(例えばbmiconfig.xml)にポリシーグループのメンバーとして含まれるグループは、ディレクトリデータサービスクライアントからアドレス解決コールを受け入れる前に実行され得る。上位メンバーシップの「上方」拡張が実行されることはない。これは、以下に示すいくつかの利点を提供し得る。
memberOf属性を欠くディレクトリタイプだけでなく、すべてのディレクトリタイプに関するアドレス解決速度の大幅な向上。
配布リストの拡張だけでなく、ユーザーメンバーシップ解決速度の向上。
キャッシュされた配布リストの拡張速度の明らかな向上。
キャッシュされたdlistおよびグループの数をポリシーで参照されたdlistおよびグループまで減らすこと、および/またはメッセージを受信することによるメモリオーバーヘッドの大幅な減少。
ポリシーグループメンバーシップを解決するのに、数秒から数分かかり得る。下方のみの拡張モデルは、配布リストの拡張速度を数倍上げ得るが、すべてのdlistおよびグループを解決してキャッシュを埋めるのに、それでもまだいくらかの時間を要し得る。この間に、アドレス解決コールがキューに入り得る。
解決されたdlistおよびグループのキャッシュ期限は、最小限のTTLに基づいてスレッドによってリフレッシュされ得る。bmiconfig.xmlポリシーグループメンバーシップへの追加または編集、あるいはディレクトリデータソースの構成変更は、グループの再解決をトリガーし得る。
下方メンバーシップ拡張アルゴリズムは、/data/scanner/etc/bmiconfig.xmlに列記されたポリシーメンバーシップから取得される電子メールアドレスおよびLDAPグループ識別名(DN)のリストから開始され得る。各々のLDAPグループDNは、グループのリストに追加され得る。完全形成された電子メールアドレス(ローカル部@domain.com)ごとに、EntryDAOを使用して、電子メールアドレスがdlistに対応するかどうかを判断し、対応する場合には、そのアドレスを、拡張されるグループのリストに追加し得る。他のポリシーメンバーシップ形態(例えば、ドメインのみ、ファイルグロブパターン)はスキップされ得る。
ディレクトリエントリが配布リストまたは電子メールのないLDAPグループであるかどうかに関係なく、次のステップは同じであり得る。
拡張されるグループごとに、
グループエントリをLDAPサーバーから取り出す
キャッシュエントリ(DN、プライマリ/エイリアス電子メールアドレスおよび/または下位メンバーシップ)
下位メンバーごとに
bmiconfigから取得したオリジナルのグループを、下位メンバーの上位メンバーシップに追加する
下位メンバーを再帰的に拡張する
なお、グループのメンバーが、以前に解決されたグループによってすでにキャッシュされている場合、上位メンバーシップは、置換ではなく追加され、キャッシュエントリは維持され得る。また、すでに確認したノードに遭遇すると、循環グループメンバーシップを扱うための論理が拡張を停止し得る。
例えば、LDAPサーバーに以下のエントリを有する場合、
そしてbmiconfig.xmlに列記された2つのポリシーメンバーシップが以下である場合、
dlist.2@brightmail.com
cn=group.1,dc=brightmail,dc=com
下方へのメンバーシップ解決タスクの完了時に、ディレクトリデータサービスキャッシュに以下のエントリを有することになる。
例えば、グループまたは配布が、下位メンバーのDNがソースのベースDN外にある下位メンバーシップを格納している場合、メンバーシップは、それでもトラバースおよびキャッシュされ得る。
メンバーシップキャッシュのデザイン
1つまたはそれ以上のエントリタイプ(ユーザー、配布リスト、グループ)の上位メンバーシップ情報は、別々のマップバックドキャッシュに分けられ得る。これらのキャッシュにおいて、キーはエントリのuniqueIdであり、値は、そのエントリがメンバーであるグループおよびdlistのuniqueIdのリストである。
キャッシュからエントリを解決するには、以下に示す新しいステップが必要となり得る。uniqueIdがメインキャッシュで存在することが判明している場合には、マップバックドメンバーシップキャッシュに対して2度目のルックアップが実行され得る。uniqueIdのキーが存在しない場合には、そのエントリについて、レポートする上位グループメンバーシップが存在しない場合がある。
なお、ディレクトリデータサービスクライアントに対する対象上位メンバーシップを有するエントリは、下方メンバーシップ拡張タスクの完了後にキャッシュされ得る。メインキャッシュ内の各エントリは、自身の生存時間(TTL)を有し得る一方で、メンバーシップマップ全体は、単一のTTLを有するとみなされ、このTTLは、データソースの最小範囲のTTLに設定され得る。その結果、ディレクトリデータサービスクライアントのアドレス解決リクエストにサービスするにあたってアドレス解決エントリがフェッチされたときに、以下の使用事例に遭遇し得る。
エントリがまだキャッシュされていなかった。そのため、エントリは上位メンバーシップを有していない可能性があり、LDAPサーバーは、電子メールアドレスおよび下位メンバーシップの有無だけが問い合わせられ得る。
エントリはキャッシュされており、上位メンバーシップを有する場合もあれば有しない場合もある。
エントリはキャッシュされているが、エントリのTTLの期限が切れているために、LDAPサーバーは、電子メールアドレスおよび下位メンバーシップの有無だけが問い合わせられ、キャッシュエントリが置換され得る。エントリが上位メンバーシップを有する場合には、uniqueId(DN)によって再リンクされ得る。
メンバーシップキャッシュの再ビルドタスク
ディレクトリデータサービスサーバーが初めて開始されたか、あるいはサーバーが再起動されたとき、キャッシュの持続性が有効でない場合には、メンバーシップマップ全体が所与のソース用に再ビルドされ得る。
ディレクトリデータサービスサーバーがkickコマンドを受信し、bmiconfig.xmlファイルがポリシーメンバーシップリストに対する変更を格納している場合には、メンバーシップマップ全体が所与のソース用に再ビルドされ得る。
ディレクトリデータサービスサーバーがkickコマンドを受信し、ddsconfig.xmlファイルが、そのソースのキャッシュを再ビルドする必要があるデータソースに対する変更を格納している場合には、メンバーシップマップ全体が、所与のソース用に再ビルドされ得る。
メンバーシップマップのTTLの期限が切れたら、LDAPサーバーディレクトリツリーにおけるグループメンバーの追加および削除を捕捉するために、メンバーシップマップ全体が所与のソース用に再ビルドされ得る。
ディレクトリデータサービスサーバーは、メンバーシップマップが再ビルドされている間、アドレス解決コールをブロックし得る。該当ソースについて、メンバーシップマップビルドタスクの進行中にkickまたはclear cacheコマンドが受信された場合には、タスクが破棄され、kickコマンドが処理され得る。
再ビルドタスクは、古いコピーの保持中に新しいメンバーシップマップをビルドし得る。それにより、マップの再ビルド中にアドレス解決コールが引き続きサービスされ得る。そして失敗した場合には古いコピーに戻り得る。つまり、再ビルド中、メンバーシップマップは、単一マップの2倍のメモリ消費量でピークに達し得るということであり、かつ、利用可能な古いマップが存在する場合にアドレス解決コールがキューに入っている実時間は、通常のディレクトリデータサービスのkickの場合より、ほんのわずかに長いだけであり得るということである。
メンバーシップマップのTTLの期限が切れたときに再ビルドに対応するために、アドレス解決ソースごとに、スケジューリングされたタスクが存在し、そのソースの低い方のTTL範囲値に設定された間隔で動作し得る。メンバーシップマップのTTLの期限が切れると、再ビルドタスクが呼び出され得る。下方拡張によって参照されたエントリがすでにキャッシュされている場合には、そのエントリのTTLが検査され得る。期限が切れている場合には、そのエントリおよびそのエントリの下位メンバーシップデータがデータアクセス層からフェッチされ、新たにキャッシュされ得る。期限が切れていない場合には、古いエントリは保持され、そのエントリの下位メンバーシップデータが新しいマップで表され得る。メンバーシップマップデータは、最大TTL範囲よりも長く持続し得る。例えば、最小TTL範囲が1時間、最大が5.5時間に設定されている場合、メンバーシップマップは、特定のエントリの期限が切れるまでに最大6回サイビルドされ得る。そのため、そのエントリの下位メンバーシップデータは、6時間にわたってキャッシュされた状態であり得る。
再ビルドタスクは、bmiconfig.xmlからグループのリストおよびdlistを並行して処理するために、スレッドのプールを使用し得る。追加、置換、および追い出しを受けてキャッシュ統計が更新され得る。
メンバーシップキャッシュの再ビルド中のディレクトリデータサービスAPIの挙動は以下のとおり。
何らかのアドレス解決ソースのメンバーシップマップの再ビルド中は、ディレクトリデータサービスサーバーが、クライアントアドレス解決コールにサービスしたり、重複するkickを呼び出したりしないようにされ得る。なお、アドレス解決メンバーシップキャッシュの再ビルド中は、他のディレクトリデータサービスコール(例えば、受信者の妥当性検証)が実行され得る。
新しいメンバーシップキャッシュがビルドされており、かつ旧マップが存在する場合には、アドレス解決コールが依然としてディレクトリデータサービスによってサービスされ得る。旧メンバーシップマップが存在しない場合には、アドレス解決コールがキューに入り、最初のマップをビルドするために必要な時間の存在により、アドレス解決コールがキューに入り得る(例えば、bmiconfig.xmlおよび/または反応の遅いLDAPサーバーにある多数の大きなグループ)。
kickまたはclear cacheコマンドがメンバーシップマップのビルド中に受信された場合には、ビルドが破棄され得る。そして、clear cacheコマンドがサービスされて、必要に応じてメンバーシップマップのビルドが再開され得る。「古い」bmiconfig.xmlおよびddsconfig.xmlは、メンバーシップが再ビルドされる必要があるかどうかが継続的に判断され得る。そして、「古い」マップのTTLが検査され、期限切れになっているかどうかを判断する。ソースでのclear cacheにより、そのソースのメンバーシップマップが再ビルドされ得る。これは、メンバーシップマップの再ビルドが進行中である場合(初回ビルドの場合、あるいは以前に存在していたマップを伴う場合)に対処し、
以下を受けてkickが受信される。
ddsconfig.xmlに対する変更(ソースの追加/編集/削除、キャッシュの持続性の変更、ディレクトリデータサービスのログレベルの変更)
bmiconfig.xmlに対する変更(LDAPポリシーメンバーシップの追加/削除)
userprefs.xmlの複製
メンバーシップマップがビルドされているソースについて、「Clear Cache」が呼び出され得る。
電子メールアドレスによって参照される配布リストポリシーメンバー
データソースのメンバーシップマップに入れるために、ポリシーメンバーの電子メールアドレスが、データソースアドレス解決クエリによって解決可能であり得る。そのため、このアドレスは、ベースDNの範囲内に存在し得ると共に、クエリフィルタを使用して検索可能であり得る。
配布リストがそのLDAPエントリの識別名(DN)を使用しているポリシーにリストされている場合、メンバーシップは、エントリがデータソース(例えば、ソースのベースDNがou=Americas,dc=company,dc=com、配布リストのDNがcn=all−sales−dlist,ou=groups,dc=company,dc=com)の範囲外であっても評価され得る。これは、エントリが自身のDNを使用して取り出されるときに、エントリのDNが、検索フィルタとして「(objectclass=*」を有する「範囲ベース」検索のために、LDAPクエリ内のDNに取って代わるからである。
キャッシュの追い出し、サイズ、無効化の効果
ソースのキャッシュが小さくて満杯の状態で新規エントリのキャッシュが試行されると、最低使用頻度(LRU)アルゴリズムに基づいてエントリが追い出され得る。メンバーシップキャッシュマップのサイズは無制限であり得るが、下方拡張タスクの最中にキャッシュ制限に達する可能性があり得る(例えば、キャッシュ制限は10,000であり、bmiconfig.xmlでグループによって参照されるエントリの総数が12,000である)。com.symantec.sms.dds.cache.LRUHashMapの定期的な追い出しが許容されているが、メンバーシップマップは別々であり、かつ無制限であることから、下方拡張の機能は維持され得る。
ソースのメインキャッシュが無効である(あるいはゼロサイズに設定されている)場合でも、メンバーシップキャッシュはデータを受容し得るし、最小TTL設定は、スケジューリングされたメンバーシップキャッシュの再ビルドを引き続き司り得る。
期限の切れたキャッシュデータへのフェイルオーバー動作
制限の切れたキャッシュデータへのフェイルオーバーは、LDAPサーバーがアクセス不可である場合に発生し得る。
下方へのメンバーシップキャッシュの再ビルドの際に、時期を問わずLDAPソースがアクセス不可である場合には、旧メンバーシップマップに失敗して戻り、データアクセスアラートを発し、30秒間隔で再試行してもよい。復帰先の旧マップが存在しない(すなわち、ソースの構成に対する変更、あるいはキャッシュクリアコマンドのために、マップが初回のソース保存に基づいてビルドされている)場合には、アドレス解決コールがキューに入り得る。
bmiconfig.xmlにリストされたdlistまたはグループがLDAPサーバーに視認できない場合(例えば、問い合わせは正常に行われたものの、エントリの削除または移動、あるいはアクセス制御の変更により、結果がnullだった場合)には、旧マップへのフェイルオーバーが行われない場合があるが、「INFO」レベルで記録して、見つからないソースおよびグループ名前を列記し得る。
キャッシュの持続性
メンバーシップマップバックドキャッシュは、キャッシュの持続性ブールの設定に従い、他のキャッシュデータと共にディスクに保持され得る。
図2は、本開示の一実施形態にかかるコンピュータシステム200のブロック図を表す。コンピュータシステム200は、本開示にかかる技法を実施するのに適している。コンピュータシステム200は、中央プロセッサ214など、コンピュータシステム210の主要サブシステムを相互接続し得るバス212と、システムメモリ217(例えば、RAM(ランダムアクセスメモリ)、ROM(読み出し専用メモリ、フラッシュRAMなど)と、入出力(I/O)コントローラ218と、音声出力インターフェース222を介するスピーカシステム220などの外部のオーディオデバイスと、ディスプレイアダプタ226を介するディスプレイスクリーン224などの外部デバイスと、シリアルポート228および230と、キーボード232(キーボードコントローラ233を介して仲介)と、記憶装置インターフェース234と、フロッピーディスク238を受容するように動作可能なフロッピーディスクドライブ237と、ファイバチャネルネットワーク290と接続するように動作可能なホストバスアダプタ(HBA)インターフェースカード235Aと、SCSIバス239に接続するように動作可能なホストバスアダプタ(HBA)インターフェースカード235Bと、光学ディスク242を受容するように動作可能な光学ディスクドライブ240と、を備え得る。また、マウス246(または他のポイントアンドクリックデバイス、シリアルポート228を介してバス212に連結)と、モデム247(シリアルポート230を介してバス212に連結)と、ネットワークインターフェース248(バス212に直接連結)と、電源マネージャ250と、バッテリ252と、も備え得る。
バス212は、上記のとおり、中央プロセッサ214とシステムメモリ217との間でのデータ通信を可能にする。システムメモリ217は、読み出し専用メモリ(ROM)またはフラッシュメモリ(どちらも図示せず)と、ランダムアクセスメモリ(RAM)(図示せず)とを含み得る。RAMは、オペレーティングシステムおよびアプリケーションプログラムが読み込まれ得るメインメモリであり得る。ROMまたはフラッシュメモリは、他のコードと共に、周辺構成要素との相互動作など、基本的なハードウェア動作を制御する基本入出力システム(BIOS)を格納することができる。コンピュータシステム210に存在するアプリケーションは、ハードディスクドライブ(例えば固定ディスク244)、光学ドライブ(例えば光学ドライブ240)、フロッピーディスクユニット237、または他の記憶媒体など、コンピュータ読み取り可能な媒体に記憶され、かかる媒体を介してアクセスされ得る。例えば、ディレクトリデータサービス154は、システムメモリ217に存在し得る。
記憶装置インターフェース234は、コンピュータシステム210の他の記憶装置インターフェースと同様、固定ディスクドライブ244など、情報を記憶および/または取得するための標準的なコンピュータ読み取り可能な媒体に接続することができる。固定ディスクドライブ244は、コンピュータシステム210の一部であってよく、あるいは別々になっており、他のインターフェースシステムを通じてアクセスされるようになっていてもよい。モデム247は、電話リンク経由でリモートサーバーとの、あるいはインターネットサービスプロバイダ(ISP)経由でインターネットとの直接接続を提供し得る。ネットワークインターフェース248は、POP(通信アクセスポイント)を経由するインターネットとの直接ネットワークリンクを介してリモートサーバーとの直接接続を提供し得る。ネットワークインターフェース248は、デジタルセルラー方式電話接続、セルラー方式デジタルパケットデータ(CDPD)接続、デジタル衛星データ接続などを含む無線技法を用いてかかる接続を提供してもよい。
その他多くの装置またはサブシステム(明示せず)が、同様の方法(例えば、文書スキャナ、デジタルカメラなど)で接続されてもよい。逆に言えば、本開示を実施するのに、図2に示す装置のすべてが存在する必要はない。これらの装置およびサブシステムは、図2に示すものとは別の方法で相互接続することもできる。本開示を実装するコードは、システムメモリ217、固定ディスク244、光学ディスク242、またはフロッピーディスク238のうちの1つまたはそれ以上などのコンピュータ読み取り可能な記憶媒体に記憶され得る。本開示を実装するコードは、1つまたはそれ以上のインターフェースを介して受信され、メモリに記憶され得る。コンピュータシステム210に設けられるオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、OS X(登録商標)、UNIX(登録商標)、Linux(登録商標)、または別の公知のオペレーティングシステムであり得る。
電源マネージャ250は、バッテリ252の電力レベルを監視し得る。電源マネージャ250は、電力レベルを判断できるようにするための1つまたはそれ以上のAPI(アプリケーションプログラミングインターフェース)、コンピュータシステム200がシャットダウンするまでの残り時間窓、電力消費率、コンピュータシステムが電源(例えばAC電源)かバッテリのどちらで稼働しているかを示すインジケータ、または他の電力関連情報を提供し得る。いくつかの実施形態によれば、電源マネージャ250のAPIは、リモートアクセスが可能(例えば、ネットワーク接続経由でリモートバックアップ管理モジュールにアクセス可能)であり得る。いくつかの実施形態によれば、バッテリ252は、コンピュータシステム200に対してローカルまたはリモートに位置する無停電電源装置(UPS)であり得る。かかる実施形態では、電源マネージャ250がUPSの電力レベルに関する情報を提供し得る。
図3を参照すると、本開示の一実施形態にかかるディレクトリデータサービス154が示されている。図示のとおり、ディレクトリデータサービス154は、ディレクトリデータサービス(DDS)キャッシュ管理モジュール312、ディレクトリデータサービス整合管理モジュール314、ディレクトリデータサービスグループメンバーシップモジュール316、ディレクトリデータサービスクエリ一般化モジュール318、およびエラー記録およびレポートモジュール318を含む1つまたはそれ以上の構成要素を格納し得る。
下記の記述は、ネットワーク要素、コンピュータ、および/または1つまたはそれ以上のモジュールを含み得る、ディレクトリデータを解決するためシステムおよび方法の構成要素について記載している。本明細書で使用されるとおり、「モジュール」という用語は、計算ソフトウェア、ファームウェア、ハードウェア、および/またはそれらの各種組み合わせを言及するものと理解され得る。ただし、モジュールは、ハードウェアやファームウェアに実装されたり、プロセッサ読み取り可能な記録可能記憶媒体に記録されたりすることのないソフトウェアと解釈されるべきでない(すなわち、モジュール自体はソフトウェアでない)。なお、モジュールは例示的なものである。モジュールは、各種アプリケーションをサポートするために組み合わせ、統合、分離、および/または複製され得る。また、本明細書において特定のモジュールで実行中であると記載されている機能は、1つまたはそれ以上の他のモジュールで、および/または特定のモジュールで実行され得る機能の代わりに、あるいはその機能に加えて1つまたはそれ以上の他のデバイスによって実行され得る。さらに、モジュールは、互いにローカルであり、かつ/またはリモートである複数のデバイスまたは他の構成要素にまたがって実装され得る。加えて、モジュールは、あるデバイスから移動させて別の装置に追加してもよく、かつ/または両方のデバイスに含まれてもよい。
ディレクトリデータサービス(DDS)キャッシュ管理モジュール312は、キャッシュ管理のうちの1つまたはそれ以上の態様を扱い得る。例えば、DDSキャッシュ管理モジュール312は、TTL設定、TTL範囲、または他のキャッシュ期限パラメータを受信、計算、および/または設定し得る。DDSキャッシュ管理モジュール312は、1つまたはそれ以上のTTLパラメータ、キャッシュエントリの作成時刻、作成時刻からの経過時間、および/または他の要因に基づいてキャッシュエントリを期限切れにする時期を判断し得る。
DDSキャッシュ管理モジュール312は、1つまたはそれ以上の設定および/または検出された状況に基づいてフェイルオーバー挙動を判断し得る。DDSキャッシュ管理モジュール312は、データソースおよび/またはキャッシュ間での優先順位の設定を受信、設定、および/または実施し得る。
ディレクトリデータサービス整合管理モジュール314は、1つまたはそれ以上のデータ整合エラーまたは他のエラーを検出し得る。そして、そのエラーと関連付けられた記録またはアラート通知を提供し得る。例えば、ディレクトリデータサービス整合管理モジュール314は、処理中にデータエラーに遭遇し得る。そしてエラーを記録し、かつ/またはアラートを管理者に提供し得る。検出されたエラーは、非制限的な例として、電子メールアドレスの重複、ユーザー名重複、行方不明または無効な属性データ(例えば、行方不明の電子メールアドレス、無効な電子メールアドレスフォーマット、存在しないエントリを参照しているグループメンバーシップ属性、および下位および上位グループメンバーシップ属性の不整合値)、および循環グループ関係を含み得る。ディレクトリデータサービス整合管理モジュール314は、各種ディレクトリデータと統合し得る。例えば、ディレクトリデータサービス整合管理モジュール314は、LDAPディレクトリ、SQLデータベース、および/またはフラットファイルを格納しているサーバーであり得るディレクトリサーバー140(1)...(N)にアクセスし得る。ディレクトリデータサービス整合管理モジュール314は、電子メールアドレスまたは他のデータを探すディレクトリサーバー(例えばLDAPクエリ)にアクセスし得る。受信したデータに基づいて、ディレクトリデータサービス整合管理モジュール314はデータ整合エラーを検出し得る。受信した電子メールアドレスが単一のデータソースまたは複数のデータソースにおける複数のディレクトリエントリに対応し得るか、あるいはユーザー名が単一のデータソースにおける複数のディレクトリエントリに対応し得る。いくつかの実施形態によれば、データ整合エラーに加えて、ディレクトリデータサービス整合管理モジュール314によって認識される他のエラーは、ディレクトリデータアクセスエラー(例えば、オフラインだったLDAPサーバーからデータを読み出せなかった)、過小データソースキャッシュエラー(例えば、データソースキャッシュまたはキャッシュインデックスが、リクエストされたメモリ内データのすべてを保持できるだけの大きさがないことを示している)、および/またはエンドユーザー設定複製エラー(エンドユーザー設定複製動作が失敗したことを示している)を含み得る。
循環グループ参照は、ディレクトリサーバーがグループメンバーシップを判断するために上から下へとトラバースしているときにディレクトリデータサービス整合管理モジュール314によって認識され得る。例えば、グループAがグループBのメンバーであり、グループBがグループAのメンバーである場合に、ディレクトリデータサービス整合管理モジュール314がこれを検出してエラーを記録し得る。グループの関係は、多数のレベルに深いネスト構造になっていることがあるために、循環グループ参照がいくつか下のレベルで発生し得る。例えば、グループが上位から下位にA〜Eのネスト構造になっていると仮定すると、グループBがグループEのメンバーである可能性があり、循環グループ参照をもたらし得る。いくつかの実施形態によれば、ツリー(すなわちグループ)の特定ノードが以前にアクセスされていると判断し得る再帰的ツリートラバースアルゴリズムが使用され得る。これが循環グループ参照を表し得る。循環グループ参照は、データソース(例えば単一のディレクトリサーバー)で、あるいは複数のデータソースにまたがって検出され得る。グループの解決中に、循環グループ参照が特定および/または記録され得る。1つまたはそれ以上のアラートが生成され得る。
ディレクトリデータサービス整合管理モジュール314は、1つまたはそれ以上のデータ整合エラーまたは他のエラーを記録し得る。そしてアラートが別のメカニズムによって生成され得る。例えば、ディレクトリデータサービス整合管理モジュール314は、ディスク上、あるいは他の電子ストレージにアラートファイルを作成し得る。アラートファイルは、タイムスタンプと、アラート条件のタイプを表す識別子を格納し得る。ネットワークデバイス170上で実行中のプロセスまたはエージェントが、周期的にアラートファイルをポーリングし、アラートメタデータを処理し、1人またはそれ以上のユーザー(例えば、登録されたシステム管理者)にアラート電子メールを送り得る。他の通信チャネルが、SMSテキストメッセージ、ボイスメール、および/またはウェブページ投稿などをユーザーに通知する目的で使用され得る。いくつかの実施形態によれば、ディレクトリデータサービス154は、直接アラートを送ってもよい。1つまたはそれ以上の実施形態によれば、ディレクトリデータサービス整合管理モジュール314または別のプロセス、構成要素、あるいはモジュールが、インターフェースを使用して(例えば、SNMP、Windows System Event、またはカスタムIPC(プロセス間通信)を介して)アラートを送ってもよい。
ディレクトリデータサービス整合管理モジュール314によるデータ整合エラーの検出およびシステム管理者への迅速なアラート通知により、システムの性能低下または故障が起きる前にシステム管理者が問題に対処することを可能にし得る。
ディレクトリデータサービスグループメンバーシップモジュール316は、グループのメンバーを特定するために、ディレクトリサーバーをトラバースし得る。ディレクトリデータサービスグループメンバーシップモジュール316は、上位グループメンバーシップ、下位グループメンバーシップ、またはそれらの両方を解決し得る。
ディレクトリデータサービスグループメンバーシップモジュール316は、効率的なディレクトリデータグループ解決およびキャッシュ管理を可能にし得る。ディレクトリデータサービスグループメンバーシップモジュール316は、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリをトラバースし得る。トラバースは、現在の対象グループから開始され得る。ディレクトリエントリがキャッシュで利用可能な場合には、キャッシュを使用して解析が実行され得る。ディレクトリエントリがキャッシュで利用不可の場合には、ディレクトリサーバーに対する問い合わせが行われる。ディレクトリエントリがディレクトリサーバーから取り出されたら、キャッシュに書き込まれ得る。ディレクトリデータサービスグループメンバーシップモジュール316は、第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出し得る。メンバーが特定された場合、ディレクトリデータサービスグループメンバーシップモジュール316はそのメンバーのマッピングに現在の対象グループを追加し得る。メンバーのマッピングは、そのメンバーと関連付けられた1つまたはそれ以上のグループおよび/または配布リストを示すフラットなデータ構造であり得る。ディレクトリデータサービスグループメンバーシップモジュール316は、第1のディレクトリエントリがさらなるディレクトリエントリ(例えば、現在のディレクトリエントリよりもさらに下の階層レベル)を含むかどうかを判断し得る。ディレクトリデータサービスグループメンバーシップモジュール316は、現在の対象グループが別のメンバー(例えば、さらなるディレクトリサービスエントリに格納されたネスト構造のグループは、対象グループにマップされるメンバーを含む)のマッピングに追加されるかどうかを判断するために、第1のディレクトリエントリ(例えばネスト構造のグループ)に格納されたさらなるディレクトリエントリを読み出し得る。ディレクトリデータサービスグループメンバーシップモジュール316は、現在の対象グループを対象にさらなる階層状のディレクトリデータサービスレベルがトラバースされるかどうか(例えば、対象グループ下に、下方にトラバースしていくさらなる階層レベルが存在するかどうか)を判断し得る。いくつかの実施形態によれば、ディレクトリデータサービスグループメンバーシップモジュール316は、グループメンバーシップマップと関連付けられている特定されたユーザーのリスト、グループメンバーシップマップと関連付けられている特定された配布リストのリスト、および/またはグループメンバーシップマップと関連付けられている特定されたグループのリストをキャッシュし得る。いくつかの実施形態によれば、適用ポリシーが対象グループに適用され、かつ、対象グループに対する1人またはそれ以上のメンバーのマッピングにより、ポリシーを適用することに関わる性能が向上し得る。例えば、ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータが、アプリケーションから受信され得る。特定された対象グループに対するメンバーの1つまたはそれ以上のマッピングが、ポリシーを適用するためのアプリケーションに提供され得る。
いくつかの実施形態によれば、キャッシュされたディレクトリエントリは、グループに対する1つまたはそれ以上のユーザーのマッピングを生成するために、ディレクトリデータサービスによって、およびディレクトリデータサービスクライアントによって同時に使用され得る。
いくつかの実施形態によれば、グループ、配布リスト、および他のキャッシュされたディレクトリエントリは期限が切れ得る。期限切れは、各ディレクトリエントリに割り当てられた別々のランダム値によって判断される期限に基づき得る。ランダム値は、多数の期限切れのエントリが同時にリフレッシュされる必要性が発生してディレクトリサーバーに過剰な負荷がかかる確率を下げるために、ディレクトリエントリの期限を分散し得る。
ディレクトリデータサービスクエリ一般化モジュール318により、ディレクトリサーバーに対するクエリ(例えばLDAPクエリ)が、クエリフィルタトークンまたは他のメカニズムを使用して様々なディレクトリデータエイリアスを一致させることができ得る。クエリフィルタトークンとエイリアスとの一致については、図8と関連させて、以下でさらに詳述されている。
エラー記録およびレポートモジュール318は、ディレクトリデータの解決に関連するログ、レポート、または他の情報を生成し得る。
図4を参照すると、本開示の一実施形態にかかるディレクトリデータを解決するための方法400が示されている。ブロック402で、最上位グループのリストが読み出され得る。本開示で先に定めたとおり、「最上位グループ」は対象グループであり得る。
ブロック404で、処理される1つまたはそれ以上の最上位グループが存在するかどうかが判断され得る。リストにおける1つまたはそれ以上の最上位グループが未処理のままである場合には、方法400がブロック408で続行し得る。未処理の最上位グループが存在しない場合には、方法がブロック406で終了し得る。
ブロック408で、最上位グループが、リスト内の電子メールアドレスまたは別のタイプの一意の識別子によって表されているかどうかが判断され得る。最上位グループが電子メールアドレスによって表されている場合には、方法がブロック410で続行し得る。最上位グループが電子メールアドレスによって表されていない場合には、方法がブロック412で続行し得る。
ブロック410で、最上位グループが配布リストであるかどうかが判断され得る。最上位グループが配布リストである場合には、方法がブロック412で続行し得る。最上位グループが配布リストでない場合には、方法がブロック404に戻り得る。
ブロック412で、最上位グループが、グループのリストに追加され、さらなる解決のために処理され得る。
ブロック414で、方法は、解決すべきグループが他にも存在するどうかを判断し得る。解決すべきグループが他にも残っている場合には、方法がブロック416で続行し得る。解決すべきグループがグループのリストに残っていない場合には、方法がブロック404に戻り得る。
ブロック416では、グループメンバーが存在するかどうかを判断するためにグループが解決され得る。グループメンバーが存在する場合には、方法がブロック418で続行し得る。他にグループメンバーが存在しない場合には、方法がブロック414に戻り得る。
ブロック418で、最上位グループが、特定されたグループメンバーのマッピングに追加され得る。
ブロック420で、特定されたグループメンバーは、メンバーがグループ(例えばさらなるネストレベル)であるかどうかを判断するために解析され得る。メンバーがグループである場合には、方法がブロック424で続行し得る。メンバーがグループでない場合には、方法がブロック422で続行し得る。
ブロック422で、特定されたグループメンバーは、ユーザーキャッシュに追加され得るユーザーであり得る。
ブロック424で、方法は、グループメンバーが配布リストまたはグループであるかどうかを判断し得る。グループメンバーが配布リストである場合には、方法がブロック428で続行し得る。メンバーがグループである場合には、方法がブロック426で続行し得る。
ブロック426で、グループがグループキャッシュに加えられ得る。
ブロック428で、配布リストが配布リストキャッシュに追加され得る。
ブロック430で、グループメンバー(すなわち配布リストまたはグループ)が、解決すべきグループのリストに追加され得る(例えば、ネスト構造の配布リストまたはグループを解決するためにもう1度繰り返しを実行する)。方法は、ブロック414で続行し得る。ブロック406で、解決すべき最上位グループが他に残っていない場合には、グループ解決プロセスが終了し得る。
図5を参照すると、本開示の一実施形態にかかるディレクトリデータ解決モジュールの構成要素を表すブロック図が示されている。図示のとおり、ホスト502(例えばゲートウェイ機器)は、キャッシュ506、データアクセス層508、メンバーシップマップビルドタスク510、ビルドタスクスケジューラ512、およびAPIウェブサービス514を格納し得るディレクトリデータモジュール504を格納し得る。APIウェブサービス514およびメンバーシップマップビルドタスク510は、キャッシュ506およびデータアクセス層508に同時にアクセスし得る。データアクセス層508は、ディレクトリサーバー518へのアクセスを提供し得る。メンバーシップマップビルドタスク510は、キャッシュ506およびデータアクセス層508との1つまたはそれ以上のインタフェースをビルドタスクスケジューラ512に提供し得る。APIウェブサービス514は、キャッシュ506およびデータアクセス層508との1つまたはそれ以上のインタフェースをディレクトリデータサービスクライアント516に提供して得る。
図6A、図6B、および図6Cを参照すると、本開示の一実施形態にかかるディレクトリデータ構造が示されている。例示的実施形態によれば、ディレクトリデータサービスグループ解決モジュールに対象グループが提供され得る。図6Bに示すとおり、例示的な対象グループは、「group1」および「dlist2」を含み得る。図6Aに示すドメイン階層の最上位レベルから下へと進み、要素602は「group1」を格納するものとして特定され、要素604は「dlist2」を格納しているものとして特定されている。「Group1」は、図6Cの要素612によって示されたグループキャッシュに追加される。「Dlist2」は、図6Cの要素610によって示された配布リストキャッシュに追加される。これらの最上位レベルグループは、メンバー、グループ、および配布リストを特定するために、さらに解決される。要素602の「group1」を解決することにより、メンバー「user1」および「user2」が特定される。これらのユーザーは、図6Cの要素608で示されたユーザーキャッシュに追加される。これらのユーザーは、対象グループ「group1」の一部であることから、メンバーシップマップ614における「group1」にマッピングされる。要素604の「dlist2」を解決することにより、メンバー「dlist1」およびメンバー「user3」が特定される。「Dlist1」は、図6Cの要素610によって示された配布リストキャッシュに追加される。「user3」は、図6Cの要素608で示されたユーザーキャッシュに追加される。「Dlist1」およびメンバー「user3」は、対象グループ「dlist2」の一部であり、メンバーシップマップ614における「dlist2」にマッピングされる。「Dlist1」はさらに解決され、メンバー「user1」および「user2」を特定する。これらのメンバーは、グループキャッシュにすでに存在する。図示のとおり、図6Bの対象グループリストに該当せず、そのために、トラバースされることも、キャッシュされることも、メンバーシップマップキャッシュをビルドするためのプロセスの一部としてメンバーシップマップ614に追加されることもないグループおよび配布リストが、他にもいくつか存在する。
図7は、本開示の一実施形態にかかるディレクトリデータサービスキャッシュアクセスを示す流れ図を表す。図示のとおり、いくつかの実施形態によれば、LDAPルックアップおよびメンバーシップマップのビルドプロセスは、LDAPサーバーから読み出されるだけであり得る(すなわち、書き込みアクセスは許可されない)。LDAPクエリを実行するディレクトリデータサービスクライアントが、どのグループのメンバーでもないユーザーを解決するために、LDAPサーバーに問い合わせ得る。LDAPクエリを実行するディレクトリデータサービスクライアントは、1つまたはそれ以上のグループのメンバーであるユーザーを解決するために、ディレクトリデータサービスキャッシュに問い合わせ得る。タスクスケジューラによってスケジューリングされた最初のメンバーシップマップのビルドが、LDAPサーバーから読み出され、取り出されたLDAPデータをディレクトリデータサービスキャッシュに書き込み得る。キャッシュエントリの期限が切れているか、あるいは存在しない場合には、以降のメンバーシップマップのビルドがLDAPサーバーから読み出され、取り出されたLDAPデータをディレクトリデータサービスキャッシュに書き込み得る。ディレクトリエントリがキャッシュに存在し、期限が切れていない場合には、以降のメンバーシップマップのビルドがディレクトリデータサービスキャッシュから読み出され得る。
図8は、本開示の一実施形態にかかる、クエリフィルタトークンを使用してディレクトリエントリを一致させる方法を示す。いくつかの実施形態によれば、ディレクトリサーバーへの問い合わせ時に、クエリフィルタトークンが使用され得る。クエリフィルタトークンにより、トークンが、対応するパラメータトークンの実行時に代用されるクエリにおいて、パラメータのプレースホルダとして動作できる可能性がある。例えば、クエリフィルタトークンは以下を含み得る。
%sトークンは、完全電子メールアドレスを問い合わせるクエリにおけるプレースホルダであり得る。%uトークンは、電子メールアドレスのローカル部分を問い合わせるクエリにおけるプレースホルダであり得る。%dトークンは、電子メールアドレスのドメイン部分を問い合わせるクエリにおけるプレースホルダであり得る。%nトークンは、完全名を問い合わせるクエリにおけるプレースホルダであり得る。完全名は、電子メールアドレスのローカル部を取り出し、ピリオドおよびアンダースコアをスペースに置き換えることによって導出され得る。
1つまたはそれ以上のタイプのメールサーバーの管理者は、「メール」属性値に加え、自身の名前および/または名字、あるいはそれらのいくつかの組み合わせに基づいて、自身のサーバーを、ユーザーの電子メールも受け入れるように構成し得る。
想定するエントリ例:
dn: CN=John Bigboote, O=sfdom1
givenname: John
objectclass: dominoPerson
uid: JBigboote_uid
uid: JBigboote_uid2@eng.symantec.com
mail: john.bigboote.mail@eng.symantec.com
cn: John Bigboote
sn: Bigboote
eng.symantec.comおよびaliasdomain.comのメールを受信するように構成されたメールサーバーは、以下のうちの1つまたはそれ以上を無効な受信者と認識するように構成され得る。
john@aliasdomain.com
john@eng.symantec.com
bigboote@aliasdomain.com
bigboote@eng.symantec.com
jbigboote_uid@aliasdomain.com
jbigboote_uid@eng.symantec.com
jbigboote_uid2@eng.symantec.com
john.bigboote.mail@eng.symantec.com
john.bigboote.mail@aliasdomain.com
john.bigboote@aliasdomain.com
john.bigboote@eng.symantec.com
john_bigboote@aliasdomain.com
john_bigboote@eng.symantec.com
メールサーバー管理者は、これらのエイリアス(例えば、「メール」属性値をユーザーの唯一の配送可能なアドレスとみなすなど)をサポートしないように自身のサーバーを構成し得るので、自身のディレクトリサーバークエリを、これらの各種アドレス形態を包含あるいは除外するように構成することも可能であり得る。大規模なメールサーバー展開では、「uid」および「メール」属性値だけを配送可能なアドレスとして使用し得る。かかる構成は、上記実施例に続いて、以下のアドレスをサポートする。
jbigboote_uid@aliasdomain.com
jbigboote_uid@eng.symantec.com
jbigboote_uid2@eng.symantec.com
john.bigboote.mail@eng.symantec.com
john.bigboote.mail@aliasdomain.com
いくつかの実施形態によれば、これらのうちの1つまたはそれ以上を捕捉する目的でクエリフィルタが使用され得る。
(|(mail=%s)(uid=%s)(uid=%u))
管理者がユーザーの完全名へのエイリアス化を許容するようにしている場合には、クエリを以下のように変更することができる。
(|(mail=%s)(uid=%s)(uid=%u)(cn=%n))
なお、ここでは、電子メールアドレスのローカル部におけるピリオドまたはアンダーラインを表すホワイトスペースの代用となり得る%nトークンが使用され、その結果、john.bigboote@eng.symantec.comまたはjohn_bigboote@eng.symantec.comは(cn=john bigboote)となる。
管理者が、ユーザーの名前および名字へのエイリアス化も許容している場合には、クエリが以下のように変更され得る。
(|(mail=%s)(uid=%s)(uid=%u)(cn=%n)(givenName=%u)(sn=%u))
名前および名字のエイリアス化が許容されていると、同じ名前および/または名字を有する2つ以上のユーザーエントリ間で名前空間の「衝突」が発生する可能性がはるかに高まり得る。たとえば、仮想的なディレクトリサーバーが次のようなエントリも格納している場合、
dn: CN=John Whorfin, O=sfdom1
givenname: John

cn: John Whorfin
sn: Whorfin
受信者を一意に特定できないというテキストメッセージを伴う5xxエラーをSMTPクライアントに返すことにより、SMTPサーバー自体がjohn@aliasdomain.comへの配送試行を扱い得る。ディレクトリデータサービスLDAPクエリが2つのエントリ(givenName=john)を返し得るので、この状況は、上記のデータ整合エラーとして扱われ得る。
図8に示すとおり、例示的な完全なアドレス、電子メールアドレスのローカル部分、対応する完全名、および例示的なクエリが、要素802に表されている。例示的なディレクトリエントリが、要素806に表されている。ディレクトリサーバーによっては(例えばIBM Lotus Domino)、ディレクトリエントリの複数の電子メールエイリアスをサポートするものもある。要素804に示すとおり、要素806に列記されているディレクトリエントリに対して、複数の電子メールエイリアスがサポートされ得る。要素808および810に示すとおり、「john_smith@domain.com」の電子メールアドレスの妥当性を検証するためにクエリが受信された場合には、トークン%sおよび%uを使用したディレクトリサーバークエリがディレクトリエントリを見つけることはない。ただし、要素812および814に表すとおり、完全名で問い合わせるために%nトークンが使用された場合には、一致が見つかり得る。%nトークンは、電子メールアドレスのローカル部におけるピリオドまたはアンダースコアをスペースで置き換えて、問い合わせ用の完全名を導出する。
この時点で、上記の本開示にかかるディレクトリサーバーを統合が、ある程度までの入力データの処理と出力データの生成とを概して含むということに注意すべきである。この入力データ処理および出力データ生成は、ハードウェアまたはソフトウェアで実施され得る。例えば、上記の本開示にかかるディレクトリサーバー統合と関連付けられた機能を実行するために、ディレクトリデータサービス、または同様の回路あるいは関連する回路で、特定の電子構成要素が用いられ得る。あるいは、命令に従って動作する1つまたはそれ以上のプロセッサが、上記の本開示にかかるディレクトリサーバーを統合と関連付けられた機能を実行し得る。このような場合、かかる命令が1つまたはそれ以上のプロセッサ読み取り可能な記憶媒体(例えば、磁気ディスクまたは他の記憶媒体)に記憶され得るか、あるいは1つまたはそれ以上の搬送波に組み入れられた1つまたはそれ以上の信号を介して1つまたはそれ以上のプロセッサに送信され得ることは、本開示の範囲内である。
本開示は、本明細書に記載されている具体的な実施形態によって範囲が制限されるものではない。実際、上記の記載内容および添付の図面から、本明細書に記載されている実施形態に加え、本開示の他の各種実施形態および変型例が当業者にとって明らかであろう。そのため、かかる他の実施形態および変型例は、本開示の範囲内に収まるものと意図される。さらに、本開示について、特定の目的のための特定の環境における特定の実施態様という文脈で本明細書に記載してきたが、当業者であれば、その有用性がそれに制限されず、本開示が任意の数の目的のために任意の数の環境で有益に実施され得ることを認識するであろう。したがって、以下に述べる請求項は、本明細書に記載されている本開示の全幅および精神を鑑みて解釈されるべきである。

Claims (15)

  1. ディレクトリデータを解決するための方法であって、
    ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信することと、
    プロセッサを使用して、階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリを、現在の対象グループに対応するディレクトリエントリからトラバースすることと、
    前記第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出すことと、
    メンバーが前記第1のディレクトリエントリに格納されている場合に、前記現在の対象グループを前記メンバーのマッピングに追加することと、
    前記第1のディレクトリエントリがさらなるディレクトリエントリを格納しているかどうかを判断することと、
    前記第1のディレクトリエントリにさらなるディレクトリエントリが格納されている場合に、前記現在の対象グループが別のメンバーのマッピングに追加されるかどうか、およびさらなる階層状のディレクトリデータレベルが前記現在の対象グループを対象にトラバースされるかどうかを判断するために、前記さらなるディレクトリエントリを読み出すことと、
    を含む、方法。
  2. 前記1つまたはそれ以上のディレクトリエントリが、ユーザー、グループ、および配布リストのうちの少なくとも1つを含む、請求項1に記載の方法。
  3. 第2の対象グループの階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリのトラバースを繰り返すことをさらに含む、請求項1に記載の方法。
  4. グループメンバーシップマップと関連付けられている特定されたユーザーのリストをキャッシュすることをさらに含む、請求項1に記載の方法。
  5. グループメンバーシップマップと関連付けられている特定された配布リストのリストをキャッシュすることをさらに含む、請求項1に記載の方法。
  6. グループメンバーシップマップと関連付けられている特定されたグループのリストをキャッシュすることをさらに含む、請求項1に記載の方法。
  7. ポリシーが対象グループに適用され、対象グループに対する1人またはそれ以上のメンバーのマッピングにより、ポリシーを適用することに関わる性能が向上する、請求項1に記載の方法。
  8. キャッシュでディレクトリエントリが利用可能である場合に、前記キャッシュを使用して解析が実行され、キャッシュでディレクトリエントリが利用できない場合には、前記ディレクトリサーバーに対して問い合わせが行われ得る、請求項1に記載の方法。
  9. ディレクトリエントリの期限が切れていると、キャッシュで前記ディレクトリエントリが利用できない、請求項8に記載の方法。
  10. キャッシュ内のディレクトリエントリは、各ディレクトリエントリに割り当てられた別々のランダム値によって判断される期限に基づいて期限が切れ、前記ランダム値が、ある時点でキャッシュ内の期限切れのディレクトリエントリをリフレッシュするために必要な負荷を減らすために、前記キャッシュされたディレクトリエントリの期限を分散させる、請求項8に記載の方法。
  11. ディレクトリサーバーの1つまたはそれ以上の対象グループを特定する前記データがアプリケーションから受信され、かつ対象グループに対する少なくとも1つのメンバーのマッピングが、ポリシーを適用するためアプリケーションに提供される、請求項1に記載の方法。
  12. トラバース中、階層状のディレクトリデータに格納された前記1つまたはそれ以上のディレクトリエントリにおける循環グループ関係を特定することと、
    前記循環グループ関係と関連付けられたデータ統合エラー情報を格納しているアラートを前記管理者に提供することと、
    をさらに含む、請求項1に記載の方法。
  13. 前記ディレクトリサーバーが利用不可であると判断することと、
    ディレクトリデータを解決するために前記期限切れの対応ディレクトリエントリを使用することと、
    をさらに含む、請求項9に記載の方法。
  14. キャッシュされたディレクトリエントリが、グループに対する1つまたはそれ以上のユーザーのマッピングを生成するために階層状のディレクトリデータをトラバースするプロセスによって、およびディレクトリデータサービスクライアントによって同時に使用されることを可能にする、請求項8に記載の方法。
  15. ディレクトリデータを解決するためのシステムであって、
    ネットワークに通信可能に連結された1つまたはそれ以上のプロセッサであって、
    ディレクトリサーバーの1つまたはそれ以上の対象グループを特定するデータを受信し、
    階層状のディレクトリデータに格納された1つまたはそれ以上のディレクトリエントリを、現在の対象グループに対応するディレクトリエントリからトラバースし、
    前記第1のディレクトリエントリに格納されたメンバーを特定するために第1のディレクトリエントリを読み出し、
    メンバーが前記第1のディレクトリエントリに格納されている場合に、前記メンバーのマッピングを前記現在の対象グループに追加し、
    前記第1のディレクトリエントリがさらなるディレクトリエントリを格納しているかどうかを判断し、
    前記第1のディレクトリエントリにさらなるディレクトリエントリが格納されている場合に、前記現在の対象グループが別のメンバーのマッピングに追加されるかどうか、およびさらなる階層状のディレクトリデータレベルが前記現在の対象グループを対象にトラバースされるかどうかを判断するために、前記さらなるディレクトリエントリを読み出す
    ように構成されている1つまたはそれ以上のプロセッサを備える、システム。
JP2013508142A 2010-04-27 2011-04-26 ディレクトリデータを解決するための技法 Active JP5675963B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/768,407 2010-04-27
US12/768,407 US8793355B2 (en) 2010-04-27 2010-04-27 Techniques for directory data resolution
PCT/US2011/033863 WO2011137091A1 (en) 2010-04-27 2011-04-26 Techniques for directory data resolution

Publications (2)

Publication Number Publication Date
JP2013530442A true JP2013530442A (ja) 2013-07-25
JP5675963B2 JP5675963B2 (ja) 2015-02-25

Family

ID=44121041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013508142A Active JP5675963B2 (ja) 2010-04-27 2011-04-26 ディレクトリデータを解決するための技法

Country Status (4)

Country Link
US (1) US8793355B2 (ja)
EP (1) EP2564580B1 (ja)
JP (1) JP5675963B2 (ja)
WO (1) WO2011137091A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674138B2 (en) * 2010-10-26 2017-06-06 Red Hat, Inc. Managed LDAP entries
US8671221B2 (en) 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
US9311495B2 (en) * 2010-12-09 2016-04-12 International Business Machines Corporation Method and apparatus for associating data loss protection (DLP) policies with endpoints
US20140032720A1 (en) * 2011-03-01 2014-01-30 Sculpteo Method for Sending Data to a Distant Server, Server, Computer-Readable Medium and Computer Program Related Thereto
US8321408B1 (en) * 2011-06-01 2012-11-27 Infotrax Systems Quick access to hierarchical data via an ordered flat file
US9288670B2 (en) 2013-04-19 2016-03-15 T-Mobile Usa, Inc. Dynamic distribution of authentication sessions
US9552301B2 (en) * 2013-07-15 2017-01-24 Advanced Micro Devices, Inc. Method and apparatus related to cache memory
US10200330B2 (en) 2015-12-10 2019-02-05 Facebook, Inc. Techniques for ephemeral messaging with a message queue
US9906480B2 (en) * 2015-12-10 2018-02-27 Facebook, Inc. Techniques for ephemeral messaging with legacy clients
US11032127B2 (en) * 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
US11210347B2 (en) * 2019-09-17 2021-12-28 Citrix Systems, Inc. Object search with pagination and non-duplicates support
US11379533B2 (en) 2020-01-17 2022-07-05 Microsoft Technology Licensing, Llc Assessing quality of an active directory
US11768767B2 (en) 2021-10-29 2023-09-26 Micro Focus Llc Opaque object caching
US11863426B2 (en) * 2022-02-24 2024-01-02 Juniper Networks, Inc. Determining a best destination over a best path using multifactor path selection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822410A (ja) * 1994-07-05 1996-01-23 Toshiba Corp 分散ディレクトリシステムを実現する情報処理装置及び方法
JPH10124372A (ja) * 1996-10-18 1998-05-15 Nippon Telegr & Teleph Corp <Ntt> 自律キャッシュ制御システム
JP2001350796A (ja) * 2000-06-09 2001-12-21 Hitachi Ltd ディレクトリシステム
JP2006287416A (ja) * 2005-03-31 2006-10-19 Nec Access Technica Ltd アドレス情報取得装置、アドレス情報取得方法およびアドレス情報取得プログラム
JP2009532748A (ja) * 2005-04-14 2009-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698160B2 (en) * 1999-05-07 2010-04-13 Virtualagility, Inc System for performing collaborative tasks
US6708170B1 (en) * 1999-12-14 2004-03-16 International Business Machines Corporation Method and system for usage of non-local data within a lightweight directory access protocol directory environment
US6529953B1 (en) * 1999-12-17 2003-03-04 Reliable Network Solutions Scalable computer network resource monitoring and location system
US8161081B2 (en) * 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US7302433B2 (en) * 2001-07-20 2007-11-27 Compulaw, Llc. Method and apparatus for updating rules and transmitting change notifications
US8635221B2 (en) * 2002-12-20 2014-01-21 International Business Machines Corporation Method, system, and program product for managing access to data items in a database
US20070100830A1 (en) * 2005-10-20 2007-05-03 Ganesha Beedubail Method and apparatus for access control list (ACL) binding in a data processing system
US20090055374A1 (en) * 2007-08-20 2009-02-26 Cisco Technology, Inc. Method and apparatus for generating search keys based on profile information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822410A (ja) * 1994-07-05 1996-01-23 Toshiba Corp 分散ディレクトリシステムを実現する情報処理装置及び方法
JPH10124372A (ja) * 1996-10-18 1998-05-15 Nippon Telegr & Teleph Corp <Ntt> 自律キャッシュ制御システム
JP2001350796A (ja) * 2000-06-09 2001-12-21 Hitachi Ltd ディレクトリシステム
JP2006287416A (ja) * 2005-03-31 2006-10-19 Nec Access Technica Ltd アドレス情報取得装置、アドレス情報取得方法およびアドレス情報取得プログラム
JP2009532748A (ja) * 2005-04-14 2009-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200300735017; 井上 恭輔: 'アプリケーション管理者救済講座 最終回' INTEROP MAGAZINE 第11巻第5号通巻113号, 20010501, p.162-165, ソフトバンクパブリッシング株式会社 *
CSND200401404010; 安井 卓: 'はじめて学ぶLinuxカーネル' 日経Linux 第6巻第3号通巻54号, 20040308, p.101-107, 日経BP社 *
JPN6014033262; 井上 恭輔: 'アプリケーション管理者救済講座 最終回' INTEROP MAGAZINE 第11巻第5号通巻113号, 20010501, p.162-165, ソフトバンクパブリッシング株式会社 *
JPN6014033264; 安井 卓: 'はじめて学ぶLinuxカーネル' 日経Linux 第6巻第3号通巻54号, 20040308, p.101-107, 日経BP社 *

Also Published As

Publication number Publication date
US8793355B2 (en) 2014-07-29
WO2011137091A1 (en) 2011-11-03
EP2564580A1 (en) 2013-03-06
EP2564580B1 (en) 2018-08-15
JP5675963B2 (ja) 2015-02-25
US20110264781A1 (en) 2011-10-27

Similar Documents

Publication Publication Date Title
JP5675963B2 (ja) ディレクトリデータを解決するための技法
JP5726290B2 (ja) ディレクトリサーバーを統合するための技法
US11895188B2 (en) Distributed storage system with web services client interface
US10652076B2 (en) Dynamic application instance discovery and state management within a distributed system
US7571168B2 (en) Asynchronous file replication and migration in a storage network
US20230367494A1 (en) Reseeding a mediator of a cross-site storage solution
US20230205638A1 (en) Active-active storage system and data processing method thereof
US12095851B2 (en) Domain name system based global server load balancing service

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

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: 20141202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141224

R150 Certificate of patent or registration of utility model

Ref document number: 5675963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250