李峰,王純
(1 北京郵電大學網(wǎng)絡與交換技術國家重點實驗室,北京 100876; 2 東信北郵信息技術有限公司,北京 100191)
基于Android平臺的電信業(yè)務應用框架方案*
李峰1,2,王純1,2
(1 北京郵電大學網(wǎng)絡與交換技術國家重點實驗室,北京 100876; 2 東信北郵信息技術有限公司,北京 100191)
隨著移動互聯(lián)網(wǎng)和電信增值業(yè)務的快速發(fā)展,電信業(yè)務類應用的需求量越來越大。企業(yè)和個人通過開發(fā)框架的支持,可以快速開發(fā)電信業(yè)務應用,高效率高質量的完成開發(fā),并能較快的投入市場。本文分析了基于Android平臺的電信業(yè)務應用框架的需求,提出框架設計方案,包括業(yè)務功能模塊、UI模塊、數(shù)據(jù)存儲和網(wǎng)絡通信模塊,并針對每個模塊進行了詳細闡述。
電信業(yè)務;應用框架;Android
本文所指電信業(yè)務是指運營商在基本業(yè)務(話音業(yè)務)的基礎上,針對不同用戶群和市場需求開通可供用戶選擇使用的業(yè)務。由于滿足了用戶的多種需求,在市場上取得了巨大成功。移動互聯(lián)網(wǎng)給用戶帶來的全新體驗,代表了移動增值業(yè)務未來的發(fā)展方向[1]。隨著移動互聯(lián)網(wǎng)的到來,運營商對移動互聯(lián)網(wǎng)技術變得更加重視,業(yè)務運營模式也隨之發(fā)生著改變,通過終端應用來進行電信業(yè)務操作已經(jīng)是一種必然趨勢。
Android平臺是當今使用范圍最廣的智能終端平臺,隨著電信增值業(yè)務的快速發(fā)展,基于Android平臺快速開發(fā)一個電信業(yè)務應用已經(jīng)成為一種趨勢。在Android平臺上高效率的開發(fā)應用,同時保證良好的軟件結構和產(chǎn)品質量,是隨著移動互聯(lián)網(wǎng)快速發(fā)展對企業(yè)和個人的一種緊迫要求。本文基于這樣的背景提出一種開發(fā)電信業(yè)務應用的框架方案。
雖然Android激活設備和電信業(yè)務應用飛速增長,但對于電信應用開發(fā)而言,開發(fā)人員通常都要從零進行電信業(yè)務應用的設計開發(fā)。開發(fā)者需要對應用中的各項功能逐一開發(fā),大大降低了應用開發(fā)效率,代碼復用率也不高。
為了解決電信業(yè)務類應用開發(fā)速度較慢的問題,本文提出了基于Android平臺的應用框架方案。該框架在快速發(fā)展的電信業(yè)務背景下,使電信業(yè)務應用開發(fā)者能高效開發(fā)出應用并保證較高的軟件質量。電信業(yè)務應用框架的目的是減少對于網(wǎng)絡接口和數(shù)據(jù)存儲的開發(fā)時間,專注于業(yè)務應用的功能設計與實現(xiàn),以此提高開發(fā)效率和代碼復用率,保證良好的軟件結構。
電信業(yè)務應用框架的核心需求是實現(xiàn)網(wǎng)絡通信與數(shù)據(jù)存儲模塊。將電信應用的通信和數(shù)據(jù)模塊提取出來,在此基礎上通過與整體用戶界面(UI)框架及UI控件庫相結合,可以較快進行業(yè)務數(shù)據(jù)獲取和呈現(xiàn),對于相應的業(yè)務進行功能實現(xiàn)。
1.1 電信業(yè)務應用共性需求
1.1.1 通信模式
電信業(yè)務應用對通信的安全性要求較高,尤其是業(yè)務管理點(SMP,Service Management Point)應用,由手機客戶端通過網(wǎng)絡請求發(fā)送人機交互語言(MML,Man-Machine Language)指令進行業(yè)務管理,終端需要對MML進行封裝和解析,使用HTTPS和REST通信,同時設計了一套客戶端與服務端的安全認證機制。本框架對SMP應用的通信方式進行了封裝,方便開發(fā)者快速實現(xiàn)和服務器安全通信。
1.1.2 數(shù)據(jù)封裝
電信業(yè)務中一些敏感信息需要使用加密算法進行加密,并放入HTTP請求的消息頭部中。對于SMP應用還需要對用戶提交的數(shù)據(jù)與MML指令結合并按照統(tǒng)一規(guī)范的格式進行封裝,然后發(fā)送給服務器。
框架中對這種數(shù)據(jù)的處理經(jīng)過通用的方法進行封裝,方便針對特定的電信業(yè)務應用開發(fā)調用。
1.2 電信業(yè)務應用個性需求
(1)業(yè)務邏輯。電信業(yè)務應用之間的最大差別在于其功能上的差異,因此,對于業(yè)務功能,框架不能提供共性功能,但框架提供一些基礎邏輯類和工具類,方便快速高效開發(fā)業(yè)務功能。
(2)界面。不同應用之間界面設計相差很大,但其中的基礎控件很多是可復用的,開發(fā)框架實現(xiàn)了對特殊樣式控件的封裝,方便開發(fā)人員直接使用,減少了開發(fā)人員對控件進行從頭設置的工作量。
2.1 框架結構圖
框架結構如圖1所示,主要分為4個模塊:業(yè)務功能模塊、數(shù)據(jù)存儲模塊、網(wǎng)絡通信模塊和UI框架與控件庫模塊。業(yè)務功能模塊與其它3個模塊之間關系緊密,需要借助于其它模塊來實現(xiàn),同時其它模塊也是為業(yè)務功能模塊服務的。數(shù)據(jù)存儲模塊與網(wǎng)絡通信模塊相互支撐,實現(xiàn)了數(shù)據(jù)獲取、解析和存儲的過程。
圖1 電信業(yè)務應用框架結構圖
2.2 框架各結構具體分析
2.2.1 數(shù)據(jù)存儲
Android應用中存儲數(shù)據(jù)有3種主要方式:SQLite數(shù)據(jù)庫存儲、SharedPreference存儲和文件存儲??蚣苤С诌@3種數(shù)據(jù)存儲方式并對其進行優(yōu)化封裝,方便用戶使用,實現(xiàn)高效率存儲和讀取數(shù)據(jù)。
2.2.1.1 SQLite數(shù)據(jù)庫
Android系統(tǒng)集成了一個輕量級的數(shù)據(jù)庫:SQLite是一個嵌入式的數(shù)據(jù)庫引擎,專門適用于資源有限設備的適量數(shù)據(jù)存儲。電信業(yè)務應用中的賬戶信息、業(yè)務信息(比如用戶對應的彩鈴、彩?。┚梢员4嬖跀?shù)據(jù)庫中方便存取展示。
本框架針對數(shù)據(jù)庫操作API進行封裝,保證數(shù)據(jù)操作的統(tǒng)一性和易用性。為特定的業(yè)務提供新建數(shù)據(jù)庫及數(shù)據(jù)庫表的一般操作;為數(shù)據(jù)提供增加、刪除、修改、更新的抽象方法,易于對業(yè)務數(shù)據(jù)進行存儲和更新;優(yōu)化SQL語句,提高操作效率;幫助用戶可以不理會數(shù)據(jù)庫實現(xiàn)細節(jié)而方便快捷地調用數(shù)據(jù)庫進行數(shù)據(jù)操作。此外,電信業(yè)務應用一般都與聯(lián)系人數(shù)據(jù)密切相關,框架針對聯(lián)系人信息進行擴展,方便用戶保存手機號碼相關業(yè)務信息,并提供數(shù)據(jù)庫存取API,方便用戶使用。
2.2.1.2 SharedPreference存儲
SharedPreference保存的數(shù)據(jù)主要是類似配置信息格式的數(shù)據(jù),主要保存的數(shù)據(jù)主要是簡單類型的KEY-VALUE(鍵-值)對。相對于SQLite數(shù)據(jù)庫,SharedPreference的操作更加簡潔,適合存儲數(shù)據(jù)小而零散、經(jīng)常需要用到的數(shù)據(jù)。比如電信業(yè)務應用每一次網(wǎng)絡交互中,需要傳一些特定的字符串參數(shù),保存在SharedPreference中可以很方便地進行讀取操作??蚣軐τ赟haredPreference讀、寫、清除方法進行了封裝,方便開發(fā)者以鍵-值對的格式對多個參數(shù)進行存儲和讀取。
2.2.1.3 文件存儲
文件存儲主要用來存儲圖片、音視頻、應用安裝包等數(shù)據(jù)量較大的文件。Android應用可以使用文件流訪問手機存儲器上的文件??蚣芊庋b了文件流讀寫操作方法,用戶通過設置文件位置,提供文件操作,存取圖片、音視頻等資源。
2.2.2 網(wǎng)絡通信
HTTP是應用層協(xié)議,用于分布式協(xié)作超媒體信息系統(tǒng),是一個客戶端和服務端請求和應答的標準。超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議,所有的WWW文件都必須遵守這個標準。
HTTP被廣泛地運用于移動終端與服務器端的交互,它是一個基于“請求-響應”模式的協(xié)議,一個客戶機與服務器建立連接后,發(fā)送一個請求給服務器,服務器接到請求后,給予響應信息[2]。
HPPTS是在HTTP和SSL/TLS的組合,用以提供加密通信及對網(wǎng)絡服務器身份的鑒定。電信業(yè)務應用由于信息的隱秘性,需要使用HTTPS保證信息傳輸?shù)陌踩???蚣軐W(wǎng)絡請求設置進行了封裝,通過對網(wǎng)絡請求配置80和8443端口以支持HTTP和HTTPS的訪問,方便用戶調用的同時保證信息傳輸?shù)陌踩浴?/p>
數(shù)據(jù)解析子模塊針對獲取的網(wǎng)絡數(shù)據(jù)進行解析,網(wǎng)絡數(shù)據(jù)格式一般為XML或者JSON數(shù)據(jù),通過提供解析XML和JSON數(shù)據(jù)的一般方法,方便將結果解析為結構化的數(shù)據(jù),存儲在SQLite數(shù)據(jù)庫中。針對電信業(yè)務應用的數(shù)據(jù)安全性考慮,數(shù)據(jù)傳輸之前需要對數(shù)據(jù)進行加密??蚣軐τ跀?shù)據(jù)中的一些重要信息,通過HMAC_sha256和MD5進行加密,并在HTTP請求的頭部加入加密的驗證信息,保證數(shù)據(jù)安全性。
此外,對于電信應用中的SMP應用,通過終端直接進行業(yè)務操作的方式要求了更加嚴密的通信模塊。針對此種情況,通信模塊封裝了應用與服務器的通信過程,提供安全認證、MML協(xié)議封裝/解析、HTTPS+ REST通信等公共能力。
2.2.3 界面框架與UI控件庫
2.2.3.1 界面框架
碎片 (Fragment)是Android平臺在Android3.0 HoneyComb版本(API等級11)中引入的新概念,與Activity類似,但是可以在Activity中復用多個Fragment,從而實現(xiàn)界面和功能的復用,可以快速拓展新功能和迭代新版本。
UI 框架的作用是提升用戶交互編程的效率[3],框架針對界面提供了兩種UI框架:Tab和Slidingmenu(滑動菜單)+Fragment。通過調查當下比較流行的應用,發(fā)現(xiàn)這兩種界面框架是使用次數(shù)最多的。電信業(yè)務應用包含多個子功能時,可以并排展示在應用底部Tab中或者左側的滑動菜單里,方便用戶切換。
2.2.3.2 UI控件庫
電信業(yè)務應用在用戶交互過程中,界面中使用了大量用于展示數(shù)據(jù)、供用戶查看、設置業(yè)務信息操作的UI控件,其中有些控件的調用方法較為繁瑣(比如應用初始時的Gallery簡介)或者功能需要擴展(可拖動進行排序的Listview),給應用開發(fā)帶來了不便??蚣茚槍Υ祟悊栴}進行了UI控件庫的設計,針對較繁瑣的控件使用進行了封裝,方便調用;對于一些控件功能進行了擴展,提供調用方法,幫助開發(fā)者快速完成界面開發(fā)。
2.2.4 業(yè)務功能模塊
業(yè)務功能模塊針對電信業(yè)務的一些操作進行封裝,包括對某種業(yè)務的獲取、設置、刪除等方法,通過一個基類的形式來實現(xiàn)。其中包含向服務器發(fā)起請求的方法調用、對請求結果參數(shù)的處理、對數(shù)據(jù)解析結果展示等。在應用開發(fā)過程中,各個功能模塊可通過集成此基類,實現(xiàn)基類通用方法的同時,根據(jù)業(yè)務需求實現(xiàn)該業(yè)務附加的操作。
此外,該模塊還提供了一些常用的操作工具類,以實現(xiàn)一些比較復雜的操作。針對圖片下載和緩存,利用二級緩存、內存和SD卡,來對圖片進行緩存,緩存算法使用LRU,空間不足時,刪除最近最少使用的資源。支持文件斷點續(xù)傳的下載工具類,通過使用輔助數(shù)據(jù)庫保存文件下載位置實現(xiàn)斷點續(xù)傳。針對業(yè)務的網(wǎng)絡請求功能,在Android自帶的AysnTask的基礎之上,對其進行封裝,通過傳入自定義請求結果接口,方便開發(fā)者進行網(wǎng)絡請求結果的處理。該模塊封裝的這些工具類可以大大減輕開發(fā)者的負擔,方便直接調用實現(xiàn)業(yè)務功能。
基于Android平臺的電信業(yè)務應用框架方案為企業(yè)和個人設計開發(fā)電信業(yè)務類應用提供了高效規(guī)范的開發(fā)框架,幫助企業(yè)在開發(fā)應用過程中提高開發(fā)效率、保證產(chǎn)品質量、減少人力資源消耗,同時提高代碼復用率,便于應用的后期維護和升級。該框架具有較好的應用前景和商業(yè)價值。
[1] 徐童,廖建新. 移動互聯(lián)網(wǎng)與移動智能網(wǎng)的互通研究[J],計算機工程與應用,2005,20(1):9-12.
[2] Balachander Krishnamurthy、Jennifer Rexford. Web協(xié)議與實踐[M].北京:科學出版社. 2003:120.
[3] 黃佳星, 王晶, 沈奇威. 基于Android的移動互聯(lián)網(wǎng)應用框架方案[J]. 電信工程技術與標準化, 2012,25(8):77-80.
News
Vitesse力促企業(yè)級網(wǎng)絡邁向千兆Wi-Fi
為了促進無線局域網(wǎng)升級,Vitesse Semiconductor推出了其SparX-IV系列新品,包括VSC7442、VSC7444和VSC7448等芯片,它們是專門為802.11ac WLAN企業(yè)級網(wǎng)絡部署而優(yōu)化的以太網(wǎng)交換機芯片系列。全新的SparX-IV以太網(wǎng)交換機芯片是千兆Wi-Fi接入和聚合的理想選擇,也非常適合于包括工廠自動化和智能電網(wǎng)在內的工業(yè)物聯(lián)網(wǎng)(IoT)應用。
Application framework scheme of telecommunication business applications based on Android
LI Feng1,2, WANG Chun1,2
(1 Beijing University of Posts and Telecommunications Networking and Switching Technology, State Key Laboratory, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)
With the rapid growth of mobile internet and telecommunication services, the demand of applications of telecommunications services is growing. Enterprise and personal developer can develop telecommunication applications fast and efficiently and put into market quickly with the support of application framework. This paper analyzes the demand for telecommunication application framework based on Android and proposes a framework. The framework consists of communication module, data module, business functional module and UI module. This paper discusses several modules in detail.
telecommunication services; application framework; Android
TN929.5
A
1008-5599(2014)08-0082-04
2014-07-07
國家973計劃項目(編號:2013CB329102);國家自然科學基金資助項目(No. 61372120, 61271019, 61101119, 61121001);長江學者和創(chuàng)新團隊發(fā)展計劃資助(編號:IRT1049);教育部科學技術研究重點(重大)項目資助(編號:MCM20130310);北京高等學校青年英才計劃項目(編號:YETP0473)。