阅读更多
国外媒体近日发表文章称,实时Web并不只是一种时尚,而是一种技术趋势。将来,实时技术将成为一种默认技术,不是只有谷歌、Facebook和Twitter才能玩得起。

以下为文章内容摘要:

实时Web并不只是一种时尚,而是一种技术转移——即时访问Web。实时技术使Web应用变得更快,在某些情况下,几乎与桌面应用没有区别。

实时技术最初的灵感来源很简单——开发经典街机游戏《小行星》(Asteroids)的在线版本,不同的是可以多人同时在线游戏(MMO)。


德利斯勒“失败版”MMO《小行星》

得益于强大的网络后端的支持,在线版《小行星》需要支持数百人同时游戏。更重要的是,要做到实时效果,每个游戏玩家都能毫无延迟地看到每次射击,每个动作。

对于Hacker news 社区而言,这是一件不幸的事情,因为他们最初发现,这根本无法实现,只是一个愚人节玩笑而已。不难理解,这让不少游戏玩家感到失望,但是该创意听起来确实可行。随着技术的发展,似乎距离该目标已经不远。例如Node(用来编写高性能网络服务器的JavaScript工具包)的出现,使得用很少的几台服务器即可同时处理大量用户的指令。此外还有WebSocket协议,使得用户之间的持久连接变为可能。

但JavaScript开发人员赛博•李-德利斯勒(Seb Lee-Delisle)仍然认为不可行,他认为,一旦真的推出MMO版《小行星》,其弹性和稳定性均无法保证,因为游戏要经常交换数据、调整设置、检查冲突等。德利斯勒说:“告诉大家一个不好的消息,如果真的推出MMO版《小行星》,那么游戏也将很乏味。”

实时Web成为现实

而另一名开发人员维克拉姆•尼扎(Vikrum Nijjar)则希望将其作为一个挑战,认为是可行的。幸运的是,尼扎与其他开发人员合作,已经开发出了使之变为现实的软件Firebase。这一次,尼扎的MMO版《小行星》变为了现实,同时也登上了Hacker News的首页。

尽管也略微有些缺陷,但却保证了所有动作的实时显现,做到了最小化延迟。

“实时”是技术界颇受欢迎的一个流行语,是开发人员、商家和公共关系代表等用来描述一种体验或即时在线互动的。例如,Twitter被赞许为实时信息源,Facebook也利用好友的更新和图像实时更新用户首页,一个科技博客网站也承诺对内容进行实时更新。

但是,在上述所谓的实时服务中,都存在延迟,短的几秒钟,长的几分钟。只是我们没在意,或没必要计较而已,因为我们最终获得的内容仍具有价值,让我们满意。尽管如此,事实上的延迟不可否认。在聊天或发表评论时,这些延迟是可以容忍的。但随着数据的越来越复杂,在某些情况下,如大型多人同时在线游戏,延迟是不可接受的。

今天的许多互联网应用的运行模式是:客户端向服务器发送数据请求,然后从数据库抽取数据。如果数据发生任何变化,应用自身需要再次与服务器进行核实,免得用户手动刷新页面。这种反复连接服务器的过程被称为“轮询”(polling)。

但在实时环境下根本没有轮询,而是订阅(subscriptions)。一个客户端订阅数据库中的数据,无论何时当数据变化时,客户端都将接到更新。这种变化无需轮询,是因为它们是主动推送的,正如某些通知被推动给智能手机。

Web浏览器将成为主角

创建富媒体实时应用的Web框架Meteor联合开发人员马特•德波伽里斯(Matt Debergalis)称:“我们当前正处在这种转移时期,这种转移通常每15年发生一次,所有代码都要重新编写。”

德波伽里斯解释道,在20世纪70年代至80年代初,软件主要运行在大型主机和服务器上,用户使用非智能设备连接。到了80年代后,客户端-服务器模式出现,随后互联网诞生。

德波伽里斯说:“大约15年后,Web再次要求我们重写所有软件。因为我们将从桌面应用转向新的模式,这一次软件再次运行在服务器上。”但不同的是,这一次的终端是Web浏览器。

如今,桌面软件华丽的用户界面正在消失,取而代之的是一些简单的Web功能。从Gmail和Rdio即可看出这一变化,访问终端是Web浏览器。


Rdio应用

这就是实时连接,应用在外观和表现上与桌面应用几乎没有区别,我们预计将来的互动也没有区别。Rdio就是一个出色的Web应用,在浏览器中运行,与在桌面上运行几乎没有区别。

当然,实时技术并不是什么新鲜事物,低延迟的软件和硬件,以及对信息的几乎同步访问已存在多年。但开发人员菲尔•莱格特(Phil Leggetter)称:“没有人在金融以外的领域使用。”

莱格特称,只是最近几年,实时技术才从小众领域走进大众市场。Twitter是一个转折点,使得信息可以被实时发现。但莱格特称:“下一个目标是实时投递。”

经济实惠的Node

与任何开发人员谈论实时技术,都将不可避免地谈到Node。Node是一款用来编写高性能网络服务器的JavaScript工具包,今天的许多实时应用都采用了Node。

当然,Node也并非唯一的实现方法。Twitter服务器实时搜索结果使用的就是前端系统Blender,后者依靠的是Java网络框架Netty。而Facebook采用的是Apache Web服务器和自主开发的HipHop。

不同的是,Facebook、Twitter和谷歌不仅仅是发送和接收信息,他们还需要大量的计算能力来注释、分析和返回数据。而一些小型开发人员的需求很简单,使用Node较为实际。

实时应用通常并不需要大量的计算能力,因为这些需求可以交给专业服务来解决,如亚马逊的EC2。相反,他们需要以最快速度移动、路由和连接大量数据的能力。

这就是速度至关重要的原因。在德波伽里斯所说的Web浏览器终端世界,限制用户体验的只有两个因素,数据传输速度和同时连接服务器的数量。而Node可以在很大程度上同时解决这两大问题。

对于Facebook而言,这可能不是什么问题,因为他们对定制的PHP和Apache服务很满意,也拥有足够的资金用来升级。但对于小型开发商或开发团队而言,利用最少的资源开发出更具吸引力的实时体验无疑至关重要。

前景光明

经过多年的实时技术研究,开发人员莱格特对此持乐观态度。他说,我们已经看到一些产品和服务,虽然没有将实时作为卖点,但确实是依赖于实时技术,这是一件好事。

莱格特说:“这意味着,我们开始看到实时技术的实际应用,而不仅限于理论。这项技术很酷,让我们一起努力,充分挖掘其使用价值。”

德利斯勒同样持乐观态度,称MMO版《小行星》只是一个开始。他说:“实时技术将成为一种默认技术,不是只有谷歌、Facebook和Twitter才能承受得起。
  • 大小: 60.3 KB
  • 大小: 52.6 KB
来自: 腾讯科技
4
1
评论 共 1 条 请登录后发表评论
1 楼 fjjiaboming 2012-05-22 08:59
Twitter 后端大量是 t-cala...
t-scala 啊!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 评分规则 Version 1.0发布

    目前网站的功能已经稳定,同样,有...每个人的鼠标的点击都是有决定性的权力,所以,请大家慎重对待自己手中的权力,一个精心写了几个小时的帖子,一下子就被投成垃圾贴,这对于作者是种很大的打击,所有的规则背后...

  • Re: 评分规则 Version 1.0发布

  • Osmanthus 规则引擎1.0发布了

    支持复杂的规则集,例如:决策树,评分卡等;配置规则可以像配置流程一样;支持规则的并行的执行。   源码地址:https://github.com/wangwei86609/osmanthus   另注:该框架还在持续更新中...

  • solr4.7.2自定义评分排序

    Solr提供ValueSourceParser来实现自定义评分函数,在自定义评分函数中封装评分逻辑,然后根据自定义评分函数计算的值进行排序。 准备数据 将数据导入solr 原始查询 q=sdes:共和国 fq=spopulation:[ ...

  • Solr通过edismax提升评分并打印评分规则

    在执行查询时,可以通过设置debugQuery来打印评分规则(可以在Raw Query Parameters中设置debugQuery=true或者直接勾选debugQuery如下图所示), 例如,不进行boost提分,直接查询关键词: 返回...

  • 【Android开发经验】Android编程规范V1.0

    * Version:V1.0 * Author:zhaokaiqiang * Date:${date} */ 设置方法如下图所示 Ø 类注释。类注释主要对类的功能,创建时间,作者进行说明。一个可用的模版如下 /** * @ClassName:...

  • URule规则引擎

    前段时间,在做项目重构的时候,遇到很多地方需要做很多的条件判断。当然可以用很多的if-else判断去解决,但是当时也不清楚怎么回事,就像玩点别的。于是乎,就去调研了规则引擎。

  • Android编程规范V1.0

    * Version:V1.0 * Author:zhaokaiqiang * Date:${date} */ 设置方法如下图所示 Ø 类注释。类注释主要对类的功能,创建时间,作者进行说明。一个可用的模版如下 /** * @ClassName...

  • 【Pytorch Lighting】第 9 章:部署和评分模型

    在本章中,我们将主要使用以下 Python 模块,并在其版本中提及: pytorch-lightning (version 1.5.10) torch (version 1.11.0) requests (version 2.27.1) torchvision (version 0.12.0) flask (version 2.0.2...

  • sklearn_feature_selection

    , [0, 1, 1], [0, 1, 0], [0, 1, 1]] sel=VarianceThreshold(0.8*(1.0-0.8)) VarianceThreshold移除第1列,因为包含0的概率p=5/6大于0.8 VarianceThreshold函数 去除所有低方差特性的特性选择器。这个特征选择算法只...

  • 用Scrapy框架爬取豆瓣电影,构建豆瓣电影预测评分模型

    创建爬虫爬取豆瓣(1)创建项目(2) 创建Item(3) 解析Response和Request(4) Item Pipeline连接mysql数据库存储数据二、构建豆瓣电影评分预测模型1.引入库2.读入数据总结 前言 这段时间对爬虫进行了一定的学习...

  • scrapy框架爬虫初体验——豆瓣评分top250

    我所需要的内容包括序号、电影名字、电影介绍、评分、描述等6个部分。 以xpath工具分析获取节点路径: # 序号 //div[@class='article']//ol[@class='grid_view']//li//div[@class='item']//div[@class='pic...

  • idea项目中使用URule 规则引擎的简单例子

    如需转载分享,请标明出处,且不用于盈利为目的,谢谢合作!...URule是一款纯Java规则引擎,它以RETE算法为基础,提供了向导式规则集、脚本式规则集、决策表、交叉决策表(PRO版提供)、决策树、评分卡及决策流共...

  • Drools 规则引擎----向领域驱动进步(一)

    如下所示: >Fraud detection systems欺诈检测系统 >为客户定制零售优惠券: >信用评分的软件 ##4.3 不断变化的场景 参与做出一个特定的决定的要素往往会发生频繁的变化,业务规则对于管理系统行为的这种波动,可以是...

  • 近两万字小程序攻略发布了

    支持发布小程序,也可以想办法接入Jenkins等工具做持续集成 (小程序持续集成后面会提) … 小程序架构 architecture 微信小程序的框架包含两部分 View 视图层、App Service逻辑层。View 层用来渲染页面结构,App...

  • Pytorch版代码幻灯片.zip

    Jupyter-Notebook

  • Jupyter_Chat甄嬛是利用甄嬛传剧本中所有关于甄嬛的台词和语句基于ChatGLM2进行LoRA微调得到的模仿甄.zip

    Jupyter-Notebook

  • 高效甘特图模板下载-精心整理.zip

    高效甘特图模板下载-精心整理.zip

  • 伯克利大学机器学习-5Dimensionality reduction [Percy Liang]

    lstm Summary Framework: z = U>x, x u Uz Criteria for choosing U: • PCA: maximize projected variance • CCA: maximize projected correlation • FDA: maximize projected intraclass variance

Global site tag (gtag.js) - Google Analytics