2008年12月1日星期一

JavaEE_002: EJB3.0是个啥东东?(摘录+整理)

【EJB】:Enterprise Java Bean。
EJB技术是为了分布式企业级应用而生的。
一个EJB是一个可重用的、可移植的Java EE组件。
在MVC架构中,EJB属于Model中的业务层组件。
EJB的任务不外乎这三种:(1)完成某个业务逻辑;(2)访问数据库;(3)集成其它系统。
EJB运行在EJB容器中。
EJB开发者只需关注业务逻辑而不用考虑事务支持,安全性和远程对象访问等复杂的问题。
EJB3.0 规范符合JSR-220。
EJB3.0变化的只是开发和部署模型,其核心框架和架构原理并没有改变。

1. EJB3.0的类型
EJB3.0有三种类型:会话Bean,实体Bean和消息驱动Bean。
(1)会话Bean:用于完成某个任务。
例如检查客户账户历史记录。相当于“动词”。
会话Bean分为有状态会话Bean和无状态会话Bean。
有状态会话Bean在Bean中维护了状态信息,同一Bean实例可以服务同一客户的多个请求;
无状态会话Bean不持有客户状态,因此同一Bean实例不能服务同一客户的多个请求。
(2)实体Bean:代表存在于数据库中业务对象。相当于“名词”。 EJB3.0未对实体Bean做任何改动,即EJB3.0规范用“EJB2.1实体Bean”表示实体Bean。
(3)消息驱动Bean:用于“异步”地完成某个任务。
与会话Bean不同的是,MDB不存在直接客户,而是靠接收异步JMS消息来完成调用的。

【EJB容器】:指实现了EJB规范的软件产品。它提供了EJB组件的生存环境。
EJB容器为提供了如下服务:

  • 事务管理

  • 安全性

  • 资源和生命周期管理

  • 远程可访问能力

  • 支持并发请求

  • 集群和负载均衡

  • 持久化

目前,市场上有超过30个通过Sun认证的Java EE应用服务器。

问题1:JavaBean同EJB的区别?
JavaBean只是提供了get/set方法的Java类。它具有属性、事件及方法。
JavaBean只是开发组件,而不是可部署组件。
JavaBean不需要部署,因此不需要为JavaBean提供运行环境,更不需要容器了。
JavaBean只是Java类,不需要容器去实例化、销毁它们,更不需要提供任何中间件服务。

参考文献
1. 《精通EJB3.0》 罗时飞 译。

没有评论: