專利名稱:基于ldap協(xié)議的客戶端與服務(wù)器的交互方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域中的輕量級(jí)目錄訪問協(xié)議(Lightweight Directory Access Protocol,簡稱為LDAP),具體i也,涉及基于4圣量 級(jí)目錄訪問協(xié)議的客戶端與服務(wù)器的交互方法及系統(tǒng)。
背景技術(shù):
輕量級(jí)目錄訪問協(xié)議(Lightweight Directory Access Protocol, 簡稱為LDAP)是用于訪問目錄服務(wù)的一個(gè)標(biāo)準(zhǔn)的,可擴(kuò)展的互聯(lián) 網(wǎng)協(xié)議,該協(xié)議部分基于X.500標(biāo)準(zhǔn),但其更簡單,更精煉,可擴(kuò) 展性更好。
本文涉及的LDAP協(xié)議的概念包括
(1)目錄(Directory),存力欠對(duì)象的信息,這些信息以某種順 序組織,用于詳細(xì)描述每個(gè)對(duì)象;
(2 )目錄4言息4對(duì)(Directory Information Tree,簡稱為DIT ), 其中,目錄條目的集合構(gòu)成了目錄信息樹。
(3)條目(Entry),是目錄信息樹中的一個(gè)結(jié)點(diǎn),是對(duì)象信息 的集合,也是目錄信息中最基本的單位,包含對(duì)象的一系列屬性。
5(4)屬性(Attribute),用于描述對(duì)象的特征, 一個(gè)屬性包4舌 屬性類型(type)和一個(gè)或多個(gè)屬性值。
圖1示出了簡化的DI丁結(jié)構(gòu)。如圖1所示,該DIT有三層,第 一層為DIT的根,表示中國C二CN;第二層的兩個(gè)條目表示兩家公 司O二XXX和OYYY;第三層的左邊四個(gè)條目表示XXX公司有四 個(gè)職員,分別是Zhang、 Wang、 Li、 Cheng。各條目之具體屬性未 列出。
為了和服務(wù)器端交互,完成DIT的存儲(chǔ)和訪問,LDAP客戶端 需要包含應(yīng)用部分和LDAP適酉己層,兩者以LDAP API ( Application Programming Interface,應(yīng)用禾呈序4妄口 )為沖妾口,如圖2所示。LDAP 適配層提供標(biāo)準(zhǔn)的API接口的實(shí)現(xiàn),LDAP客戶端調(diào)用API接口完 成對(duì)LDAP月良務(wù)器的訪問。
在RFC1823中定義了 C i吾言形式的訪問LDAP月良務(wù)器的API 4妄口。 LDAP客戶端與月l務(wù)器端基本的交互流程包括(l)建立連 接;(2)綁定和權(quán)限認(rèn)證;(3 )客戶端發(fā)起增刪查改操作;(4)客 戶端檢查服務(wù)器端的響應(yīng)結(jié)果;(5)客戶端發(fā)起后續(xù)操作;(6)客 戶端關(guān)閉連4妄。
以下主要描述與本發(fā)明相關(guān)的第(3)步和第(4)步??蛻舳?發(fā)起增刪查改二操作,可以Y吏用同步調(diào)用"^口或者異步調(diào)用接口。以 下主要描述RFC1823對(duì)異步調(diào)用接口的定義。(為了便于描述,以 ldap—add 4妄口為例,ldap—modify和ldap—delete可以相同處理) ldap—add接口定義如下
int ldap—add( LDAP *ld, char *dn, LDAPMod *attrs[]);
客戶端調(diào)用此接口后,會(huì)得到一個(gè)整形的返回值,我們稱之為 消息序列號(hào)msgid。由于是異步調(diào)用,因此需要客戶端定時(shí)調(diào)用LDAP_Result接口檢查服務(wù)器端返回的結(jié)果。LDAP_Result接口定 義如下
int ldap—result(
LDAP *ld, int msgid, int all, struct timeval *timeout, LDAPMessage **res
);
其中,msgid入?yún)⒓礊榍懊嬲{(diào)用LDAP—ADD的返回Y直。 LDAP—Result接口用戶4全查服務(wù)器端是否已經(jīng)返回了對(duì)應(yīng)msgid的 響應(yīng)。
以圖1所示DIT為例,為了增加XXX公司的"Zhang"和"Wang" 兩個(gè)職員,需要進(jìn)行如圖3所示的客戶端調(diào)用流程。從圖3所示的 調(diào)用過程可以看出,LDAP—Result被調(diào)用了兩次。如果需要增加 XXX公司的所有員工(即,四名員工),則LDAP—Result會(huì)被調(diào)用 四次。LDAP_Result的每次調(diào)用,都會(huì)有一個(gè)短暫的延時(shí),此延時(shí) 時(shí)間由 struct timeval *timeout入?yún)⒍x??梢钥闯觯L口果 LDAP—Result調(diào)用次數(shù)過多,就會(huì)影響LDAP客戶端的處理性能。
因此,為了提高LDAP客戶端的處理性能,需要一種能夠解決 LDAP—Result的調(diào)用次數(shù)過多的問題的技術(shù)方案。
發(fā)明內(nèi)容
考慮到相關(guān)4支術(shù)中存在的對(duì)于LDAP—Result的調(diào)用次凄t過多, 即,客戶端檢查服務(wù)器是否返回對(duì)其請(qǐng)求的響應(yīng)的次數(shù)過多的問題
7而4是出本發(fā)明,為此,本發(fā)明旨在提供一種基于輕量級(jí)目錄訪問協(xié) 議的客戶端與服務(wù)器的交互方法及系統(tǒng),用以解決上述問題。
才艮據(jù)本發(fā)明的一個(gè)方面,提供了一種基于輕量級(jí)目錄訪問協(xié)i義 的客戶端與服務(wù)器的交互方法,用于客戶端在與服務(wù)器建立連接并 進(jìn)行綁定和權(quán)限認(rèn)證后,對(duì)目錄信息樹中的條目進(jìn)行操作。
根據(jù)本發(fā)明實(shí)施例的基于輕量級(jí)目錄訪問協(xié)議的客戶端與服務(wù)
器的交互方法包括以下處理客戶端先后向服務(wù)器發(fā)送多個(gè)操作條 目請(qǐng)求;服務(wù)器異步處理上述的多個(gè)操作條目請(qǐng)求,并向客戶端返 回各個(gè)操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;客戶端查找其緩沖區(qū),以判 斷服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果。
其中,多個(gè)操作條目請(qǐng)求中的每個(gè)操作條目請(qǐng)求都具有唯一的 標(biāo)識(shí)號(hào),且與操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果也具有與其相同的標(biāo)識(shí)
其中,客戶端查找其緩沖區(qū),以判斷服務(wù)器是否返回了與操作 條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果的操作具體為對(duì)于每個(gè)搡作條目請(qǐng)求,
客戶端根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)在緩沖區(qū)中進(jìn)行查找,并將查找 到的與操作條目請(qǐng)求具有相同標(biāo)識(shí)號(hào)的請(qǐng)求結(jié)果作為操作條目請(qǐng)求 的請(qǐng)求結(jié)果。
其中,在判斷服務(wù)器返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果
的情況下,客戶端將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層;業(yè)務(wù)層分別根據(jù)
操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng)請(qǐng)求結(jié)果。
其中,客戶端在定時(shí)器的控制下定時(shí)查找緩沖區(qū)。
基于此,上述方法進(jìn)一步包括在判斷服務(wù)器沒有返回所有操 作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果的情況下,客戶端再次查找緩沖區(qū),直到服務(wù)器返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;客戶端將所有 請(qǐng)求結(jié)果返回到業(yè)務(wù)層;業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查 找其對(duì)應(yīng)請(qǐng)求結(jié)果。
或者,預(yù)先設(shè)置有查找定時(shí)器;在判斷服務(wù)器沒有返回所有操 作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果的情況下,如果查找定時(shí)器沒有超時(shí),
則客戶端再次查找緩沖區(qū);如果在查找定時(shí)器超時(shí)之前服務(wù)器返回 了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果,則客戶端將所有請(qǐng)求結(jié)果返 回到業(yè)務(wù)層;業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng)請(qǐng) 求結(jié)果;如果在查找定時(shí)器超時(shí)時(shí)服務(wù)器沒有返回所有操作條目請(qǐng) 求對(duì)應(yīng)的請(qǐng)求結(jié)果,則客戶端向業(yè)務(wù)層返回失敗消息。
其中,操作條目請(qǐng)求用于請(qǐng)求對(duì)條目進(jìn)行如下操作中的一種 增加、刪除、纟,改。
才艮據(jù)本發(fā)明的另 一方面,提供了 一種基于LDAP協(xié)議的客戶端 與服務(wù)器的交互系統(tǒng),用于客戶端在與服務(wù)器建立連接并進(jìn)行綁定 和權(quán)限認(rèn)證后,對(duì)目錄信息樹中的條目進(jìn)行操作。
該系統(tǒng)包括發(fā)送模塊,位于客戶端,用于先后向服務(wù)器發(fā)送 多個(gè)操作條目請(qǐng)求;處理模塊,位于服務(wù)器端,用于異步處理來自 客戶端的多個(gè)操作條目請(qǐng)求,并向客戶端返回各個(gè)操作條目請(qǐng)求對(duì) 應(yīng)的請(qǐng)求結(jié)果;緩沖區(qū),位于客戶端,用于緩存來自服務(wù)器的請(qǐng)求 結(jié)果;查找模塊,用于在發(fā)送模塊發(fā)送了多個(gè)操作條目請(qǐng)求之后, 查找緩沖區(qū),以判斷服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng) 求結(jié)果。
優(yōu)選地,該系統(tǒng)進(jìn)一步包括數(shù)組單元,用于容納查找模塊查 找到的服務(wù)器返回的所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;第一定時(shí)器,用于控制查找模塊查找緩沖區(qū)的周期;第二定時(shí)器,用于控制
查找模塊查找緩沖區(qū)的時(shí)長。
通過本發(fā)明提供的上述技術(shù)方案,通過調(diào)整客戶端發(fā)送條目操
作請(qǐng)求的次序,相比于現(xiàn)有才支術(shù),解決了相關(guān)纟支術(shù)中LDAP一Result 的調(diào)用次凄t過多的問題,乂人而可以才是高LDAP客戶端的處理性能。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部 分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的 限制。在附圖中
圖1是4艮據(jù)相關(guān)4支術(shù)的LDAP的DIT的示意圖2是根據(jù)相關(guān)技術(shù)的支持目錄訪問的軟件體系結(jié)構(gòu)的示意
圖3是根據(jù)相關(guān)技術(shù)的LDAP客戶端調(diào)用過程的流程圖4是才艮據(jù)本發(fā)明的基于LDAP的客戶端與服務(wù)器的交互方法 的流程圖5是根據(jù)本發(fā)明實(shí)施例的LDAP客戶端調(diào)用過程的流程圖6是根據(jù)本發(fā)明實(shí)施例的基于LDAP的客戶端與服務(wù)器的交 互系統(tǒng)的結(jié)構(gòu)^f匡圖。
10
具體實(shí)施例方式
如上所述,在目前采用的LDAP客戶端與力l務(wù)器的交互流程中, 具體地,在客戶端發(fā)起增刪查改操作及檢查服務(wù)器端的響應(yīng)結(jié)果的 處理中,LDAP—Result調(diào)用次數(shù)過多。通過圖3的流程可以更好地 反映該問題。
如圖3所示,目前,LDAP客戶端向服務(wù)器端增加條目的流程 (以增加條目為例,同樣適用于i奮改和刪除條目),包括以下步-銀
步驟301, LDAP客戶端調(diào)用ldap—add接口,向服務(wù)器端異步 發(fā)送增加條目請(qǐng)求(增加職員Zhang),該操作請(qǐng)求以msgid-l標(biāo)示; LDAP客戶端獲得控制權(quán),但是此時(shí)不知道增加條目操作是否成功;
步驟302-a, LDAP服務(wù)器端處理增加條目請(qǐng)求,并將處理結(jié)果 返回給LDAP客戶端,以msgid=l標(biāo)示響應(yīng)結(jié)果,該響應(yīng)結(jié)果^皮暫 時(shí)保存在LDAP客戶端的緩存區(qū)中;
步驟302-b, LDAP客戶端定時(shí)調(diào)用ldap—resul"妄口 , 4企查本地 緩沖區(qū)是否得到服務(wù)器端返回的對(duì)應(yīng)msgicNl的響應(yīng);如杲得到響 應(yīng),則纟艮據(jù)響應(yīng)結(jié)果進(jìn)行后續(xù)處理;(此處々l/沒為增加成功)
步驟303, LDAP客戶端調(diào)用ldap—add接口 ,向服務(wù)器端異步 發(fā)送增加條目請(qǐng)求(增加職員Wang ),該操:作i青求以msgid=2標(biāo)示; LDAP客戶端獲得控制權(quán),但是此時(shí)不知道增加條目操作是否成功;
步驟304-a, LDAP服務(wù)器端處理增加條目請(qǐng)求,并將處理結(jié)果 返回鄉(xiāng)合LDAP客戶端,以msgid=2標(biāo)示響應(yīng)結(jié)果,該響應(yīng)結(jié)果^皮暫 時(shí)保存在LDAP客戶端的緩存區(qū)中;步驟304-b, LDAP客戶端定時(shí)調(diào)用ldapjesult接口 ,檢查本地 緩沖區(qū)是否得到服務(wù)器端返回的對(duì)應(yīng)msgid=2的響應(yīng)。如果得到響 應(yīng),則才艮據(jù)響應(yīng)結(jié)果進(jìn)行后續(xù)處理(此處假設(shè)為增加成功)。
如上所述,如果LDAP—Result調(diào)用次數(shù)過多,就會(huì)影響LDAP 客戶端的處理性能。鑒于此,本發(fā)明^是供了一種基于LDAP協(xié)議的 客戶端與服務(wù)器交互方法,用于客戶端在與服務(wù)器建立連接并進(jìn)行 綁定和權(quán)限認(rèn)證后,對(duì)DIT中的條目進(jìn)行才喿作,其通過擴(kuò)展 LDAP—Result接口參數(shù)定義來解決上述需要多次調(diào)用的問題。
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行iJt明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本 發(fā)明。
方法實(shí)施例
如圖4所示,根據(jù)本發(fā)明實(shí)施例的基于LDAP協(xié)議的客戶端與 服務(wù)器交互方法包括以下處理
步驟S402,客戶端先后向服務(wù)器發(fā)送多個(gè)操作條目請(qǐng)求;其中, 操作條目請(qǐng)求用于請(qǐng)求對(duì)條目進(jìn)行如下操作中的一種增加、刪除、 修改等;
步驟S404,服務(wù)器異步處理上述的多個(gè)操作條目請(qǐng)求,并對(duì)客 戶端啦文出響應(yīng),即,向客戶端返回各個(gè)4喿作條目"i青求只寸應(yīng)的i青求結(jié) 果;
步驟S406,客戶端查找其緩沖區(qū),以判斷服務(wù)器是否返回了所 有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果。其中,上述多個(gè)操作條目請(qǐng)求中的每個(gè)操作條目請(qǐng)求都具有"舉 一的標(biāo)識(shí)號(hào),并且與操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果也具有與其相同 的標(biāo)識(shí)號(hào)。這樣,對(duì)于每個(gè)操作條目請(qǐng)求,客戶端可以根據(jù)操作條 目請(qǐng)求的標(biāo)識(shí)號(hào)在緩沖區(qū)中進(jìn)行查找,并將查找到的與操作條目請(qǐng) 求具有相同標(biāo)識(shí)號(hào)的請(qǐng)求結(jié)果作為操作條目請(qǐng)求的請(qǐng)求結(jié)果。
具體地,上述方法可以如下實(shí)現(xiàn)(1 )擴(kuò)展LDAP—Result *接口 為LDAP—Resul伍x,包4舌將入?yún)sgid定義為多^f直入?yún)?,比i口變 長凄t纟且int msgid[],并殺斤i曽參凄t msgnum表示需要才企查的msgid凄t 量;將入?yún)es定義為變長數(shù)組LDAPMessage **res[]; (2) LDAP—Resul伍x實(shí)現(xiàn)邏輯定義為,根據(jù)變長數(shù)組msgid[]中每一個(gè) msgid (即,上述的標(biāo)識(shí)號(hào)),在客戶端緩沖區(qū)中尋找是否已經(jīng)返回 了響應(yīng)。
客戶端在定時(shí)器的控制下定時(shí)查找緩沖區(qū),即,定時(shí)查找。
一方面,在判斷服務(wù)器返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié) 果的情況下,客戶端將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層;業(yè)務(wù)層分別才艮 據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng)請(qǐng)求結(jié)果。
另 一 方面,在判斷服務(wù)器沒有返回所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng) 求結(jié)果的情況下,客戶端再次查找緩沖區(qū),直到服務(wù)器返回了所有 操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;然后將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層; 業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng)請(qǐng)求結(jié)果。
或者,可以預(yù)先設(shè)置有查找定時(shí)器;在判斷服務(wù)器沒有返回所 有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果的情況下,如果查找定時(shí)器沒有超 時(shí),則客戶端再次查找緩沖區(qū);如果在查找定時(shí)器超時(shí)之前服務(wù)器 返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果,則客戶端將所有請(qǐng)求結(jié) 果返回到業(yè)務(wù)層;業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng)請(qǐng)求結(jié)果;如果在查找定時(shí)器超時(shí)時(shí)服務(wù)器沒有返回所有操作條
目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果,則客戶端向業(yè)務(wù)層返回失敗消息。
該過程可以通過如下方式實(shí)現(xiàn)如果服務(wù)器已經(jīng)返回響應(yīng),則 將響應(yīng)結(jié)果(即,請(qǐng)求結(jié)果)填寫到對(duì)應(yīng)res數(shù)組中;如果msgnum 個(gè)請(qǐng)求都從緩沖區(qū)中找到響應(yīng),則返回成功;否則重復(fù)查找緩沖區(qū), 直到失見定的timeout時(shí)間到,如果timeout時(shí)間到時(shí)還沒有全部返回 msgnum個(gè)請(qǐng)求的響應(yīng),則客戶端返回超時(shí)錯(cuò)-溪。
基于上述內(nèi)容,以下給出了本發(fā)明的一個(gè)優(yōu)選實(shí)施例。該實(shí)施 例的具體實(shí)現(xiàn)過程如下
(1 ) LDAP客戶端對(duì)于DIT樹中同層的多個(gè)Entry做增/刪/改 時(shí),采用異步調(diào)用方式,發(fā)送操作請(qǐng)求;并記錄每個(gè)請(qǐng)求的序列號(hào) msgid;
(2 ) LDAP服務(wù)器端對(duì)于LDAP客戶端發(fā)送的多個(gè)操作請(qǐng)求, 并發(fā)執(zhí)行,并將每個(gè)請(qǐng)求結(jié)果以各自對(duì)應(yīng)的請(qǐng)求的msgid為標(biāo)識(shí), 異步返回給LDAP客戶端;
(3 ) LDAP客戶端提供緩沖區(qū),緩存服務(wù)器端返回的多個(gè)操作 i青i^的口向應(yīng);
(4) 業(yè)務(wù)層調(diào)用LDAP—Resul伍x, 一企查各才乘4乍i青求的響應(yīng)結(jié) 果,在入?yún)⒅兄付ㄐ枰獧z查的一個(gè)和多個(gè)操作請(qǐng)求,以msgid為各 請(qǐng)求的標(biāo)識(shí);
(5) LDAP客戶端利用LDAP—ResultiEx入?yún)⒅兄付ǖ膍sgid 數(shù)組,在緩沖區(qū)中查找各自對(duì)應(yīng)的響應(yīng)是否存在;如果所有的響應(yīng) 均返回,貝'J LDAP客戶端;t真寫res 組,并返回業(yè)務(wù)層
14LDAP—ResultiEx調(diào)用結(jié)果;否則,LDAP客戶端重復(fù)沖企查緩沖區(qū), 直到超時(shí)或者所有響應(yīng)均返回。
(6 )業(yè)務(wù)層沖企查res數(shù)組,根據(jù)msgid識(shí)別對(duì)應(yīng)每個(gè)操作請(qǐng)求 的響應(yīng)結(jié)果。
結(jié)合上述實(shí)施例,本發(fā)明進(jìn)一步給出了以下的實(shí)現(xiàn)實(shí)例,圖4 示出了該實(shí)例的流程圖。通過對(duì)比圖5和圖3所示的流程,可以更 好;也理解本發(fā)明。
參照?qǐng)D5并結(jié)合圖1,當(dāng)LDAP客戶端向服務(wù)器請(qǐng)求對(duì)條目 Zhang、 Wang進(jìn)行添加(刪除或查改的過程于此類似)操作時(shí),進(jìn) 4亍:^下處理
步驟501, LDAP客戶端調(diào)用ldap—add接口,向服務(wù)器端異步 發(fā)送增加條目i青求(增加職員Zhang ),該才喿作_清求以msgid=l標(biāo)識(shí); LDAP客戶端獲得控制權(quán),但是此時(shí)不知道增加條目操作是否成功;
步驟502, LDAP客戶端調(diào)用ldap—add接口 ,向服務(wù)器端異步 發(fā)送增加條目請(qǐng)求(增加職員Wang),該操作請(qǐng)求以msgid-2標(biāo)識(shí); LDAP客戶端獲得控制權(quán),但是此時(shí)不知道增加條目操作是否成功;
步驟503-a, LDAP月良務(wù)器端對(duì)LDAP客戶端發(fā)送的兩個(gè)操作 請(qǐng)求,并發(fā)沖丸4亍,并將每個(gè)請(qǐng)求結(jié)果以各自的msgid ( 1和2 )為標(biāo) 示,異步返回給LDAP客戶端;
步驟503-b, LDAP客戶端利用LDAP—ResultiEx入?yún)⒅兄付ǖ?msgid #:組在1£沖區(qū)中查找各自對(duì)應(yīng)的響應(yīng)是否存在;如果所有的 響應(yīng)均返回,LDAP客戶端i真寫res凄t組,并返回業(yè)務(wù)層 LDAP—ResultEx調(diào)用結(jié)果;否則LDAP客戶端重復(fù)4企查緩沖區(qū),直 到超時(shí)或者所有響應(yīng)均返回。通過對(duì)比圖5和圖3可以看出,借助于本發(fā)明的技術(shù)方案,減 少了調(diào)用LDAP—Result的次凄t。
系統(tǒng)實(shí)施例
才艮據(jù)本發(fā)明實(shí)施例,還提供了 一種基于LDAP協(xié)議的客戶端與 服務(wù)器的交互系統(tǒng),用于客戶端在與服務(wù)器建立連接并進(jìn)行綁定和 權(quán)限認(rèn)證后,對(duì)目錄信息樹中的條目進(jìn)行操作。
如圖6所示,該系統(tǒng)包括發(fā)送才莫塊602,位于客戶端,用于 先后向服務(wù)器發(fā)送多個(gè)操作條目請(qǐng)求,例如,可以調(diào)用ldap—add接 口;處理才莫塊604,位于月良務(wù)器端,用于異步處理來自客戶端的多 個(gè)操作條目請(qǐng)求,并向客戶端返回各個(gè)操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié) 果;緩沖區(qū)606,位于客戶端,用于緩存來自服務(wù)器的請(qǐng)求結(jié)果; 查找模塊608,用于在發(fā)送模塊發(fā)送了多個(gè)操作條目請(qǐng)求之后,查 找緩沖區(qū),以判斷服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求 結(jié)果,例如,可以調(diào)用ldap—result 4妄口 。
優(yōu)選地,如圖6中的虛線框所示,該系統(tǒng)進(jìn)一步包括數(shù)組單 元610,用于容納查找模塊查找到的服務(wù)器返回的所有操作條目請(qǐng) 求對(duì)應(yīng)的請(qǐng)求結(jié)果;第一定時(shí)器612,用于控制查找模塊查找緩沖 區(qū)的周期;第二定時(shí)器614,用于控制查找模塊查找緩沖區(qū)的時(shí)長 (timeout),即,查找模塊可以在第一定時(shí)器的控制下定時(shí)查找緩 沖區(qū),并且可以在第二定時(shí)器超時(shí)時(shí),不再對(duì)緩沖區(qū)進(jìn)行查找。
該裝置中細(xì)節(jié)可以參照上述方法實(shí)施例中的描述來理解和實(shí) 施,在此省略了對(duì)相同或相似內(nèi)容的重復(fù)描述。
綜上,借助于本發(fā)明,通過擴(kuò)展LDAP—Result接口參數(shù)定義, 解決了相關(guān)技術(shù)中存在的對(duì)LDAP—Result的調(diào)用次數(shù)過多地問題, 從而提高了 LDAP客戶端的處理性能。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種基于輕量級(jí)目錄訪問協(xié)議的客戶端與服務(wù)器的交互方法,用于客戶端在與服務(wù)器建立連接并進(jìn)行綁定和權(quán)限認(rèn)證后,對(duì)目錄信息樹中的條目進(jìn)行操作,其特征在于,包括所述客戶端先后向所述服務(wù)器發(fā)送多個(gè)操作條目請(qǐng)求;所述服務(wù)器異步處理所述多個(gè)操作條目請(qǐng)求,并向所述客戶端返回各個(gè)操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;所述客戶端查找其緩沖區(qū),以判斷所述服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個(gè)操作條目 請(qǐng)求中的每個(gè)操作條目請(qǐng)求都具有唯一的標(biāo)識(shí)號(hào),且與操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果也具有與其相同的標(biāo)識(shí)號(hào)。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述客戶端查找其 緩沖區(qū),以判斷所述服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng) 的請(qǐng)求結(jié)果的操作具體為對(duì)于每個(gè)操作條目請(qǐng)求,所述客戶端根據(jù)所述操作條目請(qǐng) 求的標(biāo)識(shí)號(hào)在所述緩沖區(qū)中進(jìn)行查找,并將查找到的具有與所 述操作條目請(qǐng)求相同標(biāo)識(shí)號(hào)的請(qǐng)求結(jié)果作為所述操作條目請(qǐng) 求的請(qǐng)求結(jié)果。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括在判斷所述服務(wù)器返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求 結(jié)果的情況下,所述客戶端將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層;所述業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng) 請(qǐng)求結(jié)果。
5. 才艮據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端在定時(shí)器的控制下定時(shí)查找所述緩沖區(qū)。
6. 才艮據(jù)權(quán)利要求5所述的方法,其特征在于,進(jìn)一步包4舌在判斷所述服務(wù)器沒有返回所有^t乘作條目請(qǐng)求對(duì)應(yīng)的請(qǐng) 求結(jié)果的情況下,所述客戶端再次查找所述緩沖區(qū),直到所述 服務(wù)器返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;所述客戶端將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層;所述業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查找其對(duì)應(yīng) 請(qǐng)求結(jié)果。
7. 根據(jù)權(quán)利要求5所述的方法,其特征在于,進(jìn)一步包括預(yù)先設(shè)置有查找定時(shí)器;在判斷所述服務(wù)器沒有返回所有4喿作條目請(qǐng)求對(duì)應(yīng)的請(qǐng) 求結(jié)果的情況下,如果所述查找定時(shí)器沒有超時(shí),則所述客戶 端再次查找所述緩沖區(qū);如果在所述查找定時(shí)器超時(shí)之前所述"l務(wù)器返回了所有 操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果,則所述客戶端將所有請(qǐng)求結(jié)果 返回到業(yè)務(wù)層;所述業(yè)務(wù)層分別根據(jù)操作條目請(qǐng)求的標(biāo)識(shí)號(hào)查 找其對(duì)應(yīng)請(qǐng)求結(jié)果;如果在所述查找定時(shí)器超時(shí)時(shí)所述服務(wù)器沒有返回所有 操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果,則所述客戶端向所述業(yè)務(wù)層返 回失敗消息。
8. 根據(jù)權(quán)利要求4、 5、或7所述的方法,其特征在于,所述客 戶端將所有請(qǐng)求結(jié)果返回到業(yè)務(wù)層的操作具體為所述客戶端將所述所有請(qǐng)求結(jié)果填寫到長度可變的結(jié)果 ^t組中返回到所述業(yè)務(wù)層。
9. 根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的方法,其特征在于,所述 操作條目請(qǐng)求用于請(qǐng)求對(duì)所述條目進(jìn)行如下操作中的一種增 力口、冊(cè)J除、{奮 文。
10. —種基于輕量級(jí)目錄訪問協(xié)議的客戶端與月良務(wù)器的交互系統(tǒng), 用于客戶端在與服務(wù)器建立連接并進(jìn)行綁定和權(quán)限認(rèn)證后,對(duì) 目錄信息樹中的條目進(jìn)行操作,其特征在于,所述系統(tǒng)包括發(fā)送模塊,位于客戶端,用于先后向所述服務(wù)器發(fā)送多個(gè) 操作條目請(qǐng)求;處理模塊,位于服務(wù)器端,用于異步處理來自客戶端的多 個(gè)才乘作條目請(qǐng)求,并向所述客戶端返回各個(gè)才喿作條目請(qǐng)求對(duì)應(yīng) 的請(qǐng)求結(jié)果;緩沖區(qū),位于客戶端,用于緩存來自所述服務(wù)器的請(qǐng)求結(jié)果;查找模塊,用于在所述發(fā)送模塊發(fā)送了所述多個(gè)操作條目 請(qǐng)求之后,查找所述緩沖區(qū),以判斷所述服務(wù)器是否返回了所 有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果。
11. 根據(jù)權(quán)利要求IO所述的系統(tǒng),其特征在于,進(jìn)一步包括數(shù)組單元,用于容納所述查找模塊查找到的所述服務(wù)器返 回的所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;第 一定時(shí)器,用于控制所述查找模塊查找所述緩沖區(qū)的周期;第二定時(shí)器,用于控制所述查找模塊查找所述緩沖區(qū)的時(shí)長。
全文摘要
本發(fā)明公開了一種基于輕量級(jí)目錄訪問協(xié)議的客戶端與服務(wù)器的交互方法及系統(tǒng),在上述方法中客戶端先后向服務(wù)器發(fā)送多個(gè)操作條目請(qǐng)求;服務(wù)器異步處理上述的多個(gè)操作條目請(qǐng)求,并向客戶端返回各個(gè)操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果;客戶端查找其緩沖區(qū),以判斷服務(wù)器是否返回了所有操作條目請(qǐng)求對(duì)應(yīng)的請(qǐng)求結(jié)果。通過本發(fā)明,解決了相關(guān)技術(shù)中LDAP_Result的調(diào)用次數(shù)過多的問題,從而可以提高LDAP客戶端的處理性能。
文檔編號(hào)H04L29/06GK101447981SQ20081008985
公開日2009年6月3日 申請(qǐng)日期2008年4月3日 優(yōu)先權(quán)日2008年4月3日
發(fā)明者昂衛(wèi)武 申請(qǐng)人:中興通訊股份有限公司