欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

復(fù)制目錄修改的方法和裝置的制作方法

文檔序號:6557672閱讀:160來源:國知局
專利名稱:復(fù)制目錄修改的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理,并尤其涉及用于復(fù)制(replicate)目錄的修改的方法、系統(tǒng)和產(chǎn)品。
背景技術(shù)
目錄服務(wù)例如LDAP服務(wù)或X.500服務(wù)是計算機(jī)實現(xiàn)的數(shù)據(jù)存儲和檢索方法?!甃DAP’指示輕量級目錄訪問協(xié)議,這是一組用于訪問信息目錄的協(xié)議。X.500是用于目錄結(jié)構(gòu)的ISO和ITU標(biāo)準(zhǔn)。X.500目錄是具有用于信息的每個范疇例如國家、州和城市的不同層次的層次結(jié)構(gòu)即樹結(jié)構(gòu)。LDAP是基于X.500標(biāo)準(zhǔn)的,但是簡單很多。并且與X.500不同,LDAP支持TCP/IP,這是用于面向互聯(lián)網(wǎng)的目錄訪問的重要特征。
目錄服務(wù)是根據(jù)目錄協(xié)議操作的系統(tǒng)。LDAP是協(xié)議或?qū)嶋H上是一組協(xié)議。X.500標(biāo)準(zhǔn)包括目錄訪問協(xié)議。目錄協(xié)議的一般模型是客戶機(jī)之一針對服務(wù)器執(zhí)行協(xié)議操作。在此模型中,客戶機(jī)傳輸協(xié)議請求,該協(xié)議請求向服務(wù)器說明將在目錄上執(zhí)行的操作,即修改、比較、安全綁定等。服務(wù)器然后負(fù)責(zé)在目錄中執(zhí)行該被請求的操作。在操作完成時,服務(wù)器將包含任何結(jié)果或錯誤的響應(yīng)返回給請求客戶機(jī)。另外,目錄協(xié)議通常也允許服務(wù)器將到其他服務(wù)器的轉(zhuǎn)薦(referral)返回給客戶機(jī)。作為對整體系統(tǒng)性能的幫助,這允許服務(wù)器將聯(lián)系其他服務(wù)器以繼續(xù)操作的工作卸載回給客戶機(jī)。
目錄服務(wù)通過利用針對快速讀取優(yōu)化的備份數(shù)據(jù)庫為其目錄樹中的數(shù)據(jù)實現(xiàn)持久性。例如,這種備份數(shù)據(jù)庫可以是例如關(guān)系數(shù)據(jù)庫或BTREE。目錄中的數(shù)據(jù)的層次結(jié)構(gòu)或樹表示為屬性類型-屬性值對。這種結(jié)構(gòu)提供了設(shè)計目錄項時的靈活性。例如,特定的用戶記錄可具有添加的新數(shù)據(jù)類型而不需要重新設(shè)計整個數(shù)據(jù)庫??纱鎯θ魏晤愋偷奈谋净蚨M(jìn)制數(shù)據(jù)。目錄服務(wù)對于相對靜態(tài)的信息例如公司目錄、用戶數(shù)據(jù)、消費(fèi)者數(shù)據(jù)、密碼和安全密鑰(security key)尤其有用。
為了高可用性和可伸縮性,在兩個或多個目錄服務(wù)器中復(fù)制目錄數(shù)據(jù)。目錄可包括大量的數(shù)據(jù),并且每秒可發(fā)生許多對目錄項的更新。副本(replica)可被具有很長延遲的網(wǎng)絡(luò)鏈路分隔開。對大目錄的高數(shù)據(jù)量訪問會很慢。密歇根大學(xué)開發(fā)了被稱為‘獨(dú)立LDAP更新數(shù)據(jù)守護(hù)程序’或‘SLURPD’的早期的目錄復(fù)制的方法,但是SLURPD復(fù)制在慢的網(wǎng)絡(luò)鏈路上非常慢。在2001年3月的由R.Harrison、J.Sermershein和Y.Dong個別提交給因特網(wǎng)工作組的名為draft-rharrison-iburp-03.txt的文件中公開了被稱為‘批量更新/復(fù)制協(xié)議’或‘LBURP’的另一種目錄復(fù)制方法。LBURP將目錄操作分組為束,從而可一次發(fā)送更多操作,而不是復(fù)制單個操作并等待響應(yīng)。但是,LBURP沒有利用處理中的并行性,并且LBURP也引入了額外的網(wǎng)絡(luò)通信量開銷,這是因為每個目錄操作必須具有額外的封裝。

發(fā)明內(nèi)容
公開了這樣的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品,其一般操作以通過并行傳送修改請求來提供目錄復(fù)制而不需要另外封裝請求消息。更具體地,說明了用于復(fù)制目錄的修改的示例性方法、系統(tǒng)和產(chǎn)品,其包括在用于源目錄的源目錄服務(wù)中接收對在源目錄中進(jìn)行修改的請求,并在多個數(shù)據(jù)通信連接上異步并行地將對在副本目錄中進(jìn)行相同修改的請求從源目錄服務(wù)傳輸給用于副本目錄的副本目錄服務(wù)。在典型實施例中,副本目錄可復(fù)制源目錄的子樹,接收修改請求可包括在源目錄服務(wù)中接收對在源目錄內(nèi)的子樹中進(jìn)行修改的請求,并且傳輸請求可包括傳輸對在副本目錄的子樹中進(jìn)行相同修改的請求。
一些實施例可包括識別對相關(guān)串行操作的請求。在這樣的實施例中,傳輸請求可包括在相同數(shù)據(jù)通信連接上傳輸被識別的對相關(guān)串行操作的請求。在這樣的實施例中,對相關(guān)串行操作的請求可包括修改項的模式的請求和隨后的修改該項的請求。對相關(guān)串行操作的請求可包括對創(chuàng)建或移動具有子項的項的請求和隨后的修改該子項的請求。對相關(guān)串行操作的請求可包括刪除或移動項的子項的請求和隨后的修改該項的請求。對相關(guān)串行操作的請求可包括修改項的請求和隨后的修改該項的請求。
實施例還包括由源目錄服務(wù)將多個請求歸類為原子事務(wù)。在這樣的實施例中,傳輸請求可包括在相同數(shù)據(jù)通信連接上傳輸原子事務(wù)的被歸類的請求。
從下面對如附圖所示的本發(fā)明的示例性實施例的更具體的說明中可清楚地看到本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點,在所述附圖中同樣的標(biāo)號通常代表本發(fā)明的示例性實施例的相同部分。


圖1給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性系統(tǒng)的網(wǎng)絡(luò)圖。
圖2給出根據(jù)本發(fā)明的實施例的包括可用于復(fù)制目錄的修改的示例性計算機(jī)的自動計算機(jī)器的框圖。
圖3給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性系統(tǒng)的框圖。
圖4給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性方法的流程圖。
圖5給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的另一個示例性方法的流程圖。
圖6給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的再一個示例性方法的流程圖。
具體實施例方式
參照附圖并從圖1開始說明根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性方法、系統(tǒng)和產(chǎn)品。圖1給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性系統(tǒng)的網(wǎng)絡(luò)圖。圖1的系統(tǒng)通常通過在用于源目錄的源目錄服務(wù)中接收對源目錄中的修改的請求,并在多個數(shù)據(jù)通信連接上異步并行地將對在副本目錄中進(jìn)行相同修改的請求從源目錄服務(wù)傳輸給用于副本目錄的副本目錄服務(wù),來根據(jù)本發(fā)明的實施例復(fù)制目錄的修改。圖1的系統(tǒng)包括源服務(wù)器(102),該服務(wù)器是可在其上安裝用于源目錄的源目錄服務(wù)的計算機(jī)?!茨夸浄?wù)’是使其全部或部分目錄樹通過其他目錄服務(wù)被復(fù)制的目錄服務(wù)。所述其他目錄服務(wù)在本說明書中被稱為‘副本目錄服務(wù)’。由源目錄服務(wù)管理的目錄樹被稱為‘源目錄樹’。由副本目錄服務(wù)管理的目錄樹被稱為‘副本目錄樹’。圖1的系統(tǒng)包括一些副本服務(wù)器(104、106、108),所述副本服務(wù)器是可在其上安裝用于副本目錄的副本目錄服務(wù)的計算機(jī)。
根據(jù)本發(fā)明的實施例的源目錄服務(wù)通常用作對目錄樹包括其自己的目錄樹以及一個或多個副本目錄樹中的一個或多個目錄樹(或子樹)的修改的‘源’。修改包括改變目錄項中的數(shù)據(jù)值,從目錄中刪除項,向目錄添加新的項,以及在目錄中移動數(shù)據(jù)即改變項在目錄樹中的位置。并非所有對訪問目錄數(shù)據(jù)的請求都修改目錄數(shù)據(jù)。不修改目錄數(shù)據(jù)的請求包括用于交換安全數(shù)據(jù)的綁定請求、搜索請求、比較請求以及一些用戶定義的擴(kuò)展請求。
圖1的示例性系統(tǒng)包括通過網(wǎng)絡(luò)(100)連接到源服務(wù)器(102)和副本服務(wù)器(104、106、108)以進(jìn)行數(shù)據(jù)通信的一些客戶機(jī)設(shè)備。客戶機(jī)設(shè)備包括膝上型計算機(jī)(116)、個人數(shù)字助理(‘PDA’)(114)、個人計算機(jī)(112)和移動電話(110)??蛻魴C(jī)設(shè)備包括根據(jù)目錄協(xié)議例如LDAP發(fā)出目錄請求消息的目錄客戶端軟件。請求消息代表對修改目錄項、綁定安全數(shù)據(jù)、搜索目錄樹等的請求。為了有效使用服務(wù)器資源,副本服務(wù)器(104、106、108)可僅應(yīng)答搜索和比較請求,而僅從源服務(wù)器(102)接受修改請求,并針對來自客戶機(jī)設(shè)備的修改請求返回到源服務(wù)器(102)的轉(zhuǎn)薦。類似地,源服務(wù)器(102)可配置成僅執(zhí)行修改請求,而將搜索和比較請求轉(zhuǎn)薦到副本服務(wù)器(104、106、108)。這樣,尤其為了可伸縮性和效率,所有修改被引導(dǎo)通過單個服務(wù)器,該單個服務(wù)器可例如實現(xiàn)完整的主目錄,同時副本服務(wù)器僅實現(xiàn)子集或子樹。
實際上,有用的是指出,不需要副本服務(wù)器復(fù)制在源服務(wù)器上實現(xiàn)的整個目錄。在根據(jù)本發(fā)明的實施例復(fù)制目錄的修改時,副本服務(wù)器通常僅復(fù)制源服務(wù)器上的主目錄的子樹??紤]使用與圖1中所示的系統(tǒng)類似的系統(tǒng)的示例,該系統(tǒng)為在歐洲、中國和美國具有辦事處的跨國組織的用戶在源服務(wù)器中實現(xiàn)用于用戶賬戶信息的目錄樹。此示例可將整個目錄包括所有修改處理放置在物理地位于例如芝加哥的源服務(wù)器(102)上,并且·在北京在副本服務(wù)器(104)上放置存儲位于北京的用戶的用戶賬戶信息的子樹,·在紐約在副本服務(wù)器(106)上放置存儲位于美國的用戶的用戶賬戶信息的子樹,以及·在法蘭克福在副本服務(wù)器(108)上放置存儲位于歐洲的用戶的用戶賬戶信息的子樹。
在此示例中,客戶機(jī)可向副本服務(wù)器提出修改請求,而副本服務(wù)器可將這樣的請求轉(zhuǎn)薦回給源服務(wù)器。源服務(wù)器(102)首先在它的主目錄樹中進(jìn)行所有修改,并然后·將對中國子樹的修改傳輸給北京的副本服務(wù)器(104);·將對美國子樹的修改傳輸給紐約的副本服務(wù)器(106);以及·將對歐洲子樹的修改傳輸給法蘭克福的副本服務(wù)器(104)。
根據(jù)本發(fā)明的實施例改進(jìn)源服務(wù)器(102)中的源目錄服務(wù),以將對在源目錄中進(jìn)行的相同修改的請求傳輸給副本服務(wù)器。該傳輸在多個數(shù)據(jù)通信連接(118)上并行地進(jìn)行。圖1僅示出源服務(wù)器(102)和副本服務(wù)器之間的兩個數(shù)據(jù)通信連接,但是在本發(fā)明的范圍內(nèi),源服務(wù)器可為這樣的并行傳輸使用任何數(shù)量的數(shù)據(jù)通信連接。
構(gòu)成圖1中所示的示例性系統(tǒng)的服務(wù)器和其他設(shè)備的安排是用于說明而不是限制。本領(lǐng)域內(nèi)的那些技術(shù)人員可想到,根據(jù)本發(fā)明的各種實施例有用的數(shù)據(jù)處理系統(tǒng)可包括圖1中未示出的其他的服務(wù)器、路由器、其他設(shè)備和對等體系結(jié)構(gòu)。這樣的數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò)可支持許多數(shù)據(jù)通信協(xié)議,包括例如TCP(傳輸控制協(xié)議)、IP(網(wǎng)際協(xié)議)、HTTP(超文本傳輸協(xié)議)、WAP(無線訪問協(xié)議)、HDTP(手持設(shè)備傳輸協(xié)議)以及本領(lǐng)域內(nèi)的那些技術(shù)人員可想到的其他協(xié)議。本領(lǐng)域的各種實施例可在除了圖1所示的硬件平臺之外的多種硬件平臺上實現(xiàn)。
根據(jù)本發(fā)明復(fù)制目錄的修改通常利用計算機(jī)即自動計算機(jī)器實現(xiàn)。例如在圖1的系統(tǒng)中,網(wǎng)絡(luò)、服務(wù)器和客戶機(jī)設(shè)備在某種程度上至少實現(xiàn)為計算機(jī)。因此為了進(jìn)一步說明,圖2給出包括根據(jù)本發(fā)明的實施例可用于復(fù)制目錄的修改的示例性計算機(jī)(152)的自動計算機(jī)器的框圖。圖2的計算機(jī)(152)包括至少一個計算機(jī)處理器(156)或‘CPU’以及隨機(jī)存取處理器(168)(“RAM”),該隨機(jī)存取存儲器通過系統(tǒng)總線(160)連接到處理器(156)和計算機(jī)的其他部件。
RAM(168)中存儲有包括根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的計算機(jī)程序指令的源目錄服務(wù)。源目錄服務(wù)復(fù)制對也存儲在RAM(168)中的源目錄樹(428)的修改。RAM(168)中還存儲有源接收隊列(434)、主線程(468)、一些傳輸隊列(416、418和420)和一些傳輸線程(417、419、421)。每個傳輸線程為了一個傳輸隊列在源目錄服務(wù)和副本目錄服務(wù)之間的數(shù)據(jù)通信連接上操作數(shù)據(jù)通信。源目錄服務(wù)按客戶機(jī)請求到達(dá)的順序?qū)⒖蛻魴C(jī)請求串行地放置在源接收隊列中。主線程(468)通常操作以從源接收隊列(434)移除請求,并將它們放置在傳輸隊列中,從而將它們在多個數(shù)據(jù)通信連接(460)上并行地傳輸。
RAM(168)中還存儲操作系統(tǒng)(154)。可用于根據(jù)本發(fā)明的實施例的計算機(jī)的操作系統(tǒng)包括UNIXTM、LinuxTM、Microsoft NTTM、AIXTM、IBM的i5/OSTM和本領(lǐng)域內(nèi)的技術(shù)人員可想到的其它操作系統(tǒng)。圖2的示例中的操作系統(tǒng)(154)和源目錄服務(wù)(438)被示為位于RAM(168)中,但是這種軟件的許多組件通常還存儲在非易失存儲器(166)中。
圖2的計算機(jī)(152)包括通過系統(tǒng)總線(160)連接到處理器(156)和計算機(jī)(152)的其他部件的非易失計算機(jī)存儲器(166)。非易失計算機(jī)存儲器(166)可被實現(xiàn)為硬盤驅(qū)動器(170)、光盤驅(qū)動器(172)、電可擦除可編程只讀存儲空間(所謂的‘EEPROM’或‘閃速’存儲器)(174)、RAM驅(qū)動器(未示出)、或本領(lǐng)域內(nèi)的那些技術(shù)人員可想到的任何其他類型的計算機(jī)。
圖2的示例性計算機(jī)包括一個或多個輸出/輸出接口適配器(178)。計算機(jī)中的輸入/輸出接口適配器通過例如用于控制對顯示設(shè)備(180)例如計算機(jī)顯示屏的輸出以及來自用戶輸入設(shè)備(181)例如鍵盤和鼠標(biāo)的用戶輸入的軟件驅(qū)動器和計算機(jī)硬件,實現(xiàn)面向用戶的輸入/輸出。
圖2的示例性計算機(jī)(152)包括用于實現(xiàn)與其它計算機(jī)(182)尤其是副本服務(wù)器的數(shù)據(jù)通信連接(460)的通信適配器(167)。這樣的數(shù)據(jù)通信可通過RS-232連接、通過外部總線例如USB、通過數(shù)據(jù)通信網(wǎng)絡(luò)例如IP網(wǎng)絡(luò)、以及以本領(lǐng)域內(nèi)的技術(shù)人員可想到的其它方式執(zhí)行。通信適配器實現(xiàn)數(shù)據(jù)通信的硬件級,通過該硬件級至少一個傳輸線程(417、419、421)直接地或通過網(wǎng)絡(luò)將數(shù)據(jù)通信發(fā)送給副本服務(wù)器。根據(jù)本發(fā)明的實施例的可用于確定目的地的可用性的通信適配器的示例包括用于有線撥號通信的調(diào)制解調(diào)器、用于有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802.3)適配器以及用于無線網(wǎng)絡(luò)通信的802.11b適配器。每個數(shù)據(jù)通信適配器可串行操作,但是它們組合在一起可支持向副本服務(wù)器并行傳輸對在源目錄樹中進(jìn)行的相同修改的請求。
為了進(jìn)一步說明,圖3給出了根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性系統(tǒng)的框圖。圖3的系統(tǒng)包括源目錄服務(wù)(438)和副本目錄服務(wù)(440)。源目錄服務(wù)從目錄客戶機(jī)接收到對在源目錄樹(428)中進(jìn)行修改的請求,所述目錄客戶機(jī)在此示例中為個人計算機(jī)(112)。所述請求被串行地存儲在源接收隊列(434)中。圖3的系統(tǒng)包括一些傳輸隊列(451)和一些傳輸線程(452),一個傳輸線程用于一個傳輸隊列。每個傳輸線程是從其對應(yīng)的隊列中按請求入隊的順序檢索請求并將請求發(fā)送給副本目錄服務(wù)的數(shù)據(jù)通信程序。圖3的源目錄服務(wù)(438)還包括主線程(468),該主線程是這樣的計算機(jī)程序,其從源接收隊列(434)移除請求并將它們放置在傳輸隊列中,從而多個傳輸線程可在多個數(shù)據(jù)通信連接(460)上并行地傳輸它們。為了快速訪問,源目錄樹(428)在可行的程度上被保持在RAM中,并具有由數(shù)據(jù)庫管理系統(tǒng)(‘DBMS’)(430)提供的持久性,該數(shù)據(jù)庫管理系統(tǒng)轉(zhuǎn)而操作關(guān)系數(shù)據(jù)庫(432)、BTREE類型的數(shù)據(jù)庫(433)或本領(lǐng)域內(nèi)的那些技術(shù)人員可想到的某種其他持久數(shù)據(jù)存儲。
如上所述,用于圖3中的數(shù)據(jù)通信的目錄協(xié)議是客戶機(jī)-服務(wù)器、請求響應(yīng)協(xié)議。但是,有用的是指出,特定設(shè)備是客戶機(jī)還是服務(wù)器是角色的問題而不是固定的指定。當(dāng)源目錄服務(wù)(438)從客戶機(jī)(112)接收修改請求并更新其源目錄樹時,源目錄服務(wù)(438)擔(dān)當(dāng)目錄服務(wù)器。當(dāng)源目錄服務(wù)(438)使用傳輸線程將那些相同的修改請求發(fā)送給副本目錄服務(wù)(440)時,源目錄服務(wù)(438)擔(dān)當(dāng)目錄客戶機(jī)。
圖3的系統(tǒng)包括在副本目錄樹(454)中復(fù)制(replicate或duplicate)源目錄(428)的至少一個子樹的副本目錄服務(wù)(440)。副本目錄服務(wù)(440)將每個數(shù)據(jù)通信連接視為用于修改副本目錄樹(454)中的項的客戶機(jī)請求的源。副本目錄服務(wù)(440)通常通過將在并行數(shù)據(jù)通信連接(460)上接收到的每個請求按請求被接收的順序入隊在其副本接收隊列(436)中而操作。在此示例中,副本目錄服務(wù)(440)沒有為每個接收線程(461、462、464、466)提供單獨(dú)的接收隊列,而是提供單個副本接收隊列(436),所有被接收到的請求按請求被接收到的順序被放置在該單個副本接收隊列中。為了快速訪問,副本目錄樹(428)在可行的程度上被保持在RAM中,并具有由數(shù)據(jù)庫管理系統(tǒng)(‘DBMS’)(430)提供的持久性,該數(shù)據(jù)庫管理系統(tǒng)轉(zhuǎn)而操作關(guān)系數(shù)據(jù)庫(458)、BTREE類型的數(shù)據(jù)庫(459)或本領(lǐng)域內(nèi)的那些技術(shù)人員可想到的某種其他持久數(shù)據(jù)存儲。
為了進(jìn)一步說明,圖4給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的示例性方法的流程圖,該方法包括在源目錄服務(wù)(438)和副本目錄服務(wù)(440)之間打開(402)兩個或更多個數(shù)據(jù)通信連接(460)。圖4的方法包括在用于源目錄的源目錄請求服務(wù)(438)中接收(404)對在源目錄中進(jìn)行修改的請求(406-414)。源目錄被實現(xiàn)為源目錄樹(428),該源目錄樹的持久性由DBMS(430)和備份數(shù)據(jù)庫(432)提供。
圖4的方法包括將對在副本目錄中進(jìn)行相同修改的請求(444-450)從源目錄服務(wù)傳輸(424)給用于副本目錄(454)的副本目錄服務(wù)(440)。源目錄服務(wù)(438)在多個數(shù)據(jù)通信連接(460)上異步并行地傳輸這些請求。可實現(xiàn)為如上所述的主線程的傳輸功能(424)按請求被接收到的順序從源接收隊列(434)中移除請求,并且將每個請求添加到最短的可用傳輸隊列(451)中。該隊列可實現(xiàn)為C程序設(shè)計語言中的鏈表、C++或Java中的隊列類、匯編程序中的鏈表或本領(lǐng)域內(nèi)的那些技術(shù)人員可想到的任何程序設(shè)計語言中的任何其他的隊列結(jié)構(gòu)。
如上所述,在圖4的方法中,副本目錄(454)可復(fù)制源目錄(428)的子樹,從而傳輸功能可從一些副本服務(wù)器中選擇向其傳輸特定的請求的特定的副本服務(wù)器。接收(404)修改請求可包括在源目錄服務(wù)(438)中接收對在源目錄(428)內(nèi)的特定子樹中進(jìn)行修改的請求,并且傳輸請求(424)可通過傳輸對在副本目錄(454)內(nèi)的相同子樹中進(jìn)行相同修改的請求而執(zhí)行。
圖4的方法還包括根據(jù)從目錄客戶機(jī)接收到的請求(406-414)更新(426)源目錄(428)。在此示例中,源目錄樹(428)是主目錄,其子樹被復(fù)制在一個或多個副本目錄(454)中。因此,從目錄客戶機(jī)接收到的修改目錄的請求有利地不僅在副本中執(zhí)行而且在源目錄(428)中執(zhí)行。
為了進(jìn)一步說明,圖5給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的另一個示例性方法的流程圖,該方法與圖4的方法類似。就是說,圖5的方法包括接收修改請求(404),將所述請求傳輸(424)給副本目錄服務(wù),并根據(jù)請求(404-414)更新(426)源目錄(428),這些都如在上文針對圖4的方法說明的那樣。但是,圖5的方法還包括識別(502)對相關(guān)串行操作的請求,并且在圖5的方法中,傳輸(424)請求包括在相同的數(shù)據(jù)通信連接上傳輸(504)被識別的對相關(guān)串行操作的請求。
對相關(guān)串行操作的請求是對這樣的目錄操作的請求,這些目錄操作是有用地按照它們的請求最初被接收到的順序執(zhí)行的。在分離的數(shù)據(jù)通信連接上傳輸這樣的請求帶有這樣的風(fēng)險,即這些請求可能在副本目錄服務(wù)上被不按次序地執(zhí)行。在第二請求(412)之前到達(dá)源目錄服務(wù)(438)的請求(414),當(dāng)在不同的、較慢的數(shù)據(jù)通信連接上被傳輸時,可能在第二請求之后到達(dá)副本目錄服務(wù)(440)。
對相關(guān)串行操作的請求的一個示例是修改項的模式(schema)的請求和隨后的修改該項的請求。模式是屬性類型定義、對象類定義和其他信息的集合,目錄服務(wù)使用該信息來確定如何對照項的屬性匹配過濾器或?qū)傩灾禂嘌?在比較操作中),以及是否允許添加和修改操作。例如,在試圖修改項之前執(zhí)行允許項的修改的模式改變是有用的。
對相關(guān)串行操作的請求的另一個示例是創(chuàng)建或移動具有子項的項的請求和隨后的修改該子項的請求。在試圖修改子項之前該子項存在是有用的。移動項意味著改變其識別名(distinguished name)以及其在其目錄樹中的位置。隨后的修改項的請求將試圖在項的新位置訪問該項。因此,在試圖在項的新位置訪問該項之前將該項移動到其新位置是有用的。
對相關(guān)串行操作的請求的再一個示例是刪除或移動項的子項的請求和隨后的修改該項的請求。修改項可能修改一個或多個該項的子項。隨后的修改項的請求依賴于先前的子項的刪除或移動,這意味著子項不再處于將被修改的子項中。如果子項仍在那里,則它會遭受不希望的修改的風(fēng)險。
對相關(guān)串行操作的請求的又一個示例是修改項的請求和隨后的修改該項的請求。對單個項的很多修改有用地是按特定的順序執(zhí)行的。例如,考慮移動后面跟著刪除。該刪除是針對它認(rèn)為該項先前已移動到的新位置。進(jìn)行刪除的試圖失敗,則使副本樹留有在源目錄樹中不再存在的項。
在圖5的示例中,在相同數(shù)據(jù)通信連接上傳輸(504)被識別的對相關(guān)串行操作的請求可由主線程執(zhí)行,該主線程以與在源目錄服務(wù)中接收請求的順序相同的順序?qū)⑾嚓P(guān)串行操作添加到相同傳輸隊列中。隊列具有一最大大小。將所有對相關(guān)串行操作的請求放置在相同傳輸隊列中確保了它們將以與它們在源目錄服務(wù)中被接收的順序相同的順序到達(dá)副本目錄服務(wù)。如果在可將所有對一組被識別的相關(guān)串行操作的請求放置在隊列中之前該隊列已滿,則主線程等待直到該特定傳輸隊列中有可用空間。對于非串行相關(guān)的請求,主線程可如上所述將請求添加到最短的可用隊列。
為了進(jìn)一步說明,圖6給出根據(jù)本發(fā)明的實施例的用于復(fù)制目錄的修改的另一個示例性方法的流程圖,該方法與圖4的方法類似。就是說,圖6的方法包括接收修改請求(404),將請求所述傳輸(424)給副本目錄服務(wù),并根據(jù)所述請求更新(426)源目錄(428),這些都如以上針對圖4的方法說明的那樣。但是,圖6的方法還包括由源目錄服務(wù)(438)將多個請求歸類為一原子(atomic)事務(wù),并且在圖6的方法中,傳輸請求(424)包括在相同數(shù)據(jù)通信連接上傳輸(604)原子事務(wù)的被歸類的請求。
事務(wù)是將被原子地執(zhí)行的一組對在目錄樹上進(jìn)行修改操作的請求。這些請求和操作被以‘全部或沒有’的方式執(zhí)行。如果一事務(wù)的所有操作都執(zhí)行成功,則該事務(wù)成功。如果出于任何原因該組的任何操作失敗,則整個組被回滾(roll back)到開始處,就象完全沒有發(fā)生操作似的。
在應(yīng)用水平事務(wù)存在許多應(yīng)用,并且許多DBMS支持事務(wù)處理。例如,考慮具有借方和貸方的簿記。每個日記帳分錄包含一組平衡的借方和貸方。如果單個借方或貸方分錄錯誤而沒有事務(wù)處理,則結(jié)果是日記帳或分類帳不再平衡。因此,用于記賬和簿記的數(shù)據(jù)處理系統(tǒng)通常將簿記分錄歸類在原子事務(wù)中。如果事務(wù)中的任何分錄錯誤,則回滾整個事務(wù),從而使簿記平衡。
按照目錄協(xié)議的請求可實現(xiàn)影響多于一個目錄項的操作。這種操作通常被原子地執(zhí)行,但是目錄協(xié)議通常不提供跨越請求或操作的原子性。但是,可通過用戶擴(kuò)展將跨越請求或操作的原子性添加到目錄協(xié)議。例如,LDAP是可擴(kuò)展協(xié)議。在LDAP標(biāo)準(zhǔn)中提供了用戶擴(kuò)展。事務(wù)通常由應(yīng)用程序中的客戶端軟件‘歸類’,即劃定范圍、打開和關(guān)閉。它們被DBMS和用戶擴(kuò)展的目錄協(xié)議支持,但是例如是記賬系統(tǒng)知道哪些借方和貸方參與哪些事務(wù)。
在圖6的示例中,歸類函數(shù)(602)通過在接收隊列(434)中在被歸類的請求之前插入‘打開事務(wù)’請求(606)以及在該接收隊列中在被歸類的請求之后插入‘提交事務(wù)’請求(608),將請求(410、412、414)歸類為一事務(wù)。如上所述,打開事務(wù)請求和提交事務(wù)請求通常是從目錄客戶機(jī)例如個人計算機(jī)(112)上的客戶端應(yīng)用例如記賬程序接收的。然后這樣的請求將出現(xiàn)在源接收隊列中,并通常被用于源目錄樹(428)的更新函數(shù)(426)處理。因此,源目錄服務(wù)(438)中的歸類函數(shù)(602)將打開和提交請求(606、608)放置在接收隊列(434)中是有用的,因為打開和提交請求(606、608)然后通過傳輸函數(shù)(424)被呈現(xiàn)給副本目錄服務(wù)(440)并還被呈現(xiàn)給用于源樹(428)的更新函數(shù)(426)。
目光敏銳的讀者現(xiàn)在會詢問,既然是應(yīng)用級需要事務(wù)并知道如何劃定事務(wù)的范圍,為什么由源目錄服務(wù)歸類事務(wù)。答案是總的處理效率。給目錄樹提供持久性的備份服務(wù)器將事務(wù)數(shù)據(jù)分組地提交給持久存儲器,從而最小化輸入/輸出成本,并減小對一組修改進(jìn)行重新索引的開銷。因此,根據(jù)本發(fā)明的實施例的復(fù)制目錄的修改的系統(tǒng)可有用地將一組請求歸類為事務(wù),盡管沒有客戶級的應(yīng)用請求這樣的歸類。
在圖6的方法中,傳輸請求(424)包括在相同數(shù)據(jù)通信連接上傳輸(604)一原子事務(wù)的被歸類的請求。應(yīng)記得,在分離的數(shù)據(jù)通信連接上并行傳輸?shù)恼埱罂赡芤圆煌捻樞虻竭_(dá)副本目錄服務(wù)。例如如果在分離的、較慢的數(shù)據(jù)通信連接上傳輸打開事務(wù)請求,并在較快的連接上傳輸其余的事務(wù)請求,則有可能打開事務(wù)請求實際上比用于該事務(wù)的提交請求較遲地到達(dá)復(fù)制事務(wù)服務(wù)。此外,一原子事務(wù)的被歸類的請求經(jīng)常有利地以與它們被放置在源接收隊列中的順序相同的相同順序執(zhí)行。如果在分離的連接上傳輸一事務(wù)中的被歸類的請求,則它們也可能不按次序地到達(dá)。為此,根據(jù)本發(fā)明的實施例的復(fù)制目錄的修改的系統(tǒng)可有用地在相同的數(shù)據(jù)通信連接上傳輸(604)一原子事務(wù)的被歸類的請求。不管事務(wù)的請求是被源目錄服務(wù)(438)還是被目錄客戶機(jī)(112)上的應(yīng)用歸類,這都是正確的。
主要在用于復(fù)制目錄的修改的全功能的計算機(jī)系統(tǒng)的情境中說明了本發(fā)明的示例性實施例。但是,本領(lǐng)域內(nèi)的有技術(shù)的讀者可認(rèn)識到本發(fā)明還可體現(xiàn)為設(shè)置在信號承載介質(zhì)上以便與任何合適的數(shù)據(jù)處理系統(tǒng)一起使用的計算機(jī)程序產(chǎn)品。這樣的信號承載介質(zhì)可以是用于機(jī)器可讀信息的傳輸介質(zhì)或可記錄介質(zhì)包括磁介質(zhì)、光介質(zhì)或其它合適的介質(zhì)??捎涗浗橘|(zhì)的示例包括硬盤驅(qū)動器或軟盤內(nèi)的磁盤、光盤驅(qū)動器的光盤、磁帶和本領(lǐng)域內(nèi)的技術(shù)人員可想到的其它介質(zhì)。傳輸介質(zhì)的示例包括用于語音通信的電話網(wǎng)絡(luò),以及數(shù)字?jǐn)?shù)據(jù)通信網(wǎng)絡(luò)例如EthernetTM和使用網(wǎng)際協(xié)議及萬維網(wǎng)通信的網(wǎng)絡(luò)。本領(lǐng)域內(nèi)的技術(shù)人員將立即認(rèn)識到,具有合適的編程裝置的任何計算機(jī)系統(tǒng)將能夠執(zhí)行體現(xiàn)為程序產(chǎn)品的本發(fā)明的方法的步驟。本領(lǐng)域內(nèi)的技術(shù)人員將立即認(rèn)識到,盡管本說明中說明的一些示例性實施是面向安裝在計算機(jī)硬件上并且在其上執(zhí)行的軟件,但是實現(xiàn)為固件或硬件的其他可選擇實施例也完全在本發(fā)明的范圍內(nèi)。
從前文說明應(yīng)理解,可對本發(fā)明的各種實施例進(jìn)行修改和改變而不會背離本發(fā)明的真正精神。此說明書中的說明僅是用于說明目的而不應(yīng)在限制的意義上理解。本發(fā)明的范圍僅由下文的權(quán)利要求的語言限制。
權(quán)利要求
1.一種用于復(fù)制目錄的修改的方法,該方法包括在用于源目錄的源目錄服務(wù)中接收對在該源目錄中進(jìn)行修改的請求;以及在多個數(shù)據(jù)通信連接上異步并行地將對在副本目錄中進(jìn)行相同修改的請求從源目錄服務(wù)傳輸?shù)接糜诟北灸夸浀母北灸夸浄?wù)。
2.根據(jù)權(quán)利要求1的方法,其中所述副本目錄包括所述源目錄的子樹;接收修改請求還包括在所述源目錄服務(wù)中接收對在該源目錄中的子樹中進(jìn)行修改的請求;以及傳輸請求還包括傳輸對在該副本目錄內(nèi)的子樹中進(jìn)行相同修改的請求。
3.根據(jù)權(quán)利要求1的方法,還包括識別對相關(guān)串行操作的請求,其中傳輸請求還包括在相同數(shù)據(jù)通信連接上傳輸被識別的對相關(guān)串行操作的請求。
4.根據(jù)權(quán)利要求3的方法,其中,所述對相關(guān)串行操作的請求還包括修改一項的模式的請求和隨后的修改該項的請求。
5.根據(jù)權(quán)利要求3的方法,其中,所述對相關(guān)串行操作的請求還包括創(chuàng)建或移動具有子項的項的請求和隨后的修改該子項的請求。
6.根據(jù)權(quán)利要求3的方法,其中,所述對相關(guān)串行操作的請求還包括刪除或移動項的子項的請求和隨后的修改該項的請求。
7.根據(jù)權(quán)利要求3的方法,其中,所述對相關(guān)串行操作的請求還包括修改一項的請求和隨后的修改該項的請求。
8.根據(jù)權(quán)利要求1的方法,還包括由源目錄服務(wù)將多個請求歸類為原子事務(wù),其中傳輸請求還包括在相同數(shù)據(jù)通信連接上傳輸原子事務(wù)的被歸類的請求。
9.一種用于復(fù)制目錄的修改的裝置,該裝置包括計算機(jī)處理器和操作地連接到該計算機(jī)處理器的計算機(jī)存儲器,該計算機(jī)存儲器中設(shè)置有能夠執(zhí)行以下操作的計算機(jī)程序指令在用于源目錄的源目錄服務(wù)中接收對在該源目錄中進(jìn)行修改的請求;以及在多個數(shù)據(jù)通信連接上異步并行地將對在副本目錄中進(jìn)行相同修改的請求從源目錄服務(wù)傳輸給用于副本目錄的副本目錄服務(wù)。
10.根據(jù)權(quán)利要求9的裝置,其中,所述副本目錄包括所述源目錄的子樹;接收修改請求還包括在所述源目錄服務(wù)中接收對在該源目錄內(nèi)的子樹中進(jìn)行修改的請求;以及傳輸請求還包括傳輸對在該副本目錄內(nèi)的子樹中進(jìn)行相同修改的請求。
11.根據(jù)權(quán)利要求9的裝置,還包括能夠識別對相關(guān)串行操作的請求的計算機(jī)程序指令,其中傳輸請求還包括在相同數(shù)據(jù)通信連接上傳輸被識別的對相關(guān)串行操作的請求。
12.根據(jù)權(quán)利要求9的裝置,還包括能夠由源目錄服務(wù)將多個請求歸類為原子事務(wù)的計算機(jī)程序指令,其中傳輸請求還包括在相同數(shù)據(jù)通信連接上傳輸原子事務(wù)的被歸類的請求。
13.一種用于復(fù)制目錄的修改的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品位于信號承載介質(zhì)上,該計算機(jī)程序產(chǎn)品包含能夠執(zhí)行前面方法權(quán)利要求的任何一個方法的步驟的計算機(jī)程序指令。
全文摘要
復(fù)制目錄的修改包括在用于源目錄的源目錄服務(wù)中接收對在源目錄中進(jìn)行修改的請求,并在多個數(shù)據(jù)通信連接上異步并行地將對在副本目錄中進(jìn)行相同修改的請求從源目錄服務(wù)傳輸給用于副本目錄的副本目錄服務(wù)。在典型實施例中,副本目錄可復(fù)制源目錄的子樹,接收修改請求可包括在源目錄服務(wù)中接收對在源目錄內(nèi)的子樹中進(jìn)行修改的請求,并且傳輸請求可包括傳輸對在副本目錄內(nèi)的子樹中進(jìn)行相同修改的請求。
文檔編號G06F17/30GK1848849SQ200610066740
公開日2006年10月18日 申請日期2006年4月7日 優(yōu)先權(quán)日2005年4月12日
發(fā)明者J·M·麥康瑙希, J·R·麥加維, G·D·威廉斯 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
海安县| 温泉县| 密山市| 宿松县| 临沧市| 吉林省| 天峻县| 武定县| 包头市| 新绛县| 长宁区| 新密市| 聊城市| 北辰区| 册亨县| 松江区| 广东省| 阿拉善盟| 武隆县| 广平县| 鄂州市| 军事| 墨竹工卡县| 景德镇市| 怀来县| 黄骅市| 星座| 肥西县| 抚松县| 武陟县| 荥经县| 翼城县| 丘北县| 辽中县| 遵义市| 遵义市| 富阳市| 咸阳市| 元氏县| 天台县| 馆陶县|