徐彩艷 任廣治 張嫣然
摘要:為滿足人流密集區(qū)氣象服務(wù)的需要,利用Java開發(fā)語言和Eclipse開發(fā)工具,設(shè)計并實現(xiàn)了一套基于Android平臺的氣象觸摸顯示屏系統(tǒng),由API接口服務(wù)、智能終端系統(tǒng)、管理系統(tǒng)組成。該系統(tǒng)首次提出用戶定制的服務(wù)理念,實現(xiàn)了終端定制顯示和拓展功能,可進(jìn)行精準(zhǔn)個性化投放,可顯示管理系統(tǒng)添加的任意HTML5網(wǎng)頁,極大地增加了內(nèi)容擴(kuò)展性。應(yīng)用實踐表明,該系統(tǒng)定制化的顯示服務(wù)滿足了不同用戶的個性化和差異化需要,擴(kuò)大了氣象信息及預(yù)警信息的傳播范圍,加快了傳播速度,加強(qiáng)了氣象科普的宣傳力度,通過人機(jī)互動的方式,增加了氣象信息的趣味性。
關(guān)鍵詞:觸摸顯示屏;用戶定制;API;Android
中圖分類號:P49? ? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:0439-8114(2019)14-0138-03
Abstract: In order to satisfy the requirement of the meteorological service in crowded areas, the Java development language and Eclipse development tools are used to design and implement a set of meteorological touch screen system based on Android platform. The system consists of API interface service, intelligent terminal system and management system. The system proposed the service concept of user customization for the first time. The system realized the function of custom display in terminal and expansion. The system can deliver accurately and personalized. The terminal can also display any HTML web page added by the management system, greatly expanding the display content. Application practice shows that the customized display service of the system meets the personalized and differentiation needs of users, expands the transmission range of meteorological information and warning information, accelerates the transmission speed, strengthens the publicity of meteorological popularization, and increases the interest of meteorological information through man-machine interaction.
Key words: touch screen; user customization; API; Android
隨著氣象服務(wù)的深入,氣象信息進(jìn)鄉(xiāng)村、進(jìn)社區(qū)的需求不斷被提出[1]。氣象信息進(jìn)鄉(xiāng)村、進(jìn)社區(qū)可以充分發(fā)揮智慧氣象服務(wù)的作用,提升氣象為民服務(wù)能力,加強(qiáng)防災(zāi)、減災(zāi)、救災(zāi)能力建設(shè)。同時,機(jī)場、火車站、商場、政務(wù)大廳等人流密集區(qū)對于氣象信息特別是氣象預(yù)警的需求也不斷增強(qiáng)。觸摸顯示屏這種日益普及的新媒體是一種較好的氣象信息服務(wù)載體。
通過研究目前的氣象服務(wù)發(fā)現(xiàn),不同用戶對氣象信息內(nèi)容、種類、發(fā)布界面等需求差異很大,且用戶普遍有顯示本部門信息的需求,一套系統(tǒng)推廣至多用戶的做法已經(jīng)難以滿足用戶日益增長的個性化需求,而為每個用戶單獨(dú)開發(fā)一套系統(tǒng)的做法不僅費(fèi)時費(fèi)力,更會增加維護(hù)成本。具備定制顯示功能的氣象觸摸顯示屏系統(tǒng)是一種較好的應(yīng)對手段。
近年來,關(guān)于氣象手機(jī)客戶端的研究不斷增多[2,3],各種氣象手機(jī)客戶端也應(yīng)運(yùn)而生,其中,墨跡天氣的下載量已經(jīng)接近3億[4],可見,氣象信息在手機(jī)端的展示技術(shù)已趨于成熟。而關(guān)于氣象觸摸顯示屏系統(tǒng)的研究則較少,已有顯示屏的研究多針對LED電子顯示屏。本研究基于Android平臺的觸摸顯示屏,設(shè)計并實現(xiàn)了可以滿足不同用戶個性化和差異化需求的氣象信息顯示屏系統(tǒng)。該系統(tǒng)實現(xiàn)了終端定制顯示功能和拓展功能,旨在滿足鄉(xiāng)村、社區(qū)及其他人流密集區(qū)和公共場所獲取氣象信息的需求。
1? 總體架構(gòu)
該系統(tǒng)主要以API接口服務(wù)、智能終端系統(tǒng)、管理系統(tǒng)三部分構(gòu)成。API接口負(fù)責(zé)向智能終端提供氣象數(shù)據(jù);智能終端系統(tǒng)播放展示氣象信息、視頻、新聞、通知及用戶提供的其他信息;管理系統(tǒng)進(jìn)行用戶、終端、顯示信息和API接口管理。
系統(tǒng)采用JAVA開源架構(gòu)SOA基礎(chǔ)架構(gòu)體系,SOA基礎(chǔ)架構(gòu)具有模塊化、服務(wù)化設(shè)計理念,在原有模塊化拆分設(shè)計的理念基礎(chǔ)上進(jìn)行深度拓展,實現(xiàn)面向服務(wù)的框架體系。該架構(gòu)將系統(tǒng)功能劃分為多個獨(dú)立功能單位,在保證整體功能完整的情況下,實現(xiàn)了功能的分別研發(fā)和階段部署。
受網(wǎng)絡(luò)安全性的限制,氣象系統(tǒng)對外服務(wù)系統(tǒng)的建設(shè)往往需要配備外網(wǎng)服務(wù)器和外網(wǎng)IP地址,存在建設(shè)費(fèi)用高、建設(shè)周期長的問題,云服務(wù)器具有外網(wǎng)網(wǎng)絡(luò)環(huán)境且具有安全性高、性能穩(wěn)定、性價比高的特點,該系統(tǒng)將WEB服務(wù)器架設(shè)在云服務(wù)器上。
系統(tǒng)主要由一臺內(nèi)網(wǎng)服務(wù)器和兩臺云服務(wù)器組成,如圖1所示,服務(wù)器使用Linux操作系統(tǒng)。內(nèi)網(wǎng)服務(wù)器負(fù)責(zé)從內(nèi)網(wǎng)采集各種數(shù)據(jù)資源,利用RSync同步技術(shù),將氣象數(shù)據(jù)推送到WEB云服務(wù)器,在一臺云服務(wù)器上安裝Apache Tomcat,使之成為WEB服務(wù)器,主要負(fù)責(zé)提供WEB服務(wù)、API接口服務(wù)、管理系統(tǒng)服務(wù)和氣象數(shù)據(jù)處理存儲,另外一臺搭建MySQL產(chǎn)品數(shù)據(jù)庫,組織、存儲和管理用戶數(shù)據(jù)與客戶端氣象產(chǎn)品數(shù)據(jù),為系統(tǒng)提供數(shù)據(jù)支持。
2? 系統(tǒng)的設(shè)計與實現(xiàn)
2.1? API接口
為便于第三方用戶和系統(tǒng)對數(shù)據(jù)的使用,該系統(tǒng)將數(shù)據(jù)進(jìn)行了API接口開發(fā),最大限度實現(xiàn)資源共享[5]。API接口通過跨平臺跨語言的WebSeivce服務(wù)實現(xiàn),系統(tǒng)利用Java[6]和PHP[7]語言編寫API接口程序,將同步到云服務(wù)器端的氣象數(shù)據(jù)轉(zhuǎn)化為方便用戶調(diào)用的XML與JSON格式。
由于氣象服務(wù)產(chǎn)品數(shù)量繁多,API接口開發(fā)前必須制定標(biāo)準(zhǔn)的氣象服務(wù)信息發(fā)布規(guī)范。將API接口參數(shù)分為必選參數(shù)R、可選參數(shù)O和一定條件下參數(shù)C 3種,必選參數(shù)R必須要出現(xiàn),接口編號、身份標(biāo)識等參數(shù)為必選參數(shù)??蛇x參數(shù)便于用戶直接獲取所需的氣象數(shù)據(jù),減少網(wǎng)絡(luò)流量和計算量,以衛(wèi)星云圖為例,衛(wèi)星云圖的可選參數(shù)為云圖種類、時間、時間段,用戶可通過設(shè)置請求報文中的可選參數(shù),直接獲取指定時間和指定衛(wèi)星的數(shù)據(jù),若可選參數(shù)為空,則返回全部衛(wèi)星數(shù)據(jù)。
為保障氣象數(shù)據(jù)的安全性,系統(tǒng)對API接口進(jìn)行了加密,訪問用戶需要進(jìn)行身份認(rèn)證,API認(rèn)證流程如圖2所示。身份認(rèn)證有兩種方式,在管理系統(tǒng)中錄入認(rèn)證和通過終端申請認(rèn)證。認(rèn)證完成后,系統(tǒng)通過PBEWithMD5AndDES加密算法為用戶分配加密的KEY值和身份標(biāo)識碼,用戶調(diào)用API接口時,將KEY值與其他參數(shù)按照一定的順序組合成一個URL鏈接發(fā)起HTML請求,服務(wù)器對提交的URL鏈接進(jìn)行解析后,將解析到的KEY值進(jìn)行解密,與數(shù)據(jù)庫比較,數(shù)據(jù)一致,則允許下一步操作;不一致,則提示用戶認(rèn)證申請異常或非法用戶。
2.2? 智能終端系統(tǒng)
智能終端系統(tǒng)載體為搭載Android[8,9]平臺的觸摸電子顯示屏,顯示方式包含滾動顯示和觸摸顯示兩種(圖3)。為滿足不同用戶個性化和差異化的需求,系統(tǒng)實現(xiàn)了終端定制顯示功能,媒體內(nèi)容對終端進(jìn)行精準(zhǔn)個性化投放,管理員可根據(jù)業(yè)務(wù)需要,將播放終端進(jìn)行多維分組,每個組設(shè)定不同的媒體播放清單和任務(wù),而不是統(tǒng)一投放。智能終端系統(tǒng)所有展示內(nèi)容都具有可替換性,包含系統(tǒng)名稱、視頻、新聞、科普、通知、按鈕等;系統(tǒng)具有拓展性,用戶可根據(jù)需要自主配置顯示內(nèi)容,可拓展顯示用戶提供的信息,使系統(tǒng)具有通用性;系統(tǒng)具有智能性,實現(xiàn)了數(shù)據(jù)自動傳輸運(yùn)行,減少人工操作。
智能終端系統(tǒng)采用Java開發(fā)語言,使用Eclipse與Android SDK的開發(fā)工具,采用屏幕自適應(yīng)技術(shù),應(yīng)用矢量圖的特性,兼容不同版本、規(guī)格的Android大屏幕,采用顯示屏室內(nèi)室外自適應(yīng)技術(shù),可以多分辨率、強(qiáng)弱光自動切換,以適應(yīng)不同的環(huán)境。智能終端系統(tǒng)頁面采用jQuery-core技術(shù)進(jìn)行事件處理、Ajax請求、頁面刷新等,通過3種頁面方式實現(xiàn)了媒體內(nèi)容對終端的精準(zhǔn)個性化投放:①動態(tài)同步請求,通過Velocity模板生成頁面,智能終端系統(tǒng)重新加載整個頁面。Velocity是一個基于Java的模板引擎,允許在終端頁面中引用Java代碼中定義的數(shù)據(jù)對象和命令;②Ajax異步請求,可實現(xiàn)終端頁面數(shù)據(jù)的局部刷新,與Velocity模板結(jié)合可返回HTML串、JSON數(shù)據(jù)和簡單的字符串;③模板生成的靜態(tài)頁面,靜態(tài)的網(wǎng)頁、網(wǎng)站不需要通過數(shù)據(jù)庫就能夠打開,運(yùn)行速度較快。
智能終端系統(tǒng)根據(jù)數(shù)據(jù)存儲的安全性要求,支持云端的遠(yuǎn)端存儲,當(dāng)發(fā)生異常情況時,如斷網(wǎng),可自動切換到本地存儲,支持不同版本設(shè)備、不同機(jī)器間存儲不同內(nèi)容;系統(tǒng)通過網(wǎng)絡(luò)實現(xiàn)信息以及終端控制與管理,基于網(wǎng)絡(luò)IP進(jìn)行數(shù)字化傳輸,智能終端系統(tǒng)發(fā)起頁面請求后,后臺發(fā)送標(biāo)簽、視頻、文字以及播出任務(wù)等內(nèi)容;通過Velocity模板實現(xiàn)了信息拓展,搭建被動接受機(jī)制,強(qiáng)大的自適應(yīng)拓展接口,可與多種信息實現(xiàn)數(shù)據(jù)共享,如防震減災(zāi)、防洪防水、地質(zhì)災(zāi)害等;智能終端系統(tǒng)采用Ehcache緩存框架技術(shù),Ehcache是一個利用Java實現(xiàn)的簡單、高速實現(xiàn)線程安全的緩存管理類庫。使用緩存機(jī)制處理技術(shù)可增強(qiáng)系統(tǒng)業(yè)務(wù)并發(fā)處理能力,降低與數(shù)據(jù)庫的交互次數(shù),極大提高系統(tǒng)性能。
智能終端系統(tǒng)采用氣象信息自動更新技術(shù),基于系統(tǒng)搭建文件自動檢索機(jī)制,實現(xiàn)遠(yuǎn)端后臺自動更新。智能終端憑借系統(tǒng)分配的KEY值和身份識別碼,通過API接口獲取后臺的數(shù)據(jù),終端系統(tǒng)顯示內(nèi)容可包括天氣預(yù)報、天氣實況、預(yù)警、視頻、新聞、科普、通知及其他用戶提供信息。當(dāng)智能終端系統(tǒng)所在地有氣象預(yù)警信息發(fā)布時,預(yù)警信息自動替換單位信息并在首頁顯示,從而增加預(yù)警信息發(fā)布的時效性,擴(kuò)大預(yù)警信息的傳播覆蓋面。點擊更多按鈕進(jìn)入系統(tǒng)下級頁面,如圖4所示,該頁面包含新聞報道、科普信息、空氣質(zhì)量、臺風(fēng)監(jiān)測等信息,該頁面可為管理系統(tǒng)添加的HTML5[10]頁面生成新的按鈕。
2.3? 管理系統(tǒng)
管理系統(tǒng)主要用于用戶、終端、顯示信息和API接口的管理,同時監(jiān)控終端顯示內(nèi)容,確保顯示信息的安全。
管理系統(tǒng)以部門為單位進(jìn)行用戶管理。管理系統(tǒng)提供權(quán)限分級管理,支持三級權(quán)限處理,如可設(shè)置省氣象局、地市氣象局、縣氣象局三級部門權(quán)限。管理員為每級部門分配管理賬戶和管理權(quán)限,各部門可管理維護(hù)本部門內(nèi)終端,部門之間實現(xiàn)信息互通、數(shù)據(jù)共享,依據(jù)權(quán)限級別高低對部分信息權(quán)限進(jìn)行屏蔽保護(hù)。部門維護(hù)人員可修改終端顯示的產(chǎn)品信息,并可進(jìn)行視頻、新聞、科普、消息等產(chǎn)品的維護(hù),信息上傳時可選擇終端。
管理系統(tǒng)實現(xiàn)了智能終端系統(tǒng)的定制顯示功能,即不同終端顯示內(nèi)容不同。智能終端第一次運(yùn)行時,自動跳轉(zhuǎn)到注冊頁面,用戶須填寫系統(tǒng)名稱、注冊位置、部門名稱等信息,管理員在管理系統(tǒng)中審核通過后,終端進(jìn)入信息顯示頁面。收到注冊信息后,管理系統(tǒng)基于智能終端IP地址為智能終端生成一個管理界面,為智能終端分配惟一KEY值和身份識別碼,管理系統(tǒng)可為不同終端設(shè)置差異化的顯示內(nèi)容,管理員不僅能控制終端系統(tǒng)狀態(tài)和顯示權(quán)限,也能根據(jù)用戶需求修改智能終端名稱、勾選終端顯示內(nèi)容及顯示標(biāo)簽等。管理員還可拓展終端功能,只需在終端功能管理中錄入功能名稱,填寫HTML5網(wǎng)頁地址,即可設(shè)置特定終端進(jìn)行顯示。