谷歌云平台的搭建.docx_第1页
谷歌云平台的搭建.docx_第2页
谷歌云平台的搭建.docx_第3页
谷歌云平台的搭建.docx_第4页
谷歌云平台的搭建.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1.2谷歌Google App Engine平台Google App Engine是Google在2008年发布的一个平台,用户可以在Google的基础框架上开发和部署自己的应用程序,它允许用户在本地构建Web之后,再将其部署到Google云服务器上,Google App Engine的配额包括:3个应用/开发者、500MB持久存储空间、2000封邮件/天(连续24小时)、10 GB出站带宽、10 GB入站带宽、200M CPU兆周、650k HTTP请求、160k URL Fetch API调用和2.5M Datastore API调用,创建Google App Engine是免费的,用户发布一个应用程序,无需承担任何费用和责任即可立即使用该应用程序。用户可以使用Google提供的免费域名为自己的应用程序提供服务,也可以使用Google Apps从用户自己的域为它提供服务,用户也可以与全世界的人共享自己的应用程序,也可以限制为部分人的访问。Google App Engine提供了一个Web应用运行框架,Google App Engine应用程序易于运行、部署和拓展,用户也不需用预留资源,例如RAM、CPU等。Google App Engine起初只支持Python语言,2009年,Google发布了Google App Engine for Java,将Google App Engine向Java开发人员开放,Google App Engine for Java为Java开发提供基于浏览器的、易于使用的Ajax GUI、Eclipse 工具支持,这是Google App Engine for Java由于其他云计算解决方案的优势。Google推出了AJAX(Asynchronous Javascript+XML,即异步JavaScript和XML)应用开发包GWT(Google Web Toolkit),支持开发者利用Java语言开发AJAX应用。3.2Google Web Toolkit开发框架及其Web开发优势GWT是Google公司向Java开发人员提供的基于Java语言开发AJAX应用的开发包,使用GWT可以通过编写Java代码和传统的HTML页面来构造AJAX,并与服务器实现异步通信。开发者可以使用任何Java开发工具来编写基于GWT的Java Web应用。GWT自带的编译器可以将Web客户端的Java代码编译成JavaScript代码。3.2.1Google Web Toolkit开发框架简介Google Web Toolkit (GWT)是一个可以用Java语言开发AJAX功能的应用框架,Eclipse 集成了对 GWT 脚本的支持,在 Eclipse 环境安装 GWT组件进行 AJAX Web 应用程序的开发, GWT本身是开源的,GWT提供了一组基于Java语言的开发包,开发出来的Java应用程序将由GWT开发包提供的编译工具编译后生成对应的、应用了AJAX技术的Web应用,Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替4。基于 Eclipse 的 GWT 开发环境是业界公认的最佳 GWT 开发环境,开发人员使用GWT可以更有效的开发和部署主流Web应用程序。3.2.2GWT开发Web应用程序的优势前面一节已经叙述,GWT可以用Java语言开发AJAX,首先本文就来阐明一下面向对象的Java代替JavaScript进行Web开发的优点。JavaScript 是一种脚本语言,可以用来制作与网络无关的,用户交互复杂的软件,JavaScript是一种基于对象 (Object Based) 以及事件驱动 (Event Driver) 的编程语言,其使用放在 prototype 对象里,通过模拟集成,可以实现两个实例对象中的数据共享,但这其实并不是真正的继承关系,更无法实现多层继承关系。因此,直接使用 JavaScript 来完成 Ajax 开发复杂程度大,会更多的耗费时间,另外代码重复使用率低,不容易调试,后期维护需要很大的工作量。相比JavaScript,Java 是真正的面向对象的语言,基于 Java 这一种面向对象的语言,GWT 将真正的软件工程方法带入到 AJAX应用程序开发当中。GWT 中提供了丰富的基础组件,将开发人员从繁琐而又重复的 AJAX 构建工作中解放出来,更加专注于业务层功能的完善和程序性能的优化。开发人员通过GWT的使用可以快速地构建以及维护复杂的、高性能的 JavaScript 应用程序。所以,本文有必要先来回顾一下AJAX技术开发Web的优势。通过AJAX技术,使用JavaScript创建XMLHttpRequest对象直接与服务器进行交互,在不重载页面的情况下就可以完成与Web服务器的数据交换,由于在通信的过程中传输的数据是开发人员可控制的有用数据,消除了冗余的 HTML 代码,减少了带宽占用,很大程度上减少了 Web 应用系统的响应时间。另外,由于使用 XMLHttpRequest 对象作为后台通信工具,页面不需要全部刷新,只需要对局部改变的数据进行刷新,就可以实现类似于桌面应用的效果。综上所述,GWT的特性总结如下。GWT提供动态、可重组的UI组件,每个组件对应GWT中的一个类,同时GWT可以实现简单的RPC调用,可以方便的实现客户端和服务器之间的通信,特别是使异步通信变得更加简单。在开发阶段不需要生成HTML界面,用户开发的代码实际上是在JVM上运行,这样用户就可以用传统的Java调试方法进行程序调试4,这样就能减少软件开发时间,在大多数情况下,用GWT开发出的程序支持IE、Firefox、Saferi、Mozilla和Opera,用户开发应用程序时,不需要担心浏览器的兼容问题,另外GWT具备可扩展性,如果GWT提供的API不能满足开发人员的需求,开发人员可以将JSNI将JavaScript语句直接嵌入至Java代码中4。3.3开发环境搭建基于Google App Engine的开发,本文运用Java语言,通过GWT的框架进行开发,所以,开发环境的搭建,首先要从Java开发环境开始,在安装了JDK和Eclipse之后,在Eclipse中安装GWT插件,这样,本文的开发才可以开始。本文简要叙述开发环境搭建步骤,详细的搭建步骤在附录2中详细记叙。3.3.1JDK安装及环境变量配置步骤一:安装JDK根据个人计算机位数(32位或64位)从ORACLE公司官方网站选择合适的版本(版本在1.7及以上),本电脑为32位,因而下载的是jdk-7-windows- i586.exe,点击安装,同时会安装JRE,这是要记住自己的安装路径,安装完成后,设置环境变量时需要用到。步骤二:配置path、classpath、Java_home等环境变量,图3-1为classpath变量步骤。图3-1 classpath配置环境变量设置好后,打开“运行”窗口,输入cmd并回车,在命令行里,输入命令javac,如果出现如图3-2所示的信息,则表示JDK的安装和配置成功,就可以进行下一步的安装了。图3-2 环境变量配置成功测试3.3.2Eclipse安装进入Eclipse官方网站http:/www.E/,点击“Download Eclipse”,选择和自己操作系统位数相同的版本,本体统是32位,因此选择Windows 32 Bit。将下载好的文件解压,直接双击Eclipse图标就可以打开Eclipse软件了。3.3.3GWT安装步骤一:安装freegate自由门因为GWT为在线安装,需要访问Google官方网站,并在线从其中下载安装和升级的软件包,为了保证对资源的有效访问,本文需要安装freegate自由门软件,在GWT安装过程中,保持freegate一直处于运行状态,不要关闭该软件,freegate打开后的界面如图3-3所示:图3-3 自由门软件步骤二:在Eclipse中安装GWT插件打开Eclipse,点击HelpInstall New Software, 弹出如图3-10所示对话框,在Work with 后添加Eclipse的GWT插件在线资源连接,不同版本的Eclipse插件连接如下:Eclipse 4.3 (Kepler)/Eclipse/plugin/4.3Eclipse 3.8/4.2 (Juno)/Eclipse/plugin/4.2Eclipse 3.7 (Indigo)/Eclipse/plugin/3.7点击回车,经过一段时间的等待,如图3-4所示,Name中将会出现如下资源,本文选择Google Plugin for Eclipse(required)和SDKs。图3-4 选择相关插件点击Next,将会出现你选择安装的插件,核对无误后,点击Next,这时会出现安装协议,选择accept,点击finish,即可进入安装了。安装的过程时间相对较长,中途会出现一个warning,点击ok即可。图3-5 在安装过程中最后会跳出对话框提醒需要重新启动Eclipse,才可以完成安装,选择ok即可。重新启动后的Eclipse将会多出一个GWT图标,如图3-6所示,图3-6 GWT安装成功这就代表GWT插件安装成功了,点此图标可新建GWT工程,点右侧箭头可以出现下拉菜单,有调试、运行等按钮。云平台托管选用Google App Engine 云平台开发应用程序,最大的意义就是将应用程序发布到Google提供的可靠的基础设施中,使它更易于维护和扩展,所以本文需要进行一下步骤,将该应用程序托管到Google云上。 进入Google App Engin网站(),申请Google App Engine 账户,账户创建成功后,在App Engine for Java 站点将看到一个空的应用程序列表,单击Create New Application按钮,将会出现如图4-9所示的页面,这时需要输入一个独一无二的应用程序名(ID)和简单描述,这时将会显示有应用程序标识符的确认消息,这样就可以从Eclipse中布置自己的应用程序了。图4-9 创建一个新的App Engine for Java 应用程序如图4-10是应用程序名创建成功的界面,需记住此ID号,在进行布置时将会用到。图 4-10 创建成功 打开Eclipse,选中将要部署的项目名称,单击Deploy按钮(如图4-11所示形状像飞机的按钮)。图4-11 Deploy按钮在弹出的窗口中点击 App Engine project setting链接,出现如图4-12所示的窗口,在Application ID中填入 步骤一所填的应用程序名(ID),点击OK后点击Deploy即可,这样本文的程序就部署到了Google云端。 图4-12 部署应用程序这时再次登录本文的Google App Engine网站,就能看到本文这个应用程序的状态,如图4-13所示。图4-13 部署成功单击右侧的running,该应用程序就会运行。工程目录结构本工程的目录结构如图4-2所示:图4-2 目录结构如图所示,可以看到和简单的基于servlet的应用程序相比较,Google App for Java 为 GWT应用程序提供了更多的代码工件,为GWT应用程序提供的一个额外的JAR对于基于servlet的应用程序并不是必须的,这个JAR文件就是gwt-servlet.jar。同时,我们可以看到其他工件包括:src /com.bishe.myproject/HY.gwt.xml:GWT 模块描述符src/ com.bishe.myproject.server/GreetingServiceImpl.java:对服务器的问候访问 src/ com.bishe.myproject.client/GreetingService.java:问候访问服务的同步 API src /com.bishe.myproject.client/G:reetingServiceAsync.java:问候服务的异步 API src/ com.bishe.myproject.client/HY.java:构建启动 GUI 的主要入口点 war/WEB-INF/web.xml:配置 GreetingServiceImpl 的部署描述符 war/HY.html:显示 GWT GUI 的 HTML 页面 war/HY.css:GWT GUI 的样式表在编译项目时,Client文件夹下的代码会被编译成javascript代码,在客户端进行运行。Server文件夹下的代码会被编译成*.class文件,在google云计算服务器端进行运行,所以有些不被支持的类库就不能用,但是google云计算平台会提供一套功能相同的API供使用。Shared文件夹代码被编译成javascript代码和*.class文件,在客端和服务器端都有运行。4.2 页面设计及编程实现根据已经提供的配置,Eclipse 的 GWT 工具创建了一个启动应用程序,包含一个 HTML 前端(HY.html,如图4-7所示),可以加载 hy.js 和 hy.nocache.js。这是由GWT从Java代码中生成的JavaScript代码;也就是说,位于 com.bishe.myproject.client 包中的src目录下的代码(参见图4-3、4-4、4-5)。创建 GUI 的主要入口点是 com.bishe.myproject.client.HY.java,如图4-3所示。该类创建 GWT GUI 元素并将它们与 HY.html 中的 HTML DOM 元素关联起来(参见图4-7)。GWT 知道HY类是应用程序的主要入口点,因为 HY.gwt.xml 使用入口点元素进行了指定。GreetingService接口在 src/com.bishe.myproject.client.HY.java中被定义(参见图4-3)。由于Ajax 天生就具有异步性,因此 GWT 定义了一个异步接口来访问远程服务。HY使用src/com.bishe.myproject.client.GreetingServiceAsync.java 中定义的异步接口(参见图4-6)。 src/com.bishe.myproject/HY.gwt.html为GWT 模块描述符,其部分代码如图4-3所示,其声明了 GUI 应用程序的主要入口点,默认情况下模块只有两个标签,指明此模块继承的父模块,所有的GWT工程都要继承自com.google.gwt.user.User模块;指明此GWT程序的入口点类,这里是src/ com.bishe.myproject.client/HY.java图4-3 GWT模块描述符代码GreetingServiceImpl 是问候服务应用程序的实际实现,如图4-4所示,它运行在服务器端,并且客户机代码通过一个远程过程调用来调用它。图4-4 GreetingServiceImpl部分代码GreetingService 是客户机代码使用的远程过程调用的接口,代码如图4-5所示:图4-5 GreetingService代码GreetingServiceAsync 是客户机代码将使用的实际接口,如图4-6 所示。每个方法都提供了一个回调对象,这样就可以在完成远程过程调用后收到异步通知。至于内部原理,GWT 使用了 Ajax。在客户机上使用 Ajax 时,最好不要阻塞客户机,这样就不会阻塞异步调用。阻塞会违背使用 Ajax 的初衷:图4-6 GreetingServiceAsync代码HY.html为HTML前端,其关键代码如图4-7所示:图4-7 HY.html关键代码在编写程序之前,先在war文件下建立名为images的文件夹,用于存放页面设计所需的图片。从图中可以看到GWT的HTML页面跟普通的HTML页面没什么区别,可以使用一切HTML标签。其中, 是在“交换机实验”这个按钮上实现链接,链接到名为“jiaohuanji.html”的介绍交换机实验的页面。 这个HTML中必须引入这段JavaScript代码,用来加载GWT工程模块,之后GWT读入模块文件(HY.gwt.xml)来查找入口点(EntryPoint)类,整个GWT程序才得以运行。另外,所有GWT的标签都应该出现在这段JavaScript代码之前。此页面编写完之后在war目录下新建名为jiaohuanji的html页面,其主要代码如图4-8所示:图4-8 交换机页面主要代码4.3 本地调试及运行 选中当前工程,点击run as按钮,选择Web Application选项,工程进入调试状态,这时控制台会出现如图4-9所示信息:图4-9 控制台信息 等待一段时间后Development Mode会出现如图4-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论