專利名稱:一種多服務(wù)器分頁查詢的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于服務(wù)器的分頁查詢技術(shù),尤其涉及一種多服務(wù)器分頁查詢的裝置及方法。
背景技術(shù):
目前,同時(shí)在多個(gè)服務(wù)器進(jìn)行分頁查詢時(shí),一般根據(jù)當(dāng)前服務(wù)器查詢的結(jié)果,來獲取下一個(gè)服務(wù)器查詢需要的條件,從而對(duì)下一個(gè)服務(wù)器再次進(jìn)行分頁查詢。例如,需要在服務(wù)器A、B上進(jìn)行查詢,查詢條件為Q,需要對(duì)查詢結(jié)果進(jìn)行分頁,每頁顯示50條數(shù)據(jù),服務(wù)器A滿足查詢條件Q的數(shù)據(jù)有20條,服務(wù)器B滿足查詢條件Q的數(shù)據(jù)有60條,若先查詢服務(wù)器A,則需要根據(jù)服務(wù)器A的查詢結(jié)果,即服務(wù)器A上可以取到20條數(shù)據(jù),作為對(duì)服務(wù)器 B進(jìn)行查詢的條件,從而才能確定服務(wù)器B需要從60條數(shù)據(jù)中取出前30條數(shù)據(jù),以保證每頁顯示50條數(shù)據(jù),依此對(duì)服務(wù)器B進(jìn)行分頁查詢。如此操作,若待查詢的服務(wù)器較多,則用戶需要同時(shí)關(guān)注多個(gè)服務(wù)器以及其返回的結(jié)果,操作比較復(fù)雜,操作出錯(cuò)的可能性較大。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種多服務(wù)器分頁查詢的裝置,簡(jiǎn)化了對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢的操作流程,使得用戶可以簡(jiǎn)單、高效的對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢。本發(fā)明的另一目的是提出一種多服務(wù)器分頁查詢的方法,簡(jiǎn)化了對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢的操作流程,使得用戶可以簡(jiǎn)單、高效的對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢。為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的一種多服務(wù)器分頁查詢的裝置,該裝置包括代理模塊,用于為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表;并根據(jù)用戶輸入的查詢命令,從各服務(wù)器處理對(duì)象獲取各服務(wù)器滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù);并用于創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象中的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;還用于根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,在相應(yīng)的服務(wù)器處理對(duì)象上設(shè)置需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并通知相應(yīng)的服務(wù)器處理對(duì)象從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù);所述各服務(wù)器處理對(duì)象,用于根據(jù)代理模塊下發(fā)的查詢命令,獲取對(duì)應(yīng)服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù)在保存后返回給代理模塊;并用于根據(jù)代理模塊的通知,依據(jù)需要從對(duì)應(yīng)的服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)并返回給代理模塊。一種多服務(wù)器分頁查詢的方法,包括以下步驟
步驟A、為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,并按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表;所述各服務(wù)器處理對(duì)象根據(jù)查詢命令,獲取該服務(wù)器處理對(duì)象對(duì)應(yīng)的服務(wù)器中滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)并進(jìn)行保存;創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;步驟B、根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,確定其映射的服務(wù)器處理對(duì)象需要從對(duì)應(yīng)服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并根據(jù)所述的開始位置以及數(shù)據(jù)量從對(duì)應(yīng)的服務(wù)器獲取數(shù)據(jù)。本發(fā)明的有益效果為,通過分頁查詢裝置來管理對(duì)多個(gè)服務(wù)器的分頁查詢,用戶僅需面對(duì)分頁查詢裝置而不用再關(guān)心具體有多少個(gè)服務(wù)器,就可以實(shí)現(xiàn)對(duì)多個(gè)服務(wù)器的分頁查詢,從而簡(jiǎn)化了對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢的操作流程,使得用戶可以簡(jiǎn)單、高效的對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢。
圖1為本發(fā)明實(shí)施例的裝置結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例的方法流程圖;圖3為本發(fā)明實(shí)施例的分頁查詢流程圖;圖4為本發(fā)明實(shí)施例的映射關(guān)系示意圖;圖5為本發(fā)明實(shí)施例的推廣應(yīng)用結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下通過具體實(shí)施例并參見附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明通過分頁查詢裝置來管理對(duì)多個(gè)服務(wù)器的分頁查詢,從用戶的角度來看, 僅需面對(duì)分頁查詢裝置而不再關(guān)心具體是多少個(gè)服務(wù)器以及如何對(duì)這些服務(wù)器進(jìn)行分頁查詢操作。分頁查詢裝置包括代理模塊和服務(wù)器處理對(duì)象,各服務(wù)器處理對(duì)象由公共的模板類生成,也就是說,存在一個(gè)用于與服務(wù)器建立連接、進(jìn)行查詢操作的模板,可供不同的服務(wù)器使用;對(duì)于不同的服務(wù)器,根據(jù)服務(wù)器提供的與服務(wù)器連接相關(guān)的信息,包括IP地址、 端口、服務(wù)器名稱等,應(yīng)用該模板生成不同的服務(wù)器處理對(duì)象,從而使得各個(gè)服務(wù)器處理對(duì)象能夠與其服務(wù)器在協(xié)議上、屬性上一一對(duì)應(yīng),并使得服務(wù)器處理對(duì)象通過與服務(wù)器適應(yīng)的網(wǎng)絡(luò)協(xié)議(比如TCP、IP等)與其進(jìn)行交互。本發(fā)明的裝置結(jié)構(gòu)如圖1所示,一種多服務(wù)器分頁查詢的裝置,包括代理模塊 101和服務(wù)器處理對(duì)象102,其中代理模塊101,包括服務(wù)器處理對(duì)象管理單元,用于為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,并按順序?qū)⒏鞣?wù)器處理對(duì)象的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)排列成一個(gè)有序表;
用戶命令接收單元,用于接收用戶的查詢命令;服務(wù)器處理對(duì)象交互單元,用于將接收到的用戶查詢命令下發(fā)給各服務(wù)器處理對(duì)象中的交互單元,接收各服務(wù)器處理對(duì)象返回的對(duì)應(yīng)服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù)并交給映射 處理單元;并用于根據(jù)映射處理單元產(chǎn)生的在相應(yīng)的服務(wù)器處理對(duì)象上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,通知并接收相應(yīng)的服務(wù)器處理對(duì)象中的交互單元從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù);映射處理單元,創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,獲得在相應(yīng)的服務(wù)器處理對(duì)象上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并交給服務(wù)器處理對(duì)象交互單元;所述各服務(wù)器處理對(duì)象102,包括交互單元,用于根據(jù)代理模塊的服務(wù)器處理對(duì)象交互單元的查詢命令,與對(duì)應(yīng)的服務(wù)器建立連接,從對(duì)應(yīng)服務(wù)器獲取滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù),保存在存儲(chǔ)單元中并返回給代理模塊中的服務(wù)器處理對(duì)象交互單元;并用于接收代理模塊的服務(wù)器處理對(duì)象交互單元的在對(duì)應(yīng)服務(wù)器上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置信息后,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)返回給代理模塊的服務(wù)器處理對(duì)象交互單元;存儲(chǔ)單元,用于存儲(chǔ)從對(duì)應(yīng)服務(wù)器獲取的滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)。進(jìn)一步地,所述代理模塊101,用戶命令接收單元還用于接收用戶的翻頁請(qǐng)求,服務(wù)器處理對(duì)象交互單元將接收到的用戶翻頁請(qǐng)求下發(fā)給各服務(wù)器處理對(duì)象中的交互單元, 映射處理單元根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,在相應(yīng)的服務(wù)器處理對(duì)象上設(shè)置需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并交給服務(wù)器處理對(duì)象交互單元;所述服務(wù)器處理對(duì)象102,交互單元還用于根據(jù)代理模塊的服務(wù)器處理對(duì)象交互單元的翻頁請(qǐng)求,依據(jù)需要從對(duì)應(yīng)的服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)并返回給代理模塊的服務(wù)器處理對(duì)象交互單元。本發(fā)明的方法流程如圖2所示,一種多服務(wù)器分頁查詢的方法,包括以下步驟步驟201 獲取用戶的查詢命令,并將查詢命令和查詢命令中包含的查詢條件一并下發(fā)給預(yù)先生成的各服務(wù)器處理對(duì)象。步驟202 根據(jù)查詢命令,各服務(wù)器處理對(duì)象與其對(duì)應(yīng)服務(wù)器建立連接,并從對(duì)應(yīng)服務(wù)器獲取滿足查詢條件的數(shù)據(jù)總數(shù)以及數(shù)據(jù)起始位置。服務(wù)器處理對(duì)象與待查詢的服務(wù)器一一對(duì)應(yīng),各個(gè)待查詢的服務(wù)器上滿足查詢條件的數(shù)據(jù)總數(shù)及數(shù)據(jù)起始位置被記錄在對(duì)應(yīng)的服務(wù)器處理對(duì)象中。步驟203 代理模塊根據(jù)上述各服務(wù)器處理對(duì)象獲取的數(shù)據(jù)總數(shù)及數(shù)據(jù)起始位置,按順序?qū)⒏鱾€(gè)服務(wù)器處理對(duì)象排列成一個(gè)有序表,所述有序表中,各個(gè)服務(wù)器處理對(duì)象至于按什么順序排列并不重要。所述按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表,是指根據(jù)預(yù)先設(shè)定的順序?qū)⒏鞣?wù)器處理對(duì)象中的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)排列成有序表。
創(chuàng)建對(duì)有序表進(jìn)行數(shù)據(jù)位置映射的位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和,從而,位置映射表的總長(zhǎng)度為所有服務(wù)器上滿足查詢條件的數(shù)據(jù)總數(shù)。進(jìn)行上述的數(shù)據(jù)位置映射后,相當(dāng)于將分散在各個(gè)服務(wù)器上符合查詢條件的數(shù)據(jù)全部集中在位置映射表中,形成一個(gè)整體,而實(shí)際上并不涉及服務(wù)器上符合查詢條件的數(shù)據(jù)的移動(dòng)、存儲(chǔ)。為所創(chuàng)建位置映射表建立游標(biāo),相當(dāng)于一個(gè)指針,標(biāo)示數(shù)據(jù)位置。如圖4所示,圖4 示出了位置映射表與服務(wù)器映射的原理圖。假設(shè)服務(wù)器A、B、C對(duì)應(yīng)有A、B、C三個(gè)服務(wù)器處理對(duì)象,服務(wù)器A中滿足查詢條件的數(shù)據(jù)有20條,服務(wù)器B中滿足查詢條件的數(shù)據(jù)有10 條,服務(wù)器C中滿足查詢條件的數(shù)據(jù)有50條,則位置映射表的指針開始位置agent_beg = 0 映射到服務(wù)器A處理對(duì)象的Sa_beg位置,指針結(jié)束位置agent_end = sa_end+sb_end+sc_ end,即agent_end = 80,為所有服務(wù)器上滿足查詢條件的數(shù)據(jù)總數(shù)。若當(dāng)前游標(biāo)位置為 agent_pos = 0,則映射到服務(wù)器A處理對(duì)象的sa_beg位置。作為實(shí)施方式之一,上述服務(wù)器處理對(duì)象可以為列表映射形式,列表的初始位置映射到服務(wù)器上滿足查詢條件的數(shù)據(jù)序號(hào)初始位置,列表的第二位置映射到服務(wù)器上滿足查詢條件的第二數(shù)據(jù)序號(hào)位置....,如此依次對(duì)應(yīng),列表的結(jié)束位置映射到服務(wù)器上滿足查詢條件的數(shù)據(jù)序號(hào)最末位置,列表的長(zhǎng)度為所述該服務(wù)器上滿足查詢條件數(shù)據(jù)總數(shù)。有序表則將各個(gè)列表連接起來,有序表中各服務(wù)器處理對(duì)象的初始位置映射到對(duì)應(yīng)服務(wù)器的數(shù)據(jù)序號(hào)初始位置,其長(zhǎng)度為各服務(wù)器處理對(duì)象記錄的數(shù)據(jù)總數(shù)。這時(shí),位置映射表的指針開始位置對(duì)應(yīng)于有序表的開始位置,位置映射表的指針結(jié)束位置對(duì)應(yīng)于有序表的開始位置加上所有服務(wù)器上滿足查詢條件的數(shù)據(jù)總數(shù)。步驟204 代理模塊根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,確定其映射的服務(wù)器處理對(duì)象需要從對(duì)應(yīng)服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并根據(jù)所述的開始位置以及數(shù)據(jù)量從對(duì)應(yīng)的服務(wù)器獲取數(shù)據(jù)。例如,仍以圖4為示意,代理模塊根據(jù)用戶的分頁條件,即每頁顯示50條數(shù)據(jù),設(shè)置游標(biāo)位置,此時(shí)游標(biāo)位置設(shè)置為agent_p0S = 50,即一頁數(shù)據(jù)總量,仍假設(shè)A、B、C三個(gè)服務(wù)器滿足查詢條件的數(shù)據(jù)總量分別為20、10、50,則根據(jù)游標(biāo)位置,會(huì)將游標(biāo)位置agent_ pos = 50映射到服務(wù)器C處理對(duì)象的SC_beg+20處,原因如下因?yàn)榉?wù)器A處理對(duì)象中僅有20條數(shù)據(jù),所以預(yù)計(jì)會(huì)將服務(wù)器A處理對(duì)象上滿足條件的所有數(shù)據(jù)全部取完,此時(shí)仍然差30條數(shù)據(jù),所以按照服務(wù)器處理對(duì)象有序表中的排列順序向下計(jì)算,再從服務(wù)器B處理對(duì)象中取完10條數(shù)據(jù)后還差20條數(shù)據(jù),所以游標(biāo)位置映射到服務(wù)器C處理對(duì)象的SC_beg+20處。步驟205 代理模塊同時(shí)請(qǐng)求各服務(wù)器處理對(duì)象向?qū)?yīng)的服務(wù)器下發(fā)查詢結(jié)果的位置信息,并從對(duì)應(yīng)的服務(wù)器上獲取數(shù)據(jù)。所述位置信息包括需要從對(duì)應(yīng)的服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置, 據(jù)此位置信息,可以確定從對(duì)應(yīng)的服務(wù)器上獲取哪些數(shù)據(jù)。步驟206:翻頁。當(dāng)用戶翻頁時(shí),重復(fù)步驟204和步驟205,直至數(shù)據(jù)全部取完。如果用戶向上翻頁,則位置映射表的游標(biāo)向上移動(dòng),向下翻頁,則位置映射表的游標(biāo)向下移動(dòng)。步驟206為優(yōu)選步驟,步驟204僅為一次分頁查詢的流程,增加步驟206可以滿足用戶進(jìn)行多次分頁查詢的需求。其中,步驟204中,所述根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,確定其映射的服務(wù)器處理對(duì)象需要從對(duì)應(yīng)服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置的步驟如圖3所示,包括以下步驟步驟301 設(shè)置變量position為有序表的內(nèi)部游標(biāo),初始化時(shí)設(shè)置為0 ;步驟302 設(shè)置位置映射表的游標(biāo)位置變量agent_p0S =(當(dāng)前頁-1) X每頁顯示的數(shù)據(jù)量;步驟303 設(shè)置剩余量remainCount,其表示剩余未取得數(shù)據(jù)量,剩余量 remainCount =每頁顯示的數(shù)據(jù)量;步驟304 從有序表中取出一個(gè)服務(wù)器處理對(duì)象module,該module上滿足查詢條件的數(shù)據(jù)總數(shù)為module_end ;步驟 305 :position = position+module_end 步驟306 判斷agent_pos < position是否成立,是,執(zhí)行步驟307,否,執(zhí)行步驟 304 ;步驟 307 判斷 agent_pos+remainCount 彡 position 是否成立,是,執(zhí)行步驟 308, 否,執(zhí)行步驟310 ;步驟308 設(shè)置module上取數(shù)據(jù)的開始位置module_beg = module_end_ (position_agent_pos);艮口,該月艮務(wù)器分頁模塊對(duì)應(yīng)的服務(wù)器上取數(shù)據(jù)的開始位置步驟309 設(shè)置module上需要取的數(shù)據(jù)量為remainCount ;步驟310 判斷有序表中是否還有服務(wù)器處理對(duì)象。是,執(zhí)行步驟311,否,執(zhí)行步驟 315 ;步驟311 設(shè)置module上取數(shù)據(jù)的開始位置module_beg = module_end_(position_agent_pos);步驟312 設(shè)置module上需要取的數(shù)據(jù)量為(position-agenLpos);步驟313 設(shè)置剩余未取的數(shù)據(jù)量remainCount = remainCount-(position-agent_pos);步驟314 移動(dòng)位置映射表的游標(biāo)位置agent_p0S = position,執(zhí)行步驟304 ;步驟315 設(shè)置module上取數(shù)據(jù)的開始位置module_beg = module_end_(position_agent_pos);步驟316 設(shè)置module上需要取的數(shù)據(jù)量為(position-agenLpos)。所述步驟301 316為進(jìn)行一次分頁查詢的過程。根據(jù)以上所述的多服務(wù)器分頁查詢的裝置及方法的思路進(jìn)行推導(dǎo),可以得出如圖 5所示的一種應(yīng)用擴(kuò)展。通過分頁查詢代理管理下一級(jí)分頁查詢代理,將下一級(jí)的分頁查詢代理當(dāng)作服務(wù)器看待,這樣形成的樹型管理結(jié)構(gòu)可以方便的管理超大數(shù)量分布部署的服務(wù)器,使得超大數(shù)量分布部署的服務(wù)器上進(jìn)行的分頁查詢變得非常簡(jiǎn)單。本發(fā)明簡(jiǎn)化了多個(gè)服務(wù)器分頁查詢的操作流程,用戶可以簡(jiǎn)單、高效的對(duì)多個(gè)服務(wù)器進(jìn)行多個(gè)層級(jí)的分頁查詢。特別適用于分布式部署的多服務(wù)器查詢系統(tǒng)。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精
神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種多服務(wù)器分頁查詢的裝置,其特征在于,該裝置包括代理模塊,用于為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表;并根據(jù)用戶輸入的查詢命令,從各服務(wù)器處理對(duì)象獲取各服務(wù)器滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù);并用于創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象中的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;還用于根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,在相應(yīng)的服務(wù)器處理對(duì)象上設(shè)置需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并通知相應(yīng)的服務(wù)器處理對(duì)象從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù);所述各服務(wù)器處理對(duì)象,用于根據(jù)代理模塊下發(fā)的查詢命令,獲取對(duì)應(yīng)服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù)在保存后返回給代理模塊;并用于根據(jù)代理模塊的通知,依據(jù)需要從對(duì)應(yīng)的服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)并返回給代理模塊。
2.如權(quán)利要求1所述的多服務(wù)器分頁查詢的裝置,其特征在于,所述代理模塊,還用于接收用戶的翻頁請(qǐng)求,并根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,在相應(yīng)的服務(wù)器處理對(duì)象上設(shè)置需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并通知相應(yīng)的服務(wù)器處理對(duì)象從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù);服務(wù)器處理對(duì)象,還用于在代理模塊接收用戶的翻頁請(qǐng)求后,根據(jù)代理模塊的通知,依據(jù)需要從對(duì)應(yīng)的服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)并返回給代理模塊。
3.如權(quán)利要求1或2所述的多服務(wù)器分頁查詢的裝置,其特征在于,所述代理模塊,包括服務(wù)器處理對(duì)象管理單元,用于為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,并按順序?qū)⒏鞣?wù)器處理對(duì)象的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)排列成一個(gè)有序表;用戶命令接收單元,用于接收用戶的查詢命令;服務(wù)器處理對(duì)象交互單元,用于將接收到的用戶查詢命令下發(fā)給各服務(wù)器處理對(duì)象中的交互單元,接收各服務(wù)器處理對(duì)象返回的對(duì)應(yīng)服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù)并交給映射處理單元;并用于根據(jù)映射處理單元產(chǎn)生的在相應(yīng)的服務(wù)器處理對(duì)象上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,通知并接收相應(yīng)的服務(wù)器處理對(duì)象中的交互單元從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù);映射處理單元,創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,獲得在相應(yīng)的服務(wù)器處理對(duì)象上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并交給服務(wù)器處理對(duì)象交互單元;所述各服務(wù)器處理對(duì)象,包括交互單元,用于根據(jù)代理模塊的服務(wù)器處理對(duì)象交互單元的查詢命令,與對(duì)應(yīng)的服務(wù)器建立連接,從對(duì)應(yīng)服務(wù)器獲取滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù),保存在存儲(chǔ)單元中并返回給代理模塊中的服務(wù)器處理對(duì)象交互單元;并用于接收代理模塊的服務(wù)器處理對(duì)象交互單元的在對(duì)應(yīng)服務(wù)器上需要獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置信息后,從對(duì)應(yīng)的服務(wù)器上獲取需要的數(shù)據(jù)返回給代理模塊的服務(wù)器處理對(duì)象交互單元;存儲(chǔ)單元,用于存儲(chǔ)從對(duì)應(yīng)服務(wù)器獲取的滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)。
4.如權(quán)利要求3所述的多服務(wù)器分頁查詢的裝置,其特征在于,所述各服務(wù)器處理對(duì)象由公共的模板類生成。
5.一種多服務(wù)器分頁查詢的方法,其特征在于,包括以下步驟步驟A、為各服務(wù)器生成一一對(duì)應(yīng)的服務(wù)器處理對(duì)象,并按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表;所述各服務(wù)器處理對(duì)象根據(jù)查詢命令,獲取該服務(wù)器處理對(duì)象對(duì)應(yīng)的服務(wù)器中滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)并進(jìn)行保存;創(chuàng)建一個(gè)位置映射表,所述位置映射表的起始位置對(duì)應(yīng)有序表中第一個(gè)服務(wù)器處理對(duì)象的數(shù)據(jù)起始位置,終結(jié)位置對(duì)應(yīng)各服務(wù)器處理對(duì)象中滿足查詢條件的數(shù)據(jù)總數(shù)之和;步驟B、根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,確定其映射的服務(wù)器處理對(duì)象需要從對(duì)應(yīng)服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,并根據(jù)所述的開始位置以及數(shù)據(jù)量從對(duì)應(yīng)的服務(wù)器獲取數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述從對(duì)應(yīng)的服務(wù)器上獲取滿足查詢條件的數(shù)據(jù)之后,進(jìn)一步包括執(zhí)行翻頁查詢操作,翻頁時(shí),重復(fù)執(zhí)行步驟B。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)分頁條件以及位置映射表與有序表的對(duì)應(yīng)關(guān)系,設(shè)置位置映射表的游標(biāo)位置,通過位置映射表的游標(biāo)位置,確定其映射的服務(wù)器處理對(duì)象需要從對(duì)應(yīng)服務(wù)器上獲取的數(shù)據(jù)量以及取數(shù)據(jù)的開始位置,包括步驟1、設(shè)置分頁條件中的每頁顯示的數(shù)據(jù)量以及當(dāng)前頁數(shù),設(shè)置位置映射表的游標(biāo)位置;步驟2、選擇當(dāng)前的服務(wù)器處理對(duì)象,并執(zhí)行如下操作若該服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù)大于等于每頁顯示的數(shù)據(jù)量,則確定該服務(wù)器上需要取的數(shù)據(jù)量為每頁顯示的數(shù)據(jù)量;位置映射表的游標(biāo)位置映射到有序表的位置調(diào)整為 該服務(wù)器處理對(duì)象中對(duì)應(yīng)的數(shù)據(jù)起始位置加上每頁顯示的數(shù)據(jù)量;若該服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù)小于每頁顯示的數(shù)據(jù)量,則確定該服務(wù)器上需要取的數(shù)據(jù)量為該服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù);位置映射表的游標(biāo)位置映射到有序表的位置調(diào)整為該服務(wù)器處理對(duì)象中數(shù)據(jù)起始位置加上該服務(wù)器處理對(duì)象中數(shù)據(jù)總數(shù);判斷有序表中是否還有下一個(gè)服務(wù)器處理對(duì)象,如果有,則按照有序表中服務(wù)器處理對(duì)象的順序選擇下一個(gè)服務(wù)器處理對(duì)象,返回步驟2,否則,結(jié)束。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟2具體包括(51、設(shè)置有序表的內(nèi)部游標(biāo)變量、位置映射表的游標(biāo)位置變量、以及剩余量;并進(jìn)行初始化;(52、從有序表中按順序取出一個(gè)服務(wù)器處理對(duì)象,賦值當(dāng)前有序表的內(nèi)部游標(biāo)變量為 上一次的有序表的內(nèi)部游標(biāo)變量+該服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù);(53、判斷當(dāng)前位置映射表的游標(biāo)位置變量是否小于當(dāng)前有序表的內(nèi)部游標(biāo)變量,如果是,則執(zhí)行步驟S4,否則,執(zhí)行步驟S2 ;.54、判斷當(dāng)前位置映射表的游標(biāo)位置加上當(dāng)前剩余量是否小于等于當(dāng)前有序表的內(nèi)部游標(biāo)變量,如果是,則設(shè)置所述服務(wù)器處理對(duì)象對(duì)應(yīng)的服務(wù)器上取數(shù)據(jù)的開始位置為所述服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù)_(當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量),設(shè)置所述服務(wù)器上需要取的數(shù)據(jù)量為當(dāng)前剩余量,否則,執(zhí)行步驟S5;.55、判斷有序表中是否還有服務(wù)器處理對(duì)象,如果是,則設(shè)置所述服務(wù)器上取數(shù)據(jù)的開始位置為所述服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù)_(當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量),設(shè)置所述服務(wù)器上需要取的數(shù)據(jù)量為當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量,設(shè)置當(dāng)前剩余量為上一次的剩余量_(當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量),設(shè)置當(dāng)前位置映射表的游標(biāo)位置變量等于當(dāng)前有序表的內(nèi)部游標(biāo)變量,執(zhí)行步驟S2 ;否則,設(shè)置所述服務(wù)器上取數(shù)據(jù)的開始位置為所述服務(wù)器處理對(duì)象中的數(shù)據(jù)總數(shù)_(當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量),設(shè)置所述服務(wù)器上需要取的數(shù)據(jù)量為當(dāng)前有序表的內(nèi)部游標(biāo)變量-當(dāng)前映位置映射表的游標(biāo)位置變量。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟Sl所述初始化包括,設(shè)置有序表的內(nèi)部游標(biāo)變量初始值為0,位置映射表的游標(biāo)位置變量為(當(dāng)前頁-1) X每頁顯示的數(shù)據(jù)量,剩余量等于每頁顯示的數(shù)據(jù)量。
10.根據(jù)權(quán)利要求5-9任一項(xiàng)所述的方法,其特征在于,所述按順序?qū)⒏鞣?wù)器處理對(duì)象排列成一個(gè)有序表,是指根據(jù)預(yù)先設(shè)定的順序?qū)⒏鞣?wù)器處理對(duì)象中的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù)排列成有序表。
全文摘要
本發(fā)明公開了一種多服務(wù)器分頁查詢的裝置,包括代理模塊,用于為各服務(wù)器生成服務(wù)器處理對(duì)象,將各服務(wù)器處理對(duì)象排成有序表,從各服務(wù)器處理對(duì)象獲取各服務(wù)器滿足查詢條件的數(shù)據(jù)起始位置和數(shù)據(jù)總數(shù),創(chuàng)建位置映射表,根據(jù)分頁條件及位置映射表與有序表的對(duì)應(yīng)關(guān)系,在服務(wù)器處理對(duì)象上設(shè)置需獲取的數(shù)據(jù)量及取數(shù)據(jù)的開始位置,通知服務(wù)器處理對(duì)象從對(duì)應(yīng)服務(wù)器獲取數(shù)據(jù);各服務(wù)器處理對(duì)象,用于獲取對(duì)應(yīng)服務(wù)器滿足查詢條件的數(shù)據(jù)總數(shù);依據(jù)需要從對(duì)應(yīng)服務(wù)器獲取的數(shù)據(jù)量及取數(shù)據(jù)的開始位置,獲取數(shù)據(jù)并返回給代理模塊。本發(fā)明還公開了一種多服務(wù)器分頁查詢的方法。本發(fā)明可簡(jiǎn)化對(duì)多個(gè)服務(wù)器進(jìn)行分頁查詢的操作流程。
文檔編號(hào)G06F17/30GK102289473SQ20111021226
公開日2011年12月21日 申請(qǐng)日期2011年7月27日 優(yōu)先權(quán)日2011年7月27日
發(fā)明者楊斌 申請(qǐng)人:邁普通信技術(shù)股份有限公司