CN101689166A - 使用具有全局知识的服务器处理写请求 - Google Patents

使用具有全局知识的服务器处理写请求 Download PDF

Info

Publication number
CN101689166A
CN101689166A CN200880022216A CN200880022216A CN101689166A CN 101689166 A CN101689166 A CN 101689166A CN 200880022216 A CN200880022216 A CN 200880022216A CN 200880022216 A CN200880022216 A CN 200880022216A CN 101689166 A CN101689166 A CN 101689166A
Authority
CN
China
Prior art keywords
server
data
write request
central server
motion
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
CN200880022216A
Other languages
English (en)
Other versions
CN101689166B (zh
Inventor
D·加夫里洛夫
E·S·弗莱士曼
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 CN101689166A publication Critical patent/CN101689166A/zh
Application granted granted Critical
Publication of CN101689166B publication Critical patent/CN101689166B/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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

所描述的是针对使用具有分布式系统中的信息的全局知识的指定服务器来处理写请求的各实施例。这些指定服务器用于实施对可被写到该分布式系统的数据进行限制的数据规则。为了确保被写到该分布式系统的数据与数据规则相一致,当该分布式系统内的另一个服务器接收到写入服从该数据规则的信息的请求时,该服务器必须在它可接受该写请求之前咨询指定服务器之一。如果指定服务器确定该数据与数据规则相一致,则批准该写请求。否则,拒绝该写请求。

Description

使用具有全局知识的服务器处理写请求
背景
分布式系统,诸如文件系统和目录系统在多个不同节点(即服务器)上存储同一信息的复制品或副本。拥有多个具有复制品的节点提供了诸如容错、信息的高可用性以及提高的系统性能等好处。这些分布式系统的子集允许存储信息复制品的每个节点接受对该信息的原始改变。也就是说,节点有权提供对该信息的读和写访问。这些系统还使用复制协议,在该协议中各节点互相获得对该信息所作出的改变。这允许各节点各自孤立地操作,并且随后与它们的对等节点“同步”使得其它节点具有当前的信息。这些类型的系统称为多主复制系统。
轻量级目录访问协议(LDAP)系统是有时被实现为多主复制系统的系统的示例。LDAP系统用于存储许多种类的数据,包括由用户提供的数据,诸如地址和口令,并且还包括由受管IT系统提供的数据,诸如许可。各组织经常希望对存储在LDAP目录中的数据实施规则或业务逻辑。例如,一个这样的目录可存储用户标识号。IT组织可能希望系统实施一个要求用户标识号唯一的规则,即两个用户不会具有相同的用户标识号。遗憾的是,在被实现为多主复制系统的LDAP系统中,这难以实现。每个节点可接受对具有不同值的用户的标识号的写请求。尽管每个节点可针对该规则检查数据,但它们被限于其自己的数据视图。有可能的是,其它节点正在同时接受特定节点尚不知道的写,而这将在复制完成时使系统处于对于该规则而言它是不一致的(即将同一标识号分配给了不同的用户)的状态中。
针对这些和其它考虑作出了本发明的各实施例。而且,尽管已经讨论了相对具体的问题,但应当理解,本发明的实施例不应当限于解决在背景中所标识的具体问题。
概述
提供本概述以便用简化形式介绍在下面的详细描述章节中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
所描述的是针对使用具有分布式系统中的信息的全局知识的指定服务器来批准对该分布式系统中的各节点所作的写请求的实施例。这些服务器实施对可被写到该分布式系统的数据施加限制的数据规则,数据规则的一个示例是数据的唯一性。该分布式系统被设计成向指定服务器提供全局知识以用于实施数据规则。当该分布式系统内的另一个服务器接收到服从数据规则的写数据的请求时,该服务器必须在它可以接受该写请求之前咨询这些指定服务器之一。这确保被写到该分布式系统的任何数据都与该数据规则相一致。如果指定服务器确定该数据与该规则相一致,则批准该写请求并且指定服务器决定是否要响应于该请求而更新其局部状态。否则,拒绝该写请求。
各实施例可被实现为计算机过程、计算系统或诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码了用于执行计算机过程的指令的计算机程序的计算机存储介质。计算机程序产品也可以是在计算系统可读并且编码了用于执行计算机过程的指令的计算机程序的载波上的传播信号。
附图简述
参考下面的附图描述各非限制性和非穷尽性实施例。
图1示出现有技术的分布式系统。
图2示出根据一实施例的分布式系统。
图3示出在图2所示的分布式系统中的复制期间的信息传输。
图4示出用于在分布式系统中对写请求进行处理的操作流程。
图5示出用于在分布式系统中应用全局数据规则的操作流程。
图6示出适用于实现各实施例的计算环境的框图。
详细描述
下面参考附图更完整地描述各实施例,这些附图形成本发明的一部分并且示出用于实践本发明的各具体示例性实施例。然而,各实施例可以用多种不同形式来实现并且不应当解释为限于在本文所述的这些实施例;相反,提供这些实施例以使本公开变得透彻和完整和全面,并且向本领域的技术人员完整地传达本发明的范围。各实施例可实践为方法、系统或设备。因此,各实施例可采用硬件实现、完全软件实现、或者组合软硬件方面的实现的形式。因此,下面的详细描述不是限制性的。
图1示出分布式系统100,其具有可通过网络106和108访问在图1中被示为服务器计算机系统110、112、114和116的多个节点的客户机计算机系统102和104。服务器110、112、114和116可存储诸如分布式文件系统或分布式目录等信息。服务器110、112、114和116每一个可存储同一信息的复制品或副本。系统100是多主复制系统的示例,在该系统中服务器110、112、114和116有权向诸如客户机102和104等客户机提供读和写访问。系统100还具有允许服务器110、112、114和116从彼此获得有关对该信息所作的改变的信息的复制协议。服务器110、112、114和116孤立地操作,并且随后相互复制来周期性地同步对该信息所作的改变。系统100提供许多优点,诸如使信息能够容易地被多个用户访问,并且还能容错,因为服务器110、112、114和116之一的故障不会导致信息的丢失或者对信息的访问的丢失。
客户机102和104是系统100内的向服务器110和112发出读或修改数据的请求的节点。在各实施例中,客户机102和104可以不主存来自系统100的任何数据,而在其它实施例中,客户机102和104可主存至少一些数据。应当理解,在本专利申请中术语“客户机”旨在表示向另一个进程发出请求的任何进程。为简明起见,图1将客户机102和104示为分别仅访问服务器110和112。如本领域的技术人员将理解的,一些分布式系统允许客户机102和104访问服务器110、112、114和116中的任何一个。图1还将客户机102和104示为使用不同的网络106和108来访问服务器110和112,然而本领域的技术人员将理解,一些分布式系统允许多个客户机通过同一个(或多个)网络来访问服务器。
尽管系统100提供了许多优点,但它还是受到一些限制。在存储在系统100中的数据中的冲突可在服务器110、112、114和116中的一个或多个暂时与系统100断开时发生。例如,服务器110和112可变为暂时与系统100断开。在此期间,服务器110可接受将用户ID分配给第一用户的写请求,而服务器112可能将同一用户ID分配给第二用户。
系统100未能提供有效实施全局数据规则的机制。在本专利申请中,术语“全局数据规则”旨在表示用于提供与可存储在分布式系统中的数据相关联的业务过程的规则。例如,业务过程可以是对数据的约束,例如用户ID必须只与一个用户相关联,或者业务过程可以是一个对数据执行的过程,例如将所有名字改变转发至人类资源数据库。为有效地实施全局数据规则,一个或多个服务器必须具有全局知识(有关所有复制品或副本的信息的经更新的知识)。全局数据规则的一个示例是数据唯一性。即,要求数据在信息在分布式系统中的所有复制品或副本上具有唯一值。一个具体示例是要求用户标识号在整个分布式系统中具有唯一值。
如图1所示且如下所述,系统100不能实施全局数据规则。进一步阐述用户标识号的示例,服务器110、112、114和116中的每一个可接受和应用对一个人的用户标识号的写请求。客户机102可将向第一用户分配标识号的写请求提交至服务器110。客户机104最近可能已经向服务器112提交了将同一用户标识号分配给不同用户的写请求。尽管服务器110和112每一个可检查数据以确定该用户标识号是否唯一,但它们受限于它们自己的数据视图。因此,系统100将具有与要求用户标识号唯一地与单个用户相关联的规则不一致的信息。
图2示出根据一实施例的分布式系统200。除了提供分布式系统的一般优点之外,系统200还允许能有效且高效地实施对系统200内的数据进行约束的全局数据规则。系统200包括使用网络206和208访问在图2中被示为接收服务器计算机系统210、212、214和216的多个节点的客户机计算机系统202和204。系统200还包括具有系统200中的信息的全局知识(或者可非常快速地构建全局知识)并且由系统200用于实施全局数据规则的中央计算机系统220、222、224和226。如本领域的技术人员将理解的,存在许多不同数量的这样的接收和中央服务器计算机系统。
再次参考接收服务器210、212、214和216,它们存储诸如分布式文件系统或分布式目录等信息。接收服务器210、212、214和216中的每一个存储同一信息的复制品或副本。系统200是多主复制系统,其具有有权向诸如客户机202和204等客户机提供读和写访问的接收服务器210、212、214和216。系统200还具有允许接收服务器210、212、214和216从彼此获得有关对该信息所作的改变的信息的复制协议。服务器210、212、214和216孤立地操作,并且随后相互复制来周期性地同步在其各自的复制品中所作的改变。系统200使信息能易于由多个用户来访问,并且还是容错的,因为服务器210、212、214和216之一的故障不会导致信息的丢失或对信息的访问的丢失。
在一实施例中,接收服务器210、212、214和216没有实施全局数据规则的全局知识。然而,在一些实施例中,接收服务器210、212、214和216可存储和实施“局部数据规则”。在本专利申请中,术语“局部数据规则”旨在表示对可存储在分布式系统中的数据提供约束,但不要求全局知识(关于所有复制品或副本的信息的知识)来有效实施的规则。局部数据规则的示例包括要求用户标识号具有8位数字,或者不允许电话号码具有字母。如可理解的,局部数据规则对于在限制可存储在分布式系统中的数据但不要求全局知识来有效实施时是有用的。
系统200还包括在虚线218内示出的一组中央服务器220、222、224和226。中央服务器220、222、224和226具有系统200中的信息的全局知识(或者可快速构建必要的知识)来有效且高效地实施全局数据规则。中央服务器220、222、224和226每一个与接收服务器210、212、214和216一样存储同一信息的复制品或副本。中央服务器220、222、224和226最初是与接收服务器210、212、214和216类似的正常服务器。选择这些中央服务器来具有系统200内信息的最新知识以允许它们实施全局数据规则。在一些实施例中,它们可由网络管理员例如通过简单地设置一个标志来选择。哪些服务器应当被提升为中央服务器的决定可基于服务器的特定属性。例如,具有最佳网络链路的那些服务器可被选择为中央服务器。有关选择哪些服务器作为中央服务器的决定可基于其它选择准则,例如各个服务器或系统200的特性或属性。
中央服务器220、222、224和226中的复制品与接收服务器210、212、214和216中的复制品相比具有最新的信息。中央服务器220、222、224和226中的更新信息可至少部分地基于其复制协议和拓扑结构,这在下面参考图3更详细地讨论。如图2所示,接收服务器210、212、214和216每一个连接至中央服务器220、222、224和226之一,并且在能够接受与服从全局数据规则的数据有关的写请求之前必须咨询中央服务器220、222、224和226之一。中央服务器220、222、224和226实施全局数据规则以确保被写到系统200内的复制品的信息与所建立的全局数据规则相一致。
中央服务器220、222、224和226进行相互复制以从彼此获得有关对系统200中的信息所作的改变的信息。中央服务器220、222、224和226具有关于服从全局数据规则的数据的全局知识(或能够快速构建全局知识)。在各实施例中,中央服务器220、222、224和226部分地通过快速地向中央服务器220、222、224和226提供在系统200内所作的任何改变的复制协议来获得它们的全局知识。如下面参考图3进一步说明的,在各实施例中,中央服务器220、222、224和226具有与接收服务器210、212、214和216所使用的不要求具有全局知识的复制协议不同的复制协议。在其它实施例中,中央服务器220、222、224和226可使用与服务器210、212、214和216相同的复制协议,但更积极地复制改变,诸如在改变的复制之间具有更短的时间窗口。
系统200允许管理员建立全局数据规则,在一些实施例中该规则至少被存储在中央服务器220、222、224和226中。在各实施例中,接收服务器210、212、214和216存储有关全局数据规则的足够信息以确定该规则何时可以应用。接收服务器210、212、214和216随后被要求在它们可允许服从全局数据规则的写请求之前咨询中央服务器220、222、224和226之一。因为仅要求这些接收服务器咨询单个中央服务器,所以可高效地在系统200内实施全局数据规则。
系统200通过给予接收服务器210、212、214和216向诸如客户机202和204等客户机提供读和写访问的权限来操作。接收服务器210、212、214和216可接受写请求来将数据写至其相应的复制品。然而,如果写请求与服从所建立的全局数据规则的数据有关,则接收服务器210、212、214和216必须在它们可执行该写请求之前咨询中央服务器220、222、224和226之一。因为中央服务器220、222、224和226每一个具有全局知识(或者可非常快速地构建全局知识)以实施全局数据规则,所以咨询这些中央服务器中任何一个都允许接收服务器确信数据与全局数据规则相一致并且因而可执行该请求。
将描述一个示例以进一步示出系统200的操作。管理员可建立全局数据规则以限制系统200内的数据的值。作为示例,该数据规则可要求系统200中的每个用户标识号是唯一的,即没有两个人可具有同一用户标识号。随后将该要求每个用户标识号的唯一性的数据规则存储在中央服务器220、222、224和226中。该数据规则的存在的指示被存储在所有接收服务器210、212、214和216上,使得它们知道与用户标识号有关的任何写请求必须由中央服务器220、222、224和226之一批准。
在客户机202上的用户随后可发送写请求至接收服务器210,请求将用户标识号写到存储在系统200上的数据库中。作为响应,接收服务器210将认识到,用户标识号必须满足先前建立的全局数据规则。结果,接收服务器210根据该写请求生成带有用户标识号的批准消息,并且将该批准消息发送至中央服务器220以供批准。
在接收到该批准消息时,中央服务器220应用全局数据规则。中央服务器220确定在其复制品(它具有系统200中的信息的全局知识)中的任何信息是否与它在来自接收服务器210的批准请求中接收到的用户标识号不一致。如果中央服务器220确定存在与该用户标识号不一致的信息,则它将向接收服务器210发送拒绝批准该写请求的消息。因此,接收服务器210将不允许来自客户机202的写请求。在一些实施例中,接收服务器210还将生成指示该写请求已被拒绝的消息并将其发送至客户机202。
如果中央服务器220确定该用户标识号确实服从全局数据规则,换言之它是唯一的,则中央服务器220将该用户标识号写到其自己的复制品中。将该用户标识号写到其自己的复制品中确保了它具有最新更新的信息。在中央服务器220将该用户标识号写到其自己的复制品中之后,它将该改变复制到其它中央服务器222、224、和226上的复制品以确保它们维持其全局知识。中央服务器220随后将生成批准该写请求的消息并将其发送至接收服务器210。接收服务器210将该用户标识号写到其复制品中,并且在一些实施例中向客户机202发送指示该写请求已完成的消息。
如果在批准来自客户机202的写请求之后不久,在客户机204上的另一个用户发送带有针对不同人员的同一用户标识号的写请求,则该请求将被适当地拒绝。当接收服务器212从客户机204接收到该写请求时,则它将认识到该用户标识号要服从全局数据规则。结果,它将生成批准消息并将该消息发送至中央服务器222。中央服务器222将通过检查其复制品来应用全局数据规则以确定在其复制品中是否已经针对另一个人接收了来自该写请求的安全号码。因为中央服务器220已经用来自客户机202的写请求的数据更新了中央服务器222、224和226上的所有复制品,所以中央服务器222将认识到,来自客户机204的写请求的用户标识号不是唯一的并且将拒绝该写请求。因而,系统200可有效且高效地实施要求用户标识号的唯一性的全局数据规则。
应当理解,图2所示的系统200的一些具体细节仅是处于简明的目的而提出的并且不旨在是限制性的。例如,图2分别将客户机202和204示为只访问接收服务器210、212,而其它接收服务器没有连接至任何客户机。在其它实施例中,客户机202和204能够访问接收服务器210、212、214和216中的任何一个。图2还示出客户机202和204使用不同的网络206和208访问服务器210和212,然而在其它实施例中,系统200允许除客户机202和204之外的许多客户机通过同一个(或多个)网络访问服务器210、212、214和216。
网络206和208可以是可用于连接客户机计算机系统与服务器计算机系统的任何类型的计算机网络。网络206和208例如可以是局域网(LAN)或广域网(WAN)。在一些实施例中,网络206和208包括内联网、因特网和/或它们的组合。
图2还示出中央服务器220、222、224和226未被客户机访问。然而,在一些实施例中,除了被分配有实施全局数据规则的任务之外,中央服务器220、222、224和226可被客户机访问并且直接从客户机接受写请求。在这些实施例中,没有必要咨询任何其它服务器以实施任何可应用的全局数据规则,因为如上所述,中央服务器220、222、224和226具有用于实施全局数据规则的全局信息。
此外,图2示出接收服务器210、212、214和216每一个仅连接至一个中央服务器220、222、224和226。在一些实施例中,接收服务器210、212、214和216可以按任何接收服务器可发送批准请求至任何中央服务器的方式来连接至中央服务器220、222、224和226。这些实施例向系统200提供附加容错。例如,如果中央服务器220不能处理由接收服务器210所发出的批准请求,则接收服务器210可发送该请求至另一个中央服务器以供批准。
图3示出分布式系统的另一个实施例300。系统300与系统200相似,因为它包括两种不同类型的服务器,即接收服务器310、312、314和316和由虚线318包围的一组中央服务器320、322、324和326。中央服务器320、322、324和326各自具有系统300内的信息的全局知识(或者可快速地构建全局知识),该全局知识允许它们实施全局数据规则。在图3所示的箭头示出在系统300中的服务器之间进行复制期间的信息传送的方向。即,图3概括地示出系统300中的服务器的复制拓扑结构。在图3所示的实施例中,接收服务器310、312、314和316具有与中央服务器320、322、324和326不同的复制拓扑结构。如下所述,中央服务器320、322、324和326的复制拓扑结构至少部分地负责它们的全局知识。
如图3所示的,接收服务器310、312、314和316具有环形复制拓扑结构。在环形复制拓扑结构中,每个服务器与另外两个服务器进行复制,其中第一个和最后一个服务器彼此进行复制以形成一个圈或环。在系统300中,服务器314与服务器310和312进行复制,而服务器312除了与服务器314进行复制外还与服务器316进行复制。服务器316除了与服务器312进行复制外还与服务器310进行复制。最后,服务器310与服务器316和314进行复制,这完成了环的形成。
在一实施例中,中央服务器320、322、324和326具有全连接的复制拓扑结构。在全连接的复制拓扑结构中,这些服务器中的每一个与其它每一个服务器进行复制。在系统300中,服务器320与服务器322、324和326进行复制;服务器322与服务器320、324和326进行复制;服务器324与服务器320、322和326进行复制;并且服务器326与服务器320、322和324进行复制。如在图3中可看到的,中央服务器320、322、324和326的复制拓扑结构允许所有中央服务器直接发送信息至所有其它中央服务器。该复制拓扑结构帮助在这些中央服务器中维护在系统300内所作的改变的全局知识。在系统300中,对信息所作出的服从全局数据规则的任何改变必须由中央服务器320、322、324和326之一批准,该中央服务器立即将该改变写到其自己的复制品并且基于其全连接的复制拓扑结构可直接将该改变复制到所有其它的中央服务器。该过程确保这些中央服务器在系统300中作出任何改变之后几乎立即全部都具有最新的知识。
如本领域技术人员将理解的,为分布式系统配置高效的复制拓扑结构是一项复杂的任务,并且取决于各种因素,诸如服务器的数量、服务器是如何连接的、分布式系统是如何组织(站点、域等)、和分布式系统的目标(数据一致性、数据的高可用性等)。因而,图3仅旨在示出具有接收服务器和中央服务器的组合的系统的复制拓扑结构的一个实施例,其中中央服务器具有全局知识以便实施全局数据规则。尽管系统300示出接收服务器和中央服务器具有不同的复制拓扑结构,但在一些实施例中,接收服务器和中央服务器可具有相同的复制拓扑结构。
在各实施例中,除了复制拓扑结构之外,中央服务器320、322、324和326还具有帮助维护其全局知识的复制协议。因为中央服务器在它们接收到批准请求时应当具有全局知识,所以对中央服务器320、322、324和326之一所作的任何改变必须非常快速地复制到其它中央服务器。结果,中央服务器可实现一种具有在复制操作之间只有非常短的时间段的复制时间表的协议。作为复制操作之间的短时间段的补充或替换,中央服务器可实现一种要求对其复制品所作的改变立即(或非常快速地)直接复制到其它中央服务器的协议。
应当理解,在一些实施例中,由中央服务器320、322、324和326所实现的协议可基于全局数据规则的重要性或关键性来应用不同的复制时间表。例如,存在一些被认为对组织而言很关键的全局数据规则,在该情形中管理员可能想要将任何改变立即复制到所有中央服务器。然而有些全局数据规则不这样重要,在该情形中,与这些规则有关的改变可在预定的复制时间段内进行复制。当然,在各实施例中,由中央服务器320、322、324和326所实现的复制协议可以与由不要求具有全局知识的接收服务器310、312、314和316所实现的协议不同。
在其它实施例中,中央服务器320、322、324和326在除了专门设计的复制协议和拓扑结构之外,还可实现向它们提供用于实施全局数据规则的最新知识的其它方法。例如在一个实施例中,服务器320、322、324和326可在批准来自接收服务器310、312、314和316的请求之前相互咨询。即,在中央服务器接收到服从全局数据规则的请求时,它将咨询所有其它中央服务器以确保该请求不与其它中央服务器上的数据冲突。在又一个实施例中,当中央服务器接收到请求时,它可向其它中央服务器发出指示它接收到了与特定数据相关的请求的消息。响应于接收到该消息,其它中央服务器将不允许它们所接收到的与该同一数据相关的任何请求。在其它中央服务器从最初的中央服务器接收到第二消息时将移除保持。该第二消息将包含经改变的信息。
图4和5示出根据各实施例的操作流程400和500。操作流程400和500可在任何合适的计算环境中执行。例如,这些操作流程可由诸如图2和图3所示出的系统来执行。因此,操作流程400和500的描述可参考图2和图3的组件中的至少一个。然而,对图2和图3的组件的任何这样的参考仅是为了描述,并且应当理解,图2和图3的实现是用于操作流程400和500的非限制性环境。
此外,尽管以特定次序顺序地示出和描述了操作流程400和500,但在其它实施例中,这些操作可按不同的次序、多次和/或并行地执行。而且,在一些实施例中,一个或多个操作可被省略或组合。
图4示出根据一实施例的用于在分布式系统中处理写请求的操作流程400。在操作402,接收带有写数据的写请求。在各实施例中,该写请求是由请求对接收服务器上的复制品作出改变的客户机计算设备(诸如客户机202、204、302和304)所生成和发送的。与该写请求一起接收到的写数据包括要被写到分布式系统中的复制品的数据。在各实施例中,该写请求可由诸如图2(服务器210、212、214和216)和图3(服务器310、312、314和316)所示的接收服务器等接收服务器来接收。
在操作402之后,流程随后转到操作404,在那里作出关于全局数据规则是否适用于在写请求中接收到的写数据的判断。分布式系统的管理员可建立约束存储在分布式系统中的数据的全局数据规则。如上所述,数据规则的一个示例要求数据在整个分布式系统中具有唯一值。在一些实施例中,全局数据规则的实施被委托给一组中央服务器,诸如图2(服务器220、222、224和226)和图3(服务器320、312、324和326)描述的中央服务器。
如果在操作404确定写数据不服从全局数据规则,则流程转到操作406。在操作406,作出关于写数据是否满足任何局部数据规则的判断。如上所述,局部数据规则对被写到分布式系统的数据施加限制,但不要求全局知识来实施。在各实施例中,接收服务器执行操作406并且确定写数据是否满足任何适用的局部数据规则。
如果在操作406作出写数据不满足局部数据规则的判断,则流程转到操作408,在那里拒绝写请求。在一些实施例中,操作408涉及接收服务器生成消息并将其发送至最初生成写请求的客户机,该消息指示写请求已被拒绝。在操作408之后,流程在操作410结束。
然而,如果在操作406作出写数据确实满足适用的局部数据规则,则流程转到操作412,在那里接受写请求并且将写数据写到分布式系统。在一些实施例中,操作412涉及接收服务器生成消息并将其发送至最初生成写请求的客户机,该消息指示写请求已被接受。在操作412之后,流程在操作410结束。
应当注意,在一些实施例中,如果没有局部数据规则适用,则操作流程400可不包括操作406。在这些实施例中,流程将直接从操作404转到操作412,在那里接受写请求并且将写数据写到分布式系统。流程随后将在操作410结束。
回头参考操作404,如果作出全局数据规则确实适用的判断,则流程将从操作404转到操作414。在操作414,作出有关中央服务器是否可用于处理批准请求的判断。在各实施例中,在接收服务器在操作404确定全局数据规则适用之后,它必须发送批准请求至实施全局数据规则的中央服务器。执行操作414以确定中央服务器是否可用于处理接收服务器所生成的批准请求。中央服务器可能因为多种原因而不可用,诸如服务器崩溃、失去连接、和/或服务器正忙于处理其它请求。
如果在操作414作出中央服务器不可用的判断,则流程转到操作416。在操作416应用与中央服务器的不可用性有关的策略。该策略确定在中央服务器不能用于批准请求时如何处理(服从全局数据规则的)写请求。如图4所示(在虚线中),取决于在操作416实现的特定策略,流程可从操作416转到操作406、408或416中的任何一个操作。在各实施例中,该策略可以是简单地拒绝所有写请求,在该情形中流程转到操作408,或者是允许所有写请求,在该情形中流程转到操作406。在另一实施例中,该策略可要求流程从操作416循环回到操作414,直至中央服务器变得可用。
该策略将反映各个数据规则的重要性。例如,如果写请求服从对于组织而言极其重要的数据规则,则该策略可通过拒绝服从该关键性数据规则的、未被中央服务器批准的任何写请求来反映该数据规则的重要性。同时,可允许服从较不重要的数据规则的写请求,即使它们不能被中央服务器批准。在其它实施例中,该策略可允许违反全局数据规则的写请求,但记录该违反已经发生的事实。该记录随后可用于在以后协调与全局数据规则的任何不一致性。如本领域的技术人员将会理解的,在操作416确立和应用的特定策略将取决于分布式系统的实现。
回头参考操作414,如果作出中央服务器可用的判断,则流程转到操作418,在那里将批准请求发送至中央服务器。该批准请求寻求中央服务器对接受写请求并且将写数据写到分布式系统的批准。在各实施例中,操作418由接收服务器执行并且涉及多个子操作,诸如生成带有在操作402接收到的写数据的批准请求,以及随后发送该批准请求至中央服务器。
在操作418之后,流程转到操作420,在那里从中央服务器接收消息。该消息是响应于在操作418发送的批准请求的。在操作420之后,流程转到操作422,在那里作出从中央服务器接收到的消息是否指示中央服务器已经批准了写请求的判断。如果在操作422作出中央服务器没有批准写请求的判断,则流程转到操作408,在那里如前所述地拒绝写请求。
如果在操作422作出中央服务器批准了写请求的判断,则操作流程转到操作406,在那里作出写数据是否满足任何局部数据规则的判断。从操作406起,流程将如上所述地继续。在一些实施例中,没有任何局部数据规则,在该情形中,流程将直接从操作422转到操作412,在那里接受写请求。流程随后将在操作410结束。
图4不应当被解释为限制执行操作流程400的操作的次序。例如,在一个特定实施例中,操作404将在操作406之后或者与之同时执行。在其它实施例中,如果还没有确立局部数据规则,则操作406将被一起跳过。
图5示出用于在分布式系统中实施全局数据规则的操作流程500。流程500从操作502开始,在那里存储全局数据规则。在各实施例中,操作502由具有分布式系统中的信息的全局知识的中央服务器执行,诸如在图2(服务器220、222、224和226)和图3(服务器320、322、324和326)中描述的那些中央服务器。这些中央服务器用于实施全局数据规则,并且确保被写到分布式系统的任何数据与所确立的数据规则相一致。
在操作502之后,流程转到操作504,在那里接收带有写数据的批准请求。操作502是由接收该批准请求的中央服务器来执行的,在各实施例中该批准请求是由诸如图2(服务器210、212、214和216)和图3(服务器310、312、314和316)所示的接收服务器等接收服务器发送的。该批准请求寻求来自中央服务器的对写请求(即将数据写到分布式系统的请求)的批准。除了其它信息之外,写请求包括要被写到分布式系统的写数据。
在操作506,作出有关在操作504的批准请求中接收到的写数据是否满足来自操作502的所存储的全局数据规则的判断。如果写数据不满足全局数据规则,则流程转到操作508,在那里发送拒绝批准请求的消息。在各实施例中,中央服务器生成拒绝批准请求的消息并将其发送至发送该批准消息的接收服务器。在操作508之后,流程在操作510结束。
如果在操作506作出写数据满足来自操作502的所存储的全局数据规则的判断,则流程转到操作512,在那里中央服务器将在批准请求中接收到的数据写到其自己的复制品中。如上所述,中央服务器具有(或者可快速地构建)分布式系统内的信息的全局知识以便能够实施全局数据规则,并且因此在各实施例中,当批准改变时第一个操作是将该信息写到其自己的复制品中。
在操作512之后,在操作514发送批准该批准请求的消息。在各实施例中,操作514涉及中央服务器生成并发送批准在操作504中接收到的批准请求的消息。该消息向接收服务器指示它可以接受写请求并且将数据写到存储在该接收服务器中的复制品。
在一些实施例中,全局数据规则可涉及与被写到分布式系统的数据相关联的操作或业务过程。作为一个示例,全局数据规则可确立在写入(即新增加或改变)名字时必须将该信息转发至人类资源服务器的规则。如在本领域的技术人员将会理解的,可确立其它业务过程和操作。在这些实施例中,业务过程或操作可在操作512和514之前、之后或与其同时执行。
在操作514之后,流程随后转到操作516,在那里中央服务器将在操作512所写的数据复制到其它中央服务器。在操作516期间执行的特定步骤将基于为分布式系统中的中央服务器确立的复制协议和拓扑结构。如前参考图3所述,中央服务器可实现各种复制协议和拓扑结构,它们被设计成确保这些中央服务器维护分布式系统中的信息的全局知识。
图5不应当被解释为限制执行操作流程500的操作的次序。例如,在一个特定实施例中,操作516将在操作514之后立即执行或与其同时执行。该实施例确保写到复制品的数据被快速地复制到其它中央服务器,以确保它们维护分布式系统中的信息的全局知识。
图6示出可用于实现本文所述的各实施例的通用计算机系统600。计算机系统600仅是计算环境的一个示例,并且不旨在对计算机和网络体系结构的使用范围或功能提出任何限制。也不应当将计算机系统600解释为对在示例计算机系统600中所示的任何一个组件或组件组合有任何依赖性或要求。在各实施例中,系统600可用作以上参考图2和图3所描述的接收服务器和/或中央服务器。
在其最基本的配置中,系统600一般包括至少一个处理单元602和存储器604。取决于计算设备的确切配置和类型,存储器604可以是易失性(诸如RAM)、非易失性(诸如ROM、闪存等)、或者这两者的某种组合。该最基本的配置在图6中由虚线606示出。系统存储器604存储在系统600上执行的应用程序。除了应用程序之外,存储器604还可存储在系统600所执行的操作中使用的信息,诸如写请求610和/或批准请求612,如以上参考图2-5所描述的。
另外,系统600还可具有附加特征/功能。例如,设备600还可包括附加存储608(可移动和/或不可移动),包括但不限于磁盘或光盘或磁带。这样的附加存储在图6中由存储608所示。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器604和存储608是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并可由系统600访问的任何其它介质。任何这样的计算机存储介质可以都是系统600的一部分。
如本领域技术人员将会理解的,存储608可存储各种信息。除了其它类型的信息之外,存储608可存储数据规则618和分布式系统上的信息的复制品620。如上参考图2和3所述,取决于系统600是接收服务器还是中央服务器,该数据规则可以是局部数据规则或全局数据规则。
系统600还包含允许系统与其它设备通信的通信连接612。通信连接612是通信介质的示例。通信介质一般以诸如载波或者其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传送介质。术语“已调制数据信号”指其一个或多个特征以将信息编码在信号中的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外和其它无线介质。本文使用的术语计算机可读介质包括存储介质和通信介质两者。
系统600还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备614。也可包括诸如显示器、扬声器、打印机等输出设备616。所有这些设备在本领域中是已知的并且不必在此详细讨论。
本说明书通篇引述了“一个实施例”或“一实施例”,这意指特定描述的特征、结构或特性包括在至少一个实施例中。因而,对这样的短语的使用可指一个以上的实施例。此外,在一个或多个实施例中,所描述的特征、结构或特性可用任何合适的方式组合起来。
然而,本领域的技术人员可认识到,本发明可在没有这些具体细节中的一个或多个的情况下实施或者使用其它方法、资源、材料等来实施。仅仅为了避免模糊本发明的各方面,在其它情况中,没有具体示出或者描述的公知的结构、资源或操作。
尽管已经示出和描述了各示例实施例和应用,但应当理解,本发明不限于所述的精确配置和资源。对于本领域技术人员显而易见的是,可在不背离本发明的范围的情况下对在本文所公开的方法和系统的安排、操作和细节方面作出各种修改、改变和变化。

Claims (20)

1.一种处理包括多个服务器的分布式系统中的写请求的计算机实现的方法,所述多个服务器各自存储同一数据的复制品并且进行复制以维护存储在所述多个服务器上的所述复制品中的每一个之间的数据一致性,所述方法包括:
在第一服务器处接收带有要被写到存储在所述第一服务器上的复制品的数据的写请求,其中所述第一服务器是多个服务器之一;
确定所述写请求中的所述数据是否服从全局数据规则;
发送批准请求至中央服务器以批准接受所述写请求,其中所述中央服务器是所述多个服务器中的另一个服务器并且具有全局知识;
从所述中央服务器接收指示所述批准请求是否已经被批准的消息;
响应于所述中央服务器批准所述批准请求,所述第一服务器接受所述写请求并将所述数据写到存储在所述第一服务器上的所述复制品;以及
响应于所述中央服务器不批准所述批准请求,所述第一服务器拒绝所述写请求。
2.如权利要求1所述的计算机实现的方法,其特征在于,还包括:
所述第一服务器确定所述写请求中的所述数据是否满足局部数据规则;以及
响应于所述数据确实满足所述局部数据规则的判断和所述中央服务器批准所述批准请求,所述第一服务器接受所述写请求并且将所述数据写到存储在所述第一服务器上的所述复制品;以及
响应于所述数据不服从所述局部数据规则的判断,所述第一服务器拒绝所述写请求。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述发送包括生成所述批准消息和将所述数据包括在所述批准请求中。
4.如权利要求3所述的计算机实现的方法,其特征在于,所述中央服务器存储所述全局数据规则并且确定所述批准请求中的所述数据是否满足所述全局数据规则。
5.如权利要求3所述的计算机实现的方法,其特征在于,所述数据规则要求所述数据相对于存储在所述分布式系统中的其它数据是唯一的。
6.如权利要求1所述的计算机实现的方法,其特征在于,所述分布式系统存储分布式目录并且所述写请求是使用轻量级目录访问协议来生成的。
7.如权利要求1所述的计算机实现的方法,其特征在于,所述分布式系统存储分布式文件系统并且所述写请求涉及将数据写到在所述分布式文件系统上的文件。
8.如权利要求1所述的计算机实现的方法,其特征在于,所述写请求是从访问所述分布式系统的客户机接收的。
9.如权利要求1所述的计算机实现的方法,其特征在于,还包括在所述第一服务器处存储用于在中央服务器不可用时决定接受还是拒绝写请求的策略。
10.一种在包括多个服务器的分布式系统中实施全局数据规则的计算机实现的方法,所述多个服务器各自存储同一数据的复制品并且进行复制以维护存储在所述多个服务器上的所述复制品之间的数据一致性,所述方法包括下列步骤:
在中央服务器处存储供该中央服务器实施的全局数据规则,其中该中央服务器是所述多个服务器之一;
在所述中央服务器处接收由作为所述多个服务器中的一个不同服务器的接收服务器所发送的批准请求,其中所述批准请求与在所述接收服务器处接收到的写请求有关并且所述批准请求包括要被写到存储在所述接收服务器上的复制品的数据;
所述中央服务器确定要被写到所述接收服务器的所述数据是否满足所述全局数据规则;
响应于所述数据不满足所述全局数据规则的判断,发送拒绝所述批准请求的消息至所述接收服务器;以及
响应于所述数据满足所述数据规则的判断:
将所述数据写到存储在所述中央服务器上的复制品;以及
发送批准所述写请求的消息至所述接收服务器。
11.如权利要求10所述的计算机实现的方法,其特征在于,还包括:
在所述写入之后,将所述数据复制到作为所述多个服务器之一的第二中央服务器。
12.如权利要求11所述的计算机实现的方法,其特征在于,所述复制是在所述发送之前执行的。
13.如权利要求11所述的计算机实现的方法,其特征在于,所述复制是按预定的时间表执行的。
14.如权利要求10所述的计算机实现的方法,其特征在于,所述分布式系统存储分布式目录服务并且所述写请求是使用轻量级目录访问协议生成的。
15.一种分布式系统,包括:
多个中央服务器,所述多个中央服务器中的每一个都存储要求全局知识来实施的数据规则并且每一个中央服务器可用于:
接收寻求批准将数据写到接收服务器的批准请求,其中所述批准请求包括所述数据;
确定所述写数据是否服从所述数据规则;
响应于所述数据不服从所述数据规则的判断,发送拒绝所述批准请求的消息至所述接收服务器;以及
响应于所述数据服从所述数据规则的判断:
将所述数据写到所述中央服务器,以及
发送批准所述批准请求的消息至所述接收服务器;以及
多个接收服务器,所述接收服务器中的每一个可用于:
接收将数据写到所述接收服务器的写请求;
发送批准请求至所述多个中央服务器之一,其中所述批准请求寻求所述多个中央服务器之一对所述写请求的批准;
响应于从所述中央服务器接收到批准所述批准请求的消息,接受所述写请求并且将所述数据写到所述接收服务器;以及
响应于从所述中央服务器接收到拒绝所述批准请求的消息,拒绝所述写请求。
16.如权利要求15所述的分布式系统,其特征在于,所述多个中央服务器实现与所述多个接收服务器不同的复制协议。
17.如权利要求15所述的分布式系统,其特征在于,所述多个中央服务器实现与所述多个接收服务器不同的复制拓扑结构。
18.如权利要求17所述的分布式系统,其特征在于,所述多个中央服务器实现全连接的复制拓扑结构。
19.如权利要求15所述的分布式系统,其特征在于,所述多个接收服务器各自还可用于存储在中央服务器不能用于接收批准请求时决定接受还是拒绝写请求的策略。
20.如权利要求15所述的分布式系统,所述多个中央服务器各自还可用于接收将数据写到所述中央服务器的写请求。
CN2008800222160A 2007-06-27 2008-06-16 使用具有全局知识的服务器处理写请求的方法和系统 Active CN101689166B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/769,474 US7945639B2 (en) 2007-06-27 2007-06-27 Processing write requests with server having global knowledge
US11/769,474 2007-06-27
PCT/US2008/067143 WO2009002752A2 (en) 2007-06-27 2008-06-16 Processing write requests with server having global knowledge

Publications (2)

Publication Number Publication Date
CN101689166A true CN101689166A (zh) 2010-03-31
CN101689166B CN101689166B (zh) 2013-04-24

Family

ID=40161925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800222160A Active CN101689166B (zh) 2007-06-27 2008-06-16 使用具有全局知识的服务器处理写请求的方法和系统

Country Status (7)

Country Link
US (1) US7945639B2 (zh)
EP (1) EP2176777B1 (zh)
JP (1) JP4806729B2 (zh)
CN (1) CN101689166B (zh)
CL (1) CL2008001604A1 (zh)
TW (1) TWI450109B (zh)
WO (1) WO2009002752A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11340988B2 (en) 2005-09-30 2022-05-24 Pure Storage, Inc. Generating integrity information in a vast storage system
US10154034B2 (en) * 2010-04-26 2018-12-11 International Business Machines Corporation Cooperative data access request authorization in a dispersed storage network
US10866754B2 (en) 2010-04-26 2020-12-15 Pure Storage, Inc. Content archiving in a distributed storage network
US11327674B2 (en) 2012-06-05 2022-05-10 Pure Storage, Inc. Storage vault tiering and data migration in a distributed storage network
US11080138B1 (en) 2010-04-26 2021-08-03 Pure Storage, Inc. Storing integrity information in a vast storage system
US10956292B1 (en) 2010-04-26 2021-03-23 Pure Storage, Inc. Utilizing integrity information for data retrieval in a vast storage system
US9268960B2 (en) 2011-06-01 2016-02-23 Microsoft Technology Licensing, Llc Moderation of shared data objects
US9613052B2 (en) * 2012-06-05 2017-04-04 International Business Machines Corporation Establishing trust within a cloud computing system
US9584358B2 (en) 2014-03-06 2017-02-28 International Business Machines Corporation Global production rules for distributed data
CN105224541B (zh) 2014-05-30 2019-01-04 阿里巴巴集团控股有限公司 数据的唯一性控制方法、信息存储方法及装置
US11113259B2 (en) * 2017-08-02 2021-09-07 Tata Consultancy Services Limited Method and system for analyzing unstructured data for compliance enforcement
CN111600958B (zh) * 2020-05-21 2023-06-02 广州市百果园信息技术有限公司 服务发现系统、服务数据管理方法、服务器及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0214354A (ja) * 1988-07-01 1990-01-18 Fujitsu Ltd 共通データの管理処理方式
US6356941B1 (en) * 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US7024429B2 (en) * 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7266702B2 (en) * 2002-10-21 2007-09-04 Solid Information Technology Oy Method and system for managing security material and services in a distributed database system
US7428751B2 (en) 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
GB2401693B (en) * 2003-05-15 2005-08-17 Sun Microsystems Inc Conflictless replication in a multi-master directory system
JP4568576B2 (ja) * 2004-10-26 2010-10-27 株式会社デンソーアイティーラボラトリ データ共有システム及び通信端末並びにデータ共有方法
TWI338473B (en) * 2005-08-19 2011-03-01 Hon Hai Prec Ind Co Ltd System and method for managing storage of components in a distributed system
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance

Also Published As

Publication number Publication date
WO2009002752A3 (en) 2009-02-26
EP2176777A4 (en) 2012-08-22
WO2009002752A2 (en) 2008-12-31
JP2010532051A (ja) 2010-09-30
TW200907721A (en) 2009-02-16
CN101689166B (zh) 2013-04-24
US7945639B2 (en) 2011-05-17
JP4806729B2 (ja) 2011-11-02
EP2176777A2 (en) 2010-04-21
CL2008001604A1 (es) 2009-03-13
TWI450109B (zh) 2014-08-21
EP2176777B1 (en) 2015-04-29
US20090006487A1 (en) 2009-01-01

Similar Documents

Publication Publication Date Title
CN101689166B (zh) 使用具有全局知识的服务器处理写请求的方法和系统
CN101535977B (zh) 联盟基础结构内的一致性
CN101568919B (zh) 具有分布式存储的联网计算机系统中的单个数据视图
CN101677352B (zh) 文档管理系统、文档制作设备、文档使用管理设备、以及文档管理方法
CN100462957C (zh) 基于隐私策略的消息路由方法和系统
JP5727020B2 (ja) クラウドコンピューティングシステム及びそのデータ同期化方法
JP4537022B2 (ja) データ配置に制限を設けるデータ処理方法、記憶領域制御方法、および、データ処理システム。
CN102770854A (zh) 自动同步冲突解决
CN110192198A (zh) 访问存储的资源的安全性
CN101331488A (zh) 基于盘的高速缓存
CN108027828A (zh) 与无状态同步节点的托管文件同步
CN101763575A (zh) 许可管理设备、许可管理方法以及计算机可读介质
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
JP2000078135A (ja) 網管理におけるトポロジビュー制御システム
CN101167333A (zh) 在设备之间传递信息的方法和装置
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
US8856260B2 (en) Providing access to shared state data
JP2004341961A (ja) ストレージシステムおよびストレージプログラム
KR20150136778A (ko) 파일 관리 서버, 파일 관리 시스템, 및 파일 관리 방법
CN116305218B (zh) 一种数据链路追踪及数据更新方法、装置及数据管理系统
Demichev et al. Provenance metadata management in distributed storages using the Hyperledger blockchain platform
WO2015097991A1 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体
JP2017211709A (ja) 仮想マシン管理方法および仮想マシン管理システム
CN117972785A (zh) 一种数据管控处理方法和系统
Lovetsky et al. On Providing Information Security for Decentralized Databases

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

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

Effective date of registration: 20150513

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.