我想是不是这样,把EJB和数据库放在一起可以减少网络传输的代价
然后我觉得J2EE似乎比较倾向于比较复杂的分布系统
也就是说数据库也许不只一个,或者是分布数据库我觉得J2EE最主要的东西就是分布,而且是比较复杂的分布结构,而不是单中心的C/S

解决方案 »

  1.   

    谢谢你的回答,很有启发性。你的回答至少说明了EJB的一个优势:实现Boundary代码和Business Logic的分离,这其实也是N层结构的一个优势。因为如果不考虑这个分离的话,传统的C/S结构同样可以实现分布式数据源。
      

  2.   

    c/s结构和b/s结构各有优势,c/s有较好的客户端,而b/s则是最少的网络传输量,两个都可以使用数据库集群做为数据库端,不过b/s中,应用服务器和数据库服务器在一个局域网中,数据传输相对较快,而且只是需要哪些数据就传哪些数据到客户端,带来的问题是客户端的复杂控制较难实现,而b/s好多都是一下将数据读取到客户端,例如有名的ctais,提高了客户端以后的运行效果,但是数据流量在初始时过大。
      

  3.   

    BS还有个好处就是不用给用户安装客户端
    我们曾经花了两个月的时间,跑遍全省百多个点给他们安装调试客户端
    腿都跑断了如果客户端是IE的话叫他们去下就好了
    不会用IE让他们买书看
      

  4.   

    我是楼主。
    请大家继续关照我的问题,谢谢了。
    我想说明一下:我问的问题不是关于B/S结构的好处!EJB和Muliti-tier的目的,远远不仅仅是为了B/S,何况只有在中国才有很多人认为B/S不是C/S的一个特例,只有在中国才有这么多人认为B/S是万能的(据说有人在开发B/S结构的Office)。我问的问题是:EJB到底通过何种机制,降低或消除对数据库服务器的访问瓶茎,从而使系统整体具有更好的可伸缩性(scalability)。
      

  5.   

    用连接池呀,J2EE服务器里面可以配置,EJB也是从连接池里拿数据库连接的。
      

  6.   

    EJB的设计初衷是建立一个开放的规范,使得数据访问组件可以跨数据库,跨应用服务器,而且还提供较好的缓存,分布式事务等功能。
    实现上面所说的特点并不是EJB技术本身实现的,而是所有的应用服务器厂商必须实现EJB规范,EJB规范本身又对不同数据库进行了封装,所以EJB本身就有可伸缩,和可扩展的特性
      

  7.   

    觉得j2ee把各层的逻辑分得很清楚,有利于大规模的集成开发。其他的赫赫,一下子说不清楚。:)
      

  8.   

    pour RobertDeNiro:
    Very inspiring explanation! 
    Merci beaucoup!
      

  9.   

    下面几个问题帮助你最好理解为什么要用EJB
    1,分布式问题:如果你有几台服务器,跑的都是同一套系统,分别在北京,上海,广州,如果北京有个用户改了他的资料,那么要发通知上海和广州的机器也做同样的事,否则他跑到广州一看,怎么改了的还是没有变呀。这就涉及到一个普遍的分布式处理问题了,如果你自己写网络通信实现,写一大堆SOCKET,复杂的要死,还出错。你这时多么希望有个中间件能帮你解决这些问题呀,没错,想到EJB!
    2,事务问题:如果你在做了一个内部人员管理系统,现在有一个人首先到人事部登记,登记完有去财务部登记,忽然这个时候,系统掉电了。结果这个人在人事部有记录,但是他没有工资,因为他没有成功录入进财务部数据库。这个时候就要面临一个事务问题了,希望它要么一次都成功,要么一次都不成功。怎么做呢,如果你自己用其他办法实现,写一大堆代码,复杂的要死,还出错。你这时多么希望有个中间件能帮你解决这些问题呀,没错,想到EJB!
    其他还有多线程,安全等等问题。
    等你发现用了EJB,头不痛了,心不烦了,程序变简单了,可以专注于系统的业务实现了,那你就会说:我呀,一直用EJB,EJB呀,天天见!
      

  10.   

    我觉得j2ee最大的好处是把在整个
      

  11.   

    不好意思,上面被我不小心没有写完就发出回复了
    我觉得j2ee最大的有点在于把一个项目的开发的整个过程的角色分配的十分清楚,这样各种角色的开发人员就可以独立的进行自己的工作,而不用考虑其他的问题。
    从而是耦合性大大的降低。
      

  12.   

    pinecone和tianboguang两位老师的解释非常中肯!受益非浅!谢谢!
      

  13.   

    小项目,就用不着ejb了,最多用一个session fasade