Sun Java Enterprise System 2005Q4 技术概述

第 4 章 Java Enterprise System 解决方案生命周期任务

本章讨论 Java ES 解决方案生命周期各阶段的相关概念和术语。重点介绍部署任务,特别是部署设计和部署实现任务。

本章的组织结构以生命周期的三个阶段为依据:

解决方案生命周期任务

第 1 章,Java Enterprise System 简介 中已介绍过解决方案生命周期,将其作为使用 Java ES 软件实现业务解决方案的一种标准方法。本章介绍生命周期各个阶段涉及的任务。图 4–1 中会再次显示生命周期示意图,便于您进行参考。

图 4–1 解决方案生命周期任务

此示意图显示解决方案生命周期的各阶段以及各阶段包含的多项任务,本章的后续各节会为您一一进行介绍。

部署前

在生命周期的 predeployment(部署前)阶段,将业务需要的分析转换成 deployment scenario(部署方案)。该部署方案起到了部署设计说明书的作用。

部署前任务可分为三个阶段,如图 4–1 所示:

逻辑体系结构与性能、可用性、安全性及其他服务质量要求一起封装在部署方案中,如下图所示。有关生命周期部署前阶段的更多信息,参见《Sun Java Enterprise System 2005Q4 部署规划指南》

图 4–2 指定部署方案

此示意图显示业务需求如何通过使用案例和用量分析转换成部署方案。

部署

在生命周期的 deployment(部署)阶段,将部署方案转换成部署设计,之后进行实现、测试,然后在生产环境中铺开。

部署过程通常包括所有层及所有基础结构服务级别中为支持某个软件解决方案所需的软件组件。一般来说,必须部署定制开发的应用程序组件(J2EE 组件、Web 服务或其他服务器)和支持解决方案所需的 Java ES 组件

部署任务可分为两个阶段,如图 4–1 所示:

部署设计

在部署设计阶段,先要创建一个高层次部署体系结构,接着再创建低层次的实现规范。

部署体系结构

部署体系结构是通过将应用程序(逻辑体系结构)的逻辑构件映射到物理计算环境来创建的,以此来满足部署方案中指定的服务质量要求。

部署方案会转换成部署体系结构,如下图所示。

图 4–3 将部署方案转换成部署体系结构

此示意图显示部署方案如何转换为部署体系结构。

此体系结构设计的一个方面是确定物理环境的规模(确定计算机数量并估计处理能力和 RAM 要求),以满足性能、可用性、安全性及其他服务质量要求。完成规模确定后,将 Java ES 组件和应用程序组件映射到物理环境中的各台计算机上。为得到最终的部署体系结构,必须考虑不同计算机的能力、系统基础结构服务的特点以及在总拥有成本或总可用成本方面的限制。

部署方案中的 Java ES 组件越多,对服务质量需求的要求就越苛刻,同时也更加要求您的设计要建立在高效能计算机和高网络带宽之上。在硬件或经费有限的情况下,您可能不得不在固定成本(硬件)与可变成本(人力资源要求)之间或是在不同的服务质量要求之间进行折衷,否则,您可能必须增加设计的复杂度。

部署体系结构的设计常常是在不断反复的过程中推进的。不过,Java Enterprise System 正在开发一组 reference deployment architecture(参考部署体系结构),可将之作为部署设计的起点。

参考体系结构建立在特定部署方案基础之上,即:具有特定服务质量要求的逻辑体系结构。在参考体系结构中,软件解决方案以满足指定服务质量要求的方式部署在特定的物理环境中。指定负载的性能测试要基于部署方案出自的同一组使用案例来进行。参考体系结构文档以保密方式提供给 Java ES 客户。

基于参考部署体系结构或参考体系结构组合,您可以设计出第一个近似满足自己部署方案要求的部署体系结构。可以对参考体系结构进行调整,或是将其用作参考点,考虑自己的部署方案与基于参考体系结构的部署方案之间的不同之处。这样便可评定自己的规模确定、性能、安全性、可用性、容量以及可维护性需要所产生的影响。

实现规范

实现规范提供实现某个部署体系结构所需的详细信息,一般包括以下信息:

实现计划

实现计划描述您打算如何执行部署实现阶段的各项任务。计划一般包括以下任务:

部署实现

部署设计的实现包括上一节列出的任务以及图 4–1 所示的任务。这些任务的顺序并不是一成不变的,因为部署过程天生具有反复性。下面各小节将按通常的执行顺序分别讨论各个主要的部署实现任务。有关这些任务的详细文档,参见《Sun Java Enterprise System 2005Q4 文档汇总信息》以了解详细信息。

硬件设置

实现规范包括物理环境的所有详细信息:计算机、网络设计、网络硬件(包括电缆、交换机、路由器以及负载平衡器)、存储设备,等等。所有这些硬件都要设置为支持 Java ES 解决方案的平台。

软件安装、升级和迁移

部署体系结构以及实现规范中提供的其他详细信息为您指出要驻留在物理环境中各计算机上的应用程序组件和 Java ES 组件。可以使用 Java ES 集成安装程序在部署体系结构的每台计算机上安装适当的 Java ES 组件(参见Java Enterprise System 集成的安装程序)。

安装计划应描述安装程序会话的顺序和范围。但是,执行安装的方法可能取决于您是要安装新的 Java Enterprise System,升级以前安装的 Java ES 组件,还是要用 Java Enterprise System 替换第三方组件。后两种 Java ES 应用情况通常需要迁移数据或应用程序代码以实现兼容。

系统配置和定制

您必须完成多项系统配置任务,才能使各种系统组件成为一个集成的系统。首先要进行初始配置,使各系统组件可以启动。接着必须配置每个 Java ES 组件,使它们能与交互组件通信。

高可用性也必须进行配置,具体取决于每个组件的可用性解决方案。还需要置备用户,使他们可以访问各种服务,并且需要设置验证和授权策略与控制(参见集成的身份认证和安全服务)。

在大多数情况下,配置任务还包括某种程度的 Java ES 组件定制,以获得所需的特定功能集。例如,您通常需要定制 Portal Server 以提供门户频道、定制 Access Manager 以执行授权任务、定制 Messaging Server 以使用病毒检查和反垃圾邮件过滤功能。

部署和集成

在部署方案中指定的逻辑体系结构通常决定了实现解决方案所需的定制 development(开发)工作的范围。

对于某些部署,开发工作可能相当繁重,需要您使用在 Application Server 或 Web Server 环境中运行的 J2EE 组件从头开发新的业务和表示服务。此时,需要在着手投入全力进行开发前,先为解决方案设计原型并执行概念论证测试。

对于需要大量开发工作的解决方案,Sun Java Studio 提供了编写分布式组件或业务服务程序的工具。Sun Java Studio 可以简化 Java ES 基础结构所支持的应用程序的编程与测试工作。

在某些情况下,Java ES 组件可能会与原有应用程序或第三方服务集成。这些集成可能涉及数据层中的现有目录或数据服务,或是业务服务层中的现有组件。将 Java ES 组件与这些系统集成可能需要迁移数据或应用程序代码。

J2EE 平台提供连接器框架,可通过开发 J2EE 资源适配器将现有应用程序插入 Application Server 环境;Message Queue 提供功能强大的异步消息传送功能,以集成不同的应用程序。

原型和试验性部署的测试

根据需要的定制或开发工作量,有时您需要检验部署体系结构;需要根据使用案例测试解决方案以检验您能否满足服务质量要求。

如果定制开发的服务相对很少(几乎都是开盒即用部署),则您的解决方案可能只需定制 Java ES 组件并对系统进行试验性测试。

但是,如果您开发了重要的新应用程序逻辑并创建了定制服务,则此项测试工作可能会变得更加繁重,会涉及到原型测试、集成测试等。

如果此测试暴露出了您部署体系结构中的不足,您需要对体系结构进行修改,然后再次测试。通过这种不断反复的过程,您最终会得到一个可以随时在生产环境中进行部署的部署体系结构和实现。

生产铺开

生产铺开包括在生产环境中搭建部署实现。这个阶段涉及的任务有:在生产环境中安装、配置和启动分布式应用程序及基础结构服务,置备生产系统最终用户,设置单点登录和访问策略等诸如此类的内容。通常是从有限部署开始,逐步过渡到组织范围的实现。在此过程中,要执行试运行,试运行期间通过不断增加负载来证实当前是否满足服务质量要求。

部署后

在生命周期的 postdeployment(部署后)阶段,您需要在生产环境中运行部署的解决方案。生命周期的操作阶段涉及以下任务:

本章的主要术语

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

deployment(部署)

Java Enterprise System 解决方案生命周期过程中的一个阶段,在此阶段,部署方案被转换成部署设计,后者被实现、原型化,而后在生产环境中铺开。此过程的最终产品也被称为部署(或部署的解决方案)。

deployment scenario(部署方案)

Java Enterprise System 解决方案的 logical architecture(逻辑体系结构)以及解决方案为满足业务需要而必须要满足的服务质量要求。服务质量要求包括下列各方面的要求:性能、可用性、安全性、可维护性以及可伸缩性/潜在容量。部署方案是部署设计的起点。

development(开发)

Java Enterprise System 解决方案部署过程中的一项任务,该任务可对 deployment architecture(部署体系结构)的定制组件进行编程和测试。

predeployment(部署前)

Java Enterprise System 解决方案生命周期过程中的一个阶段,在此阶段,业务需要被转换为 deployment scenario(部署方案),其中包含:logical architecture(逻辑体系结构)以及解决方案必须满足的一组服务质量要求。

postdeployment(部署后)

Java Enterprise System 解决方案生命周期过程中的一个阶段,在此阶段,您将启动分布式应用程序,对其进行监视、调节以优化性能,还会对其进行动态升级以加入新的功能。

reference deployment architecture(参考部署体系结构)

一种已设计、实现并经过性能测试的 deployment architecture(部署体系结构)。参考部署体系结构用来作为设计定制解决方案部署体系结构的起点。

use case(使用案例)

一项特定的最终用户任务或一组任务,由 distributed enterprise application(分布式企业应用程序)执行,并被用来作为设计、测试和衡量应用程序性能的基础。