Enterprise JavaBeans简介根据Sun Microsystems以及它收购的象Netscape这样的应用服务提供商对Enterprise JavaBeans (EJB)的说明,EJB是用来简化并加快应用程序的开发的。Enterprise JavaBeans是一种可重用的商业逻辑组件,它可以用来实现分布式的多层应用结构。你可以利用众多的高速成长的EJB组件来快速搭建你的应用,而这些组件所能提供的功能在以前建立一个基于web的应用时是一种巨大的挑战。 例如,如果你要开发一个电子商务应用,你可以购买一个执行实时地信用卡验证的EJB组件、一个管理消费者数据库的EJB组件以及一个计算运费的EJB组件。然后你可以通过定制这些组件的runtime属性来将它们组合到你的应用中,于是你就有了一个正常工作的系统了。这个应用可以自动地处理诸如负载平衡、安全维护、事务监控、资源共享、保证数据完整性等等。 这篇文章会向你介绍Enterprise JavaBeans,并力图使你建立这样的一些简单的概念:怎样利用EJB组件来设计应用程序,如果建立并访问一个简单的EJB组件。Enterprise JavaBeans和你可能相当熟悉的普通的JavaBeans是不同的,下面让我们先来看看两者的差异。 ENTERPRISE JAVABEANS和普通的BEANS 你可能会对这样的问题感到疑惑:那就是Enterprise JavaBeans和我们过去听说过的JavaBeans有什么联系。事实上,这两种类型的beans从技术角度讲并没有什么共同点,尽管两者都可以被开发者在应用程序中重复使用。 “普通的”beans是Java类,其中典型的是图形化用户界面(GUI)组件,它遵守程序开发的惯例,因此在诸如Symantec Visual Cafe、IBM's VisualAge for Java这样的集成开发环境中,可以查看beans并允许你在程序中使用它。你的开发环境能够产生相应的Java代码来操作这些beans。例如,一个bean可能是用来描述一种单行编辑器或者是一个列表框,开发环境可以允许你定义这个bean并调用适当的方法来实现你想要实现的功能,这样可以大降低处理图形化界面的难度。 Enterprise JavaBeans同样是组件,但是这些beans有着完全不同的一套协定和界面,它们不是在开发环境中使用的。Enterprise JavaBeans的目的是用来将商业逻辑(例如将钱存放到一个帐户中、计算所得税或者是选择从那一个仓库发货)封装到服务器端的组件中。在EJB范例中,一个应用是通过一系列的商业逻辑控制的EJB组件来实现的,这些组件被定义在一个“EJB容器”中。而在客户端将访问这些EJB组件并获得结果。EJB组件会自动处理安全性及有关事务。 应用程序服务器和EJB容器 Enterprise JavaBeans工作在一个EJB容器中,典型的情况是Netscape Application Server(NAS)。EJB组件必须支持Sun的Enterprise JavaBean规范,这个规范详述了beans和其他应用程序服务器这间的接口。Enterprise JavaBeans可以使用在任何的应用程序服务器中,它也可以应用在其他系统中,只要它们提供一个实现这些接口的EJB容器。EJB容器也可以存在于其它诸如事务监控或数据库操作的系统中。 特殊的应用程序服务器是EJB容器存在的一种较好的模式,因为它可以自动操作一些多层计算的复杂功能。应用程序服务器为设计中所包含的组件管理资源。它还提供一些底层的服务,例如:命名、目录服务以及安全问题。它使得基于bean的应用程序易于升级。绝大多数的应用程序服务器可以让你通过增加新的服务器群集来升级你的应用程序。 EJB容器为它们的beans提供了许多重要的服务。因为这些服务往往是默认的,所以你不需要直接处理这些服务。离开了这些服务,Enterprise JavaBeans将无法正常工作。这些服务包含以下几种: 1.生命周期管理服务 - 用来初始化和关闭beans。 2.安全服务 - 使得beans可以完成各种验证身份和身份确认的工作。 3.事务处理服务 - 管理诸如事务未完全完成时的回滚工作。 4.持续化和状态管理服务 - 使得beans可以在会话和单个请求之间保持信息,即使这个容器的服务被重启。 EJB容器还提供了与它的beans联系的通信通道以及它的beans的所有多线程处理的问题。事实上,EJB说明书明确地禁止了一个bean创建它自己的线程。这保证了线程处理的安全,也使得开发者不必过多地关心复杂的线程管理。 使用BEANS建立的应用程序结构 现在让我们来看看如何利用Enterprise JavaBeans来建立一个应用程序。因为这些beans定义了你的应用程序中商业逻辑的核心,你需要一些其它的途径来处理一些诸如生成显示通信结果的web页面的工作。如果你使用Enterprise JavaBeans建立了一个基于web的应用程序。你可以大致将它分为三层: 商业逻辑层(商业事务处理的核心),由Enterprise JavaBeans提供 显示逻辑层(在用户和EJB服务间的逻辑联系),由Java servlets提供 显示界面层(实际的HTML输出),由Java Server Pages(JSP)提供 例如,在一个银行的应用程序中,一个servlet可能会使用一个EJB组件所提供的服务来判定用户是商家还是消费者,并将他们引向适当的JSP控制的web页面以显示它们的帐户情况。 在这种模型中,Java servlets控制着整个应用程序的显示逻辑。显示界面(HTML)是通过JSP独立于程序逻辑的。这意味着你可以允许你的HTML设计者独立地工作去专心解决页面的外观,而让你的工程师去专心开发程序代码。这将建立一个灵活的,具有可伸缩性的分布式的多层应用。 BEANS的类型 Enterprise JavaBeans有两个主要的类型:session beans和entity beans。 Session beans提供一个服务,它通常是工作在一个传递参数的对象上并在事务处理结束后消失,Session beans通常通过客户端的例示来获得它的名字,它只存在于一个单一的client-server会话中,这样的一个session bean执行了一些代表客户端的操作。在我们的电子商务模型中,我们有这样的一个session bean用来根据输入的参数计算运费,这样的参数可能包含目的地址及货物重量。 session beans有两种类型:stateless(最普通的类型)和stateful。Stateless beans简单地提供一个服务,它不会持续地保持任何数据,反之,stateful beans会在请示之间保持一些数据。但是,在通常情况下,这种保持是暂时的。Stateful beans可以可靠地处理它们自己的数据的持续化。 上一篇:J2SE1.4的I/O新特性 下一篇:全面研读 EJB 2.0 更多相关文章
|
推荐文章
精彩文章
|