【正确答案】
B
【答案解析】J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件被分别部署到不同的机器中。图2-3表示了两个多层的J2EE应用程序。
J2EE应用程序由一系列的构件组合而成。J2EE规范是这样定义J2EE构件的:客户端应用程序和Applet是运行在客户端的构件;Java Setvlet和JSP(Java ServerPages,Java服务器页面)是运行在服务器端的Web构件;EJB(Enterprise JavaBean,企业Java Bean)是运行在服务器端的业务构件。
(1)客户端。客户层可以直接和运行在J2EE服务器中的业务层通信,也可以通过运行在Web层中的JSP页面和Servlet与业务层构件进行通信。J2EE客户层可以分为Web客户端、Applets和Java应用。Web客户端也称为瘦客户端,一般由各种浏览器承担,在浏览器中显示由JSP或Servlet动态生成的Web页面;Applet是一种特定的Java程序,其最大的特点就是在本地浏览器中执行。当浏览嵌有Applet的Web页面时,浏览器会将Applet程序与Web页面一起下载到本地计算机,并使用位于本地计算机的JVM解释执行。Applet可以直接通过RMI-IIOP等方式连接位于应用服务器的EJB,从而达到表现层与业务逻辑层相分离的目的,实现三层架构的系统;Java应用程序是运行在客户端的本地应用程序,由本地的JVM负责解释执行。Java应用程序可以直接访问运行在业务层的EJB,也可以通过HTTP访问运行在Web容器中的Servlet,并通过Servlet达到业务处理的目的。
[*]
(2)中间层。J2EE中间层的内容极为丰富,也是J2EE架构的核心,绝大多数的J2EE应用程序都会将业务逻辑部署在中间层,EJB是J2EE中间层中最重要也是最有特点的构件之一。EJB可以从持久化的存储设备中获取数据,对它进行处理(如果需要),并将其发送到客户端应用程序。EJB可以分为三种类型,分别是会话’Bean(SessionBeans)、实体Bean(EntitvBeans)和消息驱动Bean(Message-driven。Beans)。会话Bean描述了与客户端的一个短暂的会话。当客户端的执行完成后,会话Bean和它的数据都将消失;实体Bean对应数据实体,它描述了存储在数据库的表中的持久数据。如果客户端终止或者服务结束,底层的服务会负责实体Bean数据的持久性(也就是将其存储到某个地方,如数据库);消息驱动Bean结合了会话Bean和JMS的功能,客户把消息发送给JMS目的地,然后,JMS提供者和EJB容器协作,把消息发送给消息驱动Bean。
(3)企业信息系统层。企业信息系统层处理企业信息系统软件,并包含诸如企业资源计划、主机事务处理、数据库系统等一些底层系统。J2EE应用程序构件可能需要访问企业信息系统。J2EE1.3以后的版本支持连接件架构,该架构是将J2EE平台连接到企业信息系统上的一个标准API。