急什么?!君不闻Servlet3.0带来了异步的脚步声?

09-12-18 atester
    

各位不要对异步这么急。

异步是早晚要到来地,请等待java为我们带来的标准...

[该贴被atester于2009-12-18 12:41修改过]

    

2
xmuzyu
2009-12-18 12:55

无论底层平台如何异步,我们追求的是业务上的异步,模型的异步,而只有针对性的模型或者业务的异步才算是真正的异步。

banq
2009-12-18 13:22

Java标准太慢了。

现在Web Socket在Chrome最新版引入,Web Sockets是长连接,可以实现服务器端的真正推机制,而Servlet 3.0的推机制还没有使用到Web Sockets这种新方式,目前已经有的方式是很晦涩,我认为是一种变相的拉。

Servlet也对REST视而不见,这恐怕是他落后的另外一个致命原因。

Servlet从本质上还是同步,是多线程机制,这种机制最大问题是需要解决共享资源争夺问题,锁是同步的致命问题,也是性能的致命缺点和天花板,而异步可以巧妙地回避锁。

关于异步模式的好处太多了,实际上,关键是我们很多人没有认识到Web系统本质是一个分布式系统,B/S本质是一个分布式系统,现在有两种极端思维:

第一种:JavaEE的思维还是在做强服务器端,弱化客户端,总是认为客户端太慢,大包大揽,把客户端应该做的事情都包揽到服务器端,包括页面显示计算(JSP技术),甚至客户端状态httpSession都保存到服务器端,结果服务器端被客户端绑架,服务器集群环境需要做session stick,服务器很难做到完全面向业务。而且,服务器端还会被关系数据库绑架,形成集中式编程思维,导致系统整体系统很难做到高可伸缩。

第二种:传统的Windows编程人员正好相反,信赖客户端,弱化服务器端,如C/S游戏 QQ等,尽量少通讯,总是假设网络可能断或速度慢。Web 1.0时代也是这种思维,总是把动态网页搞成静态,丧失动态性。

这两种思维都有偏颇,没有从分布式整体去看到Web。如果我们认为Web天生就是一个分布式系统,我们需要的是一种基于分布式CAP和BASE思想的灵活的可伸缩的架构标准。

新的开发时代我好像感觉就要来了,REST和云计算已经先行一步。

[该贴被banq于2009-12-18 15:06修改过]

banq
2009-12-18 15:18

非常凑巧,看到一篇文章:Comet is dead long live websockets一文提出这个观点。

Servlet 3.0支持的Comet已经死了,未出身就胎死腹中。

作者使用最新的google chrome浏览器已经实现了Web sockets,他能够使用异步消息机制让Erlang和Web网页对话。

当然作者还认为下面一些技术都会死掉:

comet

long-poll

AJAX

keep-alive sockets

所有上述做法只是黑客手法,因为以前浏览器不能自然支持异步通信。

当前的AJAX带来巨量负载以及复杂的Http头文分析。

推数据到客户端多年来一直一塌糊涂,long-poll 和 comet其实在走弯路,实际还是拉机制。

作者还用erlang举例子如何实现真正的推机制。

0lhw0
2009-12-18 18:05

各位大牛都在说异步怎么好,怎么好,我觉得也是,但是异步的基础是啥,没有同步哪来的异步!!!

3Go 1 2 3 下一页