何學(xué)敏
(內(nèi)蒙古自治區(qū)氣象信息中心 內(nèi)蒙古自治區(qū)呼和浩特市 010051)
我區(qū)氣象資料具備長序列、高精度、種類繁多、高時空分辨率、與社會生活息息相關(guān)等重要性質(zhì),為氣象部門天氣預(yù)報、防災(zāi)減災(zāi)、服務(wù)人民生產(chǎn)生活的同時,也是天氣及氣候研究,氣候變化,多領(lǐng)域合作的基礎(chǔ)[1]。2017年,為貫徹落實(shí)“創(chuàng)新、協(xié)調(diào)、綠色、開放、共享”五大發(fā)展理念,利用云計算、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、大數(shù)據(jù)(簡稱“云物移大”) 等新興技術(shù),依托“一平臺,三系統(tǒng)”建設(shè),構(gòu)建氣象大數(shù)據(jù)綜合應(yīng)用平臺。建成氣象大數(shù)據(jù)管理云平臺,實(shí)現(xiàn)對氣象及相關(guān)行業(yè)部門數(shù)據(jù)的集約化、標(biāo)準(zhǔn)化匯集管理,促進(jìn)氣象信息資源整合共享,挖掘氣象大數(shù)據(jù)應(yīng)用價值的大數(shù)據(jù)平臺建設(shè)啟動,旨在有效促進(jìn)氣象業(yè)務(wù)服務(wù)能力的提升,有效支撐和服務(wù)政府大數(shù)據(jù)平臺建設(shè),支撐和服務(wù)行業(yè)部門氣象大數(shù)據(jù)應(yīng)用,支撐和服務(wù)氣象大數(shù)據(jù)在氣象防災(zāi)減災(zāi)、自治區(qū)生態(tài)文明建設(shè)、社會治理、公共服務(wù)領(lǐng)域的應(yīng)用[2,3]。
隨著氣象資料需求和服務(wù)方式的不斷拓展,氣象資料共享服務(wù)業(yè)務(wù)的復(fù)雜度不斷提升,如何及時了解用戶使用數(shù)據(jù)的問題,為我區(qū)氣象業(yè)務(wù)、科研和服務(wù)提供豐富、準(zhǔn)確的氣象資料,并實(shí)現(xiàn)氣象數(shù)據(jù)資源的充分共享,發(fā)揮資料價值,釋放氣象數(shù)據(jù)紅利至關(guān)重要,同時規(guī)范數(shù)據(jù)服務(wù)、做好資料服務(wù)情況的統(tǒng)計分析從而更好的為用戶和管理部門服務(wù)迫在眉睫。
2.1.1 數(shù)據(jù)清單發(fā)布及賬戶清單查看
基于內(nèi)蒙古自治區(qū)統(tǒng)一數(shù)據(jù)環(huán)境,和內(nèi)蒙古自治區(qū)氣象檔案館,進(jìn)行數(shù)據(jù)資源的梳理,在本系統(tǒng)發(fā)布內(nèi)蒙古自治區(qū)在線服務(wù)資料的數(shù)據(jù)清單和離線數(shù)據(jù)服務(wù)的數(shù)據(jù)清單。根據(jù)業(yè)務(wù)發(fā)展的需要,建立數(shù)據(jù)清單更新發(fā)布流程,規(guī)范實(shí)時和歷史數(shù)據(jù)管理和清單維護(hù)。
2.1.2 數(shù)據(jù)服務(wù)反饋
建立規(guī)范化的數(shù)據(jù)使用反饋機(jī)制,接收用戶在服務(wù)方式、服務(wù)體驗(yàn)、數(shù)據(jù)質(zhì)量、數(shù)據(jù)種類的各方面的反饋意見,針對不同的服務(wù)問題進(jìn)行實(shí)時或定期處理和調(diào)整,從而避免的零散的問題處理和問題描述不詳細(xì)無法處理;同時,系統(tǒng)自動記錄服務(wù)情況,定期進(jìn)行用戶使用情況的統(tǒng)計,實(shí)現(xiàn)服務(wù)技術(shù)與服務(wù)管理的有機(jī)結(jié)合,發(fā)揮氣象數(shù)據(jù)的效益。
2.1.3 數(shù)據(jù)服務(wù)情況統(tǒng)計和報告的制作
實(shí)現(xiàn)MUSIC 接口的異常訪問接口的監(jiān)控和告警管理;實(shí)現(xiàn)在線CIMISS 數(shù)據(jù)訪問量的用戶單位訪問量和訪問數(shù)據(jù)服務(wù)量的統(tǒng)計及排名,各類數(shù)據(jù)訪問量和服務(wù)量的統(tǒng)計;實(shí)現(xiàn)為用戶解決問題的情況統(tǒng)計。
氣象數(shù)據(jù)服務(wù)系統(tǒng)采用B/S 結(jié)構(gòu),選用Java 作為編程語言,基于SpringBoot 框架,通過SpringBoot 配置文件完成了后臺框架組織?;贛ysql 數(shù)據(jù)庫管理系統(tǒng)對本系統(tǒng)中的數(shù)據(jù)持久化進(jìn)行操作。Web 設(shè)計基于Bootstrap 前臺UI 完成頁面設(shè)計,采用JQuery、JavaScript、JSTL、Ajax 等技術(shù)完成動態(tài)響應(yīng)。
2.2.1 SpringBoot 簡介
圖1:氣象數(shù)據(jù)服務(wù)系統(tǒng)總體架構(gòu)
圖2:數(shù)據(jù)服務(wù)系統(tǒng)流程
SpringBoot 是一個是由Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計目的是用來簡化新Spring 應(yīng)用的初始搭建以及開發(fā)過程[4]。該框架使用了特定的方式來進(jìn)行配置,它具有以下特點(diǎn):
(1)創(chuàng)建獨(dú)立的Spring 應(yīng)用程序,基于其Maven 或Gradle 插件,創(chuàng)建可執(zhí)行的JARs 和WARs;
(2)內(nèi)嵌Tomcat 或Jetty 等Servlet 容器;
(3)提供自動配置的“starter”項(xiàng)目對象模型(POMS)以簡化Maven 配置;
(4)自動配置Spring 容器;
(5)提供準(zhǔn)備好的特性,如指標(biāo)、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML 配置。
2.2.2 Quartz 技術(shù)
圖3:MUSIC 接口帳戶同步調(diào)度任務(wù)流程圖
Quartz 是OpenSymphony 開源組織在Job scheduling 領(lǐng)域又一個開源項(xiàng)目,它可以與J2EE 與J2SE 應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz 可以用來創(chuàng)建簡單或?yàn)檫\(yùn)行十個,百個,甚至是好幾萬個Jobs 這樣復(fù)雜的程序。
2.2.3 Redis 緩存技術(shù)
Redis 是一個使用ANSI C 編寫的開源、支持網(wǎng)絡(luò)、基于內(nèi)存、可選持久性的鍵值對存儲數(shù)據(jù)庫[5]。根據(jù)月度排行網(wǎng)站DBEngines.com 的數(shù)據(jù),Redis 是最流行的鍵值對存儲數(shù)據(jù)庫。
氣象數(shù)據(jù)服務(wù)系統(tǒng)基于CIMISS 數(shù)據(jù)環(huán)境,通過實(shí)時獲取MUSIC 接口帳戶信息、在線數(shù)據(jù)清單、接口訪問日志,深度結(jié)合業(yè)務(wù)需求對各類數(shù)據(jù)服務(wù)情況數(shù)據(jù)進(jìn)行加工處理。其中,接口帳戶信息用于形成氣象數(shù)據(jù)服務(wù)系統(tǒng)帳戶清單,供數(shù)據(jù)用戶和數(shù)據(jù)管理員登記維護(hù)在線接口帳戶。
在線數(shù)據(jù)清單,進(jìn)行實(shí)時同步和加工處理,同時納入數(shù)字化資料、離線資料等形成氣象數(shù)據(jù)服務(wù)系統(tǒng)數(shù)據(jù)清單。
通過對CIMISS 在線接口訪問日志對進(jìn)行加工處理入庫,形成在線數(shù)據(jù)服務(wù)情況日統(tǒng)計,長期保存以支持?jǐn)?shù)據(jù)服務(wù)情況查詢統(tǒng)計功能和數(shù)據(jù)服務(wù)報告自動制作。如圖1 所示。
系統(tǒng)設(shè)計分為數(shù)據(jù)服務(wù)管理員和數(shù)據(jù)使用用戶2 種角色,基于數(shù)據(jù)服務(wù)系統(tǒng)賬戶開展MUSIC 接口賬戶的管理、對接業(yè)務(wù)系統(tǒng)管理、資料申請使用管理,及滿意度反饋的管理,建立規(guī)范化的服務(wù)反饋和申請?zhí)幚砹鞒?,如圖2 所示。
數(shù)據(jù)服務(wù)的建設(shè)任務(wù)之一是構(gòu)建包含在線、離線、業(yè)務(wù)內(nèi)網(wǎng)各級資料類型的數(shù)據(jù)清單,本功能主要包括:
(1)在線服務(wù)數(shù)據(jù)清單頁;
(2)在線服務(wù)帳戶清單頁,集中展示數(shù)據(jù)服務(wù)系統(tǒng)中所有用戶綁定MUSIC 接口帳戶、接口帳戶綁定業(yè)務(wù)系統(tǒng)和接口帳戶數(shù)據(jù)訂閱情況;
(3)MUSIC 接口帳戶同步調(diào)度任務(wù),將CIMISS 系統(tǒng)支撐庫中的接口帳戶基本信息同步到數(shù)據(jù)服務(wù)中(圖3);
(4)MUSIC 接口帳戶頁,可綁定或解綁接口帳戶、查看接口帳戶基本信息、接入業(yè)務(wù)系統(tǒng)以及管理每個接口帳戶的數(shù)據(jù)清單;
(5)新增資料提醒;
(6)對接業(yè)務(wù)系統(tǒng)登記,便于進(jìn)行MUSIC 賬戶的級別區(qū)分,進(jìn)一步規(guī)范資料安全和數(shù)據(jù)使用,開展MUSIC 接口綁定業(yè)務(wù)系統(tǒng)登記。其中在線數(shù)據(jù)清單自動同步,離線及業(yè)務(wù)內(nèi)網(wǎng)數(shù)據(jù)清單手動維護(hù)。
資料訂閱主要包括:
(1)數(shù)據(jù)清單訂閱,用于展示一個MUSIC 接口帳戶下,在線數(shù)據(jù)清單的訂閱情況;
(2)數(shù)據(jù)清單訂閱審核頁,用于審核數(shù)據(jù)服務(wù)用戶提交的,單個MUSIC 接口帳戶數(shù)據(jù)清單訂閱申請。
問題與反饋主要針對數(shù)據(jù)用戶在使用數(shù)據(jù)過程中出現(xiàn)的問題,系統(tǒng)中提供問題提交和處理的統(tǒng)一渠道,并由數(shù)據(jù)管理員集中處理問題。主要包括的功能有:
(1)建議登記和處理反饋,用戶對數(shù)據(jù)服務(wù)相關(guān)的建議可通過系統(tǒng)提交,可在后臺查看所有用戶提交的建議,并進(jìn)行處理反饋。
(2)滿意度調(diào)查,以調(diào)查問卷形式,定期給數(shù)據(jù)用戶推送滿意度調(diào)查表,點(diǎn)擊相關(guān)提示后在系統(tǒng)內(nèi)完成滿意度調(diào)查的填寫。
數(shù)據(jù)服務(wù)情況主要統(tǒng)計用戶使用離線數(shù)據(jù)和在線數(shù)據(jù)情況,并用于相關(guān)統(tǒng)計及服務(wù)報告。主要功能包括:
(1)離線數(shù)據(jù)申請/審核;
(2)離線數(shù)據(jù)服務(wù)統(tǒng)計,用于開展離線數(shù)據(jù)服務(wù)情況的統(tǒng)計及服務(wù)報告;
(3)在線服務(wù)情況逐時統(tǒng)計調(diào)度任務(wù),用于逐日統(tǒng)計調(diào)度任務(wù),及支持后續(xù)其它數(shù)據(jù)分析;
(4)在線服務(wù)情況逐日統(tǒng)計調(diào)度任務(wù),將前一天的MUSIC 接口訪問情況進(jìn)行初步統(tǒng)計并入庫,為后續(xù)的統(tǒng)計、超閾值提醒等功能提供數(shù)據(jù)支持;
(5)在線數(shù)據(jù)服務(wù)情況統(tǒng)計頁面,用于在線數(shù)據(jù)服務(wù)情況的查詢統(tǒng)計并進(jìn)行圖表展示;
(6)MUSIC 接口訪問超閾值告警,如果訪問次數(shù)或數(shù)據(jù)量超過預(yù)設(shè)的閾值,為其用戶生成告警消息;
(7)數(shù)據(jù)服務(wù)報告制作,基于系統(tǒng)內(nèi)在線和離線數(shù)據(jù)服務(wù)日常業(yè)務(wù)的數(shù)據(jù)積累,及數(shù)據(jù)服務(wù)業(yè)務(wù)系統(tǒng)相關(guān)訪問情況的實(shí)時同步統(tǒng)計,進(jìn)行階段性數(shù)據(jù)服務(wù)報告的人工制作和自動制作。
氣象數(shù)據(jù)服務(wù)系統(tǒng)的建立為氣象資料的安全管理、規(guī)范氣象資料服務(wù)業(yè)務(wù)流程、提升氣象資料服務(wù)水平和能力提供了前提和基礎(chǔ),保障了統(tǒng)一數(shù)據(jù)環(huán)境數(shù)據(jù)服務(wù)的正常和穩(wěn)定,為用戶提供平等、穩(wěn)定的數(shù)據(jù)環(huán)境和接口環(huán)境。
在充分考慮數(shù)據(jù)安全使用的前提下,既能夠規(guī)范數(shù)據(jù)使用問題和接口用戶調(diào)用數(shù)據(jù)的管理,同時也有助于提升用戶服務(wù)體驗(yàn)的同時,便于數(shù)據(jù)服務(wù)管理員開展問題的梳理和總結(jié),提升服務(wù)能力和服務(wù)水平。