内容


借助 IBM Bluemix 服务提升 Java EE 应用程序的活力

Comments

IBM® Bluemix™ 是 IBM Open Cloud Architecture 的一种实现,它通过利用 Cloud Foundry 使得开发人员能够快速构建、部署和管理他们的云应用程序,同时利用可用服务和运行时框架的一个不断成长的生态系统。

在本教程中,您将学习如何将来自 JazzHub 的代码放入 Eclipse 工作区中,构建该应用程序并部署到 Bluemix,并使用数据库和云中的其他服务。为了演示此过程,我们将使用 CloudTrader 作为示例应用程序。

为了演示如何将现有应用程序迁移到 Bluemix 并通过服务让它们恢复活力,我们更改了一个 10 年前的交易应用程序,创建了 CloudTrader。

CloudTrader 是一个 Java™ EE 应用程序,它模拟了一个在线股票交易系统。该应用程序允许用户登录,查看其概要信息,查找股票报价,以及购买或出售股份。它主要是使用 Servlet、JSP 和 JavaBean 构建的。为了演示将现有应用程序迁移到 Bluemix 并通过服务让它们恢复活力,我们更改了一个 10 年前的交易应用程序,创建了 CloudTrader。

CloudTrader 应用程序中的 Trading and portfolio 窗口
CloudTrader 应用程序中的 Trading and portfolio 窗口

CloudTrader 应用程序可以使用以下 Bluemix 服务:

  • SQLDB(必需):CloudTrader 使用受 DB2 支持的 SQLDB 按需关系数据库服务作为其主要数据库。只需几秒即可创建该数据库并提供给 CloudTrader 使用。数据源连接信息被创建为一个 JNDI 命名空间条目,可供应用程序查找和使用。
  • Session Cache:绑定到 CloudTrader 时,此服务会为所有会话实现跨应用程序的多个实例的持久性。在发生故障时,会话会无缝恢复。
  • Auto-Scaling:Auto-Scaling 使您能够自动增加或减少应用程序的计算能力。应用程序实例的数量会根据您定义的 Auto-Scaling 策略来动态调整。
Bluemix Cloud 图显示了 3 个 Bluemix 服务
Bluemix Cloud 图显示了 3 个 Bluemix 服务

好了,让我们开始吧。我们将从 JazzHub 下载代码,执行一些更改,并将应用程序部署到 Bluemix 上。我们还会创建一个数据库和一个分析服务。

该图显示了 Jazzhub、Eclipse 和 Bluemix 之间的链接
该图显示了 Jazzhub、Eclipse 和 Bluemix 之间的链接

完成应用程序需要满足的条件

第 1 步. 从 JazzHub 获取代码

  1. 单击上面的 获取代码 按钮,或者访问 hub.jazz.net,搜索 CloudTrader,然后单击 rvennam | CloudTrader
  2. 下载 CloudTraderEclipseProject.zip 文件。
  3. 启动 Eclipse。File > Import > General > Existing Projects into Workspace > Select archive file > [您的下载文件]
  4. 现在应该能够在 Project Explorer 视图中看到 CloudTrader 项目(包含代码)。

第 2 步. 创建一个 Bluemix 服务器

  1. 在 Eclipse 中,右键单击 Servers 视图并选择 New > Server。如果没有在 Eclipse 中看到 Servers 视图,请确保您在 Java EE 透视图中并查看 Servers 选项卡的底部。
  2. Define a New Server 窗口中,展开 IBM 文件夹,选择 IBM Bluemix,然后单击 Next
  3. 输入您的 Bluemix 帐户的凭据。
  4. 单击 Validate Account,然后单击 Finish
  5. 现在可将 CloudTrader 项目拖放到刚创建的 Bluemix 服务器上。
  6. 您将看到一个向导。为您的应用程序选择一个惟一名称,防止出现 ng.bluemix.net 域上的名称冲突。
  7. 在下一个面板上,可选择 URLMemory 信息。接受默认设置并单击 Next
  8. Services 选择面板中,我们将创建该应用程序所需的服务。现在我们仅创建数据库服务。单击接近右上角的 Add Service add service 窗口的屏幕截图 图标打开 Add Service 窗口。对于 Name,输入 TradeDataSource。Bluemix 将创建必要的配置,以便 CloudTrader 可以使用这个 JNDI 名称查找此数据源。选择 SQLDB 作为类型。
  9. 单击两个向导上的 Finish。片刻之后,您的应用程序应会完成部署!

第 3 步. 添加更多的服务

  1. 转到 https://ace.ng.bluemix.net 上的 Bluemix ACE UI 并登录。单击您的应用程序。您会看到您的应用服务器运行时和为您创建的数据库服务的更多信息。 CloudTrader 演示概述屏幕
    CloudTrader 演示概述屏幕
  2. 可以单击 Runtime 框调整实例大小,或者增加、减少实例数量。
  3. 切换回 Overview 选项卡,并单击您应用程序名称旁边的链接,以便访问该应用程序。
  4. Configuration 选项卡上,单击 (Re)-populate Database 在您的 DB2 数据库中填充初始用户和股票。 配置屏幕
    配置屏幕
  5. 单击 Trading & Portfolio 选项卡并登录。恭喜您,您的应用程序现在正在出色地运行!
  6. 接下来添加 Session Cache 服务。返回到 Bluemix Ace UI,单击您的应用程序,并下滚,以便找到 Add New Service 按钮。
  7. 依次单击 Session CacheAdd to ApplicationCreate
  8. 该应用程序现在需要重新暂存,以便自动配置新服务。返回到 Eclipse 并在 Servers 视图中找到您的应用程序。右键单击您的应用程序并选择 Update and Restart

    就这么简单!无需执行其他任何操作,您的会话已经能够持久保存。Liberty 构件包将会检测您是否绑定了 Session Cache 服务,并创建必要的 server.xml 条目。Session Cache 服务会将您的会话卸载到一个远程位置,使得会话不会在服务器实例崩溃时丢失,或者不会在精减规模时被删除。一个重新启动的服务器或另一个服务器实例将接管该会话。

  9. 现在您的会话已持久化,您可增加和减少实例而不丢失宝贵的会话数据。

    接下来,重复第 6-8 步,以添加 Auto-Scaling、Monitoring 和 Analytics 服务。

    Auto-scaling 窗口
    Auto-scaling 窗口
  10. 您可以创建一条策略,使用 Auto-Scaling 服务自动增加或减少实例。例如,可通过创建在内存或 JVM 堆使用率达到 80% 时增加实例的规则,保护应用程序免于由于内存不足而失败。

    建议仔细阅读文档,这些文档可以帮助您设置一条与您的应用程序需求相匹配的优秀策略。您可以使用 Monitoring 和 Analytics 服务获取您的应用程序性能的更深入洞察。这些都是强大的工具,可以帮助应用程序发挥最佳性能!

    Auto-scaling 策略配置屏幕
    Auto-scaling 策略配置屏幕

结束语

在本文中,我们了解了如何通过添加 IBM Bluemix 服务让现有应用程序恢复活力有多轻松。我们使用的示例应用程序是 CloudTrader,该应用程序基于十年前的一个交易应用程序。这里列出的步骤可用于改进任何现有的应用程序。祝您开发愉快!


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing
ArticleID=1000691
ArticleTitle=借助 IBM Bluemix 服务提升 Java EE 应用程序的活力
publish-date=03172015