CN112468435A - 请求流 - Google Patents

请求流 Download PDF

Info

Publication number
CN112468435A
CN112468435A CN202010940845.4A CN202010940845A CN112468435A CN 112468435 A CN112468435 A CN 112468435A CN 202010940845 A CN202010940845 A CN 202010940845A CN 112468435 A CN112468435 A CN 112468435A
Authority
CN
China
Prior art keywords
real
time data
server
client
commitment
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
CN202010940845.4A
Other languages
English (en)
Other versions
CN112468435B (zh
Inventor
杰弗里·迈克尔·巴伯
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.)
Meta Platforms Inc
Original Assignee
Facebook 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 Facebook Inc filed Critical Facebook Inc
Publication of CN112468435A publication Critical patent/CN112468435A/zh
Application granted granted Critical
Publication of CN112468435B publication Critical patent/CN112468435B/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1086In-session procedures session scope modification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/535Tracking the activity of the user
    • 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/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请涉及请求流。所公开的计算机实现的方法可以包括在服务器处接收来自客户端的对实时数据的请求。该方法可以包括在服务器处建立嵌入在实时数据流中的数据传输承诺。实时数据流可以包括所请求的实时数据。该方法还可以包括将具有嵌入的数据传输承诺的实时数据流传输到客户端,接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示,以及基于接收到的状态指示向客户端提供实时流的当前状态的指示。还公开了各种其他方法、***和计算机可读介质。

Description

请求流
附图简述
附图示出了多个示例性实施例,并且是说明书的一部分。与以下描述一起,这些附图展示并解释了本公开的各种原理。
图1示出了计算环境,本文至少一些实施例可以在该计算环境中操作。
图2示出了用于建立并监控实时数据流(live data stream)的示例性方法的流程图。
图3示出了一种网络体系结构,其中实现了嵌入的数据传输承诺(data transferpromise),以跟踪并解决实时数据流中的问题。
图4示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图5示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图6示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图7示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图8示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图9示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图10示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图11示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图12示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图13示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图14示出了替代性的网络体系结构,其中实现了嵌入的数据传输承诺,以跟踪并解决实时数据流中的问题。
图15示出了用户界面的实施例,其中实时数据被流式传输到电子设备。
在所有附图中,相同的附图标记和描述表示相似但不一定相同的元件。虽然本文描述的示例性实施例易于进行各种修改和替代形式,但是在附图中已经通过示例示出了具体实施例,并且将在本文对这些具体实施例进行详细描述。然而,本文描述的示例性实施例并不旨在局限于所公开的特定形式。相反,本公开覆盖了落入所附权利要求范围内的所有修改、等同物和替代物。
示例性实施例的详细描述
本公开总体上涉及用于建立并监控实时数据流的方法和***。当数据没有到达其目的地时,现有的流式传输实时数据的传统方法经常导致长时间的延迟。例如,客户端计算设备可以请求从服务器接收实时信息馈送(live feed)。服务器可以通过中间数据传输节点的主机向客户端计算设备提供数据。这些节点可以基本上位于世界上的任何地方,并且可以有任意数量的这样的节点位于服务器和客户端设备之间的数据传输路径上。如果数据流在这些中间节点中的任何一个节点处出现故障,则该节点将向服务器报告故障,并且服务器将重新启动实时馈送。从中间节点到服务器的往返时间以及重新启动实时馈送所花费的时间可能会让终端用户(end user)感到沮丧。
此外,在传统***中,实时馈送可能不能提供用户获得他们所请求的任何或所有实时数据的任何保证。服务器可以在接收到数据时发送该数据,但是服务器可能没有任何方法来保证实时馈送数据到达其目的地(例如,客户端设备)。更进一步,在这样的传统***中,一旦实时馈送数据被传输到中间节点,服务器可能就没有办法监控该实时馈送数据。这样,一旦数据最初被发送到中间节点,服务器可能不知道实时数据的传输状态。只有当中间节点向服务器发出警报时,服务器才知道在该中间节点处发生了故障,此时服务器可以重新启动实时数据馈送。
如下文将更详细解释的,本公开的实施例可以允许服务器向客户端设备提供实时馈送数据,并保证数据到达客户端设备。此外,使用本文描述的实施例,可以在任何中间节点处重新启动实时数据馈送,而不需要在服务器处重新启动实时馈送。更进一步,在实时馈送的持续时间内,服务器可以监控实时馈送数据,并确定实时馈送数据是否到达客户端设备。根据本文描述的一般原理,本文描述的任何实施例的特征可以彼此结合使用。通过结合附图和权利要求阅读以下详细描述,将会更全面地理解这些和其他实施例、特征和优点。
参考图1至图15,以下将提供本文描述的实施例可以在其中操作的各种计算和网络体系结构的详细描述。例如,图1示出了可以将数据从服务器传输到客户端的计算机网络环境100。例如,服务器计算机***110(或本文简称为“服务器”)可以被配置为向客户端计算机***101(或本文简称为“客户端”)传输数据105。服务器110和客户端101可以各自是具有以下项的计算***:处理器(例如,111)、存储器(例如,112)、具有硬件接收器(例如,114)和/或发射器(例如,115)的通信模块(例如,113)以及被配置为执行特定功能的潜在的其他硬件或软件模块。
服务器110可以例如具有数据传输承诺建立模块116。数据传输承诺建立模块116可以为给定的数据传输建立数据传输承诺107。数据传输承诺107可以被实现以确保数据到达其指定的目的地。例如,如果客户端101请求某些实时数据(例如,在请求102中请求实时数据106),服务器110可以在实时数据流105中提供该实时数据106。实时数据流105可能不是一直都有数据,但是当由客户端请求的新的实时数据到来时,该实时数据106可以作为实时数据流105的一部分被传输。尽管仅一个实时数据流被示出为从服务器传输到客户端,并且尽管在图1中仅示出了一个客户端,但是应当理解,服务器110可以顺序地或并行地、同步地或异步地向任意数量的客户端提供任意数量的实时数据流。这些实时数据流105中的每一个可以包括嵌入的承诺107,承诺107允许服务器在实时数据流被传输到客户端101时监控并跟踪该实时数据流的状态。此外,承诺107可以允许实时数据流105在任何中间节点103处被重新启动。
例如,如果服务器110开始向客户端传输实时数据流105,则该实时数据流可以在去往客户端的途中通过许多不同的中间节点103。有时,实时数据流105可以采取通过中间节点103的相同路径,而在其他时候,实时数据流可以采取通过中间节点103的不同路径。如下面将进一步解释的,作为实时数据流105的一部分的嵌入的承诺107可以允许任何中间节点(统称为103或单独称为103A、103B或103C)在该节点处重新启动实时数据流105。例如,如果实时数据流105出于某种原因在中间节点103B处出故障,则该节点可以被配置为重新启动实时数据流105,而不必请求服务器110重新启动该流。状态指示108可以被发送到服务器110,从而通知服务器实时数据流105在节点103B处出故障并且被重新启动,但是服务器可能不需要改变关于其传输实时数据流的方式的任何事情,并且可以避免原本重新启动实时数据馈送105所需的时间和计算资源。下面将参照图2的方法200和图3至图15所示的实施例进一步描述这些实施例。
图2是用于建立并监控实时数据流的示例性计算机实现的方法200的流程图。图2中所示的步骤可以由任何合适的计算机可执行代码和/或计算***(包括图1所示的***)来执行。在一个示例中,图2中所示的每个步骤可以表示其结构包括多个子步骤和/或由多个子步骤表示的算法,将在下面更详细地提供这些步骤的示例。
如图2所示,在步骤210,本文描述的一个或更多个***可以建立并监控实时数据流。例如,服务器计算机***110的通信模块113可以从客户端计算机***101接收对实时数据106的各个部分的请求102。实时数据106可以是流式视频数据、流式音频数据、社交媒体帖子、文本消息、对视频或社交媒体帖子的评论、或者可以实时传输的任何其他类型的数据。在一些情况下,可以将实时数据106作为实时数据流105中的连续流来进行传输。在其他情况下,实时数据可能会在其被接收或创建时被连续发送。例如,客户端101可以请求接收对社交帖子或视频的评论。随着时间的推移,评论可能会出现。一些评论可能成群地出现,而其他时候,用于评论的实时数据流105可能是静默的(silent)。不管实时数据流105包括连续数据还是零星数据(sporadic data),服务器110都可以随着它被接收到而传输该实时数据106。
图2的方法200接下来可以包括在步骤220,在服务器110处建立嵌入在实时数据流105中的数据传输承诺107。实时数据流105可以包括所请求的实时数据106,可能还有其他数据。可以在实时数据流105的创建期间建立数据传输承诺107。在一些情况下,数据传输承诺107可以是用于传输实时数据106的协议的一部分。附加地或替代性地,数据传输承诺107可以被嵌入到承载实时数据106到客户端的数据分组中。在一些情况下,承诺可以是每个数据分组的一部分,而在其他情况下,数据传输承诺107可以仅仅是实时数据流105中的某些数据分组的一部分。在一些情况下,数据传输承诺107可以作为元数据的一部分被包括在数据分组中,该元数据被包括在组成实时数据流105的一些或所有数据分组中。
因为实时数据流105中的每个(或至少一些)数据分组包括数据传输承诺107,所以每个(或至少一些)中间节点103可以确定分组是哪个实时数据流的一部分,并且可以确定数据传输承诺107是否仍然完好无损。数据传输承诺107可以指示服务器110和客户端101之间的承诺,即当接收或创建了实时数据106时,将该实时数据106从服务器传输到客户端。一旦建立了数据传输承诺107,服务器110就可以向客户端101保证:如果实时数据流105具有任何数据,则客户端将接收该数据。
如果由于某种原因,实时数据流105在任何中间节点103中被中断,则这些节点可以检测到承诺并在该中间节点处重新启动数据传输。此外,由于数据传输承诺107,一些或所有中间节点可以知道实时数据流105的当前状态。如果实时数据流105在任何给定的中间节点103处运行,该节点可以提供状态指示108,该状态指示108指示该流正在工作并且数据传输承诺107是完好无损的。如果流在特定中间节点处不工作,则该节点可以发送状态指示108,该状态指示108指示实时数据流105已经在该节点处停止工作,以及指示在该节点处的重新启动是成功的还是不成功的。如果在该节点处的重新启动不成功,服务器110可以重新启动实时数据流105。
因此,在方法200的步骤220,数据传输承诺建立模块116可以为实时数据流105建立数据传输承诺107。然后,在步骤230,通信模块113可以将带有嵌入的数据传输承诺107的实时数据流105传输到客户端101。在实时数据流105已经开始之后的某个时间点,服务器110的通信模块113可以在步骤240接收嵌入的数据传输承诺107的状态在实时数据流的传输期间被改变的指示108(例如,传输在某个节点处失败并被重新启动)。然后,在步骤250,服务器110的指示生成模块117可以基于所接收到的状态指示向客户端101提供实时流的当前状态104的指示。下面将参照图3至图15更详细地解释这些构思。
图3示出了计算机网络环境,其包括客户端设备301(例如,智能手机、膝上型电脑、PC或任何其他类型的计算***)、可以包括一个或更多个中间节点(例如,图1的节点103)的业务区域302。业务302被示为包括多个互连设备的云,这些互连设备将包括请求的数据从客户端设备路由到服务器,以及从服务器路由到客户端设备。服务器303可以是终端服务器或被设计成处理数据请求的任何其他类型的计算机***。客户端设备301、业务302和服务器303可以为下面描述的实施例提供概貌(landscape)和操作环境。
在一些实施例中,用户、计算机***或其他实体可以表示有兴趣在其设备上接收实时数据。例如,使用客户端设备301的用户可以查看他们的社交媒体信息流(socialmedia feed)并看到帖子。在一些情况下,当评论出现时,客户端设备301可以将查看社交媒体帖子解释为希望接收帖子上的新评论。这样,客户端设备301可以发出对实时评论(或其他实时数据)的请求。该请求(例如,来自图1的102)可以离开客户端设备301并进入业务302(被描绘为云)。在业务302中,中间节点(例如,图1中的节点103)可以检查请求的报头(例如,JavaScript对象符号(JSON)报头),并找到适当的服务器来服务实时评论(例如,服务器303)。业务302然后可以对处理请求的服务器303和等待响应的客户端设备301之间的关系进行代理。
随着实时数据(例如,图1的106)随着时间的推移被接收或创建,服务器303现在可以负责满足该请求。在“实时评论”的情况下,服务器303可以在每次用户发布新评论时发出响应。例如,如图4所示,从客户端设备301发送的请求401可以映射到实时数据流(例如,图1的实时数据流105)中的一系列响应402,这些响应可以以各种时间间隔分隔开。在一些情况下,可以不生成实时数据(例如,没有接收到对帖子的评论),因此,服务器303可以不基于该请求提供数据。在其他情况下,实时数据可以是基本连续的。因此,在本文的实施例中,将会理解,实时数据流中的数据可以在基本上以任何时间间隔到达,包括接收基本上恒定的数据或不接收数据的极端情况。
在一些实施例中,流标识符(例如,“stream_id”)可以是唯一标识客户端设备301、业务302和服务器303之间的通信的任何类型的数据或标识符。在一些实施例中,业务云302可以在流标识符到达终端服务器之前重新映射或改变流标识符。请求401中的字符串报头(string header)可以是JSON报头,并且可以对业务云302开放以进行解析和检查。至少在一些实施例中,可以通过参考在客户端-服务器期间建立的来自设备的报头和/或认证信息来做出路由决定。客户端请求401的主体对于业务云302可能是不透明的,并且除了字节数组之外可能没有正式定义。这可以允许客户端设备301向远程服务器303发送任意数据。
除了响应标识符可以由服务器303控制之外,响应402中的响应标识符(例如,“response_id”)可以类似于流标识符。在响应402中发送的应答级别(acknowledgementlevel)(例如,“AckLevel”)可以指定可以在客户端和服务器之间发送的许多不同应答级别之一。更进一步,增量(delta)数据(例如,来自图1的109)可以被包括在响应402中。增量数据可以包括各种类型的信息或其他数据。至少在某些情况下,增量数据可以包括一批增量。“增量”可以指各种项目的联合,这将在下面进一步解释。拥有一批增量可以将增量连接起来,使它们成为网络原子(network-atomic)。换句话说,这一批增量保持在一起,没有被分解成子单元。
在客户端设备301的用户已经查看了所请求的实时数据(例如,图1的106)一段时间之后,用户可能希望转到其他实时数据。在实时评论的情况下,如上所述,用户可以将他们的注意力转移到另一个帖子或者完全转移到其他事物。在一些实施例中,这种注意力的转移可以被设备解释为取消观看实时评论的原始请求。因此,客户端设备301可以(自动地或应用户的直接请求)发出对实时数据流的取消501。该取消请求501可以从客户端设备301流向业务302,业务302可以找到与服务器303的关系,然后将取消请求代理到服务器。当服务器303在502处接收到取消请求时,服务器可以停止向客户端设备301发送实时数据106。
在一些实施例中,如果客户端设备301从服务器断开连接,则业务302可以将该断开连接解释为对所有流的隐式取消(implicit cancellation)。这可以帮助服务器正式中断实时数据流105。在至少一些实施例中,当客户端设备301重新连接到服务器303时,可以自动重新发出任何活动请求。在这种情况下,服务器303可以开始再次向客户端设备301发送所请求的实时数据流105。如果当设备与业务302断开连接时,对实时数据的请求被输入到客户端设备301,则该请求可以被保存在数据储存器中,直到该请求可以被发送到业务302。因此,客户端可以发出一次请求,并且可以不需要关心它们与后端服务器的另外的连接或手动地启动重新启动。相反,一旦用户再次连接到业务云302,未决请求可以被自动发送到服务器303并由服务器完成。
图6示出了一个实施例,其中客户端设备301发出对实时数据的请求601。在发出请求601后,客户端设备301可以等待接收实时数据。可以经由响应602中的数据增量将实时数据发送到客户端设备301。在一些实施例中,数据增量可以是字节的不透明块(opaqueblob)。在其他情况下,数据增量可能更复杂。当服务器303发出数据增量时,该增量可用于记录服务器采取的动作,并可用于确定服务器上的当前状况。此外,增量可用于调试服务器303上可能出现的任何问题。由服务器303采取的动作的这种记录可以是可选的,并且可以要求隐式选择性加入(例如,为雇员或某些角色或组启用)或显式选择性加入(例如,请求中的标志(flag))。这种关系可以由服务器303或由策略来控制。
图7示出了一个实施例,其中服务器303可以确定给定数据分组在其到设备301的路径上行进了多远并且(例如,在701中)给出反馈。服务器303可以以增量(或一批增量)的形式向设备发送数据,以确定响应通过业务302行进了多远。如图8所示,可以使用各种功能和标识符,包括response_id和ack_level。“response_id”(例如,在801中)可以指被配置为等待来自业务302的应答(acknowledgement)的服务器唯一令牌。“ack_level”可能包括不同的选项,包括“BestEffort”。将ack_level设置为BestEffort,服务器303将接收到的应答可以等同于业务302接收到响应的指示。这可以向后端服务器303指示理解业务如何处理响应。
在图8的响应602中,ack_level被设置为“Socket(套接字)”。以Socket作为ack_level,业务302可以对响应是否被写入设备301的连接作出应答。在这种情况下,响应失败的唯一方式是设备301立即离线的情况。这种模式可能具有类似于BestEffort的延迟特性,但成本稍高,并且网络带宽使用率较高。一旦业务302向设备301发送Ack,服务器303就可以快速获知该事实。
图9示出了ack_level被设置为“Device(设备)”的实施例。以Device作为ack_level,业务302可以一直向设备301应答。这种应答(例如,901)可能更耗费资源,因为这种应答要求客户端做除了接受数据之外的工作。这种应答也可以表示到服务器的完整往返延迟。
使用这些不同的应答级别,设备、业务和服务器的实施例可以实现从服务器303到设备301的端到端的服务器侧流应答。例如,流控制或“FlowStatus”指示符可以指示当前是否应当在客户端设备301处接收数据、请求是否正确、以及其他业务元素是否如预期的那样工作。FlowStatus指示符或增量可以是“已接受(Accepted)”、“已开始(Started)”和“已停止(Stopped)”的枚举。如图10所示,状态机可以包括在1001处的已接受、在1002处的已开始和在1003处的已停止。理想情况下,服务器303可以验证该请求(例如,图9的601),并尽可能快地发出已接受(例如,1001)作为FlowStatus增量。该已接受信号1001可用于指示请求601是好的。由于FlowStatus是一个增量,这可以与设备级应答相结合,以使服务器303知道客户端301处于开始接收数据的正确位置。
如图11所示,服务器303可以提供数据。然而,仅仅提供数据可能是不够的,因为所描述的实施例可以被设计成提供如果有数据要被看到的话数据将到达的保证。因此,“已开始”1002和“已停止”1003值是为FlowStatus实现的。这些值可以反映服务器303对客户端301将接收数据的保证。如果客户端接收到FlowStatus指示符的“已开始”1002,则处理该请求的后端服务器303可以做出当数据变得可用时数据将到达客户端的硬性保证。如果客户端接收到“已停止”指示符1003,则客户端意识到承诺在某处(例如,在业务302中)被破坏,并且服务器303连同业务和设备的客户端301一起工作以恢复承诺。
在上述至少一些实施例中,可能有支持请求流的无限量的数据。然而,在一些示例中,例如帖子上的实时评论,帖子本身可能被删除。这样,本文描述的实施例可以考虑当帖子被删除或者当支持请求流的数据被以其他方式移除时会发生什么。在这种情况下,请求流可以结束,并且服务器303可以控制请求的生存时间。例如,如图12所示,服务器303可以在响应1202中发出终止增量。终止增量可以指示服务器303出于各种不同原因中的任何一种将不再处理请求1201。
例如,终止原因“已关闭(Closed)”可以指示服务器完成了请求,并且将不再有任何与该请求1201相关联的数据(例如,帖子被删除)。终止原因“已拒绝(Rejected)”可以指示服务器查看请求1201并决定拒绝它(例如,因为帖子的隐私设置被改变)。终止原因“重试(TryAgain)”可以指示服务器没有准备好或做了一些操作路由的事情。终止原因“错误(Error)”可以指示服务器出现了数据流故障,并且业务或设备将重试传输。终止原因可以进一步指示终止发生在服务器侧(例如,1203),或者由于某种原因终止发生在客户端侧(例如,1204)。终止原因还可以向客户指示重试请求是否是明智的。
终止增量可能会影响数据承诺。这样,已停止消息(例如,1003)可以被自动注入到流中。至少在某些情况下,这可能会导致错误(Error)和重试终止(TryAgainterminations)对客户端来说可能不直接可见,但经由FlowStatus的承诺将被破坏。
在一些实施例中,如图1所示,中间节点103(其可以与图14的业务302相似或相同)可以提供指示108,指示108指示嵌入的数据传输承诺107的状态在实时数据流105的传输期间被改变。指示108可以指示嵌入的数据传输承诺107被破坏。被破坏的数据传输承诺的指示可以指示在客户端计算机***101和服务器计算机***110之间的某个点处,通过实时数据流105的实时数据106的传输失败。数据传输可能在任何中间节点103A-103C处失败。在一些情况下,被破坏的承诺107可以简单地指示数据传输在某一点处失败。在其他情况下,指示108可以进一步指示嵌入的数据传输承诺在哪个网络节点处被破坏。因此,例如,实时数据106可能已经到达中间节点103C和103B,但是没有到达节点103A。这样,指示108可以指示数据传输承诺在中间节点103B处被破坏,因为那是接收了实时数据106的最后一个节点。
在一些实施例中,状态指示108不仅可以指示数据传输承诺被破坏以及破坏发生在哪里,还可以指示实时数据流105在指定的网络节点处被重新启动。在某些情况下,该节点可能是数据传输承诺被破坏的同一个网络节点。因此,在上面的示例中,实时数据在去往客户端101的途中到达中间节点103B而不是节点103A,中间节点103B可以重新启动向中间节点103A传输实时数据106。
这种重新启动可以自动发生,并且可以在没有来自服务器110的输入或者甚至在服务器不知道的情况下开始(直到随后在状态指示108中被通知)。这种自动重新启动可以节省大量时间,否则这些时间会被花费在将故障传送回服务器以及等待服务器重新启动实时数据流105上。一旦实时数据流105在中间节点103B处被重新启动,中间节点103B可以发送另一个状态指示108,该状态指示108指示实时数据流105已经被重新启动并且数据传输承诺107再次完好无损。在接收到更新的状态指示108后,服务器110可以更新实时流的当前状态,以指示与实时数据流105相关联的嵌入的数据传输承诺现在完好无损。
当传输实时数据流105时,服务器110的增量数据生成模块118可以生成增量数据109。如上所述,该增量数据可以成批发送,并且可以传送各种不同类型的信息。在一些情况下,增量数据109包括指示实时数据流105是已接受、已开始还是已停止流状态指示符(见图10)。已接受流状态指示符可以指示服务器110已经承诺传输由客户端101请求的实时数据。如图15所示,实时数据可以对应于实时数据流上的实时评论。例如,在实施例1500中,用户界面1501可以示出实时数据流1502。实时数据流1502可以在窗口1503中显示各种用户聊天或其他内容。客户端请求的实时评论可以显示为在1504处的评论A、评论B和评论C。在评论1504在服务器110处被接收并且在通过中间节点103(例如,通过图14的业务302)被传递之后,评论1504可以在用户界面1501上被示出。在实时数据的这种传输期间,服务器110还可以向客户端传输指示请求流状态信息的增量数据109。
服务器110还可以被配置成在实时数据流被传输到客户端101时对其进行监控。例如,服务器110的监控模块119可以监控实时数据流(例如,1502),以确定在实时数据流的过程期间,嵌入的数据传输承诺107是否随后在服务器110和客户端101之间的中间网络节点103处被破坏。如果传输成功,或者如果传输失败,或者如果传输失败并且在中间节点处重新启动,则监控模块119可以记录发生了什么。
监控模块119还可以生成实时数据流1502的可靠性度量。可靠性度量可以指示在监控模块执行监控时,与实时数据流相关联的嵌入的数据传输承诺被破坏的次数。如果与实时数据流相关联的嵌入的数据传输承诺107在监控期间被破坏的次数超过阈值次数,则相关联的可靠性度量可以被降低或降级以反映较高数量的故障。另一方面,如果实时数据流的数据传输承诺没有被破坏或者被破坏的次数少于阈值次数,则可靠性度量可以增加以反映数据传输中中断的缺乏。
在某些情况下,当客户端发送请求(例如,102)时,该请求可以自动建立从服务器流向客户端的增量流。增量(例如,增量数据109)可以是实时数据流105的一部分。增量数据可以提供状态机当前状态的指示,包括“已接受”、“已启动”或“已停止”。增量数据109可以向客户端101指示实时数据流的当前状态。这样,客户端可以知道它是否应该期待实时数据106,或者服务器是否已经停止提供实时数据。在整个数据传输过程中,每个中间节点(例如,103)可以知道嵌入的数据传输承诺107是否在该节点处被破坏。这提供了节点之间的连续性,并且允许服务器提供保证,如果存在实时数据106并且数据传输承诺107没有被破坏,则实时数据将到达客户端101。
在一些情况下,一个或更多个中间节点103可以是代理服务器。因此,中间节点103A例如可以是位于服务器110和客户端101之间的数据传输路径中的代理服务器。在一些实施例中,代理服务器可以与服务器110断开连接。这种断开连接可能破坏嵌入的数据传输承诺107。代理服务器然后可以通知服务器重试传输实时数据流。在通知中,代理服务器可以指出实时数据流在代理服务器处失败。这种传输失败可能会显示在用户界面中。例如,诸如图标、按钮或窗口的图形指示符可以显示红灯或实时流的当前状态的其他图形指示。在一些情况下,图形指示符可以为嵌入的数据传输承诺107的状态提供绿色或红色指示符。只要承诺完好无损,图形指示符就会保持绿色,如果承诺被破坏,图形指示符就会变成红色。图形指示符还可以被配置为指示在哪个中间节点处破坏了承诺。
相应的***可以包括至少一个物理处理器和包括计算机可执行指令的物理存储器,当该计算机可执行指令被物理处理器执行时,使得物理处理器:在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求,在服务器处建立嵌入在实时数据流中的数据传输承诺,该实时数据流包括所请求的实时数据,将具有嵌入的数据传输承诺的实时数据流传输到客户端,接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示,并基于接收到的状态指示向客户端提供实时流的当前状态的指示。
非暂时性计算机可读介质可以包括一个或更多个计算机可执行指令,当由计算设备的至少一个处理器执行时,该指令使得计算设备:在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求,在服务器处建立嵌入在实时数据流中的数据传输承诺,该实时数据流包括所请求的实时数据,将具有嵌入的数据传输承诺的实时数据流传输到客户端,接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示,并基于接收到的状态指示向客户端提供实时流的当前状态的指示。
因此,可以提供允许客户端和计算机***接收数据流中的实时数据并知道数据流传输是否中断以及在哪里中断的方法和***。这些方法和***还允许沿着服务器和客户端之间的数据传输路径的中间节点自动重新启动来自任何中间节点的数据流,而无需通知服务器并且无需等待服务器重新启动数据流。使用这些***和方法,可以向客户端设备提供保证,如果实时数据可用,它们将以高效和健壮的方式接收该数据。
示例实施例
示例1:一种计算机实现的方法可以包括在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求;在服务器处建立嵌入在实时数据流中的数据传输承诺,该实时数据流包括所请求的实时数据;将具有嵌入的数据传输承诺的实时数据流传输给客户端;接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示;以及基于所接收到的状态指示,向客户端提供实时流的当前状态的指示。
示例2.示例1的计算机实现的方法,其中指示嵌入的数据传输承诺的状态在实时数据流的传输期间被改变的指示表明嵌入的数据传输承诺被破坏。
示例3.示例1和2中任一个的计算机实现的方法,其中该指示还表明嵌入的数据传输承诺在哪个网络节点处被破坏。
示例4.示例1-3中任一个的计算机实现的方法,其中该指示还表明实时数据流在所识别的网络节点处被重新启动。
示例5.实例1-4中任一个的计算机实现的方法,其中该指示还表明嵌入的数据传输承诺现在是完好无损的。
示例6.示例1-5中任一个的计算机实现的方法,其中服务器基于嵌入的数据传输承诺现在是完好无损的进一步指示来更新实时流的当前状态的指示。
示例7.示例1-6中任一个的计算机实现的方法,还包括在服务器处生成增量数据的一个或更多个部分,并且作为嵌入的数据传输承诺的一部分,该增量数据包括流状态指示符。
示例8.示例1-7中任一个的计算机实现的方法,其中,流状态指示符被配置为向客户端指示服务器已经承诺传输所请求的实时数据。
示例9.实例1-8中任一个的计算机实现的方法,其中服务器将包括增量数据的所请求的实时数据传输给客户端。
示例10.实例1-9中任一个的计算机实现的方法,还包括监控实时数据流,以确定在实时数据流的持续时间的至少一部分期间,嵌入的数据传输承诺是否随后在服务器和客户端之间的一个或更多个网络节点处被破坏。
示例11.实例1-10中任一个的计算机实现的方法,还包括生成实时数据流的可靠性度量,该可靠性度量指示在监控期间与实时数据流相关联的嵌入的数据传输承诺被破坏的次数。
示例12.一种***可以包括以下各项:至少一个物理处理器和包括计算机可执行指令的物理存储器,当该计算机可执行指令被物理处理器执行时使物理处理器:在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求,在服务器处建立嵌入在实时数据流中的数据传输承诺,该实时数据流包括所请求的实时数据,将具有嵌入的数据传输承诺的实时数据流传输到客户端,接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示,并基于接收到的状态指示向客户端提供实时流的当前状态的指示。
示例13.示例12的***,其中来自客户端的请求自动建立从服务器流向客户端的增量流。
示例14.示例12和13中任一个的***,其中服务器和客户端之间的每个节点都知道嵌入的数据传输承诺是否在该节点处被破坏。
示例15.示例12-14中任一个的***,其中至少一个代理服务器位于服务器和客户端之间的数据传输路径中。
示例16.示例12-15中任一个的***,还包括:确定代理服务器已经与服务器断开连接,在代理服务器处破坏嵌入的数据传输承诺,以及通知服务器重试传输实时数据流。
示例17.示例12-16中任一个的***,其中实时流的当前状态的指示包括图形指示符。
示例18.示例12-17中任一个的***,其中实时数据包括对视频流的实时评论。
示例19.示例12-18中任一个的***,其中嵌入的数据传输承诺被实现为协议的一部分。
示例20.一种非暂时性计算机可读介质,可以包括一个或更多个计算机可执行指令,该一个或更多个计算机可执行指令当由计算设备的至少一个处理器执行时使计算设备:在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求,在服务器处建立嵌入在实时数据流中的数据传输承诺,该实时数据流包括所请求的实时数据,将具有嵌入的数据传输承诺的实时数据流传输到客户端,接收嵌入的数据传输承诺的状态在实时数据流传输期间被改变的指示,并基于接收到的状态指示向客户端提供实时流的当前状态的指示。
如上面所详述的,本文描述和/或示出的计算设备和***广泛地表示能够执行计算机可读指令(诸如在本文描述的模块中包含的那些指令)的任何类型或形式的计算设备或***。在它们的最基本的配置中,这些计算设备可以各自包括至少一个存储器设备和至少一个物理处理器。
在一些示例中,术语“存储器设备”通常指能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器设备可以存储、加载和/或维护本文描述的一个或更多个模块。存储器设备的示例非限制地包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、这些部件中的一个或更多个的变形或组合、或者任何其他合适的储存存储器。
在一些示例中,术语“物理处理器”通常指能够解析和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器可以访问和/或修改存储在上述存储器设备中的一个或更多个模块。物理处理器的示例非限制地包括微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、这些部件中的一个或更多个的部分、这些部件中的一个或更多个的变形或组合、或任何其他合适的物理处理器。
尽管被示为单独的元件,但是本文描述和/或示出的模块可以表示单个模块或应用的部分。此外,在某些实施例中,这些模块中的一个或更多个可以表示一个或更多个软件应用或程序,其当由计算设备执行时可以使计算设备执行一个或更多个任务。例如,本文描述和/或示出的一个或更多个模块可以表示被存储并被配置为在本文描述和/或示出的一个或更多个计算设备或***上运行的模块。这些模块中的一个或更多个还可以表示被配置为执行一个或更多个任务的一个或更多个专用计算机的全部或部分。
此外,本文描述的一个或更多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换成另一种形式。例如,本文所述的一个或更多个模块可以接收要转换的数据、转换数据、输出转换结果以监控实时数据传输、使用转换结果来确定实时数据传输的当前状态,并存储转换结果以识别状态随时间的变化。附加地或可替代地,本文所述的一个或更多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换成另一种形式。
在一些实施例中,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质(诸如,载波)以及非暂时性介质,诸如,磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和BLU-RAY盘)、电子存储介质(例如,固态驱动器和闪存介质)以及其他分发***。
在本文描述和/或示出的过程参数和步骤的顺序仅作为示例被给出,并且可以根据需要而变化。例如,虽然在本文示出和/或描述的步骤可以以特定顺序被示出或讨论,但这些步骤不一定需要以所示出或讨论的顺序来被执行。本文描述和/或示出的各种示例性方法也可以省略在本文描述或示出的一个或更多个步骤,或者包括除了那些所公开的步骤之外的附加步骤。
提供前面的描述以使本领域中的其他技术人员能够最好地利用本文公开的示例性实施例的各种方面。该示例性描述并不旨在是穷尽的或受限于所公开的任何精确形式。许多修改和变化是可能的,而不偏离本公开的精神和范围。本文公开的实施例应当在所有方面被认为是说明性的而不是限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。
除非另有说明,否则如在说明书和权利要求中使用的术语“连接到”和“耦合到”(及其派生词)应被解释为允许直接和间接(即,经由其他元件或部件)连接。此外,如在说明书和权利要求中使用的术语“一个(a)”或“一个(an)”应被解释为意指“......中的至少一个”。最后,为了容易使用,如在说明书和权利要求中使用的术语“包括(including)”和“具有”(及其派生词)与词“包括(comprising)”可互换并具有与词“包括(comprising)”相同的含义。

Claims (20)

1.一种计算机实现的方法,包括:
在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求;
在所述服务器处建立嵌入在实时数据流中的数据传输承诺,所述实时数据流包括所请求的实时数据;
将具有嵌入的数据传输承诺的所述实时数据流传输给所述客户端;
接收所述嵌入的数据传输承诺的状态在所述实时数据流的传输期间被改变的指示;和
基于所接收到的状态指示,向所述客户端提供所述实时数据流的当前状态的指示。
2.根据权利要求1所述的计算机实现的方法,其中,指示所述嵌入的数据传输承诺的状态在所述实时数据流的传输期间被改变的指示表明所述嵌入的数据传输承诺被破坏。
3.根据权利要求2所述的计算机实现的方法,其中,所述指示还识别所述嵌入的数据传输承诺在哪个网络节点处被破坏。
4.根据权利要求3所述的计算机实现的方法,其中,所述指示还表明所述实时数据流在所识别的网络节点处被重新启动。
5.根据权利要求4所述的计算机实现的方法,其中,所述指示还表明所述嵌入的数据传输承诺现在是完好无损的。
6.根据权利要求5所述的计算机实现的方法,其中,所述服务器基于所述嵌入的数据传输承诺现在是完好无损的进一步指示来更新所述实时数据流的当前状态的指示。
7.根据权利要求1所述的计算机实现的方法,还包括在所述服务器处生成增量数据的一个或更多个部分,并且作为所述嵌入的数据传输承诺的一部分,所述增量数据包括流状态指示符。
8.根据权利要求7所述的计算机实现的方法,其中,所述流状态指示符被配置为向所述客户端指示所述服务器已经承诺传输所请求的实时数据。
9.根据权利要求8所述的计算机实现的方法,其中,所述服务器将包括所述增量数据的所请求的实时数据传输给所述客户端。
10.根据权利要求1所述的计算机实现的方法,还包括监控所述实时数据流,以确定在所述实时数据流的持续时间的至少一部分期间,所述嵌入的数据传输承诺是否随后在所述服务器和所述客户端之间的一个或更多个网络节点处被破坏。
11.根据权利要求10所述的计算机实现的方法,还包括生成所述实时数据流的可靠性度量,所述可靠性度量指示在所述监控期间与所述实时数据流相关联的所述嵌入的数据传输承诺被破坏的次数。
12.一种***,包括:
至少一个物理处理器;和
包括计算机可执行指令的物理存储器,所述计算机可执行指令当由所述物理处理器执行时使所述物理处理器:
在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求;
在所述服务器处建立嵌入在实时数据流中的数据传输承诺,所述实时数据流包括所请求的实时数据;
将具有嵌入的数据传输承诺的所述实时数据流传输到所述客户端;
接收所述嵌入的数据传输承诺的状态在所述实时数据流传输期间被改变的指示;和
基于所接收到的状态指示,向所述客户端提供所述实时数据流的当前状态的指示。
13.根据权利要求12所述的***,其中,来自所述客户端的请求自动建立从所述服务器流向所述客户端的增量流。
14.根据权利要求12所述的***,其中,所述服务器和所述客户端之间的每个节点都知道所述嵌入的数据传输承诺是否在该节点处被破坏。
15.根据权利要求12所述的***,其中,至少一个代理服务器位于所述服务器和所述客户端之间的数据传输路径中。
16.根据权利要求15所述的***,还包括:
确定所述代理服务器已经与所述服务器断开连接;
在所述代理服务器处破坏所述嵌入的数据传输承诺;和
通知所述服务器重试传输所述实时数据流。
17.根据权利要求12所述的***,其中,所述实时数据流的当前状态的指示包括图形指示符。
18.根据权利要求12所述的***,其中,所述实时数据包括对视频流的实时评论。
19.根据权利要求12所述的***,其中,所述嵌入的数据传输承诺被实现为协议的一部分。
20.一种非暂时性计算机可读介质,包括一个或更多个计算机可执行指令,所述一个或更多个计算机可执行指令当由计算设备的至少一个处理器执行时使所述计算设备:
在服务器处接收来自客户端的对实时数据的一个或更多个部分的请求;
在所述服务器处建立嵌入在实时数据流中的数据传输承诺,所述实时数据流包括所请求的实时数据;
将具有嵌入的数据传输承诺的所述实时数据流传输到所述客户端;
接收所述嵌入的数据传输承诺的状态在所述实时数据流传输期间被改变的指示;和
基于所接收到的状态指示,向所述客户端提供所述实时数据流的当前状态的指示。
CN202010940845.4A 2019-09-09 2020-09-09 请求流 Active CN112468435B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/564,246 US11228626B1 (en) 2019-09-09 2019-09-09 Request stream
US16/564,246 2019-09-09

Publications (2)

Publication Number Publication Date
CN112468435A true CN112468435A (zh) 2021-03-09
CN112468435B CN112468435B (zh) 2023-05-12

Family

ID=72470143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010940845.4A Active CN112468435B (zh) 2019-09-09 2020-09-09 请求流

Country Status (3)

Country Link
US (1) US11228626B1 (zh)
EP (1) EP3790253A1 (zh)
CN (1) CN112468435B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205829A1 (en) * 2000-09-12 2004-10-14 Highcast Network, Inc. System and method for creating a virtual media channel
US20040236846A1 (en) * 2003-05-23 2004-11-25 International Business Machines Corporation, Armonk, New York System and method for utilizing informed throttling to guarantee quality of service to I/O streams
US6910078B1 (en) * 2001-11-15 2005-06-21 Cisco Technology, Inc. Methods and apparatus for controlling the transmission of stream data
WO2009155356A1 (en) * 2008-06-18 2009-12-23 Onion Networks, KK Traffic and cost containment for internet access by adapting the coding rate when distributing- media content
US20110082924A1 (en) * 2009-10-06 2011-04-07 Openwave Systems Inc. Managing network traffic by editing a manifest file
US20110238546A1 (en) * 2010-03-29 2011-09-29 Amazon Technologies, Inc. Managing committed processing rates for shared resources
US20120036255A1 (en) * 2010-08-09 2012-02-09 Stan Polsky Network Centric Structured Communications Network
US20140281000A1 (en) * 2013-03-14 2014-09-18 Cisco Technology, Inc. Scheduler based network virtual player for adaptive bit rate video playback
WO2017063574A1 (zh) * 2015-10-14 2017-04-20 中兴通讯股份有限公司 自适应流媒体传输方法及装置
CN107306278A (zh) * 2016-04-18 2017-10-31 阿里巴巴集团控股有限公司 故障检测方法、全局负载均衡服务器和常驻网关
CN109586969A (zh) * 2018-12-13 2019-04-05 平安科技(深圳)有限公司 内容分发网络容灾方法、装置、计算机设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3020208B1 (en) * 2013-07-12 2022-03-09 Canon Kabushiki Kaisha Adaptive data streaming with push messages control
US20150106841A1 (en) * 2013-10-14 2015-04-16 Rhythm Newmedia Inc. Dynamic Advertisement During Live Streaming
US9282133B2 (en) * 2013-12-12 2016-03-08 Ooma, Inc. Communicating control information within a real-time stream
US20150271233A1 (en) * 2014-03-20 2015-09-24 Samsung Electronics Co., Ltd. Method and apparatus for dash streaming using http streaming
US9282355B2 (en) * 2014-05-06 2016-03-08 Verizon Patent And Licensing Inc. Delayed video-on-demand streaming for enhanced user experience and network capacity optimization
BR112017018854A2 (pt) * 2015-03-05 2018-04-24 Ericsson Telefon Ab L M método, programa de computador, e, nó de rede de rádio.
US10095547B1 (en) * 2015-03-13 2018-10-09 Twitter, Inc. Stream processing at scale
US9910752B2 (en) * 2015-04-24 2018-03-06 Tanium Inc. Reliable map-reduce communications in a decentralized, self-organizing communication orbit of a distributed network
CN106412681B (zh) * 2015-07-31 2019-12-24 腾讯科技(深圳)有限公司 弹幕视频直播方法及装置
US10887366B1 (en) * 2019-07-08 2021-01-05 Cbs Interactive Inc. Systems, methods, and storage media for managing encoder instances in a serverless content distribution platform

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205829A1 (en) * 2000-09-12 2004-10-14 Highcast Network, Inc. System and method for creating a virtual media channel
US6910078B1 (en) * 2001-11-15 2005-06-21 Cisco Technology, Inc. Methods and apparatus for controlling the transmission of stream data
US20040236846A1 (en) * 2003-05-23 2004-11-25 International Business Machines Corporation, Armonk, New York System and method for utilizing informed throttling to guarantee quality of service to I/O streams
WO2009155356A1 (en) * 2008-06-18 2009-12-23 Onion Networks, KK Traffic and cost containment for internet access by adapting the coding rate when distributing- media content
US20110082924A1 (en) * 2009-10-06 2011-04-07 Openwave Systems Inc. Managing network traffic by editing a manifest file
US20110238546A1 (en) * 2010-03-29 2011-09-29 Amazon Technologies, Inc. Managing committed processing rates for shared resources
US20120036255A1 (en) * 2010-08-09 2012-02-09 Stan Polsky Network Centric Structured Communications Network
US20140281000A1 (en) * 2013-03-14 2014-09-18 Cisco Technology, Inc. Scheduler based network virtual player for adaptive bit rate video playback
WO2017063574A1 (zh) * 2015-10-14 2017-04-20 中兴通讯股份有限公司 自适应流媒体传输方法及装置
CN107306278A (zh) * 2016-04-18 2017-10-31 阿里巴巴集团控股有限公司 故障检测方法、全局负载均衡服务器和常驻网关
CN109586969A (zh) * 2018-12-13 2019-04-05 平安科技(深圳)有限公司 内容分发网络容灾方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112468435B (zh) 2023-05-12
EP3790253A1 (en) 2021-03-10
US11228626B1 (en) 2022-01-18

Similar Documents

Publication Publication Date Title
US9692819B2 (en) Detect process health remotely in a realtime fashion
US9596192B2 (en) Reliable link layer for control links between network controllers and switches
JP6279744B2 (ja) eメールのウェブクライアント通知の待ち行列化方法
US9146822B2 (en) Cluster configuration systems and methods
KR102210289B1 (ko) 하드웨어 관리 통신 프로토콜
US20230019374A1 (en) Dead peer detection across split control plane nodes and data plane nodes of a tunneled communication session
JP2016515361A (ja) アプリケーションにより提供される送信メタデータに基づくネットワーク送信調整
US6741561B1 (en) Routing mechanism using intention packets in a hierarchy or networks
US20090319699A1 (en) Preventing Loss of Access to a Storage System During a Concurrent Code Load
US10326691B2 (en) Wireless data transfer as an alternative method to overcome errors or noise in a storage environment
CN113626235A (zh) 容错处理的方法、装置和服务器
CN112468435B (zh) 请求流
US11070615B2 (en) Method, device and computer program product for transaction negotiation
WO2017071430A1 (zh) 处理报文的方法、网卡及***、更新信息的方法及主机
US10528408B2 (en) Symmetric connectivity over SCSI where the initiator and target are symmetric
US10452285B2 (en) Storage system based host computer monitoring
US20120124009A1 (en) Automatic expiration of data in file systems under certain scenarios
US9660900B2 (en) Architected data transfer
US11546408B2 (en) Client-side measurement of computer network conditions
CN114338477A (zh) 一种通信链路监控方法、装置、设备及存储介质
US20240056355A1 (en) Options template transport for software defined wide area networks
US11949597B2 (en) Platform independent on demand network management and monitoring
US10951536B1 (en) Sequence number recovery in stateful devices
WO2024001213A1 (zh) 消息处理方法、发布端、订阅端及计算机可读存储介质
WO2024035845A1 (en) Options template transport for software defined wide area network

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

GR01 Patent grant
GR01 Patent grant