摘要:隨著智能手機的普及, 微信等社交APP逐漸取代傳統網站成為公眾獲取新聞、信息及服務的主要手段。本文提出一種基于微信公眾號的電子政務服務平臺的設計方案, 并進行系統設計;通過使用瀏覽器本地緩存技術以及CDN技術對系統整體性能進行優化, 提高了用戶訪問響應速度以及頁面加載速度。該系統實現了政務信息查詢, 并且提供了便攜的政務服務功能, 以實現政務信息查詢便捷化、行政服務網絡化, 確保政務信息及時披露, 提高政府部門信息化建設水平和公共服務能力。

  一、引言

  隨著現代計算機、網絡通信等技術的不斷發展, 信息化建設愈加受到各個政府部門的重視。而傳統的政府網站由于訪問不方便, 相關政務、行政服務信息更新不及時, 導致網站瀏覽量低, 政務信息披露不及時。已無法滿足在當今快節奏的生活中, 民眾對于政務及行政服務信息的及時了解、查詢的需求。在這種形勢下, 智能手機的發展和微信等社交平臺的普及, 為現代政府部門信息化建設帶來了新的機遇及挑戰。政務微信服務平臺具有傳統政府網站無可比擬的優越性。微信本身的跨平臺性, 使政務微信服務平臺具有一個統一入口, 方便管理。利用微信本身的多媒體功能, 使政務微信服務平臺可以提供更豐富的功能, 提高辦事效率。微信以手機為終端, 使政務微信服務平臺可以真正意義上實現政務信息及行政服務隨處可查, 隨處可得, 簡化了行政服務流程, 確保了政務信息的及時披露。因此, 對于政務微信服務平臺的研究具有一定的現實意義。本文基于微信公眾號設計一個電子政務服務平臺。該平臺旨在促進政府部門信息化建設的全面、協調、可持續發展。

  二、相關背景

 ?。ㄒ唬┪⑿殴娖脚_

  自2012年8月23日正式上線以來, 微信公眾平臺的宗旨是為用戶創造一種良好的體驗, 在媒體中創建一種全新的生態循環。微信公眾平臺的賬號根據運營的目的和運營主體的差異性分為以下2種, 一種稱為服務號, 其運營只能由組織來負責, 這些組織既可以包括盈利為主的企業、媒體, 也可以包括以非盈利為目的的政府和公益組織, 另一種稱為訂閱號, 其運營既可以是組織, 也可以是個人, 但個人不能參與運營服務號。

  作為微信公眾平臺的賬號類型之一的服務號與微型官網相似, 是組織開展微信社交的站點, 其宗旨是為廣大用戶提供能夠自定義的多樣化服務, 這種服務通過自定義的菜單來提供, 菜單與后臺基于移動設備的網站相互結合, 與現有的系統進行對接, 從而實現了服務的跨平臺性。

 ?。ǘ┱瘴⑿偶夹g方案

  通過對現有的大量的政務微信公眾號分析和研究, 發現現在的政務微信公眾號的技術方案主要依靠微信公眾號的2大功能來實現自身的業務, 分別為:

  1、推送圖文消息。該功能需要政務微信運營者使用微信官方的后臺管理系統對要推送的圖文信息進行編輯, 并完成推送操作。使用該功能, 主要可以實現將每日的重點新聞、政策實施和解讀等重要的政務信息推送給公眾。

  2、自定義菜單。該功能在現在的政務微信的技術方案中, 是實現政務微信絕大部分業務功能的主要技術手段。微信所提供的自定義菜單有2種行為:一是點擊會推送圖文信息;二是點擊后打開一個Web頁面。

  在現行的技術方案中, 主要依靠自定義菜單的第2種行為, 通過在微信公眾號中打開一級Web頁面, 并在一級Web頁面中設置鏈接鏈到二級Web頁面, 乃至三級Web頁面, 并使用Web頁面來完成政務微信的各種功能。通過這種機制, 開發者可以將微信公眾號實質性地建設成一個Web網站, 或者說是一個Web應用, 并將微信客戶端實質性地轉變成微信瀏覽器。微信所提供的這種將微信公眾號轉變為Web網站、Web應用的機制, 使得開發者可以在微信公眾號的基礎平臺之上, 通過使用傳統Web開發方式和技術對微信公眾號進行二次開發, 從而極大地擴展了微信公眾號所能提供的服務, 豐富了微信公眾號的功能。

  本文基于上述技術方案, 通過微信提供的自定義菜單, 將本平臺建設為一個Web網站、Web應用, 并使用Web開發技術和Web頁面的方式, 實現本平臺的所有主體功能。

  三、系統設計

 ?。ㄒ唬┫到y需求設計

  基于微信公眾號的政務服務平臺系統的建設是為了改變我國政務信息披露、更新不及時, 公眾查詢政務、公共服務等信息不方便的現狀。實現政務信息及行政服務隨處可查, 隨處可得。本系統以微信公眾號為平臺, 集政務信息、行政服務查詢、事務辦理、費用繳納等功能為一體, 利用現代信息技術作為支撐, 為政府部門在加快信息化建設、及時公開政務信息、提高部門工作效率等方面發揮作用。

 ?。ǘ┫到y架構設計

  引入微信后, 微信將成為電子政務系統的平臺和統一入口。微信的開發模式可以將系統的功能和服務引入到特定的服務器來實現??梢哉J為, 引入微信是對已有電子政務系統前端的部分改造, 新的微信政務服務平臺可以方便快捷地與現有的電子政務系統進行無縫銜接。引入微信后的電子政務系統架構如圖1所示。


圖1 引入微信后的電子政務系統架構

 ?。ㄈ┫到y功能設計

  本系統功能由3部分組成, 分別為:政務公開、事務辦理和繳納費用。

  1、政務公開

  政務公開模塊是政府部門通過本平臺實施“問政于民”政策的一個窗口, 即有選擇性地將政府部門的一些日常政務信息向廣大民眾公開, 并接受民眾的監督。參與政務公開的用戶主體為部門用戶和民眾。政務公開由新聞動態、規劃計劃、重大項目、社會公益、統計數據和人事信息等子欄目組成。這些政務信息都是由所在部門用戶負責編輯完成的。其用例圖如圖2所示。

圖2 政務公開用例圖

  2、 事務辦理

  事務辦理是政府部門和廣大民眾的一個橋梁, 為廣大民眾提供了事務辦理流程查詢和辦理等功能, 更好地提升政府部門的公共服務能力。該模塊中主要包括5個子模塊, 即發布服務章程和事宜、查看服務章程和事宜、請求服務、辦理服務請求和查看辦理結果。其中, 由部門用戶負責完成的模塊是發布服務章程和辦理服務請求, 而民眾可以查看服務章程, 請求服務并查看請求的最終處理結果。其用例圖如圖3所示。

圖3 事務辦理用例圖

  3、繳納費用

  傳統的政務微信公眾號主要以信息發布、政務信息查詢功能為主。隨著微信團隊對于各種認證類型的微信服務號和訂閱號微信支付功能的開通, 為政務微信公眾號帶來新的活力和機遇。通過微信支付接口實現繳納費用功能是本系統的特色功能。應用于不同的場景, 可以完成不同的功能, 諸如:水電費繳納、交通罰款繳納等, 從而能夠真正實現完整的在線服務。政務微信的在線支付功能及其支付方式的多樣化是其區別于傳統的電子化公共服務平臺的主要特征之一。其擴充了政務微信公眾號的功能, 并解決某些政府部門的收費項目收費困難等問題, 同時極大地方便了公眾繳納相關費用, 提高了政府部門辦事效率。該模塊主要包括2個子模塊:發布繳納費用項目和繳納費用。部門用戶通過后臺系統的發布繳納費用項目模塊發布收費項目。公眾通過繳納費用模塊查看需要繳費的事項并通過微信支付繳納費用。

  四、系統實現

 ?。ㄒ唬╉撁嬖O計

  本平臺的后臺程序使用Java開發, 保證平臺的穩定性與可靠性。前臺頁面基于HTML5、CSS3、Java 以及Ajax技術進行設計和開發。在保證功能性的同時, 提升頁面的美觀程度, 并對用戶操作流程進行優化, 保證本平臺的用戶友好性, 使本平臺簡潔、易使用。平臺的主界面為微信公眾號頁面, 通過設置微信公眾號的自定義菜單以及二級自定義菜單的跳轉鏈接, 來實現平臺的各個功能頁面。平臺的功能頁面主要有:新聞動態、重大項目、統計數據、事務辦理、繳納費用等。部分頁面如圖4所示。

圖4 部分頁面展示

 ?。ǘI務實現

  平臺的整體業務由3部分組成:

  1、政務公開。部門員工登錄PC端管理系統后, 進入信息發布頁面, 選擇待發布信息的欄目并填寫信息的標題。完成標題的填寫后, 即可填寫信息的正文部分。如果正文部分需要插入圖片, 則員工需要將待插入的圖片上傳到系統中。上傳過程中, 系統會對上傳圖片的大小、格式等信息進行驗證, 如果驗證通過, 則提示上傳成功, 并可以將該圖片插入到政務部分;如果驗證失敗, 則彈出驗證失敗提示信息窗口, 并要求員工修改后重新上傳。最后保存信息并提交給系統。信息發布成功后, 公眾就可以在公眾號里相應的Web頁面查看信息。信息發布流程如圖5所示。

圖5 發布信息流程圖

  2、事務辦理。民眾在向政府部門提出事務辦理請求時, 其過程為:首先, 民眾用戶打開請求頁面, 選擇請求服務的類別, 然后輸入服務的標題, 系統驗證該標題是否符合規范, 如果不符合規范則彈出提示信息, 并讓用戶重新輸入, 如果符合規范則輸入服務的詳細內容, 最后提交給系統驗證, 如果驗證失敗將彈出驗證失敗的提示信息, 反之則保存服務請求, 并返回到公共服務管理頁面。其流程如圖6所示。

圖6 請求服務流程圖

  公眾除了以上述方式請求服務外, 也可在公眾號中發送文本信息, 如各類咨詢、與公眾號進行互動、獲取相關服務。平臺后臺系統在接收到民眾發送的文本信息后, 對其進行文本分析, 并提取其中的關鍵字。后臺系統根據提取到的關鍵字, 在數據庫中的關鍵字匹配規則表中進行檢索。如果檢索失敗, 即系統中沒有關于該關鍵字的匹配規則, 則向用戶發送一條預設的匹配失敗的信息, 包括:關鍵字匹配失敗信息、幫助信息和熱點問題。如果檢索成功, 則將該關鍵字所對應的文章或信息發送給用戶。部門用戶可以通過后臺系統中的關鍵字匹配管理模塊新增新的關鍵字匹配規則, 并對現有的關鍵字匹配規則進行修改和刪除等操作。

  3、繳納費用。公眾通過點擊繳納費用菜單打開繳納費用的Web頁面。此時公眾需要在頁面中輸入繳納費用所需的個人信息。根據應用場景的不同, 所需的個人信息也不同。比如繳納水電費, 需要公眾輸入自己的家庭住址、室號等信息;又比如繳納交通罰款, 需要公眾輸入自己的車牌、車架編號等信息。通過這些個人信息, 在系統中對公眾進行標識, 從而查詢出公眾需要繳納的金額等信息。本系統在此基礎上, 將上述個人信息與公眾的微信標識Open Id進行綁定, 以方便公眾的再次使用。

  公眾提交個人信息后, 系統根據這些信息在數據庫中查詢待繳費事項、金額等信息, 系統將這些信息以及政務微信的應用表示App Id、用戶標識Open Id、簽名Sign等參數封裝成XML, 并將該XML發送給微信的統一下單地址, 得到prepay_id, pay Sign等支付參數。公眾選擇待繳事項后, 進入支付頁面。在支付頁面中, 輸入繳納金額后, 點擊支付, 發起支付請求。微信客戶端接收到支付請求后, 在頁面中調用JS API接口向微信支付系統請求支付, 并將得到的prepay_id, pay Sign等支付參數通過HTTPS協議傳輸給微信支付系統。微信支付系統驗證得到的支付參數的合法性和支付發起域名的權限。驗證通過后, 將驗證結果返回給微信客戶端, 并要求用戶給予支付授權。此時支付頁面上會要求用戶輸入支付密碼, 用戶確認支付并輸入支付密碼后, 微信支付系統驗證該授權并完成支付操作。政務微信后臺系統收到支付結果后, 將支付信息加密存儲在數據庫, 以便用戶可以查詢歷史支付記錄, 并且通知微信客戶端, 顯示支付成功頁面, 展示支付信息。繳納費用的時序如圖7所示。

圖7 繳納費用時序圖

  五、系統性能優化

  通過對現有的大量政務微信公眾號以及其他類型公眾號的技術方案的分析和研究, 發現現有的公眾號都可以視為一種以微信為入口的Web網站或Web應用。微信所提供的這種將微信公眾號轉變為Web網站或Web應用的機制, 使得微信公眾號得以突破微信的限制, 通過Web的方式實現更多的功能。然而這種方式同樣帶來新的問題。

  微信公眾號是運行在微信APP之上的, 微信官方團隊對微信自身的性能做了優化, 諸如信息的發送和接收、請求的響應的方面, 所以在使用微信的基本功能, 諸如聊天、公眾號中接收圖文消息等, 并沒有明顯的延遲感。然而微信官方團隊并沒有, 也沒辦法對于微信公眾號中所使用的Web頁面進行性能優化。而在微信公眾號中使用Web頁面, 將微信公眾號建設成一個Web網站的技術方案已是業界主流的方案。所以本文針對微信在Web優化方面的不足, 對本平臺運用Web優化技術進行性能優化, 以減少頁面加載時間。

 ?。ㄒ唬┬阅軆灮桨?/p>

  1、設置緩存

  微信瀏覽器使用緩存來減少HTTP請求數量和HTTP響應大小。通過對頁面中靜態資源使用緩存可以避免重復加載資源, 提高資源的重復利用率, 同時可以減少服務器通信壓力、提高前端頁面性能。

  設置Expires頭部是啟用緩存最常用的方式之一, 通過設置HTTP頭部的Expires字段來通知瀏覽器對于數據報中的數據進行緩存, 并設置失效時間, 在每次請求時對其驗證, 來規定瀏覽器的行為:使用緩存數據或到服務器中抓取新的數據。然而以這種方式進行緩存時, 必須對服務器及瀏覽器的時間進行同步, 從而確保Expires頭部中設定的失效時間可以正確地運行。

  通過設置Cache-Control中的max-age字段的方式來對數據進行瀏覽器端的緩存時, 可以避免每次請求時在瀏覽器與服務器之間進行時間同步, 不過在HTTP1.1協議中才可以使用這種方式。

  ETag用于檢測微信瀏覽器緩存中的組件是否與服務器上的組件一致。設置或移除ETag頭部信息, 會對前端頁面的加載速度產生較大影響。在適當的情況下除ETag頭部可以提升系統整體效率, 避免瀏覽器在本地緩存時, 對數據的重復性下載。

  在政務微信公眾號的開發中對相關資源設置緩存, 可以有效提高公眾在使用政務公眾號時的流暢度, 減少政務微信公眾號推送圖文消息時的響應延遲, 并且通過設置緩存的有效時間, 定期清理緩存, 可有效避免因為設置緩存帶來的微信占用內存過大所導致的微信加載速度、響應速度過慢的問題。

  2、使用CDN

  由于HTTP協議的無狀態特性, 為了在Web系統中存儲用戶信息, 記錄用戶的登錄狀態, 引入了Cookie技術。Cookie技術可以在HTTP無狀態的環境中, 標識Web系統中的用戶, 然而Cookie技術的引入使得HTTP請求數據大大增加, 增加了HTTP請求響應時間。

  在這個前提下, 有必要減少帶有Cookie信息的HTTP請求數, 以減少整體Web系統的響應時間。將靜態資源 (圖片、CSS文件、JS文件等) 放在一個不需要Cookie的獨立域名之上, 這是優化這個問題的一個基本思想, 而內容分發網絡 (Content Delivery Network, CDN) 則是基于這個思想的一個解決方案。

  CDN優化了用戶網絡請求過程, 它根據當前網絡中, 實時的網絡流量情況, 以及各個節點之間的連接速度、負載狀況和節點到用戶間的地理位置距離等信息, 將用戶的請求重新導向至于當前用戶來說最優的節點。CDN系統通過網絡定位重定向等技術, 減少了資源請求響應時間, 從而提高資源的加載速度。

  通過使用CDN網絡系統, 可以加快政務微信公眾號中靜態資源的加載速度, 提升政務微信公眾號的整體性能, 以及公眾的用戶體驗, 加快政務公眾號對公眾請求的響應速度。

 ?。ǘ┓桨笇崿F

  1) 通過在系統服務器中的Apache的配置文件中添加如下內容來對本系統中的圖片、CSS文件、JS文件等靜態資源啟用微信瀏覽器端的緩存。


  用戶在第一次通過公眾號訪問頁面時, 公眾號通過微信服務器向系統服務器發出頁面請求。系統服務器根據請求報中的數據, 返回相應頁面的HTML文檔數據, 以及其中包含的圖片、CSS文件、JS文件等靜態資源。與此同時, 系統服務器根據Apache配置文件中的標注, 在返回靜態資源的報文的報頭中, 添加Expires、Cache-Control (Max Age) 、mod_expires、Etag等頭部信息, 通知微信瀏覽器, 對這些靜態資源進行本地緩存, 并通知瀏覽緩存最大時間、本地緩存資源與服務器資源驗證方式等。在公眾后續請求相同頁面時, 瀏覽器驗證本地緩存資源是否失效, 同時向系統服務器發出請求, 驗證頁面資源是否在緩存期間發生了改變。如果系統服務器返回304狀態碼, 即通知瀏覽器頁面資源無改變, 并且瀏覽器本地資源未過期, 則瀏覽器直接使用本地緩存數據渲染頁面。

  2、本系統使用CDN技術來應對網絡擁塞、命中率低等影響數據傳輸效率的問題, 改善頁面請求過程, 提高用戶訪問響應速度, 數據的傳輸速率、穩定性以及命中率。

  使用CDN優化后的頁面請求過程如下:

  (1) 公眾訪問頁面, 微信公眾號通過微信APP發出頁面請求, 提供頁面URL。

  (2) 微信瀏覽器調用本地DNS解析庫對請求里的URL進行解析。CDN系統對域名解析過程進行了調整, 本地解析后得到的是該URL所對應的CNAME記錄。此時瀏覽器會對得到的CNAME記錄再次進行解析。

  (3) 此次解析后得到CDN專用DNS服務器的IP地址, 瀏覽器向該IP地址發出地址解析請求, CDN專用DNS服務器解析后, 將CDN的緩存服務器IP地址返回用戶。用戶向CDN的緩存服務器發起內容URL訪問請求。

  (4) CDN的緩存服務器捕獲用戶的URL訪問請求后, 根據請求中的URL, 在cache中查找記錄, 得到URL所對應的IP地址。然后服務器對該IP地址提交訪問請求, 系統服務器響應訪問請求后, 將所請求的數據返回給緩存服務器。

  (5) 緩存服務器從系統服務器得到數據后, 首先會本地進行緩存, 以備之后請求相同數據時直接返回給客戶端;同時把獲取的數據返回給客戶端, 完成數據服務過程。

  (6) 客戶端接收到返回的數據后, 渲染頁面, 展示給用戶, 完成整個頁面請求過程。

 ?。ㄈΡ葴y試

  從表1本系統與傳統政務微信公眾號優化前后的對比數據分析可以看出, 在傳統的政務微信技術方案的基礎上, 運用優化技術對政務微信公眾號的相關環節進行優化, 可以有效減少政務微信的響應時間, 提升政務微信整體性能, 以及公眾在使用政務微信時的用戶體驗。

  表1 本系統與傳統政務微信公眾號優化前后的對比數據分析/ms

  六、結束語

  本文根據系統的需求分析, 完成了基于微信公眾號的政務服務平臺的設計與實現。將該平臺分為系統管理、政務公開和公共服務3個子系統, 實現政務信息隨處可查, 行政服務便捷辦理, 對確保政務信息及時披露, 提高政府部門辦事效率方面具有非常重要的價值。在實現功能的基礎上, 本文對于系統的整體性能進行了優化。對于系統中的諸如圖片、CSS文件、JS文件等靜態資源, 使用瀏覽器本地緩存技術, 加快了靜態資源的加載速度, 并且使用CDN技術改善頁面請求過程, 以實現負載均衡, 降低網絡擁塞, 調高公眾訪問頁面的響應速度。

  微信已成為現代人不可或缺的社交工具, 將微信應用于電子政務系統當中, 既能發揮微信作為社交工具使用率高、影響范圍廣的優點, 也可以借助電子政務系統強大的后臺支持功能完善政府的服務, 對更好地推進政府工作, 為公眾提供更優質、更貼心的公共服務具有重要的意義。

  參考文獻:略

  作者:楚嘉琦 劉從軍

責任編輯:qinpeng