專利名稱:橫向擴(kuò)展系統(tǒng)以獲取事件數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)獲取。
背景技術(shù):
背景和相關(guān)技術(shù)計(jì)算機(jī)和計(jì)算系統(tǒng)已經(jīng)影響了現(xiàn)代生活的幾乎每個(gè)方面。計(jì)算機(jī)通常在工作、休閑、保健、運(yùn)輸、娛樂(lè)、家政管理等中都有涉獵。此外,計(jì)算系統(tǒng)功能還可以通過(guò)計(jì)算系統(tǒng)的經(jīng)由網(wǎng)絡(luò)連接互連到其他計(jì)算系統(tǒng)的能力來(lái)增強(qiáng)。網(wǎng)絡(luò)連接可包括,但不僅限于,經(jīng)由有線或無(wú)線以太網(wǎng)的連接,蜂窩式連接,或者甚至通過(guò)串行、并行、USB或其它連接的計(jì)算機(jī)到計(jì)算機(jī)的連接。這些連接允許計(jì)算系統(tǒng)訪問(wèn)其他計(jì)算系統(tǒng)上的服務(wù),并快速且有效地從其他計(jì)算系統(tǒng)接收應(yīng)用數(shù)據(jù)。許多計(jì)算機(jī)旨在通過(guò)與計(jì)算機(jī)的直接用戶交互來(lái)使用。這樣,計(jì)算機(jī)具有輸入硬件和軟件用戶接口以促成用戶交互。例如,現(xiàn)代通用計(jì)算機(jī)可包括用于允許用戶向計(jì)算機(jī)輸入數(shù)據(jù)的鍵盤(pán)、鼠標(biāo)、觸摸墊、相機(jī)等。另外,有各種軟件用戶接口可用。軟件用戶接口的示例包括圖形用戶界面、基于文本命令行的用戶界面、功能鍵或熱鍵用戶界面等等。假定開(kāi)發(fā)者正在編寫(xiě)旨在聚集來(lái)自各種各樣的源的信息(諸如RSS或Atom格式可用的當(dāng)前世界或金融新聞)并引導(dǎo)這種信息經(jīng)過(guò)發(fā)布/訂閱基礎(chǔ)架構(gòu)以便進(jìn)行整合、傳播和存儲(chǔ)的應(yīng)用。發(fā)布/訂閱基礎(chǔ)架構(gòu)由可從華盛頓州雷德蒙市微軟公司購(gòu)得的WindowsAzure服務(wù)總線提供,但也以類似形式存在于各種其它消息收發(fā)系統(tǒng)中并允許將消息/事件發(fā)布到臨時(shí)存儲(chǔ)且使得這些消息/事件被一個(gè)或多個(gè)訂閱者檢索和消費(fèi)。在此要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在諸如上述環(huán)境中操作的各個(gè)實(shí)施例。相反,提供該背景僅用以示出在其中可實(shí)踐在此描述的部分實(shí)施例的一個(gè)示例性技術(shù)領(lǐng)域。
發(fā)明內(nèi)容
此處所述的一個(gè)實(shí)施例涉及發(fā)射事件的方法。該方法包括通過(guò)使用多個(gè)不同源專用的多個(gè)不同的協(xié)議與這些不同源通信來(lái)從這些不同源獲取數(shù)據(jù)。該方法還包括,基于所獲取的數(shù)據(jù)判斷事件應(yīng)發(fā)生。該方法還包括引起事件。為得到消費(fèi)者的一致事件評(píng)估對(duì)所引起的事件進(jìn)行標(biāo)準(zhǔn)化,而不管來(lái)自導(dǎo)致該事件的數(shù)據(jù)源的數(shù)據(jù)的特定形態(tài)。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。另外的特征和優(yōu)點(diǎn)將在以下的描述中闡述, 并且部分可從該描述中顯而易見(jiàn),或者可以從此處的教示實(shí)踐中習(xí)得。本發(fā)明的特征和優(yōu)點(diǎn)可以通過(guò)在所附權(quán)利要求中特別指出的手段和組合來(lái)實(shí)現(xiàn)并獲取。本發(fā)明的特征將從以下描述和所附權(quán)利要求書(shū)中變得完全顯而易見(jiàn),或者可通過(guò)如下所述對(duì)本發(fā)明的實(shí)踐而獲知。
為了描述可獲得本主題的上述和其它優(yōu)點(diǎn)和特征的方式,將通過(guò)參考附圖中示出的本主題的具體實(shí)施例來(lái)呈現(xiàn)以上簡(jiǎn)要描述的本主題的更具體描述。應(yīng)該理解,這些附圖僅描繪了各典型實(shí)施例,因此其不應(yīng)被認(rèn)為是對(duì)范圍的限制,各實(shí)施例將通過(guò)使用附圖用附加特征和細(xì)節(jié)來(lái)描述并解釋,在附圖中圖1示出事件數(shù)據(jù)獲取系統(tǒng)的示例;圖2示出了事件數(shù)據(jù)獲取和分發(fā)系統(tǒng);以及圖3示出了發(fā)射事件的方法。
具體實(shí)施例方式此處所述的一·些實(shí)施例可實(shí)現(xiàn)橫向擴(kuò)展的獲取基礎(chǔ)架構(gòu),該基礎(chǔ)架構(gòu)可從大量各種各樣的源收集事件數(shù)據(jù)并對(duì)其標(biāo)準(zhǔn)化。例如,可使用適于多個(gè)不同源中的每一個(gè)的協(xié)議從這些源中獲取數(shù)據(jù)。數(shù)據(jù)可被標(biāo)準(zhǔn)化成事件格式,無(wú)論用于事件的數(shù)據(jù)是從何處獲取的以及按照何種格式獲取的,該事件格式都是一致的。這可允許這些事件被提交給發(fā)布/訂閱基礎(chǔ)架構(gòu),并允許消費(fèi)者以統(tǒng)一的方式對(duì)待所收集的事件。一些實(shí)施例可實(shí)現(xiàn)跨分布式存儲(chǔ)管理源描述的分區(qū)池并使用公共調(diào)度器框架調(diào)度從所描述的源對(duì)事件的獲取的機(jī)制。一些實(shí)施例可實(shí)現(xiàn)基于分區(qū)所有權(quán)以及對(duì)所調(diào)度的消息收發(fā)的使用的組合,將獲取作業(yè)的所有權(quán)分派以及重新分派給獲取工作者的機(jī)制。一些實(shí)施例可實(shí)現(xiàn)基于消費(fèi)受眾的需求激活和停用源的機(jī)制。一些實(shí)施例可實(shí)現(xiàn)處理臨時(shí)和持久錯(cuò)誤并將源加入黑名單的機(jī)制。作為基礎(chǔ),一個(gè)實(shí)施例系統(tǒng)正使用可從華盛頓州雷蒙德市的微軟公司購(gòu)得的Windows Azure服務(wù)總線所提供的發(fā)布/訂閱基礎(chǔ)架構(gòu),但該基礎(chǔ)架構(gòu)也可以類似的形式存在于各種其他消息收發(fā)系統(tǒng)中。該基礎(chǔ)架構(gòu)提供促進(jìn)所呈現(xiàn)的方法的所述實(shí)現(xiàn)的兩種能力主題和隊(duì)列。隊(duì)列是用于消息的存儲(chǔ)結(jié)構(gòu),它允許以順序的次序來(lái)添加(入隊(duì))消息和以與添加消息相同的次序來(lái)移除(出隊(duì))消息??捎扇魏螖?shù)量的并發(fā)客戶端添加和移除消息,從而允許平抑入隊(duì)側(cè)的負(fù)載并跨出隊(duì)側(cè)的各接收者平衡處理負(fù)載。隊(duì)列還允許各實(shí)體在使消息出隊(duì)時(shí)獲得該消息上的鎖,從而允許消費(fèi)客戶端顯式地控制何時(shí)將消息從隊(duì)列中實(shí)際刪除、或者在對(duì)檢索到的消息的處理失敗的情況下是否可將它還原回隊(duì)列中。主題是具有隊(duì)列的所有特性,但允許多個(gè)并發(fā)存在的‘訂閱’的存儲(chǔ)結(jié)構(gòu),這些訂閱各自允許對(duì)入隊(duì)消息序列的孤立的經(jīng)過(guò)濾的視圖。主題上的每個(gè)訂閱都產(chǎn)生每個(gè)入隊(duì)消息的副本,假定該訂閱的相關(guān)聯(lián)的過(guò)濾條件肯定地匹配該消息。因此,入隊(duì)到具有10個(gè)訂閱(其中每個(gè)訂閱具有匹配所有消息的簡(jiǎn)單的‘穿過(guò)’條件)的主題的消息將產(chǎn)生總共10個(gè)消息,其中每個(gè)訂閱一個(gè)消息。像隊(duì)列一樣,訂閱可具有多個(gè)并發(fā)消費(fèi)者,從而提供多個(gè)接收者范圍內(nèi)的處理負(fù)載的平衡。另一基本概念是‘事件’,就底層發(fā)布/訂閱基礎(chǔ)結(jié)構(gòu)而言其就是條消息。在一個(gè)實(shí)施例的上下文中,事件服從管控消息正文和消息屬性的使用的一組簡(jiǎn)單約束。事件的消息正文一般作為不透明數(shù)據(jù)塊來(lái)流動(dòng),并且一個(gè)實(shí)施例所認(rèn)為的任何事件數(shù)據(jù)一般在消息屬性中流動(dòng),它是作為表示該事件的消息的一部分的一組鍵/值對(duì)。現(xiàn)在參考圖1,一個(gè)實(shí)施例體系結(jié)構(gòu)的目標(biāo)是大規(guī)模地從各種各樣的不同源116獲取事件數(shù)據(jù),并將這些事件轉(zhuǎn)發(fā)到發(fā)布/訂閱基礎(chǔ)架構(gòu)以供進(jìn)一步處理。處理可包括某種形式的分析、實(shí)時(shí)搜索、或通過(guò)拉取或推送通知機(jī)制將事件重新分發(fā)到感興趣的訂閱者。一個(gè)實(shí)施例體系結(jié)構(gòu)定義了獲取引擎118、用于獲取適配器和事件標(biāo)準(zhǔn)化的模型、用于保持關(guān)于獲取源116的元數(shù)據(jù)的分區(qū)存儲(chǔ)138、公共分區(qū)和調(diào)度模型以及用于在運(yùn)行時(shí)如何使對(duì)獲取源116狀態(tài)的用戶發(fā)起的改變流入系統(tǒng)而無(wú)需進(jìn)一步的數(shù)據(jù)庫(kù)查找的模型。在具體實(shí)現(xiàn)中,獲取可支持具體的獲取適配器從各種各樣的公共和私有聯(lián)網(wǎng)服務(wù)中獲取事件,聯(lián)網(wǎng)服務(wù)包括RSS、Atom和Odata饋源、電子郵件郵箱(包括但不限于這種支持IMAP和POP3協(xié)議的電子郵件郵箱)、像Twitter時(shí)間線或Facebook墻的社交網(wǎng)絡(luò)信息源116、以及對(duì)像Windows Azure服務(wù)總線或Amazon的簡(jiǎn)單隊(duì)列服務(wù)的外部發(fā)布/訂閱基礎(chǔ)架構(gòu)的訂閱。事件標(biāo)準(zhǔn)化事件數(shù)據(jù)被標(biāo)準(zhǔn)化以使事件可以由發(fā)布/訂閱基礎(chǔ)架構(gòu)上的、所述事件被移交到的訂閱者來(lái)實(shí)際消費(fèi)。標(biāo)準(zhǔn)化在本上下文中是指,事件被映射到具有信息項(xiàng)的一致表示的公共事件模型上,其中該信息項(xiàng)在所述在各種上下文中可能是廣大訂閱者所感興趣的。此處所選擇的模型是鍵/值對(duì)的平面列表形式的事件的簡(jiǎn)單表示,該鍵/值對(duì)可伴隨有由系統(tǒng)不進(jìn)一步解釋的單個(gè)不透明二元數(shù)據(jù)塊。該事件表示可在大多數(shù)發(fā)布/訂閱基礎(chǔ)架構(gòu)上輕松地表示,并且還非常清楚地映射到諸如HTTP的常見(jiàn)因特網(wǎng)協(xié)議。為了說(shuō)明事件標(biāo)準(zhǔn)化 ,考慮RSS或Atom饋源條目到事件104的映射(參見(jiàn)圖1和
2)。RSS和Atom是兩個(gè)因特網(wǎng)標(biāo)準(zhǔn),它們通常非常被廣泛地用于按時(shí)間次序發(fā)布新聞和其他當(dāng)前的信息,并且按時(shí)間次序發(fā)布該信息有助于使該信息可用于計(jì)算機(jī)程序中以結(jié)構(gòu)化方式的處理。RSS和Atom共享非常類似的結(jié)構(gòu)以及一組命名不同但語(yǔ)義相同的數(shù)據(jù)元素。因此,第一個(gè)標(biāo)準(zhǔn)化步驟是將公共名稱定義為像標(biāo)題或提要等在兩個(gè)標(biāo)準(zhǔn)中均定義的這種語(yǔ)義相同的元素的鍵。第二,通常用相應(yīng)的“本機(jī)”名稱來(lái)映射僅出現(xiàn)在一個(gè)標(biāo)準(zhǔn)中但未出現(xiàn)在另一個(gè)標(biāo)準(zhǔn)中的數(shù)據(jù)。除此之外,這些種類的饋源通常帶有“擴(kuò)展”,擴(kuò)展是未在核心標(biāo)準(zhǔn)中定義、但使用相應(yīng)標(biāo)準(zhǔn)中的可擴(kuò)展性工具來(lái)添加額外數(shù)據(jù)的數(shù)據(jù)項(xiàng)。以跨不同事件源116共享的常見(jiàn)方式來(lái)映射這些擴(kuò)展中的一些(包括但不限于用于地理位置的GeoRSS或?qū)⒔Y(jié)構(gòu)化數(shù)據(jù)嵌入到Atom饋源中的OData),使得向其發(fā)射事件的發(fā)布/訂閱基礎(chǔ)架構(gòu)上的訂閱者可按照統(tǒng)一的方式來(lái)解釋地理位置信息,而不管該數(shù)據(jù)是從RSS或Atom還是Twitter時(shí)間線獲取的。繼續(xù)GeoRSS示例,表示地理“點(diǎn)”的簡(jiǎn)單GeoRSS表達(dá)式可因此被映射到表示W(wǎng)GS84坐標(biāo)的一對(duì)數(shù)字“緯度” / “經(jīng)度”屬性。帶有復(fù)雜的結(jié)構(gòu)化數(shù)據(jù)(諸如OData)的擴(kuò)展可以實(shí)現(xiàn)保留復(fù)雜類型結(jié)構(gòu)和數(shù)據(jù)但不會(huì)復(fù)雜化基礎(chǔ)事件模型的映射模型。一些實(shí)施例標(biāo)準(zhǔn)化成正則的緊湊湊復(fù)雜數(shù)據(jù)表示(如JS0N),并將復(fù)雜的數(shù)據(jù)屬性(例如復(fù)雜數(shù)據(jù)類型“人”的OData屬性“承租人”)映射到鍵/值對(duì),其中鍵是屬性名“承租人”,而值是用以JSON序列化形式表示的名稱、傳記信息、和地址信息來(lái)描述人的復(fù)雜數(shù)據(jù)。如果數(shù)據(jù)源是XML文檔,像它在RSS或Atom的情形中那樣,則可通過(guò)將XML數(shù)據(jù)轉(zhuǎn)錄到保留XML所提供的結(jié)構(gòu)的JSON中,但展平如屬性和元素等XML細(xì)節(jié)來(lái)創(chuàng)建值,意味著將作為同一 XML元素節(jié)點(diǎn)的下屬的XML屬性和元素二者映射到JSON屬性作為沒(méi)有其它區(qū)別的“兄弟”。源和分區(qū)一個(gè)實(shí)施例體系結(jié)構(gòu)在“源描述”記錄中捕捉關(guān)于數(shù)據(jù)源116的元數(shù)據(jù),該記錄可被存儲(chǔ)在源數(shù)據(jù)庫(kù)138中?!霸疵枋觥笨删哂幸唤M公共元素和一組數(shù)據(jù)源專用的元素。公共元素可包括源的名稱、期間源116被認(rèn)為有效的時(shí)間跨度間隔、人類可讀的描述、以及用于進(jìn)行區(qū)分的源116的類型。源專用元素取決于源116的類型并可包括用于獲得對(duì)該地址所表示的資源的訪問(wèn)的網(wǎng)絡(luò)地址、憑證或其他安全關(guān)鍵材料,并可包括元數(shù)據(jù),該元數(shù)據(jù)指導(dǎo)源獲取適配器或者以特定方式(如提供檢查RSS饋源的時(shí)間間隔)執(zhí)行數(shù)據(jù)獲取,或者以特定方式執(zhí)行事件轉(zhuǎn)發(fā),該特定方式為諸如,使從當(dāng)前事件新聞饋源獲取的各事件相隔至少60秒,使得通知接收者有機(jī)會(huì)在受限的屏幕表面上觀看每個(gè)斷開(kāi)的新聞條目(如果這是要構(gòu)建的端到端的體驗(yàn)的話)。在諸如源數(shù)據(jù)庫(kù)138的一個(gè)或多個(gè)存儲(chǔ)中保存源描述??裳貎蓚€(gè)不同的軸跨這些存儲(chǔ)以及在這些存儲(chǔ)內(nèi)對(duì)源 描述進(jìn)行分區(qū)。第一個(gè)軸是按系統(tǒng)承租人的區(qū)分。系統(tǒng)承租人或“命名空間”是在系統(tǒng)內(nèi)為各實(shí)體創(chuàng)建隔離范圍的機(jī)制。示出一個(gè)具體的情形,如果“Fred”是實(shí)現(xiàn)一個(gè)實(shí)施例的系統(tǒng)的用戶,則Fred將能夠創(chuàng)建向Fred提供隔離的虛擬環(huán)境的承租人范圍,該虛擬環(huán)境可完全獨(dú)立于系統(tǒng)中其他源116地保存源描述和配置和狀態(tài)。這個(gè)軸可作為跨各存儲(chǔ)傳播各源描述的區(qū)分因素,尤其是在承租人需要隔離已存儲(chǔ)的元數(shù)據(jù)(可能包括諸如口令的安全敏感數(shù)據(jù)),或出于技術(shù)、管理或商業(yè)原因而需要隔離已存儲(chǔ)的元數(shù)據(jù)的情況下。系統(tǒng)承租人還可表示與特定數(shù)據(jù)中心的親合性(affnity),在該數(shù)據(jù)中心中保存源描述,并且在那里執(zhí)行數(shù)據(jù)獲取。第二個(gè)軸可以是按照從預(yù)定義標(biāo)識(shí)符范圍中選擇的數(shù)字分區(qū)標(biāo)識(shí)符的區(qū)分??蓮脑疵枋霭牟蛔兞恐袑?dǎo)出分區(qū)標(biāo)識(shí)符,諸如源名稱和承租人標(biāo)識(shí)符??墒褂蒙⒘泻瘮?shù)(許多候選中的一個(gè)是 Jenkins 散列,參見(jiàn) http://www. burtleburtle. net/bob/hash/doobs.html)從這些不變量中導(dǎo)出分區(qū)標(biāo)識(shí)符,并且可能對(duì)所得的散列值使用模函數(shù),來(lái)將該散列值計(jì)算成分區(qū)標(biāo)識(shí)符范圍。將標(biāo)識(shí)符范圍選擇為比預(yù)期存儲(chǔ)該系統(tǒng)中曾保存的全部源描述所需要的最大數(shù)量的存儲(chǔ)分區(qū)大(并且可以是顯著地大)。引入存儲(chǔ)分區(qū)通常由容量限制來(lái)激發(fā),該容量限制要么直接與底層數(shù)據(jù)存儲(chǔ)上的存儲(chǔ)容量配額相關(guān),要么與影響獲取引擎118的容量限制(諸如,給定數(shù)據(jù)中心或數(shù)據(jù)中心部分的帶寬約束)相關(guān),這可導(dǎo)致實(shí)施例創(chuàng)建跨不同數(shù)據(jù)中心或數(shù)據(jù)中心部分地利用容量以滿足入門(mén)帶寬需求的獲取分區(qū)140。存儲(chǔ)分區(qū)擁有整個(gè)標(biāo)識(shí)符范圍的子集,因此源描述記錄與存儲(chǔ)分區(qū)(和訪問(wèn)該分區(qū)所需要的資源)的關(guān)聯(lián)可從其分區(qū)標(biāo)識(shí)符中直接推斷。除提供存儲(chǔ)分區(qū)軸以外,分區(qū)標(biāo)識(shí)符還用于調(diào)度或獲取作業(yè),以及清楚地定義獲取分區(qū)140對(duì)給定源描述的所有權(quán)關(guān)系(可能與對(duì)存儲(chǔ)分區(qū)的關(guān)系不同)。所有權(quán)和獲取分區(qū)系統(tǒng)中的每個(gè)源描述可為特定的獲取分區(qū)140所擁有。使用清楚且唯一的所有權(quán),因?yàn)橄到y(tǒng)不會(huì)從多個(gè)位置中的完全相同的源116并行地獲取事件,因?yàn)檫@樣可能會(huì)導(dǎo)致發(fā)射重復(fù)事件。為了使這點(diǎn)更具體,在承租人范圍內(nèi)定義的一個(gè)RSS饋源由系統(tǒng)中正好一個(gè)的獲取分區(qū)140所有,并且在分區(qū)內(nèi),存在在任何給定時(shí)間點(diǎn)在特定饋源上運(yùn)行的一個(gè)已調(diào)度的獲取。獲取分區(qū)140通過(guò)獲得分區(qū)標(biāo)識(shí)符范圍的所有權(quán)的方式來(lái)獲得源描述的所有權(quán)??梢允褂每删哂泄收限D(zhuǎn)移能力并可分配主/后備所有者的外部專用分區(qū)系統(tǒng),或使用其中分區(qū)標(biāo)識(shí)符范圍在承擔(dān)獲取引擎角色的多個(gè)不同的計(jì)算實(shí)例上均勻分布的較簡(jiǎn)單機(jī)制,來(lái)向獲取分區(qū)140分配標(biāo)識(shí)符范圍。在針對(duì)外部分區(qū)系統(tǒng)的更復(fù)雜實(shí)現(xiàn)中,如果系統(tǒng)從“冷”狀態(tài)啟動(dòng),意味著分區(qū)尚沒(méi)有先前所有者,則該分區(qū)的所選主所有者負(fù)責(zé)播種(seed)對(duì)作業(yè)的調(diào)度。在較簡(jiǎn)單的場(chǎng)景中,擁有分區(qū)的計(jì)算實(shí)例擁有對(duì)調(diào)度的播種權(quán)。調(diào)度獲取作業(yè)的調(diào)度需求取決于具體源的性質(zhì),但通常存在兩種類型的獲取模型,該獲取模型在一些所描述的實(shí)施例中實(shí)現(xiàn)。在第一個(gè)模型中,所有者在源的網(wǎng)絡(luò)服務(wù)上發(fā)起某種形式的連接或長(zhǎng)期運(yùn)行的網(wǎng)絡(luò)請(qǐng)求,并等待數(shù)據(jù)在該連接上以數(shù)據(jù)報(bào)或流的形式返回。在通常也被稱為長(zhǎng)期輪詢的長(zhǎng)期運(yùn)行的請(qǐng)求的情形中,源網(wǎng)絡(luò)服務(wù)將保持該請(qǐng)求直到發(fā)生超時(shí)或直到數(shù)據(jù)變?yōu)榭捎靡贿M(jìn)而,獲取適配器將在具有或不具有有效載荷結(jié)果的情況下等待該請(qǐng)求完成,并隨后重發(fā)該請(qǐng)求。作為結(jié)果,該獲取調(diào)度模型具有“緊湊”循環(huán)的形式,該循環(huán)在源116的所有者得知源的時(shí)候得以啟動(dòng),并且其中在當(dāng)前連接或請(qǐng)求完成或被臨時(shí)中斷時(shí),立即發(fā)起新的請(qǐng)求或連接。由于所有者直接控制緊湊循環(huán),因此該循環(huán)可在所有者正在運(yùn)行時(shí)可靠地保持存活。如果所有者停止并重新啟動(dòng),則該循環(huán)也重新啟動(dòng)。如果所有者改變,則循環(huán)停止,并且新的所有者啟動(dòng)該循環(huán)。在第二個(gè)模型中,源的網(wǎng)絡(luò)服務(wù)不支持在該服務(wù)變?yōu)榭捎脮r(shí)產(chǎn)生數(shù)據(jù)的長(zhǎng)期運(yùn)行的請(qǐng)求或連接,而無(wú)論何時(shí)查詢都立即返回的常規(guī)的請(qǐng)求/響應(yīng)服務(wù)支持這種請(qǐng)求或連接。在這樣的服務(wù)上,這一 點(diǎn)適用于許多web資源,以持續(xù)的緊湊循環(huán)來(lái)請(qǐng)求數(shù)據(jù)導(dǎo)致源116上的巨大量的負(fù)載,并且也導(dǎo)致顯著的網(wǎng)絡(luò)通信量,該網(wǎng)絡(luò)通信量要么僅指示源116尚未改變,要么在最糟的情形中反復(fù)地?cái)y帶相同的數(shù)據(jù)。為了平衡及時(shí)的事件獲取并且不用徒勞的查詢通信量使源116過(guò)載的需求,獲取引擎118將由此按照“定時(shí)的”循環(huán)執(zhí)行請(qǐng)求,其中基于間隔周期性地執(zhí)行源116上的請(qǐng)求,該間隔平衡這些考慮并且還考慮了來(lái)自源116的提示?!岸〞r(shí)的”循環(huán)在源116的所有者得知源的時(shí)候被啟動(dòng)。存在定時(shí)循環(huán)的兩個(gè)值得注意的實(shí)現(xiàn)變型。第一個(gè)變型用于低規(guī)模、最大努力場(chǎng)景,并使用本地、存儲(chǔ)器內(nèi)的定時(shí)對(duì)象來(lái)調(diào)度,這使規(guī)模、控制和重新啟動(dòng)特性與緊湊循環(huán)的那些特性相類似。該循環(huán)被啟動(dòng),并立即調(diào)度使獲取作業(yè)的第一次迭代運(yùn)行的定時(shí)器回調(diào)。當(dāng)該作業(yè)完成(即使有錯(cuò)誤)并且確定該循環(huán)應(yīng)繼續(xù)執(zhí)行時(shí),在接下來(lái)作業(yè)應(yīng)被執(zhí)行的瞬間調(diào)度另一個(gè)定時(shí)器回調(diào)。第二個(gè)變型使用‘經(jīng)調(diào)度的消息’,這是包括Windows AzureTM服務(wù)總線的若干發(fā)布/訂閱系統(tǒng)的一個(gè)特征。該變型以稍高的復(fù)雜度為代價(jià)提供顯著較高的獲取比例。調(diào)度循環(huán)由所有者來(lái)啟動(dòng),并且將消息置于獲取分區(qū)的調(diào)度隊(duì)列中。該消息包括源描述。它隨后由執(zhí)行獲取作業(yè)的工作者拾取,并隨后使所得的事件入隊(duì)到目標(biāo)發(fā)布/訂閱系統(tǒng)中。最后,它還將新的“經(jīng)調(diào)度的”消息入隊(duì)到調(diào)度隊(duì)列中。該消息被稱為“經(jīng)調(diào)度的”,因?yàn)樗怯盟優(yōu)榭晒┱{(diào)度隊(duì)列上的任何消費(fèi)者檢索的時(shí)間瞬間來(lái)標(biāo)記的。在該模型中,獲取分區(qū)140可通過(guò)具有一個(gè)“所有者”角色而被橫向擴(kuò)展,該所有者角色主要播種調(diào)度并且可與執(zhí)行實(shí)際獲取作業(yè)的任何數(shù)量的“工作者”角色配對(duì)。源更新在系統(tǒng)運(yùn)行時(shí),獲取分區(qū)140需要能夠得知要觀察的新的源116以及應(yīng)不再觀察哪些源116。除了(下面描述的)由于檢測(cè)到的不可恢復(fù)的或臨時(shí)的錯(cuò)誤而使源116列入黑名單的情形以外,關(guān)于這一點(diǎn)的決定通常在于用戶,并且是與管理服務(wù)142交互的結(jié)果。為了傳遞這種改變,獲取系統(tǒng)在底層發(fā)布/訂閱基礎(chǔ)架構(gòu)中維護(hù)“源更新”主題。每個(gè)獲取分區(qū)140具有針對(duì)該主題的專用訂閱,該訂閱具有過(guò)濾條件,該過(guò)濾條件將合格的消息約束為攜帶在獲取分區(qū)所擁有的范圍內(nèi)的分區(qū)標(biāo)識(shí)符的那些消息。這使管理服務(wù)142能夠設(shè)置關(guān)于新的或已引退的源116的更新,并將它們發(fā)送到正確的分區(qū)140,而不需要分區(qū)所有權(quán)分布的知識(shí)。管理服務(wù)142將更新命令提交到包括源描述、分區(qū)標(biāo)識(shí)符(出于前述的過(guò)濾目的)、和操作標(biāo)識(shí)符的主題·,該操作標(biāo)識(shí)符指示是否要向系統(tǒng)添加源116或者是否從系統(tǒng)中移除源 116。一旦獲取分區(qū)140所有者已檢索到命令消息,則它要么將為新的源116調(diào)度新的獲取循環(huán),要么將中斷并掛起現(xiàn)有的獲取循環(huán)、或甚至使現(xiàn)有的獲取循環(huán)引退。列入黑名單可將數(shù)據(jù)獲取失敗的源116臨時(shí)地或永久地列入黑名單。當(dāng)源116網(wǎng)絡(luò)資源不可用或返回與所發(fā)起的獲取請(qǐng)求不直接相關(guān)的錯(cuò)誤時(shí),執(zhí)行臨時(shí)列入黑名單。臨時(shí)列入黑名單的持續(xù)時(shí)間取決于錯(cuò)誤的性質(zhì)。通過(guò)中斷常規(guī)的調(diào)度循環(huán)(緊湊或定時(shí))并在期望另一方解決錯(cuò)誤狀況的時(shí)間瞬間調(diào)度循環(huán)的下一次迭代(經(jīng)由回調(diào)或經(jīng)調(diào)度的消息),來(lái)執(zhí)行臨時(shí)列入黑名單。當(dāng)確定錯(cuò)誤是獲取請(qǐng)求的直接結(jié)果時(shí)執(zhí)行永久列入黑名單,錯(cuò)誤是獲取請(qǐng)求的直接結(jié)果意味著該請(qǐng)求正導(dǎo)致認(rèn)證或授權(quán)錯(cuò)誤或者遠(yuǎn)程的源116指示某個(gè)其他請(qǐng)求錯(cuò)誤。如果將資源永久列入黑名單,則在分區(qū)存儲(chǔ)中將源116標(biāo)記為已列入黑名單,并立即中止獲取循環(huán)?;謴?fù)永久列入黑名單的源116需要移除存儲(chǔ)中的黑名單標(biāo)記以及可能的還有引起請(qǐng)求的行為改變的配置改變,并且經(jīng)由源更新主題來(lái)重新啟動(dòng)獲取循環(huán)。現(xiàn)在參考圖2,示出了系統(tǒng)的替換示例。圖2示出了來(lái)自大量不同源的信息被遞送給大量不同目標(biāo)的示例。在一些示例中,來(lái)自單個(gè)源的信息或從多個(gè)源聚集的信息可被用來(lái)創(chuàng)建被遞送給大量目標(biāo)的單個(gè)事件。在一些實(shí)施例中,這可以使用如附圖2所示的扇出(fan-out)拓?fù)鋪?lái)實(shí)現(xiàn)。圖2示出了源116。如本文稍后將討論的,實(shí)施例可以利用獲取分區(qū)140。獲取分區(qū)140中的每一個(gè)可包括多個(gè)源116。可能存在大量且各種各樣的源116。源116提供信息。這樣的信息例如可以包括、但不限于電子郵件、文本消息、實(shí)時(shí)股票報(bào)價(jià)、實(shí)時(shí)賽事比分、新聞更新等等。圖2示出了每個(gè)分區(qū)都包括獲取引擎,如說(shuō)明性的獲取引擎118。獲取引擎118從源116收集信息,并基于該信息來(lái)生成事件。在圖2所示的示例中,多個(gè)事件被示為由獲取引擎使用各個(gè)源來(lái)生成。使用事件104-1來(lái)進(jìn)行說(shuō)明。在一些實(shí)施例中,事件104-1可如以下解釋的那樣來(lái)標(biāo)準(zhǔn)化。獲取引擎118可以是諸如因特網(wǎng)等網(wǎng)絡(luò)上的、從該網(wǎng)絡(luò)上的源116收集信息的服務(wù)。圖2示出了事件104-1被發(fā)送給分發(fā)主題144。分發(fā)主題144將事件散發(fā)給多個(gè)分發(fā)分區(qū)。分發(fā)分區(qū)120-1被用作所有分發(fā)分區(qū)的類似物。分發(fā)分區(qū)各自服務(wù)于由訂閱所表示的多個(gè)最終用戶或設(shè)備。分發(fā)分區(qū)所服務(wù)的訂閱的數(shù)目可不同于其他分發(fā)分區(qū)所服務(wù)的數(shù)目。在一些實(shí)施例中,分區(qū)所服務(wù)的訂閱的數(shù)目可取決于分發(fā)分區(qū)的能力??商娲鼗蚋郊拥?,分發(fā)分區(qū)可基于與最終用戶的邏輯或地理的接近度被選擇以服務(wù)于用戶。這可允許以更加及時(shí)的方式將提醒遞送給最終用戶。在所示示例中,分發(fā)分區(qū)120-1包括分發(fā)引擎122-1。分發(fā)引擎122_1咨詢數(shù)據(jù)庫(kù)124-1。數(shù)據(jù)庫(kù)124-1包括關(guān)于訂閱的信息,該信息具有關(guān)于相關(guān)聯(lián)的遞送目標(biāo)102的細(xì)節(jié)。具體而言,該數(shù)據(jù)庫(kù)可包括信息,諸如描述目標(biāo)102的平臺(tái)、目標(biāo)102所使用的應(yīng)用、目標(biāo)102的網(wǎng)絡(luò)地址、使用目標(biāo)102的最終用戶的用戶偏好等等的信息。使用數(shù)據(jù)庫(kù)124-1中的信息,分發(fā)引擎122-1構(gòu)建包126-1,其中包126-1包括事件104 (或至少來(lái)自事件104的信息)和路由名單(slip)128-l,該路由名單標(biāo)識(shí)目標(biāo)102中要將來(lái)自事件104-1的信息作為通知發(fā)送到的多個(gè)目標(biāo)102。包126-1隨后被置于隊(duì)列130-1中。分發(fā)分區(qū)120-1可包括多個(gè)遞送引擎。遞送引擎使各個(gè)包從隊(duì)列130-1中出隊(duì)并將通知遞送給目標(biāo)102。例如,遞送引擎108-1可從隊(duì)列130-1中取出包126-1并將事件104的信息發(fā)送給路由名單128-1中標(biāo)識(shí)出的目標(biāo)102。因此,包括事件104-1的信息的通知134能以適用于不同目標(biāo)102并專用于各個(gè)目標(biāo)102的多種不同的格式從各分發(fā)分區(qū)被發(fā)送給目標(biāo)202。這允許在遞送系統(tǒng)的邊緣處從公共事件104-1中創(chuàng)建針對(duì)各個(gè)目標(biāo)102進(jìn)行了個(gè)別化的個(gè)別化通知134,而不是通過(guò)該遞送系統(tǒng)運(yùn)送大量個(gè)別化的通知。以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動(dòng)作。雖然用特定次序討論或用以特定次序發(fā)生的流程圖示出了各個(gè)方法動(dòng)作,但除非明確規(guī)定否則不需要特定次序,或因?yàn)橐粍?dòng)作依賴于另一動(dòng)作在執(zhí)行該動(dòng)作之前完成而需要特定次序。現(xiàn)在參考圖3,示出了方法300。該方法包括發(fā)射事件的動(dòng)作。該方法包括通過(guò)使用多個(gè)不同源專用的多個(gè)不同的協(xié)議與這些不同源通信來(lái)從這些不同源獲取數(shù)據(jù)(動(dòng)作302)。例如,圖2示出了獲取引擎118,它可用于從源116獲取數(shù)據(jù)。源116中的每一個(gè)可使用不同的協(xié)議來(lái)與獲取引擎118通信。該方法300還包括,基于所獲取的數(shù)據(jù),判斷事件應(yīng)發(fā)生(動(dòng)作304)。例如,可基于來(lái)自一個(gè)或多個(gè)源的信息作出股票報(bào)價(jià)改變、賽事比分改變、電子郵件到達(dá)、文本消息發(fā)送等的判斷。基于信息中的這種改變,可判斷事件應(yīng)被發(fā)射。方法300還包括引起事件,其中為得到消費(fèi)者的一致事件評(píng)估對(duì)所引起的事件進(jìn)行標(biāo)準(zhǔn)化,而不管來(lái)自導(dǎo)致該事件的數(shù)據(jù)源的數(shù)據(jù)的特定形態(tài)(動(dòng)作306)。例如,圖2示出了經(jīng)標(biāo)準(zhǔn)化的事件104正從獲取引擎被發(fā)射。無(wú)論引起事件104的信息來(lái)自源116中的哪個(gè)源,經(jīng)標(biāo)準(zhǔn)化的事件都可具有一致的格式。
可實(shí)踐方法300,其中事件包括鍵值對(duì),且其中對(duì)事件標(biāo)準(zhǔn)化包括使來(lái)自獲取數(shù)據(jù)的、與所獲取的數(shù)據(jù)中的鍵對(duì)應(yīng)的值在語(yǔ)義上映射到經(jīng)標(biāo)準(zhǔn)化的事件中匹配的鍵。例如,事件可具有作為鍵值對(duì)的鍵“標(biāo)題”以及該標(biāo)題的值。來(lái)自源的數(shù)據(jù)也可具有鍵值對(duì),其中鍵之一為“標(biāo)題”。這可從來(lái)自源116的信息直接映射到事件104。語(yǔ)義上的映射可包括執(zhí)行顯式語(yǔ)義映射。語(yǔ)義映射可包括在所獲取的數(shù)據(jù)與事件之間匹配鍵標(biāo)簽。語(yǔ)義映射可包括參考所獲取的數(shù)據(jù)中的鍵值對(duì)的描述。例如,描述可定義數(shù)據(jù)的含義。這種描述可用于映射數(shù)據(jù)。語(yǔ)義上映射可包括執(zhí)行隱式語(yǔ)義映射??蓪?shí)踐方法300,其中獲取包括從源獲取并存儲(chǔ)元數(shù)據(jù)以便于對(duì)事件進(jìn)行標(biāo)準(zhǔn)化。各方法可由包括一個(gè)或多個(gè)處理器和諸如計(jì)算機(jī)存儲(chǔ)器等計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)系統(tǒng)來(lái)實(shí)施。具體而言,計(jì)算機(jī)存儲(chǔ)器可存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令,這些指令在由一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得諸如各實(shí)施例中所述的各個(gè)動(dòng)作等各種功能被執(zhí)行。本發(fā)明的各實(shí)施例可以包括或利用包含計(jì)算機(jī)硬件的專用或通用計(jì)算機(jī),這將在下文中更詳細(xì)地討論。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問(wèn)的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲(chǔ)介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種顯著不同的計(jì)算機(jī)可讀介質(zhì)物理計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和傳輸計(jì)算機(jī)可讀介質(zhì)。物理計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤(pán)存儲(chǔ)(如CD、DVD
等)、磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何其他介質(zhì)。“網(wǎng)絡(luò)”被定義為允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過(guò)網(wǎng)絡(luò)或另一個(gè)通信連接(硬連線、無(wú)線、或者硬連線或無(wú)線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計(jì)算機(jī)可 執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。以上介質(zhì)的組合也被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件時(shí),計(jì)算機(jī)可執(zhí)行的指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可以自動(dòng)地從傳輸計(jì)算機(jī)可讀介質(zhì)傳輸?shù)轿锢碛?jì)算機(jī)可讀存儲(chǔ)介質(zhì)(或者反之亦然)。例如,通過(guò)網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi)的RAM中,然后最終被傳送到計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī)可讀物理存儲(chǔ)介質(zhì)。因此,計(jì)算機(jī)可讀物理存儲(chǔ)介質(zhì)可被包括在同樣(或甚至主要)利用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行指令包括,例如使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語(yǔ)言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書(shū)中定義的主題不必限于上述特征或動(dòng)作。相反,上述特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開(kāi)的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可在其中通過(guò)網(wǎng)絡(luò)鏈接(或者通過(guò)硬連線數(shù)據(jù)鏈路、無(wú)線數(shù)據(jù)鏈路,或者通過(guò)硬連線和無(wú)線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)施。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。本發(fā)明可具體化為其他具體形式而不背離其精神或特征。所描述的實(shí)施例在所有方面都應(yīng)被認(rèn)為僅是說(shuō)明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書(shū)而非前述描述指示。落入權(quán)利要求書(shū)的等效方案的含義和范圍內(nèi)的所有改變被權(quán)利要求書(shū)的范圍所涵 蓋。
權(quán)利要求
1.一種發(fā)射事件的方法,所述方法包括 通過(guò)使用多個(gè)不同源(116)專用的多個(gè)不同的協(xié)議與所述不同源(116)通信,來(lái)從所述不同源獲取數(shù)據(jù)(302); 基于所獲取的數(shù)據(jù),判斷事件(104)應(yīng)發(fā)生(304);以及 引起事件(104),其中為得到消費(fèi)者的一致事件(104)評(píng)估對(duì)所引起的事件(104)進(jìn)行標(biāo)準(zhǔn)化,而不管來(lái)自導(dǎo)致所述事件(104-1)的數(shù)據(jù)源(116)的數(shù)據(jù)的特定形態(tài)(306)。
2.如權(quán)利要求1所述的方法,其特征在于,所述事件包括鍵值對(duì),且其中對(duì)所述事件進(jìn)行標(biāo)準(zhǔn)化包括使來(lái)自所獲取的數(shù)據(jù)的、與所獲取的數(shù)據(jù)中的鍵對(duì)應(yīng)的值在語(yǔ)義上映射到經(jīng)標(biāo)準(zhǔn)化的事件中匹配的鍵。
3.如權(quán)利要求2所述的方法,其特征在于,在語(yǔ)義上映射包括執(zhí)行顯式語(yǔ)義映射。
4.如權(quán)利要求3所述的方法,其特征在于,執(zhí)行顯式語(yǔ)義映射包括在所獲取的數(shù)據(jù)和所述事件之間匹配鍵標(biāo)簽。
5.如權(quán)利要求3所述的方法,其特征在于,執(zhí)行顯式語(yǔ)義映射包括參考所獲取的數(shù)據(jù)中鍵值對(duì)的描述。
6.如權(quán)利要求2所述的方法,其特征在于,在語(yǔ)義上映射包括執(zhí)行隱式語(yǔ)義映射。
7.如權(quán)利要求1所述的方法,其特征在于,獲取包括從所述源獲取并存儲(chǔ)元數(shù)據(jù)以便于對(duì)事件進(jìn)行標(biāo)準(zhǔn)化。
全文摘要
本發(fā)明涉及橫向擴(kuò)展系統(tǒng)以獲取事件數(shù)據(jù)。發(fā)射事件。一方法包括通過(guò)使用多個(gè)不同源專用的多個(gè)不同的協(xié)議與不同源通信來(lái)從不同源獲取數(shù)據(jù)。該方法還包括,基于所獲取的數(shù)據(jù)判斷事件應(yīng)發(fā)生。該方法還包括引起事件。為得到消費(fèi)者的一致事件評(píng)估對(duì)所引起的事件進(jìn)行標(biāo)準(zhǔn)化,而不管來(lái)自導(dǎo)致該事件的數(shù)據(jù)源的數(shù)據(jù)的特定形態(tài)。
文檔編號(hào)H04L12/58GK103051666SQ20121033508
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年9月11日 優(yōu)先權(quán)日2011年9月12日
發(fā)明者C·F·瓦斯特斯 申請(qǐng)人:微軟公司