◆甘錚
基于分層模式構(gòu)建的省級政務熱線平臺研究與實現(xiàn)
◆甘錚
(廣西壯族自治區(qū)信息中心 廣西 530201)
為解決了省級熱線平臺接口復雜、管理困難、維護成本高、數(shù)據(jù)安全保障等問題,滿足跨部門、跨層級的業(yè)務數(shù)據(jù)流轉(zhuǎn),實現(xiàn)數(shù)據(jù)統(tǒng)一出入口、統(tǒng)一數(shù)據(jù)規(guī)范、統(tǒng)一技術(shù)體系、統(tǒng)一安全標準、統(tǒng)一業(yè)務協(xié)同的新模式,本文從利用平臺分層模式結(jié)合FUI、DTO、CommonDao等技術(shù)框架以及RabbitMQ、redis、Sharding-JDBC、RESTful服務接口管理等核心技術(shù)優(yōu)勢進行省級熱線平臺的研究和建設,充分地利用了基礎(chǔ)設施資源、節(jié)約建設成本,取得了較好的效果。
政務熱線;系統(tǒng)平臺;分層模式;業(yè)務協(xié)同;數(shù)據(jù)安全
我國政務熱線發(fā)展逐步走向成熟,在部門熱線不斷整合的基礎(chǔ)上成為綜合性的政務熱線中心,提升了服務便捷性和質(zhì)量。但由于歷史原因,省級熱線核心平臺仍存在數(shù)據(jù)接口復雜、管理困難、維護成本高等問題。為此,本文提出利用分層模式和相應關(guān)鍵技術(shù)進行省級熱線平臺的構(gòu)建,實現(xiàn)擁有海量、真實、實時數(shù)據(jù)和易于平臺整合、數(shù)據(jù)動態(tài)化管理的政務熱線平臺,為政府決策提供依據(jù)及數(shù)據(jù)支持。
熱線平臺總體架構(gòu)(如圖1所示)基于信息安全與管理體系和運營規(guī)范標準體系的規(guī)范框架下,采用分層模式來構(gòu)建系統(tǒng),這種模式可以分解子任務組的程序,讓每個子任務都處于特定的抽象層次,為下一層提供更高的服務。平臺的整體構(gòu)建充分整合了政府服務及社會化服務,并實現(xiàn)對政府服務全程監(jiān)督監(jiān)控及績效評估。
圖1 熱線平臺總體架構(gòu)
基于政務云資源進行建設部署,是平臺建設的基礎(chǔ)和前提。
此為上層提供數(shù)據(jù)支撐,以信息整合共享標準和業(yè)務信息為基礎(chǔ),收集和整理各類信息數(shù)據(jù),建立相應業(yè)務信息數(shù)據(jù)庫,利用數(shù)接口和動態(tài)化接口管理機制實現(xiàn)信息資源的安全交換與共享。主要包括訴求數(shù)據(jù)庫、業(yè)務知識庫、協(xié)同數(shù)據(jù)庫、事項數(shù)據(jù)庫與語音數(shù)據(jù)庫等。
采用面向SaaS(Software as a Service)應用的多租戶技術(shù)框架,構(gòu)建熱線平臺SaaS模式云服務。業(yè)務支撐平臺主要由用戶管理、授權(quán)管理、安全管理、數(shù)據(jù)交換及業(yè)務管理共同構(gòu)成。提供滿足WFMC規(guī)范的標準工作流引擎和工作表單定制的功能,同時可以在工作流引擎的支持下開發(fā)、掛接其他業(yè)務應用;提供完善的業(yè)務資料管理功能,解決各種文檔、表單、資料形成處理完畢后的數(shù)據(jù)匯總,同時提供強大的檢索與查找功能。主要包括表單引擎、流程引擎、規(guī)則引擎、可視化引擎與智能化引擎等,為各類業(yè)務應用提供一系列通用化服務。
業(yè)務應用體系是政務熱線服務平臺建設的主要內(nèi)容,包含全域協(xié)同平臺、中心管控平臺、智能AI平臺、大數(shù)據(jù)分析平臺與智能知識庫,是搭建平臺建成的主要內(nèi)容。
服務是政府熱線服務平臺建設的出發(fā)點和落腳點。平臺可提供電話、微信、網(wǎng)站等多種服務接入方式,同時提供自助下單、知識服務、在線客服、視頻客服等對外服務。
熱線平臺采用JavaEE作為基礎(chǔ)技術(shù)路線,JavaEE是一套針對企業(yè)級分布式應用的計算環(huán)境。它定義了動態(tài)Web頁面功能(Servlet和JSP)、商業(yè)組件(EJB)、異步消息傳輸機制(JMS)、名稱和目錄定位服務(JNDI)、數(shù)據(jù)庫訪問(JDBC)、與子系統(tǒng)的連接器(JCA)和安全服務等。
熱線平臺從省級熱線業(yè)務協(xié)同工作的角度,進行平臺前后端的縱向與橫向技術(shù)框架設計。
(1)縱向架構(gòu)
通過FUI、DTO、持久層等技術(shù)架構(gòu)的設計,構(gòu)建熱線平臺后端服務能力的支撐體系。
① FUI架構(gòu)
FUI架構(gòu)(如圖2所示)包含熱線業(yè)務系統(tǒng)前端框架、互聯(lián)網(wǎng)門戶類項目骨架以及移動跨平臺前端開發(fā)框架,支持多類型、多平臺系統(tǒng)對接的開發(fā)需求,為熱線平臺多渠道受理奠定基礎(chǔ),通過采用HTML5技術(shù),支持IE11,在chrome、firefox上有更好的體驗效果,統(tǒng)一界面風格、保證美觀度的同時告別單一的語音訴求渠道,豐富了微信、網(wǎng)站、公眾號等種訴求渠道。
② DTO架構(gòu)
CommonDTO技術(shù)是熱線平臺得以實現(xiàn)前后分離的黏合劑,它在前端FUI組件與服務端Controller處理之間搭建了一座橋梁。整個功能架構(gòu)(如圖3所示)引用JSF的階段處理理念,清晰了web請求從開始到結(jié)束,完整地處理流程。運用了MVC模式,將每個表單控件組裝成model,使得業(yè)務處理與數(shù)據(jù)模型的封裝分離。
圖2 FUI架構(gòu)
圖3 DTO架構(gòu)
③持久層架構(gòu)
采用CommonDao對象關(guān)系映射框架(如圖4所示),對JDBC進行了非常輕量級的對象封裝。將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個全自動的ORM框架,可以自動生成SQL語句,自動執(zhí)行,使得熱線系統(tǒng)開發(fā)人員可以方便地使用對象編程思維來操縱數(shù)據(jù)庫。同時它支持弱類型的SQL語句、key-value形式的弱類型編程,可以應用在任何使用JDBC的場合,不僅局限在web,完成數(shù)據(jù)持久化的重任,同時基于CommonDao的數(shù)據(jù)訪問層對于業(yè)務系統(tǒng)適配國產(chǎn)化數(shù)據(jù)庫乃至分析型數(shù)據(jù)庫的改造提供了便利,在保證調(diào)用層寫法不變的情況下,使熱線平臺除了支持Mysql、Oracle、Sqlserver等傳統(tǒng)關(guān)系型數(shù)據(jù)庫之外,還支持達夢、人大金倉、瀚高、神通、Gaussdb等國產(chǎn)數(shù)據(jù)庫,多種數(shù)據(jù)存儲方式也為將來的熱線平臺進一步完善改造奠定基礎(chǔ)。
圖4 CommonDao關(guān)系映射框架
(2)橫向架構(gòu)
基于RabbitMQ技術(shù)實現(xiàn)前端業(yè)務流程異步處理(如圖5所示),在消息隊列機制下進行工作流的流轉(zhuǎn),可以有效提高具體業(yè)務流轉(zhuǎn)的穩(wěn)定性和效率,主要如首頁相關(guān)信息加載、歸口類型下拉樹等高并發(fā)的業(yè)務場景。同時,使用Redis緩存技術(shù),應用于業(yè)務編號的生成機制和組織架構(gòu)等常用數(shù)據(jù)緩存中,可以避免同一時間的業(yè)務生成同樣的業(yè)務編號,避免流程數(shù)據(jù)沖突導致平臺業(yè)務異常的問題,同時減小數(shù)據(jù)庫服務器壓力,提升平臺性能和業(yè)務應用的流暢性。
圖5 RabbitMQ業(yè)務流程異步處理
(3)集成框架
平臺內(nèi)部由多個系統(tǒng)、組件按照集群架構(gòu)共同協(xié)作處理用戶的操作請求,整合為一個系統(tǒng)端面向用戶提供分布式架構(gòu)服務能力。整個系統(tǒng)內(nèi)部協(xié)作采用黑盒流程,實現(xiàn)用戶端交互體驗和使用單獨系統(tǒng)沒有差異。集成框架主要由分布式應用、分布式消息中間件、分布式緩存、分布式數(shù)據(jù)庫管理等技術(shù)架構(gòu)組成。
①分布式應用技術(shù)
實現(xiàn)讓應用支持橫向擴展,應對日均上萬的業(yè)務辦理量熱線的海量數(shù)據(jù)問題,通過增加應用服務器的方式來將應用集群化,將用戶請求分流到各個服務器中,從而達到提升系統(tǒng)負載能力的目的。
②分布式消息中間件技術(shù)
熱線平臺以RabbitMQ技術(shù)作為分布式消息中間件,由消息隊列異步處理熱線業(yè)務數(shù)據(jù)。RabbitMQ消息隊列異步處理是基于Erlang的分布式特性來實現(xiàn)的,主要實現(xiàn)原理為:RabbitMQ底層通過Erlang架構(gòu)來進行,Rabbitmqctl會啟動Erlang節(jié)點,并基于Erlang節(jié)點來使用Erlang系統(tǒng)連接RabbitMQ節(jié)點,在連接過程中Erlang節(jié)點需要通過交換正確的Erlang Cookie和節(jié)點名稱以獲得認證。
③分布式緩存技術(shù)
熱線平臺緩存主要采用分布式緩存redis中間件技術(shù)來實現(xiàn),將平臺頻繁訪問但更改頻率低的業(yè)務數(shù)據(jù)存入緩存,是熱線平臺中必不可少的模塊,也是平臺成為高并發(fā)高性能架構(gòu)的一個關(guān)鍵組件。
④分布式數(shù)據(jù)庫管理技術(shù)
數(shù)據(jù)庫集群由于在架構(gòu)、成本、擴張性方面都會受到所采用DB類型的限制,于是需要從應用程序的角度來考慮改善系統(tǒng)架構(gòu),熱線平臺分布式數(shù)據(jù)庫管理主要采用Sharding-JDBC技術(shù),其直接封裝JDBC API,可以理解為增強版的JDBC驅(qū)動,適用于任何基于Java的ORM框架,如:JPA、Hibernate、Mybatis、Spring JDBC Template和直接使用JDBC,或基于任何第三方的數(shù)據(jù)庫連接池,如:DBCP、C3P0、BoneCP、Druid等?;赟harding-JDBC數(shù)據(jù)管理技術(shù),通過掛接不同的業(yè)務數(shù)據(jù)表,來實現(xiàn)不同業(yè)務數(shù)據(jù)的錄入、修改、查看和輸出打印等功能。通過分布式數(shù)據(jù)庫管理技術(shù)平臺應用不用再編寫代碼,通過后臺配置就可以實現(xiàn)一個數(shù)據(jù)表管理模塊的動態(tài)創(chuàng)建和菜單掛接,并可以輕松實現(xiàn)查詢模板、統(tǒng)計報表模板的創(chuàng)建,從而大大縮短開發(fā)周期,并確保平臺的穩(wěn)定性和安全性。
數(shù)據(jù)交換是熱線平臺與成員單位之間信息資源交換與處理的基礎(chǔ),根據(jù)數(shù)據(jù)共享實時性要求的不同,數(shù)據(jù)交換業(yè)務由接口服務、數(shù)據(jù)交換管理系統(tǒng)構(gòu)成,提供交換節(jié)點之間的數(shù)據(jù)及文件等的抽取、轉(zhuǎn)換、傳輸和加載等數(shù)據(jù)交換能力和服務交換的管理,確保各級熱線中心之間數(shù)據(jù)交換過程中的安全,對交換流程、交換節(jié)點、交換量等進行統(tǒng)一配置和監(jiān)控(如圖6所示)。
圖6 平臺數(shù)據(jù)交換架構(gòu)
接口服務系統(tǒng):為滿足上級與下級業(yè)務平臺之間的業(yè)務協(xié)同、實時服務信息、業(yè)務匯聚情形而搭建的數(shù)據(jù)交換系統(tǒng),涵蓋了接口發(fā)布、服務調(diào)用和日志的統(tǒng)一管理。
數(shù)據(jù)交換管理系統(tǒng):實現(xiàn)對交換平臺用戶、接入權(quán)限、交換日志和交換過程監(jiān)控的統(tǒng)一管理。
(1)數(shù)據(jù)交換技術(shù)
平臺各成員單位臺交換數(shù)據(jù)方式通過部署RESTful服務接口來實現(xiàn)實時服務信息接口由上級平臺部署供下級調(diào)用,達到數(shù)據(jù)交換。服務接口調(diào)用方式適用于實時服務信息上報、業(yè)務匯聚和業(yè)務協(xié)同辦理等情形。服務數(shù)據(jù)交換格式:JSON數(shù)據(jù)格式,編碼采用UTF-8方式,附件處理采用BASE64編碼。
(2)服務接口安全技術(shù)
為保證RESTful服務接口調(diào)用安全性,服務接口均基于Token驗證機制,以保證接口服務安全可靠。Token代表在計算機身份認證中的令牌,意味著必須通過這個標識才能訪問一些服務,它具有時效性。其驗證機制技術(shù)原理為:
Clieng_Id和Client_secret代表著設區(qū)市和省直單位在線服務平臺需要接入省級平臺時分配的賬號密碼,必須根據(jù)該賬號和密碼才能獲取Token,進而實現(xiàn)接口的接入。向省平臺申請授權(quán)成功后,省級平臺會分配一個Clieng_Id和Client_secret給設區(qū)市和省直單位相應在線服務平臺。
第一步:調(diào)用正式請求前需先調(diào)用token認證請求,請求路徑:
http://ip:port/cns-gxbmfw-ywxtrest/rest/token/getToken
請求參數(shù):
第二步:如果clieng_Id和client_secret校驗成功,接口會返回以下格式的數(shù)據(jù),access_token就是接入token,expires_in就是過期時間(單位為秒),如果過期了,則需要重新調(diào)用此接口(如圖7所示)。
圖7 clieng_Id和client_secret的校驗
第三步:客戶端自己保存獲取到的token,如果過期了,則重新調(diào)用上述接口刷新token,驗證token通過后接入系統(tǒng)。
本文利用分層架構(gòu)模式,結(jié)合FUI、DTO、CommonDao等技術(shù)框架以及RabbitMQ、redis、Sharding-JDBC、RESTful服務接口管理等核心技術(shù)優(yōu)勢進行省級熱線平臺的建設,解決了省級熱線平臺接口復雜、管理困難、維護成本高、數(shù)據(jù)安全保障等問題,滿足了跨部門、跨層級的業(yè)務流轉(zhuǎn),實現(xiàn)數(shù)據(jù)統(tǒng)一出入口、統(tǒng)一數(shù)據(jù)規(guī)范、統(tǒng)一技術(shù)體系、統(tǒng)一安全標準、統(tǒng)一業(yè)務協(xié)同的新模式,最大程度利用了基礎(chǔ)設施資源,節(jié)約建設成本,也為省級政務熱線開展熱線歸并、國家與地方熱線平臺對接工作奠定了基礎(chǔ)。