The Services(服务)
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(服务)的更多相关文章
- android学习日记19--四大组件之Services(服务)
一个Android应用主要由四个基本组件组成,Android四大基本组件分别是Activity,Content Provider内容提供者,Service服务,BroadcastReceiver广播接 ...
- PHP 调用asp.net Web Services服务问题总结
原文:PHP 调用asp.net Web Services服务问题总结 PHP是弱类型语言,转换非常不方便. < ?php //soap 客户端 $client=new SoapClient(' ...
- Integration Services 服务连接失败,拒绝访问以及无法检索数据报错问题
第一个方法比较简单:把域账号添加admin组即可: 第二种方法: 添加域账号到分布式 COM 组 命令提示符下运行 dcomcnfg.exe 下一步 下一步 启动和激活权限 下一步 访问权限 同上设置 ...
- Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务
Power BI 与 Azure Analysis Services 的数据关联:1.建立 Azure Analysis Services服务
- 为何使用Microsoft SQL Server Management Studio连接Integration Services服务失败
检查是否满足以下各项: 1. 首先你要确保当前你使用的Windows账号是有管理员权限的 2. 其次请在打开Microsoft SQL Server Management Studio时,通过右键Ru ...
- HanLP封装为web services服务的过程介绍
前几天的召开的2019年大数据生态产业大会不知道大家关注到没有,看到消息是hanlp2.0版本发布了.不知道hanlp2.0版本又将带来哪些新的变化?准备近期看能够拿到一些hanlp2.0的资料,如果 ...
- Services (服务)
*/ .hljs { display: block; padding: 0.5em; background: #F0F0F0; } .hljs, .hljs-subst, .hljs-tag .hlj ...
- Windows server 2008启动remote dosktop services服务报错1079
原创 欢迎转载,届时请注明出处 报错场景 今天,刚开始启动win server的远程连接服务(remote desktop services)时 该服务可以正常启动,然后选择了 “计算机--> ...
- 1.3 Services - 服务
服务是一种应用组件,它可以在后台执行耗时的操作,它是没有用户界面的.其它的应用组件都可以开启一个服务,服务开启后,即使用户离开了应用,服务仍然可以在后台运行.此外,绑定到服务的组件可以与服务进行交互, ...
- 基于soap 的 python web services 服务开发指南
文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...
随机推荐
- C#基础(WinForm窗体的单例模式,避免窗体被实例化多次)
在MDI窗体中使用单例模式可以有效的避免同个窗体被实例化多次 [csharp] view plain copy //==============字窗体的修改================ // ...
- 随机森林——Random Forests
[基础算法] Random Forests 2011 年 8 月 9 日 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型 ...
- Android权限安全(3)权限的分级和自定义权限
Android的不同权限分级 Normal 一般apk都可以用, Dangerous 一般apk都可以用,但有提示 SignatureOrSystem 特定的private key签名的或系统的apk ...
- BZOJ 3132 上帝造题的七分钟(二维树状数组)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3132 题意:给出一个矩阵,两种操作:(1)将某个子矩阵的数字统一加上某个值:(2)查询某 ...
- linux/unix网络编程之epoll
转载自 Linux epoll模型 ,这篇文章讲的非常详细! 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显 ...
- hdu 4973 A simple simulation problem. (线段树)
题目链接 题意: 给定n长的序列 m个操作 序列默认为 1, 2, 3···n 操作1:D [l,r] 把[l,r]区间增长 :( 1,2,3,4 进行 D [1,3]变成 1,1,2,2,3,3,4 ...
- Python3 学习第一弹:基本数据类型
本人学习主要从<python基础教程第二版>,<dive into python3>等书籍,及一些网上大牛的博客中学习特别是Python官方文档<Python Tutor ...
- apache开源项目--dbutils
原则上这不能说是一个持久层框架,它提供了一些Jdbc的操作封装来简化数据查询和记录读取操作.本站就是采用这个项目来读写数据库,代码非常简洁,如果你厌烦了Hibernate的庞大,不妨可以试试——DbU ...
- Java [Leetcode 111]Minimum Depth of Binary Tree
题目描述: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along th ...
- 【C#学习笔记】获得系统时间
using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { Conso ...