專利名稱:一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)社交應(yīng)用領(lǐng)域,特別是涉及一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,聯(lián)接于業(yè)務(wù)系統(tǒng)和社交開發(fā)平臺兩者之間,為業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊屏蔽開放平臺的差異,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)和開放平臺之間的用戶社交消息的互聯(lián)互通。
背景技術(shù):
在互聯(lián)網(wǎng)時(shí)代,把網(wǎng)站的服務(wù)封裝成一系列計(jì)算機(jī)易識別的數(shù)據(jù)接口開放出去,供第三方開發(fā)者使用,這種行為就叫做Open API,提供開放API的平臺本身就被稱為開放平臺。通過開放平臺,網(wǎng)站不僅能提供對Web網(wǎng)頁的簡單訪問,還可以進(jìn)行復(fù)雜的數(shù)據(jù)交互,將它們的Web網(wǎng)站轉(zhuǎn)換為與操作系統(tǒng)等價(jià)的開發(fā)平臺。第三方開發(fā)者可以基于這些已經(jīng)存在的、公開的Web網(wǎng)站而開發(fā)豐富多彩的應(yīng)用。在現(xiàn)在流行社交交互中,用戶使用開放平臺的客戶端產(chǎn)生社交數(shù)據(jù)內(nèi)容,這個(gè)社交數(shù)據(jù),內(nèi)容均存在于其所屬的開放平臺上,接入客戶端應(yīng)用(包括我們的引擎)想要獲取社交數(shù)據(jù)只能通過它提供的開放api去查詢獲取。這樣問題來了,如果某用戶的社交數(shù)據(jù)有變更(比如用戶使用開放平臺客戶端發(fā)送某些社交數(shù)據(jù)消息)我們的業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊應(yīng)用是不知道的,但業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的用戶卻要求實(shí)時(shí)獲取這一數(shù)據(jù)變更的消息,那么業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊編程適配開放平臺的開放接口,并只能通過不斷的api查詢才知道用戶的社交內(nèi)容有變更。因此必須引入一個(gè)中間機(jī)制,建立一套訂閱推送引擎,去使用輪詢機(jī)制不斷調(diào)用開放平臺的api去發(fā)現(xiàn)社交數(shù)據(jù)變更的消息,當(dāng)發(fā)現(xiàn)有變更后訂閱引擎內(nèi)部觸發(fā)一項(xiàng)推送服務(wù),將這一個(gè)變更的消息推送回業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊,業(yè)務(wù)系統(tǒng)客戶端提供回調(diào)接口能處理這一則社交數(shù)據(jù)變更的消息,并做界面消息提醒給用戶。由此看來,引擎服務(wù)中必須包含這一項(xiàng)訂閱推送服務(wù)??赡芤ㄖ埔惶子嗛喴?guī)則,對接入的業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊約定規(guī)則內(nèi)容,通過多種協(xié)議接口將其傳遞給引擎的訂閱服務(wù)管理中。引擎服務(wù)維護(hù)和解析這些訂閱服務(wù)規(guī)則,并異步將結(jié)果回饋給業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊。本跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,對外以客戶端身份連接大部分的開放平臺,適配其提供的開放服務(wù)以供我們內(nèi)部業(yè)務(wù)系統(tǒng)、業(yè)務(wù)模塊應(yīng)用調(diào)用,將內(nèi)部應(yīng)用的采集的用戶信息內(nèi)容傳播到開放平臺上,并關(guān)注開放平臺上的用戶關(guān)心圖譜中產(chǎn)生的社交信息內(nèi)容,促進(jìn)用戶社交互動,以達(dá)到內(nèi)部業(yè)務(wù)系統(tǒng)、業(yè)務(wù)模塊應(yīng)用的社交化而提升用戶體驗(yàn)的目的。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的社交化需求,其需要關(guān)注的社交消息可能牽涉到多個(gè)社交平臺,不同社交平臺消息存儲以及獲取方式不同,并且還分別處于不同類型的開放系統(tǒng)中,本訂閱引擎處在業(yè)務(wù)角度上考慮,引入一種內(nèi)聯(lián)所有開放平臺的機(jī)制為業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊屏蔽開放平臺的差異,業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的信息與社交信息的互聯(lián)互通;
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,涉及對接交互的系統(tǒng)包括有內(nèi)部業(yè)務(wù)服務(wù)系統(tǒng)、公網(wǎng)的社交開放平臺,包括社交信息訂閱規(guī)則采集、訂閱規(guī)則解析計(jì)算、結(jié)果異步推送三部分,其中這三部分涉及的對接交互的系統(tǒng)包括有內(nèi)部業(yè)務(wù)服務(wù)系統(tǒng)、公網(wǎng)的社交開放平臺;所述第一部分社交信息訂閱規(guī)則采集,用于接收業(yè)務(wù)系統(tǒng)中各個(gè)服務(wù)模塊的社交信息訂閱需求,同時(shí)處理多個(gè)業(yè)務(wù)系統(tǒng)并多個(gè)模塊中的請求,不需要阻塞引擎系統(tǒng),引擎根據(jù)上下文環(huán)境將請求數(shù)據(jù)以自描述的XML結(jié)構(gòu)封裝元數(shù)據(jù)和請求數(shù)據(jù)成訂閱規(guī)則數(shù)據(jù)包,使其不必依賴靜態(tài)定于的服務(wù)接口和數(shù)據(jù)結(jié)構(gòu),訂閱規(guī)則數(shù)據(jù)包以隊(duì)列形式存儲并排隊(duì)等候處理;所述第二部分訂閱規(guī)則解析計(jì)算,用于對第一步中收集的訂閱請求進(jìn)行跨開放平臺的關(guān)聯(lián)解析,訂閱規(guī)則一般包括業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊的社交信息需求,以XML格式封裝起來,按照解析器所認(rèn)知的約定規(guī)則格式。引擎內(nèi)有一個(gè)集中式全局統(tǒng)籌的調(diào)度器,負(fù)責(zé)從第一步中采集的訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集,對規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行,最后在集中式全局解析器中統(tǒng)籌合并結(jié)果,并存放到訂閱結(jié)果隊(duì)列中待推送;所述第三部分結(jié)果異步推送,用于訂閱請求經(jīng)過解析器解析計(jì)算后存放在結(jié)果存儲結(jié)構(gòu)中,由統(tǒng)一集中的推送器將結(jié)果回推給業(yè)務(wù)系統(tǒng),其中回推使用回推策略包括有主動推送和儲存待拉兩種策略,靈活地化解業(yè)務(wù)系統(tǒng)接收超時(shí)致使消息堵塞;本發(fā)明還提供一種跨開放平臺社交消息分類計(jì)算方法,包括社交消息計(jì)算是跨開放平臺的,其計(jì)算牽涉的社交信息是跨業(yè)務(wù)系統(tǒng)和開放平臺的,這里采用分類計(jì)算的方法;本引擎聯(lián)接于業(yè)務(wù)系統(tǒng)和社交開發(fā)平臺兩者之間,其中開放平臺包括目前主流兩類,社交網(wǎng)和微博平臺;對于業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊,其訂閱關(guān)注的社交信息可以跨開放平臺類型,即需要訂閱請求的用戶,某用戶作為唯一個(gè)體在業(yè)務(wù)系統(tǒng)范圍內(nèi)存在,并存在一定用戶關(guān)系圖譜集,在多個(gè)開放平臺上也分別存在一定范圍的社交關(guān)系圖譜集,而業(yè)務(wù)范圍內(nèi)的用戶關(guān)系圖譜集與開放平臺上的社交關(guān)系圖譜集存在一定的關(guān)聯(lián),如果將用戶關(guān)系圖譜集和社交關(guān)系圖譜集看成是全局范圍內(nèi)的有唯一標(biāo)識的用戶關(guān)系集,那么上述的業(yè)務(wù)范圍內(nèi)與多個(gè)開放平臺范圍內(nèi)的關(guān)系圖譜集的關(guān)聯(lián)就指他們的用戶集存在交集,或者I對I相交、或者是I對N相交,其交集為唯一用戶集,這里的用戶可以是真實(shí)個(gè)人或虛擬用戶;跨開放平臺社交信息訂閱的計(jì)算就是基于這種用戶交集的基礎(chǔ)上展開計(jì)算的;譬如,某用戶在業(yè)務(wù)系統(tǒng)范圍內(nèi)存在并持有一定量好友關(guān)系集,該用戶在社交網(wǎng)上存在唯一帳號身份并持有多個(gè)關(guān)注好友,該用戶在微博平臺上也存在對應(yīng)的唯一帳號并持有多個(gè)關(guān)注好友。該用戶的好友關(guān)系集合分別在業(yè)務(wù)系統(tǒng)范圍與社交網(wǎng)范圍和微博平臺范圍內(nèi)存在交叉的地方,即用戶交集,該用戶在兩種開放平臺上均存在帳號并持有各自的好友關(guān)系列表,并且當(dāng)中與該用戶在業(yè)務(wù)系統(tǒng)范圍內(nèi)的好友群剛好有部分共同好友,存在好友關(guān)系交集;交集數(shù)據(jù)按照開放平臺類型劃分類,主要分為兩類,第一類為I對I相交,例如業(yè)務(wù)范圍內(nèi)關(guān)系集與社交網(wǎng)范圍內(nèi)關(guān)系集的交集、業(yè)務(wù)范圍內(nèi)關(guān)系集與微博平臺范圍內(nèi)關(guān)系集的交集;第二類為I對N相交,業(yè)務(wù)范圍內(nèi)關(guān)系集與多個(gè)開放平臺范圍內(nèi)關(guān)系集的交集;所述第一類劃分法為I對I相交,分別指業(yè)務(wù)范圍內(nèi)關(guān)系集和單個(gè)開放平臺范圍內(nèi)關(guān)系集,即業(yè)務(wù)范圍內(nèi)關(guān)系集中存在的某個(gè)用戶同時(shí)也在單個(gè)開放平臺范圍內(nèi)關(guān)系集中,基于這種情況,采用單種開放平臺類型解析器可以計(jì)算變更結(jié)果;所述第二類劃分法為I對N相交,I為業(yè)務(wù)范圍內(nèi)關(guān)系集,N為開放平臺范圍內(nèi)關(guān)系集,N大于等于2,即業(yè)務(wù)范圍內(nèi)關(guān)系集中存在的某個(gè)用戶同時(shí)也在多個(gè)開放平臺范圍內(nèi)關(guān)系集中,基于這種情況,采用內(nèi)聯(lián)多種開放平臺類型解析器可以計(jì)算變更結(jié)果;現(xiàn)在該用戶需要關(guān)注他的業(yè)務(wù)范圍內(nèi)好友的社交動態(tài),該用戶通過業(yè)務(wù)系統(tǒng)與引擎的接口向引擎發(fā)起一則訂閱請求,請求的數(shù)據(jù)格式為一自描述的XML數(shù)據(jù)包,內(nèi)里封裝包括解析器能識別的元數(shù)據(jù)和訂閱好友社交信息變更的數(shù)據(jù),表示該用戶關(guān)注其好友的在社交平臺信息變更情況,需要引擎解析器去解析他的這個(gè)訂閱包并需要得到返回結(jié)果,再回傳反饋給該用戶。優(yōu)選的有,上述方法中,還包括采用集中式全局統(tǒng)籌的調(diào)度和全局解析的計(jì)算方法;引擎內(nèi)的一個(gè)集中式全局統(tǒng)籌的調(diào)度器,負(fù)責(zé)從第一步中采集的訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集,對規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行,最后在集中式全局解析器中統(tǒng)籌合并結(jié)果,并存放到訂閱結(jié)果隊(duì)列中待推送;所述的集中式全局調(diào)度器,負(fù)責(zé)統(tǒng)一調(diào)度解析過程,包括從訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集、分類分拆數(shù)據(jù)、委托特定開放平臺類型解析器解析執(zhí)行;所述分類分拆數(shù)據(jù),采用前面特征所描述的分類法分拆;各個(gè)解析器解析過程支持并發(fā);所述集中式全局解析器,負(fù)責(zé)收集結(jié)果并匯總統(tǒng)計(jì)、將結(jié)果丟放到待返回的推送隊(duì)列中。其中匯總過程,涉及到獲取并發(fā)線程執(zhí)行結(jié)果,并內(nèi)聯(lián)全局的訂閱規(guī)則進(jìn)行綜合匯總結(jié)果。優(yōu)選的有,上述方法中,還包括跨開放平臺社交信息的計(jì)算方法是采用優(yōu)化策略;所述優(yōu)化策略指減少引擎資源開銷和減少對開放平臺api調(diào)用,以提升解析引擎性能和解析速度為目的;優(yōu)化策略包括按照開放平臺類型分類批量計(jì)算、定期間隔計(jì)算;對訂閱數(shù)據(jù)包按照開放平臺類型劃分能有效地支持優(yōu)化計(jì)算;所述按照開放平臺類型分類批量計(jì)算策略,指同一種開放平臺類型的社交信息計(jì)算,例如是社交網(wǎng)平臺類型的社交信息計(jì)算,其社交平臺類型相同并且計(jì)算規(guī)則類似,即存在類似的開放api,因此可以將這類社交信息計(jì)算合并為批量計(jì)算,這類批量集中計(jì)算比單條計(jì)算提高計(jì)算速度和效率;所述定期間隔計(jì)算策略,指設(shè)定一定時(shí)間間隔進(jìn)行計(jì)算,引擎采用定時(shí)調(diào)度機(jī)制,定期向開放平臺查詢計(jì)算訂閱包含的社交信息是否存在變更。在固定間隔內(nèi),調(diào)度引擎會收集本時(shí)間段內(nèi)的計(jì)算請求,再集中在一個(gè)時(shí)間點(diǎn)開始計(jì)算,這樣可以減少不必要的冗余請求,因?yàn)榇蟛糠稚缃恍畔⒌淖兏g隔并不頻繁;定時(shí)間隔動態(tài)地可配置。本發(fā)明還提供一種社交信息訂閱結(jié)果的推送機(jī)制,包括
采用自動調(diào)節(jié)的推送策略,自動機(jī)制會根據(jù)當(dāng)前引擎調(diào)用業(yè)務(wù)系統(tǒng)客戶端的耗時(shí)自動調(diào)整推送策略,以達(dá)到合理利用服務(wù)端引擎資源的效果;推送策略包括主動推送策略和存儲待拉策略;所述主動推送策略,指服務(wù)引擎主動將訂閱計(jì)算產(chǎn)生的結(jié)果,通過調(diào)用業(yè)務(wù)系統(tǒng)客戶端提供的回調(diào)api,將結(jié)果回推給業(yè)務(wù)系統(tǒng);所述存儲待拉策略,指服務(wù)引擎將訂閱計(jì)算產(chǎn)生的結(jié)果存儲在服務(wù)引擎端提供的增強(qiáng)存儲容器中,等待業(yè)務(wù)系統(tǒng)客戶端的主動查詢請求,查詢是否積壓大量的結(jié)果消息未推送,若是則主動拉取并清除這些結(jié)果消息;存儲待拉策略的選取是基于解決主動推送策略時(shí)引起的堵塞問題而引入的,當(dāng)存在網(wǎng)絡(luò)不穩(wěn)定時(shí),主動推會因大量的io傳送而消耗服務(wù)端引擎的性能資源,致使主動推送頻頻超時(shí),結(jié)果消息不能發(fā)出而出現(xiàn)堵塞;當(dāng)主動推送遇到網(wǎng)絡(luò)不暢或者業(yè)務(wù)系統(tǒng)客戶端繁忙時(shí),超時(shí)過一段閥值后,服務(wù)引擎會自動切換推送策略,而將結(jié)果消息存放在本地的緩存結(jié)構(gòu)中,待業(yè)務(wù)系統(tǒng)客戶端主動來拉取。由上述方案可以看出,本發(fā)明中訂閱推送引擎聯(lián)接于業(yè)務(wù)系統(tǒng)和社交開發(fā)平臺兩者之間,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)和開放平臺之間的用戶社交消息的互聯(lián)互通。每個(gè)業(yè)務(wù)系統(tǒng)都有社交化需求,訂閱變化的用戶社交信息,所以在設(shè)計(jì)本引擎時(shí)首要考慮的是與具體服務(wù)無關(guān),任何業(yè)務(wù)系統(tǒng)均可接入;與開放平臺類型無關(guān),任何開放平臺均可適配。本引擎包括社交信息訂閱規(guī)則采集、訂閱規(guī)則解析計(jì)算、結(jié)果異步推送三部分。其中,訂閱規(guī)則采集,用于收集來自業(yè)務(wù)系統(tǒng)的社交信息訂閱請求,支持并發(fā)處理不需阻塞;結(jié)果異步推送,用于對解析計(jì)算的結(jié)果推送回給業(yè)務(wù)系統(tǒng),推送方式采用主動推送與儲存待拉兩種策略;訂閱規(guī)則以及計(jì)算結(jié)果均采用自描述的XML格式封裝元數(shù)據(jù)和數(shù)值數(shù)據(jù),實(shí)現(xiàn)計(jì)算引擎與業(yè)務(wù)系統(tǒng)之間的解耦;訂閱規(guī)則解析計(jì)算,實(shí)現(xiàn)跨社交開放平臺計(jì)算,采取內(nèi)聯(lián)監(jiān)聽并輪詢查詢方式計(jì)算。本發(fā)明主要針對業(yè)務(wù)服務(wù)系統(tǒng)社交化需求,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)與開放平臺的社交信息互聯(lián)互通,將業(yè)務(wù)系統(tǒng)接通開放平臺為實(shí)現(xiàn)用戶社交信息傳遞提供集中式通道,提高業(yè)務(wù)系統(tǒng)使用價(jià)值和增強(qiáng)用戶滿意度。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一中系統(tǒng)交互結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例一中系統(tǒng)訂閱推送之訂閱請求采集流程示意圖;圖3為本發(fā)明實(shí)施例一中系統(tǒng)訂閱推送之規(guī)則解析計(jì)算流程示意圖;圖4為本發(fā)明實(shí)施例一中系統(tǒng)訂閱推送之結(jié)果推送流程示意圖;圖5為本發(fā)明實(shí)施例二中跨開放平臺優(yōu)化計(jì)算算法I示意圖;圖6為本發(fā)明實(shí)施例二中跨開放平臺優(yōu)化計(jì)算算法2示意圖;圖7為本發(fā)明實(shí)施例三中跨開放平臺優(yōu)化計(jì)算算法3示意圖8為本發(fā)明實(shí)施例三中跨開放平臺優(yōu)化計(jì)算算法4示意圖;圖9為本發(fā)明實(shí)施例三中系統(tǒng)所依賴的外部應(yīng)用環(huán)境示意圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一,參見圖1。本發(fā)明提供一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,涉及對接交互的系統(tǒng)包括有內(nèi)部業(yè)務(wù)服務(wù)系統(tǒng)、公網(wǎng)的社交開放平臺,包括社交信息訂閱規(guī)則采集、訂閱規(guī)則解析計(jì)算、結(jié)果異步推送三部分,其中這三部分涉及的對接交互的系統(tǒng)包括有內(nèi)部業(yè)務(wù)服務(wù)系統(tǒng)、公網(wǎng)的社交開放平臺;上述引擎部分的系統(tǒng)交互結(jié)構(gòu)示意圖參見圖1,具體包括以下步驟圖中I表示接入的客戶端系統(tǒng),指業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊,引擎通過公共IP網(wǎng)或者內(nèi)部網(wǎng)與其連接;圖中2表示訂閱推送引擎核心服務(wù)部分,提供訂閱推送服務(wù);圖中3表示開放平臺部分,引擎通過公共IP網(wǎng)與其連接;其中引擎部分包括所述第一部分社交信息訂閱規(guī)則采集,用于接收業(yè)務(wù)系統(tǒng)中各個(gè)服務(wù)模塊的社交信息訂閱需求,同時(shí)處理多個(gè)業(yè)務(wù)系統(tǒng)并多個(gè)模塊中的請求,不需求阻塞引擎系統(tǒng),請求數(shù)據(jù)以自描述的XML結(jié)構(gòu)封裝,使其不必依賴靜態(tài)定于的服務(wù)接口和數(shù)據(jù)結(jié)構(gòu),引擎自動根據(jù)其封裝的元數(shù)據(jù)格式抽取消息數(shù)據(jù),再委托給訂閱規(guī)則解析器解析執(zhí)行,訂閱規(guī)則數(shù)據(jù)以隊(duì)列形式存儲并排隊(duì)等候處理;上述引擎部分的工作過程參見圖2,具體包括以下步驟步驟S201,用戶通過業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊發(fā)起訂閱請求,關(guān)注社交信息內(nèi)容;步驟S202,接收業(yè)務(wù)系統(tǒng)中各個(gè)服務(wù)模塊的社交信息訂閱需求,同時(shí)處理多個(gè)業(yè)務(wù)系統(tǒng)并多個(gè)模塊中的請求,這個(gè)過程是并發(fā)執(zhí)行的,,不需要阻塞引擎系統(tǒng);步驟S203,引擎根據(jù)上下文環(huán)境將請求數(shù)據(jù)以自描述的XML結(jié)構(gòu)封裝元數(shù)據(jù)和請求數(shù)據(jù)成訂閱規(guī)則數(shù)據(jù)包,使其不必依賴靜態(tài)定于的服務(wù)接口和數(shù)據(jù)結(jié)構(gòu);步驟S204,訂閱規(guī)則數(shù)據(jù)包以隊(duì)列形式存儲并排隊(duì)等候處理,這便是待解析計(jì)算隊(duì)列。所述第二部分訂閱規(guī)則解析計(jì)算,用于對第一步中收集的訂閱請求進(jìn)行跨開放平臺的關(guān)聯(lián)解析,訂閱規(guī)則一般包括業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊的社交信息需求,以XML格式封裝起來,按照解析器所認(rèn)知的約定規(guī)則格式。引擎內(nèi)有一個(gè)集中式全局統(tǒng)籌的調(diào)度器,負(fù)責(zé)從第一步中采集的訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集,對規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行,最后在集中式全局解析器中統(tǒng)籌合并結(jié)果,并存放到訂閱結(jié)果隊(duì)列中待推送;上述引擎部分的工作過程參見圖3,具體包括以下步驟
對第一步中收集的訂閱請求進(jìn)行跨開放平臺的關(guān)聯(lián)解析,訂閱規(guī)則一般包括業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊的社交信息需求,以XML格式封裝起來,按照解析器所認(rèn)知的約定規(guī)則格式;步驟S301,全局統(tǒng)籌調(diào)度器掃描待解析的訂閱規(guī)則請求隊(duì)列,按需提取部分訂閱規(guī)則;步驟S302,訂閱規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行;步驟S303,解析器解析訂閱規(guī)則,并轉(zhuǎn)換為開放接口調(diào)用,這里可能使用是輪詢方式、也可能是監(jiān)聽事件方式的策略;若檢測出消息則發(fā)起回調(diào)通知;步驟S304,解析器委托開放平臺api調(diào)用來解析計(jì)算訂閱結(jié)果,再轉(zhuǎn)換成訂閱結(jié)果格式;步驟S305,將訂閱解析計(jì)算的結(jié)果匯總合并,并存放到待返回的結(jié)果推送隊(duì)列中,等待統(tǒng)一回調(diào);所述第三部分結(jié)果異步推送,用于訂閱請求經(jīng)過解析器解析計(jì)算后存放在結(jié)果存儲結(jié)構(gòu)中,由統(tǒng)一集中的推送器將結(jié)果回推給業(yè)務(wù)系統(tǒng),其中回推使用回推策略包括有主動推送和儲存待拉兩種策略,靈活地化解業(yè)務(wù)系統(tǒng)接收超時(shí)致使消息堵塞。上述引擎部分的工作過程參見圖4,具體包括以下步驟步驟S401,引擎部分后臺線程自維護(hù)監(jiān)測待推送的結(jié)果存儲隊(duì)列;步驟S402,根據(jù)定制回調(diào)調(diào)度機(jī)制,采用不同的回推策略,主動推送策略或者存儲待拉策略;步驟S403,對于主動推送策略,由引擎端發(fā)起,業(yè)務(wù)系統(tǒng)客戶端提供回調(diào)接口,接收訂閱結(jié)果;步驟S404,對于存儲待拉策略,由引擎端發(fā)起,當(dāng)引擎端調(diào)用回調(diào)時(shí)候發(fā)現(xiàn)網(wǎng)絡(luò)繁忙導(dǎo)致堵塞,則會將返回結(jié)果消息存放在本地的緩存結(jié)構(gòu);步驟S405,業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊客戶端向引擎服務(wù)端發(fā)起主動拉起請求;步驟S406,引擎從緩存結(jié)構(gòu)中提取未讀消息,并清除緩存,將結(jié)果數(shù)據(jù)封裝返回給調(diào)用者;步驟S407,業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊客戶端收到結(jié)果,并反饋給用戶;實(shí)施例二,參見圖5、圖6、圖7、圖8,具體包括以下步驟本實(shí)例說明一種跨開放平臺社交消息分類計(jì)算方法的實(shí)施過程,社交消息計(jì)算是跨開放平臺的,其計(jì)算牽涉的社交信息是跨業(yè)務(wù)系統(tǒng)和開放平臺的,這里采用分類計(jì)算的方法;對于業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊,其訂閱關(guān)注的社交信息可以跨開放平臺類型,即需要訂閱請求的用戶,這里的用戶可以是真實(shí)個(gè)人或虛擬用戶,需要關(guān)注其在開放平臺上的好友關(guān)系的消息狀態(tài);跨開放平臺社交信息訂閱的計(jì)算就是基于一種用戶關(guān)系的基礎(chǔ)上展開計(jì)算的;譬如,某用戶在業(yè)務(wù)系統(tǒng)范圍內(nèi)存在并持有一定量好友關(guān)系集,該用戶在社交網(wǎng)上存在唯一帳號身份并持有多個(gè)關(guān)注好友,該用戶在微博平臺上也存在對應(yīng)的唯一帳號并持有多個(gè)關(guān)注好友;所述圖5,具體步驟包括圖中P501表示假定存在兩種開放平臺,一是社交網(wǎng)平臺(人人網(wǎng)),一是微博平臺(新浪);假定存在業(yè)務(wù)系統(tǒng)接入用戶有4個(gè)(真實(shí)個(gè)人),分別以1234代表,這4人分別在開放平臺上有對應(yīng)帳號,其對應(yīng)關(guān)系在圖上用符號表示;圖中P502表示現(xiàn)在這4人分別接入訂閱推送引擎內(nèi)部,并有訂閱請求需要被響應(yīng);假定有下面的上下文綁定關(guān)系;用戶1,已綁定連接新浪微博⑶和人人網(wǎng)(R);用戶2,已綁定連接新浪微博(S);用戶3,已綁定連接新浪微博⑶;用戶4,已綁定連接新浪微博⑶和人人網(wǎng)(R);圖中P5O3表示假定在業(yè)務(wù)系統(tǒng)范圍內(nèi)這4人存在以下關(guān)系用戶1,有2個(gè)好友,分別是用戶2和用戶3 ;用戶2,有2個(gè)好友,分別是用戶3和用戶4 ;用戶I和用戶2,存在共同的好友用戶3 ;所述圖6,具體步驟包括下面是訂閱推送的響應(yīng)過程,圖中P601表示訂閱推送流程-訂閱請求采集用戶I通過業(yè)務(wù)系統(tǒng)對其好友用戶2和用戶3的社交信息變更狀態(tài)表示關(guān)注,因此發(fā)起訂閱請求;用戶2綁定連接新浪微博(S);用戶3綁定連接新浪微博(S)用戶2通過業(yè)務(wù)系統(tǒng)對其好友用戶3和用戶4的社交信息變更狀態(tài)表示關(guān)注,因此發(fā)起訂閱請求;用戶3綁定連接新浪微博⑶;用戶4綁定連接新浪微博⑶和人人網(wǎng)(R)引擎將用戶I的訂閱請求根據(jù)上下文分拆封裝成規(guī)則包后,丟入待計(jì)算隊(duì)列中;圖中P602表示訂閱推送流程-解析計(jì)算引擎從待計(jì)算隊(duì)列中提取待解析的訂閱規(guī)則包(用戶I的訂閱請求),由集中的調(diào)度器統(tǒng)籌分配解析,并按開放平臺類型分拆解析包(分拆結(jié)果只含S的開放平臺),開放平臺類型為S的解析器解析這個(gè)訂閱包,并由統(tǒng)一調(diào)度器歸并計(jì)算結(jié)果N,付帶到對應(yīng)用戶I的訂閱包中,再丟入待回推隊(duì)列中;圖中P603表示訂閱推送流程-結(jié)果回推推送機(jī)制引擎從待回推隊(duì)列中提取用戶I的訂閱包的解析結(jié)果,并自動選取回推策略,調(diào)用客戶端提供回調(diào)方法,返回給業(yè)務(wù)系統(tǒng)客戶端;所述圖7,具體步驟包括優(yōu)化計(jì)算策略包括按照開放平臺類型分類批量計(jì)算、定期間隔計(jì)算;對訂閱數(shù)據(jù)包按照開放平臺類型劃分能有效地支持優(yōu)化計(jì)算;圖中P701表示
方案I,未經(jīng)過優(yōu)化的實(shí)現(xiàn)方式,用戶I和用戶2的訂閱請求被分別計(jì)算,發(fā)生2次解析計(jì)算;圖中P702表示方案2,已經(jīng)過優(yōu)化的實(shí)現(xiàn)方式,用戶I和用戶2的訂閱請求被引擎合并,只發(fā)送I次解析計(jì)算;圖中P703表示優(yōu)化前后對比方案2優(yōu)于方案1,因?yàn)槭褂脙?yōu)化策略去除重復(fù)計(jì)算,重復(fù)的部分為③A (用戶3綁定新浪微博(S)的重復(fù)計(jì)算)所述圖8,具體步驟包括圖中P801表示方案1,未經(jīng)過優(yōu)化的實(shí)現(xiàn)方式,用戶1、用戶2、用戶3、用戶4的訂閱請求被分別計(jì)算,發(fā)生4次解析計(jì)算;圖中P802表示方案2,已經(jīng)過優(yōu)化的實(shí)現(xiàn)方式,用戶1、用戶2、用戶3、用戶4的訂閱請求被批量合并,只發(fā)送I次解析計(jì)算;雖然單次批量計(jì)算比單次計(jì)算耗資源多,但絕對比4次單詞計(jì)算耗資源少。圖中P803表示優(yōu)化前后對比方案2優(yōu)于方案1,因?yàn)榕坑?jì)算,解析引擎調(diào)用次數(shù)減少3,并最終會減少開放平臺api調(diào)用次數(shù),節(jié)省成本實(shí)施例三,參見圖9,具體包括以下步驟本發(fā)明常用在于社交網(wǎng)關(guān)應(yīng)用內(nèi)部,作為一種訂閱推送服務(wù)而存在,下面引用社交網(wǎng)關(guān)應(yīng)用為實(shí)施例進(jìn)行說明;圖中S701表示客戶端接入部分包括多個(gè)業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊;圖中S702表示開放平臺部分包括適配多個(gè)不同類型的開放平臺,目前包括兩類型開放平臺,一類是社交網(wǎng)平臺,一類是微博平臺圖中S703表示社交網(wǎng)關(guān)應(yīng)用,對外以客戶端身份連接大部分的開放平臺,適配其提供的開放服務(wù)以供我們內(nèi)部業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊調(diào)用,將內(nèi)部業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊應(yīng)用采集的用戶信息內(nèi)容傳播到開放平臺上,促進(jìn)用戶社交互動,以達(dá)到我們內(nèi)部平臺、內(nèi)部業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊社交化而提升應(yīng)用價(jià)值,增強(qiáng)用戶體驗(yàn)的目的。圖中S704表示社交網(wǎng)關(guān)應(yīng)用內(nèi)部的交互服務(wù)部分,包括訂閱推送引擎服務(wù)部分,其中本發(fā)明所指的服務(wù)設(shè)計(jì)的實(shí)現(xiàn)具體依賴社交網(wǎng)關(guān)應(yīng)用內(nèi)部的內(nèi)核服務(wù);圖中S705表示社交網(wǎng)關(guān)應(yīng)用的內(nèi)部內(nèi)核服務(wù),為實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)社交化提供支撐;也為本發(fā)明設(shè)計(jì)的訂閱推送引擎服務(wù)提供基礎(chǔ)服務(wù)支持提供授權(quán)綁定服務(wù)支持,為訂閱推送引擎的解析部分可以直接在授權(quán)綁定服務(wù)中獲取訪問開放平臺的訪問權(quán)限,以及客戶端接入用戶綁定的定位服務(wù);提供社交組件服務(wù)支持,為引擎解析部分提供適配的開放平臺api接口調(diào)用,屏蔽不同開放平臺的服務(wù)差異,以便解析器透明地獲取社交數(shù)據(jù);提供審計(jì)監(jiān)控服務(wù)和社交訪問控制服務(wù)支持,為引擎提供優(yōu)化計(jì)算匯總統(tǒng)計(jì)服務(wù);
由上可見,本發(fā)明提供的一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,有以下優(yōu)點(diǎn)。(I)跨開放平臺,方便橫行擴(kuò)展目前的開放平臺百花齊放,每個(gè)平臺的均持有各自獨(dú)立的社交關(guān)系圖譜,并針對這些社交圖譜數(shù)據(jù)并其代表用戶所產(chǎn)生的社交信息內(nèi)容用開放api的接口方式對外提供,方便其他系統(tǒng)連接各自開放平臺。然而業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊所牽涉的用戶并不全屬于個(gè)別或部分開放平臺,因此本發(fā)明可以很好地解決業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊與所有開放平臺的互聯(lián)互通,以實(shí)現(xiàn)大范圍內(nèi)的社交化信息需求。(2)通用的訂閱推送機(jī)制,滿足個(gè)性化訂閱定制需求,解耦業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊和開放平臺目前的開放平臺均未提供對外的訂閱定制社交信息接口,或者有提供但是種類稀少并不夠個(gè)性化,未能很好地滿足業(yè)務(wù)需要。本發(fā)明設(shè)計(jì)通用的訂閱推送機(jī)制,適配大部分的業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的訂閱定制需求,并對其屏蔽多種開放平臺的差異,提供統(tǒng)一社交接入。(3)計(jì)算算法優(yōu)化,減少開放平臺api的調(diào)用次數(shù),降低成本所有開放平臺的均對自己提供的api有一個(gè)訪問頻率計(jì)數(shù),以此來統(tǒng)計(jì)接入調(diào)用的客戶端對平臺的訪問量,開放平臺服務(wù)提供商會按訪問量收費(fèi)收費(fèi)。大部分開放平臺均缺少個(gè)性化社交信息訂閱接口,只提供輪詢方式拉數(shù)據(jù)而沒主動推送數(shù)據(jù)。本發(fā)明基于開放平臺這一缺點(diǎn),設(shè)計(jì)出消息優(yōu)化計(jì)算的方法,采用按照開放平臺類型分類批量計(jì)算策略和定期間隔計(jì)算策略,能減少無效冗余的api調(diào)用,節(jié)約成本。(4)訂閱推送信息的非阻塞自調(diào)節(jié)、并可靠交付。自動機(jī)制會根據(jù)當(dāng)前引擎調(diào)用業(yè)務(wù)系統(tǒng)客戶端的耗時(shí)自動調(diào)整推送策略,以達(dá)到 合理利用服務(wù)端引擎資源的效果。通過以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明是一套軟件解決方案,更多地可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)。本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件服務(wù)的形式體現(xiàn)出來,并作為其中一部分軟件服務(wù)集合到一個(gè)大的社交網(wǎng)關(guān)應(yīng)用產(chǎn)品中。本發(fā)明的軟件服務(wù)中部分服務(wù)基于社交網(wǎng)關(guān)應(yīng)用廣品的基礎(chǔ)1 塊服務(wù)對于系統(tǒng)實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,在沒有超過本申請的精神和范圍內(nèi),可以通過其他的方式實(shí)現(xiàn)。上面列舉的將本應(yīng)用集成到社交網(wǎng)關(guān)應(yīng)用中的實(shí)施例只是一種示范性的例子,不應(yīng)該作為限制,所給出的具體內(nèi)容不應(yīng)該限制本申請的目的。以上所述僅是本發(fā)明的具體實(shí)施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,其特征在于聯(lián)接于業(yè)務(wù)系統(tǒng)和社交開發(fā)平臺兩者之間,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)和開放平臺之間的用戶社交消息的互聯(lián)互通,在這基礎(chǔ)上實(shí)現(xiàn)用戶關(guān)注消息的個(gè)性化定制的訂閱推送服務(wù);業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的社交化需求,其需要關(guān)注的社交消息可能牽涉到多個(gè)社交平臺, 不同社交平臺消息存儲以及獲取方式不同,并且還分別處于不同類型的開放系統(tǒng)中,本訂閱弓I擎處在業(yè)務(wù)角度上考慮,引入一種內(nèi)聯(lián)所有開放平臺的機(jī)制為業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊屏蔽開放平臺的差異,業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊的信息與社交信息的互聯(lián)互通,體現(xiàn)透明性特點(diǎn); 包括社交信息訂閱規(guī)則采集、訂閱規(guī)則解析計(jì)算、結(jié)果異步推送三部分,其中這三部分涉及的對接交互的系統(tǒng)包括有內(nèi)部業(yè)務(wù)服務(wù)系統(tǒng)、公網(wǎng)的社交開放平臺;其中客戶端接入部分包括多個(gè)業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊;開放平臺部分包括適配多個(gè)不同類型的開放平臺;引擎部分通過公共IP網(wǎng)或者內(nèi)部網(wǎng)與客戶端接入部分連接;引擎部分通過公共IP網(wǎng)與適配的開放平臺部分連接;所述第一部分社交信息訂閱規(guī)則采集,用于接收業(yè)務(wù)系統(tǒng)中各個(gè)服務(wù)模塊的社交信息訂閱需求,同時(shí)處理多個(gè)業(yè)務(wù)系統(tǒng)并多個(gè)模塊中的請求,不需要阻塞引擎系統(tǒng),引擎根據(jù)上下文環(huán)境將請求數(shù)據(jù)以自描述的XML結(jié)構(gòu)封裝元數(shù)據(jù)和請求數(shù)據(jù)成訂閱規(guī)則數(shù)據(jù)包,使其不必依賴靜態(tài)定于的服務(wù)接口和數(shù)據(jù)結(jié)構(gòu),訂閱規(guī)則數(shù)據(jù)包以隊(duì)列形式存儲并排隊(duì)等候處理;所述第二部分訂閱規(guī)則解析計(jì)算,用于對第一步中收集的訂閱請求進(jìn)行跨開放平臺的關(guān)聯(lián)解析,訂閱規(guī)則一般包括業(yè)務(wù)系統(tǒng)或者業(yè)務(wù)模塊的社交信息需求,以XML格式封裝起來,按照解析器所認(rèn)知的約定規(guī)則格式。引擎內(nèi)有一個(gè)集中式全局統(tǒng)籌的調(diào)度器,負(fù)責(zé)從第一步中采集的訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集,對規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行,最后在集中式全局解析器中統(tǒng)籌合并結(jié)果,并存放到訂閱結(jié)果隊(duì)列中待推送;所述第三部分結(jié)果異步推送,用于訂閱請求經(jīng)過解析器解析計(jì)算后存放在結(jié)果存儲結(jié)構(gòu)中,由統(tǒng)一集中的推送器將結(jié)果回推給業(yè)務(wù)系統(tǒng),其中回推使用回推策略包括有主動推送和儲存待拉兩種策略,靈活地化解業(yè)務(wù)系統(tǒng)接收超時(shí)致使消息堵塞。
2.一種跨開放平臺社交消息分類計(jì)算方法,其特征在于社交消息計(jì)算是跨開放平臺的,其計(jì)算牽涉的社交信息是跨業(yè)務(wù)系統(tǒng)和開放平臺的,這里采用分類計(jì)算的方法;本引擎聯(lián)接于業(yè)務(wù)系統(tǒng)和社交開發(fā)平臺兩者之間,其中開放平臺包括目前主流兩類, 社交網(wǎng)和微博平臺,典型代表如人人社交網(wǎng)和新浪微博平臺;對于業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊,其訂閱關(guān)注的社交信息可以跨開放平臺類型,即需要訂閱請求的用戶,某用戶作為唯一個(gè)體在業(yè)務(wù)系統(tǒng)范圍內(nèi)存在,并存在一定用戶關(guān)系圖譜集,在多個(gè)開放平臺上也分別存在一定范圍的社交關(guān)系圖譜集,而業(yè)務(wù)范圍內(nèi)的用戶關(guān)系圖譜集與開放平臺上的社交關(guān)系圖譜集存在一定的關(guān)聯(lián),如果將用戶關(guān)系圖譜集和社交關(guān)系圖譜集看成是全局范圍內(nèi)的有唯一標(biāo)識的用戶關(guān)系集,那么上述的業(yè)務(wù)范圍內(nèi)與多個(gè)開放平臺范圍內(nèi)的關(guān)系圖譜集的關(guān)聯(lián)就指他們的用戶集存在交集,或者I對I相交、或者是I對N相交, 其交集為唯一用戶集,這里的用戶可以是真實(shí)個(gè)人或虛擬用戶;跨開放平臺社交信息訂閱的計(jì)算就是基于這種用戶交集的基礎(chǔ)上展開計(jì)算的;譬如,某用戶在業(yè)務(wù)系統(tǒng)范圍內(nèi)存在并持有一定量好友關(guān)系集,該用戶在社交網(wǎng)上存在唯一帳號身份并持有多個(gè)關(guān)注好友,該用戶在微博平臺上也存在對應(yīng)的唯一帳號并持有多個(gè)關(guān)注好友。該用戶的好友關(guān)系集合分別在業(yè)務(wù)系統(tǒng)范圍與社交網(wǎng)范圍和微博平臺范圍內(nèi)存在交叉的地方,即用戶交集,該用戶在兩種開放平臺上均存在帳號并持有各自的好友關(guān)系列表,并且當(dāng)中與該用戶在業(yè)務(wù)系統(tǒng)范圍內(nèi)的好友群剛好有部分共同好友,存在好友關(guān)系交集;交集數(shù)據(jù)按照開放平臺類型劃分類,主要分為兩類,第一類為I對I相交,例如業(yè)務(wù)范圍內(nèi)關(guān)系集與社交網(wǎng)范圍內(nèi)關(guān)系集的交集、業(yè)務(wù)范圍內(nèi)關(guān)系集與微博平臺范圍內(nèi)關(guān)系集的交集;第二類為I對N相交,業(yè)務(wù)范圍內(nèi)關(guān)系集與多個(gè)開放平臺范圍內(nèi)關(guān)系集的交集; 所述第一類劃分法為I對I相交,分別指業(yè)務(wù)范圍內(nèi)關(guān)系集和單個(gè)開放平臺范圍內(nèi)關(guān)系集,即業(yè)務(wù)范圍內(nèi)關(guān)系集中存在的某個(gè)用戶同時(shí)也在單個(gè)開放平臺范圍內(nèi)關(guān)系集中,基于這種情況,采用單種開放平臺類型解析器可以計(jì)算變更結(jié)果;所述第二類劃分法為I對N相交,I為業(yè)務(wù)范圍內(nèi)關(guān)系集,N為開放平臺范圍內(nèi)關(guān)系集, N大于等于2,即業(yè)務(wù)范圍內(nèi)關(guān)系集中存在的某個(gè)用戶同時(shí)也在多個(gè)開放平臺范圍內(nèi)關(guān)系集中,基于這種情況,采用內(nèi)聯(lián)多種開放平臺類型解析器可以計(jì)算變更結(jié)果;現(xiàn)在該用戶需要關(guān)注他的業(yè)務(wù)范圍內(nèi)好友的社交動態(tài),該用戶通過業(yè)務(wù)系統(tǒng)與引擎的接口向引擎發(fā)起一則訂閱請求,請求的數(shù)據(jù)格式為一自描述的XML數(shù)據(jù)包,內(nèi)里封裝包括解析器能識別的元數(shù)據(jù)和訂閱好友社交信息變更的數(shù)據(jù),表示該用戶關(guān)注其好友的在社交平臺信息變更情況,需要引擎解析器去解析他的這個(gè)訂閱包并需要得到返回結(jié)果,再回傳反饋給該用戶。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括采用集中式全局統(tǒng)籌的調(diào)度和全局解析的計(jì)算方法;引擎內(nèi)的一個(gè)集中式全局統(tǒng)籌的調(diào)度器,負(fù)責(zé)從第一步中采集的訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集,對規(guī)則數(shù)據(jù)按不同開放平臺連接目標(biāo)進(jìn)行分拆和合并,再分發(fā)到開放平臺類型相同的解析器解析執(zhí)行,最后在集中式全局解析器中統(tǒng)籌合并結(jié)果,并存放到訂閱結(jié)果隊(duì)列中待推送;所述的集中式全局調(diào)度器,負(fù)責(zé)統(tǒng)一調(diào)度解析過程,包括從訂閱規(guī)則數(shù)據(jù)隊(duì)列中提取數(shù)據(jù)集、分類分拆數(shù)據(jù)、委托特定開放平臺類型解析器解析執(zhí)行;所述分類分拆數(shù)據(jù),采用前面特征所描述的分類法分拆;各個(gè)解析器解析過程支持并發(fā);所述集中式全局解析器,負(fù)責(zé)收集結(jié)果并匯總統(tǒng)計(jì)、將結(jié)果丟放到待返回的推送隊(duì)列中。其中匯總過程,涉及到獲取并發(fā)線程執(zhí)行結(jié)果,并內(nèi)聯(lián)全局的訂閱規(guī)則進(jìn)行綜合匯總結(jié)果O
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括跨開放平臺社交信息的計(jì)算方法是采用優(yōu)化策略;所述優(yōu)化策略指減少引擎資源開銷和減少對開放平臺api調(diào)用,以提升解析引擎性能和解析速度為目的;優(yōu)化策略包括按照開放平臺類型分類批量計(jì)算、定期間隔計(jì)算;對訂閱數(shù)據(jù)包按照開放平臺類型劃分能有效地支持優(yōu)化計(jì)算;所述按照開放平臺類型分類批量計(jì)算策略,指同一種開放平臺類型的社交信息計(jì)算,例如是社交網(wǎng)平臺類型的社交信息計(jì)算,其社交平臺類型相同并且計(jì)算規(guī)則類似,即存在類似的開放api,因此可以將這類社交信息計(jì)算合并為批量計(jì)算,這類批量集中計(jì)算比單條計(jì)算提高計(jì)算速度和效率;所述定期間隔計(jì)算,指設(shè)定一定時(shí)間間隔進(jìn)行計(jì)算,引擎采用定時(shí)調(diào)度機(jī)制,定期向開放平臺查詢計(jì)算訂閱包含的社交信息是否存在變更。在固定間隔內(nèi),調(diào)度引擎會收集本時(shí)間段內(nèi)的計(jì)算請求,再集中在一個(gè)時(shí)間點(diǎn)開始計(jì)算,這樣可以減少不必要的冗余請求,因?yàn)榇蟛糠稚缃恍畔⒌淖兏g隔并不頻繁;定時(shí)間隔動態(tài)地可配置。
5.一種社交信息訂閱結(jié)果的推送機(jī)制,其特征在于采用自動調(diào)節(jié)的推送策略,自動機(jī)制會根據(jù)當(dāng)前引擎調(diào)用業(yè)務(wù)系統(tǒng)客戶端的耗時(shí)自動調(diào)整推送策略,以達(dá)到合理利用服務(wù)端引擎資源的效果;推送策略包括主動推送策略和存儲待拉策略;所述主動推送策略,指服務(wù)引擎主動將訂閱計(jì)算產(chǎn)生的結(jié)果,通過調(diào)用業(yè)務(wù)系統(tǒng)客戶端提供的回調(diào)api,將結(jié)果回推給業(yè)務(wù)系統(tǒng);所述存儲待拉策略,指服務(wù)引擎將訂閱計(jì)算產(chǎn)生的結(jié)果存儲在服務(wù)引擎端提供的增強(qiáng)存儲容器中,等待業(yè)務(wù)系統(tǒng)客戶端的主動查詢請求,查詢是否積壓大量的結(jié)果消息未推送, 若是則主動拉取并清除這些結(jié)果消息;存儲待拉策略的選取是基于解決主動推送策略時(shí)引起的堵塞問題而引入的,當(dāng)存在網(wǎng)絡(luò)不穩(wěn)定時(shí),主動推會因大量的io傳送而消耗服務(wù)端引擎的性能資源,致使主動推送頻頻超時(shí),結(jié)果消息不能發(fā)出而出現(xiàn)堵塞;當(dāng)主動推遇到網(wǎng)絡(luò)不暢或者業(yè)務(wù)系統(tǒng)客戶端繁忙時(shí),超時(shí)過一段閥值后,服務(wù)引擎會自動切換推送策略,而將結(jié)果消息存放在本地的緩存結(jié)構(gòu)中,待業(yè)務(wù)系統(tǒng)客戶端主動來拉取。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括增強(qiáng)的存儲容器,用來存放待回推的訂閱結(jié)果信息,引入本存儲容器,可實(shí)現(xiàn)下面幾個(gè)優(yōu)點(diǎn)同步轉(zhuǎn)異步,并發(fā)收集計(jì)算結(jié)果并不阻塞;計(jì)算結(jié)果消息可持久化,保證可靠交付;計(jì)算結(jié)果采用自描述的XML結(jié)構(gòu),使得生成的介紹結(jié)果對其對于業(yè)務(wù)系統(tǒng)客戶端不需求靜態(tài)地確定調(diào)用接口,因此可解耦適配所有業(yè)務(wù)系統(tǒng)客戶端接口 ;增強(qiáng)的存儲容器采用封裝并發(fā)隊(duì)列的方式,存儲隊(duì)列可持久化,以文件方式存儲,以保證可靠交互。
全文摘要
本發(fā)明公開了一種跨開放平臺社交消息優(yōu)化計(jì)算的訂閱推送引擎,聯(lián)接于業(yè)務(wù)系統(tǒng)業(yè)務(wù)模塊和社交開放平臺之間,實(shí)現(xiàn)兩者的用戶社交消息互聯(lián)互通。設(shè)計(jì)本引擎時(shí)首要考慮的是與具體訂閱服務(wù)無關(guān),任何業(yè)務(wù)系統(tǒng)均可接入;與開放平臺類型無關(guān),任何開放平臺均可適配。本引擎包括社交信息訂閱規(guī)則采集、訂閱規(guī)則解析計(jì)算、結(jié)果異步推送三部分。其中,訂閱規(guī)則采集,實(shí)現(xiàn)并發(fā)收集來自業(yè)務(wù)系統(tǒng)的社交訂閱請求,并采用自描述XML結(jié)構(gòu)封裝數(shù)據(jù);訂閱規(guī)則解析計(jì)算,實(shí)現(xiàn)跨社交開放平臺計(jì)算;結(jié)果異步推送,實(shí)現(xiàn)以優(yōu)化策略回推計(jì)算結(jié)果;本發(fā)明具有跨開放平臺,通用非阻塞訂閱推送機(jī)制,計(jì)算算法優(yōu)化等特點(diǎn),滿足個(gè)性化訂閱需求,提高業(yè)務(wù)系統(tǒng)使用價(jià)值。
文檔編號G06F17/30GK103020056SQ20111028030
公開日2013年4月3日 申請日期2011年9月20日 優(yōu)先權(quán)日2011年9月20日
發(fā)明者黃智彬, 何健明, 田之進(jìn) 申請人:佳都新太科技股份有限公司