CN107810499B - 用于内容存储和检索的系统和方法 - Google Patents
用于内容存储和检索的系统和方法 Download PDFInfo
- Publication number
- CN107810499B CN107810499B CN201680031381.7A CN201680031381A CN107810499B CN 107810499 B CN107810499 B CN 107810499B CN 201680031381 A CN201680031381 A CN 201680031381A CN 107810499 B CN107810499 B CN 107810499B
- Authority
- CN
- China
- Prior art keywords
- file
- client device
- portions
- stored
- metafile
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/13—File access structures, e.g. distributed indices
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文公开了用于在客户端设备处访问文件的部分的系统和方法。选择文件的一个或多个部分以下载到客户端设备,其中文件被存储在经由网络与客户端设备通信的基于web的存储系统上。识别没有存储在客户端设备上的在所选择的一个或多个部分中的至少一个部分。在没有用户交互的情况下,将请求传送到基于web的存储系统以下载所识别的文件的至少一个部分,并且经由网络将所识别的文件的至少一个部分下载到客户端设备。
Description
相关申请案的交叉引用
本申请要求2015年9月14日提交的美国专利申请No.14/853,214的权益,该申请全文并入本文中。
技术领域
一般来说,本公开涉及数据存储,具体地,涉及用于将数据存储在云存储中并且访问来自云存储的数据的系统和方法。
背景技术
基于web的存储系统是文件托管系统,文件托管系统允许用户存储和检索可从一个或多个用户设备访问的数据。这些存储系统可以使用云存储设备来存储用户数据。有时期望用户设备访问存储在基于web的存储系统中的文件。然而,如果文件大,则在用户可以访问文件之前,可能不期望用户等到整个文件被下载到用户设备。
发明内容
本文公开用于保持数据存储的系统和方法。一个方面涉及一种用于在客户端设备处访问文件的部分的系统或方法。选择文件的一个或多个部分以下载到客户端设备,其中文件被存储在经由网络与客户端设备通信的基于web的存储系统上。识别没有存储在客户端设备上的在所选择的一个或多个部分中的至少一个部分。在没有用户交互的情况下,将请求传送到基于web的存储系统以下载所识别的文件的至少一个部分,并且经由网络将所识别的文件的至少一个部分下载到客户端设备。
另一方面涉及一种系统,包括用于在客户端设备处访问文件的部分的装置。该系统包括:用于选择文件的一个或多个部分以下载到客户端设备的装置,其中文件被存储在经由网络与客户端设备通信的基于web的存储系统上;用于识别没有存储在客户端设备上的在所选择的一个或多个部分中的至少一个部分的装置;用于在没有用户交互的情况下将请求传送到基于web的存储系统以下载所识别的文件的至少一个部分的装置;以及用于经由网络将所识别的文件的至少一个部分下载到客户端设备的设备。
在一些实施方案中,用于识别的装置包括用于将所选择的一个或多个部分与元文件中的条目作比较的设备。元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在客户端设备上的指示。元文件可以被存储在客户端设备上并且不可由客户端设备的用户访问。在下载所识别的至少一个部分之后更新元文件,以反映所识别的至少一个部分被存储在客户端设备上。
在一些实施方案中,文件对应于文档,并且系统包括用于将文档的第一部分的视图提供给操作客户端设备的用户的装置,其中文件的所选择的一个或多个部分包括邻近于第一部分的文档的第二和第三部分。文件的所选择的一个或多个部分可以对应于被指派优先级分数的文件的部分,该优先级分数是基于文件的历史查看模式或文件的编辑活动来确定的。在一些实施方案中,应用被安装在客户端设备上以在客户端设备上显示文件的内容,并且应用不被修改为适应显示文件的所选择一个或多个部分。
在一些实施方案中,系统进一步包括用于在所识别的文件的至少一个部分被存储在客户端设备上之前对所识别的文件的至少一个部分进行加密的装置。用于加密的装置使用第一密钥和第一初始化向量,其中第一密钥和不同于第一初始化向量的第二初始化向量用于对存储在客户端设备上的文件的另一部分进行加密。该系统可以进一步包括用于将第一初始化向量和第二初始化向量存储在元文件中的装置,其中元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在客户端设备上的指示。
在一些实施方案中,该系统进一步包括用于基于网络的连接速度、文件的类型以及在预测将被客户端设备的用户请求的文件内的数据量中的至少一个来确定文件的一个或多个部分的大小的装置。
附图说明
在结合附图研读以下详细描述之后,本发明的以上和其他特征,包括本发明的本质和各个优点将变得更加显而易见,其中:
图1是根据说明性实施例的用于访问客户端设备上的文件的部分的计算机化系统的框图。
图2是根据说明性实施例的追踪文件的部分并且存储每个部分是否被本地缓存在客户端设备上的指示的数据库结构的图。
图3是根据说明性实施例的用于响应于读取请求来提供文件的一个或多个部分的说明性方法的流程图。
图4是根据说明性实施例的用于响应于写入请求来提供文件的一个或多个部分的说明性方法的流程图。
图5是根据说明性实施例的用于访问客户端设备上的文件的部分的说明性方法的流程图。
图6是根据说明性实施例的用于执行本文所描述过程中的任一个的计算设备的框图。
具体实施方式
为了提供对本发明的全面理解,现将描述某些说明性实施例,包括用于在基于web的存储系统中提供文件内容存储和检索的系统。具体来说,描述了一种允许数据的有效下载和使用的方法。例如,本文描述的方法可以允许客户端设备处的用户在不必将整个文件下载到客户端设备的情况下,查看和可选地修改文件的一部分。这可以减少各种计算资源的使用,例如以下中的一个或多个:下载文件的数据所需的带宽、客户端设备处的存储需求、以及在在客户端设备处修改文件的情况下,将修改上传到基于web的存储系统所需的带宽。然而,本领域普通技术人员将理解,本文所描述的系统和方法可以适当地被适配和修改以用于正解决的应用,并且本文所描述的系统和方法可以用于其他合适的应用中,并且此类其他添加和修改不会偏离其范围。通常,本文所描述的计算机化系统可以包括一个或多个引擎,其包括一个或多个处理设备,诸如计算机、微处理器、逻辑设备或配置有硬件、固件和软件以执行本文所描述的计算机化方法中的一个或多个的其他设备或处理器。
本发明提供用于从云存储系统存储和检索文件的系统和方法。本文所描述的系统和方法克服与现有的基于web的文件上传系统相关联的多个技术问题,并且在基于web的存储系统方面进行描述,基于web的存储系统可以通过网络与其他系统通信以存储和共享用户数据。一般来说,本领域普通技术人员将理解,本文所描述的系统和方法在不脱离其范围的情况下可适用于本地互连的系统。
图1描绘可以用于实现本文中的系统和方法的网络和数据库结构的示例。图1是用于允许存储在云存储系统上的数据由客户端设备访问的计算机化系统100的框图。系统100包括被配置成通过网络101彼此通信的基于web的存储系统110以及客户端设备102。基于web的存储系统110包括服务器112、处理器114以及用户数据数据库116,并且客户端设备102包括缓存103、元文件104、显示器105、处理器106、用户输入设备107以及网络接口108。本文中使用的术语“处理器”是指一个或多个计算机、微处理器、逻辑设备、服务器、或配置有硬件、固件和软件以执行本文所描述的计算机化技术中的一个或多个的其他设备。处理器和处理设备还可以包括用于存储输入、输出以及当前进行处理的数据的一个或多个存储器设备。图1中仅示出一个基于web的存储系统110和一个客户端设备102以避免复杂化图式。一般来说,系统100可以支持多个基于web的存储系统以及任何数目的客户端设备102。
基于web的存储系统110是允许用户存储、检索和修改数据的文件托管系统。该数据可以称为用户的web数据,该用户的web数据被存储在用户数据数据库116中。服务器112、处理器114或两者可以执行与维护用户数据数据库116有关的功能,诸如为数据分配存储器、接收将存储在数据库中的新数据、删除数据库中的数据、提供数据库中有多少可用存储空间的指示、或与数据库维护有关的任何其他合适功能。基于web的存储系统110可以被存储在单个服务器系统上或分布式系统中。具体而言,基于web的存储系统110可以使用云存储来存储用户数据。
存储在基于web的存储系统110上的文件可能是大的。例如,文件可以包括视频内容、用于记录保持的大的数据库结构、或任何其他合适类型的大文件。当与网络101的连接缓慢(例如,缓慢因特网连接)时,可能花长时间来下载文件。在将文件提供给操作客户端设备的用户之前,通常可能不期望等到下载大的文件。在这种情况下,文件可以被分成多个部分或块,并且仅可以将相关部分下载到客户端设备。在此类示例中,每个部分可以包括文件的数据的适当子集,换句话说,每个部分可以包括文件的数据中的一些但不是全部。文件的部分可以包括例如固定数目的字节,并且可以具有相同大小或具有不同大小。
客户端设备102可以请求访问存储在基于web的存储系统110上的大文件的部分。例如,当文件是视频文件时,在可以将文件的视频内容提供给用户之前,可能不期望等到整个文件被下载到客户端设备102上的缓存103。在这种情况下,视频文件可以分成多个部分,并且将相关部分下载到客户端设备102。尽管本文描述的一些示例与大视频文件有关,但是本发明不限于视频文件,并且还可适用于其他类型的文件,包括含有音频内容、文本内容、图像内容、数据库内容或任何其他合适类型的文件内容的文件。
如图1所示,客户端设备102包括缓存103、元文件104、显示器105、处理器106、用户输入设备107以及用户接口108。用户输入设备107允许用户与文件交互。例如,用户输入设备107可以包括键盘、鼠标或触摸屏,使得用户可以通过选择存储在用户数据数据库116上的文件来提供用户输入。用户输入可以指示来自用户的用于读取所选择文件或修改所选择文件的请求。
文件被存储在用户数据数据库116中的云存储中,但是文件的部分或整个文件还可以被本地地存储在客户端设备102上的缓存103中。如果文件已经被存储在高速缓存103中,则不需要客户端设备102从基于web的存储系统110下载文件。在这种情况下,可以通过打开在显示器105上提供文件的内容的视图的应用来将文件直接提供给用户。否则,客户端设备102将请求传送到基于web的存储系统110,以将文件的内容传输到客户端设备102。在一个示例中,缓存103可以不存储文件的任何部分。在这种情况下,请求可以包括请求将文件的哪些部分下载到缓存103、或是否应将整个文件下载到高速缓存103的指示。在另一示例中,缓存103可能已经存储文件的部分的子集。在这种情况下,如果所请求的部分已经被本地缓存,则可能不需要客户端设备102下载所请求的部分。替代地,如果没有所请求的部分已经被本地缓存,则基于web的存储系统110可以将所请求的部分传送到客户端设备102。
如果所请求的部分中的一些被本地缓存,则基于web的存储系统110可以将还没有本地缓存的所请求的部分传送到客户端设备102。例如,本地缓存的部分可以对应于已经在客户端设备102上查看和/或缓存的视频文件的部分。期望客户端设备102流送视频文件。为了促进流送,预期到用户可能希望查看视频文件的一些稍后部分,客户端设备102可以本地存储尚未查看的视频文件的这些稍后部分。在这种情况下,在播放先前下载的部分的同时,客户端设备102可以请求下载稍后部分。然后,可以将这些所请求稍后部分传送到客户端设备102,并且将其存储在高速缓存103中,直到准备好查看。
在以上示例中,文件被描述为包括视频内容。一般来说,文件可以包括其他内容。例如,文件可以是包括文本和/或图形或图片内容的文档文件。在这种情况下,文件可以被分成可以按顺序排序的部分。在示例中,用户可以通过显示器105查看文件的特定部分。特定部分可以被本地存储在高速缓存103中,但是文件的其他部分可以被存储在基于web的存储系统110中并且不进行本地缓存。在用户通过显示器105查看文件的特定部分时,系统100可以识别邻近于特定部分的前一部分和后一部分。预期到用户可以滚动到这些部分中的一个部分,在查看特定部分的同时,可以将前一部分和/或后一部分下载到缓存103。类似地,系统100可以确定文件的一些部分包含比文件的其他部分更可能被查看的内容,并且可以将相关优先级指派给这些部分。例如,文本内容可能比图片内容更可能被查看和编辑,使得包括文本内容的部分可以比包括图片内容的部分被优先进行下载。
在一些实施例中,可以基于查看行为的历史模式来识别更可能被查看(以及因此被优先)的文件的一部分。在一个示例中,自从用户已查看的最新版本之后最近更新或大量编辑的内容可以优先于其他部分。在另一示例中,如果系统100检测到用户正在特定方向上(例如,从上到下或从下到上)滚动文档,则可以根据该方向优先化文件的一部分,使得在预测稍后显示的部分之前下载预测先前显示的部分。
一般来说,文件不限于包括文本和/或图片内容的视频文件或文档。文件可以是适用于分成多个部分的任何类型的文件。在一些实施例中,文件是保存某些数据的记录的数据库结构。在示例中,文件可以是记录的列表,诸如在学校登记的学生的列表。列表中的每个记录可以包括对应于学生的数据,诸如学生的名字、电子邮件地址、家庭地址、学生识别号、紧急联系人信息、登记的班级、成绩单、学费账单状态、或与学生有关的任何其他合适数据。在这种情况下,文件可以是存储在基于web的存储系统110上的大的文件。诸如学校管理员的客户端设备102处的用户可能希望仅查看文件的所选择的部分,诸如包括与特定学生相关联的数据记录的文件的一部分。在这种情况下,可以将仅文件的所选择的部分从基于web的存储系统110下载到客户端设备102,而不是通过网络101下载整个文件,这可能花费很长时间。在将相关部分下载到客户端设备102之后,用户可以对客户端设备102上的所选择的学生的数据记录进行修改,客户端设备102然后可以将文件的修改部分上传到基于web的存储系统110。在这种情况下,文件可以被分成合适大小的部分以存储特定数目的记录。例如,每个部分可以对应于整数个学生,诸如单个学生或多个学生。
在一些实施例中,以最佳方式选择文件的部分的大小。具体而言,应鉴于网络连接速度和文件的预测使用应用来确定部分的大小。可能不期望使用大小过大的部分,因为大的部分比较小部分花费更长时间来通过网络101传送。此外,如果客户端设备102上实际期望的内容量对应于仅大的部分中的小部分,则大的部分可能是不合需要的。例如,在文件是保存在学校登记的学生的踪迹的数据库结构的以上示例中,可能不期望使用文件中大小调整为包含大数目的学生的部分。具体而言,可能期望客户端设备102处的用户每次查看和修改对应于一个学生的记录,使得大小调整成包括单个学生记录的一部分可以是合适的。应理解,仅出于说明性目的描述本文描述的关于存储与在学校登记的学生有关的数据的文件的示例,并且一般来说,本发明的系统和方法可适用于存储与任何类型的记录保持数据有关的数据的文件。
如果该部分过小,使得来自客户端设备102的用于下载文件的一部分的任何请求将涉及多个部分的下载,则还可能不期望将文件划分成大数目的小部分。在上述示例中,可能不期望该部分的大小调成成包括学生记录的一部分,因为查看或修改学生的记录的任何请求可能要求多个部分的下载和存储。
根据应用,可能期望客户端设备102处的用户每次查看和修改对应于多个学生的记录。例如,用户可能希望查看特定班级的所有学生或满足一个或多个标准的学生的记录,诸如特定年级的所有学生、毕业的学生、参加俱乐部或组织的学生、学费账单具有未清款项的学生或任何其他合适种类的学生。在这种情况下,可以以即时方法生成部分,其中相关学生记录(满足一个或多个标准)被捆绑成一部分并且被下载到客户端设备102。在这种情况下,部分以及其大小不是预定的,而是按需要动态确定的。
如本文所描述,本发明的系统和方法允许客户端设备102处的用户查看和可选地修改文件的一部分,而不必将整个文件下载到客户端设备102。本发明允许客户端设备102仅从基于web的存储系统110下载文件的相关部分,使得用户可以视需要查看和可选地修改某些部分。
在一些实施例中,本发明的系统和方法以对客户端设备102的用户不可见的方式操作。具体而言,用户可能不知道客户端设备102正以所描述方式与基于web的存储系统110通信,以一次下载文件的部分。此外,由客户端设备102执行的用于打开、显示和修改文件的各个部分的软件应用也可能不知道仅文件的一部分而不是整个文件被缓存在客户端设备102上。与视频送应用相反,根据本发明,可能不需要特别配备客户端设备102上的应用一次处理文件的打开和查看部分。
在这种情况下,本发明的系统和方法在客户端设备102上的背景下操作。在示例中,用户正使用客户端设备102上的软件应用来打开和滚动具有20兆字节(MB)大小的文档。文档对应于存储在基于web的存储系统中的文件,该文件被分成十个部分,每个部分具有2MB大小。在用户滚动前十个MB时,软件应用可以请求第11MB至第15MB。客户端设备105可以查询数据库结构(例如,诸如关于图2具体示出和描述的数据库结构)以确定第11MB至第15MB对应于部分6、7和8。在将文档的所请求兆字节映射到文件的部分之后,客户端设备102然后将请求传送到基于web的存储系统110以下载部分6、7和8。
在一些实施例中,文件的部分在被存储在缓存103中之前被加密,并且在提供给客户端设备102的用户之前被解密。在示例中,高级加密标准(AES)用于对缓存103中的部分进行加密,但是一般来说可以使用任何适当的加密方法。可能期望对从基于web的存储系统110下载到客户端设备102的数据进行加密,至少因为这样可以鼓励用户将其文件存储在云系统中,诸如基于web的存储系统110中。例如,如果用户丢失其客户端设备102,则访问客户端设备102的另一人可能无法访问存储在缓存103中的数据,因为存储在缓存103中的数据被加密。
用于对存储在缓存103中的部分进行加密的加密方法可以涉及对整个文件使用相同密钥,但是具有用于文件的每个部分的不同初始化向量。不同初始化向量可以被存储在元文件104或数据库结构中,诸如关于图2描述的数据库结构200中。为了对文件的部分进行解密,可以从请求要在客户端设备102上查看或修改的部分的开始直到所述部分的最后一个字节执行解密过程。如图1所示,元文件104被存储在客户端设备上,但是元文件104可以被存储在基于web的存储系统110或访问网络101的任何其他设备上。在一些实施例中,元文件不可由客户端设备的用户访问。
处理器106可以被配置成执行由客户端设备102执行的本文所描述的功能中的任一个。具体而言,处理器106可以选择一个或多个部分以下载到客户端设备102,识别没有被存储在客户端设备上的所选择一个或多个部分中的至少一个部分,将请求传送到基于web的存储系统110以下载所识别部分,并且下载所识别的部分。此外,处理器114可以被配置成执行由基于web的存储系统110执行的本文所描述的功能中的任一个。另外或替代地,可以由处理器114执行由处理器106执行的本文所描述的功能中的任一个,并且反之亦然。例如,本发明的大部分将元文件104描述为存储在客户端设备102上。替代地,在不脱离本发明的范围的情况下,元文件104可以被存储在基于web的存储上。
图2描绘了保存诸如与客户端设备102的一个或多个用户相关联的一组文件的一组文件的部分的踪迹的示例性数据库结构200。数据结构200可以对应于存储在关于图1示出和描述的元文件104中的数据。数据库结构200中所示的数据可以被存储在本地位于客户端设备102上、基于web的存储系统110中或访问网络101的另一系统中的元文件104。图2中所示的数据库结构200基本上是可以用于识别部分以及其在文件内的位置的图。具体而言,数据库结构200中的每个条目在数据库结构200的行中被描绘,并且对应于文件的一部分。每个条目包括文件标识符、部分标识符、起始点、结束点、指示部分是否被存储在诸如客户端设备102上的缓存103的本地缓存上的标志指示符、以及与该部分何时被最后修改对应的时间戳。每个起始点和结束点对分别指示文件内的一部分的起始边界和结束边界的文件内的位置。
如图2中所示,由文件标识符154识别的文件分成具有部分标识符1、2、3和4的四个部分。文件154的每个部分具有50个数据单元的相同大小,其中每个单元可以指多个数据位或字节。此外,文件154的四个部分中的每一个被本地存储在缓存103上。因为文件154的每个部被分存储在缓存103中,所以如果用户希望经由客户端设备102访问文件154的任何部分,则系统100使用数据结构200来确定文件154的所有部分已经被存储在缓存103上,并且没有部分需要通过网络101传送。
作为另一示例,数据结构200示出分成七个部分的文件931,每个部分具有100个数据单元的大小。与文件154相反,文件931的各部分都没有被本地存储在缓存103上。在这种情况下,当客户端设备102识别访问文件931(或其部分)的请求时,系统100使用数据结构200来确定文件931的部分都没有被本地存储在客户端设备102上。响应于该确定,基于web的存储系统100通过网络101将所需部分传送到客户端设备102以提供给用户。
作为另一示例,数据结构200示出分成五个部分的文件287,每个部分具有100个数据单元的大小。这五个部分中的两个(部分1和2)被本地存储在缓存103中,而文件287的剩余三个部分(部分3、4和5)没有被存储在缓存103中。在这种情况下,如果客户端设备102请求部分1或2中的一个,则基于web的存储系统100不需要通过网络101将这些部分传送到客户端设备102,因为这些部分已经被本地缓存。相反,如果客户端设备102请求部分3、4或5中的一个,则基于web的存储系统100将所请求的一个或多个部分传送到客户端设备102。
如图2中所示,各种文件的部分彼此不重叠。然而,应理解,在不脱离本发明的范围的情况下,部分可以彼此重叠。此外,数据结构200描绘文件,其中每个文件被分成相同大小的部分,但是对于不同文件,部分的大小可以不同。一般来说,对于不同文件,部分可以具有相同大小,或不同大小的部分可以用于相同文件。在一些实施例中,当部分具有相同大小时,图可以包括起始点而不具有结束点、包括结束点而不具有起始点、或诸如部分的中心点的另一点。
仅出于说明性目的描绘数据库结构200中所示的条目,并且本文所描述的图中的条目可以包括所示字段的子集,和/或可以包括未示出的其他字段,诸如与何时创建或最后访问文件(或部分)对应的时间戳、文件的类型或文件部分的内容、以及文件的部分的数目。
如图2中所示,对于特定文件,文件的部分具有固定大小,并且不同文件可以具有不同大小的文件部分。一般来说,跨不同文件以及甚至在相同文件内,文件部分的大小可以相同或不同。具体而言,响应于通过网络101检测连接速度,可以动态地确定文件部分的大小。例如,可以基于互联网连接速度来动态地确定部分的大小。具体而言,当内部连接速度较慢时,部分大小可能小于内部连接速度较快时的部分大小。
在部分被下载到客户端设备102或从客户端设备102删除时,更新元文件104以反映存储在缓存103中的部分。具体而言,更新数据库结构200以保存在客户端设备102上缓存哪些部分以及没有缓存哪些部分的准确记录。
图3是用于响应于来自客户端设备102的读取请求而提供文件的一部分的说明性方法300的流程图。方法300包括以下步骤:接收读取请求(步骤302),确定读取请求是否有效(决定框304),以及确定是否缓存读取请求内的文件(决定框308)。在一个示例中,如果请求包括不正确偏移,诸如在文件开始之前或在文件结束之后出现的对数据的请求,则读取请求可以被确定为无效的。在其他示例中,如果读取请求从不再存在或已删除的文件中请求数据,如果客户端设备102不允许从所请求的文件读取,如果请求针对来自文件夹而不是特定文件的数据,如果读取请求无法提供用于放置读取数据的位置,或其任何合适组合,则读取请求可能无效。如果读取请求无效,则在步骤306处拒绝请求。如果文件被缓存,诸如被本地存储在缓存103上,则在步骤310处经由客户端设备102将文件提供给用户。否则,如果文件没有被缓存,则方法在决策框309处确定是否缓存文件的所请求的部分。如果是,则在步骤312处下载和缓存文件的所请求的部分,并且在步骤314处将所下载的部分提供给用户。在决策框316处,检查读取请求以确定是否存在尚未被下载或提供给用户的任何更多部分。在将读取请求内的所有部分下载以及提供给用户之前,重复步骤309、311、312和314。
在决策框308处,是否缓存文件的确定可以涉及识别请求内的任何部分。在示例中,请求可以指通过大小表示的文件的一部分,诸如20MB文件的第11MB至第15MB。然后,系统100可以将数据库结构,例如,数据库结构200用作图以识别对应于请求中的部分的合适部分标识符。在另一示例中,请求可能已经指合适的部分标识符。在决策框309处,系统100可以确定请求中的部分中的任一个是否被缓存在客户端设备102上。已经缓存的任何部分可以在步骤311处提供,而没有被缓存的任何部分可以在步骤312处被下载并且在步骤314处被提供给用户。
图4是用于响应于来自客户端设备102的写入请求而提供文件的一部分的说明性方法400的流程图。方法400包括以下步骤:接收写入请求(步骤402),确定写入请求是否有效(决策框404),以及确定写入请求内的文件是否被缓存(决策框408)。如上文关于图3所描述,由于读取请求可能无效的任一相同原因,写入请求可能无效。此外,如果写入请求大于预定限制,则写入请求可能无效。如果写入请求无效,则在步骤406处拒绝请求。如果文件被缓存,诸如被本地存储在缓存103上,则在步骤410处经由客户端设备102将文件提供给用户,并且在步骤411处将文件的修改部分上传到基于web的存储系统110。否则,如果文件没有被缓存,则方法在决策框409处确定是否缓存文件的所请求的部分。如果不是,则在步骤412处下载和缓存文件的所请求的部分,并且在步骤414处将所下载的部分提供给用户。否则,如果如在决策框409处确定已缓存文件的所请求的部分,则方法400直接前进到步骤414以将所下载的部分提供给用户。在决策框416处,确定用户是否对所提供的部分进行修改。如果是,则在步骤418处上传修改部分。否则,在决策框420处,检查读取请求以确定是否存在尚未被下载或提供给用户的更多部分。在将写入请求内的所有部分下载并提供给用户之前,重复步骤409、412、414、416和418。
图5是用于访问客户端设备处的文件的部分的说明性方法500的流程图。方法500包括以下步骤:选择文件的一个或多个部分以下载到客户端设备,其中文件被存储在经由网络与客户端设备通信的基于web的存储系统上(步骤502);识别没有被存储在客户端设备上的在所选择的一个或多个部分中的至少一个部分(步骤504);在没有用户交互的情况下将请求传送到基于web的存储系统以下载文件的所识别的至少一个部分(步骤506);以及经由网络将文件的所识别的至少一个部分下载到客户端设备(步骤508)。
在步骤502处,选择文件的一个或多个部分以下载到客户端设备,其中文件被存储在经由网络与客户端设备通信的基于web的存储系统上。在一些实施例中,当文件对应于文档时,可以通过显示器105将文档的第一部分提供给操作客户端设备102的用户。文件的所选择的一个或多个部分可以对应于邻近于第一部分的文档的第二和第三部分。另外或替代地,可以基于文件的历史查看模式来确定文件的所选择的一个或多个部分。例如,如果用户在文档的从上到下方向上滚动,则文件的所选择一个或多个部分可以包括预测下一次查看的那些部分。此外,部分可以被指派基于滚动的方向确定的优先级分数。例如,在文档中的其他部分上方出现的部分可以被指派比较低部分更高的优先级分数,并且具有较高优先级分数的部分可以在其他部分之前被下载。另外或替代地,可以基于文件的所确定编辑活动来确定文件的所选择的一个或多个部分。例如,用户尚未查看但一个或多个其他用户已大量编辑的文件的一部分可以在已经被较少编辑的其他部分之前被优先。
在一些实施例中,基于网络的连接速度、文件的类型以及在预测由客户端设备的用户请求的文件内的数据量中的至少一个来确定文件的一个或多个部分的大小。如关于图1描述的,与网络101的连接速度快的情况相比,较慢的连接速度可以与较小部分相关联。此外,当文件包括追踪记录(诸如在学校登记的学生)的数据库时,可以将文件划分成用于特定应用的适当大小的部分。例如,可以将各部分的大小调整为包括用于单个学生的记录。
在步骤504处,识别没有存储在客户端设备上的在所选择一个或多个部分中的至少一个部分。例如,在步骤502处选择的一个或多个部分可以与诸如关于图2示出和描述的数据库结构200的元文件中的条目进行比较。具体而言,元文件中的每个条目可以包括对识别所选择的一个或多个部分中的每一个的部分标识符的参考。元文件中的每个条目可以进一步包括所选择的一个或多个部分中的每一个是否被存储在客户端设备上的指示。
在步骤506处,在没有用户交互的情况下(或换句话说,自主地)将请求传送到基于web的存储系统以下载文件的所识别的至少一个部分。在一些实施例中,应用被安装在客户端设备上以在客户端设备上显示文件的内容,并且应用不被修改为适应显示文件的所选择一个或多个部分。具体而言,如果文件全部被本地缓存,则用于打开文件的应用与可以用于打开文件部分的应用相同,并且不需要对应用作出改变以使应用能够打开文件的部分。一般来说,本发明的系统和方法可以在用户的客户端设备上实现,而不需要对用户与客户端设备的正常交互进行改变,不论文件的相关部分最初是否被缓存。
在步骤508处,经由网络将文件的所识别的至少一个部分下载到客户端设备。具体而言,通过基于web的存储系统110将所识别的至少一个部分传送到客户端设备102。在将所传送的部分存储在客户端设备102上之前,可以对所传送的部分进行加密。如上所述,加密方法可以包括使用与用于相同文件的其他部分相同的密钥以及不同的初始化向量。此外,不同初始化向量可以被存储在元文件104中,或作为字段条目被存储在数据库结构200中。
图6是用于执行本文所描述的过程中的任一个的计算设备的框图,诸如图1的系统的组件中的任一个的框图。这些系统的组件中的每一个可以在一个或多个计算设备600上被实现。在某些方面中,这些系统的多个组件可以被包括在一个计算设备600内。在某些实现中,组件和存储设备可以跨越若干计算设备600被实现。
计算设备600包括至少一个通信接口单元、输入/输出控制器610、系统存储器和一个或多个数据存储设备。系统存储器包括至少一个随机存取存储器(RAM 602)和至少一个只读存储器(ROM 1004)。所有这些元件与中央处理单元(CPU 606)通信以促进计算设备600的操作。计算设备600可以用多种不同方式配置。例如,计算设备600可以是常规的独立计算机,或替代地,计算设备600的功能可以跨越多个计算机系统和架构分布。在图6中,计算设备600经由网络或本地网络链接到其他服务器或系统。
计算设备600可以以分布式架构配置,其中数据库和处理器被容纳在单独单元或位置中。一些单元执行主要处理功能并且至少包含通用控制器或处理器和系统存储器。在分布式架构实现中,这些单元中的每一个可以经由通信接口单元608被附接到通信集线器或端口(未示出),通信集线器或端口用作与其他服务器、客户端或用户计算机和其他相关设备的主要通信链路。通信集线器或端口可以本身具有最小处理能力,主要用作通信路由器。各种通信协议可以是系统的一部分,包括但不限于:以太网、SAP、SASTM、ATP、蓝牙TM、GSM和TCP/IP。
CPU 606包括处理器,诸如一个或多个常规微处理器和一个或多个补充协处理器,诸如用于从CPU 606卸载工作负载的数学协处理器。CPU 606与通信接口单元608和输入/输出控制器610通信,CPU 606通过通信接口单元和输入/输出控制器与其他设备通信,其他设备例如其他服务器、用户终端或设备。通信接口单元608和输入/输出控制器610可以包括用于与例如其他处理器、服务器或客户端终端同时通信的多个通信信道。
CPU 606还与数据存储设备通信。数据存储设备可以包括磁性、光学或半导体存储器的合适组合,并且可以包括例如RAM 602、ROM604、闪存驱动器、诸如压缩光盘或硬盘的光盘或驱动器。CPU 606和数据存储设备中的每一个可以例如完全位于单个计算机或其他计算设备中;或通过通信介质,诸如USB端口、串行端口电缆、同轴电缆、以太网电缆、电话线、射频收发器或其他类似无线或有线媒体,或前述项的组合,来彼此连接。例如,CPU 606可以经由通信接口单元608连接到数据存储设备。CPU 606可以被配置成执行一个或多个特定处理功能。
数据存储设备可以存储,例如,(i)计算设备600的操作系统612;(ii)适用于根据本文描述的系统和方法,具体地根据关于CPU 606详细描述的过程引导CPU 606的一个或多个应用614(计算机程序代码或计算机程序产品);或(iii)适用于可以用于存储程序所需的信息的信息的数据库616。
操作系统612和应用614可以例如以压缩、未编译和加密格式被存储,并且可以包括计算机程序代码。可以从计算机可读介质,而不是数据存储设备,诸如从ROM 604或从RAM602,将程序的指令读取到处理器的主存储器中。尽管程序中的指令序列的执行使CPU 606执行本文所描述的过程步骤,但是可以代替或结合用于实施本发明的过程的软件指令使用硬接线电路。因此,所描述的系统和方法不限于硬件和软件的任何特定组合。
合适的计算机程序代码可以提供用于相对于如本文所描述的过程中的任一个执行一个或多个功能。程序还可以包括程序元素,例如,操作系统612、数据库管理系统以及允许处理器通过输入输出控制器610与计算机外围设备(例如,视频显示器、键盘、计算机鼠标等)介接的“设备驱动器”。
本文使用的术语“计算机可读媒体”指代将指令提供到计算设备600的处理器(或本文所描述的设备的任何其他处理器)或参与将指令提供到计算设备600的处理器以供执行的任何非暂时性媒体。此媒体可以采用许多形式,包括但不限于,非易失性媒体和易失性媒体。非易失性媒体包括,例如,光盘、磁盘或光磁盘,或集成电路存储器,例如闪存存储器。易失性媒体包括通常构成主存储器的动态随机存取存储器(DRAM)。计算机可读媒体的常见形式包括,例如,软盘、柔性盘、硬盘、磁带、任何其他磁性媒体、CD-ROM、DVD、任何其他光学媒体、打孔卡、纸带、具有孔图案的任何其他物理媒体、RAM、PROM、EPROM或EEPROM(电可擦除可编程只读存储器)、FLASH-EEPROM、任何其他存储器芯片或盒式磁带,或计算机可读取的任何其他非暂时性媒体。
各种形式的计算机可读媒体可以涉及获得到达CPU 606(或本文所描述的设备的任何其他处理器)的一个或多个指令的一个或多个序列以供执行。例如,指令最初可以承载在远程计算机(未示出)的磁盘上。远程计算机可以将指令加载到其动态存储器中并且使用调制解调器通过因特网连接、电缆线、或甚至电话线发送指令。计算设备600(例如,服务器)本地的通信设备可以在相应通信线上接收数据并且将数据放置于处理器的系统总线上。系统总线将数据携载到主存储器,处理器从所述主存储器检索和执行指令。在通过处理器执行之前或之后,通过主存储器接收的指令可以任选地存储在存储器中。另外,指令可以通过通信柱接收为电、电磁或光学信号,所述信号是携载各种类型的信息的无线通信或数据流的示例性形式。
尽管本文中已示出和描述本发明的各种实施例,但是本领域技术人员应明白,此类实施例仅通过示例提供。在不脱离本发明的情况下,本领域技术人员能想到许多变化、改变和替换。应理解,本文所描述的本发明的实施例的各种替代方案可以用于实践本发明。
Claims (20)
1.一种用于在客户端设备处访问文件的部分的方法,所述方法包括:
通过基于web的存储系统的至少一个计算机处理器接收在客户端设备处访问文件的请求,其中所述文件被存储在经由网络与所述客户端设备通信的所述基于web的存储系统处,并且其中所述请求包括用于所述文件的应用;
通过所述至少一个计算机处理器确定用于下载到所述客户端设备的所述文件的一个或多个部分的大小,其中所述文件的所述一个或多个部分的大小是至少基于用于所述文件的所述应用和被预测由所述客户端设备的用户请求的所述文件内的数据量来确定的;
通过所述至少一个计算机处理器选择文件的一个或多个部分以下载到所述客户端设备,其中所述文件的所述一个或多个部分是至少基于确定所述文件的所述一个或多个部分是否包括比包括编辑的所述文件的其它部分大的数目的编辑以及在所述文件的所述一个或多个部分内检测的内容的类型来选择的;
通过所述至少一个计算机处理器访问存储在所述客户端设备上的元文件以识别没有被存储在所述客户端设备上的在所选择的一个或多个部分中的至少一个部分;以及
响应于识别没有被存储在所述客户端设备上的在所选择的一个或多个部分中的所述至少一个部分,通过所述至少一个计算机处理器经由所述网络将所述文件的所识别的至少一个部分从所述基于web的存储系统下载到所述客户端设备。
2.根据权利要求1所述的方法,其中,访问存储在所述客户端设备上的元文件包括将所选择的一个或多个部分与所述元文件中的条目进行比较,并且其中,所述元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在所述客户端设备上的指示。
3.根据权利要求1所述的方法,其中,存储在所述客户端设备上的所述元文件不可由所述客户端设备的用户访问。
4.根据权利要求1所述的方法,进一步包括:在下载所识别的至少一个部分之后更新存储在所述客户端设备上的所述元文件,以反映所识别的至少一个部分当前被存储在所述客户端设备上。
5.根据权利要求1至4中的任一项所述的方法,其中,所述文件对应于文档,所述方法进一步包括将所述文档的第一部分的视图提供给操作所述客户端设备的用户,其中,所述文件的所选择的一个或多个部分包括邻近于所述第一部分的所述文档的第二部分和第三部分。
6.根据权利要求1至4中的任一项所述的方法,其中,所述文件的所选择的一个或多个部分对应于被指派优先级分数的所述文件的部分,所述优先级分数是基于所述文件的历史查看模式或所述文件的编辑活动来确定的。
7.根据权利要求1至4中的任一项所述的方法,其中,应用被安装在所述客户端设备上,以在所述客户端设备上显示所述文件的内容,并且所述应用不被修改为适应显示所述文件的所选择的一个或多个部分。
8.根据权利要求1至4中的任一项所述的方法,进一步包括:在所述文件的所识别的至少一个部分被存储在所述客户端设备上之前,对所述文件的所识别的至少一个部分进行加密,其中,所述加密包括使用第一密钥和第一初始化向量,并且所述第一密钥以及不同于所述第一初始化向量的第二初始化向量用于对存储在所述客户端设备上的所述文件的另一部分进行加密。
9.根据权利要求8所述的方法,进一步包括:将所述第一初始化向量和所述第二初始化向量存储在元文件中,其中,所述元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在所述客户端设备上的指示。
10.根据权利要求1至4中的任一项所述的方法,其中,基于所述网络的连接速度或所述文件的类型中的至少一个来确定所述文件的所述一个或多个部分的大小。
11.一种用于在客户端设备处访问文件的部分的系统,所述系统包括基于web的存储系统的至少一个计算机处理器,所述至少一个计算机处理器被配置成:
接收在客户端设备处访问文件的请求,其中所述文件被存储在经由网络与所述客户端设备通信的所述基于web的存储系统处,并且其中所述请求包括用于所述文件的应用;
确定用于下载到所述客户端设备的所述文件的一个或多个部分的大小,其中所述文件的所述一个或多个部分的大小是至少基于用于所述文件的所述应用和被预测由所述客户端设备的用户请求的所述文件内的数据量来确定的;
选择文件的一个或多个部分以下载到所述客户端设备,其中所述文件的所述一个或多个部分是至少基于确定所述文件的所述一个或多个部分是否包括比包括编辑的所述文件的其它部分大的数目的编辑以及在所述文件的所述一个或多个部分内检测的内容的类型来选择的;
访问存储在所述客户端设备上的元文件以识别没有被存储在所述客户端设备上的在所选择的一个或多个部分中的至少一个部分;以及
响应于识别没有被存储在所述客户端设备上的在所选择的一个或多个部分中的所述至少一个部分,经由所述网络将所述文件的所识别的至少一个部分下载到所述客户端设备。
12.根据权利要求11所述的系统,其中,所述至少一个计算机处理器通过将所选择的一个或多个部分与所述元文件中的条目作比较来访问存储在所述客户端设备上的所述元文件,其中,所述元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在所述客户端设备上的指示。
13.根据权利要求11所述的系统,其中,存储在所述客户端设备上的所述元文件不可由所述客户端设备的用户访问。
14.根据权利要求11所述的系统,其中,所述至少一个计算机处理器进一步被配置成在下载所识别的至少一个部分之后更新存储在所述客户端设备上的所述元文件,以反映所识别的至少一个部分当前被存储在所述客户端设备上。
15.根据权利要求11至14中的任一项所述的系统,其中,所述文件对应于文档,并且所述至少一个计算机处理器进一步被配置成将所述文档的第一部分的视图提供给操作所述客户端设备的用户,其中,所述文件的所选择的一个或多个部分包括邻近于所述第一部分的所述文档的第二部分和第三部分。
16.根据权利要求11至14中的任一项所述的系统,其中,所述文件的所选择的一个或多个部分对应于被指派优先级分数的所述文件的部分,所述优先级分数是基于所述文件的历史查看模式或所述文件的编辑活动来确定的。
17.根据权利要求11至14中的任一项所述的系统,其中,应用被安装在所述客户端设备上,以在所述客户端设备上显示所述文件的内容,并且所述应用不被修改为适应显示所述文件的所选择的一个或多个部分。
18.根据权利要求11至14中的任一项所述的系统,其中,所述至少一个计算机处理器进一步被配置成通过使用第一密钥和第一初始化向量,在所述文件的所识别的至少一个部分被存储在所述客户端设备上之前,对所述文件的所识别的至少一个部分进行加密,并且其中,所述第一密钥以及不同于所述第一初始化向量的第二初始化向量用于对存储在所述客户端设备上的所述文件的另一部分进行加密。
19.根据权利要求18所述的系统,其中,所述至少一个计算机处理器进一步被配置成将所述第一初始化向量和所述第二初始化向量存储在元文件中,其中,所述元文件中的每个条目包括识别所选择的一个或多个部分中的每一个的部分标识符、以及所选择的一个或多个部分中的每一个是否被存储在所述客户端设备上的指示。
20.根据权利要求11至14中的任一项所述的系统,其中,进一步基于所述网络的连接速度或所述文件的类型中的至少一个来确定所述文件的所述一个或多个部分的大小。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/853,214 US10887371B2 (en) | 2015-09-14 | 2015-09-14 | Systems and methods for content storage and retrieval |
US14/853,214 | 2015-09-14 | ||
PCT/US2016/049848 WO2017048517A1 (en) | 2015-09-14 | 2016-09-01 | Systems and methods for content storage and retrieval |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107810499A CN107810499A (zh) | 2018-03-16 |
CN107810499B true CN107810499B (zh) | 2022-03-25 |
Family
ID=56896835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680031381.7A Active CN107810499B (zh) | 2015-09-14 | 2016-09-01 | 用于内容存储和检索的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10887371B2 (zh) |
EP (1) | EP3350722B1 (zh) |
JP (1) | JP6789244B2 (zh) |
KR (1) | KR102072854B1 (zh) |
CN (1) | CN107810499B (zh) |
DE (2) | DE202016107380U1 (zh) |
GB (1) | GB2555952B (zh) |
WO (1) | WO2017048517A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255242B2 (en) * | 2016-06-29 | 2019-04-09 | RedCritter Corp. | Communications platform for implementing a recognition and reward system |
US10484354B2 (en) * | 2017-02-15 | 2019-11-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Data owner restricted secure key distribution |
US11533384B2 (en) * | 2020-03-20 | 2022-12-20 | International Business Machines Corporation | Predictive provisioning of cloud-stored files |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024054A (zh) * | 2010-12-10 | 2011-04-20 | 中国科学院软件研究所 | 一种面向密文云存储的文档检索方法与系统 |
CN103931156A (zh) * | 2011-05-14 | 2014-07-16 | 比特卡萨公司 | 具有用户不可知加密文件的服务器侧去重的云文件系统 |
CN103975312A (zh) * | 2011-03-29 | 2014-08-06 | 亚马逊技术股份有限公司 | 连接到联网存储系统的本地存储器 |
CN104079615A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 文件下载方法和信息处理装置 |
CN104158857A (zh) * | 2014-07-25 | 2014-11-19 | 中南大学 | 一种提供网络化操作系统服务的装置和方法 |
CN104885076A (zh) * | 2012-05-10 | 2015-09-02 | 以太存储股份有限公司 | 分布式存储的系统和方法 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE230445T1 (de) | 1995-10-27 | 2003-01-15 | Specialty Coating Systems Inc | Verfahren und vorrichtung zur ablagerung von parylen af4 auf halbleiterwafern |
US6516339B1 (en) * | 1999-08-18 | 2003-02-04 | International Business Machines Corporation | High performance client/server editor |
US7630986B1 (en) * | 1999-10-27 | 2009-12-08 | Pinpoint, Incorporated | Secure data interchange |
US6842770B1 (en) * | 2000-08-18 | 2005-01-11 | Apple Computer, Inc. | Method and system for seamlessly accessing remotely stored files |
GB0510991D0 (en) | 2005-05-28 | 2005-07-06 | Xaar Technology Ltd | Method of printhead passivation |
GB0513375D0 (en) * | 2005-06-30 | 2005-08-03 | Retento Ltd | Computer security |
US7660581B2 (en) * | 2005-09-14 | 2010-02-09 | Jumptap, Inc. | Managing sponsored content based on usage history |
US8086946B2 (en) * | 2006-09-05 | 2011-12-27 | Adobe Systems Incorporated | Methods and apparatus for optimizing responsiveness of portable documents |
JP5574606B2 (ja) | 2009-01-29 | 2014-08-20 | キヤノン株式会社 | 情報処理システム、その処理方法、情報処理装置及びプログラム |
US8697458B2 (en) | 2009-04-22 | 2014-04-15 | Shat-R-Shield, Inc. | Silicone coated light-emitting diode |
CA2822185C (en) * | 2009-08-14 | 2014-04-22 | Azuki Systems, Inc. | Method and system for unified mobile content protection |
US8600803B1 (en) * | 2010-05-18 | 2013-12-03 | Google Inc. | Incentivizing behavior to address pricing, tax, and currency issues in an online marketplace for digital goods |
CN102075542B (zh) * | 2011-01-26 | 2012-12-19 | 中国科学院软件研究所 | 一种云计算数据安全支撑平台 |
JP5163781B2 (ja) * | 2011-07-15 | 2013-03-13 | 株式会社日立製作所 | ダウンロード制御装置 |
EP2560344B8 (en) | 2011-08-18 | 2018-06-27 | Apple Inc. | Management of downloads from a network-based digital data repository based on network performance |
CN102520922B (zh) * | 2011-11-14 | 2016-04-13 | 上海交通大学 | 一种协作环境下的远程开发方法及其系统 |
US8886752B2 (en) * | 2011-11-21 | 2014-11-11 | Sony Computer Entertainment America | System and method for optimizing transfers of downloadable content |
KR20150020574A (ko) | 2012-06-18 | 2015-02-26 | 에이치제트오 인코포레이티드 | 완전히 조립된 전자 디바이스의 내부 표면에 보호 코팅을 제공하는 시스템 및 방법 |
CN102882923B (zh) * | 2012-07-25 | 2015-04-15 | 北京亿赛通科技发展有限责任公司 | 移动终端安全存储系统及方法 |
US20140036519A1 (en) * | 2012-08-01 | 2014-02-06 | Raymond L. Cloward | Spiraling support tube |
US10140269B2 (en) * | 2013-03-12 | 2018-11-27 | Microsoft Technology Licensing, Llc | Viewing effects of proposed change in document before committing change |
US9538232B2 (en) * | 2013-03-14 | 2017-01-03 | Verizon Patent And Licensing Inc. | Chapterized streaming of video content |
CN104079704A (zh) * | 2013-03-26 | 2014-10-01 | 联想(北京)有限公司 | 对数据进行同步的移动终端和服务器及相应的方法 |
JP6107341B2 (ja) | 2013-04-05 | 2017-04-05 | 富士通株式会社 | データ管理プログラム,データ管理装置およびデータ管理方法 |
US9405767B2 (en) * | 2013-05-01 | 2016-08-02 | Microsoft Technology Licensing, Llc | Streaming content and placeholders |
US9665501B1 (en) * | 2013-06-18 | 2017-05-30 | Western Digital Technologies, Inc. | Self-encrypting data storage device supporting object-level encryption |
EP2819379A1 (en) | 2013-06-28 | 2014-12-31 | Thomson Licensing | Method for adapting the downloading behavior of a client terminal configured to receive multimedia content, and corresponding terminal |
CN104468664A (zh) * | 2013-09-18 | 2015-03-25 | 中兴通讯股份有限公司 | 一种上传文件到云存储系统的方法、下载方法及装置 |
US9326026B2 (en) | 2013-10-31 | 2016-04-26 | At&T Intellectual Property I, Lp | Method and apparatus for content distribution over a network |
US10187358B2 (en) | 2013-12-03 | 2019-01-22 | Amazon Technologies, Inc. | Data transfer optimizations |
CN104717240A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 文件网络共享方法及装置 |
CN104717254B (zh) * | 2013-12-12 | 2019-01-08 | 华为技术有限公司 | 文件访问的方法和云网关 |
US10200427B2 (en) | 2014-01-13 | 2019-02-05 | Facebook, Inc. | Systems and methods for streaming digital content using an intermediate server |
US9959280B1 (en) * | 2014-09-30 | 2018-05-01 | EMC IP Holding Company LLC | Garbage collection of data tiered to cloud storage |
US9053124B1 (en) * | 2014-09-30 | 2015-06-09 | Code 42 Software, Inc. | System for a distributed file system element collection |
US11461533B2 (en) * | 2014-10-15 | 2022-10-04 | International Business Machines Corporation | Generating a document preview |
US20170149860A1 (en) * | 2014-10-19 | 2017-05-25 | Tensera Networks Ltd. | Partial prefetching of indexed content |
US20160323351A1 (en) * | 2015-04-29 | 2016-11-03 | Box, Inc. | Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques |
KR102554832B1 (ko) | 2015-05-07 | 2023-07-11 | 어플라이드 머티어리얼스, 인코포레이티드 | 챔버 컴포넌트들을 위한 부식 제어 |
-
2015
- 2015-09-14 US US14/853,214 patent/US10887371B2/en active Active
-
2016
- 2016-09-01 CN CN201680031381.7A patent/CN107810499B/zh active Active
- 2016-09-01 WO PCT/US2016/049848 patent/WO2017048517A1/en active Application Filing
- 2016-09-01 GB GB1717893.0A patent/GB2555952B/en active Active
- 2016-09-01 JP JP2017557147A patent/JP6789244B2/ja active Active
- 2016-09-01 DE DE202016107380.4U patent/DE202016107380U1/de active Active
- 2016-09-01 EP EP16763691.9A patent/EP3350722B1/en active Active
- 2016-09-01 KR KR1020177031679A patent/KR102072854B1/ko active IP Right Grant
- 2016-09-01 DE DE112016004168.3T patent/DE112016004168T5/de active Pending
-
2021
- 2021-01-04 US US17/140,913 patent/US11930070B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024054A (zh) * | 2010-12-10 | 2011-04-20 | 中国科学院软件研究所 | 一种面向密文云存储的文档检索方法与系统 |
CN103975312A (zh) * | 2011-03-29 | 2014-08-06 | 亚马逊技术股份有限公司 | 连接到联网存储系统的本地存储器 |
CN103931156A (zh) * | 2011-05-14 | 2014-07-16 | 比特卡萨公司 | 具有用户不可知加密文件的服务器侧去重的云文件系统 |
CN104885076A (zh) * | 2012-05-10 | 2015-09-02 | 以太存储股份有限公司 | 分布式存储的系统和方法 |
CN104079615A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 文件下载方法和信息处理装置 |
CN104158857A (zh) * | 2014-07-25 | 2014-11-19 | 中南大学 | 一种提供网络化操作系统服务的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210126963A1 (en) | 2021-04-29 |
EP3350722A1 (en) | 2018-07-25 |
DE202016107380U1 (de) | 2017-02-06 |
WO2017048517A1 (en) | 2017-03-23 |
KR20170134586A (ko) | 2017-12-06 |
KR102072854B1 (ko) | 2020-02-03 |
US10887371B2 (en) | 2021-01-05 |
GB2555952A (en) | 2018-05-16 |
GB2555952B (en) | 2021-10-06 |
DE112016004168T5 (de) | 2018-06-21 |
GB201717893D0 (en) | 2017-12-13 |
CN107810499A (zh) | 2018-03-16 |
JP6789244B2 (ja) | 2020-11-25 |
US20170078362A1 (en) | 2017-03-16 |
US11930070B2 (en) | 2024-03-12 |
EP3350722B1 (en) | 2021-02-17 |
JP2018526700A (ja) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9952753B2 (en) | Predictive caching and fetch priority | |
US11930070B2 (en) | Systems and methods for content storage and retrieval | |
EP3408744B1 (en) | Providing access to a hybrid application offline | |
RU2629448C2 (ru) | Система и способ управления и организации кэша веб-браузера | |
US9020893B2 (en) | Asynchronous namespace maintenance | |
US20100235329A1 (en) | System and method of embedding second content in first content | |
TWI709862B (zh) | 用於預測性檔案快取及同步之技術 | |
WO2016016734A1 (en) | Managing web browser cache for offline browsing | |
US20130219050A1 (en) | Cloud service access apparatus, cloud service access method, and cloud service access system | |
US10009399B2 (en) | Asset streaming and delivery | |
US20120296871A1 (en) | File managing apparatus for processing an online storage service | |
US8892639B2 (en) | Method and system for processing file stored in cloud storage and computer readable storage medium storing the method | |
US9430578B2 (en) | System and method for anchoring third party metadata in a document | |
JP2010277517A (ja) | ファイル管理サーバ、ファイル管理システム、ファイル管理プログラム、及びファイル管理方法 | |
US9411639B2 (en) | System and method for managing network navigation | |
US7664916B2 (en) | Global smartcard cache methods and apparatuses | |
JP6114236B2 (ja) | 端末装置、電子マガジン作成システム、電子マガジン作成方法およびコンピュータプログラム | |
US11507611B2 (en) | Personalizing unstructured data according to user permissions | |
JP2007128273A (ja) | 分散型データアーカイブ装置及びシステム | |
JP6069262B2 (ja) | 端末装置、電子マガジン作成システム、電子マガジン作成方法およびコンピュータプログラム | |
JP2015135535A (ja) | ファイル処理装置およびファイル処理方法 | |
KR101167843B1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |