原文:
http://cometdaily.com/2007/10/19/comet-and-push-technology/
越来越多成功的comet范例已挖出一个时髦词,这在90年代后半期是非常受欢迎的: Push技术。 为了使故事短,实际情况是,一个十几年前被视为无用的和低效的技术在现代网络开发技术的帮助下被重新发现。 那么,什么是Push技术?这个词是在1996年创造的,并在市场营销的角度看,很快成为非常成功的一种新的、前沿的互联网技术。这可能是源于短语“push polling” ,这是被新闻媒体在1996年美国总统选举时用来暗指一种不正当的拉票技术:在其中游说者假装进行电话民意调查,使用这种电话调查行为推动候选人的优势[ 1 ] 。 从根本上说,推技术是指任何技术解决方案(例如彗星) ,其目标是扭转传统的拉动的数据给用户的网络模式。 下列术语被作为同义词或部分相同的逻辑类别:
图1显示了两个类别之间的典型差异。 在典型的基于拉动的网络模式上,每封服务器制作的邮件必须是由客户端请求的。 此外,在客户端发出一个请求后,在等待答复的过程中,他们的执行线程通常会被封锁。 而推送技术,用户只需显示出对某种形式的信息(通过订阅所谓的主题,对象,渠道,或项目)的兴趣,然后在任何时候,都可获得来自服务器的异步信息。这意味着客户端是不会阻塞在等待请求答复的过程中,尤其服务器能够自己自由裁量提供的讯息(也就是说,当实际新鲜的数据可用时) ,而不是等待客户端要求更新。
图1 。 同步和异步模式
一个最古老的推送技术的例子(包含更广泛的含义,而不是仅限于网络)是邮件。传统意义的推送技术( 1996年至2000年) ,主要提到的技术也被称为网播,窄播,或窜。一个频道是关联于某些类别的信息,并且一旦用户注册一个或多个渠道,他们将自动获得信息,显示于专用客户端软件(厚应用程序,浏览器扩展,或特殊的屏幕保护程序)上 。 在1996年,PointCast,第一个基于渠道的推送技术系统,已建立。不久之后,超过30家公司进入这个市场,其中包括微软和Netscape 。首先,用户不喜欢安装特殊的软件在电脑上。其次,推进系统不仅耗尽了用户的互联网连接带宽,而且还造成主要互联网服务提供商的瓶颈。第三,也是最重要的,用户从未有真正需要每天早上找到成堆的资料下载到他们的电脑,并且其中大多数他们永远不会阅读。有人把第一代的Push技术比拟为每天早上把大堆的报纸扔在您的家门口。
在2000年,一种新的Push技术被创建。它与第一代在用途和它的技术实现上截然不同。网上安全交易系统的成功创造了一个新的对实时数据被推到用户浏览器的需求。低延迟市场价格数据运送从基础上证明创造高品质的贸易门户的可行性。其中一个与第一代Push技术的不同在于数据更新的粒度与实时的程度。被推动的内容已不再是一堆离线阅读的资料,而是一系列细粒度的实时更新的网页。这意味着,用户使用请求/响应模式下载一个静态页面,然后页面开始通过公布/校队模式接收实时更新,并有能力单独更新网页中的每个单独单元。图2显示了在一个HTML表中显示和更新市场数据的典型例子(服务器推数据往往强调短时间的更新以引起用户的注意) 。
这个新一代的Push技术就是现在的Comet。首两个Comet实现是Pushlets [ 2 ]和Lightstreamer [ 3 ] ,都创建于2000年。在此期间其他参与者也产生了,如KnowNow [ 4 ] ,它随后孵化了Mod-PubSub [ 5 ]的倡议。在这些系统中引入的Push技术上的革命包含在他们的去applet方式中。其他的Push解决方案合并了网页中的Java applets,以管理Push功能。在某些情况下,一个applet只用于管理网络层,而JavaScript和DOM被用来操纵HTML网页;在其他情况下,applet也管理了视觉层。 由于一些原因,applets的使用已越来越多地被认为是不好的做法:JVM的兼容性问题,网页运转延迟,难以调试,以及对开发的网站混杂的技能要求。总部位于英国的公司,使用applet来推动实时数据到他们的客户,去年也迁移到Commet的解决方案[ 6 ] ,结果是对其技术客户支持服务的电话大幅度减少了。
在2005年Jesse James Garrett创造了AJAX,然后在2006年中期Alex Russell创造了Comet。这些总括的迅速采用被证明是有益的,它能够帮助开发着明确区分新Push技术与传统的Push技术(有必要再次强调,术语Comet产生于2006年,正是建立了Push技术10年后,但实际上Comet技术自2000年以来就已经存在) 。在2006年一个新的Comet的实现,名为Cometd , [ 7 ]被创建。
在下个部分,我们将深入Comet更具体的细节,如不同的Comet模型和先进的推送功能,如数据过滤、合并、以及带宽和频率控制。
References 参考文献
[1] http://www.quinion.com/words/turnsofphrase/tp-pus1.htm
[2] http://www.pushlets.com/
[3] http://www.lightstreamer.com/
[4] http://www.knownow.com/
[5] http://sourceforge.net/projects/mod-pubsub/
[6] 这家公司提供金融市场上的差价博彩服务。他们迁移其基于applet的系统到Lightstreamer上并在2006年初完成迁移。
[7] http://cometd.com/