[文章作者:孙立 链]  

      今天参加了InfoQ组织的百度技术沙龙活动“移动互联网基础技术解析——无线搜索与HTML5开发”,在最后的Open Space环节主持了一个话题“移动互联网系统架构的特点”,现在把讨论的一些重点给记录一下。

      (一)并发性

      相对于有线互联网,移动互联网的网速还是窄带时期,大部分的网络访问都属于慢速连接。一个请求占用的网络连接的时间比有线互联网一个请求占用网络连接的时间要长。在同等的服务器端QPS下,并发连接数要比有线互联网模式的要高。虽然web服务器的并发连接数问题非常容易通过增加机器来进行扩展,但是这个问题需要注意。尽量使用异步网络IO.

      (二)流量

       相对于有线互联网的包月付费模式,移动互联网用户基本都是有限的按流量的包月模式,流量费用昂贵。用户会首选耗用流量低的系统使用,这正是UC浏览器成功的原因。

       所以在系统架构的时候,如果客户端浏览器支持gzip,那么尽量gzip压缩内容。如果是app的客户端程序,最好使用压缩传输内容。

       web网页内容尽量简洁,url连接尽量压缩,省略BaseUrl。

      (三)安全

       有线互联网的在线支付目前非常成熟,在支付的时候可以跳到银行的网站或者客户端进行支付,让用户觉得很安全。而移动互联网可能是服务端通过api支付,用户也觉得不安全。这样某些网站也有可能盗用用户的钱。但是银行通过短信认证即可解决这个问题。

       手机丢失带来的财产损失问题,由于手机丢失,可能造成被人恶意支付。然后提出挂失的功能。来自飞信的朋友说,飞信可以推出直接进行手机号挂失,圆满解决这个问题。

      (四)速度优化

        由于移动网络的速度慢,速度优化就更加要得到重视。比如js,css文件的合并。

        app与服务器端的交互是否使用自定义的协议进行提速。

        网络操作的失败处理。

  (五)兼容性

        移动互联网的终端类型,屏幕分辨率,浏览器类型千变万化。就算同一个手机的同一个浏览器也有适应屏幕模式和缩放模式。如此多的种类给页面的兼容开发带来了很大的难度。往往公司的移动终端测试机器多达几十种,虽然有厂商提供这种服务测试服务,但是对于开发人员来讲,难度可不低。而有线互联网的网站之需要调试下IE,Firefox,chrome几个浏览器即可。

      (六)与有线互联网统一

        很大部分网站都是以有线互联网为主,同时推出移动互联网版本的。但是往往移动版本的功能有缩减,导致某些功能缺失。所以从产品的角度也应该把功能进行统一。

        所以涉及到有线互联网、移动网站、app 客户端的功能统一。

      (七)统计分析

        app客户端软件的用户行为分析统计,可以进行定期往服务器发送。客户端把用户的操作行为先收集起来,进行分析后把结果定期压缩打包发送给服务器。移动网站可以通过服务器端记录日志,js探针(wap2.0的只能手机可能支持)等综合的方式统计。

      (八)测试环境模拟

        有人说,公司开发一款app客户端软件,在公司测试非常完美。等有一天,开发人员在火车上,地铁上拿出手机使用的时候,发现在网络不稳定的时候频繁崩溃。那么这种场景如何进行模拟测试?

      (九)用户真实访问速度的监控

       虽然目前有厂商进行移动网络对移动互联网进行速度监控和分析。但是他们的点基本都是固定的,可能是信号较好的地方。那么我们的应用的真实用户访问的速度到底是怎么样的,如何统计?

      根据应用的类型,有些应用可能在家,公司等有wifi ,信号好的地方使用。而有些应用很多情况下在信号差的地方使用,所以使用第三方的监控还不完全可靠。

       (十)需求变更更频繁

       由于移动业务的特点,需求变更的实时性要求更高。如何快速,高效完成需求的变更,而又不影响系统性能?这给移动开发者也提出了一些挑战。难道就只能加班?

      总结

      以上为今天讨论的移动互联网架构相对于有线互联网的特点,其中大部分还是跟有线互联网是一样的,比如数据库架构,存储的架构等等。