云计算第二章24教学课件

上传人:沈*** 文档编号:178286501 上传时间:2022-12-28 格式:PPT 页数:28 大小:1.78MB
返回 下载 相关 举报
云计算第二章24教学课件_第1页
第1页 / 共28页
云计算第二章24教学课件_第2页
第2页 / 共28页
云计算第二章24教学课件_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第第2章章 Google云计算原理与应云计算原理与应用用提提 纲纲 Google文件系统GFS 分布式数据处理MapReduce 分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控基础架构Dapper Google应用程序引擎 Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务 Google App Engine编程实践 Google App Engine简介Google App Engine是一个由Python应用服务器群、Bigtable数据库及GFS数据储存服务组成的平台,它能为开发者提供一体化的、可自动升级的在线应用服务 开发人员在Google的基础架构上运行网络应用程序 用户可以使用域上的免费域名为应用程序提供服务,也可以使用Google企业应用套件从自己的域为它提供服务 注册一个免费账户即可开发和发布应用程序,而且不需要承担任何费用和责任Google App Engine架构 Google App EngineGoogle App Engine架构架构整体架构 前端和静态文件前端和静态文件 应用服务器应用服务器 服务器群 应用管理节点 基本概念 沙盒Google App Engine为每个应用程序提供了一个安全运行环境Python运行时环境Google App Engine支持Java和Python语言;提供一个由Python语言编写的网络应用程序框架webapp数据库分布式存储数据库 Data Store Google账户 开发应用程序必须拥有一个Google账户 App Engine服务Google App Engine提供了一些服务 开发流程 Google App Engine开发应用程序必须遵守一定的开发流程 配额和限制 Google账户提供的免费空间和流量有一定的配额和限制 Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务 Google App Engine编程实践 应用程序环境特性(1)动态网络服务功能。能够完全支持常用的网络技术 应用程序环境特性应用程序环境特性(2)具有持久存储的空间。平台可支持一些基本操作,如查询、分类和事务的操作(4)可以对用户的身份进行验证,并且支持使用Google账户发送邮件(5)有一个功能完整的本地开发环境,可以在自身的计算机上模拟Google App Engine环境(6)支持在指定时间或定期触发事件的计划任务(3)具有自主平衡网络和系统的负载、自动进行扩展的功能 Python Python运行时环境包括Python标准库,开发人员可以调用库中的方法来实现程序功能,但是不能使用沙盒限制的库方法(尝试打开套接字、向文件进行写入操作等),为便于编程,Google App Engine将一些模块进行了禁用在Python运行时环境中,应用程序只能以Python语言编写,扩展代码中若有C语言,则应用程序将不受系统支持Python环境为开发平台中的数据库、Google账户、网址抓取和电子邮件服务等提供了丰富的Python APIGoogle App Engine还提供了一个简单的Python网络应用程序框架Webapp030302020101n用户应用程序只能通过Google App Engine提供的网址抓取API和电子邮件服务API来访问互联网中其他计算机;只能在标准接口上通过HTTP或HTTPS来进行 n应用程序只有在响应网络请求时才运行,且响应时间必须极短(几秒之内完成)。同时,请求处理的程序不能在自己的响应发送后产生子进程或执行代码 沙盒对用户进行如下限制 n应用程序无法对Google App Engine的文件系统进行写入操作,只能读取应用程序代码上的文件,并且该应用程序必须使用Data Store数据库来存储应用程序运行期间持续存在的数据 沙盒给开发人员提供了一个虚拟的环境虚拟的环境,这个环境使应用程序与其他开发者开发使用的程序相隔离隔离,从而保证每个使用者可以安全地开发自己的应用程序 Google App Engine SDK 使用SDK时,可以在本地计算机上模拟包括所有Google App Engine服务的网络服务器应用程序,该SDK包括Google App Engine中的所有API和库。该网络服务器还可以模拟沙盒环境 使用Python实现,这个开发套件可以在装有Python 2.5的任何平台上面运行,包括Windows、Mac OS X和Linux等,开发人员可以在Python网站上获得适合自己系统的Python 该开发套件还包括将应用程序上传到Google App Engine之上的工具。用户创建自己应用程序的代码、静态文件和配置文件之后,就可以运行这个工具将数据上传到平台上面 系统中有一个管理控制台,这个管理控制台有一个网络接口,用于管理在Google App Engine上运行的应用程序 Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务 Google App Engine编程实践 图像操作API1)Image类来自于google.appengine.api.images模块,该类可以用来封装图像信息及转换该图像;实例方法:(1)resize(width=0,height=0):该方法用来缩放图像(2)crop(left_x,top_y,right_x,bottom_y):该方法可以将图像裁剪到指定边界框的大小,并且裁剪后以相同的格式返回转换的图像(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.PNG):该函数表示垂直地翻转图像,并且转换后的图像与以前的格式一样 2)exception类google.appengine.api.images 包为用户主要提供以下exception类:(1)exception Error():这是该包中所有异常的基类(2)exception TransformationError():表示尝试转换图像时发生错误(3)exception BadRequestError():表示转换参数无效 邮件API 邮件API为用户提供两种方式来发送电子邮件:mail.send_mail()函数和EmailMessage类 1)允许的附件类型图像格式;文本格式;应用程序格式 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提供了一个基于类的接口,以便和其他Memcache API相兼容 1)构造函数class 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()用户API 1)User对象2)登录网址3)User类(1)构造函数(2)实例方法 (a)nickname()(b)email()(3)函数 (a)create_login_url(dest_url)(b)create_logout_url(dest_url)(c)get_current_user()(4)异常 (a)exception Error()(b)exception UserNotFoundError()(c)exception RedirectTooLongError()数据库API 1)Model类(1)类方法 (a)Model.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)实例方法 (a)filter(property_operator,value)(b)order(property)(c)ancestor(ancestor)(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)类方法(3)实例方法 (a)app()(b)kind()(c)id()(d)name()(4)函数 (a)get(keys)(b)put(models)(c)delete(models)(d)run_in_transaction(function,*args,*kwargs)Google应用程序引擎 Google App Engine简介 应用程序环境 Google App Engine服务 Google App Engine编程实践 相比其他Web主机服务,Google App Engine有下列独到之处:(1)将Web应用部署到Google的基础设施之上(2)提供数据存储服务(3)集成了Gmail、Google User认证、URL Fetch、Memcache和图片操作(PIL)等多种API(4)Google App Engine提供存储空间为500M,每月500万页面访问的免费服务,超出部分需要支付相应费用 JavaJava在在Google App EngineGoogle App Engine上怎么实现个人空间日志管理功能?上怎么实现个人空间日志管理功能?1 1搭建开发平台搭建开发平台(1)下载JDK1.6安装并配置好环境变量(2)下载eclipse3.6安装包,解压(3)下载Google Plugin for Eclipse3.6,解压后将插件包中feature下的文件复制到 eclipse的feature目录下,将插件包中plugin下的文件复制到eclipse的plugin目录下(也可以通过建立link文件来安装插件)(4)下载appengine-java-sdk,在eclipse中依次点击WindowPreferenceGoogleApp EngineAdd,添加sdk根目录 添加添加appengine java sdkappengine java sdk环境环境 2.2.创建工程并测试创建工程并测试创建一个新的Web Application新建名为新建名为zqspacezqspace的项目,包名的项目,包名为为cn.edu.xtucn.edu.xtu,项目目录结构,项目目录结构如图示如图示 web应用部署到Google App Engine 3.3.开发个人空间开发个人空间zqspacezqspace1)需求分析2)数据模型设计3)页面设计(a)首页 (b)日志列表页面 (c)写日志的界面 4)实体类编码5)业务逻辑编码6)读取日志7)删除日志8)写日志9)修改日志10)权限管理字 段 名描 述类 型id主键(自增)Longauthor作者Usertitle标题Stringcontent内容Stringtag标签Stringdate更新时间Date4 4项目部署项目部署编码完成后,先在编码完成后,先在本地测试,通过后,本地测试,通过后,就可以将项目发布就可以将项目发布到到Google App Google App EngineEngine上上 NoImage1Google云计算技术包括哪些内容?2当前主流分布式文件系统有哪些?各有什么优缺点?3GFS采用了哪些容错措施来确保整个系统的可靠性?4MapReduce与传统的分布式程序设计相比有何优点?5Chubby的设计目标是什么?Paxos算法在Chubby中起什么作用?6阐述Bigtable的数据模型和系统架构。7分布式存储系统Megastore的核心技术是什么?8大规模分布式系统的监控基础架构Dapper关键技术是什么?9Google App Engine提供了哪些服务?10Google App Engine的沙盒对开发人员进行哪些限制?习题NoImage阅读精选1 1 The Google File SystemThe Google File Systemhttp:/www.cs.brown.edu/courses/cs295-11/2006/gfs.pdfhttp:/www.cs.brown.edu/courses/cs295-11/2006/gfs.pdf2 MapReduce:Simplied Data Processing on Large Clustershttp2 MapReduce:Simplied Data Processing on Large Clustershttphttp:/www.cs.toronto.edu/demke/2227S.12/Papers/mapreduce-osdi04.pdfhttp:/www.cs.toronto.edu/demke/2227S.12/Papers/mapreduce-osdi04.pdf33 The Chubby lock service for loosely-coupled distributed systemsThe Chubby lock service for loosely-coupled distributed systemshttp:/ Bigtable:A Distributed Storage System for Structured DataBigtable:A Distributed Storage System for Structured Datahttp:/static.usenix.org/event/osdi06/tech/chang/chang_html/http:/static.usenix.org/event/osdi06/tech/chang/chang_html/55 Megastore:Providing Scalable,Highly Available Storage for Megastore:Providing Scalable,Highly Available Storage for Interactive ServicesInteractive Serviceshttp:/www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdfhttp:/www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf66 Dapper,a Large-Scale Distributed Systems Tracing InfrastructureDapper,a Large-Scale Distributed Systems Tracing Infrastructurehttp:/ Google app EngineGoogle app Engine专区专区http:/
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!