微信号:infoqchina

介绍:有内容的技术社区媒体

技术革命|HTTP协议被它打败了……

2015-06-28 09:13 刘振涛 译

前言

开放互联网和现代计算机的形成例证了科技开放驱动创新成长的能力。HTTP协议大概是有史以来最伟大的发明之一,计算机可以通过HTTP协议从服务器请求和接收数据。不幸的是,这些创造者们当时没有想到创造异步数据流和实时通讯,因为这些功能当时被电信供应商所掌控,他们基本上已经掌控了声音、视频和讯息的分发业务,不过现在,新的web标准将会开始打破这一传统商业模式。

随着WebRTC API标准的形成,电信企业通信的局面正在发生变化。这个标准以及它快速成长的生态系统使得开发者无须具备任何复杂的通讯技术和协议的经验就可以轻松地在他们的应用中集成实时通信模块。

能如此轻松地开发将会孕育出大量新的革命性应用,而这一切将会改变我们通信、交换信息以及相互交流的方式。

什么是WebRTC

WebRTC是一个开源项目,可以在浏览器中不借助任何插件进行实时通信。由Google、Opera和Mozilla主导的这一项目允许开发者在浏览器中仅使用JavaScript API和HTML5就可以将声音、讯息和视频融为一体。

主要的WebRTC组件包括:

getUserMedia - 允许一个web浏览器连接设备的摄像机和麦克风;

peerConnection - 建立音频/视频呼叫;

dataChannels - 允许浏览器点对点共享数据。


开发者能够借助简单的web技术将实时通信集成到他们的应用中,使会话场景更富有弹性。在移动app或web浏览器具备发起和接受实时通信的能力可以为用户创造一个更好的交流环境,提高信息交换的效率。WebRTC支持一个更加动态的生态系统,在这个系统中声音和视频通信与现有协议解耦,带来新的体验。这项技术第一次出现是在网站或app中的点击呼叫按钮,如若不详可以调研Amazon的紧急呼叫按钮。

尽管WebRTC提供了一些标准以促进创新,不过尚有一些问题仍需解决。其中两个大问题是缺少标准化信令和浏览器的普遍支持。WebRTC联盟曾故意遗漏信令标准来避免冲突,此举可使各方尽快就标准达成共识。因此厂商目前使用各不相同的协议,包括SIP、WebSockets以及HTTP协议。竞争API和译码机标准同样阻碍了WebRTC跨浏览器被广泛支持。


工具和服务供应商


随着标准的发展,许多厂商已经进入这个市场来填补生态系统的缺口,并帮助移动和web开发者将通信模块集成到他们的项目中。这些厂商为支持移动端实现提供了通过RESTful API集成通信服务的功能,并且提供了SDK。除了提供连接服务,这些厂商同样也能够在云端为开发者提供便于访问的基于通讯的服务。下面这个图表展示出调查受访者在他们的app中使用每一个服务的比例。

电话功能调查问卷已经集成到他们的app中

数据来源:Smith’s Point Analytics

无论是通讯API供应商还是云RTC服务都在迅速成长并吸引了一大批竞争者。尽管所有的供应商都为市场带来连接和通讯功能和相关服务,但是厂商由于种种特质被区分开来,比如相互连接性和通话质量,或者是功能弹性和实现难度。诸如Plivo、Twilio、Nexmo、Tropo和Telestax这样的公司竞相与运营商建立联系,与此同时,诸如Genband、Acision、Temasys、Voximplant以及Bit6这样的公司专注于打造更强大的SDK和更富弹性的服务。

使用案例


随着云通信领域的新工具和新技术获得青睐,开发者并没有等待WebRTC最终定稿,他们正在紧跟标准的脚步积极实现。现今开发者享受着易于实现的案例,正如顺手摘下低垂的果实一样简单,不过依然没出现真正的创新。


低垂的果实

客户关系管理合作是第一个利用云通信的应用。如果销售和服务代表可以在CRM应用中便捷地拨通客户电话,生产力就可以显著提高。而WebRTC恰巧可以轻松地将客户信息和通话组合在一起。拨入的电话可以自动匹配客户信息,显示账户的细节和相关历史。如果客户通过网站拨入电话前已经验证过身份,那么服务代表就可以跳过恼人的重新验证过程来提升客户体验。WebRTC规范中声明的点对点共享技术标准同样也支持服务代表与客户共享他们的屏幕。所有的这一切过程无须客户离开浏览器或下载附加软件。

尽管几年前就可以共享屏幕,但WebRTC带来的体验对于开发者和客户来说更易上手。开发者可以利用自己的web专长创造这些体验,他们无须理解通讯技术和协议就可以发起呼叫或管理数据流,这使得开发者可以创建适合自身需求和业务的自定义体验。金融服务垂直领域正在为他们复杂的产品快马加鞭地实现云通信功能,他们与客户的关系建立在相互信任的基础上,通过更近距离的交流以及更好地理解产品和需求可以树立相互的信任,因此金融服务企业成为了这项技术的先驱拥趸。

在协作套件中,具备集成多重数据流和共享屏幕的能力也得到了良好的应用,横跨所有设备组合这些能力使得跨团队决策更有效,从而得到更好的结果。

打破传统的藩篱


WebRTC能够为当下用例带来价值,那么这种符合标准且基于云的通信手段的伸缩性就可以将通信体验大幅提升到下一个级别。在独立设备上切断数据与验证的关联造就了云计算范式,使得无论何时何地使用任何一台设备都能获取个人信息。所以通信会逐渐套件化,任何形式的无缝通信无论在何时何地任何状态下都变得触手可及。实现一通电话的传统技术壁垒将不复存在。

现在,通信往往只在单一设备上启动与结束。随着连接设备的激增,各式各样的计算机都能够支持声音、视频和信息,但是每一个都有自己的优点和唯一特征。在车里对于司机来说声音是唯一安全的交流方式,用户总是可以通过移动电话可以被联系到,更视觉化的交互更适合平板。当用户在不同环境间切换时,如若连接可以无缝地从手机切换到车上再切换到平板上,这种持续性可以驱动更好的生产力,达成更多的合约。在这些设备间转移通话的能力使得用户可以更好地利用它们的唯一特征。

更好的弹性也弱化了不同模式通信之间的隔离。随着对话的发展,需求不断改变。对于WebRTC而言,你可以使用一个文本URL,将一段文字交流转变为一通电话或者视频对话。拨入呼叫中心的电话也可以通过整合不同形式的通信手段提高效率。在一个支持用户使用可交互自动应答语音树进行导航的网站或app中,当你打电话与之交互时会显示文字菜单,大可不必再耐心听完所有选项。

未来的体验

让WebRTC和云通信得到主流支持的一个真实挑战是,开发者对实现通信有预先形成的概念。电话通信自被发明以来,使用体验并没有显著改变,用户需要拨打电话号码发起呼叫然后等待对方接听,大众化的通信将引领一个新的创新浪潮,那带来的电话通信体验将远超我们的想象。

可能有这样一个潜在的创新用例:现场服务技术人员不能解决他所服务片区的设备问题。通过一个集成了通信功能的app,技术人员可以初始化一个会议呼叫更有经验的技术人员,双方通过语音或视频交流,共同处理有问题的设备。通过将增强现实嵌入场景中,指导人员就可以以问题设备为背景,实时讲解合适的解决方案。

让WebRTC和云通信得到主流支持的一个真实挑战是,开发者对实现通信有预先形成的概念。电话通信自被发明以来,使用体验并没有显著改变,用户需要拨打电话号码发起呼叫然后等待对方接听,大众化的通信将引领一个新的创新浪潮,那带来的电话通信体验将远超我们的想象。

可能有这样一个潜在的创新用例:现场服务技术人员不能解决他所服务片区的设备问题。通过一个集成了通信功能的app,技术人员可以初始化一个会议呼叫更有经验的技术人员,双方通过语音或视频交流,共同处理有问题的设备。通过将增强现实嵌入场景中,指导人员就可以以问题设备为背景,实时讲解合适的解决方案。

让WebRTC和云通信得到主流支持的一个真实挑战是,开发者对实现通信有预先形成的概念。电话通信自被发明以来,使用体验并没有显著改变,用户需要拨打电话号码发起呼叫然后等待对方接听,大众化的通信将引领一个新的创新浪潮,那带来的电话通信体验将远超我们的想象。

可能有这样一个潜在的创新用例:现场服务技术人员不能解决他所服务片区的设备问题。通过一个集成了通信功能的app,技术人员可以初始化一个会议呼叫更有经验的技术人员,双方通过语音或视频交流,共同处理有问题的设备。通过将增强现实嵌入场景中,指导人员就可以以问题设备为背景,实时讲解合适的解决方案。

让WebRTC和云通信得到主流支持的一个真实挑战是,开发者对实现通信有预先形成的概念。电话通信自被发明以来,使用体验并没有显著改变,用户需要拨打电话号码发起呼叫然后等待对方接听,大众化的通信将引领一个新的创新浪潮,那带来的电话通信体验将远超我们的想象。

可能有这样一个潜在的创新用例:现场服务技术人员不能解决他所服务片区的设备问题。通过一个集成了通信功能的app,技术人员可以初始化一个会议呼叫更有经验的技术人员,双方通过语音或视频交流,共同处理有问题的设备。通过将增强现实嵌入场景中,指导人员就可以以问题设备为背景,实时讲解合适的解决方案。

来源:Vipaar

一旦完成通信,所有的声音、视频和增强现实流可以被存储以备未来支持其他的技术人员和产品设计师进行借鉴。这种类型的体验也可以在健康医疗公司发挥巨大价值,可以努力降低上升的成本。

这些种类的app将会帮助我们重新设想信息如何实时交换的问题。我们不期待马上就出现一个具有革命性体验的app爆炸传播,缓步增量的创新可以引领业界不断前行,去探索我们未知的世界。开放基于自身不断驱动着创新创造。

回复关键词查看对应内容:

React | 架构师 | 运维 | 云 | 开源 | Kubernetes | 架构 | 人工智能 | Kafka | Docker | Netty | CoreOS | QCon | Github | Swift | 敏捷 | 语言 | 程序员 | 实践 | 物联网 |




如果想要评论本篇文章,直接戳右下角的“评论”发表观点和建议,我们一直在寻找的技术人中的KOL,也许就是你!


版权及转载声明:

极客邦科技专注为技术人提供优质内容传播。尊重作者、译者、及InfoQ网站编辑的劳动,所有内容仅供学习交流传播,不支持盗用。未经许可,禁止转载。若转载,需予以告知,并注明出处。


【号外】

极客邦科技官方顶级账号已开通,关注极客资讯,引领技术潮流,新鲜有温度,专业有态度的技术人社区。更多精彩内容,动动手指,长按二维码自动识别即可获取关注。您也可以搜索“geekbang01”手动获取。

关于“geekbang01”,我们还在成长,希望有更多有极客精神有专业有态度的技术人来共同浇灌,一起茁壮。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 “天猫·喵葩”电商互动生态共创论坛-北京站 Android架构设计原则 4个强大的Linux服务器监控工具 python批量检查网站可用性 瑞士政府将逐步改用开源软件