QCon 北京 2016 全球软件开发大会 4 月 23 日的移动开发与即时通讯专场,来自起步科技 WeX5、融云和云之讯的专家,分享了在移动开发和即时通讯开发平台的技术选型,以及在由“重混”架构向“轻混”架构方向发展过程中对组件化技术、可视化开发能力等核心技术的实践。
Hybrid App 走向“轻混”:剖析 WeX5 开源高性能 H5 App 开发框架
当下开发移动应用需要适配两大主流手机系统,开发、维护成本很高,Hybrid APP 这样的混合应用模式应运而生。早期的 Hybrid APP 受手机性能等因素的限制,靠 Native 技术弥补 Web 的缺陷,属于技术更偏 Native 的一种框架,我们将其定义为重混的 Hybrid APP 框架。随着手机硬件的增强,无线网络技术、浏览器技术的发展,加上微信重新定义了移动应用的概念,重混框架不再适用,轻混框架,即 UI 部分使用纯 Web 技术,只在底层设备接口上使用 Native 技术的框架成为夸端 Hybrid APP 的必然选择。
启步科技 WeX5 开发工具首席技术运营官王洁介绍说,在选择 H5 框架设计时,Native 框架选择了 Cordova,因为 Cordova 插件易于定义,不侵入 UI,只负责原生部分。而 H5 框架采用了 SPA 单页应用模式,这也是整个框架的重点。SPA 与传统 MPA 页面加载模式的区别在于,通过 Ajax 技术进行局部刷新、局部渲染,以达到平滑的体验。但在具体的使用中,遇到了 ID、样式和 Js 三方面的冲突问题,最终通过替换原则使用虚拟 xid 替代真实 id 属性解决了 ID 冲突,通过给每个页面配置同名 css 文件定义私有样式解决 CSS 冲突问题,通过 RequireJS 的模块化技术进行隔离解决了 JS 冲突。除此之外,还实现了完整的外壳管理,通过 JS 动态的设置路由实现了前进后退功能。
在 WeX5 整体的框架中,底层应用 Cordova 解决设备原生调用问题,上层将 Cordova 和微信封装抽象成统一的 H5 API。除了 Web 的常用框架外,还使用了 Bootstrap,因为其样式美化程度高,支持响应式布局,生态成熟。再上层实现了自己的组件框架和数据框架,最高层是 SPA 单元页面框架。除此之外,服务端还提供了数据存取、逻辑,以及第三方地图、支付等功能。
WeX5 到底是怎样的开发工具?王洁说,WeX5 提供了上百个组件,而且组件框架完全开源,开发者可以自己修改或定义。WeX5 还提供可视化程度很高的前端编程工具,且在打包方面进行了专门的优化。
移动端 IM 开发如何拥有 SaaS 级体验
融云技术副总裁杨威在分享过程中主要介绍了融云的 IM SDK、实现过程中的经验教训以及 IM 端如何实现 SaaS 级服务。
杨威说,在即时通讯里面做消息的难度很高,其与音视频的区别在于,消息要做到高并发、实时性以及零丢包。融云在前端提供一个内推的协议站,并封装了两个 SDK,一个是通讯能力组件,另一个实现了界面功能。杨威认为移动端的开发中使用第三方 SDK 是大势所趋,因为自己造轮子需要很高的资源成本。使用第三方 SDK 的一大好处在于可以快速上线,另外封装 SDK 可以解耦,对于提高性能有很大的帮助。
有关 IM 协议的选择,杨威建议第一次做 IM 时可以使用 XMBP,但在商业性 APP 中一定要使用轻量级私有化协议,因为并发到一定程度时,后端性能有很大的缺陷,而使用轻量级私有化协议,对前端有速度快、安全、省电的优点,且服务端处理速度更快,安全性更高。对于融云为什么提供两个 SDK,杨威说融云提供的 UI 可以满足市场上 90% 的需求,且融云希望做所见即所得的产品。杨威同时建议技术团队不要规定 iOS 和 Android 端的具体架构,因为架构的核心都是显示层、控制层和数据层的划分,名字并不重要。
融云内部不使用任何第三方组件,如 GreenDao、HttpClient 等,主要原因是对性能的控制。虽然开发效率会低一些,但因为有原生组件的支持,开发是没有问题的。融云在开发过程中一直在优化解耦,IMKit SDK 本身是非常重的封装模式,有许多缺点,融云会坚持这个模式,并持续优化。
有关融云如何实现 SaaS 级服务,杨威分享了几个方案,比如通过融云的 IM 接入一些诸如客服业务等第三方服务。融云通过在服务商与客户之间构建一个类似于防火墙的隔离层,使客户和服务端解耦,并在后端介入客服产品来实现高接入速度与高性能。
移动互联网时代融合通信关键技术与应用
云之讯联合创始人兼 CTO 贾俊杰曾在华为工作期间从事融合通讯产品的架构设计、研究工作。经历了从非常传统的窄带通讯到后面 NGN、IMS 等很多代的变革。
贾俊杰认为,融合通信有三个重要元素,一是全能力的通信服务,因为在互联网时代,通信不只是短信、消息等,还包括音视频甚至 VR、AR 等;二是跨网络的通信服务,因为不同的网络,如通信网、企业网与互联网等有不同的通信协议与标准,对安全的要求也不同;三是场景化的通信服务,因为传统的通信能力单一且过于封闭。
在融合通信的核心业务上,需要设计一种多业务能力互通,多能力融合的系统。在整体架构核心点上会有一个多业务的路由中心,支撑了互联网业务的路由。在这上面可以提供非常灵活的服务,包括消息的服务、语音视频的服务等,以及标准的接口,以便和互联网应用结合。
贾俊杰介绍说跨网问题的严重性在于通信网、企业网、互联网的协议标准不同,在存在防火墙的情况下无法互通。解决方式是动态的识别协议的负载,即 ALG 方案。服务端需要识别协议里面写上了哪些端口,在协商过程中先打开端口再进行识别,以进行网络的穿越。随后贾俊杰就关键信息传输的可靠性保障、连接时间缩短、如何保障 QOS 等问题进行了简要分享。
最后贾俊杰表示,融合通信与互联网的结合具有很大的价值,因为开放平台等于融合,通信也一样。通信能力与移动应用结合以提供一致性用户体验,就是融合通信的本质竞争力所在,可以解决通信和业务场景隔离的问题。另外一点在于,IP 通话成本低,这也是融合通信的另一个根本的竞争力。
评论