江海龍 吳曉東 邵志驊
(公安部交通管理科學(xué)研究所 江蘇 無錫 214151)
隨著公安部金盾工程二期建設(shè)任務(wù)的推進(jìn),公安交通管理信息系統(tǒng)在標(biāo)準(zhǔn)體系、應(yīng)用軟件、業(yè)務(wù)數(shù)據(jù)等方面進(jìn)行了深度整合,建立了公安交通管理綜合應(yīng)用平臺,實現(xiàn)了機動車、駕駛?cè)?、交通違法、交通事故等核心業(yè)務(wù)數(shù)據(jù)的匯聚和應(yīng)用軟件的統(tǒng)一。但系統(tǒng)整合后,各地公安交通管理部門對于數(shù)據(jù)查詢、統(tǒng)計的需求,尤其是對于業(yè)務(wù)交叉數(shù)據(jù)的綜合類查詢統(tǒng)計的需求急劇膨脹,現(xiàn)有查詢統(tǒng)計功能開發(fā)模式已不再適應(yīng)各地快速增長的需求[1]。當(dāng)前國內(nèi)外研究人員一方面采用高級任意查詢、統(tǒng)計功能模塊,試圖通過1個功能滿足用戶的需求,但該功能用戶操作復(fù)雜,也不能實現(xiàn)用戶訪問權(quán)限細(xì)粒度控制[2];另一方面采用IBM、微軟公司等BI商業(yè)智能軟件產(chǎn)品進(jìn)行集成應(yīng)用,但商業(yè)軟件成本高,用戶學(xué)習(xí)難度大,不利于大規(guī)模推廣應(yīng)用[3]。為此,需要通過對各地查詢統(tǒng)計需求的深入分析,抽取其本質(zhì)的查詢統(tǒng)計功能邏輯,設(shè)計1種能夠自動適應(yīng)用戶需求的通用查詢統(tǒng)計模型及應(yīng)用系統(tǒng),實現(xiàn)查詢統(tǒng)計邏輯的管理[4],快速構(gòu)建Web方式的通用查詢統(tǒng)計功能,徹底解決公安交通管理快速增長的查詢統(tǒng)計需求。
通用查詢統(tǒng)計模型從各類查詢統(tǒng)計功能中抽取出的各項本質(zhì)要素及其描述方式,建立查詢統(tǒng)計功能專用描述語言,并將其保存至數(shù)據(jù)庫表中,以查詢統(tǒng)計功能名稱標(biāo)識檢索。同時,研發(fā)專用描述語言的解釋器軟件,從數(shù)據(jù)庫中獲取信息,生成各種專用查詢統(tǒng)計功能[5]。該模型主要由通用查詢功能模型、通用統(tǒng)計功能模型和Web表單構(gòu)建模型3個部分組成,其中Web表單構(gòu)建模型被通用查詢功能模型和通用統(tǒng)計功能模型所引用。即采用查詢功能模型和Web表單構(gòu)建模型構(gòu)建專用的查詢功能,采用統(tǒng)計功能模型和Web表單構(gòu)建模型構(gòu)建專用的統(tǒng)計功能。
通用查詢功能模型包括:查詢條件頁面顯示描述(引用Web表單構(gòu)件模型)、查詢SQL 配置描述、查詢結(jié)果頁面顯示描述(引用Web表單構(gòu)件模型),以及根據(jù)上述描述語言負(fù)責(zé)解釋執(zhí)行實現(xiàn)查詢功能的解釋器[6],其中專用描述語言是通用查詢模塊的核心結(jié)構(gòu)[7]。查詢模型專用語言與查詢功能間的關(guān)系見圖1。
圖1 查詢模型專用語言與查詢功能間的關(guān)系圖Fig.1 Diagram of query model language and query functions
1)查詢條件頁面顯示子模型描述語言基于Web表單構(gòu)建模型,用于構(gòu)建專用查詢功能模塊的查詢條件頁面,通過查詢模型解釋器解析后實現(xiàn)查詢條件頁面的顯示。查詢條件頁面描述語言定義的頁面域元素名稱必須與查詢SQL 配置子模型描述中的查詢條件變量名稱保持一致。
2)查詢SQL配置子模型描述語言包括查詢主表描述、查詢子表及關(guān)聯(lián)方式描述、條件字段及變量數(shù)據(jù)格式描述、基本條件描述、輸出字段描述、排序字段描述和每頁顯示記錄數(shù)描述等7個描述語言部分組成[8]。該子模型用于描述:依據(jù)條件頁面輸入的變量值,解析生成動態(tài)SQL 語句,從后臺數(shù)據(jù)庫中抽取數(shù)據(jù),最后輸出成基于Map的查詢數(shù)據(jù)結(jié)果列表的過程。各組成部分進(jìn)一步特征在于:①查詢主表描述用于描述抽取SQL腳本中的主表名稱;②查詢子表及關(guān)聯(lián)方式描述用于描述抽取SQL腳本中的子表名稱,以及子表與主表間的關(guān)聯(lián)方式,關(guān)聯(lián)方式包括:普通連接和Exists連接,并描述子表是采用強制關(guān)聯(lián)方式,還是采用根據(jù)是否存在子表查詢條件變量而關(guān)聯(lián)相應(yīng)子表的關(guān)聯(lián)方式;③條件字段及變量格式描述用于描述SQL腳本中查詢條件以及查詢條件變量的數(shù)據(jù)格式,查詢條件變量與查詢頁面域變量名稱相對應(yīng),如Web請求參數(shù)中存在查詢條件變量,那么此部分查詢條件啟用,否則此部分查詢條件不啟用;④基本條件描述用于描述SQL腳本中必須的部分查詢條件,該部分查詢條件變量為常量值;⑤輸出字段描述用于描述SQL 腳本中的輸出字段,輸出字段必須在主表或子表字段范圍內(nèi);⑥排序字段描述用于描述SQL腳本的排序字段列表及排序方式,排序字段必須在主表或子表字段范圍內(nèi);⑦各頁顯示記錄數(shù)描述用于描述每次從后臺數(shù)據(jù)庫抽取查詢結(jié)果記錄的數(shù)量,即查詢結(jié)果頁面每頁顯示的記錄數(shù)量。例如,道路交通事故業(yè)務(wù)信息查詢功能查詢SQL配置描述見表1。
表1 道路交通事故業(yè)務(wù)信息查詢查詢SQL配置描述表Tab.1 SQL configuration of road traffic accident information query
3)查詢結(jié)果頁面子模型描述語言基于Web表單構(gòu)建模型,用于構(gòu)建專用查詢功能模塊的查詢結(jié)果頁面,通過查詢模型語言解釋器解析后實現(xiàn)查詢結(jié)果頁面的顯示。查詢結(jié)果頁面中描述的頁面列元素名稱須與查詢SQL 配置子模型描述語言中的輸出字段描述名稱一致。
通用統(tǒng)計功能模型包括:統(tǒng)計條件頁面顯示描述(基于Web表單構(gòu)建模型)、數(shù)據(jù)統(tǒng)計方式配置描述、報表格式描述、報表數(shù)據(jù)內(nèi)容填寫描述、統(tǒng)計圖表的描述,以及根據(jù)上述描述語言負(fù)責(zé)解釋執(zhí)行實現(xiàn)統(tǒng)計報表功能的解釋器[9]。統(tǒng)計模型專用語言與統(tǒng)計功能間的關(guān)系見圖2。
圖2 統(tǒng)計模型專用語言與查詢功能間的關(guān)系圖Fig.2 Diagram of statistical model language and query functions
1)統(tǒng)計條件頁面顯示描述語言基于Web表單構(gòu)建模型,用于構(gòu)建專用統(tǒng)計功能的統(tǒng)計條件頁面,通過統(tǒng)計模型語言解釋器解析后實現(xiàn)統(tǒng)計條件頁面的顯示。統(tǒng)計條件頁面中描述語言定義的頁面域元素名稱必須與數(shù)據(jù)統(tǒng)計方式配置描述中的統(tǒng)計條件變量名稱保持一致。
2)數(shù)據(jù)統(tǒng)計方式描述語言用于描述統(tǒng)計功能從數(shù)據(jù)庫抽取統(tǒng)計報表所需的數(shù)據(jù),主要包括:聚類字段、分組字段、統(tǒng)計條件、數(shù)據(jù)表名、同比環(huán)比及計算字段描述6 個部分[10]。數(shù)據(jù)抽取根據(jù)數(shù)據(jù)統(tǒng)計方式描述語言配置的內(nèi)容,通過解釋器轉(zhuǎn)換為相應(yīng)的SQL語句,實現(xiàn)從數(shù)據(jù)庫中抽取統(tǒng)計結(jié)果數(shù)據(jù),并將統(tǒng)計結(jié)果數(shù)據(jù)轉(zhuǎn)化為以Map為單元的列表信息。各組成部分進(jìn)一步特征在于:①聚類字段描述對應(yīng)SQL 語句中的統(tǒng)計指標(biāo)字段,其描述格式如下:[計算字段 字段別名,……],字段別名與報表數(shù)據(jù)內(nèi)容填寫描述中的“JLZDMYM”“字段值”對應(yīng);②分組字段對應(yīng)SQL語句中的統(tǒng)計分類字段,其描述格式如下:[分組字段 字段別名,……],字段別名與報表數(shù)據(jù)內(nèi)容填寫描述中的“字段名”相對應(yīng);③統(tǒng)計條件描述SQL語句中的條件部分,包含動態(tài)條件和固定條件。動態(tài)條件可根據(jù)傳入的頁面參數(shù)值確定抽取數(shù)據(jù)的范圍,其描述格式如下:[表名.字段名,比較類型?!荩容^類型為SQL條件中的運算符;固定條件是SQL 條件中的固定內(nèi)容;④數(shù)據(jù)表名對應(yīng)統(tǒng)計SQL語句中的抽取數(shù)據(jù)表名,包括主表描述和從表描述。主表描述格式如下:[表名 表別名],從表描述格式如下:[從表別名,從表名,與主表連接SQL,連接方式?!?,與主表連接SQL指與主表關(guān)聯(lián)SQL,連接方式包換普通連接和EXISTS連接方式;⑤同比環(huán)比描述用于指定日期類型的條件字段作為同比或環(huán)比字段,報表功能生成模塊根據(jù)設(shè)定字段生成同比或環(huán)比統(tǒng)計數(shù)據(jù);⑥計算字段描述用于描述統(tǒng)計報表中計算列的生成方法,其描述格式如下:[計算類型(源數(shù)據(jù)列索引)@計算列索引#......]。計算類型包括百分比、同期增減數(shù)、同期增減率、環(huán)比增減、環(huán)比增減率。源數(shù)據(jù)列索引用于指定報表數(shù)據(jù)的某列作為計算數(shù)據(jù),計算列索引用于指定計算類型生成的數(shù)據(jù)結(jié)果對應(yīng)報表的列索引號。例如,道路交通事故快報四項指數(shù)統(tǒng)計方式配置描述見表2。
表2 道路交通事故快報四項指數(shù)統(tǒng)計方式配置描述表Tab.2 Statistics configuration of road traffic accident four indices bulletin
3)報表格式描述用于描述統(tǒng)計報表X軸向標(biāo)題及Y軸向標(biāo)題;該描述對于X軸向和Y軸向標(biāo)題層數(shù)最多支持3個層次,每層描述包含“層類型”和“層內(nèi)容描述”[11]?!皩宇愋汀卑ㄒ韵?種:①代碼動態(tài)類型,指當(dāng)前層標(biāo)題內(nèi)容根據(jù)層說明指定代碼內(nèi)容,如存在下層標(biāo)題,下層標(biāo)題按當(dāng)前各代碼項循環(huán)輸出;②固定不循環(huán)類型,指當(dāng)前標(biāo)題內(nèi)容按照“層內(nèi)容描述”描述的固定內(nèi)容輸出,如存在下層標(biāo)題,下層標(biāo)題不按照當(dāng)前標(biāo)題內(nèi)容循環(huán)輸出;③固定循環(huán)類型,指當(dāng)前標(biāo)題內(nèi)容按照“層內(nèi)容描述”描述的固定內(nèi)容輸出,如存在下層標(biāo)題,下層標(biāo)題按照當(dāng)前標(biāo)題內(nèi)容循環(huán)輸出。例如,道路交通事故快報4項指數(shù)報表格式配置描述見表3。
4)報表數(shù)據(jù)內(nèi)容填寫描述用于描述如何將統(tǒng)計結(jié)果數(shù)據(jù)定位到統(tǒng)計報表相應(yīng)的單元中,包括X 軸和Y 軸向數(shù)據(jù)定位描述。數(shù)據(jù)填充根據(jù)報表格式描述生成報表X軸與Y軸信息,并初始化報表結(jié)果數(shù)據(jù),報表結(jié)果數(shù)據(jù)采用二維數(shù)組結(jié)構(gòu)。在報表數(shù)據(jù)內(nèi)容填寫描述生成X軸Map和Y軸Map的基礎(chǔ)上,將統(tǒng)計結(jié)果數(shù)據(jù)填寫至報表結(jié)果數(shù)據(jù)中;再根據(jù)數(shù)據(jù)統(tǒng)計方式描述處理計算字段信息,根據(jù)統(tǒng)計圖表描述將報表結(jié)果數(shù)據(jù)由報表數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為圖表數(shù)據(jù)結(jié)構(gòu)。
表3 道路交通事故快報四項指數(shù)報表格式配置描述Tab.3 Report format configuration of road traffic accident four indices bulletin
5)統(tǒng)計圖表描述用于描述統(tǒng)計圖表的類型和圖表對應(yīng)的報表數(shù)據(jù)源,統(tǒng)計圖表的類型包括餅圖、柱圖、折線圖等類型;圖表數(shù)據(jù)源可支持多個報表結(jié)果數(shù)據(jù)列,其描述格式如下:[數(shù)據(jù)列索引,圖表數(shù)據(jù)名稱#,……],數(shù)據(jù)列索引與統(tǒng)計報表數(shù)據(jù)列索引對應(yīng),圖表數(shù)據(jù)名稱根據(jù)數(shù)據(jù)內(nèi)容含義自行描述。
Web表單構(gòu)建模型包括頁面方案配置描述、頁面域配置描述、頁面元素配置描述,以及相關(guān)專用描述語言的解釋器[12]。該模型是查詢條件頁面顯示描述、查詢結(jié)果頁面顯示描述及統(tǒng)計條件頁面顯示描述的基礎(chǔ)。Web表單構(gòu)建模型與頁面間的關(guān)系見圖3。
1)頁面方案配置描述包括:方案信息、頁面方案標(biāo)簽、頁面表單類型、頁面列數(shù)、行標(biāo)簽及表頭標(biāo)簽的描述。方案信息描述用于說明Web頁面構(gòu)建的方案名稱;頁面表單類型包括:詳細(xì)信息頁面和列表信息頁面兩種類型,其中詳細(xì)信息頁面用于查詢條件頁面、統(tǒng)計條件頁面,列表信息頁面用于查詢結(jié)果頁面;頁面列數(shù)用于描述頁面表格的最大列數(shù);頁面方案標(biāo)簽描述用于說明頁面總體JavaScript代碼及相關(guān)CSS;行標(biāo)簽描述是在頁面表單類型為列表信息頁面時,說明列表每行的JavaScript方法;表頭標(biāo)簽描述是在頁面表單類型為列表信息頁面時,說明構(gòu)建表格第1行JavaScript的方法。
圖3 Web表單構(gòu)建模型與頁面間的關(guān)系Fig.3 Relation between Web page construction model and pages
2)頁面域配置描述是基于頁面元素配置描述,屬于頁面方案配置描述的詳細(xì)說明部分。包括頁面域的順序號、標(biāo)題、頁面元素標(biāo)志號、HTML標(biāo)識號。
3)頁面元素配置庫是頁面域擴展使用的基本元素庫,其描述包括元素標(biāo)志號、元素名稱、元素數(shù)據(jù)類型、元素標(biāo)簽、代碼類別、元素類型描述。元素數(shù)據(jù)類型用于描述元素相應(yīng)數(shù)據(jù)的數(shù)據(jù)類型,包括:字符、數(shù)字、日期、照片、日期時間和時間數(shù)據(jù)格式;元素標(biāo)簽描述用于定制該元素的JavaScript代碼;代碼類別描述用于說明代碼類元素所對應(yīng)的標(biāo)準(zhǔn)代碼的類別號;元素類型描述用于說明元素在頁面上的表現(xiàn)形式,包括:輸入框、下拉列表、日期輸入框(不含日期控件)、日期輸入框(含日期控件)、單選框、復(fù)選框、文本輸入框、圖片、Flash、查詢按鈕、統(tǒng)計按鈕等。
采用上述方法,建立道路交通違法統(tǒng)計條件頁面的配置描述見表4。
基于通用查詢統(tǒng)計模型的應(yīng)用總體技術(shù)架構(gòu)主要由查詢統(tǒng)計配置功能、查詢統(tǒng)計配置信息更新功能及查詢統(tǒng)計配置信息解析功能組成。查詢統(tǒng)計配置功能在通用查詢統(tǒng)計模型的基礎(chǔ)上,對要構(gòu)建的專用軟件查詢統(tǒng)計功能提供相關(guān)配置項目的可視化配置界面、配置信息邏輯校驗及保存功能。查詢統(tǒng)計配置信息更新功能采用Web服務(wù)技術(shù)方式,實現(xiàn)將查詢統(tǒng)計配置信息從查詢統(tǒng)計配置服務(wù)器自動更新至應(yīng)用服務(wù)器。查詢統(tǒng)計配置信息解析功能,讀取查詢統(tǒng)計配置信息,并依據(jù)查詢統(tǒng)計模型相關(guān)邏輯,構(gòu)建專用的查詢統(tǒng)計功能??膳渲眯筒樵兘y(tǒng)計系統(tǒng)總體架構(gòu)見圖4。
圖4 可配置型查詢統(tǒng)計系統(tǒng)總體架構(gòu)圖Fig.4 Architecture of configurable query and statistical system
全國公安交通管理綜合應(yīng)用平臺采用了上述可配置型的通用查詢統(tǒng)計功能模型,通過專用描述語言配置軟件和解釋器已生成道路交通事故、道路交通違法等各類查詢統(tǒng)計功能107項,將原有開發(fā)模式每個查詢統(tǒng)計功能模塊實現(xiàn)時間1~2工作日縮短至1h 以內(nèi),原有功能應(yīng)用需升級各地應(yīng)用軟件優(yōu)化為配置文件自動更新,極大的提高了工作效率和管理力度,滿足了各地對業(yè)務(wù)數(shù)據(jù)查詢統(tǒng)計分析的需求。同時,在公安部端建立了查詢統(tǒng)計功能集中配置管理和下發(fā)機制。其總體系統(tǒng)架構(gòu)見圖5。
公安部端采用基于上述模型的查詢統(tǒng)計功能配置軟件和各地公安交通管理綜合應(yīng)用平臺動態(tài)構(gòu)建的查詢統(tǒng)計功能見圖6、圖7。
圖5 交通管理綜合應(yīng)用平臺查詢統(tǒng)計功能系統(tǒng)架構(gòu)Fig.5 Architecture of the integrated application platform for traffic management and inquiry statistics function system
圖6 快報4項指數(shù)統(tǒng)計功能配置界面Fig.6 Configuration interface for four index statistic functions
表4 道路交通違法統(tǒng)計條件頁面的配置描述信息表Tab.4 Page configuration of road traffic accident statistical conditions
圖7 快報4項指數(shù)統(tǒng)計功能運行界面Fig.7 Execution interface for four index statistic functions
介紹了1種基于通用可配置型的查詢統(tǒng)計模型、總體技術(shù)架構(gòu)和應(yīng)用情況,闡述了通用查詢功能模型、通用統(tǒng)計功能模型和WEB 表單構(gòu)建模型之間的關(guān)系,詳細(xì)描述了各模型的設(shè)計整體思路和具體實現(xiàn)方法?;谠撃P偷难芯砍晒言诠步煌ü芾硇畔⑾到y(tǒng)中得到了實施,具有如下意義。
1)查詢統(tǒng)計功能由軟件研發(fā)調(diào)整為通過配置工具快速構(gòu)建,減少了研發(fā)工作量,提供了工作效率。
2)建立了全國公安交通管理查詢統(tǒng)計功能配置庫和自動更新機制,便于查詢統(tǒng)計功能的管理與維護(hù)。
下一步,要在當(dāng)前模型和技術(shù)架構(gòu)的基礎(chǔ)上,分析梳理后臺定時統(tǒng)計報表功能本質(zhì)關(guān)鍵要素,將其融入本模型和技術(shù)架構(gòu)體系,使該模型應(yīng)用能夠適應(yīng)各類實時、定時等更廣泛的查詢統(tǒng)計需求。
[1]楊風(fēng)召,劉 軍.智能化交管綜合業(yè)務(wù)管理系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2011,20(12):132-135.Yang Fengzhao,Liu Jun,"BI-Based Integrated Traffic Information System",Computer Systems &Applications,2011.20(12):132-135.
[2]祁新安,呂代剛.通用查詢模塊的設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2011(4):99-111.Qi Xinan,Lv Daigang.The design and implementation of general inquires the module[J].Soft Ware Guide,2011(4):99-111.
[3]王劉楊.企業(yè)BI系統(tǒng)設(shè)計實踐[J].計算機光盤軟件與應(yīng)用,2012(18):19-21.Wang Liuyang.The practice of enterprise BI system design[J].Computer CD Software and Applications,2012(18):19-21.
[4]張 皓,丁繼成.基于組件對象模型的通用數(shù)據(jù)報表設(shè)計與實現(xiàn)[J].信息與電子工程,2008(6):470-474.Zhang Hao,Ding Jicheng.Design of general data report based on component object model[J].Information And Electronic Engineering,2008(6):470-474.
[5]史國友,范中洲,賈 潤,等.基于字符串解析的智能查詢方法及其應(yīng)用[J].大連海事大學(xué)學(xué)報.2005,31(1):91-93.Shi Guoyou,F(xiàn)an Zhongzhou,Jia Run et al.Intelligent query method and its application based on character string parsing[J].Journal of Dalian Maritime University,2005,31(1):91-93.
[6]楊令省,施繼紅,張志龍.一種易擴展通用Web查詢系統(tǒng)的設(shè)計模式[J].計算機時代,2009(3):46-48.Yang Lingxing,Shi Jihong,Zhang hilong.An extended universal Web query system design model[J].Computer Era,2009(3):46-48.
[7]樓 翔,張慮能.通用查詢模塊的設(shè)計與實現(xiàn)[J].計算機工程,2004(30):564-565.Lou Xiang,Zhang Lvneng,Design and implementation of a general query module[J].Computer Engineering,2004(30):564-565.
[8]任慶東,李永盛,袁文翠,等.基于元數(shù)據(jù)驅(qū)動的勘探開發(fā)綜合數(shù)據(jù)庫通用查詢系統(tǒng)[J].大慶石油學(xué)院學(xué)報,2010,34(16):91-95.Ren qingdong,Li Yongsheng,Yuan Wencui,et al."General database inquiry system based on metadara exploration and development"[J].Journal of Daqing Petroleuminstitute,2010,34(16):91-95.
[9]張素梅.統(tǒng)計分析軟件驅(qū)動的可重構(gòu)SPC 系統(tǒng)[J].計算機工程與應(yīng)用,2008.44(18):203-205.Zhang Sumei.Statistical analysis software driven reconfigurable SPC system[J].Computer Engineering And Applications,2008,44(18):203-205.
[10]李文平,王衛(wèi)青,趙 額.居民出行OD 調(diào)查數(shù)據(jù)統(tǒng)計分析方法的研究與實現(xiàn)[J].交通信息與安全,2013(3):69-73.Li Wenpin,Wang Weiqing,Zhao Yi.Statistical analysis method of resident trip OD survey data[J].Journal of Transport Information and Safety,2013(3):69-73.
[11]汪慶淼,鞠時光.基于預(yù)測狀態(tài)表示的多變量概率系統(tǒng)預(yù)測[J].計算機應(yīng)用,2012,32(11):3044-3046.Wang Qingmiao,Ju Shiguang,"Prediction of multivariate probabilistic systems based on predictive state representation"[J].Journal of Computer Applications,2012,32(11):3044-3046.
[12]林 向,方 凱.Web 表單可視化定制原理研究[J].電腦開發(fā)與應(yīng)用,2013(6):34-36.Lin Xiang,F(xiàn)ang Kai.Research on visual customization principles based on Web form[J].Computer Development &Applications,2013(6):34-36.