李峰,王纯
(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)
基于Android平台的电信业务应用框架方案*
李峰1,2,王纯1,2
(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)
随着移动互联网和电信增值业务的快速发展,电信业务类应用的需求量越来越大。企业和个人通过开发框架的支持,可以快速开发电信业务应用,高效率高质量的完成开发,并能较快的投入市场。本文分析了基于Android平台的电信业务应用框架的需求,提出框架设计方案,包括业务功能模块、UI模块、数据存储和网络通信模块,并针对每个模块进行了详细阐述。
电信业务;应用框架;Android
本文所指电信业务是指运营商在基本业务(话音业务)的基础上,针对不同用户群和市场需求开通可供用户选择使用的业务。由于满足了用户的多种需求,在市场上取得了巨大成功。移动互联网给用户带来的全新体验,代表了移动增值业务未来的发展方向[1]。随着移动互联网的到来,运营商对移动互联网技术变得更加重视,业务运营模式也随之发生着改变,通过终端应用来进行电信业务操作已经是一种必然趋势。
Android平台是当今使用范围最广的智能终端平台,随着电信增值业务的快速发展,基于Android平台快速开发一个电信业务应用已经成为一种趋势。在Android平台上高效率的开发应用,同时保证良好的软件结构和产品质量,是随着移动互联网快速发展对企业和个人的一种紧迫要求。本文基于这样的背景提出一种开发电信业务应用的框架方案。
虽然Android激活设备和电信业务应用飞速增长,但对于电信应用开发而言,开发人员通常都要从零进行电信业务应用的设计开发。开发者需要对应用中的各项功能逐一开发,大大降低了应用开发效率,代码复用率也不高。
为了解决电信业务类应用开发速度较慢的问题,本文提出了基于Android平台的应用框架方案。该框架在快速发展的电信业务背景下,使电信业务应用开发者能高效开发出应用并保证较高的软件质量。电信业务应用框架的目的是减少对于网络接口和数据存储的开发时间,专注于业务应用的功能设计与实现,以此提高开发效率和代码复用率,保证良好的软件结构。
电信业务应用框架的核心需求是实现网络通信与数据存储模块。将电信应用的通信和数据模块提取出来,在此基础上通过与整体用户界面(UI)框架及UI控件库相结合,可以较快进行业务数据获取和呈现,对于相应的业务进行功能实现。
1.1 电信业务应用共性需求
1.1.1 通信模式
电信业务应用对通信的安全性要求较高,尤其是业务管理点(SMP,Service Management Point)应用,由手机客户端通过网络请求发送人机交互语言(MML,Man-Machine Language)指令进行业务管理,终端需要对MML进行封装和解析,使用HTTPS和REST通信,同时设计了一套客户端与服务端的安全认证机制。本框架对SMP应用的通信方式进行了封装,方便开发者快速实现和服务器安全通信。
1.1.2 数据封装
电信业务中一些敏感信息需要使用加密算法进行加密,并放入HTTP请求的消息头部中。对于SMP应用还需要对用户提交的数据与MML指令结合并按照统一规范的格式进行封装,然后发送给服务器。
框架中对这种数据的处理经过通用的方法进行封装,方便针对特定的电信业务应用开发调用。
1.2 电信业务应用个性需求
(1)业务逻辑。电信业务应用之间的最大差别在于其功能上的差异,因此,对于业务功能,框架不能提供共性功能,但框架提供一些基础逻辑类和工具类,方便快速高效开发业务功能。
(2)界面。不同应用之间界面设计相差很大,但其中的基础控件很多是可复用的,开发框架实现了对特殊样式控件的封装,方便开发人员直接使用,减少了开发人员对控件进行从头设置的工作量。
2.1 框架结构图
框架结构如图1所示,主要分为4个模块:业务功能模块、数据存储模块、网络通信模块和UI框架与控件库模块。业务功能模块与其它3个模块之间关系紧密,需要借助于其它模块来实现,同时其它模块也是为业务功能模块服务的。数据存储模块与网络通信模块相互支撑,实现了数据获取、解析和存储的过程。
图1 电信业务应用框架结构图
2.2 框架各结构具体分析
2.2.1 数据存储
Android应用中存储数据有3种主要方式:SQLite数据库存储、SharedPreference存储和文件存储。框架支持这3种数据存储方式并对其进行优化封装,方便用户使用,实现高效率存储和读取数据。
2.2.1.1 SQLite数据库
Android系统集成了一个轻量级的数据库:SQLite是一个嵌入式的数据库引擎,专门适用于资源有限设备的适量数据存储。电信业务应用中的账户信息、业务信息(比如用户对应的彩铃、彩印)均可以保存在数据库中方便存取展示。
本框架针对数据库操作API进行封装,保证数据操作的统一性和易用性。为特定的业务提供新建数据库及数据库表的一般操作;为数据提供增加、删除、修改、更新的抽象方法,易于对业务数据进行存储和更新;优化SQL语句,提高操作效率;帮助用户可以不理会数据库实现细节而方便快捷地调用数据库进行数据操作。此外,电信业务应用一般都与联系人数据密切相关,框架针对联系人信息进行扩展,方便用户保存手机号码相关业务信息,并提供数据库存取API,方便用户使用。
2.2.1.2 SharedPreference存储
SharedPreference保存的数据主要是类似配置信息格式的数据,主要保存的数据主要是简单类型的KEY-VALUE(键-值)对。相对于SQLite数据库,SharedPreference的操作更加简洁,适合存储数据小而零散、经常需要用到的数据。比如电信业务应用每一次网络交互中,需要传一些特定的字符串参数,保存在SharedPreference中可以很方便地进行读取操作。框架对于SharedPreference读、写、清除方法进行了封装,方便开发者以键-值对的格式对多个参数进行存储和读取。
2.2.1.3 文件存储
文件存储主要用来存储图片、音视频、应用安装包等数据量较大的文件。Android应用可以使用文件流访问手机存储器上的文件。框架封装了文件流读写操作方法,用户通过设置文件位置,提供文件操作,存取图片、音视频等资源。
2.2.2 网络通信
HTTP是应用层协议,用于分布式协作超媒体信息系统,是一个客户端和服务端请求和应答的标准。超文本传输协议是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
HTTP被广泛地运用于移动终端与服务器端的交互,它是一个基于“请求-响应”模式的协议,一个客户机与服务器建立连接后,发送一个请求给服务器,服务器接到请求后,给予响应信息[2]。
HPPTS是在HTTP和SSL/TLS的组合,用以提供加密通信及对网络服务器身份的鉴定。电信业务应用由于信息的隐秘性,需要使用HTTPS保证信息传输的安全性。框架对网络请求设置进行了封装,通过对网络请求配置80和8443端口以支持HTTP和HTTPS的访问,方便用户调用的同时保证信息传输的安全性。
数据解析子模块针对获取的网络数据进行解析,网络数据格式一般为XML或者JSON数据,通过提供解析XML和JSON数据的一般方法,方便将结果解析为结构化的数据,存储在SQLite数据库中。针对电信业务应用的数据安全性考虑,数据传输之前需要对数据进行加密。框架对于数据中的一些重要信息,通过HMAC_sha256和MD5进行加密,并在HTTP请求的头部加入加密的验证信息,保证数据安全性。
此外,对于电信应用中的SMP应用,通过终端直接进行业务操作的方式要求了更加严密的通信模块。针对此种情况,通信模块封装了应用与服务器的通信过程,提供安全认证、MML协议封装/解析、HTTPS+ REST通信等公共能力。
2.2.3 界面框架与UI控件库
2.2.3.1 界面框架
碎片 (Fragment)是Android平台在Android3.0 HoneyComb版本(API等级11)中引入的新概念,与Activity类似,但是可以在Activity中复用多个Fragment,从而实现界面和功能的复用,可以快速拓展新功能和迭代新版本。
UI 框架的作用是提升用户交互编程的效率[3],框架针对界面提供了两种UI框架:Tab和Slidingmenu(滑动菜单)+Fragment。通过调查当下比较流行的应用,发现这两种界面框架是使用次数最多的。电信业务应用包含多个子功能时,可以并排展示在应用底部Tab中或者左侧的滑动菜单里,方便用户切换。
2.2.3.2 UI控件库
电信业务应用在用户交互过程中,界面中使用了大量用于展示数据、供用户查看、设置业务信息操作的UI控件,其中有些控件的调用方法较为繁琐(比如应用初始时的Gallery简介)或者功能需要扩展(可拖动进行排序的Listview),给应用开发带来了不便。框架针对此类问题进行了UI控件库的设计,针对较繁琐的控件使用进行了封装,方便调用;对于一些控件功能进行了扩展,提供调用方法,帮助开发者快速完成界面开发。
2.2.4 业务功能模块
业务功能模块针对电信业务的一些操作进行封装,包括对某种业务的获取、设置、删除等方法,通过一个基类的形式来实现。其中包含向服务器发起请求的方法调用、对请求结果参数的处理、对数据解析结果展示等。在应用开发过程中,各个功能模块可通过集成此基类,实现基类通用方法的同时,根据业务需求实现该业务附加的操作。
此外,该模块还提供了一些常用的操作工具类,以实现一些比较复杂的操作。针对图片下载和缓存,利用二级缓存、内存和SD卡,来对图片进行缓存,缓存算法使用LRU,空间不足时,删除最近最少使用的资源。支持文件断点续传的下载工具类,通过使用辅助数据库保存文件下载位置实现断点续传。针对业务的网络请求功能,在Android自带的AysnTask的基础之上,对其进行封装,通过传入自定义请求结果接口,方便开发者进行网络请求结果的处理。该模块封装的这些工具类可以大大减轻开发者的负担,方便直接调用实现业务功能。
基于Android平台的电信业务应用框架方案为企业和个人设计开发电信业务类应用提供了高效规范的开发框架,帮助企业在开发应用过程中提高开发效率、保证产品质量、减少人力资源消耗,同时提高代码复用率,便于应用的后期维护和升级。该框架具有较好的应用前景和商业价值。
[1] 徐童,廖建新. 移动互联网与移动智能网的互通研究[J],计算机工程与应用,2005,20(1):9-12.
[2] Balachander Krishnamurthy、Jennifer Rexford. Web协议与实践[M].北京:科学出版社. 2003:120.
[3] 黄佳星, 王晶, 沈奇威. 基于Android的移动互联网应用框架方案[J]. 电信工程技术与标准化, 2012,25(8):77-80.
News
Vitesse力促企业级网络迈向千兆Wi-Fi
为了促进无线局域网升级,Vitesse Semiconductor推出了其SparX-IV系列新品,包括VSC7442、VSC7444和VSC7448等芯片,它们是专门为802.11ac WLAN企业级网络部署而优化的以太网交换机芯片系列。全新的SparX-IV以太网交换机芯片是千兆Wi-Fi接入和聚合的理想选择,也非常适合于包括工厂自动化和智能电网在内的工业物联网(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);长江学者和创新团队发展计划资助(编号:IRT1049);教育部科学技术研究重点(重大)项目资助(编号:MCM20130310);北京高等学校青年英才计划项目(编号:YETP0473)。