(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5744717
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月8日
(54)【発明の名称】ディレクトリへのアクセスのための方法及びデバイス
(51)【国際特許分類】
G06F 9/46 20060101AFI20150618BHJP
G06F 12/00 20060101ALI20150618BHJP
【FI】
G06F9/46 430
G06F12/00 545A
【請求項の数】9
【全頁数】10
(21)【出願番号】特願2011-502239(P2011-502239)
(86)(22)【出願日】2008年4月4日
(65)【公表番号】特表2011-520169(P2011-520169A)
(43)【公表日】2011年7月14日
(86)【国際出願番号】EP2008054102
(87)【国際公開番号】WO2009121417
(87)【国際公開日】20091008
【審査請求日】2011年3月24日
【審判番号】不服2013-18398(P2013-18398/J1)
【審判請求日】2013年9月24日
(73)【特許権者】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エル エム エリクソン(パブル)
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134474
【弁理士】
【氏名又は名称】坂田 恭弘
(72)【発明者】
【氏名】アグノニ, フランセスコ
(72)【発明者】
【氏名】イオベネ, マッシモ
(72)【発明者】
【氏名】ピカロ, ピエトロ
(72)【発明者】
【氏名】ルカリニ, ルカ
(72)【発明者】
【氏名】ニールセン, カレン
(72)【発明者】
【氏名】マティオリ, アレサンドロ
【合議体】
【審判長】
山崎 達也
【審判官】
辻本 泰隆
【審判官】
小林 大介
(56)【参考文献】
【文献】
特開2006−351044(JP,A)
【文献】
特開平4−160665(JP,A)
【文献】
特開2003−67356(JP,A)
【文献】
特開2001−84198(JP,A)
【文献】
特開平11−110216(JP,A)
【文献】
特開2005−293407(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F9/46-9/54
G06F12/00
(57)【特許請求の範囲】
【請求項1】
アプリケーション(410)によってディレクトリ内の情報にアクセスするための方法であって、
関数ライブラリ(412)が、サーバから前記情報をフェッチするための前記アプリケーションからの第1の要求を処理し、
前記第1の要求が、クライアントモジュール(414)によって前記関数ライブラリ(412)から前記サーバへ転送され、
前記方法は更に、
前記第1の要求が前記サーバへ転送される際に、前記関数ライブラリから前記アプリケーションへ要求識別子(420)を送信するステップと、
前記アプリケーションによって、前記第1の要求に対する前記サーバからの応答信号(422)であって、応答識別子を含む応答信号(422)を、前記関数ライブラリを介さずに受信するステップと、
前記第1の要求に対して前記応答信号(422)を照合するために、前記応答識別子と前記要求識別子とを比較するステップと、
前記アプリケーションによって、前記関数ライブラリから前記応答信号をデコードするための関数を呼び出すステップ(424)と、
前記関数ライブラリから前記アプリケーションへ前記デコードされた応答信号を返すステップ(426)と、
を含む
ことを特徴とする方法。
【請求項2】
前記アプリケーション(410)は、前記要求識別子と前記第1の要求との関連付けを格納し、
前記関連付けは、前記第1の要求に対して前記応答信号を照合するために使用される
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記関数ライブラリ(412)は、前記アプリケーションからの更なる要求の非同期処理のための少なくとも1つの関数を含む
ことを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記応答信号(422)は、前記アプリケーションの信号キューの中に受信される
ことを特徴とする請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記ディレクトリは、複数のエントリを含み、エントリは属性の集合を含む
ことを特徴とする請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記ディレクトリは複数のサーバに亘って分散している
ことを特徴とする請求項1乃至5のいずれか1項に記載の方法。
【請求項7】
前記要求識別子は、前記クライアントモジュール(518)から前記サーバへ送信され、
前記応答信号(422)の中の前記応答識別子は、前記要求識別子である
ことを特徴とする請求項1乃至6のいずれか1項に記載の方法。
【請求項8】
ディレクトリ内の情報にアクセスするためのデバイスであって、
情報の第1の要求をサーバへ送信するように構成される少なくとも1つのアプリケーション(100)を実行するように構成される処理ユニット(502)と、
前記アプリケーションからの前記第1の要求を処理するための少なくとも1つの関数を含む関数ライブラリユニット(510)と、
前記アプリケーションから前記サーバへ前記第1の要求を転送するクライアントモジュール(518)と、
を備え、
前記関数ライブラリユニット(510)は、
前記第1の要求に対して要求識別子を割り当てる手段(512)と、
前記サーバへの前記第1の要求が転送される際に前記要求識別子を前記アプリケーションへ転送するように構成されるインタフェース(516)と、
前記第1の要求に対する、前記処理ユニット(502)によって受信される応答信号をデコードする、デコーダ(514)と、
を備え、
前記処理ユニット(502)は、
応答識別子を含む応答信号を、前記関数ライブラリユニットを介さずに前記サーバから受信するように構成されるインタフェース(508)と、
前記要求識別子を格納するメモリ(506)と、
前記第1の要求に対する前記応答信号を照合するために、前記応答識別子と前記要求識別子とを比較するように構成される比較ユニット(504)と、
を備える
ことを特徴とするデバイス。
【請求項9】
デバイスの処理システムにロードされると当該デバイスに請求項1乃至7のいずれか1項に記載の方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、請求項1のプリアンブルに従う方法に関する。本発明を具現化したデバイス及びソフトウェアプログラムも説明される。
【背景技術】
【0002】
ディレクトリは、論理的且つ階層的な方法で組織されたオブジェクトのセットである。ディレクトリの一般的な例は電話帳(テレフォンディレクトリ)であり、これは、アルファベット順に組織された、例えば人又は組織の一連の名前から構成され、各名前には、住所及び電話番号が添付されている。データが階層的なツリー様の構造で表現されるという事実に起因して、ディレクトリは、エントリのツリーとして見なされ、また、ディレクトリ情報ツリー又は単にディレクトリツリーとしても見なされる。ディレクトリ内のデータは、ディレクトリサービスによって管理可能である。
【0003】
Lightweight Directory Access Protocol(LDAP)のようなアプリケーションプログラムを利用して、ディレクトリにおける修正及びクエリ(問合せ)を実行することができる。LDAPは、一般的にTCP/IPとして知られているTransmission Control Protocol(TCP)及びInternet Protocol(IP)上で動作する、ディレクトリサービスのプロトコルである。LDAPは、クライアント−サーバ・モデルに基づいており、クライアントはLDAPサーバに対してTCP接続を行い、TCP接続上で、要求を送信し応答を受信する。1以上のLDAPサーバが、LDAPディレクトリを成すデータを含む。分散ディレクトリの場合、クライアントがどのLDAPサーバに接続しているかに関わらず、クライアントはディレクトリに関する同一のビューを持つ。即ち、或るLDAPサーバに対して提示される名前は、別のLDAPサーバ上にあるかもしれない同一のエントリを参照する。
【0004】
LDAPディレクトリサービスモデルは、エントリに基づく。エントリは属性の集合であり、この集合は、識別名(distinguished name)と呼ばれる名前を持ち、この名前はエントリを一意に参照する。エントリの属性の各々は、タイプと1以上の値とを持つ。タイプは一般的に、コモンネームに対する”cn”やEメールアドレスに対する”mail”のような、ニーモニック文字列である。値は、属性タイプに依存する。LDAPにおいて、ディレクトリのエントリは、階層的なツリー様の構造に整理され、この構造は、例えば地理上の又は組織上の境界を反映することができる。
【0005】
LDAPは、ディレクトリに対する問い合わせ及び更新のための動作を規定する。例えば、ディレクトリに対してエントリを追加及び削除するための動作、既存のエントリを変更するための動作、及びエントリの名前を変更するための動作が提供される。LDAPは、ディレクトリ内の情報を検索するために最もよく利用される。LDAPの検索動作により、ディレクトリの一部から、検索フィルタによって指定される基準に合致するエントリを検索することができる。次いで、基準に合致するエントリから情報を要求することができる。
【0006】
"The C LDAP Application Program Interface, draft-ietf-ldapext-ldap-c-api-05.txt, 2000"に記載されている、LDAPクライアントのソースコードのインタフェースの仕様は、LDAPアプリケーション・プログラム・インタフェース(API)上に2種類の動作を規定しており、2グループの関数呼び出し(それぞれ、「非同期」関数呼び出し、及び「同期」関数呼び出しと名付けられている)のプロビジョニングによって説明される。同期関数呼び出しは、ディレクトリに対して要求を行うアプリケーション(例えば、コンピュータプログラム)をブロックし、LDAPサーバが要求に対してサービス提供して結果を返すまでそのアプリケーションに制御を戻さない(リターンしない)。他方、非同期関数は、LDAPクライアントが要求を処理するとすぐにアプリケーションに制御を戻し、そして、アプリケーションは自分の動作を継続することができる。
【0007】
短時間に多数の要求を処理しなければならないアプリケーションが存在する。通信アプリケーションの例では、多数の検索要求に対してサービス提供しなければならない場合が存在する。同期関数及び非同期関数の動作は共に、そのような場合に、要求されるスループットを達成することができないので、問題がある。この2種類の関数のどちらが利用される場合であっても、次の要求が送信可能になるためにはその前に、最初に各要求の処理が、プロセスにおいてアクティブな全てのプロトコルレイヤ(LDAP,TCP/IP)によって完了される必要があるので、要求されるスループットを達成できないことが発生する。非同期の場合は更に、サーバから来る要求であってフェッチする必要がある要求がいつ存在するかを判定するためのチェックを、アプリケーションが定期的に実行する必要がある。
【発明の概要】
【0008】
本発明の目的は、上述の欠点を除去し、ディレクトリにアクセスするための有利な方法を提供することである。
【0009】
本発明によれば、請求項1に記載の方法が実行される。更に、本発明は、更なる独立請求項に記載のデバイス及びプログラムに具現化される。本発明の諸実施形態は、従属請求項に記載される。
【0010】
アプリケーションによってディレクトリ内の情報にアクセスするための方法が提案される。関数ライブラリが、サーバから前記情報をフェッチするための前記アプリケーションからの第1の要求を処理する。前記第1の要求が、クライアントモジュールによって前記関数ライブラリから前記サーバへ転送される。更に、前記第1の要求が前記サーバへ転送される際に、前記関数ライブラリから前記アプリケーション及び前記サーバへ要求識別子が送信される。前記アプリケーションによって行われた前記第1の要求に対する前記サーバからの応答信号が受信される。前記応答信号は、前記クライアントによって前記サーバへ送信された前記要求識別子と同一の応答識別子を含む。次いで、前記第1の要求に対して前記応答を照合するために前記応答識別子がチェックされ、前記アプリケーションは、前記応答信号をデコードするために前記関数ライブラリから関数を呼び出す。最後に、前記関数ライブラリから前記アプリケーションへ前記デコードされた応答信号が返される。
【0011】
更に、本発明は、ディレクトリ内の情報にアクセスするためのデバイスに具現化することができる。前記デバイスは、少なくとも1つのアプリケーションを実行し情報の第1の要求をサーバへ送信するように構成される処理ユニットと、前記アプリケーションからの前記第1の要求を処理するための少なくとも1つの関数を含む関数ライブラリユニットと、を備える。前記デバイスは更に、前記アプリケーションから前記サーバへ前記第1の要求を転送するクライアントモジュールを備える。前記関数ライブラリユニットは更に、前記第1の要求に対して要求識別子を割り当てる手段と、前記サーバへの前記第1の要求が転送される際に前記要求識別子を前記アプリケーションへ転送するように構成されるインタフェースと、前記第1の要求に対する、前記処理ユニットによって受信される応答信号をデコードする、デコーダと、を備える。前記処理ユニットは、応答識別子を含む応答信号を前記サーバから受信するように構成されるインタフェースと、前記要求識別子を格納するメモリと、前記第1の要求に対する前記応答信号を照合するために、前記応答識別子と前記要求識別子とを比較するように構成される比較ユニットと、を備える。
【0012】
本発明の方法はプログラムに具現化することも可能であり、このプログラムは例えば、信号のシーケンスとして、データキャリア(担持体)に格納したり、デバイスの処理システムにロードしたりすることができる。
【0013】
提案される方法及びデバイスにより、大量の検索要求に対してサービス提供する際の低い性能を回避して、ディレクトリに対する有利なアクセスを行うことが可能になる。
【0014】
本発明の前述の、及びその他の目的、特徴、及び利点は、添付の図面に示されるような好適な実施形態に関する以下の説明において、一層明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】LDAPクライアントに関する高レベルの描写を示す。
【
図2a】先行技術のLDAPクライアントにおける同期動作モードを示す。
【
図2b】先行技術のLDAPクライアントにおける非同期動作モードを示す。
【
図3】ブロッキング非同期対話(interaction)のシグナリング図を示す。
【
図4】非ブロッキング非同期対話のシグナリング図を示す。
【
図5】提案される方法を実行するように構成されるデバイスを示す。
【発明を実施するための形態】
【0016】
以下では、LDAPへの応用に言及して本発明を説明する。しかしながら、提案される方法はLDAPには限定されず、他のディレクトリアクセスプロトコルにおいても利用可能である。
【0017】
図1は、LDAPクライアントのアーキテクチャに関する高レベルの描写を示す。1以上のアプリケーション100(例えば、コンピュータプログラム)は、LDAPプロトコルのメカニズムを実装するLDAPクライアントモジュール104と通信する。LDAPクライアントモジュールは、アプリケーションに代わってリモートサーバと更に通信するために、TCP/IPスタック106と通信する。アプリケーションは、LDAP機能の一部としてアプリケーションに備えられているLDAPユーザライブラリ102という手段を介して、LDAPクライアントモジュールと通信する。LDAPユーザライブラリは、LDAPサービスを開発し実装するために使用されるサブプログラムの集合である。LDAP APIにより、アプリケーションとLDAPクライアントモジュールとの間の通信のための関数呼び出しを提供するLDAPユーザライブラリに対するアクセスが可能になる。
【0018】
図2aは、先行技術のLDAPクライアント200における同期動作モードの高レベルのビューを示す。同期動作では、ディレクトリに対して要求204を行うアプリケーションは、LDAPサーバ202が要求に対してサービス提供して結果206を返すまで、更なる動作ができないようにブロックされる。その後、アプリケーションの更なる動作が再開される。これが意味することは、以前の要求に対してサービス提供されて結果がアプリケーションに対して返されるまで、アプリケーションは別のタスクを実行したり更にリクエストを送信したりするためにステップn+1に進むことができないということである。
【0019】
図2bは、先行技術のLDAPクライアント200における非同期動作モードの概要を示す。非同期動作では、LDAPサーバ202が要求を処理するとすぐに、非同期関数はアプリケーションの更なる動作を許可する。このようにして、要求がLDAPサーバへ送信(212)されるとすぐに、アプリケーションは更なるステップn+mへと継続して別のタスクを実行することができる。応答214を受信するために、アプリケーションは、サーバから応答が到着したか否かを判定するための定期的なチェックを実行する必要がある。
【0020】
図3は、非同期動作モードの動作に関するシグナリング図を示す。アプリケーション310は、ユーザライブラリ312の中の非同期関数を呼び出す(316)。次にライブラリは、信号318を割り当て、LDAPクライアントモジュール314に対して要求を送信する。要求が送信されると、ライブラリは、アプリケーションからの更なる要求をブロックする(324)。要求の処理が終了すると、サーバからLDAPクライアントモジュールへと応答信号が送信され、LDAPクライアントモジュールは更に、応答信号320をライブラリへ送信する。応答信号はライブラリによってデコードされ(326)、続いて、関数呼び出しのリターン322によって動作の結果がアプリケーションに返される。その間、アプリケーションはブロックされる。この理由により、ここに記載されるモードはブロッキング非同期動作モードと呼ばれ、関数はブロッキング非同期関数と呼ばれる。
【0021】
上述のいずれのモードにおいても、要求を行うアプリケーションは、以前の要求に対してサービス提供されるまで新たな要求を送信することができない。しかしながら、同期動作ではアプリケーションは更なるタスクを実行できないようにブロックされるのに対して非同期動作ではアプリケーションは自由に更なるタスクを実行できるので、2つの動作モード間には相違点が存在する。いずれの動作モードでも以前の要求に対してサービス提供されるまでは更なる要求を送信できないという事実は、多数の要求に対してサービス提供するというニーズが存在する場合に制約をもたらす。例えば通信アプリケーションにおいて短時間に多くの要求に対してサービス提供する必要がある場合のLDAP機能を可能にするために、新しいグループの非ブロッキングの真に非同期の関数呼び出しを提案する。これはLDAPクライアントの非同期動作モードにおいて使用される非同期関数呼び出しに基づいており、フェッチする必要のある結果がサーバから来た時を判定するためのチェックを定期的に実行する必要がない。提案される関数呼び出しにより、以前の要求に対してサービス提供される前にアプリケーションが更なる要求を行うことが可能になる。先行技術に見られる非同期動作モードと比べて、より多くの数の要求に対してサービス提供することができる。
【0022】
提案される非ブロッキング非同期対話モードの動作の実施形態を
図4のシグナリング図に示す。アプリケーション410は、ユーザライブラリ412の中の非ブロッキング非同期関数を呼び出す(416)ことにより、要求を行う。次にユーザライブラリ412は信号418を割り当て、LDAPクライアントモジュール414に対して要求識別子と共に要求を送信する。関数呼び出しは、要求識別子を伴ってアプリケーションへ返される(420)。この要求識別子は、LDAPクライアントモジュールからサーバへも送信される。要求識別子は、ユーザライブラリからLDAPクライアントモジュールへ送信される要求の同定を提供し、特定の要求に関する情報(例えば、LDAPクライアントとの通信セッションに対する要求の関係)を含むことができる。LDAPサーバは、アプリケーションによって行われた要求を処理した後に、応答識別子と共に応答信号をLDAPクライアントへ送信し、LDAPクライアントは更に応答信号422をアプリケーションへ送信する。応答信号は、アプリケーションによって行われた要求に対する回答を含む。応答識別子は、クライアントモジュールによってサーバへ送信された要求識別子と同一である。アプリケーションが信号キューの中に応答信号を受信する場合に特に、アプリケーションは、フェッチする必要のある結果がサーバから来た時を判定するためのチェックを定期的に実行する必要がない。信号キューは、アプリケーションが対話するプロセスからアプリケーションが受信する信号にとっての入力点である。応答信号は、アプリケーションの信号処理コードによって処理される。信号処理コードは、応答信号を分析し、これを解釈しようとする。応答信号の分析及び解釈により、アプリケーションは、応答信号をLDAPクライアントモジュールとの対話に関係するものとして認識することができる。例えば、要求識別子は、この関係を認識するために利用可能である。識別子は、LDAPクライアントを起源とする信号を意味するラベルを含むことができる。LDAPサーバから来る信号は全てエンコードされているので、アプリケーションはその内容を読むことができない。この理由により、アプリケーションは、信号の内容をデコードする(432)ために、LDAPユーザライブラリの関数を呼び出す(424)。これに続いて、ライブラリは動作の結果をアプリケーションに返す(426)。この結果は、アプリケーションによって行われた要求に対する返答である。
【0023】
一実施形態では、アプリケーションによって行われた要求とアプリケーションに対して返される対応する要求識別子との関連付けを、アプリケーションによって格納する(428)ことができる。関連付けは、LDAPサーバから送信された応答をアプリケーションによって行われた要求と照合する(430)ために使用可能である。
【0024】
他の実施形態では、LDAP関数ライブラリは、アプリケーションによって行われる更なる要求の非ブロッキング非同期処理を可能にする関数を含む。
【0025】
本発明は、上述の方法の何らかの実施形態を実行するように構成可能なデバイス500に具現化することもできる。そのようなデバイスの実施形態を
図5に示す。このデバイスは、処理ユニット502を備える。処理ユニット502は、通信インタフェース508経由でサーバに対して情報の要求を送信するアプリケーションを実行するように構成される。処理ユニット502は、応答識別子を伴う応答信号をサーバから受信するようにも構成される。処理ユニットは、要求識別子を格納するように構成されるメモリ506、及び、比較器504も備える。比較器504は、格納されている要求識別子を受信した応答識別子と比較することにより、アプリケーションによって行われた要求に対して応答を照合するように構成される。
【0026】
デバイスは、アプリケーションからの情報要求に対してサービス提供するための関数を処理ユニットに提供するように構成される、関数ライブラリユニット510も備える。関数ライブラリは、処理ユニットから受信した要求に対して要求識別子を割り当てるように構成される割り当てユニット512も含む。処理ユニットとの通信は、通信インタフェース516経由で実行される。デコーダ514は、処理ユニットから関数ライブラリへ転送される応答信号をデコードするように構成される。エンコードされた応答信号は、線520によって示すように、アプリケーションによって行われた要求に対する、処理ユニット502へ転送される応答である。
【0027】
デバイスは、アプリケーションからの要求をサーバへ転送し、サーバからの応答を関数ライブラリユニット又は処理ユニットへ送信するように構成される、LDAPクライアントモジュール518も備える。
【0028】
処理ユニット、関数ライブラリユニット、クライアントモジュール、及びサーバの間の通信は、矢印522によって示される。
【0029】
上述のデバイスのエレメントは、ハードウェア、ソフトウェア、又はこれらの任意の組み合わせにより、実装可能である。
【0030】
上述の実施形態は、本発明の目的を立派に達成する。しかしながら、理解されるであろうこととして、当業者は、本発明の範囲から逸脱すること無しに変更を行うことができる。本発明の範囲は、請求項によってのみ限定される。