Sun JavaTM Enterprise System (Java ES) 是一组软件组件,为支持分布于网络或 Internet 环境中的企业级应用程序提供所需的服务。本书将这些应用程序称为分布式企业应用程序。
Java Enterprise System 还体现了 Sun 软件发行和交付方法以及商业和定价策略。不过,本书关注的是 Java Enterprise System 的软件组件及其提供的服务。
本章介绍 Java Enterprise System 以及使用该系统时所涉及的任务。其中涵盖了以下主题:
当今的业务需求对软件解决方案提出了如下要求:可分布于网络或 Internet 环境且在性能、可用性、安全性、可伸缩性和可维护性方面具备较高的水平。
Java Enterprise System 提供了支持此类 distributed enterprise application(分布式企业应用程序)所需的基础结构服务,这些应用程序通常具有以下特征:
分布式。应用程序由部署于联网环境中的交互式软件 component(组件)组成,该环境中可能包括地理位置上的远程站点。这些分布式组件运行在环境中的各台计算机上,共同协作,为 end user(最终用户)及其他业务应用程序提供特定的业务功能。
企业级。应用程序的范围和规模满足生产环境或 Internet 服务提供商的需要。这种应用程序通常遍布于整个企业,将多个部门、操作和过程集成到单个软件系统中。在性能、可用性、安全性、可伸缩性以及可维护性方面,这种应用程序必须满足高服务质量要求。
分布式企业应用程序需要一组底层基础结构 service(服务),以便使分布式组件能够彼此进行通信、协调各自的工作、实现安全访问,等等。这些基础结构服务反过来还要得到计算机和网络链路所属硬件环境的支持。此硬件环境包括 SPARC® 和 x86(Intel 和 AMD)硬件体系结构。
下图显示了总体分层方案。图 1–1 所示的分布式基础结构服务层中的大部分服务都是由 Java Enterprise System 提供的。另外,Java Enterprise System 服务还包括许多应用程序级服务,如可供最终用户访问的服务。
以下是 Java Enterprise System 提供的功能服务中的一部分:
门户服务。这些服务使员工、远程办公人员、知识工作者、业务伙伴、供应商和客户能够在公司网络内外的任何地方访问公司资源。它们带给用户团体随时随地的访问能力,提供个性化的集成、聚合、安全性、移动访问和搜索功能。
通信和协作服务。利用这些服务,可以在多样用户团体间安全地进行信息交换。具体功能包括用户业务环境中的消息传送、实时协作(如即时消息传送和会议)以及日程安排。
网络身份认证和安全服务。这些服务可确保在全局基础上对所有团体、应用程序和服务强制实施适当的访问控制策略,从而增强对公司主要信息资产的安全保护。这些服务使用信息库来存储和管理身份配置文件、访问权限以及应用程序和网络资源信息。
Web 容器和应用程序服务。这些服务使分布式组件在运行时可以互相通信,并为众多服务器、客户机和设备应用程序的开发、部署和管理提供支持。这些服务均基于 Java 2 Platform, Enterprise Edition (J2EETM) 技术。
Java Enterprise System 还提供了可以增强可用性、可伸缩性、可维护性及其他应用程序质量或系统质量的服务。以下是 Java Enterprise System 提供的服务质量功能的一部分:
您可以部署一项或多项 Java Enterprise System 服务,其中每项服务都可能包括多个 Java Enterprise System 组件。
Java Enterprise System 将独立的软件产品和组件集成到了单个软件系统中。此系统的组件已一起进行过测试,以确保互操作性。它们的集成由以下几个系统级特性保证:
这些特性在本书的后续章节中描述。本节着重于介绍集成到 Java Enterprise System 中的各个组件。这些 system component(系统组件)可分为三大类,如下图所示:
系统服务组件。这些组件提供支持分布式企业应用程序的主要 Java Enterprise System 基础结构服务。
服务质量组件。这些组件可增强系统服务组件和分布式应用程序组件的可用性、安全性、可伸缩性、可维护性及其他质量。
共享组件。这些组件提供可以运行多个系统服务组件和服务质量组件的环境。
许多 Java ES 组件都提供可支持分布式软件解决方案的主要服务。这些 system service(系统服务)包括门户服务、通信和协作服务、身份认证和安全服务、Web 容器服务以及 J2EE 应用程序服务。
下表简要描述了提供这些分布式服务的 system service component(系统服务组件)及其提供的服务。每个系统服务组件都是一个能够支持大量客户机的多线程服务器进程。有关任一组件的详细信息,参见系统服务组件说明
表 1–1 Java ES 系统服务组件
除表 1–1 中所示的系统服务组件之外,Java Enterprise System 还包括许多用于增强系统服务组件所提供的服务质量的组件。服务质量组件还可增强定制开发的应用程序服务的质量。service quality component(服务质量组件)可分为以下几类:
可用性组件
访问组件
管理组件
可用性组件为系统服务组件和自定义应用程序服务提供近乎连续的正常运行时间。Java Enterprise System 中包括的可用性组件及其提供的服务如下表所示。有关任一组件的详细信息,参见可用性组件说明。
表 1–2 Java ES 可用性组件
组件 |
提供的可用性服务 |
---|---|
为 Java Enterprise System、运行于 Java Enterprise System 基础结构之上的应用程序以及部署这两者的硬件环境提供高可用性和可伸缩性服务。 |
|
提供数据存储器,使应用程序数据(特别是会话状态数据)甚至在出现故障时仍然可用。 |
访问组件为系统服务提供前端访问,通常是从企业防火墙外部的 Internet 位置进行的安全访问。除了提供这种访问之外,许多访问组件还提供路由功能。Java Enterprise System 中包括的访问组件及其提供的服务如下表所示。有关任一组件的详细信息,参见访问组件说明。
表 1–3 Java ES 访问组件
组件 |
提供的访问服务 |
---|---|
从公司防火墙外部为 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 的访问。 |
提供从公司防火墙外部对 Portal Server 内容和服务(包括内部门户)的安全的 Internet 访问。 |
|
|
|
为使用 Microsoft Outlook 的桌面客户机提供连接 Messaging Server 和 Calendar Server 的接口。 |
管理组件为系统服务提供管理功能,例如配置和监视。Java Enterprise System 中包括的管理组件及其提供的服务如下表所示。有关任一组件的详细信息,参见管理组件说明。
表 1–4 Java ES 管理组件
组件 |
提供的管理服务 |
---|---|
提供让您配置和管理 Directory Server 和 Messaging Server 的图形管理工具。 |
|
提供脚本,用来以置备 Messaging Server 和 Calendar Server 用户所需的模式配置 Directory Server。 |
|
提供命令行和 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 ES 软件创建业务解决方案所涉及的任务可分为几个阶段,如图 1–3 中所示。该图还显示了通常执行各项任务的 Java Enterprise System 用户的类别。
图 1–3 中显示的生命周期阶段一般可分为以下几组:
图 1–3 中所示的解决方案生命周期及每个阶段的任务在第 4 章,Java Enterprise System 解决方案生命周期任务中有更为完整的论述。
图 1–3 显示通常为生命周期各阶段执行所示任务的 Java ES 用户。如果您正在使用 Java ES,则您的工作应与图 1–3 中所示的一个或多个用户类别相吻合。下表描述各类用户的技能和背景。
表 1–5 与生命周期任务相对应的 Java ES 用户类别
用户 |
技能和背景 |
阶段 |
---|---|---|
系统分析师 |
一般水平,无需很深的技术知识。 懂得企业的战略方向。 了解业务过程、目标和要求。 |
业务分析 技术要求 逻辑设计 |
很高的技术要求。 具有广博的部署体系结构知识。 熟悉最新技术。 懂得业务需求和约束。 |
逻辑设计 部署设计 |
|
现场工程师 系统管理员 系统经理 |
很高的技术要求。 非常熟悉信息技术环境。 有实现分布式软件解决方案方面的经验。 了解网络体系结构、协议、设备和安全。 了解脚本编写及编程语言。 |
部署设计 部署实现 |
委托管理员 支持工程师 |
具备专业的技术或产品知识 熟悉硬件、平台、目录和数据库。 擅长监视、故障排除和软件升级。 了解操作系统平台的系统管理。 |
操作 |
需要采用 Java ES 的业务需求大不相同,但几乎每个 Java ES 部署的高级目标都符合以下 adoption scenario(应用情况)之一:
增强。以现有的信息技术 (information technology, IT) 基础结构为基础,用 Java ES 软件替换该系统的一个、多个或所有部件。通常替换系统或子系统是因为它们太复杂、太有局限性或维护费用太高。例如,您可能需要更好的安全性、更高的可用性、更大的可伸缩性、更大的灵活性、更小的复杂性、其他功能(如单点登录)或更好地利用 IT 资源。换言之,您希望获得比现有系统更多的投资回报。
扩展。以现有的 IT 基础结构为基础,部署目前系统中没有的 Java Enterprise System 软件。通常以此方法扩展软件系统是因为需要满足新的业务需求。您可能需要新的功能,如通过 Java ES 门户个性化聚合现有服务,或对现有服务进行 Java 验证和授权。
升级。以包含 Java Enterprise System 早期版本或早于 Java Enterprise System 的 Sun 产品的 IT 基础结构为基础,升级至 Java Enterprise System 组件的最新版本。
每个应用情况都有自己的问题和挑战。无论适合您的是哪个应用情况,图 1–3 中显示的解决方案生命周期过程都会适用。但是,根据您采用 Java Enterprise System 的具体情况,在生命周期各阶段需要解决的问题和需要投入的资源可能不同。
应用情况在不同程度上一般都有以下问题:
迁移。使用新软件增强或升级现有基础结构通常需要将数据从现有系统迁移到新系统。这些数据可能是配置信息、用户信息或应用程序信息。由于采用了新的编程接口,您可能还需要移植业务或表示逻辑。
集成。添加新软件到现有系统或替换软件子系统通常需要集成新软件组件和其余的子系统。集成可能涉及开发新接口层、使用 J2EE 连接器或资源适配器、重新配置现有组件以及实现数据转换模式。
培训。基础结构中的所有改变几乎都意味着要改变 IT 过程和技能集。IT 部门必须有充足的时间来学习新技能或转换旧技能,以支持 Java Enterprise System 技术。
硬件。在替换或增强现有系统或子系统时,业务约束可能要求您重新使用现有硬件。根据您的应用情况,硬件资源可能会变成重要的因素。
下面是适用于 Java ES 各种应用情况的问题性质摘要表。
表 1–6 Java ES 应用情况问题
本节说明本章使用的主要技术术语,主要是阐述这些术语之间的关系以及它们在 Java Enterprise System 上下文中是如何使用的。
部署 Java Enterprise System 软件的总体原因,描述您开始使用的软件系统以及试图达到的目标。一共有四种基本的 Java Enterprise System 应用情况:新系统、增强、扩展和升级。
一个软件逻辑单元,分布式应用程序就是由它建立出来的。组件可以是 Java Enterprise System 中所含的其中一个 system component(系统组件),也可以是定制开发的 application component(应用程序组件)。应用程序组件通常符合分布式组件模型(如 CORBA 或 J2EETM 平台)并执行某种特定的计算功能。这些组件单独或联合提供 business service(业务服务),并可封装成 web service(Web 服务)。
一种应用程序,其逻辑遍布于整个网络或 Internet 环境(分布式方面),并且其范围和规模满足了生产环境或服务提供商的需要(企业方面)。
常常通过图形用户界面(如 Internet 浏览器或移动设备 GUI)使用分布式应用程序的人员。应用程序同时支持的最终用户数是决定应用程序的 deployment architecture(部署体系结构)的一个重要因素。
为一个或多个 client(客户机)执行的一种软件功能。此功能可能是非常低层级的,如内存管理,也可能是高级的,如信用核查 business service(业务服务)。高级服务可以由一族单项服务组成。服务可以是本地的(供本地客户机使用),也可以是分布式的(供远程客户机使用)。
Java Enterprise System 包括的多种 system component(系统组件)之一。这些组件可增强系统服务组件和分布式应用程序组件的可用性、安全性、可伸缩性、可维护性及其他质量。
Java Enterprise System 包括的多种 system component(系统组件)之一。共享组件(通常是程序库)为其他系统组件提供本地服务。相反,system service component(系统服务组件)为其他系统组件(或 application component(应用程序组件))提供分布式基础结构服务。
Java Enterprise System 中包括的且由 Java Enterprise System 安装程序安装的任何软件包或任何一组软件包。有多种系统组件:提供分布式基础结构 service(服务)的 system service component(系统服务组件)、通过提供访问和管理服务来支持系统服务组件的 service quality component(服务质量组件)以及为其他系统组件提供本地服务的 shared component(共享组件)。
一项或多项分布式 service(服务),它们定义了 Java Enterprise System 所提供的独特功能。系统服务通常需要多个 service quality component(服务质量组件)和/或多个 shared component(共享组件)的支持。
Java Enterprise System 包括的多种 system component(系统组件)之一。系统服务组件提供主要的 Java Enterprise System 基础结构服务:门户服务、通信和协作服务、身份认证和安全服务、Web 和应用程序服务以及可用性服务。