EJB 2.1规范的简要回顾

ZDNet软件频道 时间:2002-09-26 作者:BUILDER.COM |  我要评论()
本文关键词:
所以在本文中,我们将给你一个深入了解Enterprise JavaBean (EJB) 2.1规范的概述。
大多数开发者没有时间或耐性去看一遍长达640页的EJB 2.1规范,但他们却需要了解EJB2.1新引入的内容。所以在本文中,我们将给你一个深入了解Enterprise JavaBean (EJB) 2.1规范的概述。不过有一点要注意:由于我们讨论的EJB2.1规范版本还未最终定稿,所以现在它与它的终稿会略有区别。

EJB2.1引入的新内容

下面是EJB2.1的新特点的概述:

  • 由容器(container)管理的定时器服务——定时器服务提供了一种粗粒度、交互式的、基于时间的消息传递机制使得enterprise bean在更高层次上模拟和管理事务过程(business process)成为可能。
  • 网络服务支持——为了可以通过网络服务端点接口来实现网络服务,EJB2.1增加了对无状态(stateless)session beans的支持。
  • 扩展JMS支持——消息驱动的bean体系结构不仅支持JMS也广泛支持其它消息类型。

现在,让我们进一步看看这些特点。

定时器服务

EJB定时服务是由容器提供的。Bean提供者登记被调用的enteprise bean,到了指定的时间或经过了指定长的时间片断后,登记的enteprise bean会被自动回调(callback)。

定时服务为回调排定时间表。当指定的定时器计时完毕,容器将调用bean的ejbTimeout方法。下面是两个可以用EJB定时器服务的情况:

  1. 每逢周五就给所有订约人发出提醒,要求他们完成考勤单(time sheet)。
  2. 需要每隔一段时间安给用户同步消息。

Enterprise bean通过它自己的EJBContext接口申请定时器服务。定时器服务为定时器的建立和取消及分配提供相应的方法。Bean类必须通过javax.ejb.TimedObject接口来使用定时器服务。该接口只有一个名为ejb.Timeout的回调方法。

Bean可以在它的定时器计时结束之前取消它。但是,如果一个定时器被取消,ejb.Timeout方法不会被取消。

网络服务支持

无态bean可能会有网络服务客户,从本质上来说,无态bean可以作为网络服务端。网络服务客户端可以通过简单对象访问协议(Simple Object Access Protocal,即SOAP)来调用无态bean。

Bean的网络服务终端界面在网络服务描述语言(Web Service Description Language ,即WSDL)中介绍。当bean的提供者希望bean完成网络服务终端的功能,他可以选择使用网络服务终端接口来调用无态bean。网络客户可以用SOAP来发送或接受消息。

从客户端的角度来看,无态bean完全是隐藏在网络服务终端后的;客户通过终端来访问网络服务功能。就Java客户端来说,可以通过JAX-RPC客户(client-view)API来访问该终端,其效果如同访问JAX-RPC终端一样。

如果无态bean作为网络服务,它可以被各种客户端访问而与客户端平台或语言无关。

EJB-QL支持

EJB2.0为实体(entity)bean引入了具有container-managed persistence(CMP)特性的抽象编程模型。在样,实体bean中无须包含任何代码。通过定义EJB-QL和其它标志,所有的内容都写在ejb-jar.xml文件中。容器将查询编译成底层数据库所用的目标语言(如SQL(结构化查询语言))。因此,实体具有高效性和可移植性。EJB-QL句法如下:

select_clause from_clause [where_clause] [orderby_clause]

EJB2.0相对EJB-QL多提供了一些函数,包括:

  • 统计函数:AVG, COUNT, MAX, MIN, SUM。
  • 排序语句,它允许对象或值按某种方式排序后返回一个队列。
非JMS源的消息驱动bean

消息驱动bean是异步消息的接受者(consumer)。它们是匿名的,对客户来说是不可见的,因此,远端客户不能直接使用它们。

EJB2.0引入的消息驱动bean,如Queue和Topic,接受源于JMS的消息。EJB2.1扩展该功能,使得bean也可以从其它消息源产生的消息,如XML(JAXM)。一个消息驱动bean只能接受一种类型的消息。

举例来说,某个实现javax.jms.MessageListener的消息驱动bean只接受JMS消息;而实现javax.xml.messaging.OnewayListener或javax.xml.messaging.ReqRespListener的消息驱动bean只接受JAXM消息。

总结

本文简单介绍了EJB2.1规范的几个激动人心新特点。进一步的学习请参考完整的EJB2.1文档



本文为ZDNet China版权所有,未经许可严禁转载。

责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134