CN1794227A - 不用快照的项同步***和方法 - Google Patents

不用快照的项同步***和方法 Download PDF

Info

Publication number
CN1794227A
CN1794227A CNA2005101250630A CN200510125063A CN1794227A CN 1794227 A CN1794227 A CN 1794227A CN A2005101250630 A CNA2005101250630 A CN A2005101250630A CN 200510125063 A CN200510125063 A CN 200510125063A CN 1794227 A CN1794227 A CN 1794227A
Authority
CN
China
Prior art keywords
structural data
peer
unstructured document
stream
change
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.)
Granted
Application number
CNA2005101250630A
Other languages
English (en)
Other versions
CN100555279C (zh
Inventor
I·胡迪斯
L·诺维克
R·M·拉奥
S·H·阿加瓦尔
V·J·贾弗瑞
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 CN1794227A publication Critical patent/CN1794227A/zh
Application granted granted Critical
Publication of CN100555279C publication Critical patent/CN100555279C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的各实施例针对用于在不准许在同步期间对大型非结构化混合元素(ME)文件流拍快照的硬件/软件接口***环境中的对等计算机***之间同步包括结构化数据和非结构化文件流的ME的***和方法。对于若干这样的实施例,该方法包括用两个步骤同步ME,一个步骤用于对ME的结构化数据分量拍快照(以及文件流的cv而非文件流本身),另一步骤用于锁定文件流,并当且仅当锁定之后确定文件流自从ME数据分量快照时以来未改变,才将文件流发送到接收同步对等体。

Description

不用快照的项同步***和方法
相关申请的交叉引用
本申请的主题涉及以下共同转让的申请中公开的发明,这些申请通过引用整体结合到本申请中:2003年3月21日提交的名为“GHOSTEDSYNCHRONIZATION(重影同步)”的美国专利申请第10/403,781号;与其同一日提交的名为“SYNCHRONIZATION WITH DERIVED METADATA(用导出的元数据的同步)”的美国专利申请第___(308672.01)号;2004年9月1日提交的名为“SYSTEMS AND METHODS FOR THE PROPOGATION OF CONFLICTRESOLUTION TO ENFORCE ITEM CONVERGENCE(I.E.,DATACONVERGENCE)(用于传播冲突分解以强迫项收敛(即,数据收敛)的***和方法)”的美国专利申请第10/932,474号,该申请进而要求2004年4月1日提交的名为“SYSTEMS AND METHODS FOR THE PROPOGATION OF CONFILCTRESOLUTION TO ENFORCE ITEM CONVERGENCE(I.E.,DATACONVERGENCE)(用于传播冲突分解以强迫项收敛(即,数据收敛)的***和方法)”的美国临时申请第60/558,338号的优先权;2003年8月21日提交的名为“SYSTEMS AND METHODS FOR INTERFACING APPLICATION PROGRAMSWITH ITEM-BASED STORAGE PLATFORM(用于将应用程序与基于项的存储平台接口的***和方法)”的美国专利申请第10/6436,575号;2003年8月21日提交的名为“STORAGE PLATFORM FOR ORGANIZING SEARCHING,ANDSHARING DATA(用于组织搜索和共享数据的存储平台)”的美国专利申请第10/646,646号;2003年10月24日提交的名为“SYSTEMS AND METHODS FORPROVDING SYNCHRONIZATION SERVICES FOR UNITS OF INFORMATIONMANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM(用于提供可由硬件/软件接口***管理的信息单元的同步服务的***和方法)”的美国专利申请第10/692,508号;2003年10月24日提交的名为“SYSTEMS AND METHODSFOR THE IMPLEMENTATION OF SYNCHRONIZATION SCHEMAS FOR UNITSOF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWAREINTERFACE SYSTEM(用于实现可由硬件/软件接口***管理的信息单元的同步模式的***和方法)”的美国专利申请第10/693,362号;以及2004年6月30日提交的名为“SYSTEMS AND METHODS FOR PROVIDING CONFLICT HANDLINGFOR PEER-TO-PEER SYNCHRONIZATION OF UNITS OF INFORMATIONMANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM(用于为可由硬件/软件接口***管理的信息单元的对等同步提供冲突处理的***和方法)”的美国专利申请第10/883,621号;以及其中所述和/或交叉引用的美国专利申请(后文总称为“基本专利申请”)。
技术领域
本发明一般涉及跨计算机***的数据的同步,尤其涉及在不准许在同步期间对大型非结构化混合元素(ME)文件流拍快照的硬件/软件接口***环境中的对等计算机***之间同步包括结构数据和非结构化文件流的混合元素。
背景技术
对等同步环境及其底层硬件/软件接口***在先前所述的基本专利申请中有详细揭示。概括而言,基本专利申请描述了一种硬件/软件接口***(诸如但不限于,操作***),其中,特别地,自治可存储信息单元(项)包括若干分量改变单元(CU),它们构成了用于同步的基本数据改变元素。每一CU具有相关联的元数据,该元数据使得同步***能够跟踪需要在对等计算机***上更新哪些改变,以及应当应用从其它对等计算机***接收的哪些改变。
对于某些硬件/软件接口***,包括基本专利申请中所描述的那一种,某些自治可存储信息单元(例如,项)可以是两种类型:结构化的或混合的。结构化元素(SE)仅包括丰富结构化的数据,而混合元素(ME)包括丰富结构的数据和非结构化文件流两者。对于同步,SE满足某些大小限制,并且能够容易地被同步,因为它足够小,以创建所需的副本。然而,ME通常用于超出项的正常限制的数据结构,并且由于其大小,它们无法被容易地复制。
对于某些硬件/软件接口***,包括基本专利申请中所描述的那一种,项的同步通常是在事务隔离层(TIL)处执行的,该层允许目标项在同步期间被复制。具体地,目标项被“拍快照”,使得在它被复制到同步对等体的同时它不能被写入另一进程,相反,做出目标项的副本并由其它进程修改,且一旦所述目标项的同步完成,该副本然后覆盖原始的项。该按需复制本质上允许同步***防止目标项在它被复制到同步对等体的同时改变(并由此提供了完成的“快照”,该快照在同步过程的操作期间保持不变),同时允许其它进程对目标项的副本做出改变,一旦所述目标项的同步完成,这一副本最终将替代该目标项。该特定的TIL可被称为快照TIL(STIL)。
然而,尽管可使用快照TIL来同步SE,情况通常是,因为文件流本身的大小以及创建非常大的数据对象的甚至一个临时副本的不合需要性,不能对ME的文件流做出快照。因此,本领域中需要一种用于在不准许在同步期间对大型的非结构化ME文件流拍快照的硬件/软件接口***环境中的对等计算机***之间同步ME,尤其是用于同步ME的文件流分量的***和方法。
发明内容
本发明的各实施例针对用于在不准许在同步期间对大型的非结构化ME文件流拍快照的硬件/软件接口***环境中的对等计算机之间同步ME(尤其是用于同步ME的文件流分量)的***和方法。对于若干这样的实施例,该方法包括用两个步骤同步ME,一个步骤用于对ME的结构化数据分量(以及文件流的cv,但不是文件流本身)拍快照,另一个步骤用于锁定文件流,并当且仅当被锁定之后将文件流发送到接收对等体,确定该文件流自从ME数据分量快照时间以来没有改变。
在同步期间,使用快照TIL同步ME的结构数据分量,并且在拍该快照时的对应的文件流当前版本(cvF)作为第一值(cvF0)储存。(ME的文件流包括其自己的改变单元,并由此具有其自己的改变版本。)然后,当文件流准备好在同步期间复制时(如有必要,基于同步要求),锁定文件流本身(以防止另一进程改变该文件流),并且在被复制之前,再次检查cvF以确定要与第一值(cvF0)比较的第二值(cvF1)。如果两个值相同(指示文件流未改变),则将文件流复制到同步对等体。另一方面,如果cvF1与cvF0不同,则指示文件流自对ME的结构化数据拍快照以来已被更新,在这一情况下,文件流不被复制,且该文件流的改变单元反映了同步的“异常”,即,发生了同步错误,并且这已被接收同步对等体注意到,并且及时地引导至在两个对等体之间的下一同步操作期间同步ME的后续尝试。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明,附图中示出了本发明的示例性构造,然而,本发明不限于所揭示的具体方法和手段。附图中:
图1是示出其中可结合本发明的各方面的计算机***的框图,
图2A是示出具有多个属性的结构化元素(SE)的框图,
图2B是示出包括结构化数据分量和非结构化文件流两者的混合元素(ME)的框图,
图3是示出结合本发明的若干实施例用于同步SE(以及如后文所讨论的ME的结构化部分)的方法的过程流程图,以及
图4是示出用于同步ME的方法的步骤的过程流程图,该方法代表了用于本发明的若干实施例的方法。
具体实施方式
本发明是用细节来描述的,以满足法定要求。然而,该描述本身并不旨在限制本发明的范围。相反,发明人构想要求保护的本发明也可用其它方式来实施,以包括类似于本文档中结合其它现有或未来技术所描述的步骤的不同步骤或步骤组合。此外,尽管此处可使用术语“步骤”来意味着所采用的方法的不同元素,然而该术语不应当被解释为暗示此处所揭示的各个步骤之中或之间的任何特定顺序,除非且处理明确地描述了个别步骤的顺序。
计算机环境
本发明的众多实施例可在计算机上执行。图1及以下讨论提供了对适于在其中实现本发明的计算环境的简要概括描述。尽管并非所需,但本发明将在诸如由客户机工作站或服务器等计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以用其它计算机***配置来实施,包括手持式设备、多处理器***、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如图1所示,一个示例性通用计算***包括常规个人计算机20或其类似物,包括处理单元21、***存储器22以及将包括***存储器22的各类***组件耦合至处理单元21的***总线23。***总线23可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线体系结构的局部总线。***存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出***(BIOS)26包含如在启动时协助在计算机20内的元件之间传输信息的基本例程,储存在ROM 24中。个人计算机20也可包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光盘31,如CD-ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至***总线23。驱动器及其相关的计算机可读介质为计算机20提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管这里描述的示例性环境采用了硬盘、可移动磁盘29以及可移动光盘31,本领域的技术人员应当理解,示例性操作环境中也可以使用可存储可由计算机访问的数据的其它类型的计算机可读介质,包括盒式磁带、闪存卡、数字视频盘、Bernoulli盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可存储在硬盘、磁盘29、光盘31、ROM 24或RAM 25中,包括操作***35、一个或多个应用程序36、其它程序模块37以及程序数据38。用户可以通过诸如键盘40和定点设备42等输入设备向计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至***总线的串行端口接口46连接到处理单元21,但也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器47或其它类型的显示设备也通过接口,如视频适配器48连接到***总线23。除监视器47之外,个人计算机通常包括其它***输出设备(未示出),如扬声器和打印机。图1的示例性***还包括主机适配器55、小型计算机***接口(SCSI)总线56以及连接到SCSI总线56的外部存储设备62。
个人计算机20可以使用到一个或多个远程计算机,如远程计算机49的逻辑连接在网络化环境中操作。远程计算机49可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它普通网络节点,并通常包括许多或所有相对于计算机20所描述的元件,尽管在图1中仅示出了存储器存储设备50。图1描述的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机20通过网络接口或适配器53连接至局域网51。当在WAN网络环境中使用时,计算机20通常包括调制解调器54或用于通过广域网52,如因特网建立通信的其它装置。调制解调器54可以是内置或外置的,它通过串行端口接口46连接至***总线23。在网络化环境中,相对于计算机20所描述的程序模块或其部分可存储在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
尽管可以预想本发明的众多实施例尤其适用于计算机化的***,然而本文档中没有任何内容旨在将本发明限于这些实施例。相反,如此处所使用的术语“计算机***”旨在包含能够储存和处理信息和/或能够使用所储存的信息来控制设备本身的行为或执行的任何和所有设备,而不论这些设备本质上是电子的、机械的、逻辑的还是虚拟的。
基本同步
先前所述的基本专利申请中已详细揭示了对等同步环境及其底层硬件/软件接口***。概括而言,基本专利申请描述了一种硬件/软件接口***(诸如但不限于,操作***),其中,特别地,自治可存储信息单元(项)包括若干分量改变单元(CU),它们构成了用于同步的基本数据改变元素。每一CU具有相关联的元数据,该元数据使得同步***能够跟踪要在对等计算机***上更新哪些改变以及应当应用从其它对等计算机***接收的哪些改变。
CU本质上是一组属性,它们总是作为一个单元来同步。例如,联系人项的名和姓属性可以共同构成单个改变单元。另外,“版本”与每一改变单元相关联,以表示对该改变单元做出特定改变的最后一个伙伴以及对应于何时做出该更新的时间标记。由此,如此处所使用的,并为表示法的简单起见,伙伴由字母来表示,版本由递增的整数来表示,使得通过简单地将伙伴(例如“A”)与时间标记(例如“1”)配对,每一改变单元具有唯一的标识号与其相关联,该标识号反映了每一伙伴在特定时刻做出的最新改变一例如,“A1”。
使用用于同步的改变单元和元数据的***的基本同步的一个示例性形式(或类似的结构)可以一般按照用于存在于两个对等计算机***上的项的单个改变单元来描述。对于该单个改变单元,第一对等体,即伙伴A(或更简单地为“A”)通过向第二对等体,即伙伴B(或更简单地为“B”)发送涉及其改变单元(CUa)的复制品的其当前元数据(Ma)请求来自B的改变。在接收到Ma(对应于CUa)之后,伙伴B将该元数据与其自己的用于同一改变单元(CUb)的复制品的元数据(Mb)进行比较。然后,如果Mb反映了未在Ma中反映的对CUb的任何改变,则B将CUb和Mb两者发送到A,否则B仅将其Mb发送到A(或者可选地,将“没有更新”指示符发送到A),因为CUa已经反映了对CUb做出的所有更新,并且由此,将CUb从B复制到A不是必需的。
基于B对其同步请求的响应,如果A仅从B接收回Mb(或者可选地,“没有更新”指示符),但没有接收到CUb,则A知道CUa要么与CUb相同,要么比CUb更新。然而,如果A从B接收回Mb和CUb两者,则A然后必须通过Ma与Mb的比较来确定CUb是否比CUa更新,或者CUa和CUb是否具有冲突的改变。如果CUb比CUa更新,则A然后用CUb更新CUa,并且A也用Mb来更新Ma。另一方面,如果CUa和CUb具有冲突的改变,则A依照其本地冲突分解过程来分解该冲突。例如,如果在本情况下A的冲突分解过程是选择本地解决方案优于远程解决方案,则A将继续保留CUa(拒绝CUb的改变),并更新Ma以包括已反映Ma和Mb的所有更新(Ma和Mb的并集)。之后,当B然后使用同一过程与A同步时(并假定没有介于其间的额外改变),将得出结论,CUa比CUb更新,并用CUa来更新CUb。
对于这一基本同步模式,每一改变单元的元数据包括两个分量:指示改变单元的当前“更新”状态的当前版本(cv),以及对应于对对等共同体中的每一伙伴(或至少已做出任何改变的那些伙伴)的所述改变单元所发生的更新的知晓向量(av)(也成为“版本数组”)。改变单元元数据的典型格式是<改变版本,知晓向量>,或更简单地为<cv,[av]>。这一信息共同可用于任一地确定例如伙伴A上具有元数据(Ma)<A13,[A13,B11]>的改变单元(CUa)比伙伴B上具有元数据(Mb)<B11,[A12,B11]>的改变单元更新,因为假设每一版本号的时间标记部分随时间的增长而递增,Ma包括未在Mb中反映的改变(即,A13)。
快照和文件流
对于某些硬件/软件接口***,包括基本专利申请中所描述的那一种,某些自治可存储信息单元(例如,项)可以是两种类型:结构化的或混合的。结构化元素(SE)仅包括丰富结构化的数据,而混合元素(ME)包括丰富结构化的数据和非结构化文件流两者。图2A是示出具有多个属性204的SE 202的框图。SE仅由结构化数据组成,并且由此包括结构化数据分量206。图2B是示出具有多个属性204的ME 121的框图,属性之一是到ME的文件流208的链接204’。ME 212的结构化数据分量206是可以与非结构化文件流208区分的,非结构化文件流208表示ME的非结构化数据分量。对于同步,SE满足某些大小限制,并且能够容易地同步,因为它足够小以在需要时创建副本。然而,ME通常用于超出项的正常限制的数据结构,并且由于其大小,因为本领域的技术人员已知的那些原因,不能被容易地复制、同步等等。
对于某些硬件/软件接口***,包括基本专利申请中所描述的那一种,项的同步通常是以事务隔离级(TIL)执行的,该级虽然防止目标项在同步期间被改变,但是相反,向希望改变目标项的其它进程提供副本,然后一旦目标项完成其同步,就用该副本来更新目标项。该快照TIL(STIL)本质上允许同步***在按需的基础上创建目标项的副本(“快照”),以供其它进程修改,使得目标项本身在所述目标项的同步期间被复制到同步对等体时不被改变。
图3是示出结合本发明的若干实施例用于同步SE(以及如后文所描述的ME的结构部分)的方法的过程流程图。在图中,第一步骤302是对改变单元(在这一情况下是目标项)“拍快照”,使得如果在步骤304在完成将所述改变单元复制到同步对等体时的任何时刻任何其它进程试图对该改变单元做出改变,则对该改变单元做出副本。一旦复制完成,然后在步骤306,使用该目标项的副本来更新(例如,替换)目标项。
不用快照的同步
尽管SE可使用快照TIL来同步,然而情况通常是由于若干原因而没有对ME的文件流做出快照,最明显的原因是文件流本身的大小以及创建非常大的数据对象的临时副本的不合需要性。
本发明的各种实施例针对用于在不准许在同步期间对大型非结构化ME文件流拍快照的硬件/软件接口***环境中的对等计算机***之间同步ME(尤其是同步ME的文件流分量)的***和方法。对于若干这样的实施例,该方法包括用两个步骤同步ME,一个步骤用于对ME的结构化数据分量(以及文件流的cv但不是文件流本身)拍快照,另一个步骤用于锁定该文件流,并当且仅当锁定之后确定文件流自从ME数据分量快照时刻以来没有改变时,才将文件流发送到接收同步对等体,。
图4是示出用于同步ME的方法的步骤的过程流程图。在步骤402,为开始特定改变单元(ME项)的同步,使用快照TIL对ME的结构化数据分量(SDC)拍快照(即,在同步期间对副本而对非目标项做出改变,然后在同步完成之后应用改变),在步骤404,将拍快照时刻对应的文件流当前版本(cvF)(例如,cvF值可以直接从ME结构化数据的快照中的文件流属性中取出)作为第一值(cvF0)储存。(ME的文件流包括其自己的改变单元,并且由此具有其自己的改变版本,并且该值也可以作为文件流属性的一部分储存在ME的结构化数据部分中。)然后,在步骤406,锁定文件流,并且在步骤408,再次检查cvF以确定第二值(cvF1),在步骤410,将该第二值与第一值(cvF0)进行比较,如果两个值相同(即,如果cvF1不大于cvF0,由此指示文件流未改变),则在步骤412将文件流复制到同步对等体,一旦完成,在步骤416解锁文件流。另一方面,如果cvF1与cvF0不同(即,如果cvF1大于cvF0),则这指示文件流自从ME的结构数据被拍快照以来已改变,在这一情况下,文件流不被复制,并且文件流的改变单元反映了对步骤414处的同步的“异常”—即,发生同步失败,并且这被接收同步对等体注意到,并及时引导至在两个对等体之间的下一同步期间同步ME的尝试—在步骤416,再次解锁文件流。
除上述之外,并再次参考图4,如果在步骤406不能获得文件流上的锁定,则再次发生步骤414的异常,但是在步骤416无需任何解锁。(该锁定失败异常路径未在图中示出)。应当注意,锁定可以通过一系列标准函数调用来获得,例如固有地锁定读目标的事务读操作。
对于较大的同步图片,并使用此处所描述的某些实施,采用该方法的同步算法将如下进行。该同步***首先使用其正常的改变枚举过程来标识同步复制品中的哪些项(即,改变单元)已改变。如果项是结合对SDC(但不是文件流)拍快照的ME,则该改变枚举也读取文件流的改变版本。然后,对于ME,同步***在离开快照事务之后的某一点处锁定文件流,并且一旦获得了锁定就读取文件流的改变版本。如果文件流的改变版本自从对SDC拍快照以来没有改变,则同步***继续将文件流的内容读到同步对等体是安全的,因为它被锁定因此在读/复制文件流期间它不能被修改。另一方面,如果文件流的cV的第二次读取取出了该流的一个新的改变单元版本,则这指示文件流在该过程离开快照事务和锁定的文件流的时间之间文件流被修改。在这一情况下,创建一“异常”,它向同步伙伴指示该元素未被同步,但是需要在后续的同步操作中同步—即,文件流未在该次特定同步中发送,但是维护了关于以下事实的足够信息:它未被发送,在后续的同步过程中,将做出另一尝试来同步该ME。
结论
此处所描述的各种***、方法和技术可以用硬件或软件,或在适当时用两者的组合来实现。由此,本发明的方法和装置或其某些部分可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器中并由其执行时,该机器变为用于实施本发明的装置。在可编程计算机上的程序代码执行的情况下,计算机一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序较佳地用高级过程语言或面向对象的编程语言来实现,以与计算机***通信。然而,如有需要,程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是已编译或已解释语言,并与硬件实现相组合。
本发明的方法和装置也可用程序代码的形式来实施,该程序代码通过某一传输介质来发送,如通过电线或电缆、通过光纤或通过任一其它形式的传输,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户机计算机、录像机等的机器接收并装载到其中由其执行时,该机器变为用于实施本发明的装置。当在通用处理器上实现时,程序代码与处理器相结合,以提供用于执行本发明的索引功能的唯一装置。
尽管本发明是结合各附图的较佳实施例来描述的,但是可以理解,可使用其它类似的实施例,或者可对所描述的实施例做出修改和添加,来实现本发明的相同功能而不偏离本发明。例如,尽管本发明的示例性实施例是在仿真个人计算机的功能的数字设备的环境中描述的,然而本领域的技术人员可以认识到,本发明不限于这样的数字设备,如本申请中所描述的,本发明可应用于任何数量的现有或新兴计算设备或环境,诸如游戏控制台、手持式计算机、便携式计算机等等,无论它们是有线的还是无线的,本发明也可应用于通过通信网络链接并通过网络交互的任何数量的这样的计算设备。此外,应当强调,此处构想了各种计算机平台,包括手持式设备操作***和其它应用专用硬件/软件接口***,尤其是当无线网络化设备的数量持续增长的时候。因此,本发明不应被限于单个实施例,而是相反,应当依照所附权利要求书的宽度和范围来解释。

Claims (20)

1.一种用于在不准许对文件流拍快照的硬件软件接口***中同步混合元素的方法,所述混合元素包括结构化数据分量和非结构化文件流,所述方法包括:
对所述结构化数据分量拍快照,
锁定所述非结构化文件流,
确定在对所述结构化数据拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变,以及
如果在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流未改变,则将所述非结构化文件流复制到同步对等体,并且一旦完成,解锁所述非结构化文件流。
2.如权利要求1所述的方法,其特征在于,确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变的步骤包括:
确定对所述结构化数据分量拍快照时所述非结构化文件流的第一改变值,
确定在被锁定之后所述非结构化文件流的第二改变值,以及
将所述第二改变值与所述第一改变值进行比较,以确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间是否对所述非结构化文件流做出了改变。
3.如权利要求1所述的方法,其特征在于,还包括:
如果所述文件流的确在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间改变,则向同步对等体引发异常,并解锁所述非结构化文件流。
4.如权利要求1所述的方法,其特征在于,对所述结构化数据分量拍快照的步骤包括:
在所述结构化数据分量被复制到同步对等体时防止对它的改变,
为在将所述结构化数据复制到同步对等体期间将对所述结构化数据做出改变的进程制作所述结构化数据分量的第一副本,并且允许所述进程对所述第一副本而非所述结构化数据做出改变,
一旦所述结构化数据被复制到所述同步对等体,用所述第一副本更新所述结构化数据。
5.如权利要求1所述的方法,其特征在于,锁定所述非结构化文件流的步骤是由事务读操作实现的。
6.如权利要求1所述的方法,其特征在于,如果所述非结构化文件流在锁定所述非结构化文件流的步骤期间不能被锁定,则向同步对等体引发一异常,并且不执行以下步骤:(a)在所述非结构化文件流被锁定之后确定其第二改变值,以及(b)如果所述第二改变值与所述第一改变值相比指示在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间没有发生对所述非结构化文件流的改变,则将所述非结构化文件流复制到所述同步对等体,一旦完成,解锁所述非结构化文件流。
7.如权利要求1所述的方法,其特征在于,该方法是由硬件控制设备实现的,所述硬件控制设备包括用于实现所述方法的每一步骤的装置。
8.一种包括计算机可读指令的计算机可读介质,所述指令用于在不准许对文件流拍快照的硬件软件接口***中同步混合元素,所述混合元素包括结构化数据分量和非结构化文件流两者,所述计算机可执行指令包括指令,用于:
对所述非结构化数据拍快照,
锁定所述非结构化文件流,
确定在对所述结构化数据拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变,以及
如果在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流未改变,则将所述非结构化文件流复制到同步对等体,并且一旦完成,解锁所述非结构化文件流。
9.如权利要求8所述的计算机可读介质,其特征在于,还包括指令,其中,确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变的所述步骤包括指令,用于:
确定对所述结构化数据分量拍快照时所述非结构化文件流的第一改变值,
确定在被锁定之后所述非结构化文件流的第二改变值,以及
将所述第二改变值与所述第一改变值进行比较,以确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间是否对所述非结构化文件流做出了改变。
10.如权利要求8所述的计算机可读介质,其特征在于,还包括指令,用于:
如果所述文件流的确在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间改变,则向同步对等体引发异常,并解锁所述非结构化文件流。
11.如权利要求8所述的计算机可读介质,其特征在于,还包括指令,其中,对所述结构化数据分量拍快照的步骤包括:
在所述结构化数据分量被复制到同步对等体时防止对它的改变,
为在将所述结构化数据复制到同步对等体期间将对所述结构化数据做出改变的进程制作所述结构化数据分量的第一副本,并且允许所述进程对所述第一副本而非所述结构化数据做出改变,
一旦所述结构化数据被复制到所述同步对等体,用所述第一副本更新所述结构化数据。
12.如权利要求8所述的计算机可读介质,其特征在于,还包括指令,其中,锁定所述非结构化文件流的步骤是由事务读操作实现的。
13.如权利要求8所述的计算机可读介质,其特征在于,还包括指令,其中,如果所述结构化文件流在锁定所述非结构化文件流的元素期间不能被锁定,则向同步对等体引发一异常,并且不执行以下步骤:(a)在所述非结构化文件流被锁定之后确定其第二改变值,以及(b)如果所述第二改变值与所述第一改变值相比指示在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间没有发生对所述非结构化文件流的改变,则将所述非结构化文件流复制到所述同步对等体,一旦完成,解锁所述非结构化文件流。
14.如权利要求8所述的计算机可读介质,其特征在于,所述计算机可读介质是能够通过通信介质发送的电子载波信号。
15.一种用于在不准许对文件流拍快照的硬件软件接口***中同步混合元素的***,所述混合元素包括结构化数据分量和非结构化文件流两者,所述***包括至少一个子***,用于:
对所述非结构化数据拍快照,
锁定所述非结构化文件流,
确定在对所述结构化数据拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变,以及
如果在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流未改变,则将所述非结构化文件流复制到同步对等体,并且一旦完成,解锁所述非结构化文件流。
16.如权利要求15所述的***,其特征在于,还包括子***,其中,确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间所述文件流是否改变的所述步骤包括所述子***:
确定对所述结构化数据分量拍快照时所述非结构化文件流的第一改变值,确定在被锁定之后所述非结构化文件流的第二改变值,以及
将所述第二改变值与所述第一改变值进行比较,以确定在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间是否对所述非结构化文件流做出了改变。
17.如权利要求15所述的***,其特征在于,还包括至少一个子***,用于:
如果所述文件流的确在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间期间改变,则向同步对等体引发异常,并解锁所述非结构化文件流。
18.如权利要求15所述的***,其特征在于,对于对所述结构化数据分量拍快照的所述元素,所述***还包括至少一个子***,用于:
在所述结构化数据分量被复制到同步对等体时防止对它的改变,
为在将所述结构化数据复制到同步对等体期间将对所述结构化数据做出改变的进程制作所述结构化数据分量的第一副本,并且允许所述进程对所述第一副本而非所述结构化数据做出改变,
一旦所述结构化数据被复制到所述同步对等体,用所述第一副本更新所述结构化数据。
19.如权利要求15所述的***,其特征在于,还包括至少一个子***,其中,锁定所述非结构化文件流的所述步骤是由事务读操作实现的。
20.如权利要求15所述的***,其特征在于,还包括至少一个子***,其中,如果所述结构化文件流在锁定所述非结构化文件流的元素期间不能被锁定,则向同步对等体引发一异常,并不执行以下步骤:(a)在所述非结构化文件流被锁定之后确定其第二改变值,以及(b)如果所述第二改变值与所述第一改变值相比指示在对所述结构化数据分量拍快照和锁定所述非结构化文件流的时间之间没有发生对所述非结构化文件流的改变,则将所述非结构化文件流复制到所述同步对等体,一旦完成,解锁所述非结构化文件流。
CNB2005101250630A 2004-12-20 2005-11-18 不用快照的项同步***和方法 Expired - Fee Related CN100555279C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/025,165 2004-12-20
US11/025,165 US7457826B2 (en) 2004-12-20 2004-12-20 Systems and methods for synchronization of items without snapshots

Publications (2)

Publication Number Publication Date
CN1794227A true CN1794227A (zh) 2006-06-28
CN100555279C CN100555279C (zh) 2009-10-28

Family

ID=35809796

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101250630A Expired - Fee Related CN100555279C (zh) 2004-12-20 2005-11-18 不用快照的项同步***和方法

Country Status (5)

Country Link
US (1) US7457826B2 (zh)
EP (1) EP1672545B1 (zh)
JP (1) JP4753693B2 (zh)
KR (1) KR101219823B1 (zh)
CN (1) CN100555279C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582790B (zh) * 2008-05-15 2011-12-07 华为技术有限公司 动态数据稽核以及业务实体故障检测的方法、装置和***

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US9092286B2 (en) 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
US7478078B2 (en) * 2004-06-14 2009-01-13 Friendster, Inc. Method for sharing relationship information stored in a social network database with third party databases
US8055702B2 (en) * 2005-04-25 2011-11-08 Netapp, Inc. System and method for caching network file systems
EP1875393B1 (en) * 2005-04-25 2015-08-05 NetApp, Inc. Architecture for supporting sparse volumes
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US8069184B2 (en) 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US7933869B2 (en) 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
WO2008157735A2 (en) * 2007-06-19 2008-12-24 Qualcomm Incorporated Methods and apparatus for dataset synchronization in a wireless environment
US8479166B2 (en) * 2008-08-25 2013-07-02 International Business Machines Corporation Detecting locking discipline violations on shared resources
CN101667187B (zh) * 2009-09-23 2011-09-07 南京邮电大学 一种基于对等计算技术的复合知识云方法
US8990263B2 (en) 2012-03-15 2015-03-24 International Business Machines Corporation Policy-based management of storage functions in data replication environments
US11153281B2 (en) 2018-12-06 2021-10-19 Bank Of America Corporation Deploying and utilizing a dynamic data stenciling system with a smart linking engine

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900870A (en) * 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5506983A (en) * 1992-07-06 1996-04-09 Microsoft Corporation Method and system for transactioning of modifications to a tree structured file
JPH06214845A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd 複数ブロック一括処理方式
US5870764A (en) * 1993-05-12 1999-02-09 Apple Computer, Inc. Method of managing a data structure for concurrent serial and parallel revision of a work
US6078925A (en) * 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6085192A (en) 1997-04-11 2000-07-04 Roampage, Inc. System and method for securely synchronizing multiple copies of a workspace element in a network
US6708221B1 (en) 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US5893106A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US6108004A (en) * 1997-10-21 2000-08-22 International Business Machines Corporation GUI guide for data mining
US6151606A (en) 1998-01-16 2000-11-21 Visto Corporation System and method for using a workspace data manager to access, manipulate and synchronize network data
US6263342B1 (en) * 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6519597B1 (en) * 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6338056B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6298425B1 (en) * 1999-01-12 2001-10-02 Compaq Computer Corp. Computer disk management system using doublet A-B logging
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6370541B1 (en) * 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6556983B1 (en) * 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US20020103818A1 (en) * 2000-05-04 2002-08-01 Kirkfire, Inc. Information repository system and method for an internet portal system
GB0016695D0 (en) * 2000-07-08 2000-08-23 Radioscape Ltd Digital transactions for the delivery of media files
US6999956B2 (en) 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
EP1410202B1 (en) 2001-03-16 2006-07-26 Novell, Inc. Client-server model for synchronization of files
US6697818B2 (en) * 2001-06-14 2004-02-24 International Business Machines Corporation Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database
US6643654B1 (en) * 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
ATE487185T1 (de) * 2002-03-19 2010-11-15 Network Appliance Inc System und verfahren zur bestimmung und übertragung von änderungen in schnappschüssen
US7334099B2 (en) * 2002-06-28 2008-02-19 Microsoft Corporation Method and system for managing image files
US6983296B1 (en) * 2002-08-12 2006-01-03 Network Appliance, Inc. System and method for tracking modified files in a file system
US7103796B1 (en) * 2002-09-03 2006-09-05 Veritas Operating Corporation Parallel data change tracking for maintaining mirrored data consistency
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US7778962B2 (en) * 2004-04-30 2010-08-17 Microsoft Corporation Client store synchronization through intermediary store change packets
US7225307B2 (en) * 2004-05-04 2007-05-29 International Business Machines Corporation Apparatus, system, and method for synchronizing an asynchronous mirror volume using a synchronous mirror volume

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582790B (zh) * 2008-05-15 2011-12-07 华为技术有限公司 动态数据稽核以及业务实体故障检测的方法、装置和***

Also Published As

Publication number Publication date
KR101219823B1 (ko) 2013-01-08
EP1672545A1 (en) 2006-06-21
US20060136418A1 (en) 2006-06-22
CN100555279C (zh) 2009-10-28
US7457826B2 (en) 2008-11-25
KR20060070410A (ko) 2006-06-23
EP1672545B1 (en) 2014-01-15
JP2006178932A (ja) 2006-07-06
JP4753693B2 (ja) 2011-08-24

Similar Documents

Publication Publication Date Title
CN100555279C (zh) 不用快照的项同步***和方法
US6862617B1 (en) System and method for synchronizing objects between two devices
CN100485669C (zh) 加强项目收敛(即数据收敛)的冲突判决传播***和方法
US20060190572A1 (en) Filtered Replication of Data Stores
US7778962B2 (en) Client store synchronization through intermediary store change packets
US20060215569A1 (en) Synchronization peer participant model
CN1904847A (zh) 用于确定对源文件作出的改变以便传输到目标位置的方法和***
CN103019718A (zh) 在集中式源控制环境中使用分布式源控制
CN109597640B (zh) 一种应用程序的账号管理方法、装置、设备和介质
CN112860777B (zh) 数据处理方法、装置及设备
CN1811768A (zh) 用于协调图象元数据的***和方法
US20090234872A1 (en) Synchronization of disconnected/offline data processing/entry
CN114780301A (zh) 支持多云生产环境的容灾方法及***
US7506000B2 (en) Method and system for programming disconnected data
CN102187329A (zh) 通过基于知识的同步来忘记项
US9009098B1 (en) Methods and apparatus for creating a centralized data store
CN114968095A (zh) 分布式硬盘管理方法、***、电子设备及可读存储介质
CN113704120A (zh) 数据传输方法、装置、设备及存储介质
WO2021006720A1 (en) Method and system for updating database
CN116701719B (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
CN117827802B (zh) 一种基于Hbase的数据处理***、方法及装置
CN114546720A (zh) 数据处理方法、分布式协调***、计算机设备及存储介质
CN117827749A (zh) 一种学件基座***
CN116680277A (zh) 信息核验方法、装置、设备及存储介质
CN114328376A (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: 20150429

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

Effective date of registration: 20150429

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

Granted publication date: 20091028

Termination date: 20191118

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