[go: up one dir, main page]

CN103312684B - 用于优化网络中内容传递的方法和信息处理系统 - Google Patents

用于优化网络中内容传递的方法和信息处理系统 Download PDF

Info

Publication number
CN103312684B
CN103312684B CN201310013174.7A CN201310013174A CN103312684B CN 103312684 B CN103312684 B CN 103312684B CN 201310013174 A CN201310013174 A CN 201310013174A CN 103312684 B CN103312684 B CN 103312684B
Authority
CN
China
Prior art keywords
service
requester device
content
streaming services
media
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.)
Expired - Fee Related
Application number
CN201310013174.7A
Other languages
English (en)
Other versions
CN103312684A (zh
Inventor
C·A·冈萨雷斯
李康源
S·W·萨塞耶
D·维尔马
P·韦斯特林克
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103312684A publication Critical patent/CN103312684A/zh
Application granted granted Critical
Publication of CN103312684B publication Critical patent/CN103312684B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

优化由网络节点进行的内容传递。网络节点通信地耦合在多个终端用户设备和至少一个内容服务提供者之间。拦截来自第一请求者设备的、对于可从内容服务提供者获得的媒体流服务的请求。基于特定于媒体流服务的至少一个服务规则,确定所述媒体流服务是否被注册用于传递优化。确定第二请求者设备当前是否正从内容服务提供者接收媒体流服务。响应于媒体流服务正被第二请求者设备接收,通过复制媒体流服务以便传递到第一请求者设备,来执行媒体流服务的传递优化。复制的媒体流服务被发送到第一请求者设备。

Description

用于优化网络中内容传递的方法和信息处理系统
关于由联邦政府资助的研发的声明
本发明的完成得到政府支持,合同号为W911QX-10-C-0094,由国防部高级研究计划局(DARPA)资助。政府对本发明具有某些权利。
技术领域
本发明的实施例一般涉及联网,更具体地,涉及优化网络中的内容传递。
背景技术
网络中的设备和链路具有特定的容量限制。例如,链路每单位时间可携带一定的有限量的信息。这种限制通常由链路的物理特性决定,且也由网络的链路控制元件(硬件和软件)决定。当链路被利用到其最大容量时,其不能接受任何传递更多信息的请求。这种情况可发生在,例如,当链路携带若干用户的通信流且没有更多资源可用于新用户服务请求时。在这种情况下,链路控制元件通常需要:(1)放弃当前用户以服务于新请求者;(2)降低为每个用户携带的信息量,以便释放容量以服务于新请求者,或(3)拒绝给新请求者提供服务。这些可选项通常不是想要的,因为它们会对用户造成不满意的体验质量。
发明内容
在一个实施例中,提供了一种优化网络中内容传递的方法。存在通信地耦合在多个终端用户设备和至少一个内容服务提供者之间的网络节点。根据该方法,拦截来自第一请求者设备的、对于可从至少一个内容服务提供者获得媒体流(streaming)服务的请求。基于特定于媒体流服务的至少一个服务规则,确定媒体流服务是否被注册用于传递优化。响应于媒体流服务被注册,进一步确定第二请求者设备当前是否正从内容服务提供者接收媒体流服务。响应于媒体流服务当前正被接收,通过复制媒体流服务以便传递到第一请求者设备来执行媒体流服务的传递优化。复制的媒体流服务被发送到第一请求者设备。
在另一个实施例中,提供了一种用于优化网络中内容传递的信息处理系统。该信息处理系统包括存储器和通信地耦合到存储器的处理器。连接管理器通信地耦合到存储器和处理器。该连接管理器被配置为执行方法,该方法包括拦截来自第一请求者设备的、对于可从至少一个内容服务提供者获得的媒体流的请求。基于特定于媒体流服务的至少一个服务规则,确定媒体流服务是否被注册用于传递优化。响应于媒体流服务被注册,进一步确定第二请求者设备当前是否正从内容服务提供者接收媒体流服务。响应于媒体流服务当前正被接收,通过复制媒体流服务以便传递到第一请求者设备来执行媒体流服务的传递优化。复制的媒体流服务被发送到第一请求者设备。
在又一个实施例中,提供了一种计算机程序产品。该计算机程序产品有形地包含计算机可读非临时指令。当计算机可读非临时指令被实施时,其使得计算机执行用于优化网络中内容传递的方法的步骤。该方法包括拦截来自第一请求者设备的、对于可从至少一个内容服务提供者获得的媒体流的请求。基于特定于媒体流服务的至少一个服务规则,确定媒体流服务是否被注册用于传递优化。响应于媒体流服务被注册,进一步确定第二请求者设备当前是否正接收来自服务内容提供者的媒体流服务。响应于媒体流服务当前正被接收,通过复制媒体流服务以便传递到第一请求者设备来执行媒体流服务的传递优化。复制的媒体流服务被发送到第一请求者设备。
附图说明
在附图中,类似的标号在所有单个视图中指示相同或功能上相似的元件,且这些附图与以下详细说明一起并包含在说明书并形成说明书的一部分,这些附图用于进一步描述各种实施例并解释根据本发明的各种原理和优势,在附图中:
图1是示出根据本发明的一个实施例的操作环境的框图;
图2是示出根据本发明的一个实施例的包括连接管理器的边缘网络节点/元件的框图;
图3示出了根据本发明的一个实施例的示例性超文本传输协议请求消息;
图4示出了根据本发明的一个实施例的示例性超文本传输协议响应消息;
图5示出根据本发明的一个实施例由图2的连接管理器维护的内容服务提供者信息;
图6示出了根据本发明的一个实施例由图2的连接管理器利用以用于优化媒体流服务的传递的服务规则;
图7示出了根据本发明的一个实施例的由图2的连接管理器维护的服务状态信息;
图8是示出根据本发明的一个实施例的由图2的连接管理器执行的用于优化媒体流传递的整个过程的事务图(transactionaldiagram);
图9和10是示出根据本发明的一个实施例的媒体流服务的优化传递的操作流程图;
图11是示出根据本发明的另一个实施例的媒体流服务的优化传递的操作流程图。
图12示出用于本发明的实施例的信息处理系统。
具体实施方式
如以下所描述的,本发明的实施例通过为每个服务定义的规则或策略,以可编程的方式优化媒体流服务及其内容流(stream)的传递。一个示例性实施例提供了基本构建块的分离,所述构建块用于抽取识别用于流中的共同性的机会所需要的功能,用于当需要时复制流,以及用于使用单播方法以透明和安全的方式传递复制的流到终端客户机。而且,示例性实施例支持在装置的单个实例中以并发方式调用、解释和执行的多个规则集(每个规则集用于支持的服务中的一个)的使用。这些规则集可在运行时在外部网络元件/实体、人类操作者或这两者的控制下被使能或禁止。这种使能和禁止开启或关断规则集中的一个或多个功能。示例性实施例也允许多租户(multi-tenancy),其形式为从连接管理器的单个实例,代表服务提供者和终端用户的独立组同时和并发传递独立内容流或服务。
图1示出了根据本发明的一个实施例的操作环境100。如图所示,一个或多个内容服务器102通信地耦合到传递网络104,诸如但不限于因特网或包括有线和/或无线技术的任何其他电信网络。传递网络104包括各种网络元件/节点,诸如路由器和交换机。一个或多个边缘网络节点/元件106位于传递网络104的边缘。边缘网络节点106将来自传递网络104通信流传输到一个或多个边缘网络,反之亦然。终端网络节点108和110(诸如路由器和交换器)通信地耦合到边缘网络节点106。终端网络节点108和110位于与终端用户设备112、114、116和118直接接口连接的终端网络内。终端用户设备的例子是膝上型计算机、笔记本计算机、个人计算机、平板计算设备、无线通信设备、个人数字助理、游戏设备等、
在该示例性实施例中,内容服务器102包括媒体内容,诸如可被提供给终端用户设备的音频、视频和文本。媒体内容可以是直播(live)的或预存的。直播的媒体内容由内容服务提供者实时产生,并由内容服务器102捕获。内容服务器102提供直播媒体内容给请求的终端用户设备。直播媒体内容的例子是体育事件、新闻事件等的视频和音频,其由各种内容服务提供者提供。预存媒体内容是并非实时产生而是先前就已产生/创建的可在任何时间点被终端用户设备访问的内容。预存的媒体内容的例子是电影文件、音频文件等。在该实施例中,内容服务器寄存有(host)预存的媒体内容且被认为是内容服务提供者,因为终端用户设备112-118直接从内容服务器102请求内容。但是,在另外的实施例中,其他的服务器寄存有预存的媒体内容且被认为是内容服务提供者。内容服务提供者通过内容服务器102发送其内容到终端用户设备112-118。
通过一个或多个媒体流服务(“服务”或“流服务”)媒体内容120被提供给终端用户设备112-118,所述媒体流服务提供一个或多个内容流给终端用户设备112-118。流是指从源设备(例如,内容服务器)连续地传递数据到目标设备(例如,终端用户设备)的过程,其中目标设备在接收到数据时处理数据。例如,终端用户设备112能够在从内容服务器102接收到视频文件的部分时观看视频文件的部分,而不需要首先存储整个视频文件。流服务的例子是用于向终端用户设备提供直播音频/视频的内容流的实时流服务,用于向终端用户设备提供包括预存的音频媒体内容的内容流的音频流服务,以及用于向终端用户设备提供包括预存的电影内容的内容流的电影流服务。
终端用户设备112发送对特定的媒体内容120、特定服务或这两者的请求到内容服务器102。例如,终端用户设备112可发送请求到内容服务器102,请求特定电影通过电影流服务被流到设备。作为另一个例子,终端用户设备112可发送对音频媒体流服务的请求,该服务将媒体内容120中的各种音频内容项目流到设备。尽管针对终端用户设备请求的媒体流服务给出了例子,本发明的实施例也适用于由终端用户设备请求的其他类型的数据内容。
可被用于将媒体内容120流到终端用户设备112-118的一种机制是单播传输机制。单播传输机制通过内容服务器102和每个终端用户设备之间的单独的逻辑连接/链路,发送媒体内容120的单独实例到每个请求的终端用户设备112-118。例如,为请求用于提供媒体内容120的服务的每个终端用户设备112-118建立与内容服务器102的连接(逻辑的或是物理的)。应当注意,除了终端用户设备112和终端节点108之间的最后一跳(lasthop),链路可被共享。内容服务器102通过每个连接连续地将内容流(flow)/流(stream)传递给每个终端用户设备112-118。标准网络协议,诸如TCP/IP,使得单播传输是可靠的、校正错误的、安全的、经验证的且私有的。
尽管单播传输机制具有许多优势,其要求大量的资源以便通过多个链路将数据传输到多个终端用户设备。支持用于每个内容流的单播传递机制所要求的传输容量的总数需要与消费内容的终端用户设备的数量成线性比例。如果许多终端用户设备请求同样的内容且带宽资源被限制,服务请求可能不会被满足,或终端用户设备的用户体验可能变得不满意。
因此,在该示例性实施例中,在一个或多个网络(例如终端网络、边缘网络、传递网络104等)中提供一个或多个连接管理器122、123,用于优化内容流到多个终端用户设备112-118的传递。连接管理器122透明地拦截由请求者设备(请求者或客户机),诸如终端用户设备112-118和/或一个或多个另外的连接管理器123,提交到内容服务器102的对流服务的请求。连接管理器122分析来自不同终端用户设备的请求以识别冗余请求(即,对来自相同的内容服务提供者的相同媒体流服务的请求)。连接管理器122随后利用与内容服务提供者关联的一个或多个规则集以优化由服务提供的内容到多个设备的传递。
当连接管理器122检测到多个请求者设备正在请求来自给定的内容服务提供者的相同的内容服务时,连接管理器122建立与内容服务器102的单个连接以从服务器102接收请求的服务(及其媒体内容)。连接管理器122随后复制由该服务提供的内容流并通过单独的链路将复制的内容流传递到每个请求者设备。这允许内容服务器仅建立与连接管理器122的单个链路,同时能够将内容流传递到多个终端用户设备。换句话说,通过连接管理器122,在内容服务器102和第一请求设备之间建立单播链路。连接管理器随后建立其本身和任何次级请求设备之间的链路。
连接管理器122位于操作环境100内,这样来自多个请求者设备的内容服务请求通过连接管理器122、123被透明地传递给内容服务器102。在该实施例中,一个或多个连接管理器122、123位于终端网络节点/元件108、110中,如图1所示。但是,在另一个实施例中,连接管理器122位于终端网络节点108、110之外的或代替终端网络节点108、110的边缘网络节点106中。在该其他实施例中,放置在边缘网络节点106中的连接管理器拦截来自终端网络节点108、110内的连接管理器122、123或来自终端用户设备112-118的请求。连接管理器122、123也可位于操作环境100内终端设备112-118和内容服务器102之间的任何其他位置处的任何其他网络元件/节点中。
此外,连接管理器122可被策略地放置到网络中发生多个分支的任何点处。这提供了在优化冗余的同时服务多个网络分支的能力。在该实施例中,连接管理器122的每个实例以透明方式与其他实例合作以优化内容流中的冗余。连接管理器122的每个实例单独操作,代表终端设备或下游连接管理器实例优化内容传递。连接管理器122被配置,从而基于每个连接创建并发起独立的执行线程。每个线程的状态被独立地操纵,且服务状态信息212内的共同共享的对象被保护以用于跨连接管理器122的整个功能层栈202、203、206和208的安全共享。连接管理器122也可被配置为作为单个执行线程而操作,其可通过使用标准调度技术,并且共享服务状态信息212内的共同共享对象而不要求用于保护状态的机制,来处理多个独立的连接。
图2示出了根据本发明的一个实施例的连接管理器122的更详细的视图。在该实施例中,连接管理器122包括透明代理模块202、一个或多个协议分析器204、规则引擎206以及连接管理器核模块208。图2也示出了连接管理器122包括和/或通信地耦合到内容服务提供者信息210、服务状态信息212和规则库214,规则库214包括一个或多个规则216。内容服务提供者信息210包括与每个内容服务提供者有关的信息,所述内容服务提供者已向连接管理器122注册以用于优化。服务状态信息212包括与每个被连接管理器122优化的单个服务有关的信息。
规则库210包括被编码为规则集的规则216。在该实施例中,存在基本规则集和服务规则集。基本规则集是缺省规则,其不特定于任何流服务或内容服务提供者。当通信初始被接收和/或当确定不执行优化时,基本规则被施加到通信。服务规则集包括特定于给定流服务的规则和/或内容服务提供者的规则,且被连接管理器122使用以优化流服务及其内容流到多个终端用户设备的传递。用于给定服务(或内容服务提供者)的服务规则集包括用于从请求者设备接收到的请求的服务规则,和用于从内容服务提供者接收到的响应的服务规则。
每个规则集216专用于优化流服务的及其内容流的传递,所述内容流包括直播或预存的媒体内容120。每个规则集216是独立于连接管理器122的其余部分的实体,且可在运行时、编译时或在两者时被解译、编译、置入或插入。连接管理器122提供完全弹性以适合用于优化各种服务的所有形式和类型的规则的规范。每个规则集216包括入口点(entrypoint)方法,当协议分析器204检测到请求和响应流中的匹配模式或事件时,所述入口点方法被调用。例如,当由请求者设备做出HTTP(超文本传输协议)请求时,执行检查“Host:”字段的内容的规则。该规则检查诸如存在特定的主机名(例如Srvc_Prvdr_1.com)等条件的发生。
当发生匹配时,核模块208采取基于规则集216创建、操纵、改变或删除服务状态信息212的行动。核模块208负责维护和管理每个客户机连接的状态、客户机和服务器的角色、代表客户机在系统中保持的内容缓冲区、以及对这些元件中的每一个的状态更新。尽管由核模块208执行的这些行动产生于规则的执行,核模块20的元件本身独立于优化特定服务的规则。
规则集216外在于连接管理器122,且在连接管理器122之外被制定。因此,规则集216描述了逻辑,通过该逻辑连接管理器122以独立于服务的方式利用请求的服务及其内容流中的冗余。规则集216可以各种方式被编码,例如用高级编程语言(例如C、C++、Java)或用解释语言(例如JavaScript、Python)被编码。规则引擎206提供统一的接口用于包括由各种方法指定的规则集126,并允许服务状态信息212的独立于服务的操纵。
此外,可以使用外部管理实体,诸如网络管理器,来提供规则集216。在该实施例中,连接管理器122的实例被安装在传递网络104中,而规则库214中没有任何规则集。然后,在运行时,基于业务或网络操作者的其他需求,和/或操作者的客户/用户,一个或多个规则集被下载到实例中。而且,以类似的方式,已下载并安装在连接管理器的实例中的一个或多个规则集是部分地或整体地可修改的。该实施例使得操作者能使能或禁止流服务的优化,并随需优化带宽。
规则集可以层级方式设计。例如,流服务可由解决服务协议的应用层的需求的高级规则组成。当该应用层协议利用标准较低层协议时,较低层协议的规则可被指定为低级规则集,以便由高级规则集调用。因此,层级服务组成是可能的,以便使能用于这样的复杂服务的流的优化。该特征的一个例子是使用用于直播视频流的传递的低级RTMP(实时多媒体协议)的直播因特网电视流服务。
透明的代理模块202透明地拦截请求者设备和内容服务器102之间的通信(即,诸如请求和相应的消息)。通信可在开放系统互连(OSI)网络模型的层2(链路层)、层3(包层)或层4(传输层)及以上被拦截。在该示例性实施例中,代理模块202监视从请求者设备到内容服务器102的网际协议连接请求。图3和4示出了在一个实施例中被代理模块拦截的示例性通信。具体地,图3示出了从终端用户设备112接收的HTTP请求300,且图4示出了从内容服务器102接收的相应HTTP响应消息400。为便于理解,图3和图4示出的请求300和响应400仅包括完整的请求和响应的一部分。应当注意,本发明的实施例不限于HTTP协议,且也适用于其他链路层、网络层以及应用层协议。
图3示出的HTTP请求消息包括请求行302和头部分304。其他组件,诸如空白行和消息体,未在图3中示出。请求行302包括方法标记(token)306(“GET”)、请求统一资源标识符308(“//srvc_prvdr_1.com/Service1/Flow1”)、以及标识所使用的HTTP的版本的识别符310(“HTTP/1.1”)。方法标记306标识将在由请求统一资源标识符(URI)308标识的资源上执行的方法。请求-URI308标识向其应用请求的资源。
头部分304包括关于请求300和终端用户设备112本身的额外信息。示例性请求300包括头部分304中的“Host:”字段312,其标识提供所请求的资源(例如,服务)的服务器的域名。换句话说,“Host:”字段312标识与请求300有关的内容服务提供者(“srvc_prvdr_1.com)。头部分304下的另一个字段是“Cookie:”字段314,其包括来自与终端用户设备112和内容服务提供者有关的cookie的状态信息。该状态信息包括会话标识符(“SessionID”)、验证信息、用户偏好等。
终端用户设备112可根据请求流服务是“拉取”(pull)或“推送”服务而提交不同类型的请求。“拉取”服务要求终端用户设备每当该设备需要内容时提交内容请求。因此,设备发送对于“拉取”服务的内容请求和非内容请求。非内容请求标识请求的服务、请求的内容流/流等。“推送”服务将内容发送到终端用户设备,而不需要设备持续地请求内容。因此,针对“推送”服务,设备仅需要发送请求用于建立与服务提供者的连接。
图4示出了对于图3的HTTP请求消息300的对应HTTP相应消息400。图4示出的HTTP响应消息400包括响应状态行402和头部分404。其他组件,诸如空白行和消息体,未在图4中示出。响应状态行402包括协议版本“HTTP/1.1”,接下来是数字状态代码(“200”)及其相关文本短语(“OK”)。响应的头部分404允许寄存有所请求的资源的服务器传递关于响应400的额外信息,所述额外信息不能被放置在响应状态行中。头部分中的这些头字段给出了关于服务器和关于对由请求-URI标识的资源的进一步访问的信息。关于HTTP请求和响应消息的更详细讨论在W3C网络工作组的征求意见稿2616“超文本传输协议—HTTP/1.1”(1999年6月)中给出,该文件通过引用全文结合于此。
返回参考图2,代理模块202被配置为识别在每个拦截的消息中使用的通信协议的类型。例如,代理模块202可确定消息是否正在使用HTTP,HTTPS(HTTP安全协议)、RTMP(实时多媒体协议)等。基于消息通过其传递的通信端口、与消息比较的用于每个协议的模板,或基于消息内的信息,代理模块202识别协议类型。一旦识别了与消息有关的协议,代理模块202能够经由编程接口调用合适的协议分析器204,以便解译消息。
在该实施例中,连接管理器122包括多个分析器204,每个感兴趣的通信协议(例如,HTTP、HTTPS、RTMP等)一个分析器。每个分析器204被配置为分别处理请求消息和响应消息。而且,每个分析器204被配置为分别处理每个连接的状态,这样可获得任务级并行的最大益处。分析器204通过编程接口调用规则引擎206,以处理响应/请求消息内的由分析器204识别的信息。编程接口在用于每个所分析的协议的请求和响应消息的每个入口点上提供执行点。
在规则引擎206的每个调用期间,基于规则集216中列举的特定行为动作,并基于条件匹配,执行一个或多个规则。规则的执行是代表终端用户设备而进行的,且可独立于其他终端用户设备,或可依赖于其他终端用户设备的行动和结果。规则引擎206执行实施并满足所有这些依赖性的任务。
规则引擎206利用分析器204来从接收的消息获取信息。由分析器204获得的信息在规则库214的基本规则以及/或服务规则中被识别。如以上所讨论的,基本规则不特定于任何内容服务提供者,而是当消息初始被接收并/或当确定不执行优化时,被应用到消息的缺省规则。当诸如请求或响应的消息初始被接收时,引擎规则206应用基本规则,该基本规则指示分析消息的哪些部分以便识别内容服务提供者和/或与其有关的服务。例如,基本规则可指示来自HTTP请求内的“Host:”字段的信息将由分析器204获得。使用图3示出的请求消息300,分析器204识别请求300内的“Host:”字段312,并获得该字段的值,其是“Srvc_Prvdr_1.com”。连接管理器122使用该信息来确定是否执行优化以用于传递有关的内容流及其内容。
在该实施例中,规则引擎206通过确定从请求消息300分析的信息是否满足规则库214中的任何服务规则的任何条件,确定对于请求的服务是否执行优化。例如,服务规则可包括诸如“(request.header[host].contains(“Srvc_Prvdr_1.com”)”的条件。该条件指示请求消息300的头中的“Host:”字段312需要包括“Srvc_Prvdr_1.com”的值,以便启动由连接管理器122提供的一个或多个优化。换句话说,“Host:”字段312需要标识给定的内容服务提供者,诸如“Srvc_Prvdr_1.com”。因此,规则引擎206将从图3示出的请求消息300获得的“Srvc_Prvdr_1.com”的“Host:”字段值与上述条件要求的值进行比较。在该例子中,规则引擎206确定从请求消息300获得的“Srvc_Prvdr_1.com”的“Host:”字段值满足上述条件。因此,规则引擎206确定包括满足的条件的服务规则与内容服务提供者Srvc_Prvdr_1.com有关,且将被用于优化请求的服务的内容流的传递。
类似的过程被应用到由代理模块202拦截的响应消息400。例如,当接收到来自内容服务器102的响应消息400时,代理模块202识别与响应消息400有关的协议。调用分析器204以从消息400获得如一个或多个基本规则和/或服务规则所指示的信息。基于这些规则和消息400内的信息,规则引擎206确定与响应400有关的内容服务提供者、在响应400中提供的服务(和/或内容)等。
服务规则也可包括与所请求的服务有关的条件。例如,内容服务提供者可提供多于一个的媒体服务,诸如视频流服务和音频流服务。这些服务中的每个可提供多个独特的内容流,诸如不同频道的直播视频或不同音频站。在该实施例中,内容服务提供者可能仅想对其视频流服务(或对特定的内容流)执行优化。因此,与该内容服务提供者有关的服务规则可指示除了包括给定值的请求300的“Host:”字段312,消息300的请求行302中的请求-URI也需要包括给定值。例如,服务规则可包括条件,诸如“(request.uri.contains(“Service1/”)”,其中“请求-URI”标识由服务提供者提供的服务,对其将执行优化。
规则引擎206执行比较过程以确定从请求消息300中的请求-URI分析的信息是否满足以上条件。一旦规则引擎206确定服务规则的所有条件已被满足,可由核模块208启动优化。如果有关服务规则的一个或多个条件未被请求/响应消息满足,检查基本规则以确定采取什么行动。在该实施例中,请求/响应被传递到内容服务器102或请求者设备,而不执行任何优化操作。
在另一个实施例中,不要求规则引擎206搜索服务规则内的所有条件以确定给定的服务规则是否适用于与拦截的消息有关的内容服务提供者。例如,当由代理模块202接收到消息时,基本规则可指示规则引擎206分析内容服务提供者信息210以确定与接收的消息有关的内容服务提供者是否已向连接管理器122注册用于优化。图5示出了内容服务提供者信息210的一个例子。具体地,图5示出了表500,其包括用于多个内容服务提供者的一组信息,内容服务提供者已向连接管理器122注册用于优化。本发明的实施例不限于图5示出的信息或列(例如,在表中可添加或删除一个或多个列)。而且,实施例不限于使用用于该信息的表的形式,且可使用任何其他标准格式来安排该信息。
在图5示出的例子中,表的每行与单个内容服务提供者有关,但其他组织格式也适用。如图所示,表具有名为“服务提供者ID”的第一列502。该列502包括条目504,其包括与向连接管理器122注册的每个内容服务提供者有关的唯一标识符(ID)。该ID允许连接管理器122将内容服务提供者彼此区分,并定位与其有关的信息。
名为“服务提供者名称”的第二列506包括标识给定内容服务提供者的名称的条目508。名为“服务提供者URL”的第三列510包括标识与给定内容服务提供者有关的统一资源定位(URL)的条目512。名为“规则集ID”的第四列包括条目516,其具有与给定内容服务提供者有关的每个服务规则集216的唯一标识符。名为“优化状态”的第五列518包括条目520,其指示连接管理器是否将对给定内容服务提供者执行优化。内容服务提供者可动态地使能或禁止由连接管理器提供的优化。如果内容服务提供者没有被配置为动态地使能或禁止优化,则该列518下的条目522这样指示。
如以上所讨论的,规则引擎206通过分析内容服务提供者信息500,确定与接收的消息有关的内容服务提供者是否向连接管理器122注册。例如,规则引擎206可将从图3示出的请求消息300的“Host:”字段312解析的内容服务提供者标识符“Srvc_Prvdr_1.com”78与图5示出的内容服务信息进行比较。如果内容服务提供者标识符“Srvc_Prvdr_1.com”与内容服务提供者标识符500中的条目匹配,则规则引擎确定内容服务提供者“Srvc_Prvdr_1.com”向连接管理器122注册以用于优化。在该实施例中,规则引擎206还分析“优化状态”列518以确定对于给定的内容服务提供者优化是否被使能或禁止。在当前例子中,使能用于Srvc_Prvdr_1.com的优化。连接管理器122还确定优化是否将全局地适用于服务提供者提供的所有服务或由其提供的特定服务(及/或服务的特定内容流)。例如,可使用一列以列举将对其应用优化的特定服务或内容,诸如服务1。该列也可包括指示优化将被应用于服务提供者提供的所有内容/服务的条目。
如果规则引擎206确定对于与接收的消息有关的媒体流服务将不执行内容传递优化,消息被传递到内容服务器102或请求者设备,而不执行任何优化操作。通过未能在内容服务提供者信息中识别用于与接收的消息有关的服务提供者的条目,通过确定优化对内容服务提供者被禁止,或通过确定对于请求的服务未指定优化,规则引擎206确定将不执行内容传递优化。
当基于内容服务提供者信息210,规则引擎206确定将对给定服务执行内容传递优化时,规则引擎206识别规则库214内的与所请求的服务有关一组服务规则。在该实施例中,规则引擎206分析图5示出的内容服务提供者信息500,并识别与用于给定消息的内容服务提供者或提供者的所请求服务有关的规则集ID。规则引擎206使用该ID从规则库214中获取对应的服务规则集。在该实施例中,单个服务规则可与由内容服务提供者提供的多于一个的服务关联。执行类似的过程以识别与从内容服务器102接收的响应消息400有关的规则。
服务规则与核模块208交互以启动并执行优化,以及维护与正被优化的服务有关的服务状态信息212。如果相关服务规则的一个或多个条件未被请求/响应消息满足,检查基本规则以确定采取什么行动。在该实施例中,请求/响应被传递到内容服务器102或请求者设备,而不执行任何优化操作。
图6示出了用于由内容服务提供者Srvc_Prvdr_1提供的Service1的示例性请求消息服务规则600。类似的服务规则包括在用于响应消息的服务规则集中。如以上所讨论的,服务规则由核模块208使用,以维护用于正被提供给终端用户设备的给定服务的服务状态信息212,且也可用于优化该服务的内容流的传递。服务规则600包括一个或多个条件602,所述条件将在应用规则前被满足。在使用内容服务提供者信息210的一实施例中,不包括在内容服务提供者信息210中的任何条件可被包括在服务规则600中。而且,诸如优化状态518的信息也可被包括在服务规则600中。
服务规则600也包括参数部分604和行动部分606。参数部分604标识核模块208将从接收到的消息300获取哪些参数。在图6的该例子中,服务规则600指示核模块208将从请求消息300获取会话参数606和流名称参数608。服务规则600也指示核模块208如何和从哪里获得这些参数608和610。例如,服务规则600指示会话参数608将使用以下方法:cookie.substring.session.getname(),从请求300的头部分304中的“Cookie”:字段314获得。在该例子中,核模块208从图3示出的“Cookie”:字段314获得“SessionID1”。服务规则600也指示将使用以下方法:request.uri.substring.flow.getname(),从消息300的请求行302中的URI308获得流名称参数610。在该例子中,核模块208从图3示出的URI308中获得“Flow1”。流(flow)是服务提供的唯一的内容流(stream)。参数部分604也可标识将由核模块208获得的其他参数。
行动部分606识别核模块208调用的各种行动以针对服务状态信息212执行,所述服务状态信息由核模块208使用,以便优化服务的内容流到多个终端用户设备的传递。例如,图6示出核模块208将使用方法cm_core.create.flow(flowname)612创建用于状态信息212的流对象,其中“flowname”是由核模块208从消息300获得的流名称参数610。行动部分606也指示核模块208将使用方法cm_core.flow_add_session(flowname,session)614添加会话到状态信息212,其中“session”是由核模块208从消息300获得的会话参数608。行动部分606还指示核模块208将使用方法cm_core.flow_set_session_role()606分配角色(例如,初级或次级)给与请求有关的请求者设备。其他行动也可包括在服务规则600中。
核模块208利用参数和行动来创建、更新并维护被核模块208使用以执行内容流传递优化的服务状态信息212。服务状态信息212包括多个对象或数据结构,诸如队列、表、列表等,其代表基于冗余被优化的个别服务。图7示出了基于图6的服务规则600由核模块208创建的服务状态信息700的一个例子。服务状态信息700包括服务对象702,当接收到用于服务的第一个请求且将对该服务执行优化时,该服务对象702由核模块208创建。随后,当接收到与该服务有关的额外请求和响应时,用于该服务的该服务对象(包括任何相关对象)被更新。
例如,当代理模块202接收到来自请求者设备的、对于由优化注册的给定服务的第一个请求(或请求/响应对)时,核模块208创建服务对象702,如图7所示。在该例子中,请求的服务是“Service1”,诸如直播视频服务、音频流服务或电影流服务。服务对象702表示针对冗余被优化的单个服务(例如Service1)。服务对象702由唯一ID串(诸如与服务有关的唯一标识符704)标识。在图7示出的例子中,该唯一标识符是“Service1”,其可从请求300或相关服务规则600获得。
一服务与多个会话有关,每个接收/请求该服务的请求者设备(即,下游客户机)一个服务。一服务也与一个或多个流有关,流是由服务提供的、可被一个或多个终端用户设备消费的唯一内容流。一服务也与一内容服务提供者(即,上游服务器)有关,该内容服务提供者在内容流中提供该服务。因此,连接核模块208使用在服务规则600中识别的行动创建用于这些实体中的每个实体的对象。例如,图7示出了服务对象702包括上游服务器对象706、流对象708、会话对象710和下游客户机(请求者)对象712。这些对象可被包括在服务对象本身中,或可被链接到服务对象。
上游服务器对象706表示提供由服务对象702表示的服务的内容服务提供者(服务器)的状态。上游服务器对象706中的信息唯一地标识内容服务提供者。例如,图7示出上游服务器对象706包括条目714,其标识内容服务提供者Srvc_Prvdr_1.com,以及另一个条目716,其包括Srvc_Prvdr_1.com的网际协议(IP)地址。上游服务器对象706也可包括与到/来自服务提供者的连接有关的端口号。在该实施例中,当代理模块接收到来自内容服务提供者的响应时(或当从请求者设备接收到请求时),上游服务器对象706由核模块创建。
流对象708代表由一个或多个客户机消费的服务的唯一内容流。当会话采取行动以帮助内容流时,核模块208使用服务规则600创建(或更新)流对象708。例如,服务规则600包括将由核模块执行以创建流对象的方法612,如上所讨论的。基于图3示出的请求和图6示出的规则600,核模块208创建具有从请求300获得的流名称“Flow1”的流对象708,该流名称唯一地标识流。由服务对象702表示的服务可提供多于一个的唯一内容流。例如,直播视频服务可提供多个频道的直播视频,其中每个通道是唯一内容流。请求者设备可在服务消息中指定服务的给定流(例如,“//srvc_prvdr_1.com/Service1/Flow1”或“//srvc_prvdr_1.com/Service1/FlowN”)。因此,可为由终端用户设备消费/接收的服务的每个唯一内容流创建单独的条目(或流对象)。可创建用于每个流的单个流对象708,或者可创建包括用于每个流的条目(或对象)的全局流对象。
会话对象710代表信息交换,在此期间请求者设备接收被请求的服务提供的内容流。当请求者设备请求服务(特定于该服务的会话被开启)时,核模块208使用服务规则600创建(或更新)会话对象710。例如,服务规则600包括将由核模块208执行以便为给定流添加会话对象的方法614,如以上所讨论的。基于图3示出的请求300,核模块208在流对象708中创建具有从请求300获得的会话ID名称“SessionID1”的条目722(或单独的会话对象)。会话ID名称唯一地标识与请求服务的请求者有关的会话。因为该会话与流“Flow1”有关,核模块将该会话对象条目722链接(如箭头所表示的)到用于Flow1的流对象条目718。诸如指针的任何链接机制可被用于将这两个对象条目连接起来。多个请求者设备可请求相同的服务,且核模块208为每个请求服务的请求者设备创建单独的会话对象条目。例如,图7示出额外的条目724和726已被添加到会话对象710。可创建用于每个会话的单个会话对象710,或可创建包括用于每个会话的条目(或对象)的全局会话对象710。
下游客户机对象712表示由连接管理器122为由服务对象702表示的服务管理的每个请求者设备的状态。例如,图7示出下游客户机对象712包括标识END_USER_DEVICE1(EUD1)的条目728,和包括EUD1的网际协议(IP)地址的另一个条目730。下游客户机对象712也可包括与到/来自请求者设备的连接有关的端口号。下游客户机对象712中的信息唯一地标识请求者设备。下游客户机对象712也包括角色条目732,其指示请求者设备针对给定内容流(流)的角色。
在该实施例中,请求给定服务的第一个请求者设备被称为初级客户机。请求相同服务的每个随后的请求者设备被称为次级客户机。可创建用于每个请求者设备的单个下游客户机对象712,或可创建全局下游客户机对象712,其包括用于每个请求者设备的条目(或对象)。随着内容流传递的进行,可发生任意事件(例如,初级客户机或次级客户机可退出)。而且,任一种类型的客户机可请求改变为另一种内容流,或可请求全新的服务。任何和所有这些事件是以自动和透明的方式经由服务规则而管理的。
在任何给定时刻,多个服务对象可以是活动的,多个客户机对象可以是活动的,且多个下游客户机对象和上游服务器对象可以是活动的,这些对象都参与内容流的传递的优化并在其中合作。多个服务对象的同时、并发操作被称为是多租户。这使得能够使用用于内容传递的不同服务的优化的共同的连接管理器元件。
通过复制用于初级客户机的、作为请求的服务的一部分被接收的内容流,核模块208优化了服务,并发送复制的流到每一个次级客户机。这允许内容服务器102使用单个连接/链路,通过该连接/链路可将给定流(内容流)传递到多个请求者设备。核模块208使用图7示出的服务状态信息700来识别由请求者设备做出的请求中的冗余以执行优化。
图8是示出根据本发明的一个实施例由连接管理器122执行的请求服务的内容流的优化的事务图。连接管理器122在T1从第一请求者设备112(EUD1)接收用于服务Service1的第一请求。在图3中示出该请求的例子。连接管理器122在T2识别与该请求有关的通信协议。在该例子中连接管理器122确定请求消息是HTTP请求消息。连接管理器122在T3基于一个或多个基本规则分析请求消息,以确定请求的内容的传递是否将被优化。例如,连接管理器122分析请求消息以识别请求的流服务和/或与其有关的内容服务提供者。连接管理器122随后确定媒体流服务和/或内容服务提供者是否被注册用于优化。
在该例子中,连接管理器122确定对于由请求的服务提供的内容流的传递将执行优化。连接管理器122在T4分析图7的服务状态信息700以确定是否已经存在用于请求的服务Service1的服务对象。连接管理器122确定不存在用于Service1的服务对象并继续进行以在T5创建新服务对象702。由于先前不存在用于Service1的服务对象,连接管理器122确定这是用于Service1的第一个请求。
如以上所解释的,连接管理器122也创建具有其相应信息的流对象708、会话对象710、下游客户机对象712以及可选地上游服务器对象706。例如,图7示出EUD1是初级客户机,因为它是请求Service1的第一个设备。图7也示出EUD1与会话Session1有关,该会话已被建立以接收Service1的Flow1。连接管理器122在T6将请求消息传递到内容服务器102。内容服务器102在T7处理请求并发送响应回EUD1,该响应由连接管理器122拦截。
连接管理器122在时间T2、T3、T4和T5对响应消息执行类似操作。例如,连接管理器122分析响应消息以识别其协议。随后,基于识别的协议,连接管理器122执行用于该协议的特定分析操作,以识别由一个或多个基本规则和/或服务规则所要求的响应消息中的信息。在一个实施例中,连接管理器122利用从响应消息获得的信息和规则来识别服务状态信息700中的相关服务对象702,并创建用于内容服务提供者的上游服务器对象706(如果尚未被创建的话)。图7示出上游服务对象706已被创建以用于服务提供者Srvc_Prvdr_1.com,其标识与由内容服务器102传递的服务有关的服务提供者以及服务提供者的IP地址。当从终端用户设备EUD1接收到请求消息时,也可创建上游服务器对象706(或上游服务器对象的一部分)。
基于从响应消息获得的信息和相关规则,连接管理器122确定响应与Service1的Flow1有关并分析服务状态信息700。连接管理器122基于状态信息700确定EUD1当前是请求了Service1的Flow1的唯一客户机。连接管理器122在T8发送来自Service1的内容流到EUD1。连接管理器122也捕获内容流队列中的Flow1。连接管理器122在T10从第二用户设备(EUD2)接收对于Service的第二请求。连接管理器122对该请求执行类似的操作。具体地,连接管理器122确定EUD2正请求接收Service1的Flow1。连接管理器122还确定已存在用于Service1的服务对象。因此,连接管理器创建/添加用于EUD2的下游客户机对象条目730以及会话对象条目724。由于已存在用于Flow1的流对象条目718,连接管理器122将Flow1对象条目718链接到与EUD2有关的会话对象条目724,如图7的箭头所示。
基于从接收自EUD2的请求所分析的信息、基本规则、服务规则和状态信息700,连接管理器122还确定从EUD2接收的请求是冗余请求。换句话说,连接管理器122确定至少一个其他请求者设备,EUD1,当前正接收由EUD3请求的Service1的内容流Flow1。连接管理器122在与EUD2有关的下游客户机对象条目730中分配次级角色给EUD2,并优化Flow1到EUD2的传递。在该例子中,连接管理器122在T11复制用于EUD1的从内容服务器102接收的Service1的内容流Flow1。如果Flow1在内容流队列中被维护,连接管理器122可从内容队列中本地复制Flow1。连接管理器122可随后在T12发送该复制的内容流到EUD2。该优化阻止来自EUD2的请求被传递到内容服务器102,这将产生与EUD2的单独链路。因此,仅需要由内容服务器102建立单个链路/连接,以用于将Flow1传递到多个用户。这节约了内容服务器102处以及内容服务器102和包括连接管理器122的网络节点之间的计算和带宽资源,同时仍然在请求者设备处提供了满意的用户体验。
图8也示出在T13由连接管理器122接收来自第三请求者设备118(EUDN)的第三请求。在该例子中,EUDN请求来自Service1的FlowN。连接管理器122对该请求执行类似操作。具体地,连接管理器122确定EUDN正请求与EUD1和EUD2相同的服务,但也请求来自Service1的不同的内容流,FlowN。因此,由于已存在用于Service1的服务对象702,连接管理器122在状态信息700中添加用于EUDN的合适的对象条目。连接管理器122分配初级角色给EUDN,因为它是第一个请求Service1的FlowN的客户机,如在图7的EUDN的下游客户机对象条目734中所示出的。由于连接管理器122确定这不是冗余请求,连接管理器122在T14将该请求传递给内容服务器102。内容服务器102在T15处理请求并发送响应到EUDN,该响应由连接管理器122拦截。基于状态信息700,连接管理器122确定EUDN当前是请求了Service1的FlowN的唯一客户机。连接管理器122在T16发送来自Service1的内容流FlowN到EUND。
在一些实施例中,只要先前已请求了相同的服务,对该服务的不同内容流的请求可被认为是冗余的,而不考虑请求的内容流/流。在这样的实施例中,连接管理器122可通过单个链路从流服务中接收多个内容流。因此,连接管理器122可从与内容服务器102建立的用于单个服务的单个链路捕获不同的内容流/流,并执行优化步骤。
图9和10是示出根据本发明的一个实施例的媒体流服务的传递的优化的操作流程图。连接管理器122在步骤902拦截/接收新消息。连接管理器122在步骤904确定请求的通信协议是否被支持。如果通信协议不被支持,连接管理器122在步骤906执行一个或多个透明操作,诸如将消息传递到内容服务器102(或请求者设备112)。控制流随后在步骤908退出。如果通信协议被支持,连接管理器122在步骤910应用一个或多个基本规则到消息。
连接管理器122随后在步骤912确定对于与消息有关的媒体流服务,传递优化是否被使能。如果传递优化未被使能,连接管理器122在步骤914执行一个或多个透明操作,诸如将消息传递到内容服务器102(或请求者设备112)。随后在步骤916控制流退出。如果传递优化被使能,连接控制流到图10的入口点A。对每个被注册用于传递优化的服务(多租户)执行图10示出的步骤。
在步骤1002,连接管理器122应用/执行与相关于消息的特定媒体流服务有关的一个或多个服务规则。在步骤1004,连接管理器122捕获信息以创建服务状态信息212,诸如会话、流和角色信息。在步骤1006,连接管理器122确定接收到的消息是否是响应或请求消息。如果接收到的消息是响应消息,在步骤1008,连接管理器122应用用于与消息有关的媒体流服务的合适的响应服务规则。由于优化被使能,连接管理器122仅从内容服务器102接收用于媒体流服务的第一请求者的响应,因为连接管理器122不传递用于媒体流服务的冗余请求到内容服务器102。因此,在步骤1010,连接管理器122确定请求媒体流服务的请求者设备112是初级客户机。连接管理器122捕获来自内容服务器102的内容流/流到初级请求者设备112,并在步骤1012将该流存储在内容流队列中。随后在步骤1014,连接管理器122从该内容流队列来服务于媒体流服务的任何请求者(次级客户机)。流随后返回到步骤1006。
如果接收的消息是来自请求者设备112的请求,在步骤1016,连接管理器122应用用于与该消息有关的媒体流服务的合适的请求服务规则。随后在步骤1018,连接管理器122确定请求者设备112的角色。如果请求者设备112是初级客户机,在步骤1020,连接管理器122确定请求类型。如以上所讨论的,请求可以针对“推送”媒体流服务,其中不要求请求者设备请求内容,因为内容被推送到设备,或者针对“拉取”媒体流服务,其中要求请求者设备发送显式的内容请求到服务。为了例示的目的,图10中被请求的服务类型是“拉取”媒体流服务。因此,连接管理器122确定请求是内容请求或非内容请求,非内容请求标识请求的服务、请求的内容流/流等。
如果连接管理器122确定初级客户机已发送内容请求,在步骤1022连接管理器122转发请求到内容服务器102。控制流随后返回到步骤1006。如果连接管理器122确定初级客户机已发送非内容请求,在步骤1024,连接管理器122从请求捕获验证信息。在步骤1026,连接管理器创建内容流队列状态(例如,流对象)。在步骤1028,连接管理器122还跟踪状态/角色改变。例如,在步骤1030,初级客户点可变成次级客户机。在步骤1032,初级客户点也可离开服务或内容流/流或与其断开。如果这发生,分别在步骤1034和1036,连接管理器122选择新的初级客户机并将初级角色转移给选择的客户机。该跟踪信息在服务状态信息212中维护。控制流随后在步骤1038退出。
返回到步骤1018,如果连接管理器122确定请求者设备是次级客户机,在步骤1040,连接管理器122也确定请求类型。如果请求类型是内容请求,在步骤1042,连接管理器122提供在流/流队列中已被捕获的内容流。换句话说,连接管理器122复制被初级客户机接收的内容流/流并将该复制的内容流发送到次级客户机。控制流随后返回到步骤1006。如果请求是非内容请求,在步骤1044连接管理器122跟踪与该次级客户机有关的状态/角色改变。在步骤1046,如果次级客户机离开服务或内容流/流或者从服务或内容流/流断开,控制流退出。如果次级客户机变成初级客户机,则控制流返回到步骤1006。
图11是示出根据本发明另一个实施例的媒体流服务的传递优化的操作流程图。在步骤1102,连接管理器122拦截来自第一客户机设备的、对于可从至少一个内容服务提供者获得的媒体流服务的请求。在步骤1104,基于特定于媒体流服务的至少一个服务规则,连接管理器122确定媒体流服务是否被注册用于传递优化。在步骤1106,响应于媒体流服务被注册,连接管理器122确定第二请求者设备当前是否正在从内容服务提供者接收媒体流服务。在步骤1108,响应于媒体流服务当前正被接收,连接管理器122通过复制媒体流服务以便传递到第一请求者设备,来执行媒体流服务的传递优化。在步骤1110,连接管理器122发送复制的媒体流服务到第一请求者设备。控制流在步骤1112退出。
图12示出在本发明的实施例中使用的示例性信息处理系统1202的示意图。信息处理系统1202只是合适的系统的一个例子,且不旨在限制以上公开的本发明的实施例的使用范围或功能。示例性信息处理系统1202可实施和/或执行以上阐述的任何功能。
信息处理系统1202可以是网络节点/元件,诸如(但不限于)终端网络节点108和110、边缘网络元件106、个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上型设备、平板计算设备、多处理器系统、微处理器系统、机顶盒、可编程消费电子设备、网络PC、小型计算机系统、大型计算机系统、分布式云计算系统等。
如图12所示,信息处理系统1202是通用计算设备的形式。信息处理系统1202的组件可包括但不限于一个或多个处理器或处理单元1204、系统存储器1206、以及耦合包括系统存储器1206的各种系统组件到处理器1204的总线1208。
总线1208代表一个或多个任何若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或使用多个总线架构中的任何一个的局部总线。作为示例而不是限制,这样的总线包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强的ISA(EISA)总线、视频电子设备标准协会(VESA)局部总线以及外围组件互联(PCI)总线。
信息处理系统1202典型地包括多种计算机系统可读介质。这样的介质可以是可由信息处理系统1202访问的任何可获得的介质,且其包括易失性和非易失性介质、可移除和不可移除介质。
在一个实施例中,系统存储器1206包括连接管理器122及其组件、内容服务提供者信息210、服务状态信息212以及规则库214和规则216。这些一个或多个组件也可被实施在硬件中。系统存储器1206可包括易失性存储器形式的计算机系统可读存储介质,诸如随机存取存储器(RAM)1210和/或高速缓存存储器1212。信息处理系统1202还可包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可提供存储系统1214,用于从诸如一个或多个固态盘和/或磁介质(典型地被称为“硬盘驱动器”)的不可移除或可移除、非易失性介质读取并向其写入。可提供用于从可移除非易失性磁盘(例如“软盘”)读取并向其写入的磁盘驱动器,以及用于从可移除非易失性光盘(诸如CD-ROM、DVD-ROM或其他光介质)读取并向其写入的光盘驱动器。在这些例子中,通过一个或多个数据介质接口,每个可被连接到总线1208。存储器1206可包括具有一组程序模块的至少一个程序产品,所述程序模块被配置为执行本发明的实施例的功能。
作为示例而非限制,具有一组程序模块1218的程序/实用工具1216,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,可被存储在存储器1206中。操作系统、一个或多个应用程序、其他程序模块和程序数据的每个或其某个组合,可包括网络环境的实施方式。程序模块1218一般地执行本发明的实施例的功能和/或方法。
信息处理系统1202也可与诸如键盘、指点设备、显示器1222等的一个或多个外部设备通信;使得用户与信息处理系统1202交互的一个或多个设备;以及/或使得信息处理系统1202与一个或多个其他计算设备通信的任何设备(例如网卡、调制解调器等)。这样的通信可经由I/O接口1224发生。而且,信息处理系统1202可经由网络适配器1226与一个或多个网络通信,所述网络诸如局域网(LAN)、一般广域网(WAN)和/或公共网络(例如因特网)。如图所示,网络适配器1226经由总线1208与信息处理系统1202的其他组件通信。其他硬件和/或软件组件也可与信息处理器系统1202结合使用。例子包括但不限于:微代码、设备驱动器、冗余处理单元、外部盘驱动器阵列、RAID系统、磁带驱动器以及数据归档存储系统。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上参照本发明的各实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(articleofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
此处使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有清楚的指示。还将理解,术语“包括”和/或“包含”,当在本说明中使用时,明确说明存在所陈述的特点、整体、步骤、操作、元件和/或组件,但不排除一个或多个其他的特点、整体、步骤、操作、元件、组件和/或其组的存在或添加。
本发明的以上描述是为了说明和描述的目的给出的,且并非旨在是穷尽性的,或将本发明限于所公开的形式。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。实施例的选择和描述是为了最好地解释本发明的原理和实际应用,并使本技术领域的其他普通技术人员能理解本发明的具有适于所考虑的特定使用的各种修改的各种实施例。

Claims (14)

1.一种用于优化网络中内容传递的方法,所述网络包括通信地耦合在多个终端用户设备和至少一个内容服务提供者之间的网络节点,所述方法包括:
在网络节点处拦截来自第一请求者设备的、对于可从内容服务提供者获得的媒体流服务的请求;
由网络节点基于特定于媒体流服务的至少一个服务规则,确定媒体流服务是否被注册用于传递优化;
响应于确定媒体流服务被注册,由网络节点确定第二请求者设备是否当前正从内容服务提供者接收媒体流服务;
响应于确定当前正接收媒体流服务,通过复制媒体流服务以便传递到第一请求者设备来执行媒体流服务的传递优化;
从网络节点发送复制的媒体流服务到第一请求者设备;
从多个服务状态信息识别表示媒体流服务的服务对象,所述服务对象至少包括:流对象、第一会话对象以及第一请求者对象,其中,该流对象包括所述媒体流服务的唯一的内容流的标识符,该第一会话对象识别为该第二请求者设备建立的第一会话以接收该唯一的内容流,该第一请求者对象包括第二请求者设备的唯一的标识符以及第二请求者设备是流媒体服务的第一请求者还是流媒体服务的随后的请求者的指示;
添加与第一请求者设备有关的第二请求者对象到服务对象,所述第二请求者对象包括第一请求者设备的唯一标识符以及第一请求者设备请求在第二请求者设备之后的流媒体服务的指示;以及
添加与第一请求者设备有关的第二会话对象到服务对象,所述第二会话对象识别为所述第一请求者设备建立的第二会话以接收该流对象中识别的该唯一的内容流。
2.如权利要求1所述的方法,其中所述第二请求者设备当前正通过将内容服务提供者和第二请求者设备连接的第一通信链路而接收媒体流服务,且
所述复制的媒体流服务通过连接网络节点和第一请求者设备的第二通信链路而被发送到第一请求者设备。
3.如权利要求1所述的方法,其中确定媒体流服务是否被注册包括:
识别所述至少一个服务规则中的至少一个条件;
从所述请求获取至少一个值;
确定所述值是否满足所述条件;
响应于确定所述值满足所述至少一个条件,确定所述媒体流服务是否被注册用于传递优化;以及
响应于确定所述值未满足所述至少一个条件,确定所述媒体流没有被注册用于传递优化。
4.如权利要求3所述的方法,其中所述至少一个条件是所要求的服务标识符和所要求的内容服务提供者中的至少一个。
5.如权利要求1所述的方法,其中确定第二请求者设备当前是否正接收媒体流数据包括:
分析一组服务状态信息;
确定该组服务状态信息是否包括表示媒体流服务的服务对象;
响应于确定该组服务状态信息包括服务对象,确定所述第二请求者设备当前是否正接收媒体流服务;以及
响应于确定该组服务状态信息不包括服务对象,确定所述第二请求者设备当前没有接收媒体流服务。
6.如权利要求5所述的方法,其中确定所述第二请求者设备当前正接收媒体流服务还包括确定所述服务对象是否包括请求者对象,该请求者对象将所述第二请求者设备识别为所述媒体流服务的第一个请求者。
7.如权利要求1所述的方法,还包括:
响应于确定所述媒体流服务未被注册,将来自网络节点的请求传递到所述内容服务提供者。
8.如权利要求1所述的方法,还包括:
在网络节点处拦截来自第三请求者设备的、对于来自内容服务提供者的第二媒体流服务的第二请求;
由所述网络节点确定所述第二媒体流服务是否被注册用于传递优化;
响应于确定所述第二媒体流服务被注册,由网络节点确定第四请求者设备当前是否正从内容服务提供者接收第二媒体流服务;
响应于确定第二媒体流服务当前被接收,通过复制第二媒体流服务以便传递到第三请求者设备来执行第二媒体流服务的优化传递;以及
从网络节点将复制的第二媒体流服务发送到第三请求者设备。
9.一种用于优化网络中内容传递的信息处理系统,所述信息处理系统包括:
存储器;
通信地耦合到所述存储器的处理器;以及
通信地耦合到所述处理器和存储器的连接管理器;
其中所述连接管理器被配置为执行方法,所述方法包括:
拦截来自第一请求者设备的、对于可从内容服务提供者获得的媒体流服务的请求;
基于特定于媒体流服务的至少一个服务规则,确定媒体流服务是否被注册用于传递优化;
响应于确定媒体流服务被注册,确定第二请求者设备是否当前正在从内容服务提供者接收媒体流服务;
响应于确定当前正接收媒体流服务,通过复制媒体流服务以便传递到第一请求者设备来执行媒体流服务的传递优化;
发送所述复制的媒体流服务到所述第一请求者设备;
从多个服务状态信息识别表示媒体流服务的服务对象,所述服务对象至少包括:流对象、第一会话对象以及第一请求者对象,其中,该流对象包括所述媒体流服务的唯一的内容流的标识符,该第一会话对象识别为该第二请求者设备建立的第一会话以接收该唯一的内容流,该第一请求者对象包括第二请求者设备的唯一的标识符以及第二请求者设备是流媒体服务的第一请求者还是流媒体服务的随后的请求者的指示;
添加与第一请求者设备有关的第二请求者对象到服务对象,所述第二请求者对象包括第一请求者设备的唯一标识符以及第一请求者设备请求在第二请求者设备之后的流媒体服务的指示;以及
添加与第一请求者设备有关的第二会话对象到服务对象,所述第二会话对象识别为所述第一请求者设备建立的第二会话以接收该流对象中识别的该唯一的内容流。
10.如权利要求9所述的信息处理系统,其中所述第二请求者设备当前正通过连接所述内容服务提供者和第二请求者设备的第一通信链路接收媒体流服务,且
所述复制的媒体流服务通过连接连接管理器和第一请求者设备的第二通信链路被发送到所述第一请求者设备。
11.如权利要求9所述的信息处理系统,其中确定所述媒体流服务是否被注册包括:
识别所述至少一个服务规则中的至少一个条件;
从所述请求获取至少一个值;
确定所述值是否满足所述条件;
响应于确定所述值满足所述至少一个条件,确定所述媒体流服务是否被注册用于传递优化;以及
响应于确定所述值未能满足所述至少一个条件,确定所述媒体流没有被注册用于传递优化。
12.如权利要求9所述的信息处理系统,其中确定所述第二请求者设备当前是否正在接收媒体流服务包括:
分析一组服务状态信息;
确定该组服务状态信息是否包括表示媒体流服务的服务对象;
响应于确定该组服务状态信息包括服务对象,确定所述第二请求者设备当前是否正在接收媒体流服务;以及
响应于确定该组服务状态信息不包括服务对象,确定所述第二请求者设备当前没有接收媒体流服务。
13.如权利要求9所述的信息处理系统,其中所述方法还包括:
响应于确定所述媒体流服务未被注册,将请求传递到所述内容服务提供者。
14.如权利要求9所述的信息处理系统,其中所述方法还包括:
拦截来自第三请求者设备的、对于来自内容服务提供者的第二媒体流服务的第二请求;
确定所述第二媒体流服务是否被注册用于传递优化;
响应于确定所述第二媒体流被注册,确定第四请求者设备当前是否正从所述内容服务提供者接收第二媒体流服务;
响应于确定所述第二媒体流服务当前正被接收,通过复制第二媒体流服务以便传递到第三请求者设备来执行第二媒体流服务的传递优化;以及
将所述复制的第二媒体流服务发送到第三请求者设备。
CN201310013174.7A 2012-03-15 2013-01-14 用于优化网络中内容传递的方法和信息处理系统 Expired - Fee Related CN103312684B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/421,371 2012-03-15
US13/421,371 US8825811B2 (en) 2012-03-15 2012-03-15 Connection management and optimization for services delivered over networks

Publications (2)

Publication Number Publication Date
CN103312684A CN103312684A (zh) 2013-09-18
CN103312684B true CN103312684B (zh) 2016-03-16

Family

ID=49137470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310013174.7A Expired - Fee Related CN103312684B (zh) 2012-03-15 2013-01-14 用于优化网络中内容传递的方法和信息处理系统

Country Status (2)

Country Link
US (1) US8825811B2 (zh)
CN (1) CN103312684B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103748943A (zh) * 2012-08-17 2014-04-23 华为技术有限公司 用户设备配对处理方法、网络侧设备和用户设备
US11710151B2 (en) * 2013-04-23 2023-07-25 Brightcove Inc. Live ad processing engine service
WO2016078072A1 (zh) * 2014-11-21 2016-05-26 华为技术有限公司 一种实现业务优化的方法及系统
WO2016172501A1 (en) * 2015-04-24 2016-10-27 Shoretel, Inc. Provisioning hybrid services
CN106302207A (zh) * 2015-05-29 2017-01-04 株式会社日立制作所 流量管理装置以及流量管理方法
WO2020131685A1 (en) 2018-12-21 2020-06-25 Intuitive Surgical Operations, Inc. Surgical instruments with switches for deactivating and/or identifying stapler cartridges
WO2020223414A1 (en) 2019-04-30 2020-11-05 Phantom Auto Inc. Low latency wireless communication system for teleoperated vehicle environments
WO2020247557A1 (en) 2019-06-04 2020-12-10 Phantom Auto Inc. Platform for redundant wireless communications optimization
EP4142234B1 (en) * 2020-05-28 2025-04-30 Siemens Aktiengesellschaft Communication interworking between a client-server architecture and a publish-subscribe system
US12106082B2 (en) 2021-05-20 2024-10-01 International Business Machines Corporation Generative experiments for application deployment in 5G networks

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
MXPA01011903A (es) * 1999-05-21 2002-06-21 Gen Instrument Corp Interfaz de programacion para un software del sistema nucleo para descodificador de television.
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US8463839B2 (en) * 2000-03-28 2013-06-11 Cybernet Systems Corporation Distributed computing environment
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
US7133922B1 (en) 2000-08-07 2006-11-07 The Hong Kong University Of Science And Technology Method and apparatus for streaming of data
BR0309408A (pt) * 2002-04-22 2005-02-01 Nokia Corp Método e sistema de mìdia para prover um ou mais itens de contéudo para ao menos um terminal do usuário do sistema de rádio, e, terminal do usuário
EP1546822A4 (en) * 2002-09-18 2008-07-02 Netezza Corp ASYMMETRIC DATA STREAMING ARCHITECTURE WITH AN AUTONOMOUS AND ASYNCHRONOUS JOB PROCESSING UNIT
US7467400B1 (en) * 2003-02-14 2008-12-16 S2 Security Corporation Integrated security system having network enabled access control and interface devices
US20050076099A1 (en) * 2003-10-03 2005-04-07 Nortel Networks Limited Method and apparatus for live streaming media replication in a communication network
US7430222B2 (en) 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US8843978B2 (en) * 2004-06-29 2014-09-23 Time Warner Cable Enterprises Llc Method and apparatus for network bandwidth allocation
US20060067260A1 (en) * 2004-09-30 2006-03-30 Timo Tokkonen Updating associating data in a media device
US7362776B2 (en) 2004-11-01 2008-04-22 Cisco Technology, Inc. Method for multicast load balancing in wireless LANs
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US20060291412A1 (en) * 2005-06-24 2006-12-28 Naqvi Shamim A Associated device discovery in IMS networks
US20070107025A1 (en) 2005-11-10 2007-05-10 Zhi Li System and method for placement of servers in an internet protocol television network
JP2007173987A (ja) 2005-12-19 2007-07-05 Canon Inc マルチメディアデータ送受信システム、及び装置、又はプログラム
US7916755B2 (en) * 2006-02-27 2011-03-29 Time Warner Cable Inc. Methods and apparatus for selecting digital coding/decoding technology for programming and data delivery
EP1892892A1 (en) 2006-08-24 2008-02-27 Nokia Siemens Networks Gmbh & Co. Kg Method and network entities for supporting MBMS service in a LTE radio communication network
US8520673B2 (en) 2006-10-23 2013-08-27 Telcordia Technologies, Inc. Method and communication device for routing unicast and multicast messages in an ad-hoc wireless network
EP1921824A1 (en) 2006-11-10 2008-05-14 Thomson Licensing System and method for sending content from a server to a terminal
EP2026491A1 (en) 2007-08-13 2009-02-18 Panasonic Corporation Soft-buffer management of a re-transmission protocol for unicast and multicast transmissions
US20090070844A1 (en) 2007-09-10 2009-03-12 Beer John C Video over ip distribution system and method
US8340011B2 (en) 2008-05-07 2012-12-25 Qualcomm Incorporated Methods and apparatuses for increasing data transmission efficiency in a broadcast network
US9516375B2 (en) 2008-12-02 2016-12-06 Orckit Ip, Llc Edge optimized transrating system
US8904014B2 (en) * 2012-03-15 2014-12-02 International Business Machines Corporation Content delivery mechanisms for multicast communication

Also Published As

Publication number Publication date
US20130246577A1 (en) 2013-09-19
US8825811B2 (en) 2014-09-02
CN103312684A (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
CN103312684B (zh) 用于优化网络中内容传递的方法和信息处理系统
US20240272969A1 (en) Method and system for processing a stream of incoming messages sent from a specific input message source and validating each incoming message of that stream before sending them to a specific target system
CN112788074B (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
US9559992B2 (en) System and method for updating information in an instant messaging application
US20150058407A1 (en) Systems, methods, and apparatuses for implementing the simultaneous display of multiple browser client cursors at each browser client common to a shared browsing session
US10565177B2 (en) Software defined entities for digital service transactions
US10361966B2 (en) System and method for actor oriented architecture for digital service transactions based on common data structures
US11800201B2 (en) Method and apparatus for outputting information
US20080065994A1 (en) Systems and methods for adapting service interface behaviors
CN101193077A (zh) 用于订阅匹配的方法和系统
US20160154685A1 (en) System and method of providing inter-application communications
CN104169901A (zh) 用于多播通信的内容传送机制
US20170168802A1 (en) Delegating database queries
KR101719926B1 (ko) 데이터 수집 api를 통해 저장된 이질적인 데이터 간 변환 시스템 및 방법
US9021109B1 (en) Controlling requests through message headers
US20190324763A1 (en) Insertion of custom activities in an orchestrated application suite
US20090132582A1 (en) Processor-server hybrid system for processing data
CN109684450A (zh) 一种基于语义化标识的工业网络数据分发服务系统及方法
CN108073638B (zh) 数据诊断方法及装置
CN115866069A (zh) 远程调用请求的处理方法及系统、电子设备
Kattepur et al. Analysis of timing constraints in heterogeneous middleware interactions
CN116521383A (zh) 多媒体数据检测方法、装置、设备和存储介质
CN113627998B (zh) 订单数据处理方法、装置、电子设备和计算机可读介质
CN115378792B (zh) 告警处理方法、装置及存储介质
CN115208764B (zh) 一种基于资源池的请求响应方法、装置及其介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160316

Termination date: 20210114