用於警報傳遞體系結構的方法和系統的製作方法
2023-08-02 22:35:21 2
專利名稱:用於警報傳遞體系結構的方法和系統的製作方法
技術領域:
本發明總地涉及消息發送,更具體地說,涉及在網絡上實現警報的傳遞。
背景技術:
一些服務已向用戶提供了專門內容(例如,證券報價)的警報。這些警報服務一般向已註冊到特定服務的用戶提供有關單個主題的內容。為了獲得有關多個主題的警報,用戶一般要註冊到多個服務。
圖1根據本發明圖示了一個示例性的警報體系結構;圖2是圖示了在與參照圖1描述的體系結構相對應的各功能元件之間的關係和數據流的功能框圖;圖3是圖示了示例性的用於處理所收集內容的邏輯的流程圖;圖4圖示了用於管理輪詢內容以產生定期警報的輪詢器(poller)體系結構;圖5是圖示了用於準備基於時間的警報的邏輯的流程圖;圖6是圖示了示例性的用於向一個或多個用戶傳遞警報的邏輯的流程圖;以及圖7示出了根據本發明一種實施方式的一個示例性伺服器的功能框圖。
具體實施例方式
下面將參考附圖來更充分地描述本發明,這些附圖構成了本發明的一部分,並且以圖示說明的方式示出了可以實現本發明的示例性的具體實施方式
。然而,本發明可以具體實現為多種不同的形式,不應當被理解為局限於這裡所闡述的實施方式;相反,提供這些實施方式是為了使公開變得充分完整,並且向本領域的技術人員充分地表述本發明的範圍。此外,本發明可以被實施為方法或設備。據此,本發明可以採用全硬體實施、全軟體實施或者軟體硬體兩個方面結合實施的形式。因此,以下詳細描述不具有限制意義。
在整個說明書中,術語「連接」是指在互連的事物之間的直接連接,而沒有任何中間設備或組件。術語「耦合」是指在互連的事物之間的直接連接,或者通過一個或多個無源或有源的中間設備或組件的間接連接。「一個」、「一種」和「該」的含義包括多個的意思。「在...中」包括「在...中」和「在...上」的含義。
簡要地說,本發明涉及使得用戶能夠註冊一種興趣,並且接下來當關於所註冊的興趣有新的信息變為可用時,向該用戶提供通知(警報)的系統和方法。用戶可能對幾種類型的內容都有興趣,包括但不限於證券饋送、新聞報導、個人廣告、購物清單價格、圖像、搜索結果等。另外,可以用多種傳遞方法中的任意一種或全部方法向用戶提供警報,包括但不限於即時通訊(IM)、電子郵件、短消息服務(SMS)、多媒體消息服務(MMS)、語音消息等。
在一些情形中,用戶可以選擇通過所有可用的方法來提供針對某些已註冊的興趣的警報,而對於其他已註冊的興趣的其他警報,選擇只用一種方法來提供。此外,可以用一種推壓(push)方法來提供一些警報,以提供相對即刻的通知。在此情況下,本發明將會利用所存儲的聯繫信息,用所有已選擇的傳遞方法向用戶傳遞警報。相反,可以用拉回(pull)方法提供其他的警報,該方法響應於來自用戶的、有關其他已註冊興趣的請求,用警報做出應答。請求也可以被安排為發生預定的次數,以提供周期性的警報。
對於從網絡上的某個網絡地址翻譯(NAT)設備後面與本發明通信的用戶而言,拉回方法採用通過用戶的拉回請求而建立的連接來向用戶發送警報。多長時間提供一次拉回警報取決於用戶發出本發明的拉回請求的頻率。然而,對於沒有通過NAT與本發明通信的其他用戶而言,可以以選定的時間間隔採用所述推壓方法來提供不那麼緊急的警報。
可以在網頁上為用戶提供警報的歷史。另外,對於基本相同的已註冊興趣,用於處理其警報的查詢可以被合併在一起,使得本發明能夠擴展到相對大量的用戶。為了進一步實現可擴展性,當用於已註冊興趣的新內容信息變為可用時,例如可以通過可擴展置標語言(XML)饋送將對查詢的布爾預處理和預編索引應用於新的內容信息。還可以提供用戶配置信息(user profile),其中包括各種信息,包括但不限於對已註冊興趣的布爾查詢、傳遞方法、時間進度表等。
圖1根據本發明圖示了一種示例性的警報體系結構。該警報體系結構可以用一個或多個軟體模塊和/或一個或多個計算設備(例如伺服器、客戶端設備等)來實現。計算設備通常包括處理器、存儲器、通信接口、輸入/輸出接口、存儲設備、和/或其他常見的計算元件。警報處理系統100a訪問源內容101、夥伴警報102、拉回內容122和/或其他內容信息,以作為警報分發給客戶端設備。源內容101可以包括多種內容,例如個人廣告、購物價格、新聞報導等。夥伴警報102進一步包括諸如證券報價、拍賣競價等已作為警報從某一專題服務處提供的內容。源內容101和/或夥伴警報102可以是推壓和/或拉回的內容。換言之,源內容101和/或夥伴警報102可以是基於事件的內容饋送和/或基於排定時間的內容饋送。一個或多個饋送收集伺服器103接收內容並執行輸入處理,下面將參考圖2和3做進一步的描述。對於不即刻處理的內容,收集伺服器103將內容發送到存儲伺服器104。
一個或多個匹配伺服器110將內容與已指明有興趣接收有關選定內容的警報的用戶關聯起來。通常,在內容源壓入內容時採用匹配伺服器110,這種壓入的內容尚未與用戶請求關聯。有關接收一種或多種類型警報的興趣在用戶配置信息中指明,而所述用戶配置信息被存儲在用戶資料庫115中。用戶配置信息包括用戶標識符、期望的警報類型、期望的傳遞方法以及其他信息。輪詢器120代表用戶來管理對內容的請求。通常,輪詢器120發起對內容源的內容訪問。輪詢器120可以從不向收集伺服器103推壓內容的內容源中訪問一些獨立的拉回內容122。
一個或多個傳遞伺服器130與匹配伺服器110和輪詢器120進行通信。傳遞伺服器130從輪詢器120中訪問拉回內容122,從匹配伺服器110中訪問推壓內容,並且從用戶資料庫115中訪問用戶信息。傳遞伺服器130管理警報的分發並為其排定優先級,以便進行即刻傳遞或預先排定的傳遞。預先排定的警報被存儲在一個或多個存儲伺服器組132a-132n上。每個組可以對應於一類警報、一種傳遞方法、和/或其他特性。當警報被準備並且傳遞時,用戶監視器140觀察警報的流動,以獲知模式和/或其他內情。監視器140也可以跟蹤和/或訪問有關用戶行為的信息,所述用戶行為例如是導航到網站,進行在線購買等。被跟蹤的行為也指示出被存儲在用戶資料庫115內的用戶配置信息中的用戶興趣。日誌器142跟蹤與各個用戶、警報類型及其他參數相關聯的數據。調試器144被用來解決在處理警報時遇到的問題。當一個警報將被傳遞時,它被路由到一個或多個適當的伺服器,以按照用戶的偏好方法進行傳遞。例如,電子郵件警報可以經由批量伺服器152來傳遞。前往無線行動裝置的警報可以經由無線伺服器154來傳遞。即時消息警報可以經由即時消息伺服器156來傳遞。每個警報一般都要通過網絡160被傳送到在用戶配置信息中標識的客戶端設備。用戶可以指示該警報應被傳遞給個人計算機(PC)162、移動終端164、手持計算機166和/或其他設備中的一個或多個。
也可以使用鏡像接口158來與一個或多個鏡像警報處理系統100b進行通信。前面介紹的數據和處理操作中的全部或若干部分可以被複製,以用於在相同和/或不同位置上的並行處理。鏡像接口158可以包括中央通信接口和/或分布在上述伺服器的每一個中,使得每種伺服器類型都可以與多種鏡像伺服器類型通信。在每一個鏡像警報處理系統上,每種伺服器類型的操作都可以針對局部特有因素來定製。
圖2是圖示了在與參照圖1描述的體系結構相對應的各功能元件之間的關係和數據流的功能框圖。推壓或拉回的源內容170以一種或多種形式被接收到,包括以超文本置標語言(HTML)文檔的形式,以XML文檔的形式,以文本文件的形式,以電子郵件消息的形式,以即時消息的形式等。在需要時,收集處理模塊172對接收到的內容執行一項或多項預處理操作,以規範化所接收的多種內容形式。規範化後的內容文檔通常在饋送存儲104a中按照源、時間戳、內容類型和/或其他特性來編索引,以便於存儲和檢索,其中饋送存儲104a也基於存儲目錄路徑來指派統一資源定位符(URL)。URL可以被收集處理模塊172獲得,以用於隨後的檢索。下面參考圖3來更詳細地描述收集處理。
管理接口174可用於訪問所接收的數據,以供複查和/或管理功能,例如獲得狀態、搜索、手動輸入內容等。管理接口174還可以用於建立測試內容的心跳式饋送(heartbeat feed),這些饋送被跟蹤來確保系統正常運行。
如果內容是從基於事件的饋送點(例如證券價格源)被壓入的,那麼內容被中繼到匹配引擎110a。這一中繼和/或其他通信,例如基於時間的饋送,可以經由使得數據可從一個伺服器被拷貝到另一個伺服器的複製饋送而完成。可替換地,中繼和/或其他通信可以經由數據總線饋送而完成,所述數據總線饋送使數據被廣播,直到被所有預期的接收者都接收到。匹配引擎關於所接收的內容確定警報應當被發往的用戶。匹配引擎從用戶資料庫中訪問用戶配置信息數據115a,以將內容與已指明對該內容的需求,或者以其他方式選擇接收有關該內容的警報的用戶關聯起來。具體地說,用戶配置信息指示了用戶期望獲得其警報的一種或多種內容類型,例如交通事故、證券報價等。用戶的配置信息還指示出一個或多個布爾查詢,它們包括一個或多個邏輯運算符,例如AND、OR、NOT等。用戶配置信息中的一個布爾查詢樣本如下所示STOCK AND(COMPANY AND PRICE>$100)如果輸入的內容類型包括證券報價,則匹配引擎110a應用布爾查詢,以確定該證券報價內容是否包括有關所選擇的公司並且價格大於$100的信息。如果證券報價包括匹配的內容,則匹配引擎110a將該用戶加入期望獲得有關所述匹配內容的警報的用戶列表中。
很多其他用戶可能具有類似的查詢,和/或將輸入的內容與不同的查詢進行匹配。為了改進可擴展性的性能,匹配引擎110a維護一個查詢索引,並將每個查詢與期望獲得相同的或者非常近似的查詢結果的那些用戶關聯起來。這個查詢索引減少了查詢操作的重複。以後輸入的內容可以針對這些預編索引的查詢進行分解。對於導致匹配的任何查詢,對應的用戶標識符被加入列表。同樣取自用戶的配置信息並且被包括在列表中的是用戶期望的傳遞方法,例如通過電子郵件,通過即時消息,通過蜂窩電話等。類似地,可以在用戶配置信息中指定期望的傳遞時間。也可以在用戶配置信息中提供消息限制,以限制被發送給用戶的警報和/或其他消息的數量。可以基於內容的類型、計算設備上的當前負載和/或其他屬性,在所述計算設備之間分配查詢。當對於內容已完成了所有的查詢時,匹配引擎110a準備將所述內容和列表中繼到傳遞接口130a。
在中繼之前,匹配引擎110a還可以基於用戶配置信息數據、內容的類型、將要發送的警報類型等來確定優先級。優先級有時被稱為服務質量(QOS)等級。例如,證券價格內容一般是高度時間敏感的,因此匹配引擎可以在向用戶匹配證券價格內容時應用更高的優先級(例如,高QOS等級)。另一個例子是,匹配引擎可以使用用戶配置信息數據115a來根據付費服務計劃和/或其他特性,為發往用戶的警報指定優先級。
對於使用基於排定時間的饋送的拉回內容而言,輪詢器120a為期望獲得具有所指示內容類型的警報的一個或多個用戶請求內容。輪詢器120a可以從收集處理模塊172中拉回內容,或者直接從可能沒有被預先安排為將內容饋送到收集處理模塊172的外部源中拉回內容。外部內容被規範化,或者按上述方式進行預處理,除非所請求的內容在被發送給輪詢器120a之前已由內容源進行了預處理。下面參考圖4和5來進一步描述輪詢器處理。
無論如何,當內容將被傳遞給終端用戶時,圖2中所示的傳遞接口130a都以用戶期望的一種或多種方法來生成警報。例如,一些用戶可能期望警報以短消息服務(SMS)消息的形式被傳遞到蜂窩電話號碼。傳遞接口130a通常使用一個對應於傳遞方法的模板。該模板被應用於一個內容文檔或指向內容文檔的URL,以生成最終的警報。傳遞接口130a還為每個用戶管理著警報傳遞的定時和/或其他QOS方面。例如,一些警報被即刻傳遞,而其他警報可以被安排為隨後傳遞。其他例子包括基於地理位置、商業夥伴、內容源和/或其他參數來安排路由。傳遞接口130a還管理著不可傳遞的警報和/或其他維護問題。下面參考圖6來討論有關傳遞的更多細節。
內容數據收集處理沒有描述有關內容收集處理的進一步細節。圖3是圖示了一種示例性的用於處理收集內容的邏輯的流程圖。當接收到內容時,在操作180處對源進行認證。可以以一種或多種方式來實施認證和/或其他安全措施,例如經由數字證書、數字籤名、加密、虛擬私有網絡通道等。也可以用域安全性機制來認證內容的源,包括但不限於例如由雅虎公司提供的域密鑰應用。
在操作182處,所接收的內容被轉換成規範化內容格式,例如XML格式。表1圖示了所接收的內容被規範化成的XML數據結構的例子,以供進一步的處理以及最終作為警報的傳遞。
表1示例性的XML數據結構
以下代碼圖示了有關交通事故的規範化XML內容文檔的例子,它可被用於生成警報。
?xml version=″1.0″encoding=「UTF-8」?
AlertsDocument
Contactshi@yahoo-inc./Contact
CountryUS/Country
Date1048495620000/Date
ExpirationDate1048497420000/ExpirationDate
Urlhttp//alerts.yahoo.com//Url
Feedus traffic/Feed
TypetrafficType
Title matching=1
Disabled vehicle/Title
Abstract matching=1
Disabled Vehicle/Abstract
Body
Some more descriptive about the incident.
/Body
Alert_Data
DESCDisabled Vehicle/DESC
LATITUDE38.554289/LATITUDE
LONGITUDE-121.406181/LONGITUDE
SEVERITY2/SEVERITY
STATECA/STATE
MARKETCODESAC/MARKETCODE
ENDTIMEMon Mar 2409:17:002003/ENDTIME
ITISCODE211/ITISCODE
ITISMESSAGESome more descriptive about the incident./ITISMESSAGE
...
/AlertData
/AlertsDocument
在操作184處,收集處理模塊檢驗所述內容,以證實必要的數據已從源處被包括進來。檢驗操作還可以包括更新和/或清除先前已接收的重複內容,和/或保證其他數據完整性方面。此外,檢驗操作可以包括證實內容是從經認證的源處正確接收的。檢驗操作可以包括對加密/解密、數字籤名、數字證書、口令、對稱密鑰對、非對稱密鑰對等的檢驗。
一般地,規範化的XML內容文檔可以不經修改就被處理。然而,在饋送變換操作185中可以進行某些修改。在很多情形中,內容饋送變換將包括細小的格式化轉換或簡單的字符串替換,以解決檢驗問題。儘管如此,仍可以執行更複雜的邏輯操作。例如,輸入的證券報價可以與先前的證券報價進行比較,以確定證券價格是否發生了預定百分比的改變。當某日開盤後某支證券的價格改變了某個百分比時,可能有大量請求獲得警報的用戶。收集處理模塊可以在將證券報價數據與用戶建立關聯之前預先計算當前的百分比變化,從而在確定是否應向上述大量用戶發送警報時不需要使用或者複製正在處理的資源。
在操作186處,收集處理模塊還為內容編索引,以基於多種度量來存儲、搜索、檢索、跟蹤和/或組織內容。其中一些度量是規範化內容文檔的規範化數據結構中固有的,然而,度量也可以被存儲在用於狀態信息和報告的索引文檔中。示例性的度量可以包括接收到內容的時間、發送者的標識符、內容發自哪個國家、內容的類型、內容是否與一個輪詢請求相關聯、內容是否與先前接收到的內容相關聯等。除了方便訪問大量輸入的內容之外,收集處理模塊還可以使用度量來執行內務整理和優化,例如刪除重複的內容,過濾內容以識別細小的修改等(在操作188處)。舉例來說,可以在新聞報導中校正拼寫錯誤,並且從一個內容源重新發送。用戶可能不太想要同一新聞報導只是進行了拼寫校正的兩份警報。如果第一篇新聞報導已被發送,那麼就可以刪除第二版本,除非兩者之間的差別超過了閾值。可替換地,如果該新聞報導原先未作為警報被發送,那麼可以用校正後的版本來取代該新聞報導的第一版本,並且排入隊列等候,使得在排定的時間上只有一個警報被發送給用戶。度量的索引文檔和/或內容文檔通常被存儲在饋送存儲設備中。每個存儲的索引文檔通過一個索引統一資源定位符(URL)來標識,以便於訪問索引信息。
在上面的整個操作過程中,收集處理模塊可以插入標籤和/或其他代碼來協助匹配引擎。例如,關於上述示例性的XML文檔,收集處理模塊可以向AlertsDocument標籤的每個直接CDATA子標籤應用一個可選的「匹配」屬性。匹配引擎可以掃描文檔以尋找「匹配」標籤,並且向文本元素應用(一個或多個)查詢表達式,以確定與文檔匹配的用戶標識符。
輪詢器子系統圖4圖示了用於管理輪詢內容以產生定期警報的輪詢器體系結構。存在N個輪詢器伺服器180a到180n以及至少兩個輪詢器管理器伺服器(PMS),包括主PMS 182和通常起到備份作用的副PMS 184。每個輪詢器伺服器運行使用非攔截I/O的多個過程,以基於警報類型(例如個人廣告、天氣通報等)處理來自一個或多個期望的內容源122a的多個輪詢。期望內容例如可以通過HTTP接口,從收集處理模塊被傳送到輪詢器120和/或被獨立地訪問。每個輪詢器伺服器在諸如96Berkeley DB文件的資料庫文件中對每個用戶標識符都存儲同樣的警報信息。每個文件都代表一個時隙,例如15分鐘-24×4。當警報請求被插入用戶資料庫115中的用戶配置信息時,基於提供者代碼、警報類型、高級(premium)標誌和/或其他參數來計算QOS值。一個定期警報被傳送到(一個或多個)傳遞伺服器130,以在對應的時段上分發。
圖5是圖示了用於準備基於時間的警報的邏輯的流程圖。在操作200處,輪詢器伺服器在過去了預定的時間後甦醒,並且向主PMS發送甦醒信號。如果主PMS當機,則甦醒信號被路由到副PMS。甦醒信號指示輪詢器伺服器可用於對與一個或多個預定的警報類型相對應的內容進行輪詢。甦醒信號可以被節流,使得PMS不會突然就被甦醒信號打亂。當PMS接收到甦醒信號時,PMS在操作202處向PMS的存儲器中的輪詢器伺服器列表添加當前可用的輪詢器伺服器。在操作204處,PMS發送fetch_alerts_list請求,以讓PMS的列表上的第一輪詢器伺服器訪問一個或多個內容項,例如個人廣告、交通報告等。在操作206處,輪詢器伺服器接收到取回請求,訪問所期望的內容項,並且將這些內容項發送回PMS。為了訪問內容項,輪詢器伺服器執行由存儲的用戶偏好定義的查詢和/或由多個用戶期望獲得的強化查詢。如果從查詢中沒有找到任何結果,那麼輪詢器伺服器可以可選地拓寬查詢並且再試一次。內容項對應於當前預定義的時間段,例如15分鐘的時隙。輪詢器伺服器在將內容項返回PMS之前可以根據QOS等級為這些內容項排定優先級。
在操作208處,PMS將從多個輪詢器伺服器返回的內容項過濾到若干表中。這些表是基於警報類型的QOS等級、用戶服務計劃等而建立的。例如,內容項可以被分類到對應於優先級等級的QOS表3、QOS表2、QOS表1和QOS表0中。每個內容項在被加入這些表之一中時也會被分配一個時間戳。時間戳使得PMS能夠跟蹤內容項已存在於表中,而未被處理成警報的時間長度。總之,停留在表中的時間長度超過閾值的內容項指示出沒有足夠的輪詢器伺服器用於該負載。
除了以預定的間隔對內容項進行輪詢之外,輪詢器伺服器還執行操作以準備將要傳遞的相應警報。因而,在操作210處,輪詢器伺服器向PMS發送請求來索要工作。PMS通常基於QOS等級的順序將表中的內容項發送給輪詢器伺服器。輪詢器伺服器可以執行邏輯操作,例如將舊的查詢結果與當前內容項進行比較。例如,如果當前內容項與舊的查詢結果不同,則輪詢器伺服器可以用當前內容項來取代舊的查詢結果。由於可能在很長的一段時間內不會傳遞定期警報,所以在相應的警報被最終傳遞之前,可能會多次更新內容。一旦輪詢器伺服器完成了它的工作,輪詢器伺服器就向PMS發送確認信息,指示內容項已被處理並且警報已被創建。輪詢器伺服器還向傳遞伺服器發送傳遞具有所述內容項的警報的請求,並且輪詢器伺服器索要更多的工作。一旦接收到確認信息,PMS就在操作212處從其對應的表中清除所述內容項,指示對應的警報任務完成。
在判決操作214處,PMS判斷來自每張表的所有內容項是否都被清除,指示每個QOS等級的所有任務都已完成。如果每張表都是空的,則處理直接返回操作200,以等待另一個甦醒信號。如果不是每張表都是空的,那麼PMS沒有能夠完成它的所有任務,並且PMS可以將錯誤記入日誌。在操作216處,所有剩餘的未處理的內容項與在下一時間段內獲得的新內容項混合在一起。
傳遞子系統圖6是圖示了示例性的用於向一個或多個用戶傳遞警報的邏輯的流程圖。如前面簡要說明的,傳遞伺服器和存儲伺服器一般包括用於與傳輸伺服器相接口的傳遞子系統,用於以多種方法傳遞警報。傳遞子系統的所有組件都可以包括硬體和/或軟體配置的任何組合。這種靈活性使得警報可以被部署在變動的環境中,例如部署在具有有限硬體資源的國際站點上。
在初始化操作220處,例如當新安裝了傳遞伺服器或者傳遞伺服器在離線一段時間後返回服務時,和/或在某些預定義的時間段上,傳遞伺服器從另一個活動的傳遞伺服器和/或從諸如管理接口的另一個源處接收更新的模板。所有的傳遞伺服器都應當具有在整個傳遞伺服器組內自動傳播的同一組模板。
在操作221處,傳遞伺服器從匹配引擎和/或輪詢器接收到向一個或多個用戶傳遞一條或多條消息的一個或多個請求。所述請求一般包括一組密鑰以及與每個密鑰相關聯的值。密鑰對應於傳遞模板中與傳遞方法相對應的佔位符,所述傳遞方法例如是電子郵件、即時消息器、SMS、Web伺服器、文件傳輸協議(FTP)傳遞等。例如,在一個請求中的密鑰-值對fullname,John Smith將被用來取代所選擇的傳遞模板中的「fullname」佔位符。可以用公知的模板語言來寫傳遞模板,例如個人主頁超文本處理(PHP)、JAVATM伺服器頁面(JSP)、HTML Force 2000(HF2K)和/或私有模板語言。內容類型,例如證券報價、新聞、機密內容等可以被傳遞伺服器用來確定使用哪一組傳遞模板。對於每一種內容類型,可以針對不同的可用傳遞機制來創建一組傳遞模板,所述可用的傳遞機制例如包括HTML頁面伺服器、文本文件傳輸、即時消息器、SMS等。然而,傳遞伺服器通常完全不了解所要處理的特定警報文檔。相反,傳遞伺服器只是看到一個文檔包括內容和用戶ID列表。這種內容文檔和用戶ID列表的組合有時被稱為ProcessMatchList。如上所述,用戶ID列表包括與特定的內容饋送相匹配的那些用戶ID。內容文檔包括一組密鑰-值對,它們代表了將要發送的警報的實際內容。對於每一種傳遞方法都可以有一組密鑰-值對,包括但不限於用於電子郵件傳遞的一對、用於無線傳遞的一對、用於IM的一對、以及用於全球資訊網歷史的一對,下面將會解釋。除了在上面表1中標識的密鑰-值對之外,ProcessMatchList一般還包括來自用戶配置信息的用於傳遞目的的以下信息-來自用戶資料庫的用戶ID代碼;-用於傳遞的國家代碼;-與警報內容和/或傳遞方法相關聯的夥伴ID;-用戶類別;-QOS等級;-定期傳遞還是即刻傳遞的標誌;-高級服務包信息;-通過例如對於移動傳遞來說可能需要的記帳信息。對於在通過移動服務提供者、電子郵件提供者等的傳遞路徑的最後一段上的任何記帳活動,以上信息也可以用於記日誌/統計目的,以確定用于格式化警報內容的實際模板。
一旦接收到ProcessMatchList,傳遞伺服器就在操作222處確定與在ProcessMatchList中標識的每個用戶和/或每種傳遞方法相關聯的QOS等級。傳遞伺服器將在到達隊列和離開隊列中根據QOS等級來處理請求。來自匹配伺服器的消息通常根據隊列中包含的用戶的優先級等級而駐留在適當的到達隊列中。從傳遞伺服器中生成的警報通常根據該警報是否將經由電子郵件、無線SMS、IM和/或其他方法發送而駐留在適當的離開隊列中。附加地或者可替換地,傳遞伺服器可以保證高級用戶例如在用戶資料庫當機的情況下具有特殊的傳遞選項。存儲伺服器存儲有關每個用戶的最後得知的電子郵件地址、無線設備號碼和/或其他信息。當傳遞伺服器無法從用戶資料庫獲得信息時,傳遞伺服器就從存儲伺服器中檢索該信息。傳遞伺服器還可以針對每個警報、每個無線設備、每個用戶,和/或以其他方式施行消息限制。傳遞伺服器將與存儲伺服器接口,以存儲/檢索消息限制信息。
在操作224處,傳遞伺服器判斷在將警報傳遞到某些用戶和/或通過某些傳遞方法來傳遞警報的過程中,是否設置了任何種類的攔截或重新路由。例如,用戶可能已指示了該用戶不想收到任何警報的安靜時間,例如在夜晚時段上。類似地,用戶可能正在休假,並已請求在用戶返回之前不要傳遞任何警報。傳遞伺服器還可以確定除了用戶的主要優選方法之外,是否應當通過多種其他傳遞方法來轉發警報。
在判決框226,傳遞伺服器判斷哪些警報將被立即發送,而哪些警報將在排定的時間上發送。那些被安排稍後傳遞的警報將被存儲在傳遞存儲伺服器上。至少有兩種方式來實現傳遞存儲伺服器,這裡被稱為選項A和選項B。
選項A對於定期警報,資源管理伺服器(RMS)在操作228處確定哪些用戶的警報被存儲在哪些存儲伺服器上。需要為用戶存儲警報的任何傳遞伺服器都將首先在用戶資料庫中查找用戶的相應警報設置,以找到StorageId,這是警報將被存儲的地方。如果不存在這樣的StorageId,那麼傳遞伺服器聯繫RMS以獲得StorageId。RMS將根據每個已註冊的存儲伺服器的當前負載/使用狀況來決定用戶的警報將被存儲在哪個存儲伺服器上。serverId將被返回給接著將把StorageId存儲在用戶資料庫中的警報設置中的傳遞伺服器。出於故障轉移的目的,或者如果RMS當機或未響應,則RMS API將確保最後發出的StorageId作為被傳送到RMS的任何後續查詢的結果被傳遞,直到它恢復正常。
在操作230處,一旦識別出適當的存儲伺服器,傳遞伺服器就將用戶的警報和(可選地)它們的傳遞選項存儲到該存儲伺服器。除了單純地等待稍後的傳遞之外,所存儲的警報可以與較新的警報進行比較,以確保最新內容。例如,用戶應當只接收在一天中被多次更新的新聞故事的單個警報,雖然在排定的傳遞時間前的一段時間內可能因為更新而產生了多次匹配。
和傳遞伺服器一樣,存儲伺服器通常完全不知曉任何警報特有的信息。存儲伺服器將盡最大可能地將信息存儲在共享存儲器(例如shm)中以便快速檢索,並且儘可能地少使用盤存儲設備。為了高效,任何大量用戶共有的信息(例如內容饋送信息)都可以被一次存儲並針對用戶編索引。在一種實施方式中,在每個伺服器中至少可存在四個存儲區,這可以利用共享存儲器和盤迴寫(disk write back)的組合來實現饋送存儲對於與內容饋送類型相匹配的整組用戶,將一次性地存儲每一集合的密鑰-值對。
用戶存儲對接收定期警報感興趣的每個用戶的條目。當用戶決定刪除/編輯警報時,需要該區域對用戶的記錄進行快速訪問。
時間存儲每個對接收定期警報感興趣的用戶都將具有一條被存儲在適當的時隙和適當的服務隊列下的記錄。
全球資訊網存儲每個被傳遞的警報都將具有一條永久記錄,以供在全球資訊網前端上使用,上述記錄的指針指向創建該警報的饋送點。
為了實現故障轉移和定期警報的快速檢索,所述伺服器中的任意一個都可以被鏡像映射。每個伺服器都可以例如利用求模(modulo)算法,在警報的一個子集上完成動作。對於每個動作,例如傳遞定期警報,伺服器將該動作複製到一個或多個對等鏡像。在完成定期傳遞的處理器之間通常建立一種心跳機制,使得如果一個伺服器當機或者處理過程因某種原因發生故障,則在鏡像伺服器上的剩餘處理將繼續完成工作。這充分利用了鏡像伺服器的優勢,不僅用於故障恢復,而且使可獲得的處理能力加倍(例如,兩倍、三倍等)。
選項B在傳遞存儲伺服器的替換實施方式中,關係資料庫存儲關於警報匹配結果的饋送內容。從理論上來講,有三種類型的表被用於關聯饋送內容、用戶警報匹配和傳遞排定時間。由此,這三種類型的表被稱為Feed表、AlertMatches表和TimeSlot表。Feed表包含存儲伺服器所接收到的每個內容饋送。通過FeedId來唯一地標識每個內容饋送。在表2中示出了示例性的Feed表數據結構。
表2示例性的Feed表數據結構
AlertMatches表存儲每個警報的用戶匹配。利用唯一的AlertId來引用用戶的警報。對於每個AlertId,可能有0個或更多的內容饋送。對一個AlertId的幾個匹配將用AlertMatches表中的多行來表示,每一行具有不同的FeedId。每個元(tupel)AlertId,FeedId在AlertMatches表中是唯一的,並且將用戶的警報綁定到對應的內容饋送。在圖3中示出了示例性的AlertMatches表數據結構。
表3示例性的AlertMatches表數據結構
Timeslot表存儲與傳遞時隙相關聯的所有用戶的警報id。在一天中的每個15分鐘傳遞時隙對應於一張Timeslot表。例如,表TimeSlot_9_45包括將傳遞偏好設置為9:45am的所有警報id。在每個傳遞時隙的開端,多個過程開始處理TimeSlot表中的警報id。為了協調這些過程,TimeSlot表中的「ClaimedBy」欄位允許每個過程檢查是否另一個過程已經工作在特定的警報id上。如果ClaimedBy欄位是空的,則這個警報id可以由下一個可用過程來處理。在表4中示出了示例性的TimeSlot表數據結構。
表4示例性的TimeSlot表數據結構
當警報已存儲時,傳遞存儲伺服器還將從用戶資料庫獲得更新(在操作232處)。這樣做的一個原因就是無論何時用戶刪除警報,或者無論何時用戶決定改變定期警報的傳遞時間,都要清除用戶條目。在預定義的傳遞時間段上,例如每小時,存儲伺服器訪問那些在該時間段上應被傳遞的已存儲警報,並且將這些已存儲的警報標記為即刻傳遞。然後,存儲伺服器在操作234處將那些已標記的警報發送到傳遞伺服器。在操作236處,傳遞伺服器應用一個模板以根據預先選擇的傳遞方法來格式化輸出的警報,如果上述模板先前未曾應用過的話。傳遞伺服器然後將即刻傳遞警報傳送到傳輸伺服器,以經由電子郵件、即時消息、SMS、和/或與每個警報相關聯的無論哪種傳遞方法來進行傳遞。
一旦警報已由傳遞伺服器發送出去,就在操作238處向存儲伺服器發送「addToHistory」請求,以用警報已被發送出去的事實來更新用戶的歷史。「addToHistory」請求還包括一組密鑰-值對,使得不同的警報類型可以存儲不同組的信息。就像上面提到過的,傳遞伺服器通常完全不了解它正在為之發送「addToHistory」請求的特定警報。需要存儲的那組密鑰-值對由匹配方來定義。每個到達傳遞伺服器的請求也應當伴隨有對於特定的警報需要被存儲的任何一組密鑰名稱。
歷史信息也可以從存儲伺服器被廣播到其他服務。例如,歷史結果可以直接從一組鏡像存儲伺服器,或者從單獨的一組提供歷史結果的存儲伺服器被提供給前端網頁和/或其他全球資訊網門戶頁。共享存儲器可以持有儘可能多的用戶歷史結果(實況更新的「addToHistory」請求是從傳遞伺服器而來的),同時歷史結果可以被寫入盤中以永久存儲。如果用戶的最上面的N個歷史結果不在共享存儲器中,則可以從用戶的永久存儲文件中訪問得到歷史結果。如上所示,結果將以密鑰-值對的形式返回,並且將由接收方負責以適於接收方的形式來格式化結果。例如,實際的新聞警報可能已經以用戶接收到的最後3個新聞警報的摘要和URL的形式被發送給了用戶,但是歷史頁面可能只需要呈現URL。獨立格式化使得在加入新的警報類型的同時,可以不必更改存儲在歷史文件中的內容,從而使新的警報類型適應歷史報告的新要求。總之,密鑰-值的方法將適合未來的需要。
採取了很多措施來確保在出現重大故障、惡化問題,甚至需要更新伺服器時不會丟失信息。如上所述,每個存儲伺服器由至少一個其他伺服器來鏡像映射,使得一個伺服器可以被取走,而由它的(一個或多個)鏡像來處理流量。可以採用複製文件和共享存儲器的備份。例如,可以採用每天至少兩次的共享存儲器的備份,以及至少24小時那麼多的輸入複製文件量,以使得共享存儲器的重建能夠儘可能快地進行,以使伺服器回到線上。
其他恢復能力確保了傳遞請求的完整處理。例如,只有當與對應的內容文件相關聯的所有用戶ID都已被處理時,傳遞伺服器才將一個警報標記為「完成」。監視器和/或其他器件可以監視未發送的警報的狀態,並且在需要時使得警報處理重複進行。這種恢復能力也可以適用於傳輸伺服器。
除了確保恢復外,鏡像組也可以用於可擴展性。為了應對逐步增多的來自匹配伺服器的流量,可以隨時加入任意數量的額外的傳遞伺服器。反之,為了維護需要,可以隨時取走任意傳遞伺服器,使其離線。剩餘的活動伺服器將會處理來自匹配伺服器的輸入流量。
為了應對逐步增多的用戶註冊,可以水平加入任意數量的存儲伺服器,其中加入了總數更多的鏡像組。為了應對逐步增多的定期警報活動,還可以垂直加入存儲伺服器,其中每組加入了更多的鏡像伺服器。
示例性的服各器環境圖7根據本發明的一種實施方式示出了示例性的伺服器300的功能框圖。伺服器300可以包括上面討論的伺服器中的任意一個或多個,例如匹配伺服器、饋送存儲伺服器、輪詢器、傳遞伺服器、存儲伺服器、傳輸伺服器等。可以類似地配置客戶端設備。伺服器300可以包括很多上面未示出的組件。然而,示出的組件已足以公開用於實現本發明的示例性實施方式。
伺服器300包括處理單元312、視頻顯示適配器314和大容量存儲器,它們全都經由總線322相互通信。大容量存儲器一般包括RAM 316、ROM 332以及一個或多個永久性大容量存儲設備,例如光碟機動器326、硬碟驅動器328、磁帶驅動器、和/或軟盤驅動器。大容量存儲器存儲用於控制伺服器300的操作的作業系統320。可以使用任何通用的作業系統。還提供了基本輸入/輸出系統(「BIOS」)318來控制伺服器300的低級操作。如圖6所示,伺服器300可以經由網絡接口單元310與網際網路或者某種其他通信網絡進行通信,例如圖1的網絡160,所述網絡接口單元310被構造為適用於各種通信協議,包括傳輸控制協議/網際網路協議(TCP/IP)。網絡接口單元310有時被稱為收發器、收發設備、網絡接口卡(NIC)等。伺服器300還包括用於和外部設備通信的輸入/輸出接口324,所述外部設備例如是滑鼠、鍵盤、掃描儀、或者圖1中未示出的其他輸入設備。
上述大容量存儲器例示了另一種類型的計算機可讀介質,即計算機存儲介質。計算機存儲介質可以包括以任意信息存儲方法或技術實現的易失性、非易失性、可移動以及不可移動的介質,所存儲的信息例如是計算機可讀指令、數據結構、程序模塊或其他數據。計算機存儲介質的例子包括RAM、ROM、EEPROM、快閃記憶體、或其他存儲器技術、CD-ROM、數字多用途盤(DVD)、或其他光存儲、磁卡帶、磁帶、磁碟存儲、或其他磁存儲設備、或者可用來存儲期望的信息並可以由計算設備來訪問的任何其他介質。
大容量存儲器還存儲程序代碼和數據。一個或多個應用350被加載到大容量存儲器中,並且在作業系統320上運行。應用程式的例子包括資料庫程序、調度器、代碼轉換器、電子郵件程序、日曆程序、全球資訊網服務、文字處理程序、電子表格程序等等。大容量存儲還可以包括多種應用,例如收集處理模塊172、管理接口174、匹配引擎110a、輪詢器120a、傳遞接口130a等。
以上說明書、實施例和數據提供了有關本發明的成分的製造和使用的完整描述。可以在不偏離本發明的精神和範圍的情況下實現本發明的很多實施方式,因此本發明體現為所附的權利要求書。
權利要求
1.一種使得警報消息可被訪問的方法,包括規範化多種格式的可訪問的內容;根據所述內容的至少一種特性,為所述內容編索引;將所述內容的至少一個部分與至少一個用戶關聯起來,其中所述內容的所述至少一個部分與所述至少一個用戶的至少一個預定興趣相關聯;生成送往所述至少一個用戶的警報消息,其中所述警報消息與所述內容的所述至少一個部分有關,並且所述至少一個用戶已選擇接收所述警報消息;以及使能所述至少一個用戶以所述至少一個用戶預定義的至少一種傳遞機制來訪問所述警報消息。
2.如權利要求1所述的方法,還包括至少一個以下操作接收作為基於事件的饋送的內容;和請求作為基於時間的饋送的內容。
3.如權利要求1所述的方法,其中規範化內容的操作包括將所述內容從所述多種格式中的任意一種轉換為規範化的格式。
4.如權利要求1所述的方法,其中所述內容的至少一種特性包括以下特性中的至少一種接收到所述內容的時間;發送者的標識符;所述內容的類型;所述內容發自的國家;所述內容與一個輪詢請求相關聯的指示;和所述內容與先前接收到的內容相關聯的指示。
5.如權利要求1所述的方法,其中關聯所述內容的至少一個部分的操作包括相對於查詢表達式來評估所述內容的至少一個部分,其中所述查詢表達式代表所述至少一個用戶的至少一個興趣;以及如果所述內容的所述至少一個部分與所述查詢表達式匹配的話,建立所述內容的所述至少一個部分和所述至少一個用戶之間的關聯。
6.如權利要求5所述的方法,其中所述查詢表達式是從所述至少一個用戶的用戶配置信息中訪問獲得的。
7.如權利要求1所述的方法,其中至少以下之一成立根據服務質量等級來執行關聯所述內容的至少一個部分的操作;根據服務質量等級來執行生成警報消息的操作;和根據服務質量等級來執行使能所述至少一個用戶訪問所述警報消息的操作。
8.如權利要求3所述的方法,其中使能所述至少一個用戶訪問所述消息的操作包括以下之一即刻將所述警報消息傳遞給所述至少一個用戶;以及在預定義的時間上將所述警報消息傳遞給所述至少一個用戶。
9.如權利要求1所述的方法,其中使能所述至少一個用戶訪問所述警報消息的操作包括將所述警報消息至少作為以下消息之一來傳遞電子郵件消息;即時消息;短消息服務消息;和語音消息。
10.如權利要求1所述的方法,還包括至少一個以下操作檢驗所述內容中包括必要的數據;根據邏輯操作來變換所述內容,以表示所述內容的特性;將所述內容的接收參數寫入日誌;存儲所述內容;將所述內容相對於其他內容排定優先級;以及丟棄所述內容的重複物。
11.如權利要求1所述的方法,還包括鏡像映射規範化、關聯、生成和使能的操作。
12.一種使得警報消息可被訪問的系統,包括用於訪問內容並傳送警報消息的通信接口;與所述通信接口進行通信的處理器;和與所述處理器進行通信並存儲數據和指令的存儲器,所述數據和指令使所述處理器實現多種功能,這些功能包括規範化多種格式的可訪問的內容;根據所述內容的至少一種特性,為所述內容編索引;將所述內容的至少一個部分與至少一個用戶關聯起來,其中所述內容的所述至少一個部分與所述至少一個用戶的至少一個預定興趣相關聯;生成送往所述至少一個用戶的警報消息,其中所述警報消息與所述內容的所述至少一個部分有關,並且所述至少一個用戶已選擇接收所述警報消息;以及使能所述至少一個用戶以所述至少一個用戶預定義的至少一種傳遞機制來訪問所述警報消息。
13.如權利要求12所述的系統,其中所述指令還使所述處理器執行至少一個以下操作接收作為基於事件的饋送的內容;和請求作為基於時間的饋送的內容。
14.如權利要求12所述的系統,其中所述指令還使所述處理器執行至少一個以下操作將所述內容從所述多種格式中的任意一種轉換為規範化的格式;檢驗所述內容中包括必要的數據;根據邏輯操作來變換所述內容,以表示所述內容的特性;將所述內容的接收參數寫入日誌;存儲所述內容;將所述內容相對於其他內容排定優先級;以及丟棄所述內容的重複物。
15.如權利要求12所述的系統,其中所述內容的至少一種特性包括以下特性中的至少一種接收到所述內容的時間;發送者的標識符;所述內容的類型;所述內容發自的國家;所述內容與一個輪詢請求相關聯的指示;和所述內容與先前接收到的內容相關聯的指示。
16.如權利要求12所述的系統,其中所述指令還使所述處理器執行以下操作相對於查詢表達式來評估所述內容的至少一個部分,其中所述查詢表達式代表所述至少一個用戶的至少一個興趣;以及如果所述內容的所述至少一個部分與所述查詢表達式匹配的話,建立所述內容的所述至少一個部分和所述至少一個用戶之間的關聯。
17.如權利要求12所述的系統,其中所述指令還使所述處理器執行以下操作根據服務質量等級來執行關聯所述內容的至少一個部分的操作;根據服務質量等級來執行生成警報消息的操作;和根據服務質量等級來執行使能所述至少一個用戶訪問所述警報消息的操作。
18.如權利要求12所述的系統,其中所述指令還使所述處理器執行以下操作即刻將所述警報消息傳遞給所述至少一個用戶;以及在預定義的時間上將所述警報消息傳遞給所述至少一個用戶。
19.如權利要求12所述的系統,還包括用於接收所述警報消息的移動客戶端設備。
20.如權利要求12所述的系統,還包括與所述通信接口進行通信的鏡像通信接口,該接口還被配置來訪問所述內容並傳送鏡像警報消息;與所述鏡像通信接口進行通信的鏡像處理器;和與所述鏡像處理器進行通信並存儲數據和指令的鏡像存儲器,所述數據和指令使所述鏡像處理器實現多種功能,這些功能包括規範化多種格式的可訪問的內容;根據所述內容的至少一種特性,為所述內容編索引;將所述內容的至少一個部分與至少一個用戶關聯起來,其中所述內容的所述至少一個部分與所述至少一個用戶的至少一個預定興趣相關聯;生成送往所述至少一個用戶的鏡像警報消息,其中所述鏡像警報消息與所述內容的所述至少一個部分有關,並且所述鏡像警報消息基本等同於所述警報消息;以及使能所述至少一個用戶以所述至少一個用戶預定義的至少一種傳遞機制來訪問所述鏡像警報消息。
21.一種用於使得警報消息可被訪問的調製數據信號,該調製數據信號包括使計算設備完成以下動作的指令規範化多種格式的可被訪問的內容;根據所述內容的至少一種特性,為所述內容編索引;將所述內容的至少一個部分與至少一個用戶關聯起來,其中所述內容的所述至少一個部分與所述至少一個用戶的至少一個預定興趣相關聯;生成送往所述至少一個用戶的警報消息,其中所述警報消息與所述內容的所述至少一個部分有關,並且所述至少一個用戶已選擇接收所述警報消息;以及使能所述至少一個用戶以所述至少一個用戶預定義的至少一種傳遞機制來訪問所述警報消息。
22.一種用於警報消息的規範化內容的數據結構,包括用於指示內容的狀態的聯繫信息;內容的日期;內容的過期日;與內容相關聯的統一資源定位符;與內容的源相對應的饋送提供者名稱;內容的類型;內容的標題;和包括該內容的數據體。
23.一種用於提供消息的系統,包括收集處理模塊,該模塊與至少一個內容源接口,訪問具有多種格式的內容,規範化所述內容的至少一個部分變為規範化格式,並且根據所述內容的至少一種特性來為所述內容編索引;匹配引擎,該引擎與所述收集處理模塊進行通信,並且當所述內容的至少一個部分對應於基於事件的饋送時,用所述內容的所述至少一個部分生成警報消息,其中所述內容的所述至少一個部分基於至少一個用戶的至少一個興趣與所述至少一個用戶相關聯;與所述收集處理模塊進行通信的輪詢器,當所述內容的至少一個部分對應於基於時間的饋送時,所述輪詢器用所述內容的所述至少一個部分生成警報消息,其中所述內容的所述至少一個部分基於至少一個用戶的至少一個興趣與所述至少一個用戶相關聯;和與所述匹配引擎和所述輪詢器進行通信的傳遞接口,該接口根據至少一個用戶預定義的數據結構,向所述至少一個用戶傳遞所述警報消息。
全文摘要
一種基於具有一種或多種格式的、可以作為基於事件的饋送或基於時間的饋送而接收的內容(104)來提供警報消息的體系結構。該體系結構包括數據收集處理模塊(103),用於將內容規範化為預定義的數據結構,並且為內容編索引,以根據所選擇的特性處理大量內容。匹配引擎(110)使用用戶查詢將基於事件的內容與已表明有興趣接收與選定內容相關聯的警報消息的一個或多個用戶關聯起來。匹配引擎還生成對應的警報消息。輪詢器(120)在預定義的時間段上代表用戶取回內容,並且生成對應的警報消息。傳遞接口(130)確定哪些警報消息被即刻發送,哪些警報消息被安排為稍後傳遞。該體系結構被鏡像映射以實現可擴展性和備份(158)。
文檔編號H04N5/445GK1806242SQ200480016497
公開日2006年7月19日 申請日期2004年6月12日 優先權日2003年6月13日
發明者麥特瑟斯·埃瑟司塔德特, 薩伽拉嘉帕若姆·思萬彌納森·羅摩克裡希納, 派屈克·盧, 加亞查達恩·萊維查達恩·麥諾恩, 索提裡斯·馬特扎納斯 申請人:雅虎公司