码迷,mamicode.com
首页 > 其他好文 > 详细

itoo中为什么要用EJB3.0分布式框架

时间:2015-08-21 21:27:44      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

     一说到EJB,总是有一种感觉就是EJB已经过时了,或者是在项目中,EJB太笨重了,使用过程中很多的功能都没有体现出来,而且EJB还会影响性能,但是在ITOO中为什么还要用EJB分布式框架呢?

ITOO的技术框架结构图如下所示:

技术分享

     从这个图中可以看出,业务逻辑层使用EJB容器进行管理的,我刚开始接触到时候,我也很好奇为什么要用EJB分布式,而没有用webservice或者是现在比较火的阿里巴巴的dubbo+zookeeper.现在我就来解释以下为什么要选用企业级的ejb3.0.

第一:EJB3.0的大跃进

     首先需要了解什么是EJB,EJB主要的特点就是部署分布式应用程序,它有点类似于webservice,但是只是表面上有点像,其实不是.EJB发展到现在,可以说是在EJB3.0有了一个大跃进.伴随着springHibernate等轻量级框架出现后,复杂而笨重的EJB2被大量的用户遗弃,用户开始大量转向了,这个时候EJB3.0就出来了.EJB3.0从四个方面减轻了开发人员进行底层开发的工作量,分别:

(1)EJB2.0使用EntityBeans来访问数据库,EJB3.0是使用JPA来访问数据库的.

(2)EJB需要用部署脚本(Deployment descriptions) ,EJB3.0不需要.

(3)EJB2需要home接口,EJB3不需要.

(4)EJB3简化开发,引入元数据.

 

第二:EJB3的目标

     EJB3的变革能力来自于java5以及众多轻量级框架的出现,EJB的开发足够简单时,学习和使用者的数量增加足以推动它的发展,那么EJB3的目标是:

1.应用metadata Annotation和默认机制以及现有轻量级框架,简化代码量.

2.消除对接口的需求,从而简单化编程逻辑

3.使用技术发展的趋势,提供新功能支持.

 

第三:EJB提供性能优化支持

假定一个JavaBeans为A,那么一般使用这个JavaBeans命令如下:

A a = newA();

     但是,在高访问量的环境中,newA()其实是很费时消耗系统性能的,因此,能不能在软件系统启动时候就预先建立一些对象,这样,系统运行时,从这些已经生成的对象池中借用一个,这样,就无需在使用时进行New,节约了开销,提高了性能,因此,真正成熟性能解决方案都是需要对象池等支持。

     EJB容器(如JBoss)已经提供了对象池和缓存机制,所以,没有事务机制的无状态SessionBean的性能肯定要强于普通JavaBeans。EJB容器不但在单机中提供了对象池和缓存,而且可以跨服务器实现动态负载平衡,这些都无需开发者自己开发任何软件代码,结构如下:

技术分享

 

第四:EJB3.0组件能提供真正的可重用框架

     每一个jar包代表一个EJB组件,一个系统可以由多个可重用的EJB组件构成,例如:树形结构EJB组件;自增序号EJB组件;用户资料EJB组件等,这样的EJB组件可以象积木一样搭配在大部分应用系统中,提高了系统的开发效率,保证了开发质量。

第五: EJB3.0提供事务机制

     事务机制对于一些关键事务是很重要的,例如ATM机提款,提款有多个动作:修改数据库以及数钱等,如果这其中有任何一个环节出错,那么其它已经实现的操作必须还原,否则,就会出现,提款人没有拿到钱,但是卡上已经扣款等不可思议的事情发生。

EJB提供的事务机制非常周全,但事务机制带来的缺点是性能的降低,因此,有些人认为EJB很重,因为在实际应用中,有的用户系统可能不需要事务机制,只是需要EJB提供的性能优化机制,这样,如果使用EJB,就象叫一个人来背东西,他除了背着我要的东西外,还背着我不要的东西。

     ITOO,需要EJBRMI远程调用,在调用过程中,有可能会对多个表进行操作,就需要使用事务来保证数据的一致性和安全性.

 

     ITOO这个项目从一开始的立足点就是一个企业级的项目,需要应对的是高并发大数据的情况,在启动阶段就需要对对象进行预处理了,而且EJBJ2EE的不可以忽视的一个规范,重要的核心功能都封装在EJB,使用WEB+EJB结构,可以让项目的结构变得更加的清晰.所以综上所述考虑,itoo中就决定使用ITOO.

版权声明:本文为博主原创文章,未经博主允许不得转载。

itoo中为什么要用EJB3.0分布式框架

标签:

原文地址:http://blog.csdn.net/tang_huan_11/article/details/47841711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!