跳转到主要内容

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

这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。 您可以随时更新您的 IBM 账号。

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

构建一个可重建的应用程序示范

一个很酷的、利用了模型的可重用 WebSphere CloudBurst Appliance 项目

Dustin Amrhein, 软件工程师, IBM
作者照片
Dustin Amrhein 刚加入到 IBM 时是一名 WebSphere Application Server 开发团队的成员。在担任此职位期间,Dustin 从事 Web 服务基础设施以及 Web 服务编程模型的开发。此外,Dustin 负责 Java RESTful 服务框架开发的技术工作。Dustin 目前担任的角色是 IBM 的 WebSphere 产品组合中的新兴技术的推广者。他目前主要关注交付云计算功能的 WebSphere 技术,包括 WebSphere CloudBurst Appliance。

简介: IBM® WebSphere® 新兴技术推广者 Dustin Amrhein 利用 WebSphere CloudBurst Appliance 向我们展示了构建一个能托管各种客户会话并可被按需重新配置成支持这些客户会话的诸多不同实例的企业应用程序环境所需的努力。

发布日期: 2010 年 11 月 22 日
级别: 初级 原创语言: 英文
访问情况 : 7958 次浏览
评论: 


我想我的技术同僚都有过这样的感受,那就是为了组成公司环境的邮件、会议、电话会议等诸事忙碌到精疲力尽时的那种感受。我希望您不会总遇到这种情况,但是如果您与我的情形类似,那么只有一种补救方案。

背景

Dustin 的想法和见地可以在 在他的 My developerWorks 博客 找到(但是从 Dustin 的 MydW profile 也可以多少了解到一些事情)。

您必须展示出您对技术狂热执著的一面!

没错。是时候挂掉电话、关掉 web 会议的浏览器并在电子邮件收件箱无情地使用删除按钮了!是时候进行编程、脚本编写、配置以及集成了!换言之,是时候卷起袖子大干一场了。

要解决的问题如下:

不久前,正在我需要从日常的工作中稍作休息时,我有幸接手与 WebSphere CloudBurst Appliance 有关的一个很酷的项目。

IBM 内的一个为不同客户的未来请求提供支持的组来到我们的团队寻求协助。他们需要我们帮忙构建一个可用来托管各种客户会话的示范企业应用程序环境。除了上述环境的最初构建之外,他们还需要能够按需重建这个环境来支持这些客户会话的诸多不同实例。

我们的团队,急于提供协助,遂立即提出了一个很直接的问题:你们想要在企业应用程序环境中实现什么?当然,回答往往始于一个应用程序,尤其是一个 Java™ web 服务应用程序。

随着他们逐渐描述清他们想要的是哪种应用程序以及他们想要提供的是哪种用户体验,各种需求愈加清晰,如下所列:

  • 应用程序需要能够从后端数据库读写数据。
  • 应用程序对 HTTP 会话的使用有很强的依赖性。因而,我们需要确保这些会话具有很高的可用性。
  • 我们需要公开对应用程序的 SOAP 和 JSON 接口。
  • 对应用程序的需求是不一致的,并会经历峰谷。

定义基础设施

我们的团队于是做了两件事情。我们着手开发应用程序,然后决定支持这个应用程序所需的基础设施。应用程序本身的开发虽很有趣,会触及像 JPA、JSON、jQuery 这样的一些主题,当然还有 web 服务,而我则更想关注于支持应用程序所需的基础设施。

我们很快地明白了为了支持由客户提起的应用程序需求,我们将需要几个不同的应用程序基础设施组件。经过几次长时间的充分讨论后,我们决定我们需要使用如下的基础设施来支持这个应用程序:

  • WebSphere Application Server:WebSphere Application Server 提供了运行时容器来托管我们的 JEE web 服务以及其他相关的应用程序组件(比如 HTML 文件)。
  • DB2 Enterprise Edition:我们使用了 DB2 作为我们 web 服务应用程序的后端数据库。
  • WebSphere Virtual Enterprise:在 WebSphere Virtual Enterprise 内可用的特性很多,我们利用了动态群集以及应用程序服务级别策略。我们将我们的 web 服务应用程序部署在一个动态群集内,连同服务级别策略,就为我们提供了对应用程序可变工作负载的适应性。
  • WebSphere DataPower XC10:我们使用了 WebSphere DataPower XC10 设备作为 HTTP 会话的存储器。通过集合使用这样的设备,我们就可确保 HTTP 会话的可用性。此外,由于我们在这些设备上存储了 HTTP 会话,因此我们得以释放内存,否则这些内存将会被此应用程序的 JVM 占用。
  • WebSphere DataPower XI50:正如这里提到的所有其他组件一样,WebSphere DataPower XI50 设备提供了一整套功能。对于本例,我们使用了 web 服务代理以及此设备的转换功能来启用对我们 web 服务应用程序的一个 JSON 接口。

如果您熟悉企业中间件环境,就会明白仅部署每个组件就是一个不小的任务;不过,除了单纯安装这些基础设施的每一块之外,我们还需要对它们进行集成才能实现应用程序的上述目标。此外,我们必须建立一种途径以便他人也可以享受我们的成果,这样一来,别人就能够及时地不断供应该环境,并且对结果环境配置正确性信心很高。


选择工具和方法

把所有这些都考虑进去,我们就得到了一种能满足我们的所有需求的解决方案:WebSphere CloudBurst。

更切中主题的是,我们决定构建一种 WebSphere CloudBurst 模式,允许用户将目标应用程序环境部署到一个私有云。

特别地,我们构建该模式来封装我们之前概述的应用程序以及应用程序基础设施的配置。任何需要设置此应用程序环境的人都可以简单登录到 WebSphere CloudBurst Appliance、部署此模式并在数分钟内就可以拥有一个运行正常的环境。

部署者无需知道如何安装、配置和集成应用程序和相关的基础设施,因为此模式封装了这些动作。此外,在用户每次部署它时,此模式都能确保环境的正确配置。


结果如下

那么,这个模式看上去如何呢?如图 1 所示,它包含了 WebSphere Application Server、WebSphere Virtual Enterprise 和 DB2 Enterprise Edition 的部分。


图 1. WebSphere CloudBurst 模式
WebSphere CloudBurst 模式

组件

每个组件都提供什么:

  • WebSphere Application Server:此模式包含了一个部署管理器和两个定制节点。这两个定制节点托管了 WebSphere Application Server 实例并且在部署期间,WebSphere CloudBurst 能够自动将它们联合到这个由部署管理器节点管理的单元。
  • WebSphere Virtual Enterprise:此模式包含了一个 On-Demand Router (ODR) 实例。ODR 可提供基于优先级的工作流管理,可为应用程序带来服务级别策略。
  • DB2 Enterprise Edition:此模式只包含了一个 DB2 Enterprise Edition 部分,可代表数据库服务器的一个实例。

有重要的一点需要注意,即我们使用 WebSphere CloudBurst 的扩展并捕获机制创建了一个定制映像。这个定制映像包含了设备附带的 WebSphere Application Server Hypervisor Edition(具 Intelligent Management Pack 选项)内的所有东西,并且除此之外,我们还安装了 WebSphere eXtreme Scale 客户端二进制文件。我们会在配置所部署的环境期间使用到这些二进制文件。

脚本编写

谈到配置,我们通过包含在我们模式内的脚本包提供了模式内所有必需的部署时配置动作。正如图 1 所示,此模式包含很多不同的脚本包:

  • 添加 IBM HTTP Server 节点:此脚本包创建了与部署管理器节点运行在同一个虚拟机内的 IBM HTTP Server 的一个实例。WebSphere CloudBurst 提供了这个脚本包供我们使用。
  • 概要文件增扩-WXS: 此脚本包使用了在 WebSphere Application Server 虚拟机内包含的 WebSphere eXtreme Scale 二进制文件(通过我们的定制映像)来将这些概要文件增扩为 WebSphere eXtreme Scale 概要文件。这些概要文件必须是 WebSphere eXtreme Scale 概要文件,才能将我们的应用程序配置成使用 WebSphere DataPower XC10 作为 HTTP 会话存储。
  • 创建 DB2 数据源:此脚本包配置 WebSphere Application Server 数据资源。此 web 服务应用程序使用这个数据源来将数据读写到 DB2 数据库服务器实例。
  • 创建代理:此脚本包创建一个从我们的 IBM HTTP Server 实例到 WebSphere DataPower XI50 设备的反向 HTTP 代理。这就使我们可以克服跨域脚本编写的限制并能将来自在 WebSphere Application Server 域内运行的我们应用程序的 AJAX 请求发送到位于不同域内的 WebSphere DataPower XI50 设备。
  • 配置 DataPower 重写策略:此脚本包将一个定义好的 WebSphere DataPower XI50 web 服务代理更新为指向我们最新部署的 web 服务应用程序的位置。
  • 安装 DB2 客户机 JAR:此脚本包在所需的将这些 DB2 客户机 JAR 安装在所需的 WebSphere Application Server 节点上。
  • 动态群集配置:此脚本包在部署期间创建 WebSphere Virtual Enterprise 动态群集。当我们为此模式选择了 Advanced options 内的 Define dynamic clusters 选项时,WebSphere CloudBurst 就会提供这个脚本包。
  • XC10 配置:此脚本包将我们的 web 服务应用程序配置成使用 WebSphere DataPower XC10 作为 HTTP 会话存储。
  • 安装应用程序:此脚本包将我们的 web 服务应用程序安装到 WebSphere Virtual Enterprise 动态群集。
  • 创建 DB2 数据库:此脚本包在 DB2 数据库服务器实例上创建我们应用程序所需的数据库和表。

总地来说,这些脚本包再加上其他部分就定义了一个模式,而一旦部署了这个模式,就可以为我们提供我们的全部所需。我们将这个模式公布给多个不同的用户,而这些用户可以在需要的时候部署这个模式,部署的结果将是一个虚拟系统,内含配置好了的、运行在一个预置(on-premise)云上的定制的应用程序环境。图 2 显示了这个虚拟系统以及通过部署图 1 所示的模式后所产生的集成点。


图 2. 部署了的虚拟系统
部署了的虚拟系统

能否工作?

总之,这个模式帮助我们的团队实现了我们的每个目标以及我们用户的每个目标。我们能够提供一个可直接部署的单元(模式),允许中间件技能参差不齐的不同用户都能供应一个可运行的、具有实际意义的应用程序环境。

进而,这些客户在数分钟之内(平均略少于 60)就能供应这样一个环境且可以在需要的时候重建这个环境。而此环境在云上运行的这个事实则是锦上添花!

下一步

要了解有关使用 WebSphere CloudBurst 的更多信息,您可以:

对我而言,这证明了如下两点。

  • 首先,基于模式的方式来配置并将应用程序以及应用程序基础设施部署到云对于这类环境的管理员和用户而言都具有实际意义和价值。
  • 其次,具体到 WebSphere CloudBurst,它的确证明了您可以使用这个设备来构造您所需要的任意类型的基于云的环境,不论是非常简单的,还是较为复杂的。

如果您经常需要构造并部署中间件应用程序环境,那么我真心希望您能认真考虑 WebSphere CloudBurst 及其基于模式的方式能够给您和您的组织带来的价值。


参考资料

学习

讨论

关于作者

作者照片

Dustin Amrhein 刚加入到 IBM 时是一名 WebSphere Application Server 开发团队的成员。在担任此职位期间,Dustin 从事 Web 服务基础设施以及 Web 服务编程模型的开发。此外,Dustin 负责 Java RESTful 服务框架开发的技术工作。Dustin 目前担任的角色是 IBM 的 WebSphere 产品组合中的新兴技术的推广者。他目前主要关注交付云计算功能的 WebSphere 技术,包括 WebSphere CloudBurst Appliance。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


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


忘记密码?
更改您的密码

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

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

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

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

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


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

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=, WebSphere, Information Management, Java technology
ArticleID=588176
ArticleTitle=构建一个可重建的应用程序示范
publish-date=11222010
author1-email=damrhei_cnnew1@us.ibm.com
author1-email-cc=