黃雪倩,譚鈞元,李 欣,陳 棟
1(中國海洋大學 信息科學與工程學院,青島 266100)
2(山東省青島第二中學,青島 266021)
目前,我國的海洋生態環境面臨海水富營養化加劇、海洋生物種類減少甚至滅絕等一系列嚴重問題,導致海洋資源的可再生能力下降,海洋生態平衡嚴重失衡[1].為了監測海洋生態環境的變化對海洋資源的影響,充分合理地利用海洋資源,需要建立有效的監測機制來監測海底的生態環境.通過監測來收集和分析數據,進而分析海底復雜的生態環境,為指導人類合理利用海洋資源提供科學依據.
在移動互聯網高速發展的當今,人們的視線逐漸從PC端轉移到了移動終端.智能手機APP的出現給大家提供了方便快捷的全新生活體驗.為了滿足人們生活多方面的需求,市場上出現了各種定制功能的APP.海洋生態環境數據展示APP,從海洋生態環境監測系統中獲取并展示用戶關心的數據,用戶可以通過分析當前關注的海底生態環境數據做出合理決策.
海洋生態環境數據展示APP以Android Studio作為開發平臺,在服務器端采用ASP.NET技術和SQLServer數據庫系統.
谷歌推出的新型開發環境Android Studio,其速度快、智能化、UI界面漂亮,受到Android開發者的青睞.Android 系統是基于Linux的開放源代碼的、目前市場占有率最高的移動操作系統.該系統為開發者提供了豐富的工具、系統控件和多媒體服務等等.Android可以分為四層架構,分別是Linux內核層、系統運行庫層、應用框架層、應用層[2].
NET是一種面向網絡、支持各種用戶終端的開發平臺環境,而Microsoft.NET框架是一個在Windows中集成的組件.ASP.NET是一個在Microsoft.NET框架基礎上建立的Web開發平臺,可以提供Web應用程序需要的服務[3].服務器端采用ASP.NET技術,在Visual Studio開發環境下實現.
SQLServer則是美國微軟公司推出的一種關系型數據庫系統,使用SQL語句執行各種操作.
在APP中,運用Vitamio多媒體框架實現水下視頻直播和點播設計,并用極光推送平臺接收推送消息提醒用戶,借助百度地圖展示設備投放地點.
Vitamio是一款備受青睞的多媒體開發框架,可以在Android系統和IOS系統中使用.Vitamio 框架擁有簡潔易用的 API 接口,既支持不同格式的視頻的播放,也支持不同平臺的多種視頻流媒體協議,如RTMP協議、RTSP協議等[4].本設計中使用了Vitamio多媒體框架,利用RTMP協議實現水下視頻流的直播和點播.
消息推送可以定期地給用戶傳送他們關注的信息.消息及時地推送到用戶的移動終端上,可以提高用戶活躍度、提高應用的留存率[5].本設計中選用極光推送(JPush),采用長連接方式實現端到端的服務[6].JPush是大規模APP推送平臺,在客戶端集成SDK后,通過調用API實現消息的推送功能.
百度地圖開放平臺為Android端提供了地圖、定位、鷹眼軌跡、導航、全景等功能.通過百度地圖SDK提供的接口,可以使用百度地圖提供的多種免費服務[7].
海洋生態環境數據展示APP的主要功能之一是APP的登錄,用戶只有登錄以后才可以進入APP的主界面使用其他功能.海洋生態環境實時數據包括實時水文數據和實時視頻數據.實時的水文數據可以通過布局頁面在界面直接顯示,視頻數據以視頻流地址的方式被移動終端獲取,再通過視頻播放器來播放.由于歷史數據的數據量龐大,在APP中以圖表的形式呈現給用戶.當獲取到的生態環境數據超過預設的門限值時,則通過推送消息的方式向用戶發出提醒信息.APP的更新包括自動更新和手動更新兩種方式.
對后臺管理系統要實現的功能進行分析,它需要完成以下6個任務:(1)移動終端APP的接口.(2)海洋生態環境實時數據傳輸APP用戶的管理.海洋生態環境實時數據傳輸APP用戶必須在后臺管理系統中登記以后,APP才可以登錄使用.所以在后臺管理系統中需要實現對APP用戶信息的管理: 包括新用戶信息的增加,老用戶信息的更改和刪除等.(3)移動終端APP軟件版本的升級.軟件升級功能負責將新的APK文件上傳至服務器,之后在移動終端上就可以檢測到新版本的APP.(4)查看推送消息的歷史記錄.推送消息被發送至移動終端,既可以在移動終端上查看,也可以在后臺管理系統中查看.(5)發送消息.當出現某些特殊情況時,管理員可以根據需要推送消息到指定地點.(6)管理后臺系統的用戶,實現管理員用戶的登錄、退出和密碼修改等功能.
用戶通過Android客戶端發送請求,后臺接收請求并返回數據給客戶端,數據在客戶端界面顯示.在客戶端實現實時數據和歷史數據的顯示,完成視頻流的點播和直播,接收推送消息等等.后臺服務端主要負責給瀏覽器提供界面、客戶端與服務端的通信、Android客戶端的接入以及服務器與數據庫的交互.整體架構圖如圖1所示.

圖1 整體架構圖
為了提高客戶端軟件的開發效率,降低模塊之間的耦合性,海洋生態環境數據展示APP設計的實現采用MVC模式.MVC中的M(模型)指的是多個與海洋生態環境要素有關的實體類和從網絡獲取的JSON數據.視圖層包括應用程序中的各種XML布局文件,如activity_main.xml等,和自定義的View,如程序開發時自定義的WenZiTextView,它繼承自TextView.控制層包括程序開發中的多個Activity和多個Fragment,如:MainActivity、StationDesActivity、StationsFragment、VideoFragment等.在APP的主界面設計采用單個Activity嵌套多個Fragment的方式實現,多個Fragment的使用方便模塊之間的切換,也便于應用程序的擴展.
海洋生態環境數據展示APP的主要功能包括:APP登錄、設備投放地點顯示、設備投放點實時視頻播放、存儲的精彩視頻播放、設備投放點實時水文數據顯示、設備投放點歷史數據顯示、推送消息接收、APP軟件升級等等.
APP的主要功能結構圖如圖2所示.

圖2 APP的功能結構圖
后臺管理系統功能結構圖如圖3所示.

圖3 后臺管理系統功能結構圖
后臺管理系統包含有4個部分:(1)手機APP接口.(2)業務管理,負責發送推送消息和查看推送消息歷史.(3)APP管理,負責手機APP用戶的管理和APP軟件版本的升級更新.(4)后臺用戶管理,負責管理人員密碼的更改和用戶的登錄、注銷.
用戶輸入必須在后臺管理系統中登記手機號方可實現登錄功能,登錄成功直接跳轉至APP的MainActivity主界面.如果手機號未在后臺登記,則無法實現登錄功能,此時需要聯系管理員,將手機號在后臺進行登記.登錄時,如在自動登錄前面打勾,選擇自動登錄,將用戶信息通過SharedPreferencesUtils工具類進行保存,在不更換移動終端設備和手機號的前提下,可以直接從引導頁進入APP的主界面.其流程圖如圖4所示.

圖4 移動終端登錄流程圖
用戶登錄成功后,后臺便會將移動終端的MAC地址保存,實現了移動終端和APP的綁定.如果用戶更換移動終端設備或者手機號碼,則必須與管理員聯系重新登記,以防止出現盜登錄,從而保證海洋環境數據的安全性.移動終端登錄界面如圖5所示.
主界面由底部導航欄和地圖兩部分組成,底部導航由三個碎片組成,分別是站點Fragment 、視頻Fragment、用戶Fragment,它們三個之間可以自由切換.上半部分設備投放點展示借助百度地圖開發平臺實現,如圖6所示.圖上的點稱為標記點,每個點都代表一套海洋生態環境監測系統的投放點,然后給標記點設置監聽,當點擊標記點時會觸發相應的事件.

圖5 APP的登錄界面

圖6 移動終端APP的主界面
如果數據狀態是正常的,將會獲得實時水文數據和視頻流地址.如果數據狀態不正常,則無法解析數據,數值無法顯示.以威海長青海洋牧場的數據為例,實時數據顯示界面如圖7所示.

圖7 實時數據顯示界面
圖7中環境溫度是5.31℃,鹽度是28.96 PSU,深度是8.25 m,葉綠素含量是0.08 ug/L,溶解氧含量是10.96 mg/L.點擊“實時視頻”后的視頻播放按鈕,會從圖7的頁面跳轉到VideoPlayActivity視頻播放界面,播放海底的實時視頻流,如圖8所示.

圖8 水下實時視頻流播放截圖
實時數據展示頁面包含跳轉到歷史數據頁面的按鈕和跳轉到其它站點按鈕,點擊對應按鈕可以跳轉到相應的界面.
用戶可以根據需要選擇查看溫度、鹽度、深度、溶解氧、葉綠素數據等水文和生態數據中的幾種或者全部,數據的選擇通過CheckBox控件來實現.并選擇需要查看數據的時間單位: 日、周、月、年或者自定義,最終將數據以折線圖的形式展示給用戶.通過查看數據,分析數據的變化趨勢,了解海洋生態環境變化情況,為企業管理決策提供科學依據.
黃海滸苔綠潮已連續11年暴發,2017年夏季還出現了馬尾藻金潮和米氏凱倫藻赤潮,黃?!叭薄饼R發.根據相關監測部門的報道得知,2017年6月14日前后,滸苔綠潮入侵山東日照沿海海域.通過移動終端APP觀察到5月20日到6月20日日照國美投礁型海洋牧場的水文生態參數數據如圖9所示.從圖中可以看出,海水溫度呈現季節性增溫,但是在14號之后,溫度迅速升高,溶解氧含量迅速降低,葉綠素濃度急劇上升,在6月18號之后葉綠素濃度又恢復到綠潮到來之前的水平.2017年6月16號前后在青島魯海豐海洋牧場的水文生態參數中也觀察到類似現象,因此推測海洋牧場生態環境數據異常與“三潮”入侵有關.
通過長期觀察某一特定海域海洋生態環境數據的變化規律和某些特定參數(例如海水溫度、溶解氧、葉綠素等)異常變化與發生海洋災害(例如綠潮、金潮或者赤潮等)的關聯性,可以總結出利用海洋生態環境監測系統對海洋生態災害進行預報的數值模型,為海洋牧場提供海洋生態災害預警機制,為企業科學決策提供數據支撐,減少企業由于海洋生態災害導致的經濟損失.

圖9 日照國美海洋牧場5/20~6/20的水文生態參數變化
通過選擇VideoFragment能夠跳轉到精彩視頻列表界面,如圖10所示.可以選擇播放任何一個投放地點精彩視頻列表中的任意一個視頻片段.
Vitamio框架提供了視頻播放的相關類,每個類都有對應功能,MediaController類負責視頻播放時的控制頁面,包括視頻的開始和暫停[8].通過設置接口函數來實現視頻播放時的參數設置,在VideoPlayActivity中,使用setBufferSize()接口函數設置播放視頻的大小,用setPlaybackSpeed()接口函數設置視頻的播放速度.視頻播放過程中需要設置三個監聽: 播放準備好監聽,播放完成監聽和播放出錯監聽.

圖10 移動終端APP的精彩視頻列表界面
移動終端APP的個人信息界面如圖11所示,包括查看我的消息、信息發布、檢查更新、是否開啟推送通知、退出登錄五項功能.

圖11 移動終端APP的個人信息界面
在個人信息界面中點擊“我的消息”可以查看移動終端接收的提醒消息,點擊后會跳轉到消息列表頁面,如圖12所示.消息列表中都是利用極光推送發送的提醒消息,用戶通過提醒消息可以得知某海域的某些生態環境指標超出預警閾值,生態環境可能面臨惡化的危險.

圖12 提醒消息列表界面
經過測試后,移動終端APP和后臺管理系統運行穩定.目前,海洋生態環境監測系統已布放在山東省的二十余個海洋牧場中,通過該APP向用戶展示海洋牧場的生態環境數據.
通過移動終端APP查看歷史數據,分析數據并根據數值變化率預測生態異?,F象的出現,結合實時數據和推送消息,可以實現海洋生態環境參數異常預警,從而為海洋牧場的科學生產和防災減災提供數據支撐.