三层和存储过程并不冲突,三层是指逻辑独立,并不强调逻辑放在哪里,理解问题不能太僵化,不要认为中间层一定要放在中间,中间层只是从逻辑角度去划分!
存储过程通过一个bean的函数来调用,逻辑上不也实现三层了吗?

解决方案 »

  1.   

    这个问题很好,应该深入讨论一下。首先申明,我不是这方面的熟手,我只说下我所知道的。有不正确的,请指正:
    1:中间层组件的开发还是比较难的,存储过程不难学,能很快上手,与普通的编程语言差不多,很好理解。但中间层组件的开发不止是编程的问题,其实编程我觉得是其中最其次考虑的问题,象接口的设计、进程间通信、进程的共享、组件的版本控制、分布式事务、消息处理、异步通信、安全问题都是需要特别考虑的,没有很强的经验和能力,恐怕很难掌握。(至少这些怎么处理我都还是糊里糊涂的)。
    2:服务器上的操作系统、数据库、及网络的负载能力都是有限的,光靠增加服务器的硬件,解决不了所有的问题。而且有实际的测试,在访问量很大时,用几台中间层服务器确实比只有一台高性能服务器性能要好。
    3:没听说过三层可以解决数据库移植问题,但是三层确实在移植上有些好处。如果设计合理,只需要更换掉中间层组件就可以完成移植,而传统的两层试,你大概只有将原系统完全推翻,重新来做了。而且当然所有客户端应用程序也需要重新设计和安装了,成本当然也会大很多。其实三层结构在数据库方面的优势很多的。
    4:当然首先要打消客户流行什么用什么的想法,但是三层结构绝对在移植上比两层的有优势。如果你是用EJB,用WEBLOGIC与WEBSPHERE或TOMCAT是一样能用的。不能跑你可以找他们赔钱给你:)
    5:也想知道。
    6:三层不一定会贵。一般来说,高端服务器的升级换代及维护的费用都是很惊人的,三层结构的情况下你不需要那么好的服务器,普通的就行,就算是买个十台八台也不一定会比高端服务器贵。而且坏掉了扔掉也不会那么可惜,坏了还可以有候补的。而且很关键的是三层结构在整体的维护及升级上会比两层的费用少。有些免费的东西可以尽量采用,比如用LINUX、JAVA等你可以设计出很便宜的方案。象我们公司的AP-SERVER就不要钱,不过我们的运行和开发平台还是要钱的。顺便说一句,不用我们自已的AP-SERVER,换用WEBLOGIC/WEBSPHERE/TOMCAT我们的产品一样能跑,这就是JAVA的好处,所以第四点不必担心。
      

  2.   

    呵呵,按钮JJ看来是不愿跟着MS走了