確定請求者508是否具有足夠的信用來執(zhí)行聯(lián)系修改。
[0057]例如,信用可以是貨幣結(jié)余,其中每次更新具有相關(guān)的費(fèi)用。附加地或另選地,信用可以代表賬戶(諸如,用于限制可以每月進(jìn)行的更新的數(shù)量的按月信用)。如果有足夠的信用,控制轉(zhuǎn)移至568 ;否則,控制轉(zhuǎn)移至572。在572,節(jié)點(diǎn)服務(wù)器512用錯誤對邊界服務(wù)器504作出響應(yīng),并且邊界服務(wù)器504對請求者508作出響應(yīng),通知請求者508錯誤。在響應(yīng)請求者508之后,在576,控制結(jié)束。
[0058]回到568,控制確定請求者508是否具有必要的訪問權(quán)限。如果是這樣,控制轉(zhuǎn)移至580 ;否則,控制轉(zhuǎn)移至572。在580,請求者508已經(jīng)被授權(quán),并且因此節(jié)點(diǎn)服務(wù)器512識別要被執(zhí)行的第二任務(wù)。在584,節(jié)點(diǎn)服務(wù)器512識別節(jié)點(diǎn)服務(wù)器516作為針對第二任務(wù)的適當(dāng)?shù)姆?wù)器,該第二任務(wù)可以是聯(lián)系信息的實(shí)際更新。
[0059]在588,節(jié)點(diǎn)服務(wù)器512向節(jié)點(diǎn)服務(wù)器516發(fā)送第二任務(wù)請求(標(biāo)號3)。在592,節(jié)點(diǎn)服務(wù)器516從節(jié)點(diǎn)服務(wù)器516的本地存儲檢索地址數(shù)據(jù)。在596,控制確定地址是否對應(yīng)于請求者508,并且如果是這樣,則控制在600繼續(xù);否則,控制轉(zhuǎn)移至604。
[0060]在600,控制嘗試地址數(shù)據(jù)的原子更新。換言之,控制試圖讀取地址數(shù)據(jù)、改變地址數(shù)據(jù)、以及寫回地址數(shù)據(jù)而沒有來自任何其它過程的干擾。如果在608原子更新是成功的,則控制在612繼續(xù)。如果原子更新是不成功的,則地址數(shù)據(jù)保持不變,并且控制轉(zhuǎn)移至604。在604,節(jié)點(diǎn)服務(wù)器516用錯誤指示對節(jié)點(diǎn)服務(wù)器512作出響應(yīng),并且控制在572繼續(xù)。在各種實(shí)現(xiàn)中,節(jié)點(diǎn)服務(wù)器516也可以直接通知邊界服務(wù)器504錯誤。
[0061]在612,節(jié)點(diǎn)服務(wù)器516用指示成功的任務(wù)響應(yīng)對節(jié)點(diǎn)服務(wù)器512作出響應(yīng)(標(biāo)號4) ο在616,節(jié)點(diǎn)服務(wù)器512用指示成功的任務(wù)響應(yīng)對邊界服務(wù)器504作出響應(yīng)(標(biāo)號5)。在620,邊界服務(wù)器504向請求者508發(fā)送事務(wù)響應(yīng)(標(biāo)號6)。
[0062]圖3示出了包括處理器704和存儲器708的服務(wù)器700的示例實(shí)現(xiàn)。處理器704可以執(zhí)行來自存儲器708的指令,并且可以讀取和寫入存儲在存儲器708中的數(shù)據(jù)。圖3中的描述是簡化了的-例如,處理器704本身可以包括存儲器,稱為高速緩存,其可以存儲指令、數(shù)據(jù)、或這兩者。
[0063]無限帶寬接口卡712允許服務(wù)器700與其他無限帶寬設(shè)備進(jìn)行交互。無限帶寬接口卡712被示意性地示出為連接到處理器704和存儲器708之間的前端總線,因?yàn)闊o限帶寬接口卡712可以能夠直接傳輸數(shù)據(jù)到存儲器708以及從存儲器708傳輸數(shù)據(jù),而無需由處理器704監(jiān)督。
[0064]芯片組716,其可以包括一個或多個芯片,或者可以是與處理器704集成在單個裸片上或在單個封裝中,該芯片組716提供處理器704和外圍設(shè)備之間的通信。例如,處理器704可以經(jīng)由網(wǎng)卡720與其它聯(lián)網(wǎng)設(shè)備通信。處理器704可以接收用戶輸入(諸如,鍵盤和鼠標(biāo)輸入),并且可以輸出數(shù)據(jù)給用戶,諸如,經(jīng)由顯示器,從輸入/輸出設(shè)備724。
[0065]非易失性存儲器728可以存儲被讀取至存儲器708、用于由處理器704執(zhí)行的指令,并且可以存儲與各種任務(wù)相關(guān)的數(shù)據(jù)。非易失性存儲器728可以包括閃存。輔助非易失性存儲器732可以具有比非易失性存儲器728更大的容量,但是具有更低的吞吐量和/或更長的延遲。輔助非易失性存儲器732可以包括包含硬盤驅(qū)動器和磁帶的磁存儲器。與輔助非易失性存儲器732分離,非易失性存儲器728可以存儲頻繁使用的信息(諸如,操作系統(tǒng)數(shù)據(jù))。附加地或另選地,非易失性存儲器728可以用作針對輔助非易失性存儲器732的緩存。
[0066]圖4示出了在服務(wù)器800上實(shí)現(xiàn)的功能塊的示例實(shí)現(xiàn)。僅例如,可以通過特別地編程服務(wù)器700實(shí)現(xiàn)服務(wù)器800中描述的功能塊中的每個功能塊,使得對應(yīng)于服務(wù)器800的每個塊的指令被存儲在存儲器708中并且由圖3的處理器704執(zhí)行。如所描述的服務(wù)器800包括與邊界服務(wù)器、節(jié)點(diǎn)服務(wù)器、以及網(wǎng)絡(luò)服務(wù)器相關(guān)的功能塊。
[0067]事務(wù)管理模塊804從請求創(chuàng)建模塊808接收事務(wù)請求。請求創(chuàng)建模塊808從網(wǎng)絡(luò)服務(wù)器模塊812接收數(shù)據(jù),并且基于該數(shù)據(jù)創(chuàng)建事務(wù)請求。
[0068]外部接口模塊816諸如經(jīng)由網(wǎng)絡(luò)接口與請求者通信。在復(fù)雜的請求者不需要網(wǎng)絡(luò)服務(wù)器的實(shí)現(xiàn)中,事務(wù)管理模塊804可以直接與外部接口模塊816通信。事務(wù)管理模塊804確定對應(yīng)于接收到的事務(wù)請求的輔助任務(wù)。可以由事務(wù)庫模塊820存儲對應(yīng)于每種類型的事務(wù)的輔助任務(wù)。
[0069]僅例如,事務(wù)庫模塊820可以包括具有針對每種類型的事務(wù)請求的條目的數(shù)據(jù)庫或其它數(shù)據(jù)結(jié)構(gòu)。條目可以包括關(guān)于相應(yīng)的任務(wù)的列表的指針、引用、或數(shù)據(jù)庫。條目還可以包括其中連續(xù)地執(zhí)行任務(wù)的次序和/或指示在執(zhí)行選定的任務(wù)之前哪個前導(dǎo)任務(wù)必須執(zhí)行的數(shù)據(jù)結(jié)構(gòu)。
[0070]當(dāng)任務(wù)完成時,事務(wù)管理模塊804使用響應(yīng)翻譯模塊824進(jìn)行響應(yīng),并且響應(yīng)翻譯模塊842可以將響應(yīng)翻譯為適合于由網(wǎng)絡(luò)服務(wù)器模塊812顯示的格式?;谳o助任務(wù),事務(wù)管理模塊804識別哪個節(jié)點(diǎn)服務(wù)器用來使用任務(wù)分配模塊828分配每項(xiàng)任務(wù)。任務(wù)分配模塊828可以存儲任務(wù)和相關(guān)的服務(wù)器之間的映射,包括當(dāng)多個服務(wù)器對應(yīng)于單個任務(wù)時哪個服務(wù)器對應(yīng)于每組數(shù)據(jù)。
[0071]僅例如,任務(wù)分配模塊828可以包括數(shù)據(jù)庫或包括針對每項(xiàng)任務(wù)的條目的其它數(shù)據(jù)結(jié)構(gòu),該條目指定相應(yīng)的節(jié)點(diǎn)服務(wù)器。對于由多個節(jié)點(diǎn)服務(wù)器執(zhí)行的任務(wù),附加信息可以被存儲在該條目中,或在由該條目引用的單獨(dú)的位置中,指定哪個數(shù)據(jù)集對應(yīng)于哪個節(jié)點(diǎn)服務(wù)器。
[0072]任務(wù)請求經(jīng)由內(nèi)部接口模塊832被發(fā)送到其它服務(wù)器,該內(nèi)部接口模塊832可以與內(nèi)部網(wǎng)絡(luò)(諸如,無限帶寬網(wǎng)絡(luò))通信。任務(wù)執(zhí)行模塊836負(fù)責(zé)執(zhí)行任務(wù),該任務(wù)可以包括使用數(shù)據(jù)處理模塊840訪問或修改數(shù)據(jù)庫。數(shù)據(jù)處理模塊840可以依賴于存儲在數(shù)據(jù)存儲模塊844中的數(shù)據(jù)。任務(wù)執(zhí)行模塊836可以基于另外的任務(wù)追蹤哪些任務(wù)正在進(jìn)行中以及哪些任務(wù)正在等待響應(yīng)??梢杂扇蝿?wù)狀態(tài)存儲模塊848存儲該信息。
[0073]數(shù)據(jù)再平衡模塊852被配置為確定何時服務(wù)器800接近處理的容量或存儲的容量。然后,數(shù)據(jù)再平衡模塊852可以經(jīng)由內(nèi)部接口模塊832與其它服務(wù)器協(xié)調(diào)以重新分配任務(wù)。重新分配的任務(wù)觸發(fā)任務(wù)分配模塊828中的更新,使得任務(wù)可以被路由到適當(dāng)?shù)姆?wù)器。此外,當(dāng)任務(wù)被重新分配時,相應(yīng)的數(shù)據(jù)被重新分配給適當(dāng)?shù)姆?wù)器。因此,數(shù)據(jù)再平衡模塊852也將更新數(shù)據(jù)存儲模塊844。在各種實(shí)現(xiàn)中,即使當(dāng)任務(wù)是待定的時,服務(wù)器也可以被再平衡。在這種情況下,數(shù)據(jù)再平衡模塊852也可以更新任務(wù)狀態(tài)存儲模塊848。
[0074]現(xiàn)在參考圖5,提供網(wǎng)絡(luò)連通性的示例方法在900開始。如果從用戶接收到網(wǎng)絡(luò)連接,則控制轉(zhuǎn)移至904 ;否則,控制轉(zhuǎn)移至908。在904,網(wǎng)絡(luò)服務(wù)器將用戶接口呈現(xiàn)給用戶,諸如,通過經(jīng)由HTTP使用HTML。在912,控制從用戶接收事務(wù)信息,并且在916將信息轉(zhuǎn)換為事務(wù)請求。在920,請求被轉(zhuǎn)發(fā)到邊界服務(wù)器或?qū)崿F(xiàn)邊界功能的另一個服務(wù)器。
[0075]控制在網(wǎng)絡(luò)狀態(tài)被存儲的924繼續(xù)。網(wǎng)絡(luò)狀態(tài)可以包括對于保持或恢復(fù)連接所必需的信息(諸如,互聯(lián)網(wǎng)協(xié)議(IP)地址、端口、以及傳輸控制協(xié)議(TCP)序列號)。此外,網(wǎng)絡(luò)狀態(tài)可以存儲與已經(jīng)被進(jìn)行和仍在進(jìn)行的事務(wù)請求相關(guān)的數(shù)據(jù)。然后,控制在908繼續(xù)。
[0076]在908,控制確定對于任何待定事務(wù)的響應(yīng)是否準(zhǔn)備好。如果是這樣,控制轉(zhuǎn)移至928 ;否則,控制返回至900。在928,控制檢索與接收到的事務(wù)響應(yīng)相關(guān)的狀態(tài),并且在932繼續(xù)。在932,基于檢索到的狀態(tài),控制建立與用戶的連接,并且諸如通過網(wǎng)頁向用戶呈現(xiàn)響應(yīng)。在各種實(shí)現(xiàn)中,控制不例示用于進(jìn)行每個網(wǎng)絡(luò)連接的過程。相反,狀態(tài)信息被存儲在存儲庫(諸如,數(shù)據(jù)庫)中,使得連接可以保持不活躍相當(dāng)長的時間,并且稍后可以從數(shù)據(jù)存儲中查找狀態(tài)信息。這樣,可以由單個網(wǎng)絡(luò)服務(wù)器處理更多數(shù)量的未完成事務(wù)。僅為了說明的目的,根據(jù)這些原則,網(wǎng)絡(luò)服務(wù)器可以允許對給定的硬件的100000個同時的連接,而傳統(tǒng)的服務(wù)器針對該相同的硬件會被限于1000個連接。
[0077]在圖6A中,在給定的服務(wù)器的事務(wù)性能被監(jiān)視的1000,節(jié)點(diǎn)之間的再平衡任務(wù)的高級示例開始。例如,可以監(jiān)視用來完成事務(wù)所需的時間以及事務(wù)完成時間的統(tǒng)計(jì)方差。在1004,監(jiān)視了處理器負(fù)載。僅例如,處理器負(fù)載可以包括平均處理器利用率或在100%利用率時處理器花費(fèi)時間的百分比。
[0078]在1008,監(jiān)視了可用存儲??刂圃?012繼續(xù),其中如果事務(wù)性能是可接受的,則控制在1016繼續(xù);否則,控制轉(zhuǎn)移至1020。在1016,控制確定處理器負(fù)載是否大于閾值。如果是這樣,控制轉(zhuǎn)移至1020 ;否則,控制轉(zhuǎn)移至1024。在1024,控制確定可用的存儲是否小于閾值。如果是這樣,控制在1020轉(zhuǎn)移;否則,控制返回至1000。
[0079]在1020,控制識別用于再平衡目的的未充分使用的服務(wù)器。如果其事務(wù)性能、處理器負(fù)載、以及可用存儲在預(yù)定界限內(nèi),服務(wù)器可以被認(rèn)為是未充分使用的。如果,在1028,未充分使用的服務(wù)器是可用的,則控制在1032繼續(xù);否則,在1036,控制向系統(tǒng)管理員發(fā)出警報(bào)缺乏資源,并且控制返回至1000。
[0080]在1032,控制用識別到的未充分使用的服務(wù)器重新分配任務(wù)。在各種實(shí)現(xiàn)中,可以將整個任務(wù)分配給識別到的服務(wù)器,然而在其它實(shí)現(xiàn)和/或其他情況下,可以在服務(wù)器和識別到的服務(wù)器之間分割一個或多個任務(wù)。在1040,對應(yīng)于轉(zhuǎn)移的任務(wù)的數(shù)據(jù)也被轉(zhuǎn)移至識別到的服務(wù)器。在1044,任務(wù)分配信息被更新以反映任務(wù)的再平衡。在1048,更新的任務(wù)分配信息被分發(fā)給其它服務(wù)器。
[0081]在圖6B中,用于確定是否再平衡的全系統(tǒng)過程在定時器被初始化的1100開始。定時器可以被初始化為預(yù)定值,被稱為再平衡時間。再平衡時間確定控制對再平衡是否為必須的進(jìn)行評價的頻度。在1104,如果定時器已經(jīng)期滿,則控制轉(zhuǎn)移至1108 ;否則,控制轉(zhuǎn)移至1112。在1112,如果再平衡已經(jīng)被手動地請求(諸如,由管理員),則控制轉(zhuǎn)移至1108 ;否則,控制返回至1104。在1108,選擇了第一節(jié)點(diǎn)服務(wù)器,并且