亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于網(wǎng)絡(luò)的系統(tǒng)、方法以及存儲介質(zhì)與流程

文檔序號:11458661閱讀:255來源:國知局
用于網(wǎng)絡(luò)的系統(tǒng)、方法以及存儲介質(zhì)與流程

本發(fā)明專利申請是2011年11月30日提出國際申請并于2013年08月07日進入中國國家階段,發(fā)明名稱為“圖形數(shù)據(jù)的復(fù)合語句索引”的發(fā)明專利的分案申請。

本公開總體上涉及數(shù)據(jù)庫,并且更具體地,涉及用于圖形數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)索引系統(tǒng)。



背景技術(shù):

通過包括專有網(wǎng)絡(luò)以及諸如因特網(wǎng)的公共網(wǎng)絡(luò)的各種局域和廣域計算機網(wǎng)絡(luò),計算機用戶能夠訪問并共享大量信息。通常,用戶的計算裝置上安裝的網(wǎng)絡(luò)應(yīng)用便于訪問位于由相關(guān)統(tǒng)一資源定位符(url)標(biāo)識的各網(wǎng)絡(luò)服務(wù)器的信息并與之互動。使得能夠共享用戶生成的內(nèi)容的傳統(tǒng)方法包括各種信息共享技術(shù)或諸如社交網(wǎng)絡(luò)網(wǎng)站的平臺。這種網(wǎng)站可以包括、鏈接到、或提供使得用戶能夠查看由其他用戶創(chuàng)建或定制的網(wǎng)頁的應(yīng)用的平臺,其中,其他用戶對于這種頁面的可視性以及互動由某些規(guī)則組的特性來支配。

這種社交網(wǎng)絡(luò)信息,并且一般地大部分信息,通常存儲在關(guān)系數(shù)據(jù)庫中??傮w上,關(guān)系數(shù)據(jù)庫是關(guān)系的集合(通常稱為表)。關(guān)系數(shù)據(jù)庫使用一組數(shù)學(xué)語句,這些語句可以使用結(jié)構(gòu)化查詢語言(sql)數(shù)據(jù)庫術(shù)語。例如,關(guān)系可以定義為具有相同屬性的一組元組。元組通常表示對象以及關(guān)于該對象的信息。關(guān)系通常被描述為以行和列來組織的表??傮w上,屬性所引用的所有數(shù)據(jù)在同一域中并且遵循相同的約束。

關(guān)系模型規(guī)定關(guān)系的元組沒有具體順序,并且元組也不對屬性施加順序。應(yīng)用通過指定查詢來訪問數(shù)據(jù),該查詢使用操作來識別元組、識別屬性、以及組合關(guān)系。關(guān)系可以修改,并且新的元組可以提供明確的值或從查詢衍生。類似地,查詢識別可能的元組從而更新或刪除。關(guān)系的每個元組都需要可通過其屬性值的一些組合(一個或多個)來唯一地識別。該組合稱為主鍵。在關(guān)系數(shù)據(jù)庫中,經(jīng)由關(guān)系來存儲和訪問所有數(shù)據(jù)。存儲數(shù)據(jù)的關(guān)系通常用表實現(xiàn)或稱為表。

諸如在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中實現(xiàn)的關(guān)系數(shù)據(jù)庫已經(jīng)成為例如財務(wù)記錄、制造及物流信息、個人數(shù)據(jù)、以及其他應(yīng)用的數(shù)據(jù)庫中的信息存儲的主要選擇。隨著計算機能力的增大,關(guān)系數(shù)據(jù)庫對傳統(tǒng)應(yīng)用的易用性已經(jīng)超過了使得關(guān)系數(shù)據(jù)庫在較早時期不實用的關(guān)系數(shù)據(jù)庫的效率低下。三個主導(dǎo)性的開源實施方式是mysql、postgresql和sqlite。mysql是關(guān)系數(shù)據(jù)庫管理系統(tǒng)(rdbms),其作為為多個數(shù)據(jù)庫提供多用戶接入的服務(wù)器運行。流行的lamp軟件棧的縮寫中的“m”是指mysql。其用于網(wǎng)絡(luò)應(yīng)用的受歡迎程度與php(lamp中的“p”)的受歡迎程度密切相關(guān)。很多高流量網(wǎng)站將mysql用于數(shù)據(jù)存儲和用戶數(shù)據(jù)記錄。

數(shù)據(jù)庫索引是提高數(shù)據(jù)庫表的數(shù)據(jù)檢索操作速度的數(shù)據(jù)結(jié)構(gòu)。可以使用數(shù)據(jù)庫表的一個或多個列來創(chuàng)建數(shù)據(jù)庫索引,這提供了快速隨機查找和有序記錄的有效訪問。存儲索引所需的磁盤空間通常小于表所需的磁盤空間(這是因為索引通常只含有據(jù)以布置表的關(guān)鍵域,并且排除了表中的所有其他細節(jié)),產(chǎn)生了在存儲器中存儲表(該表的數(shù)據(jù)太大而不能存儲在存儲器中)的索引的可能性??梢允褂酶鞣N數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)索引。流行的索引包括平衡樹、b+樹、和哈希。

圖形是一組對象的抽象表示,其中對象的至少一些對通過鏈接連接?;ミB的對象通常稱為節(jié)點,而連接節(jié)點的鏈接稱為邊。然而,圖形結(jié)構(gòu)中的模型數(shù)據(jù)對可擴展性和性能提出了挑戰(zhàn)。需要遍歷圖形結(jié)構(gòu)的查詢可能需要許多數(shù)據(jù)庫查找表。高度可擴展的系統(tǒng)通常依賴于緩存和索引,以改善查詢響應(yīng)時間和總體性能。



技術(shù)實現(xiàn)要素:

本發(fā)明提供了針對圖形數(shù)據(jù)的索引系統(tǒng)的方法、設(shè)備、和系統(tǒng)。

根據(jù)本發(fā)明的一個方面,提供一種方法,包括:通過一個或多個計算系統(tǒng),響應(yīng)于創(chuàng)建對象而生成文檔標(biāo)識符,所述文檔標(biāo)識符包括對象標(biāo)識符成分和時間戳;通過所述計算系統(tǒng),從多個語句產(chǎn)生器模塊中選擇一個或多個語句產(chǎn)生器模塊,所述選擇至少部分基于各個所述對象的類型;通過一個或多個所選擇的語句產(chǎn)生器模塊,產(chǎn)生與所述數(shù)據(jù)對象相關(guān)聯(lián)的一個或多個語句,每個語句至少部分基于所述數(shù)據(jù)對象的一個或多個屬性;通過所述計算設(shè)備,向一個或多個索引輸出一個或多個對,所述對中的每一對包括所述文檔標(biāo)識符中的一個文檔標(biāo)識符以及所述語句中的一個語句。

根據(jù)本發(fā)明的又一個方面,提供一個或多個計算機可讀非暫時性存儲介質(zhì),所述存儲介質(zhì)實施軟件,并且所述軟件在執(zhí)行時操作為:響應(yīng)于創(chuàng)建對象而生成文檔標(biāo)識符,所述文檔標(biāo)識符包括對象標(biāo)識符成分和時間戳;從多個語句產(chǎn)生器模塊中選擇一個或多個語句產(chǎn)生器模塊,所述選擇至少部分基于各個所述對象的類型;產(chǎn)生與所述數(shù)據(jù)對象相關(guān)聯(lián)的一個或多個語句,每個語句至少部分基于所述數(shù)據(jù)對象的一個或多個屬性;向一個或多個索引輸出一個或多個對,所述對中的每一對包括所述文檔標(biāo)識符中的一個文檔標(biāo)識符以及所述語句中的一個語句;以及在一個或多個索引服務(wù)器上存儲所述一個或多個索引。

根據(jù)本發(fā)明的又一個方面,提供一種系統(tǒng),包括:一個或多個處理器;以及與所述處理器耦接的存儲器,該存儲器包括能夠由所述處理器執(zhí)行的指令。所述處理器在執(zhí)行所述指令時操作為:響應(yīng)于創(chuàng)建對象而生成文檔標(biāo)識符,所述文檔標(biāo)識符包括對象標(biāo)識符成分和時間戳;從多個語句產(chǎn)生器模塊中選擇一個或多個語句產(chǎn)生器模塊,所述選擇至少部分基于各個所述對象的類型;產(chǎn)生與所述數(shù)據(jù)對象相關(guān)聯(lián)的一個或多個語句,每個語句至少部分基于所述數(shù)據(jù)對象的一個或多個屬性;向一個或多個索引輸出一個或多個對,所述對中的每一對包括所述文檔標(biāo)識符中的一個文檔標(biāo)識符以及所述語句中的一個語句;以及在一個或多個索引服務(wù)器上存儲所述一個或多個索引。

在特定實施方式中,索引系統(tǒng)提供了非規(guī)范化和副本索引功能以改善查詢性能。以下在詳細說明書中結(jié)合附圖更詳細地描述了本公開的這些及其他特征、方面和優(yōu)點。

附圖說明

圖1示出了根據(jù)本發(fā)明一個實施方式的示例性索引系統(tǒng)架構(gòu)。

圖2示出了示例性計算機系統(tǒng)架構(gòu)。

圖3提供了示例性網(wǎng)絡(luò)環(huán)境。

圖4示出了說明用于向圖形和復(fù)合索引添加新對象的示例性方法的流程圖。

具體實施方式

現(xiàn)在參照附圖中示出的幾個實施方式來詳細描述本發(fā)明。在以下的說明書中,給出了許多具體細節(jié),以提供對本公開的透徹理解。然而,對于本領(lǐng)域中的技術(shù)人員來說,顯然在沒有這些具體細節(jié)中的一些或全部的情況下,也可以實踐本公開。在其他情況下,為了避免不必要地模糊本公開,沒有詳細描述公知的處理步驟和/或結(jié)構(gòu)。另外,雖然結(jié)合特定實施方式描述了本公開,但是應(yīng)當(dāng)理解,說明書無意將本公開限制到所描述的實施方式。相反,說明書旨在涵蓋可能包括在由所附權(quán)利要求定義的本公開的實質(zhì)和范圍內(nèi)的替換、修改、和等同物。

在特定實施方式中,本發(fā)明針對為數(shù)據(jù)對象和數(shù)據(jù)對象之間的關(guān)聯(lián)提供靈活搜索能力的數(shù)據(jù)庫索引基礎(chǔ)。特定實施方式涉及用于存儲和提供被建模為圖形的信息的索引系統(tǒng),該圖形包括節(jié)點和邊,邊定義了該邊在圖形中連接的節(jié)點之間的關(guān)聯(lián)或關(guān)系。在特定實施方式中,圖形是或包括社交圖形,并且索引系統(tǒng)是使得集成社交網(wǎng)絡(luò)環(huán)境可行的更大網(wǎng)絡(luò)系統(tǒng)、基礎(chǔ)、或平臺的一部分。在本公開中,可以在包括社交圖形信息的社交圖形的方面來描述社交網(wǎng)絡(luò)環(huán)境。實際上,本公開的特定實施方式依賴于、利用、或使用由/為社交網(wǎng)絡(luò)環(huán)境存儲的大部分或所有數(shù)據(jù)可以表示為社交圖形這一事實。特定實施方式提供了一種符合成本效益的基礎(chǔ),就像本文中描述的那樣,其能夠有效地、智能地、以及成功地隨著社交網(wǎng)絡(luò)環(huán)境的用戶數(shù)量的指數(shù)增加而擴展。

在特定實施方式中,文中描述的分布式索引系統(tǒng)和后端基礎(chǔ)提供了以下的一個或多個:擴展的低延遲、每個請求的更低成本、開發(fā)者更容易使用的框架、使涉及本文中通過示例描述的社交圖形的關(guān)聯(lián)(邊)和對象(節(jié)點)的組合查詢可行的基礎(chǔ)、為存儲的對象和關(guān)聯(lián)提供靈活和明確的查詢模式的基礎(chǔ)以及容易從php直接調(diào)用的基礎(chǔ)。另外,如本文中所使用的,“或”可以意味著“和”以及“或”,即,除非明確說明或暗指,否則“或”并不必然排除“和”。

特定實施方式可以在包括多個網(wǎng)絡(luò)可尋址系統(tǒng)的諸如因特網(wǎng)的廣域網(wǎng)環(huán)境中運行。圖3示出了示例性網(wǎng)絡(luò)環(huán)境,其中,可以運行各種示例性實施方式。網(wǎng)絡(luò)云60總體上表示本文中描述的系統(tǒng)和主機可以在上面通信的一個或多個互連網(wǎng)絡(luò)。網(wǎng)絡(luò)云60可以包括基于包的廣域網(wǎng)(諸如因特網(wǎng))、私有網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、尋呼網(wǎng)絡(luò)等。如圖3所示,特定實施方式可以在包括社交網(wǎng)絡(luò)系統(tǒng)20以及一個或多個客戶裝置30的網(wǎng)絡(luò)環(huán)境中運行。客戶裝置30經(jīng)由網(wǎng)絡(luò)服務(wù)提供者、無線運營商、或其他合適的裝置可操作地連接至網(wǎng)絡(luò)環(huán)境。

在一個示例性實施方式中,如本文中描述的,社交網(wǎng)絡(luò)系統(tǒng)20包括允許用戶彼此通信或互連并訪問諸如用戶檔案的內(nèi)容的計算系統(tǒng)。在各示例性實施方式中,社交網(wǎng)絡(luò)系統(tǒng)20是包括一個或多個物理服務(wù)器22和數(shù)據(jù)存儲庫24的網(wǎng)絡(luò)尋址系統(tǒng)。一個或多個物理服務(wù)器22例如經(jīng)由一組路由器和/或網(wǎng)絡(luò)交換機26可操作地連接至計算機網(wǎng)絡(luò)60。在示例性實施方式中,一個或多個物理服務(wù)器22承載的功能可以包括網(wǎng)絡(luò)或http服務(wù)器、ftp服務(wù)器、以及但不限于使用通用網(wǎng)關(guān)接口(cgi)腳本、php超文本預(yù)處理器(php)、有源服務(wù)器頁面(asp)、超文本標(biāo)記語言(html)、可擴展標(biāo)記語言(xml)、java、javascript、asynchronousjavascript以及xml(ajax)等實現(xiàn)的網(wǎng)頁和應(yīng)用。

物理服務(wù)器22可以承載(host)針對社交網(wǎng)絡(luò)系統(tǒng)20的操作的功能。例如,社交網(wǎng)絡(luò)系統(tǒng)20可以承載允許一個或多個用戶在一個或多個客戶裝置30處查看和發(fā)布信息并且經(jīng)由網(wǎng)站彼此通信的網(wǎng)站。在下文中,多個服務(wù)器22可以稱為服務(wù)器22,雖然服務(wù)器22可以包括承載例如社交網(wǎng)絡(luò)系統(tǒng)20的多個服務(wù)器以及其他內(nèi)容分布服務(wù)器、數(shù)據(jù)存儲和數(shù)據(jù)庫。數(shù)據(jù)存儲庫24可以將與社交網(wǎng)絡(luò)系統(tǒng)的操作相關(guān)并使該操作可行的內(nèi)容和數(shù)據(jù)存儲為數(shù)字數(shù)據(jù)對象。在特定實施方式中,數(shù)據(jù)對象是通常存儲或嵌入在數(shù)據(jù)文件、數(shù)據(jù)庫、或記錄中的數(shù)字信息的項。內(nèi)容對象可以有多種形式,包括:文本(例如,ascii、sgml、html)、圖像(例如,jpeg、tif、和gif)、圖形(基于矢量的或位圖)、音頻、視頻(例如,mpeg)、或其他多媒體、及其組合。內(nèi)容對象數(shù)據(jù)還可以包括可執(zhí)行代碼對象(例如,可在瀏覽器窗口或幀中執(zhí)行的游戲)、播客等。邏輯上,數(shù)據(jù)存儲庫24對應(yīng)于諸如關(guān)系數(shù)據(jù)庫和面向?qū)ο蟮臄?shù)據(jù)庫的各種分開和集成的數(shù)據(jù)庫中的一個或多個,這些數(shù)據(jù)庫將信息作為在一個或多個物理系統(tǒng)上存儲的邏輯相關(guān)記錄或文件的集成的集合來維持。結(jié)構(gòu)上,數(shù)據(jù)存儲庫24總體上可以包括一大類的數(shù)據(jù)存儲和管理系統(tǒng)中的一個或多個。在特定實施方式中,數(shù)據(jù)存儲庫24可以通過任意適當(dāng)物理系統(tǒng)來實現(xiàn),該物理系統(tǒng)包括諸如一個或多個數(shù)據(jù)庫服務(wù)器的部件、大容量存儲介質(zhì)、媒體庫系統(tǒng)、存儲區(qū)域網(wǎng)絡(luò)、數(shù)據(jù)存儲云等。在一個示例性實施方式中,數(shù)據(jù)存儲庫24包括一個或多個服務(wù)器、數(shù)據(jù)庫(例如,mysql)、和/或數(shù)據(jù)倉庫。

數(shù)據(jù)存儲庫24可以包括與不同社交網(wǎng)絡(luò)系統(tǒng)20用戶和/或客戶裝置30相關(guān)聯(lián)的數(shù)據(jù)。在特定實施方式中,社交網(wǎng)絡(luò)系統(tǒng)20維持系統(tǒng)20的每個用戶的用戶檔案。用戶檔案包括描述社交網(wǎng)絡(luò)的用戶的數(shù)據(jù),例如,其可以包括:適當(dāng)?shù)拿Q(人的姓、中間名、和名、商業(yè)實體的商標(biāo)名和/或公司名等)、履歷、人口結(jié)構(gòu)、和其他類型的描述性信息,諸如工作經(jīng)歷、教育背景、愛好或偏好、地理位置、以及額外的描述性數(shù)據(jù)。例如,用戶檔案可以包括用戶的生日、婚姻狀況、居住城市等。系統(tǒng)20可以進一步存儲描述不同用戶之間的一個或多個關(guān)系的數(shù)據(jù)。該關(guān)系信息可以指示具有類似或共同的工作經(jīng)歷、組成員身份、愛好、或教育背景的用戶。用戶檔案還可以包括管理其他用戶對該用戶的信息的訪問的隱私設(shè)置。

客戶裝置30一般是包括用于在計算機網(wǎng)絡(luò)上進行通信(例如,遠程地)的功能的計算機或計算裝置。除其他適當(dāng)?shù)挠嬎阊b置外,客戶裝置30還可以是臺式計算機、膝上型計算機、平板電腦、個人數(shù)字助理(pda)、車內(nèi)或車外導(dǎo)航系統(tǒng)、蜂窩電話或其他智能或移動電話、或移動游戲裝置??蛻粞b置30可以執(zhí)行諸如網(wǎng)絡(luò)應(yīng)用(例如,microsoftwindowsinternetexplorer、mozillafirefox、applesafari、googlechrome、以及opera等)的一個或多個客戶應(yīng)用,從而在計算機網(wǎng)絡(luò)上訪問和查看內(nèi)容。在特定實施方式中,客戶應(yīng)用允許客戶裝置30的用戶輸入待檢索的具體網(wǎng)絡(luò)資源(諸如由社交網(wǎng)絡(luò)系統(tǒng)20承載的資源)的地址。這些地址可以是統(tǒng)一資源定位符或url。另外,一旦已經(jīng)檢索了頁面或其他資源,當(dāng)用戶“點擊”到其他資源的超鏈接時,客戶應(yīng)用可以提供對其他頁面或記錄的訪問。例如,這種超鏈接可以位于網(wǎng)頁內(nèi)部,并為用戶提供輸入另一頁面的url并檢索該頁面的自動化方法。

圖1示出了能夠?qū)崿F(xiàn)圖3中示出的社交網(wǎng)絡(luò)系統(tǒng)20的后端功能的網(wǎng)絡(luò)系統(tǒng)、架構(gòu)、或基礎(chǔ)100(下文中,稱為網(wǎng)絡(luò)系統(tǒng)100)的示例性實施方式。在特定實施方式中,網(wǎng)絡(luò)系統(tǒng)100使得網(wǎng)絡(luò)系統(tǒng)100的用戶能夠經(jīng)由網(wǎng)絡(luò)系統(tǒng)100提供的社交網(wǎng)絡(luò)服務(wù)彼此互動以及與第三方互動。例如,在遠程用戶計算裝置(例如,個人計算機、上網(wǎng)本、多媒體裝置、蜂窩電話(尤其是智能電話)等)處的用戶可以經(jīng)由網(wǎng)絡(luò)應(yīng)用或其他用戶客戶應(yīng)用訪問網(wǎng)絡(luò)系統(tǒng)100,以訪問至少部分地由網(wǎng)絡(luò)系統(tǒng)100承載或至少部分地可由網(wǎng)絡(luò)系統(tǒng)100訪問的網(wǎng)站、網(wǎng)頁、或網(wǎng)絡(luò)應(yīng)用以查看信息、存儲或更新信息、通信信息、或另外地與由網(wǎng)絡(luò)系統(tǒng)100存儲、承載、或可訪問的其他用戶、第三方網(wǎng)站、網(wǎng)頁、或網(wǎng)絡(luò)應(yīng)用、或其他信息互動。在特定實施方式中,如在下文中更詳細地描述的,網(wǎng)絡(luò)系統(tǒng)100維持包括表示用戶、概念、主題、和其他信息(數(shù)據(jù))的圖形節(jié)點以及連接或定義圖形節(jié)點之間的關(guān)系的圖形邊的圖形。

參照圖1,在特定實施方式中,網(wǎng)絡(luò)系統(tǒng)100包括向/從網(wǎng)絡(luò)系統(tǒng)100的用戶通信信息的多個客戶或網(wǎng)絡(luò)服務(wù)器104(下文中,稱為客戶服務(wù)器104)。例如,經(jīng)由網(wǎng)絡(luò)和服務(wù)提供者的任意適當(dāng)組合,遠程用戶計算裝置的用戶可以經(jīng)由負載平衡器或其他適當(dāng)系統(tǒng)與客戶服務(wù)器104通信。客戶服務(wù)器104可以查詢本文中描述的索引和數(shù)據(jù)庫系統(tǒng)以檢索數(shù)據(jù),以生成用于響應(yīng)用戶請求的結(jié)構(gòu)化文檔。網(wǎng)絡(luò)系統(tǒng)100還可以包括:索引層,包括一個或多個索引服務(wù)器106;緩存層108,包括一個或多個緩存服務(wù)器;以及數(shù)據(jù)庫層,包括一個或多個數(shù)據(jù)庫服務(wù)器以及相關(guān)數(shù)據(jù)庫管理功能110。數(shù)據(jù)庫110總體上意味著其本身可以包括用于處理其他查詢類型的其他緩存層的數(shù)據(jù)庫系統(tǒng)。

客戶服務(wù)器104中的每個都與緩存層108通信。緩存層108可以實現(xiàn)為一個或多個分布式緩存集群或環(huán)。在一個實施方式中,緩存層108是寫通過/讀通過(write-thru/read-thru)緩存層,其中所有的讀取和寫入都通過緩存層。在一個實施方式中,緩存層維持相關(guān)信息,并且因此可以處理該信息的查詢。其他查詢被傳送到數(shù)據(jù)庫110用于執(zhí)行。在特定實施方式中,數(shù)據(jù)庫110是關(guān)系數(shù)據(jù)庫。數(shù)據(jù)庫110可以實施為mysql和/或任何適當(dāng)?shù)年P(guān)系數(shù)據(jù)庫管理系統(tǒng),諸如例如haystack、cassandra及其他。在特定實施方式中,緩存層108可以包括插件,該插件被操作為與數(shù)據(jù)庫110的任何適當(dāng)實現(xiàn)進行互操作。在一個實施方式中,插件執(zhí)行各種翻譯操作,諸如將在緩存層中存儲為圖形節(jié)點和邊的數(shù)據(jù)翻譯成適于包括一個或多個表或平面文件的關(guān)系數(shù)據(jù)庫的查詢和命令。

在特定實施方式中,由網(wǎng)絡(luò)系統(tǒng)100存儲的信息存儲在數(shù)據(jù)庫110和緩存層108中。在特定實施方式中,每個數(shù)據(jù)庫110中存儲的信息被關(guān)系地(例如,經(jīng)由mysql作為對象和表)存儲,而由緩存層以圖形形式存儲的相同信息包括圖形節(jié)點以及節(jié)點之間的關(guān)聯(lián)或連接(文本中稱為圖形邊)。

在特定實施方式中,每個圖形節(jié)點或?qū)ο蠖急环峙湮ㄒ坏貥?biāo)識圖形中的圖形節(jié)點的唯一標(biāo)識符(id)(下文中,稱為節(jié)點id);即,每個節(jié)點id是全局唯一的。在一個實施方式中,每個節(jié)點id都是64比特標(biāo)識符。在一個實施方式中,碎片被分配給節(jié)點id空間的段。

在特定實施方式中,圖形可以維持各種不同節(jié)點類型,諸如將會對表示為節(jié)點有用的用戶、頁面、事件、涂鴉墻(wallpost)、評論、照片、視頻、背景信息、概念、興趣以及任何其他元素。邊類型對應(yīng)于節(jié)點之間的關(guān)聯(lián),并且可以包括朋友、追隨者、用戶、愛好者、喜好(或興趣的其他表示)、涂鴉墻、評論、鏈接、建議、推薦、以及節(jié)點之間的其他類型的關(guān)聯(lián)。在一個實施方式中,圖形的一部分可以是包括用戶節(jié)點的社交圖形,每個用戶節(jié)點都與社交網(wǎng)絡(luò)環(huán)境的相應(yīng)用戶對應(yīng)。社交圖形還可以包括其他節(jié)點,諸如各自都專用于或針對特定概念的概念節(jié)點,以及可能短暫或可能不短暫的各自都專用于或針對社交網(wǎng)絡(luò)環(huán)境用戶的當(dāng)前興趣的特定主題的主題節(jié)點。在特定實施方式中,每個節(jié)點都具有、表示在社交網(wǎng)絡(luò)環(huán)境中承載或可訪問的對應(yīng)網(wǎng)頁(“檔案頁面”),或由該對應(yīng)網(wǎng)頁表示。例如,用戶節(jié)點可以具有對應(yīng)用戶檔案頁面,在該頁面中對應(yīng)用戶可以添加內(nèi)容,作出聲明,或另外地表達他或她自己。例如,如將在下文中描述的,在社交網(wǎng)絡(luò)環(huán)境中承載或可訪問的各種網(wǎng)頁(例如,用戶檔案頁面、概念檔案頁面、或主題檔案頁面)使得用戶能夠發(fā)布內(nèi)容、發(fā)布狀態(tài)更新、發(fā)布消息、發(fā)布評論(包括對由該用戶或其他用戶提交的其他發(fā)布的評論)、聲明興趣、聲明對任意前述發(fā)布(post,帖子)以及頁面和具體內(nèi)容的“喜愛”(在下文中描述)、或另外地表達自我或執(zhí)行各種動作(下文中,這些和其他用戶動作可以統(tǒng)稱為“發(fā)布”或“用戶動作”)。在一些實施方式中,發(fā)布可以包括經(jīng)由其相應(yīng)的檔案頁面、其他用戶檔案頁面、概念檔案頁面、主題頁面、或其他網(wǎng)頁或網(wǎng)絡(luò)應(yīng)用鏈接到或另外地引用額外內(nèi)容,諸如媒體內(nèi)容(例如,照片、視頻、音樂、文本等)、唯一資源定位符(url)、以及其他節(jié)點。這種發(fā)布、聲明、或動作對于認證用戶和其他用戶可見。在特定實施方式中,社交圖形進一步包括多個邊,每個邊都定義或表示社交圖形中的一對對應(yīng)節(jié)點之間的連接。如上所述,內(nèi)容的每個項都可以是鏈接到其他節(jié)點的圖形中的節(jié)點。

如上所述,在各示例性實施方式中,所描述的一個或多個網(wǎng)頁或網(wǎng)絡(luò)應(yīng)用與社交網(wǎng)絡(luò)環(huán)境或社交網(wǎng)絡(luò)服務(wù)相關(guān)。如本文中所使用的,“用戶”可以是通過這種社交網(wǎng)絡(luò)環(huán)境互動或通信的個人(真人用戶)、實體(例如,企業(yè)、商業(yè)、或第三方應(yīng)用)、或組(例如,個人或?qū)嶓w)。如文本中所使用的,“注冊用戶”是指在社交網(wǎng)絡(luò)環(huán)境中正式注冊的用戶(總體上,文本中描述的用戶和用戶節(jié)點僅指注冊用戶,雖然這在其他實施方式中并不一定被要求;即,在其他實施方式中,本文中描述的用戶和用戶節(jié)點可以指還沒有在本文中描述的社交網(wǎng)絡(luò)環(huán)境中注冊的用戶)。在特定實施方式中,每個用戶都具有對應(yīng)的“檔案”頁面,該頁面由社交網(wǎng)絡(luò)環(huán)境存儲、承載、或可由社交網(wǎng)絡(luò)環(huán)境訪問,并且對其他用戶的中全部或所選擇的子集可見。總體上,用戶對他或她自己的相應(yīng)檔案頁面具有管理權(quán),并且潛在地對由或為特定用戶創(chuàng)建的其他頁面(例如,主頁、頁面托管網(wǎng)絡(luò)應(yīng)用、即其他可能性)具有管理權(quán)。如本文中所使用的,“認證用戶”是指已經(jīng)被社交網(wǎng)絡(luò)環(huán)境認證為在該用戶具有管理權(quán)的對應(yīng)檔案頁面中主張的用戶、或所主張的用戶的適當(dāng)?shù)目尚糯淼挠脩簟?/p>

兩個用戶或概念之間的連接可以表示社交網(wǎng)絡(luò)環(huán)境的用戶或概念之間的定義關(guān)系,并且可以在社交網(wǎng)絡(luò)環(huán)境的適當(dāng)數(shù)據(jù)結(jié)構(gòu)中邏輯地定義為對應(yīng)于用戶、概念、事件的節(jié)點或已經(jīng)作出關(guān)聯(lián)的社交網(wǎng)絡(luò)環(huán)境的其他節(jié)點之間的邊。如本文中所使用的,“友誼”表示社交網(wǎng)絡(luò)環(huán)境的一對用戶之間的關(guān)聯(lián),諸如定義的社交關(guān)系。如本文中所使用的,“朋友”可以指已經(jīng)與另一用戶形成連接、友誼、關(guān)聯(lián)、或關(guān)系使得將在這兩個用戶之間生成邊的社交網(wǎng)絡(luò)環(huán)境的任意用戶。例如,兩個用戶之一通過向可以接受或拒絕請求的另一用戶傳輸友誼請求或使該友誼請求得以傳輸來選擇與該另一用戶建立友誼,從而兩個注冊用戶可以彼此明確地成為朋友。可選地,可以自動建立友誼關(guān)系或其他連接。這種社交友誼關(guān)系對其他用戶可見,特別是對于本身與注冊用戶中的一個或兩個是朋友的用戶可見。注冊用戶的朋友對注冊用戶的檔案或其他頁面上的內(nèi)容,特別是用戶生成或聲明的內(nèi)容,具有增大的訪問特權(quán)。然而,應(yīng)注意,在社交圖形中建立了它們之間的朋友連接的兩個用戶在現(xiàn)實生活中(在社交網(wǎng)絡(luò)環(huán)境之外)不一定是朋友(在傳統(tǒng)意義上)。例如,在一些實現(xiàn)方式中,用戶可以是商業(yè)或其他非真人實體,并且因此,在該詞的傳統(tǒng)意義上,其不能與真人用戶成為朋友。

如本文中所使用的,“愛好者”可以指作為可在社交網(wǎng)絡(luò)環(huán)境中訪問的特定用戶、網(wǎng)頁、網(wǎng)絡(luò)應(yīng)用、或其他網(wǎng)絡(luò)內(nèi)容的支持者或追隨者的用戶。在特定實施方式中,當(dāng)用戶是特定網(wǎng)頁的愛好者時(“愛好”特定網(wǎng)頁),該用戶可以作為愛好者而在該頁面上列出,以便其他注冊用戶或一般公眾查看。另外,該用戶的頭像或檔案圖片可以顯示在頁面上(或在以下描述的任意頁面中/上)。如本文中所使用的,“喜歡”可以指某物,諸如(例如但不限于)用戶,并且特別是注冊或認證用戶已經(jīng)聲明或表明他或她喜歡、是其愛好者、支持、欣賞、或有正面看法的發(fā)布、評論、興趣、鏈接、媒體(例如,照片、相冊、視頻、歌曲等)、概念、實體、頁面及其他可能性(在一些實現(xiàn)方式中,用戶可以表示或聲明對由社交網(wǎng)絡(luò)系統(tǒng)或環(huán)境承載或可由社交網(wǎng)絡(luò)系統(tǒng)或環(huán)境訪問的任意頁面上的幾乎任何事物的喜歡)。在一個實施方式中,表示或聲明“喜歡”或表示或聲明該用戶是某物的“愛好者”在社交網(wǎng)絡(luò)環(huán)境中可以被等效地處理和定義,并且可以互換地使用;類似地,聲明自己是諸如概念或概念檔案頁面的某物的“愛好者”,或聲明自己“喜歡”該事物,可以在社交網(wǎng)絡(luò)環(huán)境中等效地定義并且可以在本文中互換地使用。另外,如本文中所使用的,“興趣”可以指用戶聲明的興趣,諸如在用戶檔案頁面中呈現(xiàn)的用戶聲明的興趣。如本文中所使用的,“想要”可以虛擬地指代用戶想要的幾乎任何事物。如上所述,“概念”可以虛擬地指代用戶可以聲明或另外表明有興趣、喜歡、或有關(guān)系的幾乎任何事物,例如,體育、體育隊、音樂流派、音樂作曲家、愛好、商業(yè)(企業(yè))、實體、組、名人、不是注冊用戶的人、甚或事件、在一些實施方式中,另一用戶(例如,非認證用戶)等。例如,可以存在著名的專業(yè)足球運動員“jerryrice”的概念節(jié)點和概念檔案頁面,其由多個用戶中的一個或多個(例如,jerryrice以外的用戶)創(chuàng)建和管理,而社交圖形額外地包括由jerryrice自己(或jerryrice的信任或授權(quán)代表)創(chuàng)建和管理的jerryrice的用戶節(jié)點和用戶檔案頁面。

在示例性圖形結(jié)構(gòu)中,數(shù)據(jù)結(jié)構(gòu)包括多個屬性。屬性可以是名稱-值對。例如,與人對應(yīng)的數(shù)據(jù)對象可以包括以下屬性:

{

“id”:12345,#64bitfbid

“type”:person,#canbeatypeintegerorastringname

“created”:1253665137,

“name”:“papa_smurf”,

“gender”:“male”,

“emails”:[“psmurf@facebook.com”,“papasmurf@gmail.com”]

}

數(shù)據(jù)對象標(biāo)識符(id)可以是在對象創(chuàng)建時分配的64比特值。數(shù)據(jù)對象的屬性可以在由一個或多個索引服務(wù)器106維持的搜索索引中解析和維持。例如,當(dāng)創(chuàng)建了新數(shù)據(jù)對象時,語句產(chǎn)生器模塊可以從前述數(shù)據(jù)對象創(chuàng)建以下的語句(term):

type:person

created:1253665137

name:papa

name:smurf

username:papa_smurf

gender:male

emails:psmurf@facebook.com

emails:papasmurf@gmail.com

文檔標(biāo)識符(docid)可以包括時間戳(諸如32比特計數(shù)器或時鐘值)以及對應(yīng)數(shù)據(jù)對象的數(shù)據(jù)對象標(biāo)識符(id)。語句可以存儲在與對應(yīng)docid相關(guān)的一個或多個索引中。例如,在示例性搜索索引中,從對象id和“創(chuàng)建的”時間戳生成docid,使得所有發(fā)布列表按反向時間順序排序(概念上講,docid是“created(32比特):obid(64比特)”)。時間戳(created)對應(yīng)于第一次創(chuàng)建數(shù)據(jù)對象的時間。在其他實施方式中,時間戳可以對應(yīng)于給定的數(shù)據(jù)對象最后被修改的時間。在一個實施方式中,構(gòu)造索引的docid,使得可以通過創(chuàng)建時間將給定搜索的結(jié)果按反向時間順序排序。例如,基于該機制,name:smurftype:person的搜索將返回名字為“smurf”的所有人員,并按照與該人員相關(guān)的數(shù)據(jù)對象的創(chuàng)建時間按反向時間順序排序。在其他實施方式中,如果需要基于其他要素將對象排序,則可以使用任意32比特分類鍵(sortkey)來代替時間戳。

對象之間的關(guān)聯(lián)(邊)可以從概念上建模并存儲為數(shù)據(jù)對象——稱為“邊對象”。因此,索引可以存儲條目,該條目與諸如人的數(shù)據(jù)對象以及其他對象(這些對象與促進社交網(wǎng)絡(luò)或其他圖形相關(guān)信息的搜索的邊關(guān)系對應(yīng))對應(yīng),從而增大系統(tǒng)性能。以下的數(shù)據(jù)對象與以上人員對象(id12345)和對應(yīng)于音樂組(coldplay)的另一數(shù)據(jù)對象(id67890)之間的類型“愛好者”的關(guān)聯(lián)對應(yīng)。

{

“id”:93831,

“type”:connection.fan

“created”:1253665248,

“source”:12345,#papasmurf

“dest”:67890#coldplay

}

邊可以在與源對象和目的對象相關(guān)的搜索索引中生成具體語句。例如,搜索查詢connection.fan.to(67890)將返回與所有coldplay(docid67890)愛好者相關(guān)的文檔標(biāo)識符。類似地,搜索查詢connection.fan.from(12345)返回人員(id12345)已經(jīng)建立了愛好者連接的所有數(shù)據(jù)對象的文檔標(biāo)識符。使用該語法,應(yīng)用可以用該查詢從人員的朋友或其他連接找到所有狀態(tài)更新:

connection.from(12345)type:status

另外一個示例是,以下的搜索查詢返回也是coldplay的愛好者的人員(id12345)的所有朋友:connection.friend.from(12345)connection.fan.to(67890)。由于可以用屬性使數(shù)據(jù)對象直接“指向”另一對象,因此可以在沒有分開的邊對象的情況下創(chuàng)建特定類型的關(guān)聯(lián)。例如,狀態(tài)對象可以包括具有與創(chuàng)建用戶對應(yīng)的數(shù)據(jù)對象的值的所有者屬性,而不是具有狀態(tài)消息和用戶之間的“所有者”邊對象——例如:

{

“id”:5834639,

“type”:“status.message”,

“text”:“doingnothing”,

“owner”:12345

}

在一個實施方式中,索引服務(wù)器106支持圖形遍歷查詢復(fù)合的簡單語法。例如,以下的搜索查詢將返回人員(id12345)的所有朋友的朋友:connection.friend.from(connection.friend.from(12345))。在該情況下,索引服務(wù)器首先執(zhí)行內(nèi)部查詢,connection.friend.from(12345)。由內(nèi)部查詢返回的文檔標(biāo)識符然后被應(yīng)用到外部前綴(prefix),使得整個表達式擴展到該人員的所有朋友的connection.from語句的or。

該查詢復(fù)合語法可以用于廣泛構(gòu)造各種查詢。例如,以下的搜索將返回具有標(biāo)識人員(id12345)的朋友的標(biāo)簽并在stanford網(wǎng)絡(luò)中的所有照片:connection.tag.from(connection.friend.from(12345)newtwork:stanford)type:photo。內(nèi)部查詢語法可以應(yīng)用于任意屬性,而不僅是邊。例如,假設(shè)“author”是狀態(tài)消息的屬性,則以下的搜索將返回來自人員(id12345)的朋友的所有狀態(tài)消息:author(connection.friend.from(12345))type:status。另外,以下的搜索查詢將返回來自名字為papa的人員的所有狀態(tài)信息:author(name:papatype:person)type:status。另外,以下的搜索查詢將以反向時間順序返回創(chuàng)建的該人員(id12345)的朋友連接:source(connection.friend.from(12345))type:connection。

索引服務(wù)器106響應(yīng)于查詢返回文檔標(biāo)識符,客戶處理104可以使用該文檔標(biāo)識符來訪問諸如數(shù)據(jù)庫110或緩存層108的數(shù)據(jù)存儲庫中存儲的對應(yīng)數(shù)據(jù)對象。在一個實施方式中,如上所述,語句產(chǎn)生器模塊從數(shù)據(jù)對象的屬性生成搜索索引的語句。語句產(chǎn)生器將對象視為輸入,并且輸出指示應(yīng)當(dāng)為該數(shù)據(jù)對象索引什么語句的一組(docid、語句)對。在一個實現(xiàn)方式中,基于插入的對象的類型來選擇語句產(chǎn)生器模塊類型或行為。例如,為了教學(xué)目的,假設(shè)調(diào)用了語句產(chǎn)生器模塊來處理以下邊對象:

{

“id”:92821,

“type”:“connection.fan”,

“created”:1253665248,

“source”:12345#,papasmurf

“dest”:67890#coldplay

}

連接語句產(chǎn)生器模塊可以產(chǎn)生以下的語句以用于插入到索引中:

(92821,“type:connection.fan”)#edgedocument

(92821,“source:12345”)

(92821,“dest:67890”)

(12345,“connection.fan.to:67890”)#papasmurf’sdocument

(12345,“connection.to:67890”)

(67890,“connection.fan.from:12345”)#coldplay’sdocument

(67890,“connection.from:12345”)

圖4描述了與創(chuàng)建新對象并將其存儲在根據(jù)本發(fā)明的實現(xiàn)方式配置的系統(tǒng)中相關(guān)聯(lián)的示例性方法。如圖4所示,對于新對象,對象創(chuàng)建處理生成可以包括創(chuàng)建的時間戳(created)成分和對象標(biāo)識符成分(見上文)的新文檔標(biāo)識符(docid)(402)。然后調(diào)用一個或多個語句產(chǎn)生器模塊,從而基于對象的類型創(chuàng)建docid-語句對(404)。對象創(chuàng)建處理然后將docid-語句對插入到由索引服務(wù)器106維持的一個或多個索引中(406)并將對象寫入數(shù)據(jù)庫110(408)。在一些實現(xiàn)方式中,可以將每個docid-語句對維持為給定索引中的單獨條目。在其他實現(xiàn)方式中,可以將docid-語句對的docid添加到具有相同語句的現(xiàn)有索引。例如,可以將與coldplay(docid67890)的新愛好者對應(yīng)的對象的文檔標(biāo)識符(例如,docid12345)添加到具有語句“connection.to:67890”和/或“connection.fan.to:67890”的一個或多個現(xiàn)有索引條目。

可以更新語句產(chǎn)生器模塊,并且所有新對象將從語句產(chǎn)生器索引新的語句。另外,更新處理還可以在mapreduce工作中每天重新生成整個索引,使得所有舊對象都更新有新語句。索引重建可以用作通過非規(guī)范化來改善性能的機制。許多存儲系統(tǒng)在應(yīng)用級要求數(shù)據(jù)的非規(guī)范化,以改善性能。語句生成器使得能夠更動態(tài)地作出非規(guī)范化決定,并且便于隨著查詢模式的改變而改變這些決定。此外,非規(guī)范化配置的改變不要求改變底層數(shù)據(jù)持久存儲在數(shù)據(jù)庫110中的方式。例如,假設(shè)頁面生成腳本(home.php)頻繁地執(zhí)行以下搜索以得到來自朋友的狀態(tài)消息:author(connection.from(uid))type:status。如果性能因為查詢量以及type:status發(fā)布列表的尺寸而成為問題,則語句產(chǎn)生器模塊可以添加或更新狀態(tài)消息,以輸出author和type的復(fù)合語句,使得結(jié)果在單個、更小的發(fā)布列表或索引中。例如,語句產(chǎn)生器模塊可以配置為添加狀態(tài)對象的額外語句,諸如:

{

“id”:321224

“type”:“status”,

“created”:1253665137,

“message”:“…”,

“author”:12345

}

可以更新語句產(chǎn)生器模塊以輸出額外的語句:(321224,“status:author:12345”)。可以更新頁面生成腳本,使得查詢被表示為:status:author(connection.from(uid))。另外,如下文中更詳細地描述的,為了進一步改善性能,可以為特定語句創(chuàng)建一組副本索引。該機制的一個特定優(yōu)點在于,非規(guī)范化決定可以容易地改變,并且不需要在應(yīng)用級發(fā)生。這意味著,開發(fā)者能夠以概念上最合乎邏輯的方式來存儲數(shù)據(jù)??梢砸韵鄬Κ毩⒂谶@些應(yīng)用級決定的方式來調(diào)整查詢性能,這使得應(yīng)用更整潔、更容易理解、并且更容易隨著時間而更新。

在一個實施方式中,搜索索引被文檔標(biāo)識符(docid)共享。例如,如圖1所示,可以通過包括根服務(wù)器106a和多個葉服務(wù)器106b的索引服務(wù)器的分層配置來實現(xiàn)索引層。在一個實施方式中,每個葉服務(wù)器106b都被分配一個或多個碎片。在另一實施方式中,可以使用集群或環(huán)拓撲。在默認情況下,可以通過并行地向所有碎片發(fā)送查詢、在混合器或根索引服務(wù)器106a中合并結(jié)果來執(zhí)行搜索。在一個實施方式中,碎片被分配文檔標(biāo)識符空間的片段。在特定實施方式中,每個文檔標(biāo)識符(docid)都映射到(例如,算術(shù)上或經(jīng)由一些數(shù)學(xué)函數(shù))唯一對應(yīng)碎片id。因此,可以在對象coldplay(docid67890)對應(yīng)的一個碎片以及與人員(docid12345)已經(jīng)建立了“fan”關(guān)系的其他對象對應(yīng)的其他碎片中保持特定語句(例如,“connection.fan.from:12345”)。在一個實施方式中,每個索引服務(wù)器106都被分配其負責(zé)維持的一組碎片id。可以調(diào)整該分配來從系統(tǒng)添加或去除索引服務(wù)器106。

向所有碎片發(fā)送所有查詢在運算上可能是昂貴的,并且可能限制系統(tǒng)的總體查詢速率。在一個實現(xiàn)方式中,由索引服務(wù)器106實現(xiàn)的索引層支持僅對索引系統(tǒng)中的語句的子集進行索引的特定副本索引。例如,除了主要或主索引,索引層可以包括適于一個或多個特定查詢類型的一個或多個額外副本索引。例如,假設(shè)查詢conneciton.from(*)是系統(tǒng)中的非常普通的查詢。本文中描述的索引系統(tǒng)可以配置為使得所有connection.from語句都在僅含有這些語句的額外副本索引中被復(fù)制。以下的命令示出了允許創(chuàng)建這種副本索引的示例性應(yīng)用編程界面。

replicas={

“connection.from:*”:[…],#devotedconnectionreplica

“email:*”:[…],#emailsearchreplica

“*”:[…],#mainreplicas

}

當(dāng)索引服務(wù)器106執(zhí)行查詢時,其選擇滿足搜索的最小副本索引。例如,查詢connection.from(12345)將被轉(zhuǎn)發(fā)到專用于connection.from副本索引的索引服務(wù)器。另一方面,諸如connection.from(12345)type:page的更一般或更寬泛的搜索將在主索引或支持這兩個語句的另一副本上執(zhí)行。然而,在理論上,沒有理由反對將語句分片以改善特定查詢的性能。該設(shè)計的一個優(yōu)點在于,系統(tǒng)可以支持所有查詢并且被調(diào)整為將最佳處理量和性能用于最重要查詢。一旦查詢變得足夠普通,則管理員可以通過創(chuàng)建專用于滿足該類查詢的一組副本來調(diào)整系統(tǒng),以增大查詢速率。這對應(yīng)用開發(fā)的簡化在于,網(wǎng)絡(luò)應(yīng)用首先可以配置為執(zhí)行其所需要的任何查詢。在發(fā)起應(yīng)用之前,基于在應(yīng)用開發(fā)期間創(chuàng)建的查詢結(jié)構(gòu),可以創(chuàng)建副本索引以改善性能。

圖2示出了可以用于實現(xiàn)服務(wù)器22a、22b的示例性計算系統(tǒng)架構(gòu)。在一個實施方式中,硬件系統(tǒng)1000包括處理器1002、緩存存儲器1004、以及在有形計算機可讀介質(zhì)上存儲的針對本文中描述的功能的一個或多個可執(zhí)行模塊和驅(qū)動。另外,硬件系統(tǒng)1000包括高性能輸入/輸出(i/o)總線1006和標(biāo)準(zhǔn)i/o總線1008。主橋1010將處理器1002耦接至高性能i/o總線1006,而i/o總線橋1012將兩個總線1006和1008彼此耦接。系統(tǒng)存儲器1014以及一個或多個網(wǎng)絡(luò)/通信接口1016耦接至總線1006。硬件系統(tǒng)1000可以進一步包括視頻存儲器(未示出)以及耦接至視頻存儲器的顯示裝置。大容量存儲器1018以及i/o端口1020耦接至總線1008。硬件系統(tǒng)1000可以可選地包括鍵盤和定點裝置、以及耦接至總線1008的顯示裝置(未示出)。這些元件旨在共同地表示寬泛范疇的計算機硬件系統(tǒng),包括但不限于基于由intelcorporationofsantaclara,california制造的x86可兼容處理器以及由advancedmicrodevices(amd),inc.,ofsunnyvale,california制造的x86可兼容處理器以及任何其他適當(dāng)處理器的通用計算機系統(tǒng)。

以下更詳細地描述了硬件系統(tǒng)1000的元件。具體地,網(wǎng)絡(luò)接口1016提供了硬件系統(tǒng)1000和諸如以太網(wǎng)(例如,ieee802.3)網(wǎng)絡(luò)、背板等的任何寬范圍的網(wǎng)絡(luò)之間的通信。大容量存儲器1018為數(shù)據(jù)和編程指令提供了永久存儲,以執(zhí)行在服務(wù)器22a、22b中實現(xiàn)的上述功能,而當(dāng)由處理器1002執(zhí)行時,系統(tǒng)存儲器1014(例如,dram)為數(shù)據(jù)和編程指令提供了臨時存儲。i/o端口620是在可以耦接至硬件系統(tǒng)1000的額外外圍裝置之間提供通信的一個或多個串行和/或并行通信端口。

硬件系統(tǒng)1000可以包括各種系統(tǒng)架構(gòu);并且可以重新布置硬件系統(tǒng)1000的各部件。例如,緩存1004可以與處理器1002在同一芯片上??蛇x地,緩存1004和處理器1002可以封裝在一起作為“處理器模塊”,其中處理器1002稱為“處理器核”。此外,本發(fā)明的特定實施方式可能不要求包括所有以上部件。例如,示出為耦接至標(biāo)準(zhǔn)i/o總線1008的外圍裝置可以耦接至高性能i/o總線1006。另外,在一些實施方式中,可以只存在單個總線,而硬件系統(tǒng)1000的部件耦接至該單個總線。此外,硬件系統(tǒng)1000可以包括額外的部件,諸如額外的處理器、存儲裝置、或存儲器。

在一個實施方式中,本文中所描述的實施方式的操作實施為由硬件系統(tǒng)1000單獨或共同在分布式計算環(huán)境中運行的一系列可執(zhí)行模塊。在特定實施方式中,一組軟件模塊和/或驅(qū)動器實施網(wǎng)絡(luò)通信協(xié)議棧、瀏覽和其他計算功能、優(yōu)化處理等。前述功能模塊可以由硬件、計算機可讀介質(zhì)上存儲的可執(zhí)行模塊、或二者的組合來實現(xiàn)。例如,功能模塊可以包括將要由硬件系統(tǒng)中的處理器(諸如處理器1002)執(zhí)行的多個或一系列指令。最初,該一系列指令可以存儲在諸如大容量存儲器1018的存儲裝置上。然而,該一系列指令可以切實存儲在諸如軟盤、cd-rom、rom、eeprom等任何適當(dāng)?shù)拇鎯橘|(zhì)上。此外,該一系列指令不需要本地存儲,并且可以經(jīng)由網(wǎng)絡(luò)/通信接口1016從諸如網(wǎng)絡(luò)上的服務(wù)器的遠程存儲裝置接收。該指令從諸如大容量存儲器1018的存儲裝置復(fù)制到存儲器1014中,并且然后由處理器1002訪問并執(zhí)行。

操作系統(tǒng)管理并控制硬件系統(tǒng)1000的操作,包括到/從軟件應(yīng)用(未示出)的數(shù)據(jù)輸入和輸出。操作系統(tǒng)在系統(tǒng)上執(zhí)行的軟件應(yīng)用和系統(tǒng)的硬件部件之間提供了接口??梢允褂萌魏芜m當(dāng)?shù)牟僮飨到y(tǒng),諸如linux操作系統(tǒng)、可從applecomputerinc.ofcupertino,calif.獲得的applemacintosh操作系統(tǒng)、unix操作系統(tǒng)、microsoft(r)windows(r)操作系統(tǒng)、bsd操作系統(tǒng)等。當(dāng)然,其他實施方式也是可能的。例如,可以在固件或?qū)S眉呻娐分袑嵤┍疚闹忻枋龅木b號生成功能。

此外,上述元件和操作可以由存儲介質(zhì)上存儲的指令構(gòu)成。該指令可以由處理系統(tǒng)檢索并執(zhí)行。指令的一些示例是軟件、程序代碼、以及固件。存儲介質(zhì)的一些示例是存儲裝置、磁帶、磁盤、集成電路、以及服務(wù)器。當(dāng)由處理系統(tǒng)執(zhí)行時,指令可操作為指示處理系統(tǒng)根據(jù)本發(fā)明來操作。術(shù)語“處理系統(tǒng)”是指單個處理裝置或一組內(nèi)部操作處理裝置。處理裝置的一些示例是集成電路和邏輯電路。本領(lǐng)域中的技術(shù)人員熟悉指令、計算機、以及存儲介質(zhì)。

本公開包括本領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)理解的對本文的示例性實施方式的所有改變、替換、變形、變更、和修改。類似地,適當(dāng)時,所附權(quán)利要求包括本領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)理解的對本文的示例性實施方式的所有改變、替換、變形、變更、和修改。例如,雖然本發(fā)明的實施方式被描述為聯(lián)系社交網(wǎng)站來操作,但是本發(fā)明可以聯(lián)系任何支持網(wǎng)絡(luò)應(yīng)用并將數(shù)據(jù)建模為關(guān)聯(lián)圖形的通信設(shè)施來使用。此外,在一些實施方式中,術(shù)語“網(wǎng)絡(luò)服務(wù)”和“網(wǎng)站”可以互換地使用,并且另外可以指在使api直接調(diào)用服務(wù)器的諸如移動裝置(例如,蜂窩電話、智能電話、個人gps、個人數(shù)字助理、個人游戲裝置等)的裝置上的定制或一般的api。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1