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