我比较赞赏关于EBAY的这篇文章。SUN 给 EBAY 做架构咨询的那个印度伙计JAVAONE上大谈特谈CORE J2EE模式的运用(那个印度伙计本人就是CORE J2EE模式的作者之一),压根没说EBAY架构设计的关键 - 应用服务器无会话状态设计。
但是这种设计不是很容易能够达到的。服务器无会话状态就意味这会话状态转移到了数据库和客户端。客户端存储会话状态首先有COOKIE数量的绝对限制,并且会带来网络传输负荷增加的问题。数据库会话状态也有性能负担的问题。 所以,这样的“无状态”设计,需要仔细的数值性能分析和模拟,不是普通应用开发者能够轻易做好的。
另外再挑BANQ一个毛病: :-)
这个问题是有无会话状态,和会话状态放在哪里的问题,和“动态,互动”啥的毫无干系。要说动态,互动,古时候WINDOWS CLIENT/SERVER架构下会话状态全在客户端,那个年代的应用服务器大多是无状态设计的。
个人看法,现在的B/S架构是不会长久用下去的。
正是BS架构下完全无状态的浏览器客户端导致了服务器必须有会话状态,从而从根本上埋下了整体架构可伸缩性的隐患,也导致了SESSION REPLICATION等等问题。试想,如果服务器只提高SLSB,MDB和ENTITY,那么每个服务器在任何时间都是平等对称的,没有会话状态复制问题,那么系统架构的水平伸缩岂不完全不费吹灰之力?
BS架构的另一个问题是HTML应用的互动性与响应速度问题。试想,一个一天输入成百上千条订单的商用程序,如果用VC/VB/PB/DELPHI写,它的响应速度肯定是用HTML无法比拟的。比如,在VC/VB/PB/DELPHI里写一个下拉组合框做输入过滤是多么轻松,而在HTML上,最近YAHOO和GLLGLE才出现这样的功能。
从计算能力方面看,BS架构也很不合理。从整个系统看,大量的逻辑运算放在服务器方,而功能强大的客户端放着INTEL P4 CPU,却只做个HTML浏览器用。同时,大量重复的HTML反复地占用网络带宽。。。真是BS不除,网难未已。
基于AJAX技术的应用架构,就是对上面这两个问题的一个消极反应。AJAX里大量运用的JS变量,就是会话状态在向客户端转移。而AJAX里DHTML的广泛运用,就是把界面逻辑向客户端转移。其实除了HTML以外,AJAX也可以和XUL, XAML结合适用,从而完全脱离多余的浏览器。
XUL在描述图形界面方面的能力,应该说无需怀疑。请考虑:FIREFOX本身就是一个XUL应用。打开你的C:\Program Files\Mozilla Firefox\chrome\browser.jar\browser.xul看看。是的,那个貌似HTML/XML的文件就是FIREFOX的界面MARKUP。而FIREFOX的菜单命令,是实现在JAVASCRIPT里面的。也就是说,FIREFOX这样复杂的图形界面,就建立在XML和JAVASCRIPT上。不止FIREFOX,MOZILLA的JS DEBUGGER - VENKAMAN, EMAIL AGENT - PHOENIX,通通是XUL + JAVASCRIPT的架构。
也就是说,如果你有了XUL ENGINE (打包在FIREFOX里),或者XAML(打包在WIN VISTA里),那么你的 JSP 就不必在输出HTML,而需要输出XUL, 或者XAML。并且,这个JSP不会每个请求都重新被运行一次,而是在客户第一次运行你的程序是运行一次,此后的每个请求,你的WEB SERVER只返回少量的XML业务数据(SOAP消息),而不返回任何界面数据,没有HTML,没有XUL。 而你的应用程序本身,也不在浏览器里运行,而是向FIREFOX那样的真正的RICH CLIENT。所有的会话状态存在客户端JAVASCRIPT里,服务器真正实现了无会话状态从而大大提高了水平伸缩性,而网络传输因为界面数据的大大减少,响应速度也会大幅度提高。
XUL/XAML + JAVASCIPT + SOAP
多么诱人啊。
AJAX的问题,在于JAVASCRIPT。JAVASCRIPT既不能隐藏数据,也不能隐藏逻辑。另外,JAVASCRIPT的弱类型(其实是无类型),不支持真正意义上的OO(没有内建的类,继承,多态,虽然这些可以用FUNCTION, TEMPLATE来模拟),解释而不是编译,导致了JAVASCRIPT 故障/代码率远远高于JAVA。在XUL/XAML替代了HTML,从而解决了界面描述语言之后,业界必定会找到替代JAVASCRIPT的逻辑运行语言。那时候,天下就太平了。
另一个可能,是 JNLP + SOAP。JAVA既做界面描述,也做逻辑语言,传输层用SOAP,在MVC方面不如XUL + JAVASCRIPT那么干净,倒也不坏。
还有一个可能,就是 MS-Office + SOAP。是的。OFFICE做所有应用程序的界面,VBSCRIPT/JSCRIPT/C作为逻辑语言,SOAP做传输。如果去年微软真的并购了SAP,那这个可能就更现实了。
离题万里了。
>
> >
> 现在国内大的网站都是内容网站,是一种方向推的技术,而不
> 腔ザ?
> >站,所以这些内容网站只要前段使用分发器以及缓存就可以?
> ,越是动态>互动性强,对技术要求就高,这也是eBay网站
> Google网站技术很高的原
> >因所在。
>
> http://blog.csdn.net/yzhz/archive/2005/02/24/300500.as
> x
> 这是我以前翻译的一篇关于ebay架构的文章。文章结论是:
>
>
> 不必为架构一台有状态的服务器所困扰,更进一步,忘掉集?
> ,你不需要它。
>
>
> ebay是这么说的,也是这么做的,这也是sun做项目所推荐的
> 3悄愕耐久挥星蚣赌酥烈诩兜姆梦省?