背景技術(shù):
互聯(lián)網(wǎng)促進(jìn)全球用戶之間的信息交換和交易。這種信息交換使得數(shù)據(jù)提供者能夠?qū)?shù)據(jù)提供至各種用戶?;ヂ?lián)網(wǎng)上所提供的信息的示例是交互式地圖,該交互式地圖使得用戶能夠搜索和查看特定地區(qū)的地圖。由于這些地圖用戶界面可以包括大量信息并且可以通過使用許多不同的腳本、畫布、和圖形來生成,所以對地圖進(jìn)行渲染可能占用大量資源并且需要一些時間來在客戶端設(shè)備處進(jìn)行渲染。
技術(shù)實現(xiàn)要素:
本說明書描述了與降低在傳送和呈現(xiàn)地圖用戶界面中的時延有關(guān)的技術(shù)。
一般而言,本說明書所描述的主題的一個創(chuàng)新方面可以實施為方法,該方法包括以下動作:從客戶端設(shè)備接收對呈現(xiàn)交互式地圖用戶界面的請求,該交互式地圖用戶界面描繪(i)特定地理區(qū)域和(ii)與特定區(qū)域的多個不同子區(qū)域的在線賬戶有關(guān)的數(shù)據(jù);由一個或者多個服務(wù)器使用地圖服務(wù)對特定區(qū)域的地圖進(jìn)行渲染,該渲染包括生成特定區(qū)域的畫布并且加載用于生成地圖的多個編程元素和圖形元素;由一個或者多個服務(wù)器基于渲染的地圖來生成表示渲染的地圖的圖像的圖像文件;至少基于圖像所描繪的視覺邊界來檢測在圖像內(nèi)的一個或者多個子區(qū)域;為圖像內(nèi)的每個不同的子區(qū)域指派不同的視覺特性;生成電子索引,該電子索引將圖像內(nèi)的每個位置映射到包括該位置的對應(yīng)子區(qū)域;以及由一個或者多個服務(wù)器配置客戶端設(shè)備的用戶界面以:(i)呈現(xiàn)圖像,其中不同子區(qū)域中的每個不同子區(qū)域根據(jù)與該不同子區(qū)域相對應(yīng)的不同視覺特性來呈現(xiàn);以及(ii)當(dāng)客戶端設(shè)備檢測到與圖像的至少一個給定子區(qū)域的用戶交互時,呈現(xiàn)與該給定子區(qū)域有關(guān)的賬戶數(shù)據(jù)。該方面的其它實施例包括被配置為執(zhí)行編碼在計算機(jī)存儲設(shè)備上的該方法的動作的對應(yīng)的系統(tǒng)、裝置、和計算機(jī)程序。
這些實施例和其它實施例均可以可選地包括以下特征中的一個或者多個。在一些方面中,每個子區(qū)域的視覺特性包括指派給子區(qū)域并且被呈現(xiàn)在圖像中的子區(qū)域內(nèi)的特定顏色。
圖像文件可以通過使用比生成畫布所需的計算資源少的計算資源來進(jìn)行渲染。一些方面可以包括:通過使用壓縮技術(shù)來減小圖像文件的數(shù)據(jù)大小,該壓縮技術(shù)包括:為圖像的每個子區(qū)域指派特定紅、綠、藍(lán)(rgb)顏色,該圖像的子區(qū)域以特定紅、綠、藍(lán)(rgb)顏色來呈現(xiàn);以及在所述圖像文件中針對每個特定子區(qū)域存儲子區(qū)域的rgb顏色和指定特定子區(qū)域在圖像內(nèi)的位置的數(shù)據(jù)。
一些方面可以包括:在一個或者多個服務(wù)器處從客戶端設(shè)備接收指定對圖像內(nèi)的特定位置的選擇的數(shù)據(jù)。響應(yīng)于選擇,可以生成經(jīng)更新的圖像,該經(jīng)更新的圖像描繪與選擇的位置相對應(yīng)的特定子區(qū)域的地圖。該生成可以包括通過使用地圖服務(wù)對特定子區(qū)域的地圖進(jìn)行渲染以及生成渲染的地圖的圖像??梢詫⒈硎窘?jīng)更新的圖像的圖像文件提供至客戶端設(shè)備。一些方面可以包括:從客戶端設(shè)備接收指定在選擇時圖像的縮放級別的數(shù)據(jù)?;诳s放級別來確定選擇的粒度級別??梢曰谶x擇的粒度級別來確定與選擇的位置相對應(yīng)的特定子區(qū)域。
在一些方面中,圖像文件包括便攜式網(wǎng)絡(luò)圖形(png)文件格式。一些方面可以包括:由一個或者多個服務(wù)器響應(yīng)于請求并且在接收到對一個或者多個附加圖像文件的請求之前將一個或者多個附加圖像文件提供至客戶端設(shè)備,所述一個或多個附加圖像文件各自表示所述子區(qū)域中的至少一個子區(qū)域的地圖。
本說明書所描述的主題的特定實施例可以被實現(xiàn)從而達(dá)到以下優(yōu)點中的一個或者多個。通過將具有索引的壓縮圖像文件提供至可以響應(yīng)于用戶交互而呈現(xiàn)的數(shù)據(jù)而不是通過將腳本、畫布、圖形、文檔對象模型(dom)元素和其它數(shù)據(jù)加載到客戶端設(shè)備,來降低在客戶端設(shè)備處提供和呈現(xiàn)交互式地圖用戶界面中的時延。例如,通過互聯(lián)網(wǎng)提供圖像文件(例如,壓縮圖像文件)所需的聯(lián)網(wǎng)資源量可能大大少于提供用于在客戶端設(shè)備處生成地圖的腳本、畫布和dom元素所需的聯(lián)網(wǎng)資源量。
類似地,由于客戶端設(shè)備的處理器不必加載腳本或者dom元素或者生成畫布,所以可以通過使用壓縮圖像文件來減少對客戶端設(shè)備的計算資源的需求。另外,可以通過使用圖像文件來減少用于呈現(xiàn)交互式地圖用戶界面的客戶端設(shè)備的內(nèi)存量(例如,ram),這會釋放內(nèi)存以供其它應(yīng)用并且提高客戶端設(shè)備處理數(shù)據(jù)的速度。通過為地圖圖像的每個整體子區(qū)域指派特定顏色,可以減小(例如,壓縮)存儲圖像的圖像文件的大小,導(dǎo)致設(shè)備之間的傳輸時間更快并且用于傳送圖像文件的所消耗網(wǎng)絡(luò)帶寬更少。因此,實施例可以解決與交互式地圖數(shù)據(jù)的傳遞和顯示相關(guān)聯(lián)的問題。
本說明書所描述的主題的一個或者多個實施例的細(xì)節(jié)在附圖和下面的描述中闡述。本主題的其它特征、方面、和優(yōu)點將根據(jù)說明書、附圖、和權(quán)利要求書而變得顯而易見。
附圖說明
圖1是數(shù)據(jù)管理系統(tǒng)提供交互式地圖用戶界面的環(huán)境。
圖2是示例交互式地圖用戶界面的屏幕截圖。
圖3是提供交互式地圖用戶界面的示例過程的流程圖。
圖4是壓縮圖像文件的示例過程的流程圖。
在各個附圖中,相似的附圖標(biāo)記和名稱指示相似的元件。
具體實施方式
系統(tǒng)可以降低在提供和呈現(xiàn)交互式地圖用戶界面中的時延。例如,系統(tǒng)可以生成由地圖服務(wù)生成的地圖的圖像。該圖像可以描繪特定區(qū)域及其子區(qū)域的地圖。系統(tǒng)也可以生成電子索引,該電子索引將圖像內(nèi)的位置(例如,圖像的x-y坐標(biāo))映射到圖像的子區(qū)域并且將電子索引和圖像提供至客戶端設(shè)備。電子索引也可以將子區(qū)域映射到子區(qū)域的數(shù)據(jù)。以這種方式,例如,當(dāng)用戶通過懸停在與子區(qū)域相對應(yīng)的位置上或者選擇該位置來與在與特定子區(qū)域相對應(yīng)的位置處的地圖的圖像交互時,可以按照交互式方式向用戶呈現(xiàn)該子區(qū)域的數(shù)據(jù)。
例如,通過互聯(lián)網(wǎng)將圖像提供至客戶端設(shè)備可能比在客戶端設(shè)備處使用地圖服務(wù)來生成地圖需要更少的計算資源和網(wǎng)絡(luò)資源。這也提高了向用戶呈現(xiàn)地圖用戶界面的速度。通過壓縮圖像,可以進(jìn)一步減少計算資源和將資源聯(lián)網(wǎng)的量,并且進(jìn)一步提高速度。在一些實施方式中,可以通過為圖像的每個子區(qū)域指派特定顏色來壓縮圖像。例如,可以將整個子區(qū)域描繪成指派給子區(qū)域的特定顏色,而不是描繪成道路、地形等的不同顏色。以這種方式,可以減小圖像文件的大小,允許網(wǎng)絡(luò)上的傳輸更快和通過網(wǎng)絡(luò)傳輸圖像的網(wǎng)絡(luò)帶寬更少。例如,因為給定子區(qū)域的所有地區(qū)是相同的顏色,所以僅僅需要發(fā)送針對表示子區(qū)域的圖像的整個地區(qū)的單一顏色代碼(例如,rgb值),而不是發(fā)送針對子區(qū)域的多個不同部分的不同顏色代碼。另外,客戶端設(shè)備可以通過使用壓縮圖像渲染技術(shù)——例如由圖形處理單元(gpu)實現(xiàn)——來更快速地呈現(xiàn)壓縮圖像。
為了進(jìn)一步降低在呈現(xiàn)交互式用戶界面中的時延,可以在請求地圖之前提供地圖的附加圖像。如果用戶請求地圖,則可以將附加地圖圖像存儲在客戶端設(shè)備處——例如在高速緩存中,使得更快速地呈現(xiàn)地圖。例如,在用戶選擇了更詳細(xì)的視圖的子區(qū)域中的一個的情況下,系統(tǒng)可以提供響應(yīng)于該請求而生成的圖像中所描繪的每個子區(qū)域的更詳細(xì)的地圖。
圖1是數(shù)據(jù)管理系統(tǒng)110提供交互式地圖用戶界面的示例環(huán)境100。例如,響應(yīng)于從客戶端設(shè)備接收到的請求,數(shù)據(jù)管理系統(tǒng)110可以將交互式地圖用戶界面提供至客戶端設(shè)備,例如,客戶端設(shè)備150。數(shù)據(jù)管理系統(tǒng)110可以通過數(shù)據(jù)通信網(wǎng)絡(luò)130發(fā)送交互式地圖用戶界面,數(shù)據(jù)通信網(wǎng)絡(luò)13例如局域網(wǎng)(lan)、廣域網(wǎng)(wan)、移動通信網(wǎng)絡(luò)、互聯(lián)網(wǎng)、或者其組合。網(wǎng)絡(luò)130可以包括服務(wù)器、集線器、路由器、交換機(jī)、接口設(shè)備、傳輸介質(zhì)、以及使得設(shè)備能夠?qū)?shù)據(jù)發(fā)送至其它設(shè)備并且從其它設(shè)備接收數(shù)據(jù)的其它聯(lián)網(wǎng)組件。
客戶端設(shè)備150是電子設(shè)備,該電子設(shè)備能夠通過網(wǎng)絡(luò)130來請求和接收電子資源和其它數(shù)據(jù)。示例客戶端設(shè)備150包括個人計算機(jī)、移動通信設(shè)備(例如,智能電話、平板計算設(shè)備、和/或智能手表)、以及可以通過網(wǎng)絡(luò)130發(fā)送和接收數(shù)據(jù)的其它設(shè)備??蛻舳嗽O(shè)備150通常包括促進(jìn)通過網(wǎng)絡(luò)130發(fā)送和接收數(shù)據(jù)的用戶應(yīng)用,諸如web瀏覽器。web瀏覽器可以使得用戶能夠與文本、圖像、視頻、音樂、和通常位于網(wǎng)站處的網(wǎng)頁上的其它信息交互。
客戶端設(shè)備150可以包括其它應(yīng)用,例如,為特定類型的設(shè)備或者為特定平臺開發(fā)的本原應(yīng)用(nativeapplication)。例如,客戶端設(shè)備150包括地圖查看器155,該地圖查看器155向客戶端設(shè)備150的用戶呈現(xiàn)交互式地圖用戶界面157。地圖查看器150可以實現(xiàn)在web瀏覽器、本原應(yīng)用、或者另一種類型的應(yīng)用程序中。
交互式地圖用戶界面157呈現(xiàn)特定區(qū)域的地圖。例如,交互式地圖用戶界面157可以呈現(xiàn)由從客戶端設(shè)備150接收到的請求指定的特定區(qū)域的地圖。交互式地圖用戶界面157也可以呈現(xiàn)與包括在地圖中的特定區(qū)域和/或該區(qū)域的子區(qū)域有關(guān)的數(shù)據(jù)。如下面所描述的,呈現(xiàn)的數(shù)據(jù)可以包括與客戶端設(shè)備150的用戶被授權(quán)訪問的在線賬戶有關(guān)的賬戶數(shù)據(jù)。該數(shù)據(jù)可以響應(yīng)于與地圖的用戶交互來呈現(xiàn)。例如,如果客戶端設(shè)備150的用戶將光標(biāo)或者其它指針懸停在與特定子區(qū)域相對應(yīng)的位置上,則可以向用戶呈現(xiàn)該子區(qū)域的數(shù)據(jù)。在圖2中圖示了示例交互式地圖用戶界面并且在下面更詳細(xì)地描述了該示例交互式地圖用戶界面。
數(shù)據(jù)管理系統(tǒng)110可以管理用戶和/或組織的數(shù)據(jù)并且提供該數(shù)據(jù)以用于呈現(xiàn)給用戶,例如,在數(shù)據(jù)管理系統(tǒng)110所生成的用戶界面中。例如,數(shù)據(jù)管理系統(tǒng)110可以管理多個不同賬戶持有者的多個不同賬戶的在線賬戶數(shù)據(jù)。在特定示例中,數(shù)據(jù)管理系統(tǒng)110可以管理多個不同組織的內(nèi)容遞送賬戶數(shù)據(jù)。下面所描述的系統(tǒng)和技術(shù)也可以應(yīng)用于各種其它類型的數(shù)據(jù)。
賬戶管理系統(tǒng)110所管理的賬戶數(shù)據(jù)可以包括與賬戶有關(guān)的任何數(shù)據(jù),諸如內(nèi)容項的效能數(shù)據(jù)(例如,閃現(xiàn)(impression)、點進(jìn)率、轉(zhuǎn)化率等)、賬戶持有者的預(yù)算信息、和/或內(nèi)容項分發(fā)準(zhǔn)則。每個賬戶持有者的賬戶數(shù)據(jù)存儲在賬戶數(shù)據(jù)存儲設(shè)備115中,該賬戶數(shù)據(jù)存儲設(shè)備115可以包括位于一個或者多個數(shù)據(jù)中心中的多個數(shù)據(jù)存儲設(shè)備。每個賬戶持有者的賬戶數(shù)據(jù)可以單獨地并且安全地被存儲,使得不會將一個賬戶持有者的賬戶數(shù)據(jù)提供至不同賬戶持有者的用戶。
賬戶數(shù)據(jù)的至少一部分可以與用于識別數(shù)據(jù)的對應(yīng)地理位置的數(shù)據(jù)存儲在一起。例如,內(nèi)容遞送活動的數(shù)據(jù)可以包括指定以下的數(shù)據(jù):內(nèi)容項的閃現(xiàn)次數(shù)、對內(nèi)容項的選擇次數(shù)、由內(nèi)容項的呈現(xiàn)造成的轉(zhuǎn)化次數(shù)、和/或其它適當(dāng)?shù)幕顒訑?shù)據(jù)。每個事件(例如,閃現(xiàn)、選擇、轉(zhuǎn)化等)的數(shù)據(jù)可以包括事件發(fā)生的地理位置的名稱。例如,如果內(nèi)容項被呈現(xiàn)在位于西雅圖的客戶端設(shè)備上,則閃現(xiàn)的數(shù)據(jù)可以指示發(fā)生在西雅圖的閃現(xiàn)。以這種方式,可以基于位置來過濾數(shù)據(jù)并且可以確定與每個位置相關(guān)聯(lián)的度量。
數(shù)據(jù)管理系統(tǒng)10包括一個或者多個前端服務(wù)器111、數(shù)據(jù)選擇器113、和地圖用戶界面生成器120。數(shù)據(jù)選擇器113和地圖用戶界面生成器120也可以實現(xiàn)在一個或者多個服務(wù)器中。例如,前端服務(wù)器111、數(shù)據(jù)選擇器113、和地圖用戶界面生成器120可以實現(xiàn)在位于一個或者多個位置(例如,數(shù)據(jù)中心)中的一個或者多個服務(wù)器中。前端服務(wù)器111、數(shù)據(jù)選擇器113、和地圖用戶界面生成器120可以例如通過網(wǎng)絡(luò)來在彼此之間傳輸數(shù)據(jù)。
前端服務(wù)器111從客戶端設(shè)備接收對數(shù)據(jù)的請求并且將請求的數(shù)據(jù)提供至客戶端設(shè)備。前端服務(wù)器111可以充當(dāng)客戶端設(shè)備與數(shù)據(jù)選擇器113和地圖用戶界面生成器120之間的接口。例如,前端服務(wù)器111可以將對數(shù)據(jù)的請求轉(zhuǎn)發(fā)至數(shù)據(jù)選擇器113。進(jìn)而,數(shù)據(jù)選擇器113可以從賬戶數(shù)據(jù)存儲設(shè)備115獲得適當(dāng)?shù)臄?shù)據(jù)并且將該數(shù)據(jù)提供至前端服務(wù)器111。然后,前端服務(wù)器111可以將數(shù)據(jù)提供至提交該請求的客戶端設(shè)備。
前端服務(wù)器111也可以確定接收到的請求是否正在請求地圖用戶界面。例如,該請求可以指定其正在請求描繪了特定區(qū)域的賬戶數(shù)據(jù)的地圖用戶界面。在另一示例中,客戶端設(shè)備的用戶可以按照觸發(fā)對另一地圖用戶界面的請求的方式來與地圖用戶界面交互。例如,用戶可以放大或者縮小地圖用戶界面以查看不同區(qū)域或者子區(qū)域的更詳細(xì)的視圖。在該示例中,該請求可以指定要包括在地圖用戶界面中的區(qū)域。
如果前端服務(wù)器111確定請求正在請求地圖用戶界面,則前端服務(wù)器111可以向地圖用戶界面生成器120請求地圖用戶界面。地圖用戶界面生成器120可以針對請求的區(qū)域生成交互式地圖用戶界面并且將該交互式地圖用戶界面提供至前端服務(wù)器111。進(jìn)而,前端服務(wù)器111將交互式地圖用戶界面提供至客戶端設(shè)備。
在一些實施方式中,數(shù)據(jù)選擇器113可以確定是否將地圖用戶界面提供至客戶端設(shè)備150。例如,數(shù)據(jù)選擇器113可以基于正被提供至客戶端設(shè)備150的數(shù)據(jù)來確定是否提供地圖用戶界面。如果數(shù)據(jù)包括特點于多個不同地理位置的數(shù)據(jù),則數(shù)據(jù)選擇器113可以確定要提供地圖用戶界面。例如,針對多個不同地理位置中的每一個,數(shù)據(jù)可以包括在內(nèi)容項已經(jīng)在該地理位置中被提供時的該內(nèi)容項的轉(zhuǎn)化率。在該示例中,數(shù)據(jù)選擇器113可以確定要提供地圖用戶界面,該地圖用戶界面在其位于地圖上的適當(dāng)位置處呈現(xiàn)轉(zhuǎn)化率。
地圖用戶界面生成器120生成交互式地圖用戶界面,該交互式地圖用戶界面呈現(xiàn)地圖中所描繪的地理位置的數(shù)據(jù)。例如,地圖用戶界面生成器120可以生成交互式地圖用戶界面,該交互式地圖用戶界面描繪了由從客戶端設(shè)備接收到的請求指定的特定區(qū)域的地圖。地圖用戶界面生成器120所生成的交互式地圖用戶界面可以包括更復(fù)雜的地圖的圖像和與該圖像所描繪的地理位置相對應(yīng)的數(shù)據(jù)索引。以這種方式,與通過使用從地圖服務(wù)獲得的代碼(例如腳本)、dom元素、和其它數(shù)據(jù)在客戶端設(shè)備150處生成地圖相比較,可以降低在對客戶端設(shè)備150處的交互式地圖用戶界面進(jìn)行渲染中的時延。另外,可以減少對用于對交互式地圖用戶界面進(jìn)行渲染的客戶端設(shè)備150的計算資源的需求,從而提高客戶端設(shè)備150的效能。
地圖用戶界面生成器120包括一個或者多個地圖渲染服務(wù)器121。地圖渲染服務(wù)器121可以使用地圖服務(wù)122和地圖客戶端123來對地理區(qū)域的地圖進(jìn)行渲染。地圖服務(wù)122可以包括web地圖服務(wù),該web地圖服務(wù)響應(yīng)于對地圖的請求而將地圖或者地圖的部分提供至地圖客戶端123。例如,地圖服務(wù)122可以基于對特定區(qū)域的地圖的請求來選擇地圖圖塊(tile)、覆蓋層、和其它地圖數(shù)據(jù)以提供至地圖客戶端123。地圖服務(wù)122可以從地圖數(shù)據(jù)存儲設(shè)備124選擇地圖圖塊、覆蓋層、和其它地圖數(shù)據(jù)。
地圖客戶端123可以從地圖服務(wù)122請求地圖,組織從地圖服務(wù)接收到的地圖數(shù)據(jù),并且對地圖進(jìn)行渲染。在一些實施方式中,地圖客戶端123使用多個腳本來生成地圖畫布、在該畫布上組織地圖圖塊,將覆蓋層布置在該地圖圖塊上,將其它地圖數(shù)據(jù)定位在地圖上,并且對地圖進(jìn)行渲染,例如,在顯示器處或者在存儲器中。為了對地圖進(jìn)行渲染,地圖客戶端123也可以加載腳本用來對地圖進(jìn)行渲染的多個dom元素。
地圖客戶端123可以與地圖服務(wù)122交互以對例如客戶端設(shè)備150的客戶端設(shè)備所請求的地圖進(jìn)行渲染。通過對處于地圖渲染服務(wù)器121處而不是處于客戶端設(shè)備150處的地圖進(jìn)行渲染,當(dāng)?shù)貓D渲染服務(wù)器具有用來對地圖進(jìn)行渲染的更強(qiáng)大并且更多數(shù)目的計算資源時,可以更快速地對地圖進(jìn)行渲染。另外,地圖客戶端123可以在沒有通過互聯(lián)網(wǎng)提交請求的情況下與地圖服務(wù)122交互,進(jìn)一步減少對地圖進(jìn)行渲染所需的時間量。
地圖用戶界面生成器120還包括地圖圖像文件生成器125、索引生成器128、和文件壓縮器129。地圖圖像文件生成器125可以生成由地圖客戶端123渲染的地圖的圖像并且生成表示該圖像的圖像文件。例如,地圖圖像文件生成器125可以捕獲渲染的地圖的屏幕截圖并且生成表示捕獲的圖像的圖像文件。圖像文件可以是便攜式網(wǎng)絡(luò)圖形(png)文件、圖形交換格式(gif)文件、聯(lián)合圖像專家組(jpeg)文件、或者另一適當(dāng)類型的圖像文件。
地圖圖像文件生成器125包括邊界檢測器126和視覺特性選擇器127。邊界檢測器126可以檢測在地圖圖像文件生成器125所生成的地圖的圖像內(nèi)的視覺邊界。例如,圖像可以描繪包括由邊界限定的子區(qū)域的特定區(qū)域。在特定示例中,區(qū)域可以是美國并且子區(qū)域可以是各個州。邊界檢測器126可以使用例如邊緣檢測的邊界檢測技術(shù)來檢測子區(qū)域之間的邊界。
在一些實施方式中,邊界檢測器126也可以基于邊界和/或基于指定圖像所描繪的區(qū)域的數(shù)據(jù)來識別圖像所描繪的子區(qū)域。例如,通過了解圖像內(nèi)的區(qū)域和子區(qū)域,邊界檢測器126可以確定圖像的哪些有邊界區(qū)域與每個子區(qū)域相對應(yīng)。邊界檢測器126可以通過比較由圖像中的邊界限定的形狀和每個子區(qū)域的已知形狀來確定子區(qū)域。
視覺特性選擇器127可以選擇視覺特性以與地圖的圖像中所描繪的每個子區(qū)域相關(guān)聯(lián)。例如,視覺特性可以是顏色(例如,基于rgb顏色模型或者紅色、綠色、藍(lán)色、alpha(rgba顏色模型))、加明暗、加影線、顏色強(qiáng)度、或者一些其它適當(dāng)?shù)囊曈X特性。在一些實施方式中,視覺特性選擇器127基于每個子區(qū)域的數(shù)據(jù)來選擇每個子區(qū)域的視覺特性。例如,當(dāng)內(nèi)容項被呈現(xiàn)在位于子區(qū)域中的客戶端設(shè)備處時,可以生成交互性地圖用戶界面以呈現(xiàn)內(nèi)容項的效能。在該示例中,視覺特性選擇器127可以基于每個子區(qū)域的效能指標(biāo)來選擇每個子區(qū)域的視覺特性。內(nèi)容項具有更好效能的子區(qū)域可以以比內(nèi)容項具有較差效能的子區(qū)域更亮的顏色來呈現(xiàn)。
在另一示例中,雖然顏色的明暗或者亮度是基于子區(qū)域的數(shù)據(jù)來變化的,但是可以以相同的顏色來描繪每個子區(qū)域。例如,可以以顏色藍(lán)色描繪每個子區(qū)域。視覺特性選擇器127可以基于每個子區(qū)域的數(shù)據(jù)來為每個子區(qū)域選擇藍(lán)色的亮度或者明暗。在又一示例中,可以隨機(jī)地或者偽隨機(jī)地選擇每個子區(qū)域的視覺特性以區(qū)分不同子區(qū)域。
索引生成器128可以生成電子索引,該電子索引將圖像內(nèi)的位置映射到該圖像中所描繪的子區(qū)域。例如,電子索引可以將圖像的每個x-y坐標(biāo)映射到其對應(yīng)子區(qū)域。電子索引也可以將每個子區(qū)域的數(shù)據(jù)映射到地圖的圖像所描繪的子區(qū)域。例如,索引生成器128可以從數(shù)據(jù)選擇器113獲得子區(qū)域的數(shù)據(jù)。在一些實施方式中,電子索引將子區(qū)域的數(shù)據(jù)映射到指派給子區(qū)域的唯一視覺特性(例如,唯一rgb或者rgba值)。以這種方式,當(dāng)用戶與在子區(qū)域處——例如在子區(qū)域的x-y坐標(biāo)中的一個坐標(biāo)處的圖像或者唯一視覺特性交互時,子區(qū)域的數(shù)據(jù)可以從索引中獲得并且被呈現(xiàn)給用戶。
文件壓縮器129可以壓縮表示地圖的圖像的圖像文件,以用于通過網(wǎng)絡(luò)130的更快速的傳遞以及向客戶端設(shè)備150的用戶的更快速的渲染。在一些實施方式中,文件壓縮器129通過使用為圖像中描繪的每個子區(qū)域選擇的唯一視覺特性來壓縮圖像文件。例如,每個子區(qū)域的唯一視覺特性可以是指派給每個子區(qū)域的唯一顏色。在該示例中,文件壓縮器129可以通過將該子區(qū)域的唯一顏色指派給每個特定子區(qū)域的圖像區(qū)來壓縮圖像文件。以這種方式,圖像文件僅僅只需針對每個子區(qū)域存儲與該子區(qū)域相對應(yīng)的x-y坐標(biāo)和該子區(qū)域的rgb顏色值??蛻舳嗽O(shè)備150的應(yīng)用(例如,web瀏覽器)可以使用每個子區(qū)域的x-y坐標(biāo)和每個子區(qū)域的唯一rgb顏色來對客戶端設(shè)備150處的地圖的圖像進(jìn)行渲染。
文件壓縮器129將壓縮的圖像文件和由索引生成器128生成的電子索引提供至前端服務(wù)器。進(jìn)而,前端服務(wù)器將圖像文件和索引提供至客戶端設(shè)備150。然后,客戶端設(shè)備150的地圖查看器155可以對由交互式地圖用戶界面中的圖像文件表示的地圖的圖像進(jìn)行渲染。
前端服務(wù)器111也可以將代碼、例程、或者腳本提供至客戶端設(shè)備150,該客戶端設(shè)備150使得客戶端設(shè)備150響應(yīng)于與地圖的圖像的某些用戶交互來執(zhí)行某些操作。例如,響應(yīng)于用戶將指針(例如,鼠標(biāo)光標(biāo))懸停在與特定子區(qū)域相對應(yīng)的圖像的位置上,腳本可以使得客戶端設(shè)備150訪問電子索引以獲得和呈現(xiàn)與特定子區(qū)域有關(guān)的數(shù)據(jù)。例如,如果用戶將指針懸停在特定子區(qū)域上,則客戶端設(shè)備150可以從電子索引獲得特定子區(qū)域的數(shù)據(jù)并且將該數(shù)據(jù)呈現(xiàn)給客戶端設(shè)備150的用戶??蛻舳嗽O(shè)備150可以基于用戶交互相對于地圖的圖像的位置來識別要獲得其數(shù)據(jù)的子區(qū)域。例如,客戶端設(shè)備150可以在懸停事件(例如,指針保持在相同位置中至少閾值時間量)期間檢測指針的x-y坐標(biāo)并且從與檢測到的x-y坐標(biāo)相對應(yīng)的電子索引中獲得數(shù)據(jù)。在另一示例中,客戶端設(shè)備150可以確定懸停事件期間在指針的位置處的圖像的顏色并且從與該顏色相對應(yīng)的電子索引中獲得數(shù)據(jù)。
在一些實施方式中,地圖用戶界面生成器120生成地圖的兩個圖像。第一圖像可以是由地圖渲染服務(wù)器渲染的地圖的圖像。例如,第一圖像可以描繪具有任何道路、水體、地形類型的顏色等的所渲染的地圖。第二圖像可以是針對特定子區(qū)域具有特定rgb顏色的圖像。在該示例中,第二圖像可以是第一圖像上的覆蓋層,但是對客戶端設(shè)備150的用戶不可見。作為替代,第二圖像可以用于將用戶交互的位置映射到圖像中所描繪的子區(qū)域,如上所述。以這種方式,呈現(xiàn)給用戶的地圖可能看起來與通常由地圖服務(wù)122提供的地圖相同,同時仍然實現(xiàn)了渲染速度和網(wǎng)絡(luò)帶寬消耗的改進(jìn)。
在一些實施方式中,地圖用戶界面生成器120生成地圖的附加圖像和索引,并且響應(yīng)于對交互式地圖用戶界面的請求而將附加圖像和索引中的每一個提供至客戶端設(shè)備150。例如,請求可以指定包括多個子區(qū)域的特定區(qū)域。在該示例中,地圖用戶界面生成器120可以生成每個子區(qū)域的地圖的圖像和每個子區(qū)域的電子索引。特定子區(qū)域的圖像可以描繪特定子區(qū)域的子區(qū)域。類似地,特定子區(qū)域的電子索引可以包括特定子區(qū)域的每個子區(qū)域的數(shù)據(jù)。
地圖用戶界面生成器120可以將附加圖像和電子索引與響應(yīng)于請求生成的原始圖像一起或者在原始圖像已經(jīng)被傳送至客戶端設(shè)備150之后傳送至客戶端設(shè)備150。客戶端設(shè)備150可以將附加圖像和電子索引存儲在客戶端設(shè)備150的高速緩存中??蛻舳嗽O(shè)備150可以響應(yīng)于與包括原始圖像(或者另一圖像)的交互式地圖用戶界面的用戶交互來呈現(xiàn)附加圖像。例如,用戶可以選擇原始圖像所描繪的特定子區(qū)域。作為響應(yīng),客戶端設(shè)備150可以從高速緩存中獲得選擇的子區(qū)域的圖像并且在沒有從數(shù)據(jù)管理系統(tǒng)110請求新的交互式地圖用戶界面的情況下呈現(xiàn)該圖像。以這種方式,可以對子區(qū)域的詳細(xì)地圖進(jìn)行更加快速的渲染并且可以減少網(wǎng)絡(luò)流量。
圖2是示例交互式地圖用戶界面210的屏幕截圖200。在該示例中,交互式地圖用戶界面210被呈現(xiàn)在web瀏覽器中。在一些實施方式中,交互式地圖用戶界面210由另一應(yīng)用程序呈現(xiàn),例如本原應(yīng)用。
示例交互式地圖用戶界面210包括特定區(qū)域的地圖的圖像220。在該示例中,地圖的圖像220描繪了若干東南部州。每個州是東南部區(qū)域的子區(qū)域。雖然未在圖2中示出,但是每個州可以包括特定于該州的視覺特性。例如,視覺特性可以是顏色(例如,基于rgb顏色模型)、加明暗、加影線、顏色強(qiáng)度、或者區(qū)別于不同州的一些其它適當(dāng)?shù)囊曈X特性。在特定示例中,喬治亞(georgia)州可以是綠色的,而阿拉巴馬(alabama)州可以是藍(lán)色的。在另一示例中,每個州可以是相同的基礎(chǔ)顏色。然而,每個州可以是該顏色的不同強(qiáng)度、明暗、或者亮度。例如,每個州可以是不同明暗的藍(lán)色。
每個州的視覺特性可以基于與每個州相對應(yīng)的數(shù)據(jù)。例如,交互式地圖用戶界面210可以針對每個州呈現(xiàn)由于呈現(xiàn)該州中的特定內(nèi)容項而造成的轉(zhuǎn)化次數(shù)。在該示例中,每個州的區(qū)以相同的顏色來呈現(xiàn),其中,該顏色的明暗基于每個州的轉(zhuǎn)化次數(shù)。例如,具有最多轉(zhuǎn)化的州可以是最暗的,而具有最少轉(zhuǎn)化的州可以是最亮的。
每個州的數(shù)據(jù)可以被存儲在將數(shù)據(jù)和視覺特性映射到每個州的電子索引中。當(dāng)用戶例如通過將光標(biāo)懸停在州上或者選擇該州來與該州交互時,可以呈現(xiàn)該州的數(shù)據(jù)。例如,光標(biāo)230懸停在喬治亞州上。作為響應(yīng),正在覆蓋層240中呈現(xiàn)由于正在位于喬治亞州的設(shè)備上呈現(xiàn)內(nèi)容項而發(fā)生的內(nèi)容項的轉(zhuǎn)化次數(shù)。在圖像220上呈現(xiàn)覆蓋層240。具體地,在圖像220中的喬治亞州上呈現(xiàn)覆蓋層240。
在一些實施方式中,第一種類型的用戶交互可以使得數(shù)據(jù)呈現(xiàn)在圖像220上,并且第二種類型的用戶交互可以使得不同地圖呈現(xiàn)在交互式地圖用戶界面210中。例如,在某個州上的懸??梢允沟迷撝莸臄?shù)據(jù)呈現(xiàn)在該州上的覆蓋層中。另外,例如通過點擊該州來對該州進(jìn)行的選擇可以使得該州的詳細(xì)地圖被呈現(xiàn)。例如,如果選擇了喬治亞州,則可以呈現(xiàn)描繪了喬治亞的子區(qū)域的喬治亞的地圖。州視圖的子區(qū)域可以是縣、城市、電話區(qū)號、zip編碼、或者分割較大區(qū)域的其它方式。
在一些實施方式中,選擇的粒度級別可以基于在選擇了該州時交互式地圖用戶界面的縮放級別。例如,如果縮放級別大于閾值——例如大于100%,則選擇可以被視為屬于在與發(fā)生選擇的圖像中的位置相對應(yīng)的州內(nèi)的縣、城市、郵政編碼、或者區(qū)號。在該示例中,可以將交互式地圖用戶界面210更新為呈現(xiàn)選擇的縣、城市、郵政編碼、或者區(qū)號的地圖的圖像。如果縮放級別小于閾值——例如小于100%,則選擇可以被視為是整個州。在該示例中,可以將交互式地圖用戶界面210更新為呈現(xiàn)選擇的州的地圖的圖像。
在一些實施方式中,對州的選擇(或者另一種類型的用戶交互)使得用戶界面被呈現(xiàn),這使得用戶能夠輸入或者修改數(shù)據(jù)。例如,對州的選擇可以使得覆蓋層被呈現(xiàn),這使得用戶能夠修改或者輸入對內(nèi)容項的競價,選擇針對其來分發(fā)內(nèi)容項的關(guān)鍵詞,或者輸入另一適當(dāng)?shù)膮?shù)。輸入至覆蓋層的數(shù)據(jù)可以應(yīng)用于選擇的州。例如,如果用戶在選擇喬治亞之后修改競價,則該競價可以用于確定是否將內(nèi)容項呈現(xiàn)在位于喬治亞的客戶端設(shè)備上。
在一些實施方式中,在正在為特定活動呈現(xiàn)州(或者其它子區(qū)域)時對該州的選擇導(dǎo)致活動的有效狀態(tài)與無效狀態(tài)之間的切換。例如,如果州對于活動是無效的(例如,活動的內(nèi)容項不適格被提供至位于州中的客戶端設(shè)備),則對州的選擇可以將州的狀態(tài)切換為活動的有效狀態(tài)(例如,內(nèi)容項適格被提供至位于該州中的客戶端設(shè)備)。在該示例中,響應(yīng)于選擇,客戶端設(shè)備會將指定州已經(jīng)針對活動被切換的數(shù)據(jù)提供至數(shù)據(jù)管理系統(tǒng)110。作為響應(yīng),數(shù)據(jù)管理系統(tǒng)110可以基于州狀態(tài)的變化來更新活動的分發(fā)準(zhǔn)則。
圖3是提供交互式地圖用戶界面的示例過程300的流程圖。過程300的操作可以例如由諸如圖1的數(shù)據(jù)管理系統(tǒng)110的一個或者多個數(shù)據(jù)處理裝置實現(xiàn)。過程300也可以由存儲在計算機(jī)存儲介質(zhì)上的指令實現(xiàn),其中,數(shù)據(jù)處理裝置對指令的執(zhí)行使得數(shù)據(jù)處理裝置執(zhí)行過程300的操作。
接收對呈現(xiàn)交互式地圖用戶界面的請求(302)。例如,客戶端設(shè)備可以提交對描繪了特定地理區(qū)域的交互式地圖用戶界面的請求。該請求也可以指定與客戶端設(shè)備的用戶想要查看的特定地理區(qū)域有關(guān)的數(shù)據(jù)。例如,請求可以指定南美洲的地理位置和在將內(nèi)容項呈現(xiàn)在位于南美洲的設(shè)備處時特定內(nèi)容項的選擇數(shù)據(jù)。
通過使用地圖服務(wù)對特定區(qū)域的地圖進(jìn)行渲染(304)。例如,如上所述,地圖客戶端可以與地圖服務(wù)交互以生成地圖畫布、在畫布上組織地圖圖塊、將覆蓋層定位在地圖圖塊上、將其它地圖數(shù)據(jù)定位在地圖上、以及對地圖進(jìn)行渲染,例如,在顯示器處或者在存儲器中。渲染可以包括生成特定區(qū)域的畫布并且加載用于生成地圖的編程元素(例如,腳本)和圖形元素(例如,地圖圖塊、覆蓋層等)。
生成表示渲染的地圖的圖像的圖像文件(306)。例如,可以通過截取正在呈現(xiàn)渲染的地圖的顯示器的屏幕截圖來捕獲渲染的地圖的圖像。然后,可以生成表示捕獲的圖像的圖像文件。圖像文件可以是png、gif、jpeg、或者其它適當(dāng)?shù)膱D像文件格式。
檢測圖像內(nèi)的一個或者多個子區(qū)域(308)。例如,可以通過使用邊界檢測技術(shù)來檢測圖像內(nèi)的邊界。然后,可以將邊界之間的形狀與特定地理區(qū)域的已知子區(qū)域的形狀進(jìn)行比較來識別子區(qū)域。
將不同的視覺特性指派給每個子區(qū)域(310)。例如,可以將不同顏色指派給每個子區(qū)域。顏色可以基于rgb模型或者另一適當(dāng)?shù)挠嬎銠C(jī)可讀顏色模型。在另一示例中,視覺特性可以是不同的加明暗、加影線、顏色強(qiáng)度、或者一些其它適當(dāng)?shù)囊曈X特性。
生成電子索引(312)。電子索引可以將圖像內(nèi)的每個位置映射到包括該位置的對應(yīng)子區(qū)域。電子索引也可以將每個子區(qū)域映射到與該子區(qū)域有關(guān)的數(shù)據(jù)。例如,可以請求交互式地圖用戶界面呈現(xiàn)與子區(qū)域有關(guān)的特定數(shù)據(jù)??梢詫⒚總€子區(qū)域的特定數(shù)據(jù)包括在電子索引中。
在一些實施方式中,電子索引將每個位置的x-y坐標(biāo)映射到其對應(yīng)子區(qū)域。在一些實施方式中,電子索引將視覺特性映射到子區(qū)域。例如,電子索引將每個子區(qū)域映射到其唯一rgb顏色。
將客戶端設(shè)備的用戶界面配置為呈現(xiàn)圖像(314)。例如,可以將致使呈現(xiàn)圖像的數(shù)據(jù)提供至客戶端設(shè)備。該數(shù)據(jù)可以包括表示圖像的圖像文件、電子索引、和代碼(例如例程或者腳本),其使得客戶端設(shè)備呈現(xiàn)圖像。該數(shù)據(jù)可以使得圖像被呈現(xiàn),其中,根據(jù)與不同子區(qū)域相對應(yīng)的不同視覺特性來呈現(xiàn)不同子區(qū)域中的每一個。例如,可以將每個子區(qū)域以其rgb顏色來呈現(xiàn)。在一些實施方式中,可以在將表示圖像的圖像文件傳送至客戶端設(shè)備之前壓縮該圖像文件。在圖4中圖示壓縮圖像文件的示例過程并且在下面對其進(jìn)行描述。
客戶端設(shè)備可以響應(yīng)于與圖像的用戶交互來訪問電子索引。例如,如果用戶將指針懸停在特定子區(qū)域的位置上,則客戶端設(shè)備可以檢測到圖像內(nèi)的懸停的位置(例如,x-y坐標(biāo))。然后,客戶端設(shè)備可以訪問電子索引以確定正在被懸停的子區(qū)域并且從電子索引檢索子區(qū)域的數(shù)據(jù)。然后,客戶端設(shè)備可以在用戶界面中——例如在接收到用戶交互的子區(qū)域上呈現(xiàn)檢索到的數(shù)據(jù)。
提供至客戶端設(shè)備的數(shù)據(jù)可以使得客戶端設(shè)備響應(yīng)于某些用戶交互來執(zhí)行其它操作。例如,客戶端設(shè)備可以響應(yīng)于對特定子區(qū)域處的圖像的選擇來切換特定子區(qū)域的活動的有效/無效狀態(tài)。在該示例中,腳本可以使得客戶端設(shè)備將指定特定子區(qū)域的有效/無效狀態(tài)的切換的數(shù)據(jù)傳送至內(nèi)容遞送系統(tǒng)。
在另一示例中,對特定子區(qū)域的選擇可以使得客戶端設(shè)備請求特定子區(qū)域的地圖。在該示例中,腳本可以使得客戶端設(shè)備訪問其高速緩存以確定表示特定子區(qū)域的圖像的圖像文件是否被存儲在高速緩存中。如果表示特定子區(qū)域的圖像的圖像文件被存儲在高速緩存中,則客戶端設(shè)備可以從高速緩存中獲得該圖像文件并且在用戶界面中呈現(xiàn)該特定子區(qū)域的圖像。如果表示特定子區(qū)域的圖像的圖像文件未被存儲在高速緩存中,則腳本可以使得客戶端設(shè)備請求該特定子區(qū)域的地圖的圖像。
圖4是壓縮圖像的示例過程400的流程圖。過程400的操作可以例如由諸如圖1的文件壓縮器129的一個或者多個數(shù)據(jù)處理裝置實現(xiàn)。過程400也可以由存儲在計算機(jī)存儲介質(zhì)上的指令實現(xiàn),其中,數(shù)據(jù)處理裝置對指令的執(zhí)行使得數(shù)據(jù)處理裝置執(zhí)行過程400的操作。
接收圖像文件(402)。圖像文件可以表示特定區(qū)域的圖像并且可以描繪特定區(qū)域的子區(qū)域。圖像文件可以是png、gif、jpeg、或者其它適當(dāng)?shù)膱D像文件格式。
接收指定多個不同子區(qū)域中的每一個的圖像內(nèi)的位置的數(shù)據(jù)(404)。例如,數(shù)據(jù)可以為每個子區(qū)域指定在圖像內(nèi)的與每個子區(qū)域相對應(yīng)的x-y坐標(biāo)(或者x-y坐標(biāo)的范圍)。
為每個子區(qū)域識別不同顏色(406)。例如,可以為每個子區(qū)域指派基于rgb顏色模型的不同顏色。
壓縮圖像文件(408)。可以基于每個子區(qū)域的位置和指派給每個子區(qū)域的顏色來壓縮圖像文件。例如,圖像文件可以針對每個子區(qū)域存儲指派給該子區(qū)域的顏色和其對應(yīng)位置。因為可以在圖像文件中使用比多色子區(qū)域更少的數(shù)據(jù)來表示每個子區(qū)域,所以當(dāng)圖像包括單色子區(qū)域時,以這種方式壓縮圖像可以導(dǎo)致每像素低得多的成本(例如,根據(jù)每顯示像素圖像的數(shù)據(jù)大小)。
通過以這種方式壓縮圖像,可以通過網(wǎng)絡(luò)并且通過使用比非壓縮圖像文件少的帶寬來更加快速地傳送圖像文件。另外,客戶端設(shè)備的gpu可以比其可以呈現(xiàn)包括圖像內(nèi)的每個位置的詳細(xì)數(shù)據(jù)的非壓縮圖像文件更快速地呈現(xiàn)壓縮圖像文件。
在一般地參照內(nèi)容遞送管理系統(tǒng)的地圖界面描述實施例的同時,要了解,本主題可應(yīng)用于替選系統(tǒng),其中,數(shù)據(jù)被提供至用戶并且不限于內(nèi)容遞送管理。
在本說明書中描述的主題和操作的實施例可以以數(shù)字電子電路系統(tǒng),或者以計算機(jī)軟件、固件、或者硬件,包括在本說明書中公開的結(jié)構(gòu)以及其結(jié)構(gòu)等同物,或者在它們中的一個或者多個的組合來實現(xiàn)。在本說明書中描述的主題的實施例可以實現(xiàn)為一個或者多個計算機(jī)程序,即,編碼在計算機(jī)存儲介質(zhì)上以用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的計算機(jī)程序指令的一個或者多個模塊。替選地或者另外,程序指令可以編碼在人工生成的傳播信號上,例如,機(jī)器生成的電、光或者電磁信號,其被生成以編碼用于傳輸?shù)胶线m的接收器裝置的信息以供數(shù)據(jù)處理裝置執(zhí)行。計算機(jī)存儲介質(zhì)可以是或者被包括在計算機(jī)可讀存儲設(shè)備、計算機(jī)可讀存儲基底、隨機(jī)或者串行存取存儲器陣列或者設(shè)備、或者它們中的一個或者多個的組合中。此外,雖然計算機(jī)存儲介質(zhì)不是傳播信號,但是計算機(jī)存儲介質(zhì)可以是編碼在人工生成的傳播信號中的計算機(jī)程序指令的源或者目的地。計算機(jī)存儲介質(zhì)也可以是或者被包括在一個或者多個單獨物理組件或者介質(zhì)(例如,多個cd、磁盤、或者其它存儲設(shè)備)中。
在本說明書中描述的操作可以實現(xiàn)為由數(shù)據(jù)處理裝置對存儲在一個或者多個計算機(jī)可讀存儲設(shè)備上或者從其它源接收到的數(shù)據(jù)執(zhí)行的操作。
術(shù)語“數(shù)據(jù)處理裝置”包含用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備、和機(jī)器,包括:例如,可編程處理器、計算機(jī)、片上系統(tǒng)、或者上述中的多種、或者上述的組合。裝置可以包括專用邏輯電路系統(tǒng),例如,fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路)。除了硬件之外,裝置也可以包括為所討論的計算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、跨平臺運行時環(huán)境、虛擬機(jī)、或者它們中的一個或者多個的組合的代碼。設(shè)備和執(zhí)行環(huán)境可以實現(xiàn)各種不同的計算模型基礎(chǔ)架構(gòu),諸如web服務(wù)、分布式計算和網(wǎng)格計算基礎(chǔ)架構(gòu)。
計算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、腳本或者代碼)可以以任何形式的編碼語言編寫,包括編譯或者解釋語言、聲明式或者過程式語言,并且其可以以任何形式部署,包括作為獨立程序或者作為適合在計算環(huán)境中使用的模塊、組件、子例程、對象或者其它單元。計算機(jī)程序可以但并非必須與文件系統(tǒng)中的文件相對應(yīng)。程序可以存儲在保持其它程序或者數(shù)據(jù)(例如,存儲在標(biāo)記語言文檔中的一個或者多個腳本)的文件的一部分中,或者在專用于所討論的程序的單個文件中,或者在多個協(xié)同文件(例如,存儲一個或者多個模塊、子程序、或者代碼的部分的文件)中。計算機(jī)程序可以部署成在一個計算機(jī)上或者在位于一個站點或者跨多個站點分布并且通過通信網(wǎng)絡(luò)互連的多個計算機(jī)上執(zhí)行。
在本說明書中描述的過程和邏輯流可以由執(zhí)行一個或者多個計算機(jī)程序的一個或者多個可編程處理器執(zhí)行以通過操作輸入數(shù)據(jù)并且生成輸出來執(zhí)行動作。過程和邏輯流還可以由專用邏輯電路系統(tǒng)執(zhí)行,例如,fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路),并且設(shè)備還可以實現(xiàn)為專用邏輯電路系統(tǒng)。
適合執(zhí)行計算機(jī)程序的處理器包括:例如,通用微處理器、專用微處理器、以及任何種類的數(shù)字計算機(jī)的任何一個或者多個處理器。一般而言,處理器將接收來自只讀存儲器或者隨機(jī)存取存儲器或者兩者的指令和數(shù)據(jù)。計算機(jī)的必要元件是用于根據(jù)指令來執(zhí)行動作的處理器和用于存儲指令和數(shù)據(jù)的一個或者多個存儲器設(shè)備。一般而言,計算機(jī)還包括用于存儲數(shù)據(jù)的一個或者多個大容量存儲設(shè)備——例如磁盤、磁光盤、或者光盤,或者可以操作地耦合至其以接收來自其的數(shù)據(jù)或者將數(shù)據(jù)傳輸至其,或者進(jìn)行這兩者。然而,計算機(jī)無需具有這樣的設(shè)備。此外,計算機(jī)可以嵌入另一設(shè)備中,例如,移動電話、個人數(shù)字助理(pda)、移動音頻或者視頻播放器、游戲控制臺、全球定位系統(tǒng)(gps)接收器、或者便攜式存儲設(shè)備(例如,通用串行總線(usb)閃存驅(qū)動器),僅舉幾例。適于存儲計算機(jī)程序指令和數(shù)據(jù)的設(shè)備包括所有形式的非易失性存儲器、介質(zhì)和存儲器設(shè)備,包括:例如半導(dǎo)體存儲器設(shè)備——例如eprom、eeprom和閃速存儲器設(shè)備);磁盤——例如內(nèi)部硬盤或者可移動盤;磁光盤;cd-rom盤和dvd-rom盤。處理器和存儲器可以由專用邏輯電路系統(tǒng)補充或者可以并入該專用邏輯電路系統(tǒng)中。
為了提供與用戶的交互,在本說明書中描述的主題的實施例可以實現(xiàn)在具有以下的計算機(jī)上:用于向用戶顯示信息的顯示設(shè)備,例如,crt(陰極射線管)或者lcd(液晶顯示器)監(jiān)視器;以及鍵盤和指示設(shè)備,例如,鼠標(biāo)或者軌跡球,通過該鍵盤和該指示設(shè)備用戶可以向計算機(jī)提供輸入。也可以使用其它種類的設(shè)備來提供與用戶的交互;例如,向用戶提供的反饋可以是任何形式的感官反饋,例如,視覺反饋、聽覺反饋、或者觸覺反饋;并且可以以任何形式接收來自用戶的輸入,該形式包括聲音、語音、或者觸覺輸入。另外,計算機(jī)可以響應(yīng)于從web瀏覽器接收到的請求,通過將文檔發(fā)送至用戶所使用的設(shè)備并且從該設(shè)備接收文檔——例如通過將網(wǎng)頁發(fā)送至用戶的客戶端設(shè)備上的web瀏覽器來與用戶交互。
在本說明書中描述的主題的實施例可以實現(xiàn)在計算系統(tǒng)中,該計算系統(tǒng)包括例如作為數(shù)據(jù)服務(wù)器的后端組件,或者包括例如應(yīng)用服務(wù)器的中間件組件,或者包括例如具有用戶通過其可以與在本說明書中描述的主題的實施方式交互的圖形用戶界面或者web瀏覽器的客戶端計算機(jī)、或者一個或者多個這樣的后端、中間件、或者前端組件的任何組合。系統(tǒng)的組件可以通過例如通信網(wǎng)絡(luò)的任何形式或者介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“l(fā)an”)和廣域網(wǎng)(“wan”)、互連網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))、和點對點網(wǎng)絡(luò)(例如,adhoc點對點網(wǎng)絡(luò))。
計算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般彼此遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系依靠在每個計算機(jī)上運行并且彼此具有客戶端-服務(wù)器關(guān)系的計算機(jī)程序產(chǎn)生。在一些實施例中,服務(wù)器將數(shù)據(jù)(例如,html頁面)傳送至客戶端設(shè)備(例如,為了向與客戶端設(shè)備交互的用戶顯示數(shù)據(jù)并且從該用戶接收用戶輸入)??梢詮姆?wù)器處的客戶端設(shè)備接收在客戶端設(shè)備處生成的數(shù)據(jù)(例如,用戶交互的結(jié)果)。
雖然本說明書包含許多具體的實施方式細(xì)節(jié),但是這些細(xì)節(jié)不應(yīng)當(dāng)被解釋為對可以要求保護(hù)的權(quán)利要求的范圍的限制,而是應(yīng)當(dāng)被解釋為對特定實施例特有的特征的描述。本說明書在單獨實施例的場境(context)下所描述的某些特征也可以在單個實施例中以組合的方式實現(xiàn)。相反,在單個實施例的場境下描述的各種特征也可以單獨地在多個實施例中或者以任何合適的子組合實現(xiàn)。此外,雖然特征可能在上面被描述為在某些組合中起作用,并且甚至最初被如此要求保護(hù),但是來自所要求保護(hù)的組合中的一個或者多個特征在一些情況下可以從組合刪去,以及所要求保護(hù)的組合可以涉及子組合或者子組合的變體。
類似地,雖然操作在附圖中以特定的順序描述,但是這不應(yīng)當(dāng)被理解為要求以示出的特定順序或者以相繼順序來執(zhí)行這樣的操作,或者需要所有圖示的操作被執(zhí)行來獲得期望結(jié)果。在某些情況下,多任務(wù)處理和并行處理可能是有益的。此外,在上面所描述的實施例中的各個系統(tǒng)組件的分離不應(yīng)當(dāng)被理解為在所有的實施例中都要求這樣的分離,并且應(yīng)當(dāng)理解所描述的程序組件和系統(tǒng)通常可以被一起整合在單個軟件產(chǎn)品中或者封裝到多個軟件產(chǎn)品中。
因此,已經(jīng)描述了主題的特定實施例。其它實施例在所附權(quán)利要求書的范圍內(nèi)。在某些情況下,在權(quán)利要求書中記載的動作可以按照不同的順序來執(zhí)行并且仍然獲得期望的結(jié)果。另外,在附圖中描繪的過程不必要求所示的特定順序或者相繼順序來獲得期望的結(jié)果。在某些實施方式中,多任務(wù)處理和并行處理可能是有益的。