專利名稱:一種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法,屬網(wǎng)絡(luò)數(shù)據(jù)庫更新技 術(shù)領(lǐng)域。
背景技術(shù):
RSS也叫聚合RSS,是在線共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容,Really SimpleSyndication)。通常在時效性比較強(qiáng)的內(nèi)容上使用RSS訂閱能更快速獲取信息,網(wǎng) 站提供RSS輸出,有利于讓用戶獲取網(wǎng)站內(nèi)容的最新更新。RSS可用于在網(wǎng)站間分享信息, 網(wǎng)絡(luò)用戶可以在客戶端借助于支持RSS的聚合工具軟件(例如Sharp Reader, RSS Reader, NewzCrawler、 Feed Demon),在不打開網(wǎng)站內(nèi)容頁面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi) 容。RSS源是一種描述和同步網(wǎng)站內(nèi)容的格式,是目前使用最廣泛的XML應(yīng)用。RSS搭建了 信息迅速傳播的一個技術(shù)平臺,使得每個人都成為潛在的信息提供者。發(fā)布一個RSS文件 后,這個RSS Feed中包含的信息就能直接被其他站點調(diào)用,而且由于這些數(shù)據(jù)都是標(biāo)準(zhǔn)的 XML格式,所以也能在其他的終端和服務(wù)中使用。RSS是目前使用最廣泛的資源共享應(yīng)用, 可以被稱為資源共享模式的延伸。 RSS的語法介紹RSS是基于文本的格式。它是XML(可擴(kuò)展標(biāo)識語言)的一 種形式,簡單來說,RSS實際上就是一個XML文件,定義了相關(guān)的DTD(Document Type Definition,文檔類定義)。 一個RSS文件就是一段規(guī)范的XML數(shù)據(jù),該文件一般以rss, xml或者rdf作為后綴。通常RSS文件都是標(biāo)為XML, RSS文件(通常也被稱為RSS feeds 或者channels)通常只包含簡單的項目(item)列表。 一般而言,每一個項目(item)都含 有一個標(biāo)題(title),一段簡單的介紹(description),還有一個URL鏈接(link,比如是一 個網(wǎng)頁的地址)。而其他的信息,例如日期(pubdate)、創(chuàng)建者的信息(author)等等,都是 可以選擇的。RSS的具體結(jié)構(gòu)RSS2. 0文件由一個channel元素及其子元素item構(gòu)成。所 有的RSS必須遵循XML1. 0標(biāo)準(zhǔn),根元素〈RSS〉的version (版本)屬性指出該文檔遵循的 RSS規(guī)范。cha皿el元素用于描述RSS feed,它有三個子元素是必須的,分別為〈title〉、 〈description〉、 〈link〉,其中〈title〉描述該RSS源的名稱,〈description〉是對該頻道 的描述,〈link〉描述頻道對應(yīng)的URL鏈接;其它子元素是可選的,如〈image〉、〈language〉、 〈category〉、〈copyright〉、〈pubdate〉等,〈image〉定義了顯示該頻道的GIF, JPEG或者PNG 格式的圖片,〈language〉描述該RSS使用的語言,〈category〉聲明該頻道所屬的一個或者 多個分類,〈copyright〉是該RSS的版權(quán)聲明,〈pubdate〉描述該RSS發(fā)布的日期。
〈item〉元素是一個rss文檔中最重要的部分,每個〈cha皿el〉元素可擁有一個或 多個〈item〉元素,每個〈item〉元素可定義RSS feed中的一篇文章或"story"。其內(nèi)容也 經(jīng)常變化,用來顯示更新的內(nèi)容?!磇tem〉元素里的〈title〉、 〈description〉、 〈link〉元素 是必須的,其中〈title〉用于描述該項的名稱,〈description〉是對該條目的描述,〈link〉 描述對應(yīng)的亂鏈接;還有一些可選項如〈pubdate>、 〈source>、 〈author>、 〈comments>、 〈category〉、〈guid〉等,其中〈pubdate〉是該條目發(fā)布的日期,〈source〉為該條目指定一個第三方來源,〈author〉描述作者信息,〈comments〉允許項目連接到有關(guān)此項目的注釋(文件),〈category〉指出該條的所屬分類,〈guid〉為該項目定義一個唯一的標(biāo)識符。通常情況下,一段item的介紹可能包含新聞的全部介紹,或者僅僅是額外的內(nèi)容或者簡短的介紹。這些項目的鏈接通常都能鏈接到全部的內(nèi)容,可以讓用戶閱讀網(wǎng)站內(nèi)容的最新信息。
Rss提供網(wǎng)站間的內(nèi)容共享,用戶可以通過訂閱rss在不打開網(wǎng)站內(nèi)容頁面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi)容。 一般情況下,用戶也可以通過rss閱讀器或者在線網(wǎng)絡(luò)工具直接閱讀rss內(nèi)容。但這些應(yīng)用需要用戶主動尋找rss信息源,并手動添加到rss信息源到列表中,操作繁瑣,數(shù)據(jù)混雜,不便于用戶操作。 傳統(tǒng)的rss訂閱方式可以通過直接訪問rss可以得到rss的各個元素信息,首先用戶向服務(wù)器發(fā)出連接rss請求,服務(wù)器接到請求后連接因特網(wǎng),因特網(wǎng)返回rss數(shù)據(jù)給服務(wù)器,最后服務(wù)器向用戶返回數(shù)據(jù)。其步驟如下
(1)、用戶向服務(wù)器發(fā)出連接請求; (2)、服務(wù)器根據(jù)用戶提交的rss連接信息去因特網(wǎng)連接rss源;
(3)、因特網(wǎng)向服務(wù)器返回rss數(shù)據(jù)信息;
(4)、服務(wù)器向用戶返回rss信息。 該方法訪問速度慢,內(nèi)容處理復(fù)雜,并且一旦服務(wù)器處在掉線模式,系統(tǒng)就不能正常運(yùn)行,其可靠性大大下降,不能為用戶提供優(yōu)質(zhì)服務(wù)。如電腦知識與技術(shù)雜志第5巻第9期,2009年3月,"基于RSS的個性化信息服務(wù)研究"所述即屬于此列。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的缺陷和不足,以解決用戶直接訪問rss數(shù)據(jù)存在的速度緩慢以及rss數(shù)據(jù)分類復(fù)雜混亂、操作繁瑣的問題,本發(fā)明提供了一種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法。 本發(fā)明的技術(shù)解決方案是直接在內(nèi)容服務(wù)器端進(jìn)行rss訂閱,并將來源不同的rss信息分類,整合到本地數(shù)據(jù)庫,由內(nèi)容服務(wù)器向用戶直接提供rss服務(wù)。
本發(fā)明的技術(shù)解決方案如下 —種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法,步驟如下
1)內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫;
2)對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫;
3)內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新。 上述步驟1)所述的內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫,具體步驟如下 (1)產(chǎn)生某一個rss源對應(yīng)的XML—RSS對象$rss = &new XML_RSS ($url) ;url是該rss源對應(yīng)的鏈接; (2)解析該rss源$rss->parse(); (3)得至lj該rss源的所有item :$items = $rss_>getltems (); (4)對所有的rss進(jìn)行解析,并且將每一個rss源的信息都存放在數(shù)據(jù)表中,其中
在本地數(shù)據(jù)庫中為每一個rss源建立一個數(shù)據(jù)表,以標(biāo)識不同的rss源信息。通常,我們提取item的title、description、link、pubdate元素,并且根據(jù)title
4元素和description元素進(jìn)行分類,通過與rss源所屬的頻道進(jìn)行模糊匹配分類,存放于本地數(shù)據(jù)庫中的不同數(shù)據(jù)表中。 上述步驟2)所述的對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫,具體步驟如下 (1)根據(jù)頻道分類信息確定rss信息的分類有哪些,其中為每一個頻道建立一個數(shù)據(jù)表,以標(biāo)識不同的頻道數(shù)據(jù); (2)由解析得到的〈title〉、 〈description〉確定該item屬于哪個分類; (3)根據(jù)得到的link信息,得到該item的全文信息;并將該item加入到相應(yīng)的
分類中; (4)對所有的item進(jìn)行分類。 上述步驟(2)所述的由解析得到的〈title〉、 〈description〉確定該item屬于哪個分類,具體步驟如下 ①首先對〈title〉和〈description〉設(shè)置不同的權(quán)值;
②進(jìn)行欄目匹配分析以確定該item所屬的欄目;
③針對某一欄目進(jìn)行頻道分析,確定所屬的頻道分類; 判斷該item是否已存在于該分類中,若是,不進(jìn)行數(shù)據(jù)表插入操作,否則將該item插入所對應(yīng)頻道分類的數(shù)據(jù)表中。 為確保rss信息的時效性,需要在內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新; 上述步驟3)所述的內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新,具體步驟如下 (l)若某一 rss源的第一個item已存在于數(shù)據(jù)庫中,則停止更新,否則繼續(xù)提取該
源的item,將其插入該源對應(yīng)的數(shù)據(jù)表中,并對其進(jìn)行分類; (2)依次更新rss直至所提取的item已存在于數(shù)據(jù)表中; (3)對所有的rss源進(jìn)行更新。 上述步驟3)中內(nèi)容服務(wù)器端對rss源進(jìn)行更新,可根據(jù)不同rss源的更新速度,對不同的rss源設(shè)置不同的更新頻率。 上述步驟(3)所述的對所有的rss源進(jìn)行更新,具體步驟如下 ①對某一 rss源item的〈pubdate〉(發(fā)布時間)進(jìn)行分析,確定相鄰的item之間
發(fā)布時間的相似度,建立相似度向量表; ②根據(jù)相似度向量表確定某一 rss源的更新頻率; ③建立所有rss源的相似度向量表,確定所有rss源的更新頻率。 本發(fā)明方法所用系統(tǒng)由用戶端的終端、存放RSS信息的內(nèi)容服務(wù)器、提供RSS源的
因特網(wǎng)3個部分組成,其中內(nèi)容服務(wù)器將因特網(wǎng)上不同的RSS源信息數(shù)據(jù)進(jìn)行整合分類,存
放在本地數(shù)據(jù)庫中,并向用戶提供訂閱服務(wù)。本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)可以分為
2個功能模塊數(shù)據(jù)庫更新模塊、信息訂閱模塊。 內(nèi)容服務(wù)器提取了遠(yuǎn)程rss信息數(shù)據(jù)并進(jìn)行分類存儲在本地的內(nèi)容服務(wù)器上,系統(tǒng)可以根據(jù)用戶定制的信息向用戶輸出不同的rss信息,而用戶無需知道這些內(nèi)容的來源。由于這些rss信息是存儲在本地的內(nèi)容服務(wù)器的,這提高了用戶的訪問速度,節(jié)省了用戶的時間。該方法避免用戶端直接連接rss源,從而改進(jìn)用戶的訪問速度,并且在內(nèi)容服務(wù)器與rss源斷開連接的情況下,系統(tǒng) 可工作,避免由于網(wǎng)絡(luò)故障原因引起的服務(wù)中斷。
5在內(nèi)容服務(wù)器端,我們對rss源的信息進(jìn)行定期更新,從而保證用戶信息的時效性,為用戶提供優(yōu)質(zhì)的服務(wù),用戶只需要訂閱相應(yīng)的信息就可以得到網(wǎng)絡(luò)上屬于該信息分類的rss服務(wù)。
技術(shù)背景的RSS訂閱方式是,用戶通過RSS閱讀器訂閱RSS信息,由直接訪問rss可以得到rss的各個元素信息首先用戶發(fā)出連接RSS請求,服務(wù)器接到請求后連接因特網(wǎng),因特網(wǎng)返回rss數(shù)據(jù)給服務(wù)器,最后服務(wù)器向用戶返回RSS數(shù)據(jù)。而本發(fā)明的本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法通過內(nèi)容服務(wù)器將用戶和因特網(wǎng)分離,內(nèi)容服務(wù)器從因特網(wǎng)上獲取rss源的信息,用戶只需要向內(nèi)容服務(wù)器提交訂閱、發(fā)送瀏覽請求就可得到來自于因特網(wǎng)的信息服務(wù)。 本發(fā)明方法解決了直接進(jìn)行RSS訂閱訪問速度慢這一問題,該技術(shù)結(jié)合傳統(tǒng)的RSS訂閱,在內(nèi)容服務(wù)器端進(jìn)行RSS訂閱,解析RSS源,并將解析的RSS信息進(jìn)行整合分類,存放到本地數(shù)據(jù)庫,優(yōu)化了數(shù)據(jù)存儲格式,即在內(nèi)容服務(wù)器端增加一個中間服務(wù)層,以提高訪問速度。
圖1是本發(fā)明方法的流程圖;其中1)_3)為其各個步驟。 圖2是圖1中所示步驟1)的具體步驟的流程圖;其中(1)_(4)為其各個步驟。 圖3是圖1中所示步驟2)的具體步驟的流程圖;其中a-d為其各個步驟。 圖4是圖3中所示步驟b的具體步驟的流程圖;其中e-h為其各個步驟。 圖5是圖1中所示步驟3)的具體步驟的流程圖;其中i_k為其各個步驟。 圖6是圖5中所示步驟k的具體步驟的流程圖;其中1-n為其各個步驟。
具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明,但不限于此。
實施例 —種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法,如圖1所示,步驟如下
1)內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫;
2)對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫;
3)內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新。 上述步驟1)所述的內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫,如圖2所示,具體步驟如下 (1)產(chǎn)生某一個rss源對應(yīng)的XML—RSS對象$rss = &new XML_RSS ($url) ;url是該rss源對應(yīng)的鏈接; (2)解析該rss源$rss_>parse (); (3)得至lj該rss源的所有item :$items = $rss_>getltems (); (4)對所有的rss進(jìn)行解析,并且將每一個rss源的信息都存放在數(shù)據(jù)表中,其中
在本地數(shù)據(jù)庫中為每一個rss源建立一個數(shù)據(jù)表,以標(biāo)識不同的rss源信息。 上述步驟2)所述的對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)
庫,如圖3所示,具體步驟如下
a根據(jù)頻道分類信息確定rss信息的分類有哪些,其中為每一個頻道建立一個數(shù) 據(jù)表,以標(biāo)識不同的頻道數(shù)據(jù); b由解析得到的〈title〉、 〈description〉確定該item屬于哪個分類; c根據(jù)得到的link信息,得到該item的全文信息;并將該item加入到相應(yīng)的分
類中; d對所有的item進(jìn)行分類。 上述步驟b所述的由解析得到的〈title〉、 〈description〉確定該item屬于哪個 分類,如圖4所示,具體步驟如下 e首先對〈title〉和〈description〉設(shè)置不同的權(quán)值;
f進(jìn)行欄目匹配分析以確定該item所屬的欄目;
g針對某一欄目進(jìn)行頻道分析,確定所屬的頻道分類; h判斷該item是否已存在于該分類中,若是,不進(jìn)行數(shù)據(jù)表插入操作,否則將該 item插入所對應(yīng)頻道分類的數(shù)據(jù)表中。 上述步驟3)所述的內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新,如圖5所示,具體步驟如下
i若某一 rss源的第一個item已存在于數(shù)據(jù)庫中,則停止更新,否則否則繼續(xù)提取 該源的item,將其插入該源對應(yīng)的數(shù)據(jù)表中,并對其進(jìn)行分類;
j依次更新rss直至所提取的item已存在于數(shù)據(jù)表中;
k對所有的rss源進(jìn)行更新。 上述步驟k所述的對所有的rss源進(jìn)行更新,如圖6所示,具體步驟如下 1對某一 rss源item的〈pubdate〉(發(fā)布時間)進(jìn)行分析,確定相鄰的item之間
發(fā)布時間的相似度,建立相似度向量表; m根據(jù)相似度向量表確定某一 rss源的更新頻率; n建立所有rss源的相似度向量表,確定所有rss源的更新頻率。
權(quán)利要求
一種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法,步驟如下1)內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫;2)對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫;3)內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新。
2. 如權(quán)利要求l中步驟l)所述的內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫,具體步驟如下(1) 產(chǎn)生某一個rss源對應(yīng)的XML_RSS對象$rss = &new XML_RSS ($url) ;url是該rss源對應(yīng)的鏈接;(2) 解析該rss源$rss_ > parse ();(3) 得至U該rss源的所有item :$items = $rss_ > getltems();(4) 對所有的rss源進(jìn)行解析,并且將每一個rss源的信息都存放在數(shù)據(jù)表中,其中在本地數(shù)據(jù)庫中為每一個rss源建立一個數(shù)據(jù)表,以標(biāo)識不同的rss源信息。
3. 如權(quán)利要求l中步驟2)所述的對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫,具體步驟如下(1) 根據(jù)頻道分類信息確定rss信息的分類有哪些,其中為每一個頻道建立一個數(shù)據(jù)表,以標(biāo)識不同的頻道數(shù)據(jù);(2) 由解析得到的〈title〉、 〈description〉確定該item屬于哪個分類;(3) 根據(jù)得到的link信息,得到該item的全文信息;并將該item加入到相應(yīng)的分類中;(4) 對所有的item進(jìn)行分類。
4. 如權(quán)利要求3中步驟(2)所述的由解析得到的〈title〉、〈description〉確定該item屬于哪個分類,具體步驟如下① 首先對〈title〉和〈description〉設(shè)置不同的權(quán)值;② 進(jìn)行欄目匹配分析,以確定該item所屬的欄目;③ 針對某一欄目進(jìn)行頻道分析,確定所屬的頻道分類; 判斷該item是否已存在于該分類中,若是,不進(jìn)行數(shù)據(jù)表插入操作,否則將該item插入所對應(yīng)頻道分類的數(shù)據(jù)表中。
5. 如權(quán)利要求1中步驟3)所述的內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新,具體步驟如下(1) 若某一rss源的第一個item已存在于數(shù)據(jù)庫中,則停止更新,否則繼續(xù)提取該源的item,將其插入該源對應(yīng)的數(shù)據(jù)表中,并對其進(jìn)行分類;(2) 依次更新rss直至所提取的item已存在于數(shù)據(jù)表中;(3) 對所有的rss源進(jìn)行更新。步驟3)中內(nèi)容服務(wù)器端對rss源進(jìn)行更新,可根據(jù)不同rss源的更新速度,對不同的rss源設(shè)置不同的更新頻率。
6. 如權(quán)利要求5中步驟(3)所述的對所有的rss源進(jìn)行更新,具體實現(xiàn)如下① 對某一 rss源item的〈pubdate〉(發(fā)布時間)進(jìn)行分析,確定相鄰的item之間發(fā)布時間的相似度,建立相似度向量表;② 根據(jù)相似度向量表確定某一 rss源的更新頻率;③ 建立所有rss源的相似度向量表,確定所有rss源的更新頻率。
全文摘要
一種本地數(shù)據(jù)庫同步更新遠(yuǎn)程rss數(shù)據(jù)的方法,屬網(wǎng)絡(luò)數(shù)據(jù)庫更新技術(shù)領(lǐng)域。其步驟如下1)內(nèi)容服務(wù)器解析所有的rss源,將解析的rss信息放入本地數(shù)據(jù)庫;2)對得到的rss信息進(jìn)行分類,整合到內(nèi)容服務(wù)器的本地數(shù)據(jù)庫;3)內(nèi)容服務(wù)器端進(jìn)行rss內(nèi)容更新。本發(fā)明方法解決了用戶直接訪問rss數(shù)據(jù)存在的速度緩慢以及rss數(shù)據(jù)分類復(fù)雜混亂、操作繁瑣的問題。
文檔編號G06F17/30GK101763419SQ20091025574
公開日2010年6月30日 申請日期2009年12月28日 優(yōu)先權(quán)日2009年12月28日
發(fā)明者徐超, 林賀, 王恒, 石祚夫, 袁東風(fēng), 陳飛, 顏廷芝, 魏斌 申請人:山東大學(xué)