姜青山
摘 要:隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,人們獲取氣象信息的方式及對(duì)信息的需求也發(fā)生了很大的變化,單方面被動(dòng)的接收日常的天氣預(yù)報(bào)及氣象推送短信服務(wù)已經(jīng)不能滿足需求了。人們不僅希望能及時(shí)獲取天氣變化,而且對(duì)氣象數(shù)據(jù)及其更新頻率有著更高更快的要求。此外,氣象愛好者們也希望多一些渠道增強(qiáng)其對(duì)氣象知識(shí)的了解,更進(jìn)一步的與他人進(jìn)行交流分享等,可是目前軟件市場(chǎng)上暫時(shí)還沒出現(xiàn)以用戶為主導(dǎo)的氣象移動(dòng)端軟件。因此,本項(xiàng)目擬設(shè)計(jì)開發(fā)一款互動(dòng)與分享型的氣象科普手機(jī)客戶端APP,除了提供傳統(tǒng)的氣象信息服務(wù)外,還提供學(xué)習(xí)、分享和交流各種氣象知識(shí)的機(jī)會(huì)。
該氣象互動(dòng)的手機(jī)客戶端軟件主要提供氣象信息的上傳與發(fā)布以及用戶間交流互動(dòng)等功能,主要包括天氣預(yù)報(bào)、氣象詞條,交流社區(qū)和個(gè)人主頁(yè)四個(gè)部分。為了設(shè)計(jì)開發(fā)該客戶端,主要運(yùn)用了以下技術(shù)。
關(guān)鍵詞:氣象預(yù)報(bào)服務(wù);應(yīng)用開發(fā);編程;系統(tǒng)搭建
1 主要技術(shù)路線
本項(xiàng)目采用移動(dòng)互聯(lián)網(wǎng)技術(shù),主要分為服務(wù)器和客戶端兩部分。為了滿足移動(dòng)互聯(lián)網(wǎng)的特點(diǎn),服務(wù)器主要采用以下技術(shù):
1.1 采用阿里云技術(shù),多區(qū)域分布式部署
移動(dòng)互聯(lián)網(wǎng)用戶分布廣且散,全國(guó)各地用戶都可以下載該軟件查看天氣,因此,為滿足不同地區(qū)的用戶需求,就要多地部署服務(wù)器,讓用戶就近快速訪問,提高用戶使用體驗(yàn),也節(jié)省了帶寬資源。對(duì)于同一地區(qū),如果用戶量過大,單臺(tái)服務(wù)器性能有限不能滿足需求,要使用多臺(tái)服務(wù)器分布式部署同時(shí)對(duì)外提供服務(wù)。
1.2 采用redis內(nèi)存數(shù)據(jù)庫(kù)作為高速緩存
服務(wù)器端數(shù)據(jù)管理使用專業(yè)的數(shù)據(jù)庫(kù)軟件,數(shù)據(jù)最終是存儲(chǔ)在讀寫速度較慢的磁盤中,因此數(shù)據(jù)庫(kù)的讀寫速度有限,不能夠滿足高峰期用戶訪問的需求。為了緩解這一問題,將熱點(diǎn)數(shù)據(jù)提前提入緩存,在用戶請(qǐng)求時(shí),直接從內(nèi)存中返回,可大大提高數(shù)據(jù)讀取速度。
1.3 異步寫數(shù)據(jù)庫(kù)
在用戶對(duì)于熱門話題進(jìn)行評(píng)論時(shí),短時(shí)間內(nèi)會(huì)有大量的寫操作,如果直接寫入數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)會(huì)造成很大的壓力,響應(yīng)速度變慢,甚至?xí)绊懙秸5臄?shù)據(jù)讀取。為了解決這一問題,本項(xiàng)目采用異步寫入數(shù)據(jù)庫(kù),當(dāng)有寫數(shù)據(jù)庫(kù)的請(qǐng)求時(shí),先把要寫的數(shù)據(jù)存到隊(duì)列中,再由后臺(tái)程序慢慢寫入數(shù)據(jù)庫(kù)。
1.4 雙機(jī)互備容災(zāi)
為了提高服務(wù)的可靠性,設(shè)計(jì)采用雙機(jī)互備技術(shù)。同一地區(qū)部署兩份以上的相同服務(wù),同時(shí)對(duì)外提供服務(wù),正常情況下以一臺(tái)為主,當(dāng)主服務(wù)器出現(xiàn)問題時(shí)備用服務(wù)器自動(dòng)切換為主服務(wù)器對(duì)外提供服務(wù),這樣可以在不終止服務(wù)的情況下,修復(fù)故障服務(wù)器,從而提高系統(tǒng)的可靠性。
2 技術(shù)難點(diǎn)
此項(xiàng)目具有以下技術(shù)難點(diǎn):
2.1 服務(wù)器要求高
要確保何時(shí)何地都能迅速打開軟件和用戶成功上傳圖片,這對(duì)帶寬和服務(wù)器容量要求都很高。因此,要在節(jié)省成本的同時(shí),要合理的規(guī)劃服務(wù)器布局和資源分配。
2.2 平臺(tái)開發(fā)較難
實(shí)時(shí)交流互動(dòng)對(duì)服務(wù)端的開發(fā)要求較高,不僅服務(wù)器端口要迅速響應(yīng),而且要保證程序運(yùn)行穩(wěn)定,否則會(huì)經(jīng)常出現(xiàn)數(shù)據(jù)加載不成功或加載過慢的情況,嚴(yán)重影響用戶體驗(yàn)。
2.3 UI設(shè)計(jì)不易
現(xiàn)在用戶對(duì)移動(dòng)端的要求越來越高,要開發(fā)一個(gè)成功的手機(jī)客戶端,除了要滿足用戶需求的功能版塊設(shè)計(jì)外,還要有簡(jiǎn)潔大方的外觀界面。
2.4 軟件開發(fā)復(fù)雜
由于特殊的運(yùn)行環(huán)境限制,客戶端開發(fā)既要滿足用戶的需求開發(fā)出完整的功能模塊,又在要其運(yùn)行時(shí)不要占用太多的資源,同時(shí)還要保證軟件在使用時(shí)流暢穩(wěn)定降低系統(tǒng)崩潰率。
2.5 軟件升級(jí)維護(hù)
軟件發(fā)布后要對(duì)其進(jìn)行后期的維護(hù)和升級(jí),如用戶量激增、訪問量激增、網(wǎng)絡(luò)抖動(dòng)不可訪問、服務(wù)器宕機(jī)等,為此要做好服務(wù)器監(jiān)控,隨時(shí)了解系統(tǒng)的運(yùn)行狀態(tài)。
3 實(shí)施方案
項(xiàng)目的實(shí)施方案主要從以下幾個(gè)方面來完成。
首先申請(qǐng)linux主機(jī)搭建nginx web服務(wù)器,為客戶端提供http web服務(wù)。采用golang語言開發(fā)氣象百科、互動(dòng)社區(qū)以及用戶中心的web服務(wù)接口,為客戶端提供實(shí)時(shí)數(shù)據(jù)。申請(qǐng)一臺(tái)圖片服務(wù)器,供客戶端上傳和下載圖片使用。開發(fā)一個(gè)手機(jī)客戶端軟件,該軟件包括氣象百科、用戶社區(qū)及個(gè)人中心等幾大模塊為用戶提供服務(wù)。客戶端通過http協(xié)議與后端服務(wù)器通信交換數(shù)據(jù),數(shù)據(jù)為json格式。軟件采用swift語言開發(fā),開發(fā)完成通過測(cè)試后,發(fā)布上線。
4 客戶端相關(guān)的主要技術(shù)
客戶端的開用到以下技術(shù)。
4.1 IOS操作系統(tǒng)
相對(duì)于Android系統(tǒng)來說,IOS對(duì)應(yīng)的硬件種類較少系統(tǒng)流暢,開發(fā)較為方便,不用在兼容性上花費(fèi)太多時(shí)間,API也相對(duì)簡(jiǎn)單易用,學(xué)習(xí)成本較低。
4.2 swift語言
蘋果公司最新發(fā)布的IOS開發(fā)的新一代語言,與Object-C相比,語法簡(jiǎn)單智能。
4.3 通信協(xié)議
通信協(xié)議??蛻舳伺c后臺(tái)采用http通信協(xié)議,數(shù)據(jù)格式采用json格式傳輸。
5 結(jié)語
應(yīng)用的開發(fā)與服務(wù)器的搭建完成以后,還有一些比較重要的問題需要解決。軟件推廣。由于該軟件不是一個(gè)用戶剛性需求的軟件,因此要想方法推廣該軟件讓更多的用戶下載并使用。另外還有產(chǎn)品運(yùn)營(yíng)。及時(shí)更新內(nèi)容及創(chuàng)辦相關(guān)活動(dòng)吸引用戶持續(xù)使用該軟件,如氣象攝影大賽、有獎(jiǎng)知識(shí)競(jìng)答以及參觀氣象局等。
參考文獻(xiàn):
[1]郝穎婕,郁舒蘭.基于iOS系統(tǒng)手機(jī)APP界面設(shè)計(jì)研究[J].家具與室內(nèi)裝飾,2016,04:70-71.
[2]邱燦清.基于IOS的智慧生活信息服務(wù)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].無線通信技術(shù),2015,04:44-48.
[3]胡江,王陽(yáng).基于iOS和SensorTag的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].浙江萬里學(xué)院學(xué)報(bào),2016,01:92-96.