Thursday, January 29, 2009

EJB的意义

刚刚看到一篇有关J2EE的文章,想起一件事。记得很多年以前,我为找工作去在纽约的一个投行面谈,被人问到这样一个问题,为什么要用EJB?我回答说,这是对分布系统的概念的一个实现,最终目的是为了提高系统的Scalability。问者对这个答案显然是不以为然,认为我没抓住其重点与关键,最终面谈也不欢而散。

我后来又看过一些J2EE的书,也读过一些网上的文章,确实发现好象没什么人太重视EJB在分布系统的贡献,更多的是把它往n-tier架构上归类,比如Client/Server,Browser/Server模式,或者是往组件构件(Component)上归类。为什么会是这样,我是百思不得其解。但是现在EJB的应用越来越失势,与一般人对它的那种不正确的期望可以说不无关系。

EJB的最大特点,就是Invoke它需要很大的overhead,甚至要通过网络跨越于不同的服务器之间。难怪别人说它的性能不太好。但它的优点,也就是可以动员很多服务器一起,提高对海量数据的处理速度。在设计系统的架构时,要很充分地考虑到这点,设计得当,性能将会有很大的提升,不然的话,就象现在大多数EJB应用一样,慢慢吞吞的。

No comments: