許犇 簡季 任紀安 遲濤 褚永彬
在數據時代與智慧城市建設的背景下,海量數據被保存在智慧城市中心數據庫。對于政府數據而言,其來源于各個政府部門,存在普遍的數據孤島和數據壁壘情況,傳統的電子政務平臺已經不能應對實際業務辦理時各式各樣的需求,因此研究設計一個基于MVC模式、選用Browser/Server架構的跨部門電子政務數據定制檢索平臺。該平臺采用Thymeleaf模板片段技術和Redis緩存技術對這些涉及隱私的政府數據表信息進行可視化,政府部門能夠根據業務需求定制不同的檢索關鍵字、部門、數據表、字段,采用一張表形式對檢索結果可視化,改善了以往檢索條件單一、信息獲取困難的缺陷,努力推進“最多跑一次”政務改革。
隨著互聯網時代的發展,存儲成本的下降,人們日常生活辦事產生了大量的政府數據,這些數據保存在各個部門(工商局、民政局、公安局、不動產登記中心……)。對這些體量龐大、紛繁雜亂、保密性高的數據進行人工管理將會耗費大量的人力物力,成本十分高昂。智慧城市借助于互聯網強大的數據整合與統計能力,為政府數據的管理使用提供了極大的便捷性。
當前國內的電子政務平臺普遍采取各部門分散建設的模式,這種方式導致各個政府部門之間存在明顯的數據壁壘,不利于數據共享與協同辦公,跨部門使用數據也會產生繁瑣的交接步驟。傳統的電子政務文件,后續檢索字段與檢索條件的變更只能通過專業人員修改系統代碼,極大地限制部門辦事效率。在實際業務中通常只需要某個人的部分信息,這些信息極有可能分散存儲在不同部門的數據表中,用戶還需在檢索結果中提取業務需要的信息,大幅度降低工作效率。政府部門無法對數據按檢索部門、字段、條件等定制多方式的數據檢索,系統的可擴展性大大降低。在這種情況下,一個實現跨部門可定制數據檢索的信息資源共享平臺變得極為重要。
本文選用B/S體系架構,采用MVC開發模式,基于市面上流行的SSM框架(Spring+SpringMVC+MyBatis),利用Thymeleaf模板片段技術和Redis緩存技術對現有電子政務體系的缺陷進行了改進。可定制數據檢索使政府部門能夠按照自己特定的需求,選擇多張數據表定制檢索字段、檢索條件,進行多表跨部門聯合檢索。這種跨部門定制檢索功能的實現使得用戶與數據能夠直接進行交互,檢索結果一張表可視化增加了數據的可閱讀性,方便了各政府部門之間的消息共通共用共享,解決了由數據孤島進而產生信息孤島的問題。
(一)MVC模式
在JavaEE開發中,采用MVC開發模式進行代碼編寫是一種普遍的策略。MVC模式將各個功能分層劃分,簡化分組開發,各個功能模塊能夠有條不紊的并行開發,有效的降低系統模塊之間的耦合性,大量代碼能夠得到重復利用,提高系統可擴展性。
MVC即Model(模型)、Controller(控制器)、View(視圖),其中Controller負責事件處理,將用戶請求(http等方式)轉發給相應的Model進行處理并根據Model的處理結果響應給用戶; Model負責程序的業務邏輯處理,與數據庫進行交互提供View需要展示的數據;View負責程序的界面管理,與用戶直接交互并且將Model可視化響應(json、xml、html等方式)給用戶。其體系架構如圖1所示。
(二)Thymeleaf模板片段
Java開發離不開Spring家族,Thymeleaf是Spring Boot官方推薦使用的模版引擎,它是一個現代化的、適用于Web和獨立環境的服務器端Java模板引擎,用于提供可被瀏覽器正確顯示、格式良好的模板。

Thymeleaf提供一種定義和引用模板片段(Fragment)的技術,可以達到“一次定義,多處使用”的效果。這種片段技術將完整返回瀏覽器端定義的片段和服務器端查詢的數據,在頁面使用Thymeleaf提供的語法進行解析即可,更加省時高效,保證數據的完整性和安全性。
(三)Redis緩存
數據庫的查詢使用會耗費一定的時間和資源,如果在短時間內頻繁訪問數據庫可能會導致數據庫崩潰。在這種情況下引入緩存會極大地提高用戶體驗和系統響應速度,節約時間和資源。數據持久化框架Hibernate、Mybatis、JPA等內置了緩存技術,但是功能簡單,不適用于含有復雜業務邏輯的場景,有些框架官方也不建議使用自帶的緩存技術,因此應當使用專業的緩存技術進行開發。
現有的緩存技術有許多種:Memcached、Redis、MongoDB......Memcached、Redis是基于內存的緩存技術,Redis與Memcached相比數據不易丟失,用戶體驗相對較好;MongoDB是面向文檔的緩存技術,其優勢在于存儲海量數據。因此本文選取Redis作為緩存的技術方案。
(四)定制檢索與可視化技術方案
定制檢索即系統被動接受用戶根據具體業務需求定義的檢索條件,得到預想的、無需對其進行二次處理的結果;而不是系統主動向用戶提供檢索條件。
用戶在瀏覽器視圖通過檢索關鍵字、檢索部門,定制檢索數據表,利用Ajax技術將表名異步傳遞給Controller。Controller接收到瀏覽器傳遞的數據表名,然后將當前請求交由特定的Model對其進行處理,得到對應數據表字段Thymeleaf模板片段信息,將其返回至View。View對字段信息片段進行解析可視化。服務器端根據用戶定制的檢索字段和檢索條件動態生成SQL查詢語句,在檢索中間數據庫中進行檢索,檢索結果采用一張表可視化。其操作流程如圖2所示。
在電子政務系統中,電子監察是其中重要的一環,跨部門監察對于打破部門間的行政壁壘,提高監察效率意義重大,紀委監察機關對于跨部門定制檢索數據的需求最為強烈。因此,本文以株洲市監察信息檢索平臺為例,詳細描述數據定制檢索在電子政務中的應用。由于數據保密的原因,文中所有數據皆為模擬數據,不具有真實性。
(一)定制檢索系統架構設計
政府數據大多數是涉及隱私的數據,因此不能直接在智慧城市中心數據庫進行操作,需要使用代理服務器進行訪問保證數據安全,防止數據泄密。采用檢索中間數據庫訪問智慧城市中心數據庫,用戶在對訪問數據時會優先在檢索中間數據庫進行操作,如果沒有再通過智慧城市中心數據庫進行操作,并將其復制到檢索中間數據庫中。從而確保政府數據“可用不可見”,極大的提高政府數據的安全性。用戶的檢索結果由多方式組合定制,并且數據具有實時更新性,因此Redis緩存數據庫僅用于緩存數據表字段的Thymeleaf片段信息,這樣既減輕了數據庫的壓力又提高了用戶體驗。平臺架構如圖3所示。
(二)數據表字段信息可視化
由于政府數據表的字段多且雜,而且來源于不同的政府部門,不同表可能含有相同名稱的數據字段,數據信息和數據表字段也頻繁更新。采用傳統的前后端交互方式會增加許多工作量,處理過程繁瑣,使用Thymeleaf模板引擎片段技術將大幅度減少工作量。在服務器端將數據表的字段信息封裝為Thymeleaf片段返回至瀏覽器頁面,在頁面使用Thymeleaf語法解析即可將這些字段信息可視化在頁面,開發人員只需要將這些數據表按照部門來源進行劃分即可。字段信息可視化如圖4所示。


(三)數據定制檢索與可視化
紀委監察部門對于政府數據的檢索使用需求各不相同,因此提供用戶能夠定制的檢索條件功能意義重大。檢索平臺將所有的政府數據按照姓名、身份證號碼、車牌號、工商字號四種關鍵字進行劃分,再將每一類中按照政府數據的來源部門進行細分(人口登記中心、不動產登記中心、民政局、財政局、行政審批中心、工商管理局)。基于此,用戶能夠定制檢索條件和檢索字段查詢需要的信息,檢索結果采用一張表可視化,對結果信息的捕獲提供了極大的便捷。
圖5是利用五張表聯合檢索姓名為“張三”的結果信息,采用一張表可視化(為了展示方便,每張表只選擇了部分字段)。
跨部門檢索會產生不同部門、不同類別的數據表信息,每類數據表含有不同的字段信息,將這些數據表信息準確完整地顯示在一張表中加深了數據與數據之間的聯系,有利于信息的提取與分析,紀委監察部門也能夠根據檢索結果精準定位監察信息。

由于目前的電子政務系統暴露出不能應對實際業務辦理時多樣化需求的問題,本文采用SSM框架、Thymeleaf模板片段、Redis緩存等技術實現了一個能夠跨部門進行數據信息檢索的電子政務數據定制檢索平臺。檢索中間數據庫的所有數據表信息和字段信息準確良好的顯示在瀏覽器頁面,監察部門能夠利用多種定制條件信息檢索。相較于傳統的檢索方式而言,這種方式能夠定制檢索條件,滿足業務辦理的各種需求,全面提高了紀委監察部門的行政效能,人民群眾也獲得了滿意的公共服務。借助于智慧城市高效實時的特性,平臺也能實時獲取到最新數據,解決了以往數據遺漏、數據脫節、更新緩慢的問題。多表聯合查詢時,當數據量過大時如何減少查詢檢索時間仍然是需要研究的難題,后續將繼續進行優化。
作者單位:成都理工大學地球科學學院