Board logo

标题: 构建一个集成了 Web 服务的可移植 Java 旅行应用程序(4) [打印本页]

作者: look_w    时间: 2018-10-22 17:06     标题: 构建一个集成了 Web 服务的可移植 Java 旅行应用程序(4)

步骤  8. 将应用程序推送到云中构造和创建应用程序之后,我们就可以在 Bluemix 上部署它们。部署是自动的,即将应用程序从本地 VM 迁移到基于云 的VM 上。
使用 Cloud Foundry CLI cf push 命令启动部署。(在 Cloud Foundry    文档中,部署过程通常称为 推送应用程序。)
1
cf push MyVacations –path MYDIR\MyVacations.war




push      命令执行多个分阶段的任务,比如找到一个容器来运行应用程序,为容器提供合适的软件和系统资源,启动应用程序的一个或多个实例,并在 Cloud      Controller 数据库中保存应用程序的预期状态。
步骤 9. 测试应用程序为了达到测试的目的,您需要对应用程序进行一个简单的运行测试,然后测试应用程序是否是可移植的。
为了简单起见,登录页面允许使用任意用户名和密码进行访问,如图用户在系统中不存在,就会被创建。
登录后,访问搜索页面,插入搜索参数并单击 Search。                        
图 6. 带有结果地图的搜索页面如果单击某个标记,就会显示与该酒店相关的简要信息。
图 7. 带有关于旅店的简要信息的窗口为了在不同的云平台上测试可移植性,我选择在 Pivotal 平台和 Google App Engine 上部署 MyVacations。
要在 GoogleAE 上进行部署,所使用的工具和技术包括:
因为 Google App Engine 支持基于 Spring 框架的 Java Web 应用程序,我的应用程序不需要做任何改动。
Google App Engine SDK (安装在 Eclipse 上) 包含一个 Web          服务器,用于在模拟的本地环境中测试应用程序,这样便可在没有 Google 用户帐号的情况下测试应用程序。(还可以在远程的 Google          服务器上运行应用程序)。
用于 Eclipse 的 Google 插件在 Run 菜单中添加了启动这台服务器的选项。在这种场景中,安装在            Google App Engine 上的 MyVacations 将通过其 RESTful API 调用安装在 Bluemix 上的            UserService 应用程序,这演示了不使用内部平台服务的应用程序的高级可移植性。
图 8. 本地主机上的 Google App Engine本地主机上的 Google App Engine" width="704" height="63">在 Pivotal 上进行部署使用的工具和技术包括:
Cloud Foundry plugin for Eclipse 支持在 Pivotal                平台上进行部署。这样便可在目标环境上直接测试应用程序,无需离开 IDE。您需要一个有效的 Pivotal 用户帐号。
图 9. Pivotal Cloud Foundry 上的部署在这个平台上,您无需进行任何改动便可部署应用程序,也可以进行小小改动后部署 UserService 应用程序。
结束语这个应用程序仅仅显示了将内部和外部服务与云应用程序集成在一起的一些可能性。我利用了 Bluemix 具有的一些优点:
在可移植性问题上,因为 Bluemix 基于 Cloud                  Foundry,您可以自由地将它迁移到其他平台。让我们通过两个例子演示一下这种可移植性:
最后要注意的是,您必须将云应用程序设计为能够利用分布式平台的潜力,同时提供可靠、高效与快速的服务。我认为我的 MyVacations  应用程序大体上做到了这一点。当然,在 UserService  遇到大量请求时,可能导致用户响应速度较慢。但您可以尝试针对这一点进行性能提升(比如使用异步的消息收发对组件进行去耦,这样任务就不会在收到响应之前一直阻塞)。适用这类应用程序的性能提升手段有好几种,您有时间可以好好地研究一下它们。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0