CN109936618B - 用于集群应用负载均衡的长轮询方法和系统 - Google Patents

用于集群应用负载均衡的长轮询方法和系统 Download PDF

Info

Publication number
CN109936618B
CN109936618B CN201811555861.0A CN201811555861A CN109936618B CN 109936618 B CN109936618 B CN 109936618B CN 201811555861 A CN201811555861 A CN 201811555861A CN 109936618 B CN109936618 B CN 109936618B
Authority
CN
China
Prior art keywords
events
event
http
clustered
network
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
CN201811555861.0A
Other languages
English (en)
Other versions
CN109936618A (zh
Inventor
A·米什拉
M·威廉姆森
J·埃泽尔
K·海塞罗特
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.)
Avaya Inc
Original Assignee
Avaya Inc
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 Avaya Inc filed Critical Avaya Inc
Publication of CN109936618A publication Critical patent/CN109936618A/zh
Application granted granted Critical
Publication of CN109936618B publication Critical patent/CN109936618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及用于集群应用负载均衡的长轮询。从多个集群应用接收多个长轮询HTTP GET请求。多个长轮询HTTP GET请求包括用于多个集群应用的多个标识符。基于多个标识符为多个集群应用创建多个事件队列。基于多个通信会话,将多个事件添加到多个事件队列。例如,可以基于多个传入呼叫将多个事件添加到多个事件队列。基于多个长轮询HTTP GET请求发送多个响应。多个响应包括多个事件。此过程允许识别正在管理通信会话的相应集群应用。

Description

用于集群应用负载均衡的长轮询方法和系统
技术领域
本公开涉及用于集群应用的负载均衡。
背景技术
提供通信平台即服务(CPaaS)的云服务,例如TwilioTM和 ZangTM,目前对于在企业数据中心中运行的应用存在安全问题。CPaaS 是一种开发框架,用于向应用添加诸如语音、视频和消息传递之类的特征。当前的CPaaS系统发送HTTP请求以访问企业数据中心中的数据。传入的HTTP POST或HTTP GET请求必须由企业数据中心处理。
企业数据中心对传入消息敏感,因为它们可能导致安全问题。因此,企业尝试最小化从外部因特网发起通信的应用的数量。系统管理员对向企业的传入请求提出异议,特别是希望限制对指向云服务的出站消息的请求。系统管理员不希望将网络打开到传入流量,因为它会在可以被利用的防火墙中产生漏洞。
解决入站HTTP问题的一种方法是使用Websocket。可以使用来自企业的出站HTTP请求来建立Websocket。在初始出站HTTP请求之后,消息可以在Websocket上双向流动。
一些企业对使用Websocket敏感。某些反向代理和应用框架无法支持Websocket。此外,一些企业还具有应用感知的反向代理和应用交付控制器,其可以对HTTP消息及其内容进行深入检查。Websocket击败了该能力,因为消息可以以开发人员选择的任何方式被格式化。出于这些原因,有必要支持长轮询作为通过HTTP进行事件传递的普遍可用的技术。
长轮询是一种易于理解的方法,通过该方法,客户端向服务器发送HTTP GET请求,并且如果存在要返回到应用的事件,则立即发送事件并发送另一请求。如果没有事件,则HTTP GET请求保持打开,直到有事件要返回或发生超时(例如,60秒)。这给出了异步事件的印象和特征,并且还满足没有对企业数据中心的入站请求。发送唯一的传入消息以响应出站请求。
长轮询的困难出现在正在提供多个应用的集群环境中。当前的解决方案不支持集群环境中的长轮询。
发明内容
通过本公开的各种实施例和配置解决了这些和其他需求。从多个集群应用接收多个长轮询HTTP GET请求。多个长轮询HTTP GET请求包括用于多个集群应用的多个标识符。基于多个标识符为多个集群应用创建多个事件队列。基于多个通信会话,将多个事件添加到多个事件队列。例如,可以基于多个传入呼叫将多个事件添加到多个事件队列。基于多个长轮询HTTP GET请求发送多个响应。多个响应包括多个事件。此过程允许识别正在管理通信会话的相应集群应用。
短语“至少一个”,“一个或多个”,“或”和“和/或”是开放式表达,其在操作中既是连接的又是分离的。例如,“A、B和C中的至少一个”,“A、B或C中的至少一个”,“A、B和C中的一个或多个”,“A、B或C中的一个或多个”,“A、B和/或C”,以及“A、B或C”中的每个表达意指单独的A,单独的B,单独的C,A和B在一起,A和 C在一起,B和C在一起,或者,A、B和C在一起。
术语“一个”或“一种”实体是指该实体中的一个或多个。因此,术语“一个”(或“一种”),“一个或多个”和“至少一个”在本文中可互换使用。还应注意,术语“包含”、“包括”和“具有”可互换使用。
如本文所使用的术语“自动”及其变体是指在执行过程或操作时在没有物质的人为输入的情况下完成的任何过程或操作,其通常是连续的或半连续的。然而,如果在执行过程或操作之前接收到输入,则过程或操作可以是自动的,即使过程或操作的执行使用物质或非物质的人为输入。如果此类输入影响过程或操作的执行方式,则认为人为输入是物质的。同意过程或操作的性能的人为输入不被视为“物质的”。
本公开的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者组合软件和硬件方面的实施例的形式,所述软件和硬件方面通常都可以被称为“电路”、“模块”或“系统”。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。
例如,计算机可读存储介质可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下:具有一条或多条电线的电连接,便携式计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器(EPROM或闪速存储器),光纤,便携式光盘只读存储器(CD-ROM),光学存储设备,磁存储设备或前述的任何合适的组合。在本文的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储程序以供指令执行系统、装置或设备使用或与其结合使用。
计算机可读信号介质可包括传播的数据信号,其中包含计算机可读程序代码,例如,在基带中或作为载波的一部分。这种传播信号可以采用多种形式中的任何一种,其包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质并且可以通信、传播或传输程序以供指令执行系统、装置或设备使用或与之结合使用。计算机可读介质上实现的程序代码可以使用任何适当的介质传输,其包括但不限于无线、有线、光纤电缆、RF 等,或者前述的任何合适的组合。
如本文所使用的术语“确定”、“运算”和“计算”及其变体可互换使用,并且包括任何类型的方法、过程、数学运算或技术。
根据35U.S.C.的第112(f)节和/或第112节第6段,本文所用的术语“装置”应给予其最广泛的解释。因此,包含术语“装置”的权利要求应包括本文所述的所有结构、材料或动作,以及其所有等同物。此外,结构、材料或动作及其等同物应包括在概述、附图的简要说明、详细说明、摘要和权利要求本身中描述的所有那些。
前面是简化的概述,以提供对本公开的一些方面的理解。该概述不是对本公开及其各种实施例的广泛或详尽的概述。其既不旨在识别本公开的关键或重要元素,也不旨在描绘本公开的范围,而是以简化的形式呈现本公开的所选概念,作为对下面给出的更详细描述的介绍。如将理解的,本公开的其他实施例可以单独地或组合地利用上面阐述的或下面详细描述的一个或多个特征。而且,尽管根据示例性实施例呈现了本公开,但是应当理解,可以单独地要求保护本公开的各个方面。
附图说明
图1是用于集群应用的长轮询的第一说明性系统的框图。
图2是用于为集群应用程序创建和删除事件队列的过程的流程图。
图3是用于基于通信会话标识符将事件分配给事件队列的过程的流程图。
图4是用于处理来自集群应用的HTTP长轮询的过程的流程图。
图5是用于管理每个长轮询HTTP GET请求发送的多个事件的过程的流程图。
图6是用于在云服务和集群应用之间进行桥接的过程的流程图。
具体实施方式
图1是用于对集群应用122进行长轮询的第一说明性系统100的框图。第一说明性系统100包括通信端点101A-101N、网络110、企业数据中心120和云服务130。
通信端点101A-101N可以是或可以包括可以在网络110上通信的任何通信端点设备,例如,个人计算机(PC)、电话、视频系统、蜂窝电话、个人数字助理(PDA)、平板设备、笔记本设备、网络服务器、媒体服务器、智能电话、会议桥接器等。通信端点101A-101N是通信会话结束的设备。通信端点101A-101N不是促进和/或中继网络110中的通信会话的网络元件,例如通信管理器或路由器。如图1所示,任何数量的通信端点101A-101N可以连接到网络110。
网络110可以是或可以包括可以发送和接收电子通信的任何通信设备集合,例如因特网、广域网(WAN)、局域网(LAN)、IP语音网络 (VoIP)、公共交换电话网(PSTN)、分组交换网络、电路交换网络、蜂窝网络、这些的组合等。网络110可以使用各种电子协议,例如,以太网、互联网协议(IP)、会话发起协议(SIP)、综合业务数字网 (ISDN)、超文本传输协议(HTTP)、网络实时通信(WebRTC)协议等。因此,网络110是被配置为经由分组和/或电路交换通信来携带消息的电子通信网络。
企业数据中心120可以是或可以包括用于任何实体的数据中心,例如公司、政府、合伙企业、团体、协会、组织和/或个人等。企业数据中心120可以包括由同一实体或不同实体拥有的多个企业数据中心 120。在一个实施例中,在存在多个企业数据中心120的情况下,可以基于单个数据中心120的标识符来识别企业数据中心120。
企业数据中心120还包括防火墙121、集群应用122和一个或多个数据库123。防火墙121可以是或可以包括可用于防止对集群应用122/ 数据库123(例如,网络地址转换器(NAT)、代理服务器、会话边界控制器等)的未授权访问的任何硬件/软件。
集群应用122是一组应用,其可用于为由云服务130提供的通信会话/服务提供服务/信息。集群应用122可提供各种服务,例如数据库服务、交互式语音响应(IVR)服务、代理识别服务、呼叫管理服务等。集群应用122提供冗余服务。例如,集群应用122可以是集群应用IVR 应用。
数据库123可以是或可以包括任何类型的数据库123,例如关系数据库、目录服务、文件系统、面向对象的数据库等。作为从云服务130 接收到通知/请求的结果,集群应用122使用数据库123。例如,数据库 123可以是包含关于企业的客户的信息(例如,地址、电话号码、信用卡号等)的数据库123。
云服务130可以是或可以包括可以提供基于网络的服务的任何服务,例如,通信平台即服务(CPaaS)、联络中心即服务(CCaaS)、应用管理服务、消费者服务等。云服务130可以基于从多个企业数据中心 120发送的长轮询HTTP GET为多个企业提供云服务。云服务130还包括桥接器131。
桥接器131是在云服务130和集群应用122之间提供桥接的系统/ 应用。桥接器131还包括队列管理器132和事件队列133。
队列管理器132可以是或可以包括与软件耦合的任何硬件,而不是管理云服务130和企业数据中心120之间的信息流。队列管理器132通过事件队列133管理事件和数据。
事件队列133可以是或可以包括与管理各个集群应用122的事件的软件耦合的任何硬件。例如,如果企业数据中心120具有三个激活集群应用122(即,同一应用的不同实例),则云服务130将具有三个对应的事件队列133。如果云服务130支持两个企业数据中心120,每个企业数据中心120具有三个集群应用122,则桥接器131将具有六个事件队列133(两组三个事件队列133),以支持两个企业数据中心120。可以基于在图2-6中描述的消息中使用的企业数据中心标识符来识别单独的企业数据中心120。
尽管未在图1中示出,但是桥接器131可以与云服务130分离。例如,桥接器131可以是在单独的服务器上运行的单独的应用。可替代地,桥接器131可以在与云服务130分开的处理器线程上运行。
图2是用于为集群应用122创建和删除事件队列133的过程的流程图。说明性地,通信端点101A-101N、企业数据中心120、防火墙 121、集群应用122、数据库123、云服务130、桥接器131、队列管理器132和事件队列133是存储程序控制的实体,例如,执行图2-6方法的计算机或微处理器,以及通过执行存储在计算机可读存储介质(例如存储器(即,计算机存储器,硬盘等))中的程序指令而在此描述的过程。尽管图2-6中描述的方法以特定顺序示出,但是本领域技术人员将认识到,图2-6中的步骤可以以不同的顺序实现和/或在多线程环境中实现。此外,可以基于实现省略或添加各种步骤。
图2的过程是从云服务130(即,桥接器131)的角度来看的。该过程在步骤200开始。队列管理器132在步骤202中确定是否已从集群应用122接收到注册/注销消息。例如,当首次加载集群应用122时,集群应用122向队列管理器132注册。可替代地,当取下集群应用122时,集群应用122发送取消注册消息。在一个实施例中,注册消息/注销消息可以是从集群应用122发送的长轮询HTTP GET请求(例如,如图4和6中所描述的)。可替代地,注册/注销消息可以是HTTP POST或其他类型的消息。
如果在步骤202中未接收到注册/注销消息,则云服务130在步骤 204中确定该过程是否完成。如果该过程在步骤204中完成,则该过程在步骤206结束。否则,如果该过程在步骤204中未完成,则重复步骤 202的过程。
如果在步骤202中已经接收到注册/注销消息(例如,来自集群应用122的第一长轮询HTTP GET请求),则队列管理器132在步骤208 中获得集群应用标识符。集群应用标识符唯一地识别集群应用组122中的特定集群应用122。集群应用标识符在步骤202的接收消息中。如果在步骤210中接收的消息是注册消息,则队列管理器132在步骤214中基于集群应用标识符创建用于集群应用122的事件队列133。然后,该过程返回到步骤202。
在步骤214中创建的事件队列133是用于保存由集群应用122使用的事件的队列。事件队列133中的事件通常包括与特定通信会话相关联的会话标识符(例如,与特定语音通信会话相关联的会话标识符)。这样,特定集群应用122可以同时支持多个通信会话。在一个实施例中,可以为每个通信会话/集群应用122创建单独的事件队列133。例如,单个集群应用122可以具有用于多个通信会话的多个事件队列133(例如,两个单独的语音通信会话由单个集群应用122处理)。
如果在步骤210中消息是注销消息,则队列管理器132在步骤212 中删除用于与集群应用标识符相关联的集群应用122的事件队列133。然后,该过程转到步骤202。
图3是用于基于通信会话标识符将事件分配给事件队列133的过程的流程图。图3的过程是从桥接器131的角度来看的。在步骤302中,队列管理器132确定是否已经接收到通信会话的事件。用于通信会话的事件可以是或可以包括可以与通信会话相关联的任何类型的事件,例如,接收新呼叫的指示、播放通告的完成、收集的双音多频率 (DTMF)音调、口头短语的检测、参与者从呼叫中退出等等。
如果在步骤302中未接收到用于通信会话的事件,则该过程在步骤 304中确定该过程是否完成。如果该过程在步骤304中完成,则该过程在步骤306结束。否则,如果该过程在步骤304中没有完成,则该过程返回到步骤304以等待接收通信会话的事件。
如果在步骤302中接收到用于通信会话的事件,则队列管理器132 在步骤308中获得用于通信会话的会话标识符。会话标识符是用于唯一地标识通信会话的唯一标识符,例如全球唯一标识符(GUID)、唯一呼叫标识符等。队列管理器132将会话标识符映射到与特定集群应用122 相关联的特定事件队列133。这对于可能存在与单个通信会话相关联的多个事件的情况是必需的。例如,语音呼叫可以在首次建立语音呼叫时具有第一事件,而在传送或记录语音呼叫时具有第二事件。在步骤310 中,队列管理器132确定会话标识符是否用于新的通信会话。如果会话标识符用于新的通信会话,则队列管理器132在步骤312中将事件分配给事件队列133。事件队列133的分配可以基于各种类型的信息,例如加载、循环方案等。当队列管理器132基于会话标识符将事件分配给事件队列133时,队列管理器132将通信会话分配给特定的集群应用 122。相同的集群应用122通常管理单个通信会话的所有事件。然后该过程返回到步骤302。
否则,如果在步骤310中会话标识符用于现有通信会话(即,其中通信会话的先前事件已经被分配给事件队列133并且仍然是激活的),则队列管理器132在步骤314中(基于会话标识符)将该事件分配给与用于同一通信会话的先前事件相同的事件队列133。然后该过程进入步骤302。
图4是用于处理来自集群应用122的HTTP长轮询的过程的流程图。该过程在步骤400中开始。当在步骤214中创建事件队列133时,在一个实施例中,队列管理器132在步骤402中为每个创建的事件队列 133创建单独的处理器线程。队列管理器132在步骤404中等待从分配给事件队列133的集群应用122接收长轮询HTTP GET请求。
长轮询HTTP GET请求是集群应用122发送HTTP GET请求并等待一段时间(例如,两分钟)以从队列管理器132接收响应的地方。如果在该段时间内没有接收到响应,则集群应用122发送新的HTTP GET请求。使用HTTP GET请求的目的是使得集群应用122使用传出HTTP套接字(端口80)启动与云服务130的通信会话。这为防火墙 121提供了增强的安全性,因为通信会话是从企业内部(可信源)发起的。如果通信会话是从云服务130发起的,则可能必须在防火墙121上打开新端口。如果另一个实体(例如,使用中间人攻击)包括传入的HTTP GET请求/POST,则这导致潜在的安全漏洞。结果可能是中间人攻击者丢失了数据,因为HTTP GET请求的地址可能已被中间人攻击者更改。
如果在步骤404中未接收到长轮询HTTP GET请求,则该过程在步骤406中确定该过程是否完成(例如,在步骤212中删除事件队列 133)。如果该过程在步骤406中完成,则该过程在步骤408中结束。否则,如果该过程在步骤406中未完成,则该过程重复步骤404。
如果在步骤404中接收到长轮询HTTP GET请求,则队列管理器 132在步骤410中确定事件队列133中是否存在任何事件。如果在步骤 410中在事件队列133中没有任何事件,则队列管理器132在步骤412 中确定是否存在超时(未接收到长轮询HTTP GET请求的时间段)或者是否已从与该事件队列133相关联的集群应用122接收到新的长轮询 HTTP GET请求。如果在步骤412中已经接收到新的长轮询HTTP GET请求并且没有发生超时,则该过程返回到步骤410。否则,如果在步骤412中发生了超时,则该过程返回到步骤404。
如果在步骤410中事件队列133中存在一个或多个事件,则队列管理器132在步骤414中将事件队列133中的一个或多个事件发送到集群应用122。然后,该过程返回到步骤412。
图5是用于管理每个长轮询HTTP GET请求发送的多个事件的过程的流程图。图5的过程是图4的步骤414的一个示例性实施例。在步骤410中确定事件队列133中存在一个或多个事件之后,队列管理器 132在步骤500中确定事件队列133中的事件的数量。队列管理器132 在步骤502中确定事件队列133中的事件的数量是否大于要发送的最大数量。事件队列133中的最大事件数量可以是从1到N的任何数,其中 N是整数。最大事件数量可以由管理员或其他实体定义。
如果事件队列133中的事件的数量大于最大事件数量,则队列管理器132在步骤504中将事件队列133中的最大事件数量发送到集群应用 122。然后该过程进入步骤412。
否则,如果事件队列133中的事件的数量不大于最大事件数量,则队列管理器132在步骤506中将事件队列133中的所有事件发送到集群应用122。然后该过程进入步骤412。
在步骤504和506中发送的事件类型可以是用于相同通信会话和/ 或用于多个通信会话的事件。例如,在步骤504/506中发送的事件可以用于相同的通信会话。在一个实施例中,最大事件数量也可以基于单个通信会话。例如,如果单个集群应用122当前正在处理两个通信会话,则可以存在基于集群应用122正在处理的每个通信会话的最大数量(例如,第一通信会话的一个事件和第二通信会话的两个事件)。
图5的过程可以针对不同的事件队列133具有不同的最大数量。例如,第一事件队列133可以具有最大数量的一个事件,并且第二事件队列133可以具有最大数量的两个事件。在一个实施例中,不同的最大数量可以用于相同类型的集群应用122,或者用于同一企业数据中心120 中的不同类型的集群应用122。
在一个实施例中,最大数量差异可以基于不同的两个不同的企业数据中心120。例如,第一企业数据中心120中的集群应用122可以具有最大数量的一个事件,并且第二企业数据中心中的集群应用122可以具有最大数量的两个事件。第一数据中心120中的集群应用122可以是相同或不同类型的集群应用122。例如,第一和第二企业数据中心120中的集群应用122可以用于相同的集群应用IVR应用。可替代地,第一数据中心120中的集群应用122可以是集群应用数据库应用,并且,第二数据中心120中的集群应用122可以是集群应用呼叫记录应用。在这些示例中,每个企业数据中心120使用唯一的企业标识符来区分不同企业数据中心120中的集群应用122。
图6是用于在云服务130和集群应用122之间进行桥接的过程的流程图。桥接器131的目的是最小化用于云服务130和集群应用122的软件所需的必要变化。
当集群应用122最初发送长轮询HTTP GET请求(在一个实施例中,这可以是长轮询HTTP POST请求)时,该过程在步骤600中开始。发送步骤600的长轮询HTTP GET请求以等待直到数据准备好 (即,事件/数据)以发送到集群应用122。在步骤602中,在云服务 130处接收传入呼叫。例如,传入呼叫可以是来自通信端点101A的传入呼叫。传入呼叫可以是语音呼叫、视频呼叫、多媒体呼叫、即时消息 (IM)呼叫等。
响应于接收到传入呼叫,云服务130在步骤604中基于规则确定必须向哪个集群应用122通知传入呼叫(事件)。例如,传入呼叫可以是对集群IVR应用122的语音呼叫。一旦确定必须调用哪个集群应用 122,云服务130就在步骤606中向桥接器131发送HTTP POST。步骤 606的POST还包括传入呼叫的会话标识符。会话标识符唯一地标识传入呼叫。
在一个实施例中,步骤606的HTTP POST还可以包括数据(例如,以扩展标记语言(XML)格式)。数据的存在(在该示例中为 XML)指示云服务130期望来自集群应用122的响应数据(在步骤614 中发送)。虽然使用XML描述,但是可以使用其他格式的数据,例如JavaScript对象表示法(JSON)。响应数据可以是不同类型的响应数据。例如,响应数据可以是来自数据库123的数据,从IVR系统收集的数据,代理标识符等。
在步骤608中,桥接器131基于会话标识符将事件分配给事件队列 133(即,如图3中的步骤312/314所述)。基于步骤600的长轮询 HTTP GET请求,桥接器131在步骤610中向集群应用122发送200 OK,其包括会话标识符/事件(即,如步骤414中所述)。如果步骤606的HTTP POST包含XML数据,则200OK还在步骤610中包括XML 数据。然后,集群应用122在步骤612中基于在步骤610中发送的事件 /XML数据执行。例如,集群应用122可以从新呼叫通知消息中获取呼叫者ID,在步骤612中从数据库123中查找关于呼叫者的一些信息,并使用该信息来创建XML命令以向呼叫者播放自定义问候语。
在步骤614中,集群应用122将具有XML数据/会话标识符的 HTTP POST发送到桥接器131。桥接器131在步骤616中从HTTP POST获取会话标识符/XML数据。桥接器131在步骤618中发送200 OK。如果步骤606的HTTP POST包含XML数据(即播放自定义问候语的命令),则200OK还包括XML数据(例如,来自数据库123的数据)。然后,云服务130在步骤620中使用XML数据。在步骤622 中,桥接器131还向集群应用122发送200OK消息,以确认步骤614 的HTTP POST。
在步骤622中在传入呼叫中发生第二事件。例如,在传入呼叫的媒体流中检测到口头短语或手势。这导致云服务130在步骤624中(基于定义的规则)将具有事件的HTTP POST发送到桥接器131。桥接器 131在步骤626中将事件放置在用于集群应用122(同一集群应用122) 的事件队列133中。集群应用122在步骤628中发送另一个长轮询 HTTP GET(在一个实施例中,这可以是长轮询HTTP POST请求)。响应于接收到步骤628的长轮询HTTP GET,桥接器接收事件队列133 中的事件(步骤624的HTTP POST),并在步骤632中将事件以200 OK消息发送到集群应用122。然后,集群应用在步骤634中处理该事件。在步骤636中,桥接器131还向云服务130发送200OK,以确认步骤624的HTTP POST。
在一个实施例中,可以在步骤628的长轮询HTTP GET之后发送步骤624的HTTPPOST。在该实施例中,步骤626将在步骤628之后发生。
描述图6的过程,其中云服务130通过以XML发送数据来请求来自集群应用122的指令。在一个实施例中,云服务130可以仅在步骤 606的HTTP POST中发送事件而不发送任何XML数据。在该示例性实施例中,云服务130不期望在步骤618的200OK中接收任何XML 数据。例如,步骤610的步骤606/200的HTTP POST可以是向集群应用122通知步骤602的传入呼叫来自集群应用122正在跟踪的特定呼叫者。在该示例中,步骤614的HTTP POST(或HTTP GET)不包含任何XML数据。同样,步骤618的200OK不包含任何XML数据。
在一个实施例中,在步骤610的200OK中仅存在XML数据(不一定是XML数据本身)向集群应用122指示响应是必需的。例如, XML数据可以仅包括没有数据的标签。在这种情况下,集群应用122 已经基于事件的类型知道要发送什么数据。可替代地,XML数据本身可以指示集群应用122将在步骤614的HTTP POST消息中发送什么数据。
针对单个集群应用122描述了图6的过程。然而,本领域技术人员将理解,图6的过程也被设计为与多个集群应用122一起工作。例如,多个集群应用122可以并行地为多个传入呼叫提供服务。
另外,图6的过程可以与不同企业数据中心120中的不同集群应用 1122一起工作。在该实施例中,桥接器131可以基于事件类型或基于用于步骤606的HTTP POST中的企业数据中心的标识符来识别单个企业数据中心120。集群应用在步骤614中使用企业数据中心标识符来进行响应。
本文描述的处理器的示例可以包括但不限于
Figure BDA0001911871620000131
Figure BDA0001911871620000141
800和801,具有4G LTE集成和64位计算的
Figure BDA0001911871620000142
610和615,具有64位架构的
Figure BDA0001911871620000143
A7,
Figure BDA0001911871620000144
M7运动协处理器,
Figure BDA0001911871620000145
系列,
Figure BDA0001911871620000146
CoreTM系列处理器,
Figure BDA0001911871620000147
系列处理器,
Figure BDA0001911871620000148
AtomTM系列处理器,Intel
Figure BDA0001911871620000149
系列处理器,
Figure BDA00019118716200001410
i5-4670K和i7-4770K 22nm Haswell,
Figure BDA00019118716200001411
i5-3570K 22nm Ivy Bridge,
Figure BDA00019118716200001412
FXTM系列处理器,
Figure BDA00019118716200001413
FX-4300,FX-6300和FX-8350 32nm Vishera,
Figure BDA00019118716200001414
Kaveri处理器,Texas
Figure BDA00019118716200001415
Jacinto C6000TM汽车信息娱乐处理器,Texas
Figure BDA00019118716200001416
OMAPTM汽车级移动处理器,
Figure BDA00019118716200001417
CortexTM-M处理器,
Figure BDA00019118716200001418
Cortex-A和ARM926EJ-STM处理器,其他工业等效处理器中的至少一个,并可使用任何已知或未来开发的标准、指令集、库和/或架构来执行计算功能。
本文所讨论的任何步骤、功能和操作可以连续且自动地执行。
然而,为了避免不必要地模糊本公开,前面的描述省略了许多已知的结构和设备。该省略不应被解释为对要求保护的公开的范围的限制。阐述具体细节以提供对本公开的理解。然而,应当理解,本公开可以以超出本文阐述的具体细节的各种方式实施。
此外,尽管这里示出的示例性实施例示出了并置的系统的各种组件,但是系统的某些组件可以远程地定位在诸如LAN和/或因特网的分布式网络110的远端部分处,或者在专用系统内。因此,应当理解,系统的组件可以组合到一个或多个设备中或者并置在诸如模拟和/或数字电信网络、分组交换网络、或电路交换网络的分布式网络的特定节点上。从前面的描述中可以理解,并且出于计算效率的原因,系统的组件可以布置在组件的分布式网络内的任何位置处,而不会影响系统的操作。例如,各种组件可以位于诸如PBX的交换机和媒体服务器、网关中,在一个或多个通信设备中,在一个或多个用户的房屋处,或其某种组合。类似地,系统的一个或多个功能部分可以分布在电信设备和相关的计算设备之间。
此外,应当理解,连接元件的各种链路可以是有线或无线链路,或其任何组合,或能够向连接的元件提供和/或传送数据并从连接的元件提供和/或传送数据的任何其他已知或以后开发的元件。这些有线或无线链路也可以是安全链路,并且能够传送加密信息。例如,用作链路的传输介质可以是用于电信号的任何合适的载体,其包括同轴电缆、铜线和光纤,并且可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的那些声波或光波。
此外,虽然已经关于特定事件序列讨论和说明了流程图,但是应当理解,可以在没有实质上影响本公开的操作的情况下发生对该序列的改变、添加和省略。
可以使用本公开的许多变化和修改。可以提供本公开的一些特征而不提供其他特征。
在又一个实施例中,本公开的系统和方法可以结合专用计算机,编程的微处理器或微控制器和外围集成电路元件,ASIC或其他集成电路,数字信号处理器,诸如分立元件电路的硬连线电子或逻辑电路,诸如PLD、PLA、FPGA、PAL、专用计算机、任何类似的装置等可编程逻辑设备或门阵列来实现。通常,能够实现本文所示方法的任何设备或装置可用于实现本公开的各个方面。可以用于本公开的示例性硬件包括计算机、手持设备、电话(例如,蜂窝、因特网使能、数字、模拟、混合等)以及本领域中已知的其他硬件。这些设备中的一些包括处理器 (例如,单个或多个微处理器)、存储器、非易失性存储器、输入设备和输出设备。此外,还可以构造包括但不限于分布式处理或组件/对象分布式处理、并行处理或虚拟机处理的替代软件实现来实现本文描述的方法。
在又一个实施例中,可以使用提供可以在各种计算机或工作站平台上使用的便携式源代码的对象或面向对象的软件开发环境结合软件来容易地实现所公开的方法。可替代地,所公开的系统可以使用标准逻辑电路或VLSI设计部分地或完全地在硬件中实现。软件或硬件是否用于实现根据本公开的系统取决于系统的速度和/或效率要求,特定功能,以及所使用的特定软件或硬件系统或微处理器或微计算机系统。
在又一个实施例中,所公开的方法可以部分地以软件实现,该软件可以存储在存储介质上,在控制器和存储器的协作下的编程的通用计算机、专用计算机、微处理器等上执行。在这些情况下,本公开的系统和方法可以实现为嵌入在诸如applet、
Figure BDA0001911871620000161
或CGI脚本的个人计算机上的程序,驻留在服务器或计算机工作站上的资源,嵌入在专用测量系统、系统组件等中的例程。该系统还可以通过将系统和/或方法物理地结合到软件和/或硬件系统中来实现。
尽管本公开参考特定标准和协议描述了实施例中实现的组件和功能,但是本公开不限于这些标准和协议。本文未提及的其他类似标准和协议存在并且被认为包括在本公开中。此外,本文提到的标准和协议以及本文未提及的其他类似标准和协议周期性地被具有基本相同功能的更快或更有效的等同物取代。具有相同功能的这种替代标准和协议被认为是包括在本公开中的等同物。
在各种实施例、配置和方面中,本公开包括基本上如本文描绘和描述的组件、方法、过程、系统和/或装置,包括其各种实施例、子组合和子集。在理解本公开之后,本领域技术人员将理解如何制造和使用本文公开的系统和方法。在各种实施例、配置和方面中,本公开包括在没有本文未描绘和/或描述的项目的情况下或者在其各种实施例、配置或方面中提供设备和过程,包括在没有这样的项目的情况下已经在先前的设备或过程中使用过的设备和过程,例如,用于改善性能、实现容易和 /或降低实现成本。
已经出于说明和描述的目的呈现了本公开的前述讨论。前述内容并非旨在将本公开限制于本文公开的一种或多种形式。在前面的具体实施方式中,例如,为了简化本公开,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。本公开的实施例、配置或方面的特征可以在除了上面讨论的那些之外的替换实施例、配置或方面中组合。该公开方法不应被解释为反映所要求保护的公开要求比每个权利要求中明确记载的更多特征的意图。而是,如所附权利要求所反映的,发明方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,所附权利要求在此并入该具体实施方式中,每个权利要求自身作为本公开的单独的优选实施例。
此外,尽管本公开的描述已经包括一个或多个实施例、配置或方面,但是在理解本公开之后,某些变型和修改、其他变型、组合和修改也在本公开的范围内,例如,可能在本领域技术人员的技能和知识范围内。其旨在获得包括在允许的范围内的替代实施例、配置或方面的权利,其包括替代的、可互换的和/或等同的结构、功能、范围或步骤,无论这种替代的、可互换的和/或等同的结构、功能、范围或步骤是否在本文中公开了,并且无意公开专用任何可专利的主题。

Claims (10)

1.一种系统,包括:
微处理器;以及
计算机可读介质,与微处理器耦合并包括对微处理器进行编程以执行如下的微处理器可读和可执行指令:
队列管理器,从多个集群应用接收多个长轮询超文本传输协议HTTP请求,其中所述多个长轮询HTTP请求包括用于所述多个集群应用的多个标识符,基于所述多个标识符为所述多个集群应用创建多个事件队列,基于多个通信会话向所述多个事件队列添加多个事件,并基于所述多个事件队列中的多个事件发送包括所述多个事件的对多个长轮询HTTP请求的多个响应;并且
其中所述队列管理器位于网络的可信部分外部,并且多个集群应用每个都位于网络的可信部分内部,并且其中防火墙从所述网络的可信部分的外部描绘所述网络的可信部分的内部;并且
其中当源自网络的可信部分内部时防火墙允许多个长轮询HTTP请求,当源自网络的可信部分外部时防火墙不允许请求。
2.根据权利要求1所述的系统,其中队列管理器从云服务接收HTTP POST,所述HTTPPOST包括用于所述多个通信会话中的单个通信会话的事件,其中队列管理器使用所述多个通信会话中的单个通信会话的标识符来识别用于单个集群应用的单个事件队列,并且,其中HTTP POST还包括扩展标记语言XML和JavaScript对象表示法JSON数据中的至少一个,并且其中XML/JSON数据的存在表示云服务期望具有来自单个集群应用的数据的响应消息。
3.根据权利要求1所述的系统,其中所述多个事件队列中的单个事件队列包括用于所述多个通信会话中的单个通信会话的多个事件,并且其中队列管理器执行如下中的至少一个:在单个消息中发送所述多个事件给所述多个集群应用,以及基于要针对单个通信会话发送的最大事件数量,在单个消息中仅发送用于单个通信会话的事件队列中的多个事件的一部分。
4.根据权利要求1所述的系统,其中所述多个事件队列包括第一事件队列和第二事件队列,其中第一事件队列包括与第一通信会话相关联的多个事件,其中第二事件队列包括与第二通信会话相关联的多个事件,其中第一事件队列具有能响应于第一长轮询HTTP GET请求而发送的第一最大事件数量,其中第二事件队列具有能响应于第二长轮询HTTP GET请求而发送的第二最大事件数量,并且其中第一最大事件数量与第二最大事件数量不同。
5.根据权利要求1所述的系统,还包括企业数据中心,其中企业数据中心包括所述多个集群应用,并且其中所述多个集群应用:
发送所述多个长轮询HTTP请求;
接收所述多个响应;以及
基于所接收的多个响应来实现多个动作。
6.一种方法,包括:
通过微处理器,从多个集群应用接收多个长轮询超文本传输协议(HTTP)GET请求,其中多个长轮询HTTP GET请求包括多个集群应用的多个标识符;
通过微处理器,基于所述多个标识符为所述多个集群应用创建多个事件队列;
通过微处理器,基于多个通信会话向所述多个事件队列添加多个事件;以及
通过微处理器,基于所述多个事件队列中的多个事件,发送包括所述多个事件的对所述多个长轮询HTTP GET请求的多个响应;
当源自网络的可信部分内部时,通过防火墙允许微处理器接收多个长轮询HTTP GET请求;
当源自网络的可信部分外部时,通过防火墙阻止微处理器接收请求;并且
其中所述微处理器位于网络的可信部分外部,并且多个集群应用每个都位于网络的可信部分内部,并且其中所述防火墙从所述网络的可信部分的外部描绘所述网络的可信部分的内部。
7.根据权利要求6所述的方法,其中微处理器从云服务接收HTTP POST,所述HTTP POST包括用于所述多个通信会话中的单个通信会话的事件,其中微处理器使用所述多个通信会话中的单个通信会话的标识符来识别用于单个集群应用的单个事件队列,并且,其中HTTPPOST还包括扩展标记语言XML和JavaScript对象表示法JSON数据中的至少一个,并且其中XML/JSON数据的存在表示云服务期望具有来自单个集群应用的数据的响应消息。
8.根据权利要求6所述的方法,其中所述多个事件队列中的单个事件队列包括用于所述多个通信会话中的单个通信会话的多个事件,并且其中微处理器执行如下中的至少一个:在单个消息中发送所述多个事件给所述多个集群应用,以及基于要针对单个通信会话发送的最大事件数量,在单个消息中发送针对单个通信会话的多个事件队列中的多个事件的一部分。
9.根据权利要求6所述的方法,其中所述多个事件队列包括第一事件队列和第二事件队列,其中第一事件队列包括与第一通信会话相关联的多个事件,其中第二事件队列包括与第二通信会话相关联的多个事件,其中第一事件队列具有能响应于第一HTTP GET请求而发送的第一最大事件数量,其中第二事件队列具有能响应于第二HTTP GET请求而发送的第二最大事件数量,并且其中第一最大事件数量与第二最大事件数量不同。
10.根据权利要求6所述的方法,还包括企业数据中心,其中企业数据中心包括所述多个集群应用,并且其中所述多个集群应用:
发送所述多个长轮询HTTP GET请求;
接收所述多个响应;以及
基于所接收的多个响应来实现多个动作。
CN201811555861.0A 2017-12-19 2018-12-19 用于集群应用负载均衡的长轮询方法和系统 Active CN109936618B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/847,211 US20190190986A1 (en) 2017-12-19 2017-12-19 Long polling for clustered application load balancing
US15/847,211 2017-12-19

Publications (2)

Publication Number Publication Date
CN109936618A CN109936618A (zh) 2019-06-25
CN109936618B true CN109936618B (zh) 2022-05-24

Family

ID=64949053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811555861.0A Active CN109936618B (zh) 2017-12-19 2018-12-19 用于集群应用负载均衡的长轮询方法和系统

Country Status (4)

Country Link
US (1) US20190190986A1 (zh)
EP (1) EP3503506A1 (zh)
JP (1) JP6698806B2 (zh)
CN (1) CN109936618B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10944801B1 (en) * 2019-02-25 2021-03-09 Amazon Technologies, Inc. Serverless signaling in peer-to-peer session initialization
US11457057B2 (en) 2020-03-11 2022-09-27 Microsoft Technology Licensing, Llc Systems and methods for establishing highly secure and resilient persistent communication connections

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882903A (zh) * 2011-07-12 2013-01-16 腾讯科技(深圳)有限公司 一种多网站应用信息获取方法及系统
CN104079598A (zh) * 2013-03-27 2014-10-01 腾讯科技(深圳)有限公司 一种实现网页协同浏览的方法和装置
CN104852991A (zh) * 2015-06-01 2015-08-19 上海雷腾软件股份有限公司 分布式推送服务器系统及应用该系统的数据推送方法
CN105900397A (zh) * 2014-02-07 2016-08-24 甲骨文国际公司 用于移动云服务的本地代理
CN106681861A (zh) * 2016-12-08 2017-05-17 杭州销冠网络科技有限公司 一种新环境隔离的配置数据管理方法及系统
CN107947960A (zh) * 2017-10-13 2018-04-20 用友网络科技股份有限公司 配置信息的推送方法及系统、配置信息的接收方法及系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046000B2 (en) * 2003-12-24 2011-10-25 Nortel Networks Limited Providing location-based information in local wireless zones
US8788949B2 (en) * 2008-10-28 2014-07-22 Google Inc. Provisioning instant communications for a community of users
US8484716B1 (en) * 2009-08-07 2013-07-09 Adobe Systems Incorporated Hosting a server application on multiple network tiers
CN108156265B (zh) * 2010-11-22 2019-03-26 杭州硕文软件有限公司 一种应用程序控制方法及移动设备
US20120131083A1 (en) * 2010-11-24 2012-05-24 Edward Wayne Goddard Systems and methods for asynchronous notification using http
US20120185561A1 (en) * 2011-01-17 2012-07-19 Telefonaktiebolaget L M Ericsson (Publ) HTTP Notification Gateway
JP5617709B2 (ja) * 2011-03-16 2014-11-05 富士通株式会社 プログラム、制御装置および方法
US8751639B2 (en) * 2011-04-27 2014-06-10 Rackspace Us, Inc. Event queuing and distribution system
US8667579B2 (en) * 2011-11-29 2014-03-04 Genband Us Llc Methods, systems, and computer readable media for bridging user authentication, authorization, and access between web-based and telecom domains
US9225660B2 (en) * 2011-12-21 2015-12-29 Arm Finland Oy Method, apparatus and system for addressing resources
US20130290234A1 (en) * 2012-02-02 2013-10-31 Visa International Service Association Intelligent Consumer Service Terminal Apparatuses, Methods and Systems
WO2013149650A1 (en) * 2012-04-03 2013-10-10 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for providing a subscriber identity
US20150172228A1 (en) * 2012-04-17 2015-06-18 George Zalepa Method and system for communicating information over a network
US9088622B2 (en) * 2012-07-05 2015-07-21 Sap Se Dynamic client registration for server push events in long polling scenarios
US20140149493A1 (en) * 2012-11-29 2014-05-29 Utku Gunay ACER Method for joint service placement and service routing in a distributed cloud
US20140201376A1 (en) * 2013-01-11 2014-07-17 Andre Godin Method and system for the handling of redundant long poll
US20140344411A1 (en) * 2013-05-15 2014-11-20 Piazza Technologies, Inc. Method for delivering long polling push messages in a multi-server environment
US9203815B1 (en) * 2013-11-27 2015-12-01 Symantec Corporation Systems and methods for secure third-party data storage
US9800689B2 (en) * 2013-12-19 2017-10-24 Sap Se Distributed application integration auto-adjustment
US10587671B2 (en) * 2015-07-09 2020-03-10 Zscaler, Inc. Systems and methods for tracking and auditing changes in a multi-tenant cloud system
US10506055B2 (en) * 2016-07-08 2019-12-10 Facebook, Inc. Automatic recipient targeting for notifications
US11663205B2 (en) * 2017-05-04 2023-05-30 Salesforce, Inc. Technologies for asynchronous querying

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882903A (zh) * 2011-07-12 2013-01-16 腾讯科技(深圳)有限公司 一种多网站应用信息获取方法及系统
CN104079598A (zh) * 2013-03-27 2014-10-01 腾讯科技(深圳)有限公司 一种实现网页协同浏览的方法和装置
CN105900397A (zh) * 2014-02-07 2016-08-24 甲骨文国际公司 用于移动云服务的本地代理
CN104852991A (zh) * 2015-06-01 2015-08-19 上海雷腾软件股份有限公司 分布式推送服务器系统及应用该系统的数据推送方法
CN106681861A (zh) * 2016-12-08 2017-05-17 杭州销冠网络科技有限公司 一种新环境隔离的配置数据管理方法及系统
CN107947960A (zh) * 2017-10-13 2018-04-20 用友网络科技股份有限公司 配置信息的推送方法及系统、配置信息的接收方法及系统

Also Published As

Publication number Publication date
CN109936618A (zh) 2019-06-25
JP6698806B2 (ja) 2020-05-27
EP3503506A1 (en) 2019-06-26
JP2019109891A (ja) 2019-07-04
US20190190986A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
US10756912B2 (en) Distributed ledger and blockchain to confirm validity of call recordings
US11108911B2 (en) System and method for flexible routing
KR100985612B1 (ko) 동적 다중 파티의 다중 매체 통신 세션의 자동 조정의 컴퓨터 구현 방법, 동적 다중 파티의 다중 매체 통신 세션을 자동 조정하는 장치 및 컴퓨터 판독가능 매체
US20190196676A1 (en) System and method for dynamically loaded application/agent terminal integration
US11677792B2 (en) IP tolerance and signaling interworking
US20170324686A1 (en) System and method for secure and efficient communication within an organization
CN109936618B (zh) 用于集群应用负载均衡的长轮询方法和系统
EP3357211B1 (en) Data communications
CN113595927A (zh) 一种旁路模式下镜像流量的处理方法和装置
JP2017063421A (ja) 効率的な呼処理のためのシステムおよび方法
CN111245885A (zh) 基于事件的多协议通信会话分发
US10757547B2 (en) Sequenced applications for controlling communication features
US9112881B2 (en) Presence-based caller identification
CN115941766A (zh) 一种运维数据的处理方法和装置
US20220244976A1 (en) Containers on demand
US20170289200A1 (en) Call preservation for multiple legs of a call when a primary session manager fails
US11240377B2 (en) Interactive system for rerouting a two-way text communication pathway
US9367367B2 (en) Application router
US10666691B2 (en) Dynamic session classification
US12022372B2 (en) Emergency services communication for a premises
CN109040007B (zh) 用于应对替代网络地址类型(anat)不兼容性的方法和系统
US20220295252A1 (en) Emergency services communication for a premises
US9407568B2 (en) Self-configuring dynamic contact center
US11811779B2 (en) Securing collaboration tools against unauthorized data exfiltration
US20200329006A1 (en) Interactive system for rerouting a two-way email communication pathway

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant