FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

【QCon 北京 2016】移动开发与即时通讯专场重点回顾

  • 2016-04-26
  • 本文字数:2313 字

    阅读完需:约 8 分钟

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 通话成本低,这也是融合通信的另一个根本的竞争力。

2016-04-26 02:091477

评论

发布
暂无评论
发现更多内容

打造繁荣社区:Solaris 与 Web3 合作的力量

鳄鱼视界

TiDB x Bolt丨超强可扩展性与弹性助力超 1 亿用户畅享出行服务

PingCAP

MySQL 数据库 TiDB

2023-05-29:给你一个由 n 个正整数组成的数组 nums 你可以对数组的任意元素执行任意次数的两类操作 如果元素是 偶数 ,除以 2 例如,如果数组是 [1,2,3,4] 那么你可以对最后一

福大大架构师每日一题

golang 算法 rust 福大大

创建矢量图形:Patternodes 3 免激活版

真大的脸盆

Mac Mac 软件 矢量图形创作 创建矢量图形

一块显存为 12GB 的 GPU 卡能够在CST 时域求解器仿真的最大网格数是多少?

思茂信息

cst cst使用教程 cst操作 cst电磁仿真 cst仿真软件

使用 Node.js、Socket.IO 和 GPT-4 构建 AI 聊天机器人

devpoint

node.js websocket GPT-4

软件测试/测试开发丨Selenium环境安装与使用

测试人

程序员 软件测试 自动化测试 测试开发 selenium

《Klustron Tech Talk》直播选题有奖问卷调查,获MySQL系列丛书

KunlunBase昆仑数据库

MySQL

不止游戏!英特尔锐炫“天生爱创作”

E科讯

Django笔记三十八之发送邮件

Hunter熊

Python django 发送邮件

Spring系列之AOP工作过程详解二

Disaster

spring

如何将数据从旧电脑传输到新电脑,哪种文件传输方式更好

镭速

英特尔锐炫实力出击,游戏、内容创作双管齐下!

E科讯

量子程序设计基础 | 从经典计算到量子计算

TiAmo

量子计算 经典计算

硬核!阿里2023版Spring全家桶进阶笔记流出,堪称Java跳槽神器

Java你猿哥

spring Spring Boot spring security Spring全家桶 Spring Cloud Aliababa

4 种 MySQL 同步 ES 方案,yyds!

Java你猿哥

Java MySQL sql elasticsearch Binlog

焱融科技入选赛迪 2022 中国分布式存储报告挑战者象限

焱融科技

#高性能 #分布式文件存储 #文件存储

文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题

福大大架构师每日一题

福大大 ChatGPT 文心一言 讯飞星火

可逆计算理论中的Delta合并算法

canonical

华为云UniXcoder-VESO-v1问鼎CodeXGLUE榜单第一名

华为云PaaS服务小智

算法 代码 华为云 代码语义

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

vivo互联网技术

CSS 级联 @layer

引领下一代云计算技术的变革:无服务器架构

xfgg

云计算 severless

GitHub上开源24小时获星96K的,从零到实战Java架构师成长手册

Java你猿哥

架构 架构师 高可用架构 高性能架构 高可扩展

Spring系列之AOP工作过程详解一

Disaster

spring

数据可视化:趋势类可视化图表大全

2D3D前端可视化开发

数据分析 数据可视化 数据可视化工具 可视化图表

Generative AI 新世界 | 走进文生图(Text-to-Image)领域

亚马逊云科技 (Amazon Web Services)

自然语言处理 机器学习 开源

为什么要用线程池?

javacn.site

打造繁荣社区:Solaris 与 Web3 合作的力量

股市老人

【1对1咨询】土木女生,挖掘个人优势转行程序员

程序员晚枫

程序员 求职 转行

设计模式之模板方法模式

越长大越悲伤

设计模式

基于WebGPU的AI原生3D引擎迎来新机遇!Orillusion在GOTC上演讲!

Orillusion

开源 渲染引擎 元宇宙 webgpu AIGC

  • 扫码添加小助手
    领取最新资料包
【QCon北京2016】移动开发与即时通讯专场重点回顾_QCon_程大治_InfoQ精选文章