信息來(lái)恢復(fù)應(yīng)用 狀態(tài)。
[0096] 如上所述,本公開(kāi)的各實(shí)施方案減少了根據(jù)本文中描述的各種技術(shù)進(jìn)行實(shí)例化的 實(shí)例所需的計(jì)算開(kāi)銷。因此,實(shí)例部署能夠快速進(jìn)行,并且資源浪費(fèi)極少。圖13可使得實(shí)例 (例如,請(qǐng)求實(shí)例)能夠處理請(qǐng)求的環(huán)境的說(shuō)明性示例。如圖13所示,環(huán)境在工作者管理程序 1302的內(nèi)部實(shí)施,所述管理程序可以是如上文所述的工作者管理程序。工作者管理程序 1302可實(shí)施超級(jí)調(diào)用接口 1304,所述超級(jí)調(diào)用接口可以是允許訪客操作系統(tǒng)或訪客應(yīng)用 (例如,請(qǐng)求實(shí)例)對(duì)管理程序提出請(qǐng)求的接口。超級(jí)調(diào)用接口 1304可被配置來(lái)在實(shí)施于工 作者管理程序1302上的請(qǐng)求實(shí)例1308(或者由于接收的請(qǐng)求需要處理而不必實(shí)例化的其他 實(shí)例)中接收來(lái)自半虛擬超文本傳輸協(xié)議(HTTP)驅(qū)動(dòng)器1306的超級(jí)調(diào)用。超級(jí)調(diào)用接口可 將從半虛擬HTTP驅(qū)動(dòng)器1306接收的超級(jí)調(diào)用提供到HTTP超級(jí)調(diào)用處理程序1320。盡管HTTP 始終用于說(shuō)明的目的,但本文中描述的各種技術(shù)可適于支持可由實(shí)例使用的其他協(xié)議。 [0097]半虛擬HTTP驅(qū)動(dòng)器1306可被配置來(lái)提供用于進(jìn)行HTTP請(qǐng)求的系統(tǒng)調(diào)用接口,所述 調(diào)用接口與用于進(jìn)行HTTP對(duì)象模型1310提供的HTTP請(qǐng)求的接口類似或一致。HTTP對(duì)象可轉(zhuǎn) 譯配置的HTTP請(qǐng)求,以將請(qǐng)求配置格式化成適于系統(tǒng)調(diào)用接口。半虛擬HTTP驅(qū)動(dòng)器1306也 可被配置來(lái)在存儲(chǔ)區(qū)1314內(nèi)的控制空間1312中創(chuàng)建請(qǐng)求記錄,所述存儲(chǔ)區(qū)在請(qǐng)求實(shí)例1308 與工作者控制器1316之間共享,其可如上文所述(例如,上文結(jié)合圖5描述的工作者控制 器)??刂瓶臻g1312可以是為有關(guān)存儲(chǔ)在共享存儲(chǔ)器1314的請(qǐng)求記錄中的數(shù)據(jù)的存儲(chǔ)信息 保留的空間。例如,半虛擬HTTP驅(qū)動(dòng)器1306可被配置來(lái)將數(shù)據(jù)寫(xiě)入控制空間1312,所述控制 空間指明請(qǐng)求數(shù)據(jù)位于共享存儲(chǔ)區(qū)1314中的位置。包含在內(nèi)的信息可以包括:請(qǐng)求插槽的 標(biāo)識(shí)符、指明請(qǐng)求插槽中采用的數(shù)據(jù)大小的信息、請(qǐng)求插槽的大小(如果是大小可變化的實(shí) 施方案的話),以及允許識(shí)別來(lái)自請(qǐng)求插槽的正確數(shù)據(jù)量的信息。
[0098] 共享數(shù)據(jù)區(qū)可采用各種方式實(shí)施,例如,圓形(環(huán)形)緩沖區(qū)。在各實(shí)施方案中,管 理程序上實(shí)施的每個(gè)請(qǐng)求實(shí)例提供本身的共享存儲(chǔ)緩沖區(qū),但本文中描述的各實(shí)施方案可 以進(jìn)行適應(yīng),從而多個(gè)請(qǐng)求實(shí)例共享一個(gè)存儲(chǔ)緩沖區(qū)(例如,通過(guò)跟蹤能夠?qū)⒄?qǐng)求匹配到請(qǐng) 求實(shí)例的額外信息KHTTP驅(qū)動(dòng)器可配置有控制空間所處的存儲(chǔ)位置。HTTP驅(qū)動(dòng)器可以基于 來(lái)自HTTP請(qǐng)求的配置信息在控制空間內(nèi)構(gòu)建請(qǐng)求記錄。
[0099] 如圖13所示,請(qǐng)求實(shí)例可能缺少處理一些請(qǐng)求所需的各種資源。例如,各種請(qǐng)求的 處理可包括使用網(wǎng)絡(luò)堆棧(協(xié)議堆棧),例如,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)堆?;蚱?他網(wǎng)絡(luò)堆棧,其中網(wǎng)絡(luò)堆??梢允菍?shí)施協(xié)議套的程序。請(qǐng)求實(shí)例1308可缺少網(wǎng)絡(luò)堆棧,從而 不需要使用網(wǎng)絡(luò)堆棧所需的開(kāi)銷。然而,為了處理請(qǐng)求,請(qǐng)求實(shí)例可與工作者控制器1316實(shí) 施的網(wǎng)絡(luò)堆棧1318交互。工作者控制器1316可操作單個(gè)網(wǎng)絡(luò)堆棧,所述單個(gè)網(wǎng)絡(luò)堆棧用于 在工作者管理程序1302上實(shí)施的多個(gè)請(qǐng)求實(shí)例。因此,超級(jí)調(diào)用接口 1304可被配置來(lái)處理 從半虛擬HTTP驅(qū)動(dòng)器1306到HTTP超級(jí)調(diào)用處理程序1320的某些調(diào)用,所述HTTP超級(jí)調(diào)用處 理程序可以是配置有編程邏輯的工作者控制器1316的進(jìn)程,所述編程邏輯用于響應(yīng)從半虛 擬HTTP驅(qū)動(dòng)器1306經(jīng)過(guò)超級(jí)調(diào)用接口 1304的超級(jí)調(diào)用。HTTP超級(jí)調(diào)用處理程序1320可被配 置來(lái)使用網(wǎng)絡(luò)堆棧1318來(lái)引導(dǎo)處理請(qǐng)求的過(guò)程中涉及的通信。如下文更詳細(xì)地論述,用于 請(qǐng)求的實(shí)際數(shù)據(jù)可使用共享存儲(chǔ)區(qū)1314的一個(gè)或多個(gè)請(qǐng)求插槽1322經(jīng)過(guò)共享存儲(chǔ)區(qū)1314 而被提供到工作者控制器。例如,當(dāng)應(yīng)用代碼1324執(zhí)行時(shí),往返應(yīng)用的數(shù)據(jù)可經(jīng)由共享存儲(chǔ) 區(qū)1314傳輸。由半虛擬HTTP驅(qū)動(dòng)器1306寫(xiě)入控制空間1312的數(shù)據(jù)可指明一個(gè)或多個(gè)請(qǐng)求插 槽1322,其中可找到用于請(qǐng)求的數(shù)據(jù),從而使得HTTP超級(jí)調(diào)用處理程序1320可讀取控制空 間1312,以便確定從哪些控制插槽獲取數(shù)據(jù)。通過(guò)這種方式,超級(jí)調(diào)用接口 1304可被配置來(lái) 處理少量的數(shù)據(jù)(這已足夠,因?yàn)楣芾砀倭繑?shù)據(jù)所需的資源有限),而同時(shí)仍允許更大尺 寸的相關(guān)數(shù)據(jù)從請(qǐng)求實(shí)例1308傳送到工作者控制器1316。
[0100]圖14示出根據(jù)一個(gè)實(shí)施方案的用于處理請(qǐng)求的過(guò)程1400的說(shuō)明性示例。過(guò)程1400 可由管理程序執(zhí)行(即,根據(jù)用于實(shí)施管理程序的可執(zhí)行代碼的計(jì)算機(jī)系統(tǒng)),例如,如上文 所述的工作者管理程序。過(guò)程1400使用HTTP作為示例,但如上所述,過(guò)程1400可適合與其他 協(xié)議一起使用。在一個(gè)實(shí)施方案中,所述過(guò)程包括接收1402來(lái)自應(yīng)用的HTTP請(qǐng)求??墒褂?HTTP對(duì)象模型進(jìn)行請(qǐng)求。此外,應(yīng)用代碼可實(shí)例化適當(dāng)?shù)腍TTP請(qǐng)求對(duì)象,以響應(yīng)于請(qǐng)求。例 如,所述請(qǐng)求對(duì)象可以是JavaScript XmlHttpRequest對(duì)象或Node · js createServer對(duì)象。 應(yīng)用代碼的執(zhí)行可將HTTP請(qǐng)求配置成具有位置、參數(shù)、數(shù)據(jù)和/或諸如此類。
[0101] HTTP對(duì)象處于適當(dāng)位置之后,應(yīng)用代碼可利用HTTP對(duì)象來(lái)對(duì)半虛擬HTTP驅(qū)動(dòng)器進(jìn) 行系統(tǒng)調(diào)用。因此,過(guò)程1400可包括接收1404對(duì)半虛擬HTTP驅(qū)動(dòng)器的系統(tǒng)調(diào)用。例如,HTTP 對(duì)象可進(jìn)行內(nèi)核系統(tǒng)調(diào)用,以訪問(wèn)可提供用于進(jìn)行HTTP請(qǐng)求的系統(tǒng)調(diào)用接口的半虛擬HTTP 驅(qū)動(dòng)器,所述系統(tǒng)調(diào)用接口與用于進(jìn)行HTTP對(duì)象模型提供的HTTP請(qǐng)求的接口類似或一致。 HTTP對(duì)象可轉(zhuǎn)譯配置的HTTP請(qǐng)求,以將請(qǐng)求配置格式化成適于系統(tǒng)調(diào)用接口。
[0102] 在接收1404系統(tǒng)調(diào)用之后,半虛擬HTTP驅(qū)動(dòng)器可以在共享存儲(chǔ)區(qū)內(nèi)的控制空間中 創(chuàng)建請(qǐng)求記錄,例如,在工作者控制器與請(qǐng)求實(shí)例之間共享的存儲(chǔ)區(qū),如上文所述。半虛擬 HTTP驅(qū)動(dòng)器可配置有控制空間所處的存儲(chǔ)位置。半虛擬HTTP驅(qū)動(dòng)器可以基于來(lái)自HTTP請(qǐng)求 的配置信息在控制空間內(nèi)創(chuàng)建1406請(qǐng)求記錄。在一個(gè)實(shí)施方案中,半虛擬HTTP驅(qū)動(dòng)器可基 于HTTP請(qǐng)求配置來(lái)確定存儲(chǔ)塊大小。HTTP驅(qū)動(dòng)器可嘗試基于確定的大小來(lái)分配來(lái)自控制空 間的存儲(chǔ)塊,并且將HTTP請(qǐng)求配置復(fù)制到分配的存儲(chǔ)塊。在一些實(shí)施方案中,HTTP驅(qū)動(dòng)器使 用無(wú)鎖的比較和交換連接列表實(shí)施將分配的存儲(chǔ)器的指標(biāo)附加到主動(dòng)HTTP請(qǐng)求記錄的列 表。請(qǐng)求記錄可包括序列號(hào)、隨機(jī)值和/或適于以唯一方式識(shí)別請(qǐng)求記錄的其他標(biāo)識(shí)符。在 一些實(shí)施方案中,標(biāo)識(shí)符可操作以進(jìn)一步將請(qǐng)求記錄與以下一個(gè)或多個(gè)相互關(guān)聯(lián):HTTP請(qǐng) 求、HTTP請(qǐng)求對(duì)象,或者進(jìn)行HTTP請(qǐng)求的應(yīng)用代碼。
[0103] 在一個(gè)實(shí)施方案中,過(guò)程1400包括分配1408與請(qǐng)求記錄相關(guān)聯(lián)的共享存儲(chǔ)區(qū)內(nèi)的 請(qǐng)求插槽。例如,在一些實(shí)施方案中,共享存儲(chǔ)區(qū)可包括使用環(huán)形緩沖區(qū)組織的一個(gè)或多個(gè) 大小固定的緩沖區(qū)域。HTTP驅(qū)動(dòng)器可使用互斥來(lái)分配緩沖區(qū)域中的一個(gè),例如,通過(guò)執(zhí)行租 用記錄的比較和交換分配。通過(guò)將請(qǐng)求記錄中的字段設(shè)置成請(qǐng)求插槽的地址和大小,HTTP 驅(qū)動(dòng)器可將請(qǐng)求插槽與請(qǐng)求記錄相關(guān)聯(lián)。在一個(gè)實(shí)施方案中,一個(gè)或多個(gè)大小固定的緩沖 區(qū)域可包括多個(gè)緩沖區(qū)大小,每個(gè)緩沖區(qū)大小對(duì)應(yīng)于該大小的一個(gè)或多個(gè)緩沖區(qū)域的列 表。例如,第一特定的緩沖區(qū)大小可用于服務(wù)接收請(qǐng)求,并且第二特定的緩沖區(qū)大小可用于 服務(wù)發(fā)送請(qǐng)求。
[0104] 在HTTP對(duì)象模型的指導(dǎo)下,半虛擬HTTP驅(qū)動(dòng)器可使用超級(jí)調(diào)用接口進(jìn)行請(qǐng)求服務(wù) 超級(jí)調(diào)用。HTTP驅(qū)動(dòng)器可以進(jìn)行超級(jí)調(diào)用,表明請(qǐng)求記錄需要得到服務(wù)。超級(jí)調(diào)用可包括用 于請(qǐng)求記錄的標(biāo)識(shí)符,從而使得超級(jí)調(diào)用處理程序可識(shí)別共享存儲(chǔ)區(qū)中的請(qǐng)求記錄。因此, 超級(jí)調(diào)用接口可接收1410請(qǐng)求,并且向HTTP超級(jí)調(diào)用處理程序通知1412超級(jí)調(diào)用,從而向 超級(jí)調(diào)用處理程序表明請(qǐng)求需要服務(wù)。在一些實(shí)施方案中,實(shí)施HTTP超級(jí)調(diào)用處理程序的 工作者控制器被配置來(lái)接收相關(guān)超級(jí)調(diào)用的通知,例如,通過(guò)訂閱超級(jí)調(diào)用事件分派器。工 作者控制器可被配置來(lái)將接收到的通知分派給超級(jí)調(diào)用處理程序,以用于服務(wù)HTTP請(qǐng)求。
[0105] 在接收到超級(jí)調(diào)用之后,超級(jí)調(diào)用處理程序可從共享存儲(chǔ)區(qū)中檢索1414請(qǐng)求記錄 (例如,通過(guò)使用請(qǐng)求記錄的標(biāo)識(shí)符)。例如,超級(jí)調(diào)用處理程序可走過(guò)主動(dòng)HTTP請(qǐng)求的連接 列表,以定位出請(qǐng)求記錄,其標(biāo)識(shí)符匹配被提供為超級(jí)調(diào)用參數(shù)的標(biāo)識(shí)符。一旦HTTP超級(jí)調(diào) 用處理程序檢索到1414請(qǐng)求記錄,超級(jí)調(diào)用處理程序可至少部分基于檢索的請(qǐng)求記錄和位 于與請(qǐng)求記錄相關(guān)聯(lián)的請(qǐng)求插槽中的請(qǐng)求數(shù)據(jù)來(lái)構(gòu)建本機(jī)HTTP請(qǐng)求。超級(jí)調(diào)用處理程序可 使用第二HTTP對(duì)象模型來(lái)構(gòu)建第二HTTP請(qǐng)求,例如,使用便攜式部件(PortableComponent) (P0⑶)C++庫(kù)或庫(kù)的對(duì)象模型。例如,超級(jí)調(diào)用處理程序可使用第二HTTP對(duì)象模型來(lái)構(gòu)建 1416HTTP請(qǐng)求,并且使用位置、參數(shù)或者請(qǐng)求記錄中包括的其他類似數(shù)據(jù)來(lái)配置HTTP請(qǐng)求。 超級(jí)調(diào)用處理程序可以訪問(wèn)與請(qǐng)求記錄相關(guān)聯(lián)的請(qǐng)求插槽,并且基于請(qǐng)求插槽的內(nèi)容來(lái)構(gòu) 建實(shí)體主體或者配置HTTP請(qǐng)求。
[0106] 隨著超級(jí)調(diào)用處理程序構(gòu)建1416HTTP請(qǐng)求,HTTP超級(jí)調(diào)用處理程序可使用工作者 控制器實(shí)施的本機(jī)網(wǎng)絡(luò)堆棧提出1418本機(jī)HTTP請(qǐng)求。通過(guò)更新請(qǐng)求記錄和相關(guān)聯(lián)的請(qǐng)求插 槽,超級(jí)調(diào)用處理程序可以返回來(lái)自第二HTTP請(qǐng)求的數(shù)據(jù)或結(jié)果。在一些實(shí)施方案中,HTTP 驅(qū)動(dòng)器等待請(qǐng)求記錄中包括的信號(hào)桿(semaphore)。超級(jí)調(diào)用處理程序可給予第二HTTP請(qǐng) 求來(lái)更新請(qǐng)求記錄和請(qǐng)求插槽的內(nèi)容。當(dāng)更新完成時(shí),超級(jí)調(diào)用處理程序可以用信號(hào)通知 信號(hào)桿。一旦更新已被處理,HTTP驅(qū)動(dòng)器可重置并且再次等待信號(hào)桿,例如,如果更新代表 HTTP響應(yīng)流的一部分的話。或者,HTTP驅(qū)動(dòng)器可在更新被處理之后提出新的超級(jí)調(diào)用請(qǐng)求, 以請(qǐng)求進(jìn)一步的更新。
[0107] 作為過(guò)程1400可被如何使用的說(shuō)明性示例,在通知來(lái)自超級(jí)調(diào)用接口的此類請(qǐng)求 之后,HTTP超級(jí)調(diào)用處理程序可以在本機(jī)網(wǎng)絡(luò)堆棧上創(chuàng)建HTTP監(jiān)聽(tīng)器。HTTP監(jiān)聽(tīng)器可等待 入站HTTP請(qǐng)求,并且當(dāng)接收到針對(duì)入站請(qǐng)求接收的數(shù)據(jù)時(shí),HTTP超級(jí)調(diào)用處理程序可使用 共享存儲(chǔ)器將數(shù)據(jù)匯集到請(qǐng)求實(shí)例。例如,HTTP超級(jí)調(diào)用處理程序可向半虛擬HTTP驅(qū)動(dòng)器 通知接收的數(shù)據(jù),所述半虛擬HTTP驅(qū)動(dòng)器隨后可通過(guò)獲取來(lái)自共享存儲(chǔ)器的數(shù)據(jù)而獲取所 述數(shù)據(jù),例如,通過(guò)使用HTTP超級(jí)調(diào)用處理程序?qū)懭肟刂瓶臻g以找到含有數(shù)據(jù)的一個(gè)或多 個(gè)請(qǐng)求插槽的信息。數(shù)據(jù)隨后可提供到應(yīng)用代碼,以用于可能發(fā)生的任何處理。
[0108] 過(guò)程1400可適于處理各種類型的請(qǐng)求。例如,對(duì)于流數(shù)據(jù)而言,可以處理接收到的 數(shù)據(jù)的第一塊,如上所述??蛇M(jìn)行類似的過(guò)程,其中通過(guò)超級(jí)調(diào)用處理程序的通信表明需要 接收用于現(xiàn)存請(qǐng)求的額外數(shù)據(jù)。數(shù)據(jù)可傳過(guò)共享存儲(chǔ)器,如上所述。類似地,對(duì)于發(fā)送數(shù)據(jù) 而言,數(shù)據(jù)將被發(fā)送的通知可通過(guò)超級(jí)調(diào)用處理程序發(fā)送。在接收到通知之后,工作者控制 器可獲取由實(shí)例放入共享存儲(chǔ)器中的數(shù)據(jù)、構(gòu)件本機(jī)HTTP請(qǐng)求以及傳輸數(shù)據(jù)。
[0109] 圖15示出根據(jù)各個(gè)實(shí)施方案的用于實(shí)施各方面的示例性環(huán)境1500的各方面。應(yīng)了 解,盡管網(wǎng)絡(luò)環(huán)境用于解釋的目的,但可酌情使用不同的環(huán)境來(lái)實(shí)施不同實(shí)施方案。所述環(huán) 境包括電子客戶端裝置1502,其可包括可操作以通過(guò)合適的網(wǎng)絡(luò)1504發(fā)送和接收請(qǐng)求、消 息或信息并將信息傳送回到裝置用戶的任何合適的裝置。此類客戶端裝置的示例包括個(gè)人 計(jì)算機(jī)、移動(dòng)電話、手持式消息傳遞裝置、筆記本電腦、平板計(jì)算機(jī)、機(jī)頂盒、個(gè)人數(shù)據(jù)助理、 嵌入式計(jì)算機(jī)系統(tǒng)、電子書(shū)閱讀器等等。網(wǎng)絡(luò)可包括任何合適的網(wǎng)絡(luò),包括內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、 蜂窩網(wǎng)絡(luò)、局域網(wǎng)或任何其他此類網(wǎng)絡(luò)或者其組合。用于此類系統(tǒng)的部件可至少部分取決 于選擇的網(wǎng)絡(luò)和/或環(huán)境類型。眾所周知用于通過(guò)此類網(wǎng)絡(luò)進(jìn)行通信的協(xié)議和部件,本文中 將不再詳細(xì)論述。通過(guò)有線或無(wú)線連接及其組合均可實(shí)現(xiàn)網(wǎng)絡(luò)通信。在此示例中,網(wǎng)絡(luò)包括 互聯(lián)網(wǎng),因?yàn)榄h(huán)境包括用于接收請(qǐng)求及為其響應(yīng)內(nèi)容服務(wù)的網(wǎng)絡(luò)服務(wù)器1506,但對(duì)于其他 網(wǎng)絡(luò),可使用服務(wù)于類似目的的替代裝置,如所屬領(lǐng)域的一般技術(shù)人員將明白。
[0110]所述環(huán)境包括至少一個(gè)應(yīng)用服務(wù)器1508和數(shù)據(jù)存儲(chǔ)設(shè)備1510。應(yīng)理解,可存在若 干個(gè)應(yīng)用服務(wù)器、層或其他元件、過(guò)程或部件,其可形成鏈路或以其他方式配置,從而可交 互以執(zhí)行諸如從合適的數(shù)據(jù)存儲(chǔ)設(shè)備獲取數(shù)據(jù)等任務(wù)。如本文中使用的服務(wù)器可采用各種 方式實(shí)施,例如,硬件裝置或虛擬計(jì)算機(jī)系統(tǒng)。在一些上下文中,服務(wù)器可以指在計(jì)算機(jī)系 統(tǒng)上執(zhí)行的編程模塊。本文中使用的術(shù)語(yǔ)"數(shù)據(jù)存儲(chǔ)設(shè)備"是指能夠存儲(chǔ)、訪問(wèn)和檢索數(shù)據(jù) 的任何裝置或裝置的組合,其可包括任何標(biāo)準(zhǔn)、分布式或集群環(huán)境中的數(shù)據(jù)服務(wù)器、數(shù)據(jù) 庫(kù)、數(shù)據(jù)存儲(chǔ)裝置和數(shù)據(jù)存儲(chǔ)媒體的任何組合和數(shù)目。應(yīng)用服務(wù)器可包含任何合適的硬件 和軟件,用于根據(jù)需要與數(shù)據(jù)存儲(chǔ)設(shè)備集成以便為客戶端裝置執(zhí)行一個(gè)或多個(gè)應(yīng)用的方 面,以及處理應(yīng)用的一些(甚至大部分)數(shù)據(jù)訪問(wèn)和業(yè)務(wù)邏輯。應(yīng)用服務(wù)器與數(shù)據(jù)存儲(chǔ)設(shè)備 協(xié)作可提供訪問(wèn)控制服務(wù),并且能夠生成將被傳輸給用戶的諸如文本、圖形、音頻和/或視 頻等內(nèi)容,在此實(shí)例中,這些內(nèi)容可采用超文本標(biāo)記語(yǔ)言("HTML")、可擴(kuò)展標(biāo)記語(yǔ)言 ("XML")或其他合適的結(jié)構(gòu)化語(yǔ)言的形式通過(guò)網(wǎng)絡(luò)服務(wù)器供應(yīng)給用戶。處理所有請(qǐng)求和響 應(yīng)以及在客戶端裝置1502與應(yīng)用服務(wù)器1508之間傳送內(nèi)容,均可由網(wǎng)絡(luò)服務(wù)器處理。應(yīng)理 解,網(wǎng)絡(luò)和應(yīng)用服務(wù)器并非必需的,而僅僅是示例性部件,因?yàn)楸疚闹姓撌龅慕Y(jié)構(gòu)化代碼可 在本文中其他地方論述的任何合適的裝置或主機(jī)上執(zhí)行。此外,除非上下文中另外清楚地 指出,否則,本文中描述為由單個(gè)裝置執(zhí)行的操作可由多個(gè)裝置共同執(zhí)行,所述多個(gè)裝置可 形成分布式系統(tǒng)。
[0111] 數(shù)據(jù)存儲(chǔ)設(shè)備1510可包括若干個(gè)單獨(dú)的數(shù)據(jù)表、數(shù)據(jù)庫(kù)或其他數(shù)據(jù)存儲(chǔ)機(jī)制,以 及用于存儲(chǔ)本公開(kāi)的特定方面的數(shù)據(jù)的媒體。例如,所述數(shù)據(jù)存儲(chǔ)設(shè)備可包括用于存儲(chǔ)生 產(chǎn)數(shù)據(jù)1512和用戶信息1516的機(jī)制,其可用來(lái)為生產(chǎn)側(cè)的內(nèi)容服務(wù)。所示數(shù)據(jù)存儲(chǔ)設(shè)備還 包括用于存儲(chǔ)邏輯數(shù)據(jù)1514的機(jī)制,其可用于報(bào)告、分析或其他此類目的。應(yīng)理解,可能有 許多其他方面需要存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備中,例如,頁(yè)面圖像信息和訪問(wèn)權(quán)限信息,其可適當(dāng) 存儲(chǔ)在上述機(jī)制中的任一個(gè)中或者可存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備1510中的額外機(jī)制中。數(shù)據(jù)存儲(chǔ) 設(shè)備1510可通過(guò)與之相關(guān)聯(lián)的邏輯進(jìn)行操作以從應(yīng)用服務(wù)器1508接收指令,并且響應(yīng)于此 而獲取、更新或以其他方式處理數(shù)據(jù)。在一個(gè)示例中,通過(guò)用戶操作的裝置,用戶可提交某 一類型項(xiàng)目的搜索請(qǐng)求。在這種情況下,數(shù)據(jù)存儲(chǔ)設(shè)備可訪問(wèn)用戶信息以驗(yàn)證用戶身份,并 且可訪問(wèn)目錄詳細(xì)信息以獲取有關(guān)那種類型項(xiàng)目的信息。隨后,信息可被返回給用戶,例 如,列在用戶通過(guò)用戶裝置1502上的瀏覽器能夠查看的網(wǎng)頁(yè)上的結(jié)果中。在瀏覽器的專用 頁(yè)面或窗口可查看相關(guān)特定項(xiàng)目的信息。然而,應(yīng)注意,本公開(kāi)的實(shí)施方案不必限于網(wǎng)頁(yè)的 上下文,而是可以更普遍地適用于處理一般的請(qǐng)求,其中請(qǐng)求不必是針對(duì)內(nèi)容的請(qǐng)求。
[0112] 每個(gè)服務(wù)器通常將包括為服務(wù)器的一般管理和操作提供可執(zhí)行程序指令的操作 系統(tǒng),并且通常將包括存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)媒體(例如,硬盤、隨機(jī)存取存儲(chǔ)器、只讀 存儲(chǔ)器等),所述指令在被服務(wù)器的處理器執(zhí)行時(shí)允許服務(wù)器執(zhí)行預(yù)期功能。操作系統(tǒng)的適 當(dāng)實(shí)施和服務(wù)器的一般功能已為人所知或可商用,并且易于被所屬領(lǐng)域的一般技術(shù)人員實(shí) 施,尤其是根據(jù)本發(fā)明。
[0113] -個(gè)實(shí)施方案中的環(huán)境是利用若干個(gè)計(jì)算機(jī)系統(tǒng)和部件的分布式計(jì)算環(huán)境,所述 系統(tǒng)和部件使用一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)或直接連接,借助通信鏈路互連。然而,所屬領(lǐng)域的 一般技術(shù)人員將了解,此類系統(tǒng)在部件數(shù)量比圖15中所示的多或少的系統(tǒng)中可發(fā)揮同樣的 作用。因此,圖15中系統(tǒng)1500的描述應(yīng)被當(dāng)作說(shuō)明性的,且并不限制本發(fā)明的范圍。
[0114] 各個(gè)實(shí)施方案還可在各種操作環(huán)境中實(shí)施,在一些情況下,所述環(huán)境可包括可用 來(lái)操作若干應(yīng)用中的任一個(gè)的一個(gè)或多個(gè)用戶計(jì)算機(jī)、計(jì)算裝置或處理裝置。用戶或客戶 端裝置可包含若干通用個(gè)人計(jì)算機(jī)中的任一個(gè),例如,運(yùn)行標(biāo)準(zhǔn)操作系統(tǒng)的臺(tái)式、筆記本或 平板計(jì)算機(jī),以及運(yùn)行手機(jī)軟件且能夠支持多個(gè)網(wǎng)絡(luò)和消息傳遞協(xié)議的手持裝置。此類系 統(tǒng)還可包括若干個(gè)工作站,其運(yùn)行各種商用操作系統(tǒng)和其他已知應(yīng)用中的任一個(gè),以用于 開(kāi)發(fā)和數(shù)據(jù)庫(kù)管理等目的。這些裝置還可包括其他電子裝置,例如,虛擬終端、瘦客戶端、游 戲系統(tǒng)以及能夠通過(guò)網(wǎng)絡(luò)進(jìn)行通信的其他裝置。
[0115] 本公開(kāi)的各個(gè)實(shí)施方案利用所屬領(lǐng)域的技術(shù)人員將熟悉的至少一個(gè)網(wǎng)絡(luò)系統(tǒng),以 使用多種商用協(xié)議中的任一個(gè)來(lái)支持通信,例如,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議("TCP/IP")、 在開(kāi)放系統(tǒng)互聯(lián)("0SI")模型的各個(gè)層中操作的協(xié)議、文件傳輸協(xié)議("FTP")、通用即插即 用("UpnP")、網(wǎng)絡(luò)文件系統(tǒng)("NFS")、公共互聯(lián)網(wǎng)文件系統(tǒng)("CIFS")以及AppleTalk。例如, 所述網(wǎng)絡(luò)可以是局域網(wǎng)、廣域網(wǎng)、虛擬專用網(wǎng)、互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、公用交換電話網(wǎng)、紅 外網(wǎng)、無(wú)線網(wǎng)及其任意組合。
[0116] 在利用網(wǎng)絡(luò)服務(wù)器的實(shí)施方案中,網(wǎng)絡(luò)服務(wù)器可運(yùn)行各種服務(wù)器或中間層應(yīng)用中 的任一個(gè),包括超文本傳輸協(xié)議("HTTP")服務(wù)器、FTP服務(wù)器、通用網(wǎng)關(guān)接口( "CGI")服務(wù) 器、數(shù)據(jù)服務(wù)器、Java服務(wù)器以及業(yè)務(wù)應(yīng)用服務(wù)器。服務(wù)器還能夠響應(yīng)用戶裝置的請(qǐng)求來(lái)執(zhí) 行程序或腳本,例如,通過(guò)執(zhí)行一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用,所述網(wǎng)絡(luò)應(yīng)用可實(shí)施為用任何編程語(yǔ) 言(例如,Java?、C、C#或C++)或腳本語(yǔ)言(例如,Perl、Python或TCL)及其組合編寫(xiě)的一個(gè) 或多個(gè)腳本或程序。服務(wù)器還可包括數(shù)據(jù)庫(kù)服務(wù)器,包括但不限于可從Oracle?、 Microsofti(、Sybasex 和商購(gòu)到的那些。
[0117] 所述環(huán)境可包括多種數(shù)據(jù)存儲(chǔ)設(shè)備和其他存儲(chǔ)器及存儲(chǔ)媒體,如上文所述。這些 可存在于多種位置,例如,在一個(gè)或多個(gè)計(jì)算機(jī)本地(和/或駐留)的存儲(chǔ)媒體上,或者在網(wǎng) 絡(luò)中任何或所有計(jì)算機(jī)遠(yuǎn)程的存儲(chǔ)媒體上。在一組特定的實(shí)施方案中,信息可存在于所屬 領(lǐng)域的技術(shù)人員熟悉的存儲(chǔ)區(qū)域網(wǎng)("SAN")中。類似地,歸因于計(jì)算機(jī)、服務(wù)器或其他網(wǎng)絡(luò) 裝置,用于執(zhí)行功能所需的文件可根據(jù)需要本地存儲(chǔ)和/或遠(yuǎn)程存儲(chǔ)。在系統(tǒng)包括計(jì)算機(jī)裝 置的情況下,每個(gè)此類裝置均可包括可經(jīng)由總線進(jìn)行電耦合的硬件元件,例如,所述元件包 括至少一個(gè)中央處理單元("CPU"或"處理器")、至少一個(gè)輸入裝置(例如,鼠標(biāo)、鍵盤、控制 器、觸摸屏或小鍵盤),以及至少一個(gè)輸出裝置(例如,顯示裝置、打印機(jī)或揚(yáng)聲器)。此類系 統(tǒng)還可包括諸如磁盤驅(qū)動(dòng)器、光學(xué)存儲(chǔ)裝置等一個(gè)或多個(gè)存儲(chǔ)裝置,和諸如隨機(jī)存取存儲(chǔ) 器("RAM")或只讀存儲(chǔ)器("ROM")等固態(tài)存儲(chǔ)裝置,以及可移動(dòng)媒體裝置、存儲(chǔ)卡、閃存卡 等。
[0118] 此類裝置還可包括計(jì)算機(jī)可讀存儲(chǔ)媒體閱讀器、通信裝置(例如,調(diào)制解調(diào)器、網(wǎng) 卡(無(wú)線或有線)、紅外通信裝置等),以及上述工作存儲(chǔ)器。計(jì)算機(jī)可讀存儲(chǔ)媒體閱讀器可 與下述存儲(chǔ)媒體連接或被配置來(lái)接收所述存儲(chǔ)媒體:代表遠(yuǎn)程、本地、固定和/或可移動(dòng)存 儲(chǔ)裝置的計(jì)算機(jī)可讀存儲(chǔ)媒體,以及用于臨時(shí)和/或更持久地容納、存儲(chǔ)、傳輸及檢索計(jì)算 機(jī)可讀信息的存儲(chǔ)媒體。所