GAE编程指南
基本信息
- 原书名: Programming Google App Engine: Build and Run Scalable Web Apps on Google's Infrastructure
- 原出版社: O'Reilly Media
- 作者: (美)Dan Sanderson [作译者介绍]
- 译者: 唐学韬 何继业
- 丛书名: 北京华章图文信息有限公司O'Reilly系列
- 出版社:机械工业出版社
- ISBN:9787111314523
- 上架时间:2010-12-8
- 出版日期:2011 年1月
- 开本:16开
- 页码:350
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > 综合
编辑推荐
《GAE编程指南》:了解传统Web应用程序与App Engine应用程序之间的区别。学习App EnginO扣Python和Java运行时环境的具体内容。了解APP Engine处理Web请求以及执行应用程序代码的方式。学习如何使用APP Enginet中的可伸缩的数据存储区,包括查询、索引、事务以及数据建模等。利用任务队列来实现分布式并行计算。熟练地部署和管理应用程序。
推荐阅读
内容简介回到顶部↑
《gae编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《gae编程指南》是介绍使用这个强大平台的专家级实践指南。高级工程师dan sanderson将向你讲述如何设计高可伸缩性应用程序的方法,以及如何使用app engine的api和可伸缩的服务来实现常见的开发任务。你将会学到有关app engine的应用程序服务器架构、运行时环境以及可伸缩数据存储区等知识,还可以学到一些应用程序优化方法。
app engine提供了几乎无限的计算能力,《gae编程指南》从源代码方面简单明了地阐述了其使用方法。
app engine提供了几乎无限的计算能力,《gae编程指南》从源代码方面简单明了地阐述了其使用方法。
作译者回到顶部↑
本书提供作译者介绍
作者:(美国)桑德森(Dan Sanderson) 译者:唐学韬 何继业 等
Dan sanderson是一名技术作者,也是一名软件工程师。他有十多年的Web领域从业经验,服务过的企业有以及Walt Disney Internet Group等。
.. << 查看详细
目录回到顶部↑
前言
第1章 gae简介
运行时环境
静态文件服务器
数据存储区
实体和属性
查询和索引
事务
服务
gaccount
任务队列和计划任务
开发人员工具
管理控制台
app engine暂时还做不到的事情
使用入门
第2章 创建一个应用程序
安装sdk
安装python sdk
安装java sdk
开发应用程序
第1章 gae简介
运行时环境
静态文件服务器
数据存储区
实体和属性
查询和索引
事务
服务
gaccount
任务队列和计划任务
开发人员工具
管理控制台
app engine暂时还做不到的事情
使用入门
第2章 创建一个应用程序
安装sdk
安装python sdk
安装java sdk
开发应用程序
译者序回到顶部↑
简单来说,GAE其实就是一个Web应用程序托管平台,它使得我们有机会可以用到直正的大型企业级基础架构来运行我们的应用程序。时下的Web应用程序其实主要也就两大部分,一部分是数据,另一部分是逻辑,如果还有其他的部分,那就是资源这一部分了。GAE为我们所提供的也就是这几大部分的基础服务,我们只需要按部就班地开发程序即可,其他的一切都可以交给GAE去做。
本书共15章,深入介绍了GAE的方方面面,非常具体,是绝佳的GAE学习资料。在对GAE做了一个概括性的介绍之后,Dan立刻就教我们如何创建第一个GAE应用程序,这样我们也就算是进了GAE的门了。然后,Dan为我们介绍了GAE的各个方面。为了使初学者能够更好地使用Python,他还在第14章中着重介绍了Django这个Python框架。
为了方便开发人员了解GAE,本书同时使用了Java和Python。不过,我更建议大家使用Python,这是因为GAE目前对Java的支持还不是很好,而且GAE对Python还有不少额外的支持。
本书作者Dan Sanderson是一名软件工程师,在Web领域工作了十多年,服务过很多著名的企业,经验非常丰富。他把自己的经验和知识都融入到本书的编写中,再次感谢作者为我们所做的这么一件了不起的事情。希望大家能够喜欢上GAE。
本书的主要翻译工作由我和何继业完成,其中第10~15章由何继业老师翻译,我负责其余部分的翻译工作以及全书的统稿工作。参加本书翻译校对工作的还有黄惠庄、卢彦良、蒲巧惠、陈丽丽、胡元江、张杨、赵杰、吴斌、郭敏、林丹、王跃等。
由于时间紧迫,再加上译者水平有限,书中可能会存在一些错误或不妥,因此,大家若是在阅读过程中发现有任何问题,请随时联系我(Email是tonytang1999@126.com),我们将及时更新本书的勘误表。
唐学韬
2010年7月于广州
本书共15章,深入介绍了GAE的方方面面,非常具体,是绝佳的GAE学习资料。在对GAE做了一个概括性的介绍之后,Dan立刻就教我们如何创建第一个GAE应用程序,这样我们也就算是进了GAE的门了。然后,Dan为我们介绍了GAE的各个方面。为了使初学者能够更好地使用Python,他还在第14章中着重介绍了Django这个Python框架。
为了方便开发人员了解GAE,本书同时使用了Java和Python。不过,我更建议大家使用Python,这是因为GAE目前对Java的支持还不是很好,而且GAE对Python还有不少额外的支持。
本书作者Dan Sanderson是一名软件工程师,在Web领域工作了十多年,服务过很多著名的企业,经验非常丰富。他把自己的经验和知识都融入到本书的编写中,再次感谢作者为我们所做的这么一件了不起的事情。希望大家能够喜欢上GAE。
本书的主要翻译工作由我和何继业完成,其中第10~15章由何继业老师翻译,我负责其余部分的翻译工作以及全书的统稿工作。参加本书翻译校对工作的还有黄惠庄、卢彦良、蒲巧惠、陈丽丽、胡元江、张杨、赵杰、吴斌、郭敏、林丹、王跃等。
由于时间紧迫,再加上译者水平有限,书中可能会存在一些错误或不妥,因此,大家若是在阅读过程中发现有任何问题,请随时联系我(Email是tonytang1999@126.com),我们将及时更新本书的勘误表。
唐学韬
2010年7月于广州
前言回到顶部↑
在互联网上,事物的流行总是迅速的也是短暂的。如果某个受欢迎的博客稍微提到了一下你的网站,就能够立刻给你带去30万潜在顾客,人们都想要知道你是谁以及你能给他们带来什么。不过,如果你只是一个刚刚起步的小公司,那么你所拥有的硬件和软件则不大可能有本事应付如此大的流量。也许你已经很明智地建立了一个能够应付每小时3 万次访问的网站;在最初的6个月中,你实际的需要也就只是这样了。然而在大负载的时候,对于另外27万也想来随便瞅瞅的用户而言,这样的系统慢得让你甚至连公司的标志都显示不出来。而且,那些潜在客户也不大可能会在负载趋于平稳之后再回来。
最好不要一开始就花费时间和金钱去构建能够满足数百万访客的系统,因为那些系统在随后的几个月中都只需要应付每天几千的访客量而已。然而,如果你推迟了构建大系统的工作,那么你又可能会错过利用顾客反馈改进产品的机会。在允许顾客使用产品之前就构建大系统,搞不好会弄出客户不想要的东西。
小公司通常无法在刚开始的时候就得到一大堆的服务器。他们所能做的,就是先构建一个小的,然后祈祷那些可能出现的系统崩溃不会毁掉他们好不容易积累起来的声誉。运气好的呢,会找到他们的知音,拿到新一轮的投资,停掉功能开发并重建其产品以应对更大的负载;而那些运气不好的呢,呃,那就不好说了。
不过,现在有了另外一些选择。诸如Amazon.com以及Microsoft之类的大型互联网企业正在通过一种按使用付费的模式出租他们的大容量系统。你的网站得到这些大型系统的支持,就能够轻松处理流量上的突发峰值。此外,由于只需为实际使用的资源付费,所以在流量较低的时候不会出现前期投资浪费的情况。只有当你的客户基数变大以后,成本才会相应地增加。
GAE(G公司的应用程序托管服务)绝不只是提供了硬件那么简单。它还提供了一种用于构建可自动扩展的应用程序的模型。由于是App Engine在运行你的应用程序,因此, 无论是几十个并发用户还是成千上万个,每个用户在访问它时都会得到与其他用户相同的体验。你的应用程序将会用上G公司为自己的应用程序所提供的数据存储和检索、缓存、网络访问等大型服务。App Engine会自动处理大型计算任务,比如负载平衡、数据复制以及容错等。
传统系统总是会成长到无法再使用其第一个数据库服务器的时候,App Engine模型则真正解决了这一问题。对于传统系统而言,添加一些负载平衡的Web服务器和缓存层的确可以缓解这一问题,不过当应用程序需要向多个地方写数据时,你就会遇到大麻烦了。
如果开发工作依赖于数据库软件的某些特性,而这些数据库软件又从来没想过要把数据分布到多台机器,那么麻烦就更大了。如果预先以App Engine的模型来考虑数据,那么你就不用再花费额外的精力去重建整个系统。
“运行在G公司的基础架构上”意味着你无须架设任何服务器,也不需要更换坏掉的硬盘或是查找网卡上的故障。你再也不会在大半夜被疯了似的手机吵醒,而原因只是一个ISP小故障被误认为是服务警报。另外,由于有了自动伸缩的能力,你也不必再为流量的增加而手忙脚乱地添置新硬件了。
GAE使你能够将注意力集中在应用程序的功能和用户体验上。你可以尽早地开展业务, 享受有如洪水泛滥般的关注度,留住用户,并在用户的帮助下改进你的产品。应用程序将随着受众数量的增长而不断成长,完全不需要重新建立新的架构。然而与此同时,你的竞争对手还在到处救火和配置数据库呢。
通过本书,你将会学到如何开发能够运行于GAE的应用程序,以及如何最大限度地发挥这个可扩展模型的作用。本书着重介绍了App Engine的可扩展数据存储区,它跟关系型数据库不同,后者在过去十年中是Web开发的主力军。把这个应用程序模型和数据存储区放到一起就得到了一种全新的Web应用程序开发模型;也就是说,在与我们所熟知的模型几乎一样简单的前提之下,我们需要重新考虑一些原本是理所当然的原则。
本书介绍了App Engine的主要特性,包括可扩展的服务(比如用于发送电子邮件和操作图片)、用于部署和管理应用程序的工具,还有那些使你能够通过自定义域名将应用程序跟GAccount和Apps集成起来的功能。本书还将讨论一些其他的技术,比如应用程序优化、使用任务队列和离线处理等,以及其他一些能让GAE发光发热的技术。
使用本书
直到编写本书时,App Engine共支持两类用于构建Web应用程序的技术:Java和Python。Java技术类使你在开发Web应用程序时可以使用Java编程语言(或者是其他能够编译为Java字节码的语言,还可以是那些拥有基于JVM的解释器的语言)以及诸如servlet和JSP之类的Java Web技术。Python技术类提供了一个针对Python编程语言的快速解释器,且兼容许多主流开源Web应用程序框架(如Django)。
本书涵盖了这两类技术的知识,还有一些特定于语言的重要主题。如果已经决定了要使用哪种语言,那么你可能会对跟这种语言无关的信息不感兴趣。但是,这对一本图书来说实在是一个挑战:要如何组织文字才能让一种技术的信息不会影响到另一种呢?
首先,我们试图按照所有App Engine应用程序都会涉及的主要知识点对章节进行组织。只要有需要,我们就会把章划分成单独的节以针对每种语言进行单独的讲解。如果某个示例所阐述的知识点在两种语言中都很相似,那么该示例就会以Python的形式给出。如果Python并不是你所喜欢的编程语言,那么也可以从本书其他部分或是App Engine的官方文档中找到相关的信息。
数据存储区是一个较大的主题,只是这个就占了好几章。从第4章开始,我们将同时使用Python和相应的Java API来介绍数据存储区的知识。注意,我们将使用一种非传统的方式来介绍数据存储区API,首先介绍的将是与数据存储区概念直接相关的低级API。在应用程序中,也许你更喜欢数据建模方面的高级API。数据建模是分别针对两种语言进行讨论的:第7章针对Python,第8章针对Java。
G公司也许会在未来发布针对其他语言的技术类。如果在你阅读本书的时候他们已经那样做了,那么这里所讨论的知识也一样是派得上用场的。可以在本书的网站上找到未来版本的相关信息。
本书主要包括以下这些内容:
第1章 GAE简介
对GAE及其组件、工具和主要功能的高度概括。这一章还将大致介绍一下你可能希望GAE有而实际上暂时还没有的功能。
最好不要一开始就花费时间和金钱去构建能够满足数百万访客的系统,因为那些系统在随后的几个月中都只需要应付每天几千的访客量而已。然而,如果你推迟了构建大系统的工作,那么你又可能会错过利用顾客反馈改进产品的机会。在允许顾客使用产品之前就构建大系统,搞不好会弄出客户不想要的东西。
小公司通常无法在刚开始的时候就得到一大堆的服务器。他们所能做的,就是先构建一个小的,然后祈祷那些可能出现的系统崩溃不会毁掉他们好不容易积累起来的声誉。运气好的呢,会找到他们的知音,拿到新一轮的投资,停掉功能开发并重建其产品以应对更大的负载;而那些运气不好的呢,呃,那就不好说了。
不过,现在有了另外一些选择。诸如Amazon.com以及Microsoft之类的大型互联网企业正在通过一种按使用付费的模式出租他们的大容量系统。你的网站得到这些大型系统的支持,就能够轻松处理流量上的突发峰值。此外,由于只需为实际使用的资源付费,所以在流量较低的时候不会出现前期投资浪费的情况。只有当你的客户基数变大以后,成本才会相应地增加。
GAE(G公司的应用程序托管服务)绝不只是提供了硬件那么简单。它还提供了一种用于构建可自动扩展的应用程序的模型。由于是App Engine在运行你的应用程序,因此, 无论是几十个并发用户还是成千上万个,每个用户在访问它时都会得到与其他用户相同的体验。你的应用程序将会用上G公司为自己的应用程序所提供的数据存储和检索、缓存、网络访问等大型服务。App Engine会自动处理大型计算任务,比如负载平衡、数据复制以及容错等。
传统系统总是会成长到无法再使用其第一个数据库服务器的时候,App Engine模型则真正解决了这一问题。对于传统系统而言,添加一些负载平衡的Web服务器和缓存层的确可以缓解这一问题,不过当应用程序需要向多个地方写数据时,你就会遇到大麻烦了。
如果开发工作依赖于数据库软件的某些特性,而这些数据库软件又从来没想过要把数据分布到多台机器,那么麻烦就更大了。如果预先以App Engine的模型来考虑数据,那么你就不用再花费额外的精力去重建整个系统。
“运行在G公司的基础架构上”意味着你无须架设任何服务器,也不需要更换坏掉的硬盘或是查找网卡上的故障。你再也不会在大半夜被疯了似的手机吵醒,而原因只是一个ISP小故障被误认为是服务警报。另外,由于有了自动伸缩的能力,你也不必再为流量的增加而手忙脚乱地添置新硬件了。
GAE使你能够将注意力集中在应用程序的功能和用户体验上。你可以尽早地开展业务, 享受有如洪水泛滥般的关注度,留住用户,并在用户的帮助下改进你的产品。应用程序将随着受众数量的增长而不断成长,完全不需要重新建立新的架构。然而与此同时,你的竞争对手还在到处救火和配置数据库呢。
通过本书,你将会学到如何开发能够运行于GAE的应用程序,以及如何最大限度地发挥这个可扩展模型的作用。本书着重介绍了App Engine的可扩展数据存储区,它跟关系型数据库不同,后者在过去十年中是Web开发的主力军。把这个应用程序模型和数据存储区放到一起就得到了一种全新的Web应用程序开发模型;也就是说,在与我们所熟知的模型几乎一样简单的前提之下,我们需要重新考虑一些原本是理所当然的原则。
本书介绍了App Engine的主要特性,包括可扩展的服务(比如用于发送电子邮件和操作图片)、用于部署和管理应用程序的工具,还有那些使你能够通过自定义域名将应用程序跟GAccount和Apps集成起来的功能。本书还将讨论一些其他的技术,比如应用程序优化、使用任务队列和离线处理等,以及其他一些能让GAE发光发热的技术。
使用本书
直到编写本书时,App Engine共支持两类用于构建Web应用程序的技术:Java和Python。Java技术类使你在开发Web应用程序时可以使用Java编程语言(或者是其他能够编译为Java字节码的语言,还可以是那些拥有基于JVM的解释器的语言)以及诸如servlet和JSP之类的Java Web技术。Python技术类提供了一个针对Python编程语言的快速解释器,且兼容许多主流开源Web应用程序框架(如Django)。
本书涵盖了这两类技术的知识,还有一些特定于语言的重要主题。如果已经决定了要使用哪种语言,那么你可能会对跟这种语言无关的信息不感兴趣。但是,这对一本图书来说实在是一个挑战:要如何组织文字才能让一种技术的信息不会影响到另一种呢?
首先,我们试图按照所有App Engine应用程序都会涉及的主要知识点对章节进行组织。只要有需要,我们就会把章划分成单独的节以针对每种语言进行单独的讲解。如果某个示例所阐述的知识点在两种语言中都很相似,那么该示例就会以Python的形式给出。如果Python并不是你所喜欢的编程语言,那么也可以从本书其他部分或是App Engine的官方文档中找到相关的信息。
数据存储区是一个较大的主题,只是这个就占了好几章。从第4章开始,我们将同时使用Python和相应的Java API来介绍数据存储区的知识。注意,我们将使用一种非传统的方式来介绍数据存储区API,首先介绍的将是与数据存储区概念直接相关的低级API。在应用程序中,也许你更喜欢数据建模方面的高级API。数据建模是分别针对两种语言进行讨论的:第7章针对Python,第8章针对Java。
G公司也许会在未来发布针对其他语言的技术类。如果在你阅读本书的时候他们已经那样做了,那么这里所讨论的知识也一样是派得上用场的。可以在本书的网站上找到未来版本的相关信息。
本书主要包括以下这些内容:
第1章 GAE简介
对GAE及其组件、工具和主要功能的高度概括。这一章还将大致介绍一下你可能希望GAE有而实际上暂时还没有的功能。
媒体评论回到顶部↑
“毫无疑问,这是一本关于App Engine的最全面的、最新的参考手册。如果你已经仔细看完这本书,那么你现在就是App Engine方面的专家。”
——Kevin Gibbs,GAE的项目组长和技术经理
——Kevin Gibbs,GAE的项目组长和技术经理







点击看大图




加载中...

