




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 Google云计算(j sun)原理与应用共三十页提 纲 Google文件系统GFS 分布式数据处理MapReduce 分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控(jin kn)基础架构Dapper Google应用程序引擎 共三十页 Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务(fw) Google App Engine编程实践 共三十页Google App Engine简介(jin ji)Google App Engine是一个由Py
2、thon应用服务器群、Bigtable数据库及GFS数据储存服务组成的平台,它能为开发者提供一体化的、可自动升级的在线应用服务 开发人员在Google的基础架构上运行网络应用程序 用户可以使用(shyng)域上的免费域名为应用程序提供服务,也可以使用Google企业应用套件从自己的域为它提供服务 注册一个免费账户即可开发和发布应用程序,而且不需要承担任何费用和责任共三十页Google App Engine架构(ji u) Google App Engine架构(ji u)整体架构 前端和静态文件 应用服务器 服务器群 应用管理节点 共三十页基本概念 沙盒Google App Engine为每个
3、应用程序提供了一个安全运行环境Python运行时环境Google App Engine支持Java和Python语言;提供一个由Python语言编写的网络应用程序框架webapp数据库分布式存储数据库 Data Store Google账户 开发应用程序必须拥有一个Google账户 App Engine服务Google App Engine提供了一些服务 开发流程(lichng) Google App Engine开发应用程序必须遵守一定的开发流程 配额和限制 Google账户提供的免费空间和流量有一定的配额和限制 共三十页 Google应用程序引擎 Google App Engine简介(j
4、in ji) 应用程序环境 Google App Engine服务 Google App Engine编程实践 共三十页应用程序环境(hunjng)特性 (1)动态网络服务功能。能够完全(wnqun)支持常用的网络技术 应用程序环境特性 (2)具有持久存储的空间。平台可支持一些基本操作,如查询、分类和事务的操作 (4)可以对用户的身份进行验证,并且支持使用Google账户发送邮件 (5)有一个功能完整的本地开发环境,可以在自身的计算机上模拟Google App Engine环境 (6)支持在指定时间或定期触发事件的计划任务 (3)具有自主平衡网络和系统的负载、自动进行扩展的功能 共三十页Pyt
5、hon Python运行时环境包括Python标准库,开发人员可以调用库中的方法来实现程序功能,但是不能使用沙盒限制的库方法(尝试打开套接字、向文件进行写入操作等),为便于编程,Google App Engine将一些模块进行了禁用在Python运行时环境中,应用程序只能以Python语言编写,扩展代码中若有C语言,则应用程序将不受系统支持Python环境为开发平台中的数据库、Google账户、网址(wn zh)抓取和电子邮件服务等提供了丰富的Python APIGoogle App Engine还提供了一个简单的Python网络应用程序框架Webapp共三十页030201用户应用程序只能通过
6、Google App Engine提供的网址抓取API和电子邮件服务(fw)API来访问互联网中其他计算机;只能在标准接口上通过HTTP或HTTPS来进行 应用程序只有在响应网络(wnglu)请求时才运行,且响应时间必须极短(几秒之内完成)。同时,请求处理的程序不能在自己的响应发送后产生子进程或执行代码 沙盒对用户进行如下限制 应用程序无法对Google App Engine的文件系统进行写入操作,只能读取应用程序代码上的文件,并且该应用程序必须使用Data Store数据库来存储应用程序运行期间持续存在的数据 沙盒给开发人员提供了一个虚拟的环境,这个环境使应用程序与其他开发者开发使用的程序相
7、隔离,从而保证每个使用者可以安全地开发自己的应用程序 共三十页Google App Engine SDK 使用SDK时,可以在本地计算机上模拟包括所有Google App Engine服务的网络服务器应用程序,该SDK包括Google App Engine中的所有API和库。该网络服务器还可以模拟沙盒环境 使用Python实现,这个开发套件可以在装有Python 2.5的任何平台上面运行,包括Windows、Mac OS X和Linux等,开发人员可以在Python网站上获得适合自己系统(xtng)的Python 该开发套件还包括将应用程序上传到Google App Engine之上的工具。用
8、户创建自己应用程序的代码、静态文件和配置文件之后,就可以运行这个工具将数据上传到平台上面 系统中有一个管理控制台,这个管理控制台有一个网络接口,用于管理在Google App Engine上运行的应用程序 共三十页 Google应用程序引擎 Google App Engine简介 应用程序环境(hunjng) Google App Engine服务 Google App Engine编程实践 共三十页图像(t xin)操作API1)Image类来自于google.appengine.api.images模块,该类可以用来封装图像信息及转换该图像;实例方法:(1)resize(width=0,
9、height=0):该方法用来缩放图像(2)crop(left_x, top_y, right_x, bottom_y):该方法可以将图像裁剪到指定边界框的大小(dxio),并且裁剪后以相同的格式返回转换的图像(3)rotate(image_data, degrees, output_encoding=images.PNG):该方法是用来旋转图像(4)horizontal_flip(image_data, output_encoding=images.PNG):该函数表示对图像进行水平翻转。(5)vertical_flip(image_data, output_encoding=images.
10、PNG):该函数表示垂直地翻转图像,并且转换后的图像与以前的格式一样 2)exception类google.appengine.api.images 包为用户主要提供以下exception类:(1)exception Error():这是该包中所有异常的基类(2)exception TransformationError():表示尝试转换图像时发生错误(3)exception BadRequestError():表示转换参数无效 共三十页邮件(yujin)API 邮件(yujin)API为用户提供两种方式来发送电子邮件:mail.send_mail()函数和EmailMessage类 1)允许
11、的附件类型图像格式;文本格式;应用程序格式 2)EmailMessage(1)构造函数 (2)实例方法 (3)函数 (a)is_email_valid(email_address) (b)send_mail(sender, to, subject, body, *kw)(4)异常 (a)exception Error() (b)exception BadRequestError() (c)exception InvalidEmailError() 共三十页Memcache API Memcache API提供了一个基于类的接口,以便和其他(qt)Memcache API相兼容 1)构造函数cl
12、ass Client()产生与Memcache服务通信的客户端2)实例方法(1)set(key, value, time=0, min_compress_len=0) (2)get(key) (3)delete(key, seconds=0) (4)add(key, value, time=0, min_compress_len=0) (5)replace(key, value, time=0, min_compress_len=0) (6)incr(key, delta=1) (7)decr(key, delta=1) (8)flush_all() (9)get_stats() 共三十页用户
13、(yngh)API 1)User对象2)登录网址3)User类(1)构造函数 (2)实例方法(fngf) (a)nickname() (b)email()(3)函数 (a)create_login_url(dest_url) (b)create_logout_url(dest_url) (c)get_current_user() (4)异常 (a)exceptionError() (b)exceptionUserNotFoundError() (c)exception RedirectTooLongError() 共三十页数据库API 1)Model类(1)类方法(fngf) (a)Model
14、.get(keys) (b)Model.all() (c)Model.gql(query_string, *args, *kwds) (2)实例方法 (a)key() (b)put() (c)delete() 2)Property类(1)类构造函数(2)类属性(3)实例方法 (a)default_value() (b)validate(value) (c)empty(value) 共三十页数据库API 3)Query类(1)构造函数(2)实例(shl)方法 (a)filter(property_operator, value) (b)order(property) (c)ancestor(an
15、cestor) (d)get() (e)fetch(limit, offset=0) (f)count(limit)4)GqlQuery类(1)构造函数(2)实例方法 (a)bind(*args, *kwds) (b)get() (c)fetch(limit, offset=0) (d)count(limit) 共三十页数据库API 5)Key类(1)构造函数(2)类方法(fngf)(3)实例方法 (a)app() (b)kind() (c)id() (d)name()(4)函数 (a)get(keys) (b)put(models) (c)delete(models) (d)run_in_t
16、ransaction(function, *args, *kwargs) 共三十页 Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务(fw) Google App Engine编程实践 共三十页相比其他Web主机服务,Google App Engine有下列独到之处:(1)将Web应用部署到Google的基础设施(j ch sh sh)之上(2)提供数据存储服务(3)集成了Gmail、Google User认证、URL Fetch、Memcache和图片操作(PIL)等多种API(4)Google App Engine提供存
17、储空间为500M,每月500万页面访问的免费服务,超出部分需要支付相应费用 共三十页Java在Google App Engine上怎么实现(shxin)个人空间日志管理功能? 1搭建开发平台(1)下载JDK1.6安装并配置好环境变量(2)下载eclipse3.6安装包,解压(3)下载Google Plugin for Eclipse3.6,解压后将插件包中feature下的文件复制到 eclipse的feature目录下,将插件包中plugin下的文件复制到eclipse的plugin目录下(也可以通过建立(jinl)link文件来安装插件)(4)下载appengine-java-sdk,在e
18、clipse中依次点击WindowPreferenceGoogleApp EngineAdd,添加sdk根目录 添加appengine java sdk环境 共三十页2.创建工程(gngchng)并测试创建一个新的Web Application新建名为zqspace的项目(xingm),包名为.xtu,项目目录结构如图示 共三十页web应用(yngyng)部署到Google App Engine 共三十页3.开发个人空间zqspace1)需求分析2)数据模型设计3)页面设计 (a)首页 (b)日志列表页面 (c)写日志的界面 4) 实体类编码5)业务逻辑编码6)读取日志7)删除(shnch)日
19、志8)写日志9)修改日志10)权限管理字 段 名描 述类 型id主键(自增)Longauthor作者Usertitle标题Stringcontent内容Stringtag标签Stringdate更新时间Date共三十页4项目(xingm)部署编码完成后,先在本地测试,通过后,就可以将项目发布到Google App Engine上 共三十页1Google云计算技术包括哪些(nxi)内容?2当前主流分布式文件系统有哪些?各有什么优缺点?3GFS采用了哪些容错措施来确保整个系统的可靠性?4MapReduce与传统的分布式程序设计相比有何优点?5Chubby的设计目标是什么?Paxos算法在Chubb
20、y中起什么作用?6阐述Bigtable的数据模型和系统架构。7分布式存储系统Megastore的核心技术是什么?8大规模分布式系统的监控基础架构Dapper关键技术是什么?9Google App Engine提供了哪些服务?10Google App Engine的沙盒对开发人员进行哪些限制?习题(xt)共三十页阅读(yud)精选1 The Google File System/courses/cs295-11/2006/gfs.pdf2 MapReduce: Simplied Data Processing on Large Clustershttp/demke/2227S.12/Papers/mapreduce-osdi04.pdf3 The Chubby lock service for loosely-coupled distributed systems/external_content/untrusted_dlcp/zh-CN/archive/chubby-osdi06.pdf4 Bigtable: A D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025店铺转让合同协议书范本下载
- 上海中学高三数学试卷及答案大全
- 肇庆市实验中学高中历史二教案:第课改变世界的工业革命教案
- 2025科技咨询合同示范文本
- 机械产品标准化与模块化考核试卷
- 科技创新趋势的智能家居和智能穿戴设备市场考核试卷
- 编织品在建筑工程中的加固应用考核试卷
- 无线数据传输考核试卷
- 煤炭转化与化工产品高端化发展考核试卷
- 今日会计考试试题及答案
- 2025-2030中国射频治疗设备行业市场发展前景及发展趋势与投资风险研究报告
- 砼构件预制件的模具设计与制造技术考核试卷
- 《跨行业并购问题研究的理论基础与文献综述》6300字
- 2025中煤鄂尔多斯能源化工有限公司高校毕业生招聘98人笔试参考题库附带答案详解
- 2025年保密观考试题库及答案
- 导游知识培训课件
- 西师大版小学五年级数学(下)期中测试题(1-4单元)(2)(含答案)
- 用户思维在产品创新中的应用案例
- 2025《四川省建设工程施工总包合同》示范文本
- 2025年辽宁省沈阳市和平区九年级中考零模数学试卷(原卷版+解析版)
- 施工入场考试题及答案
评论
0/150
提交评论