Sun Java Enterprise System 2005Q4 技术概述

第 1 章 Java Enterprise System 简介

Sun JavaTM Enterprise System (Java ES) 是一组软件组件,为支持分布于网络或 Internet 环境中的企业级应用程序提供所需的服务。本书将这些应用程序称为分布式企业应用程序。

Java Enterprise System 还体现了 Sun 软件发行和交付方法以及商业和定价策略。不过,本书关注的是 Java Enterprise System 的软件组件及其提供的服务。

本章介绍 Java Enterprise System 以及使用该系统时所涉及的任务。其中涵盖了以下主题:

为什么需要 Java Enterprise System?

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

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

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

下图显示了总体分层方案。图 1–1 所示的分布式基础结构服务层中的大部分服务都是由 Java Enterprise System 提供的。另外,Java Enterprise System 服务还包括许多应用程序级服务,如可供最终用户访问的服务。

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

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

以下是 Java Enterprise System 提供的功能服务中的一部分:

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

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

Java Enterprise System 组件

Java Enterprise System 将独立的软件产品和组件集成到了单个软件系统中。此系统的组件已一起进行过测试,以确保互操作性。它们的集成由以下几个系统级特性保证:

这些特性在本书的后续章节中描述。本节着重于介绍集成到 Java Enterprise System 中的各个组件。这些 system component(系统组件)可分为三大类,如下图所示:

图 1–2 Java ES 组件类别

Java ES 组件类别及其相互关系图

系统服务组件

许多 Java ES 组件都提供可支持分布式软件解决方案的主要服务。这些 system service(系统服务)包括门户服务、通信和协作服务、身份认证和安全服务、Web 容器服务以及 J2EE 应用程序服务。

下表简要描述了提供这些分布式服务的 system service component(系统服务组件)及其提供的服务。每个系统服务组件都是一个能够支持大量客户机的多线程服务器进程。有关任一组件的详细信息,参见系统服务组件说明

表 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 Calendar Server

为最终用户和最终用户组提供日历和调度服务。Calendar Server 包括一个基于浏览器的客户机,用于同服务器进行交互。 

Sun Java System Directory Server

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

Sun Java System Instant Messaging

在最终用户间提供安全、实时的通信,如即时消息传送(聊天)、会议、警报、新闻、民意测验和文件传输。该服务包括一个在线状况管理器,可告知用户何人目前在线;还包括一个基于浏览器的客户机,可与服务器进行交互。 

Sun Java System Message Queue

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

Sun Java System Messaging Server

提供安全、可靠的大容量消息存储和转发服务,该服务支持电子邮件、传真、寻呼、语音和视频。Messaging Server 可同时访问多个消息存储器,并提供了内容过滤功能来帮助抵制垃圾电子邮件及防止病毒攻击。 

Sun Java System Portal Server

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

Sun Java System Web Server

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

Sun Java System Service Registry 

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

服务质量组件

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

可用性组件

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

表 1–2 Java ES 可用性组件

组件 

提供的可用性服务 

Sun Cluster

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

High Availability Session Store

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

访问组件

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

表 1–3 Java ES 访问组件

组件 

提供的访问服务 

Sun Java System Directory Proxy Server

从公司防火墙外部为 Directory Server 提供各种安全服务。Directory Proxy Server 为多个 Directory Server 实例提供目录访问控制和路由功能。 

Sun Java System Web Proxy Server 

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

Sun Java System Communications Express 

根据配置,为 Messaging Server、Calendar Server 和 Directory Server 提供基于 Web 的访问。 

Sun Java System Portal Server Secure Remote Access

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

 

Sun Java System Connector for Microsoft Outlook

为使用 Microsoft Outlook 的桌面客户机提供连接 Messaging Server 和 Calendar Server 的接口。 

管理组件

管理组件为系统服务提供管理功能,例如配置和监视。Java Enterprise System 中包括的管理组件及其提供的服务如下表所示。有关任一组件的详细信息,参见管理组件说明

表 1–4 Java ES 管理组件

组件 

提供的管理服务 

Sun Java System Administration Server(及 Console)

提供让您配置和管理 Directory Server 和 Messaging Server 的图形管理工具。 

Sun Java System Directory Preparation Tool

提供脚本,用来以置备 Messaging Server 和 Calendar Server 用户所需的模式配置 Directory Server。 

Sun Java System Delegated Administrator

提供命令行和 GUI 工具,用 Messaging Server 和 Calendar Server 所需的用户属性填充 Directory Server 中的用户条目。 

共享组件

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

通常使用共享组件来提供不同操作系统之间的可移植性。Java Enterprise System 共享组件的示例有:Java 2 Platform, Standard Edition(J2SETM 平台)、Netscape 可移植运行时环境 (Netscape Portable Runtime, NSPR)、网络安全服务 (Network Security Services, NSS)、面向 Java 的网络安全服务 (Network Security Services for Java, JSS) 等。有关完整列表,参见共享组件

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

使用 Java Enterprise System

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

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

Java Enterprise System 解决方案生命周期

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

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

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

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

图 1–3 中所示的解决方案生命周期及每个阶段的任务在第 4 章,Java Enterprise System 解决方案生命周期任务中有更为完整的论述。

图 1–3 显示通常为生命周期各阶段执行所示任务的 Java ES 用户。如果您正在使用 Java ES,则您的工作应与图 1–3 中所示的一个或多个用户类别相吻合。下表描述各类用户的技能和背景。

表 1–5 与生命周期任务相对应的 Java ES 用户类别

用户 

技能和背景 

阶段 

业务规划员

系统分析师 

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

懂得企业的战略方向。 

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

业务分析 

技术要求 

逻辑设计 

结构设计师

很高的技术要求。 

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

熟悉最新技术。 

懂得业务需求和约束。 

逻辑设计 

部署设计 

系统集成员

现场工程师 

系统管理员 

系统经理 

很高的技术要求。 

非常熟悉信息技术环境。 

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

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

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

部署设计 

部署实现 

专业系统管理员

委托管理员 

支持工程师 

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

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

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

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

操作 

Java Enterprise System 应用情况

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

每个应用情况都有自己的问题和挑战。无论适合您的是哪个应用情况,图 1–3 中显示的解决方案生命周期过程都会适用。但是,根据您采用 Java Enterprise System 的具体情况,在生命周期各阶段需要解决的问题和需要投入的资源可能不同。

应用情况在不同程度上一般都有以下问题:

下面是适用于 Java ES 各种应用情况的问题性质摘要表。

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

应用情况 

迁移 

集成 

培训 

硬件 

新系统 

不是问题 

很容易集成新组件 

通常是重大问题 

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

增强 

可能是主要问题 

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

可能是重大问题 

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

扩展 

通常不是问题 

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

可能是重大问题 

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

升级 

可能是重大问题 

很容易集成升级的组件 

很小的问题 

很小的问题 

本章的主要术语

本节说明本章使用的主要技术术语,主要是阐述这些术语之间的关系以及它们在 Java Enterprise System 上下文中是如何使用的。

adoption scenario(应用情况)

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

component(组件)

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

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

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

end user(最终用户)

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

service(服务)

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

service quality component(服务质量组件)

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

shared component(共享组件)

Java Enterprise System 包括的多种 system component(系统组件)之一。共享组件(通常是程序库)为其他系统组件提供本地服务。相反,system service component(系统服务组件)为其他系统组件(或 application component(应用程序组件))提供分布式基础结构服务。

system component(系统组件)

Java Enterprise System 中包括的且由 Java Enterprise System 安装程序安装的任何软件包或任何一组软件包。有多种系统组件:提供分布式基础结构 service(服务)system service component(系统服务组件)、通过提供访问和管理服务来支持系统服务组件的 service quality component(服务质量组件)以及为其他系统组件提供本地服务的 shared component(共享组件)

system service(系统服务)

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

system service component(系统服务组件)

Java Enterprise System 包括的多种 system component(系统组件)之一。系统服务组件提供主要的 Java Enterprise System 基础结构服务:门户服务、通信和协作服务、身份认证和安全服务、Web 和应用程序服务以及可用性服务。