Java开发2.0 - 您也可以租用EC22010-12-15您可能听说过 Standish Chaos Report,这份每年一次的报告研究成功和失 败的 IT 项目。这份报告常常包含大量坏消息。(如果都是好消息,它就不应该 称为 Chaos Report 了,对吗?)2009 年的报告指出,百分之 44 的 IT 项目 由于各种原因出了问题。原因之一是项目超出预算。很容易想到导致项目超出预 算的几个原因。例如,程序员的薪酬并不低。基础设施也是影响成本的因素之一 。正如本系列第一篇文章(“使用 Google App Engine”) 中指出的,Java™ 开发 2.0 的关键方面之一是,软件生产者现在可以不 必维护高成本的内部基础设施,而是采用另一种替代方法。几年前,几家明智的 公司开始利用硬件(及相关软件)的 “商品化”,它们构建了由大 量廉价机器组成的系统,在这样的系统中即使某些机器出现故障,整个基础设施 仍然可以继续运转。这些公司(比如 Google 和 Amazon 等)拥有庞大的基础设 施,可以借给你我这样的人(同时保持其核心业务运行顺畅)。因此,云计算的 概念现在变成了现实。如果您正在为 IT 项目制订预算,那么为了自己(和公司 的利益)着想,应该研究一下从 Google 或 Amazon 租借基础设施是否比自己购 买硬件便宜。关于本系列自 Java 技术出现伊始,Java 开发领域发生了巨大的变 化。得益于成熟的开放源码框架和可靠的可租借部署基础设施,现在我们能够以 很低的成本快速组装、测试、运行和维护 Java 应用程序。在这个文章系列中, Andrew Glover 探讨使这种新的 Java 开发范型成为可能的技术和工具。EC2 的不同之处Google 和 Amazon 的租借基础设施很不一样。正如在 前一篇文章 中看到的 ,Google App Engine 更像是用于开发 Java Web 应用程序的平台。无法使用 Java 领域中可用的任意工具和框架,比如 Hibernate。例如,只能使用 Google 的 Big Table。但好处是可以把驻留的解决方案扩展到您需要的任何规模。(请 记住,当您的 Google App Engine 网站达到带宽或空间上限之后,Google 就会 向您收费)。Amazon EC2 提供的不像是开发平台,更像是通用的基础设 施服务,它提供虚拟机器(可以是基于 Linux®、OpenSolaris 或 Windows® 的),可以在这些虚拟机器上运行任何程序。EC2 不是免费的, 但是它比 Google App Engine 灵活得多。只要可以创建或租借虚拟机器,就可 以运行任何 Java 应用程序(包括使用 Hibernate 的 Java 应用程序)。 (Amazon 和它的社区提供完整的预配置虚拟机器目录,这种虚拟机器称为映像 )。与 Google App Engine 一样,可以非常高效地把应用程序扩展到面向全球 用户,但是部署应用程序的位置和扩展方式主要由 Amazon 控制。(Amazon 也 允许选择几个地理区域来部署应用程序)。Amazon 提供了相关的 Eclipse 插件,帮助创建可以使用这个平台的应用程 序。与使用 Google App Engine 插件时的情况相反,EC2 的灵活性很容易导致 情况复杂化。例如,通过使用 Amazon 的 EC2 Eclipse 插件,很容易把 Apache Tomcat Web 应用程序(不包括数据库)部署到使用 EC2 的可配置集群上。但是 ,如果要实现这种基本用例之外的其他解决方案,比如使用 EC2 上已经部署的 MySQL 实例或使用 Amazon 的 SimpleDB,就需要多费些精力了。在本文中,我将讲解如何快速简便地创建一个简单的应用程序,它通过 Eclipse 在 Amazon 基础设施上使用 Groovlet。除了开发用的机器之外,您不 需要任何硬件,也不需要为将使用的任何软件支付许可证费用。(必须为在 Amazon 的基础设施上驻留代码支付很少一部分费用)。EC2 入门EC2 是廉价的使用 “小实例” — 用于运行简单应用程序的映像,它们并不使用大量空间 或内存 — 每小时收费 10 美分。带宽费用为收发的每 1GB 数据大约 30 美分 。还可以 “租借” IP 地址,每小时收费 1 美分(但是会保留它大约两天)。 部署和测试本文的应用程序大约花了我 60 美分。应该说这很便宜,我今天喝咖 啡就花了 3.50 美元。要想使用 EC2,必须创建一个 Amazon Web Services (AWS) 账户。如果您还 不是注册的 Amazon 客户,就需要提供信用卡号码 — EC2 不是免费的(但注册 是免费的)。注册之后,您会收到一个 Access Key ID 和 Secret Access Key ,这是安全地使用 EC2 所必需的。对于使用 AWS for Eclipse 插件,Amazon 建议使用 Eclipse 3.5;否则, 需要先安装一些组件,这些组件在这个最新 Eclipse 版本中是默认的。因为您 要创建和部署 Web 应用程序,我建议使用 Eclipse IDE for Java EE Developers,它包含一个漂亮的 Java EE 透视图,支持构建 Web 应用程序。安装 AWS 插件套件与安装其他 Eclipse 插件一样,要想安装 Amazon 的 AWS 插件,必须在 Eclipse 中通过 Help > Install New Software 找到插件的最新版本。 Install 对话框打开之后,在 Work with 文本框中输入 http://aws.amazon.com/eclipse。文本框下面会出现可用插件列表,见图 1。 选择整个 AWS Toolkit for Eclipse 选项,然后单击 OK。接受许可协议之后, Eclipse 安装这个插件。很可能需要重新启动 Eclipse。图 1. 下载 AWS 插件

这个 Eclipse 插件允许指定 Web 应用程序的目标运行时环境。对于本文, 将使用 Tomcat 6,所以需要先 下载 并安装 Tomcat 6。尽管将把 Web 应用程 序部署到 EC2 上,而 EC2 运行一个 Tomcat 服务器集群,但是仍然希望在本地 测试和运行应用程序,因为这是免费的。