找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 368|回复: 0

[【推荐】] Servlet、JSP、EJB该如何抉择

[复制链接]
发表于 2010-3-6 08:16:26 | 显示全部楼层 |阅读模式
 在Java应用程序开发中,可以使用Web构件来简化应用程序的开发过程。Web构件好像是一个模板。采取现成的模板能够大幅度的减少代码的编写。一般情况下,采用这些构件并通过数据库联接和XML操作就可以完成大多数的应用程序的功能,如数据的存取、逻辑运算等等。换句话会说,就是在J2EE Web程序中仅仅使用Web层技术就可以开发出功能比较完善的应用程序。不过这其中有一个难点,就是该如何选择这些Web构件?因为这些构件很多功能都是重复的。通常情况下,在应用程序开发的时候只需要用到其中的一种或者两种构件即可。

  在这篇文章中,笔者就给大家分析一下,如何结合企业的实际情况来选择合适的Web构件。

  一、避免“大材小用”的误区。

  在分析具体的选择标准之前,笔者先要给大家消除一个“大材小用”的误区。EJB构件确实有很强大的功能。如EJB构件提供了丰富的Web程序支持功能,如实例池管理、比较高的安全机制、比较完善的事务管理、数据持久性容器管理等等,这些现成的功能开发人员可以直接拿来使用,而不需要自己通过编写代码来实现。再如EJB能够灵活的提供多种客户界面,等等。

  有些程序开发人员就是因为EJB的功能强大。所以一开始就一心扑在EJB技术上。在实际工作中无论开发的是什么应用程序,就都用EJB来做。其实这是一个很不明智的做法。EJB构件虽然功能强大,但是其也有局限性。如使用EJB的应用程序会过分依赖于J2EE Web服务器的服务功能。而且对于简单应用程序的数据库操作中,EJB的运算成本也比其他构件要大的多。对于大部分应用程序,如OA系统等等,不会涉及到非常复杂的数据模型,此时采用EJB来说,简直是“杀鸡用牛刀”。

  故在使用EJB构件之前,需要好好的分析一下,是否真的有使用这个构件的必要?笔者认为,如果能够通过其他构件来解决的话,就采用其他构件。EJB只有在不得已的情况下才使用。

  二、考虑应用程序的规模与功能要求。

  在选择具体的构件之前,笔者认为首先需要考虑的问题是应用程序的规模与功能方面的要求。对于功能比较简单(如只是数据库的存取操作加上一些简单的逻辑运算),或者说规模比较小(如不需要在分步式服务器上运行),那么往往只需要通过Servlet或者JSP来实现即可。

  在考虑这一点的时候,难度比较大的主要是应用程序的功能。因为某些功能如果实现的方式不同,其复杂性就会有很大的差异。举一个例子,一个MRP物料需求计划,如果采用的算法不同,代码的行数就会像差好几倍,其所需要花费的时间也就有很大差别。故在考虑应用程序规模的时候,应该以比较优化的情况作为参考标准。毕竟在应用程序开发的过程中,对于代码的优化工作也非常的重要。

  三、评估资金的承受能力。

  一般来说,对于同样的应用程序,如果采用EJB或者采用Servlet、JSP开发在成本上会有很大的不同。采用EJB构件的成本会高的多。如EJB构件比较复杂,进入的门槛比较高。所以招募EJB的人才其成本也会比较高。这无疑中会增加EJB应用程序的成本。

  其次采用EJB构件来开发应用程序的时候,即使对于相同的运算逻辑,其寓所暖成本也会比较高。这主要是由于其内部的实现技术所决定的。为此在应用程序部署的时候,往往会建议企业采用比较高的服务器配置。这也会增加企业的部署成本。

  第三Web服务器的选择也会在很大程度上影响项目的成本。如对于资金比较宽裕的企业来说,可以购买商业版本的Web前端服务器。而如果资金比较紧张的话,则可以考虑选择使用像Tomcat这样的免费的Web服务器。其实从目前的使用量来看,Tomcat服务器的用户数量还是蛮多的,用户的反馈也不错。

  四、考虑应用程序的开发周期。

  具体采用什么构件之前,考虑应用程序的开发周期也是有必要的。如果客户对于应用程序的开发周期有严格的要求,如要求在比较短的时间内完成大量的开发工作,此时采用JSP或者Servlet构件是比较明智的选择。因为EJB技术使用要比Servlet或者JSP复杂。无论是应用程序的开发还是后续的测试,都会占用比较多的时间。故对于那些短平快的Web程序来说,比较适合采用Servlet或者JSP构件。相反,如果开发周期比较长,时间比较充裕,那么采用EJB也是可以的。

五、现成服务器的购买成本。

  有些时候,开发人员会购买现成的服务器,然后在此基础上进行更改。如果企业有这方面需求的话,该购买什么类型的服务器呢?从开发人员的现状来看,很多人会在这里栽跟斗。如他们花了比较高的代价来购买和使用Web程序服务器。但是从实际的操作来看,他们则只使用了一些比较浅显的功能,如Servlet或者JSP等Web层面的功能,而对EJB功能却甚少涉及。而这些功能在一些Tomcat免费的Web服务器中就都可以实现了。显然这是一种比较严重的资源浪费。

  六、学会Servlet与JSP结合使用。

  最后需要注意的一点是,与EJB或者JavaBeans不同的是,Servlet与JSP通常情况下都是一起使用的。这是什么意思呢?虽然Servlet中已经包含了JSP的功能(数据展示层)。但是在Servlet中同时实现业务逻辑层与数据展示层会增加应用程序的复杂性。在实际工作中,通常只使用Servlet的业务逻辑层功能。而对于数据展示层面的内容,都是有JSP来完成的。他们两个构件相互配合,能够提高应用程序的开发效率。

  总之,在使用J2EE技术开发Web程序时,一个通常会遇到的问题就是决定使用何种技术来进行开发。而其核心问题就是在开发过程中是否要采用EJB构件。笔者的意见是,EJB构件虽然功能强大,但是其只是一个“替代品”。即只有在不得已的情况下,才使用这个EJB构件。特别是对于成本与时间都比较紧缺的情况下。一般来说,EJB必然会增加应用程序的开发成本。当然EJB也有其不可替代的地方。在某些情况下也确实只有EJB才可以完成某些特定的作业。此时开发人员就必须义无反顾的使用EJB构件。

  笔者认为,程序开发人员要掌握Servlet、JSB、EJB等各种构件的技术,难度并不是很大,只需要花点时间即可。而最大的困难就是结合企业的实际需求来选择合适的Web构件。这就好像功夫片中,掌握招数往往比较简单。而如果根据对方的招式来决定自己需要采用的招数,就比较困难。这不仅要求开发人员对于各种Web构件的优缺点有清晰的认识,还要求开发人员有比较丰富的实际项目经验。而往往这个经验很难速成。这就是一个老成的开发人员的价值所在。笔者在这里跟大家分享的经验,可以说是笔者的精华所在。希望对大家在实际工作中选择合适的Web构件能够有所帮助。笔者最后强调一次,对于Web构件来说,没有最好,适合企业的需求就是最好的。开发人员要成资金压力、项目规模、开发周期等因素综合考虑,然后做出抉择。

http://webservices.ctocio.com.cn/comment/179/9384679_1.shtml

推荐:

在Java应用程序开发中,可以使用Web构件来简化应用程序的开发过程。Web构件好像是一个模板。采取现成的模板能够大幅度的减少代码的编写。程序开发人员要掌握Servlet、JSB、EJB等各种构件的技术,难度并不是很大,只需要花点时间即可。而最大的困难就是结合企业的实际需求来选择合适的Web构件。这就好像功夫片中,掌握招数往往比较简单。而如果根据对方的招式来决定自己需要采用的招数,就比较困难。这不仅要求开发人员对于各种Web构件的优缺点有清晰的认识,还要求开发人员有比较丰富的实际项目经验。而往往这个经验很难速成。这就是一个老成的开发人员的价值所在。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-18 07:31 , Processed in 0.282121 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表