面向社交网络的智能通信平台研究
2013-06-10翟建伟张思东张宏科
宋 飞,翟建伟,张思东,张宏科
(北京交通大学电子信息工程学院下一代互联网互联设备国家工程实验室,北京 100044)
1 概述
社交网络[1-2]的演进离不开信息技术的发展,具体表现为以下方面:(1)随着第三代移动通信(the 3rd Generation,3G)[3]业务的大规模推广、WiFi 无线城市的部署和长期演进技术(Long Term Evolution,LTE)[4-5]的试运营,人们对于通信的要求早已不再局限于简单的语音和短信,伴有社交行为的通信方式正在慢慢成为人们的习惯。(2)通信行业的发展使得用户能够更方便地接入互联网,这为社交网络的发展提供了广阔的空间。目前,社交通信技术正呈现跨越式增长的趋势,和传统通信方式相比,该技术能够更全面地迎合人类基本的社交和沟通的需求。(3)以iPhone[6]、Galaxy Note[7]为代表、拥有良好用户体验的智能手持终端,带动了iOS[8]、Android[9]操作系统的普及。用户爆炸式的增长也为构建社交网络新的应用模式提供了条件。
但实际存在的问题仍然较多:(1)尽管3G 网络覆盖了用户活动的大部分区域,但其实际接入速率却仍然差强人意;(2)能够提供高速率接入的WiFi 无线城市技术,信号覆盖范围还比较有限,而且不同接入点间的高速移动切换问题尚未得到很好解决;(3)LTE 的中规模部署还有待时日。因此,有必要讨论如下问题:(1)如何在基础设施不稳定或不可用(如受地形因素及电磁波传输性能因素影响导致的信号不稳定、自然灾害或其他因素导致的基础设施受损或发生故障)的情况下实现具有社交属性的通信(即实现“应急通信”)。(2)对于某些保密内容,如何将通信范围限定在一定的空间内(即实现“区域通信”)。
本文研究移动WiFi 热点、对等网络、智能手持设备操作系统等相关技术,并提出一种面向社交网络的智能通信平台构建方法。
2 智能通信平台整体架构
本文提出的智能通信平台根据结构划分为3 个部分:底层网络,中层接口和上层应用,分别负责基本组网功能、参数传递功能和高级通信功能。
2.1 底层网络
为实现数据链路层的联通,底层有必要采用一种灵活的组网方式。本文以移动WiFi 热点为例进行描述,其他接入方式(如蓝牙、Zigbee 等)亦可参考该思路进行设计。手持终端可以通过不同的方式建立WiFi 热点,从而在多个设备之间建立独立的端到端无线信道。有2 种组网方式可供选择:中心化便携式接入点方式和非中心化对等网方式。
(1)采用便携式接入点方式时,首先选择一台手持设备作为WiFi 网络的接入点建立便携式热点,在此基础上其他手持设备可将接入点设备设为网关,然后接入该移动WiFi网络。其中,作为便携式热点设备的无线网卡应工作在Master 模式下,用于提供稳定的无线接入服务,而其他设备的无线网卡则应工作在Managed 模式下,并通过便携式热点设备连接到移动WiFi 网络。此类网络采用了中心化的组网方式,无线网络所承载的数据需要由便携式热点设备集中进行转发,因此,一旦该热点设备发生故障或离开网络,处于Managed 模式下的其他终端将无法正常通信。
(2)采用对等网方式时,移动WiFi 网络的无线环境由网内所有终端设备共同构建(根据随机退让算法发送网络的状态信息)。各个手持设备既是移动WiFi 网络的建立者和维护者,又是该网络的接入者和使用者。所有手持设备的无线网卡都应工作在Ad-Hoc 模式下,并使用公共的无线信道完成通信功能。此类网络采用非中心化的组网方式,手持设备之间能够实现点对点的无线通信。由于无线网络环境的维系并不依赖于某一个特定的设备节点,因此移动WiFi 网络的建立和维护将变得更加灵活。
2.2 中层接口
根据服务功能不同,中层接口部分可进一步细化为单播消息模块、单播传输模块、组播消息模块和终端管理模块,如图1 所示。单播消息模块用于完成基于消息的端到端单播通信;单播传输模块用于完成基于字节的端到端单播传输;组播消息模块负责在多个终端设备之间建立基于消息的多播通信信道;终端管理模块用于完成终端设备的发现、维护和寻址等功能。其中,单播消息模块和单播传输模块依赖于终端管理模块所提供的寻址服务,而终端管理模块和组播消息模块则依赖于移动WiFi 网络所提供的无线环境。
图1 中层接口所处位置及包含模块
2.3 上层应用
结合社交网络的具体需要,对于上层应用本文着重研究以下5 个方面内容:(1)友好的用户操作界面;(2)允许终端用户通过平台感知到网内其他终端的地址信息,并发起通信;(3)允许网内终端用户群发文本消息,并在多个终端用户之间实现群聊;(4)针对感知到的网内特定终端用户,通过即时消息进行文本通信;(5)针对感知到的网内特定终端用户实现文件传输功能。因此,本文设计了用户界面、邻居感知、聊天室、即时消息和文件传输5 个模块。
3 基于Android 的平台实现
作为智能手持终端操作系统的代表,源于Linux 的Android 系统为开发者提供了广阔的空间。根据权威市场调研机构Gartner 给出的数据[10],预计2015 年Android 系统的占有率将达到48.8%。基于该操作系统进行开发,有助于提高智能通信平台的通用性和可扩展性。本文分别从底层网络、中层接口和上层应用3 个方面对平台的实现进行阐述。
3.1 底层网络的实现
在2.2 版本之前,Android 系统并未提供通过内嵌方式建立便携式移动热点的功能,并且未向开发者开放用于建立便携式移动热点的相关API。同时,也未提供将无线WiFi网口设备配置为Ad-Hoc 模式的接口。因此,有必要通过脚本程序结合Java Native Interface[11](JNI)技术实现建立移动WiFi 热点的目标。
在建立热点的过程中,主要使用JNI 技术调用Linux命令和Shell 脚本。因此,需要在Java 程序中事先声明本地方法的接口定义,并提供本地函数库文件或命令行程序。
由于篇幅所限,本文未详细介绍脚本程序编写、Linux命令调用、建立Ad-hoc 热点步骤等内容。
3.2 中层接口的实现
由于中层接口设计采用了传输层的UDP 和TCP 协议完成端到端的数据包交互,因此在Android 中可以调用Java 标准库java.net 包下所提供的类库完成基于这2 种传输协议的程序开发。
为更好地控制通信流程,有必要对通信控制协议类别进行定义,如表1 所示。各个模块的代码实现过程中将遵循该表所定义的协议类别,该定义将作为不同通信实体、相同模块之间共同使用的统一规范。
表1 通信控制协议类别
本文采用JavaScript Object Notation(JSON)[12]作为不同通信实体之间进行信息交互的标准数据封装格式。JSON 是一种轻量级的数据交换格式,以键值对的基本形式完成数据的组织,既有利于开发者的编写和阅读,也有利于机器的解析和生成,具有非常强大的结构化数据描述能力。本文所定义的协议交互信息结构如表2 所示。其中,body 键对应的值为JSONObject 类型,包含表中所列二级字段,根据type 值的不同,body 对象中的部分字段将得到使用。在组件开发过程中,使用org.json 包中提供的包括JSONObject、JSONArray、JSONException 等在内的用于JSON 生成、解析和异常处理的类库,来实现数据的封装与解封装[13]。
表2 协议交互信息结构
在上述工作的基础上,可以通过编程实现具体的模块。现以终端管理模块为例进行说明。
终端管理模块由NeighborManager 类负责完成。该类实现终端设备IP 地址发现、维护服务功能的主要方法包括:(1)broadcastLocalInfo();(2)requestRemoteAddr();(3)listen()。其中,方法(1)在终端最初接入网络时被调用,通过向组播地址230.0.0.1 发送包括本机IP 地址、MAC 地址在内的终端信息,用于通知网内其他终端本机的相关信息及可访问性;方法(2)在独立的线程中周期性地向组播地址230.0.0.1 发送终端信息请求,网内终端收到该请求报文时需要回送自身的IP 地址、MAC 地址等信息;方法(3)在独立的线程中始终监听组播地址230.0.0.1,进而实现对表1中类别值为11、12 和13 这3 种类型协议交互数据包的解析处理。
由于篇幅所限,本文未介绍单播消息模块、组播消息模块以及单播传输模块的实现过程。
3.3 上层应用的实现
结合中层接口部分的开发成果,本文实现了上文中提到的5 个模块。这里只选取用户界面和邻居感知2 个部分进行介绍。
用户界面部分共包括7 个界面,分别是登录界面、主界面、邻居终端列表界面、聊天室界面、即时消息界面、文件传输界面和设置界面。用户通过手指点击交互界面中的控件来获取智能通信平台所提供的各项社交功能。另外,为应对业务逻辑紊乱和网络连接异常的情况,界面还设计了对话框、提示框和通知栏,分别用于询问用户是否执行某项操作、显示提示信息和通知提醒(如显示文件传输进度等)。
邻居感知功能通过调用NeighborManager 类(终端管理模块)所提供的方法,动态、实时地获取网内邻居终端的IP地址、MAC 地址等信息,并将感知到的邻居终端信息发送到列表界面中进行显示;另外,邻居感知功能还负责提供网内邻居终端在加入或退出时列表界面的更新。
本文截取了部分界面(登录界面、主界面和邻居终端列表界面)对平台的运行效果进行介绍。
(1)登录界面主要包括可点击的头像显示、昵称、邮箱地址输入框和登录按钮。点击头像图标将弹出如图2 所示的告知框,提示用户在“图库”或“拍照”中选择一种方式用于头像的添加。
图2 登录界面
以“图库”为例,用户选择该方式后系统自动转入本地图库,在选中一张图片后跳转回登录界面,并将默认头像的图标更换为刚选择的图片。在输入完整的昵称和邮箱地址后,点击界面中部的手掌型按钮,该按钮将出现上下抖动的动画效果表示登录成功并切换到主界面。
(2)主界面框架包括导航栏和子视图面板2 个部分,如图3 所示。导航栏包括“我说”聊天室、“身边”邻居终端列表和“更多”3 个部分;子视图面板中内容的显示则统一由管理器类进行管理,当用户点击底部导航栏时,子视图面板区域显示相应的子视图。点击“身边”按钮将进入邻居终端列表。
图3 主界面
(3)邻居终端列表界面如图4 所示。该界面动态地显示当前网内的终端用户。每一个列表项提示该用户的相关信息,包括昵称、IP 地址和MAC 地址。在列表项的右侧提供用于触发消息发送和文件发送功能的按钮,点击某一列表项的按钮将在该条目下方弹出一个操作工具条(如图4 所示),该工具条呈现从右向左的“推入”动画效果。点击非工具条区域或手机回退键,工具条将被从左到右移出界面。点击工具条中的“发送消息”按钮将触发即时消息的交互流程,并将界面切换到即时消息界面;而点击工具条中的“发送文件”按钮将触发文件传输的交互流程,弹出相应的文件选择框。
图4 邻居发现界面
4 测试与结果
实际测试拓扑如图5 所示,包括1 台平板电脑和2 台智能手机(共3 台设备),分别记为P1、P2 和P3。在该测试拓扑中,3 台手持设备通过将各自的WiFi 硬件设备运行于Ad-Hoc 模式接入到WiFi 无线环境。IP 地址采用静态配置的方式。平板P1 为ZTE LightTab,搭载Android 2.2 操作系统;智能手机P2 为小米MI ONE,搭载基于Android 2.3的MIUI 操作系统;智能手机P3 为HTC Sensation G14,搭载基于Android 2.3 的MIUI 操作系统。测试地点均为空旷开阔地带。
图5 测试拓扑示意图
为验证智能通信平台的基本功能,编写测试用例分别针对网络状态提示功能、邻居感知功能、聊天室功能、即时消息功能和文件传输功能进行测试,实际运行效果良好。由于篇幅所限,本文未详细介绍功能测试结果。下文着重介绍智能通信平台部分性能测试的结果。
4.1 邻居感知有效距离测试
选取P1 和P2 作为测试对象,有效距离测量使用米尺完成,测试的具体步骤如下:
(1)完成P1 和P2 移动WiFi 热点的相关配置工作。
(2)开启P2 的智能通信平台,在登录界面的昵称输入框中输入Bob 并完成登录。
(3)开启P1 的智能通信平台,使用Andy 作为昵称登录后,将其切换到邻居终端列表界面。
(4)让P1 保持不动,将P2 移至距P1 设备100 m 的位置,并在P2 上查看对应SSID 的网络信号强度,如无法成功接入该网络,则向P1 方向移动并记录距离,直到刚好能够接入网络时暂停。
(5)在P2 上打开终端模拟器程序,在终端命令行中对P1 执行ping 操作并查看丢包情况,打开P2 的智能通信平台,观察P2 邻居终端列表中是否出现Andy 的列表项目。
(6)以1 m 为步长逐渐缩短P2 与P1 之间的距离,重复步骤(5),测定邻居感知的有效临界距离。
当测试距离为75 m 时P2 能够接入网络,但丢包严重(多次测试显示相隔30 个~40 个ping 包可成功3 次~4 次),P2 邻居终端列表界面中没有显示P1 对应的列表项;当测试距离为63 m 时,ping 包丢失情况有所缓解(多次测试显示相隔2 个~3 个ping 包可成功1 次~2 次),P2 邻居终端列表界面中延迟约30 s 后显示P1 对应的列表项;当测试距离为60 m 时可连续ping 通,P2 邻居终端列表界面中即刻显示P1 对应的列表项。
在此基础上,笔者还针对设定终端发射功率实现“区域通信”的功能进行了测试,效果均达到了预期的目标。
4.2 文件传输速率对比测试
为更好地测试智能通信平台的实际传输效果,笔者选择10 MB~50 MB 不同文件大小进行对比。在底层分别选择了WiFi 和蓝牙2 种接入方式进行对比。在P1、P2 和P3 之间进行两两收发,每个文件均传输30 次,测试距离为10 m。所有测试均正常完成,对比结果如图6 所示。其中,纵轴选取对数坐标,Error bar 选取5%~95%,标记点为测试结果的均值。可以看出,基于WiFi 的传输效果在不同情况下均优于蓝牙模式下的传输效果。由于纵轴使用了对数坐标,WiFi 模式下测量结果的Error bar 相对明显。
图6 文件传输速率对比结果
5 结束语
本文结合社交网络的发展趋势和用户对于新型通信平台的需求,并分析传统通信模式存在的不足,提出一种智能通信平台的构建方法。该方法能够在互联网接入点不可用或不稳定的情况下实现具有社交属性的应急通信,而且对于某些保密内容,能够将通信距离限定在一定范围内。
为验证该平台的实际效果,本文基于Android 系统进行协议栈的开发和软件代码的编写,并搭建了小规模测试环境。功能测试结果表明:用户界面、邻居感知、聊天室、即时消息和文件传输5 个功能模块均工作正常。针对邻居感知有效距离的性能测试结果表明:手持终端在直线距离60 m 的范围内,基本功能不会受到通信距离增加的影响;当超过该临界值时,终端仍然能够感知到邻居,但传输性能有所下降;当距离增加至75 m 后,终端无法感知到邻居(依托该功能实现的“区域通信”测试效果也均比较理想)。针对文件传输速率的性能测试结果表明,智能通信平台能够稳定、高效地完成终端间的文件传输,同时文中定量地给出了WiFi 和蓝牙环境下不同文件的传输时间。下一步将重点研究如何完善该平台的相关功能,同时针对不同的用户需求设计更多易于操作的应用。
[1]Gao Wei,Li Qinghua,Zhao Bo,et al. Social-aware Multicast in Disruption-tolerant Networks[J]. IEEE/ACM Transactions on Networking,2012,20(5): 1553-1566.
[2]Pan Hui,Crowcroft J,Yoneki E. BUBBLE Rap: Social-based Forwarding in Delay-tolerant Networks[J]. IEEE Transactions on Mobile Computing,2011,10(11): 1576-1589.
[3]Punz G. Evolution of 3G Networks[M]. [S. l.]: Springer,2010.
[4]易睿得. LTE 系统原理及应用[M]. 北京: 电子工业出版社,2012.
[5]Dahlman E,Parkvall S,Skold J. 4G: LTE/LTE-advanced for Mobile Broadband[M]. [S. l.]: Academic Press,2011.
[6] Apple Inc.. Iphone Introduce[EB/OL]. [2013-01-02]. http://www.apple.com/iphone/.
[7] Samsung Inc.. Galaxynote Introduce[EB/OL]. [2013-01-02].http://www.samsung.com/global/microsite/galaxynote/.
[8]Apple Inc.. Develop App for iOS[EB/OL]. [2013-01-02]. http://developer.apple.com/technologies/ios/.
[9]Google Inc.. Discover a New Flavor of Jelly Bean[EB/OL].[2013-01-02]. http://www.android.com/.
[10] Gartner Inc.. Gartner Technology[EB/OL]. [2013-01-02]. http://www.gartner.com/.
[11] Oracle Inc.. Java Native Interface[EB/OL]. [2013-01-02].http://www.oracle.com/technetwork/java/index.html/.
[12] Sun Inc.. JavaScript Object Notation[EB/OL]. [2013-01-02].http://www.json.org/.
[13] 翟建伟. 基于WiFi 的移动社交通讯平台设计与实现[D].北京: 北京交通大学,2012.