CN106233257A - 输入数据的条件性保存 - Google Patents

输入数据的条件性保存 Download PDF

Info

Publication number
CN106233257A
CN106233257A CN201580020027.XA CN201580020027A CN106233257A CN 106233257 A CN106233257 A CN 106233257A CN 201580020027 A CN201580020027 A CN 201580020027A CN 106233257 A CN106233257 A CN 106233257A
Authority
CN
China
Prior art keywords
service
request
input data
cloud computing
computing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201580020027.XA
Other languages
English (en)
Inventor
C·卡利斯
B·霍利
G·阿克塞洛德
R·詹姆斯
甄燕
G·A·琼斯
D·阿米罗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202110472383.2A priority Critical patent/CN112948164A/zh
Publication of CN106233257A publication Critical patent/CN106233257A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文档涉及对输入数据进行保存。一个例子包括:获得一个服务对输入数据执行处理以产生该输入数据的输出表示的请求。此外,该例子还包括:向该请求应用标准,响应于确定该标准被满足而保存该输入数据。

Description

输入数据的条件性保存
背景技术
一些服务代表请求方实体(例如,用户或计算设备)执行相对资源密集的处理。例如,图形渲染、加密和信号处理是可以由服务来执行的迥异类型的资源密集的处理。通常,请求方实体可以向给定的服务提交一个或多个输入,以及从该服务接收一个或多个输入。例如,客户端设备可以向web服务提交请求,以及随后从该web服务接收响应。再举一个例子,应用可以请求本地服务在给定的计算设备上执行某种功能。在大多数情况下,该服务将会成功地完成并向请求方实体提供预期的响应。但是,可能存在该服务未能向请求方实体提供预期的输出的情况。
发明内容
提供本发明内容以便用简化的形式介绍将在以下的具体实施方式中进一步描述的概念的选集。本发明内容并不是旨在标识本发明的关键特征或本质特征,也不是用于限制本发明的保护范围。
该具体实施方式通常涉及输入数据的条件性保存(conditional saving)。一个例子包括可以由计算设备执行的方法或者技术。该方法或技术可以包括:获得“服务对输入数据执行处理以产生该输入数据的输出表示”的请求。该方法或技术还可以包括:向该请求应用标准。如果该标准被满足,则该方法或技术可以保存(preserve)该输入数据。
另一个例子包括一种云计算系统,该云计算系统包括一个或多个硬件处理单元和一个或多个计算机可读存储设备。这些计算机可读存储设备可以存储计算机可执行指令,所述计算机可执行指令当被所述一个或多个硬件处理单元执行时可以致使所述云计算系统通过网络来接收服务请求。该服务请求可以包括输入数据。此外,所述计算机可执行指令还可以致使所述云计算系统确定:该服务请求指示,该输入数据不应当被该云服务存留(persist)。所述计算机可执行指令还可以致使所述云计算系统响应于检测到失败,通过存留该输入数据来覆盖(override)所述服务请求。
另一个例子包括可以由计算设备执行的方法或者技术。该方法或技术可以包括:获得具有输入数据的服务请求;以及通过对该服务请求的输出进行评估,来向该服务请求应用标准。此外,该方法或技术还可以包括:响应于检测到该服务请求的输出满足所述标准,保存该服务请求的输入数据。
上面所列出的例子旨在提供用于辅助读者的快速参考,而不是旨在规定本文所描述的概念的保护范围。
附图说明
参照附图描述具体实施方式。在这些附图中,附图标记的最左侧数位标识该附图标记第一次出现时的附图。在说明书和附图中的不同实例中对于相同附图标记的使用可以指示相似或相同的项。
图1示出了与本发明的概念的一些实现相一致的示例性方法或技术。
图2示出了与本发明的概念的一些实现相一致的示例性环境。
图3-12示出了与本发明的概念的一些实现相一致的示例性图形用户界面。
具体实施方式
概述
在请求方实体从服务请求输出的许多不同上下文中,可能有时请求方实体未接收到预期的输出。例如,服务可能没有正确地处理输入数据,或者服务可能由于策略原因而决定不提供预期的响应。如果请求方实体没有采取步骤来保持输入数据,则输入数据可能会丢失。一些实现可以通过当某些标准被满足时条件性地保存输入数据,来减轻丢失输入数据的影响。例如,一些实现可以在处理任务已完成之后,默认地将输入数据删除,但当服务检测到失败时,通过为请求方实体保存该输入数据来覆盖该默认行为。
在一些情况下,服务可以应用各种失败标准来判定是否要保存输入数据。为了便于说明本文档起见,术语“失败标准”包括任何指示“请求方实体将不会接收到预期的输出”的标准。在一些情况下,失败标准可以指示:由于例如损坏/畸形的输入数据、处理任务的崩溃/故障等等,所请求的处理没能适当地完成。其它失败标准可以涉及服务的策略决定,例如,由于超过了存储装置配额或者处理时间限制,服务可能决定不向请求方实体提供所请求的输出,而不管处理任务是否成功地完成。
在一些实现中,服务可以执行失败标准的早期检测,例如通过,在开始所请求的处理任务之前,对输入数据进行评估并判定该输入数据是否应当被保存。例如,服务可以执行预处理例程,该预处理例程能够检测输入数据是畸形的(malformed),并在不发起处理任务的执行的情况下,为请求方实体保存该畸形的输入数据。通常,输入数据可以经由许多不同的机制来保存,其包括将输入数据从请求方实体远离地存留,或者将输入数据嵌入在提供给请求方实体的文件(例如,文档)中。
在一些情形下,取决于正在执行的特定处理任务以及在考虑之中的失败的类型,可能很难执行对失败的早期检测。例如,在一些情况下,输入数据可能不具有任何明显的(apparent)缺陷,则服务将继续发起所请求的处理任务。当处理任务在执行时,服务可以对该处理任务进行监测,以检测是否满足某个失败标准。例如,考虑一个服务设置了关于处理任务能够花费的时间量的时间限制(例如,一分钟)。请求方实体可以向该服务提供输入文件以供处理。该处理任务可能要花费比一分钟时间限制更长的时间来完成,故在生成输出之前,该服务就可能决定要杀掉(kill)该任务。在这些情形下,由于请求方实体将不会接收到预期的输出(例如,请求方实体可能根本没有接收到输出、接收到差错消息、接收到部分完整输出等等),因此为请求方实体来保存该输入文件也是有用的。
在一些情况下,处理任务可能进行到完成,但服务却确定发生了失败。例如,服务可以向处理任务的输出应用某个失败标准,并认为该输出被视作为失败情况。考虑如下情况:处理任务产生比输入数据显著更大的输出,并且失败标准包括关于输出的大小的策略限制,例如,输出可以具有不大于100兆字节的总体存储器占用(overall memoryfootprint)。假定服务接收到5千字节的输入文件,并将该输入文件成功地处理成500兆字节的输出文件。在这些情形下,输出文件被正确地产生了,并且可用于向请求方实体提供。然而,该服务可以通过不向请求方实体提供该输出文件,来实施该大小限制。为了防止请求方实体丢失输入数据,该服务可以响应于确定了大小限制失败标准已经被满足而对输入数据进行保存。
条件性保存方法
下面的讨论提出了对能够条件性地保存输入数据的功能的概述。该功能可以由各种类型的服务来执行,或者代表各种类型的服务来执行。取决于具体的实现方式,该服务可以体现为云服务、本地应用、库例程、操作系统例程和/或专用硬件电路系统。因此,可以利用软件、硬件或者其组合来实现该功能。
图1示出了与本发明的概念相一致的示例性方法100。如下面所更详细讨论的,该方法可以在许多不同类型的设备上实现,例如,由一个或多个云服务器实现,由诸如膝上型计算机、平板设备或智能手机或者其组合之类的客户端设备实现。方法100可以由以下服务来实现:在与请求方实体相同的设备上以本地方式执行的服务、远离请求方实体来执行的服务、或者代表本地或远程服务。
方法100开始于方框102处,从请求方实体获得请求。例如,该请求可以具有诸如文档、信号的数字采样或者数字通信之类的输入数据。该请求可以请求对输入数据执行某个处理任务,例如,文档的渲染、向数字采样应用的转换(transform)、或者对数字通信进行加密。在一些情况下,该请求可以是获得输入数据的不同表示(例如,将输入数据渲染成图像),或者在其它情况下,该请求可以是取回其它数据(例如,取回与输入搜索查询相匹配的文档)。
方法100转到方框104处,向该请求应用标准。例如,该标准可以是失败标准,其指示如下情境:其中请求方实体将不会接收到该处理任务的预期输出。如下面所讨论的,对失败标准进行评估可以是在服务发起该处理任务之前,在服务成功地完成该处理任务并已获得输出之后,或者在处理任务正在进行时。
方法100转到判断框106处,其判断该标准是否被满足。在满足该标准的情况下,方法转到方框108和110。
当该标准被满足时,方框108可以对该请求的输入数据进行保存。例如,响应于确定该标准已被满足,可以将输入数据存留在存储装置上。在一些情况下,将输入数据存留在与请求方实体相关联的指定存储位置中(例如,云存储装置中的用户帐户)。
方框110可以向请求方实体提供该输入数据。在一些实现中,可以替代预期的输出,向请求方实体自动地发送该输入数据。例如,所述文档可以替代所请求的渲染图像而向请求方实体提供,所述信号采样可以替代所请求的经转换的信号而向请求方实体提供,和/或通信可以以未加密形式替代所请求的加密通信而向请求方实体提供。在其它情况下,直到接收到另外的请求为止,不向请求方实体提供输入数据。例如,该服务可以向请求方实体发送消息,该消息指示“发生了失败,并且已将输入数据与该用户的帐户相关联地存储,以便稍后访问(例如,由另外的请求)”。
返回参见判断框106,在该标准不被满足的情况下,方法转到方框112和114。
当该标准不被满足时,方框112可以向请求方实体提供所请求的输出。例如,可以向请求方实体提供经渲染的文档、经转换的信号采样或者经加密的数字通信。在一些情况下,默认行为可以是向请求方实体提供所请求的输出,而不是也向请求方实体提供输入数据。
方框114可以删除该请求的输入数据。例如,该服务可以从存贮装置中删除被渲染的文档、被转换的信号采样、和/或被加密的数字通信,使得该服务和请求方实体不再具有对该输入数据的访问权。例如,这可以是下面的情况,其中由于请求方实体接收到预期的输出,故请求方实体通常不被预期为需要对该输入数据的进一步的访问。
云场景
方法100能够在其中执行的一种特定场景是,当云服务执行该方法、同时与远程客户端设备进行交互时。考虑图2,其中图2示出了包括云计算系统210的示例性环境200,其中该云计算系统210经由网络220连接到分别示出成扫描仪客户端设备230、平板客户端设备240和膝上型客户端设备250的各种客户端设备。所述云计算系统和客户端设备可以具有各自的处理资源212、232、242和252与存储器/存储装置资源214、234、244和254,如下面所更详细讨论的。
云计算系统210可以包括服务提供者模块216,后者提供诸如云存储装置、用户帐户等等之类的云服务功能。此外,云计算系统还可以具有任务实现模块218,其执行由各个客户端设备所请求的特定处理任务(例如,渲染、加密、信号处理、文档生成/修改、搜索等等)。应当注意,在一些情况下,该任务实现模块可以远离云计算系统210来体现,例如,云服务充当为执行任务的第三方平台和请求该任务的客户端设备之间的桥梁。在这些情况下,该处理任务其自身可以远离云计算系统地在第三方平台上执行。
客户端设备230、240和250可以具有与服务提供者模块216进行交互的服务请求模块236、246和256的相应实例。例如,这些服务请求模块可以是在各个客户端设备上执行的云使能(cloud-enabled)的应用的相应本地实例的一部分,该本地实例取回在云计算系统210上存储的各种不同的数据项。在一些情况下,云计算系统既提供用户存储装置部分又提供云服务存储装置部分。通常,云存储装置的云服务存储装置部分可以由云服务进行使用,以用于与由该云服务进行的处理相关联的存储,而用户存储装置部分可以用于向各个用户提供云存储装置帐户。例如,各个用户通过登录到用户帐户,可以能够从任何客户端设备访问他们的云存储装置,而在客户端设备上的相应服务请求模块可以从该用户帐户取回诸如文档之类的数据。在一些情况下,客户端设备可以指定要取回的特定数据项,在其它情况下,客户端设备和云服务可以自动地将本地客户端设备数据与用户的云存储装置帐户进行同步。
渲染示例
如上所述,一些实现方式可以执行针对于请求方实体的多种不同类型的处理任务。下面的讨论提供了实现方式的一些另外的细节,其中所述服务代表用户来执行渲染任务。例如,该渲染任务可以对作为输入数据而被提供的各种文档类型进行渲染,例如,便携式文档格式(PDF)文件、附言(postscript)(PS)文件、文字处理文件(例如,Microsoft)、幻灯片演示文件(例如,Microsoft)、标记语言文件(例如,可扩展标记语言(XML)、超文本标记语言(HTML))等等。可以将这些文档从它们的原始文档格式渲染成各种图像格式,例如,联合图像专家组(JPEG)文件、标签图像文件格式(TIFF)文件、位图(BMP)等等。
例如,给定的用户可以从与他们相关联的任一客户端设备上传和维护各种文档,以及对它们进行访问。此外,用户可能能够向云服务提交渲染某些文档的请求,并且随后云服务可以向用户提供对输出图像的访问。在一些情况下,云服务可以将输出图像文件存储在用户的云存储装置帐户中以便以后访问,或者可以响应于该渲染请求,向用户的客户端设备发送图像文件。例如,如下面所进一步讨论的,云服务可以将该图像文件嵌入在存储在云存储装置帐户中的另一个文档中。
为了术语的清楚说明起见,术语“外部文档”指代在其中嵌入有另一个文档的文档,而术语“被嵌入文档”指代被嵌入在外部文档之中的文档。术语“被嵌入图像”指代嵌入在外部文档中的图像。术语“输入文档”指代一类输入数据,例如,提供给服务用于进行处理的文档。
紧接着的下面讨论关注于在云场景中进行渲染,但应当注意,服务也可以在客户端设备上本地执行,如本文所讨论的。假定云计算系统210从扫描仪客户端设备230接收到请求“对输入文档进行渲染以获得相应的图像文件,并将渲染的图像文件包括在外部文档(例如,HTML网页)中作为被嵌入图像”。随后,云服务可以通过向这些客户端设备中的任何一个发送在其中包括有该经渲染的图像文件的外部文档,来提供对该外部文档的访问。
在一些情况下,在对该渲染请求处理之后,云服务可以默认地删除所接收的输入文档。由于一旦完成了该渲染,用户可能不再期望使用该输入文档,因此上述操作可以是期望的行为。但是,考虑该渲染请求失败的情况,例如,由于渲染的图像的尺寸超过了某个预先规定的约束(例如,渲染的图像不可以大于50兆字节)。在一些实现中,当检测到失败时,云服务可以保存该输入文档,而不是删除该输入文档。例如,云服务可以将输入文档存储在用户的云存储装置中,或者将该输入文档发送回给用户(例如,发送给用户的膝上型计算机、平板设备等等)。由于云服务已经自动地保存输入文档,因此该输入文档没有丢失,故用户不需要使用扫描仪客户端设备230来获得另一个适当的输入文档。
在一些情况下,云服务还可以将输入文档嵌入在外部文档中作为被嵌入文档(例如,作为附加的数据对象,其不是必须作为图像被包括在外部文档中的)。例如,不是将渲染的图像文件包括在外部文档中,云服务可以将输入文档以其原始格式来包括在外部文档中。因此,当用户可能不能够看到如所请求地在外部文档中渲染的被嵌入文档时,他们可以能够至少使用适当的应用来观看该嵌入的文档。在PDF文件的情况下,例如,用户能够点击在外部文档中嵌入的PDF文件,在个体的客户端设备上启动PDF阅读器应用的本地实例。
数字笔记本示例
在一些实现中,每一个客户端设备230、240和/或250可以运行数字笔记本应用的实例(例如,Microsoft等等)。在这些实现中,云计算系统210可以提供数字笔记本云服务,数字笔记本云服务针对于客户端设备上的数字笔记本应用的本地实例来执行各种支持功能。例如,数字笔记本云服务可以为用户笔记本提供云存储装置,执行各种文件类型的渲染,还可以支持各种类型的内容扩增(例如,如下面所进一步讨论的网页剪辑)。此外,如下面所进一步讨论的,数字笔记本是在其中可以将图像和/或其它文档类型嵌入的外部文档的一个例子,但很多其它类型的文档也可以充当外部文档(PDF、PS文件、文字处理文件、幻灯片演示文件、标记语言文件等等)。为了说明下面的例子起见,数字笔记本云服务可以执行上面参照服务提供者模块216所讨论的功能,而数字笔记本客户端应用的本地实例可以执行上面参照服务请求模块236、246和/或256所讨论的其它功能。
图3示出了具有各种标签302的示例性数字笔记本。在该情况下,用户在该笔记本中打开“宠物”标签,此外,该笔记本还包括标题为“车辆”和“乐器”的标签。在宠物标签中存在两个页面304,一个标题为目前打开的“Chewy”,另一个标题为“Boots”。目前打开的“Chewy”页面具有背景内容306以及位置308,其中背景内容306大致描述了名字为Chewy的狗的遗传宗谱,在位置308处,用户希望放置渲染的图像内容。假定该笔记本以图3中所示的状态来存在于该用户的云存储装置中,并且用户可经由任何的客户端设备来访问。
接着,假定用户使用扫描仪客户端设备230,对他们的狗Chewy的图片进行扫描。用户这样做可以是由于他们希望让云服务渲染他们的狗的图片,并在位置308处将图像插入到数字笔记本300中。扫描仪客户端设备可以对该图片进行扫描以获得PDF文件,并且向云计算系统210发送该PDF文件。例如,扫描仪客户端设备可以发送遵循与在云计算系统上运行的数字笔记本云服务相关联的API的请求消息。该消息可以指示应当对该PDF进行渲染,并将该PDF包括在数字笔记本300中。在接收到该消息时,云计算系统210可以使用任务实现模块218,尝试将PDF文件渲染成诸如JPEG、BMP、TIFF之类的图像格式或者其它图像文件格式。
图4示出了在渲染成功地完成,并且不满足失败标准的场景下的数字笔记本300。在该情况下,云计算系统210将渲染的图像文件在位置308处,包括在数字笔记本300中,并且在用户的云存储装置中更新该笔记本。随后,用户可以经由他们的客户端设备中的任何一个,访问该笔记本文件。在该情况下,在渲染完成之后,云计算系统可以删除扫描仪客户端设备230所创建的PDF文件。这可以与用户的预期相一致,这是由于他们关注于将正确的图像文件插入到该笔记本中,而可能并没有期望保持由扫描仪客户端设备所生成的PDF文件。
图5示出了在渲染没有成功地完成的场景下的数字笔记本300。这里,或者是云计算系统210未能够成功地渲染PDF文件,或者出于将要进行讨论的各种原因中的一个或多个而以其他方式将该请求视为失败的请求。应当注意,扫描仪客户端设备230在向云服务发送该请求之后,可能不存留该PDF的任何本地副本。因此,如果云服务将在该请求成功时简单地如所做的那样删除该PDF文件,则用户将需要重新扫描他们的图片,以便获得Chewy的另一个图像用于该笔记本。但是,在该情况下,云服务可以将PDF文件作为附件500嵌入到数字笔记本300中,如图5中所示。因此,即使用户没有从云服务接收到预期的结果(具有渲染的图像的笔记本),在无需重新创建该PDF文件的额外的努力的情况下,用户仍然可以访问该PDF文件。在一些情况下,云服务可以向用户的客户端设备中的一个或多个发送指示“渲染已失败”的错误消息(error message)。此外,云服务可以对该用户的云存储装置中的笔记本进行更新以包括该错误消息,其中该错误消息替代于经渲染的图像文件而被显示。应当注意,在该例子中,嵌入的PDF文件是经由用户的扫描仪客户端设备从用户接收的输入数据,其不具有扫描仪客户端设备原始请求的图像格式。
应当注意,可能存在用户希望将渲染的图像和PDF文件自身两者均包括在数字笔记本300中的情形。在这些情形下,扫描仪客户端设备230可以在请求消息中指示“应当既将PDF渲染到数字笔记本300中,又将PDF以其原始文件格式来嵌入在数字笔记本300中”。如果成功地完成渲染,则数字笔记本300可以如图6中所示地出现,其中该图像成功地渲染并且附件500(PDF文件)被嵌入。或者,如果渲染失败,则该笔记本可以如图5中所示地出现,其丢失了渲染的图像,但包括嵌入的PDF文件。
此外,应当注意,数字笔记本300可以具有各种文件格式。例如,一些实现可以使用特定于笔记本应用的专有文件格式,其中该专有文件格式支持其它操作,比如在该笔记本上绘画、对该笔记本的一部分进行剪切等等。其它实现可以使用更通用的文件格式,例如,通过将笔记本作为HTML文件来维护。
拖放实现
在先前的例子中,第一客户端设备(例如,扫描仪)向云服务提交请求,而具有被嵌入图像的文档被提供给第二客户端设备(例如,膝上型计算机)。在其它实现中,相同的客户端设备可以既向云服务提供该请求又接收具有被嵌入图像的文档,如下面所进一步讨论的。
图7示出了一种示例性桌面型界面700,如在客户端设备(例如,膝上型客户端设备250)上所示出的。在该特定的例子中,该桌面型界面包括对于存储在膝上型客户端设备的本地文件系统(例如,硬盘驱动器)上的PDF文件的快捷方式702。用户可以将该快捷方式拖放到数字笔记本300中和拖放到位置308上。本地笔记本应用可以将该拖放解释成“向云服务发送请求,以便将PDF文件渲染成图像,并将该图像包括在数字笔记本300中”的指令。
在该渲染成功的情况下,云服务可以更新数字笔记本300以包括渲染的图像,并将更新后的笔记本发送回膝上型客户端设备。在该情况下,桌面型界面700可以如图8中所示地出现,此时,该图像被成功地渲染到数字笔记本300中。云服务可能已经更新了云存储,其中经更新的笔记本在其中具有经渲染的图像,从而用户可以从其它客户端设备(例如,平板客户端设备240)访问该经更新的笔记本。在该情况下,应当注意,由于用户的期望已经通过该成功的渲染而获得满足,因此不将PDF文件嵌入在经更新的笔记本中。
在渲染失败的情况下,桌面型界面700可以如图9中所示地出现。这里,没有将图像渲染到数字笔记本300中。但是,云服务将PDF文件作为附件500嵌入在笔记本中,并更新该用户的云存储装置帐户中的笔记本。因此,当用户从他们的客户端设备中的任何一个访问该经更新的笔记本时,他们可以使用任何已安装的PDF阅读应用来单独地打开该PDF文件。换言之,云服务认识到该渲染失败将导致未满足的用户期望,并主动地确定该PDF文件应当嵌入在笔记本文件中。在某种意义上,这可以视作为用户体验的优雅的降级,其某种程度上缓解了渲染失败的影响。
网络截图示例
在前面的特定例子中,对单一PDF文件进行渲染,以获得单一图像。但是,应当注意的是,PDF文件的前述渲染只是示例性的,可以根据所公开的实现,渲染其它文件类型。例如,图10-12示出了可以响应于单一请求,渲染多种不同的文件类型的场景,如下面所讨论的。
图10描绘了在示出网页浏览器1000的配置下的桌面型界面700。在该例子中,用户导航浏览称为“abcdogpics.com”的网站,其中该网站拥有用户的狗以及其它狗的图片。这里,用户希望从该网站获得内容,并将该内容包括到数字笔记本300中。用户可以使用剪切工具或者其它内容识别工具来选择内容1002。应当注意,内容1002周围的粗边界说明这是所选定的内容。
在该例子中,内容1002包括两种不同类型的内容:示出为文本“Chewy’s Tree”的HTML内容以及图像。在该例子中,假定该网站提供BMP格式的图像。因此,用户对于希望渲染到他们的笔记本中的一个或多个图像中的两种不同的文件类型(HTML和BMP)的内容进行剪切。
对内容1002的选择可以被本地笔记本应用解释成“渲染内容1002,并将该渲染的内容放置到数字笔记本300中”的请求。响应于对该内容的剪切,本地笔记本应用可以向云服务发送执行该渲染的请求。在一些情况下,本地笔记本应用可以从网页中提取所选定的内容,并将该内容发送给云服务。在其它情况下,本地笔记本应用可以将该网页的统一资源定位符连同该网页中的用户希望进行渲染的特定内容的某种标识,一起发送给云服务(例如,该请求可以标识所选定的内容的一个或多个HTML属性)。
倘若云服务成功地渲染了用户所标识的HTML和BMP内容,则数字笔记本300可以如图11中所示地出现。这里,成功地将剪切的内容渲染到数字笔记本300中,或许渲染成一个或多个JPG文件。在该情况下,云服务尚未存留该网页或者将该网页包括在笔记本中。
图12示出了在云服务处没有适当地完成该渲染的场景。在该情况下,在位置308中没有出现JPG图像。但是,应当注意,已经将HTML文件1200嵌入到数字笔记本300中。因此,即使用户没有如期望地在他们的笔记本文件中具有渲染的JPG图像,他们也至少将所提供的内容(hosted content)嵌入在笔记本中以便以后使用。这在各种环境下是有用的,例如,如果域http://abcdopgpics.com变得不可用,用户未连接到网络等等。应当注意,在一些情况下,该嵌入的内容可以包括所提供的整个网页(其包括嵌入的BMP文件),或者只包括用户所选定的网页的一部分(例如,BMP文件和与文本“Chewy’s Tree”相对应的HTML内容的部分)。
本地实现
此外,还可以在个体计算设备上,本地执行前述的技术。通常,给定的计算设备可以具有服务和使用该服务进行某种处理的请求应用。例如,该服务可以是操作系统例程、由其它应用和/或专用硬件执行的加密或压缩功能、由数学或者统计包执行的数学例程等等。
继续上面所阐述的数字笔记本和渲染示例,考虑平板客户端设备240和/或膝上型客户端设备250具有能够对文件进行渲染的本地渲染服务的场景。这些客户端设备仍然使用云服务来存储文件,例如,具有这些客户端设备渲染的被嵌入图像的笔记本。但是,不是由云服务执行该渲染,而是由本地渲染服务来执行。
现在,考虑上面介绍的扫描仪场景,其中,扫描仪客户端设备230向云服务发送PDF文件以进行渲染。替代地,扫描仪客户端设备可以向平板客户端设备240和/或膝上型客户端设备250发送PDF文件以在其上进行渲染。本地笔记本应用可以以与上面针对云实现所讨论的那些相似的方式,对输入PDF、本地渲染服务所使用的计算资源和/或输出图像的特性进行评估。
其它处理类型
在前述的渲染示例中,云服务或者本地服务将各种文件格式的文档渲染到不同文件格式的图像中。通常来说,服务可以执行针对于给定的请求方实体(例如,用户、应用或者设备)的各种各样的处理任务。下文讨论可以实现前述的技术的一些不同类型的服务。
应当注意,可以将给定的被渲染图像视作为输入文件的表示,将该处理任务视作为将输入数据从一种电子格式(例如,PDF文件)转换成另一种电子格式(例如,JPG文件)。某些服务可以执行其它类型的处理任务,其也将输入数据转换成该输入数据的不同表示。例如,如果输入数据是波形的时域采样,则服务可以使用诸如快速傅里叶变换(FFT)之类的转换操作,将该时域采样转换成频域表示。再举一个例子,加密服务可以将未加密的输入数据转换成该输入数据的加密表示。
将输入数据转换成该输入数据的不同表示的服务的另一个例子,是用于将一个文档转换成另一个文档的服务。例如,文档转换服务可以将第一文字处理格式(例如,Microsoft)的文字处理文档转换成第二文字处理格式(例如,),或者转换成不同的文档类型(例如,电子表格、标记语言文档、ASCII文本等等)。当识别到诸如本文所讨论的那些之类的失败标准时(例如,文档转换服务不能适当地完成该转换,输入或输出文档太大,该处理任务时间太长或者使用过多的计算资源等等),文档转换服务可以利用第一格式来保存输入文档。
其它服务可以产生不被视作为输入数据的表示的输出。例如,输入数据可以是具有各种搜索项的搜索查询,输出可以是与该搜索查询相匹配的文档列表。再举一个例子,输入数据可以是一个数学值,处理任务可以是关于该数学值和其它数学值执行各种操作(例如,将输入数据增加一个常量)。
搜索查询的一个特定例子可以是:用户向本地应用(例如,前述的笔记本应用)输入国际标准图书编号(ISBN)的场景。该本地应用可以向云服务提供ISBN,转而该云服务尝试向用户提供该图书自身的一部分或者全部的数字副本(例如,该图书的PDF副本)。在一些情况下,该图书的PDF可能是不可获得的。在这些环境下,云服务可以替代地通过向用户提供用于该图书的购买网页的URL,来替代地进行响应。在另外的实现中,云服务可以将用于该图书的购物服务网页渲染到另一个文档(例如,笔记本)中。在任一情况下,云服务还可以将图书的ISBN包括在该文档中,使得用户不需要在稍后时间再次查找该ISBN。
在其它实现中,本地应用可以执行上面所描述的处理。例如,响应于用户输入了ISBN,本地应用可以尝试下载该图书的数字副本。如果该图书的数字副本不可获得,则本地应用可以替代地访问用于该图书的购买网页URL,并将该网页存留在客户端设备上。在本地应用生成/修改文档的情况下,本地应用可以请求本地或远程渲染服务对该网页进行渲染,将渲染的图像插入到该文档中。如果该渲染失败,则本地应用可以将该网页作为对象嵌入到该文档中(如先前所讨论的),和/或将ISBN嵌入到该文档中,使得用户不需要再次检索该ISBN。
请求类型
在一些实现中,提供给服务的请求可以包括:用于指示应当如何对该请求进行处理的各种字段。在一些情况下,请求可以显式地指示是否应当在该服务所产生的输出中提供输入数据。如上面所讨论的,当满足某个失败标准时,该服务可以覆盖该请求。
例如,在上面所讨论的特定例子中,扫描仪客户端设备230可以向云计算系统210发送用于指示应当如何将PDF文件包括在笔记本中的请求。一些请求可以包括用于指示该PDF是否应当在数字笔记本300中渲染(如图4中所示)、是否应当嵌入在笔记本中(如图5中所示)、或者既嵌入又渲染(如图6中所示)的一个或多个参数。再举一个例子,用于将时域信号转换成频域表示的请求,可以指示:是否应当使用该信号的频域表示,将输入信号采样包括在输出中。
本文所公开的技术可以在下面的环境中执行:当请求指示服务应当不将输入数据包括在处理任务的输出中时。在这些环境下,当服务将输入数据包括在输出中时,可以将服务视作为有效地覆盖这些请求参数。虽然这是与请求中表示的参数相比而言,但结果是可接受的,这是由于这些请求参数是基于该服务请求将成功地完成的假定。通过响应于检测到某种失败标准而对请求参数进行覆盖,可以对输入数据进行保存以便后续使用,而不是丢失该数据。例如,在上面所阐述的渲染示例中,将随着渲染请求一起输入的PDF、HTML和/或BMP文件,保存在笔记本中。在上面所提及的信号转换示例中,可以以某种方式对输入信号采样进行存留,使得当由于某种原因而发生转换失败时,它们仍然是请求方实体可访问的,例如,通过在该转换没有完成时,将采样值保存在指定的位置。即使当请求方实体请求丢弃这些采样值时,信号转换服务也仍然这样做。
应当注意,在一些情况下,在经请求之后,请求方实体可以默认地删除输入数据。在上面所阐述的云渲染示例中,在该渲染显然将成功完成之前,或者事实上在甚至发起该渲染之前,云计算系统210可以对来自扫描仪客户端设备230的请求进行确认。从云设备接收到该确认,可以提醒扫描仪客户端设备在假定云服务将成功地对该PDF文件进行渲染的情况下,删除该PDF文件的其本地副本。在一些情况下,扫描仪客户端设备甚至不了解失败的渲染。同样,在上面所阐述的信号转换示例中,服务可以默认地删除输入采样,而不是将它们保存在指定的位置(当转换失败时,它们所保存到的位置)。
此外,一些请求还可以指定如何对输出数据进行排列。例如,在渲染示例中,所述请求可以指示应当将输出图像包括在数字笔记本300中的特定位置。此外,该请求可以指定将渲染的图像包括在什么地方,例如,位于现有的标签或者页面中的特定位置、在新的笔记本中生成新的标签或者页面等等。再举一个例子,所述服务可以是用于减少输入图像的大小的压缩服务。该请求可以指示将该图像的压缩版本包括在输出网页中的什么位置。
此外,如上所述,所述请求可以具有编码的形式(例如,诸如HTML之类的标记语言格式)。在一些情况下,可以使用该请求的编码来构造输出。例如,在上面的渲染示例中,请求可以是用于指代特定的PDF文件的网页的HTML表示,例如:
上面的示例性请求包括:用于请求服务执行渲染操作的参数,例如,
“img data-render-src”。该参数指代“MyAppFileBlockName”,其是对于包括在该请求中的PDF的文件名(其标题为“ChewyNextToTreePDF”)的间接引用。指示“data-attachment”的行是用于使服务将该PDF文件嵌入在笔记本的页面中的显式请求。该行的缺少,可以指示应当不将该PDF文件嵌入在笔记本页面中。如上所述,在渲染操作失败的情况下,该服务可以不管对该行进行省略的请求,而将PDF文件嵌入在笔记本页面中。
失败标准
如上所述,在发起相关联的处理任务之前,所述服务可以确定已满足了某种失败标准。其它失败标准在该服务的处理期间将变得明显,直到在处理完成之后,其可能甚至也不是明显的。结果,在一些情况下,可以立即地确定服务请求将失败,在其它情况下,在服务认识到满足该失败标准之前,将执行某种处理,或者甚至完成某种处理。
在一些情境下,在开始处理任务之前,可以识别失败标准。例如,在通过对输入数据进行评估来检测到失败的情况下,可以执行失败的早期识别。例如,在上面所讨论的渲染实现中,对于渲染目的而言,可能不支持一些文件类型(例如,MME类型)。因此,如果输入数据不在支持的MIME类型中(例如,没有可用的渲染器),则可以满足失败标准。再举一个例子,一个失败标准可以是:输入数据的二进制大小可以是不超过预定的阈值(例如,15兆字节)。再举一个例子,还可以将畸形输入(例如,具有丢失的HTML标签)视作为失败标准。在服务执行数学操作的情况下,失败标准可以指示该服务不接受的某些数据类型(例如,没有无符号整数),还可以指示关于输出的上限和/或下限(例如,32比特的有符号整数的限制)。
可以在开始处理任务之前识别的另一种类型的失败标准是失败的认证。例如,假定使用数字证书、用户名和密码或者其它认证机制对输入数据进行认证。如果认证机制失败,则可以如本文所讨论地保存输入数据,而无需发起处理任务。
在其它情境下,当处理正在进行时,可以对失败进行检测。例如,与资源使用有关的失败标准,可以用于在处理期间识别失败。在一些情况下,该失败标准可以指示关于用于该处理的某些计算机资源的限制,例如,用于处理给定的请求的存储器的量、关于处理器时间/循环的量的限制、关于在网络之中传送的数据的量的限制等等。如果给定的请求的处理超过该限制,则该请求可能在完成之前就失败。例如,在一些情况下,当满足该标准时,可以杀掉该处理任务。在一些情况下,随着服务的负载发生改变,该资源使用标准发生变化,在其它情况下,其可以是静态的。
当正在处理的文件包括对远程文件的引用,并且这些引用不能够被解析或者访问时,发生在处理期间检测到失败的另一个例子。例如,网络失败可能阻止这些远程文件被访问,或者这些引用可能标识用户的本地网络中该服务不可访问的LAN存储地址(作为某些LAN准许的结果)。这些远程文件可以是用户希望渲染到笔记本的文件、用户希望进行加密的文件、用户希望进行压缩的文件等等。
在一些情况下,直到处理完成和产生输出之前,失败都可能不是明显的。因此,一些失败标准涉及输出的特性,服务可以对输出进行评估,以判定是否满足这些标准。例如,输出数据的总体大小可以是一个失败标准,例如,渲染的图像、转换的信号、压缩的文件等等的总大小等等不超过固定的大小(例如,75兆字节)。在一些情况下,输出可以具有多个组成部分(例如,笔记本文件的页面、电子表格文件中的工作表等等),每一个组成部分的大小可以具有指定的限制(例如,不大于5兆字节的存储器占用)。其它实现可以指定关于组成部分的数量的限制,例如,不超过渲染30页、电子表格中不超过10个工作表等等。
在一些情况下,输出自身可能不是孤立地造成失败。但是,输出可以是具有某个相关联的标准的数据集的一部分,向该集合增加该输出可能造成该数据集触发该标准。换言之,输出自身可能并不满足失败的标准,但当与集合中的其它项进行聚合时,则发生失败。例如,用户可能具有关于云存储的存储装置配额(其以字节、兆字节、吉字节等等进行表示),当将输出保存在用户的云存储装置中时,将造成用户的总文件存储量超过他们的存储装置配额,可能满足失败标准。再举一个例子,可能关于用户可以在云存储装置中保存的文档的总数量具有固定的限制(例如,100个文档),而不管各个文件大小,该输出可以是第101个文档。
应当注意的是,还可能存在当将输入数据保存在用户的云存储装置中时,将造成它们超过存储装置配额的情况。如果从用户的角度来看,失败至少临时地阻止数据丢失,并提供相对的软失败,则一些实现可以不管存储装置配额。在这些环境下,其它实现可以删除输入数据。
其它失败标准可以涉及:处理实际发生崩溃或者报告某种类型的错误的情形。例如,处理任务可以报告输入数据是畸形的,故渲染发生暂停。再举一个例子,处理任务自身可以具有当对输入数据进行处理时,进行违反的某些约束(例如,虚拟存储器限制)。
此外,应当注意,在一些失败情况下,用户仍然能够访问部分结果。例如,假定服务对于渲染的文档施加了30页的限制,渲染任务成功地完成,并输出了50页的渲染图像。因此,即使该服务向用户提供全部渲染的50页文档,但由于策略原因,也只向用户提供仅仅30页。在这些环境下,该服务采取步骤来保存输入数据,通过对用户的云存储装置中的笔记本进行更新,以包括50个渲染图像中的30个以及该PDF文档自身。此外,在用户没有接收到全部的50个渲染页的环境下(由于在渲染了这些页面中的仅仅一些之后,渲染任务发生崩溃),该服务也可以执行相似的步骤。
再举一个例子,考虑用于将数据库文件转换成电子表格的服务。例如,假定该服务关于输出电子表格施加了10个工作表的限制,电子表格生成任务成功地完成,并输出具有15个工作表的电子表格。因此,即使该服务向用户提供全部15表格的电子表格,但由于策略原因,也只向用户提供仅仅具有10个工作表的部分电子表格。在这些环境下,该服务采取步骤来保存输入数据,例如将数据库文件嵌入在部分电子表格中,将该部分电子表格保存在用户的云存储装置中。此外,在用户没有接收到全部的15个工作表的环境下(由于在生成了这些工作表中的仅仅一些之后,电子表格生成任务发生崩溃),该服务也可以执行相似的步骤。
此外,还应当注意,在一些情况下,当处理开始时,输出的特性可能是不明显的。例如,在PDF渲染的情况下,对PDF进行分析以确定渲染的PDF将是多大、其将包含多少页、各个页面将是多大等等,可能是不可能的或者不高效的。再举一个例子,对数据库文件进行评估以确定在输出电子表格中将生成多少不同的工作表,也可能是不可能的或者不高效的。在这些环境下,有用的或者需要的是,允许处理任务进行完成,使得可以对输出进行评估。
另外的示例
本文所讨论的各种例子可以包括由至少一个计算设备执行的第一方法。该第一方法示例可以包括:获得服务对输入数据执行处理,以产生输入数据的输出表示的请求;向该请求应用标准;响应于确定满足该标准,保存输入数据。在第二示例性方法示例中,第一方法示例的输入数据可以包括:用于该服务进行渲染以获得输出表示的文档。在第三方法示例中,向第一和第二方法示例中的请求应用标准,可以包括:对输入数据进行评估。在第四方法示例中,向第一、第二或第三方法示例中的请求应用标准,可以包括:对用于执行该服务的计算机资源进行评估。在第五方法示例中,向第一、第二、第三或第四方法示例中的请求应用标准,可以包括:对输入数据的输出表示进行评估。在第六方法示例中,第一到第五方法示例中的任何一个的请求代表具有相关联的云存储的用户保存输入数据包括:将输入数据保存在用户的相关联的云存储装置中。在一些另外的方法示例中,第一到第六方法示例中的一些或者全部,由远离请求方实体(例如,应用)进行运行的云服务来执行,或者由在具有请求方实体的计算设备上运行的本地服务来执行。
本文所讨论的各个例子还可以包括第一示例性云计算系统,其中该第一示例性云计算系统包括一个或多个硬件处理单元和存储计算机可执行指令的一个或多个计算机可读存储设备,这些计算机可执行指令当被一个或多个硬件处理单元执行时,使得第一示例性云计算系统通过网络接收包括输入数据的服务请求,确定该服务请求指示第一示例性云计算系统应当不存留该输入数据,响应于检测到失败,通过存留输入数据来覆盖该服务请求。在第二示例性云计算系统示例中,第一示例性云计算系统示例的计算机可执行指令使得云计算系统通过将输入数据保存在云存储装置中,来存留输入数据。在第三示例性云计算系统示例中,第一或第二云计算系统示例的计算机可执行指令使得云计算系统通过将输入数据作为对象嵌入在文档中,来存留输入数据。在第四云计算系统示例中,第一到第三云计算系统示例的云计算系统提供数字笔记本云服务,将输入数据嵌入在数字笔记本中。在第五云计算系统示例中,第一到第四云计算系统的服务请求是用于渲染输入数据的请求。在第六云计算系统示例中,第一到第五云计算系统示例的输入数据包括便携式文档格式文件。在第七云计算系统示例中,第一到第六云计算系统示例的计算机可执行指令使得该云计算系统通过向输入数据、该服务请求的输出或者用于处理该服务请求的计算机资源中的至少一个应用标准,来检测失败。在其它示例中,客户端设备本地执行上面参照第一到第七云计算系统所讨论的处理。
本文所讨论的各种例子可以包括由至少一个计算设备执行的另外的第一方法示例。该另外的第一方法示例可以包括:获得具有输入数据的服务请求,通过对该服务请求的输出进行评估,向该服务请求应用标准,响应于检测到该服务请求的输出满足该标准,对该服务请求的输入数据进行保存。在第二另外的方法示例中,第一另外的方法示例由在至少一个计算设备上运行的本地服务来执行,其中该本地服务代表也在所述至少一个计算设备上运行的应用。在第三另外的方法示例中,在第一或第二另外的方法示例中应用标准,包括:判定输出的总体存储器占用是否超过阈值。在第四另外的方法示例中,应用第一到第三另外的方法示例的标准,包括:判定输出的任何组成部分是否具有超过阈值的存储器占用。在第五另外的方法示例中,应用第一到第四另外的方法示例的标准,包括:判定对输出进行保存是否致使存储装置配额被超过。在第六另外的方法示例中,第一到第五另外的方法示例的存储装置配额,包括与用户帐户相关联的云存储装置配额。在第七另外的方法示例中,保存第一到第六另外的方法示例,包括:将输入数据保存在与用户帐户相关联的云存储装置中。
设备实现
返回到参见图2,该图示出了包括一些设备的环境200。在该情况下,为了便于说明起见,将这些设备的特性描绘成客户端设备和云计算系统。在该例子中,将客户端设备显示成扫描仪、平板设备和膝上型设备。但是,其它类型的设备也可以充当客户端设备,例如,智能手机、桌面型计算机、打印机或者具备计算能力的家庭电器。通常,只要一个设备具有某种计算硬件,则根据所公开的实现,该设备就可以充当为客户端设备。
云计算系统210可以包括一个或多个基于云的服务器类型设备,但在一些情况下,该云计算系统可以包括前述的客户端设备类型中的任何一个。云计算系统可以与同该云计算系统同处一地的数据存储进行通信。当然,没有示出所有的设备实现,对于熟练的技术人员来说,根据前面和下面的描述,其它设备实现也应当是显而易见的。
如本文所使用的术语“设备”、“计算机”、“计算设备”、“客户端设备”和/或“服务器设备”可以意味着具有某个数量的硬件处理能力和/或硬件存贮/存储能力的任何类型的设备。处理能力可以由一个或多个处理器(例如,硬件处理单元/内核)来提供,所述一个或多个处理器可以执行具有计算机可读指令形式的数据来提供功能。可以将计算机可读指令和/或数据存储在诸如存贮设备/存储器和/或数据存储之类的存贮设备上。
该存贮设备/存储器可以在设备之内,也可以在设备之外。该存贮设备可以包括易失性或非易失性存储器、硬盘驱动器、闪速存储设备和/或光存储设备(例如,CD、DVD等)等等中的任何一个或多个。如本文所使用的,术语“计算机可读介质”可以包括信号。相比而言,术语“计算机可读存储介质”不包括信号。计算机可读存储介质包括“计算机可读存储设备”。计算机可读存储设备的例子包括易失性存储介质(如,RAM)和非易失性存储介质(如,硬盘驱动器、光碟和闪存等等)。
在一些情况下,这些设备配置有通用处理器和存贮设备/存储器。在其它情况下,设备可以包括片上系统(SOC)类型设计方案。在SOC设计方案实现中,可以将设备所提供的功能集成在单一SOC或者多个耦合的SOC上。一个或多个相关联的处理器可以被配置为与诸如存储器、存贮设备等等之类的共享资源和/或一个或多个专用资源(例如,配置为执行某种特定功能的硬件模块)进行协调。因此,如本文所使用的术语“处理器”还可以指代中央处理单元(CPU)、图形处理单元(GPU)、控制器、微控制器、处理器内核或者适合于在常规的计算架构以及SOC设计方案中实现的其它类型的处理设备。
在一些配置中,可以在设备的制造期间,或者由准备将该设备出售给终端用户的中间商,将服务请求模块、服务提供者模块和/或任务实现模块安装成硬件、固件或者软件。在其它实例中,终端用户可以例如通过下载可执行代码,并将该可执行代码安装在相应的设备上,在以后安装务请求模块、服务提供者模块和/或任务实现模块。
此外,还应当注意,设备通常可以具有输入和/或输出功能。例如,计算设备可以具有诸如键盘、鼠标、触摸板、语音识别等等之类的各种输入装置。此外,设备还可以具有诸如打印机、监视器等等之类的各种输出装置。
此外,还应当注意,本文所描述的设备可以以独立方式或者协作方式进行工作,以实现所描述的技术。例如,方法100可以在单一计算设备上执行,和/或分布在通过网络220进行通信的多个计算设备上。在不进行限制的情况下,网络220可以包括一个或多个局域网(LAN)、广域网(WAN)、互联网等等。
结论
虽然利用特定于结构特征和/或方法动作的语言来描述了本发明,但应当理解的是,所附权利要求书中规定的主题并不是必需限于上面所描述的这些特定特征或动作。相反,只是将上面所描述的特定特征和动作公开成实现本发明的示例性形式,本领域普通技术人员应当认识到的其它特征和动作也旨在落入本发明的保护范围之内。

Claims (15)

1.一种由防止数据丢失的云计算服务执行的方法,所述方法包括:
获得所述云计算服务对输入数据执行处理任务以将所述输入数据转换成所述输入数据的输出表示的请求;
向所述请求应用失败标准,以识别不满足所述失败标准的某些请求以及满足所述失败标准的其它请求;
针对不满足所述失败标准的所述某些请求,从所述云计算服务的存储装置中删除针对所述某些请求的所述输入数据;以及
针对满足所述失败标准的所述其它请求,将针对所述其它请求的所述输入数据保存在所述云计算服务的所述存储装置中。
2.根据权利要求1所述的方法,其中,所述输入数据包括用于所述云计算服务进行渲染以获得所述输出表示的文档。
3.根据权利要求1所述的方法,其中,向所述请求应用所述失败标准包括:对所述输入数据进行评估。
4.根据权利要求1所述的方法,其中,向所述请求应用所述失败标准包括:对用于执行所述处理任务的所述云计算服务的计算机资源进行评估。
5.根据权利要求1所述的方法,其中,向所述请求应用所述失败标准包括:对所述输出表示进行评估。
6.根据权利要求1所述的方法,其中,所述请求是代表具有相关联的云存储装置的用户的,并且针对所述其它请求的所述输入数据是与所述用户的对应用户帐户相关联地被存留的。
7.一种云计算系统,包括:
一个或多个硬件处理单元;以及
存储有计算机可执行指令的一个或多个计算机可读存储设备,所述计算机可执行指令当由所述一个或多个硬件处理单元执行时,致使所述云计算系统:
获得具有输入数据的服务请求;
通过对所述服务请求的输出进行评估,向所述服务请求应用标准;
以及
响应于检测到所述服务请求的所述输出满足所述标准,保存所述服务请求的所述输入数据。
8.根据权利要求7所述的云计算系统,其中,所述计算机可执行指令致使所述云计算系统:
通过判定所述输出的总体存储器占用是否超过了阈值,来应用所述标准。
9.根据权利要求7所述的云计算系统,其中,所述计算机可执行指令致使所述云计算系统:
通过判定所述输出的任何组成部分是否具有超过阈值的存储器占用,来应用所述标准。
10.根据权利要求7所述的云计算系统,其中,所述计算机可执行指令致使所述云计算系统:
通过判定存储所述输出是否致使存储装置配额被超过,来应用所述标准。
11.根据权利要求10所述的云计算系统,其中,所述存储装置配额包括与用户帐户相关联的云存储装置配额。
12.根据权利要求11所述的云计算系统,其中,所述计算机可执行指令致使所述云计算系统:
通过将所述输入数据存储在与所述用户帐户相关联的云存储装置中,来保存所述输入数据。
13.根据权利要求7所述的云计算系统,其中,所述计算机可执行指令致使所述云计算系统:
通过将所述输入数据作为对象嵌入在文档中,来保存所述输入数据。
14.根据权利要求13所述的云计算系统,其中,所述文档是数字笔记本。
15.根据权利要求14所述的云计算系统,其中,所述输入数据是便携式文档格式文件。
CN201580020027.XA 2014-04-16 2015-04-06 输入数据的条件性保存 Pending CN106233257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110472383.2A CN112948164A (zh) 2014-04-16 2015-04-06 输入数据的条件性保存

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461980443P 2014-04-16 2014-04-16
US61/980,443 2014-04-16
US14/338,301 2014-07-22
US14/338,301 US9672114B2 (en) 2014-04-16 2014-07-22 Conditional saving of input data
PCT/US2015/024420 WO2015160547A1 (en) 2014-04-16 2015-04-06 Conditional saving of input data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110472383.2A Division CN112948164A (zh) 2014-04-16 2015-04-06 输入数据的条件性保存

Publications (1)

Publication Number Publication Date
CN106233257A true CN106233257A (zh) 2016-12-14

Family

ID=54322122

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580020027.XA Pending CN106233257A (zh) 2014-04-16 2015-04-06 输入数据的条件性保存
CN202110472383.2A Pending CN112948164A (zh) 2014-04-16 2015-04-06 输入数据的条件性保存

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110472383.2A Pending CN112948164A (zh) 2014-04-16 2015-04-06 输入数据的条件性保存

Country Status (6)

Country Link
US (2) US9672114B2 (zh)
EP (1) EP3132350B1 (zh)
KR (1) KR102230505B1 (zh)
CN (2) CN106233257A (zh)
TW (1) TW201546627A (zh)
WO (1) WO2015160547A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672114B2 (en) 2014-04-16 2017-06-06 Microsoft Technology Licensing, Llc Conditional saving of input data
US10394939B2 (en) * 2015-03-31 2019-08-27 Fujitsu Limited Resolving outdated items within curated content
US10733023B1 (en) * 2015-08-06 2020-08-04 D2Iq, Inc. Oversubscription scheduling
CN105897915B (zh) * 2016-05-23 2022-09-09 珠海格力电器股份有限公司 一种数据接收服务器、及数据处理系统
US10558504B1 (en) * 2018-09-28 2020-02-11 Atlassian Pty Ltd Systems and methods for automatically detecting desktop applications
US11576048B1 (en) * 2020-04-28 2023-02-07 T-Mobile Innovations Llc Mitigating authentication-based hacking of access restricted telecommunication services

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1127558A (zh) * 1994-04-22 1996-07-24 索尼公司 数据传输装置和数据记录装置及数据传输方法和数据记录方法
US20060184675A1 (en) * 2005-02-15 2006-08-17 Microsoft Corporation System and method for applying flexible attributes to execute asynchronous network requests
CN1838126A (zh) * 2006-01-11 2006-09-27 张新波 自由输入形式的无线短信匹配和搜索引擎的信息处理方法及其装置
US20070168459A1 (en) * 2005-11-21 2007-07-19 Sharp Kabushiki Kaisha Data processing apparatus

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392484B1 (en) 2000-10-13 2008-06-24 Hewlett-Packard Development Company, L.P. Method and system for capturing, storing, sharing, and managing notes taken during a computer based meeting
US7039234B2 (en) 2001-07-19 2006-05-02 Microsoft Corporation Electronic ink as a software object
JP2004069809A (ja) 2002-08-02 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> 遠隔学習システム、学習情報送信装置及び遠隔学習方法
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US20110179219A1 (en) 2004-04-05 2011-07-21 Super Talent Electronics, Inc. Hybrid storage device
US7519573B2 (en) 2004-08-23 2009-04-14 Fuji Xerox Co., Ltd. System and method for clipping, repurposing, and augmenting document content
US9141718B2 (en) 2005-06-03 2015-09-22 Apple Inc. Clipview applications
EP1949262A1 (en) 2005-11-18 2008-07-30 Kapow Technologies A/S Method of performing web clipping, a web-clipping server and a system for web clipping
US7702664B2 (en) 2006-12-26 2010-04-20 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for autonomic large file marking
EP2127321A2 (en) 2007-02-09 2009-12-02 Novarra, Inc. Method and system for providing portions of information content to a client device
WO2008127474A1 (en) 2007-04-17 2008-10-23 Edward Frederick Publishing, importing, and formatting web page modules
JP2009110287A (ja) 2007-10-30 2009-05-21 Fujitsu Ltd アクセス制御装置およびアクセス制御方法
US20100145924A1 (en) 2008-12-04 2010-06-10 Novarra, Inc. Methods and Devices for Locating Information on a Web Page
US8645383B2 (en) 2009-01-27 2014-02-04 Stephen J. Brown Content management system using sources of experience data and modules for quantification and visualization
US8543675B1 (en) 2009-12-17 2013-09-24 Amazon Technologies, Inc. Consistent link sharing
US10607235B2 (en) 2009-12-24 2020-03-31 Outbrain Inc. Systems and methods for curating content
US8799414B2 (en) * 2010-05-03 2014-08-05 Panzura, Inc. Archiving data for a distributed filesystem
JP5062315B2 (ja) 2010-09-09 2012-10-31 ブラザー工業株式会社 画像処理プログラム
US9077681B2 (en) 2010-10-05 2015-07-07 Microsoft Technology Licensing, Llc Page loading optimization using page-maintained cache
JP5327246B2 (ja) 2011-02-08 2013-10-30 ブラザー工業株式会社 画像処理プログラム
US8467663B2 (en) 2011-02-18 2013-06-18 Apple Inc. Video context popups
JP6082387B2 (ja) * 2011-05-14 2017-02-15 ビットカーサ インコーポレイテッド ユーザ不可知暗号化ファイルのサーバ側非複製化を有するクラウドファイルシステム
US9595054B2 (en) 2011-06-27 2017-03-14 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
US20130159497A1 (en) 2011-12-16 2013-06-20 Microsoft Corporation Heuristic-Based Rejection of Computing Resource Requests
CN102446224B (zh) 2012-01-05 2013-06-05 苏州阔地网络科技有限公司 一种网页多层次区块剪取方法
US20150200883A1 (en) 2012-05-30 2015-07-16 Daniel Scott Brotherston Systems and methods for maintaining responsiveness in the presence of large data chunks
US20150261733A1 (en) 2014-03-17 2015-09-17 Microsoft Corporation Asset collection service through capture of content
US9672114B2 (en) 2014-04-16 2017-06-06 Microsoft Technology Licensing, Llc Conditional saving of input data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1127558A (zh) * 1994-04-22 1996-07-24 索尼公司 数据传输装置和数据记录装置及数据传输方法和数据记录方法
US20060184675A1 (en) * 2005-02-15 2006-08-17 Microsoft Corporation System and method for applying flexible attributes to execute asynchronous network requests
US20070168459A1 (en) * 2005-11-21 2007-07-19 Sharp Kabushiki Kaisha Data processing apparatus
CN1838126A (zh) * 2006-01-11 2006-09-27 张新波 自由输入形式的无线短信匹配和搜索引擎的信息处理方法及其装置

Also Published As

Publication number Publication date
WO2015160547A1 (en) 2015-10-22
TW201546627A (zh) 2015-12-16
US9934081B2 (en) 2018-04-03
US20150301898A1 (en) 2015-10-22
US20170091012A1 (en) 2017-03-30
EP3132350B1 (en) 2021-05-26
KR102230505B1 (ko) 2021-03-19
EP3132350A1 (en) 2017-02-22
CN112948164A (zh) 2021-06-11
KR20160145018A (ko) 2016-12-19
US9672114B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
US11048979B1 (en) Active learning loop-based data labeling service
CN106233257A (zh) 输入数据的条件性保存
US20160110180A1 (en) Automatic recognition of web application
US20120259964A1 (en) Cloud computing method capable of hiding real file paths
US9164968B2 (en) Techniques for server-side determination of font subsets
US20170372284A1 (en) Control and access of digital files for three dimensional model printing
US20140075301A1 (en) Information processing apparatus, control method, and recording medium
CN109522751B (zh) 访问权限控制方法、装置、电子设备及计算机可读介质
US20200125996A1 (en) Automated software selection using a vector-trained deep learning model
US8706778B2 (en) Methods and systems for an action-based interface for files and other assets
US10528678B2 (en) Digital content translation techniques and systems
US10437779B2 (en) Intelligent interactive screen capture
US20190179664A1 (en) System and method for provisioning integration infrastructure at runtime indifferent to hybrid nature of endpoint applications
CN106030527B (zh) 将可供下载的应用程序通知用户的系统和方法
US20100257413A1 (en) Verification service for dynamic content update
US20140032478A1 (en) Virtual embedding of files in documents
US11729248B2 (en) Web application component migration to a cloud computing system
US9430222B2 (en) Controlling a running application for live scene graph editing
TW201426309A (zh) 薄化書本
JP6015546B2 (ja) 情報処理装置、情報処理方法、プログラム
US20180335899A1 (en) Digital Asset Association with Search Query Data
US9563845B1 (en) Rule evaluation based on precomputed results
US20200380071A1 (en) Autoform Filling Using Text from Optical Character Recognition and Metadata for Document Types
US20210342130A1 (en) Systems and methods for software application generation and delivery
CN111651416A (zh) Sketch项目文件上传预览方法、系统、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161214