datastore和运行时环境的关系就是和一个服务的关系:应用使用API访问一个独立的系统(separate system),这个系统管理应用的所有的独立于应用实例的扩展需求(scaling needs)。Google App Engine包含一些对Web应用有用的其他的可自调节的服务。<1.Google App Engine includes several other self-scaling services useful for web applications.>

内存缓存(memcache)服务是一个短期的键值对存储服务。在datastore中它的主要优点就是快,比datastore的简单存取快得多。内存缓存将值存在内存而不是磁盘中来进行快速访问。它就像datastore一样是分布式的,所以每个请求看到的是相同的键值对。然而,它不像datastore那么持久:如果一个服务器宕机了,比如电源故障,内存会被擦掉。对于原子性和事务,它比datastore有更多限制。<2.It also has a more limited sense of atomicity and transactionality than the datastore>。正如名字表明的,内存缓存服务用于频繁执行的查询或计算的结果是最好的。应用检查缓存的值,如果值不在缓存中,它将执行查询或计算,然后将它保存在内存中以便将来使用。

App Engine为大值(large values)提供了一个存储系统叫做Blobstore。你的应用可以使用Blobstore来存储管理大文件,比如图片,视频或者文件下载。Blobstore也接收用户、离线处理上传的大文件。<3.The Blobstore can also accept large files uploaded by users and offline processes.> 这个服务和datastore是不同的。datastore受用户,应用服务器,服务之间的请求响应大小的限制。<4.This service is distinct from the datastore to work around infrastructure limits on request and response size between users,application servers,and services> 应用程序代码在限制范围内可以从Blobstore中以块的方式读取值。代码也可以查询关于Blobstore的元数据。

App Engine 应用可以使用URL获取服务(URL Fetch service)来访问其他的网络资源。这个服务向Internet上的其他服务器发出HTTP请求,比如获取页面或和网络服务交互。由于远程服务器可能响应慢,URL Fetch API支持一个请求处理器做其他事情的时候,在后台获取URLs。但是这个获取URLs的动作必须在这个请求处理器的生命周期里面开始和结束。应用也可以设置一个截止期限。在截止期限之后如果远程宿主不做出响应的话,这个调用会取消。

App Engine 应用可以使用Mail service来发送信息。信息可以代表应用或者发送邮件请求的用户(如果这个信息来自这个用户)被发送。许多网络应用使用邮件来通知用户,确认用户的动作,以及确认联络信息。

一个应用也可以接受邮件信息。如果一个应用被配置来接受邮件,被发送到这个应用地址的信息被路由到Mail 服务。它将把这个信息以针对请求处理器的HTTP请求的方式传递给应用。

App Engine应用可以发送和接受来自支持XMPP协议的聊天服务的即时消息,包括Google Talk。应用通过调用XMPP服务来发送一个XMPP聊天信息。对于发过来的邮件,当某个人发送一个信息到这个应用地址时,XMPP服务通过调用一个请求处理器将它传递给这个应用。

使用Channel 服务,你可以用网络浏览器就实现实时的双向通信。这个服务是一个巧妙的浏览应用通信的Comet model的实现(the Comet model of browser app communication)。Channels允许浏览器在一个网页加载完之后很久也能够与远程宿主的网络连接保持打开来接受实时的信息。App Engine使用一个服务把这个嵌入它的基于请求的处理模型中:浏览器不直接连接到应用的服务器,而是通过服务连接到“channels”上。当一个应用决定在它的常规处理期间发送一个信息到客户端(或客户端组)时,它会带着这个信息调用Channel服务。这个服务会广播这个信息到客户端组,并且管理打开的连接。为了这个信息的从客户端到应用的配对的网络请求,Channel 服务提供了实时的信息浏览而没有高昂的轮询。App Engine包括一个JavaScript 客户端,所以你的在浏览器中的代码可以连接到Channels。

图像处理服务可以做轻量级的图像数据传输,比如制作上载图片的缩略图。图像处理任务使用Google也在用的处理图像的相同的基础设施以及其他的一些产品,因而结果返回很快。这个服务也支持与存储在Blobstore中的大数据对象的交互,因而它可以操纵用户上传的大图像文件。

※本书不讨论Channel 服务也不讨论图像处理服务。查看官方的App Engine网站寻找更多的信息。当这个版本在印刷时,App Engine有一些很不错的新的服务正在开发,一些正在进行公测。在将来特别是搜索服务很可能被证明是面向文档的网站和应用的主要部分。因为这些服务还在开发中且很可能改变,在这个版本中也省略了。再说一遍,可以参考官网的最新信息。

The Services(服务)的更多相关文章

  1. android学习日记19--四大组件之Services(服务)

    一个Android应用主要由四个基本组件组成,Android四大基本组件分别是Activity,Content Provider内容提供者,Service服务,BroadcastReceiver广播接 ...

  2. PHP 调用asp.net Web Services服务问题总结

    原文:PHP 调用asp.net Web Services服务问题总结 PHP是弱类型语言,转换非常不方便. < ?php //soap 客户端 $client=new SoapClient(' ...

  3. Integration Services 服务连接失败,拒绝访问以及无法检索数据报错问题

    第一个方法比较简单:把域账号添加admin组即可: 第二种方法: 添加域账号到分布式 COM 组 命令提示符下运行 dcomcnfg.exe 下一步 下一步 启动和激活权限 下一步 访问权限 同上设置 ...

  4. Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务

    Power BI 与 Azure  Analysis Services 的数据关联:1.建立  Azure  Analysis Services服务

  5. 为何使用Microsoft SQL Server Management Studio连接Integration Services服务失败

    检查是否满足以下各项: 1. 首先你要确保当前你使用的Windows账号是有管理员权限的 2. 其次请在打开Microsoft SQL Server Management Studio时,通过右键Ru ...

  6. HanLP封装为web services服务的过程介绍

    前几天的召开的2019年大数据生态产业大会不知道大家关注到没有,看到消息是hanlp2.0版本发布了.不知道hanlp2.0版本又将带来哪些新的变化?准备近期看能够拿到一些hanlp2.0的资料,如果 ...

  7. Services (服务)

    */ .hljs { display: block; padding: 0.5em; background: #F0F0F0; } .hljs, .hljs-subst, .hljs-tag .hlj ...

  8. Windows server 2008启动remote dosktop services服务报错1079

    原创 欢迎转载,届时请注明出处 报错场景 今天,刚开始启动win server的远程连接服务(remote desktop services)时 该服务可以正常启动,然后选择了  “计算机--> ...

  9. 1.3 Services - 服务

    服务是一种应用组件,它可以在后台执行耗时的操作,它是没有用户界面的.其它的应用组件都可以开启一个服务,服务开启后,即使用户离开了应用,服务仍然可以在后台运行.此外,绑定到服务的组件可以与服务进行交互, ...

  10. 基于soap 的 python web services 服务开发指南

    文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...

随机推荐

  1. 车牌识别LPR(八)-- 字符识别

    ​第八篇:字符识别 车牌定位.车牌倾斜校正.车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能.车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识 ...

  2. struts2更新版本操作有关事项备注

    struts2更新版本操作有关事项备注, 更新主要jar包:struts2-convention-plugin-version,struts2-core-version, struts2-spring ...

  3. SQL 分组排序分页(大神帮写的膜拜一下)

    查询全部: SELECT P3.ID, P3.Name, P3.AddTimeFROM (SELECT Name, MAX(AddTime) AS MaxAddTime FROM Product AS ...

  4. openVPN使用

    http://www.williamlong.info/archives/3814.html http://openvpn.ustc.edu.cn/ http://www.williamlong.in ...

  5. Delphi使用JSON解析调用淘宝IP地址库REST API 示例

    淘宝IP地址库:http://ip.taobao.com,里面有REST API 说明. Delphi XE 调试通过,关键代码如下: var IdHTTP: TIdHTTP; RequestURL: ...

  6. hdu 4143 A Simple Problem (变形)

    题目 题意:给n,求x; 直接枚举肯定超时, 把给的式子变形, (y+x)(y-x) = n; 令y-x = b, y+x = a; 枚举b, b 的范围肯定是sqrt(n),  y = (a+b)/ ...

  7. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. bzoj3413

    SAM好题,显然我们不能与每个后缀都去算LCP 考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树) 根据parent树的定义,一个节点对应字符串出现的位置对 ...

  9. Spring MVC定义拦截器

    拦截器: package sy.Interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http ...

  10. 真正解决ASP.NET每一个页面首次访问超级慢的问题 (转载)

    原文:http://www.afuhao.com/article_articleId-219.shtml 摘要:ASP.NET页面首次打开很慢,但别的页面如果没有访问过,去访问也会慢.你也许认为它是在 ...