CN102349062B - 浏览器缓存与远程仓库同步的方法和系统 - Google Patents

浏览器缓存与远程仓库同步的方法和系统 Download PDF

Info

Publication number
CN102349062B
CN102349062B CN2010800112929A CN201080011292A CN102349062B CN 102349062 B CN102349062 B CN 102349062B CN 2010800112929 A CN2010800112929 A CN 2010800112929A CN 201080011292 A CN201080011292 A CN 201080011292A CN 102349062 B CN102349062 B CN 102349062B
Authority
CN
China
Prior art keywords
browser
cache
data object
computing environment
synchronous
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
Application number
CN2010800112929A
Other languages
English (en)
Other versions
CN102349062A (zh
Inventor
D.舒克拉
A.帕拉斯尼斯
R.恩德雷斯
A.哈奈-西哈尼
I.希勒里奥
F.穆罕默德
A.班达卡
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN102349062A publication Critical patent/CN102349062A/zh
Application granted granted Critical
Publication of CN102349062B publication Critical patent/CN102349062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

计算机用户可以使用包括一组计算机的计算环境,这些计算机分别以具有包含许多类型的数据对象的浏览器缓存的web浏览器为特征,所述数据对象包括应用资源和用户生成的数据文件。然而,浏览器缓存的内容对计算机的计算环境有重大贡献,并且每个计算机呈现的计算环境可能有差异,从而提供不一致的计算环境。替代地,包括计算环境的计算机的浏览器缓存的内容可以跨计算机而同步。此外,浏览器缓存可以与计算环境的其他数据对象(例如文件系统的相关部分)同步;同步可以实现为与应用独立地且甚至在浏览器不执行时执行的浏览器外的进程;并且同步可以通过web应用可以与之交户的编程访问而暴露。

Description

浏览器缓存与远程仓库同步的方法和系统
背景技术
web服务器经常存储一组数据对象,例如HTML页面、媒体对象、数据仓库(data store)和可执行脚本,这些数据对象被提供给web浏览器并且从而被再现以呈现一组构成网站的网页。web浏览器典型地包括浏览器缓存,其中可以存储接收的项目以便在随后再现的网页中重新使用,从而提高web浏览器的性能,节省web服务器的资源并且可选地在不能访问web服务器时提供有限的再现网页的能力。与计算机系统内的其他类型的数据对象(例如用户文档、应用和操作系统二进制文件以及应用配置信息)形成对照的是,浏览器缓存中包含的数据对象典型地被认为是临时的和一次性的。
发明内容
提供这个发明内容部分以便以简化的形式引入概念的选择,这些概念在下面具体实施方式中进一步加以描述。本发明内容部分并不预期识别要求保护的主题的关键因素或基本特征,也不预期用来限制要求保护的主题的范围。
web技术的发展已经导致更加复杂类型的网站,所述网站可以结合在web浏览器内执行的web应用。构成这样的网站和web应用的数据对象经常存储在浏览器缓存中,并且可能希望的是在web服务器不可访问时,例如在web浏览器未连接到网络时或者在web服务器离线时,允许这样的网站的再现以及这样的web应用的执行。这样的数据对象也可以存储在若干类型的浏览器缓存(例如存储浏览器托管的应用的应用资源的应用缓存以及存储从网站取回的数据对象(例如HTML文档和图像)的内容缓存)中。
当代用户经常利用一组计算机(例如便携式计算机、工作站和手机设备),并且这些计算机可以共同地向用户呈现计算环境,例如用户的文档、安装的应用、应用和操作系统配置信息、用户简档、不同个人(例如目录中存储的联系人)的表示等等。而且,可以使这些计算机的特定方面同步以提高跨所有这样的计算机的计算环境的一致性。然而,各计算机可以包含具有浏览器缓存的浏览器,其内容可以不同,因为用户与每个计算机不同地交互。如果浏览器缓存的内容包括扩展的重要数据对象集合,例如离线可用的应用和保存的用户文档,那么这样的web缓存在这样的计算机之中的分歧可能导致特定于计算机的差别,例如不一致的可用应用集合、存储的文档的冲突版本以及媒体库中的差异。
为了降低这样的不一致性和版本冲突,可以使这样的计算机的浏览器缓存同步。在共享计算环境的一组计算机之中,计算机可以被配置成针对改动监视其浏览器缓存的状态,并且依照各种不同的同步策略与其他计算机的浏览器缓存同步。该浏览器缓存同步也可以包含在这样的计算机之中的一般计算环境的同步中,从而提高同步进程的效率并且节省计算资源。此外,可以提供编程接口(programmatic interface)以便例如通过请求不同数据对象的同步并且通过识别关于浏览器缓存的同步策略的信息而允许在web浏览器中执行的应用与浏览器缓存同步交互。通过维持用户利用的不同计算机的浏览器缓存的一致性,这些技术可以促进用户的数据对象和计算环境的一致性。
为了实现前面的和相关的目的,以下描述和附图阐明了特定的说明性方面和实现方式。其表示了其中可以采用一个或多个方面的不同方式中的仅仅一些。当结合附图考虑时,本公开内容的其他方面、优点和新颖特征根据以下详细描述将变得清楚明白。
附图说明
图1为示出涉及一组以具有浏览器缓存的浏览器为特征的计算机的示例性方案的部件框图。
图2为示出涉及一组以具有可同步浏览器缓存的浏览器为特征的计算机的示例性方案的部件框图。
图3为示出被配置成使计算机上的浏览器的浏览器缓存与远程计算机的远程仓库同步的示例性系统的部件框图。
图4为包含被配置成实施本文阐述的一个或多个规定的处理器可执行指令的示例性计算机可读介质的图示。
图5为计算环境主机与不同计算环境再现设备的示例性交互的图示。
图6示出了其中可以实现本文阐述的一个或多个规定的示例性计算环境。
具体实施方式
现在参照附图描述要求保护的主题,在所有附图中,相似的附图标记用来表示相似的元件。在以下描述中,出于解释的目的,阐述了许多特定的细节,以便提供对于要求保护的主题的透彻理解。然而,可能明显的是,可以在没有这些特定细节的情况下实施要求保护的主题。在其他情况下,结构以框图形式示出以便有利于描述要求保护的主题。
在计算领域中,web服务器可以向不同的访问者提供网页的内容。在较早几代网站中,这样的内容典型地仅仅涉及简单类型的数据对象,例如HTML文档、结合到这样的HTML文档中的图形以及客户端JavaScript脚本。这些数据对象被输送到web浏览器,该web浏览器代表用户再现构成网站的网页。
在web浏览器的早期发展中,开发了浏览器缓存,其中在接收到一些或所有这样的数据对象时可以存储这些数据对象以便供以后重新使用,从而通过避免数据对象的冗余下载提高了web浏览器的性能并且节省了服务器上的计算资源的消耗。如果服务器不可访问,例如如果服务器离线或者如果计算机未连接到网络,那么浏览器缓存中存储的数据对象也可以用来再现内容的表示。尽管对这样的数据对象的缓存可以通过降低冗余网络传输而提高了web浏览器的性能,但是这些数据对象被认为是临时的和一次性的。许多浏览器包含作为临时空间节省机制的删除浏览器缓存的内容的选项,因为这些项目经常可能在用户下次访问网站期间再次获得。
当代的网站经常涉及比前几代web发展中更高级类型的内容。特别地,网站可能结合一个或多个应用,其包含可执行二进制文件、数据源和用户数据对象,例如用户生成的文档。这些应用也可以涉及多样的数据对象集合,这些对象可以由web浏览器在呈现该应用时使用并且可以存储在浏览器缓存中。而且,浏览器缓存可以存储可以用来在网站不可访问时(例如当计算机未连接到网络时或者当网站离线时)提供对于网站特定方面的访问的数据对象。鉴于这些扩展的能力,浏览器缓存中存储的数据对象包括用户计算环境的重要部分。当代的浏览器也可以提供不同类型的多个缓存;例如,包含可以在web浏览器中执行的应用的应用资源的数据对象可以存储在浏览器应用缓存中,而从访问的网站取回的诸如HTML文档和嵌入其中的图像之类的数据对象可以存储在浏览器内容缓存中。这两种类型的缓存可以以类似的方式提升web浏览器的性能,但是在特定缓存中存储资源可以提供附加的优点(例如,用户可以能够请求在保留应用缓存的内容的同时清空内容缓存)。
现代计算环境中的另一个趋势涉及用户可以利用的增长的计算机范围。例如,用户经常可以利用个人工作站,笔记本、手掌或者口袋形状因素的便携式计算机,手机,媒体播放器,照相机和游戏控制台。尽管这些计算机可能具有专门用途和方案,但是用户可以将所有这些计算机看作一起构成计算环境。而且,计算环境可以包含大而多样的数据对象(例如媒体对象、文档、应用和操作系统首选项(operating system preferences))集合,并且这些数据对象可以跨所有这样的计算机而被共享。例如,可以自动地同步这些数据对象以便提供更一致的用户体验,使得一个计算机上的计算环境的变化(例如新媒体对象或应用的添加或者文档的改动)可以自动地在整个计算环境中传播。
 图1示出了一个示例性方案(scenario)10,其中用户12可以操作一组共享存储了数据对象集合(例如文档32集合)的计算机,包括工作站14、笔记本计算机28和手机设备30。每个计算机也配备有可以用来再现应用22的浏览器16,该应用包含可以输送到各计算机且存储在与浏览器16关联的浏览器缓存20中的数据对象24集合。数据对象24可以包括例如包含应用22的逻辑和用户界面的应用二进制文件、存储用户12选择的各种不同的设置和首选项的应用配置以及利用应用22创建的各种不同的文档,其可以在浏览器16中作为用户文档26呈现给用户12。附加的数据对象可以存储在计算环境18中,但是存储在浏览器缓存20之外,例如文档32集合。而且,这些计算机的计算环境18可以共享一些或所有数据对象;例如,可以在这些计算机之中共享作为数据对象存储在计算环境18中的文档32以便可在跨其共享计算环境18的所有计算机上访问。
然而,如果这些不同计算机中的每一个包含具有浏览器缓存的浏览器,并且如果这样的浏览器缓存结合了构成用户计算环境的重要部分的数据对象,那么可能出现问题。因为前几代浏览器中的浏览器缓存仅仅存储临时的和一次性的数据对象,所以即使计算环境中的数据对象同步,计算机的浏览器缓存也可能不包含在该同步中。因此,构成用户计算环境的不同计算机的浏览器缓存可以有差异,导致不同计算机上的不同计算环境(例如浏览器缓存中存储的文档的不同版本,或者不同计算机上可用的浏览器存储的应用的不同集合)。如图1的示例性方案10中进一步所示,即使计算环境18中的文档32和其他数据对象在计算机之中自动同步,各浏览器缓存20的内容也可能失去同步。作为第一个实例,包括第一文档(“文档1”)的数据对象24可能以不同版本存在于每个计算机中,这可能在文档在不同的设备上不同的时间更新但不同步的情况下出现。作为第二个实例,数据对象24可能存在于一个浏览器缓存20中,但不存在于另一个浏览器缓存20中;例如,称为“文档3”的数据对象24包含在工作站14的浏览器缓存20中,但是不包含在笔记本计算机28的浏览器缓存20中。作为第三个实例,应用22可以存储于一些计算机中以供离线访问,但不存储于其他计算机中;例如,在该示例性方案10中,“应用”应用20存储于工作站14和笔记本计算机28上以供离线访问,但不存储在手机设备30上。尽管这些差异中的一些可能在用户12选择(例如来自用户12的从手机设备30中排除应用22的指令)时或者基于逻辑原理(例如由于存储空间、性能或硬件限制的原因而无能力利用手机设备30执行应用22)而出现,但是在其他情况下,这些差异可能是不希望的且可避免的,但是仍然可能由于使构成用户12的计算环境的计算机的浏览器缓存20同步的机制不存在而出现。
图2示出了以该技术的实施例为特征的示例性方案40。在图2的示例性方案40中,工作站14、笔记本计算机28和手机设备30可以再次分别包括与被配置成存储例如可能属于应用22的数据对象24的浏览器缓存20耦合的浏览器16。这些计算机也可以共同地构成跨所有这样的计算机共享的包含数据对象(例如文档32)集合的计算环境18,这些数据对象在这样的计算机之中同步以便向用户呈现更一致的计算环境。然而,在该示例性方案40中,所述计算机中的一个或多个也可以包含示例性系统42,该示例性系统被配置成使各计算机的浏览器16的浏览器缓存20与远程计算机的远程仓库同步,例如与另一个计算机的浏览器16的浏览器缓存20同步。该示例性系统42可以包括浏览器缓存监视部件44,该部件可以监视浏览器缓存20,其被配置成检测向浏览器缓存20写入数据对象24,例如创建、编辑或删除缓存的数据对象24。该示例性系统42也可以包括浏览器缓存同步部件46,该部件可以被配置成在浏览器缓存监视部件44检测到所述写入时,使浏览器缓存20与远程仓库(例如另一个计算机的浏览器缓存20)同步。作为第一个实例,手机设备30中实现的浏览器缓存监视部件44可以检测向浏览器缓存20写入“文档1”数据对象24的最近版本,并且可以将数据对象24输送给笔记本计算机28的浏览器缓存20(例如或者通过与浏览器缓存20直接交互、通过向笔记本计算机28的浏览器缓存同步部件46提供数据对象24以便写入到其浏览器缓存20等等)。笔记本计算机28的浏览器缓存监视部件44又可以检测“文档1”数据对象24的写入(代替数据对象24的早期1.1版本),并且浏览器缓存同步部件46可以将更新的数据对象24输送给工作站14的浏览器缓存20。
作为图2中所示的第二个实例,浏览器缓存监视部件44可以检测“文档3”数据对象24的写入及其不存在于笔记本计算机28的浏览器缓存20中,并且依据该检测,工作站14的浏览器缓存同步部件46可以将“文档3”数据对象24输送给笔记本计算机28的浏览器缓存20。作为第三个实例,笔记本计算机28的浏览器缓存监视部件20可以检测包括应用22的应用资源的数据对象24的存储,并且笔记本计算机28的浏览器缓存同步部件46可以在检测到这样的数据对象24不存在于手机设备30的浏览器缓存20中时,将这些数据对象24发送给手机设备30。通过这种方式,可以将不同计算机的浏览器缓存20带入同步,从而向用户呈现一致的计算环境(包括“文档1”数据对象24的当前版本、“文档3”数据对象24的存在以及应用22在所有计算机上的可用性)。
更一般地,且考虑到这些方案,图3呈现了这里讨论的技术的示例性实施例42,作为被配置成使计算机52上的浏览器16的浏览器缓存20与远程计算机54的远程仓库56同步的示例性系统42。该示例性系统42可以包括:浏览器缓存监视部件44,该部件可以被配置成检测将至少一个数据对象24写入浏览器缓存20中;以及浏览器缓存同步部件46,该部件可以被配置成在浏览器缓存监视部件44检测到所述写入时,使浏览器缓存20与远程仓库56同步。示例性系统58可以包含例如指令集合,该指令集合存储在计算机52的存储器58中并且可以在处理器60上执行以便支持浏览器缓存20以及计算机52的计算环境与一组特定用户利用的其他计算机(例如远程计算机54)的同步。
这些技术的另一个实施例涉及计算机可读介质,该介质包含被配置成应用这里给出的技术的处理器可执行指令。图5中示出了可以以这些方式设计的一种示例性计算机可读介质,其中实现方式70包括计算机可读介质72(例如CD-R、DVD-R或者硬盘驱动器盘片),在该介质上编码了计算机可读数据74。该计算机可读数据74又包含被配置成依照这里阐述的原理操作的计算机指令76集合。在一个这样的实施例中,处理器可执行指令76可以被配置成实现这样的系统,该系统被配置成使计算机上的浏览器的浏览器缓存与远程计算机的远程仓库同步,例如图3的示例性系统42。本领域普通技术人员可以设计出被配置成依照这里给出的技术操作的许多这样的计算机可读介质。
这里讨论的技术可以被设计成具有许多方面的变型,并且一些变型可能相对于这些和其他技术的其他变型呈现附加的优点和/或减少缺点。而且,一些变型可以组合地实现,并且一些组合可能通过协同合作而表现出附加的优点和/或减少的缺点。这些变型可以结合到不同的实施例(例如图3的示例性系统42)中以便赋予这样的实施例单独的和/或协同的优点。
可以在这些技术的实施例之中变化的第一方面涉及可以在浏览器缓存20与远程仓库56之间执行的同步类型。使数据对象同步的进程可以具有许多变量,这些变量可以不同地调节以适合不同的方案。作为第一个实例,同步可以由许多事件触发。在一个这样的实施例中,同步可以在浏览器缓存监视部件44检测到将数据对象24写入到浏览器缓存20之后即时地触发。尽管即时同步可以提供浏览器缓存20与远程仓库56之间的高程度的同步,但是该触发可能例如因每次写入时建立计算机52与远程计算机54之间的连接和/或因在短时间帧内为在短时间帧内更新若干次的数据对象24建立一系列连接和数据传输而为低效的。在另一个这样的实施例中,可以在浏览器监视部件44检测到写入时,但是在满足特定阈值之后,例如在定义的阈值时段过去而没有进一步写入到浏览器缓存20之后和/或在定义的阈值量的数据写入到浏览器缓存20之后,触发同步。可替换地或者此外,可以由远程计算机54触发同步;例如,远程计算机54可以发送使浏览器缓存20与远程仓库56同步的通知给计算机52,并且浏览器缓存同步部件46可以被配置成在接收到来自远程计算机54的通知时执行该同步。这种类型的配置在具有对等关系的计算机,例如其中可以改动任一个计算机52的浏览器缓存20的两个计算机之间可能是有利的。作为另一个实例,可以周期性地,例如在每周的基础上在预定的时间,或者在自最近的同步以来过去特定时间量之后触发同步。作为又一个可替换方案,可以基于其他因素例如在检测到处理器60空闲阈值时间段时或者在检测到网络带宽的可用性时触发同步。
作为这个第一方面的第二变型,同步可以以许多方式出现。作为第一个实例,计算机20可以简单地向远程计算机54输送在计算机20上变化的任何数据对象24而不检查远程仓库56的内容。该配置可能例如在远程计算机54包括仅接收来自计算机52的更新的档案服务器的情况下是合适的。作为第二个实例,浏览器缓存同步部件46可以查询远程计算机54的远程仓库56的内容,并且可以比较各数据对象24以确定远程仓库56中丢失或过时的且应当更新的数据对象24。可替换地,浏览器缓存同步部件46可以将浏览器缓存20的内容列表输送给远程计算机54以便与远程仓库56的内容进行比较,并且可以从远程计算机54接收要执行的操作列表以便使浏览器缓存20和远程仓库56同步。在任一实施例中,该比较可以考虑许多因素,例如数据对象24的修改日期、数据对象24的大小或类型、归因于不同数据对象24的版本标识符和/或代表数据对象24的内容的哈希码(hash code)。浏览器缓存同步部件46于是可以将要输送的数据对象24发送给远程计算机54以便使浏览器缓存20和远程仓库56同步。可替换地或者此外,浏览器缓存同步部件46也可以请求远程计算机54上新存储的或较近更新的数据对象24,并且可以在浏览器缓存20中接收到这样的数据对象24时存储这些数据对象。可替换地或者此外,如果发现数据对象24在浏览器缓存24和远程仓库56中均改变,那么浏览器缓存同步部件46和/或远程计算机54可以确定是否将数据对象24的表示之一选作权威性的并且可以代替非权威性的表示。可替换地,可能的是合并数据对象24的表示以产生包含所有这样的改变的混合数据对象24,并且利用混合数据对象24代替所述两种情况。
说明一些可变同步复杂性的该第二变型的一个特征涉及在远程仓库56中发现浏览器缓存20中不存在的数据对象。这样的数据对象24在自从上次同步以来新存储在远程仓库56中的情况下可能存在,或者在这样的数据对象24从浏览器缓存20中移除的情况下可能存在。在一个这样的实施例中,如果浏览器缓存同步部件46在远程仓库56中检测到浏览器缓存20中不存在的数据对象24,那么它可以请求远程计算机54从远程仓库56中移除数据对象24(从而假定从浏览器缓存20中移除)。相反地,浏览器缓存同步部件46可以被配置成从远程仓库56接收从浏览器缓存20移除已经从远程仓库56移除的数据对象24的请求,并且可以相应地动作以维持同步。可替换地或者此外,浏览器缓存监视部件44可以尽力检测浏览器缓存20中至少一个移除的数据对象24的移除,并且浏览器缓存同步部件46于是可以请求远程计算机54从远程仓库56中移除数据对象24(从而假定新添加到远程仓库56)。在又一个实施例中,浏览器缓存监视部件被配置成检测从浏览器缓存20中移除至少一个移除的数据对象24,并且可以请求从远程仓库56中移除这样的移除的数据对象24。其后在远程仓库56中识别的任何数据对象24都可以假定最近已被添加到远程仓库56。在又一个实施例中,浏览器缓存20和/或远程仓库56可以维持对各数据对象仓库进行修改的日志,并且可以检查或比较这样的日志以便确定精确的同步操作。
作为该第一方面的第三变型,这些技术可以选择性地应用于web浏览器提供的特定数据缓存。由于web浏览器接收的数据对象可能在不同的上下文中是有用的(例如属于应用的应用资源以及在网页的再现中使用的内容型数据对象,例如HTML文档、样式表和嵌入的媒体对象),因而web浏览器可以在不同的缓存(例如被配置成存储应用资源的应用缓存以及被配置成存储内容型数据对象的内容缓存)中存储这样的数据对象。本文涉及的同步技术可以以各种不同的方式应用到这样的缓存的内容。作为第一个实例,同步可以均匀地应用到所有这样的缓存中的所有数据对象。作为第二个实例,同步可以仅仅适用于这样的特定缓存,这些缓存被配置成存储更重要值的数据对象(例如应用缓存)以及忽略被配置成存储不那么有用的数据对象的数据缓存的内容。作为第三个实例,同步可以不同地应用到这样的缓存;例如,应用缓存可以完全地且在频繁的基础上同步,而内容缓存可以仅仅关于其中存储的数据对象的部分(例如最近时间帧中获取或访问的数据对象)而同步,并且可以在不那么严格的时间表上同步。
该第一方面的附加变型可能涉及更复杂的同步形式。作为第一个实例,浏览器缓存同步部件46和/或远程仓库56可以被配置成仅仅使数据对象24的部分同步,例如使与至少一个同步数据对象准则匹配的数据对象24子集同步。例如,浏览器缓存同步部件46可以被配置成仅仅使包含用户数据文件的数据对象24和/或仅仅使包含应用二进制文件的数据对象24和/或仅仅使属于特定用户或应用的数据对象24和/或仅仅使不超过特定数据大小的数据对象24同步。因此,浏览器缓存同步部件46可以忽略同步期间浏览器缓存20中存储的其他数据对象24。作为第二个实例,可以设计这样的同步策略,该同步策略描述同步的各个不同方面,例如同步触发策略(例如同步可以开始的情况集合)、同步类型策略(例如单向同步与双向同步)、数据对象比较策略(例如按照其比较数据对象的两种表示以检测差别的准则)、数据对象类型合并策略(例如可以合并的数据对象24的类型以及用于这样做的逻辑)和/或数据对象冲突解决策略(例如按照其解决数据对象24的不同表示的逻辑)。可能有利的是,定义描述各种各样的同步形式的若干同步策略(例如不经常的同步期间应用的第一同步策略以及频繁增量同步期间应用的第二同步策略)。而且,同步策略可以由计算机52或者由远程计算机54根据其间的关系而定义。本领域普通技术人员可以设计用于在实现本文所讨论的技术的同时发起和执行浏览器缓存20和远程计算机54的同步的许多技术。
可以在这些技术的实施例之中变化的第二方面涉及实现方式的架构。作为第一个实例,浏览器缓存监视部件44和浏览器缓存同步部件46可以在计算机52内以各种不同的方式执行。在第一这样的实施例中,浏览器缓存监视部件44可以被配置成在计算机52上在浏览器16内例如作为浏览器16的部分或者其中安装的插件而执行。该实现方式在浏览器缓存监视部件44主要承担监视浏览器缓存20的变化的任务以便触发浏览器缓存监视部件46的同步的情况下可能是有帮助的,因为这样的变化很可能仅在浏览器16执行时才出现。相比之下以及可替换地或者此外,浏览器缓存同步部件46可以被配置成在计算机52上作为浏览器16之外的进程而执行,例如作为计算机52的后台服务而执行。这可能是有利的,因为同步可能例如通过使改变的数据对象24同步而不干扰网页的再现和浏览器16执行应用20并且通过允许浏览器缓存20与远程仓库56的同步在这样的应用20不执行时以及甚至在浏览器16不执行的情况下发生而与浏览器16独立地发生。例如,当计算机52连接到网络时,但是当用户12不在使用浏览器16时(例如当计算机52空闲时),浏览器缓存同步部件46可以从远程仓库56中取回一些更新的数据对象24并且将它们存储在浏览器缓存20中,并且即使计算机52处于离线状态下,当用户12请求使用这些数据对象24(例如调用结合了这样的web对象24的应用22)时,这样的对象可以在浏览器16中使用。
作为该第二方面的第二个实例,这些技术的实施例的架构可以在实现这里描述的特征的同时说明计算机54内的其他进程的动作。例如,可能有利的是将浏览器缓存同步部件46实现为在浏览器16之外执行的进程,但是该独立性可以允许这两个进程的竞争性干扰。作为第一个实例,浏览器缓存同步部件46可能试图代替浏览器16使用的数据对象24,从而造成数据侵犯错误。作为第二个实例,浏览器缓存同步部件46和浏览器16中的每一个可以更新数据对象24,并且如果不使用对象同步构造,那么可能出现竞争状况,导致数据丢失和潜在的逻辑问题。为了避免这样的问题并且改进这些技术的实现方式,浏览器缓存监视部件44和/或浏览器缓存同步部件46可以考虑其他进程的动作。作为第一个实例,浏览器缓存同步部件46可以在使数据对象24与远程仓库56同步之前请求数据对象24的访问锁(例如信号量或互斥),并且可以在完成数据对象24的同步时释放数据对象24的锁。可替换地或者此外,浏览器缓存监视部件44可以被配置成在检测到浏览器缓存同步部件46对浏览器16使用的数据对象24的更新时通知浏览器16更新的数据对象24的可用性,并且浏览器可以在浏览器16的操作中的方便时刻(例如在数据对象24未被积极使用时)重新加载更新的数据对象24。
作为该第二方面的第三个实例,浏览器缓存同步部件46执行的同步可以包含在计算环境18与远程仓库56的更广泛的同步中。在第一个这样的实现方式中,两个计算机可以共享存储在浏览器缓存20之内以及存储在浏览器缓存20之外但是存储在计算环境18之内的数据对象24(例如计算机52的文件系统中存储的文件、操作系统存储的用户简档以及数据库中存储的记录)。同步进程可以被设计成在单个同步期间使许多数据对象系统中存储和访问的大而多样的数据对象24集合(包括浏览器缓存20中存储的数据对象24)同步。这可能是有帮助的,例如用于允许用户12规定应用到所有数据对象24的单个同步策略而不管这样的数据对象24如何被存储,以及用于代替实现独立地(以及可能冲突地)使不同数据对象24集合同步的多个同步部件,而允许一个部件执行这样的数据对象24的同步。
在一个这样的实施例中,计算环境18可以代表可部署的计算环境,并且远程计算机54可以包括计算环境主机。为了降低构成当代计算环境的对象的复杂多样性和分散化,可以设计计算环境的可部署表示,其中将构成计算环境的对象组织成数据对象层次,其可以由计算环境主机托管。该计算环境主机可以被配置成存储包括用户12的计算环境18的整个计算机集合的表示;在这样的计算机之中协调计算环境18的同步;存储计算环境18的权威表示(例如携带解决版本冲突的优先级的数据对象24的特定表示);和/或管理计算环境18或者其部分到特定计算机52(例如新添加的计算机)的部署。(可以理解的是,该方案中的远程仓库56可能不一定与计算环境主机82上的浏览器缓存相应,该计算环境主机82可以包括这样的文件服务器,该文件服务器甚至不包含浏览器,而是改为例如代表被分配来存储可部署计算环境84的计算环境主机82的文件系统的部分。)可以将数据对象层次输送给不同的设备以表示相同的计算环境(包括相同的用户简档、应用、数据文件等等),并且每个设备可以基于设备的能力以一致但是定制的方式再现计算环境(例如用于从附接到工作站的键盘设备接收数据条目的硬键盘接口以及用于从手机设备接收数据条目的触摸屏软件键盘接口)。因此,可部署的计算环境的用户可以以平台和设备独立的方式与可部署的计算环境交互,同时也实现相对于可替换的访问技术的至少一些优点,例如同步或异步调用、标准操作的批处理以及移动代理。而且,如果构成计算环境18的数据对象24在可部署计算环境内以均匀的方式表示且以一致的方式管理(而不管通过其访问这样的数据对象24的特定数据对象系统如何),那么可以设计一组服务以应用到计算环境的所有数据对象。然而,本领域普通技术人员可以设计其中可以应用这里讨论的技术的许多这样的方案。
图5示出了一种这样的方案80,其中计算环境可以由计算环境主机82托管,该计算环境主机可以存储和管理可部署计算环境84。计算环境主机82也可以代表诸如手机设备86、个人笔记本计算机90和公共工作站94之类的不同设备以及也代表具有不同访问特权的不同类型的用户以不同的方式再现可部署计算环境84。因此,计算环境的再现反映了跨暴露相同的应用、用户简档、壳配置(shell configuration)、用户数据对象等等的所有设备的一致计算环境。因此,用户可以通过高性能笔记本计算机访问计算环境的全功能版本92、在低功率手机设备86上访问计算环境的精简版本88以及通过公共终端94的web浏览器86访问计算环境的浏览器兼容且面向隐私的版本98。在每个这样的设备的能力支持计算环境的再现的程度上,由于根据每个设备的能力调节的可部署计算环境84的再现而可以呈现一致的用户界面和数据集合。可以将计算环境的更新向后传播到计算环境主机82,并且可以自动地使其与其他设备同步。不同的设备也可以通过与其他设备共享本地存储的数据并且通过控制其他设备或者由其他设备控制而协作。因此,计算环境可以因而设计和呈现为云计算架构,包括表达为跨形成相同计算环境的协作门户(portal)(具有特定于设备的属性)网格的所有设备(“客户端”)的一致再现的设备独立表示(“云”)。特别是关于计算环境的应用,可部署计算环境84可以包括应用集合、应用资源和由此创建的数据对象的表示。而且,计算环境主机82可以将服务应用于构成数据对象层次32的不同对象,并且数据对象以其存储于可部署计算环境84中的通用格式可以有利于服务的一致可用性和应用,而不管向其应用的数据对象的性质如何。
关于该第二方面,如果计算机52以代表计算环境主机82管理的可部署计算环境84的计算环境18为特征,那么这里讨论的技术可以以与其相关的特定优点实现。作为第一个实例,如果计算环境主机82用作远程计算机54,那么可能有利的是将浏览器缓存20表示为计算环境18的一部分。而且,如果远程仓库56包括计算环境主机82管理的可部署计算环境84的表示,那么可以一起执行包括浏览器缓存20的整个计算环境18的同步。例如,可以设计这样的计算环境部件,其管理计算机52的大的数据对象24集合与计算环境主机82的同步,包括存储在浏览器缓存20之内的数据对象24以及存储在其他数据对象系统中且可通过其他数据对象系统访问的数据对象24,例如文件系统中的文件、系统注册表中存储的配置信息和操作系统存储的用户简档。同步于是可以在浏览器缓存20的内容以及计算环境18的其余部分上均匀地执行,并且其他服务(例如认证服务和压缩服务)可以被设计且均匀地应用到所有这样的数据对象24。再次,可能希望的是作为单个同步进程和/或在单个部件中执行所有这样的对象24的同步,所述单个部件例如使可部署计算环境84的所有数据对象24与计算环境主机82同步的计算环境部件。而且,计算环境主机82也可以处理将这样的数据对象输送给共享计算环境的其他计算机,使得每个计算机54可以主要与计算环境主机82通信,但是仍然可以接收在其他计算机54上最初创建或最近更新的数据对象24。
作为该第二方面的第四个实例,浏览器缓存监视部件44和/或浏览器缓存同步部件46可以以同步编程接口为特征,该同步编程接口可以允许在浏览器16之内执行的应用22与浏览器缓存20中的数据对象24的同步交互。作为第一个实例,同步编程接口可以允许应用22识别同步的细节,例如数据对象24的上次同步的日期以及数据对象24的来源。在一个这样的实施例中,同步编程接口可以包括被配置成公开同步的至少一个同步策略的至少一个属性的至少一个同步策略公开操作以及被配置成设置至少一个同步策略的至少一个属性的至少一个同步策略设置操作。例如,应用主机可以供应应用,其按固定时间表更新特定应用资源,例如每个星期日午夜供应新的防病毒定义数据库的防病毒软件供应商。应用主机因而可以将应用22配置成经由同步编程接口指示浏览器缓存同步部件46在预定时间更新包括该应用资源的数据对象24。应用22也可以使用同步编程接口以识别数据对象24的上次这样的同步的日期和时间(例如以便在病毒定义数据库过期的情况下通知用户12),和/或限制数据对象24仅仅与应用主机识别的受信任来源同步(例如,使得病毒定义数据库仅可以直接从防病毒软件供应商处获取)。可替换地或者此外,浏览器缓存同步部件46可以暴露同步编程接口,该同步编程接口被配置成调用浏览器缓存同步部件46以便使浏览器缓存20(或者其部分)与远程仓库54同步。例如,可以允许应用22调用由浏览器缓存同步部件46通过同步编程接口的操作对特定数据对象24的同步(例如,如果防病毒应用的用户请求即时更新病毒定义数据库)。
此外,同步编程接口可以以熟悉而良好确立的方式实现,其可以允许应用方便地且没有显著的重新设计地利用接口。例如,被设计成支持在web浏览器16中执行的应用22的web浏览器插件可以暴露基于JavaScript的同步编程接口,例如作为可以在JavaScript中调用以便在浏览器缓存20中读写不同数据对象24的操作集合。可替换地或者此外,同步编程接口可以支持更高级的语言,例如诸如Java和C#之类的面向对象的语言;可以暴露计算环境的更复杂的细节,例如同步服务的调度、本地缓存的新鲜度和策略以及包括计算环境的计算机的关系(例如,所述计算机用作特定数据对象的权威表示的主机);和/或可以包括允许更强大的编程访问的更复杂的编程构造(例如可以通知应用诸如特定数据对象的同步之类的计算环境事件的事件订阅和数据馈送)。通过这种方式,编程接口可以以复杂的方式暴露计算环境的宽泛的各种各样的方面,同时遵守可以由开发者容易地采用而不必利用不同编程技术重新设计或重写其大部分的熟悉的编程模型。本领域普通技术人员可以在实现这里讨论的技术时设计出许多架构及其特征。
可以在这些技术的实施例之中变化的第三方面涉及可以包含在其不同实现方式中的特定于数据对象的特征。作为第一个实例,应用22请求存储于浏览器缓存20中的数据对象24可以具有一个或多个不寻常的属性,例如大的数据对象或者许多关联的数据对象的集合。一些浏览器缓存20可能不能够适应这样的缓存。例如,浏览器缓存20可以对特定数据对象施加大小限制,并且特定数据对象24可能太大而不能存储于浏览器缓存20中(例如,可以提供用于应用22离线访问的大数据库)。相反地,浏览器16可以被配置成将这样的数据对象24存储在浏览器缓存20之外和计算环境18中,例如文件系统中的文件,并且在浏览器缓存20中存储对存储于浏览器缓存20之外的数据对象24的引用。而且,浏览器缓存监视部件44可以被配置成监视存储于浏览器缓存20之外的数据对象24的更新,连同监视存储在浏览器缓存20之内的数据对象24的更新;和/或浏览器缓存同步部件46可以被配置成使存储于浏览器缓存20之外的这样的数据对象24连同存储在浏览器缓存20之内的数据对象24同步。
作为该第三方面的第二个实例,存储在浏览器缓存20中的数据对象24可以包括被配置成在浏览器16之内执行的应用22的应用资源。浏览器缓存监视部件44和/或浏览器缓存同步部件46可以被配置成以特定的方式处理这样的数据对象24。在第一个这样的方案中,数据对象24可以包括应用安装包,该安装包可以被调用以便在浏览器16之内安装应用22。浏览器缓存同步部件46因此可以被配置成在接收到来自远程计算机54的数据对象24时调用应用安装包以安装应用22。作为第二个实例,数据对象24与之关联的应用22可以与应用主机关联,并且可以被配置成在诸如连接的上下文或者断开的上下文之类的应用主机连接上下文中执行。在一个这样的方案中,数据对象24可以包括离线应用资源,并且应用22可以被配置成当应用22在断开的上下文中执行时使用离线应用资源。本领域普通技术人员可以在实现这里讨论的技术时设计出用于针对特定类型的数据对象24配置浏览器缓存监视部件44和/或浏览器缓存同步部件46的许多技术。
尽管以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是,所附权利要求中限定的主题不一定限于上面描述的特定特征或动作。相反地,上面描述的特定特征和动作被公开为实施权利要求的实例形式。
当在本申请中使用时,术语“部件”、“模块”、“系统”、“接口”等等通常意在表示计算机相关的实体,其为硬件、硬件和软件的组合、软件或者执行中的软件。例如,部件可以是但不限于处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。举例而言,运行于控制器上的应用以及该控制器可以是部件。一个或多个部件可以驻留于进程和/或执行线程中并且部件可以本地化于一个计算机上和/或分布在两个或更多计算机之间。
此外,要求保护的主题可以实现为使用标准编程和/或工程技术以产生软件、固件、硬件或者其任意组合以便控制计算机实施所公开的主题的方法、装置或者制品。在本文中使用的术语“制品”意在涵盖可从任何计算机可读设备、载体或介质中访问的计算机程序。当然,本领域技术人员应当认识到,在不脱离要求保护的主题的范围或精神的情况下可以对该配置做出许多修改。
[0043] 图6和下面的讨论提供了实现本文阐述的一个或多个规定的实施例的适当计算环境的简要一般描述。图6的操作环境是适当操作环境的仅仅一个实例,并且并不意在暗示关于操作环境的使用或功能的范围的任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(例如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费电子器件、微型计算机、大型计算机、包括任何上面的系统或设备的分布式计算环境等等。
尽管不是所要求的,在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述了若干实施例。计算机可读指令可以经由计算机可读介质分布(在下文中讨论)。计算机可读指令可以实现为执行特定任务或者实现特定抽象数据类型的程序模块,例如函数、对象、应用编程接口(API)、数据结构等等。典型地,计算机可读指令的功能可以根据需要被组合或分布于不同的环境中。
图6示出了包括被配置成实施本文提供的一个或多个实施例的计算设备102的系统100的实例。在一个配置中,计算设备102包括至少一个处理单元106和存储器108。取决于计算设备的确切配置和类型,存储器108可以是易失性的(诸如例如RAM)、非易失性的(诸如例如ROM、闪存等等)或者这二者的某种组合。该配置通过虚线104示于图6中。
在其他实施例中,设备102可以包括附加的特征和/或功能。例如,设备102也可以包括附加的存储装置(例如可移除的和/或不可移除的),包括但不限于磁性存储装置、光学存储装置等等。这样的附加存储装置在图6中由存储装置110示出。在一个实施例中,实施本文提供的一个或多个实施例的计算机可读指令可以处于存储装置110中。存储装置110也可以存储实施操作系统、应用程序等等的其他计算机可读指令。计算机可读指令也可以加载在存储器108中以供例如处理单元106执行。
本文中使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以任何方法或技术实现的易失性的和非易失性的、可移除的和不可移除的介质,用于存储诸如计算机可读指令或其他数据之类的信息。存储器108和存储装置110是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备或者可以用来存储希望的信息且可以由设备102访问的任何其他介质。任何这样的计算机存储介质可以是设备102的一部分。
设备102也可以包括允许设备102与其他设备通信的通信连接(一个或多个)116。通信连接(一个或多个)116可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或者用于将计算设备102连接到其他计算设备的其他接口。通信连接(一个或多个)116可以包括有线连接或者无线连接。通信连接(一个或多个)116可以发送和/或接收通信媒体。
[0049] 术语“计算机可读介质”可以包括通信介质。通信介质典型地在诸如载波或其他传输机制之类的“调制数据信号”中含有计算机可读指令或其他数据,并且包括任何信息输送介质。术语“调制数据信号”可以包括这样的信号,该信号具有其以这样的方式设置或改变以便在该信号中编码信息的一个或多个特性。
设备102可以包括输入设备(一个或多个)114,例如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其他输入设备。诸如一个或多个显示器、扬声器、打印机和/或任何其他输出设备之类的输出设备(一个或多个)112也可以包含在设备102中。输入设备(一个或多个)114和输出设备(一个或多个)112可以经由有线连接、无线连接或者其任意组合连接到设备102。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以用作用于计算设备102的输入设备(一个或多个)114或输出设备(一个或多个)112。
计算设备102的部件可以通过诸如总线之类的不同互连连接。这样的互连可以包括外围部件互连(PCI)(例如PCI Express)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一个实施例中,计算设备102的部件可以由网络互连。例如,存储器108可以由位于不同物理位置的通过网络互连的多个物理存储单元组成。
本领域技术人员应当认识到,用来存储计算机可读指令的存储设备可以跨网络分布。例如,可经由网络118访问的计算设备120可以存储执行本文提供的一个或多个实施例的计算机可读指令。计算设备102可以访问计算设备120并且下载一部分或所有计算机可读指令以便执行。可替换地,计算设备102可以根据需要下载计算机可读指令的片段,或者一些指令可以在计算设备102处执行并且一些指令可以在计算设备120处执行。
本文提供了实施例的不同操作。在一个实施例中,所描述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,这些指令在由计算设备执行的情况下将使得计算设备执行所描述的操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作一定是顺序相关的。受益于本说明书的本领域技术人员应当理解可替换的排序。此外,应当理解的是,不是所有的操作一定存在于本文提供的每个实施例中。
而且,措词“示例性”在本文中用来表示用作示例、实例或例证。本文中描述为“示例性”的任何方面或设计不一定要解释为相对于其他方面或设计是有利的。相反地,措词示例性的使用意在以具体的方式给出若干概念。当在本申请中使用时,措词“或者”意在表示包容性“或者”而不是排他性“或者”。换言之,除非另有说明或者根据上下文显然可见,“X采用A或者B”意在表示任何自然的包容性置换。换言之,如果X采用A;X采用B;或者X采用A和B二者,那么在前面任何情况下都满足“X采用A或者B”。此外,本申请和所附权利要求书中使用的冠词“一”一般可以解释为表示“一个或多个”,除非另有规定或者根据上下文可知指的是单数形式。
此外,尽管针对一个或多个实现方式示出和描述了本公开内容,但是本领域技术人员基于本说明书和附图的阅读和理解应当想到等效的变动和修改。本公开内容包括所有这样的修改和变动并且仅由以下权利要求书的范围限制。特别是考虑到上面描述的部件(例如元件、资源等等)执行的不同功能,除非另有说明,用来描述这样的部件的术语意在与执行所描述的部件的规定功能的任何部件相应(例如即功能上等效),即使结构上不等效于执行本文示出的本公开内容的示例性实现方式中的功能的公开结构。此外,尽管可能仅仅针对若干实现方式之一公开了本公开内容的特定特征,但是这样的特征可以与可能对于任何给定或特定应用而言是所需的和有利的其他实现方式的一个或多个其他特征相组合。此外,就措词“包含”、“拥有”、“具有”、“带有”及其变体用在详细说明书或权利要求书中而言,这样的措词预期以类似于措词“包括”的方式而是包容性的。

Claims (1)

1.一种被配置成使具有可部署计算环境(84)的计算机(52)上的浏览器(16)的浏览器缓存(20)与包括被配置成管理计算环境(84)的计算环境主机(82)的远程计算机(54)的远程仓库(56)同步的系统(42),该系统(42)包括:
浏览器缓存监视部件(44),其被配置成在计算机(52)上在浏览器(16)之内执行并且检测将至少一个数据对象(24)写入浏览器缓存(20)中,包括浏览器缓存(20)中至少一个移除的数据对象(24)的移除,以及
浏览器缓存同步部件(46),其被配置成在计算机(52)上作为浏览器(16)之外的进程而执行,并且被配置成:
当浏览器缓存监视部件(44)检测到所述写入时,依照至少一个同步策略使与至少一个同步数据对象准则匹配的浏览器缓存(20)中的数据对象(24)与远程仓库(56)同步,并且
当接收到来自远程计算机(54)的使浏览器缓存(20)与远程仓库(56)同步的通知时,依照远程计算机(54)定义的至少一个同步策略使与至少一个同步数据对象准则匹配的浏览器缓存(20)中的数据对象(24)与远程仓库(56)同步;以及
向应用(22)暴露同步编程接口,该同步编程接口包括:
被配置成公开至少一个同步策略的至少一个属性的至少一个同步策略公开操作;
被配置成设置至少一个同步策略的至少一个属性的至少一个同步策略设置操作;以及
被配置成调用浏览器缓存同步部件(46)以使浏览器缓存(20)与远程仓库(56)同步的同步调用操作。
CN2010800112929A 2009-03-11 2010-02-19 浏览器缓存与远程仓库同步的方法和系统 Active CN102349062B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/402,366 US8812451B2 (en) 2009-03-11 2009-03-11 Programming model for synchronizing browser caches across devices and web services
US12/402366 2009-03-11
US12/402,366 2009-03-11
PCT/US2010/024669 WO2010104659A2 (en) 2009-03-11 2010-02-19 Programming model for synchronizing browser caches across devices and web services

Publications (2)

Publication Number Publication Date
CN102349062A CN102349062A (zh) 2012-02-08
CN102349062B true CN102349062B (zh) 2013-10-30

Family

ID=42729006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800112929A Active CN102349062B (zh) 2009-03-11 2010-02-19 浏览器缓存与远程仓库同步的方法和系统

Country Status (9)

Country Link
US (2) US8812451B2 (zh)
EP (1) EP2406725A2 (zh)
JP (1) JP2012520504A (zh)
KR (1) KR101644666B1 (zh)
CN (1) CN102349062B (zh)
BR (1) BRPI1008362A2 (zh)
RU (1) RU2011137392A (zh)
TW (1) TW201033832A (zh)
WO (1) WO2010104659A2 (zh)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US8812451B2 (en) * 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
US9762701B1 (en) * 2009-04-10 2017-09-12 Open Invention Network Llc System and method for cached streaming application isolation
US9577893B1 (en) * 2009-04-10 2017-02-21 Open Invention Network Llc System and method for cached streaming application isolation
JP4792100B2 (ja) * 2009-06-29 2011-10-12 株式会社東芝 ファイル共有システム
US8495250B2 (en) 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US8473582B2 (en) * 2009-12-16 2013-06-25 International Business Machines Corporation Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system
US9158788B2 (en) 2009-12-16 2015-10-13 International Business Machines Corporation Scalable caching of remote file data in a cluster file system
US8458239B2 (en) * 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US9111006B2 (en) * 2010-03-16 2015-08-18 Salesforce.Com, Inc. System, method and computer program product for communicating data between a database and a cache
US8386423B2 (en) * 2010-05-28 2013-02-26 Microsoft Corporation Scalable policy-based database synchronization of scopes
US8555155B2 (en) * 2010-06-04 2013-10-08 Apple Inc. Reader mode presentation of web content
US8935666B2 (en) * 2010-06-30 2015-01-13 Gordon G. MILLER, III Systems and methods for dynamic mobile applications
US20150195340A1 (en) * 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US8713098B1 (en) * 2010-10-01 2014-04-29 Google Inc. Method and system for migrating object update messages through synchronous data propagation
US9165285B2 (en) 2010-12-08 2015-10-20 Microsoft Technology Licensing, Llc Shared attachments
US20120174212A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Connected account provider for multiple personal computers
TWI468951B (zh) * 2011-01-06 2015-01-11 Tencent Tech Shenzhen Co Ltd A method and device for implementing subscription information from a web page
US9740587B2 (en) 2011-01-28 2017-08-22 Hewlett-Packard Development Company, L.P. Distributing power usage data for low-level components of a computing device to subscribing programs
US11308449B2 (en) * 2011-04-28 2022-04-19 Microsoft Technology Licensing, Llc Storing metadata inside file to reference shared version of file
US10552799B2 (en) 2011-04-28 2020-02-04 Microsoft Technology Licensing, Llc Upload of attachment and insertion of link into electronic messages
US8682989B2 (en) 2011-04-28 2014-03-25 Microsoft Corporation Making document changes by replying to electronic messages
US9137185B2 (en) 2011-04-28 2015-09-15 Microsoft Technology Licensing, Llc Uploading attachment to shared location and replacing with a link
US10185932B2 (en) 2011-05-06 2019-01-22 Microsoft Technology Licensing, Llc Setting permissions for links forwarded in electronic messages
US8977947B2 (en) * 2011-06-03 2015-03-10 Apple Inc. Method for presenting documents using a reading list panel
US8850516B1 (en) 2011-06-22 2014-09-30 Emc Corporation Virtual private cloud that provides enterprise grade functionality and compliance
US9417759B1 (en) * 2011-06-27 2016-08-16 Google Inc. Synchronizing data across multiple browser tabs or windows
KR20130028375A (ko) * 2011-09-09 2013-03-19 주식회사 팬택 Html5 기반의 웹브라우저 작업 환경 동기화 모바일 장치 및 그 방법
US9152732B2 (en) * 2011-11-02 2015-10-06 Microsoft Technology Licensing, Llc. Browser cache assist for accessing web-based content
US8225191B1 (en) * 2011-11-07 2012-07-17 Google Inc. Synchronizing web browsers
US9661073B2 (en) * 2011-11-18 2017-05-23 Google Inc. Web browser synchronization with multiple simultaneous profiles
CN102523285B (zh) * 2011-12-15 2014-04-02 杭州电子科技大学 一种基于对象分布式文件系统的存储缓存方法
KR101672349B1 (ko) * 2011-12-27 2016-11-07 한국전자통신연구원 파일 클라우드 서비스 장치 및 방법
US20140108091A1 (en) * 2012-04-19 2014-04-17 FullCircle CRM Method and System for Attributing Metrics in a CRM System
US9122766B2 (en) * 2012-09-06 2015-09-01 Microsoft Technology Licensing, Llc Replacement time based caching for providing server-hosted content
US20140115032A1 (en) 2012-10-23 2014-04-24 General Instrument Corporation Preserving a consumption context for a user session
US9781192B2 (en) 2013-01-25 2017-10-03 Qualcomm Incorporated Device management service
JP5709913B2 (ja) * 2013-02-13 2015-04-30 三菱電機株式会社 時空管理装置及び時空管理プログラム
KR102015108B1 (ko) 2013-03-12 2019-10-22 한국전자통신연구원 이종 서비스 간 서비스 제공 방법과 사용자 단말 및 웹 서버
US9535681B2 (en) 2013-03-15 2017-01-03 Qualcomm Incorporated Validating availability of firmware updates for client devices
US20150058834A1 (en) * 2013-03-15 2015-02-26 Innopath Software, Inc. Distributing software for updating of client devices
US9189533B2 (en) * 2013-05-29 2015-11-17 Microsoft Technology Licensing, Llc Sync framework extensibility
US20140359488A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Centralized Management of Link Data for Multiple Applications, Computers and Resources, through Operating Systems and Networked Storage Services
US10229181B2 (en) * 2013-07-16 2019-03-12 Pankaj Sharma System and method for synchronizing data between communication devices in a networked environment without a central server
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
US20150067089A1 (en) * 2013-09-05 2015-03-05 Hintroapps Limited Metadata driven declarative client-side session management and differential server side data submission
JP6292810B2 (ja) * 2013-10-02 2018-03-14 キヤノン株式会社 データ同期方法、データ同期装置およびプログラム
US9367597B2 (en) * 2013-11-18 2016-06-14 International Business Machines Corporation Automatically managing mapping and transform rules when synchronizing systems
US10402744B2 (en) 2013-11-18 2019-09-03 International Busniess Machines Corporation Automatically self-learning bidirectional synchronization of a source system and a target system
US9542467B2 (en) 2013-11-18 2017-01-10 International Business Machines Corporation Efficiently firing mapping and transform rules during bidirectional synchronization
US9959255B2 (en) 2014-01-31 2018-05-01 Yahoo Holdings, Inc. Dynamic streaming content provided by server and client-side tracking application
US9779069B2 (en) 2014-01-31 2017-10-03 Yahoo Holdings, Inc. Model traversing based compressed serialization of user interaction data and communication from a client-side application
US9680897B2 (en) * 2014-01-31 2017-06-13 Yahoo! Inc. Throttled scanning for optimized compression of network communicated data
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US10432748B2 (en) * 2014-07-16 2019-10-01 Tensera Networks Ltd. Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
RU2608668C2 (ru) * 2014-07-30 2017-01-23 Общество С Ограниченной Ответственностью "Яндекс" Система и способ управления и организации кэша веб-браузера для обеспечения автономного просмотра
CN106575233B (zh) * 2014-08-27 2020-12-11 惠普发展公司,有限责任合伙企业 便携式储存设备
US9792266B1 (en) * 2014-12-08 2017-10-17 Amazon Technologies, Inc. Content synchronization across devices
US20180107535A1 (en) * 2014-12-31 2018-04-19 International Business Machines Corporation Vault redundancy reduction within a dispersed storage network
US10656866B2 (en) * 2014-12-31 2020-05-19 Pure Storage, Inc. Unidirectional vault synchronization to support tiering
US10126974B2 (en) * 2014-12-31 2018-11-13 International Business Machines Corporation Redistributing encoded data slices in a dispersed storage network
US20180107728A1 (en) * 2014-12-31 2018-04-19 International Business Machines Corporation Using tombstone objects to synchronize deletes
US20180107398A1 (en) * 2014-12-31 2018-04-19 International Business Machines Corporation Vault synchronization within a dispersed storage network
US20180101434A1 (en) * 2014-12-31 2018-04-12 International Business Machines Corporation Listing types in a distributed storage system
US10452317B2 (en) * 2014-12-31 2019-10-22 Pure Storage, Inc. DAP redistribution operation within a dispersed storage network
US20160321285A1 (en) * 2015-05-02 2016-11-03 Mohammad Faraz RASHID Method for organizing and distributing data
US9760459B2 (en) * 2015-06-10 2017-09-12 International Business Machines Corporation Synchronization policies among nodes
AU2015255223B2 (en) * 2015-08-26 2021-02-25 Roar Software Pty Ltd System and process for generating an internet application
US11783120B2 (en) * 2015-08-26 2023-10-10 Roar Software Pty Ltd. System and process for generating an internet application
US10929201B2 (en) * 2015-10-22 2021-02-23 Wind River Systems, Inc. Method and system for implementing generation locks
US10701174B2 (en) * 2016-01-05 2020-06-30 Micro Focus Llc Resource requests
CN107241372A (zh) 2016-03-29 2017-10-10 阿里巴巴集团控股有限公司 配置信息生成、发送方法及资源加载方法和装置及系统
US10469611B2 (en) 2016-05-03 2019-11-05 Microsoft Technology Licensing, Llc Reduced page load time utilizing cache storage
US10394468B2 (en) * 2017-02-23 2019-08-27 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US11915012B2 (en) 2018-03-05 2024-02-27 Tensera Networks Ltd. Application preloading in the presence of user actions
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
CN111314396B (zh) * 2018-12-11 2022-11-25 杭州海康威视数字技术股份有限公司 数据处理方法及装置
US11824956B2 (en) 2019-07-30 2023-11-21 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices using off-line pre-render mode
US11544344B2 (en) * 2019-11-06 2023-01-03 Citrix Systems, Inc. Remote web browsing service
US11593026B2 (en) 2020-03-06 2023-02-28 International Business Machines Corporation Zone storage optimization using predictive protocol patterns
CN116670646A (zh) 2020-12-03 2023-08-29 腾赛拉网络有限公司 预加载具有现有任务的应用
US11860771B1 (en) * 2022-09-26 2024-01-02 Browserstack Limited Multisession mode in remote device infrastructure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725262B1 (en) * 2000-04-27 2004-04-20 Microsoft Corporation Methods and systems for synchronizing multiple computing devices
CN101309291A (zh) * 2008-05-30 2008-11-19 中兴通讯股份有限公司 终端数据维护的工具和方法

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080051B1 (en) 1993-11-04 2006-07-18 Crawford Christopher M Internet download systems and methods providing software to internet computer users for local execution
US6594682B2 (en) * 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6151599A (en) * 1998-07-17 2000-11-21 International Business Machines Corporation Web client scripting test architecture for web server-based authentication
US6233606B1 (en) * 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6546554B1 (en) 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US7219304B1 (en) * 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US20020103822A1 (en) 2001-02-01 2002-08-01 Isaac Miller Method and system for customizing an object for downloading via the internet
US20070220000A1 (en) * 2001-05-09 2007-09-20 Walsh Aaron E Universal Cache
US7263712B2 (en) * 2001-05-29 2007-08-28 Intel Corporation Enabling a PC-DTV receiver to share the resource cache with multiple clients
US7275243B2 (en) 2002-03-22 2007-09-25 Sun Microsystems, Inc. Mobile download system
US20030217142A1 (en) 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
US8255548B2 (en) * 2002-06-13 2012-08-28 Salesforce.Com, Inc. Offline web services API to mirror online web services API
US6941310B2 (en) 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
US7606314B2 (en) * 2002-08-29 2009-10-20 Raritan America, Inc. Method and apparatus for caching, compressing and transmitting video signals
GB0321674D0 (en) * 2003-09-16 2003-10-15 Cognima Ltd Catching content on phones
WO2005043360A1 (en) 2003-10-21 2005-05-12 Green Border Technologies Systems and methods for secure client applications
US7272782B2 (en) * 2003-12-19 2007-09-18 Backweb Technologies, Inc. System and method for providing offline web application, page, and form access in a networked environment
US20050240558A1 (en) 2004-04-13 2005-10-27 Reynaldo Gil Virtual server operating on one or more client devices
US20060031264A1 (en) * 2004-05-20 2006-02-09 Bea Systems, Inc. Synchronization protocol for occasionally-connected application server
US7383405B2 (en) 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
CA2486103A1 (en) 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
US8082541B2 (en) 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
US7664788B2 (en) * 2005-01-10 2010-02-16 Microsoft Corporation Method and system for synchronizing cached files
CA2513016A1 (en) * 2005-07-22 2007-01-22 Research In Motion Limited A secure method of synchronizing cache contents of a mobile browser with a proxy server
US7594003B2 (en) 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
US8601475B2 (en) 2005-08-02 2013-12-03 Aol Inc. Download and upload of email messages using control commands in a client/server web application
US20070033155A1 (en) 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
CN1956449B (zh) 2005-10-28 2011-05-18 北京书生国际信息技术有限公司 数据资源防复制加密传输方法及设备系统
WO2007083299A2 (en) 2006-01-17 2007-07-26 Kidaro (Israel) Ltd. Seamless integration of multiple computing environments
JP4514718B2 (ja) 2006-01-20 2010-07-28 株式会社豊田中央研究所 膜電極接合体及び固体高分子型燃料電池
JP2007208458A (ja) * 2006-01-31 2007-08-16 Fujifilm Corp 通信システム、通信端末および通信方法
US20080072053A1 (en) * 2006-09-15 2008-03-20 Halim Budi S Web-based authentication system and method
US20080098093A1 (en) * 2006-10-16 2008-04-24 Palm, Inc. Offline automated proxy cache for web applications
US7814234B2 (en) * 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US8166515B2 (en) 2006-10-30 2012-04-24 Microsoft Corporation Group policy for unique class identifier devices
US20080148298A1 (en) 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications
US20080147671A1 (en) 2006-12-18 2008-06-19 Lampdesk Corporation System for Running Web Applications Offline and Providing Access to Native Services
US7870596B2 (en) 2007-02-01 2011-01-11 Microsoft Corporation Accessing network resources outside a security boundary
US20080189767A1 (en) 2007-02-01 2008-08-07 Microsoft Corporation Accessing file resources outside a security boundary
US8452853B2 (en) * 2007-03-05 2013-05-28 International Business Machines Corporation Browser with offline web-application architecture
US8702501B2 (en) 2007-04-05 2014-04-22 Igt Formation and use of formal partnerships for play games
US8171109B2 (en) * 2007-05-30 2012-05-01 Red Hat, Inc. Mobile bookmarks
US8458612B2 (en) 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
US8725679B2 (en) * 2008-04-07 2014-05-13 International Business Machines Corporation Client side caching of synchronized data
US8627328B2 (en) 2008-11-14 2014-01-07 Oracle International Corporation Operation control for deploying and managing software service in a virtual environment
US8812451B2 (en) 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8464319B2 (en) 2010-01-08 2013-06-11 Microsoft Corporation Resource access based on multiple scope levels
US20130219383A1 (en) * 2012-02-16 2013-08-22 Israel Hilerio Using an Application Cache to Update Resources of Installed Applications
EP3012739A1 (en) * 2014-10-20 2016-04-27 TISOFT Wojciech Jedrzejewski System for synchronizing web browsers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725262B1 (en) * 2000-04-27 2004-04-20 Microsoft Corporation Methods and systems for synchronizing multiple computing devices
CN101309291A (zh) * 2008-05-30 2008-11-19 中兴通讯股份有限公司 终端数据维护的工具和方法

Also Published As

Publication number Publication date
US8812451B2 (en) 2014-08-19
WO2010104659A3 (en) 2010-12-09
KR101644666B1 (ko) 2016-08-01
US20100235321A1 (en) 2010-09-16
EP2406725A2 (en) 2012-01-18
RU2011137392A (ru) 2013-03-20
JP2012520504A (ja) 2012-09-06
WO2010104659A2 (en) 2010-09-16
KR20110128846A (ko) 2011-11-30
US10242023B2 (en) 2019-03-26
BRPI1008362A2 (pt) 2018-03-06
TW201033832A (en) 2010-09-16
US20150046519A1 (en) 2015-02-12
CN102349062A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
CN102349062B (zh) 浏览器缓存与远程仓库同步的方法和系统
US11740891B2 (en) Providing access to a hybrid application offline
US20210185122A1 (en) Synchronized content library
US10387451B2 (en) Synchronization system for multiple client devices
CN102804132B (zh) 基于目录的软件组件管理
US8572033B2 (en) Computing environment configuration
US9298747B2 (en) Deployable, consistent, and extensible computing environment platform
CN111338854B (zh) 基于Kubernetes集群快速恢复数据的方法及系统
US20080243847A1 (en) Separating central locking services from distributed data fulfillment services in a storage system
Peek et al. EnsemBlue: Integrating distributed storage and consumer electronics
CN102332016B (zh) 目录机会锁
CN101288048A (zh) 内容聚合平台
US20110208761A1 (en) Coordinating content from multiple data sources
US20170091253A1 (en) Interrupted synchronization detection and recovery
JP2023107766A (ja) 外部ロケーションの同期
CN117708072A (zh) 文件复制方法、终端设备及芯片系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.