SOLOMO应用中手机到手机端的通信

最近开始接触SOLOMO概念,是Social+Local+Mobile,我认为就是以移动终端访问社交网络并涉及手机环境上下文数据的一种新型的网络社交模式(自己总结,若有不妥之处请大家指正),SOLOMO这个词本身很新,但是SOLOMO代表的应用模式已潜移默化地逐步被广大手机用户使用。举几个简单的例子,像新浪微博的发布自己当前位置(签到)功能,大众点评网搜索附近餐馆并查看餐馆评价的功能,人人网上的签到功能,微信的摇一摇等等,这些功能都涉及到本地的位置信息也就是手机环境的上下文数据,将这些数据发布,用以和自己的好友交流沟通展开社交活动。上述的例子大家并不陌生,也许已经是某些用户早就熟悉的功能。

现在的智能手机越来越普遍,而且功能越来越强大,各互联网公司也争相把自己的产品移动化,将传统PC上的各种业务通通推到手机上,所以手机逐渐有了与PC同等地位的趋势,因为它们都可以作为用户访问互联网的入口,而且可以处理的业务逻辑也越来越类似。虽然手机和PC实现的功能上的差距越来越小,但是仍存在根本的差别,手机具有有限的计算能力,有限的电量还有上下文相关的数据,以位置数据为例,传统PC就不存在这个威胁,因为PC不提供位置传感器,就算能通过IP基站定位也不一定代表该PC用户就在附近,但是一般情况下用户是随身带着手机的,如果位置信息为不法分子所获取,人身安全就会受到威胁,这个危险等级要远远大于电脑上的支付宝账号被盗的情况。

考虑到以上差异,以PC为终端的社交网络在迁移到移动终端的过程中,需要作出改变的不仅仅是程序执行环境,对系统架构,端到端的通信机制,隐私信息保护以及事件的处理策略等方面加以考虑才能满足SOLOMO应用的有效使用。

现有的社交网络,像FaceBook、国内的人人网,应该都是采用centralized的架构模式,也就是传统的client-server模型,由主控节点完成主要业务逻辑完成客户端的服务请求。除此之外,还有很多Decentralized的社交网络(Decentralized架构的典型系统就是peer-to-peer系统,也就是没有主控节点,所有节点都是对等的功能)。举几个例子,当孩子在外面玩耍,活动地点离家超出了父母设定的范围,这时父母的手机就应该收到孩子当前位置的信息以确定是否安全。 情侣想给对方分享旅行的照片。游戏中的聊天功能。交互编辑文档功能。

还是以孩子超出特定范围向家长报告地理位置为例,为什么这个是一个Decentralized社交网络,centralized架构也可以实现?是的,centralized架构也可以实现,孩子隔几分钟就向服务器发送位置信息,服务器计算是否在特定范围内,若不在向父母发送警告信息。首先,孩子的地理位置会暴露给第三方服务器,会带来安全问题;再者,孩子的手机不断的向服务器发信息,多次网络IO会消耗大量的能量,在电量紧张的安卓环境下,这个方法不适用。

那对应的Decentralized架构是什么样呢?我们知道现有的手机端到端的传递数据可以通过SMS和Email,用这种机制对上面的例子没法对孩子的位置数据进行筛选和处理。而3G网络采用的是client-server机制,一个手机使用应用时把手机发到某个服务器,该服务器作出处理后再发给另外一个手机。考虑上述两点,也就是说现在没有有效的手机端到端的处理通讯方式。如何在保证隐私安全以及能耗敏感的条件下顺利的进行端到端通信就是我们下面要解决的问题。要说一句,下面的观点主要来自于《Contrail: Enabing Decentralized Social Networks on Smartphones》是微软的一个研究工作。

Contrail这个平台就旨在提供有效的端到端通信,它包括两部分手机端的filter和负责转发信息的云。

手机端的filter:

filter被数据接收方安装在数据产生方,有点绕,根据上面那个例子,孩子的手机就是数据发出端,filter要安装在孩子手机上,对位置数据进行筛选,若符合要求即超出了预设的活动范围再把当前的位置信息发给父母。在具体实现时,filter就是函数,一个应用会有很多种filter,对应不同的应用功能。当一方想获取某个数据时,就向数据发出方发出安装filter的请求,若对方也同意安装,filter就会产生合适的数据返回给请求方。我们说到对方同意安装,这个过程不需要用户参与,如果双方各在对方的好友列表中,这个请求就被接收,信息只在朋友圈内发散。数据在发送前会被加密,只有指定的接收方才能正确解密获取真正的信息,在设计这个架构时,它使用的现有的加密算法。

云端:

有一个信息存储层,负责存储用户收发的数据,这个机制可以保证手机在offline时信息不丢失,当连接时再相应对方的请求。云由大量的应用服务器构成,当手机连接时云会随机分配一个服务器作为手机的proxy,由它来完成用户的信息在云内部的转发。用户的online和offline的状态被保存在一个map中,若online标明当前的proxy。每个手机都有DeviceID, 对每个DeviceID都会建立消息队列,一旦手机连接云,首先会检查是不是有对应的消息,如果有马上处理。如果双方都online,就可以直接转发信息,如果对方是offline,那先把信息放在存储层内,等待对方上线时再处理。

期间提到的消息,在具体实现时就是一个item,包括所要发送的数据和数据的元数据信息。

以上就是Contrail平台的概要设计,看完这些大家可能会有疑问,这种云转发的机制还有安装filter会不会带来很大的时延,网络连接如何保持才能最省电?

论文后面的内容对上述问题作了evaluation,实验表明带来的时延很小,不会带来很大性能的影响。网络连接建立时耗电要远远大于保持连接所耗得的电,论文建议适当的延长连接保持时间会减少能耗。

以上就是对SOLOMO应用端到端通信的一个总结和分析,全是文字大家看得会很枯燥,时间有限没来得及画图,有时间补上O(∩_∩)O~





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值