專利名稱:多任務(wù)解析系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多任務(wù)解析系統(tǒng)及方法,尤其涉及一種XQuery 多任務(wù)解析系統(tǒng)及方法。
背景技術(shù):
隨著XML (Extensible Markup Language,可擴(kuò)展標(biāo)i己i吾言)越 來(lái)越成熟,目前已成為數(shù)據(jù)存儲(chǔ)、共享及處理的主要形式,需要有新 的工具和系統(tǒng)來(lái)提高XML的靈活性。其中一個(gè)需要提高的重要方面 是怎樣提高查詢XML數(shù)據(jù)的能力。具體地說(shuō),隨著互聯(lián)網(wǎng)絡(luò)的普及, 許多數(shù)據(jù)都以XML格式存在于網(wǎng)頁(yè)中,怎樣從這些XML網(wǎng)頁(yè)中查 詢想要的數(shù)據(jù)變得越來(lái)越重要。
XQuery是用來(lái)查詢和操縱XML數(shù)據(jù)或任何能以XML形式出現(xiàn) 的數(shù)據(jù),如關(guān)系型數(shù)據(jù)庫(kù)。XQuery提供了解析XML的功能,可以 對(duì)查詢?nèi)蝿?wù)進(jìn)行解析,但由于網(wǎng)絡(luò)信息量巨大而且復(fù)雜,XQuery對(duì) 查詢?nèi)蝿?wù)的解析效率有待提高。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種多任務(wù)解析系統(tǒng),其可對(duì)多個(gè)任 務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析。
鑒于以上內(nèi)容,還有必要提供一種多任務(wù)解析方法,其可對(duì)多個(gè) 任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析。
一種多任務(wù)解析系統(tǒng),包括任務(wù)管理計(jì)算機(jī)、排程服務(wù)器、腳本 解析服務(wù)器及數(shù)據(jù)庫(kù),所述數(shù)據(jù)庫(kù)中存儲(chǔ)有XQuery腳本文件,所述 Xquery腳本文件中設(shè)置有每一個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn), 所述任務(wù)管理計(jì)算機(jī)包括任務(wù)設(shè)置模塊,用于設(shè)置多個(gè)任務(wù)的 XQuery腳本文件及所述任務(wù)的運(yùn)行時(shí)間,并將XQuery腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)中;注冊(cè)模塊,用于將所述任務(wù)注冊(cè)到排程服務(wù)器中;所 述排程服務(wù)器包括發(fā)送模塊,用于在到達(dá)所述任務(wù)的運(yùn)行時(shí)間后, 向腳本解析服務(wù)器發(fā)送任務(wù)請(qǐng)求;所述腳本解析服務(wù)器包括腳本載 入模塊,用于從數(shù)據(jù)庫(kù)中載入所述任務(wù)對(duì)應(yīng)的XQuery腳本文件;腳 本解析模塊,用于根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng)需要 解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)所述多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解 析,從網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù);及合并模塊,用于將每個(gè)任 務(wù)的XQuery腳本文件解析得到的數(shù)據(jù)合并在一起,并將每個(gè)任務(wù)的 數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
一種多任務(wù)解析方法,包括如下步驟設(shè)置多個(gè)任務(wù)的XQuery 腳本文件及所述任務(wù)的運(yùn)行時(shí)間,并將XQuery腳本文件存儲(chǔ)到數(shù)據(jù) 庫(kù)中;將所述任務(wù)注冊(cè)到排程服務(wù)器中;在到達(dá)所述任務(wù)的運(yùn)行時(shí)間 后,排程服務(wù)器向腳本解析服務(wù)器發(fā)送任務(wù)請(qǐng)求;腳本解析服務(wù)器接 收所述任務(wù)請(qǐng)求后,從數(shù)據(jù)庫(kù)中載入所述任務(wù)對(duì)應(yīng)的XQuery腳本文 件;根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及 節(jié)點(diǎn),對(duì)所述多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析,從網(wǎng)頁(yè)中 獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù);將每個(gè)任務(wù)的XQuery腳本文件解析得到 的數(shù)據(jù)合并在一起,并將每個(gè)任務(wù)的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
相較于現(xiàn)有技術(shù),所述的多任務(wù)解析系統(tǒng)及方法,可以對(duì)多個(gè)任 務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析,提高了任務(wù)解析的效率。
圖1是本發(fā)明多任務(wù)解析系統(tǒng)較佳實(shí)施例的系統(tǒng)架構(gòu)圖。
圖2是本發(fā)明多任務(wù)解析系統(tǒng)較佳實(shí)施例的功能模塊關(guān)聯(lián)圖。
圖3是本發(fā)明多任務(wù)解析方法較佳實(shí)施例的流程圖。
具體實(shí)施例方式
如圖1所示,是本發(fā)明多任務(wù)解析系統(tǒng)較佳實(shí)施例的系統(tǒng)架構(gòu) 圖。該系統(tǒng)主要包括任務(wù)管理計(jì)算機(jī)10、排程服務(wù)器20、腳本解析服務(wù)器30、數(shù)據(jù)庫(kù)40及網(wǎng)絡(luò)50。
所述數(shù)據(jù)庫(kù)40連接有任務(wù)管理計(jì)算機(jī)10和腳本解析服務(wù)器30, 用于存儲(chǔ)XQuery腳本文件及腳本解析服務(wù)器30對(duì)任務(wù)進(jìn)行解析后 得到的數(shù)據(jù)。所述XQuery腳本文件中設(shè)置有每一個(gè)任務(wù)對(duì)應(yīng)需要解 析的網(wǎng)頁(yè)及節(jié)點(diǎn)(該節(jié)點(diǎn)代表網(wǎng)頁(yè)所包含的數(shù)據(jù)類型),對(duì)該XQuery 腳本文件進(jìn)行解析,可以獲取這些網(wǎng)頁(yè)中該節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù),所述網(wǎng) 頁(yè)可以XML格式。由于網(wǎng)頁(yè)中含有大量的數(shù)據(jù),有些數(shù)據(jù)是不重要 的(比如一些廣告),在對(duì)網(wǎng)頁(yè)中的數(shù)據(jù)進(jìn)行分析時(shí),需要過(guò)濾那些 不重要的數(shù)據(jù),只獲取查詢?nèi)蝿?wù)想要查詢的數(shù)據(jù)。通過(guò)在XQuery腳 本文件中設(shè)置每一個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),當(dāng)腳本解析服 務(wù)器30對(duì)該XQuery腳本文件進(jìn)行解析時(shí),只獲取網(wǎng)頁(yè)中該節(jié)點(diǎn)對(duì) 應(yīng)的數(shù)據(jù)。
所述任務(wù)管理計(jì)算機(jī)10連接有排程服務(wù)器20,用于設(shè)置不同任 務(wù)的XQuery腳本文件及該任務(wù)的運(yùn)行時(shí)間,其中, 一個(gè)任務(wù)可以包 括多個(gè)XQuery腳本文件,對(duì)任務(wù)進(jìn)行解析即對(duì)該任務(wù)對(duì)應(yīng)的XQuery 腳本文件進(jìn)行解析。所述任務(wù)可以是一個(gè)查詢請(qǐng)求,例如,定期從網(wǎng) 絡(luò)50連接的網(wǎng)頁(yè)中搜尋所需的技術(shù)情報(bào),所述網(wǎng)絡(luò)50可以是國(guó)際互 聯(lián)網(wǎng)絡(luò)或局域網(wǎng)絡(luò)。當(dāng)設(shè)定好一個(gè)任務(wù)后,再將該任務(wù)注冊(cè)到排程服 務(wù)器20中。所述排程服務(wù)器20用于管理排程,其中, 一個(gè)排程可以 包括多個(gè)任務(wù),用于排定任務(wù)管理計(jì)算機(jī)10設(shè)置的任務(wù)的運(yùn)行時(shí)間, 當(dāng)?shù)竭_(dá)某一任務(wù)的運(yùn)行時(shí)間后,就向腳本解析服務(wù)器30發(fā)送一個(gè)任 務(wù)請(qǐng)求。
所述腳本解析服務(wù)器30連接有排程服務(wù)器20和網(wǎng)絡(luò)50,用于 接收排程服務(wù)器20發(fā)送的任務(wù)請(qǐng)求,對(duì)該任務(wù)進(jìn)行解析,即根據(jù) XQuery腳本文件中設(shè)置的該任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì) XQuery腳本文件進(jìn)行解析,獲取網(wǎng)頁(yè)中該節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。通過(guò)解 析該任務(wù)從網(wǎng)絡(luò)50的網(wǎng)頁(yè)中獲取該任務(wù)需要查詢的數(shù)據(jù),然后將查 詢得到的數(shù)據(jù)保存在數(shù)據(jù)庫(kù)40中。如果多個(gè)任務(wù)的運(yùn)行時(shí)間相同, 腳本解析服務(wù)器30會(huì)同時(shí)對(duì)多個(gè)任務(wù)的XQuery腳本文件進(jìn)行解析。在本實(shí)施例中,將以多個(gè)4壬務(wù)的運(yùn)4亍時(shí)間相同進(jìn)4亍描述。
如圖2所示,是本發(fā)明多任務(wù)解析系統(tǒng)較佳實(shí)施例的功能模塊關(guān) 聯(lián)圖。所述任務(wù)管理計(jì)算機(jī)10包括任務(wù)設(shè)置模塊110及注冊(cè)模塊111。 所述排程服務(wù)器20包括發(fā)送^^莫塊210。所述腳本解析服務(wù)器30包括 腳本載入模塊310,腳本解析模塊311及合并模塊312。本發(fā)明所稱 的模塊是完成一特定功能的計(jì)算機(jī)程序段,比程序更適合于描述軟件 在計(jì)算機(jī)中的執(zhí)行過(guò)程,因此在本發(fā)明對(duì)軟件描述中都以模塊描述。
首先,用戶通過(guò)任務(wù)設(shè)置模塊110在任務(wù)管理計(jì)算機(jī)10中設(shè)置 多個(gè)任務(wù)的XQuery腳本文件及所述任務(wù)的運(yùn)行時(shí)間,并將XQuery 腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)40中。所述任務(wù)的運(yùn)行時(shí)間可以設(shè)定為每天 的固定時(shí)間點(diǎn),其中, 一個(gè)任務(wù)可以包4舌多個(gè)XQuery腳本文件,所 述XQuery腳本文件中設(shè)置有每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn)。 然后,注冊(cè)模塊111將所述任務(wù)注冊(cè)到排程服務(wù)器20中。當(dāng)?shù)竭_(dá)所 述任務(wù)的運(yùn)行時(shí)間后,排程服務(wù)器20中的發(fā)送模塊210向腳本解析 服務(wù)器30發(fā)送任務(wù)請(qǐng)求。腳本解析服務(wù)器30接收所述任務(wù)請(qǐng)求后, 腳本載入模塊310從數(shù)據(jù)庫(kù)40中載入所述任務(wù)對(duì)應(yīng)的XQuery腳本 文件。
腳本解析模塊311根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng) 需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解 析,從網(wǎng)絡(luò)50的網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
當(dāng)腳本解析模塊311解析完所述任務(wù)對(duì)應(yīng)需要解析的XQuery腳 本文件后,合并模塊312將每個(gè)任務(wù)的XQuery腳本文件解析得到的 數(shù)據(jù)合并在一起,得到每個(gè)任務(wù)所需的數(shù)據(jù),并將每個(gè)任務(wù)的數(shù)據(jù)存 儲(chǔ)到數(shù)據(jù)庫(kù)40中。例如,任務(wù)A包括腳本script 1及script 2,任務(wù) B包括腳本script 3及script 4。當(dāng)腳本解析模塊311解析完腳本script 1 、 script 2、 script 3及script 4,合并模塊312將任務(wù)A的腳本script 1 及script 2解析得到的數(shù)據(jù)合并在一起,得到任務(wù)A所需的數(shù)據(jù),將 任務(wù)B的腳本script 3及script 4解析得到的數(shù)據(jù)合并在一起,得到任 務(wù)B所需的數(shù)據(jù),并將任務(wù)A和任務(wù)B的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)40中。在對(duì)XQuery腳本文件進(jìn)行解析時(shí),腳本解析才莫塊311會(huì)判斷網(wǎng) 絡(luò)連接是否中斷,當(dāng)出現(xiàn)網(wǎng)絡(luò)連接中斷的情形時(shí),腳本解析模塊311 會(huì)重新開(kāi)始解析XQuery腳本文件。
如圖3所示,是本發(fā)明多任務(wù)解析方法較佳實(shí)施例的流程圖。首 先,步驟S401,用戶通過(guò)任務(wù)設(shè)置模塊IIO在任務(wù)管理計(jì)算機(jī)10中 設(shè)置多個(gè)任務(wù)的XQuery腳本文件及所述任務(wù)的運(yùn)行時(shí)間,并將 XQuery腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)40中。所述任務(wù)的運(yùn)行時(shí)間可以設(shè)定 為每天的固定時(shí)間點(diǎn),其中, 一個(gè)任務(wù)可以包括多個(gè)XQuery腳本文 件,所述XQuery腳本文件中設(shè)置有每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及 節(jié)點(diǎn)。
步驟S402,注冊(cè)模塊111將所述任務(wù)注冊(cè)到排程服務(wù)器20中。
步驟S403 ,當(dāng)?shù)竭_(dá)所述任務(wù)的運(yùn)行時(shí)間后,排程服務(wù)器20中的 發(fā)送模塊210向腳本解析服務(wù)器30發(fā)送任務(wù)請(qǐng)求。
步驟S404,腳本解析服務(wù)器30接收所述任務(wù)請(qǐng)求后,腳本載入 模塊310從數(shù)據(jù)庫(kù)40中載入所述任務(wù)對(duì)應(yīng)的XQuery腳本文件。
步驟S405,腳本解析模塊311根據(jù)XQuery腳本文件中設(shè)置的每 個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)多個(gè)任務(wù)的XQuery腳本文件 同時(shí)進(jìn)行解析,從網(wǎng)絡(luò)50的網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
步驟S406,當(dāng)腳本解析模塊311解析完所述任務(wù)對(duì)應(yīng)需要解析 的XQuery腳本文件后,合并模塊312將每個(gè)任務(wù)的XQuery腳本文 件解析得到的數(shù)據(jù)合并在一起,得到每個(gè)任務(wù)所需的數(shù)據(jù),并將每個(gè) 任務(wù)的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)40中。
在對(duì)XQuery腳本文件進(jìn)行解析時(shí),腳本解析模塊311會(huì)判斷網(wǎng) 絡(luò)連接是否中斷,當(dāng)出現(xiàn)網(wǎng)絡(luò)連接中斷的情形時(shí),腳本解析模塊311 會(huì)重新開(kāi)始解析XQuery腳本文件。
權(quán)利要求
1. 一種多任務(wù)解析系統(tǒng),包括任務(wù)管理計(jì)算機(jī)、排程服務(wù)器、腳本解析服務(wù)器及數(shù)據(jù)庫(kù),其特征在于,所述數(shù)據(jù)庫(kù)中存儲(chǔ)有XQuery腳本文件,所述Xquery腳本文件中設(shè)置有待解析的網(wǎng)頁(yè)及節(jié)點(diǎn),所述任務(wù)管理計(jì)算機(jī)包括任務(wù)設(shè)置模塊,用于設(shè)置多個(gè)任務(wù)的XQuery腳本文件及所述多個(gè)任務(wù)的運(yùn)行時(shí)間,并將XQuery腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)中,每一任務(wù)包括一個(gè)或多個(gè)XQuery腳本文件;及注冊(cè)模塊,用于將所述多個(gè)任務(wù)注冊(cè)到排程服務(wù)器中;所述排程服務(wù)器包括發(fā)送模塊,用于在到達(dá)所述多個(gè)任務(wù)的運(yùn)行時(shí)間后,向腳本解析服務(wù)器發(fā)送任務(wù)請(qǐng)求;所述腳本解析服務(wù)器包括腳本載入模塊,用于從數(shù)據(jù)庫(kù)中載入所述多個(gè)任務(wù)對(duì)應(yīng)的XQuery腳本文件;腳本解析模塊,用于根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)所述多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析,從網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù);及合并模塊,用于將每個(gè)任務(wù)的XQuery腳本文件解析得到的數(shù)據(jù)合并在一起,并將每個(gè)任務(wù)的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
2. 如權(quán)利要求1所述的多任務(wù)解析系統(tǒng),其特征在于,所述多個(gè)任務(wù)的運(yùn)行時(shí)間相同。
3. 如權(quán)利要求1所述的多任務(wù)解析系統(tǒng),其特征在于,所述腳本解析模塊還用于在對(duì)Xquery腳本文件進(jìn)行解析時(shí),判斷網(wǎng)絡(luò)連接是否中斷,如果網(wǎng)絡(luò)連接中斷,則重新開(kāi)始解析Xquery腳本文件。
4. 一種多任務(wù)解析方法,其特征在于,該方法包括如下步驟設(shè)置多個(gè)任務(wù)的XQuery腳本文件及所述多個(gè)任務(wù)的運(yùn)行時(shí)間,并將XQuery腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)中,每一任務(wù)包括一個(gè)或多個(gè)XQuery腳本文件;將所述多個(gè)任務(wù)注冊(cè)到排程服務(wù)器中;在到達(dá)所述多個(gè)任務(wù)的運(yùn)行時(shí)間后,排程服務(wù)器向腳本解析服務(wù)器發(fā)送任務(wù)請(qǐng)求;腳本解析服務(wù)器接收所述任務(wù)請(qǐng)求后,從數(shù)據(jù)庫(kù)中載入所述多個(gè)任務(wù)對(duì)應(yīng)的XQuery腳本文件;根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)所述多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析,從網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù);及將每個(gè)任務(wù)的XQuery腳本文件解析得到的數(shù)據(jù)合并在一起,并將每個(gè)任務(wù)的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
5. 如權(quán)利要求4所述的多任務(wù)解析方法,其特征在于,所述多個(gè)任務(wù)的運(yùn)行時(shí)間相同。
6. 如權(quán)利要求4所述的多任務(wù)解析方法,其特征在于,在對(duì)Xquery腳本文件進(jìn)行解析時(shí),如果網(wǎng)絡(luò)連接中斷,則重新開(kāi)始解析Xquery腳本文件。
全文摘要
一種多任務(wù)解析系統(tǒng)及方法,該方法包括如下步驟設(shè)置多個(gè)任務(wù)的XQuery腳本文件及所述任務(wù)的運(yùn)行時(shí)間,并將XQuery腳本文件存儲(chǔ)到數(shù)據(jù)庫(kù)中;將所述任務(wù)注冊(cè)到排程服務(wù)器中;在到達(dá)所述任務(wù)的運(yùn)行時(shí)間后,排程服務(wù)器向腳本解析服務(wù)器發(fā)送任務(wù)請(qǐng)求;腳本解析服務(wù)器接收所述任務(wù)請(qǐng)求后,從數(shù)據(jù)庫(kù)中載入所述任務(wù)對(duì)應(yīng)的XQuery腳本文件;根據(jù)XQuery腳本文件中設(shè)置的每個(gè)任務(wù)對(duì)應(yīng)需要解析的網(wǎng)頁(yè)及節(jié)點(diǎn),對(duì)所述多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析,從網(wǎng)頁(yè)中獲取每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù);將每個(gè)任務(wù)的XQuery腳本文件解析得到的數(shù)據(jù)合并在一起,并將每個(gè)任務(wù)的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。利用本發(fā)明可以對(duì)多個(gè)任務(wù)的XQuery腳本文件同時(shí)進(jìn)行解析。
文檔編號(hào)G06F17/30GK101206649SQ20061015771
公開(kāi)日2008年6月25日 申請(qǐng)日期2006年12月20日 優(yōu)先權(quán)日2006年12月20日
發(fā)明者盧秋樺, 葉建發(fā), 李忠一, 陳旭純 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司