实时Web时代即将到来:不只谷歌推ter玩得起
openkk 12年前
<div id="news_body"> <p style="text-align:center;"><img alt="实时Web时代即将到来:不只谷歌推ter玩得起" src="https://simg.open-open.com/show/2e998f62aba3df18253cba9934985587.jpg" width="550" height="344" /></p> <p align="center">实时 Web 时代即将到来</p> <p> 北京时间 5 月 18 日消息,国外媒体近日发表文章称,实时 Web 并不只是一种时尚,而是一种技术趋势。将来,实时技术将成为一种默认技术,不是只有谷歌、非死book 和 推ter 才能玩得起。</p> <p> <strong>以下为文章内容摘要:</strong></p> <p> 实时 Web 并不只是一种时尚,而是一种技术转移——即时访问 Web。</p> <p> 实时技术使 Web 应用变得更快,在某些情况下,几乎与桌面应用没有区别。</p> <p style="text-align:center;"><img alt="实时Web时代即将到来:不只谷歌推ter玩得起" src="https://simg.open-open.com/show/7db421b37dd26e3b28581c79355ebe47.jpg" width="550" height="281" /></p> <p align="center">德利斯勒“失败版”MMO《小行星》</p> <p> 实时技术最初的灵感来源很简单——开发经典街机游戏《小行星》(Asteroids)的在线版本,不同的是可以多人同时在线游戏(MMO)。</p> <p> 得益于强大的网络后端的支持,在线版《小行星》需要支持数百人同时游戏。更重要的是,要做到实时效果,每个游戏玩家都能毫无延迟地看到每次射击,每个动作。</p> <p> 对于 Hacker news 社区而言,这是一件不幸的事情,因为他们最初发现,这根本无法实现,只是一个愚人节玩笑而已。</p> <p> 不难理解,这让不少游戏玩家感到失望,但是该创意听起来确实可行。随着技术的发展,似乎距离该目标已经不远。例如 Node (用来编写高性能网络服务器的 JavaScript 工具包)的出现,使得用很少的几台服务器即可同时处理大量用户的指令。此外还有 WebSocket 协议,使得用户之间的持久连接变为可能。</p> <p> 但 JavaScript 开发人员赛博·李-德利斯勒(Seb Lee-Delisle)仍然认为不可行,他认为,一旦真的推出 MMO 版《小行星》,其弹性和稳定性均无法保证,因为游戏要经常交换数据,调整设置,检查冲突等。德利斯勒说:“告诉大家一个不好的消息,如果真的推出 MMO 版《小行星》,那么游戏也将很乏味。”</p> <p> <strong>MMO 版《小行星》成为现实</strong></p> <p> 而另一名开发人员维克拉姆·尼扎(Vikrum Nijjar)则希望将其作为一个挑战,认为是可行的。幸运的是,尼扎与其他开发人员合作,已经开发出了使之变为现实的软件 Firebase。这一次,尼扎的 MMO 版《小行星》变为了现实,同时也登上了 Hacker News 的首页。</p> <p> 尽管也略微有些缺陷,但却保证了所有动作的实时显现,做到了最小化延迟。</p> <p> “实时”是技术界颇受欢迎的一个流行语,是开发人员、商家和公共关系代表等用来描述一种体验或即时在线互动的。例如,推ter 被赞许为实时信息源,非死book 也利用好友的更新和图像实时更新用户首页,一个科技博客网站也承诺对内容进行实时更新。</p> <p> 但是,在上述所谓的实时服务中,都存在延迟,短的几秒钟,长的几分钟。只是我们没在意,或没必要计较而已,因为我们最终获得的内容仍具有价值, 让我们满意。尽管如此,事实上的延迟不可否认。在聊天或发表评论时,这些延迟是可以容忍的。但随着数据的越来越复杂,在某些情况下,如大型多人同时在线游 戏,延迟是不可接受的。</p> <p> 今天的许多互联网应用的运行模式是:客户端向服务器发送数据请求,然后从数据库抽取数据。如果数据发生任何变化,应用自身需要再次与服务器进行核实,免得用户手动刷新页面。这种反复连接服务器的过程被称为“轮询”(polling)。</p> <p> 但在实时环境下根本没有轮询,而是订阅(subscriptions)。一个客户端订阅数据库中的数据,无论何时当数据变化时,客户端都将接到更新。这种变化无需轮询,是因为它们是主动推送的,正如某些通知被推动给智能手机。</p> <p> <strong>15年出现一次转变</strong></p> <p> 创建富媒体实时应用的 Web 框架 Meteor 联合开发人员马特·德波伽里斯(Matt Debergalis)称:“我们当前正处在这种转移时期,这种转移通常每 15 年发生一次,所有代码都要重新编写。”</p> <p> 德波伽里斯解释道,在 20 世纪 70 年代至 80 年代初,软件主要运行在大型主机和服务器上,用户使用非智能设备连接。到了 80 年代后,客户端-服务器模式出现,随后互联网诞生。</p> <p> 德波伽里斯说:“大约 15 年后,Web 再次要求我们重写所有软件。因为我们将从桌面应用转向新的模式,这一次软件再次运行在服务器上。”但不同的是,这一次的终端是 Web 浏览器。</p> <p> 如今,桌面软件华丽的用户界面正在消失,取而代之的是一些简单的 Web 功能。从 Gmail 和 Rdio 即可看出这一变化,访问终端是 Web 浏览器。</p> <p style="text-align:center;"><img alt="实时Web时代即将到来:不只谷歌推ter玩得起" src="https://simg.open-open.com/show/ce16a4f864ebac16eabb789c87064734.jpg" width="550" height="344" /></p> <p align="center">Rdio 应用</p> <p> 这就是实时连接,应用在外观和表现上与桌面应用几乎没有区别,我们预计将来的互动也没有区别。Rdio 就是一个出色的 Web 应用,在浏览器中运行,与在桌面上运行几乎没有区别。</p> <p> 当然,实时技术并不是什么新鲜事物,低延迟的软件和硬件,以及对信息的几乎同步访问已存在多年。但开发人员菲尔·莱格特(Phil Leggetter)称:“没有人在金融以外的领域使用。”</p> <p> 莱格特称,只是最近几年,实时技术才从小众领域走进大众市场。推ter 是一个转折点,使得信息可以被实时发现。但莱格特称:“下一个目标是实时投递。”</p> <p> <strong>经济实惠的 Node</strong></p> <p> 与任何开发人员谈论实时技术,都将不可避免地谈到 Node。Node 是一款用来编写高性能网络服务器的 JavaScript 工具包,今天的许多实时应用都采用了 Node。</p> <p> 当然,Node 也并非唯一的实现方法。推ter 服务器实时搜索结果使用的就是前端系统 Blender,后者依靠的是 Java 网络框架 Netty。而 非死book 采用的是阿帕奇 Web 服务器和自主开发的 HipHop。</p> <p> 不同的是,非死book、推ter 和谷歌不仅仅时发送和接收信息,他们还需要大量的计算能力来注释、分析和返回数据。而一些小型开发人员的需求很简单,使用 Node 较为实际。</p> <p> 实时应用通常并不需要大量的计算能力,因为这些需求可以交给专业服务来解决,如亚马逊的 EC2。相反,他们需要以最快速度移动、路由和连接大量数据的能力。</p> <p> 这就是速度至关重要的原因。在德波伽里斯所说的 Web 浏览器终端世界,限制用户体验的只有两个因素,数据传输速度和同时连接服务器的数量。而 Node 可以在很大程度上同时解决这两大问题。</p> <p> 对于 非死book 而言,这可能不是什么问题,因为他们对定制的 PHP 和阿帕奇服务很满意,也拥有足够的资金用来升级。但对于小型开发商或开发团队而言,利用最少的资源开发出更具吸引力的实时体验无疑至关重要。</p> <p style="text-align:center;"><img alt="实时Web时代即将到来:不只谷歌推ter玩得起" src="https://simg.open-open.com/show/7373614b8346d45176ee4df2aff77bb9.jpg" width="550" height="367" /></p> <p align="center">Firebase 四名开发人员</p> <p> <strong>前景光明</strong></p> <p> 经过多年的实时技术研究,开发人员莱格特对此持乐观态度。他说,我们已经看到一些产品和服务,虽然没有将实时作为卖点,但确实是依赖于实时技术,这是一件好事。</p> <p> 莱格特说:“这意味着,我们开始看到实时技术的实际应用,而不仅限于理论。这项技术很酷,让我们一起努力,充分挖掘其使用价值。”</p> <p> 德利斯勒同样持乐观态度,称 MMO 版《小行星》只是一个开始。他说:“实时技术将成为一种默认技术,不是只有谷歌、非死book 和 推ter 才能承受得起。”</p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958340626460017730" target="_blank">腾讯科技</a> </div> </div>