CN1542637B - 同步在对等计算设备中共享的数据的方法和系统 - Google Patents

同步在对等计算设备中共享的数据的方法和系统 Download PDF

Info

Publication number
CN1542637B
CN1542637B CN2004100070994A CN200410007099A CN1542637B CN 1542637 B CN1542637 B CN 1542637B CN 2004100070994 A CN2004100070994 A CN 2004100070994A CN 200410007099 A CN200410007099 A CN 200410007099A CN 1542637 B CN1542637 B CN 1542637B
Authority
CN
China
Prior art keywords
computing equipment
data object
file
change
reciprocity
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.)
Expired - Fee Related
Application number
CN2004100070994A
Other languages
English (en)
Other versions
CN1542637A (zh
Inventor
S·A·凯斯腾
J·F·莫尔
B·S·拉曼
C·J·古扎克
D·A·奥必茨
S·A·奇特里
E·R·弗罗
J·M·沙特霍夫
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 CN1542637A publication Critical patent/CN1542637A/zh
Application granted granted Critical
Publication of CN1542637B publication Critical patent/CN1542637B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F16/1787Details of non-transparently synchronising file systems
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B47/00Operating or controlling locks or other fastening devices by electric or magnetic means
    • E05B47/02Movement of the bolt by electromagnetic means; Adaptation of locks, latches, or parts thereof, for movement of the bolt by electromagnetic means
    • E05B47/026Movement of the bolt by electromagnetic means; Adaptation of locks, latches, or parts thereof, for movement of the bolt by electromagnetic means the bolt moving rectilinearly
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B47/00Operating or controlling locks or other fastening devices by electric or magnetic means
    • E05B47/0001Operating or controlling locks or other fastening devices by electric or magnetic means with electric actuators; Constructional features thereof
    • E05B2047/0014Constructional features of actuators or power transmissions therefor
    • E05B2047/0018Details of actuator transmissions
    • E05B2047/002Geared transmissions
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B63/00Locks or fastenings with special structural characteristics
    • E05B63/08Mortise locks
    • EFIXED CONSTRUCTIONS
    • E05LOCKS; KEYS; WINDOW OR DOOR FITTINGS; SAFES
    • E05BLOCKS; ACCESSORIES THEREFOR; HANDCUFFS
    • E05B9/00Lock casings or latch-mechanism casings ; Fastening locks or fasteners or parts thereof to the wing
    • E05B9/02Casings of latch-bolt or deadbolt locks

Abstract

揭示的是用于对等计算环境中的数据同步服务。所选的数据对象被拷贝到所选的计算设备上。在每个设备上运行的服务监视数据对象的改变。当检测到一改变时,服务发送改变通知到其他设备,使得他们能更新他们的数据对象的拷贝。用户能从任何设备访问数据对象,知道他将检索数据对象的最新版本。替代在每个设备上存储大文件引起的代价,通往在某些设备“虚象”该文件。虚象设备只存储有关文件的元数据而不是整个文件。用户通过虚象访问文件:访问请求发送到保持真实内容的设备,当若它们被本地存储时,那些内容给予用户。

Description

同步在对等计算设备中共享的数据的方法和系统
有关专利
本专业的主题与LVM会议论文218028(MS301183.1),题为“Small-SecuredComputer Network Group Without Centralized Management”有关,后者至今未申请。
技术领域
本发明一般涉及在计算设备之间共享数据,尤其涉及同步在对等计算设备之间的共享数据。
背景技术
在今天流行的生活方式中,人们常使用多台计算机。小的公司,甚至许多家庭,屋内到处放置计算机,并通过局域网(LAN)互相连结。膝上机及如个人数字助理那样更小的计算设备增加了人们在一天中通常使用的计算机的数目。
计算设备的激增虽然无疑提供了的利益,但不利于人们寻找访问特定的数据文件。例如,一个家庭为了方便起见拥有多台计算机,但当某些文件只能从一台计算机访问,而其他文件只能从另一台计算机访问时,方便被丧失殆尽。一个人在面临同一文件的多个版本时也会变得糊涂了。例如,小公司的雇员将一文件从他的台式机拷贝到他的膝上机。在他旅行时,他更新了膝上机上的文件。其他雇员不知道到哪里去寻找该文件的最新版本。确实,当若干雇员更新该文件而未协调他们的工作时,会滋生出该文件许多不相兼容的版本。通常,一个人希望访问特定数据文件的最新版本,而不论该文件位于哪里,并不论那人当时在使用哪台计算机。
较大的公司开始考虑此问题。数据文件存在中央服务器。授权用户的自己的计算设备通过使用如Microsoft的“CLIENT-SIDE CACHING”那样的服务程序访问驻留在中央服务器的数据文件,每台存储重要数据文件的拷贝。中央服务器协调它们,以保证即使当一台服务器为维修的原理不能被访问时数据文件永远可得到。从管理的观点,集中的数据存储减轻了实施数据访问安全的任务,提供足够硬件来存储大量数据的任务,及正常备份数据的任务。从用户的观点,集中存储意味着用户永远知道何处找到数据文件,意味着数据文件基本上总能得到,意味着文件的最新版本是向用户提供的那个。
然而,集中数据存储是有代价的。中央服务器代表除用户自己计算机以外的开销。配置和管理中央服务器环境通常需要在小公司或家庭主人中常常找不到的专门的专业人员,由于代价的考虑或由于风扇的噪音,较小公司的人们常常反对拥有一直运行的服务器。
发明内容
考虑上述,本发明提供集中数据存储的利益但不引起中央服务器的代价,经费和管理。在对等计算环境中,计算设备在它们自己之间通讯,以提供对数据的访问,并同步数据的改变,使得向用户提供最新的版本。
选中的数据对象(文件和文件夹)被拷贝到选定的计算设备。在每个选定设备上运行的数据同步服务监视选定的数据对象是否有改变,在某些实施例中是通过对设备的文件系统的侦听调用。当检测到改变时,数据同步服务发送改变的通知到其他设备,使得它们能更新他们该数据对象的拷贝。这样,数据对象的拷贝在所有选定的设备上保持同步。用户能从任何选定设备访问数据,知道他检索了数据对象的最新版本。若一个设备暂时不可用,则最新版本仍能从其他设备访问。
选定的设备可以不总是可以发送和接收更新通知。在此情况,其他设备存储它们的更新通知等待该设备变得可用。当该设备重新连结该组,如用户将他的膝上机插入到家里的LAN,该设备可能保持了与存储在其他设备不同步的数据对象的版本。数据同步服务自动确定所选的数据对象的最新版本存在哪里。然后那些版本被发送到具有过时版本的设备。
某些文件可以很大,如声频或视频节目夹。替代在每个计算设备存储寻样文件造成的代价,用户能选择在某些设备“虚象(ghost)”该文件。虚象设备只存储有关该文件的元数据(如其名称和版本日期)而不是整个文件。用户仍能通过虚象访问文件:访问请求被发送到保存实际内容的设备,然后那些内容就好象它们被本地存储那样地提供给用户。
附图说明
虽然附后的权利要求详细地列出本发明的特征,本发明及其对象和优点可以从结合附图的下面详细描述最好的理解,附图是:
图1a是示出通过LAN共享数据的3个计算设备的方框图;
图1b是示出在图1a的计算设备之间共享的同步数据对象的方框图。
图2是通常示出支持本发明的示例性计算机系统的原理图。
图3a和3b一起形成流程图,示出用于按本发明的数据同步服务的示例性方法;
图4是提供按本发明的数据同步服务的示例性系统的原理图。
图5a和5b一起形成流程图,示出用于配置和起动两个计算设备之间同步的示例性方法;
图6是用于配置数据同步服务的示例性用户界面的显示屏幕。
具体实施方式
参考附图,其中相同的标识号表示相同的单元,并描述了本发明在合适的计算环境中实现。下面描述根据本发明的实施例,考虑对其他在这里未明确叙述的许多的另外实施例,描述不作为对本发明的限制。
在下面描述中除非另外指出,本发明是参考由一个或多个计算设备完成的操作的动作和符号表示而描述的。因此,可以理解,那些有时称为计算机执行的动作和操作包括由计算设备的处理单元对以结构形式表示数据的电信号的处理。此处理转换数据或将其保存在计算设备的存储系统,计算设备以本专业熟练人士容易理解的方式重新配置或另外更改设备的操作。虽然本发明在上述情况中描述,这不意味着作出限制,本专业熟练人士理解,其后描述的各种动作和操作也能以硬件实现。
本发明提供在各对等设备中的数据同步服务。图1a示出示例性环境100。通常环境100代表家庭或小公司。在环境100中有3个计算设备A102,B104,和膝上机106。作为便携式,膝上机106容易离开环境100而以后再回来。此可能性导致了如下讨论的数据同步的某些复杂性。为本发明的目的,这些设备102,104和106是对等的,即其中没有一个执行对其他的控制。相反,它们使用下面讨论的技术共同保持它们的共享数据同步。
图1a中3个对等计算设备102,104和106通过LAN108互相通讯。存在标准的通讯协议用于在共享环境100的计算设备之间传输数据同步信息。计算设备B104还提供由3个计算设备102,104和106共享的到因特网110的链路。图1a示出的因特网110指出,本发明的数据同步服务甚至能在远程连接的设备中实现。虽然远程数据同步是完全可能的,在某些情况为同步所需的增加的通讯时间妨碍用户将远程设备包括在同步环境100中。
虽然本发明使得在环境100的设备中的数据同步容易了,但防止环境100之外的设备访问数据同步信息也是重要的。当LAN是无线网或环境100包括如到因特网的远程连结时,安全问题变得更重要。在这些情况难以知道,是否未授权的设备在侦听数据同步信息。在数据同步环境100中的安全问题在有关专利应用中讨论,如LAN Docket Number218028,“Small-Scale SecuredCompter Network Group Without Centralized Manegement”,申请???,并在本发明中进一步讨论。
图1b给出图1a的数据同步环境100的示例性实施例的结构细节。在计算设备A102的文件系统112中有2个文件夹,A1114和A2116。文件夹A1114的整个内容与计算设备B104的文件系统122中的付本文件夹B1124以及膝上机106的文件系统130中的付本文件夹C1132同步。同步意味着,对于在付本文件夹A1114,B1124和C1132的任一个中数据对象(一个文件或文件夹,或甚至文件的一部分,如数据库中的表)的任何改变,在其他文件夹中复制。例如,计算设备B104的用户在一个当地子文件夹126中创建一个新文件。该新文件夹的拷贝然后自动地在计算设备A102及膝上机106上的子文件夹上创建。另外例子,膝上机106的用户更新C1136,则此改变自动地传播到付本文件A1118和B2128。因此,用户能登录入这3个计算设备的任一个,并当数据对象最近更新时总能检索同步数据对象的最新版本,而不管他在哪里登录。
三头的数据连接138指出,3个计算设备102,104和106中没有哪一个执行数据同步服务的控制。相反,每个设备使得对其本地文件作出的改变与对在其他2个设备的对应文件作出的改变同步。
有两种不同风格的数据同步。首先,这里称为“全拷贝同步”完成存在于每个协同计算设备上同步文件的拷贝。注意,在图1b中在不同计算设备上的文件和文件夹被授予不同参考号。例如在计算设备A102的文件A1118与在膝上机106的文件C1136同步。同步使这两个文件动作,在某些方面好象它们是一个文件。然而,它们确实是分别的文件,并整体存在分别的计算设备中。这些文件在每个计算设备占据存储空间,并即使其他设备不可用时能在一个计算设备访问。当然,在后面情况且在其他设备再次变成可用之前,同步改变文件是不可能的(在那样不可访问期间之后建立同步将在下面参考图3a的步骤308讨论)。
刚讨论的情况不能应用到称为“虚象同步”的第二风格的数据同步。考虑在计算设备A102上文件夹A2116中的很大的文件140。此很大的文件140能是视频节目夹或大数据库。用户希望在登录到膝上机106时访问很大的文件140,但不希望导致当地存储此文件的拷贝的巨大代价。替代地在膝上机106创建“虚象”文件142。此虚象142不包含很大文件140的全部内容。最少,虚象文件142在其主计算设备A102上只包含对很大文件140的参照。然而,虚象文件142与很大文件140同步,所以在膝上机106的用户能通过虚象文件142访问很大的文件140。若用户希望改变很大文件140的内容,他能在膝上机106作出那样的改变,就好象他直接在很大文件140上做那样。改变随后借助于虚象文件142发送到计算设备102,并应用到很大文件140本身。这样,膝上机106的用户能阅读和修改很大文件140,好象它的同步拷贝存在于膝上机106。
不同于全拷贝同步的情况,若主计算设备A102暂时不可用,则膝上机106的用户不能通过虚象文件142访问很大文件140。即使在虚象情况,二头的数据连结144指出,每个计算设备,A102和膝上机106,同步本地作出的改变并同步对其他计算设备上分别对很大文件140或对虚象文件142作出的改变。
这两种风格的数据同步,全拷贝和虚象,能以若干方法混合。对全拷贝同步建立一文件夹,而在该文件夹的文件被排队在全拷贝之外并替代地被虚象化。文件夹能在两个计算设备之间全拷贝同步,而对第三者虚象化。虚象能在本地包含远程文件的某些属性或元数据的拷贝,如其名字,文件的简要显示等。对这些属性的改变随后以与同步全拷贝文件的改变相同的方法同步,而对文件的大量内容的改变通过虚象化同步。
图1的计算设备A102,B104,和膝上机106能是任何结构。图2是通常示出支持本发明的示例性计算机系统的方框图。图2的计算机系统仅是合适环境的例子,不试图对本发明的使用范围及功能提出任何限制。计算设备102不能解释成对图2中示出的组件的任一个或其组合有任何依赖性或需要。本发明可用各种其他通用或专用计算环境或配置操作。适用于本发明的众知的计算系统,环境和配置的例子包括个人计算机,服务器,手持或膝上设备,输入板设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费者电子设备,网络PC,小型机,主计算机,和包括任何上述系统或设备的分布式计算环境,但不限于这些。在最基本的配置中,计算设备102通常包括至少一个处理单元200和存储器202。存储器202能是易失的(如RAM),非易失的(如ROM或闪存),或两者的某种组合。此最基本的配置用虚线204示于图2中。计算设备102能包括另外的特征和功能。例如,计算设备102能包括附加存储器(可取走或不可取走),包括磁盘,光盘和磁带,但不限于这些。那样的附加存储器通过可取走存储器206和不可取走存储器208示于图2中。计算机存储介质包括以任何方法或技术实现的易失和非易失,可取走和不可取走介质,用于存储如计算机可读指令,数据结构,程序模块等。存储器202,可取走存储器206和不可取走存储器208都是计算机存储介质的例子。计算机存储介质包括RAM、ROM、EEPROM、闪存,其他存储技术,CD-ROM,数字光盘,其他光存储器,盒式磁带,磁带,磁盘存储器,其他磁存储设备,和任何其他能由设备102用于存储希望的信息并能由其访问的其他介质,但不限于这些。任何那样的计算机存储介质能是设备102的一部分。设备102不能包含允许该设备与其他设备通讯的通讯信道210。通讯信道210是通讯介质的例子。通讯介质通常包含计算机可读指令,数据结构,程序模块,或以如载波或其他传输机制的调制数据信号方式的其他信号,并包括任何信息提交介质。术语“调制数据信号”意味着具有一个或多个其特征组或以如信号中编码信息的那样方式改变的信号。例如,通讯介质包括如有线网络和直线连结的有线介质,如声波,RF,红外和其他无线介质的无线介质。这里使用的“计算机可读介质”包括存储介质和通讯介质。计算设备102还能具有如键盘,鼠标,笔,语音输入设备,输入板,接触输入设备等那样的输入设备212。还能包括如显示器(能集成接触输入设备),扬声器,打印机那样的输出设备214。所有这些设备在本专业是熟知的,不需要在此详细讨论。
图3a和3b给出由在对等计算环境100中的设备A102,B104和膝上机106为了在它们自己之间同步数据所遵循的过程的例子。此流程包括一些选项,它们不必包括在数据同步服务的每个实施例中。
在实际同步开始前,在图3a的步骤300进行配置。在步骤302校验授权。只有某些设备结合到同步环境100,这些设备应证明它们的身份。即使在环境100中,某些设备与其他相比有不同的特权。能建立特权,以防止数据同步完全对称。例如,在一个设备上的用户能被阻止对文件的改变,但他的设备接收在其他设备作出的改变。对另外例子,为安全的原因,影响文件夹的结构的改变只能从本地计算设备的用户接收。
在步骤304,建立用于携带同步信息的通讯的参数。例如,同步信息能限于总的可得到带宽的百分数,使其他通讯不会过分的延迟。
步骤306是可选的。在最简单情况,没有对同步严格的时间表:当检测到对同步的数据对象的改变时,改变的通知立即送到所有对方计算设备。当多个计算设备同时使用时,由此简化方法产生的数据量能淹没在同步环境100中可得到的通讯带宽。为避免这样,改变能在本地计算设备上排队并只按照时间表发送。此类时间表能在信息传输速率是变化的。此外,改变通知的队列在发送之前能审查,且若一个改变取消了在队列前面另外改变的作用,则较早改变的通知能从队列中取消,从而减少了发送改变通知的总量。为清楚起见,图3a和3b的流程图不提及通知的队列。
最终,步骤308将拟同步的数据对象在开始进行同步服务之前变成同样的状态。特别是当一个计算设备对同步环境100的其他成员不可访问时,此步骤是重要的。例如,一个用户在出差期间带着膝上机106,并更新存在其中的工作文件。在旅途中,膝上机106不与其他计算设备A102和B104通讯。虽然她已离开,那个用户的丈夫在计算设备A102上更新他妻子的社交日程表。回来以后,该用户重新将她的膝上机106连结到数据同步环境100。因为该用户在膝上机106的工作文件比在其他计算设备上的它们的付本文件更新,在步骤308,那些付本文件根据膝上机106的文件更新。类似地,在膝上机106上的社交日程表根据计算设备A102更新。即使当不是全部计算设备可用时,能引用步骤308。例如,不是带膝上机106用户决定带着从一个计算设备取出的可取走的盘。当盘放回并再次成为数据同步环境100的一部分时,步骤308使在盘上的数据对象与环境100的其余部分同步。当步骤308完成时,在环境100中所有可访问设备上的所有同步的数据对象被更新。
在图3a和3b中画出的实施例中,步骤308是十分有用的。每当看到变化(如下讨论见图3a的步骤312和图3b的步骤320)独发那个示例服务。这样,使用上述旅行的膝上机106的例子,没有步骤308,不同步的社交日程表在膝上机重新连结环境100时将不会自动变成同步。替代地,那个社交日程表只有当该膝上机106成为环境100的部分,且若用户作出再次改变时,才被同步。
然而在另外实施例中,步骤308的工作不与进行的数据同步服务分开。某些实施例监视同步的数据对象的最近修改的时间。若该时间完全不同于付本数据对象的最近修改时间,则最新版本将替代过时的版本。在此实施例中,并使用上面给出的例子,在膝上机106的工作文件和它们在计算设备A102和B104上的付本之间的差异以及在计算设备A102的社交日程表和在膝上机的社交日程表之间的差异,在事务的常规过程中被注意到。不需要专门的步骤308。此另外的实施例与图3a和3b的改变一独发实施例相比不更难理解和更难实现。然而为了避免由于混合多种选择而增加了混乱的机会,下面的讨论集中在改变一独发实施例上。
随着配置完成,进行的数据同步服务由两个主要部分组成:一是抓住本地的改变并将其送到远程设备,二是接收远程改变的通知,并在本地实施它们。为说明的目的,图3a和3b将这两部分示作在一个处理循环中顺序发生的,但可能有许多其他实施例。例如,每个部分能是分别的过程,或一个过程中的一个线程。每部分也能连续运行,根据事件独发,根据直接的用户请求,或周期地中断定时器。用于建立所有这些选择方案的方法在本专业是熟知的,并将不作进一步的讨论。
步骤312通过寻找已为同步配置的本地数据对象中的改变,开始进行数据同步服务的第一主要部分。当看到改变时,在图3b的步骤314中,改变的通知被送到对方计算设备。在某些实施例中,计算设备中的一个建立为“改变通知交换所”。其他设备只发送它们的改变通知到交换所,而交换所保证通知被送到所有其他设备。在上述讨论的概念的修改中(参考步骤306),交换所比较接收的改变通知,并挑出对同步的数据对象的最新状态没有影响的那些。注意,交换所能使通讯更有效,但是交换所不会变成数据同步环境100的主宰。数据同步保持为对等的过程。
改变通知本身能采取若干形式。改变通知的简单实施例(对小文件完全足够),包括文件的识别符和改变的文件的整个内容。对更大的文件,能使用更复杂的系统,其中改变通知辨别出如何作出对文件的改变,而不是简单的最终结果。
在某些实施例,最小的虚象文件只有当它被删除,传送或改名时才产生改变。任何其他改变在远程主文件上发生,即使它能由本地访问该虚象文件的用户引起的。
步骤316使用户或数据同步服务本身能校验发送的变化的状态。当排错停滞响应的问题和复位同步参数时,状态信息是有用的。若用户选择关闭一个计算设备,或将它从数据同步环境100取走,则检查状态信息,并在同步完成之前暂停关闭动作。
某些改变能触发一警告。对一个例子,考虑在图1b中描绘的文件系统布置。假设计算设备A102的用户将文件A1118从文件夹A114传送到文件夹A2116。因为没有建立文件夹A2116与其他两个计算设备的同步(文件夹A2116中的很大文件140与膝上机106上的虚象文件142同步,但不同于同步文件夹A2本身),数据同步服务将这次传送看作文件A1118的删除。当改变通知被发出时,它导致A1的付本文件,在计算设备B104的文件B1128和在膝上机106上的文件C1136,被删除。这可能不是用户记住的,所以在传送完成之前向计算设备A102的用户发出警告,告诉该用户这些可能预料之外的结果,并询问是否确实是希望的。
步骤318到324表示进行数据同步服务的第二主要部分。在步骤318和320接收对远程同步数据对象的改变的通知。在步骤322,若改变是合适的,该改变应用到远程数据对象的本地付本。对那个最终的条件有若干理由。例如,远程设备的用户具有对数据对象的只读访问,所以改变是无效的并不应实行。对另外的例子,若本地数据对象是远程改变的数据对象的虚象,则许多可能的改变将不实行。若改变是对虚象文件的内容,则实行本地的改变实际上引起对远程主文件的内容的改变,那个改变将在远程主机上看到,且通知将再次发送到虚象设备。其结果最好将是无用的通信量,并可能是无穷尽的改变通知的循环。然而在通常的全拷贝的情况,大多数改变是合适的并当接收时被实行。
所接收的改变的状态在步骤324被发送,它的作用象对步骤316的状态校验的付本。
当多个用户同时访问数据对象作出改变时,他们有可能作出冲突的更新。一个解决方法是简单地不允许发生此情况。有众知的技术,在一个时刻只允许一个用户具有对数据对象的写访问。这些技术容易修改成在一个时刻只允许一个用户对同步数据对象的任何一个付本有写访问。也存在其他解决方法。对文件,在所有付本数据对象中只有最近的写改变被实施,或者当检测到冲突时,改变被搁置,询问用户实施哪个改变。当有两个带有冲突名字的文件夹被创建时,一个能如要求地被创建,另一个给予带单独后缀的名字。在大多数情况,通知用户存在冲突,使他们能予以解决。
图4表示支持如上参考图3a和3b讨论的数据同步服务的实施例的示例性系统。在图4中若干命名的特征意味着表示通常由典型的操作系统提供的服务。特定的术语并不重要,本发明不限于任何特定的操作系统。
以计算设备102的用户模式运行一个或多个应用程序400。在用户的指导下,这些应用程序400改变同步的数据对象。改变也能来自操作系统实用程序,如实现文件名改变或创建新文件夹的文件系统管理程序。为清楚起见,这些衫程序未示出。数据同步服务402以与应用程序400一起操作的方式与它们一起操作。
当改变指向全拷贝同步数据对象时,那个改变在本地数据对象上实现。这由数据流示出,数据流连接应用程序400,输入/输出管理程序408,文件系统驱动程序410,本地存储驱动程序412,文件系统A112,以及最终是文件系统A112中的目标数据对象。数据同步服务402通过数据流406注意到改变。可以理解,服务402创建改变通知,并发送到包容所改变的数据对象的付本的计算设备。数据同步服务402使用如输入/输出管理程序408,文件系统驱动程序410,和通讯信道那样的操作系统的工具程序来发送消息。在图4中,通讯信道210示出与因特网110连接,用于与远程设备通讯。在图1a画出的情况,通讯信道210也连接LAN108,用于与计算设备B104和膝上机106通讯。
若本地同步数据对象是虚象文件,则在应用程序400中发起的许多改变不下到通过输入/输出管理程序408等到文件系统A112的数据流。替代地,它们只跟随数据流406到达数据同步服务402,并送出到通讯信道210。
数字同步服务402在从远程设备接收改变通知方面的另外方向是使用同一单元。改变通知经通讯信道210接收,并送到数据同步服务402。若服务402确定实施改变是合适的,则遵循由应用程序400使用的同样的数据流:通过输入/输出管理程序408到文件系统驱动程序410,到本地存储驱动程序412,并最终到文件系统A112和目标数据对象。
上述参考图3a的步骤308讨论的是在改变时不触发的数据同步服务402的实施例。替代地它监视同步数据对象的修改时间。在此情况,数据流406是不需要的,而数据同步服务402由定时器或其他事件调用。在调用时,服务402将在计算设备A102上同步数据对象的修改时间与在数据同步环境100中的其他计算设备上的付本数据对象的时间比较,并使用示出的操作系统实用程序如上所述地采取合适的动作。
图5a和5b的流程图表示起动数据同步的示例性方法。在计算设备A102的用户希望起动他的本地文件夹A2116与计算设备B104的同步。在图5a的步骤500,API(应用程序界面)Ifile Replication Manager→Find Replica By Path(文件夹A2的路径名...)校验,查看文件夹A2116是否已经同步。若是,则API返回一指向表示同步的组的指针。对此例,认为文件夹A2116尚未被同步。
步骤502的API Ifile Replication Manager→Create Replica Set(“MyPicture,”...)创建同步组对象。此对象在计算设备A102上使用,管理文件夹A2116的同步。同步组对象被赋予单独识别符(GUID)和经GUID更容易理解的名字:“My Pictures”。如上面参考图3a的步骤304和306讨论的那些同步参数被设置成其默认值。API返回在下面步骤使用的指向iFile ReplicaSet界面的指针。
在步骤504,调用API IfileReplicaSet→AddMember(计算设备A102,...),将计算设备102加入到保留“My Pictures”同步组及其付文件夹的设备组。首先完成一系列的校验:该用户是否授权建立同步,文件夹A2116是否存在,用户是否在文件夹A2116有必要地读写许可,“My Pictures”同步组是否与现有的同步组冲突,是否有足够的盘空间可用于支持同步。若所有这些校验顺利通过,则API建立由同步服务402内部使用的文件夹(如用于排错及存储改变通知),起动File Replica Member,并起动数据同步服务402(除非它对另外同步组已经运行)。
接着在步骤506调用API IFileReplicaSet→AddMember(计算设备B104,...)。这就起动在计算设备B104上的步骤508,它通过起动在该设备上的数据同步服务402而开始(除非它已在运行)。API请求计算设备B104(可能通过使用远程过程调用)校验许可,并查看在计算设备B104上文件夹A2116的付本是否已经同步。许可是通过扮演计算设备A102的用户校验,查看在计算设备104上是否有合适的许可。若所有校验通过,起动另外的FileReplicaMember的许可。若所有校验通过,起动另外的FileReplicaMember对象。
步骤506和508与连结在文件夹A2116的同步共享的任何其他计算设备重复。若此过程在一个设备失败,在计算设备A102上的起动过程能选择通过在步骤510调用API IFileReplicaSet→Remove Member(Member GUID,...)退出整个过程,以去除已经成功进入同步组的任何远程设备。
在步骤512中API IFileReplicaSet→PublishConfiguration(...)发送配置信息到包容“My Picture”的同步拷贝的所有设备。在步骤514中接收的此信息通过再次扮演计算设备A102的用户而被存储。
最后,对“My Picture”改变在步骤516被同步。图3a和3b给出步骤516的一个实施例的细节。
图5a和5b的流程图表示起动数据同步的内部动作。图6给出了为建立此起动用户引用的外部界面。示例性屏幕显示600具有用于配置在本地计算设备上文件夹的特性的表,这里称为“foo”。选择的表用于同步此文件夹与在另外设备上的付本文件夹。当用户选择单选圆按钮来同步此文件夹时,能调用图5a的步骤500到504(或其等价)。示出对方设备的表602,用户能加入设备到此表(对应于图5a的步骤506)或去除它们(步骤510)。
考虑能应用发明的原理的许多可能实施例,能认识到,这里结合附图描述的实施例只是说明性的,不作为对本发明范围的限制。例如,本专业熟练人士认识到,示出的实施例能在安排及细节上修改而不背离本发明的精神。虽然本发明借助软件模块或组件描述,本专业熟练人士认识到,那能用硬件等价地替代。因此,这里描述的本发明考虑从下面的权利要求及其等价的范围引出的所有那样的实施例。

Claims (27)

1.对等计算环境中用于数据同步服务的方法,所述方法包括:
配置位于本地的第一对等计算设备和位于远程的第二对等计算设备之间的同步;
对每个对等计算设备校验授权;
建立用于通讯同步信息的通讯参数;
将拟同步的数据对象变成相同状态;
监视在第一对等计算设备上作出的改变;
向第二对等计算设备发送所述在第一对等计算设备上作出的改变的改变通知;
如果合适,则将所述在第一对等计算设备上作出的改变运用到第二对等计算设备上;
校验发送的改变的状态;
监听在第二对等计算设备上作出的改变;
从第二对等计算设备接收所述在第二对等计算设备上作出的改变的改变通知;
如果合适,则将所述在第二对等计算设备上作出的改变运用到第一对等计算设备上;以及
返回接收的改变的状态。
2.如权利要求1所述的方法,其特征在于,校验授权包括校验第二对等计算设备的授权,以便与第一对等计算设备同步。
3.如权利要求1所述的方法,其特征在于,配置同步包括对在第一对等计算设备和第二对等计算设备之间的通讯确定加密参数。
4.如权利要求1所述的方法,其特征在于,将拟同步的数据对象变成相同状态包括:
若第一对等计算设备上的一第一数据对象的数据比第二对等计算设备上的一第二数据对象的数据新,或若第二数据对象不存在,则发送第一数据对象的拷贝到第二对等计算设备;
否则,若第二数据对象的数据比第一数据对象的数据新,或若第一数据对象不存在,则从第二对等计算设备接收第二数据对象的拷贝,并根据接收的第二数据对象的拷贝更新第一数据对象。
5.如权利要求1所述的方法,其特征在于,第一对等计算设备包括第一文件夹作为第一数据对象,第二对等计算设备包括第二文件夹作为第二数据对象,
其中,将拟同步的数据对象变成相同状态包括:
对包含在第一文件夹的每个第三数据对象,将第三数据对象变成与在第二文件夹中的对应的第四数据对象相同的状态;和
从第二对等计算设备接收数据对象的拷贝,并对在第一文件夹中无对应的数据对象的数据对象的每个接收的拷贝,在第一文件夹中根据接收的拷贝创建新的数据对象。
6.如权利要求1所述的方法,其特征在于,监视在第一对等计算设备上作出的改变包括监视从一组改变中选择的对第一文件的改变,该组包括:修改第一文件的属性、修改第一文件中的数据、传送第一文件、及删除第一文件。
7.如权利要求1所述的方法,其特征在于,监视在第一对等计算设备上作出的改变包括监视从一组改变中选择的对第一文件夹的改变,该组包括:修改第一文件夹的属性、在第一文件夹中创建第三数据对象、传送第一文件夹、和删除第一文件夹。
8.如权利要求7所述的方法,其特征在于,还包括:
监视在第一文件夹中第三数据对象的改变。
9.如权利要求8所述的方法,其特征在于,监视第三数据对象的改变包括监视从一组改变中选择的对第三数据对象的改变,该组包括:修改第三数据对象的属性、修改在第三数据对象中的数据、在第三数据对象中创建第四数据对象、传送第三数据对象、和删除第三数据对象。
10.如权利要求8所述的方法,其特征在于,还包括:
若第三数据对象改变,则向第二对等计算设备发送第三数据对象改变的通知。
11.如权利要求8所述的方法,其特征在于,还包括:
若第三数据对象改变,则校验第三数据对象的改变是否要与在第二对等计算设备上的改变同步,且若第三数据对象的改变要被同步,则向第二对等计算设备发送第三数据对象改变的通知。
12.如权利要求1所述的方法,其特征在于,监视在第一对等计算设备上作出的改变包括比较第一对等计算设备上的第一数据对象的修改时间与第二对等计算设备上的第二数据对象的修改时间。
13.如权利要求1所述的方法,其特征在于,所述发送包括通过从一个组选择的通讯介质发送,该组包括:串行通讯线、并行通讯线、局域网、内联网、调制解调器链路和因特网。
14.如权利要求1所述的方法,其特征在于,改变通知包括XML格式的通知。
15.如权利要求1所述的方法,其特征在于,还包括:
侦听对第一对等计算设备上的第一数据对象提出的改变;和
若提出的改变在第二对等计算设备上可能具有不可预料的结果,则警告第一对等计算设备的用户可能的不可预料的结果。
16.如权利要求15所述的方法,其特征在于,第一数据对象是第一文件夹,第二数据对象是第二文件夹,
其中,提出的改变包括将第三数据对象从第一文件夹中传送到第一文件夹外的第一位置,
警告用户包括警告提出的改变将删除在第二文件夹中的第四数据对象,而不在第二对等计算设备上对应于第一对等计算设备的第一位置的第二位置中创建新的数据对象,其中该第四数据对象对应于第三数据对象。
17.如权利要求15所述的方法,其特征在于,第一数据对象是第一文件夹,第二数据对象是第二文件夹,
其中,提出的改变包括将第三数据对象从第一文件夹之外的第一位置传送到第一文件夹内,
警告用户包括警告提出的改变将在第二文件夹中创建新的数据对象,而不删除在第二对等计算设备上对应于在第一对等计算设备上的第一位置的第二位置中的第四数据对象,其中新的数据对象对应于第三数据对象。
18.如权利要求1所述的方法,其特征在于,还包括:
配置第一对等计算设备和第三对等计算设备之间的同步;
若第一对等计算设备上的第一数据对象改变,则发送第一数据对象改变的通知到第三对等计算设备;
监听对第三对等计算设备上的第三数据对象的改变的通知;和
若接收到对第三数据对象的改变的通知,则将接收的改变应用到第一数据对象。
19.一种用于发起和配置第一对等计算设备和第二对等计算设备之间的数据同步的方法,包括:
发起位于包括第一数据对象的第一对等计算设备中的文件夹与包括第二数据对象的第二对等计算设备的数据同步;
通过应用程序接口确定所述文件夹是否已被同步;
由所述应用程序接口通过一同步组对象来管理所述文件夹的所述数据同步;
通过所述应用程序接口将所述第一对等计算设备添加到计算设备组,其中该计算设备组将保留所述同步组及其对应文件夹;
在所述第二对等计算设备上发起数据同步服务;
通过所述应用程序接口判断所述文件夹的对应物是否已在所述第二对等计算设备上同步;
通过所述应用程序接口向将保留所述文件夹的经同步的拷贝的所述计算设备组发送配置信息;
将对所述文件夹的改变同步到位于所述计算设备组中的对应文件夹。
20.对等计算环境中用于数据同步服务的系统,所述系统包括:
用于配置位于本地的第一对等计算设备和位于远程的第二对等计算设备之间的同步的装置;
用于对每个对等计算设备校验授权的装置;
用于建立用于通讯同步信息的通讯参数的装置;
用于将拟同步的数据对象变成相同状态的装置;
用于监视在第一对等计算设备上作出的改变的装置;
用于向第二对等计算设备发送所述在第一对等计算设备上作出的改变的改变通知的装置;
用于如果合适,则将所述在第一对等计算设备上作出的改变运用到第二对等计算设备上的装置;
用于校验发送的改变的状态的装置;
用于监听在第二对等计算设备上作出的改变的装置;
用于从第二对等计算设备接收所述在第二对等计算设备上作出的改变的改变通知的装置;
用于如果合适,则将所述在第二对等计算设备上作出的改变运用到第一对等计算设备上的装置;以及
用于返回接收的改变的状态的装置。
21.如权利要求20所述的系统,其特征在于,所述发送包括通过从一个组选择的通讯介质发送,该组包括:串行通讯线、并行通讯线、局域网、内联网、调制解调器链路和因特网。
22.如权利要求20所述的系统,其特征在于,改变通知包括XML格式的通知。
23.如权利要求20所述的系统,其特征在于,还包括:
用于侦听对第一对等计算设备上的第一数据对象提出的改变的装置;和
用于若提出的改变在第二对等计算设备上可能具有不可预料的结果,则警告第一对等计算设备的用户可能的不可预料的结果的装置。
24.如权利要求23所述的系统,其特征在于,第一数据对象是第一文件夹,第二数据对象是第二文件夹,
其中,提出的改变包括将第三数据对象从第一文件夹中传送到第一文件夹外的第一位置,
警告用户包括警告提出的改变将删除在第二文件夹中的第四数据对象,而不在第二对等计算设备上对应于第一对等计算设备的第一位置的第二位置中创建新的数据对象,其中该第四数据对象对应于第三数据对象。
25.如权利要求23所述的系统,其特征在于,第一数据对象是第一文件夹,第二数据对象是第二文件夹,
其中,提出的改变包括将第三数据对象从第一文件夹之外的第一位置传送到第一文件夹内,
警告用户包括警告提出的改变将在第二文件夹中创建新的数据对象,而不删除在第二对等计算设备上对应于在第一对等计算设备上的第一位置的第二位置中的第四数据对象,其中新的数据对象对应于第三数据对象。
26.如权利要求20所述的方法,其特征在于,还包括:
用于配置第一对等计算设备和第三对等计算设备之间的同步的装置;
用于若第一对等计算设备上的第一数据对象改变,则发送第一数据对象改变的通知到第三对等计算设备的装置;
用于监听对第三对等计算设备上的第三数据对象的改变的通知的装置;和
用于若接收到对第三数据对象的改变的通知,则将接收的改变应用到第一数据对象的装置。
27.一种用于发起和配置第一对等计算设备和第二对等计算设备之间的数据同步的系统,包括:
用于发起位于包括第一数据对象的第一对等计算设备中的文件夹与包括第二数据对象的第二对等计算设备的数据同步的装置;
用于通过应用程序接口确定所述文件夹是否已被同步的装置;
用于由所述应用程序接口通过一同步组对象来管理所述文件夹的所述数据同步的装置;
用于通过所述应用程序接口将所述第一对等计算设备添加到计算设备组,其中该计算设备组将保留所述同步组及其对应文件夹的装置;
用于在所述第二对等计算设备上发起数据同步服务的装置;
用于通过所述应用程序接口判断所述文件夹的对应物是否已在所述第二对等计算设备上同步的装置;
用于通过所述应用程序接口向将保留所述文件夹的经同步的拷贝的所述计算设备组发送配置信息的装置;
用于将对所述文件夹的改变同步到位于所述计算设备组中的对应文件夹的装置。
CN2004100070994A 2003-02-28 2004-02-26 同步在对等计算设备中共享的数据的方法和系统 Expired - Fee Related CN1542637B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/376430 2003-02-28
US10/376,430 2003-02-28
US10/376,430 US7743022B2 (en) 2003-02-28 2003-02-28 Method and system for synchronizing data shared among peer computing devices

Publications (2)

Publication Number Publication Date
CN1542637A CN1542637A (zh) 2004-11-03
CN1542637B true CN1542637B (zh) 2012-11-28

Family

ID=32771491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100070994A Expired - Fee Related CN1542637B (zh) 2003-02-28 2004-02-26 同步在对等计算设备中共享的数据的方法和系统

Country Status (5)

Country Link
US (1) US7743022B2 (zh)
EP (1) EP1452978A3 (zh)
JP (1) JP2004265418A (zh)
KR (1) KR20040077566A (zh)
CN (1) CN1542637B (zh)

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4323853B2 (ja) * 2003-04-11 2009-09-02 キヤノン株式会社 更新通知装置及び方法、並びにプログラム及び記憶媒体
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
US7650563B2 (en) * 2003-07-18 2010-01-19 Microsoft Corporation Aggregating metadata for media content from multiple devices
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US20050218739A1 (en) * 2004-04-01 2005-10-06 Microsoft Corporation System and method for sharing objects between computers over a network
US8316088B2 (en) 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
WO2006018843A2 (en) * 2004-08-16 2006-02-23 Beinsync Ltd. A system and method for the synchronization of data across multiple computing devices
US7552238B2 (en) * 2004-09-30 2009-06-23 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining network device configurations
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
WO2006053019A2 (en) 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US7801854B2 (en) * 2004-11-15 2010-09-21 Microsoft Corporation Managing lists and other items in an electronic file system
US8856467B2 (en) * 2004-11-18 2014-10-07 International Business Machines Corporation Management of metadata in a storage subsystem
US7788237B2 (en) * 2004-12-17 2010-08-31 Microsoft Corporation Method and system for tracking changes in a document
US7440975B2 (en) * 2004-12-22 2008-10-21 Musicgiants, Inc. Unified media collection system
JP4635615B2 (ja) * 2005-01-17 2011-02-23 富士ゼロックス株式会社 情報処理装置、システム、データ同期方法及びプログラム
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US8347088B2 (en) 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US8700738B2 (en) 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US7720890B2 (en) * 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
US20060242206A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation System and method for peer to peer synchronization of files
US7970017B2 (en) * 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
US7506003B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7506005B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7505986B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7383292B2 (en) * 2005-07-14 2008-06-03 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7873681B2 (en) * 2005-07-14 2011-01-18 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7506004B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
KR100739729B1 (ko) * 2005-09-03 2007-07-13 삼성전자주식회사 디지털 방송 네트워크에서 서버와 클라이언트 간 epg정보를 동기화시키기 위한 방법 및 장치
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
JP4846318B2 (ja) * 2005-09-26 2011-12-28 シャープ株式会社 通信プログラム、記録媒体、通信方法および通信端末装置
JP2007114998A (ja) * 2005-10-20 2007-05-10 Sony Corp 中継装置、記憶装置及び記憶システム
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US20070162594A1 (en) * 2006-01-12 2007-07-12 Microsoft Corporation Controlled disconnection of a network device
JP2007193626A (ja) * 2006-01-20 2007-08-02 Brother Ind Ltd コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
US7925624B2 (en) * 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data
GB2450048B (en) * 2006-04-03 2010-12-29 Beinsync Ltd Peer to peer syncronization system and method
GB0607294D0 (en) 2006-04-11 2006-05-24 Nokia Corp A node
US9898517B2 (en) * 2006-04-21 2018-02-20 Adobe Systems Incorporated Declarative synchronization of shared data
TW200743028A (en) * 2006-05-12 2007-11-16 Benq Corp State synchronization apparatuses and methods
US20070283050A1 (en) * 2006-06-05 2007-12-06 Seagate Technology, Llc Scheduling reporting of synchronization states
US7861005B2 (en) * 2006-06-12 2010-12-28 Research In Motion Limited Method and apparatus for folder synchronization and management
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US20080046437A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Manual Conflict Resolution for Background Synchronization
US20080027996A1 (en) * 2006-07-31 2008-01-31 Morris Robert P Method and system for synchronizing data using a presence service
US8453066B2 (en) 2006-11-06 2013-05-28 Microsoft Corporation Clipboard augmentation with references
US20080109464A1 (en) * 2006-11-06 2008-05-08 Microsoft Corporation Extending Clipboard Augmentation
US8020112B2 (en) * 2006-11-06 2011-09-13 Microsoft Corporation Clipboard augmentation
US7805420B2 (en) * 2006-11-20 2010-09-28 Microsoft Corporation Versioning and concurrency control for multiple client access of data
US7921189B2 (en) * 2006-11-20 2011-04-05 Microsoft Corporation Single virtual client for multiple client access and equivalency
GB2444344A (en) * 2006-12-01 2008-06-04 David Irvine File storage and recovery in a Peer to Peer network
US7548923B2 (en) * 2007-01-05 2009-06-16 Microsoft Corporation Sync configuration and discovery support
US8266706B2 (en) * 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
US8751442B2 (en) 2007-02-12 2014-06-10 Microsoft Corporation Synchronization associated duplicate data resolution
US7930270B2 (en) * 2007-02-26 2011-04-19 Microsoft Corporation Managing files on multiple computing devices
US7933296B2 (en) * 2007-03-02 2011-04-26 Microsoft Corporation Services for data sharing and synchronization
US7756995B1 (en) * 2007-03-28 2010-07-13 Amazon Technologies, Inc. Regulating transmission rates
US7900203B2 (en) * 2007-04-24 2011-03-01 Microsoft Corporation Data sharing and synchronization with relay endpoint and sync data element
US7725456B2 (en) * 2007-04-27 2010-05-25 Microsoft Corporation Item management with data sharing and synchronization
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
US8239479B2 (en) * 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US7831558B2 (en) 2007-06-22 2010-11-09 Microsoft Corporation Bi-directional data modification with synchronization
US7720920B2 (en) * 2007-06-27 2010-05-18 Microsoft Corporation Client side based data synchronization and storage
US8887298B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Updating and validating documents secured cryptographically
US8887297B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
CN100501744C (zh) * 2007-09-29 2009-06-17 腾讯科技(深圳)有限公司 一种文档同步方法及系统
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US9143561B2 (en) * 2007-11-09 2015-09-22 Topia Technology, Inc. Architecture for management of digital files across distributed network
CN101471845B (zh) * 2007-12-27 2011-06-15 中国移动通信集团公司 数据块副本数量调整方法及元数据服务器节点
JP4416035B2 (ja) * 2007-12-28 2010-02-17 村田機械株式会社 中継サーバ及び中継通信システム
JP4549396B2 (ja) * 2008-01-18 2010-09-22 日立オートモティブシステムズ株式会社 車両制御装置
US8086565B2 (en) * 2008-02-18 2011-12-27 Microsoft Corporation File system watcher in the presence of different file systems
US20090234872A1 (en) * 2008-03-11 2009-09-17 Microsoft Corporation Synchronization of disconnected/offline data processing/entry
US9213699B2 (en) * 2008-04-30 2015-12-15 Aspect Software Inc. Super-object in administering system
US8296671B2 (en) 2008-05-01 2012-10-23 Microsoft Corporation Enabling access to rich data by intercepting paste operations
US8244681B2 (en) * 2008-06-09 2012-08-14 Symantec Operating Corporation Creating synthetic backup images on a remote computer system
US8090681B2 (en) * 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
US8649276B2 (en) * 2008-07-31 2014-02-11 Microsoft Corporation Content transfer
US8103718B2 (en) * 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8458128B2 (en) * 2008-08-26 2013-06-04 Microsoft Corporation Minimal extensions required for multi-master offline and collaboration for devices and web services
US8799214B2 (en) * 2008-11-21 2014-08-05 At&T Intellectual Property I, L.P. Methods, computer program products, and systems for automatically synchronizing directory structures across different applications
CN101459697B (zh) * 2009-01-07 2012-01-04 清华大学 一种共享文件的访问方法和装置
US9065868B2 (en) 2009-04-08 2015-06-23 Blackberry Limited System and method for sharing data in a group of mobile devices
EP2239922B1 (en) * 2009-04-08 2014-10-01 BlackBerry Limited System and method for sharing data in a group of mobile devices
US9917702B2 (en) * 2009-04-08 2018-03-13 Blackberry Limited System and method for managing items in a list shared by a group of mobile devices
US8694578B2 (en) * 2009-05-29 2014-04-08 Microsoft Corporation Swarm-based synchronization over a network of object stores
JP5625315B2 (ja) * 2009-10-22 2014-11-19 船井電機株式会社 画像表示装置および画像表示システム
US20110149086A1 (en) * 2009-12-23 2011-06-23 Winbush Iii Amos Camera user content synchronization with central web-based records and information sharing system
US8503984B2 (en) * 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8606889B2 (en) * 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
US9418071B2 (en) * 2010-03-19 2016-08-16 Seagate Technology Llc Method and system for automatically initiating a file aggregation process between communicatively coupled devices
US20110231424A1 (en) * 2010-03-19 2011-09-22 Seagate Technology Llc Method and system for automated file aggregation on a storage device
US8719845B2 (en) * 2010-05-19 2014-05-06 Microsoft Corporation Sharing and synchronization of objects
US20120066590A1 (en) * 2010-09-10 2012-03-15 Jeffrey Harris Systems and Methods for Enhanced Font Management
US8983907B2 (en) * 2010-12-08 2015-03-17 Microsoft Technology Licensing, Llc Change notifications from an updated data representation
US8666997B2 (en) 2010-12-08 2014-03-04 Microsoft Corporation Placeholders returned for data representation items
CN102567388B (zh) * 2010-12-17 2013-10-09 日电(中国)有限公司 数据更新设备和方法
US8635187B2 (en) 2011-01-07 2014-01-21 Symantec Corporation Method and system of performing incremental SQL server database backups
US8700986B1 (en) 2011-03-18 2014-04-15 Google Inc. System and method for displaying a document containing footnotes
US9069829B2 (en) * 2011-01-21 2015-06-30 Microsoft Technology Licensing, Llc Data items manager
US9514176B2 (en) * 2011-02-10 2016-12-06 Nec Corporation Database update notification method
US8510266B1 (en) 2011-03-03 2013-08-13 Google Inc. System and method for providing online data management services
JP2014519085A (ja) 2011-05-10 2014-08-07 トムソン ライセンシング 同期コンテンツの共有のための技術
US8838533B2 (en) 2011-05-20 2014-09-16 Microsoft Corporation Optimistic application of data edits
US9049176B2 (en) 2011-06-22 2015-06-02 Dropbox, Inc. File sharing via link generation
CN103095769B (zh) * 2011-11-04 2015-12-09 阿里巴巴集团控股有限公司 跨机房的数据同步方法以及系统
US9355115B2 (en) * 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
US9164997B2 (en) * 2012-01-19 2015-10-20 Microsoft Technology Licensing, Llc Recognizing cloud content
US9141634B2 (en) * 2012-01-21 2015-09-22 Huawei Technologies Co., Ltd. Method for automatic data replication and terminal
CN102662901A (zh) * 2012-04-11 2012-09-12 南方电网科学研究院有限责任公司 一种一体化电力信息总线参数同步的实现方法
US10057318B1 (en) 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
CH706996A1 (en) * 2012-09-20 2014-03-31 Ferag Ag Operating unit with applications for operating production systems.
US9632771B2 (en) * 2012-12-13 2017-04-25 Microsoft Technology Licensing, Llc Association of metadata with source code and applications and services premised thereon
CN103873451B (zh) * 2012-12-17 2017-03-29 中国移动通信集团公司 一种数据同步的方法、设备和系统
US9270630B1 (en) 2013-01-23 2016-02-23 Google Inc. Integrating communication modes in persistent conversations
US9338403B2 (en) 2013-01-23 2016-05-10 Google Inc. Persistent conversations
US9253223B1 (en) 2013-01-23 2016-02-02 Google Inc. Live interaction in persistent conversations
US9369517B2 (en) 2013-03-01 2016-06-14 International Business Machines Corporation Synchronized data changes
US20140259005A1 (en) * 2013-03-08 2014-09-11 Air Computing, Inc. Systems and methods for managing files in a cloud-based computing environment
US9189533B2 (en) * 2013-05-29 2015-11-17 Microsoft Technology Licensing, Llc Sync framework extensibility
US10061836B2 (en) * 2013-06-04 2018-08-28 Varonis Systems, Ltd. Delegating resembling data of an organization to a linked device
US9930132B2 (en) * 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
CN103944709A (zh) * 2014-03-26 2014-07-23 小米科技有限责任公司 一种数据同步方法及装置
US10140309B2 (en) * 2014-06-10 2018-11-27 Alfresco Software, Inc. File tracking on client machines synchronized with a content management system repository
US9626367B1 (en) 2014-06-18 2017-04-18 Veritas Technologies Llc Managing a backup procedure
US10291735B2 (en) 2014-07-23 2019-05-14 Facebook, Inc. Residential cache appliance utilizing a social network
US10397357B2 (en) 2014-07-23 2019-08-27 Facebook, Inc. Rural area network device
FR3024869B1 (fr) * 2014-08-14 2016-08-26 Zodiac Aero Electric Systeme de distribution electrique pour un aeronef et procede de commande correspondant
CN106233274B (zh) 2014-08-27 2020-01-07 惠普发展公司有限责任合伙企业 一种在计算装置之间同步文件的方法、系统和计算装置
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
US9563638B2 (en) 2015-01-30 2017-02-07 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
CN107426319B (zh) * 2015-01-30 2019-03-26 卓普网盘股份有限公司 存储受约束的共享内容项同步方法、系统和存储介质
US9185164B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US9413824B1 (en) 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US11003632B2 (en) * 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US10546139B2 (en) * 2017-04-21 2020-01-28 Ntropy Llc Systems and methods for securely transmitting large data files
US10057269B1 (en) * 2017-04-21 2018-08-21 InfoSci, LLC Systems and methods for device verification and authentication
US11463439B2 (en) 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
US10565168B2 (en) 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US10678809B2 (en) 2017-09-11 2020-06-09 Microsoft Technology Licensing, Llc Synchronizing non-file content stored on a collaborative workspace environment
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US11237692B2 (en) 2019-04-29 2022-02-01 Slack Technologies, Llc Method, apparatus and computer program product for providing a member calendar in a group-based communication system
CN114521256A (zh) 2019-09-16 2022-05-20 阿韦瓦软件有限责任公司 用于在网络上和通过网络进行双向文件共享和同步的计算机化的系统和方法
US11550732B2 (en) 2020-02-22 2023-01-10 International Business Machines Corporation Calculating and adjusting ghost cache size based on data access frequency
US11281594B2 (en) 2020-02-22 2022-03-22 International Business Machines Corporation Maintaining ghost cache statistics for demoted data elements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002075539A2 (en) * 2001-03-16 2002-09-26 Novell, Inc. Client-server model for synchronization of files
US20020165981A1 (en) * 2000-06-28 2002-11-07 Erol Basturk Method and apparatus for establishing and sharing a virtual change notification list among a plurality of peer nodes

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US99728A (en) * 1870-02-08 Improved process op treating petroleum
US19857A (en) * 1858-04-06 Henry a
US194171A (en) * 1877-08-14 Improvement in wringing-machines
US95497A (en) * 1869-10-05 James r
US3086A (en) * 1843-05-12 Seth lamb
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
DE69024753T2 (de) 1989-10-31 1996-05-30 Hewlett Packard Co Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
GB2272312A (en) 1992-11-10 1994-05-11 Ibm Collaborative working in a network.
US5844553A (en) 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US5603019A (en) * 1994-07-25 1997-02-11 International Business Machines Corporation Takeover technique for networked virtual filesystems
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
US5729682A (en) 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US6147773A (en) * 1995-09-05 2000-11-14 Hewlett-Packard Company System and method for a communication system
US5708812A (en) * 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US5968121A (en) * 1997-08-13 1999-10-19 Microsoft Corporation Method and apparatus for representing and applying network topological data
US6085199A (en) * 1997-11-24 2000-07-04 International Business Machines Corporation Method for distributing a file in a plurality of different file formats
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US6119116A (en) * 1997-12-18 2000-09-12 International Business Machines Corp. System and method for accessing and distributing audio CD data over a network
US5950203A (en) * 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
US6381627B1 (en) * 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
US6324571B1 (en) * 1998-09-21 2001-11-27 Microsoft Corporation Floating single master operation
US7076476B2 (en) 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
US6654771B1 (en) * 1999-07-19 2003-11-25 Microsoft Corporation Method and system for network data replication
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6751634B1 (en) * 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
US6505214B1 (en) * 1999-09-28 2003-01-07 Microsoft Corporation Selective information synchronization based on implicit user designation
US7162499B2 (en) 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US20050055382A1 (en) * 2000-06-28 2005-03-10 Lounas Ferrat Universal synchronization
US6954778B2 (en) 2000-07-12 2005-10-11 Microsoft Corporation System and method for accessing directory service via an HTTP URL
US7085833B2 (en) 2001-01-17 2006-08-01 Microsoft Corporation Caching user network access information within a network
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
US6643670B2 (en) * 2001-02-27 2003-11-04 Microsoft Corporation Efficient replication of an expanded partial database
US6985915B2 (en) * 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US6879564B2 (en) * 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6718352B1 (en) * 2001-03-20 2004-04-06 Emc Corporation Methods and apparatus for managing a data set stored on a data storage device
EP1374093B1 (en) 2001-03-27 2013-07-03 BRITISH TELECOMMUNICATIONS public limited company File synchronisation
US7774307B2 (en) * 2001-07-24 2010-08-10 Siebel Systems, Inc. Method and apparatus for synchronizing a database with a third party database
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7177935B2 (en) * 2001-10-05 2007-02-13 International Business Machines Corporation Storage area network methods and apparatus with hierarchical file system extension policy
CA2467404A1 (en) * 2001-11-15 2003-05-30 Visto Corporation System and methods for asychronous synchronization
US20030172070A1 (en) * 2002-03-06 2003-09-11 Sawadsky Nicholas Justin Synchronous peer-to-peer multipoint database synchronization
US6938042B2 (en) * 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US8037181B2 (en) 2002-06-28 2011-10-11 Microsoft Corporation Re-partitioning directories
US7668885B2 (en) * 2002-09-25 2010-02-23 MindAgent, LLC System for timely delivery of personalized aggregations of, including currently-generated, knowledge
US7640324B2 (en) 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165981A1 (en) * 2000-06-28 2002-11-07 Erol Basturk Method and apparatus for establishing and sharing a virtual change notification list among a plurality of peer nodes
WO2002075539A2 (en) * 2001-03-16 2002-09-26 Novell, Inc. Client-server model for synchronization of files

Also Published As

Publication number Publication date
EP1452978A3 (en) 2006-01-25
KR20040077566A (ko) 2004-09-04
EP1452978A2 (en) 2004-09-01
US7743022B2 (en) 2010-06-22
CN1542637A (zh) 2004-11-03
US20040172423A1 (en) 2004-09-02
JP2004265418A (ja) 2004-09-24

Similar Documents

Publication Publication Date Title
CN1542637B (zh) 同步在对等计算设备中共享的数据的方法和系统
CN101448212B (zh) 用于操作无线服务器的装置和方法
EP1617626B1 (en) Remote access to content management information through a server
EP3235213B1 (en) No password user account access
JP6186015B2 (ja) コンテンツアイテムの共有
JP4955682B2 (ja) ピアツーピア同期化アプリケーションにおけるセキュリティ
US9928051B2 (en) System and method for installing a client application using a light installer
CN105721576B (zh) 无线通信系统的安装
US7523173B2 (en) System and method for web page acquisition
US20090240698A1 (en) Computing environment platform
EP3814903B1 (en) Systems and methods for initiating processing actions utilizing automatically generated data of a group-based communication system
US20040143836A1 (en) System and method for sharing objects among two or more electronic devices
CN101802808B (zh) 从脚本和其他编程环境访问设备主存的服务
US8578372B2 (en) Business-in-a-box integration server and integration method
CN101588262A (zh) 移动无线设备的远程管理
WO2008026823A1 (en) Method and apparatus for synchronizing contents
EP2582118B1 (en) Method, server and system for sharing information
KR20230135021A (ko) 저장된 컨텐츠를 공유하는 방법과 서버 및 단말
KR101344828B1 (ko) 디지털 콘텐츠 유통 방법 및 시스템
KR101879812B1 (ko) 클라이언트 프로그램이 탑재된 사용자 단말, 클라우드 장치, 관리 서버 및 이를 포함하는 클라우드 서비스 시스템
KR101974339B1 (ko) 네트워크 시스템 및 제어 방법
KR101228424B1 (ko) 모바일 디바이스용 가상 데스크탑 파일 접근 서비스 시스템 및 그 방법
JP7334260B2 (ja) 複数のデータ構造を管理するための通信装置、通信方法、コンピュータプログラム、非一時的な記憶媒体および通信システム
KR100492379B1 (ko) 무선단말기를 이용한 데이터의 관리방법 및데이터관리시스템

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: 20150515

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

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121128

Termination date: 20200226