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

  摘 要: 研究了目前查詢系統(tǒng)以及查詢平臺的發(fā)展現(xiàn)狀,設(shè)計(jì)和實(shí)現(xiàn)了一種新型的通用查詢平臺,該平臺可以快速構(gòu)建Web方式的通用查詢系統(tǒng)。在設(shè)計(jì)和實(shí)施過程中,充分采用了面向?qū)ο蟮乃枷牒头椒?。通過綜合利用信息技術(shù),保證了該平臺可以靈活快速地構(gòu)建可定制、高推廣性、既友好又安全的Web分布式動態(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)查詢功能提供了便利,但對普通的操作人員來說,是難于學(xué)習(xí)和掌握的,無法隨心所欲地定制查詢。如何才能降低實(shí)現(xiàn)的技術(shù)難度,達(dá)到根據(jù)用戶的設(shè)置動態(tài)地改變頁面,滿足用戶的多樣性和多變性的查詢需求,是需要解決的問題。針對以上問題,本文基于ASP和FLEX技術(shù),結(jié)合攀鋼ERP和MES以及檢化驗(yàn)的歸檔系統(tǒng),提出了一種通用動態(tài)查詢系統(tǒng)平臺(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ù)的完整性,公司提出對這些系統(tǒng)進(jìn)行集中歸檔并提供查詢,完成兩千余張數(shù)據(jù)表的簡單查詢和需求不確定的組合查詢。由此可見,查詢的工作量很大,而且可變性大。如果沿用傳統(tǒng)的方式是不能滿足需要的,因此,考慮設(shè)計(jì)一種通用的查詢平臺,通過簡單的勾選配置方式,動態(tài)生成查詢語句和查詢頁面,以滿足所有的查詢功能。
  要實(shí)現(xiàn)動態(tài)生成查詢語句和查詢頁面,首先需要實(shí)現(xiàn)供用戶選擇的表、表的字段等配置功能;其次是根據(jù)配置生成查詢界面;再根據(jù)用戶的查詢選擇生成WHERE子句和排序子句,組織1條完整的SQL語句提交給數(shù)據(jù)庫,并將查詢結(jié)果展現(xiàn)給用戶;最后是對查詢頁面進(jìn)行權(quán)限管理[1]。
2 系統(tǒng)平臺設(shè)計(jì)與實(shí)現(xiàn)
  使用B/S模式的信息發(fā)布和檢索,由于它的簡單性、靈活性,越來越得到了廣泛的應(yīng)用。眾多的開發(fā)工具如ASP、PHP、JSP等,簡單易學(xué)、功能強(qiáng)大,為各種信息的發(fā)布和檢索提供了強(qiáng)有力的幫助。在Web環(huán)境中實(shí)現(xiàn)通用查詢系統(tǒng)分為兩個(gè)方面:(1)前端查詢表單。這是一個(gè)可交互的主頁,用以構(gòu)成查詢界面,用戶通過該界面提交查詢請求;(2)后端應(yīng)用服務(wù)程序。它處理用戶的查詢請求,并將處理結(jié)果返回給瀏覽器。本文結(jié)合現(xiàn)有的信息技術(shù)完成了以下的設(shè)計(jì)和實(shí)現(xiàn)[1]。
2.1 設(shè)計(jì)目標(biāo)
    查詢系統(tǒng)平臺的設(shè)計(jì)目標(biāo)如下:
    (1)該平臺需滿足對多個(gè)項(xiàng)目、多個(gè)數(shù)據(jù)庫的管理。
    (2)查詢方式可以為數(shù)據(jù)庫中的任意表、視圖、SQL語句和任意字段的組合,且表名和字段名必須為中文。
    (3)用戶可以根據(jù)需求隨意創(chuàng)建查詢條件,沒有任何限制;系統(tǒng)根據(jù)配置項(xiàng)動態(tài)生成查詢頁面,并依據(jù)字段類型提供給用戶不同的查詢方式。
    (4)用戶輸入的查詢條件能按語法規(guī)則正確地翻譯成程序,并返回正確的結(jié)果。
    (5)對頁面進(jìn)行授權(quán)管理。
    (6)界面友好、操作方便、查詢快捷。
2.2 PXQueryF的體系結(jié)構(gòu)
    PXQueryF的體系結(jié)構(gòu)如圖1所示,該平臺總體采用了3層體系架構(gòu):數(shù)據(jù)庫支持層、邏輯服務(wù)層、界面交互層。

 


    (1)界面交互層
    該層是CS、Html或JSP(ASPX)頁面的集合,對用戶屏蔽了數(shù)據(jù)存儲及維護(hù)。其中配置和權(quán)限是使用C#實(shí)現(xiàn)的,采用C/S模式,主要為程序員或用戶提供查詢系統(tǒng)的配置和權(quán)限管理;業(yè)務(wù)前臺使用FLEX實(shí)現(xiàn),采用B/S模式,便于系統(tǒng)部署和查詢。
    (2)邏輯服務(wù)層
    邏輯服務(wù)層實(shí)現(xiàn)的是應(yīng)用服務(wù)器(中間層)的功能,自動化處理客戶端的請求,實(shí)現(xiàn)業(yè)務(wù)邏輯與提供服務(wù)接口的功能,通過數(shù)據(jù)訪問模型間接訪問數(shù)據(jù)庫以存儲和獲取數(shù)據(jù)。此層主要包括設(shè)計(jì)模型、Web動態(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ù)庫的交互,保證對數(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ù)庫中。此外,對重要的數(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í)間過長而導(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í)間而不會因超時(shí)而中斷。
    對于大量數(shù)據(jù)導(dǎo)出,不能采取化整為零方式??梢岳肊XCEL格式識別的靈活性,通過產(chǎn)生較快的帶有格式的網(wǎng)頁流(Html流)方式,輸出到EXCEL中,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出功能。采用這種方式,對100萬行10列的數(shù)據(jù)導(dǎo)出,大約耗時(shí)30 s,可以滿足普遍的數(shù)據(jù)導(dǎo)出性能要求。其處理流程圖如圖2所示。

 


2.3.2 實(shí)現(xiàn)Web動態(tài)技術(shù)
    靜態(tài)網(wǎng)頁是設(shè)計(jì)者做好的固定的網(wǎng)頁,不適合通用查詢系統(tǒng)要求。動態(tài)網(wǎng)頁以數(shù)據(jù)庫技術(shù)為基礎(chǔ),它不是獨(dú)立存在于服務(wù)器上的網(wǎng)頁文件,只有當(dā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ù)動態(tài)生產(chǎn)網(wǎng)頁。
2.3.3 復(fù)雜表頭的配置
    在查詢系統(tǒng)中,有許多表的表頭有多行且之間存在包含關(guān)系,在以往的設(shè)計(jì)中往往采用保存模板的方式,在展示時(shí)導(dǎo)入該模板。這種方式存在如性能、用戶體驗(yàn)等的不足,在動態(tài)網(wǎng)頁中尤其明顯[5-6]。為克服這些問題且方便程序員或用戶使用,本平臺提供了模板導(dǎo)入功能。操作人員在EXCEL中做好模板,通過平臺提供的工具導(dǎo)入,將表頭的所有信息保存在數(shù)據(jù)庫中。在動態(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)目配置:該平臺實(shí)現(xiàn)1個(gè)或多個(gè)項(xiàng)目建立和集中管理。
    (2)數(shù)據(jù)源配置:完成1個(gè)或多個(gè)數(shù)據(jù)源的配置、測試,如圖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)的查詢前臺可跨平臺、對瀏覽器具有很好的兼容型、性能穩(wěn)定,動態(tài)生成的Web頁面統(tǒng)一、用戶體驗(yàn)好,且方便維護(hù)等。
    (3)可定制:可以靈活方便地配置完成多種形式的查詢,如:單表結(jié)構(gòu)查詢、關(guān)聯(lián)查詢、自定義SQL查詢。
    (4)平臺不足之處:該平臺目前還未實(shí)現(xiàn)不規(guī)則復(fù)雜報(bào)表方式的查詢和打印功能。
    該通用查詢系統(tǒng)平臺實(shí)現(xiàn)了SQL語句大多數(shù)功能,如單個(gè)表的查詢和多表的連接查詢。而且很容易地實(shí)現(xiàn)分組求和功能。其通用查詢的設(shè)計(jì)思想,縮短了開發(fā)周期,提高了工作效率。視圖定義模塊與通用查詢模塊以及權(quán)限模塊的劃分,使得利用該平臺構(gòu)建的查詢系統(tǒng)維護(hù)更加方便。本通用查詢平臺已經(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的動態(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] 官全龍,姚國祥,林良超.一種快速構(gòu)建Web動態(tài)查詢 系統(tǒng)新型平臺的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(9).
[6] 朱小川,動態(tài)網(wǎng)頁制作技術(shù)[J].科技論壇,2005,12(2).

 

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