CN103069444A - 基于工作流的会话管理 - Google Patents
基于工作流的会话管理 Download PDFInfo
- Publication number
- CN103069444A CN103069444A CN2011800155331A CN201180015533A CN103069444A CN 103069444 A CN103069444 A CN 103069444A CN 2011800155331 A CN2011800155331 A CN 2011800155331A CN 201180015533 A CN201180015533 A CN 201180015533A CN 103069444 A CN103069444 A CN 103069444A
- Authority
- CN
- China
- Prior art keywords
- workflow
- node
- service
- sequence
- data file
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2225—Local VOD servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/241—Operating system [OS] processes, e.g. server setup
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Game Theory and Decision Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
这里公开的技术包括***和方法,其提供用于内容递送***的基于工作流的会话管理器或工作流引擎,例如,用于递送点播视频、流传输音频、流传输视频等等。这些技术增加了在视频递送***中部署新的特征和服务的速度和灵活性。这些技术包括提供面向服务和基于工作流的方法的会话管理模型。作为面向服务的方法,每个功能会话管理步骤可以被表示为业务服务。作为基于工作流的解决方案,将被执行的步骤序列可被定义为数据。定义为数据后,步骤(节点、任务)随后可被创建并且利用图形编辑器来改变。可以通过定义新服务的动作并将节点添加到给定会话管理工作流序列中来添加新服务。本技术包括实时地发起会话管理的工作流引擎。
Description
背景技术
本公开涉及视频递送***的会话管理(session management)。随着网络基础设施的持续演变以支持视频的网络传输或者诸如有线电视、视频点播(VOD)、交换式数字视频(SDV)和视频文件下载之类的其它内容服务的高需求,这些服务持续激增。
许多网络基础设施包括用于提供视频服务的头端、用于递送视频服务的应用、以及将内容供应给机顶盒或其它用户设备(通常安装在人们家中)以用于将服务呈现给用户(例如,按次计费电影)的视频服务器。这些网络通常将机顶盒布置成服务组,服务组是由发源于头端并终止于服务组的一组共同连接所服务的机顶盒的集合。通常,每个机顶盒在地理上被布置为接近该组中的其它机顶盒,并且由物理同轴电缆(同轴电缆)限定的连接将该分支外伸至各个服务组。机顶盒已演变为分别可寻址的网络设备,从而使得向客户端设备提供更大控制粒度的视频点播、交换式数字视频和其它选择性观看技术成为可能。
其它网络基础设施包括数字内容的基于因特网协议(IP)的视频递送。在基于IP的视频递送中,提供商通常通过用于提供视频递送服务的多个服务器来运营。根据该技术,客户端可以从流传输服务器请求基于IP的视频以便在诸如电视机、计算机、移动设备或者适于观看或存储基于IP的视频内容的其它设备之类的客户端设备上观看视频。通常,流传输服务器通过将所请求内容例如经由客户家庭网络中的电缆调制解调器、因特网连接等流传输给客户端来对请求进行服务。
视频递送***通常使用客户端与服务器之间的通信会话(和/或会话管理器)来管理诸如点播内容之类的内容的选择性内容递送。通常当接收到来自客户端设备的对于特定内容的请求时,给定会话被发起。会话管理常常包括认证、授权、将内容扩展为播放列表、以及为给定会话的持续期间预留网络/***资产。典型的传统会话管理器应用是实现这些VOD特征并管理诸如从视频服务器到机顶盒的视频数据之类的内容的递送的单个整体应用。传统的VOD会话管理器应用被安装在分开的各头端中。
发明内容
用于内容递送的会话管理的传统应用,诸如视频点播会话管理应用,具有多种缺陷。绝大多数***运营商(MSO),即,多个有线电视***的运营商,已在局部范围中部署了视频点播(VOD)方案,即是说,相关联的设备和软件在地理上被安装在订户所在的地方。例如,如果两个城市是不同的服务区,则用于每个服务区的头端将具有其自己的如下实例:管理内容的分发和递送的后台(其包括会话管理器);将内容递送给边缘设备的(一个或多个)视频服务器;以及将内容递送给订户的(一个或多个)边缘设备。在图1中表示出了该方法。中等大小MSO可以具有几十个局部部署,而大的MSO可以具有复制这些***之间的成百上千个局部部署。会话管理器应用是安装在每个局部部署内的单个整体应用。MSO包含的服务区越多,升级每个位置处的会话管理器应用所需的时间、费用和复杂度越大。这是因为升级MSO的总体视频递送***需要在物理上更新每个头端,例如,通过将技术人员送到每个头端以安装新的软件和/或硬件。由于每个头端位置包括该会话管理器的单独的实例(例如,可执行的),因此升级会话管理器的特征要求将新的软件带到该位置、进行安装,然后让旧版本停止运行(这可能临时中断服务)并且必须启动新的版本。
该VOD部署方法针对局部部署产生了若干挑战。一个问题是,设备和会话管理软件被局部化到每个头端。另一问题是,被局部化的设备具有有限的能力,这随后限制了订户基数。会话管理服务的扩展是昂贵的且费时的以便执行升级,这是因为在分布式位置中存在必须进行修改的软件和硬件的大量实例。此外,这些会话管理器是整体的会话管理应用,其中,单个厂商利用用以在各个组件之间进行通信的封闭式专用接口将***组件绑定在给定部署中。换言之,传统VOD部署在局部化位置处使用硬连线控制逻辑,即,完成从会话建立到资源管理再到会话拆断的所有事情的单段代码,而不具有改变或修改该代码的灵活性或具有有限的灵活性。
传统VOD部署体系结构使用本质上为整体的会话管理***(例如,作为应用运行的经编译代码),并且具体地进行构建以应对该体系结构所施加的要求,特别是关于支持数目减少的订户以及支持对缩放和可靠性的有限需求。针对这些约束的设计带来了许多挑战。一个挑战是用于新的会话管理特征的长的实现时间线。例如,推出新的服务可能要花六个月到两年的时间来完成。由于***是整体的,因此升级这些***是困难且费时的。软件升级一般意味着替换整个***,并且硬件升级(诸如添加更多存储装置)可能意味着拆下整个***。此外,存在有限的回弹能力。由于有限的订户基数,因此采用缩减的可用性方案曾是可接受的,从而允许厂商实现针对回弹性的1+1方法。利用1+1回弹性,会话管理器对被部署在主动-主动或主动-被动操作模式中。又一挑战是封闭的接口。构建整体***曾允许厂商使用封闭接口,这导致难以集成新的组件并且使得几乎不可能具有由不同厂商提供的“即插即用”服务。
许多视频递送提供商、MSO、有线电视运营商和其它VOD提供商希望例如通过从数千个标题(title)移到成百上千个标题或更多标题,来将它们的体系结构更新为能够极大地扩展内容供应。另一体系结构更新是最经常经由内容递送网络(CDN)来地区化或州域化内容分发信道。例如,不是使内容在头端处本地被接收并总是呈现出,而是可以使内容在有限数目的区域或州域位置处被接收。然后可基于需求或预定义规则将内容分发到订户。结合内容的地区化或州域化,提供商还使它们的***的会话管理组件集中化。图2中表示出了会话管理功能的地区化。
会话管理器负责管理视频点播***中的会话。会话管理活动可以包括认证、授权、计费、预留网络资源等。会话管理器现在具有性能期望。例如,对视频点播选择的响应应当在非常短的时间帧内被递送给客户端应用,并且尤其是要递送给订户。该时间帧理想地在约100-200毫秒内,以使得订户无需等待较长时间来开始接收视频内容。重试可被构建到某些***交互中,包括在初始尝试失败或者被感知到要花太长时间的情况下给定用户何时重试购买一影片。这意味着会话管理器本身通常不负责重试操作。
集中化会话管理带来了另外的性能期望。大规模区域可支持上千万订户。这意味着集中化的会话管理器可以负责成千上万的并发会话,以及每秒数千个建立。为了支持这些大规模区域,会话管理***应当提供恒定可用性的服务、在***存活着而不中断到端用户的服务的同时升级***的能力、以及新服务的快速实现和部署。
这里公开的技术包括用于视频递送***的基于工作流(workflow-based)的会话管理器的***和方法。这样的技术增加了在视频递送***中部署新特征和服务的速度和灵活性。这些基于工作流的会话管理技术致力于与现有会话管理器***相关联的挑战,并且支持来自下一代(集中化)视频点播***体系结构的期望。这里描述的用于视频递送***的基于工作流的会话管理器的***和方法包括用于会话管理的新的体系结构模型。该新的会话管理模型提供了面向服务的且基于工作流的方法。作为面向服务的方法,每个功能会话管理步骤可被表示为一业务服务。这样的方法促进了服务级的竞争,这为每个服务带来了最佳解决方案,而不是如曾在捆绑式整体***中进行的***级竞争。新的功能现在可以根据服务接口来定义,并且独立于该***的其余部分来实现和测试。服务中的现有功能可以独立于该***的其余部分而被增强和测试,并且可以通过升级该服务而非整个***而被引入。
此外,会话管理服务可在不同应用中被再使用。作为基于工作流的解决方案,将要执行的一系列步骤可被定义为数据,而不是被硬编码在应用内。例如,给定的步骤序列可以以XML文件被定义,其然后可以利用图形编辑器被创建和改变。给定工作流上的每个节点(任务)表示将被调用的服务,并且传递到每个服务的数据以及从每个服务传递来的数据也可以以XML或其它数据文件被定义。将工作流定义为数据使得服务从控制流分离,从而支持多个厂商对服务的独立开发。该技术极大地提高了引入新服务的速度,因为将给定新服务引入***主要是通过更新配置文件来完成的,而无需新代码或仅需很少的新代码。然后可以通过向工作流添加新节点以及针对该节点的一组支持实施方式来完成添加新服务,而不需要修改会话管理器本身。基于工作流的会话管理也可被配置为使得任何给定节点可以基于一些预定准则,例如通过客户端IP地址、地理位置、评级等,而针对头端中的一些或所有头端选择性地被使能。因此,这样的基于工作流的会话管理***允许运营商将会话管理器应该做什么以及执行任务的顺序表达为数据来取代预编译代码。
传统工作流管理***一般包括这样的计算机***,该计算机***管理并定义组织内的一系列任务以产生最后的一个或多个结果。工作流管理***使得用户能够针对不同类型的服务、工作或处理来定义不同工作流。工作流***通常在业务管理的上下文中被使用。例如,工作流***通常被用于制造特定类型的商品、完成产品的研究和开发、在各种渠道中分发商品、提供诸如医疗服务之类的专业服务等。在项目开发的上下文中,工作流***可能自动地将设计文档从技术总监路由至生产工程师,或者在不同开发阶段之间移动设计文档。一旦给定任务被完成,传统工作流软件确保负责下一任务的个人得到通知并接收他们执行下一阶段处理所需的数据。
现在,可获得作为开放式源和专用供应两者的多种工作流框架。然而,这些传统工作流框架被构建来处理可能要花数分钟到数周来完成的各种条件和服务(包括人在循环中服务)。为了处理这些情形,工作流框架持续保持从工作流层跨越到服务层的每个边界处的工作流状态是常见的。在从服务层转变到工作流层期间加载工作流状态并且在工作流层与服务层之间使用双向异步通信也是常见的。通常通过将工作流中的每个节点当作个体事物来管理持续保持活动,以使得当给定服务出故障时,工作流的状态可以退回去。传统工作流框架的持续保持和转变活动可能是CPU密集和I/O密集型操作,从而消耗数秒或更多的时间。当在***中呈现较长以及非常长期限的服务时,该功能可以是有用的。
传统工作流***通常经由“工作流引擎”来运行。工作流引擎一般是基于软件的控制***或管理工作流的处理。工作流引擎因此被配置为通过访问活动序列来处理工作流事件/节点,并且该序列可通过数据或数据文件来定义。工作流引擎提供了用于根据预定义序列和/或预定义规则来执行并安排工作项的机制。由于工作流定义了要执行的任务序列,因此一些任务依赖于先前任务的完成,或者依赖于从先前任务生成的数据。工作流引擎还对将从给定任务(服务)生成的任何数据传递给随后执行的任务进行管理。换言之,工作流引擎接收指定动作的集合或序列的脚本。工作流引擎然后执行该脚本中指定的该序列中的那些动作,而不管该序列是连续的还是并列的。工作流引擎通常使用数据库来存储脚本的状态和在动作之间生成的数据。示例工作流引擎和***包括jBPM(JBoss业务处理管理)、Tibco BusinessWorks、iProcess Suite、Joget、Enhydra Shark、Bonita等等。
实质上,传统工作流***获取运用场景,将该运用场景打断成离散的块或任务,并且然后将这些块缝合在一起来定义运行序列。利用用于工作流***的传统方法,这些***无法被应用于实时***。什么是实时的可取决于特定应用。在内容递送和视频内容递送的上下文中,实时可以指短于大约半秒,并且应当更接近于大约100-200毫秒。例如,如果在选择了点播视频标题之后,视频递送***花了一秒或更长时间才开始播放视频,则选择VOD内容的用户可能感觉到***较慢。传统工作流***通常无法在短于一秒或者甚至在数秒中完成对工作流序列的处理。实质上,许多工作流序列花费数天或数周来完成,并且在各个阶段中涉及人类输入。这样,由于传统较长的序列完成时间,传统工作流框架(开放式源或专有的)是在未考虑运行速度的情况下被设计的。为了提供这样的期望的实时响应,传统***是整体的,即,运行经预编译的代码来提供实时结果。然而,如上面所说明的,尽管整体***是很快的,但是它们无法适当地缩放或者不能快速添加服务。实际上,传统观点对于将任何类型的面向工作流的方法应用于实时会话建立或任何实时***给出了反向教导。
这里公开的技术使用基于工作流的会话管理***,该***可以包括使用工作流引擎来处理节点(任务、事件、转变)序列。为了实现基于工作流的会话管理器的所预期的近似实时的性能,该***可以执行各个处理步骤。该***在会话建立时加载工作流的定义并且缓存这些定义。然后,该***通过检查所缓存的工作流定义来确定要执行的下一节点。会话管理器同时调用与工作流序列中的每个节点相关联的(一个或多个)服务。***不持续保持每个节点转变处的工作流状态,这是相比于传统工作流***的重大改进。因此,会话管理器可以通过提供可用于执行各个服务的线程池来支持高度并发的工作流处理,执行单个事物内部的工作流,并且当检测到任何故障时将适当的错误代码返回给端用户。这样的技术为视频递送会话管理提供了一种在工作流基础设施中具有非常低的时延和较低开销的确定性方法,从而向运营商(包括非技术运营商)提供了添加和修改服务的能力。
一个实施例包括一种会话管理器,其提供用于控制通过网络到客户端设备的视频递送的会话管理。该会话管理器从客户端设备接收访问视频内容的请求。该请求可以在服务器处被接收。例如,用户希望观看视频点播内容并且做出观看该内容的选择。会话管理器访问数据文件,该数据文件定义了要经由工作流引擎执行的工作流序列。工作流序列定义多个节点,其中每个节点标识要执行的至少一个会话管理服务。至少一个节点标识在给定的会话管理服务之间传递的数据。会话管理器将工作流序列和多个节点加载到共享存储器中,诸如非易失性存储器。会话管理器可以经由工作流引擎根据工作流序列来执行与多个节点相对应的会话管理服务。会话管理器然后可以发送指令给远程头端、流传输器或其它内容递送***,以将视频内容发送给客户端设备。
在另一实施例中,内容递送***使能将工作流序列配置用于会话管理。***经由用户接口接收选择节点的集合的输入,每个节点是数据文件,该数据文件标识会话管理器将经由工作流引擎执行的至少一个会话管理服务。***经由用户接口接收指定了工作流引擎要执行的节点序列的输入,并且随后生成定义了工作流引擎要执行的该节点序列的工作流数据文件。例如,用户通过利用图形编辑器来选择并布置节点序列。***然后创建会话管理器,该会话管理器在被执行时控制经由工作流引擎将内容递送给客户端设备。其中,工作流引擎根据来自工作流数据文件的所定义节点序列来执行会话管理服务。
在又一实施例中,内容递送***或其它适当实体将节点的集合定义为数据文件,每个节点标识将要利用会话管理器执行的至少一个服务。该***将服务的集合定义为数据文件,每个服务标识动作的集合,动作引用当被执行时提供与相应服务相对应的会话管理处理的功能。该***将工作流处理顺序定义为工作流数据文件,工作流处理顺序指示节点的集合的执行次序以便实现内容递送***的会话管理。该***然后生成控制通过网络将内容递送给客户端设备的会话管理器。该会话管理器在被执行时使用工作流引擎,工作流引擎根据工作流数据文件中定义的工作流处理顺序来提供对节点的集合的实时执行
另一实施例是实时地发起视频递送会话的实时工作流引擎。即,工作流引擎实时地处理给定数据序列(例如用于会话建立),例如以在预定时间量内完成特定任务序列。
这里的其它实施例包括用以执行上面概述且在下面详细公开的步骤和操作的软件程序。一个这样的实施例包括具有计算机存储介质(例如,非暂时性的有形计算机可读介质、分散在各地的或共处一地的存储介质、一个或多个计算机存储介质等)的计算机程序产品,计算机存储介质在其上编码有计算机程序逻辑,该计算机程序逻辑在具有处理器和相应存储器的计算机化设备中被执行时,将处理器编程来执行(或使得处理器执行)这里公开的操作。这些布置通常被提供作为软件、固件、微代码、代码数据(例如,数据结构)等,它们被布置或编码在计算机可读存储介质上,例如,光介质(例如,CD-ROM)、软盘、硬盘、一个或多个ROM或RAM或PROM芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等等。软件或固件或其它这样的配置可以被安装在计算机化设备上,以使计算机化设备执行这里说明的技术。
因此,本公开的一个特定实施例涉及包括一个或多个非暂时性计算机存储介质的计算机程序产品,计算机存储介质在其上存储有用于支持如下操作的指令,操作例如是:在服务器处接收来自客户端设备的访问视频内容的请求;访问定义了要经由工作流引擎执行的工作流序列的数据文件,工作流序列定义多个节点,每个节点标识要执行的至少一个会话管理服务,至少一个节点标识在给定会话管理服务之间传递的数据;将工作流序列和多个节点加载到共享存储器中;经由工作流引擎根据工作流序列来执行与多个节点相对应的会话管理服务;以及发送指令给远程头端以向客户端设备发送视频内容。这里描述的指令和方法当被相应的计算机设备的处理器执行时,使得处理器执行这里公开的方法。
本公开的其它实施例包括用以执行上面概述且在下面详细公开的任何方法实施例步骤和操作的软件程序。
当然,这里描述的不同步骤的讨论顺序是出于清楚起见而被呈现的。一般地,这些步骤可以以任何合适的顺序来执行。
此外,将明白,这里的***、方法、装置等的每个可以例如在处理器内或操作***内或软件应用内,或者经由非软件应用(其中人执行所有或部分操作),而完全被实施为软件程序、被实施为软件与硬件的混合,或者单独被实施为硬件。这里描述的示例实施例可以在产品和/或软件应用中来实现,例如由Beaumaris Networks,Inc.,Boxborough,MA,USA制造的产品和/或软件应用。
如上面讨论的,这里的技术很适合于用在支持视频内容递送的软件应用中。然而,应注意,这里的实施例不限于用在这些应用中并且这里讨论的技术也很适合于其它应用。
另外,虽然这里的不同特征、技术、配置等的每个是在本公开的不同地方被讨论的,但是希望各个概念可以彼此独立地或者彼此结合地来执行。因此,本发明可以以许多不同方式来实施和看待。
注意,这里的发明内容部分并不是指定每个实施例和/或递增地指定本公开或要求保护的发明的新颖方面。取而代之的是,本发明内容仅提供对不同实施例和相比于传统技术的相应新颖点的初步讨论。对于本发明和实施例的其它细节和/或可能的观点展示,读者可参考下面将进一步讨论的本公开的具体实施方式部分以及相应附图。
附图说明
将从如附图中所示的、下面对本文的优选实施例的更具体描述中清楚本发明的前面的以及其它目的、特征和优点,在附图中,相似的标号在不同视图中指代相同部分。绘图不必是成比例的,而是强调对实施例、原理和概念的图示说明。
图1是图示出内容递送***的头端中的局部化会话管理部署的示图。
图2是图示出用于内容递送***的头端的集中化会话管理部署的示图。
图3是图示出基于工作流的内容递送***的工作流组件的框图。
图4是根据这里的实施例的工作流代码的示例代码段。
图5是根据这里的实施例的工作流服务的示例代码段。
图6是根据这里的实施例的在基于QAM的内容递送***中操作的会话管理器的示例工作流的框图。
图7是根据这里的实施例的在基于IP的内容递送***中操作的会话管理器的示例工作流的框图。
图8是图示出根据这里的实施例的支持内容递送会话管理的处理示例的流程图。
图9是图示出根据这里的实施例的支持内容递送会话管理的处理示例的流程图。
图10是图示出根据这里的实施例的支持内容递送会话管理的处理示例的流程图。
图11是图示出根据这里的实施例的支持内容递送会话管理的处理示例的流程图。
图12是根据这里的实施例的在计算机/网络环境中操作的会话管理器的示例框图。
具体实施方式
这里公开的技术包括用于视频递送***的基于工作流的会话管理器的***和方法。这样的技术增加了在视频递送***中部署新特征和服务的速度和灵活性。这些基于工作流的会话管理技术致力于与现有会话管理器***相关联的挑战,并且支持来自下一代(集中化)视频点播***体系结构的期望。这里描述的用于视频递送***的基于工作流的会话管理器的***和方法包括用于会话管理的新的体系结构模型。该新的会话管理模型提供了面向服务的且基于工作流的方法。作为面向服务的方法,每个功能会话管理步骤可被表示为一业务服务。这样的方法促进了服务级的竞争,这为每个服务带来了最佳解决方案,而不是如曾在捆绑式整体***中进行的***级竞争。新的功能现在可以根据服务接口来定义,并且独立于该***的其余部分来实现和测试。服务中的现有功能可以独立于该***的其余部分而被增强和测试,并且可以通过升级该服务而非整个***而被引入。此外,会话管理服务可在不同应用中被再使用。作为基于工作流的解决方案,将要执行的一系列步骤可被定义为数据,而不是被硬编码在应用内。例如,给定的步骤序列可以以XML文件被定义,其然后可以利用图形编辑器被创建和改变。给定工作流上的每个节点(任务)表示将被调用的服务,并且传递到每个服务的数据以及从每个服务传递来的数据也可以以XML或其它数据文件被定义。将工作流定义为数据使得服务从控制流分离,从而支持多个厂商对服务的独立开发。该技术极大地提高了引入新服务的速度,因为将给定新服务引入***主要是通过更新配置文件来完成的,而无需新代码或仅需很少的新代码。
这里公开的技术使用基于工作流的会话管理***,该***可以包括使用工作流引擎来处理节点(任务、事件、转变)序列。为了实现基于工作流的会话管理器的所预期的近似实时的性能,该***可以执行各个处理步骤。该***在会话建立时加载工作流的定义并且缓存这些定义。然后,该***通过检查所缓存的工作流定义来确定要执行的下一节点。会话管理器同时调用与工作流序列中的每个节点相关联的(一个或多个)服务。
缓存节点定义和所生成的或检索到的数据可以有助于加快基于工作流的处理。由于传统工作流***处理的是长期限处理,因此在对给定节点进行调用的任何时候,这些***都要持续保持工作流的状态。这是计算上昂贵的操作,因为这通常涉及将数据存储在数据库或其它数据存储装置中以等待直到下一节点准备好被执行为止,例如在接收到特定批准电子邮件之后。在接收到针对下一任务的触发之后,传统***将恢复工作流的状态,基于批准电子邮件来执行下一任务,并且然后再次存储状态信息。因此,传统工作流***被设计用于长期处理,而非实时处理。通过在存储器中缓存节点定义并维护状态信息,工作流处理可被加快。这里公开的技术还改进了存储器管理,以使得在存储器中工作流的表示是一种非常高效的数据结构,该数据结构不用将数据从一种格式转换为另一格式。这是相比于传统工作流***的另一改进。传统工作流***常常取决于接下来将使用数据的实体来将数据从一种格式转换为另一种格式。这里的技术提供了线性存储器管理(例如,通过使用Java对象)而不用在格式之间来回转换数据,从而有助于提供实时处理。
因此,会话管理器可以通过提供可用于执行各个服务的线程池来支持高度并发的工作流处理,执行单个事物内部的工作流,并且当检测到任何故障时将适当的错误代码返回给端用户。
图3是图示出用于内容递送的一般性示例工作流的框图。工作流层(虚线以上部分)是六个相连节点的序列。也称为任务的每个节点表示将由工作流处理器或工作流引擎执行的、作为会话管理一部分的数据文件或业务处理。例如,会话管理器可以访问数据文件,例如,定义了要执行的处理序列的XML(可扩展标记语言),或者可以引用要执行的处理序列。图4示出了示例定义数据文件的代码段,并且将在下面更详细讨论。注意,该节点序列可以包括分支、如果/则(if/then)逻辑,等等。例如,节点1由工作流引擎处理。取决于对节点1进行处理而生成的数据,工作流引擎然后将继续到节点2或节点3。从处理节点1得到的某些数据可被传递给节点2、节点3或后续节点。
作为数据文件,节点一般不知道彼此,但是,工作流引擎明白要与哪些节点对话以及要从一个节点检索什么信息以传递到另一节点。这样,工作流引擎本身可以包括提供实时处理的功能。换言之,在一个实施例中,工作流引擎可以被修改或改进,以作用来缓存节点定义、在节点间传递的追踪数据、以及流线型存储器管理,以便提供实时会话管理处理。
继续本示例,在节点2或节点3的处理之后,处理继续到节点4。注意,每个节点映射到或者以其它方式引用来自服务层的工作流服务。工作流服务可以是所引用的动作或处理或者是定义了要执行的一个或多个动作的数据文件。示例动作可能是发送文本消息、在社交网络账户上张贴消息、为特定账户付费等。在一些实施例中,每个服务被表示为工作流服务的定义。在此示例中,工作流服务4包括在被调用时要执行的四个动作。为了简化,在图3的示例中,仅节点4被示出了相应的工作流服务,然而工作流层的每个节点可以引用一个或多个对应的工作流服务。一些节点可以不引用任何工作流服务,而其他节点可以引用多于一个服务。图5示出了示例工作流服务数据文件的代码段。
图3的工作流层也可用来图示给定会话管理器的工作流的图形编辑。例如,使用图形编辑器或类似输入手段,用户可以通过图形来布置工作流节点的布局,包括指定连接序列和任何分支。这可以包括高层控制构图,例如判决节点、如果-则逻辑、分支、再连接、并行执行的节点、以及甚至可在开始递送视频内容之后完成的节点序列。用户也可以直接编辑数据文件。因此,新的服务可被添加到给定内容递送***而无需新的硬件和/或新的软件,正如传统的整体方法一样。当添加新节点到现有服务时,工作流可以自动地或经由图形编辑器被改变。当添加新节点时,***生成从该新节点到现有节点的映射。该映射不一定需要在图形编辑器中示出。该映射可以包括服务名、类别名、数据等。在新节点被添加之后,***可以例如通过创建.PAR文件来创建对应文件。类似地,当向新服务添加新节点时,新服务可以通过向给定数据库添加数据文件来设计和实现,对应的新节点数据文件可被创建用于添加到工作流序列,并且然后通过图形或文本被添加到工作流序列,并且然后***将创建对应的映射和定义文件。
现在,通过更具体的示例,考虑给定MSO希望向订户提供新通知服务的情况。该新服务可能使能这样的选项,每当具有特定评级的视频点播内容被选择时,该选项就将文本消息发送给订户的移动设备。例如,每当具有PG-13评级、R评级或更高评级的电影被选择时,订户可以选择经由文本消息被通知。这样的服务可能是服务需要的,以便知道不恰当的视频是否将被其孩子选择。在传统上,MSO可能要花数月或数年来推出这样的服务。然而,利用这里公开的技术,这样的服务可以快速地被添加并且无需更新内容递送***本身。取而代之的是,引用该服务的节点被创建,工作流服务数据文件被创建并被存储在数据库中,并且然后用户可以将新节点添加到集中化位置处的现有工作流序列,并且在会话管理器下次接收到发起针对点播内容的会话的请求时,会话管理器加载具有用于文本消息通知的新节点的工作流数据文件,并且当处理更新后工作流序列时,工作流引擎将处理引用文本消息服务且然后发送相应消息的该新的文本消息节点。
返回图4,所示代码段图示出了要添加的用于示例文本消息服务的示例数据文件的各部分。在线条402处,数据文件标识出了节点名。线条407然后标识映射以检查或验证各个特征,诸如所选标题的价格、电影评级、TV评级等。取决于订户的偏好和来自所选标题的信息,文本消息节点或对应的工作流服务可以指示发送文本消息,该文本消息可以包括标识数据、价格、评级或其它所请求信息。图5然后图示出了提供了用于发起文本消息传输的指令的示例数据文件。
更具体地,工作流引擎可以利用例如在工作流引擎的存储器映射图中使用的“esbsServiceName”和“esbCategoryName”来标识特定节点。线条407还标识了工作流引擎如何将变量传递给对应服务。使用该数据文件,工作流引擎可以标识出将作为输入进行发送的内容以及将作为输出进行检索的内容。线条407可被当作从一个命名空间到另一命名空间的映射。注意,BPM是指业务处理管理器。图5的节点数据文件和图6的工作流服务文件可以包括二者之间的映射或引用,以使得工作流引擎可以标识出要递送和检索的数据。工作流服务文件还可以通过让要调用的Java类实现特定通知服务,来包括要执行的动作的列表。
图6和图7是在基于正交幅度调制(QAM)的***(图6)和在基于因特网协议(IP)的视频递送***(图7)中操作的示例的基于工作流的会话管理器或会话管理***的框图。这些示例序列是用于基于QAM和IP的***的一般化建立序列。注意,存在被连接或缝合在一起以定义处理序列的离散活动或节点。任何给定节点可以基于在一个或多个先前节点的执行期间发生的事物而被调用或执行。因此,在一个节点的处理期间发生的事物可以影响或冲击在第二节点的处理期间发生的事物。会话管理器然后可以在中央会话管理位置处被更新,并且集中地执行会话管理器的实例以控制头端。因此,会话管理器不位于头端处,于是头端可以专注于视频传输/重传活动。
更具体地,这两个示例会话管理器都可以应对可被执行用于会话建立的标准操作集合,即使服务的执行顺序可能在它们之间不同。所期望的典型服务可以包括:对用户观看所请求内容进行认证/授权;将所请求内容扩展为播放列表;分配将引起内容的流传输的(一个或多个)资源(VOD服务器或流传输器或CDN节点),分配将向客户设备(QAM或CMTS)递送内容的资源,以及向计费***通知已进行了购买。类似地,当拆断流时,会话管理器可以释放在会话建立期间分配的资源。一般地,客户端设备请求内容,例如,对点播视频做出选择,该请求使得***发起会话。一般地,会话管理器然后处理工作流序列。在图6和图7中,序列被图示为从左向后进行。每个节点可被选择并定位作为业务处理的一部分,并且因此节点选择实质上可以取决于给定应用而变化。
图12图示出了根据这里的实施例在计算机/网络环境中操作的会话管理器/内容管理器140的示例框图。概括地说,图12示出了显示图形用户界面133的计算机***149,图形用户界面133提供会话管理器和/或会话管理器编辑器。图12的物理***的各方面将在描述流程图之后更详细地进行描述。
现在将经由图8-11中的流程图和示图来讨论与会话管理器140相关联的功能。为了以下讨论的目的,会话管理器、会话管理器编辑器或内容递送***或其它适当实体执行流程图中的步骤。
现在更具体地描述实施例,图8是图示出这里公开的实施例的流程图。
在步骤810,会话管理器在服务器处接收来自客户端设备的访问视频内容的请求。例如,观看有线电视的用户使用机顶盒控制器来选择特定点播视频标题,或者操作平板电脑或蜂窝电话的用户选择要流传输的特定视频。
在步骤820,会话管理器访问数据文件,该数据文件定义了要经由工作流引擎执行的工作流序列。例如,该数据文件可以是XML文件、文本文件或其它数据文件。工作流序列定义多个节点,每个节点标识要执行的至少一个会话管理服务。多个节点都可被包括在该数据文件内,或者替代地,可以引用工作流节点的各数据文件。这些节点中的至少一个可以标识在给定会话管理服务之间传递的数据。例如,特定节点标识电影的标题,提取价格和评级,并且将该数据传递给后续节点或工作流服务。
在步骤830,会话管理器将工作流序列和多个节点加载到共享存储器中。例如,会话管理器可以将工作流序列加载到RAM存储器中。通过将工作流序列加载到存储器中,会话管理器不必在会话初始化期间持续保持数据,这有助于使得处理速度足够快以符合订户期望。
在步骤840,会话管理器经由工作流引擎根据该工作流序列来执行与多个节点相对应的会话管理服务。换言之,会话管理器根据由工作流数据文件定义的指定顺序来处理业务处理序列。
在步骤850,会话管理器向远程头端发送指令以将视频内容发送给客户端设备。例如,会话管理器自身可能不执行视频递送。利用集中化的会话管理器和远程头端或传输点,会话管理器发送指令给这些头端以便将所请求视频内容发送、流传输或以其它方式递送给用户。
图9包括图示出了如这里公开的会话管理器140的可选功能和其它和/或替代实施例的流程图。
在步骤810,会话管理器在服务器处接收来自客户端设备的访问视频内容的请求。
在步骤812,会话管理器从视频点播***接收访问视频内容的请求。例如,有线电视订户选择观看点播/即时观看电影,或者甚至选择新的频道来观看。在一些实施例中,传统广播频道本身可被配置用于使用每个频道的会话管理器来发送视频内容。
在步骤820,会话管理器访问数据文件,该数据文件定义了要经由工作流引擎执行的工作流序列。工作流序列定义多个节点,每个节点标识要执行的至少一个会话管理服务,至少一个节点标识在给定会话管理服务之间传递的数据。
在步骤830,会话管理器将工作流序列和多个节点加载到共享存储器中。
在步骤832,会话管理器在给定会话的开始处加载工作流定义,并且缓存工作流定义以使得工作流引擎处理节点不用持续保持从处理多个节点中生成的数据直到向远程头端发送了指令之后为止。通过在存储器中执行工作流处理和数据传送,会话管理器快速地完成给定工作流序列。
在步骤840,会话管理器经由工作流引擎根据该工作流序列来执行与多个节点相对应的会话管理服务。
在步骤842,会话管理器通过检查所缓存的工作流定义来确定工作流序列内要执行的下一节点。
在步骤844,会话管理器在处理每个相应节点的同时,处理给定会话管理服务。换言之,在每个节点的处理期间,***还处理对应服务并且然后进行到下一服务。通过非限制性示例,在图6中,响应于对购买服务器节点的处理,会话管理器同时处理购买服务和任何相应动作,并且然后进行来处理播放列表引擎节点。
在步骤846,会话管理器执行至少一个新的会话管理服务而不用更新工作流引擎。通过将这样的内容递送***构建为基于工作流的,可以在不用更新工作流引擎的情况下来添加、移除或修改服务。可以更新节点和对应服务两者,或者可以仅更新对应服务。
在步骤850,会话管理器向远程头端发送指令以将视频内容发送给客户端设备。这可以包括发送用以将视频内容流传输到客户端设备的指令。
工作流定义可以定义从各会话管理服务传递的/传递到各会话管理服务的/在各会话管理服务间传递的数据。并非所有会话管理服务都需要从在前的服务生成或取回的数据。工作流引擎在少于约500毫秒中,处理在发送指令给远程头端之前执行的节点的工作流序列。注意,所执行的节点序列可以仅包含要求在开始发送视频内容之前被处理的那些节点。例如,给定工作流序列可以具有多个分支。一些分支可能涉及通知服务或日志服务,其不一定需要在授权用户以及开始视频回放之前完成。因此,一个实施例包括这样的工作流处理引擎,其在少于约800毫秒的时间内并且甚至在少于约250毫秒的时间内,实时地执行(作为数据文件的)任务序列以提供会话管理并对回放授权。另一实施例包括修改现有工作流引擎以实时地处理节点。
图10是图示出这里公开的实施例的流程图。这些实施例可以包括可以结合会话管理器编辑器的会话管理器,或类似内容递送***。在步骤1010,内容递送***将节点的集合定义为数据文件,其中每个节点标识将要利用会话管理器执行的至少一个服务。
在步骤1020,内容递送***将服务的集合定义为数据文件,每个服务标识动作的集合,所述动作引用当被执行时提供与相应服务相对应的会话管理处理的功能。
在步骤1030,内容递送***将工作流处理顺序定义为工作流数据文件。工作流处理顺序指示节点的集合的执行次序以便实现内容递送***的会话管理。
在步骤1040,内容递送***生成会话管理器,该会话管理器控制通过网络将内容递送给客户端设备。会话管理器在被执行时使用工作流引擎,工作流引擎根据工作流数据文件中定义的工作流处理顺序来提供对节点集合的实时执行。
图11包括图示出如这里公开的内容递送***的可选功能和其它和/或替代实施例的流程图。
在步骤1010,内容递送***将节点的集合定义为数据文件,其中每个节点标识将要利用会话管理器执行的至少一个服务。业务服务可以被表示为节点(步骤1014)。
在步骤1012,内容递送***创建每个节点到对应服务的至少一个数据文件的映射。对应服务的数据文件标识工作流引擎在处理执行序列中的后续节点之前要调用的动作。例如,这些动作可以包括检索订户状态、检索标题评级等。
在步骤1020,内容递送***将服务的集合定义为数据文件,每个服务标识动作的集合,所述动作引用当被执行时提供与相应服务相对应的会话管理处理的功能。
在步骤1030,内容递送***将工作流处理顺序定义为工作流数据文件。工作流处理顺序指示节点的集合的执行次序以便实现内容递送***的会话管理。
在步骤1032,内容递送***响应于经由图形用户界面接收到的、指定了指示处理序列的给定节点之间的连接和节点的集合的输入,来创建工作流数据文件。因此,内容提供商可以在无需更新内容递送硬件的情况下来生成工作流和服务改变。
在步骤1040,内容递送***生成会话管理器,该会话管理器控制通过网络将内容递送给客户端设备。会话管理器在被执行时使用工作流引擎,工作流引擎根据工作流数据文件中定义的工作流处理顺序来提供对节点集合的实时执行。
在步骤1042,内容递送***生成会话管理器,该会话管理器控制将视频内容递送给请求了视频内容的客户端设备来作为视频点播服务。
在步骤1044,内容递送***在启动时加载工作流的定义并且缓存工作流的定义直到给定会话完成为止,以使得工作流引擎执行给定的节点工作流而不用将节点状态信息存储在非易失性存储装置中直到开始向给定客户端递送内容为止。不用为会话启动来持续保持工作流处理期间的数据,会话管理器因此可以为点播视频应用提供足够快的基于工作流的会话管理***。例如,观看者通常不希望等待视频内容开始播放长于约半秒的时间。这里公开的技术可以在约100-200毫秒内完成工作流处理。
在步骤1046,会话管理器在发送指令以递送视频内容之前来执行业务服务序列。例如,某些授权、计费及其它任务可能需要在流传输内容之前完成。
在另一实施例中,内容递送***包括用于控制内容到客户端设备的递送的会话管理器编辑器或其它基于图形的编辑器。在此实施例中,内容递送***经由用户接口接收选择节点集合的输入。例如,用户可以访问菜单或节点的其它数据储存库并且将这些拖到排序区域,或者用户可以在构建序列时根据需要选择特定节点。每个节点是或者表示数据文件,该数据文件标识会话管理器要经由工作流引擎来执行的至少一个会话管理服务。内容递送***经由用户接口来接收指定了工作流引擎要执行的节点序列的输入。内容递送***生成定义了工作流引擎要执行的该节点序列的工作流数据文件。然后,内容递送***或会话管理器编辑器创建会话管理器,该会话管理器在被执行时对经由工作流引擎向客户端设备递送内容进行控制。该工作流引擎根据来自工作流数据文件的所定义的节点序列来执行会话管理服务。该会话管理器可被用于控制视频内容到客户端设备的递送,客户端设备包括使用视频点播服务的设备。
因此,会话管理器在被执行时,在启动时加载工作流的定义并且缓存工作流的定义直到给定会话完成为止,以使得给定的节点工作流被管理者引擎执行,而不用将节点状态信息存储在非易失性存储装置中直到开始向给定客户端递送内容为止,从而提高了处理速度。
使用图形编辑器,用户可以指定表示节点的图标的图形布局。图形布局或布置因此指定了相连节点的序列,以使得基于表示节点的图标的图形布局来生成工作流数据文件。图形编辑器还可以接收修改图标的图形布局的输入,并且然后更新工作流数据文件中的工作流定义。
继续到图12,以下讨论提供了指示出如何实现与如上所述的会话管理器140相关联的功能的基本实施例。然而,应注意,用于实现会话管理器140的实际配置可以取决于相应应用而变化。例如,计算机***149可以包括执行如这里描述的处理的一个或多个计算机。
在不同实施例中,计算机***149可以是任何不同类型的设备,包括但不限于蜂窝电话、个人计算机***、台式计算机、膝上型计算机、笔记本电脑或上网本、大型计算机***、手持计算机、工作站、网络计算机、应用服务器、存储设备、消费电子设备,如相机、摄录像机、机顶盒、移动设备、视频游戏控制台、手持视频游戏设备、或者一般地任何类型的计算或电子设备。
计算机***149被示为连接到显示监视器130,显示监视器130用于显示供用户136利用输入设备135进行操作的图形用户界面133。可选地,贮存库138可被用于存储数据文件和处理前后的内容两者。输入设备135可以包括一个或多个设备,诸如键盘、计算机鼠标、麦克风等。
如图所示,本示例的计算机***149包括互连143,互连143将存储器***141、处理器142、I/O接口144和通信接口145相耦合。
I/O接口144提供到***设备的连接,***设备例如是包括计算机鼠标、键盘、移动光标的选择工具、显示屏等的输入设备135。
根据这里的实施例,通信接口145使得计算机***149的会话管理器140能够通过网络通信,并且根据需要,检索需要用于创建视图、处理内容、与用户通信等的任何数据。
如图所示,存储器***141被编码有支持上面讨论的且并且如下面进一步讨论的功能的会话管理器140。会话管理器140-1(和/或这里描述的其它资源)可被体现为支持根据这里描述的不同实施例的处理功能的软件代码,诸如数据和/或逻辑指令。
在一个实施例的操作期间,处理器142通过利用互连143来访问存储器***141,以便起动、运行、执行、解释或以其它方式执行会话管理器140-1的逻辑指令。会话管理器140-1的执行产生了会话管理器处理140-2中的处理功能。换言之,会话管理器处理140-2表示在计算机***149的处理器142之内或之上执行的会话管理器140的一个或多个部分。
应注意,除了执行这里讨论的方法操作的会话管理器处理140-2之外,这里的其它实施例还包括会话管理器140-1本身(即,未被执行的或非执行逻辑指令和/或数据)。会话管理器140-1可被存储在非暂时性的有形计算机可读存储介质上,包括如下计算机可读介质,诸如软盘、硬盘、光介质等。根据其它实施例,会话管理器140-1还可以存储在存储器类型的***中,例如以固件、只读存储器(ROM)的形式,或者在此示例中,以存储器***141中的可执行代码的形式。
还应注意,除了这些实施例,这里的其它实施例包括会话管理器140-1在处理器142中执行来作为会话管理器处理140-2。因此,本领域技术人员将明白,计算机***149可以包括其它处理和/或软件以及硬件组件,例如控制硬件资源或多个处理器的分配和使用的操作***。
本领域技术人员还将明白,可以在对上面说明的技术的操作做出许多变更的同时,依然获得本发明的相同目的。这些变更意图由本发明的范围所涵盖。这样,本发明前面对实施例的描述不希望是限制性的。而是,对本发明实施例的任何限制被呈现在以下权利要求中。
Claims (22)
1.一种用于控制通过网络向客户端设备递送内容的计算机实现的会话管理方法,该计算机实现的方法包括:
在服务器处接收来自客户端设备的访问视频内容的请求;
访问定义了要经由工作流引擎执行的工作流序列的数据文件,所述工作流序列定义多个节点,每个节点标识要执行的至少一个会话管理服务,至少一个节点标识在给定会话管理服务之间传递的数据;
将所述工作流序列和多个节点加载到共享存储器中;
经由所述工作流引擎根据所述工作流序列来执行与所述多个节点相对应的会话管理服务;以及
发送指令给远程头端以向所述客户端设备发送所述视频内容。
2.如权利要求1所述的计算机实现的方法,其中,将所述工作流序列和多个节点加载到共享存储器中包括:在给定会话启动时加载工作流定义,并且缓存所述工作流定义,以使得所述工作流引擎对节点进行处理而不用持续保持从处理所述多个节点中生成的数据直到向所述远程头端发送指令之后为止。
3.如权利要求2所述的计算机实现的方法,还包括通过检查所缓存的工作流定义来确定所述工作序列中要执行的下一节点。
4.如权利要求2所述的计算机实现的方法,还包括:
其中,执行会话管理服务包括:在处理每个相应节点的同时处理给定会话管理服务;以及
其中,所述工作流定义定义了从各个会话管理服务传递的数据。
5.如权利要求1所述的计算机实现的方法,还包括:
其中,接收访问视频内容的请求包括从视频点播***接收访问视频内容的请求;以及
其中,发送指令给远程头端包括发送向所述客户端设备流传输所述视频内容的指令。
6.如权利要求5所述的计算机实现的方法,其中,所述工作流引擎在少于约500毫秒的时间内来处理在发送指令给所述远程头端之前执行的节点的工作流序列。
7.如权利要求1所述的计算机实现的方法,其中,执行会话管理服务包括执行至少一个新的会话管理服务而不用更新所述工作流引擎。
8.一种提供用于控制通过网络向客户端设备递送内容的会话管理的***,该***包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器存储指令,所述指令在被所述处理器执行时使得所述***执行以下操作:
在服务器处接收来自客户端设备的访问视频内容的请求;
访问定义了要经由工作流引擎执行的工作流序列的数据文件,所述工作流序列定义多个节点,每个节点标识要执行的至少一个会话管理服务,至少一个节点标识在给定会话管理服务之间传递的数据;
将所述工作流序列和多个节点加载到共享存储器中;
经由所述工作流引擎根据所述工作流序列来执行与所述多个节点相对应的会话管理服务;以及
发送指令给远程头端以向所述客户端设备发送所述视频内容。
9.一种开发用于控制通过网络向客户端设备递送内容的会话管理器的计算机实现的方法,该计算机实现的方法包括:
经由用户接口接收选择节点的集合的输入,每个节点是数据文件,所述数据文件标识了会话管理器要经由工作流引擎执行的至少一个会话管理服务;
经由所述用户接口接收指定了所述工作流引擎要执行的节点序列的输入;
生成定义了所述工作流引擎要执行的所述节点序列的工作流数据文件;以及
创建当被执行时控制经由所述工作流引擎向客户端设备递送内容的会话管理器,所述工作流引擎根据来自所述工作流数据文件的所定义节点序列来执行会话管理服务。
10.如权利要求9所述的计算机实现的方法,其中,接收指定了节点序列的输入包括:经由图形编辑器来接收指定了表示节点的图标的图形布局的输入,所述图形布局指定相连节点的序列,其中所述工作流数据文件基于表示节点的图标的图形布局被生成。
11.如权利要求10所述的计算机实现的方法,其中,响应于接收到修改图标的图形布局的输入,更新所述工作流数据文件中的工作流定义。
12.如权利要求9所述的计算机实现的方法,其中,创建控制向客户端设备递送内容的会话管理器包括:创建控制向请求视频内容的客户端设备递送所述视频内容来作为视频点播服务的会话管理器。
13.如权利要求12所述的计算机实现的方法,其中,将服务的集合定义为数据文件包括:定义对作出请求的客户端设备接收视频内容进行授权的至少一个服务。
14.如权利要求9所述的计算机实现的方法,其中,所述会话管理器在被执行时,在启动时加载工作流的定义,并且缓存所述工作流的定义直到给定会话完成为止,以使得由所述工作流引擎执行给定的节点工作流而不用将节点状态信息存储在非易失性存储装置中直到开始向给定客户端递送内容为止。
15.一种开发用于控制到客户端设备的内容递送的会话管理器的***,该***包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器存储指令,所述指令在被所述处理器执行时使得所述***执行以下操作:
经由用户接口接收选择节点的集合的输入,每个节点是数据文件,所述数据文件标识了会话管理器要经由工作流引擎执行的至少一个会话管理服务;
经由所述用户接口接收指定了所述工作流引擎要执行的节点序列的输入;
生成定义了所述工作流引擎要执行的所述节点序列的工作流数据文件;以及
创建当被执行时控制经由所述工作流引擎向客户端设备递送内容的会话管理器,所述工作流引擎根据来自所述工作流数据文件的所定义节点序列来执行会话管理服务。
16.一种用于开发会话管理器的方法,该会话管理器管理用于向端用户设备递送内容的内容递送***,该方法包括:
将节点的集合定义为数据文件,每个节点标识将利用所述会话管理器执行的至少一个服务;
将服务的集合定义为数据文件,每个服务标识动作的集合,所述动作引用当被执行时提供与相应服务相对应的会话管理处理的功能;
将工作流处理顺序定义为工作流数据文件,所述工作流处理顺序指示节点的集合的执行次序以便实现所述内容递送***的会话管理;以及
生成控制通过网络将内容递送给客户端设备的会话管理器,该会话管理器在被执行时使用工作流引擎,所述工作流引擎根据所述工作流数据文件中定义的所述工作流处理顺序来提供对所述节点的集合的实时执行。
17.如权利要求16所述的方法,其中,生成控制将内容递送给客户端设备的会话管理器包括:创建控制向请求视频内容的客户端设备递送所述视频内容来作为视频点播服务的会话管理器。
18.如权利要求17所述的方法,其中,将服务的集合定义为数据文件包括:定义对作出请求的客户端设备接收视频内容进行授权的至少一个服务。
19.如权利要求16所述的方法,其中,每个节点标识将被执行的至少一个服务包括:每个节点创建到对应服务的至少一个数据文件的映射,所述对应服务的数据文件标识所述工作流引擎在处理执行序列中的后续节点之前要调用的动作。
20.如权利要求16所述的方法,其中,所述会话管理器在被执行时,在启动时加载工作流的定义,并且缓存所述工作流的定义直到给定会话完成为止,以使得由所述工作流引擎执行给定的节点工作流而不用将节点状态信息存储在非易失性存储装置中直到开始向给定客户端递送内容为止。
21.如权利要求16所述的方法,还包括:
其中,将节点的集合定义为数据文件包括:将业务服务表示为节点;以及
其中,根据所述工作流数据文件中定义的所述工作流处理顺序执行节点的集合包括:执行在递送视频内容之前要执行的一系列业务服务。
22.如权利要求16所述的方法,其中,将所述工作流处理顺序定义为工作流数据文件包括:响应于经由图形用户界面接收到指定了指示处理序列的给定节点之间的连接和节点的集合的输入,来创建所述工作流数据文件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US31704710P | 2010-03-24 | 2010-03-24 | |
US61/317,047 | 2010-03-24 | ||
PCT/US2011/029821 WO2011119851A1 (en) | 2010-03-24 | 2011-03-24 | Workflow-based session management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103069444A true CN103069444A (zh) | 2013-04-24 |
CN103069444B CN103069444B (zh) | 2016-07-06 |
Family
ID=44657783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180015533.1A Active CN103069444B (zh) | 2010-03-24 | 2011-03-24 | 基于工作流的会话管理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8671345B2 (zh) |
EP (1) | EP2550630A4 (zh) |
CN (1) | CN103069444B (zh) |
WO (1) | WO2011119851A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363286A (zh) * | 2014-11-18 | 2015-02-18 | 百视通网络电视技术发展有限责任公司 | 一种基于工作流模板驱动的cdn内容分发方法及*** |
CN107911361A (zh) * | 2017-11-14 | 2018-04-13 | 网易(杭州)网络有限公司 | 支持多会话的语音管理方法、装置、终端设备及存储介质 |
CN110494811A (zh) * | 2017-02-10 | 2019-11-22 | 江森自控科技公司 | 具有时间序列数据的声明性视图的建筑物管理*** |
CN110659091A (zh) * | 2018-06-29 | 2020-01-07 | 国际商业机器公司 | 会话代理对话流用户界面 |
CN115016693A (zh) * | 2021-06-30 | 2022-09-06 | 北京字跳网络技术有限公司 | 构建应用的方法、装置、设备和计算机可读存储介质 |
US11774930B2 (en) | 2017-02-10 | 2023-10-03 | Johnson Controls Technology Company | Building system with digital twin based agent processing |
US11809461B2 (en) | 2017-02-10 | 2023-11-07 | Johnson Controls Technology Company | Building system with an entity graph storing software logic |
US12019437B2 (en) | 2017-02-10 | 2024-06-25 | Johnson Controls Technology Company | Web services platform with cloud-based feedback control |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103069444B (zh) | 2010-03-24 | 2016-07-06 | 宝美瑞思网络公司 | 基于工作流的会话管理 |
US9311612B2 (en) * | 2010-12-22 | 2016-04-12 | Sap Se | System and method for improved service oriented architecture |
US8745122B2 (en) * | 2011-06-14 | 2014-06-03 | At&T Intellectual Property I, L.P. | System and method for providing an adjunct device in a content delivery network |
US9038074B2 (en) * | 2011-10-04 | 2015-05-19 | Salesforce.Com, Inc. | System, method and computer program product for recursively executing a process control operation to use an ordered list of tags to initiate corresponding functional operations |
US20130117749A1 (en) * | 2011-11-03 | 2013-05-09 | Microsoft Corporation | Provisioning and Managing an Application Platform |
US20140123169A1 (en) * | 2012-10-26 | 2014-05-01 | Adara Technologies Inc. | Simulcasting conditional access channel service offerings for video delivery in a telecommunications network |
US10764151B1 (en) * | 2012-12-20 | 2020-09-01 | Allscripts Software, Llc | Methodologies for workflow transitioning |
US10318911B1 (en) | 2013-03-14 | 2019-06-11 | Jpmorgan Chase Bank, N.A. | Persistenceless business process management system and method |
US20160070596A1 (en) * | 2013-04-15 | 2016-03-10 | P. Ashok Anand | Workflow Execution System and Method for Cloud Environment |
US9383989B1 (en) | 2014-06-16 | 2016-07-05 | Symantec Corporation | Systems and methods for updating applications |
US10033816B2 (en) * | 2015-09-30 | 2018-07-24 | Amazon Technologies, Inc. | Workflow service using state transfer |
US20190080289A1 (en) * | 2017-09-08 | 2019-03-14 | Gliffy, Inc. | Graphical project management tool |
US10514961B1 (en) * | 2017-10-31 | 2019-12-24 | EMC IP Holding Company LLC | Enhanced cookie management for file workflows |
US11055650B2 (en) | 2018-02-27 | 2021-07-06 | Logistiview, Inc. | Execution systems using unstructured data |
US11075801B2 (en) * | 2018-04-17 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Systems and methods for reconfiguration control using capabilities |
US11244267B2 (en) * | 2019-04-26 | 2022-02-08 | Dell Products L.P. | Digital fulfillment product onboarding system |
US11481233B2 (en) * | 2019-09-13 | 2022-10-25 | Logistiview, Inc. | Augmenting legacy user interfaces using workflows |
US11663038B2 (en) * | 2020-05-01 | 2023-05-30 | Salesforce.Com, Inc. | Workflow data migration management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050070A1 (en) * | 2003-09-02 | 2005-03-03 | Microsoft Corporation | Daypart guide workflow |
US20070107012A1 (en) * | 2005-09-07 | 2007-05-10 | Verizon Business Network Services Inc. | Method and apparatus for providing on-demand resource allocation |
CN101295375A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 工作流实现方法和*** |
CN101615270A (zh) * | 2009-04-15 | 2009-12-30 | 北京协成致远网络科技有限公司 | 一种基于b/s模式的工作流分析和呈现的***及方法 |
US20090327021A1 (en) * | 2008-06-27 | 2009-12-31 | Pss Systems, Inc. | System and method for managing legal obligations for data |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US20030046396A1 (en) * | 2000-03-03 | 2003-03-06 | Richter Roger K. | Systems and methods for managing resource utilization in information management environments |
US6948088B1 (en) * | 2001-06-13 | 2005-09-20 | Cisco Technology, Inc. | Methods and apparatus for efficient transaction processing on redundant systems |
US20040059836A1 (en) | 2002-09-23 | 2004-03-25 | Peter Spaepen | Method for generating and displaying a digital datafile containing video data |
US20090013347A1 (en) | 2007-06-11 | 2009-01-08 | Gulrukh Ahanger | Systems and methods for reporting usage of dynamically inserted and delivered ads |
WO2008157628A1 (en) * | 2007-06-18 | 2008-12-24 | Synergy Sports Technology, Llc | System and method for distributed and parallel video editing, tagging, and indexing |
US8146094B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Guaranteeing delivery of multi-packet GSM messages |
US8266478B2 (en) * | 2009-09-24 | 2012-09-11 | At&T Intellectual Property I, Lp | System and method to manage problems with network-based services |
CN103069444B (zh) | 2010-03-24 | 2016-07-06 | 宝美瑞思网络公司 | 基于工作流的会话管理 |
-
2011
- 2011-03-24 CN CN201180015533.1A patent/CN103069444B/zh active Active
- 2011-03-24 US US13/070,758 patent/US8671345B2/en active Active
- 2011-03-24 WO PCT/US2011/029821 patent/WO2011119851A1/en active Application Filing
- 2011-03-24 EP EP11760231.8A patent/EP2550630A4/en not_active Ceased
-
2014
- 2014-02-07 US US14/175,043 patent/US9026920B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050070A1 (en) * | 2003-09-02 | 2005-03-03 | Microsoft Corporation | Daypart guide workflow |
US20070107012A1 (en) * | 2005-09-07 | 2007-05-10 | Verizon Business Network Services Inc. | Method and apparatus for providing on-demand resource allocation |
CN101295375A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 工作流实现方法和*** |
US20090327021A1 (en) * | 2008-06-27 | 2009-12-31 | Pss Systems, Inc. | System and method for managing legal obligations for data |
CN101615270A (zh) * | 2009-04-15 | 2009-12-30 | 北京协成致远网络科技有限公司 | 一种基于b/s模式的工作流分析和呈现的***及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363286A (zh) * | 2014-11-18 | 2015-02-18 | 百视通网络电视技术发展有限责任公司 | 一种基于工作流模板驱动的cdn内容分发方法及*** |
CN104363286B (zh) * | 2014-11-18 | 2018-01-16 | 百视通网络电视技术发展有限责任公司 | 一种基于工作流模板驱动的cdn内容分发方法及*** |
US11774930B2 (en) | 2017-02-10 | 2023-10-03 | Johnson Controls Technology Company | Building system with digital twin based agent processing |
CN110494811A (zh) * | 2017-02-10 | 2019-11-22 | 江森自控科技公司 | 具有时间序列数据的声明性视图的建筑物管理*** |
CN110494811B (zh) * | 2017-02-10 | 2023-08-08 | 江森自控泰科知识产权控股有限责任合伙公司 | 具有时间序列数据的声明性视图的建筑物管理*** |
US11755604B2 (en) | 2017-02-10 | 2023-09-12 | Johnson Controls Technology Company | Building management system with declarative views of timeseries data |
US11809461B2 (en) | 2017-02-10 | 2023-11-07 | Johnson Controls Technology Company | Building system with an entity graph storing software logic |
US11994833B2 (en) | 2017-02-10 | 2024-05-28 | Johnson Controls Technology Company | Building smart entity system with agent based data ingestion and entity creation using time series data |
US12019437B2 (en) | 2017-02-10 | 2024-06-25 | Johnson Controls Technology Company | Web services platform with cloud-based feedback control |
CN107911361B (zh) * | 2017-11-14 | 2020-05-08 | 网易(杭州)网络有限公司 | 支持多会话的语音管理方法、装置、终端设备及存储介质 |
CN107911361A (zh) * | 2017-11-14 | 2018-04-13 | 网易(杭州)网络有限公司 | 支持多会话的语音管理方法、装置、终端设备及存储介质 |
CN110659091A (zh) * | 2018-06-29 | 2020-01-07 | 国际商业机器公司 | 会话代理对话流用户界面 |
CN115016693A (zh) * | 2021-06-30 | 2022-09-06 | 北京字跳网络技术有限公司 | 构建应用的方法、装置、设备和计算机可读存储介质 |
CN115016693B (zh) * | 2021-06-30 | 2024-06-11 | 北京字跳网络技术有限公司 | 构建应用的方法、装置、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20140157127A1 (en) | 2014-06-05 |
EP2550630A1 (en) | 2013-01-30 |
US8671345B2 (en) | 2014-03-11 |
CN103069444B (zh) | 2016-07-06 |
WO2011119851A1 (en) | 2011-09-29 |
US9026920B2 (en) | 2015-05-05 |
EP2550630A4 (en) | 2014-02-19 |
US20110239126A1 (en) | 2011-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103069444B (zh) | 基于工作流的会话管理 | |
US20090106104A1 (en) | System and method for implementing an ad management system for an extensible media player | |
CN107736033B (zh) | 用于交互式视频体验的分层交互式视频平台 | |
WO2017193612A1 (zh) | 使用移动终端对电器设备进行操控的设备、***和方法 | |
US9116746B2 (en) | Workflows and presets for workflows | |
US20130283305A1 (en) | Systems and methods for a television and set-top box application development and deployment platform | |
US20130219429A1 (en) | Systems and methods for a television and set-top box application development and deployment platform | |
CN102934456B (zh) | 聚集的调谐器安排 | |
KR20060067621A (ko) | 지역별로 존재하는 컨텐츠를 글로벌로 공유하고 거래하는방법 및 시스템 | |
US20180376209A1 (en) | Video player framework for a media distribution and management platform | |
CN113242444B (zh) | 一种显示设备、服务器及媒资播放方法 | |
US20090106315A1 (en) | Extensions for system and method for an extensible media player | |
US20060085830A1 (en) | Method and apparatus for content provisioning in a video on demand system | |
CN108428144A (zh) | 推送信息订单的流量分配方法、服务分配方法及装置 | |
CN103081489A (zh) | 用于在内容提供商环境中提供社交混搭的***和方法 | |
US6438742B1 (en) | Object-oriented system and method for visually generating software applications | |
CN110851283A (zh) | 资源处理方法、装置以及电子设备 | |
EP2815526A2 (en) | Systems and methods for a television and set-top box application development and deployment platform | |
EP2815580A2 (en) | Systems and methods for a television and set-top box application development ans deployment platform | |
CN114302163B (zh) | 直播间广告处理方法及其装置、设备、介质 | |
CN113556610B (zh) | 视频合成控制方法及其装置、设备与介质 | |
KR101437146B1 (ko) | 개방형 연동형 데이터 방송 제공 시스템 | |
CN113663338A (zh) | 虚拟服务的订阅方法、装置及电子设备 | |
JP2001331591A (ja) | シナリオ連携型電子商取引システム構築方法及び装置 | |
CN112418796A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190109 Address after: The Middlesex County Patentee after: Sina Media Co., Ltd. Address before: Massachusetts, USA Patentee before: Beaumaris Networks Inc. |