Sun Java Enterprise System 5 Update 1 技术概述

第 1 章 Java Enterprise System 简介

Sun JavaTM Enterprise System (Java ES) 是一组软件组件,它们提供了用以支持那些分布于网络或 Internet 环境中的企业级应用程序的服务。这些应用程序称为分布式企业应用程序。本书重点介绍 Java ES 软件组件及其提供的服务。

本章介绍 Java ES 以及使用该系统时所涉及的任务。本章包括以下各节:

为何需要 Java ES

当今的业务需求对软件解决方案提出了如下要求:可分布于网络或 Internet 环境且具备较高的性能水平、可用性、安全性、可伸缩性和可维护性。

Java ES 提供了用以支持此类 distributed enterprise applications(分布式企业应用程序)的基础结构服务,这些应用程序通常具有以下特征:

分布式企业应用程序需要一组底层基础结构 services(服务),这样,分布式组件便能够彼此通信、协调各自的工作、实现安全访问,等等。这些基础结构服务受计算机和网络链接所属硬件环境的支持。此硬件环境包括 SPARC® 和 x86(Intel 和 AMD)硬件体系结构。

下图显示了总体分层方案。Java ES 主要提供图中所示的分布式基础结构服务层。

图 1–1 分布式企业应用程序所需的支持

分布式企业应用程序位于分布式基础结构服务之上,而后者又位于联网硬件环境之上的示意图。

Java ES 提供的部分功能服务如下:

Java ES 还提供了可以增强可用性、可伸缩性、可维护性以及其他应用程序或系统质量的服务。Java ES 提供的部分服务质量功能如下:

您可以部署一项或多项 Java ES 服务,其中每项服务都可能包括多个 Java ES 组件。

Java ES 组件

Java ES 将独立的软件产品和组件集成到了单个软件系统中。这种集成由以下列出的多个系统级功能来保证:

这些功能在本书的后续章节中描述。本节重点介绍集成到 Java ES 中的各个组件。这些 system components(系统组件)可分为三大类,如下图所示。

图 1–2 Java ES 组件类别

Java ES 组件类别及其相互关系的示意图。

这些组件分别提供了如下服务:

有关 Java ES 组件的列表,参见附录 A,Java ES 组件

系统服务组件

有许多 Java ES 组件提供了用于支持分布式软件解决方案的主要服务。这些 system services(系统服务)包括 portal 服务、身份认证和安全服务、Web 容器服务、J2EE 应用程序服务以及持久性服务。

下表按字母顺序列出了提供这些分布式服务的 system service components(系统服务组件)及其提供的服务,并对这些服务做了简要描述。每个系统服务组件都是一个能够支持大量客户机的多线程服务器进程。有关各组件的详细信息,参见系统服务组件

表 1–1 Java ES 系统服务组件

组件 

提供的系统服务 

Sun Java System Access Manager

提供访问管理和数字化身份管理服务。访问管理服务包括对访问应用程序和/或服务进行的验证(包括单点登录)和基于角色的授权。管理服务包括对个人用户帐户、角色、组和策略的集中化管理。

Sun Java System Application Server

为 Enterprise JavaBeansTM (EJB) 组件提供 J2EE 容器服务,如会话 Bean、实体 Bean 和消息驱动 Bean。该容器提供紧耦合分布式组件进行交互所需的基础结构服务,使 Application Server 成为电子商务应用程序和 Web 服务的开发和执行平台。Application Server 还提供 Web 容器服务。

Sun Java System Directory Server

提供一个中心信息库,用于存储和管理 Intranet 和 Internet 信息,如身份配置文件(员工、客户、供应商等)、用户凭证(公共密钥证书、密码和 pin 号)、访问权限、应用程序资源信息以及网络资源信息。 

Java DB [Java ES 5 是第一个将 Java DB 作为产品组件包括进来的发行版本。Java DB 首次是作为共享组件(称为 Derby Database)发行并包括在 Java ES 2005Q4 中的。]

为 Java 应用程序开发提供了一个轻量级数据库。Java DB 是 Sun 支持分发的开放源代码 Apache Derby 数据库,该数据库 100% 采用 Java 技术实现。

Sun Java System Message Queue

在松耦合分布式组件与应用程序之间提供可靠的异步消息传送。Message Queue 实现了 Java 消息服务 (Java Message Service, JMS) API 规范,并增加了安全性、可伸缩性和远程管理等企业功能。

Sun Java System Portal Server

向访问业务应用程序或服务的基于浏览器的客户机提供主要的 portal 服务,如内容聚合和个性化。Portal Server 还提供了可配置的搜索引擎。 

Sun Java System Service Registry

提供了用以支持面向服务的体系结构 (Service-Oriented Architecture, SOA) Web 应用程序的注册表和系统信息库。Service Registry 实现了用于注册和搜索 Web 服务以及用于管理相关信息、事实和工件(如 XML 模式、业务过程规则、访问控制、版本控制等)的行业标准。 

Sun Java System Web Server

为 Java Web 组件(如 Java servlet 和 JavaServer PagesTM (JSPTM) 组件)提供 J2EE Web 容器服务。Web Server 还支持用于传送静态和动态 Web 内容的其他 Web 应用程序技术,如 CGI 脚本和 Sun JavaTM System Active Server Pages。

服务质量组件

表 1–1 中所示的系统服务组件之外,Java ES 还包括许多用于增强系统服务组件所提供的服务质量的组件。服务质量组件还可增强自定义开发的应用程序服务的质量。service quality component(服务质量组件)可分为以下几类:

可用性组件

可用性组件用于为系统服务组件和自定义应用程序服务提供近乎连续的运行时间。Java ES 中包括的可用性组件及其提供的服务如下表所示。有关各组件的详细信息,参见可用性组件

表 1–2 Java ES 可用性组件

组件 

提供的可用性服务 

High Availability Session Store

提供数据存储库,使应用程序数据(特别是会话状态数据)甚至在出现故障时仍然可用。 

Sun Cluster

为 Java ES、运行于 Java ES 基础结构之上的应用程序以及部署这两者的硬件环境提供高可用性和可伸缩性服务。 

Sun Cluster Geographic Edition [Java ES 5 是第一个将 Sun Cluster Geographic Edition 作为 Java ES 产品组件包括进来的发行版本。]

通过使用位于不同地理位置的多个群集以及在这些群集之间复制数据的冗余基础结构来保护应用程序,使其免于意外中断。Sun Cluster Geographic Edition 软件是 Sun Cluster 软件的分层扩展。 

访问组件

访问组件为系统服务提供前端访问,通常是从企业防火墙外部的 Internet 位置进行的安全访问。除了提供这种访问之外,许多访问组件还提供路由选择和缓存功能。Java ES 中包括的访问组件及其提供的服务如下表所示。有关各组件的详细信息,参见访问组件

表 1–3 Java ES 访问组件

组件 

提供的访问服务 

Sun Java System Portal Server(包括 Secure Remote Access)

提供从公司防火墙外部对 Portal Server 内容和服务(包括内部 portal)的安全的 Internet 访问。 

Sun Java System Web Proxy Server

为传出和传入的 Internet 请求提供 Web 内容的缓存、过滤和分发。 

监视组件

Java ES 包括一种监视功能,可提供实时系统状态和可自定义的监视作业。监视功能由 Sun Java System Monitoring Console product component(产品组件)来实现,该产品组件由 Sun Java System Monitoring Framework shared component(共享组件)提供支持。有关更多信息,参见监视组件

共享组件

Java ES 包括多个本地安装的共享库,许多系统服务组件和服务质量组件都依赖于这些共享库。Java ES shared components(共享组件)为在同一主机上运行的 Java ES product components(产品组件)提供本地服务。

通常使用共享组件来提供不同操作系统之间的可移植性。Java ES 共享组件的示例有:Java 2 Platform, Standard Edition (J2SE)、Netscape Portable Runtime (NSPR)、Network Security Services (NSS)、Java Security Services for Java (JSS),等等。有关完整列表,参见共享组件

Java ES 安装程序会根据要安装的系统服务组件和服务质量组件自动安装共享组件。

Sun Java 套件中的组件

Java ES 有两种分发形式,一种是作为单一的端到端基础结构软件,另一种是作为针对关键业务需求的单独套件。Java ES 包括所有 Java ES 组件,而 Sun Java System 套件包括其中的一部分组件,选择这些组件以满足特定业务需求。Java ES 安装程序和卸载程序随所有套件一起分发,但其中有一些删减,以便仅处理相应套件中的组件。所有共享组件也随所有套件一起分发。

各个套件的内容及每个套件要满足的业务需求如下表所示。

表 1–4 Sun Java 套件中的组件

套件 

业务需求 

内容 

Sun Java Application Platform Suite

开发、部署及管理下一代面向服务的体系结构 (Service-Oriented Architectures, SOA) 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Portal Server(包括 Secure Remote Access 和 Mobile Access) 

Service Registry 

Web Proxy Server 

Web Server 

Sun Java Availability Suite

为关键业务应用程序提供灾难恢复和高可用性 

Sun Cluster 软件 

Sun Cluster 代理 

Sun Cluster Geographic Edition 

Sun Java Communications Suite [带有星号 (*) 的组件是不再随 Java ES 一起提供或不再通过 Java ES 安装程序进行安装的通信组件。它们作为 Sun Java Communications Suite 的一部分提供。]

安全可靠的消息传送和协作服务 

Access Manager 

Application Server 

Calendar Server* 

Communications Express* 

Delegated Administrator* 

Directory Server 

HADB 

Instant Messaging* 

Java DB 

Message Queue 

Messaging Server* 

Monitoring Console 

Web Proxy Server 

Web Server 

Sun Java Identity Management Suite

在计算基础结构和应用程序环境中进行用户身份认证管理 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Web Server 

Sun Java Web Infrastructure Suite

为中小型企业提供 Web 应用程序和服务 

Access Manager 

Application Server 

Directory Server 

HADB 

Java DB 

Message Queue 

Monitoring Console 

Service Registry 

Web Proxy Server 

Web Server 

使用 Java ES

基于 Java ES 软件创建业务解决方案涉及大量的标准任务。这些任务的范围和难度取决于您采用 Java ES 的出发点以及您要创建和部署的解决方案的性质。

本节讨论使用 Java ES 的两个方面:Java ES 解决方案生命周期和通常涉及的应用情况。

Java ES 解决方案生命周期

基于 Java ES 软件创建业务解决方案所涉及的任务可分为几个阶段,如下图所示。该图还显示了通常执行各项任务的 Java ES 用户类别。

图 1–3 解决方案生命周期各阶段和用户类别

生命周期各阶段以及执行各阶段相关任务的 Java ES 用户类别的示意图。

上图中显示的生命周期阶段一般可分为以下几组:

图 1–3 中所示各生命周期阶段的任务在第 4 章,Java ES 解决方案生命周期中进行了更为详细的论述。

图 1–3 显示了通常执行生命周期各阶段所示任务的 Java ES 用户。下表描述各类用户的技能和背景。

表 1–5 执行生命周期任务的 Java ES 用户类别

用户 

技能和背景 

阶段 

业务规划员

系统分析师 

一般水平,无需很深的技术知识 

懂得企业的战略方向 

了解业务过程、目标和要求。 

业务分析 

技术要求 

逻辑设计 

结构设计师

很高的技术要求。 

具有广博的部署体系结构知识。 

熟悉最新技术。 

懂得业务需求和约束。 

技术要求 

逻辑设计 

部署设计 

系统集成员

现场工程师 

系统管理员 

系统管理员 

很高的技术要求。 

非常熟悉信息技术环境。 

有实现分布式软件解决方案方面的经验。 

了解网络体系结构、协议、设备和安全。 

了解脚本编写及编程语言。 

部署设计 

部署实现 

专业系统管理员

委托管理员 

支持工程师 

具备专门的技术或产品知识 

熟悉硬件、平台、目录和数据库。 

擅长监视、故障排除和软件升级。 

了解操作系统平台的系统管理。 

操作 

Java ES 应用情况

引起采用 Java ES 的业务需求大不相同。但几乎每个 Java ES 部署的高级目标都符合以下 adoption scenario(应用情况)之一:

每种应用情况都有其自身的注意事项和挑战。根据应用情况的不同,在图 1–3 中所示的生命周期各阶段需要解决的问题以及需要投入的资源也可能会有所不同。

应用情况在不同程度上一般都有以下注意事项:

下表概述了适用于各种 Java ES 应用情况的问题性质。

表 1–6 Java ES 应用情况问题

应用情况 

移植 

集成 

培训 

硬件 

新系统 

不是问题 

很容易集成新组件 

可能是重大问题 

设备成本和人工成本之间的权衡 [只使用几台功能强大的计算机一般会增加设备成本,但需要的 IT 资源较少。使用许多小计算机一般会减少设备成本,但需要更多的 IT 资源。]

增强 

可能是主要问题 

需要集成新组件和现有系统 

可能是重大问题 

可能因现有设备而导致重大的约束 

扩展 

通常不是问题 

可能需要集成新组件和现有系统 

可能是重大问题 

与新系统一样,一般也要求对新硬件进行同样的取舍 

升级 

可能是重大问题 

很容易集成升级的组件 

很小的问题 

很小的问题 

本章的主要术语

本节介绍本章使用的主要技术术语,重点阐述这些术语如何在 Java ES 上下文中使用。

adoption scenario(应用情况)

部署 Java ES 软件的总体原因,需描述您开始使用的软件系统以及试图达到的目标。有四种基本的 Java ES 应用情况:新系统、增强、扩展和升级。

component(组件)

一个软件逻辑单元,分布式应用程序即基于其建立。组件可以是 Java ES 中的一个 system components(系统组件),也可以是自定义开发的 application component(应用程序组件)。应用程序组件通常符合分布式组件模型(如 CORBA 或 J2EETM 平台)并执行某种特定的计算功能。这些组件单独或联合提供 business service(业务服务),并可封装成 web service(Web 服务)

distributed enterprise application(分布式企业应用程序)

一种应用程序,其逻辑遍布于整个网络或 Internet 环境(分布式方面),其范围和规模满足了生产环境或服务提供商的需要(企业方面)。

end user(最终用户)

常常通过图形用户界面(如 Internet 浏览器或移动设备 GUI)使用分布式应用程序的人员。应用程序同时支持的最终用户数是决定应用程序 deployment architecture(部署体系结构)的一个重要因素。

service(服务)

为一个或多个 clients(客户机)执行的一种软件功能。此功能可能是极低层级的服务,如内存管理服务,也可能是高层级服务,如信用检查 business service(业务服务)。高级服务可以由一族单项服务组成。服务可以是本地的(供本地客户机使用),也可以是分布式的(供远程客户机使用)。

product component(产品组件)

Java ES system service components(系统服务组件)和 Java ES service quality components(服务质量组件),前者提供主要的 Java ES 基础结构服务,后者用于增强这些系统服务。产品组件在 Java ES 安装程序中是可选的。

service quality component(服务质量组件)

Java ES 中包含的一种 system component(系统组件)。这些组件可增强系统服务组件和分布式应用程序组件的可用性、安全性、可伸缩性、可维护性及其他质量。

shared component(共享组件)

Java ES 中包含的一种 system component(系统组件)。共享组件(通常是程序库)为其他系统组件提供本地服务。

system component(系统组件)

Java ES 中包括的且由 Java ES 安装程序安装的任何一个软件包或任何一组软件包。有多种系统组件:用于提供 Java ES 基础结构服务的 product components(产品组件)以及用于为其他系统组件提供本地服务的 shared components(共享组件)

system service(系统服务)

一项或多项分布式 services(服务),它们定义了 Java ES 所提供的独特功能。系统服务通常需要多个 service quality components(服务质量组件)和/或多个 shared components(共享组件)的支持。

system service component(系统服务组件)

Java ES 中包含的一种 system component(系统组件)。系统服务组件提供主要的 Java ES 基础结构服务:portal 服务、身份认证和安全服务、Web 和应用程序服务及可用性服务。