WebSphere Application Server V8 的新增特性

IBM® WebSphere® Application Server V8 是一个重要版本,它提供了一些引人注目的运行时改进,还提供了一些简便的应用程序开发和部署方法。本文将简要介绍使这些改进成为可能的一些新技术特性和增强。 本文来自于 IBM WebSphere Developer Technical Journal 中文版

Tom Alcott, IT 咨询专家, IBM

Tom Alcott 是 IBM 美国的一位 IT 咨询专家。自 1998 年 Worldwide WebSphere Technical Sales Support 小组成立以来,他就一直是该小组的成员。在此期间,他花费了大部分时间来编写用户手册。在开始研究 WebSphere 之前,他是 IBM 的 Transarc 实验室的一名系统工程师,负责支持 TXSeries。他有 20 多年从事基于大型机和分布式系统的应用程序设计与开发工作的背景。他撰写并发表了大量关于 WebSphere 运行时问题的文章。



2011 年 8 月 25 日

简介

IBM 上周有两个里程碑事件:2011 年 6 月 16 日(星期四)是 IBM 成立 100 周年纪念日;第二天,IBM WebSphere Application Server V8 发布。尽管这个产品只是 IBM 众多的软件产品之一,但它的发布意义重大,适合用来标记 IBM 第二个世纪的开始。

WebSphere Application Server V8.0 构建于 WebSphere Application Server 这个 Java™ 应用程序服务器 10 年来的领导地位之上。10 年来,WebSphere Application Server 不仅对 Java EE 6 和其他重要编程模型提供支持,还通过一种新的安装和维护技术提高了管理员的工作效率,提高了安全性;此外,它还提供了一些新功能来控制组件故障转移和运行时恢复。

下面将简要介绍这个新发布的一些重要的新的 标准集成特性特性包 以及 系统管理 功能。


标准

WebSphere Application Server V8 中的编程模型选项列表中的首要选项是对 Java EE 6 的支持,该支持更加关注从 Java EE 5 开始的应用程序开发简化。

  • EJB 3.1

    您可能还记得,EJB 3.0 规范是包含了 Java EE 5 中用于简化 EJB 开发的最广泛革新的 API。在 Java EE 6 中,这种对简化开发的关注在 EJB 3.1 中得到了继续,EJB 3.1 中包含了以下几个重要的新功能:

    • 业务接口是可选的,即使对于会话 bean 也是如此。这对于联合使用会话 bean 和 Web 客户端特别有用,因为 EJB 3.1 还新增了将 EJB 打包成 WAR 文件的功能。
    • 单例 EJB,它们可用于管理缓存和共享的应用程序状态。
    • 异步会话 Bean 方法调用,使用 @Asynchronous 注释。而且,您可以使用 java.util.concurrent.Future 接口控制异步 ESB 方法请求。
    • 计时器的改进,用于基于日历的事件、非持久性计时器、以及自动创建的计时器。除 EJB 3.0 基于间隔的计时器 API 外,这个领域最重大的改进是对 cron 风格调度的支持。
    • 一个嵌入式 Java Standard Edition (SE) EJB 3.1 容器,可以在应用程序服务器外部使用它。这支持在 Java SE 环境(比如 JUnit)中进行测试,同时支持对 EJB 使用全局 JNDI 名称。
  • Contexts and Dependency Injection for Java (CDI) 1.0

    Contexts and Dependency Injection (CDI) 是 Java EE 6 中的一个新 API,它扩展了 EJB 3.0 中引入的依赖项注入功能,数据库、目标、队列、备份 bean 以及其他 EJB 等资源可以通过添加一个不需要使用 EJB 的通用依赖项注入功能来使用该 API。例如,这允许注入一个 Data Access Object (DAO),即使该 DAO 不是使用 EJB 实现的。它还支持将 EJB 直接用作 JavaServer™ Faces (JSF) 备份 bean。另外,CDI 还支持使用 @RequestScoped、@SessionScoped、@ApplicationScoped、@ConversationScoped 等注释以声明方式管理对象的作用域、状态、生命周期和上下文。

    CDI 包含一个 CDI 容器服务,该服务根据应用程序作用域声明自动管理作用域;容器根据需要创建和销毁 CDI bean。因此,CDI 使得使用来自不同作用域的 bean 变得更轻松、更方便。您甚至可以混合和匹配来自不同作用域的 bean,通过该容器提供正确的生命周期管理。最终结果是应用程序开发变得更加简单,Web (JSF) 和业务逻辑(EJB)层之间的集成变得容易。图 1 展示了 CDI 集成。

    图 1. CDI 集成
    图 1. CDI 集成
  • Bean Validation 1.0

    Bean Validation 1.0 是 Java EE 6 中的另一个新的 API,它为 POJO (Plain Old Java Objects) 提供了一种验证机制。Bean Validation 提供了一种声明方法,通过若干通用注释(比如 @Null、@NotNull、@Max、@Min、@Size、@Past、@Future)来描述验证约束;还提供一个 API 来支持创建自己的验证注释,比如下面的电话号码注释:

    @Pattern(regexp=“((\d\d\d\-)?\d\d\d\-\d\d\d\d)?”)
    private String phoneNum;

    这种验证机制能提高开发人员效率:通过允许对象验证自身,开发人员不必在应用程序中的多个位置上多次创建和维护验证逻辑。另外,Bean Validation 集成了其他 API:

    • JSF,确保表单数据是经过自动验证的正确数据。
    • JPA,确保错误数据不会持久存储。
    • JCA,确保连接器正确配置。

    图 2 展示了上述集成。

    图 2. Bean Validation 集成
    图 2. Bean Validation 集成
  • JavaServer Faces (JSF) 2.0

    JSF 2.0 添加了 Facelets,这是一种针对 JSF 的视图技术。这意味着,Facelets 集成了 JSF 页面描述格式,以便提供更好的性能和 UI 构成功能。JSF 2.0 还添加了 Java EE 5 风格注释驱动型配置,以提高开发人员生产力。最后,JSF 2.0 现在支持 Ajax 生命周期,允许部分页面处理功能对 Ajax 事件进行处理,从而实现更好的 UI 交互,并通过皮肤进行 UI 外观定制。

  • Java Servlet 3.0

    Java Servlet 3.0 广泛使用注释来提高开发人员生产效率,使用注释来声明 servlet (@WebServlet)、过滤器(@WebFilter)和监听器(@WebListener),还为已声明的元素提供元数据规范。Java Servlet 3.0 添加了自动元数据发现功能,部署描述符不再是必需的,从而允许更轻松地使用 Struts 之类的框架。

    Java Servlet 3.0 还引入了 Web 片段,以便提供模块式部署描述符功能。与 web.xml(使用多个框架时需要编辑)不同,可以使用多个 web-fragment.xml 文件,这些文件共同组成 web-xml 部署描述符。

    最后,Java Servlet 3.0 引入了一个新的异步协议,通过发送异步请求并在异步处理完成后提供通知,运行时间较长的请求(比如 SIP 和 COMET)可以使用该协议。

  • Java Persistence API (JPA) 2.0

    JPA 2.0 改进了映射支持,以处理嵌入式集合和有序列表,比如检索第一个结果,指定查询结果的最大大小以及执行消极锁定,这能够提高写入密集型应用程序的性能。

    另一个新增功能是 Criteria API,这是一个面向对象、类型安全、以 Java 为中心的 JPQL 语句等效物。Criteria API 有助于避免运行时解析异常,无需熟悉 SQL,即可编写复杂的动态查询。JPA 2.0 中标准化的其他功能包括二级缓存插件和查询提示(也称为访问意图)。如前所述,JPA 和 Bean Validation 的集成也是 Java EE 6 的一部分。

  • Java API for RESTful Web Services (JAX-RS) 1.1

    JAX-RS 在 Java EE 中提供了 Web 2.0 编程模型支持。与 JAX-WS 为 Web 服务应用程序抽象 SOAP 协议的低级细节类似,JAX-RS 将 REST 开发抽象为 POJO 编程和基于注释的配置。这允许应用程序以一种可控方式将资源公开给与 servlet 和 EJB 集成在一起的 Web。

  • Java API for XML-based Web Services (JAX-WS) 2.2

    JAX-WS 2.2 扩展了 JAX-WS 2.1 规范提供的功能,新增了一些功能。最重要的新功能是在 API 内支持 Web Services Addressing (WS-Addressing) Metadata 规范。另外,它还支持通过新注释指定 Web 服务需要的消息交换模式,支持为从外部注册表获取策略而进行细粒度 Transport Level Security 配置。

  • Enterprise Web Services 1.3 (JSR-109)

    JSR-109 1.3 增加了以下支持:单例会话 bean 作为端点,JAX-WS 处理程序和端点中的 CDI,以及全局、应用程序和模块命名上下文。

  • Java Architecture for XML Binding (JAXB) 2.2

    在 Java EE 6 中,JAXB 通过默认启用的编组优化来改进性能。


集成特性

WebSphere Application Server V6.1 中首次引入了特性包,以满足我们的用户要求减小新发布的频率的愿望,同时向有需要的用户提供最新标准支持。特性包在 WebSphere Application Server V7.0 中变得更加重要,使用更加频繁。WebSphere Application Server V7 特性包内容的一大部分没有集成到 WebSphere Application Server V8 中。

  • OSGi 应用程序

    OSGi 是一种 Java 模块技术,已在 WebSphere Application Server 中使用了几年。这种技术支持开发、部署和执行动态、模块化和可扩展的应用程序。现有组件可以公开为 OSGi 应用程序中的 SCA 组件。反之,OSGi 和 Web 应用程序可以在 WebSphere Application Server 中部署为 OSGi 簇 (bundle),以提高其重用性,同时提供模块性。

    该功能的核心是 “OSGi 簇” 这个概念:OSGi 簇是一个 JAR,但是它的 JAR 清单文件中有一些额外的头文件。JAR 清单文件中的额外信息用于定义存储库将公开且应用程序将使用的特定类。通过提供模块式部署和管理,OSGi 允许分隔公共库和应用程序归档,跨多个版本集中地、并发地管理它们。这样,应用程序内存和磁盘占用将减少,类加载结构极大简化,并且是特定于应用程序的。这种简化和模块化还支持应用程序在无需重启的情况下进行更新。

  • Service Component Architecture (SCA)

    WebSphere Application Server V8 中的 SCA 1.0 支持基于开源的 Apache Tuscany 项目,提供了额外的集成和易用性。SCA 提供了通过使用 POJOs、EJB 2.1、EJB 3.0、EJB 3.1、OSGi 应用程序、Spring 组件、Java servlet 以及 Ajax/JavaScript™ 项目创建服务组件的能力。SCA 还提供两种能力:通过 JSON-RPC 和 ATOM Web feed 向 Web 2.0 应用程序公开业务逻辑;通过 Java Architecture for XML Binding (JAXB) 或 Service Data Objects (SDO) 2.1.1 数据表示跨完全不同的系统集成数据。

  • Java Batch

    Java Batch 提供一个批容器服务,该服务集成一个批编程模型和一些关键的批管理功能,比如作业定义、作业状态、检查点以及重启。提供的批编程模型可以跨整个企业使用,以确保统一的应用程序开发和部署,这可以降低开发成本。除了提供一些关键批管理功能以外,WebSphere Application Server V8 中的 Java Batch 还提供通过管理控制台或 wsadmin 对 OLTP 应用程序和批作业进行集成管理的功能,这可以利用现有的管理员技能,还可以降低成本。

  • Communication Enabled Applications

    WebSphere Application Server V8 中的 Communications Enabled Applications (CEA) 编程模型支持通过增加点击呼叫 (click-to-call) 和同步浏览 (cobrowsing) 等通信功能来简化交互式富 Web 应用程序的交付。除此之外,CEA 还提供了其他一些小部件,用于呼叫通知和协作,这意味着,只需三行代码,就能在任意现有或新 Web 应用程序上启用任何 CEA 小部件。

    除上面提到的简化外,还有经过改进的原生 Session Initiation Protocol (SIP) 编程模型支持,可用于开发、交付和管理强大的大规模任务关键型聚合通信服务和应用程序。这包括对最新的 SIP Servlet 规范 (JSR 289) 的支持,其中又包括用于降低复杂性和提高生产力的注释支持。WebSphere Application Server V8 提供一个聚合容器,该容器现在包含一些 Web 服务,这些服务添加到已存在的聚合 HTTP 和 SIP Servlet 容器中,以将 Web 服务和 Web 服务应用程序集成为一个基于 SIP 的通信应用程序。

  • XML

    XML 编程模型改进包括对 Extensible Stylesheet Language Transformations (XSLT) 2.0、XML Path Language (XPath) 2.0 和 XML Query Language (XQuery) 1.0 的支持。IBM Thin Client for XML 能加速在 WebSphere Application Server 中利用 XSLT 2.0、XPath 2.0 和 XQuery 1.0 的客户端应用程序开发。


特性包

除上述来自 WebSphere Application Server V7 特性包的集成特性之外,WebSphere Application Server V8 还提供了两个新特性包:

  • Web 2.0 and mobile

    WebSphere Application Server Feature Pack for Web 2.0 and Mobile 基于 Apache Wink 和 Dojo 项目,通过支持 Dojo 1.6 小部件库和 HTML 5.0,提供对移动和基于浏览器的应用程序的支持。新的移动设备用户界面支持创建移动应用程序,通过更改关联的样式表,这些移动应用程序可以用于某个特定设备,比如 iPhone、Android 或 Blackberry 设备。还提供了几个常用的 Rich Internet Application (RIA) 和移动功能,比如 Directory Listing Service、File Upload Service、Graphics Conversion Service、Logging、Debug and Analytics Capture Service 以及 Device/browser Detection Service。(WebSphere Application Server V7 和 V6.1 也提供这个特性包。)

  • Dynamic scripting

    WebSphere Application Server Feature Pack for Dynamic Scripting 包支持使用 PHP 和 Groovy 动态脚本语言以及 Web 2.0 技术(比如 Ajax、REST、Atom、JSON 和 RSS)来重用企业内容。Dynamic scripting 提供支持 iWidget 规范、能集成到基于 IBM WebSphere Portal 和 IBM Mashup Center 的应用程序中的应用程序组件部署,还支持在 WebSphere Application Server 部署中原样运行 IBM WebSphere sMash V1.1.1 应用程序。


系统管理

系统管理相关功能的增强包括:

  • 高可用性

    WebSphere Application Server V8 在几个场景中添加了经过改进的高可用性(HA)支持,包括:

    • 当某个活动队列管理器失败或变得不可用时,JMS 应用程序会自动重新连接到备用网关队列管理器。
    • 针对关系数据源和 JCA 连接工厂的资源故障转移和重试逻辑,管理员可以根据应用程序需要调整数据源和连接工厂,需要指定以下各项:
      • 连接重试次数。
      • 替代/故障转移资源。
      • 替代/故障转移资源连接池的预填充。
      • 自动故障恢复。
  • 安装

    IBM Installation Manager 用于为下列操作提供某种单一的安装技术:

    • 安装和卸载产品。
    • 更新和回滚修复包和 iFixes。
    • 安装和卸载特性包。

    Installation Manager 不仅提供了通用安装技术,还支持一步将它安装到想要的服务级别,而不是必须先安装 GA 产品,再单独应用修复程序,因此,它使得安装工作变得更加简单。WebSphere Application Server V8 中的 Installation Manager 包含完整的操作 GUI 和响应文件模式:

    • 执行单独操作的 GUI。
    • 响应文件可以从 GUI 录制,或者通过为静默安装指定适当的 XML 来创建。
    • 静默模式支持调用多个操作。

    WebSphere Application Server V8 中的 Central Installation Manager 也从 V7 实现得到了增强。V8 中的 Central Installation Manager 不仅基于 IBM Installation Manager,它还可从 Job Manager 和 Deployment Manager 获取。向 Installation Manager 添加 Job Manager 支持允许您扩展 WebSphere Application Server Network Deployment 单元的边界,还允许调度安装和配置作业。使用 Installation Manager 作为底层安装技术是这些新功能的关键。要了解这些变化,最好的方法是从 Job Manager 检查 WebSphere Application Server V7(参见图 3)和 V8(参见图 4)中的 Central Installation Manager 流。V8 中的 Central Installation Manager 并不像 V7 中那样推出二进制文件并执行安装,而是(在 Job Manager 和 Deployment Manager 中)推出 Installation Manager 使用的安装配置数据,以执行实际二进制下载和安装。另外,WebSphere Application Server V8 中的 Central Installation Manager 能远程安装 WebSphere Application Server、IBM HTTP Server、应用程序客户端、DMZ Security Proxy Server 以及 Web Server Plug-ins。

    图 3. WebSphere Application Server V7 中的 Central Installation Manger
    图 3. WebSphere Application Server V7 中的 Central Installation Manger
    图 4. WebSphere Application Server V8 中的 Central Installation Manager 和 Job Manger
    图 4. WebSphere Application Server V8 中的 Central Installation Manager 和 Job Manger

    最后(但并非最不重要),单个 Installation Manager 就能从 WebSphere、Rational® 等软件管理任何基于 Installation Manager 的产品的产品生命周期。

  • 日志

    WebSphere Application Server V8 中的 HPEL (High Performance Extensible Logging) 加速了日志和跟踪:

    • 日志基元(primitive)比 V7 快 6 倍。
    • 跟踪基元比 V7 快 3.8 倍。

    HPEL 还提供了更灵活的日志和跟踪数据访问:

    • 命令行访问,支持过滤和格式化。
    • 管理控制台 GUI,支持过滤和格式化本地或远程日志和跟踪,甚至是在远程服务器停用时。
    • 编程访问,支持过滤、格式化和合并本地或远程日志和跟踪。

    HPEL 还适用于现有的应用程序日志和跟踪工具,提供一个适用于 z/OS 和分布式平台的通用解决方案。

  • 节点恢复

    addNode 命令的一个新的可选参数 asExisitingNode 可以使得移动或恢复节点变得更轻松。使用这个命令参数时,使用来自节点的 Deployment Manager 的配置来添加节点。因此,节点可以轻松移动到新服务器,如果需要,移动过程中还有一些设置可用来更改主机名。一旦出现硬件故障,节点可以轻松恢复到 Deployment Manager 维护的单元配置中反映的最后配置。这两个场景如图 5 所示。

    图 5. 节点恢复
    图 5. 节点恢复
  • 安全性

    WebSphere Application Server V8 中增强了安全性默认行为,以便进一步加强基础架构:

    • RMI/IIOP 的 SSL 通信是默认值。以前,安全默认行为是由 CSI/V2 默认值(允许协议协商)管理的,这意味着非 SSL 客户端能成功请求 SSL 保护的资源。
    • 现在,HTTP 会话对象的内容默认情况下是受保护的,并为存储在 HTTP 会话中的数据提供了私密性。
    • 通过 HttpOnly 属性进行的 cookie 保护在默认情况下处于启用状态,以便通过阻止脚本访问特定 cookie 来减少跨站点漏洞。

    另外,对 Java EE 6 安全标准提供了新的支持,具体包括:

    • Java Servlet 3.0 安全性现在提供三种方法:login()、logout() 和 authenticate(),它们可用于 HTTPServletRequest 对象;还提供通过注释声明安全约束的能力。
    • 对 EJB 可嵌入容器提供基本安全支持。
    • 对容器提供 Java Authentication SPI (JASPI) 支持。
    • JAX-WS 中的 Web Services Security API (WSS API) 和 WS-Trust 支持允许用户构建基于 Web 服务的单点登录应用程序。
    • 针对 JAX-RS 1.1 的安全增强。

    WebSphere Application Server V8 中添加了 Federated Repository Support for Multiple Domains。此外还启用了 Federated Repository(也称为 VMM (Virtual Member Manager)),以提供一种新注册表类型,即 Global Federated Repository,这是一个单一 VMM 配置,可以跨整个单元(管理和应用程序安全域)共享。从 WebSphere Application Server V6.1 开始提供的 Federated Repository 现在得到了增强,允许每个单元拥有多个配置,这支持将 Federated Repository 的范围设置为 Global Security 或 Domain Security 级别。

    实质上,Global Federated Repository 与 WebSphere Application Server V7 中的 Federated Repository 的功能相同,但 Federated Repository 添加了一个用户经常请求的功能。

  • 迁移

    WebSphere Application Server V8 还改进了 V7 服务周期中交付的 Application Migration Tool (AMT)。AMT 分析源代码,以发现潜在的迁移问题,比如:

    • 已移除的特性
    • 已弃用的特性
    • 行为变化
    • JRE 5 和 JRE 6 的差异
    • Java EE 规范变化或实施

    AMT 还能进行一些应用程序更改,提供关于如何进行必要更改的指南,可以将 AMT 用作 Eclipse 和 IBM Rational Application Developer 的 免费插件


结束语

IBM WebSphere Application Server V8 是一个重要版本,它提供了一些引人注目的运行时改进,还提供了一些简便的应用程序开发和部署方法。本文简要介绍了一些新特性和增强,希望能激发您的热情,进一步探索这个新版本的其他新功能。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=753536
ArticleTitle=WebSphere Application Server V8 的新增特性
publish-date=08252011