基于java技术的软件开发架构总结.doc

基于java技术的软件开发架构总结.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于java技术的软件开发架构总结

基于java技术的软件开发架构总结 ? ?? ?在具体的实现中,表现层可为Struts/JSF等,业务层、访问层可为JavaBean或EJB等,资源层一般为数据库。 ?宏观上的层次就是这样,在具体现实中,有如下几种实现形式: 1,?轻量级实现 ? 表现层使用基于MVC的框架,比如Struts或JSF 业务层使用JavaBean(就是常说的Service) 访问层使用JavaBean(就是常说的DAO) 优点: ?轻量级实现,简单明了( 缺点: ?难以无法实现分布式应用( ?以下功能必须通过编程实现( ?事务控制( ?资源管理(包括组件的创建)( ?线程安全问题( ?安全性( 2,?重量级J2EE实现 表现层依然是基于MVC的框架 访问层采用实体Bean实现,如果可能最好采用CMP,实现起来更简洁。此处的实体Bean可以考虑采用本地接口 业务层一分为二,服务控制器可以由会话Bean充当,用来封装业务流程(相当于轻量级实现中的Service),也可以考虑采用本地接口;门面也可以由会话Bean充当(一般来说无状态会话Bean足矣),作为业务层的入口,应该采用远程接口。 优点: ?以下功能可由EJB容器自动实现,或通过配置实现( ?事务控制( ?远程访问( ?线程安全( ?资源管理( ?安全性( ?可以进行分布式应用( ?因为采用了EJB,故部分特征可以由装配人员来配置(比如事务,安全性等),不需要在软件中硬编码( ?EJB组件有更好的重用性( ?可利用容器提供的其他企业级的功能(比如集群,容错,灾难恢复等)( ?可以加入MDB(实现异步通讯)等技术( 缺点: ?开发难度较高( ?如果不恰当的使用实体Bean,会造成效率低下。如果采用CMP,则很多数据访问的操作不能直接实现。( ?缺少良好的开发环境( ?软件可能依赖于具体的EJB容器( ?EJB容器可能很贵,开发软件也可能很贵( ? 3,?轻量级和重量级J2EE的切换 如果项目有需求,并有充分的时间,还可以通过在表现层和业务层的交界处加入“业务代表”(JavaBean + 服务定位器实现)来对表现层隐藏对业务层访问的细节(JavaBean和EJB的访问方式显然不同),只需替换“业务代表”就可以切换轻量级和重量级两种实现。举例说明,一般电话上都有一个P/T开关(脉冲/音频开关),随着开关状态的不同,拨号时电话机会判断是使用脉冲拨号还是音频拨号。 ? 这种架构唯一的缺点就是必须写两套实现代码…… 4,?轻量级J2EE实现 ? 访问层通过JavaBean调用ORM框架实现(Hibernate,iBatis等),代码简洁,功能完备(相对于EJB 2.x而言),如果用的是Hibernate,可以忽略底层数据库的差异,如果用的是iBatis,则方便对SQL进行优化。 业务层和访问层依靠AOP框架(如Spring)可以在切面中实现事务,安全性等功能,同时不影响业务代码。如果采用Spring,其中已经内置了事物切面,并可以轻易的与主流ORM框架进行整合,实现声明式的事物管理。当然,更可以使用IoC模式降低组件间的耦合性。 优点: ?可以通过AOP框架实现事物、安全性等功能,同时不影响业务代码( ?ORM框架比CMP更灵活,比BMP更简洁(相对于EJB( 2.x而言),运行效率也比较高 ?如果使用Spring,可以用更简单的方式实现J2EE中比较复杂的功能( ?无需额外的容器( ?ORM和AOP框架可以找到免费的开源实现,降低项目成本(不过也有人认为采用开源项目可能综合成本更高)( 缺点: ?非官方框架,缺少文档、技术支持和业界经验( ?采用技术太多,学习曲线较高,难以招到合适的程序员(咱们学员可以考虑在这方面下点功夫,呵呵)( ?某些企业级的功能轻量级框架还不能实现(或独立实现)(((((((((((((((((((((((((((((((((((((((((( ?测试、调试均比较复杂( ? 另类之处: ?使用BMP + Hibernate(具体做法为BMP中的持久化方法,比如ejbLoad, ejbStore等都委托给Hibernate实现) 优点: ?借助于Hibernate强大的ORM功能弥补CMP的不足(特别是EJB-QL) 缺点: ?事物不好控制 ?不伦不类,容易发生未知的错误(比如Hibernate自身的缓存可能会于容易提供的缓存冲突) ? 另类之处: ?将业务层(也可能包含访问层)包装成Web Services,支持远程调用 优点: ?借助于Web Services可以实现松散耦合分布式应用,说的大一点,就是传说中的SOA,呵呵 缺点: ?Web Services自身效率不高,无状态,安全性差 ?  当然,即使不分层,也能做出软件来,但我们应该思考怎么做才能最好?如果说分

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档