專利名稱:一種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式系統(tǒng)領(lǐng)域,主要是一種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理系統(tǒng)及方法。
背景技術(shù):
隨著三網(wǎng)融合的推行,越來越多的互聯(lián)網(wǎng)應(yīng)用被“搬”到了電視上??梢灶A(yù)見,隨著互聯(lián)網(wǎng)電視應(yīng)用的爆炸式增長,用戶個性化需求的日益深入,互聯(lián)網(wǎng)信息會高度聚合經(jīng)二次開發(fā)成為互聯(lián)網(wǎng)電視上的增值應(yīng)用,另外,互聯(lián)網(wǎng)電視的操作方便性不及PC電腦和手機(jī)、互聯(lián)網(wǎng)電視的界面內(nèi)容容量也不及PC,這些因素都潛在地要求互聯(lián)網(wǎng)電視上的實現(xiàn)更精準(zhǔn)的站內(nèi)搜索,而當(dāng)前互聯(lián)網(wǎng)上最流行的基于全文檢索的搜索技術(shù)實現(xiàn)顯然無法滿足互聯(lián)網(wǎng)電視領(lǐng)域的客觀需求。另一方面,隨著軟件商業(yè)銷售方式的演化,軟件提供商正從原先的系統(tǒng)和產(chǎn)品提供商向平臺服務(wù)提供商演化,IPTV也必然會從單純的TV業(yè)務(wù)平臺向面向服務(wù)的支撐平臺演化,相應(yīng)地,軟件構(gòu)架技術(shù)將從原先的面向產(chǎn)品向面向服務(wù)發(fā)展,軟件即服務(wù)MaS(Software as a Service)成為互聯(lián)網(wǎng)領(lǐng)域最重要的技術(shù)構(gòu)架方式。目前IPTV對元數(shù)據(jù)的處理不夠通用和開放,已有實現(xiàn)無法重用到互聯(lián)網(wǎng)電視平臺的站內(nèi)精準(zhǔn)搜索、互聯(lián)網(wǎng)電視增值業(yè)務(wù)應(yīng)用等領(lǐng)域。本發(fā)明以^aS為構(gòu)架、以分布式計算為技術(shù)基礎(chǔ),為互聯(lián)網(wǎng)海量元數(shù)據(jù)采集和處理提供通用的、開放式的分布式組件和服務(wù)。
發(fā)明內(nèi)容
本發(fā)明的目的是為互聯(lián)網(wǎng)電視業(yè)務(wù)支撐平臺實現(xiàn)一種統(tǒng)一的、通用的、開放式的互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理系統(tǒng)及方法,本發(fā)明能同時為多個互聯(lián)網(wǎng)業(yè)務(wù)應(yīng)用的互聯(lián)網(wǎng)元數(shù)據(jù)采集和處理提供支撐服務(wù),從而大大降低內(nèi)容聚合型互聯(lián)網(wǎng)應(yīng)用的開發(fā)難度,縮短其開發(fā)周期、降低其部署和運營成本。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案本發(fā)明提供了一種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法,該方法的具體步驟為(1)各業(yè)務(wù)應(yīng)用系統(tǒng)通過互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的配置管理模塊配置提交元數(shù)據(jù)采集需求;(2)互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)采集組件模塊周期性地創(chuàng)建和執(zhí)行頁面采集任務(wù)調(diào)度程序(采集job)、生成的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言(XML)文件;A讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,歸并各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集需求信息的輸入元數(shù)據(jù)來源站點URL列表(Site URL List)和輸出元數(shù)據(jù)映射(Meta Data Mapping);B以輸入元數(shù)據(jù)來源站點URL列表(Site URL List)為入口,創(chuàng)建并執(zhí)行抓取任務(wù)調(diào)度程序(抓取job),進(jìn)行映射化簡(Map Reduce)分布式處理,從因特網(wǎng)/企業(yè)內(nèi)部網(wǎng) (Internet/Intranet網(wǎng))上抓取html頁面內(nèi)容、并結(jié)合元數(shù)據(jù)映射(Meta Data Mapping)過濾出有用的元數(shù)據(jù)源頁面;C對元數(shù)據(jù)源頁面進(jìn)行映射化簡(Map Reduce)分布式處理,根據(jù)元數(shù)據(jù)映射 (Meta Data Mapping)以及各業(yè)務(wù)應(yīng)用系統(tǒng)的定義的元數(shù)據(jù)XSD結(jié)構(gòu)定義,即Meta Data XML Schema Define,生成目標(biāo)元數(shù)據(jù)可擴(kuò)展標(biāo)記語言(XML)文件;(3)互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)輸出模塊將元數(shù)據(jù)采集組件生成的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言(XML)文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng)。更進(jìn)一步的,所述業(yè)務(wù)應(yīng)用系統(tǒng)元數(shù)據(jù)采集配置包括以下三個方面(1)元數(shù)據(jù)來源站點URL列表(Site URL List)定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些web站點去抓?。?2)元數(shù)據(jù)XSD 定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)的可擴(kuò)展標(biāo)記語言(XML)結(jié)構(gòu);(3)元數(shù)據(jù)映射具體定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些URL的html源頁面上提取、html源頁面字段與目標(biāo)元數(shù)據(jù)可擴(kuò)展標(biāo)記語言XML字段之間的xpath(—種用于在 XML文檔中進(jìn)行導(dǎo)航的語言)對應(yīng)關(guān)系。更進(jìn)一步的,在步驟B中抓取流程為以元數(shù)據(jù)來源站點URL列表(Site URL List)為初始入口、結(jié)合抓取歷史記錄(Fetch History),生成第一等級(level 1)的抓取列表(fetch list),然后在各分布式節(jié)點上創(chuàng)建并執(zhí)行第一等級(level 1)的抓取任務(wù) (task)根據(jù)抓取列表里的URL逐個抓取html頁面,計算html頁面內(nèi)容的MD5值,在抓取歷史中查找此URL的記錄并比對MD5值A(chǔ))若上次成功抓取過URL且MD5值與上次相同,則更新抓取歷史記錄(Fetch History)、延長此URL的抓取周期,然后直接進(jìn)入下一 URL的抓取處理;B)若未成功抓取過URL或是MD5值與上次不同,則需要完成以下三步后再進(jìn)入下一 URL的抓取處理Bi)若當(dāng)前抓取等級(fetch level)小于系統(tǒng)的最大抓取等級(max fetch level),則需解析出此html里的超鏈接link ;B2)如果當(dāng)前URL與元數(shù)據(jù)映射中的元數(shù)據(jù)映射單元(MetadataMappingUnit)的統(tǒng)一資源定位符前綴(URLPrefix)屬性匹配,則將此URL及html頁面內(nèi)容放入元數(shù)據(jù)源 (Meta Data Source) φ ;Β3)追加/更新抓取歷史(Fetch History)記錄,包括以下信息URL,抓取等級 (fetch level),最近抓取狀態(tài),最近抓取時間,抓取周期,下次抓取時間=最近抓取時間+ 抓取周期;第一等級(level 1)的抓取任務(wù)(task)完成后,抓取任務(wù)(task)將返回解析 html所得的超鏈列表Qitml link list),抓取任務(wù)調(diào)度程序(抓取job)將根據(jù)超鏈列表 (html link list)、結(jié)合抓取歷史記錄(Fetch History)形成第二等級(level 2)的抓取列表(fetch list),創(chuàng)建并執(zhí)行下一個等級(next level)的抓取任務(wù)調(diào)度程序(抓取job), 依此迭代,直到達(dá)到系統(tǒng)指定的最大抓取等級(max level)才結(jié)束本輪抓取。更進(jìn)一步的,所述步驟C包括如下步驟1)從元數(shù)據(jù)源(Metadata Source)獲取一 html頁面內(nèi)容,將html格式化為可擴(kuò)展標(biāo)記語言格式Uml),根據(jù)xpath來讀取指定節(jié)點值;2)根據(jù)頁面的URL在元數(shù)據(jù)映射定義(Metadata Mapping)中查找對應(yīng)的元數(shù)據(jù)映射單元(MetadataMappingUnit),對每個匹配的元數(shù)據(jù)映射單元(MetadataMappingUnit) 做如下步驟幻至步驟6)處理3)根據(jù)元數(shù)據(jù)映射單元(MetadataMappingUnit)的每一頂?shù)脑?xpath(itemSourceXpath)值,對源html頁面按xpath中獲取到一個節(jié)點列表(Node列表);4)結(jié)合業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言XML結(jié)構(gòu)定義元數(shù)據(jù) XSD(Metadata XSD),將步驟3)得到的節(jié)點列表(Node列表)中的每一列轉(zhuǎn)換為一個元數(shù)據(jù)XML對象;5)根據(jù)元數(shù)據(jù)映射單元(MetadataMappingUnit)的字段映射(FieldMappings) 定義,為元數(shù)據(jù)XML對象的各字段賦值如果指定了期望關(guān)聯(lián)的頁面url地址 (relevantPageURLExp),則根據(jù)期望關(guān)聯(lián)的頁面url地址(relevantPageURLExp)得出相關(guān)頁面URL并抓取相關(guān)頁面;根據(jù)期望的源xpath (sourceXpathExp)從源頁面或源頁面的相關(guān)頁面中得到xpath所對應(yīng)的節(jié)點值;如果指定了期望的值格式化(valuei^ormatExp),則進(jìn)一步對得到的節(jié)點值進(jìn)行格式化處理;將節(jié)點值賦給目標(biāo)xpath(targetXpath)所指定的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象(XML對象)的對應(yīng)字段上;6)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象(XML對象)序列化為可擴(kuò)展標(biāo)記語言(XML)文件并按應(yīng)用程序唯一編碼applD分目錄存儲;7)從元數(shù)據(jù)源(Metadata Source)中刪除此html頁面;8)重復(fù)步驟1)至步驟7,直至元數(shù)據(jù)源(Metadata Source)為空。本發(fā)明所述的這種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理系統(tǒng),該系統(tǒng)包括配置管理圖形用戶接口(GUI)模塊、元數(shù)據(jù)采集組件模塊和元數(shù)據(jù)輸出模塊,其中,配置管理圖形用戶接口(⑶I)模塊為業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置提供圖形用戶接口(GUI)界面,采集分布式組件參數(shù)配置,元數(shù)據(jù)采集和輸入日志查看;元數(shù)據(jù)采集組件模塊元數(shù)據(jù)采集的分布式組件,讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,周期性地創(chuàng)建并分布式執(zhí)行采集任務(wù)調(diào)度程序、生成各業(yè)務(wù)應(yīng)用系統(tǒng)的所需要的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言(XML)文件;元數(shù)據(jù)輸出模塊負(fù)責(zé)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言(XML)文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng)。本發(fā)明有益的效果是為互聯(lián)網(wǎng)的元數(shù)據(jù)采集提供了通用、開放式的分布式組件和服務(wù),通過實現(xiàn)通用的海量元數(shù)據(jù)的采集組件和系統(tǒng),為進(jìn)一步實現(xiàn)互聯(lián)網(wǎng)電視的站內(nèi)精準(zhǔn)搜索、內(nèi)容聚合型應(yīng)用的垂直搜索提供統(tǒng)一規(guī)范的數(shù)據(jù)源。
圖1為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的基本模塊結(jié)構(gòu)圖;圖2為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集組件的基本流程原理圖;圖3為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集組件的頁面抓取流程圖;圖4為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集組件的元數(shù)據(jù)XML生成流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合舉例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的舉例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的基本模塊結(jié)構(gòu)圖,本實施例包括以下模塊和步驟步驟1 各業(yè)務(wù)應(yīng)用系統(tǒng)通過互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的配置管理(⑶I)模塊配置提交元數(shù)據(jù)采集需求;業(yè)務(wù)應(yīng)用系統(tǒng)元數(shù)據(jù)采集配置主要包括以下三個方面 元數(shù)據(jù)來源站點URL列表(Site URL List)定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些web站點去抓取; 元數(shù)據(jù)XSD (Metadata XML Schema Define)定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)的XML 結(jié)構(gòu); 元數(shù)據(jù)映射(Meta data Mapping)具體定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些 url的html源頁面上提取、html源頁面字段與目標(biāo)元數(shù)據(jù)XML字段之間的xpath對應(yīng)關(guān)系元數(shù)據(jù)映射(Metadata Mapping)以 XML 方式定義,其 XSD (XML Schema Define)
如下< xml version = "1.0" encoding = "UTF 8" >
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" elementFormDefault= "qualified" attribute Form Defa ult="unqualified">
<xs: element name="MetadataMapping"> <xs:an 門 otation>
<xs: documentation >元數(shù)據(jù)映射定義 </xs: documentation〉
</xs:annotation> <xs:complexType> <xs:seque 門 ce>
<xs: element name= "MetadataMappingUnit" type= "MetadataMappingUnit"
maxOccurs= "unbounded "> <xs:an 門 otation>
<xs: documentation > 元數(shù)據(jù)映射單元 </xs: documentation〉 </xs:annotation> </xs:element> </xs:seque 門 ce> </xs:complexType> </xs:element> <xs:complexType name="MetadataMappingUnit"> <xs:complexType name="FieldMappings"> <xs:a 門門 otation><xs: documentation > 元數(shù)據(jù)字段映射 </xs: documentation〉
</xs:annotation> <xs:sequence>
<xs:element name= "relevantPagellrlExp'' type="xs:string'' min0ccurs="0"> <xs:annotation>
<xs:documentation>ffi關(guān)頁面 URL 表達(dá)式</xs:documentation> </xs:annotation> </xs:element>
<xs:element name="sourceXpathExp" type="xs:string "> <xs:annotation>
<xs:documentation>字段值來源xpath 表達(dá)式</xs:documentation〉 </xs:annotation> </xs:element>
<xs:element name="valueFormatExp'' type="xs:string" min0ccurs = "0"> <xs:annotation>
<xs: documentation > 字段值格式化表達(dá)式 </xs: documentation〉 </xs:annotation> </xs:element> <xs:element name="targetXpath" type="xs:string"> <xs:annotation>
<xs: documentation >字段目標(biāo) xpath </xs: documentation > </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name= 'MetadataItemType"> <xs:sequence>
<xs:element name= "itemSourceXpath" type="xs:string ">
<xs:annotation>
<xs: documentation〉)^應(yīng)的源 xpath </xs: documentation > </xs:annotation></xs:element>
<xs:element name="FieldMappings" type="FieldMappings" maxOccurs="unbounded"> <xs:a 門 notation〉
<xs: documentation > 字段映 If </xs: documentation〉 </xs:annotation> </xs:element> </xs:sequence> </xs:complexType>
</xs:schema>可以定義1至多個映射單元(MetadataMappingUnit),映射單元決定了從web站點抓取到的哪些頁面將成為元數(shù)據(jù)源(Metadata Source) :ur 1與映射單元 (MetadataMappingUnit)的urlPref ix字段值匹配的html頁面被轉(zhuǎn)換為業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)XML文件,而映射單元(MetadataMappingUnit)的元數(shù)據(jù)項(Metadataltem)則描述了 html頁面轉(zhuǎn)換為元數(shù)據(jù)XML文件的具體規(guī)則根據(jù)每一項的源Xpath (UemSourceXpath)從html源頁面獲取到元數(shù)據(jù)節(jié)點列表(Node List),該列表中的每一項將對應(yīng)生成一個元數(shù)據(jù)XML,元數(shù)據(jù)XML的字段值則是在一至多個字段映射(Fi el (!Mappings)中具體定義targetXpath表示元數(shù)據(jù)目標(biāo)字段; relevantPageUrlExp若指定此項,表示此元數(shù)據(jù)目標(biāo)字段值不是來源于當(dāng)前html、而是來源于一個與當(dāng)前html頁面相關(guān)的html頁面;sourceXpathExp 表示此元數(shù)據(jù)目標(biāo)字段值是根據(jù)這里指定的xpath表達(dá)式去獲取,如果指定了 relevantPagetolExp,則xpath是相關(guān)頁面的xpath,若未指定relevantPagetolExp,則xpath是當(dāng)前頁面的xpath、如果是相對 xpath,則是相對于itemSourceXpath的;valuei^ormatExp則是定義了如何對值進(jìn)行格式化處理??傊?,元數(shù)據(jù)源html頁面與元數(shù)據(jù)目標(biāo)XML可以是多對多的映射關(guān)系一個元數(shù)據(jù)源html頁面可以生成一或多個元數(shù)據(jù)XML文件,一個元數(shù)據(jù)XML的字段值也可以來源于一個以上的html頁面。另外,業(yè)務(wù)應(yīng)用系統(tǒng)元數(shù)據(jù)采集配置也包括配置元數(shù)據(jù)XM L文件輸出給業(yè)務(wù)應(yīng)用系統(tǒng)的方式S0AP或FTP。步驟2 互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)采集組件模塊周期性地創(chuàng)建和執(zhí)行頁面采集的任務(wù)調(diào)度程序(job)、元數(shù)據(jù)XML生成job ;具體流程設(shè)計見下面關(guān)于圖2的說明;步驟3 互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)輸出模塊將元數(shù)據(jù)采集組件生成的元數(shù)據(jù)XML文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng);輸出模塊將按應(yīng)用系統(tǒng)指定的方式S0AP或FTP,逐個或是打包發(fā)送給業(yè)務(wù)應(yīng)用系統(tǒng)。如圖2所示,為本發(fā)明互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集組件的基本流程原理圖,本實施例包括以下步驟步驟1 讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,歸并各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置信息的輸入(Site URL List)和輸出(Meta Data Mapping);不同業(yè)務(wù)應(yīng)用系統(tǒng)可能對同一 Site的頁面有抓取需求,歸并輸入可以最大程度地減少元數(shù)據(jù)采集組件對同一 Site的頁面請求次數(shù);歸并輸出可以對元數(shù)據(jù)源頁面進(jìn)行集中的解析和轉(zhuǎn)換處理,有效提升元數(shù)據(jù)采集系統(tǒng)的吞吐率;步驟2 以元數(shù)據(jù)來源站點URL列表(Site URL List)為初始入口,創(chuàng)建并執(zhí)行抓取任務(wù)調(diào)度程序(抓取job),進(jìn)行映射化簡(Map Reduce)分布式處理,從hternet/ htranet網(wǎng)上抓取html頁面內(nèi)容、并結(jié)合元數(shù)據(jù)映射(Meta Data Mapping)定義過濾出有用的元數(shù)據(jù)源頁面;元數(shù)據(jù)采集分布式組件周期性地創(chuàng)建并執(zhí)行抓取job,如圖3所示,元數(shù)據(jù)采集組件的抓取流程為以元數(shù)據(jù)來源站點URL列表(Site URL List)為初始入口、結(jié)合抓取歷史記錄(Fetch History),生成第一等級(level 1)的抓取列表(fetch list),然后在各分布式節(jié)點上創(chuàng)建并執(zhí)行第一等級(level 1)的抓取任務(wù)(task)根據(jù)抓取列表(fetch list)里的url逐個抓取html頁面,計算html頁面內(nèi)容的 MD5值,在抓取歷史記錄(Fetch History)中查找此url的記錄并比對MD5值A(chǔ))若上次成功抓取過url且MD5值與上次相同,則更新抓取歷史i^etch History、 延長此url的抓取周期,然后直接進(jìn)入下一 url的抓取處理;B)若未成功抓取過url或是MD5值與上次不同,則需要完成以下三步后再進(jìn)入下一 url的抓取處理Bi)若當(dāng)前抓取等級(fetch level)小于系統(tǒng)最大抓取等級(max fetch level), 則需解析出此html里的超鏈接(link);B2)如果當(dāng)前url與元數(shù)據(jù)映射(Metadata Mapping)中的元數(shù)據(jù)映射單元 (MetadataMappingUnit)的urlPrefix屬性匹配,則將此url及html頁面內(nèi)容放入元數(shù)據(jù) iH (Meta Data Source) ψ ;Β3)追加/更新抓取歷史(Fetch History)記錄,包括以下信息url,抓取等級 (fetch level),最近抓取狀態(tài),最近抓取時間,抓取周期,下次抓取時間=(最近抓取時間 +抓取周期);第一等級(level 1)的抓取任務(wù)(task)完成后,抓取任務(wù)(task)將返回解析 html所得的超鏈列表Qitml link list),抓取任務(wù)調(diào)度程序(抓取job)將根據(jù)超鏈列表 (html link list)、結(jié)合抓取歷史記錄(Fetch History)形成第二等級(level 2)的抓取列表(fetch list),創(chuàng)建并執(zhí)行下一個等級(next level)的抓取任務(wù)調(diào)度程序(抓取job), 依此迭代,直到達(dá)到系統(tǒng)指定的最大抓取等級(max level)才結(jié)束本輪抓取。步驟3 創(chuàng)建元數(shù)據(jù)生成job,對元數(shù)據(jù)源(Metadata Source)進(jìn)行映射化簡(Map Reduce)分布式處理,根據(jù)元數(shù)據(jù)映射定義(Meta Data Mapping)以及各業(yè)務(wù)應(yīng)用系統(tǒng)的定義的元數(shù)據(jù)XML定義XSD(Meta Data XML Schema Define)生成目標(biāo)元數(shù)據(jù)XML文件。如圖4所示,元數(shù)據(jù)生成步驟為1)從元數(shù)據(jù)源(Metadata Source)獲取一 html頁面內(nèi)容,將html格式化為可擴(kuò)展標(biāo)記語言格式(xml),以方便根據(jù)xpath來讀取指定節(jié)點值;2)根據(jù)頁面的URL在元數(shù)據(jù)映射定義(Metadata Mapping)中查找對應(yīng)的元數(shù)據(jù)映射單元(MetadataMappingUnit),對每個匹配的元數(shù)據(jù)映射單元(MetadataMappingUnit) 做如下步驟幻至步驟6)處理3)根據(jù)元數(shù)據(jù)映射單元(MetadataMappingUnit)的每一頂?shù)脑?xpath(itemSourceXpath)值,對源html頁面按xpath中獲取到一個節(jié)點列表(Node列表);4)結(jié)合業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言XML結(jié)構(gòu)定義元數(shù)據(jù) XSD(Metadata XSD),將步驟3)得到的節(jié)點列表(Node列表)中的每一列轉(zhuǎn)換為一個元數(shù)據(jù)XML對象;5)根據(jù)元數(shù)據(jù)映射單元(MetadataMappingUnit)的字段映射(FieldMappings) 定義,為元數(shù)據(jù)XML對象的各字段賦值如果指定了期望關(guān)聯(lián)的頁面url地址 (relevantPageURLExp),則根據(jù)期望關(guān)聯(lián)的頁面url地址(relevantPageURLExp)得出相關(guān)頁面URL并抓取相關(guān)頁面;根據(jù)期望的源xpath (sourceXpathExp)從源頁面或源頁面的相關(guān)頁面中得到xpath所對應(yīng)的節(jié)點值;如果指定了期望的值格式化(valuei^ormatExp),則進(jìn)一步對得到的節(jié)點值進(jìn)行格式化處理;將節(jié)點值賦給目標(biāo)xpath(targetXpath)所指定的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象(XML對象)的對應(yīng)字段上;6)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象(XML對象)序列化為可擴(kuò)展標(biāo)記語言(XML)文件并按應(yīng)用程序唯一編碼applD分目錄存儲;7)從元數(shù)據(jù)源(Metadata Source)中刪除此html頁面;8)重復(fù)步驟1)至步驟7,直至元數(shù)據(jù)源(Metadata Source)為空。該發(fā)明為元數(shù)據(jù)的采集提供了通用的、海量數(shù)據(jù)的分布式處理方法,為IPTV、互聯(lián)網(wǎng)電視平臺實現(xiàn)站內(nèi)搜索提供統(tǒng)一格式的元數(shù)據(jù),為第三方開發(fā)內(nèi)容聚合型互聯(lián)網(wǎng)電視增值應(yīng)用提供了必要的支撐服務(wù),從而降低第三方開發(fā)互聯(lián)網(wǎng)增值應(yīng)用的門檻和難度、縮短其開發(fā)周期。術(shù)語解釋SaaS軟件即服務(wù)或軟件運營URL統(tǒng)一資源定位符Site URL List元數(shù)據(jù)來源站點URL列表Meta Data Mapping 元數(shù)據(jù)映射Map Reduce映射化簡Internet/Intranet 因特網(wǎng)/企業(yè)內(nèi)部網(wǎng)Xml可擴(kuò)展標(biāo)記語言XSD全稱 XML khemas Definition (xml 結(jié)構(gòu)定義)Meta Data XML Schema Define元數(shù)據(jù) xml 結(jié)構(gòu)定義Xpath一種用于在XML文檔中進(jìn)行導(dǎo)航的
;五 ta πFetch History抓取歷史fetch list抓取列表task抓取任務(wù)level 1抓取第一等級0099]MD5消息摘要算法第五版0100]fetch level抓取等級0101]max fetch level最大抓取等級0102]link超鏈接0103]MetadataMappingUnit元數(shù)據(jù)映射單元0104]urlPrefix統(tǒng)一資源定位符前綴0105]Meta Data Source元數(shù)據(jù)源0106]html link list超鏈列表0107]抓取job抓取任務(wù)調(diào)度程序0108]next level下一個等級0109]Metadata Mapping數(shù)據(jù)映射定義0110]itemSourceXpath每一項的源xpath0111]Node列表節(jié)點列表0112]Metadata XSD元數(shù)據(jù)xsd0113]FieldMappings字段映射0114]re1evantPageUrIExp期望關(guān)聯(lián)的頁面url地址0115]sourceXpathExp期望的源xpath0116]valueFormatExp期望的值格式化0117]targetXpath目標(biāo)xpath0118]applD應(yīng)用程序唯一編碼0119]GUI圖形用戶接口0120]采集job采集的任務(wù)調(diào)度程序0121]Metadataltem元數(shù)據(jù)項0122]Node List節(jié)點列表0123]SOAP簡單對象訪問協(xié)議0124]FTP文件傳輸協(xié)議0125]可以理解的是,對本領(lǐng)域技術(shù)人員來說,對本發(fā)明的技術(shù)方案及發(fā)明構(gòu)思加以等
同替換或改變都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法,其特征是該方法的具體步驟為(1)各業(yè)務(wù)應(yīng)用系統(tǒng)通過互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的配置管理模塊配置提交元數(shù)據(jù)采集需求;(2)互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)采集組件模塊周期性地創(chuàng)建和執(zhí)行頁面采集任務(wù)調(diào)度程序、生成的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件;A讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,歸并各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集需求信息的輸入元數(shù)據(jù)來源站點URL列表和輸出元數(shù)據(jù)映射;B以輸入元數(shù)據(jù)來源站點URL列表為入口,創(chuàng)建并執(zhí)行抓取任務(wù)調(diào)度程序,進(jìn)行映射化簡分布式處理,從因特網(wǎng)/企業(yè)內(nèi)部網(wǎng)上抓取html頁面內(nèi)容、并結(jié)合元數(shù)據(jù)映射過濾出有用的元數(shù)據(jù)源頁面;C對元數(shù)據(jù)源頁面進(jìn)行映射化簡分布式處理,根據(jù)元數(shù)據(jù)映射以及各業(yè)務(wù)應(yīng)用系統(tǒng)的定義的元數(shù)據(jù)結(jié)構(gòu)定義,生成目標(biāo)元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件;(3)互聯(lián)網(wǎng)分布式元數(shù)據(jù)采集系統(tǒng)的元數(shù)據(jù)輸出模塊將元數(shù)據(jù)采集組件生成的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法,其特征是所述業(yè)務(wù)應(yīng)用系統(tǒng)元數(shù)據(jù)采集配置包括以下三個方面(1)元數(shù)據(jù)來源站點URL列表定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些web站點去抓取;(2)元數(shù)據(jù)結(jié)構(gòu)定義定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)的可擴(kuò)展標(biāo)記語言結(jié)構(gòu);(3)元數(shù)據(jù)映射具體定義業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)將從哪些URL的html源頁面上提取、 html源頁面字段與目標(biāo)元數(shù)據(jù)可擴(kuò)展標(biāo)記語言字段之間的xpath對應(yīng)關(guān)系。
3.根據(jù)權(quán)利要求1所述的互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法,其特征是在步驟B 中抓取流程為以元數(shù)據(jù)來源站點URL列表為初始入口、結(jié)合抓取歷史記錄,生成第一等級的抓取列表,然后在各分布式節(jié)點上創(chuàng)建并執(zhí)行第一等級的抓取任務(wù)根據(jù)抓取列表里的URL逐個抓取html頁面,計算html頁面內(nèi)容的MD5值,在抓取歷史中查找此URL的記錄并比對MD5值若上次成功抓取過URL且MD5值與上次相同,則更新抓取歷史記錄、延長此URL的抓取周期,然后直接進(jìn)入下一 URL的抓取處理;若未成功抓取過URL或是MD5值與上次不同,則需要完成以下三步后再進(jìn)入下一 URL 的抓取處理Bi)若當(dāng)前抓取等級小于系統(tǒng)的最大抓取等級,則需解析出此html里的超鏈接;B2)如果當(dāng)前URL與元數(shù)據(jù)映射中的元數(shù)據(jù)映射單元的統(tǒng)一資源定位符前綴屬性匹配,則將此URL及html頁面內(nèi)容放入元數(shù)據(jù)源中;B3)追加/更新抓取歷史記錄,包括以下信息URL,抓取等級,最近抓取狀態(tài),最近抓取時間,抓取周期,下次抓取時間=最近抓取時間+抓取周期;第一等級的抓取任務(wù)完成后,抓取任務(wù)將返回解析html所得的超鏈列表,抓取任務(wù)調(diào)度程序j將根據(jù)超鏈列表、結(jié)合抓取歷史記錄形成第二等級的抓取列表,創(chuàng)建并執(zhí)行下一個等級的抓取任務(wù)調(diào)度程序,依此迭代,直到達(dá)到系統(tǒng)指定的最大抓取等級才結(jié)束本輪抓取。
4.根據(jù)權(quán)利要求1所述的互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法,其特征是所述步驟C包括如下步驟1)從元數(shù)據(jù)源獲取一html頁面內(nèi)容,將html格式化為可擴(kuò)展標(biāo)記語言格式,根據(jù) xpath來讀取指定節(jié)點值;2)根據(jù)頁面的URL在元數(shù)據(jù)映射定義中查找對應(yīng)的元數(shù)據(jù)映射單元,對每個匹配的元數(shù)據(jù)映射單元做如下步驟3)至步驟6)處理3)根據(jù)元數(shù)據(jù)映射單元的每一頂?shù)脑磝path值,對源html頁面按xpath中獲取到一個節(jié)點列表;4)結(jié)合業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言結(jié)構(gòu)定義元數(shù)據(jù)XSD,將步驟3)得到的節(jié)點列表中的每一列轉(zhuǎn)換為一個元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象;5)根據(jù)元數(shù)據(jù)映射單元的字段映射定義,為元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象的各字段賦值如果指定了期望關(guān)聯(lián)的頁面url地址,則根據(jù)期望關(guān)聯(lián)的頁面url地址得出相關(guān)頁面 URL并抓取相關(guān)頁面;根據(jù)期望的源xpath從源頁面或源頁面的相關(guān)頁面中得到xpath所對應(yīng)的節(jié)點值;如果指定了期望的值格式化,則進(jìn)一步對得到的節(jié)點值進(jìn)行格式化處理; 將節(jié)點值賦給目標(biāo)xpath所指定的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象的對應(yīng)字段上;6)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言對象序列化為可擴(kuò)展標(biāo)記語言文件并按應(yīng)用程序唯一編碼分目錄存儲;7)從元數(shù)據(jù)源中刪除此html頁面;8)重復(fù)步驟1)至步驟7),直至元數(shù)據(jù)源為空。
5. 一種采用如權(quán)利要求1所述互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理方法的系統(tǒng),其特征是該系統(tǒng)包括配置管理圖形用戶接口模塊、元數(shù)據(jù)采集組件模塊和元數(shù)據(jù)輸出模塊,其中,配置管理圖形用戶接口模塊為業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置提供圖形用戶接口界面,采集分布式組件參數(shù)配置,元數(shù)據(jù)采集和輸入日志查看;元數(shù)據(jù)采集組件模塊元數(shù)據(jù)采集的分布式組件,讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,周期性地創(chuàng)建并分布式執(zhí)行采集任務(wù)調(diào)度程序、生成各業(yè)務(wù)應(yīng)用系統(tǒng)的所需要的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件;元數(shù)據(jù)輸出模塊負(fù)責(zé)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng)。
全文摘要
本發(fā)明涉及一種互聯(lián)網(wǎng)元數(shù)據(jù)的分布式采集處理系統(tǒng)及方法,該系統(tǒng)包括配置管理圖形用戶接口模塊、元數(shù)據(jù)采集組件模塊和元數(shù)據(jù)輸出模塊,配置管理圖形用戶接口模塊采集分布式組件參數(shù)配置,元數(shù)據(jù)采集和輸入日志查看;元數(shù)據(jù)采集組件模塊讀取各業(yè)務(wù)應(yīng)用系統(tǒng)的元數(shù)據(jù)采集配置,周期性地創(chuàng)建并分布式執(zhí)行采集任務(wù)調(diào)度程序、生成各業(yè)務(wù)應(yīng)用系統(tǒng)的所需要的元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件;元數(shù)據(jù)輸出模塊負(fù)責(zé)將元數(shù)據(jù)可擴(kuò)展標(biāo)記語言文件輸出給各業(yè)務(wù)應(yīng)用系統(tǒng)。本發(fā)明有益的效果是:為互聯(lián)網(wǎng)的元數(shù)據(jù)采集提供了通用、開放式的分布式組件和服務(wù),為進(jìn)一步實現(xiàn)互聯(lián)網(wǎng)電視的站內(nèi)精準(zhǔn)搜索、內(nèi)容聚合型應(yīng)用的垂直搜索提供統(tǒng)一規(guī)范的數(shù)據(jù)源。
文檔編號G06F17/30GK102521232SQ20111035149
公開日2012年6月27日 申請日期2011年11月9日 優(yōu)先權(quán)日2011年11月9日
發(fā)明者萬超, 付文敬, 楊細(xì)強(qiáng) 申請人:Ut斯達(dá)康通訊有限公司