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. Redhat 使用中文安装后更换为英文的设定

    vi /etc/sysconfig/i18n将LANG改为LANG=en_US.UTF-8保存退出,重新reboot

  2. java对象实例化

    JAVA类,只要知道了类名(全名)就可以创建其实例对象,通用的方法是直接使用该类提供的构造方法,如 NewObject o = new NewObject(); NewObject o = new N ...

  3. DirectX 3D 之C#开发

    C#下进行directX的3D开发,一个旋转的4棱锥的例子. 建议看两个文档<Managed DirectX 9图形和游戏编程简略中文文档>和<Managed DirectX 9 S ...

  4. GIT使用教程与基本原理

    转自:http://blog.csdn.net/wengpingbo/article/details/8985132 说明:该教程全部图片都来自于<pro git>.以下所有的操作,除非特 ...

  5. Samba 4.x.x全版本存在命令执行漏洞

    Samba 4.0.0到4.1.10版本的nmbd(the NetBIOS name services daemon)被发现存在远程命令执行漏洞.CVE编号为CVE-2014-3560.目前官方已经发 ...

  6. Html5大文件断点续传

    大文件分块   一般常用的web服务器都有对向服务器端提交数据有大小限制.超过一定大小文件服务器端将返回拒绝信息.当然,web服务器都提供了配置文件可能修改限制的大小.针对iis实现大文件的上传网上也 ...

  7. [反汇编练习] 160个CrackMe之018

    [反汇编练习] 160个CrackMe之018. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  8. HDU 5296 Annoying problem (LCA,变形)

    题意: 给一棵n个节点的树,再给q个操作,初始集合S为空,每个操作要在一个集合S中删除或增加某些点,输出每次操作后:要使得集合中任意两点互可达所耗最小需要多少权值.(记住只能利用原来给的树边.给的树边 ...

  9. 用实例分析H264 RTP payload

    用实例分析H264 RTP payload H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved) 应用程序可以使用第一个字节来识别. ...

  10. 函数与关系实例,函数运算与SQL,试验与关系元组

    函数是一个集合,它的每个元素都是二元组或多元组.例如 f = { (x, y) | x∈R & y∈R & y = 2x } ,g = { (x, y, z) | (x, y, z)∈ ...