EJB简单介绍
全称 enterprise java bean,翻译过来就是企业级的javaBean。在J2EE里,Enterprise Java Bean(EJB)称为Java企业Bean,是Java的核心代码。
设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。
为什么要用EJB?
1.最重要的理由就是分布式。分布式对象之间互相协作,完成特定的业务功能。
2.支持分布式事务
3.应用程序需要支持不同的客户端,只需要少量的代码,就可以让远程客户端访问到企业Bean。
基本分类
1.Enterprise Bean(企业Bean),包括Session Bean(会话Bean)和Message Driven Bean(MDB)消息驱动Bean。
2.Persistence Bean(持久化Bean),包括Entity Bean(实体Bean)。
与Web Service对比
1.通信协议不同
EJB采用rmi-iiop协议,Webservice采用http协议。
2.站位不同
Web service主要关注于解决异构系统、不同语言系统通信,其关注的是分布式服务开发、着手点要高、站的角度高。
而ejb可以看做是分布式编程平台,通过容器和组件,简化了程序开发、调试和部署等它关注的是分布式组件开发,粒度小。
也可以这么说,WebService 只是对外提供的调用接口,而 EJB 是个业务组件。一个对外的 WebService在服务端中也是需要实现业务逻辑的,在 J2EE 中,这些业务逻辑基本上都是由 EJB 组件来实现,对外发布 WebService 接口。
3.EJB支持分布式事务,但是We bService不支持分布式事务。
一个业务逻辑可能会调用分布在多台服务器上的EJB 组件,但是这么多的组件调用必须纳入一个事务范围之中。也就是说如果需要调用三个 EJB组件,第一个调用成功,第二个调用成功,但第三个调用失败了,因此在第一和第二次调用成功时进行的事务操作(这里的事务操作不单单指数据库的,还有可能包括消息队列服务的事务)都必须进行回滚。但是,如果是调用三个WebService 的话,那调用成功的那两个基本上是不可能进行回滚的,调用完了就是完了。