J2EE Architecture(5)
J2EE Architecture(5)
1、J2EE标准产品
标准产品是J2EE平台的有形方面:
1)应用程序组件
客户层组件:典型的客户端有Java应用程序、Java applet和瘦客户端等;
表示层组件:表示层组件在Web服务器环境中运行,Servlet、JSP和HTML等都是典型例子。有时,将这些轻量级组件称为Web组件。这些组件为用户生成数据表示。
注意:用户可使用浏览器,通过GET/POST调用,从客户层调用表示层组件。
业务层组件:包含企业的业务逻辑。这些组件一把不直接呈现客户端,而是与表示层组件连接。
业务层组件还连接到后端资源层,以便与企业数据库或遗留系统交流信息。
EJB是业务层组件,EJB组件有三种类型:实体Bean、会话Bean、消息驱动Bean。
2)容器
容器为上述各组件提供生存环境。容器必须与Java兼容,必须为对应组件通过运行时支持,还要管理在各层部署的组件的完整生命期。
容器应为不同应用程序组件提供J2EE API的联合视图。因为组件位于不同的层,所以要为各层组件分配不同类型的容器。
容器透明地为部署组件提供服务。通过“部署描述符”了解哪些组件需要哪些类型的服务,然后透明地为组件提供对应服务。
事务和安全等都是容器管理的服务。
容器和服务器的关系:容器是应用服务器不可分割的一部分,能提供很多“校准”(plumbing)服务。容器应确保在运行时组件能获得适当服务。
3)资源管理驱动程序
资源管理驱动程序是系统级软件组件,用于实现到数据库等外部资源管理器的网络连接。
资源间的连接使用几种驱动程序,如:
直接驱动程序:通过实现诸如JDBC的标准API连接资源。
间接驱动程序:通过定义和实现连接到要插入J2EE平台的外部应用程序的Connector的资源管理驱动程序以连接到资源。
间接驱动程序使用J2EE SPI(Service Provider Interface)服务提供者接口建立J2EE平台与外部资源的连接。
在通过Connnector连接到外部资源时,要慎重行事。
4)数据库
用于存储企业永久数据。可以通过不同组件,如Servlet、JSP和EJB,编辑、更新或修改数据库。
2、J2EE标准服务
J2EE规范要求J2EE产品提供下列“标准”服务。
1)HTTP/HTTPS(超文本传输协议)
表示层的Servlet和JSP被认为是HTTP Servlet,可使用HTTP通信协议。
2)JTA(Java事务API)
需在客户和企业应用程序之间执行一个或多个“请求-响应”操作。此类操作应看成是“原子操作”(要么全执行,要么全不执行)。
3)RMI//IIOP
RMI//IIOP服务子系统支持RPC(Remote Procedure Call)形式的分布通信,允许开发人员开发独立于底层协议的企业系统。
4)JDBC
5)JMS(Java消息服务)
JMS子系统允许异步地连接消息传输中间件。
6)JNDI(Java命名和目录接口)
用于为企业应用程序提供命名和目录服务。
7)JavaMail
Java邮件API
8)JAF(JavaBean激活框架)
JAF是JavaMail API的实用程序API,为电子邮件提供了MIME(Multipurpose Internet Mail Extension,多用途电子邮件扩展)功能,允许利用电子邮件交换非文本信息。
9)JAXP(Java API for XML Processing)
JAXP通过SAX和DOM两个重要的API来处理XML文档。
10)JAAS(Java Authentication and Authorization Services,Java身份验证和授权服务)
这个子系统根据用户的配置文件,对用户进行身份验证,并授权用户访问适当信息。
11)J2EE连接器架构(J2EE Connector Architecture)
它允许将ERP等企业信息系统插入到J2EE平台中。
3、J2EE架构
J2EE应用程序的精髓在于:无论何时,企业都可以根据自己的需要,方便地迁移到其它符合J2EE规范的应用服务器上。