黃霄漢,馬兆豐
(1. 北京郵電大學,北京 100876;2. 北京國泰信安科技有限公司,北京 100086)
Android移動互聯網輿情推送技術研究與實現
黃霄漢1,馬兆豐2
(1. 北京郵電大學,北京 100876;2. 北京國泰信安科技有限公司,北京 100086)
鑒于傳統的互聯網輿情系統往往僅關注于互聯網輿情的獲取,即互聯網輿情監測系統。針對此情況,本文通過對現代互聯網輿情的分析,提出了一種基于Android移動互聯網的推送技術的輿情信息的管理模型。明確該推送系統應具備的基本功能,分析現有的推送系統,吸收其優點改進其缺點,將其利用到新型的輿情管理模型中。然后進行詳細的技術調研,根據各個模塊的需求進行詳細設計,為實現編碼提供了有力支持,最終通過測試得出基于Android移動互聯網的推送技術系統符合實際需求,具有較強的實用性。
計算機應用技術;輿情;移動互聯網;安卓;推送
輿情是“輿論情況”的簡稱,是指在一定的社會空間內,圍繞社會事件的發生、發展和變化,作為主體的民眾對社會管理者及其政治取向產生和持有的社會政治態度[1]。互聯網中的社會輿情是指民眾通過互聯網對政府管理及社會中各種現象、問題所表達的政治信念、態度、意見和情緒的總和[2]。移動互聯網的發展給互聯網注入了新的活力,加深了互聯網媒體的傳播深度、加大了傳播廣度,其開放、虛擬的特性讓針對某些新聞的言論達到了前所未有的活躍程度。互聯網輿情對社會的影響是巨大的,互聯網已成為思想文化信息的集散地和社會輿論的放大器,對社會的穩定性的影響是十分深遠的,對于互聯網輿情的導控的問題直接影響到國家的穩定發展。
現有的輿情系統中,李鶴就輿情處置問題上提出了“黃金4小時原則”,及時主動的對突發輿情進行處理、導控[3]。邸文晨在輿情導控方面提出了利用WebBrowser對互聯網輿論進行網頁上評論頂貼等操作[4],從而實現對輿情的導控。另外國內在信息處理領域內成型的軟件產品很多,比較有代表性的是北大方正技術研究院推出的方正智思輿情預警輔助決策支持系統。第三方網絡輿情監控系統有Goonie 網絡輿情監控系統、鷹隼網絡輿情監控系統、軍犬網絡輿情監控系統等。
國外在互聯網輿情監管系統有美國的話題檢測與跟蹤系統(TDT,Topic Detection and Tracking)項目[5][6],它是美國國防部計劃部署的一個研究項目,它設計目標是研究出一些算法,能夠快速發現和歸納來自數據流中的重要信息和內容。
針對互聯網輿情的響應與導控的速度對輿情的發展和走向起著決定性的作用。現階段的輿情監測系統中,關注到互聯網輿情的發現,卻忽略了將相關輿情信息發布到有關部門。
本文提出一種基于Android移動互聯網的輿情推送技術,該方法基于移動互聯網,利用推送技術將輿情監測引擎監測到的輿情信息直接推送到有關部門,大大縮短了互聯網輿情的響應時間。系統是基于Android操作系統,加上Android手機的普及率,易用于真實的使用場景。實驗結果表明該方案在下達輿情信息方面具有較好的效果。
設計高效的、實用的輿情推送系統,必需先詳細的分析其功能與需求,確定系統需達到的目標。需求分析分為功能需求分析和性能需求分析,輿情推送系統的所需的功能是將輿情信息發送到用戶的客戶端上,并切能夠支持批量發送,即發送到多個用戶的客戶端上。其性能需求就是能夠支持大量用戶同時在線,并且需要保證信息的到達率、及時率以及消息的安全性。
1.1 業務需求分析
移動智能終端的不斷升級換代,使其普及率大大提升、功能也更為完善。移動端的便攜性和強大的辦公能力將慢慢取代傳統的辦公模式,監管導控互聯網輿情的工作也可以轉移到移動端來進行。相關人員可以通過移動互聯網很方便的獲取到最新、最熱、影響力最大的輿情信息,進而開展下一步的導控工作。整個推送系統結構如圖1所示。
整個推送系統的結構如上圖所示,系統的工作流程大致如下:
(1)登錄,首先移動客戶端登錄,將用戶名、密碼等身份信息發送給服務器,登錄成功后,建立起基于TCP的長鏈接。隨后客戶端便進入周期性發送心跳維持該長鏈接的階段。

圖1 輿情推送系統架構圖Fig.1 Architecture of public sentiment push system
(2)推送,應用服務器將輿情信息進行加密封裝,然后將封裝好的信息下發到推送服務器創建推送任務,推送服務器將封裝好的輿情信息發送給移動端。
(3)移動端收到輿情信息后,解析該輿情信息,用戶即可看到相應的輿情信息。
1.2 性能需求分析
1.2.1 實時性
本平臺采用實時呈現的方式實現輿情推送,以便及時發現和處理輿情事件,要在輿情初始階段作出應對措施,所以消息的到達率和實時性也要得到保障。
1.2.2 實時性
本平臺所涉及的內容為輿情,其本身也是輿情的一部分,以保證平臺業務涉及數據通信安全、數據安全等。
1.3 可行性分析
1.3.1 理論可行性
移動互聯網的不斷發展,輿情導控現在是一個備受重視的問題,國內外的許多人都對這個課題進行了各種研究,現有的輿情監測技術、基于移動互聯網的推送技術和即時通訊系統都是有著許多的可借鑒之處的。本課題從這些理論出發,深入研究輿情推送模型,提出自己的相關見解是完全可行的。
1.3.2 技術可行性
本系統所涉及的技術包括面向終端的推送技術,有很多第三方推送服務提供商,比如個推推送,百度云推送等,推送技術已經實現。綜上所述,本課題在技術上是完全可行的。
當前的基于Android的推送方案主要有客戶端輪詢、短信推送、長連接三種。三種方案采用不同的實現方式。
客戶端輪詢方式是客戶端周期性的訪問服務器查詢是否有新的消息。由于輪詢方式采用不斷訪問的方式,則其性能受訪問周期影響。且耗費大量的數據流量,用戶網絡成本高和手機耗電量大,此方式不適合做移動推送服務。
短信推送,在Android系統中,開發者可以通過發送短信的方式將需要發送的信息封裝在短消息中,在移動端攔截短信并解析其內容。該方案實時性較高。發送短信需依靠運營商的支持,成本較高,該方式也不適合用作推送方案。
長連接是可以在一個連接上發送多個數據包,每個客戶端都與服務器保持著一個連接。當有消息需要推送時,服務器直接向客戶端推送消息,但是當沒有數據發送時,客戶端每隔一段時間需向服務器發送一次心跳連接。該推送方案可以確保消息到達的實時性,且易實現,節省資源。例如AndroidPn(Android push notification)就是目前屈指可數的開源推送項目之一,該項目是基于XMPP協議[7]的推送開源項目。
2.1 TCP長鏈接
短連接是指通訊雙方有數據交互時,就建立一個連接,數據發送完成后,則斷開此連接,即每次連接只完成一項業務的發送。相對于短連接而言,長連接多用于頻繁發送數據包的情況下,例如點對點的通訊。長連接的情況,客戶端向服務器端發起連接,服務器接受客戶端連接,雙方建立連接。客戶端與服務器完成一次讀寫之后,它們之間的連接并不會主動關閉,后續的讀寫操作會繼續使用這個連接。TCP連接的建立是需要三次握手協議的,三次握手的過程如圖2所示。
TCP建立連接的流程如下:
(1)客戶端主動發送連接請求包給服務器。
(2)服務器接收到了之后就會把當前服務器的一個狀態碼+1,服務器發送SYN包給客戶端,服務器進而進入準備建立連接的狀態。
(3)客戶端接收到服務器發過來的SYN包時,再向服務器發送一個確認包,服務器接收到包的時,會檢測當前的狀態碼與(1)的狀態碼)是否對應。
(4)進入連接建立的狀態,雙方進行交換順序。
當讀寫操作完成后,雙方不再需要這個連接時,它們雙方會釋放該連接。而釋放則需要四次握手,四次握手的過程如圖3所示。

圖2 TCP三次握手協議 Fig.2 TCP protocol three time handshake

圖3 TCP四次揮手協議名稱Fig.3 Connection termination protocol
TCP釋放連接過程:
(1)客戶端先向服務器發送連接釋放報文段,并停止繼續發送數據,主動關閉TCP連接,客戶端把連接釋放報文段首部置為1,進入到等待終止狀態,等待服務器的確認。
(2)服務器接收到釋放報文段后即發出確認報文,進入到等待關閉狀態。而TCP服務器進程這個時候就會通知高層的應用進程,從而讓客戶端到服務器這個方向的連接被釋放掉,此時的TCP連接處于一個半關閉狀態,即服務器到客戶端的連接未關閉。客戶端在收到來自服務器的確認之后,就進入等待終止狀態,等待接收服務器發出的連接釋放報文段。
(3)如果服務器已經沒有了要向客戶端發送的數據,其應用進程就會通知TCP釋放連接,之后服務器進入最后確認狀態,等待客戶端的確認。
(4)戶端在收到服務器的連接釋放報文段后,就必須對此發出確認,之后進入到時間等待狀態,經過一段時間,客戶端才進入到關閉狀態。
2.2 心跳機制
移動端與服務器進行數據交換時主要通過公眾移動網絡實現的無線網絡(如3G,4G,GPRS)和無線局域網(WIFI)等。在移動網絡下,因為IPv4的IP地址數量有限,運營商分配給手機終端的IP地址實際上是運營商內部網絡的IP地址,手機要連接Internet,就需要通過運營商的網關做一個網絡地址轉換。運營商對此問題的解決方案就是NAT(Network Address Translation),NAT技術[8]是1994年提出的一項用于解決IPv4地址數量有限問題的技術,它的基本工作原理就是在路由器維護一張NAT表,包含運營商的網關需要維護一個外網IP地址、端口到內網IP、端口的映射關系,以確保內網的手機可以跟Internet的服務器。在WIFI連接的情況下,路由器就相當于NAT設備,維持著內部地址和外部地址的映射關系。但是大部分移動無線網絡運行商都會在鏈路沒有數據交換時進行NAT表的更新,會刪除NAT表中的對應數據,從而使得連接斷開。
處于內網的設備如果不主動向外發起連接,外網機沒法直連接到內網的設備上,以及要防止上文提出的NAT超時,所以要在沒有數據交互的情況下由每一個客戶端每隔一定時間就會向服務器發送心跳,該心跳機制[9][10]可以保證服務器可以隨時找到該移動設備,以維護NAT表的數據項,從而維持了連接的可用性。
Android中周期性的動作由android.app.Alarm-Manager來實現,AlarmManager類是屬于android系統封裝好來管理RTC(Real-Time Clock,Android系統中的實時時鐘)模塊[11]的管理類。
在android客戶端使用Push推送時,使用Alarm-Manager來實現心跳功能,使其真正實現長連接。
客戶端向服務器心跳間隔是固定的[12],當服務器在連接空閑超過這個時間還沒收到心跳時,則認為客戶端掉線,關閉連接。當服務器通過TCP連接主動給客戶端發消息出現寫超時,可以直接認為對方掉線,直接關閉連接。
2.3 設備重連
由于移動設備的便攜性,客戶端會經常移動,其網絡連接是不斷變化的。當網絡發生變化時,從WIFI到4G、3G的切換,或4G、3G移動基站間的切換,都有可能會導致連接斷開。
要保證推送服務的質量,需要在移動端重新連接上網絡時進行重連操作,啟動重連操作的工作原理是基于Android操作系統的廣播機制,在Android系統狀態放生變化時,會發出一些系統廣播(如短信的接收,來電話,電池電量過低,網絡狀態改變),網絡狀態的變化就是其中之一,當Android系統網絡連接放生變化時,就會發出android.net.conn. CONNECTIVITY_CHANGE廣播。利用作為4大組件之一的BroadcastReceiver來進行接收,當接收到該廣播時,若網絡可用則進行重連操作即可。
2.4 Android端提醒
服務器端會將輿情信息通過加密后封裝在json(JavaScript Object Notation,一種輕量級的數據交換格式)中,其中有一個table屬性,代表推送過來的消息的種類。當接收到的消息為輿情信息時,會對輿情信息進行解密,并判斷是否已存在該信息,若不存在則直接存入本地數據庫。并利用基于Android的Notification機制對用戶進行提醒。操作流程圖如圖4所示。
系統服務器端采用LeanCloud服務器,Android端采用原生的Android系統開發。
3.1 界面展示
圖5左圖為客戶端接收到輿情信息的通知效果,當服務器端推出輿情,客戶端接收到輿情信息便會彈出通知消息。圖5右圖為接收到的輿情的詳情,用戶點擊通知欄消息即可查看輿情的詳細信息。

圖4 客戶端接收輿情信息流程圖Fig.4 Flowing chart of receiving messege

圖5 客戶端截圖Fig.5 Screenshot of the client
圖6 為服務器端截圖,管理員可通過此頁面選擇輿情推送的對象,可有全員推送和個性推送兩種,全員推送既將該輿情信息發布給平臺所有用戶,個性推送可以選擇將輿情信息推送給某個地區的人或是自己選定的人員。
3.2 測試環境
本系統的測試主要在Android系統的手機上進行,包括華為、魅族、小米等真機,測試的網絡環境包括3G、4G與WIFI,各個測試機的配置如表1所示。

表1 測試手機配置表Tab.1 Configuration of test phone
3.3 功能測試
通過將服務器部署到一臺Tomcat服務器上,客戶端分別裝在華為、魅族、小米測試手機上。分別對全員推送、個性推送的按地區推送和按人員推送的功能進行測試。經測試,推送系統能夠正確的完成全員推送和個性推送,測試結果如表2所示。

表2 推送功能測試結果表Tab.2 Result of push test
3.4 性能評估
延時是評估推送系統最重要的指標,在服務器端和Android客戶端采用打印log的形式記錄推送輿情的時間和接收到輿情的時間,經統計,推送延時結果如表3所示。

表3 推送到達時間測試結果表Tab.3 Result of the time delay of push test
提出了基于Android移動互聯網輿情推送模型,推送技術是基于TCP長連接實現的,通過客戶端不斷發送心跳的方式實現維持該長連接的有效性的。經過測試可知:
(1)本系統的實輿情推送的延時相對而言是比較低的。
(2)系統推送的數據是通過加密后的,所以其安全性也是可以保證的。
(3)客戶端進行了適配,適用于市面上絕大部份手機,其實用性也是可以保證的。
綜上所訴,基于Android移動互聯網輿情推送平臺符合實際生產場景中的需求,對輿情管理能提供較大的幫助,具有較強的實用性。
[1] 互聯網絡信息中心. 第34次中國互聯網絡發展狀況統計報告[J]. 互聯網天地, 2014, (7): 80-81.
[2] 王來華. 輿情研究概略-理論、方法和現實熱點[M]. 天津:天津社會科學院出版社, 2011.60-61.
[3] 李鶴, 《新媒體時代: 處置突發事件的"黃金4小時"法則》[N]. 《黨政干部參考》, 2004-02-10: 34-35.
[4] 邸文晨. 網絡社區輿情引導技術研究與實現[D]. 哈爾濱:哈爾濱工業大學, 2012.
[5] L.S.AI Sumait, online Topic Detection, Tracking and Significance Ranking Using Generative Topic Models[D]. USA: George Mason University, 2009.
[6] J.Allan, 5.Harding, D.Fisher.Taking To Pic Detection from Evaluation to Practice[C]. Proceedings of the Annual Hawaii International Conference on System Sciences, 2010.
[7] Hansen J, Ghinea G. Towards Cloud to Device Push Messaging on Android; Technologies, Possibilities and Challenges[J]. Intl J of Communications, Network and System Sciences, 2012, 5(12): 839-849.
[8] 王丹. NAT技術的原理及實踐[J]. 電子制作, 2014, 21(4): 120-121.
[9] 胡志坤, 何多昌, 桂衛華. GPRS數據包長度和心跳包間隔性能分析[J]. 計算機應用, 2008, 54(4): 363-366.
[10] 何蟯, 張榮. 移動應用無需心跳維持長期在線的方案研究[J]. 電信科學, 2014, 30(1): 122-127.
[11] 陳璟, 陳平華, 李文亮. Android內核分析[J]. 現代計算機(專業版), 2009, 22(11): 112-115.
[12] 倪紅軍. 基于Android平臺的消息推送研究與實現實驗室研究與探索, 2014, 33(5): 96-100.
Research on Public Sentiment Push Technology Based on Android and Mobile Internet
HUANG Xiao-han1, MA Zhao-feng1,2
(1. Beijing University of Posts and Telecommunications, Beijing 100876, China 2. Beijing National Security Science and Technology Co..Ltd, Beijing, 100086, China)
As the traditional Internet systems are only concerned about getting public sentiments, it is just a Internet public sentiments monitoring system. For this case, this paper a new management model based on the Android mobile Internet push technology, understanding the character of modern Internet public sentiment. Figuring out which basic functions the push system should have, analyzing the push systems existed, and the new management model will absorb the existed advantages and improve its shortcomings.Then, according to every function, making a detailed technical studies to provides a strong support for coding work. Final test results prove that this push technology system based on the Android mobile Internet in line with the actual demand, with a strong practical.
Computing Application Technology; Public sentiment; Mobile internet; Android; Push
TP300
A
10.3969/j.issn.1003-6970.2016.12.006
國家自然科學基金(No.61272519, No.61170297, No.61572080, No.61472258)
黃霄漢(1991-),男,碩士研究生,主要研究方向:移動互聯網安全。
馬兆豐,講師,主要研究方向:數字版權管理;數字內容安全;計算機網絡安全。
本文著錄格式:黃霄漢,馬兆豐. Android移動互聯網輿情推送技術研究與實現[J]. 軟件,2016,37(12):26-31