CN102783094B - 用于基于会话发起协议的通信系统的弹性路由 - Google Patents

用于基于会话发起协议的通信系统的弹性路由 Download PDF

Info

Publication number
CN102783094B
CN102783094B CN201180012125.0A CN201180012125A CN102783094B CN 102783094 B CN102783094 B CN 102783094B CN 201180012125 A CN201180012125 A CN 201180012125A CN 102783094 B CN102783094 B CN 102783094B
Authority
CN
China
Prior art keywords
backup
main group
server
request
group collection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180012125.0A
Other languages
English (en)
Other versions
CN102783094A (zh
Inventor
K·阿南塔纳拉亚南
V·马尼安
S·纳拉亚南
D·谢卡尔安
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 CN102783094A publication Critical patent/CN102783094A/zh
Application granted granted Critical
Publication of CN102783094B publication Critical patent/CN102783094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

提供了基于被群集的网络环境中主/备份和故障切换/故障回复关系的弹性路由管理方式,其中每个用户和/或资源被分配给主群集和至少一个备份群集。分布式移交机制使得能够全局地知晓群集之间的主/备份关系和它们所分配的用户或资源。

Description

用于基于会话发起协议的通信系统的弹性路由
背景
容错和缩放能力是对基于服务器的系统的两个重要要求。在典型的系统中,服务器拥有资源(例如,用户到服务器的登录或存储在服务器上的文件)并提供找到资源的能力。例如,文件服务器向用户提供将文件存储在该服务器上的能力并还向用户提供查找系统中的文件的能力。后一操作需要在给定唯一文件名称的情况下在系统中找到文件的能力。针对容错的传统方式通常使用主/备份故障切换/故障回复模型来将资源分配给群集。在该架构中,通常存在备用备份群集,一旦主群集变得不可用,该备用备份群集就从主群集接管。
提供多模态通信的增强的通信系统以与数据交换网络类似(有时候是相同)的方式操作,其中指定的服务器和它们的备份提供服务(例如,呼叫的路由)。会话发起协议(SIP)是在这样的系统的组件之间常用的通信协议。当主-备份关系被用于将用户分配给增强的通信系统中的服务器群集时,可能必须要克服若干个挑战。例如,何时以及如何将用户分配给主群集或其备份,主和备份群集之间进行通信来确定何时用户被移交给备份以及返回主群集,以及类似的内容。
概述
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本发明内容并不旨在专门标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例针对管理联网环境中主/备份和故障切换/故障回复关系,其中每个用户和/或资源被分配给主群集和至少一个备份群集。根据一些实施例,分布式移交机制使得能够全局地知晓群集之间的主/备份关系和它们所分配的用户或资源。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。可以理解,前述一般描述和以下的详细描述都是说明性的,并且不限制所要求保护的各方面。
附图简述
图1是示出示例统一通信系统的图,其中各实施例可被实现以用于通过主/备份群集架构来管理通信会话的路由;
图2是示出可在根据各实施例的架构中被管理的示例主和备份服务器群集的概念图;
图3是示出示例群集间拓扑结构的概念图;
图4是用于根据各实施例的在增强的通信系统中尝试路由通信会话的状态图;
图5是可实现根据各实施例的系统的联网环境;
图6是可实现各实施例的示例计算操作环境的框图;以及
图7示出了用于根据各实施例的利用主/备份群集架构来管理增强的通信系统中弹性路由的过程的逻辑流程图。
详细描述
如以上简单描述的,主/备份和故障切换/故障回复关系可按分布式的方式在增强的通信系统和类似的联网环境中被管理。在以下详细描述中,参考了构成了详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本发明的精神或范围。因此,以下详细描述并不旨在限制,并且本发明的范围由所附权利要求及其等效方案来限定。
尽管在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施方式,但是本领域的技术人员会认识到各方面也可以结合其它程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员可以明白,各实施例可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码包括用于使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。例如,计算机可读存储介质可经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘和类似介质中的一个或多个来实现。
贯穿本说明书,术语“平台”可以是用于管理多模态通信系统或冗余系统的软件和硬件组件的组合。平台的示例包括但不限于,在多个服务器上执行的托管服务、在单个服务器上执行的应用以及类似系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为在被视作网络上的服务器的一个或多个计算设备上执行的虚拟服务器(软件程序)。以下提供关于这些技术和示例操作的更多细节。
图1包括示出示例统一通信系统的图100,其中各实施例可被实现以用于通过主/备份群集架构来管理通信会话的路由。统一通信系统是具有可提供给订户的各种各样的能力和服务的现代通信系统的示例。统一通信系统是便于即时消息收发、在场、音频-视频会议、web会议和类似功能的实时通信系统。
在统一通信(“UC”)系统中,如图100中示出的系统,用户可经由作为该UC系统的客户机设备的各种终端设备(102、104)来进行通信。每一客户机设备都能够执行用于语音通信、视频通信、即时消息通信、应用共享、数据共享等的一个或多个通信应用。除其增强功能之外,终端设备还可通过外部连接,如通过PBX 124,来促进到公共交换电话网(“PSTN”)的传统电话呼叫。终端设备可包括任何类型的智能电话、蜂窝电话、执行通信应用的任何计算设备、智能汽车控制台以及具有附加功能的增强电话设备。
UC网络110包括执行不同任务的多个服务器。例如,UC服务器114提供注册、在场以及路由功能。路由功能使该系统能够基于默认和/或用户设置的策略来将对一用户的呼叫路由到分配给该用户的客户端设备中的任一个。例如,如果用户不能通过常规电话被找到,则该呼叫可被转发到用户的蜂窝电话,并且如果没有接听则可以利用多个语音邮件选项。因为终端设备可以处理附加通信模式,所以UC服务器114可以通过接入服务器112提供对这些附加通信模式(例如即时消息收发、视频通信等)的访问。接入服务器112位于周边网络中并且以附加通信模式之一允许与其他用户通过UC网络110的连接。UC服务器114可包括执行上述功能的组合的服务器,或仅提供特定功能的专用服务器。例如,提供在场功能的家庭服务器、提供路由功能的路由服务器等。类似地,接入服务器112可提供多个功能,诸如防火墙保护和连接,或仅提供专用功能。
音频/视频(A/V)会议服务器118通过经由内部或外部网络促进音频和/或视频会议能力来提供这些能力。中介服务器116作为去往和来自诸如PSTN或蜂窝网络等其他类型的网络的信令和媒体(例如,通过PBX 124的或来自蜂窝电话122的呼叫)的中介。中介服务器116还担当会话发起协议(SIP)用户代理。
在UC系统中,用户可以具有一个或多个身份,该身份不必限于电话号码。根据集成网络,该身份可以采取任何形式,如电话号码、会话发起协议(SIP)统一资源标识符(URI)、或任何其他标识符。尽管在UC系统中可以使用任何协议,但SIP是常用方法。
SIP是用于创建、修改和终止与一个或多个参与者的会话的应用层控制(信令)协议。该协议还可用于创建包括因特网电话呼叫、多媒体分发和多媒体会议的双方、多方或多播会话。SIP被设计成与底层传输层无关。
SIP客户机可使用传输控制协议(“TCP”)来连接到SIP服务器和其他SIP端点。SIP主要用于建立和破坏语音或视频呼叫。然而,它可以在需要会话发起的任何应用中使用。这些应用包括事件订阅和通知、终端移动性等。语音和/或视频通信通常通过单独的会话协议(通常是实时协议(“RTP”))来完成。
UC系统可提供用于多模态通信的平台。这样的系统中的客户机被分配家庭服务器,该家庭服务器服务于来自用户的通信请求。家庭服务器可被建立为具有一个或多个备份群集的主群集,每个群集都具有一个或多个物理/逻辑服务器。当在UC系统的任一服务器处接收到用户的通信请求时,该通信请求初始地被导向主家庭服务器群集。如果该群集停机(down),则可接着尝试指定的备份群集。如果主群集和备份群集都是不可用的,则可尝试替换的方法,诸如将请求路由到PSTN。以下讨论更详细的示例。
虽然图1中的示例系统已被描述为具有诸如中介服务器、A/V服务器和类似设备等特定组件,但各实施例不限于这些组件或系统配置并且能够用采用更少或更多组件的其他系统配置来实现。管理主/备份架构中故障切换/故障回复操作的系统的功能还可取决于组件能力和系统配置来不同地分布在系统的各组件之间。此外,各实施例不限于统一通信系统。此处所讨论的方法可应用于使用此处所描述的原理的联网通信环境中的任何数据交换。
图2是示出可在根据各实施例的架构中被管理的示例主和备份服务器群集的概念图。图200中的网络210是如上讨论的UCN。网络210可包括多个子网,诸如子网242、244和246。网络210可包括以上讨论的诸如UC服务器214的服务器中的一个或多个,并促进客户机202的通信。
边缘服务器234和防火墙232是拆分接入服务器功能的示例。防火墙232提供对于与诸如因特网220等其它网络的连接的保护,而边缘服务器234通过周边网络提供连通性。根据一些实施例,一个或多个边缘服务器可通过其它网络提供到连接到网络210的客户机的连通性。根据其它实施例,网络210中的每个子网都可被配备有一个或多个服务器群集,诸如子网242的群集243、子网246的群集247等等。当然,每个子网都可包括多于一个的服务器群集。这些服务器群集中的一些可被指定为针对所分配的用户的家庭服务器(或注册器(registrar))。因此,对与特定用户进行通信的请求可由接收到该请求的任一服务器路由到该特定用户的家庭服务器。为了避免在用户的主家庭服务器故障的情况下的通信失败,可指定一个或多个备份。除了子网中的服务器群集之外,UC服务器214中的一个或多个也可用作针对该系统的客户机的家庭服务器。
自动故障切换(响应于对应的主服务器停工,备份服务器接管)和故障回复(主服务器从备份服务器接管)可通过自定义心跳来发生。备份群集可周期性地向主群集发送服务器健康监视消息。例如,服务器健康监视消息可以是心跳消息。心跳请求可由主群集内的服务器中的一个来接收。接收该请求的服务器可响应该请求。针对心跳请求的成功响应可接着被视为群集正在运作的指示。因此,如果群集中的至少一个服务器是活动的,则该群集可被认为是活动的。
作为附加的复杂性级别,备份群集可潜在地具有要求群集中的所有服务器对主群集的健康达成一致的多个服务器。让备份群集中的每个服务器都向主群集发送心跳是不理想的,这是因为总心跳消息的数量可能是相对高的(例如,具有10个服务器的群集备份成500个其它群集可能导致每个定义时间段的5000个心跳消息)。此外,在多主系统中,达成一致是固有的难题。例如,两个服务器可能在以下情况下难以达成一致:如果来自备份群集中的一个服务器的心跳失败,而来自另一个服务器的心跳成功。
为了避免将健康检查过程复杂化,备份群集中的每个服务器都可运行相同的算法来生成服务器序列。对算法的输入可以是主群集的完全合格域名。备份服务器可接着将生成的序列映射到备份群集中活动的服务器列表。序列中活动的第一服务器可负责向主群集发送心跳消息。由此,第一服务器可取得对主群集的心跳传送的所有权、对健康做出决定并将该信息分发到备份群集中的其它服务器。心跳消息的周期可以是固定的。
基于单个心跳消息的成功或失败来改变健康状态可导致大的摆动。因此,可在系统中根据各实施例定义两个阈值(例如,可由管理器根据每个主-备份关系来配置)。针对故障切换间隔的第一阈值可以是在其之后群集被标记为非活动的持续时间。例如,如果心跳间隔是30秒并且故障切换间隔被设定为3分钟,那么六个失败的心跳导致群集被标记为非活动的。第二阈值可以是故障回复间隔。这是在群集被再次标记为活动之前经过的最小时间量。例如,如果故障回复间隔是4分钟,且群集在时间t1处被标记为非活动的,那么该群集不会被标记为活动的直到(t1+4分钟),即使在该窗口期间心跳开始成功。
根据进一步的实施例,可向管理员提供机制以禁用自动故障切换。当该选项被设定时,由于自动故障切换已经被禁用,备份群集可总是假设主群集是活动的。结果,如果主群集停工,那么被分配给作为他们的家庭群集的主群集的用户可能不能从备份群集获得服务。
作为以上描述的自动机制的结果,备份群集可自动地检测主群集停工/开工,而不需要任何手动干预。这还提供给管理员根据主群集的网络特性来设置间隔以及禁用自动故障切换/故障回复的灵活性。根据一些实施例,群集可被配置成是彼此的备份或主群集可被分配多个备份群集(以预定的顺序)。
根据一示例场景,如果用户的主群集停工了,那么用户的客户机可尝试连接到备份群集。一旦备份群集检测到该主群集停工了,该备份群集可开始对这些用户进行服务。停工的主群集也可被其它服务器检测到并将通信路由到备份群集。当备份群集检测到主群集是活动的时,其可将用户移动到主群集。这可由SIP协议来实现。备份群集可将消息发送到用户的客户机应用,该消息要求它们移动到主群集。客户机应用可接着从备份群集断开连接并重新连接到在那里要被服务的主群集。
当服务器接收到定标在给定用户的请求时,服务器可落入以下三个分类之一:(1)服务器可以是在用户的主群集中;(2)服务器可以是在用户的备份群集中;或(3)服务器可以既不在用户的主群集中也不在用户的备份群集中。接收请求的群集可继续以下一系列步骤:查找用户的主群集;查找主群集的备份群集;检查处理请求的群集是在主群集中还是在备份群集中。如果群集既不是主群集也不是备份群集,那么群集可首先尝试将请求转发给主群集。如果那样成功,那么在该服务器上的处理完成,并且主群集可处理请求。如果将请求转发给主群集的尝试失败,那么进行接收的群集可尝试将请求转发给用户的备份群集。再次,如果备份是活动的并且接受请求,那么处理完成。如果主群集和备份群集均不能到达,那么进行接收的群集可检查以查看任何替换的机制是否可被用于联系用户。例如,可通过PSTN尝试语音呼叫或导向语音邮件。
如果对请求存在替换的机制,那么进行接收的服务器可使用该机制来联系用户。如果不存在替换的机制,那么请求可被失效,这是因为没有进一步的动作能被采取来联系到用户。如果进行接收的群集是用户的主群集,那么它可接受请求以用于进一步处理。如果该群集是用户的备份群集,那么它可首先将请求转发到用户的主群集。如果主群集接受请求,那么处理在进行接收的群集上完成。如果联系主群集的尝试失败,那么进行接收的备份群集可接受请求以用于进一步处理,这是因为主是不能到达的并且进行接收的群集是备份。
应当注意,以上描述的方式可在消息行经的各个服务器处被采用。由此,如果群集A不能到达用户X的主群集,它可尝试将消息发送到指定的备份群集。但是如果主群集是可从备份群集到达的(即,网络被划分),那么消息可被路由到用户的主群集。如果联系给定群集的尝试出于以下原因而失败了,那么过程可进行到下一步骤:群集停工、网络断线、网络分区或由于带宽限制请求被目标群集拒绝。
如果用户呼叫其主群集停机的另一用户,那么由于根据一些实施例的系统连续地尝试主群集、备份群集和替换机制,呼叫连接可被延迟。为了增强用户体验以及利用来自先前的尝试的信息来联系给定的群集,方式可通过维护高速缓存来扩充,该高速缓存包括已经在过去被尝试的各个群集的条目。
由此,根据进一步的实施例,开启和停机群集的高速缓存可被维护。在预定数量的失败的尝试后,群集可在高速缓存中被指定为“停机(down)”。在增强的通信系统中,由于用户期望一般不包括即时连接,高速缓存可能不被用于即时消息收发之类的非音频模态。然而,对于音频通信之类的模态,以上讨论的方式可借助于高速缓存来优化和加速。
图3是示出示例群集间拓扑结构的概念图。图300中显示的示例拓扑结构包括两个站点350和362。DC1(352)、DC2(358)和DC3(364)是数据中心群集。群集中的一些(DC2和DC3)仅仅包括一个物理服务器,而DC1(352)具有两个物理服务器,DC1R1(354)和DC1R2(356),它们两者均可以是注册器(家庭服务器)。在诸如UC系统的增强的通信系统中,每个用户可被分配优选的注册器。一示例场景在以下被显示在表1中。
群集B04(360)和B05(366)可以是站点I和II(350,362)的各自的分支办公室注册器。服务器359可管理站点I(350)的操作。根据一示例场景,所示出的拓扑结构的群集和服务器可被配置为:
表1.针对各种用户的主和备份服务器的示例配置。
根据该示例场景,群集DC2是针对用户U1、U1R1和U1R2的群集DC1的指定的备份群集。针对用户U2,群集DC2是主注册器而群集DC1是备份。针对用户U3,群集DC3是主群集,而没有指定备份群集。针对用户U4和U5,分支办公室注册器B04和B05是指定的主注册器群集,而群集DC1和DC2是主在场注册器。对于两个用户,DC1和DC2还是备份群集。由此,对于导向所列出的用户的呼叫,可首先尝试各自的主群集,如果尝试如以上讨论的那样失败,则接着尝试它们各自的备份群集。
图4是用于根据各实施例的在增强的通信系统中尝试路由通信会话的状态图。如先前讨论的,内部开启或停机状态高速缓存可被维护(例如,通过群集间路由“ICR”模块)来优化根据各实施例实现弹性路由的增强的通信系统内的路由。
在图400中,如果主群集响应计时器或该群集的备份群集响应计时器期满(分别为474或476),则路由尝试可被认为是失败的(482,486)并被标记为“停机(DOWN)”472。接收到的任何响应(478,484,492)可被认为是成功的并被标记为“开启(UP)”470。根据一些实施例,路由的预定数量个连续的失败(例如,482,486,488)可导致群集被标记为“停机”472。一旦群集被标记为“停机”,ICR可继续尝试将非音频邀请路由到该群集,并且对这些尝试的任何成功(494)都可将该群集的状态带回到“开启”470。如果群集曾被标记为“停机”472长于预定的时间段(490),那么ICR可采取一次尝试来将音频呼叫路由到该群集。
图1、2和3中的示例系统已被描述为具有诸如通信服务器、目录服务器、在场服务器等特定组件,但各实施例不限于根据这些示例配置的通信系统。根据各实施例的弹性路由系统可以在采用更少或更多组件并执行其他任务的配置中实现。
此外,各实施例不限于增强的通信系统。基于主/备份的故障切换/故障回复管理可被实现在其它类型的网络中,其中用户和/或资源由服务器和服务器组使用在此描述的原理来管理。
图5是可实现各实施例的示例联网环境。先前描述的基于主/备份群集架构的故障切换/故障回复路由可以在本地实现或以分布式方式在多个物理和虚拟客户机和服务器上实现。这样的系统通常可涉及一个或多个网络,如PSTN 520、蜂窝网络530、以及UCN 510。系统中的至少一个可以在采用通过一个或多个网络进行通信的若干节点的非群集系统或群集系统中实现。
根据各实施方式的系统可以包括服务器、客户机、因特网服务提供者、以及通信介质的任何拓扑结构。该系统还可具有静态或动态拓扑结构。术语“客户机”可以表示客户机应用或客户机设备。一种根据各实施方式的系统可涉及更多组件,各典型和相关组件结合该附图来讨论。
中介服务器512可以在不同的系统之间提供信令和媒体交换。PBX 522和RF调制解调器532可分别用于PSTN和蜂窝网络同中介服务器512之间的连接。客户机设备501、502、503通过UCN 510彼此通信并与其他网络上的设备进行通信。UC系统还可包括用于在场、路由、以及其他功能的一个或多个专用或组合服务器(未示出)。
一个(或多个)家庭服务器514可被分配给客户机设备501-503来作为主和/或备份群集。每个备份群集都可如上讨论的那样来确定对应的主群集的健康,并根据在此描述的各种方式来路由请求。主群集可具有一个或多个备份群集。此外,主和备份群集可具有彼此逆转的角色。如果替换的机制在故障回复路由尝试期间被耗尽,那么呼叫可被路由回PSTN 520或蜂窝网络530。
系统的客户机设备501-503和服务器可在通过一个或多个备份群集路由请求时通过SIP进行通信。与系统配置相关联的数据(例如用户名、电话号码、呼叫策略、配置、记录等)以及其它网络相关的操作可被存储在诸如数据存储526等一个或多个数据存储中,数据存储526可由该系统的服务器和/或客户机直接访问或可通过数据库服务器524来管理。UCN 510提供UC系统的主干并可以使用诸如SIP、RTP等多个协议。客户机设备(例如501-503)向UCN用户端点提供平台。用户可以使用客户机设备或在客户机设备上运行的一个或多个客户机应用来访问该通信系统。
UCN 510提供此处描述的节点之间的通信。作为示例而非限制,UCN 510可包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、射频、红外线和其他无线介质。
可以利用计算设备、应用、数据源、数据分发系统的许多其它配置来实现弹性路由。此外,图5中所讨论的联网环境仅用于说明目的。各实施例不限于示例应用、模块、或过程。
图6及相关联讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。参考图6,示出了根据各实施例的用于应用的示例计算操作环境(诸如计算设备600)的框图。在基本配置中,计算设备600可以是管理通信应用或服务并包括至少一个处理单元602和系统存储器604的服务器。计算设备600还可包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器604可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。系统存储器604通常包括适于控制平台操作的操作系统605,诸如来自华盛顿州雷德蒙市的微软公司的操作系统。系统存储器604还可包括一个或多个软件应用,诸如程序模块606、通信应用622和群集间路由(ICR)模块624。
通信应用622可以是便于同增强的通信系统有关的客户机应用与服务器之间的通信的任何应用。ICR模块624可维护对于相关主和备份群集的开启和停机状态的高速缓存以根据以上描述的机制来优化路由。ICR模块624和通信应用622可以是向客户机应用/设备提供增强的通信服务的托管服务的单独应用或集成模块。该基本配置在图6中由虚线608内的那些组件示出。
计算设备600可具有附加特征或功能。例如,计算设备600还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。在图6中通过可移动存储609和不可移动存储610示出这样的附加存储。计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器604、可移动存储609和不可移动存储610都是计算机可读存储介质的示例。计算机可读存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带、磁盘存储或其它磁存储设备、或能用于存储所需信息且可以由计算设备600访问的任何其它介质。任何这样的计算机可读存储介质都可以是计算设备600的一部分。计算设备600还可以具有输入设备612,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备和类似输入设备。还可以包括输出设备614,诸如显示器、扬声器、打印机和其它类型的输出设备。这些设备在本领域中公知且无需在此处详细讨论。
计算设备600还可包含通信连接616,该通信连接允许该设备诸如通过分布式计算环境中的有线或无线网络、卫星链接、蜂窝链接、短程网络和类似机制来与其他设备618进行通信。其他设备618可包括执行通信应用的计算机设备、其他目录或策略服务器和类似设备。一个或多个通信连接616是通信介质的一个示例。通信介质可在其中包括计算机可读指令、数据结构、程序模块或其它数据。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。
各示例实施例还包括各种方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。
另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
图7示出了用于根据各实施例的利用主/备份群集架构来管理增强的通信系统中弹性路由的过程700的逻辑流程图。过程700可被实现为增强的通信系统的部分。
过程700包括两个部分。第一部分与确定群集的健康相关联。在常规操作期间,如先前讨论的,在增强的通信系统中的群集(例如,备份群集和主群集)可交换心跳消息来确定彼此的健康。由此,第一部分开始于操作702,其中心跳消息从群集(例如,备份群集)的服务器之一传送到另一群集(例如,主群集)。如果在预定的时间内接收到来自目标群集的任何服务器的响应,那么可做出决定(操作704)以在操作706将目标群集标记为“UP(开启)”。另一方面,如果在预定义的时间内没有接收到响应,那么可做出决定(操作704)以在操作708将目标群集标记为“DOWN(停机)”。
在取决于目标群集的先前状态来确定群集是否是活动的(即,群集是否已经为“开启”或“停机”)时用于决定的时间阈值可被定义为两个分开的阈值。由此,两个不同的阈值可被用于故障切换检查和故障回复检查。可在操作期间执行基于心跳的检查并且群集状态的高速缓存可被维护。替换地,如以下描述的,群集可在路由时被联系。
过程700的第二部分在操作710在系统的群集处接收到与用户或资源关联的请求(例如,针对用户的呼叫请求、针对所存储的文件的访问请求等)后开始。进行接收的群集可以是用户/资源的主群集、备份群集或这两者均不是。在操作712,进行接收的群集确定分配给用户的主群集。如果进行接收的群集是主群集(并且由于其正在接收请求,其是活动的),那么请求可在进行接收的群集处被处理。然而,如果进行接收的群集不是主群集,那么在操作714,可做出将请求转发到指定的主群集的尝试。
在决定操作716,做出关于将请求转发到主群集的尝试是否是成功的确定。如果尝试是成功的,那么请求由主群集处理并且处理返回到操作710以接收进一步的请求。如果转发是不成功的,那么处理移到操作718,在那里做出将请求转发到指定的主群集的备份群集的另一尝试。
在决定操作720,做出关于将请求转发到备份群集的尝试是否是成功的确定。如果尝试是成功的,那么请求由备份群集处理并且处理返回到操作710以接收进一步的请求。如果转发是不成功的,那么处理移到操作722,在那里可尝试诸如将呼叫请求通过PSTN转发到语音邮件的替换机制。根据其它实施例,多个备份群集可被分配给主群集。在这种情况下,操作718和720可被重复与备份群集的数量一样多的次数。
包括在过程700内的各操作是用于说明目的。根据各实施例的管理主/备份群集架构中的故障切换/故障回复操作可以使用此处所述的各原理通过具有更少或更多步骤的相似过程、以及不同的操作次序来实现。
以上说明书、示例和数据提供了对各实施例的组成的制造和使用的全面描述。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施方式的示例形式而公开的。

Claims (15)

1.一种至少部分在计算设备中执行的用于管理具有故障切换/故障回复架构的联网系统内的请求的路由的方法,所述方法包括:
在所述系统的群集处接收请求;
确定被分配给与所述请求关联的用户和资源之一的主群集;
尝试将所述请求转发到所述主群集以供处理;
在备份群集中执行所述主群集的算法来管理所述请求,使得生成所述备份群集内的服务器序列,所生成的序列被映射到所述备份群集中活动的服务器列表,并且所述序列中的第一活动服务器可向所述主群集发送消息,其中所述算法的输入是所述主群集的域名;
如果所述尝试失败,则尝试将所述请求转发到被分配给所述主群集的备份群集;以及
如果将所述请求转发到所述备份群集的尝试失败并且存在用于处理所述请求的替换的机制,则采用所述替换的机制。
2.如权利要求1所述的方法,其特征在于,还包括:
如果在被分配给与所述请求关联的用户和资源之一的主群集处接收到所述请求:
则在进行接收的主群集处处理所述请求;
如果在被分配给所述主群集的备份群集处接收到所述请求:
则尝试将所述请求转发到所述主群集,以及
如果所述尝试失败,则在所述备份群集处处理所述请求;以及
如果在既不是所述主群集也不是所述备份群集的群集处接收到所述请求:
则尝试将所述请求转发到所述主群集,以及
如果所述尝试失败,则尝试将所述请求转发到所述备份群集。
3.如权利要求1所述的方法,其特征在于,还包括:
如果所述请求要被转发到所述主群集和所述备份群集之一,则通过会话发起协议(SIP)消息通知发起所述请求的客户机以重新连接到所述主群集和所述备份群集中活动的一个。
4.如权利要求1所述的方法,其特征在于,在发生以下之一后,转发的尝试被认为是失败的:对所传送的服务器健康监视消息的响应的预定时间段的期满以及预定次数的尝试连接。
5.如权利要求1所述的方法,其特征在于,还包括:
确定被分配给所述主群集的至少一个备份群集。
6.如权利要求5所述的方法,其特征在于,还包括:
如果将所述请求转发到所述备份群集的尝试失败,
则尝试将所述请求转发到被分配给所述主群集的另一备份群集。
7.如权利要求1所述的方法,其特征在于,还包括通过以下方式来确定所述主群集的健康:
生成所述备份群集中活动服务器序列;
将服务器健康监视消息从所述服务器序列中第一个服务器传送到所述主群集的服务器;
如果来自所述主群集的任何服务器的响应是在第一时间段内被接收到的,则将所述主群集指定为活动的,否则
将所述主群集指定为非活动的。
8.如权利要求7所述的方法,其特征在于,还包括:
将另一服务器健康监视消息从所述服务器序列中所述第一个服务器传送到被指定为非活动的主群集的服务器;
如果来自所述主群集的任何服务器的响应是在第二时间段内被接收到的,则将所述主群集的指定修改为活动的,否则
将所述主群集的指定保持为非活动的。
9.一种用于采用故障切换/故障回复架构来管理呼叫路由的增强的通信系统,所述系统包括;
主群集服务器,被配置成:
处理针对与呼叫请求关联的所分配的用户的所述呼叫请求;
备份群集服务器,被配置成:
在备份群集服务器中执行所述主群集服务器的算法来管理所述呼叫请求,使得通过所述算法来生成备份群集内的备份群集服务器序列,所生成的序列被映射到所述备份群集中活动的服务器列表,并且所述序列中的第一活动备份群集服务器可向所述主群集服务器发送消息,其中所述算法的输入是所述主群集的域名;
确定所述主群集服务器是否是活动的;
如果所述主群集服务器是非活动的,则处理针对所分配的用户的所述呼叫请求;以及
进行接收的服务器,被配置成:
接收所述呼叫请求;
确定所述用户的主群集服务器;
尝试将所述请求转发到所述主群集以供处理;
如果所述尝试失败,则尝试将所述请求转发到被分配给所述主群集的备份群集;以及
如果将所述请求转发到所述备份群集的尝试失败并且存在用于处理所述请求的替换的机制,则采用所述替换的机制。
10.如权利要求9所述的系统,其特征在于,所述替换的机制是以下之一:通过公共交换电话网(PSTN)来路由所述呼叫请求以及将所述呼叫请求路由到与所述用户关联的语音邮件。
11.如权利要求9所述的系统,其特征在于,故障切换响应时间阈值和故障回复响应时间阈值被用于确定所述主群集是否是活动的。
12.如权利要求11所述的系统,其特征在于,管理员能够调节所述故障切换响应时间阈值以及所述故障回复响应时间阈值,并禁用到所述备份群集的故障切换转换。
13.一种用于在增强的通信系统中采用故障切换/故障回复架构来管理呼叫路由的方法,所述方法包括:
在所述系统的群集处接收针对所述系统的订户的呼叫请求;
确定被分配给所述订户的主群集;
在备份群集中执行所述主群集的算法来管理所述请求,使得生成所述备份群集内的服务器序列,所生成的序列被映射到所述备份群集中活动的服务器列表,并且所述序列中的第一活动服务器可向所述主群集发送消息,其中所述算法的输入是所述主群集的域名;
如果进行接收的群集是被分配的主群集,则在所述进行接收的群集处处理所述呼叫请求;否则
尝试将所述请求转发到所述主群集以供处理;
如果所述尝试失败,则确定被分配给所述主群集的备份群集;
如果进行接收的群集是被分配的备份群集,则在所述进行接收的群集处处理所述呼叫请求;否则
尝试将所述请求转发到被分配给所述主群集的备份群集;以及
如果转发到所述备份群集的尝试失败并且存在用于处理所述请求的替换的机制,则采用所述替换的机制。
14.如权利要求13所述的方法,其特征在于,还包括:
维护活动和非活动群集的高速缓存;以及
在确定将所述呼叫请求转发到一群集时采用所述高速缓存。
15.如权利要求13所述的方法,其特征在于,还包括:
基于以下之一来跳过将所述呼叫请求转发到群集的尝试:所述群集是非活动的、网络断线、网络分区以及由于带宽限制的来自所述群集的拒绝。
CN201180012125.0A 2010-03-04 2011-03-03 用于基于会话发起协议的通信系统的弹性路由 Active CN102783094B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/717,270 2010-03-04
US12/717,270 US9535805B2 (en) 2010-03-04 2010-03-04 Resilient routing for session initiation protocol based communication systems
PCT/US2011/026947 WO2011109574A2 (en) 2010-03-04 2011-03-03 Resilient routing for session initiation protocol based communication systems

Publications (2)

Publication Number Publication Date
CN102783094A CN102783094A (zh) 2012-11-14
CN102783094B true CN102783094B (zh) 2015-05-20

Family

ID=44532254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180012125.0A Active CN102783094B (zh) 2010-03-04 2011-03-03 用于基于会话发起协议的通信系统的弹性路由

Country Status (3)

Country Link
US (1) US9535805B2 (zh)
CN (1) CN102783094B (zh)
WO (1) WO2011109574A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9219615B2 (en) * 2011-01-28 2015-12-22 Throughtek Co., Ltd. Remote information communication system and linking method thereof
US20130097322A1 (en) * 2011-10-17 2013-04-18 Alcatel-Lucent Usa, Inc. Scalable distributed multicluster device management server architecture and method of operation thereof
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US9344458B2 (en) * 2012-07-16 2016-05-17 eZuce, Inc. Providing unified communications services
US9632887B2 (en) * 2014-09-19 2017-04-25 International Business Machines Corporation Automatic client side seamless failover
US9507678B2 (en) * 2014-11-13 2016-11-29 Netapp, Inc. Non-disruptive controller replacement in a cross-cluster redundancy configuration
US9552248B2 (en) * 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
CN104967691B (zh) * 2015-07-08 2018-06-15 浪潮(北京)电子信息产业有限公司 一种分布式存储控制方法及系统
US10594562B1 (en) 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
US10616347B1 (en) * 2016-10-20 2020-04-07 R&D Industries, Inc. Devices, systems and methods for internet and failover connectivity and monitoring
CN107181788A (zh) * 2017-03-31 2017-09-19 北京奇艺世纪科技有限公司 一种任务处理方法及装置
EP3857381B1 (en) 2018-10-26 2023-07-12 VMware, Inc. Collecting samples hierarchically in a datacenter
US11290358B2 (en) * 2019-05-30 2022-03-29 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US11528194B2 (en) * 2019-09-06 2022-12-13 Jpmorgan Chase Bank, N.A. Enterprise control plane for data streaming service
CN112600979A (zh) * 2020-12-08 2021-04-02 深圳供电局有限公司 一种供电服务热线电话呼叫应急管理方法与系统
US11785077B2 (en) 2021-04-29 2023-10-10 Zoom Video Communications, Inc. Active-active standby for real-time telephony traffic
US11575741B2 (en) * 2021-04-29 2023-02-07 Zoom Video Communications, Inc. System and method for active-active standby in phone system management
US11811861B2 (en) 2021-05-17 2023-11-07 Vmware, Inc. Dynamically updating load balancing criteria
US11799824B2 (en) 2021-06-14 2023-10-24 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043373A (zh) * 2006-10-17 2007-09-26 华为技术有限公司 提高通信系统可靠性的装置和方法以及通信系统
CN101159608A (zh) * 2007-10-30 2008-04-09 中兴通讯股份有限公司 一种网络管理系统及保证其正常通信的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470389B1 (en) * 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6763372B1 (en) * 2000-07-06 2004-07-13 Nishant V. Dani Load balancing of chat servers based on gradients
US7020707B2 (en) 2001-05-30 2006-03-28 Tekelec Scalable, reliable session initiation protocol (SIP) signaling routing node
US8838771B2 (en) * 2004-09-27 2014-09-16 Alcatel Lucent Enabling VoIP calls to be initiated when a call server is unavailable
US8125888B2 (en) 2005-08-23 2012-02-28 Multi-Tech Systems, Inc. Session initiation protocol survivable server
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US8140695B2 (en) 2005-12-12 2012-03-20 International Business Machines Corporation Load balancing and failover of distributed media resources in a media server
US7661027B2 (en) 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US8570853B2 (en) * 2007-07-20 2013-10-29 Ipc Systems, Inc. Systems, methods, apparatus and computer program products for networking trading turret systems using SIP
US7970916B2 (en) 2007-07-25 2011-06-28 Cisco Technology, Inc. Register clustering in a sip-based network
US8139563B2 (en) 2007-10-03 2012-03-20 At&T Knowledge Ventures, L.P. System for alternate communications in an internet protocol multimedia subsystem network
US9049051B2 (en) 2007-10-10 2015-06-02 Microsoft Technology Licensing, Llc Techniques to access messaging services for branch offices
US8369323B1 (en) * 2008-02-08 2013-02-05 Juniper Networks, Inc. Managing voice-based data communications within a clustered network environment
US7995466B2 (en) 2008-03-26 2011-08-09 Avaya Inc. Failover/failback trigger using SIP messages in a SIP survivable configuration
US7843809B2 (en) * 2008-11-14 2010-11-30 At&T Intellectual Property I, L.P. Preserving stable calls during failover
US8260938B2 (en) * 2009-01-23 2012-09-04 Google Inc. Predicting user requests to reduce network connection latency
US8363549B1 (en) * 2009-09-02 2013-01-29 Juniper Networks, Inc. Adaptively maintaining sequence numbers on high availability peers
US8880725B2 (en) * 2010-05-26 2014-11-04 Microsoft Corporation Continuous replication for session initiation protocol based communication systems
US8661287B2 (en) * 2011-06-30 2014-02-25 Rackspace Us, Inc. Automatically performing failover operations with a load balancer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043373A (zh) * 2006-10-17 2007-09-26 华为技术有限公司 提高通信系统可靠性的装置和方法以及通信系统
CN101159608A (zh) * 2007-10-30 2008-04-09 中兴通讯股份有限公司 一种网络管理系统及保证其正常通信的方法

Also Published As

Publication number Publication date
CN102783094A (zh) 2012-11-14
US9535805B2 (en) 2017-01-03
WO2011109574A2 (en) 2011-09-09
WO2011109574A3 (en) 2011-12-22
US20110219121A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
CN102783094B (zh) 用于基于会话发起协议的通信系统的弹性路由
US20110307541A1 (en) Server load balancing and draining in enhanced communication systems
US8315165B2 (en) Survivable and resilient real time communication architecture
CN101383844B (zh) Ip电话及其他系统的配置
US7661027B2 (en) SIP server architecture fault tolerance and failover
US8001250B2 (en) SIP and HTTP convergence in network computing environments
US8171466B2 (en) Hitless application upgrade for SIP server architecture
US20080086567A1 (en) SIP server architecture for improving latency in message processing
US8880725B2 (en) Continuous replication for session initiation protocol based communication systems
RU2517382C2 (ru) Способ и система для синхронизации данных в сети доставки контента
CN106060088B (zh) 一种服务管理方法及装置
US8650309B2 (en) Cascading architecture for audio and video streams
CN102934425A (zh) 基于统一通信的多屏幕视频系统
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
CN111083177B (zh) 基于协同网关的跨域协同交互方法
US20080091779A1 (en) Resource consumption reduction via meeting affinity
CN103703745A (zh) 用于将用户代理与服务器集群互连的方法和设备
WO2016177098A1 (zh) 会议备份方法和装置
Wang et al. Mobility support in unified communication networks
CN113766436A (zh) 一种无线内部通话方法及系统
US9003047B2 (en) Optimizing electronic communication channels
CN108093147B (zh) 一种分布式多级调度方法和设备
EP2920913A1 (en) Methods and nodes for enabling a peer-to-peer teleconference
CN108023772B (zh) 一种异常节点修复方法、装置及相关设备
US9450770B2 (en) Communications system and method

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

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

Effective date of registration: 20150728

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.