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