專利名稱:一種基于flex的數(shù)據(jù)封裝和分發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種B/S結(jié)構(gòu)系統(tǒng)下的數(shù)據(jù)實(shí)時(shí)刷新技術(shù),尤其是涉及一種基 于FLEX的數(shù)據(jù)封裝和分發(fā)的方法。
背景技術(shù):
在傳統(tǒng)的FLEX數(shù)據(jù)交互中,各個(gè)控件分別與服務(wù)端進(jìn)行數(shù)據(jù)交互,在一般 情況下,降低了邏輯的復(fù)雜性,減少開發(fā)難度。但是在本發(fā)明所處的應(yīng)用環(huán)境 中,數(shù)據(jù)量大,數(shù)據(jù)更新頻繁,使用這種模式會(huì)導(dǎo)致客戶端與服務(wù)端的通信壓 力很大甚至阻塞,增加服務(wù)器負(fù)擔(dān)。本發(fā)明利用一種數(shù)據(jù)的封裝和分發(fā)技術(shù), 減少客戶端和服務(wù)端的通信次數(shù),降低服務(wù)端的查詢消耗,提高數(shù)據(jù)顯示更新 的效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對FLEX客戶端和服務(wù)端大數(shù)據(jù)量傳輸時(shí),提出的一種 高效的數(shù)據(jù)封裝和分發(fā)的技術(shù)??蛻舳思?xì)化查詢參數(shù),服務(wù)端通過細(xì)粒度較高 的參數(shù)進(jìn)行數(shù)據(jù)查詢和篩選,并將結(jié)果序列化為二進(jìn)制數(shù)據(jù)傳送到客戶端,客 戶端反序列化后根據(jù)既定結(jié)構(gòu)進(jìn)行解析并分發(fā)到各顯示模塊。
本發(fā)明的數(shù)據(jù)結(jié)構(gòu)基于資源庫對監(jiān)控對象的才莫型定義,比如主機(jī)設(shè)備、交 換機(jī)、路由器等,以及對監(jiān)控對象數(shù)據(jù)的指標(biāo)定義,比如運(yùn)行狀態(tài)、內(nèi)存負(fù)載 等。資源庫中存有對才莫型、指標(biāo)以及資源實(shí)例的定義。本發(fā)明中FLEX客戶端基于這樣的模型定義,動(dòng)態(tài)生成展現(xiàn)各種資源指標(biāo) 數(shù)據(jù)的控件,并從服務(wù)端讀取指標(biāo)數(shù)據(jù),進(jìn)行圖形化顯示。數(shù)據(jù)庫中,資源的 指標(biāo)數(shù)據(jù)按照資源編號、指標(biāo)名稱和指標(biāo)值的對應(yīng)關(guān)系進(jìn)行結(jié)構(gòu)化存儲(chǔ),可以 通過SQL語句進(jìn)行條件查詢獲取數(shù)據(jù)。
本發(fā)明首先在FLEX客戶端進(jìn)行數(shù)據(jù)請求條件的歸并,將每個(gè)控件對應(yīng)的 資源編號以及所關(guān)注的指標(biāo)名進(jìn)行對象化封裝,并將重復(fù)和類似條件進(jìn)行過濾 和合并,然后建立資源編號與控件的映射關(guān)系。
客戶端將封裝了查詢條件的數(shù)據(jù)結(jié)構(gòu)序列化,并使用AMF協(xié)議發(fā)送給服 務(wù)端,服務(wù)端再將接收到的二進(jìn)制數(shù)據(jù)反序列化,得到客戶端傳送過來的資源 編號和指標(biāo)名稱信息,根據(jù)這些信息拼裝成一個(gè)SQL語句并進(jìn)行優(yōu)化,使用該 SQL語句在數(shù)據(jù)庫中進(jìn)行查詢得到資源編號、指標(biāo)名稱與指標(biāo)值對應(yīng)的記錄集, 將該記錄集封裝成一個(gè)數(shù)組型的結(jié)構(gòu)后序列化,再利用AMF協(xié)議返回給客戶端。
客戶端將得到的數(shù)據(jù)反序列化得到結(jié)果數(shù)據(jù)對象,這個(gè)對象中包含了資 源編號、指標(biāo)名稱與指標(biāo)值信息,利用前面組織好的資源編號與顯示控件的對 應(yīng)關(guān)系,將每個(gè)控件所關(guān)心的數(shù)據(jù)分離出來并傳遞給對應(yīng)控件,控件得到數(shù)據(jù) 后便會(huì)根據(jù)自身的設(shè)定進(jìn)行圖形化顯示。
本發(fā)明采用這種數(shù)據(jù)的封裝和分發(fā)的技術(shù),將原本需要多個(gè)并發(fā)請求才能 完成的功能通過一次請求響應(yīng)就實(shí)現(xiàn)了,減少了帶寬的利用,P條低了服務(wù)端消 耗。
圖1:本發(fā)明實(shí)施流程圖 圖2:本發(fā)明功能結(jié)構(gòu)3:將控件顯示所需的凄t據(jù)圖 圖4:資源指標(biāo)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)圖 圖5:返回給客戶端的結(jié)果對象圖
具體實(shí)施例方式
以下結(jié)合附圖,舉一具體實(shí)例對本發(fā)明的數(shù)據(jù)封裝和分發(fā)技術(shù)做進(jìn)一步說明。
圖1所示為實(shí)施流程圖,圖2為功能結(jié)構(gòu)圖。
本實(shí)例中,F(xiàn)LEX客戶端有100個(gè)控件,每個(gè)控件都是用來顯示不同的資源 的不同指標(biāo)數(shù)據(jù)。
客戶端遍歷IOO個(gè)控件,讀取出資源編號,關(guān)注的指標(biāo)名稱,封裝成如圖3 所示的數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)存儲(chǔ)著資源編號、指標(biāo)名稱和控件的對應(yīng)關(guān)系,資源 編號為該結(jié)構(gòu)的4建,即通過資源編號可以唯一定位結(jié)構(gòu)中的一條數(shù)據(jù)。
客戶端將封裝了資源編號、指標(biāo)名稱的對象序列化后使用AFM協(xié)議發(fā)送到 服務(wù)端。
服務(wù)端通過反序列化得到該對象,讀取其中的數(shù)據(jù),將資源編號和指標(biāo)名 稱進(jìn)行歸并整合,組合成SQL語句然后進(jìn)行查詢,數(shù)據(jù)庫中存儲(chǔ)指標(biāo)數(shù)據(jù)的結(jié) 構(gòu)如圖4所示
服務(wù)端得到查詢結(jié)果記錄集,封裝成如圖5所示的對象結(jié)構(gòu),序列化后返 回給客戶端
客戶端反序列化得到結(jié)果,根據(jù)圖l所示的對應(yīng)關(guān)系,將圖5所示結(jié)構(gòu)中 的數(shù)據(jù)傳遞給對應(yīng)控件,控件即可根據(jù)指標(biāo)值進(jìn)行相應(yīng)的圖形化顯示
該實(shí)例中,如果采用傳統(tǒng)的FLEX數(shù)據(jù)交互方式,將會(huì)產(chǎn)生100次并發(fā)請求,服務(wù)端要查詢數(shù)據(jù)庫IOO次,而采用本發(fā)明的技術(shù),只需要進(jìn)行一次請求,服 務(wù)端只查詢數(shù)據(jù)庫一次,可以大幅度提高性能。
權(quán)利要求
1、一種基于FLEX的數(shù)據(jù)封裝和分發(fā)的方法,其特征在于,包括以下步驟1)客戶端遍歷控件,封裝參數(shù);2)客戶端使用AMF協(xié)議發(fā)送查詢參數(shù)到服務(wù)端;3)服務(wù)端根據(jù)查詢參數(shù)封裝SQL,使用JDBC查詢數(shù)據(jù)庫;4)服務(wù)端將查詢結(jié)果封裝,并使用AMF協(xié)議返回給客戶端;5)客戶端解析結(jié)果,分發(fā)數(shù)據(jù)到各控件。
2、 根據(jù)權(quán)利要求1所述的一種基于FLEX的數(shù)據(jù)封裝和分發(fā)的方法,其特征在于, 所述步驟l)進(jìn)一步包括在FLEX客戶端進(jìn)行數(shù)據(jù)請求條件的歸并,將每個(gè)控件 對應(yīng)的資源編號以及所關(guān)注的指標(biāo)名進(jìn)行對象化封裝,并將重復(fù)和類似條件進(jìn) 行過濾和合并,然后建立資源編號與控件的映射關(guān)系。
全文摘要
本發(fā)明公開了一種基于FLEX的數(shù)據(jù)封裝和分發(fā)的方法,涉及一種B/S結(jié)構(gòu)系統(tǒng)下的數(shù)據(jù)實(shí)時(shí)刷新技術(shù),包括以下步驟客戶端遍歷控件,封裝參數(shù);客戶端使用AMF協(xié)議發(fā)送查詢參數(shù)到服務(wù)端;服務(wù)端根據(jù)查詢參數(shù)封裝SQL,使用JDBC查詢數(shù)據(jù)庫;服務(wù)端將查詢結(jié)果封裝,并使用AMF協(xié)議返回給客戶端;客戶端解析結(jié)果,分發(fā)數(shù)據(jù)到各控件。本發(fā)明將原本需要多個(gè)并發(fā)請求才能完成的功能通過一次請求響應(yīng)就可以實(shí)現(xiàn),減少了帶寬的利用,降低了服務(wù)端消耗。
文檔編號G06F17/30GK101609474SQ20091018163
公開日2009年12月23日 申請日期2009年7月24日 優(yōu)先權(quán)日2009年7月24日
發(fā)明者劉嘉華, 睿 康, 蔣元晨, 陳玉慧 申請人:國網(wǎng)電力科學(xué)研究院;南京南瑞集團(tuán)公司