許犇 簡季 任紀(jì)安 遲濤 褚永彬
在數(shù)據(jù)時代與智慧城市建設(shè)的背景下,海量數(shù)據(jù)被保存在智慧城市中心數(shù)據(jù)庫。對于政府?dāng)?shù)據(jù)而言,其來源于各個政府部門,存在普遍的數(shù)據(jù)孤島和數(shù)據(jù)壁壘情況,傳統(tǒng)的電子政務(wù)平臺已經(jīng)不能應(yīng)對實際業(yè)務(wù)辦理時各式各樣的需求,因此研究設(shè)計一個基于MVC模式、選用Browser/Server架構(gòu)的跨部門電子政務(wù)數(shù)據(jù)定制檢索平臺。該平臺采用Thymeleaf模板片段技術(shù)和Redis緩存技術(shù)對這些涉及隱私的政府?dāng)?shù)據(jù)表信息進(jìn)行可視化,政府部門能夠根據(jù)業(yè)務(wù)需求定制不同的檢索關(guān)鍵字、部門、數(shù)據(jù)表、字段,采用一張表形式對檢索結(jié)果可視化,改善了以往檢索條件單一、信息獲取困難的缺陷,努力推進(jìn)“最多跑一次”政務(wù)改革。
隨著互聯(lián)網(wǎng)時代的發(fā)展,存儲成本的下降,人們?nèi)粘I钷k事產(chǎn)生了大量的政府?dāng)?shù)據(jù),這些數(shù)據(jù)保存在各個部門(工商局、民政局、公安局、不動產(chǎn)登記中心……)。對這些體量龐大、紛繁雜亂、保密性高的數(shù)據(jù)進(jìn)行人工管理將會耗費大量的人力物力,成本十分高昂。智慧城市借助于互聯(lián)網(wǎng)強大的數(shù)據(jù)整合與統(tǒng)計能力,為政府?dāng)?shù)據(jù)的管理使用提供了極大的便捷性。
當(dāng)前國內(nèi)的電子政務(wù)平臺普遍采取各部門分散建設(shè)的模式,這種方式導(dǎo)致各個政府部門之間存在明顯的數(shù)據(jù)壁壘,不利于數(shù)據(jù)共享與協(xié)同辦公,跨部門使用數(shù)據(jù)也會產(chǎn)生繁瑣的交接步驟。傳統(tǒng)的電子政務(wù)文件,后續(xù)檢索字段與檢索條件的變更只能通過專業(yè)人員修改系統(tǒng)代碼,極大地限制部門辦事效率。在實際業(yè)務(wù)中通常只需要某個人的部分信息,這些信息極有可能分散存儲在不同部門的數(shù)據(jù)表中,用戶還需在檢索結(jié)果中提取業(yè)務(wù)需要的信息,大幅度降低工作效率。政府部門無法對數(shù)據(jù)按檢索部門、字段、條件等定制多方式的數(shù)據(jù)檢索,系統(tǒng)的可擴(kuò)展性大大降低。在這種情況下,一個實現(xiàn)跨部門可定制數(shù)據(jù)檢索的信息資源共享平臺變得極為重要。
本文選用B/S體系架構(gòu),采用MVC開發(fā)模式,基于市面上流行的SSM框架(Spring+SpringMVC+MyBatis),利用Thymeleaf模板片段技術(shù)和Redis緩存技術(shù)對現(xiàn)有電子政務(wù)體系的缺陷進(jìn)行了改進(jìn)??啥ㄖ茢?shù)據(jù)檢索使政府部門能夠按照自己特定的需求,選擇多張數(shù)據(jù)表定制檢索字段、檢索條件,進(jìn)行多表跨部門聯(lián)合檢索。這種跨部門定制檢索功能的實現(xiàn)使得用戶與數(shù)據(jù)能夠直接進(jìn)行交互,檢索結(jié)果一張表可視化增加了數(shù)據(jù)的可閱讀性,方便了各政府部門之間的消息共通共用共享,解決了由數(shù)據(jù)孤島進(jìn)而產(chǎn)生信息孤島的問題。
(一)MVC模式
在JavaEE開發(fā)中,采用MVC開發(fā)模式進(jìn)行代碼編寫是一種普遍的策略。MVC模式將各個功能分層劃分,簡化分組開發(fā),各個功能模塊能夠有條不紊的并行開發(fā),有效的降低系統(tǒng)模塊之間的耦合性,大量代碼能夠得到重復(fù)利用,提高系統(tǒng)可擴(kuò)展性。
MVC即Model(模型)、Controller(控制器)、View(視圖),其中Controller負(fù)責(zé)事件處理,將用戶請求(http等方式)轉(zhuǎn)發(fā)給相應(yīng)的Model進(jìn)行處理并根據(jù)Model的處理結(jié)果響應(yīng)給用戶; Model負(fù)責(zé)程序的業(yè)務(wù)邏輯處理,與數(shù)據(jù)庫進(jìn)行交互提供View需要展示的數(shù)據(jù);View負(fù)責(zé)程序的界面管理,與用戶直接交互并且將Model可視化響應(yīng)(json、xml、html等方式)給用戶。其體系架構(gòu)如圖1所示。
(二)Thymeleaf模板片段
Java開發(fā)離不開Spring家族,Thymeleaf是Spring Boot官方推薦使用的模版引擎,它是一個現(xiàn)代化的、適用于Web和獨立環(huán)境的服務(wù)器端Java模板引擎,用于提供可被瀏覽器正確顯示、格式良好的模板。
Thymeleaf提供一種定義和引用模板片段(Fragment)的技術(shù),可以達(dá)到“一次定義,多處使用”的效果。這種片段技術(shù)將完整返回瀏覽器端定義的片段和服務(wù)器端查詢的數(shù)據(jù),在頁面使用Thymeleaf提供的語法進(jìn)行解析即可,更加省時高效,保證數(shù)據(jù)的完整性和安全性。
(三)Redis緩存
數(shù)據(jù)庫的查詢使用會耗費一定的時間和資源,如果在短時間內(nèi)頻繁訪問數(shù)據(jù)庫可能會導(dǎo)致數(shù)據(jù)庫崩潰。在這種情況下引入緩存會極大地提高用戶體驗和系統(tǒng)響應(yīng)速度,節(jié)約時間和資源。數(shù)據(jù)持久化框架Hibernate、Mybatis、JPA等內(nèi)置了緩存技術(shù),但是功能簡單,不適用于含有復(fù)雜業(yè)務(wù)邏輯的場景,有些框架官方也不建議使用自帶的緩存技術(shù),因此應(yīng)當(dāng)使用專業(yè)的緩存技術(shù)進(jìn)行開發(fā)。
現(xiàn)有的緩存技術(shù)有許多種:Memcached、Redis、MongoDB......Memcached、Redis是基于內(nèi)存的緩存技術(shù),Redis與Memcached相比數(shù)據(jù)不易丟失,用戶體驗相對較好;MongoDB是面向文檔的緩存技術(shù),其優(yōu)勢在于存儲海量數(shù)據(jù)。因此本文選取Redis作為緩存的技術(shù)方案。
(四)定制檢索與可視化技術(shù)方案
定制檢索即系統(tǒng)被動接受用戶根據(jù)具體業(yè)務(wù)需求定義的檢索條件,得到預(yù)想的、無需對其進(jìn)行二次處理的結(jié)果;而不是系統(tǒng)主動向用戶提供檢索條件。
用戶在瀏覽器視圖通過檢索關(guān)鍵字、檢索部門,定制檢索數(shù)據(jù)表,利用Ajax技術(shù)將表名異步傳遞給Controller。Controller接收到瀏覽器傳遞的數(shù)據(jù)表名,然后將當(dāng)前請求交由特定的Model對其進(jìn)行處理,得到對應(yīng)數(shù)據(jù)表字段Thymeleaf模板片段信息,將其返回至View。View對字段信息片段進(jìn)行解析可視化。服務(wù)器端根據(jù)用戶定制的檢索字段和檢索條件動態(tài)生成SQL查詢語句,在檢索中間數(shù)據(jù)庫中進(jìn)行檢索,檢索結(jié)果采用一張表可視化。其操作流程如圖2所示。
在電子政務(wù)系統(tǒng)中,電子監(jiān)察是其中重要的一環(huán),跨部門監(jiān)察對于打破部門間的行政壁壘,提高監(jiān)察效率意義重大,紀(jì)委監(jiān)察機(jī)關(guān)對于跨部門定制檢索數(shù)據(jù)的需求最為強烈。因此,本文以株洲市監(jiān)察信息檢索平臺為例,詳細(xì)描述數(shù)據(jù)定制檢索在電子政務(wù)中的應(yīng)用。由于數(shù)據(jù)保密的原因,文中所有數(shù)據(jù)皆為模擬數(shù)據(jù),不具有真實性。
(一)定制檢索系統(tǒng)架構(gòu)設(shè)計
政府?dāng)?shù)據(jù)大多數(shù)是涉及隱私的數(shù)據(jù),因此不能直接在智慧城市中心數(shù)據(jù)庫進(jìn)行操作,需要使用代理服務(wù)器進(jìn)行訪問保證數(shù)據(jù)安全,防止數(shù)據(jù)泄密。采用檢索中間數(shù)據(jù)庫訪問智慧城市中心數(shù)據(jù)庫,用戶在對訪問數(shù)據(jù)時會優(yōu)先在檢索中間數(shù)據(jù)庫進(jìn)行操作,如果沒有再通過智慧城市中心數(shù)據(jù)庫進(jìn)行操作,并將其復(fù)制到檢索中間數(shù)據(jù)庫中。從而確保政府?dāng)?shù)據(jù)“可用不可見”,極大的提高政府?dāng)?shù)據(jù)的安全性。用戶的檢索結(jié)果由多方式組合定制,并且數(shù)據(jù)具有實時更新性,因此Redis緩存數(shù)據(jù)庫僅用于緩存數(shù)據(jù)表字段的Thymeleaf片段信息,這樣既減輕了數(shù)據(jù)庫的壓力又提高了用戶體驗。平臺架構(gòu)如圖3所示。
(二)數(shù)據(jù)表字段信息可視化
由于政府?dāng)?shù)據(jù)表的字段多且雜,而且來源于不同的政府部門,不同表可能含有相同名稱的數(shù)據(jù)字段,數(shù)據(jù)信息和數(shù)據(jù)表字段也頻繁更新。采用傳統(tǒng)的前后端交互方式會增加許多工作量,處理過程繁瑣,使用Thymeleaf模板引擎片段技術(shù)將大幅度減少工作量。在服務(wù)器端將數(shù)據(jù)表的字段信息封裝為Thymeleaf片段返回至瀏覽器頁面,在頁面使用Thymeleaf語法解析即可將這些字段信息可視化在頁面,開發(fā)人員只需要將這些數(shù)據(jù)表按照部門來源進(jìn)行劃分即可。字段信息可視化如圖4所示。
(三)數(shù)據(jù)定制檢索與可視化
紀(jì)委監(jiān)察部門對于政府?dāng)?shù)據(jù)的檢索使用需求各不相同,因此提供用戶能夠定制的檢索條件功能意義重大。檢索平臺將所有的政府?dāng)?shù)據(jù)按照姓名、身份證號碼、車牌號、工商字號四種關(guān)鍵字進(jìn)行劃分,再將每一類中按照政府?dāng)?shù)據(jù)的來源部門進(jìn)行細(xì)分(人口登記中心、不動產(chǎn)登記中心、民政局、財政局、行政審批中心、工商管理局)?;诖?,用戶能夠定制檢索條件和檢索字段查詢需要的信息,檢索結(jié)果采用一張表可視化,對結(jié)果信息的捕獲提供了極大的便捷。
圖5是利用五張表聯(lián)合檢索姓名為“張三”的結(jié)果信息,采用一張表可視化(為了展示方便,每張表只選擇了部分字段)。
跨部門檢索會產(chǎn)生不同部門、不同類別的數(shù)據(jù)表信息,每類數(shù)據(jù)表含有不同的字段信息,將這些數(shù)據(jù)表信息準(zhǔn)確完整地顯示在一張表中加深了數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系,有利于信息的提取與分析,紀(jì)委監(jiān)察部門也能夠根據(jù)檢索結(jié)果精準(zhǔn)定位監(jiān)察信息。
由于目前的電子政務(wù)系統(tǒng)暴露出不能應(yīng)對實際業(yè)務(wù)辦理時多樣化需求的問題,本文采用SSM框架、Thymeleaf模板片段、Redis緩存等技術(shù)實現(xiàn)了一個能夠跨部門進(jìn)行數(shù)據(jù)信息檢索的電子政務(wù)數(shù)據(jù)定制檢索平臺。檢索中間數(shù)據(jù)庫的所有數(shù)據(jù)表信息和字段信息準(zhǔn)確良好的顯示在瀏覽器頁面,監(jiān)察部門能夠利用多種定制條件信息檢索。相較于傳統(tǒng)的檢索方式而言,這種方式能夠定制檢索條件,滿足業(yè)務(wù)辦理的各種需求,全面提高了紀(jì)委監(jiān)察部門的行政效能,人民群眾也獲得了滿意的公共服務(wù)。借助于智慧城市高效實時的特性,平臺也能實時獲取到最新數(shù)據(jù),解決了以往數(shù)據(jù)遺漏、數(shù)據(jù)脫節(jié)、更新緩慢的問題。多表聯(lián)合查詢時,當(dāng)數(shù)據(jù)量過大時如何減少查詢檢索時間仍然是需要研究的難題,后續(xù)將繼續(xù)進(jìn)行優(yōu)化。
作者單位:成都理工大學(xué)地球科學(xué)學(xué)院