《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Web的通用查詢系統(tǒng)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
基于Web的通用查詢系統(tǒng)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
何禮仁,,梁 藝,,鄒 琴
摘要: 研究了目前查詢系統(tǒng)以及查詢平臺(tái)的發(fā)展現(xiàn)狀,設(shè)計(jì)和實(shí)現(xiàn)了一種新型的通用查詢平臺(tái),,該平臺(tái)可以快速構(gòu)建Web方式的通用查詢系統(tǒng),。在設(shè)計(jì)和實(shí)施過程中,充分采用了面向?qū)ο蟮乃枷牒头椒?。通過綜合利用信息技術(shù),,保證了該平臺(tái)可以靈活快速地構(gòu)建可定制、高推廣性,、既友好又安全的Web分布式動(dòng)態(tài)查詢系統(tǒng),,較大地降低了Web查詢系統(tǒng)的開發(fā)成本和維護(hù)工作的難度。
關(guān)鍵詞: 查詢系統(tǒng)
Abstract:
Key words :

  摘 要: 研究了目前查詢系統(tǒng)以及查詢平臺(tái)的發(fā)展現(xiàn)狀,,設(shè)計(jì)和實(shí)現(xiàn)了一種新型的通用查詢平臺(tái),,該平臺(tái)可以快速構(gòu)建Web方式的通用查詢系統(tǒng)。在設(shè)計(jì)和實(shí)施過程中,,充分采用了面向?qū)ο蟮乃枷牒头椒?。通過綜合利用信息技術(shù),,保證了該平臺(tái)可以靈活快速地構(gòu)建可定制、高推廣性,、既友好又安全的Web分布式動(dòng)態(tài)查詢系統(tǒng),,較大地降低了Web查詢系統(tǒng)的開發(fā)成本和維護(hù)工作的難度。
    關(guān)鍵詞: 面向?qū)ο?;Web通用查詢系統(tǒng),;分布式

   隨著Internet應(yīng)用的不斷擴(kuò)展,許多企業(yè)都在努力或已經(jīng)建造了自己的信息系統(tǒng),。每一個(gè)信息系統(tǒng)的開發(fā),,都有大量的查詢需求。查詢功能是信息系統(tǒng)用戶使用頻率最高的功能,,查詢功能設(shè)計(jì)的好壞,,不但影響到項(xiàng)目的研發(fā)工作量和軟件質(zhì)量,而且關(guān)系到用戶的滿意指數(shù),。目前,,實(shí)現(xiàn)查詢功能的方法有很多,最為普遍的設(shè)計(jì)方法是在管理信息系統(tǒng)中增加1個(gè)專用的查詢模塊,,這種做法不僅大大增加了系統(tǒng)開發(fā)的難度,、降低了開發(fā)效率,還給系統(tǒng)的維護(hù)帶來了難以估計(jì)的工作量?,F(xiàn)有一些專用工具也為開發(fā)者實(shí)現(xiàn)查詢功能提供了便利,,但對(duì)普通的操作人員來說,是難于學(xué)習(xí)和掌握的,,無法隨心所欲地定制查詢,。如何才能降低實(shí)現(xiàn)的技術(shù)難度,達(dá)到根據(jù)用戶的設(shè)置動(dòng)態(tài)地改變頁面,,滿足用戶的多樣性和多變性的查詢需求,,是需要解決的問題。針對(duì)以上問題,,本文基于ASP和FLEX技術(shù),,結(jié)合攀鋼ERP和MES以及檢化驗(yàn)的歸檔系統(tǒng),提出了一種通用動(dòng)態(tài)查詢系統(tǒng)平臺(tái)(PXQueryF)的設(shè)計(jì)和實(shí)現(xiàn),。
1 問題分析
  目前攀鋼建設(shè)有1套面向整個(gè)集團(tuán)的ERP系統(tǒng),、3套MES(近期還有2~3套準(zhǔn)備建設(shè))系統(tǒng)和9套檢化驗(yàn)系統(tǒng),為了保證系統(tǒng)性能和數(shù)據(jù)的完整性,,公司提出對(duì)這些系統(tǒng)進(jìn)行集中歸檔并提供查詢,,完成兩千余張數(shù)據(jù)表的簡(jiǎn)單查詢和需求不確定的組合查詢。由此可見,查詢的工作量很大,,而且可變性大,。如果沿用傳統(tǒng)的方式是不能滿足需要的,因此,,考慮設(shè)計(jì)一種通用的查詢平臺(tái),,通過簡(jiǎn)單的勾選配置方式,動(dòng)態(tài)生成查詢語句和查詢頁面,,以滿足所有的查詢功能,。
  要實(shí)現(xiàn)動(dòng)態(tài)生成查詢語句和查詢頁面,首先需要實(shí)現(xiàn)供用戶選擇的表,、表的字段等配置功能,;其次是根據(jù)配置生成查詢界面;再根據(jù)用戶的查詢選擇生成WHERE子句和排序子句,,組織1條完整的SQL語句提交給數(shù)據(jù)庫,,并將查詢結(jié)果展現(xiàn)給用戶;最后是對(duì)查詢頁面進(jìn)行權(quán)限管理[1],。
2 系統(tǒng)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
  使用B/S模式的信息發(fā)布和檢索,由于它的簡(jiǎn)單性,、靈活性,,越來越得到了廣泛的應(yīng)用。眾多的開發(fā)工具如ASP,、PHP,、JSP等,簡(jiǎn)單易學(xué),、功能強(qiáng)大,,為各種信息的發(fā)布和檢索提供了強(qiáng)有力的幫助。在Web環(huán)境中實(shí)現(xiàn)通用查詢系統(tǒng)分為兩個(gè)方面:(1)前端查詢表單,。這是一個(gè)可交互的主頁,,用以構(gòu)成查詢界面,用戶通過該界面提交查詢請(qǐng)求,;(2)后端應(yīng)用服務(wù)程序,。它處理用戶的查詢請(qǐng)求,并將處理結(jié)果返回給瀏覽器,。本文結(jié)合現(xiàn)有的信息技術(shù)完成了以下的設(shè)計(jì)和實(shí)現(xiàn)[1],。
2.1 設(shè)計(jì)目標(biāo)
    查詢系統(tǒng)平臺(tái)的設(shè)計(jì)目標(biāo)如下:
    (1)該平臺(tái)需滿足對(duì)多個(gè)項(xiàng)目、多個(gè)數(shù)據(jù)庫的管理,。
    (2)查詢方式可以為數(shù)據(jù)庫中的任意表,、視圖、SQL語句和任意字段的組合,,且表名和字段名必須為中文,。
    (3)用戶可以根據(jù)需求隨意創(chuàng)建查詢條件,,沒有任何限制;系統(tǒng)根據(jù)配置項(xiàng)動(dòng)態(tài)生成查詢頁面,,并依據(jù)字段類型提供給用戶不同的查詢方式,。
    (4)用戶輸入的查詢條件能按語法規(guī)則正確地翻譯成程序,并返回正確的結(jié)果,。
    (5)對(duì)頁面進(jìn)行授權(quán)管理,。
    (6)界面友好、操作方便,、查詢快捷,。
2.2 PXQueryF的體系結(jié)構(gòu)
    PXQueryF的體系結(jié)構(gòu)如圖1所示,該平臺(tái)總體采用了3層體系架構(gòu):數(shù)據(jù)庫支持層,、邏輯服務(wù)層,、界面交互層。

 


    (1)界面交互層
    該層是CS,、Html或JSP(ASPX)頁面的集合,,對(duì)用戶屏蔽了數(shù)據(jù)存儲(chǔ)及維護(hù)。其中配置和權(quán)限是使用C#實(shí)現(xiàn)的,,采用C/S模式,,主要為程序員或用戶提供查詢系統(tǒng)的配置和權(quán)限管理;業(yè)務(wù)前臺(tái)使用FLEX實(shí)現(xiàn),,采用B/S模式,,便于系統(tǒng)部署和查詢。
    (2)邏輯服務(wù)層
    邏輯服務(wù)層實(shí)現(xiàn)的是應(yīng)用服務(wù)器(中間層)的功能,,自動(dòng)化處理客戶端的請(qǐng)求,,實(shí)現(xiàn)業(yè)務(wù)邏輯與提供服務(wù)接口的功能,通過數(shù)據(jù)訪問模型間接訪問數(shù)據(jù)庫以存儲(chǔ)和獲取數(shù)據(jù),。此層主要包括設(shè)計(jì)模型,、Web動(dòng)態(tài)查詢模型、接口服務(wù)等功能[2],。其中配置應(yīng)用服務(wù)器使用.net實(shí)現(xiàn),,采用remonting技術(shù);業(yè)務(wù)應(yīng)用服務(wù)器通過ASP.net實(shí)現(xiàn),,采用Websevice技術(shù),。
    (3)數(shù)據(jù)庫支持層
    該層處理了所有定義的數(shù)據(jù)集的細(xì)節(jié)以及與數(shù)據(jù)庫的交互,保證對(duì)數(shù)據(jù)源透明訪問,。數(shù)據(jù)庫采用2種方式:XML方式和關(guān)系型數(shù)據(jù)庫,。通常將配置數(shù)據(jù)和權(quán)限數(shù)據(jù)保存在XML文件中,但也可單獨(dú)保存在關(guān)系型數(shù)據(jù)庫中(如ACESS數(shù)據(jù)庫)及保存在業(yè)務(wù)數(shù)據(jù)庫中。此外,,對(duì)重要的數(shù)據(jù)如權(quán)限數(shù)據(jù)還需進(jìn)行加密,。
2.3 主要技術(shù)與實(shí)現(xiàn)
2.3.1 大數(shù)據(jù)訪問和導(dǎo)出
    構(gòu)建一種3層客戶端/服務(wù)器的體系結(jié)構(gòu),用戶可通過Internet瀏覽企業(yè)信息,,但是當(dāng)瀏覽大量數(shù)據(jù)庫數(shù)據(jù)時(shí),,網(wǎng)絡(luò)連接常因速度緩慢或因超時(shí)而中斷。因此,,為了避免由于數(shù)據(jù)整體傳送時(shí)間過長(zhǎng)而導(dǎo)致的斷連,,為了滿足用戶瀏覽數(shù)據(jù)的局部性要求,將數(shù)據(jù)化整為零,,采用分頁技術(shù)來加快數(shù)據(jù)的傳輸,,解決1次訪問數(shù)據(jù)量大的問題。在訪問Web服務(wù)器時(shí),,有2個(gè)因素限制了網(wǎng)頁的連接時(shí)間:一是數(shù)據(jù)庫的查詢操作,,另一個(gè)是網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。在數(shù)據(jù)庫中的查詢,,可以通過建立索引來解決,,例如,書目表可按十大類字段進(jìn)行索引,,這樣可大大加快數(shù)據(jù)庫查詢速度,。為了減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,采用分頁傳輸?shù)募夹g(shù),,例如,客戶端查詢出1萬條記錄可以1次僅傳輸50條記錄,,這樣可加快網(wǎng)頁的連接時(shí)間而不會(huì)因超時(shí)而中斷,。
    對(duì)于大量數(shù)據(jù)導(dǎo)出,不能采取化整為零方式,??梢岳肊XCEL格式識(shí)別的靈活性,通過產(chǎn)生較快的帶有格式的網(wǎng)頁流(Html流)方式,,輸出到EXCEL中,,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出功能。采用這種方式,,對(duì)100萬行10列的數(shù)據(jù)導(dǎo)出,,大約耗時(shí)30 s,可以滿足普遍的數(shù)據(jù)導(dǎo)出性能要求,。其處理流程圖如圖2所示,。

 


2.3.2 實(shí)現(xiàn)Web動(dòng)態(tài)技術(shù)
    靜態(tài)網(wǎng)頁是設(shè)計(jì)者做好的固定的網(wǎng)頁,不適合通用查詢系統(tǒng)要求。動(dòng)態(tài)網(wǎng)頁以數(shù)據(jù)庫技術(shù)為基礎(chǔ),,它不是獨(dú)立存在于服務(wù)器上的網(wǎng)頁文件,,只有當(dāng)用戶請(qǐng)求時(shí)服務(wù)器才返回一個(gè)完整的網(wǎng)頁[3]。這樣可以大大降低網(wǎng)站維護(hù)的工作量并可以實(shí)現(xiàn)更多的功能,。在本方案的實(shí)施中采用了FLEX開發(fā)工具,,通過它可以實(shí)現(xiàn)表現(xiàn)層和內(nèi)容的真正分離,可以把數(shù)據(jù)巧妙地從任何地方(XML,,數(shù)據(jù)庫等)取出并綁定到界面中的元素上[4],。通過讀取菜單配置、查詢配置,、復(fù)雜表頭配置,、數(shù)據(jù)展示區(qū)配置等數(shù)據(jù)動(dòng)態(tài)生產(chǎn)網(wǎng)頁。
2.3.3 復(fù)雜表頭的配置
    在查詢系統(tǒng)中,,有許多表的表頭有多行且之間存在包含關(guān)系,,在以往的設(shè)計(jì)中往往采用保存模板的方式,在展示時(shí)導(dǎo)入該模板,。這種方式存在如性能,、用戶體驗(yàn)等的不足,在動(dòng)態(tài)網(wǎng)頁中尤其明顯[5-6],。為克服這些問題且方便程序員或用戶使用,,本平臺(tái)提供了模板導(dǎo)入功能。操作人員在EXCEL中做好模板,,通過平臺(tái)提供的工具導(dǎo)入,,將表頭的所有信息保存在數(shù)據(jù)庫中。在動(dòng)態(tài)產(chǎn)生網(wǎng)頁時(shí),,可通過算法實(shí)現(xiàn)FLEX數(shù)據(jù)網(wǎng)格的重繪,,實(shí)現(xiàn)用戶的多表頭數(shù)據(jù)查詢。
2.3.4 基于配置的定制查詢
    為了滿足系統(tǒng)快速開發(fā),,本設(shè)計(jì)實(shí)現(xiàn)了基于配置的查詢定制,,主要從以下方面實(shí)現(xiàn):
    (1)項(xiàng)目配置:該平臺(tái)實(shí)現(xiàn)1個(gè)或多個(gè)項(xiàng)目建立和集中管理。
    (2)數(shù)據(jù)源配置:完成1個(gè)或多個(gè)數(shù)據(jù)源的配置,、測(cè)試,,如圖3所示。

 


    (3)表配置:完成表連接,、視圖,、SQL語句的配置。
    (4)字段配置:實(shí)現(xiàn)字段選擇,,顯示類型,,可設(shè)置字段的查詢條件,、凍結(jié)、可見與否,、只讀,、排序等,如圖4所示,。

 


3 PXQueryF的特點(diǎn)
    (1)方便快速的操作:程序員或用戶幾乎不用培訓(xùn)就可以使用該工具,,不需要通過寫代碼就可實(shí)現(xiàn)生成一個(gè)功能強(qiáng)大的B/S結(jié)構(gòu)的查詢系統(tǒng)。項(xiàng)目實(shí)施人員只需關(guān)注業(yè)務(wù),,不關(guān)心實(shí)現(xiàn)的細(xì)節(jié),,開發(fā)效率高。
    (2)采用FLEX實(shí)現(xiàn)的查詢前臺(tái)可跨平臺(tái),、對(duì)瀏覽器具有很好的兼容型,、性能穩(wěn)定,動(dòng)態(tài)生成的Web頁面統(tǒng)一,、用戶體驗(yàn)好,,且方便維護(hù)等。
    (3)可定制:可以靈活方便地配置完成多種形式的查詢,,如:?jiǎn)伪斫Y(jié)構(gòu)查詢,、關(guān)聯(lián)查詢、自定義SQL查詢,。
    (4)平臺(tái)不足之處:該平臺(tái)目前還未實(shí)現(xiàn)不規(guī)則復(fù)雜報(bào)表方式的查詢和打印功能,。
    該通用查詢系統(tǒng)平臺(tái)實(shí)現(xiàn)了SQL語句大多數(shù)功能,如單個(gè)表的查詢和多表的連接查詢,。而且很容易地實(shí)現(xiàn)分組求和功能,。其通用查詢的設(shè)計(jì)思想,縮短了開發(fā)周期,,提高了工作效率,。視圖定義模塊與通用查詢模塊以及權(quán)限模塊的劃分,使得利用該平臺(tái)構(gòu)建的查詢系統(tǒng)維護(hù)更加方便,。本通用查詢平臺(tái)已經(jīng)在攀鋼ERP和MES系統(tǒng)歸檔應(yīng)用工程中使用并取得較好效果。
參考文獻(xiàn)
[1] 劉軍,,陽小華,,楊星.基于B/S模式的通用型組合查詢組件的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,,22(3):256-258.
[2] 李鵬飛,,朱洪龍.基于.NET和XML的動(dòng)態(tài)通用查詢模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2007,,37(4).
[3] 王嘉禎,,王紅霞,,寧紅巖.基于Web的通用查詢系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2000,,13(9).
[4] 王軍鋒,,賈建華,申志偉.通用查詢模塊設(shè)計(jì)和實(shí)現(xiàn)[J].山西電子技術(shù),,2006(3).
[5] 官全龍,,姚國(guó)祥,林良超.一種快速構(gòu)建Web動(dòng)態(tài)查詢 系統(tǒng)新型平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,,2008,,25(9).
[6] 朱小川,動(dòng)態(tài)網(wǎng)頁制作技術(shù)[J].科技論壇,,2005,,12(2).

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。