楊玉紅 喬文文 侯靈



摘要:該研究使用Flask框架實現了省市縣一體化移動終端展示平臺WebService發布系統,使用Ionic技術棧技術快速完成了IOS客戶端、Android客戶端省市縣一體化移動應用展示平臺建設,實現了服務器性能、鏈路狀態、數據狀態等信息的展示,達到了數據準確,效果優雅,使用方便的目標,完成了對混合架構開發模式的探索與嘗試。混合開發模式作為目前移動開發主流方式,集原生開發和Web開發兩者之所長。一方面,該技術讓開發者可以充分利用現代移動設備所提供的全部特性和功能。另一方面,使用Hybrid框架語言編寫的所有程序都可以在不同移動平臺之間共享,使得開發和日常維護變得更集中、更簡短、更經濟高效。
關鍵詞:移動終端;混合開發模式;Flask框架;Ionic框架
中圖分類號:TP311? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)24-0095-03
開放科學(資源服務)標識碼(OSID):
1 項目背景
隨著氣象現代化進程的不斷深入,氣象資料種類越來越多,需要監控的設備類型與系統也日益增多[1-3]。如何“由始至終”地將資料各環節生成、處理、轉發、入庫狀態清晰地呈現出來,將省級、市級、縣級主機、鏈路、數據信息統一處理形成一體化信息數據庫,直觀、快速、方便為用戶提供服務是當前需要研究的問題[4-5]。
在信息網絡快速發展的今天,手機與平板設備是人們日常生活必不可少的工具[6-8],將一體化信息數據以移動客戶端(包括Iphone系統和Android系統)的方式進行展現,不但可以實現明確清楚的顯示系統流程、快速準確的定位系統故障點,更能實現用戶隨時隨地查看數據、設備當前的狀態,對問題的預知,故障的快速響應和解決都有著不可估量的作用[9-10]。本研究旨在使用簡單明了的方式,將各種資料、各種狀態呈現在用戶眼前,使“動動手指,盡在掌握”成為可能。
2 移動終端開發模式研究
當前的APP開發模式主要有以下三大類型[11]:
1)Native App
即傳統的原生APP開發模式,開發者需要使用移動平臺默認的語言,對IOS系統來說是Objective-C或者Swift語言,對Android來說是Java語言,程序編寫之后需要編譯應用并將其安裝到設備上。開發者可以使用平臺軟件開發套件(SDK)來和平臺API通信,從而可以訪問設備中傳感器的數據或者HTTP請求從外部服務器加載數據。比起其他開發模式,原生開發應用可以在應用中直接使用原生API,與平臺的交流最緊密,性能最好,運行效率最高。缺點是開發和維護難度較大,每個平臺都需要單獨進行開發和維護,需要投入大量時間和精力。
2)Web App
即移動端網站開發模式,使用自適應兼容性框架,例如BootStrap, React, Vue等,適合移動設備使用,可以兼容手機瀏覽器與PC瀏覽器的訪問。Web應用會根據設備屏幕的大小展現不同的界面,其優點主要體現在效率和設備兼容性上:容易更新和維護,無須審核流程,網站在互聯網中,不需要安裝到移動設備中,也不需要更新設備上的程序。所有移動設備都有瀏覽器,因此也具有跨平臺行。缺點是不具備原生訪問能力,很難創建交互體驗友好的應用,尤其是需要同時兼容桌面版瀏覽器時。
3)Hybrid App
Hybrid應用[12]指的是包含獨立瀏覽器實例的移動應用,這個實例通常被稱為WebView,可以在原生應用中運行Web應用。Hybrid應用會使用原生應用封裝器來實現WebView和原生設備平臺的通信,像原生應用一樣訪問所有的設備功能。例如PhoneGap,AppCan,appMobi,Titanium等。Hybrid應用具有跨平臺性,可以只開發一次,部署到多個平臺,最小化開發成本。開發流程簡單快捷,不需要為了預覽重復構建。缺點是應用只能運行在瀏覽器WebView中,這意味著應用的性能取決于瀏覽器。
3 設計與實現
本研究選取了具有跨平臺能力的混合應用開發模式:基于Cordova的Ionic框架。內容主要分兩部分:第一部分為Web服務端,采用的是Windows+Apache+Mod_Wsgi+Flask架構實現,第二部分為APP端軟件開發部署,使用Ionic技術實現。
3.1 總體框架
3.2 項目數據結構和來源
本研究數據流程為:從數據采集端,經“縣級路由器”-“市級路由器”-“省級路由器”-“接收服務器”到數據應用端。
3.2.1 數據結構
1)設備狀態數據
設備運行狀態數據包括兩類設備的運行狀態(地面自動氣象站、天氣雷達),由廣東省氣象探測數據中心的采集平臺入庫。數據收集方式為:在各終端服務器部署JAVA語言開發的腳本,定時采集服務器數據,發回監控服務器進行處理及入庫。采集的要素包括CPU使用率、內存使用率、磁盤空間使用率、FTP端口狀態等等。
2)網絡狀態數據
網絡狀態數據由廣東省氣象探測數據中心維護,通過訪問網絡監控數據庫直接獲取。數據收集方式為:在服務器端部署腳本,定時對網絡設備狀態進行采集,包括ping、trace等操作,收集結果進行入庫處理。采集的要素包括鏈路編碼,省級鏈路狀態、市級鏈路狀態、縣級鏈路狀態、目標主機編碼等。
3)臺站要素數據
臺站要素數據使用“廣東省氣象局通用接口平臺”接口獲取,數據訪問范圍、性能受限于通用接口平臺。
3.2.2 數據來源
3.3 技術路線
Web服務端采用Flask框架的MCV架構實現,模型層(Model)使用WebService方式訪問接口,獲取雷達、自動站資料的數據狀態,引入Sqlalchemy用于管理數據庫連接與數據持久化,建立主機狀態、鏈路狀態的數據與實體映射。控制器層(CONTROLLER)負責進行梳理數據邏輯。根據請求的時間,后臺自動判斷并推送最近5個時次的主機、鏈路或者數據資料,并按資料到報情況進行排序,將數據發布為Json格式的WebService。
APP端使用Ionic技術棧進行開發部署,使用的主要技術工具如下:
Ionic技術棧模型:
本研究使用上文提到的技術,從設計開發部署到第一個Demo版本實現僅用了一個月時間,之后在日常運行中不斷迭代修改,來增加功能以及修改樣式等操作。由于Ionic具有Hybrid混合開發模式的優勢,“一次開發,多次應用”,不需要在IOS和Android平臺分別開發部署測試,大大節省了跨平臺開發的時間。相比起原生系統開發而言,本項目至少需要三個月時間才能完成第一個原始版本的部署,且要同時維護IOS和Android兩個平臺的程序,耗時耗力。此外,本次使用迭代開發模型做增量修改,更是降低了在一個增量上的開支風險,從另一層面加快了項目的工作進度。
4 結束語
本研究快速實現了IOS客戶端、Android客戶端前端展示系統,并在運行中不斷迭代,在IOS平臺和Android平臺分別完成了服務器性能、鏈路狀態、數據狀態展示,達到數據準確,效果優雅,使用方便的目標。客戶端界面設置故障信息一覽表,將當前時間節點所有不同類別的故障信息整合到同一界面分類顯示,減少用戶頻繁操作,提高業務運行效率。
本研究完成了對移動客戶端混合架構開發模式的探索與嘗試。為移動端系統的開發提供了一種跨平臺、易部署、迅捷開發、可迭代的開發方法。大大縮短了開發周期,提升了開發效率,可以將業務需求快速轉化為客戶端產品。同時也提升了運維效率,節省了后期維護成本。讓開發人員有更多時間和精力投入業務生產與科研中,為氣象現代化添磚加瓦。
參考文獻:
[1] 生桂勇. 人工智能技術在移動互聯網發展中的應用[J]. 電腦知識與技術, 2018, 19(19): 206-207.
[2] 劉麗. 淺析校企合作背景下的移動互聯網應用技術專業實訓基地建設[J]. 電腦知識與技術, 2018(23): 160-161.
[3] 羅雪玲, 郭啟云, 李戟, 等. 市級氣象臺公共氣象服務發布與管理平臺設計與實現[J].氣象科技, 2014, 42(4): 635-640.
[4] 鄭思軼. 廣東省氣象臺氣象智能手機客戶端的設計與實現[J]. 廣東氣象, 2017, 39(5): 78-80.
[5] 于東海, 翟玉泰, 陳巧淑. 應用3G與HFC技術建設農村突發事件預警信息發布系統[J].氣象研究與應用, 2016, 37(1): 80-82.
[6] 楊妮潘, 期輝. 移動互聯網時代的高校計算機基礎教學創新研究[J]. 電腦知識與技術, 2017, 26(26): 135, 141.
[7] 徐冬英, 黃曉輝, 何飛. Delphi與桌面地理信息系統的集成二次開發[J]. 氣象研究與應用, 2014, 35(3): 71-74.
[8] 錢崢, 趙科科, 許皓皓. 基于Android的移動氣象信息服務系統設計與實現[J]. 氣象科技, 2014, 42(1): 99-103.
[9] 徐月. 基于移動互聯網的地圖超市手機APP設計研究[J]. 電腦知識與技術, 2018, 20(20): 295-296.
[10] 楊武, 陳靜, 李曉娜, 等. 3G時代手機氣象信息服務的可持續發展[J]. 廣東氣象, 2012, 34(3): 53-56.
[11] Hybrid. APP混合開發的一些經驗和總結[EB/OL]. [2018-07-06].https://www.cnblogs.com/yuanyingke/p/6060150.html.
[12] Jeremy Wilken. Ionic實戰:基于Angular JS的移動混合應用開發[M]. 北京: 電子工業出版社, 2016.
【通聯編輯:謝媛媛】