CN112075064B - 可扩展的实时双工通信服务 - Google Patents
可扩展的实时双工通信服务 Download PDFInfo
- Publication number
- CN112075064B CN112075064B CN201880093092.9A CN201880093092A CN112075064B CN 112075064 B CN112075064 B CN 112075064B CN 201880093092 A CN201880093092 A CN 201880093092A CN 112075064 B CN112075064 B CN 112075064B
- Authority
- CN
- China
- Prior art keywords
- real
- duplex communication
- time duplex
- communication service
- computing system
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026683 transduction Effects 0.000 description 1
- 238000010361 transduction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
一个示例提供了一种配置成跨数据网络提供可扩展的实时双工通信的计算系统,该计算系统包括一个或多个处理器以及包括在由该一个或多个处理器执行时实例化一个或多个实时双工通信服务实例的指令的存储器。每个实时双工通信服务实例包括实时双工通信框架,该实时双工通信框架包括配置成接收多个客户端的连接的客户端集线器和配置成接收多个服务器的连接的服务器集线器,以及每个实时双工通信服务实例被配置成将关于该实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道。
Description
背景技术
实时双工通信可用于各种应用程序,诸如在线聊天服务。实时双工通信系统可以包括由服务器侧终端用户操作的一个或多个应用服务器。但是,通过添加附加服务器来扩展此类系统可能会带来与管理到多个服务器的客户端连接以及同步服务器状态有关的挑战。
概述
本文公开了涉及基于云的服务的示例,其被配置成以简化对通信应用的运营商进行扩展的方式跨数据网络提供实时双工通信。一个示例提供了一种配置成跨数据网络提供可扩展的实时双工通信的计算系统,该计算系统包括一个或多个处理器以及包括在由该一个或多个处理器执行时实例化一个或多个实时双工通信服务实例的指令的存储器,每个实时双工通信服务实例包括实时双工通信框架,该实时双工通信框架包括配置成接收多个客户端的连接的客户端集线器和配置成接收多个服务器的连接的服务器集线器,以及每个实时双工通信服务实例被配置成将关于该实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道。
提供本发明内容以便以简化的形式介绍以下在具体实施方式述中进一步描述的概念的选集。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中提及的任何或所有缺点的实现。
附图简述
图1示出了被配置成提供可扩展的实时双工通信的示例数据网络体系结构的框图。
图2示出了用于实时双工通信服务的示例网络连接管理流程。
图3示出了例示对接收到的客户端消息进行路由的示例方法的流程图。
图4示出了示例计算设备的框图。
详细描述
实时双工通信系统可能涉及大量用户(诸如经由在线聊天服务)在计算机网络上以群组的形式彼此实时通信。随着用户数量的增加,扩大服务规模以适应不断增长的需求可能具有挑战。这可能会导致通信延迟、连接断开以及其他网络问题。扩展此类服务通常涉及添加附加应用程序服务器并利用负载平衡器。尽管这可能有助于减少等待时间,但这也可能会导致主机实体难以管理的复杂基础结构。
因此,本文公开了涉及基于云的服务的示例,其被配置成以简化对通信应用的运营商(诸如聊天服务提供方、在线协作服务和多人在线游戏)进行扩展的方式跨数据网络提供实时双工通信。图1示出了用于可扩展的实时双工通信系统100的示例数据网络体系结构。系统100包括在云环境(例如,从终端用户客户端远程托管在互联网上的计算系统)中实施的实时双工通信服务102,其被配置成实例化实时双工通信服务实例104的聚类106。每个实时双工通信服务实例104可以包括操作系统级虚拟化容器(诸如Linux容器或Windows容器),或者可以包括虚拟机实例。每个实时双工通信服务实例104运行实时双工通信框架108以管理客户端设备和应用服务器设备之间的连接。在一些示例中,框架108可以包括信号R(SignalR)服务(该软件库可以从华盛顿州雷德蒙德的微软公司获得),其包括用于实时双工通信的服务器侧和客户端侧组件。在其他示例中,可以使用任何其他合适的实时双工通信框架。每个实时双工通信服务实例104被描绘成经由网络套接字(WebSocket)协议与应用服务器110进行通信,但也可以利用提供全双工通信信道的任何合适的通信协议,诸如HTTP长轮询或服务器发送事件。
系统100进一步包括反向代理服务器112,该反向代理服务器112用于针对每个客户端连接将从客户端114接收到的消息分发到恰适的实时双工通信服务实例104。该反向代理服务器112还将来自每个实时双工通信服务实例104的消息转发到恰适的应用服务器110、从应用服务器110接收消息以在聚类106内进行路由、并将经由聚类106从应用服务器110接收到的消息发送到客户端114。每个客户端114都被描绘成具有安装用于实现与实时双工通信服务102的通信的软件开发工具包(SDK)116的组件。图1还示出了例示客户端与应用服务器之间的直接通信信道的虚线124。此类信道可被用于客户端认证,如下面更详细描述的。
由于实时双工通信服务实例104彼此独立,因此背板基础结构可被用于同步聚类106中的各实时双工通信服务实例104之间的通信。此类同步可以以任何合适的方式来执行。在所描绘的示例中,实时双工通信服务102包括具有发布/订阅功能120的高速缓存118。合适的高速缓存的示例包括存储器内的键值数据库,诸如Redis高速缓存,其可从加利福尼亚州山景城的Redis实验室获得。聚类106中的所有实时双工通信服务实例104可以订阅具有发布/订阅功能120的公共信道。当客户端114连接到实时双工通信服务实例104并发送消息时,实时双工通信服务实例104将该消息发布到高速缓存118的公共信道,从而将该消息广播到聚类106中的所有其他实时双工通信服务实例104。然后,每个实时双工通信服务实例104都经由反向代理服务器112将消息发送到其各自的客户端连接。高速缓存118还可以充当存储器内的数据库122以存储用于客户端应用服务器连接的路由信息,如下面更详细描述的。尽管在图1中发布/订阅和存储器内的数据库功能被示为由相同的高速缓存118来实现,但是在其他示例中,存储器内的数据库和发布/订阅功能可以由单独的组件来执行。
对实时双工通信服务实例104的使用允许应用服务器终端用户通过简单地将附加应用服务器110连接到实时双工通信服务102来轻松地扩展双工实时通信应用,而不必配置各应用服务器110之间的同步或者管理到应用服务器110的大量客户端114连接。因此,应用服务器侧终端用户可以简单地依赖实时双工通信服务102来接收来自客户端114的消息、将该消息广播到其他客户端114、并保持不同应用服务器110之间的同步。在话务量超过当前实例化的框架实例108能够有效管理的话务量的情况下,附加的实时双工通信服务实例104可以通过来自应用服务器侧终端用户的请求或在阈值负载被满足时自动地添加。
图2示出了用于实时双工通信服务的示例网络连接管理流程。在此示例中,实时双工通信服务SDK 202被安装在终端用户应用服务器110中。SDK 202包括服务客户端206和用于认证客户端的认证模块208,例如用于生成用于认证的JavaScript对象标记(JSON)Web令牌的应用编程接口(API)。在210,服务客户端206从认证模块208接收服务统一资源定位符(URL)和JSON Web令牌。在212,服务客户端206使用来自210的这些结果经由反向代理服务器112的负载平衡器214连接到实时双工通信服务实例104。负载平衡器214将应用服务器连接路由到实时双工通信服务实例104以进行认证。如果认证通过,则在216,应用服务器110与实时双工通信服务实例104的服务器集线器218之间的连接被成功地建立。负载平衡器214可以管理服务器集线器218与应用服务器110之间的不止一个连接,并且可以基于负载来选择连接。此外,在一些示例中,服务器集线器218可以连接到多个其他应用服务器(数十应用服务器的量级)。
应用服务器110还包括自定义集线器220,该自定义集线器220充当用于用户编写其自己的应用逻辑以经由SDK 202发送到实时双工通信服务实例104的入口点。实时双工通信服务实例104可以在实时双工通信服务实例104中为用户分配单独的集线器,该集线器可以与该用户的其他现有集线器隔离。
关于客户端连接,诸如网页或移动应用之类的客户端114首先将请求发送到应用服务器110的授权模块208,如224所示。这是图1的通信124的示例。认证模块208为每个客户端返回认证令牌(例如,JSON Web令牌)和实时双工通信服务端点。一旦客户端114从应用服务器110接收到认证令牌,客户端114就可以使用该令牌向实时双工通信服务实例104进行认证,如226所指示的。当认证在228通过之后,客户端114就在228成功地建立了与实时双工通信服务实例104的客户端集线器230的连接。客户端集线器230被配置成也连接到多个其他客户端以充当潜在的数千个客户端连接的公共连接点。实时双工通信服务实例104还路由并建立客户端集线器230与服务器集线器218之间的连接以经由连接路由模块232在客户端与应用服务器之间形成逻辑连接,如下面更详细描述的。服务实例104附加地包括消息中介服务234以在客户端114和应用服务器110之间运送消息和数据。
当与客户端集线器建立了客户端连接之后,客户端连接被路由到服务器集线器处的服务器连接,如上面参照图2所描述的。最小连接算法或其他合适的负载平衡算法可被用于确定客户端和服务器之间的路由,因为分布式系统中可能存在许多可能性。路由过程可以确定例如用户先前是否已经连接到服务器。如果是这样,则服务可能会尝试将用户路由到该用户之前已连接到的服务器(高速缓存的路由结果),从而启用“粘性会话”。
图3是示出在实时双工通信服务中路由接收到的客户消息的示例方法300的流程图。方法300可以例如由图2的连接路由模块232来执行。可以针对每个接收到的客户消息执行图3所示的流程。对于每个客户端连接,服务可以假定客户端用户具有唯一的用户ID(userID),并且可以利用该用户ID在服务中记录会话。每当新的客户端连接被创建时,服务都可以确定该用户ID是否已在针对该用户ID的任何先前的会话中被保存过。因此,方法300包括,在302,从Redis(或其他合适的高速缓存)中搜索经高速缓存的路由结果。如果经高速缓存的路由结果被找到,则该服务将尝试将该用户路由到该用户之前曾连接到的同一服务器,并在当前实时双工通信服务实例中搜索来自此服务器的本地连接。如此,方法300包括,在304,在当前实时双工通信服务实例中搜索来自目标服务器(与先前连接相关联的服务器)的本地连接。如果在当前实例中找到来自目标服务器的本地连接,则客户端连接可以被本地地建立。在308,该服务然后将此路由结果保存在高速缓存中以供将来连接。
另一方面,如果在304,在当前实时双工通信服务实例中未找到来自目标服务器的本地连接,则方法300包括,在306,在其他实时双工通信服务实例中搜索来自目标服务的远程连接。搜索此类远程连接可以包括向高速缓存的存储器内的键值数据库发送查询,以及从高速缓存接收关于当前容器实例之外的容器实例的信息,因为存储器数据库包括关于从上述发布/订阅功能获得的所有容器实例和连接的全局信息。如果在306在另一容器实例中找到来自目标服务器的远程连接,则此远程连接在308被建立并被高速缓存为路由。因此,对于将来的连接,此远程连接可以在下一次传递中被标识为新的本地连接。但是,如果来自目标服务器的远程连接也无法找到,则这可能指示目标服务器已关闭或不可用,因为无法找到来自此服务器的连接。在此情况下,服务将在310尝试查找来自其他服务器的另一连接。最小连接或负载平衡算法或其他合适的算法可被用于标识来自具有最少连接数的服务器的远程连接。如果来自另一服务器的远程连接被找到,则此路由结果在308被高速缓存。如果远程连接仍无法找到,则路由过程导致失败,并且客户端连接可能会关闭。
返回到302,如果最初没有找到经高速缓存的路由结果,则方法300包括在312搜索来自具有最少连接数的另一服务器的本地连接。如上文提及的,在一些示例中,这可以通过最少连接或负载平衡算法来执行。如果来自另一服务器的此类本地连接被找到,则此路由结果在308被高速缓存。如果此类本地连接无法找到,方法300包括在310搜索远程连接。
在一些实施例中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统绑定。具体而言,这样的方法和过程可被实现为计算机应用程序或服务、应用编程接口(API)、库、和/或其他计算机程序产品。
图4示意性地示出了可执行上述方法和过程中的一个或多个的计算系统400的非限制性实施例。以简化形式示出了计算系统400。计算系统400可采取一个或多个下列各项的形式:个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备。
计算系统400包括逻辑子系统402和存储子系统404。计算系统400可任选地包括显示子系统406、输入子系统408、通信子系统410和/或在图4中未示出的其他组件。
逻辑子系统402包括被配置成执行指令的一个或多个物理设备。例如,逻辑子系统402可被配置成执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。此类指令可被实现以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果、或以其他方式得到期望的结果。
逻辑子系统402可包括被配置成执行软件指令的一个或多个处理器。附加地或替换地,逻辑子系统402可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统402的处理器可以是单核的或多核的,并且其上所执行的指令可被配置成用于串行、并行和/或分布式处理。逻辑子系统402的各个个体组件可任选地分布在两个或更多个分开的设备中间,这些设备可位于远程并且/或者被配置成用于协同处理。逻辑子系统402的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。
存储子系统404包括被配置成保持可由逻辑子系统402执行的指令以实现本文描述的方法和过程的一个或多个物理设备。在实现此类方法和过程时,存储子系统404的状态可以被变换—例如,以保持不同的数据。
存储子系统404可以包括可移动和/或内置设备。存储子系统404可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光碟等)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁性存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)、等等。存储子系统404可包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可寻址设备。
可以理解,存储子系统404包括一个或多个物理设备。然而,本文中所描述的指令的各方面可替换地通过不被物理设备保持达有限历时的通信介质(例如,电磁信号、光信号等)来传播。
逻辑子系统402和存储子系统404的各方面可以被一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可包括例如现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC),以及复杂可编程逻辑器件(CPLD)。
术语“模块”和“程序”可用于描述被实现为执行一个特定功能的计算系统400的一方面。在某些情况下,可以通过执行由存储子系统404所保持的指令的逻辑子系统402来实例化模块或程序。将理解,不同的模块或程序可以从相同的应用、服务、代码块、对象、库、例程、API、函数等实例化。类似地,相同的模块或程序可由不同的应用、服务、代码块、对象、例程、API、功能等来实例化。术语“模块”和“程序”意在涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
应当领会,如本文中所使用的“服务”是能跨多个用户会话执行的应用程序。服务可用于一个或多个系统组件、程序、和/或其他服务。在一些实现中,服务可以在一个或多个服务器计算设备上运行。
当被包括时,显示子系统406可被用来呈现由存储子系统404保持的数据的视觉表示。该视觉表示可采取图形用户界面(GUI)的形式。由于本文中所描述的方法和过程改变了由存储机保持的数据,并因而变换了存储机的状态,因此同样可以变换显示子系统406的状态以视觉地表示底层数据中的改变。显示子系统406可包括利用实质上任何类型的技术的一个或多个显示设备。这样的显示设备可与逻辑子系统402和/或存储子系统904一起组合在共享封装中,或者这样的显示设备可以是外围显示设备。
当包括输入子系统408时,输入子系统408可包括诸如键盘、鼠标、触摸屏、或游戏控制器之类的一个或多个用户输入设备或者与上述用户输入设备对接。在一些实施例中,输入子系统可包括所选择的自然用户输入(NUI)部件或者与上述自然用户输入(NUI)部件相对接。此类部件可以是集成的或外围的,并且输入动作的换能和/或处理可以在板上或板外被处置。示例NUI部件可包括用于语音和/或话音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体、和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计、和/或陀螺仪;以及用于评估脑部活动的电场感测部件。
当包括通信子系统410时,通信子系统410可被配置成将计算系统400与一个或多个其他计算设备通信地耦合。通信子系统410可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统410可被配置成用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统410可允许计算系统400经由诸如互联网之类的网络将消息发送至其他设备以及/或者从其他设备接收消息。
另一示例提供了一种配置成跨数据网络提供可扩展的实时双工通信的计算系统,该计算系统包括一个或多个处理器以及包括在由该一个或多个处理器执行时实例化一个或多个实时双工通信服务实例的指令的存储器,每个实时双工通信服务实例包括实时双工通信框架,该实时双工通信框架包括配置成接收多个客户端的连接的客户端集线器和配置成接收多个服务器的连接的服务器集线器,以及每个实时双工通信服务实例被配置成将关于该实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道。附加地或替换地,该指令可执行以将多个客户端中的每个客户端连接到多个应用服务器中的一个应用服务器。附加地或替换地,可执行以将消息发布到由其他实时双工通信服务实例访问的信道的指令包括可执行以实现存储器内的键值数据库的发布/订阅功能的指令。附加地或替换地,存储器内的键值数据库可包括Redis高速缓存。附加地或替换地,实时双工通信框架可包括信号R框架。附加地或替换地,一个或多个服务实例各自可包括操作系统级虚拟化容器实例。附加地或替换地,一个或多个服务实例各自可包括虚拟机实例。附加地或替换地,指令可执行以基于客户端话务负载和来自应用服务器实体的请求中的一者或多者来实例化附加容器。附加地或替换地,计算系统可包括将来自多个客户端的连接路由到一个或多个实时双工通信服务实例的反向代理服务器。附加地或替换地,指令可执行以,在接收到来自客户端的消息之际从存储器内的键值数据库中搜索经高速缓存的路由结果,以及如果没有经高速缓存的路由结果被找到,则搜索来自具有最少连接数的服务器的连接,当来自具有最少连接数的服务器的连接被找到时,在该存储器内的键值数据库中将来自具有最少连接数的服务器的该连接高速缓存作为路由结果。附加地或替换地,指令可执行以,在经高速缓存的路由结果被找到时,在存储器内的键值数据库中搜索来自目标服务器的本地连接。附加地或替换地,指令可执行以,如果来自目标服务器的本地连接未被找到,则在该存储器内的键值数据库中搜索来自该目标服务器的远程连接,当远程连接被找到时,在该存储器内的键值数据库中将该远程连接高速缓存作为路由结果。
另一示例提供了一种在网络可访问的通信计算系统上操作实时双工通信服务的方法,该方法包括:实例化一个或多个实时双工通信服务实例,每个实时双工通信服务实例包括实时双工通信框架,并在操作系统级虚拟化容器实例或虚拟机中被实例化,在实时双工通信框架的客户端集线器处接收多个客户端的连接,在实时双工通信框架的服务器集线器处接收多个应用服务器的连接,以及在每个服务实例处,将关于实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道。附加地或替换地,该方法包括在接收到客户端连接之际,在存储器内的键值数据库中搜索该连接。附加地或替换地,将消息发布到由其他实时双工通信服务实例访问的信道可包括利用存储器内的键值数据库的发布/订阅功能。附加地或替换地,该方法可包括基于客户端话务负载和来自应用服务器实体的请求中的一者或多者来实例化附加容器。
另一示例提供了一种应用服务计算系统,其包括处理器和存储器,该存储器包括可由该处理器执行的指令以:验证用于连接到网络可访问的实时双工通信系统的应用服务器:连接到网络可访问的实时双工通信系统,接收来自客户端的认证请求,向客户端提供用于访问网络可访问的实时双工通信服务的认证令牌,以及在客户端经由该认证令牌向网络可访问的实时双工通信服务认证其自身之后,经由该网络可访问的实时双工通信服务与该客户端进行通信。附加地或替换地,指令可执行以通过利用应用服务器的认证模块认证应用服务器的服务客户端来认证该应用服务器。附加地或替换地,指令可执行以在应用服务器的服务客户端处接收来自该应用服务器的认证模块的认证令牌,以及向网络可访问的实时双工通信系统提供该认证令牌。附加地或替换地,该认证令牌可包括JSON Web令牌。
应当理解,本文中所描述的配置和/或办法本质上是示例性的,并且这些具体实施例或示例不应被视为具有限制意义,因为许多变体是可能的。本文中所描述的具体例程或方法可表示任何数目的处理策略中的一个或多个。由此,所例示和/或所描述的各种动作可以以所例示和/或所描述的顺序执行、以其他顺序执行、并行地执行,或者被省略。同样,以上所描述的过程的次序可被改变。
本公开的主题包括各种过程、系统和配置以及此处公开的其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。
Claims (16)
1.一种计算系统,其被配置成跨数据网络提供可扩展的实时双工通信,所述计算系统包括:
一个或多个处理器;以及
存储器,所述存储器包括在由所述一个或多个处理器执行时实例化一个或多个实时双工通信服务实例的指令,每个实时双工通信服务实例包括实时双工通信框架,所述实时双工通信框架包括配置成接收多个客户端的连接的客户端集线器和配置成接收多个服务器的连接的服务器集线器,以及每个实时双工通信服务实例被配置成将关于所述实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道,并实例化附加的实时双工通信服务实例以扩展所述实时双工通信服务。
2.如权利要求1所述的计算系统,进一步包括可执行以将所述多个客户端中的每个客户端连接到多个应用服务器中的一个应用服务器的指令。
3.如权利要求1所述的计算系统,其中可执行以将消息发布到由其他实时双工通信服务实例访问的所述信道的指令包括可执行以实现存储器内的键值数据库的发布/订阅功能的指令。
4.如权利要求3所述的计算系统,其中所述存储器内的键值数据库包括Redis高速缓存。
5.如权利要求1所述的计算系统,其中所述实时双工通信框架包括信号R框架。
6.如权利要求1所述的计算系统,其中所述一个或多个服务实例各自包括操作系统级虚拟化容器实例。
7.如权利要求1所述的计算系统,其中所述一个或多个服务实例各自包括虚拟机实例。
8.如权利要求1所述的计算系统,进一步包括可执行以基于客户端话务负载和来自应用服务器实体的请求中的一者或多者来实例化附加容器的指令。
9.如权利要求1所述的计算系统,进一步包括将来自所述多个客户端的连接路由到所述一个或多个实时双工通信服务实例的反向代理服务器。
10.如权利要求1所述的计算系统,进一步包括可执行以下操作的指令:
在接收到来自客户端的消息之际从存储器内的键值数据库中搜索经高速缓存的路由结果,以及
如果没有经高速缓存的路由结果被找到,则搜索来自具有最少连接数的服务器的连接,且当来自具有所述最少连接数的所述服务器的所述连接被找到时,在所述存储器内的键值数据库中将来自具有所述最少连接数的所述服务器的所述连接高速缓存作为路由结果。
11.如权利要求10所述的计算系统,其中所述指令可执行以在所述经高速缓存的路由结果被找到时,在所述存储器内的键值数据库中搜索来自目标服务器的本地连接。
12.如权利要求11所述的计算系统,其中所述指令可执行以如果来自所述目标服务器的所述本地连接未被找到,则在所述存储器内的键值数据库中搜索来自所述目标服务器的远程连接,且当所述远程连接被找到时,在所述存储器内的键值数据库中将所述远程连接高速缓存作为路由结果。
13.一种在网络可访问的通信计算系统上操作实时双工通信服务的方法,所述方法包括:
实例化一个或多个实时双工通信服务实例,每个实时双工通信服务实例包括实时双工通信框架,并在操作系统级虚拟化容器实例或虚拟机中被实例化,
在所述实时双工通信框架的客户端集线器处接收多个客户端的连接,
在所述实时双工通信框架的服务器集线器处接收多个应用服务器的连接,以及
在每个服务实例处,将关于所述实时双工通信框架的状态的消息发布到由其他实时双工通信服务实例访问的信道,以及
实例化附加的实时双工通信服务实例以扩展所述实时双工通信服务。
14.如权利要求13所述的方法,进一步包括在接收到客户端连接之际,在存储器内的键值数据库中搜索所述连接。
15.如权利要求13所述的方法,其中将消息发布到由其他实时双工通信服务实例访问的所述信道包括利用存储器内的键值数据库的发布/订阅功能。
16.如权利要求13所述的方法,进一步包括基于客户端话务负载和来自应用服务器实体的请求中的一者或多者来实例化附加容器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/085401 WO2019210474A1 (en) | 2018-05-03 | 2018-05-03 | Scalable real-time duplex communications service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112075064A CN112075064A (zh) | 2020-12-11 |
CN112075064B true CN112075064B (zh) | 2023-10-20 |
Family
ID=68386899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093092.9A Active CN112075064B (zh) | 2018-05-03 | 2018-05-03 | 可扩展的实时双工通信服务 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11336700B2 (zh) |
EP (1) | EP3788767B1 (zh) |
CN (1) | CN112075064B (zh) |
WO (1) | WO2019210474A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635980B2 (en) * | 2019-09-20 | 2023-04-25 | Fisher-Rosemount Systems, Inc. | Modular process control system |
CN115098278B (zh) * | 2022-06-28 | 2024-04-30 | 电子科技大学 | 一种基于微服务的数字孪生车间多场景交互方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012144919A2 (en) * | 2011-04-20 | 2012-10-26 | Ibt Internet Bussiness Technologies - Informática, S.A. | Methods and systems for access to real-time full-duplex web communications platforms |
CN102792264A (zh) * | 2010-03-10 | 2012-11-21 | 微软公司 | 路由针对双工应用的请求 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424992B2 (en) | 1996-12-23 | 2002-07-23 | International Business Machines Corporation | Affinity-based router and routing method |
US6226684B1 (en) | 1998-10-26 | 2001-05-01 | Pointcast, Inc. | Method and apparatus for reestablishing network connections in a multi-router network |
US7296076B1 (en) | 2002-10-23 | 2007-11-13 | Cisco Technology, Inc. | Maintaining session persistence without client-supported cookies |
US7720813B2 (en) * | 2005-10-21 | 2010-05-18 | International Business Machines Corporation | Apparatus, system, and method for the autonomic virtualization of a data storage server |
US11336511B2 (en) * | 2006-09-25 | 2022-05-17 | Remot3.It, Inc. | Managing network connected devices |
US8583810B2 (en) | 2008-01-04 | 2013-11-12 | Red Hat, Inc. | Session affinity cache and manager |
US8249100B2 (en) * | 2008-09-25 | 2012-08-21 | Siemens Industry, Inc. | Method and arrangement for providing duplex communications between a client application and a service using an http request/reply channel |
US7835309B2 (en) * | 2008-12-16 | 2010-11-16 | Microsoft Corporation | Multiplexed communication for duplex applications |
US10740353B2 (en) | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8797920B2 (en) * | 2011-04-20 | 2014-08-05 | IBT—Internet Business Technologies | Methods and systems for access to real-time full-duplex web communications platforms |
US9035568B2 (en) | 2011-12-05 | 2015-05-19 | Qualcomm Incorporated | Telehealth wireless communication hub device and service platform system |
US10044799B2 (en) | 2013-05-28 | 2018-08-07 | International Business Machines Corporation | Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner |
US9280385B2 (en) | 2013-12-19 | 2016-03-08 | International Business Machines Corporation | Optimally provisioning and merging shared resources to maximize resource availability |
WO2015148816A1 (en) * | 2014-03-28 | 2015-10-01 | All Purpose Networks LLC | Methods and systems of an all purpose broadband network |
US10841316B2 (en) * | 2014-09-30 | 2020-11-17 | Citrix Systems, Inc. | Dynamic access control to network resources using federated full domain logon |
US10341239B2 (en) | 2015-05-21 | 2019-07-02 | Qualcomm Incorporated | Efficient policy enforcement for downlink traffic using network access tokens—control-plane approach |
US10117289B2 (en) | 2015-06-05 | 2018-10-30 | Apple Inc. | Maintaining network connections for background applications |
US10419540B2 (en) * | 2015-10-05 | 2019-09-17 | Microsoft Technology Licensing, Llc | Architecture for internet of things |
US9917912B2 (en) * | 2015-10-05 | 2018-03-13 | Vmware, Inc. | Efficient communication within hybrid cloud system |
US10057255B2 (en) | 2016-07-20 | 2018-08-21 | Bank Of America Corporation | Preventing unauthorized access to secured information systems using multi-device authentication techniques |
US10331667B2 (en) * | 2016-07-29 | 2019-06-25 | Hart, Inc. | Systems and methods for bi-directional database application programming interface, extract transform and load system, and user computing device |
US11544356B2 (en) * | 2017-06-19 | 2023-01-03 | Citrix Systems, Inc. | Systems and methods for dynamic flexible authentication in a cloud service |
-
2018
- 2018-05-03 CN CN201880093092.9A patent/CN112075064B/zh active Active
- 2018-05-03 EP EP18917293.5A patent/EP3788767B1/en active Active
- 2018-05-03 WO PCT/CN2018/085401 patent/WO2019210474A1/en active Application Filing
- 2018-05-03 US US17/049,447 patent/US11336700B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102792264A (zh) * | 2010-03-10 | 2012-11-21 | 微软公司 | 路由针对双工应用的请求 |
WO2012144919A2 (en) * | 2011-04-20 | 2012-10-26 | Ibt Internet Bussiness Technologies - Informática, S.A. | Methods and systems for access to real-time full-duplex web communications platforms |
Also Published As
Publication number | Publication date |
---|---|
EP3788767B1 (en) | 2023-09-13 |
WO2019210474A1 (en) | 2019-11-07 |
EP3788767A1 (en) | 2021-03-10 |
US11336700B2 (en) | 2022-05-17 |
EP3788767A4 (en) | 2022-03-23 |
CN112075064A (zh) | 2020-12-11 |
US20210250388A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10250522B1 (en) | Secure distributed computing using containers | |
US11340927B2 (en) | Application-based computing resource management | |
US11635990B2 (en) | Scalable centralized manager including examples of data pipeline deployment to an edge system | |
US9489227B2 (en) | Apparatus and method for virtual desktop service | |
US9882825B2 (en) | Method and system for securely transmitting volumes into cloud | |
US10958633B2 (en) | Method and system for securely transmitting volumes into cloud | |
US10891282B1 (en) | Mutations with immediate feedback | |
US9930130B2 (en) | Processing hybrid data using a single web client | |
WO2013095485A1 (en) | Enabling execution of remotely-hosted applications using application metadata and client updates | |
US11159634B1 (en) | Subscription fan out | |
US11012485B1 (en) | Multi-media redirection for media applications | |
US11089133B1 (en) | Synchronizing data with delayed subscriptions | |
US9749378B2 (en) | System and method for early media buffering using prediction of user behavior | |
US20150128220A1 (en) | Location based authentication of users to a virtual machine in a computer system | |
US11522864B1 (en) | Secure identity transfer | |
US11126610B1 (en) | Conflict resolution in a data proxy | |
CN112075064B (zh) | 可扩展的实时双工通信服务 | |
EP3387816B1 (en) | Connecting and retrieving security tokens based on context | |
WO2016155266A1 (zh) | 虚拟桌面的数据共享方法和装置 | |
US11381665B2 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
JP6285579B2 (ja) | ロングポーリング処理方法およびシステム、並びに記録媒体 | |
CN114003328A (zh) | 数据共享方法、装置、终端设备和桌面云系统 | |
US11537707B1 (en) | Secure identity binding | |
US9456024B1 (en) | Content sharing in mobile ad hoc networks | |
US10846115B1 (en) | Techniques for managing virtual instance data in multitenant environments |
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 |