CN112424764A - 长上传时间检测和管理 - Google Patents
长上传时间检测和管理 Download PDFInfo
- Publication number
- CN112424764A CN112424764A CN201980047250.1A CN201980047250A CN112424764A CN 112424764 A CN112424764 A CN 112424764A CN 201980047250 A CN201980047250 A CN 201980047250A CN 112424764 A CN112424764 A CN 112424764A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- content
- synchronized
- message
- client device
- 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
Links
- 238000001514 detection method Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000001360 synchronised effect Effects 0.000 claims description 134
- 238000004891 communication Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 30
- 230000002035 prolonged effect Effects 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 20
- 230000005540 biological transmission Effects 0.000 description 42
- 230000015654 memory Effects 0.000 description 30
- 238000007726 management method Methods 0.000 description 28
- 238000011144 upstream manufacturing Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000000670 limiting effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000006091 Macor Substances 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
用于检测和管理电子内容的非典型同步会话的系统和方法。所述系统被配置为确定在客户端设备与云存储服务之间的未决或进行中的同步会话是否与将延迟同步过程的状况相关联。所提出的系统和方法能够显著改善用于保护其文档以及减少数据丢失可能性的能力。
Description
背景技术
云存储账户允许用户将其电子内容项或文件存储在能够从具有网络连接的任意计算设备访问的在线存储账户中。云存储服务提供商的一些更周知的示例包括MicrosoftGoogle和通过这些类型的服务,用户能够将内容项(诸如图片、歌曲、文档以及其他电子内容)从计算设备上传到在线存储账户。之后能够从不同的计算设备访问这些项。在一些情况下(诸如Microsoft的),服务提供与其他人并且跨多个计算设备进行存储、同步和共享各种文件类型的手段,以及同步系统设置、可视化自定义、主题、应用设置和浏览器标签、历史以及针对不同设备的已保存密码的可能性。
一旦内容已经被存储在在线存储账户中,用户就能够访问其内容项。然而,对内容项自身进行同步会是耗时的。作为一个示例,用户可能在客户端设备上存储或者向客户端设备添加许多内容项,这会需要额外的时间来进行同步。常规的内容项同步方法被设计为对内容项排队,并且然后一次对其进行同步。通常,基于简单目录搜索来形成队列,以标识未同步的内容项。遗憾的是,在许多情况下,用户可能不知道其内容项的同步状态,并且错误地假设仍在队列中的项已经被上传并且被在线保护。因此,对于减少数据丢失以及为用户提供改进对这样的上传管理的工具的新的和改进的想法,仍然是重要的领域。
发明内容
根据本公开的第一方面,一种内容管理系统,包括:一个或多个处理器;以及包括指令的一个或多个计算机可读介质,所述指令当由所述一个或多个处理器运行时使所述一个或多个处理器:通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息可以被配置为传达包括至少第一电子内容项的第一同步内容集的同步进度。所述第一同步内容消息包括关于剩余的要被同步的数据量的信息。所述指令还使所述一个或多个处理器确定所述第一同步内容集的同步具有被延长的可能性,所述确定至少部分地基于对与所述第一同步内容消息的信息相关联的非典型同步状况的检测。另外,所述指令使所述一个或多个处理器:通过通信网络向客户端设备传输第一消息,所述第一消息指示所述第一同步内容集的同步具有被延长的可能性。
根据本公开的第二方面,一种内容管理系统,包括:同步内容集跟踪模块,其被配置为通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息可以被配置为传达包括至少一个电子内容项的第一同步内容集的同步进度,其中,所述第一同步内容消息包括关于剩余的要被同步的数据量的信息。所述系统还包括同步状况管理器,其被配置为:确定所述第一同步内容集的同步具有被延长的可能性,所述确定至少部分地基于对与所述第一同步内容消息的信息相关联的非典型同步状况的检测;以及通过通信网络向客户端设备传输同步状况消息,所述同步状况消息指示所述第一同步内容集的同步具有被延长的可能性。
根据本公开的第三方面,一种方法,包括:通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息可以被配置为传达包括至少第一电子内容项的第一同步内容集的同步进度。所述第一同步内容消息包括关于剩余的要被同步的数据量的信息。另外,所述方法包括:确定所述第一同步内容集的同步具有被延长的可能性,该确定至少部分地基于对与所述第一同步内容消息的信息相关联的非典型同步状况的检测。此外,所述方法包括:通过通信网络向客户端设备传输第一消息,所述第一消息指示所述第一同步内容集的同步具有被延长的可能性。
提供本发明内容以简化形式介绍一些概念,这些概念将在下文的详细描述中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于限制所要求保护的主题的范围。此外,要求保护的主题并不限于解决在本公开的任何部分中所指出的任何或所有缺点的实现方式。
附图说明
附图仅仅通过示例而非限制的方式描绘了根据本教导的一种或多种实现方式。在附图中,相似的附图标记指代相同或相似的元件。此外,应当理解,附图不必按比例绘制。
图1A是内容同步环境的实现方式的概念性图示,并且图1B是描绘内容管理系统架构的示例的概念性图示;
图2是传达同步内容集特性的消息的实现方式的示意性图示;
图3是从客户端设备向云存储服务传输消息的实现方式的示意性图示;
图4A和图4B是图示了用于管理内容同步的分布式计算环境的实现方式的概念性图示;
图5是具有同步客户端应用和客户端文件目录的实现方式的设备显示的表示;
图6是具有同步客户端应用和进度面板的实现方式的设备显示的表示;
图7是图示了检测非典型同步事件的方法的实现方式的流程图;
图8是具有非典型同步状况的通知的实现方式的设备显示的表示;
图9A和图9B是描绘对非典型同步状况的检测的响应的示例的序列;
图10是图示了用于检测非典型同步状况的过程的实现方式的流程图;
图11是示例性计算设备的框图,所述示例性计算设备可以被用于提供在本文中所描述的机制的实现方式;以及
图12是图示了被配置为从机器可读介质读取指令的示例性机器的组件的框图。
具体实施方式
在下文的详细描述中,通过示例的方式阐述了许多具体细节,以便提供对相关教导的透彻理解。然而,应当显而易见的是,可以在没有这样的细节的情况下实践本教导。在其他情况下,为了避免不必要地模糊本教导的各方面,已经在相对高水平上描述了已知的方法、流程、组件和/或电路,而没有细节。
以下描述公开了用于管理电子内容项的系统和方法,所述电子内容项被排队以用于在内容管理系统与客户端设备之间进行同步,并且可以与延迟的、延长的或者以其他方式比正常长的上传或下载过程相关联。所述系统被配置为接收关于所述电子内容项的信息,并且确定同步是否将需要比正常长的同步会话。在这样的确定之后,通知能够被发送给客户端设备以提醒用户可能需要延长的上传或下载时间来完成所述电子内容项与云服务器的同步。内容管理系统的这样的主动通知能够警告用户潜在的数据丢失状况,并且有助于使不完整的同步会话的可能性最小化。
出于该描述的目的,内容管理系统(CMS)指代用户可以能够通过其存储内容项以及执行各种内容管理任务(诸如取回、修改、浏览和/或共享内容项)并且使得用户能够从多个客户端设备访问所述内容的系统。通常,用户能够通过被连接到网络的一个或多个客户端设备与CMS进行交互。CMS能够支持来自各种不同的客户端设备的连接,诸如台式计算机、移动计算机、移动通信设备(诸如移动电话、智能电话、平板计算机等)、智能电视、游戏设备、机顶盒和/或任何其他网络支持计算设备。CMS能够被配置为接受来自多个客户端设备的连接并且同时与其进行交互。通常,用户通过与被安装在客户端设备上的客户端侧应用或者经由第三方应用(诸如web浏览器应用)进行交互,并且被配置为与CMS进行通信。
出于本申请的目的,术语“电子内容项”或“内容项”包括可以被(例如,以视觉方式或听觉方式)呈现的任意数字数据,包括但不限于:电子文档、媒体流、网页、超文本文档、图像、数字视频或视频记录、数字音频或音频记录、动画、数字消息、标记语言文档(诸如超文本标记语言(HTML)或者可扩展标记语言(XML)文档)、具有空白分量以接受输入的数据的表格、或者描述GUI的应用的数据以及其他数字数据。另外,在本文中所使用的“项”能够包括电子设备上的任意文件夹、文件、目录或数据对象。作为一个示例,项能够指代目录“文件夹”,其能够包括文档、照片、音乐文件和视频文件。
此外,术语“软件应用”、“软件”或“应用”指代执行有用的工作的计算机程序,通常与计算机自身无关。软件应用的一些非限制性示例包括:文字处理器、电子表格、会计系统和电信程序、以及游戏软件、实用程序和生产力工具、移动应用、演示图形以及其他生产力软件。这些是非限制性示例,并且任何其他电子内容编辑或协作应用可以受益于所公开的实现方式。因此,在整个说明书中通过名称对软件应用的特定引用不应当被理解为限制所提出的系统和方法的使用。
另外,“同步”指代通过通信网络将内容项从客户端设备上传到CMS,或者替代地通过通信网络将内容项从内容管理系统下载到客户端设备,以使得在客户端设备和内容管理系统两者上对内容进行同步。应当理解,为了简单起见,在本文中所描述的示例将呈现其中发生上传的情况。然而,在以下描述中提出的对“上传”的所有引用以及基于上传的同步的示例应当被理解为也涵盖同步事件涉及对电子内容的下载的情况。例如,客户端设备能够被配置为通过将被存储在客户端设备上的内容项上传到链接的内容管理系统以使被存储在客户端设备上的内容项与CMS上的相关联的账户同步。客户端设备还能够被配置为通过将被存储在链接的内容管理系统上的内容项下载到客户端设备来同步内容项。
在一些情况下,上传(或下载)所花费的时间可能比预期的长。发生这种情况的原因会有多种,诸如网络或处理器速度慢、内容项大小过大或“庞大”、上传期间中断、网络连接问题、软件不兼容性、授权或认证问题、以及其他这样的障碍。当前的服务提供商没有提供一种手段来确定客户端上传会话中的特定细分或项目花费的时间是否比正常预期的时间长。而是,所述服务通常作为个体事务参与上传,而没有在未决会话中要被同步的每个文件或所有文件的大小的较宽泛的上下文。
最终用户可能不知道这些潜在的复杂性,并且随后采取了使用户的内容项易受到攻击的措施。尽管用户错误地认为其内容项被安全地备份,但是其可能参与可能导致数据丢失的行为。结果,电子设备的用户在同步来自在线存储系统的最新和/或正确版本的数据时可能经历功能降低和/或问题。如将在下文讨论的,因此,为用户提供用于防止这样的数据丢失以及对信息的访问的机制非常重要,所述机制允许用户保持实时地了解同步状态。
为了更好地向读者介绍系统和方法,图1A呈现了用于实现电子内容同步管理系统(在图4A和图4B中示意性图示)的代表性计算环境(“环境”)150的高级示例。在不同的实现方式中,环境150能够包括一个或多个计算设备最终用户,或者被简称为“用户”。一个或多个用户能够与经由用户设备呈现的数据进行交互或者对其进行操纵。总体上描述了在图1A和图1B中所图示的各种特征和活动,结合后面的附图给出了进一步的细节和示例。
作为示例,在图1中示出了第一用户110。在这种情况下,第一用户110正在访问第一设备120上的同步客户端应用(“同步客户端”)100。第一设备120可以是个人计算机,诸如台式机或膝上型计算机、移动设备、或者具有文件系统的任何其他计算机系统。第一设备120执行诸如Microsoft Mac或者其他操作系统的操作系统,并且包括存储器、存储装置、网络接口以及在图1A中为了清楚起见未示出的其他计算机硬件。第一设备120经由其操作系统以将在本文中所描述的修改在其存储系统上创建、修改和/或删除文件。另外,如下文进一步描述的,第一设备120包括一个或多个同步文件夹。在图1A中,仅示出了一个设备,但是任何数量的设备可以经由同步服务来共享同步的文件夹。例如,第一设备120能够被连接到服务器或在线或基于云的计算存储服务(“云存储服务”)190。在第一用户110经由第一设备120添加或修改电子内容时,各种内容或文件可以通过网络连接来更新或保存在云存储中。
因此,在该示例中,第一设备120允许第一用户110在客户端的本地文件系统上创建、修改和删除文件,并且允许那些动作与主机系统上和/或一台或多台其他客户端计算机上的相同版本的文件同步。在一些实现方式中,用户可以创建文件夹并且将其指定用于同步。文件的内容由同步客户端100部分地管理,以保持所需的同步频率或同步级别。通常,用户能够通过针对同步客户端100的本机控件或者经由web服务器来创建共享的同步文件夹。
出于该描述的目的,“本机控件”指代用于通过客户端应用向应用用户传送内容的机制。例如,本机控件可以包括经由本机应用用户界面(UI)呈现给用户的弹出窗口、可以通过本机应用UI呈现给用户的交互式按钮或其他对象、以及对用于呈现与本机控件相关联的内容的特定应用的本机机制。
在图1A中,同步客户端100能够被理解为提供被配置为允许第一用户110选择要被共享的文件夹或内容的UI。因此,第一用户110正在使用第一设备120来上传或同步在与第一设备120相关联的存储器组件(在此由存储棒122图示)中可用的一个或多个电子内容。出于该特定示例的目的,所述电子内容集包括第一电子内容项(“第一项”)102和第二电子内容项(“第二项”)104。第一项102的大小显著小于第二项104的大小。这通过在每个内容项图标上所示的值来表示,其中,第一项102为100兆字节(MB),并且第二项为100千兆字节(GB),使得第二项104的大小是第一项102的1000倍。应当理解,这些值仅出于示例的目的,并且正在被同步的电子内容能够在大小和类型方面有所不同。
因此,在该示例中,第一用户110经由在第一设备120上的同步客户端100将来自存储棒122的两个新文件添加到同步文件夹。操作系统能够发送消息以指示同步文件夹已经发生了变化,以及已经发生变化的文件夹或者文件在文件夹内的位置(路径)。在文件夹被同步时,与每个项相关联的数据被传输到云存储服务190。因为每个项包括不同量的数据,所以上传或者以其他方式更新每个项所需的时间也能够有很大的变化。
在许多情况下,普通用户不知道将导致同步被延长或者与延迟的时间差相关联的问题。结果,用户可能参与妨碍(一个或多个)上传的完成的行为,或者可能无法执行完成(一个或多个)上传所必需的某种动作。出于本申请的目的,非典型同步状况或者非典型上传和非典型下载指代检测状况或状况的存在,这可能触发确定或预测在云存储装置与客户端设备之间电子内容的同步将经历延迟(例如,由于缓慢的网络连接或者过大的文件同步),或者以其他方式被标识为已延长。换言之,非典型同步状况的标识指代系统可能预测上传或下载所需时间将超出相对于平均或标准同步会话通常预期的时间的情况。
在一些实现方式中,能够通过参考针对当前用户或客户端设备的先前同步持续时间的平均值以及基于先前的同步事件的当前客户端设备的预期网络速度来部分地估计“过度”时间。还能够为其他用户和设备收集该信息,使得通过参考个体级别和社区级别的同步数据来确定针对同步的标准持续时间。因此,能够参考各种因素来确定同步会话的期望或标准持续时间,如下文将描述的。此外,在一些实现方式中,触发同步延迟的参数能够由用户来选择,和/或能够基于由CMS提供或生成的默认值。
在图1A中,第一项102被图示为正在被上传(参见第一符号152),并且上传成功完成,如到云存储服务190的路径所示的。然而,关于第二项104,上传状态能够不同。在第二项104正在被上传时(参见第二符号154),如果第一用户110仍然不知道第二项104尚未完全同步并且不提供完成上传所需的连接时间的事实——例如,通过关闭或关断第一设备120(参见第三符号142)——则上传可能被中断或者以其他方式失败(参见第四符号144)。作为另一示例,用户可以手动地关闭与第一设备120相关联的本地提供商软件,或者所述软件可以在同步过程完成之前意外终止(例如,“崩溃”)。在这样的情况下,所述系统将无法完成同步操作。此外,所述软件——被关闭或终止的——可能无法警告或通知第一设备120的用户同步会话已经过早地结束。
然而,如果第一用户110被抢先提醒或通知(参见第五符号164)该特定文件上传所需要的时间被延长或者异常(参见第六符号164),则他或她可以选择让设备保持通电(参见第七符号172)。然后,所述设备可以继续在延长的时间段内(例如,一夜,如由第八符号174所表示的)传输数据。利用该额外的时间,第二项104能够被成功地同步,如由到云存储服务190的路径所示的。因此,通过检测可能与上传速度障碍相关联或者可能与延迟相关联的内容项,并且向用户提供关于关键文件特性和/或上传状态的信息,用户能够更周到地参与其电子内容存储装置,以及保持对其上传内容的更准确的最新了解。将参考图4A和图4B来呈现关于系统的组件的额外细节。
接下来参考图1B,图示了共享文件夹和文件同步架构的示例,在此被称为内容管理架构(“架构”)130。在不同的实现方式中,架构130能够包括至少一个网络106,包括但不限于诸如互联网的公共网络、诸如机构和/或个人内联网的私有网络、和/或私有和公共网络的某种组合。
环境包括文件同步服务器108,将参考图4B对其更详细地进行讨论。文件同步服务器108可以包括或者可以访问远程文件系统112,在系统112中可以存储多个文件夹、子文件夹、文件或者其组合。所述多个文件夹、子文件夹和文件能够包括多个共享或同步的文件夹、共享的子文件夹、共享的文件、共享的子级别文件以及共享的快捷键。更具体地,多个共享的文件夹、共享的子文件夹、共享的文件、共享的子级别文件以及共享的快捷键能够包括同步的文件夹的多个远程实例、同步的子文件夹的多个远程实例、以及同步的文件的多个远程实例。如将参考图4B更详细讨论的,服务器还可以包括被配置为实现与同步共享的文件夹和文件有关的各种功能和特征的模块,诸如远程同步模块114和非典型同步标识模块116。
此外,在不同的实现方式中,架构130能够包括第一客户端计算设备124、第二客户端计算设备126以及第N客户端计算设备128。客户端计算设备可以包括常规客户端类型设备,以及台式计算机类型设备、移动类型设备、专用类型设备、嵌入式类型设备、和/或可穿戴类型设备。作为示例,所述客户端计算设备能够包括:计算机导航类型的客户端计算设备,诸如基于卫星的导航系统,包括全球定位系统(GPS)设备和其他基于卫星的导航系统设备;电信设备,诸如移动电话、平板计算机、移动电话平板混合设备、个人数据助理(PDA)、膝上型计算机、其他移动计算机、可穿戴计算机、植入式计算设备、台式计算机、个人计算机、汽车计算机、支持网络的电视、瘦客户端、终端、游戏控制台、游戏设备、工作站、媒体播放器、个人录像机(PVR)、电视机顶盒、数字录像机(DVR)、相机、包含在计算设备中的集成组件、电器、或者被配置为接收用户输入的任何其他类型的计算设备。
此外,诸如用户的实体可以与每个或任意客户端计算设备相关联。图1B还图示了关于第N客户端计算设备128的细节。能够意识到,可以以与第N客户端计算设备128相同的方式来配置第一客户端计算设备124和第二客户端计算设备126,并且可以包括结合第N客户端计算设备128在本文中所描述的所有组件或任意组件的组合。
在不同的实现方式中,第N客户端计算设备128可以包括例如本地共享的文件夹和文件同步模块132,以及同步内容消息模块134,将参考图4A和图4B对其进行讨论。所述客户端计算设备可以包括能由所述设备处理单元加载和执行的其他模块、程序或应用。所述客户端计算设备还能够包括本地文件系统136,其中,可以存储多个文件夹、子文件夹、文件或者其组合。所述多个文件夹、子文件夹和文件能够包括多个本地同步的文件夹、本地同步的子文件夹、本地同步的文件、本地同步的子级别文件和本地同步的快捷键。更具体地,所述多个本地同步的文件夹、子文件夹、文件、子级别文件和快捷键能够包括共享的同步文件夹的多个本地实例、共享的同步子文件夹的多个本地实例、以及共享的同步文件的多个本地实例。
为了针对在本文中所描述的系统的使用和应用提供进一步的上下文,图2呈现了同步表征消息(“消息”)200的特性或方面的非限制性示例,其可以在从同步客户端290向云存储服务291传输数据之前、期间和/或之后被合并、添加或者以其他方式包括。在不同的实现方式中,系统能够使用这些或其他上传集(或下载集)特性、属性或参数中的一项或多项来确定是否应当将上传指定为具有被延长的可能性。出于本申请的目的,“同步内容集”将被用于指代在未决的同步会话中被排队以用于同步的内容项。所述会话能够以预定间隔自动地发起或者在特定的触发事件之后发起,或者能够由用户手动地发起(参见图5-8),并且能够包含一个文件、一个文件夹或者多个文件夹或目录。队列指代上传或下载的序列(例如,首先同步哪一项、之后同步哪一项)。尽管有时同时地同步两个或更多个项,但是能够理解,通常将按照与同步队列的次序相关联的序列或顺序来上传或下载这些项。
尽管下文标识了许多同步内容集特性,但是应当理解,在不同的实现方式中,消息能够仅包含以下信息中的一项、一些或者不包含任何信息。在图2的示例中,消息200承载多个信号或子消息(“子消息”)202,所述信号或子消息202能够提供对所调度的或当前的同步内容集大小有多大的指示。在一些实现方式中,子消息202能够包括第一消息特性210,其指示上传事件的细节,包括但不限于:(a)同步内容集是否已经开始传输针对内容项的数据;(b)同步内容集是否已经完成对其内容项数据的传输;(c)同步内容集传输进度;和/或(d)关于客户端设备或应用关闭或电源状态、暂停或断开连接以及恢复上传/下载以及其他上传/下载事件细节的信息。
在不同的实现方式中,消息200还能够被配置为提供额外的信息。例如,第二消息特性220能够传达开始上传的时间。第三消息特性230能够传达在当前同步内容集中已经上传的文件的数量。类似地,第四消息特性240能够传达已经在该集中上传的字节的数量。能够理解,在大多数情况下,在第一消息传输期间,第三消息特性230和第四消息特性240两者的值将为零。然而,在一些实现方式中,如果在过早地终止或挂起之后正在“重新开始”或者重新建立上传或同步会话,则针对第三消息特性230和第四消息特性240的第一消息传输值可以为非零。
另外,第五消息特性250能够传达在当前同步内容集中剩余或者要上传的文件的数量。第六消息特性260能够传达在当前同步内容集中剩余或者要上传的字节的数量。能够理解,第五消息特性250和第六消息特性260两者的值在最终消息传输期间将为零。
其他相关的上传消息特性可以包括:第七消息特性270,其指示由客户端针对当前同步内容集感知的上传速度(其在第一消息传输期间将具有零值);以及第八消息特性280,其指示在客户端设备中为当前同步内容集配置的上传速率。例如,所述速率能够是默认值,能够被指定为由处理器速度、网络连接、(一个或多个)文件大小和其他因素的控制而自动地增加或减少,能够被限制或不限制,或者能够以其他方式来配置或调整。在其他实现方式中,关于连接或设备的类型、其他网络流量的大小或速度、一天中的时间、设备的位置、以及其他这样的因素的信息也可以由消息200来传输。在其他实现方式中,所述信息能够采用被分配给数据同步状态的状态或阶段的形式,诸如下载状态、上传状态、空闲状态、传输进度状态、高速缓存的状态和/或错误状态,例如用于每个内容项和/或其他数据单元。
在一些实现方式中,服务器还能够被配置为从客户端设备接收其他类型的信息。例如,各种启发式或准则可以被包含在消息中,并且由服务进行评估以帮助确定延长的同步的可能性,包括但不限于:(a)上传集中的一个或多个内容项是否花费比预期更长的时间进行同步;(b)在保存点之间是否存在意外的间隙或间隔;(c)估计的同步时间是否超过预先定义的阈值;(d)用于客户端上传的计算设备的类型;(e)在用户的存储账户中检测到大量文件删除以及其他这样的信息。
在一些实现方式中,所述系统能够包括用于维护或更新被提供给云存储服务的信息的规定。例如,为了使得由消息200所承载的信息继续被更新,能够在第一消息之后跟随多个额外的消息,这些额外的消息承载能够以规则的或者在一些情况下以不规则的间隔而发送的经更新的信息。
在图3中,通过一系列箭头示意性图示了在客户端设备302和云存储服务304之间传输的消息300的集。在该示例中,客户端在紧接开始对同步内容集的同步之前发送初始或第一消息310。另外,在同步的结束或完成之后立即发送最终消息380。
在这两个消息之间,能够传输多个额外的消息;在该示例中,示出了在同步内容集的同步期间正在传输的第二消息320、第三消息330、第四消息340、第五消息350、第六消息360和第七消息370。在一些实现方式中,所述系统能够被配置为以基本上规则的间隔生成或传输这样的介入消息。例如,当在同步内容集中存在未决的上传时,可以每10分钟、半小时、两个小时、六个小时或者任意其他间隔来发送消息。这由在第一消息310与第二消息320、第二消息320与第三消息330、第三消息与第四消息340、第五消息350与第六消息360、第六消息360与第七消息370、以及第七消息370与最终消息380之间大约相等的间隔来表示。
然而,应当理解,在一些实现方式中,可以在其他时间或者以不同的间隔(即,不规则的间隔)发送额外的消息。这由在第四消息340与第五消息350之间描绘的相对较小的间隔来表示。例如,在客户端应用在上传完成之前停止或中断的情况下、当客户端应用暂停和/或恢复时、当连接速度改变时、当针对上传消息特性的值经历显著变化时、和/或用户采取了影响上传的任何其他动作时,会发生这样的不规则传输。
为了相对于所公开的实现方式提供更大的清晰度,参考图4A和图4B的序列呈现了包括同步客户端系统410和同步服务器系统400的内容管理系统(“系统”)的示例。注意,尽管图4A和图4B的描述讨论了从同步客户端系统410到同步服务器系统400的内容项的上游同步的示例,所描述的特征和特征可以被应用于针对内容项的下游同步产生类似的效果,以确保内容项在同步客户端系统410处被完全并且有效地接收。此外,在本说明书中别处所描述的所有特征和功能可以由在图4A和图4B中所描述的系统来实现。
在图4A中,描绘了用于监视同步进度并且将同步内容消息传输到同步服务器系统400的同步客户端系统410的一种实现方式。同步客户端系统410可以包括针对同步客户端应用100、客户端计算设备128、同步客户端290和同步客户端302所描述的任何特征。同步客户端系统410包括同步项标识模块408,其被配置为标识一个或多个新的同步项412等,每个同步项412标识被包含在客户端内容存储装置438中的内容项440或者内容项440的一部分,以从同步客户端系统410同步到同步服务器系统400。例如,响应于正在创建或修改内容项440,生成相应的新的同步项412。新的同步项412被提供给未决的同步项模块416,未决的同步项模块416可以被配置为将新的同步项412添加到未决的同步项队列420。未决的同步项队列420被配置为确定用于使未决的同步项同步的次序。例如,未决的同步项队列420可以被配置为从未决的同步项中选择下一同步项。
同步客户端系统410包括同步集标识模块414,同步集标识模块414被配置为接收由同步项标识模块408标识的新的同步项412,并且标识针对新的同步项412的同步集418。例如,响应于确定没有活动同步集418(术语“活动”指代同步集418包括尚未被完全同步的一个或多个同步项)对应于一个或多个新的同步项412,来实例化活动同步集418。在存在与新的同步项418相对应的活动同步集418的情况下,新的同步项418被添加到同步集418。在一些实现方式中,多个同步集418可以同时是活动的。例如,可以将个体新的同步项412选择性地添加到不同的活动同步集418。在一些实现方式中,每个同步集418具有各自的未决项队列420。同步客户端系统410被配置为跟踪被包含在每个同步集418中的同步项的进度,诸如但不限于:已经传输的同步项、当前正在传输的同步项、等待开始传输的同步项、以及相关的数据大小。
同步客户端系统410包括数据传输模块442,数据传输模块442被配置为:从未决项队列420取回同步项,从客户端内容存储装置438获得针对内容项440的对应部分的数据,并且经由(一个或多个)网络402向同步服务器系统400传输上游内容项数据消息446中的数据。由数据传输模块442对(一个或多个)网络402的使用是根据各种传输参数444来执行的。例如,传输参数444可以指定最大上游(从同步客户端系统410到同步服务器系统400)传输速率、最大下游传输速率、用于上游内容项数据消息446的有效载荷大小(诸如针对内容项的各个部分经由多个内容项数据消息446传输的内容项)、并行传输的数量、网络连接参数、和/或从多个可用网络的网络选择。尽管未在图4A中图示,但是数据传输模块442可以另外地被配置为接收针对下游同步的下游内容项数据消息。
数据传输模块442还被配置为提供关于内容项数据消息446的传输的数据传输度量436。例如,数据传输度量436可以标识已经完成同步的同步项、标识未完成的同步项、指示在一时间段内已经传输的内容项的数据量、指示当前实现的上传速度、和/或指示在一时间段内的平均实现的上传速度。在一些实现方式中,未决同步项模块416被配置为获得并且处理数据传输度量436以确定相关同步项的状态。
同步客户端系统410包括同步集监视模块424,同步集监视模块424被配置为监视同步集418的状态并且将同步集418的状态报告给同步服务器系统400。在一些实现方式中,同步集监视模块424被配置为响应于确定新同步集418是活动的来传输初始同步内容消息426,这与针对图3中的第一消息310所描述的类似。在一些实现方式中,同步集标识模块414被配置为响应于激活新同步集418而传输初始同步内容消息426。同步集监视模块424被配置为获得并且处理数据传输度量436以跟踪同步集418的过程。同步集监视模块424被配置为基于数据传输度量436来周期性地传输同步内容消息428,如在图2中针对消息200所讨论的,以及如在图3中针对第二消息320、第三消息330、第四消息340、第五消息350、第六消息360和第七消息370所讨论的。通过使用初始同步内容消息426和同步内容消息428,同步客户端系统410向同步服务器系统400通知新同步集418以及其随着时间的同步进度。注意,尽管同步集标识模块414、未决同步项模块416和同步集监视模块424在图4A中被示为单独的模块,但是在一些示例中,其可以被组合成单个模块。
相对于从同步服务器系统400接收到的消息,在一些实现方式中,同步状况消息454(指示例如与同步集418的同步相关联的非典型状况的检测)能够由被包含在同步客户端系统410中的同步状况处理器460从同步服务器系统400接收。在一些实现方式中,由同步状况消息454指示的状况可以被存储为当前同步状况462,并且同步状况处理器460被配置为响应于从设备事件检测器456获得的设备事件458。例如,响应于指示功率状态即将发生变化(诸如关闭或转换为睡眠状态)的设备事件458,以及当前同步状况462指示正在进行长时间同步,同步状况处理器460可以中断功率状态的改变。在一些实现方式中,同步状况处理器460被配置为响应于设备事件458而将对应的设备事件消息464传输到同步服务器系统400。
同步状况处理器460被配置为响应于从同步服务器系统400接收到同步状况消息454、从同步服务器系统400接收到客户端命令消息466、和/或设备事件458,来执行同步客户端系统410中的各种动作。在一些示例中,响应于执行请求诊断流程的客户端命令消息466,同步状况处理器460调用诊断模块468。取决于所请求的诊断流程,诊断模块468可以收集和分析系统性能信息(诸如但不限于处理器负载和/或其他正在运行的进程)和/或网络性能信息。
在一些示例中,同步状况处理器460被配置为调用传输参数调整器448,传输参数调整器448被配置为调整传输参数444。例如,响应于同步状况消息454或客户端命令消息466请求改变传输参数448时,同步状况处理器460可以改变与例如最大上游传输速率、最大下游传输速率和/或改变到不同网络相关的传输参数444。
在一些示例中,同步状况处理器460被配置为调用用户消息生成器472,用户消息生成器472被配置为经由显示设备474向同步客户端系统410的用户呈现信息消息。另外,用户消息生成器472可以被配置为响应于从同步服务器系统400接收到的用户通知476,经由显示设备474向同步客户端系统410的用户呈现对应的信息消息。
现在参考图4B,同步服务器系统400与图4A的同步客户端系统410通信,并且可以与额外的同步客户端系统通信。同步服务器系统400可以包括针对文件同步服务器108、云存储服务190、云存储服务292和云存储服务304所描述的任何特征。能够理解,在图4B中所示的设备事件消息464、诊断数据470、初始同步内容消息426、同步内容消息428以及内容项数据消息446能够由如在图4A中所描绘的同步客户端系统410来生成和提供。
同步服务器系统400包括内容数据接收器450,内容数据接收器450被配置为接收针对同步项的内容项数据消息446,并且创建、修改和/或删除在服务器内容存储设备454中维护的各个用户内容项452。服务器内容存储设备454可以实现版本控制以保留被修改或删除的用户内容项的先前版本。内容数据接收器450被配置为基于从同步客户端系统410接收到的内容项数据消息446来生成关于从同步客户端系统410接收内容项数据消息446的客户端传输度量432。例如,客户端传输度量432可以标识已经针对其完成同步的同步项、标识新的同步项、指示在一时间段内已经传输的内容项数据量、指示当前实现的上传速度、和/或指示在一时间段内平均实现的上传速度。
同步服务器系统400被配置为基于客户端传输度量432来维护同步历史406。同步历史406存储关于同步服务器系统400的多个用户的同步活动的信息。同步历史406包括针对与同步客户端系统410相关联的用户账户的同步活动的用户同步历史422。类似的用户账户同步历史可以被存储在针对与同步客户端系统410相关联的其他用户账户的同步历史406中。用户同步历史422包括针对同步客户端系统410的同步活动的客户端同步历史430。类似的客户端同步历史可以被包含在针对与用户同步历史422的用户账户相关联的其他同步客户端系统的用户同步历史422中。在客户端同步历史430中所包括的信息包括例如由同步客户端系统410针对先前完成的同步集实现的平均上游数据传输速率。
同步服务器系统400包括同步集跟踪器408,同步集跟踪器408被配置为针对由同步客户端系统410在相应的初始同步内容消息426中标识出的每个同步集来维持同步集状态404。同步集跟踪器408被配置为接收并且处理同步内容消息428以更新同步集状态404。在一些实现方式中,同步集跟踪器408被配置为基于客户端传输度量432来更新同步集状态404。例如,在仅第一同步集已经被同步客户端系统410标识出并且针对同步客户端系统410未决的情况下,从同步客户端系统410接收到的上游内容项数据消息446可以被假定为针对第一同步集,并且被用于确定接收到的内容项的数量、接收到的上游数据量、以及针对同步集的实现的上游数据传输速率,并且相应地更新同步集状态404。在一些示例中,同步集状态404还可以维护来自传输参数444的信息,诸如最大上游数据传输速率。
同步服务器系统400包括同步持续时间估计器494,同步持续时间估计器494被配置为基于由同步集跟踪器408维护的同步集状态404来估计针对未决同步集待完成其同步的剩余时间量。可以至少基于要为同步集传输的数据的剩余量以及针对同步集的实现的上游数据传送速率来计算针对同步集的估计的剩余时间量。同步服务器系统400还包括标准同步持续时间计算器490,标准同步持续时间计算器490被配置为基于由同步历史406指示的上游数据传输特性为同步客户端系统410提供标准同步持续时间。在一些示例中,所述标准同步持续时间包括同步统计结果,诸如针对同步持续时间的平均值、中位数、方差和/或标准偏差值和/或针对完成的同步集的数据大小。
同步服务器系统400包括同步状况管理器480,同步状况管理器480被配置为基于由同步持续时间估计器494提供的估计的剩余时间量以及由标准同步持续时间计算器490提供的标准同步持续时间来确定未决同步集是否具有被延长的可能性。在一些示例中,当估计的剩余时间量超出标准同步持续时间预定裕量(诸如20%)时,确定未决同步集具有被延长的可能性。在其他实现方式中,所述裕量可以是可配置的。例如,所述裕量可以最初填充为默认值,但是也可以由同步服务动态地配置或者从同步服务动态地配置。响应于确定未决同步集具有被延长的可能性,同步状况管理器480可以将同步状况消息454发送到同步客户端系统410。在一些示例中,同步状况管理器480可以诸如响应于设备事件消息464而发出客户端命令消息466。
同步服务器系统400包括同步进度标识监视器496,同步进度标识监视器496被配置为基于同步集状态404和客户端传输度量432来确定已经发生异常状况498的时间。结合图7讨论了同步进度标识监控器496的示例。同步服务器系统400包括诊断数据分析器492,诊断数据分析器492被配置为响应于诊断数据消息470来分析接收到的诊断数据,并且在一些情况下发出客户端命令消息466。例如,诊断数据分析器492可以发出客户端命令消息466,请求传输参数444中的指定的改变。
同步服务器系统400可以包括用户通知模块478,用户通知模块478被配置为针对与同步客户端系统410相关联的用户账户标识由用户账户数据482指示的各种通知信道,并且发出一个或多个对应的用户通知476。例如,如在图4A中所图示的,用户通知476可以被传输到同步客户端系统410,并且由用户消息生成器472来处理。在一些示例中,用户通知476可以被发送给与用户账户相关联的其他设备,诸如其他同步客户端系统。例如,同步客户端系统410可以在台式计算机系统上实现,而另一同步客户端系统在诸如智能电话的移动设备上实现。用户通知476的其他示例包括但不限于:电子邮件、经由社交媒体信道的直接消息、即时消息传递消息、和/或移动设备文本消息。同步状况管理器480可以被配置为使用用户通知模块478来发出用户通知476。
现在参考图5-8的序列,图示了所提出的系统的一种实现方式。在图5中,设备显示器500呈现针对同步客户端应用510的界面。为简单起见,图5中的同步客户端应用510包括在此被示为同步文件夹512(被标记为“OneDrive”)的用户界面,并且用户还同时地打开或者以其他方式访问当前存储在客户端设备(被标记为“桌面”)上的电子内容目录(“目录”)514。在其他实现方式中,同步客户端应用510可以包括被配置为促进电子内容的同步的任何其他用户界面。
在一些情况下,同步客户端应用510能够被配置为同步对其指定的文件夹以及其子文件夹中内容的任何改变,诸如新的、删除的、修改的、复制的或移动的文件或文件夹。在不同的实现方式中,同步客户端应用510能够是单独的软件应用,和/或能够与操作系统中的现有内容管理应用集成。图5呈现了与现有内容管理应用集成的客户端软件的一个示例,使得用户能够直接在本地文件夹(同步文件夹512)中操纵内容,同时后台进程监视本地文件夹中的改变并且将那些改变同步到云存储装置。在其他实现方式中,所述后台进程还能够标识已经更新的内容,并且将那些改变同步到本地文件夹。在一些实现方式中,同步客户端应用510能够被配置为提供同步操作的通知。
在其他实现方式中,用户可以将内容项存储在其客户端设备上不同于同步客户端应用510的指定同步文件夹内的位置。例如,用户可以访问内容管理应用,诸如音乐或照片库,其将内容项存储在不同于指定的同步文件夹的位置。所述客户端设备能够被配置为通过在客户端设备的存储器中搜索与指定的文件扩展名相关联的文件来标识这些内容项的位置,所述文件扩展名指示所述文件是要被同步的内容项。在一些其他实现方式中,客户端设备能够对客户端设备的可访问存储装置(诸如本地硬盘驱动器或存储棒)执行完整或部分搜索,以标识内容项的位置。
在标识存储器中的内容项后,客户端设备能够被配置为将内容项导入到内容管理系统。在一些实现方式中,这能够包括创建内容项的副本,然后将其存储在指定的同步文件夹中,从而使内容项与内容管理系统同步。在一些其他实现方式中,能够替代地将所述内容项直接从标识的位置上传到内容管理系统,而无需将内容项的副本存储在指定的同步文件夹中。
如在图5中所图示的,在与同步客户端应用510的各种用户交互期间,用户可以选择修改同步文件夹512中的内容。作为一个示例,用户可以选择或者以其他方式指定一个或多个内容项550以从目录514复制或移动到同步客户端应用510。在用户对客户端设备上的文件夹以及其内容做出改变时,那些改变能够被传播到主机服务器上的同步的版本。在该示例中,用户正在将新文件添加到同步文件夹512。在检测到新文件时,由用户选择的CMS能够发起上传。
在图6中,描绘了进行中的同步的示例。在一些实现方式中,当发生新文件的上传时,CMS能够被配置为显示或者以其他方式提供针对每个内容项的同步状态信息。同步状态信息的一种可能的表示在图6中被示为进度面板600,其也能够用作一种类型的用户界面。进度面板600能够集体地和/或个体地提供内容项的状态的概要,并且可以提供对文档的当前保存状态的指示(例如,“上传”;“上传进行中”;“上传失败”;“上传已暂停”;“上传错误”;“离线同步”以及其他状态指示符)。针对内容项的指示或当前状态标签可以被显示在进度面板600中的通常用户友好的列表中,使得用户可以容易地标识每个文档的上传状态。在一些实现方式中,所述上传状态指示符可以是交互式的,使得当被选择时,用户可以看到额外的同步状态细节和/或者被提供对文档元数据或路径进行一些修改的机会。在一种实现方式中,当前状态的指示能够基本上是最小的,使得该指示不分散用户的注意力。
在图6中,示出了五个内容项,以及针对每个项的对应的同步状态指示符。该信息能够由系统或由用户定期地刷新。在这种情况下,第一内容项610、第二内容项620和第三内容项630均包括确认其成功上传的指示符以及该内容项的同步最近发生的指示符。“已上传”或“已保存”同步状态指示符通知用户内容项在其端点云存储装置中是最新的。换言之,所述文档被视为已保存和备份的。能够理解,所述状态指示符可以以各种格式来表示,所述格式可以包括各种图标、文本、动画、符号、图形等。另外,在一种实现方式中,可以不示出同步状态的视觉表示。
在进度面板600中还列出了两个额外内容项——第四内容项640和第五内容项650。第四内容项640和第五内容项650包括指示文档尚未被成功地上传的状态指示符(如果文档是新的项)。如果正在更新所述文档(而不是新文件),则状态指示符能够指示内容项包括尚未与云存储装置中的版本同步的改变。
如上文相对于图3和图4所讨论的,在不同的实现方式中,能够在上传之前、上传发生时和/或在上传完成之后将各种同步内容集属性或特性递送给CMS服务提供商。在这种类型的信息可用于CMS服务提供商时,能够进行关于同步的智能评估和预测(例如,参见图4A和图4B)。现在参考图7,示出了决策树的一种实现方式。在图7中,同步进度标识模块(SCIM)710能够接收一系列消息700,消息700被配置为传输与指定内容项的当前和预期上传状态有关的信息。因此,先前描述的同步内容集特性中的一个或多个(参见图3和图4)能够被用于确定当前同步内容集是否与异常或非典型状况760相关联,这可能增加上传延迟的可能性和/或对应于延长的同步会话的可能性增加。术语“非典型状况”或“异常状况”指代与延迟上传/下载或延迟的同步会话的实质可能性相关联的任何状况或情况。
为了清楚起见,在图7的决策树中仅描绘了四个决策路径。然而,应当理解,SCIM710能够考虑多种因素来帮助确定上传是否与(一种或多种)非典型状况相关联。此外,在仅第一路径或者仅第二路径的值不能够产生对非典型状况的确定的情况下,则可以组合基于来自两个或更多个路径(例如,第一路径和第二路径)的值的结果来产生对非典型状况的确定。
在图7中,第一路径720评估上传速度是否低于某个指定值,第二路径730评估当前是否认为上传持续时间长于标准时间,第三路径740评估上传是否未按预期进行,以及第四路径750评估同步或同步客户端是否经历了任何中断,以及中断的持续时间和/或频率是否大于指定的阈值。在该示例中,在这些路径中的一个或多个路径指示上传有问题的情况下,SCIM710能够确定(一种或多种)非典型状况760正在发生或者可能发生。在一个实现方式中,所述系统然后能够生成同步内容集完成同步将花费多长时间的估计(参见上传持续时间估计模块770)。然后,取决于客户端应用的设置,服务器能够继续向用户发送通知780或者生成其他消息或指令。
在一些实现方式中,通知780能够被自动地生成并且通过电子邮件和/或通过任何上传服务端点(同步客户端消息传递、文本消息、移动设备警报、应用通知、自动电话呼叫、网络浏览器通信等)进行传输。在一些实现方式中,通知780可以包括诸如当前的上传速度和/或上传应当何时完成的估计之类的信息。所述通知能够帮助用户标识潜在的数据丢失情况,在这种情况下,用户可能错误地假设已经成功上传到云。图8是经由设备显示器500呈现给用户的通知800的一个示例,通知800向用户通知同步内容集中的文件的同步中的潜在延迟。在图8中,通知800是浮动对话框窗口,但是能够意识到,在其他实现方式中,能够包括任何其他类型的通知UI,诸如弹出窗口、浮动菜单、对话框或调出、窗口或者从桌面或应用菜单延伸的下拉菜单、或者任何其他应用通信或演示方式。
通知800包括一般消息810(“上传通知”)和多个选项850。在一些实现方式中,如果存在已经被确定引起延迟的特定部分(参见文件标识820),则通知800还能够包括同步内容集的哪些部分与非典型状况相关联的指示。
在该示例中,所图示的选项850包括第一选项852(“查看细节”),其能够提供关于延迟或导致延迟的非典型状况的额外信息,和/或如何最小化延迟或保护数据的建议,并且包括第二选项854(“设置”),用户能够通过第二选项来调整与触发状况相关联的各种阈值(参见图7),改变通知的类型或频率,或者修改其他相关特征作为优选。第三选项856(“暂停”)能够提供指示所述系统暂停所述同步的快捷键,并且第四选项858(“刷新”)能够提交重置或重新初始化同步和当前状态信息的请求。此外,能够选择第五选项860(“估计的时间”)以显示所述同步的估计的剩余持续时间,并且第六选项862(“剩余文件”)能够指示尚未被同步的内容项的数量和/或名称。
在其他实现中,通知800能够更简洁,并且简单地利用消息警告用户,所述消息显示比正常更长的同步的估计时间和/或请求用户将设备保持在“开启”状态直到同步完成。在另一示例中,通知800能够呈现异常或非典型状况的描述,并且建议用户可以采取的促进所述同步的步骤或动作,诸如使设备整夜开启或者其他用户“停机时间”,确保过程不暂停,移除或减少任何上传速率约束,和/或将设备移动到可用更快网络的位置等。在一些实现方式中,通知800能够向用户提供警告以在其设备继续不同步时,抑制设备的重新映像或者可能危害或删除数据的其他操作。作为另一示例,通知800能够指示同步客户端进度低于预期或低于指定的阈值,和/或为用户提供机会以利用基于服务提供商的帮助或支持辅导或演练来解决问题。
所述系统还可以被配置为当经由不同于用户通知的生成的机制确定已发生非典型状况时做出响应。在一些情况下,CMS能够替代地或额外地以对客户端设备的操作系统的自动干预来响应。作为第一示例,在一些实现方式中,CMS能够自动地发起客户端诊断以测试客户端设备带宽、使用的数据传输路由以及其他这样的因素。这种类型的响应能够使所述系统快速并且不引人注意地进一步调查和确定(一个或多个)问题是否由服务提供商或用户轻松地解决。经由诊断收集到的信息还能够被用于改善以后的同步事件中的上传持续时间。
作为另一示例,取决于触发所述确定的同步内容集特性,可以将信号或指令自动地传输到同步客户端,所述信号或指令发起对同步客户端的(强制)重启,由此清除同步延迟的起因,并且将同步返回到原本可以预期的速度。作为第三示例,其也可以取决于触发所述确定的同步内容集特性,可以将消息自动地发送到同步客户端,指示客户端设备切换到允许同步客户端访问和使用客户端设备的额外计算资源的模式,由此增加上传速度。换言之,所述客户端设备可以重新分配其处理器利用率以促进内容项的上传。因此,尽管操作系统可能针对其他计算活动相对较慢地运行,但是同步将更快地完成。此外,在一些实现方式中,在同步未决时,服务可以自动地传输信号以防止或阻止对客户端设备的任何更新、恢复和/或刷新。在另一示例中,能够配置所传输的信号以防止同步客户端在同步进行时关闭。另外,在一些情况下,所述服务能够自动地传输信号,所述信号被配置为搜索客户端设备可用的更快的连接,并且在可能时切换网络,或者请求用户这样做。在一种实现方式中,服务能够发起带宽的动态转移,以适应个体文件大小或者整个同步内容集。因此,在较大或庞大文件开始同步时,带宽会增加;并且在较小文件同步时,带宽会减小。类似地,如果要同步大量文件,则能够增加带宽;而指定少量内容项进行同步时,能够与带宽不变或带宽减小相关联。
另外,在一些其他实现方式中,所述系统可以生成更直接地参与同步过程的响应。参考图9,能够看到,在一种实现方式中,CMS能够向同步客户端发送消息,以基于同步内容集的属性对内容项进行重新排序。这样的属性的一些示例包括针对集中的(一个或多个)特定内容项的最后更新和/或修改的时间、(一个或多个)项目大小以及(一个或多个)项目类型。在其他实现方式中,能够使用上文参考先前的附图所描述的任何属性。
在图9A和图9B中示出了示例,其中,将第一类型的较小和/或最近创建或修改的文件被描绘为在上传队列中自动向前移动,从而其会“跳过”或跳到在同步内容集中也排队用于上传的第二类型的较旧并且较大的文件之前。参考图9A,对上传队列950进行排序,使得第一文件910被调度或安排为在第二文件920之前被上传。第一文件910明显大于第二文件920。在图9B中所示的下部序列中,已经修改了与第二文件920相关联的“优先级”以更好地适应由系统标识出的同步内容集特性。
在不同的实现方式中,第一文件910在大小上能够更大或者能够与同步延迟相关联。作为特定示例,第二文件920可以是最近写入的小(~10MB)文件,其已经在上传队列950中自动地向前移动,使得其已经“跳过”或跳到也在同步内容集中排队用于上传的两天前的1GB视频文件(第一文件910)之前。对同步内容集中的内容项队列的重新优先化能够是一种自动机制,CMS能够通过所述机制对内容项进行快速备份,否则将在基本静态或慢速队列中保持未决。因此,并非要求这些较小的内容项等待已经被标记或者以其他方式确定与上传延迟相关联的较大或有问题的(一个或多个)内容项成功上传完成,可以更新队列以提高效率,并且在与非典型特性相关联的部分之前以最小的延迟或没有延迟同步较小的内容项。在一些情况下,管理上传队列还可以包括基于非典型状况的标识和对应的同步延迟来暂停和取消暂停上传队列,和/或在某些文件被认为优先时允许用户对队列进行重新优先化。
因此,在不同的实现方式中,客户端设备能够包括用于将排队用于同步的内容项(重新)优先化到内容管理系统,以便优化上传过程并且最大化对最大数量的内容项的保护。内容项能够基于其相对大小、相对文件类型、相对同步状态和/或创建时间而在队列中被优先化。其他因素在确定是否应重新排序内容项时也可能起作用,包括但不限于:工作内容(而不是个人文档或其他分类)的标识、对包括修改内容项的数据相对于已经被最小修改的另一内容项做出的改变的比例、和/或内容项是否已经被标记为具有高重要性等。
因此,在一些实现方式中,如果被传输到云服务的同步内容集特性指示一个或多个内容项在大小上相对于一个或多个其他内容项不成比例地更大,则(一个或多个)较小的内容项能够被重新优先化,并且可以被自动地移动或重定位到在(一个或多个)较大文件之前同步。在一些实现方式中,该机制能够被配置为自动地为较小和/或最近创建的内容项分配更高的优先级,由此确保其将被尽快地同步,而较大的内容项在成功同步较小内容项之后上传。作为一个示例,服务可以包括一种算法或机器学习模型,其被配置为基于大小或同步可靠性的历史来自动地对项目进行重新排序。
在不同的实现方式中,能够意识到,可以同时发生两个或更多个同步会话。换言之,可以为同步指定或标识第一同步内容集(“第一集合”),并且与第一集合的内容项相关联的数据能够开始从客户端设备传输到云存储服务。还能够为同步同时指定第二同步内容集(“第二集合”),并且与第二集合的内容项相关联的数据能够开始传输。因此,来自第一同步内容集和第二同步内容集的内容的部分可以在相同时间段期间或周围重叠或同步。在一些实现方式中,CMS能够被配置为接收两个或更多个同步内容消息,其中,每个消息承载或传输针对每个内容集的信息。在其他实现方式中,来自两个或更多个同步内容集的内容可以被合并以产生集体同步内容集,由此允许将单个消息(传达与这两个内容集的数据相关联的信息)发送到云存储服务。
在其他实现方式中,可能存在针对以双向方式发生的内容的数据传输。例如,可以上传针对第一内容集的数据,同时可以下载针对第二内容集的数据。CMS能够被配置为接收有关这两个内容集的消息,并且继续检测是否存在非典型状况,并且确定针对每个内容集的延长的同步的可能性。另外,在一种实现方式中,响应于确定同步具有延长的可能性,能够增加针对上传的内容的带宽(例如,通过对应地减小用于下载的内容的带宽),由此优先化在客户端设备上的内容项的备份。
图10是图示了确定延长的同步是否可能的方法1000的实现方式的流程图。在图10的示例中,第一步骤1010包括例如通过通信网络从客户端设备接收至少第一同步内容消息。能够将所述第一同步内容消息理解为包括或者传达第一同步内容集的同步进度,其中,所述第一同步内容集包括一个或多个电子内容项。在一种实现方式中,所述第一同步内容消息包括关于剩余的待同步的数据量的信息。第二步骤1020包括确定第一同步内容集的同步具有被延长的可能性。在一些实现方式中,该确定能够至少部分地基于对与在第一同步内容消息中提供的信息相关联的非典型同步状况的检测。第三步骤1030包括向客户端设备发送指示第一同步内容集的同步具有被延长的可能性的第一消息。
在其他实现方式中,可以包括额外的步骤。例如,在一些实现方式中,基于与至少部分地参考针对客户端设备或者与用户和/或用户账户关联的设备的先前的同步事件获得的标准同步持续时间的比较,来确定第一同步内容集的同步具有被延长的可能性。在一些实现方式中,能够至少部分地通过参考先前的同步事件来获得标准同步持续时间,所述先前的同步事件关联于或发生在被标识或者以其他方式确定与客户端设备在例如配置、网络、处理器的方面和/或其他方面类似的设备中。在另一实现方式中,基于与至少部分地参考针对同步服务的多个用户的先前的同步事件获得的标准同步持续时间的比较,来确定第一同步内容集的同步具有被延长的可能性。在一些情况下,所述第一同步内容消息还包括关于针对客户端设备的网络速度的信息,和/或所述第一同步内容消息还包括关于剩余的要被同步的电子内容项的数量的信息,其中,还基于剩余的要被同步的电子内容项的数量来确定同步是否具有被延长的可能性。
另外,在一些实现方式中,所述方法还能够包括接收针对所述同步的序列信息的步骤,其中,所述序列信息标识第一同步内容集中的每个电子内容项被调度以相对于彼此同步的序列,并且所述序列信息指示第一同步内容集中的第一内容项将在第一同步内容集中的第二内容项之前被同步。所述方法还可以包括:确认第一内容项具有比第二内容项显著更大的大小;以及对所述序列自动地重新排序,其中,电子内容项被调度为要被同步,使得第二内容项被调度用于在第一内容项被调度为要被同步之前进行同步。
所述方法的其他实现方式包括自动地发起对客户端设备的重启,和/或检测客户端设备可用的网络连接,以及自动地将客户端设备从第一网络连接切换到相对较快的第二网络连接。这些能够响应于确定同步具有被延长的可能性而发生。
在另一示例中,所述方法还能够包括:接收指示客户端设备即将关闭的信号;自动地防止客户端设备关闭;以及向客户端设备发送第二消息,建议推迟客户端设备的关闭直到同步完成。在一些实现方式中,所述方法可以包括:接收指示客户端设备的功率状态即将改变的信号;以及响应于确定同步具有被延长的可能性而自动地中断功率状态的改变,由此防止客户端设备进入挂起状态或断电状态。另外,在一些情况下,所述同步内容消息能够包括关于针对客户端设备的一天中的时间的信息,并且服务器可以向用户传输建议、推荐或请求客户端设备响应于确定同步具有被延长的可能性而保留在允许同步在夜间继续的通电状态的通知或用户元素以用于显示。
在一些实现方式中,所述方法能够包括:响应于确定同步具有被延长的可能性,来自动地发起客户端设备上的诊断工具以确定延长的同步的可能原因,和/或自动地重新分配客户端设备的计算资源,使得响应于确定同步具有被延长的可能性来增加被用于同步的计算资源,由此减少针对同步的计划的持续时间。
如前所述,向用户提供更好地管理电子内容的同步的机制的能力能够显著提高工作流效率并且保护用户数据。通过检测能够导致潜在数据丢失的情况,用户能够采取能够更好地保护内容项的动作。通过使用该系统,尽管存在非典型同步状况,但是用户能够继续可靠地从不同设备访问和维护其电子内容的最新版本。另外,通过响应于确定(一个或多个)非典型状况而向用户提供通知,为用户提供了保持了解其电子内容的状态的机会,特别是在用户可能仍然不知道同步需要延长的持续时间的情况下。这种类型的内容管理系统能够帮助用户对其电子内容的安全性和访问更有信心,和/或减少其经历数据丢失的可能性。
在本文中呈现了结合图1-10所描述的用于例示说明本公开以及其益处的系统、设备和技术的详细示例。这样的使用示例不应当被解释为对本公开的逻辑过程实现方式的限制,也不应当将用户接口方法与在本文中所描述的那些变化视为在本公开的范围之外。在一些实现方式中,可以在各个模块中实现在图1-10中所描述的各种特征,各个模块也可以被称为和/或包括逻辑、组件、单元和/或机构。模块可以构成软件模块(例如,体现在机器可读介质上的代码)或硬件模块。
在一些示例中,可以机械地、电子地或者以其任何适当的组合来实现硬件模块。例如,硬件模块可以包括被配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以包括专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件临时配置为执行某些操作的可编程逻辑或电路,并且可以包括一部分机器可读介质数据和/或用于这样的配置的指令。例如,硬件模块可以包括被包含在被配置为执行软件指令集的可编程处理器之内的软件。将意识到,在成本、时间、支持和工程考量的驱动下,决定在专用并且永久配置的电路中或者在临时配置的电路(例如,由软件配置)中机械地实现硬件模块。
因此,短语“硬件模块”应当被理解为涵盖能够执行某些操作的有形实体,并且可以以某种物理方式被配置或布置为物理构造、永久配置(例如,硬连线)和/或临时配置(例如,编程)以某种方式操作或执行在本文中所描述的某些操作的实体。如在本文中所使用的,“硬件实现的模块”指代硬件模块。考虑其中硬件模块被临时配置(例如,编程)的示例,所述硬件模块中的每个硬件模块不需要在任何一个时刻进行配置或实例化。例如,在硬件模块包括由软件配置成为专用处理器的可编程处理器的情况下,可编程处理器可以被配置为在不同时间分别不同的专用处理器(例如,包括不同的硬件模块)。软件可以相应地配置一个或多个特定处理器,例如,以在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。使用一个或多个处理器实现的硬件模块可以称为“处理器实现的”或“计算机实现的”。
硬件模块能够向其他硬件模块提供信息,或者从其他硬件模块接收信息。因此,所描述的硬件模块可以被认为是通信耦合的。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件模块的实现方式中,例如,可以通过在多个硬件模块可以访问的存储器设备中存储和取回信息来实现在这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并且将输出存储在存储器设备中,并且然后另一硬件模块可以访问所述存储器设备以取回并且处理所存储的输出。
在一些示例中,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。此外,一个或多个处理器还可以在“云计算”环境中或者作为“软件即服务”(SaaS)来支持相关操作的执行。例如,所述操作中的至少一些操作可以由多台计算机和/或在多台计算机之间(作为包括处理器的机器的示例)执行,其中这些操作可以经由网络(例如,互联网)和/或经由一个或多个软件接口(例如,应用程序接口(API))进行访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个计算机之内,而是跨多个机器部署。处理器或处理器实现的模块可以位于单个地理位置(例如,在家庭或办公室环境或服务器农场内),或者可以跨多个地理位置分布。
图11是图示了示例性软件架构1102的框图1100,示例型软件架构1102的各个部分可以与在本文中所描述的各种硬件架构结合使用,其可以实现任何上述特征。图11是软件架构的非限制性示例,并且将意识到,可以实现许多其他架构以促进在本文中所描述的功能。软件架构1102可以在诸如图1A的设备120的硬件上执行,所述硬件包括文档存储装置1070、处理器、存储器和输入/输出(I/O)组件等。代表性的硬件层1104被图示并且能够表示例如图1的设备120。代表性硬件层1104包括处理单元1106以及相关联的可执行指令1108。可执行指令1108表示软件架构1102的可执行指令,包括在本文中所描述的方法、模块等的实现方式。硬件层1104还包括存储器/存储装置1110,其还包括可执行指令1108和随附的数据。硬件层1104还可以包括其他硬件模块1112。由处理单元1108保持的指令1108可以是由存储器/存储装置1110保持的指令1108的部分。
示例性软件架构1102可以被概念化为层,每个层提供各种功能。例如,软件架构1102可以包括诸如操作系统(OS)1114、库1116、架构1118、应用1120和表示层1144的层和组件。在操作上,所述层之内的应用1120和/或其他组件可以调用对其他层的API调用1124并且接收对应的结果1126。所图示的层本质上是代表性的,并且其他软件架构可以包括额外的层或不同的层。例如,一些移动或专用操作系统可能不提供架构/中间件1118。
OS 1114可以管理硬件资源并且提供公共服务。OS 1114可以包括例如内核1128、服务1130和驱动器1132。内核1128可以充当在硬件层1104与其他软件层之间的抽象层。例如,内核1128可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务1130可以为其他软件层提供其他公共服务。驱动器1132可以负责控制底层硬件层1104或者与其接口。例如,驱动器1132可以包括显示驱动器、相机驱动器、存储器/存储设备驱动器、外围设备驱动器(例如,经由通用串行总线(USB))、网络和/或无线通信驱动器、音频驱动器等,具体取决于硬件和/或软件配置。
库1116可以提供可以由应用1120和/或其他组件和/或层使用的通用基础结构。库1116通常提供供其他软件模块用于执行任务的功能,而不是直接与OS 1114交互。库1116可以包括系统库1134(例如,C标准库),其可以提供诸如存储器分配、字符串操纵、文件操作等。另外,库1116可以包括API库1136,诸如媒体库(例如,支持图像、声音和/或视频数据格式的呈现和操纵)、图形库(例如,用于在显示器上渲染2D和3D图形的OpenGL库)、数据库的库(例如,SQLite或者其他关系数据库功能)以及web库(例如,可以提供web浏览功能的WebKit)。库1116还可以包括各种其他库1138,从而为应用1120和其他软件模块提供许多功能。
架构1118(有时也被称为中间件)提供可以由应用1120和/或其他软件模块使用的更高级别的通用基础结构。例如,架构1118可以提供各种图形用户界面(GUI)功能、高级资源管理或高级位置服务。架构1118可以为应用1120和/或其他软件模块提供宽泛的其他API。
应用1120包括内置应用1140和/或第三方应用1142。内置应用1140的示例可以包括但不限于:联系人应用、浏览器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1142可以包括由除了特定平台的供应商之外的实体所开发的任何应用。应用1120可以使用经由OS 1114、库1116、架构1118和表示层1144可用的功能来创建用户接口的用户界面。
一些软件架构使用虚拟机,如由虚拟机1148所图示的。虚拟机1148提供一种执行环境,其中,应用/模块能够像在硬件机器(诸如图10的机器1000)上一样执行。虚拟机1148可以由主机OS(例如,OS 1114)或超管理器来托管,并且可以具有管理虚拟机1148的操作以及与主机操作系统的互操作的虚拟机监视器1146。可以与虚拟机外部的软件架构1102不同的软件架构在虚拟机1148内执行,诸如OS 1150、库1152、架构1154、应用1156和/或表示层1158。
图12是图示了示例性机器1200的组件的框图,机器1200被配置为从机器可读介质(例如,机器可读存储介质)读取指令并且执行在本文中所描述的任何特征。示例性机器1200是计算机系统的形式,在其之内可以执行用于使机器1200执行在本文中所描述的任何特征的指令1216(例如,以软件组件的形式)。这样,指令1216可以被用于实现在本文中所描述的模块或组件。指令1216使未编程和/或未配置的机器1200作为被配置为执行所描述的特征的特定机器来操作。机器1200可以被配置为作为独立设备来操作,或者可以被耦合(例如,联网)到其他机器。在网络部署中,机器1200可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力运行,或者在对等或分布式网络环境中作为节点运行。机器1200可以被体现为例如服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、游戏和/或娱乐系统、智能电话、移动设备、可穿戴设备(例如,智能手表)和物联网(IoT)设备。此外,尽管仅图示了单个机器1200,但是术语“机器”包括个体地或共同地执行指令1216的机器的集合。
机器1200可以包括处理器1210、存储器1230和I/O组件1250,其可以经由例如总线1202通信地耦合。总线1202可以包括经由各种总线技术和协议来耦合机器1200的各种元件的多条总线。在示例中,处理器1210(包括例如中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC或者其适当的组合)可以包括一个或多个处理器1212a至1212n,其可以执行指令1216并且处理数据。在一些示例中,一个或多个处理器1210可以执行由一个或多个其他处理器1210提供或标识的指令。术语“处理器”包括多核处理器,所述多核处理器包括可以同时地执行指令的核心。尽管图12示出了多个处理器,但是机器1200可以包括具有单个核心的单个处理器、具有多个核心的单个处理器(例如,多核心处理器)、每个具有单个核心的多个处理器、每个具有多个核心的多个处理器、或者其任何组合。在一些示例中,机器1200可以包括分布在多个机器之间的多个处理器。
存储器/存储装置1230可以包括主存储器1232、静态存储器1234或者其他存储器,以及存储单元1236,这两者能诸如经由总线1202由处理器1210访问。存储单元1236和存储器1232、1234存储体现在本文中所描述的功能中的任何一项或多项功能的指令1216。存储器/存储设备1230还可以存储针对处理器1210的临时、中间和/或长期数据。指令1216还可以在执行期间全部或部分地驻留在存储器1232、1234内,驻留在存储单元1236内,驻留在至少一个处理器1210内(例如,在命令缓存器或高速缓存存储器内),缓冲在至少一个I/O组件1250的存储器内,或者其任意合适的组合。因此,存储器1232、1234,存储单元1236,处理器1210中的存储器以及I/O组件1250中的存储器是机器可读介质的示例。
如在本文中所使用的,“机器可读介质”指代能够临时或永久地存储使机器1200以特定方式操作的指令和数据的设备。如在本文中所使用的,术语“机器可读介质”自身不涵盖瞬时电信号或电磁信号(诸如在通过介质传播的载波上);因此,术语“机器可读介质”可以被认为是有形的和非暂时性的。非暂时性的有形机器可读介质的非限制性示例可以包括但不限于:非易失性存储器(诸如闪存或只读存储器(ROM))、易失性存储器(诸如静态随机存取存储器(RAM)或动态RAM)、缓存存储器、高速缓存存储器、光学存储介质、磁性存储介质和设备、网络可访问或云存储装置、其他类型的存储装置、和/或其任何合适的组合。术语“机器可读介质”适用于单个介质或者多种介质的组合,用于存储指令(例如,指令1216)以供机器1200执行,使得所述指令当由机器1200的一个或多个处理器1210运行时使机器1200执行在本文中所描述的一个或多个特征。因此,“机器可读介质”可以指待单个存储设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。
I/O组件1250可以包括适于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量结果等的各种硬件组件。被包含在特定机器中的特定I/O组件1250将取决于机器的类型和/或功能。例如,诸如移动电话的移动设备可以包括触摸输入设备,而无头服务器或IoT设备可以不包括这样的触摸输入设备。在图12中图示的I/O组件的特定示例不是限制性的,并且机器1200中可以包括其他类型的组件。I/O组件1250的分组仅是为了简化该讨论,并且该分组不是限制性的。在各种示例中,I/O组件1250可以包括用户输出组件1252和用户输入组件1254。用户输出组件1252可以包括例如用于显示信息的显示组件(例如,液晶显示器(LCD)或投影仪)、声学组件(例如,扬声器)、触觉组件(例如,振动电动机或力反馈设备)和/或其他信号生成器。用户输入组件1254可以包括例如字母数字输入组件(例如,键盘或触摸屏)、定点组件(例如,鼠标设备、触摸板或另一指示仪器)、和/或触觉输入组件(例如,提供触摸或触摸手势的位置和/或力的物理按钮或触摸屏),其被配置用于接收各种用户输入,诸如用户命令和/或选择。
在一些示例中,I/O组件1250可以包括生物统计组件1256和/或位置组件1262,以及多种其他环境传感器组件。生物统计组件1256可以包括例如用于检测身体表情(例如,面部表情、声音表情、手或身体手势或眼睛跟踪)、测量生物信号(例如,心率或脑电波)以及标识人(例如,经由基于语音、视网膜和/或面部的标识)的组件。位置组件1262可以包括例如位置传感器(例如,全球定位系统(GPS)接收器)、高度传感器(例如,可以从其得出高度的气压传感器)和/或方向传感器(例如,磁力计)。
I/O组件1250可以包括通信组件1264,其实现可操作用于经由相应的通信耦合1272和1282将机器1200耦合到(一个或多个)网络1270和/或(一个或多个)设备1280的各种技术。通信组件1264可以包括一个或多个网络接口组件或者与(一个或多个)网络1270接口的其他合适的设备。通信组件1264可以包括例如适于提供有线通信、无线通信、蜂窝通信、近场通信(NFC)、蓝牙通信、Wi-Fi和/或经由其他模态的通信的组件。(一个或多个)设备1280可以包括其他机器或各种外围设备(例如,经由USB耦合)。
在一些示例中,通信组件1264可以检测标识符或者包括适于检测标识符的组件。例如,通信组件1264可以包括射频标识(RFID)标签读取器、NFC检测器、光学传感器(例如,一维或多维条形码或其他光学代码)和/或声学检测器(例如,麦克风以标识标记的音频信号)。在一些示例中,可以基于来自通信组件1262的信息来确定位置信息,诸如但不限于:经由互联网协议(IP)地址的地理位置,经由Wi-Fi、蜂窝、NFC、蓝牙或者其他无线站标识和/或信号三角测量的位置。
尽管已经描述了各种实现方式,但是该描述旨在是示例性的,而不是限制性的,并且应当理解,在实现方式的范围之内的更多的实现方式和实施方式是可能的。尽管在附图中示出了特征的许多可能组合并且在本详细描述中进行了讨论,但是所公开的特征的许多其他组合也是可能的。除非明确限制,否则任何实现方式的任何特征可以与任何其他实现方式中的任何其他特征或元素组合或替代。因此,将理解,在本公开中示出和/或讨论的任何特征可以以任何适当的组合一起实现。因此,除非根据所附权利要求以及其等同物,否则实现方式不受限制。同样地,可以在所附权利要求的范围内进行各种修改和改变。
尽管前文已经描述了被认为是最佳模式和/或其他示例,但是应当理解,可以在其中进行各种修改,并且可以以各种形式和示例来实现在本文中所公开的主题,并且这些教导可以应用于许多应用中,本文仅描述了其中的一些。所附权利要求书旨在要求保护落入本教导的真实范围之内的任何和所有应用、修改和变化。
除非另有说明,否则在本说明书(包括所附权利要求书)中阐述的所有测量结果、值、等级、位置、幅度、大小和其他规格都是近似的,并不是精确的。其旨在具有与其所涉及的功能以及其所涉及的领域中的习惯相一致的合理范围。
保护范围仅由下文的权利要求限制。当根据本说明书和随后的起诉历史进行解释时,该范围的意图是并且应当解释为与权利要求中所使用的语言的普通含义相一致,并且涵盖所有结构和功能上的等同物。尽管如此,所有权利要求书都不旨在涵盖不满足专利法第101、102或103条要求的主题,也不应当以这种方式对其进行解释。由此不要求保护对这种主题的任何非预期的涵盖。
除了以上刚陈述的内容之外,所陈述或示出的内容并不意图或应当解释为使得任何组件、步骤、特征、对象、利益、优势或等同无贡献给公众,无论权利要求中是否有记载。
将理解的是,在本文中所使用的术语和表达具有关于其对应的各自的查询和研究领域相一致的普通含义,除非本文另外阐述了特定含义。诸如第一和第二等的关系术语可以仅用于区分一个实体或动作与另一实体或动作,而不必要求或暗示在这些实体或动作之间的任何实际的这种关系或次序。术语“包括”、“包含”或者其任何其他变型旨在覆盖非排他性包含,使得包括一系列元素的过程、方法、物品或装置不仅仅包括这些元素,还可以包括未明确列出或这样的过程、方法、物品或装置所固有的其他元素。在没有其他约束的情况下,以“一”或“一个”开头的元素并不排除在包括该元素的过程、方法、物品或装置中存在其他相同元素。
提供了本公开的摘要以允许读者快速地确定技术公开的性质。提交的前提是理解其不会被用于解释或限制权利要求的范围或含义。另外,在前述详细说明中,能够看到,为了流线化本公开,在各个示例中将各个特征分组在一起。本公开的方法不应当被解释为反映以下意图:权利要求需要比每个权利要求中明确记载的特征更多的特征。相反,如所附权利要求所反映的,发明主题在于少于单个公开示例的所有特征。因此,以下权利要求由此被合并到详细描述中,其中,每个权利要求独立地作为单独要求保护的主题。
Claims (15)
1.一种内容管理系统,包括:
一个或多个处理器;以及
包括指令的一个或多个计算机可读介质,所述指令当由所述一个或多个处理器运行时使所述一个或多个处理器用于:
通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息能够被配置为传达包括至少第一电子内容项的第一同步内容集的同步进度,其中,所述第一同步内容消息包括关于剩余的要被同步的数据量的信息;
确定所述第一同步内容集的同步具有被延长的可能性,所述确定至少部分地基于对与所述第一同步内容消息的所述信息相关联的非典型同步状况的检测;以及
通过所述通信网络向所述客户端设备传输第一消息,所述第一消息指示所述第一同步内容集的所述同步具有被延长的可能性。
2.根据权利要求1所述的系统,其中,所述指令还使所述一个或多个处理器用于:
经由所述第一同步内容消息接收针对所述同步的序列信息,所述序列信息标识其中所述第一同步内容集中的每个电子内容项被调度为要相对彼此进行同步的序列,所述序列信息指示所述第一同步内容集中的第一内容项将在所述第一同步内容集中的第二内容项之前被同步;
确认所述第一内容项具有比所述第二内容项显著更大的大小;以及
对其中所述电子内容项被调度为要被同步的所述序列自动地重新排序,使得所述第二内容项被调度用于在所述第一内容项被调度为要被同步之前进行同步。
3.根据权利要求1所述的系统,其中,所述指令还使所述一个或多个处理器用于:
接收指示所述客户端设备的功率状态即将改变的信号;以及
响应于对所述同步具有被延长的可能性的所述确定而自动地中断功率状态的所述改变,由此防止所述客户端设备进入挂起状态或断电状态。
4.根据权利要求1所述的系统,其中,所述指令还使所述一个或多个处理器用于:自动地重新分配所述客户端设备的计算资源,使得响应于对所述同步具有被延长的可能性的所述确定而增加被用于所述同步的计算资源,由此减少针对所述同步的计划的持续时间。
5.根据权利要求1所述的系统,其中,对所述第一同步内容集的所述同步具有被延长的可能性的所述确定是基于与至少部分地参考针对所述客户端设备的先前的同步事件而获得的标准同步持续时间的比较进行的。
6.一种内容管理系统,包括:
同步内容集跟踪模块,其被配置为通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息能够被配置为传达包括至少一个电子内容项的第一同步内容集的同步进度,其中,所述第一同步内容消息包括关于剩余的要被同步的数据量的信息;
同步状况管理器,其被配置为:
确定所述第一同步内容集的同步具有被延长的可能性,所述确定至少部分地基于对与所述第一同步内容消息的所述信息相关联的非典型同步状况的检测;以及
通过所述通信网络向所述客户端设备传输同步状况消息,所述同步状况消息指示所述第一同步内容集的所述同步具有被延长的可能性。
7.根据权利要求6所述的系统,还包括标准同步持续时间计算器,其被配置为:至少部分地基于参考针对所述客户端设备的先前的同步事件来提供标准同步持续时间,
其中,所述同步状况管理器被配置为基于与所述标准同步持续时间的比较来确定所述第一同步内容集的所述同步具有被延长的可能性。
8.根据权利要求6所述的系统,其中,所述系统还被配置为:自动地重新分配所述客户端设备的计算资源,使得响应于对所述同步具有被延长的可能性的所述确定而增加被用于所述同步的计算资源,由此减少针对所述同步的计划的持续时间。
9.根据权利要求6所述的系统,其中,所述系统还被配置为自动地:
接收指示所述客户端设备的功率状态即将改变的信号;以及
响应于对所述同步具有被延长的可能性的所述确定而中断功率状态的所述改变,由此防止所述客户端设备进入挂起状态或断电状态。
10.一种方法,包括:
通过通信网络从客户端设备接收至少第一同步内容消息,所述第一同步内容消息能够被配置为传达包括至少第一电子内容项的第一同步内容集的同步进度,其中,所述第一同步内容消息包括关于剩余的要被同步的数据量的信息;
确定所述第一同步内容集的同步具有被延长的可能性,所述确定至少部分地基于对与所述第一同步内容消息的所述信息相关联的非典型同步状况的检测;以及
通过所述通信网络向所述客户端设备传输第一消息,所述第一消息指示所述第一同步内容集的所述同步具有被延长的可能性。
11.根据权利要求10所述的方法,其中,对所述第一同步内容集的所述同步具有被延长的可能性的所述确定是基于与至少部分地参考针对同步服务的多个用户的先前的同步事件而获得的标准同步持续时间的比较进行的。
12.根据权利要求10所述的方法,其中:
所述第一同步内容消息还包括关于剩余的要被同步的电子内容项的数量的信息;以及
对所述同步具有被延长的可能性的所述确定进一步基于剩余的要被同步的电子内容项的所述数量。
13.根据权利要求10所述的方法,还包括:响应于对所述同步具有被延长的可能性的所述确定,而自动地发起对所述客户端设备的重启。
14.根据权利要求10所述的方法,其中,所述第一同步内容消息还包括关于针对所述客户端设备的网络速度的信息,并且所述方法还包括:检测所述客户端设备可用的网络连接,以及响应于对所述同步具有被延长的可能性的所述确定而自动地将所述客户端设备从第一网络连接切换到相对更快的第二网络连接。
15.根据权利要求10所述的方法,还包括:响应于对所述同步具有被延长的可能性的所述确定,而自动地发起所述客户端设备上的诊断工具以确定延长的同步的可能原因。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/036,874 US11032367B2 (en) | 2018-07-16 | 2018-07-16 | Long upload time detection and management |
US16/036,874 | 2018-07-16 | ||
PCT/US2019/037584 WO2020018211A1 (en) | 2018-07-16 | 2019-06-18 | Long upload time detection and management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112424764A true CN112424764A (zh) | 2021-02-26 |
Family
ID=67263063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047250.1A Pending CN112424764A (zh) | 2018-07-16 | 2019-06-18 | 长上传时间检测和管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11032367B2 (zh) |
EP (1) | EP3824396B1 (zh) |
CN (1) | CN112424764A (zh) |
WO (1) | WO2020018211A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042547B2 (en) * | 2018-09-10 | 2021-06-22 | Nuvolo Technologies Corporation | Mobile data synchronization framework |
US11494178B2 (en) * | 2019-09-30 | 2022-11-08 | Slack Technologies, Llc | Method, apparatus, and computer program product for organizing the booting operation of a group-based communication session |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189419A1 (en) * | 2007-02-02 | 2008-08-07 | David Andrew Girle | System and Method to Synchronize OSGi Bundle Inventories Between an OSGi Bundle Server and a Client |
US20090177800A1 (en) * | 2008-01-08 | 2009-07-09 | New Act Ltd. | System and method for client synchronization for a communication device |
CN106164822A (zh) * | 2014-02-18 | 2016-11-23 | 电子湾有限公司 | 保存通信会话的状态 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185247B1 (en) * | 1998-02-27 | 2001-02-06 | Nortel Networks Limited | Method of reducing synchronization rearrangements in synchronous transmission systems |
US7181531B2 (en) | 2002-04-30 | 2007-02-20 | Microsoft Corporation | Method to synchronize and upload an offloaded network stack connection with a network stack |
US7165195B2 (en) * | 2003-08-15 | 2007-01-16 | Intel Corporation | Method, system, and apparatus for bit error capture and analysis for serial interfaces |
US7483923B2 (en) * | 2003-08-21 | 2009-01-27 | Microsoft Corporation | Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system |
US7840646B2 (en) | 2003-10-08 | 2010-11-23 | Yahoo! Inc. | Learned upload time estimate module |
US7506006B2 (en) | 2004-09-03 | 2009-03-17 | Microsoft Corporation | Synchronization for smart clients |
US7693888B2 (en) * | 2005-05-10 | 2010-04-06 | Siemens Communications, Inc. | Data synchronizer with failover facility |
US7260100B1 (en) * | 2005-08-08 | 2007-08-21 | Rockwell Collins, Inc. | System and method for net formation and merging in ad hoc networks |
US7953785B2 (en) | 2006-06-30 | 2011-05-31 | Microsoft Corporation | Content synchronization in a file sharing environment |
US20090300169A1 (en) | 2008-06-03 | 2009-12-03 | Microsoft Corporation | Synchronization throttling based on user activity |
US8832319B2 (en) * | 2008-11-18 | 2014-09-09 | Amazon Technologies, Inc. | Synchronization of digital content |
ES2801698T3 (es) | 2009-03-16 | 2021-01-12 | Koninklijke Kpn Nv | Sincronización de flujo modificado |
CN103036804B (zh) | 2011-10-08 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 控制网络上传速度的方法及系统 |
US20130138708A1 (en) | 2011-11-29 | 2013-05-30 | Toshiba Tec Kabushiki Kaisha | Document processing apparatus |
US9110892B2 (en) | 2012-03-13 | 2015-08-18 | Microsoft Technology Licensing, Llc | Synchronizing local and remote data |
US9369520B2 (en) | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US8745267B2 (en) | 2012-08-19 | 2014-06-03 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9647906B2 (en) | 2012-11-02 | 2017-05-09 | Rockwell Automation Technologies, Inc. | Cloud based drive monitoring solution |
US9519490B2 (en) | 2013-03-07 | 2016-12-13 | Microsoft Technology Licensing, Llc | Adaptive data synchronization |
US9588983B2 (en) | 2013-10-17 | 2017-03-07 | Microsoft Technology Licensing, Llc | Data classification for adaptive synchronization |
CN104580305B (zh) | 2013-10-18 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 网络上传调度和带宽检测方法、系统、客户端和服务器 |
CN104601509B (zh) * | 2013-10-31 | 2018-04-27 | 富士通株式会社 | 多载波调制信号的定时同步装置及方法 |
JP6273927B2 (ja) * | 2014-03-12 | 2018-02-07 | 富士通株式会社 | 情報処理システム,監視装置,監視プログラム,監視方法 |
-
2018
- 2018-07-16 US US16/036,874 patent/US11032367B2/en active Active
-
2019
- 2019-06-18 CN CN201980047250.1A patent/CN112424764A/zh active Pending
- 2019-06-18 EP EP19739780.5A patent/EP3824396B1/en active Active
- 2019-06-18 WO PCT/US2019/037584 patent/WO2020018211A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189419A1 (en) * | 2007-02-02 | 2008-08-07 | David Andrew Girle | System and Method to Synchronize OSGi Bundle Inventories Between an OSGi Bundle Server and a Client |
US20090177800A1 (en) * | 2008-01-08 | 2009-07-09 | New Act Ltd. | System and method for client synchronization for a communication device |
CN106164822A (zh) * | 2014-02-18 | 2016-11-23 | 电子湾有限公司 | 保存通信会话的状态 |
Also Published As
Publication number | Publication date |
---|---|
EP3824396B1 (en) | 2022-12-28 |
US20200021650A1 (en) | 2020-01-16 |
EP3824396A1 (en) | 2021-05-26 |
US11032367B2 (en) | 2021-06-08 |
WO2020018211A1 (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817477B2 (en) | Prioritizing file synchronization in a distributed computing system | |
JP6429919B2 (ja) | 電力効率の良いアプリケーション通知システム | |
US9268655B2 (en) | Interface for resolving synchronization conflicts of application states | |
EP3966681B1 (en) | Automated application updates during operating system upgrades | |
US10200464B2 (en) | In-app application casting | |
US9047321B2 (en) | Prioritizing downloading of image files | |
US10425471B2 (en) | Multi-tasker | |
US9465696B2 (en) | Methods and apparatus for multi-phase multi-source backup | |
US9465603B2 (en) | Application management apparatus, application management system, application management method, and non-transitory computer readable medium | |
US20120311366A1 (en) | Methods and apparatus for power state based backup | |
US20120310896A1 (en) | Methods and apparatus for multi-phase restore | |
US20150205498A1 (en) | Automatic wallpaper image changer for a computing device | |
US10574554B2 (en) | Control of applications that use system resources | |
US10409634B2 (en) | Surfacing task-related applications in a heterogeneous tab environment | |
US20150227605A1 (en) | Information processing terminal, synchronization control method, and computer-readable recording medium | |
US11503136B2 (en) | Data migration reservation system and method | |
US20150365463A1 (en) | Dynamic application deployment | |
US10733054B2 (en) | User engagement aware auto-restart | |
EP3824396B1 (en) | Long upload time detection and management | |
US11599422B2 (en) | System and method for device independent backup in distributed system | |
KR20200056046A (ko) | 전자 장치 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |