CN104363286B - 一种基于工作流模板驱动的cdn内容分发方法及系统 - Google Patents
一种基于工作流模板驱动的cdn内容分发方法及系统 Download PDFInfo
- Publication number
- CN104363286B CN104363286B CN201410658446.3A CN201410658446A CN104363286B CN 104363286 B CN104363286 B CN 104363286B CN 201410658446 A CN201410658446 A CN 201410658446A CN 104363286 B CN104363286 B CN 104363286B
- Authority
- CN
- China
- Prior art keywords
- template
- node
- destination server
- server
- content distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- 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/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明适用于通信技术领域,提供了一种基于工作流模板驱动的CDN内容分发方法及系统,该方法包括:内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板;内容分发管理服务器通过模板引擎解析工作流模板生成控制命令,并向目的服务器发送控制命令;目的服务器根据控制命令执行控制操作,且操作完成后向内容分发管理服务器发送反馈消息。本发明通过灵活的工作流模板配置,可以实现各种各样的分发流程,操作简单,修改方便,降低分发流程的复杂度,解耦了分发操作与系统代码,降低分发系统的维护成本。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于工作流模板驱动的CDN内容分发方法及系统。
背景技术
CDN(Content Delivery Network,内容分发网络)内容分发是一个涉及大量服务器通讯,需求多变、流程复杂的庞大系统。一般内容分发系统涉及几十台服务器的通讯,大的内容分发系统则涉及上百台、上千台服务器的通讯。
传统的CDN内容分发系统,大都采用如图1所示的网状复杂结构。采用这种方式的内容分发系统,服务器之间相互通讯,通讯结构错综复杂。虽然传统方式也能满足CDN内容分发的复杂需求,但面对下发流程的多变需求,在配置服务器间如何及何时进行通讯时,操作不够灵活简单。有时为了某些特别的需求,甚至需要进行项目代码级别的改动,日常运营维护成本非常大。特别是,随着节目分发的数量越来越多,需要的服务器数量也越来越多,服务器之间的通讯就更加复杂,服务器之间的耦合度进一步增大,CDN的网状拓扑结构就更加错综复杂了。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种基于工作流模板驱动的CDN 内容分发方法及系统,其通过灵活的工作流模板配置,可以实现各种各样的分发流程,操作简单,修改方便,降低分发流程的复杂度,解耦了分发操作与系统代码,降低分发系统的维护成本。
为了实现上述目的,本发明提供一种基于工作流模板驱动的CDN内容分发方法,包括:
内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板;
内容分发管理服务器通过模板引擎解析所述工作流模板生成控制命令,并向目的服务器发送控制命令;
所述目的服务器根据所述控制命令执行控制操作,且操作完成后向所述内容分发管理服务器发送反馈消息。
本发明还提供一种基于工作流模板驱动的CDN内容分发系统,包括内容分发管理服务器以及目的服务器,所述内容分发管理服务器包括工作流模板管理模块和模板引擎,
所述工作流模板管理模块用于根据CDN内容分发的实际需求,配置工作流模板;
所述模板引擎用于解析所述工作流模板生成控制命令,并向所述目的服务器发送控制命令;
所述目的服务器用于根据所述控制命令执行控制操作,且操作完成后向所述内容分发管理服务器发送反馈消息。
在本发明中,内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板;内容分发管理服务器通过模板引擎解析工作流模板生成控制命令,并向目的服务器发送控制命令;目的服务器根据控制命令执行控制操作,且操作完成后向内容分发管理服务器发送反馈消息。本发明通过工作流模板配置控制下发流程,因此如果有新的需求,只要配置工作流模板即可,操作简单,修改方便,而传统模式要在相应的服务器上做具体的修改操作,如添加几十台服务器或修改分发顺序,需要对某组或多台服务器进行操作,工作量繁重,还容易出错。本发明采用树形结构的下发逻辑,降低了分发流程的复杂度,而传统模式采用网状结构,分发流程复杂杂乱。由于本发明已经实现很多必要的操作,如Copy,Sync等等,如果有新的需求,只要是该操作已经存在,仅通过配置模板即可满足。而传统模式,虽然需求的操作也已经存在,但是由于分发流程的特殊需求,需要修改某些服务器的代码,来添加判断才能实现该功能,这样就增加了分发操作与系统代码的耦合度。由于操作简单,修改方便,本发明的降低了分发系统的维护成本。
附图说明
图1是现有技术中CDN内容分发系统的结构框图;
图2是本发明一种基于工作流模板驱动的CDN内容分发系统的原理框图;
图3 是本发明一种实施例中模板引擎工作流分析的流程图;
图4 是本发明一种实施例中CDN内容分发系统的系统架构图;
图5 是本发明一种基于工作流模板驱动的CDN内容分发方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM) 和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图2是本发明一种基于工作流模板驱动的CDN内容分发系统的原理框图,该系统100包括内容分发管理服务器10以及目的服务器20,内容分发管理服务器10包括工作流模板管理模块11和模板引擎12。
工作流模板管理模块11用于根据CDN内容分发的实际需求,配置工作流模板。工作流模板中包含多个执行节点,且多个执行节点相互嵌套或者位于同一层级。每个执行节点包括至少一个属性,且执行节点的属性包括:分发流程类型、操作类型、操作状态、目的服务器编号、参数设置以及节点的可服务状态。
模板引擎12用于解析工作流模板生成控制命令,并向目的服务器20发送控制命令。由于工作流模板的多个执行节点是相互嵌套的,因此模板引擎12在进行解析时将多个执行节点由外层向内层进行解析。在进行解析时,模板引擎 12查询执行节点的操作类型以及操作者,执行操作者的开始方法,生成控制消息;模板引擎12将控制消息发送至目的服务器编号属性值对应的目的服务器20;模板引擎12根据目的服务器20的反馈消息判断为同步操作还是异步操作,若为同步操作则根据反馈消息中所反馈的目的服务器操作状态以及执行节点的当前操作状态修改执行节点的操作状态,然后解析下一个执行节点,若为异步操作则分发流程结束。
具体的,该内容分发管理服务器10用于管理内容分发,需要安装内容分发系统,内容分发系统包括工作流模板管理,服务器管理(包括对服务器的实时监控),模板引擎等部分。系统运行前,需根据实际情况,创建满足需求的工作流模板,例如分发流程模板、内容删除流程模板、节目同步流程模板等等。通过模板引擎解析工作流模板,并结合所有服务器的各种实时监控信息,内容分发系统管理整个内容的分发过程。
目的服务器20用于根据控制命令执行控制操作,且操作完成后向内容分发管理服务器10发送反馈消息。具体的,目的服务器20就是需要分发节目的服务器,每个服务器上都需要安装内容接受系统,该内容接收系统执行各种操作的功能,如拷贝视频,删除视频,视频转码等。
在本发明中,内容分发管理服务器10的内容分发系统与目的服务器20的内容接收系统通过HTTP协议发送控制消息、反馈消息进行相互通讯。内容分发系统接收到内容下发消息后,通过模板引擎20解析工作流模板,计算出向哪台服务器发送什么操作命令,向该服务器发送相应操作的控制命令;该服务器上的内容分发系统接收到消息后,进行相应操作的处理,处理完成后,发送反馈消息给内容分发管理服务器10的内容分发系统;内容分发系统接收到反馈消息并进行相应处理后,调用模板引擎继续解析工作流,并计算出下一步操作(如泉所述解析工作流模板进行计算),循环执行这个过程,直到节目分发完成。借此,本发明通过工作流模板配置控制下发流程,因此如果有新的需求,只要配置工作流模板即可,操作简单,修改方便,而传统模式要在相应的服务器上做具体的修改操作,如添加几十台服务器或修改分发顺序,需要对某组或多台服务器进行操作,工作量繁重,还容易出错。本发明采用树形结构的下发逻辑,降低了分发流程的复杂度,而传统模式采用网状结构,分发流程复杂杂乱。由于本发明已经实现很多必要的操作,如Copy,Sync等等,如果有新的需求,只要是该操作已经存在,仅通过配置模板即可满足。而传统模式,虽然需求的操作也已经存在,但是由于分发流程的特殊需求,需要修改某些服务器的代码,来添加判断才能实现该功能,这样就增加了分发操作与系统代码的耦合度。由于操作简单,修改方便,本发明的降低了分发系统的维护成本。
本发明的重点在于内容分发技术是基于工作流的、模板驱动的、树形结构的。通过配置符合实际分发需求的工作流模板,利用模板引擎驱动,计算出节目的分发流程(如:先分发到哪些服务器,再分发到哪些服务器,各个环节需要哪些操作),以实现节目的分发操作。该技术采用树形结构的下发逻辑,并能直观的查看下发流程。
下面是本发明一个实施例中的工作流模板的代码。
从如上所示的工作流模板代码可以看出,工作流模板中包含多个执行节点 (如上所示的work),每个执行节点都是一个独立的分发原子操作,每个执行节点包括至少一个属性,例如:operation(分发流程类型或操作类型)、event(操作状态)、storage(目的服务器编号)、parameter(参数设置)、gapServable(节点的可服务状态)。每个执行节点都有自己的操作类型(即:如上所示,每个 work模块中operation的值),操作类型有COPY(复制)、RECEIVE(接收)、 DEL(删除)、TRANSCODE(转码)、TRACEBACK(溯源)、PACK(打包)、 UNPACK(解包)、NOTIFY(通知)、IDLE(空操作)、COMPELETE(完成) 等,这些原子操作组成了节目的整个分发流程各个环节。模板引擎12根据执行节点所设置的不同操作类型,发送不同的消息到相应的目的服务器20,以执行对应的操作,实现该原子操作,如:COPY表示拷贝视频文件;DEL表示删除视频文件;TRANSCODE表示对视频文件进行编码;PACK表示打包操作等。
每个执行节点的原子操作包含很多的状态,如NEW、READY、EXECUTE、 DONE、SERVABLE、ERROR等状态。每个状态都代表着不同的含义,如:一个执行节点新创建时,状态为NEW;当执行节点具备执行条件时,状态为 READY;执行节点正在执行操作时,状态为EXECUTE;执行节点执行操作完成时,状态为DONE;执行节点处于可服务状态时,状态为SERVABLE;执行节点执行操作失败时,状态为ERROR。
根据CDN内容分发的实际需求,可配置多个不同的工作流模板。在图如上所示的工作流模板代码中,由模板根节点workflow中的operation属性的值决定,如:PUBLISH表示分发流程;EXPUBLISH表示另一种分发流程;DELETE表示内容删除流程;SYNC表示节目同步流程等等。
工作流模板中,执行节点内的各属性值支持JavaScript语言(模板引擎可以解析JavaScript脚本语言)设置,因此,利用JavaScript语言灵活、轻便的特性,对属性值进行简单的配置,即可实现复杂的实际需求。如:storage值为 select(source(),1),表示先调用source()函数,得到所有CDN中央存储服务器的存储编号,再调用select()函数,根据这些服务器的各个存储容量大小等监控数据,得到一台服务器存储标号,把视频分发到这台服务器的指定存储上。
工作流模板中,执行节点(上述代码中的“work”)既可在同一层级,又可相互嵌套。同一层级表示为兄弟节点,在分发流程树形结构中的同一层。相互嵌套表示外层节点是相邻内层节点的父节点,在分发流程树形结构中,外层节点在相邻内层节点的上一层。每一层级的横向上有几个节点有两个因素决定。一、由执行节点中storage(storage表示各节点操作中的目的服务器编号)属性值的计算结果决定,没有storage属性的节点表示只有一个节点;二、在工作流模板中同一层次的执行节点数(即横向节点数)为把各节点中storage属性的值的计算结果相加得到。如上所示的工作流模板代码中,该工作流模板为一个有五层树形结构的内容分发流程;在<work id=”copyRegion”>节点中,storage通过 schema(node([’xa’,’qd’]),[1,1])函数,得到两台服务器存储,所以在实际内容分发中该层的横向层级上有两个节点;由于<work id=”copyRegionServer”>与<work id=”copyNodeServer”>在同一层级上,因此,该层级上横向节点数为这两个节点中storage属性值的计算结果值相加。
下面对如上所述的工作流模板代码进行分析,其中:
workflow:表示工作流模板根执行节点;
operation:分发流程类型。表示PUBLISH分发流程;
<work id=”response”>:表示id为response的执行节点;
operation:操作类型。值为COMPLETE,表示流程是否结束;
<work id=”copySource”>:表示id为copySource的执行节点;
operation:操作类型。值为RECEIVE,表示把视频分发到mfs(CDN中央存储中心)的操作;
storage:存储目的。值为select(source(),1),为JavaScript函数,表示把视频拷贝到CDN中央存储的服务器上;
<work id=”copyRegion”>:表示id为copyRegion的执行节点;
operation:操作类型。值为COPY,表示为视频拷贝操作;
storage:目的服务器编号。值为schema(node([’xa’,’qd’]),[1,1]),为JavaScript 函数,表示为从西安节点、青岛节点的服务器中,分别得到一台服务器的存储编号,作为目的存储;
gapServable:执行节点什么时候为可服务状态,对外提供服务。值为 gap(’node’),为JavaScript函数,表示只要该执行节点中一台服务器分发完成,就变为可服务状态;
parameter:参数设置。key=”:force”,表示是否强制分发到该服务器,即使存在网络不通、服务器有问题等情况;value=”true”,表示强制分发到该服务器;
<work id=”copyRegionServer”>:表示id为copyRegionServer的执行节点;
operation:操作类型。值为COPY,表示为视频拷贝操作;
storage:存储目的。值为schema(node(parent.node),null,parent.server),为JavaScript函数,其中,prarent.node表示上层执行节点中storage属性值中node 的值,即:’xa’,’qd’。parent.server表示上层执行节点中storage属性值中server 的值,即:’xa’,’qd’的服务器。node()函数表示获得’xa’,’qd’中所有服务器;schema() 函数表示按照数据库配置,每个执行节点有几台服务器需要分发视频;因此,该storage属性值为得到’xa’,’qd’节点中某几台下载服务器的集合;
<work id=”copyNode”>与<work id=”copyNodeServer”>:与5类似;
<work id=”deleteIdle”>:表示id为deleteIdle的执行节点;
operation:操作类型。值为IDLE,表示由事件触发的空操作;
event:事件类型,值为DONE,表示该执行节点的父节点<work id=”response”>的状态为DONE时,再执行该层及子层(如果存在子层)的操作。
从以上分析可以看出,把执行节点work从外层向内层解析就是整个的分发流程。每个执行节点都有自己的操作,可以根据不同的分发需求,修改为新的操作,或者添加其他操作的节点;每个节点的storage,gapServable,parameter, event等属性可以灵活配置,来满足复杂的或特殊的分发需要。
在CDN内容分发有新的需求时,可以修改工作流模板。例如需求:节目内容分发到CDN中央存储后,要先进行内容转码,再把转码后的内容分发到下层服务器(如:’xa’,’qd’)。具体的修改为:例如基于上述的工作流模板代码,在 copySource节点下添加一个新节点transcode,并把copyRegion节点及所有子层节点都向内嵌入一层,作为transcode节点的子层。具体修改如下所示,其中加粗字体部分为增加部分。
……
<work id=”copySource”>
<storage>select(source(),1)</storage>
<operation>RECEIVE</operation>
<work id=”transcode”>
<storage>parent.storage</storage>
<operation>TRANSCODE</operation>
<work id=”copyRegion”>
<storage>schema(node([’xa’,’qd’]),[1,1])</storage>
……
</work>
</work>
……
图3是本发明一种实施例中模板引擎工作流分析的流程图。其包括:
步骤S301,收到内容分发消息请求。
步骤S302,解析工作流模板,找到根执行节点。
步骤S303,判断执行节点的状态是否是执行状态,如果是,继续步骤S304,否则进入步骤S307。
步骤S304,找到执行节点中属性中操作类型和目的服务器编号属性,生成控制消息,并将控制消息发送至目的服务器编号属性值对应的服务器。具体的,例如如果为复制(COPY)操作,根据该操作找到对应的操作接口类(Operator),即CopyOperator,并执行其开始(start)方法,生成相应操作的控制(command) 消息,并把控制消息发送给节点中属性storage值(服务器的编号)对应的服务器。其中,Operator是分发系统中的操作接口类,它有很多不同的操作实现类,例如CopyOperator为实现拷贝视频文件的操作类。在这些操作类中都包含开始 (start)方法、结束(end)方法,如果不需要相应操作的话,其方法可以为空。
开始方法是分发系统在管理服务器端为执行相应操作做的一些工作,如:初始化数据、生产相应操作消息等。如CopyOperator中的开始方法主要是生产拷贝视频文件的消息(该消息将发送到目的服务器执行拷贝视频文件操作)。结束方法是分发系统在目的服务器执行完了相应操作,并返回反馈消息后,执行的一些相关工作。如CopyOperator中end方法为:如果目的服务器执行Copy成功,将在数据表中记录该操作,表示该服务器上已存在该节目,并把该节点状态改为成功;如果执行Copy失败,将把该节点状态改为失败。
步骤S305,判断控制消息对应的操作是否为同步操作,若是进入步骤S306,如果不是同步操作跳转到步骤S307。若控制消息对应的目的服务器操作是同步操作(一般由“收到反馈消息feedback”的流程触发),将修改节点的状态。是否同步还是异步,通过操作类型来定,如:CopyOpertor操作中的Copy消息,由于下载视频需要时间,无法判断什么时候完成,因此,把该操作设为异步操作;如PrepareOperator操作为分发系统做一些准备工作,做完后该节点即成功了,因此把该操作设为同步操作。
步骤S306,执行该操作对应的操作接口类的结束方法,然后进入步骤S308。不同的操作接口类的结束方法处理逻辑不同。如:CompleteOperator的end方法,将根据自身节点的状态,修改节目的状态(如:失败,可服务,有效等),并发送内容分发流程状态的反馈消息。模板引擎在接受到收到目的服务器的反馈消息,会找出对应的执行节点;判断反馈消息中执行结果的值,如果是成功,表示服务器成功处理完操作,然后调用Operator的feedback方法,如果失败同样需要调用Operator的feedback方法,修改节目状态。不同的operator的feedback 方法处理逻辑不同。如:CopyOperator的feedback方法,由于消息里的result 值为成功,则为写数据库操作,表示发送反馈消息的服务器已拷贝成功该内容。
步骤S307,内容分发过程结束。(服务器把相应操作处理成功或失败后,会发反馈消息feedback,将触发下发流程。见“收到反馈消息feedback”部分)
步骤S308,模板引擎判断该节点是否含有子节点,如果没有则进入步骤 S307;如果有则回到步骤S303。
图4是本发明一种实施例中CDN内容分发系统的系统架构图。在图4中,其中实线代表内容分发管理服务器10与目的服务器20之间的控制消息和反馈消息的传输路径,虚线代表目的服务器20之间的内容分发树形逻辑。
图5是本发明一种基于工作流模板驱动的CDN内容分发方法的流程图,该流程通过如图2所示的系统100实现,该方法包括:
步骤S501,内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板。本步骤通过工作流模板管理模块11实现。工作流模板中包含多个执行节点,且多个执行节点相互嵌套或者位于同一层级。执行节点包括至少一个属性,且所述执行节点的属性包括:分发流程类型、操作类型、操作状态、目的服务器编号、参数设置以及节点的可服务状态。
步骤S502,内容分发管理服务器通过模板引擎解析工作流模板生成控制命令,并向目的服务器发送控制命令。本步骤通过模板引擎12实现。
步骤S503,目的服务器根据控制命令执行控制操作,且操作完成后向内容分发管理服务器发送反馈消息。本步骤通过目的服务器20实现。优选的是本步骤包括:模板引擎将多个执行节点由外层向内层进行解析。
优选的是步骤S502还包括:模板引擎查询执行节点的操作类型以及操作者,执行操作者的开始方法,生成控制消息;所述内容分发管理服务器将控制消息发送至目的服务器编号属性值对应的目的服务器;根据目的服务器的反馈消息判断为同步操作还是异步操作,若为同步操作则根据反馈消息中所反馈的目的服务器操作状态以及执行节点的当前操作状态修改执行节点的操作状态,若为异步操作则分发流程结束。
综上所述,在本发明中,内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板;内容分发管理服务器通过模板引擎解析工作流模板生成控制命令,并向目的服务器发送控制命令;目的服务器根据控制命令执行控制操作,且操作完成后向内容分发管理服务器发送反馈消息。通过灵活的工作流模板配置,可以实现各种各样的分发流程,操作简单,修改方便,降低分发流程的复杂度,解耦了分发操作与系统代码,大大降低分发系统的维护成本。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种基于工作流模板驱动的CDN内容分发方法,其特征在于,包括:
内容分发管理服务器根据CDN内容分发的实际需求,配置工作流模板;
内容分发管理服务器通过模板引擎解析所述工作流模板生成控制命令,并向目的服务器发送控制命令;
所述目的服务器根据所述控制命令执行控制操作,且操作完成后向所述内容分发管理服务器发送反馈消息;
所述配置工作流模板的步骤中,所述工作流模板中包含多个执行节点,且所述多个执行节点相互嵌套或者位于同一层级;
所述内容分发管理服务器通过模板引擎解析所述工作流模板,向目的服务器发送控制命令的步骤包括:所述模板引擎将所述多个执行节点由外层向内层进行解析;
所述内容分发管理服务器通过模板引擎解析所述工作流模板,向目的服务器发送控制命令的步骤包括:
模板引擎查询所述执行节点的操作类型以及操作者,执行操作者的开始方法,生成控制消息;
所述内容分发管理服务器将所述控制消息发送至所述目的服务器编号属性值对应的所述目的服务器;
根据所述目的服务器的反馈消息判断为同步操作还是异步操作,若为同步操作则根据所述反馈消息中所反馈的目的服务器操作状态以及所述执行节点的当前操作状态修改所述执行节点的操作状态,若为异步操作则分发流程结束。
2.根据权利要求1所述的CDN内容分发方法,其特征在于,所述配置工作流模板的步骤中,所述执行节点包括至少一个属性,且所述执行节点的属性包括:分发流程类型、操作类型、操作状态、目的服务器编号、参数设置以及节点的可服务状态。
3.一种基于工作流模板驱动的CDN内容分发系统,其特征在于,包括内容分发管理服务器以及目的服务器,所述内容分发管理服务器包括工作流模板管理模块和模板引擎,
所述工作流模板管理模块用于根据CDN内容分发的实际需求,配置工作流模板;
所述模板引擎用于解析所述工作流模板生成控制命令,并向所述目的服务器发送控制命令;
所述目的服务器用于根据所述控制命令执行控制操作,且操作完成后向所述内容分发管理服务器发送反馈消息;
所述工作流模板中包含多个执行节点,且所述多个执行节点相互嵌套或者位于同一层级;
所述模板引擎还用于将所述多个执行节点由外层向内层进行解析;
所述模板引擎还用于查询所述执行节点的操作类型以及操作者,执行操作者的开始方法,生成控制消息;
所述模板引擎还用于将所述控制消息发送至目的服务器编号属性值对应的所述目的服务器;
所述模板引擎还用于根据所述目的服务器的反馈消息判断为同步操作还是异步操作,若为同步操作则根据所述反馈消息中所反馈的目的服务器操作状态以及所述执行节点的当前操作状态修改所述执行节点的操作状态,若为异步操作则分发流程结束。
4.根据权利要求3所述的CDN内容分发系统,其特征在于,所述执行节点包括至少一个属性,且所述执行节点的属性包括:分发流程类型、操作类型、操作状态、目的服务器编号、参数设置以及节点的可服务状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658446.3A CN104363286B (zh) | 2014-11-18 | 2014-11-18 | 一种基于工作流模板驱动的cdn内容分发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658446.3A CN104363286B (zh) | 2014-11-18 | 2014-11-18 | 一种基于工作流模板驱动的cdn内容分发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104363286A CN104363286A (zh) | 2015-02-18 |
CN104363286B true CN104363286B (zh) | 2018-01-16 |
Family
ID=52530512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410658446.3A Active CN104363286B (zh) | 2014-11-18 | 2014-11-18 | 一种基于工作流模板驱动的cdn内容分发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104363286B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059798B (zh) * | 2016-05-18 | 2019-10-01 | 厦门市美亚柏科信息股份有限公司 | 一种基于节点集合的多层管理系统 |
CN106407339A (zh) * | 2016-09-05 | 2017-02-15 | 用友优普信息技术有限公司 | Html文件的分布式发布方法和html文件的分布式发布装置 |
CN109801029B (zh) * | 2017-11-16 | 2021-04-23 | 航天信息股份有限公司 | 跨节点业务协作系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710342A (zh) * | 2008-09-05 | 2010-05-19 | 埃森哲环球服务有限公司 | 增强的数字内容分发 |
CN103069444A (zh) * | 2010-03-24 | 2013-04-24 | 宝美瑞思网络公司 | 基于工作流的会话管理 |
CN103577906A (zh) * | 2012-07-20 | 2014-02-12 | 杭州勒卡斯广告策划有限公司 | 工作流生成方法、工作流执行方法以及工作流执行系统 |
CN103617066A (zh) * | 2013-12-16 | 2014-03-05 | 中国农业银行股份有限公司 | 一种工作流引擎及其实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9916133B2 (en) * | 2013-03-14 | 2018-03-13 | Microsoft Technology Licensing, Llc | Software release workflow management |
-
2014
- 2014-11-18 CN CN201410658446.3A patent/CN104363286B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710342A (zh) * | 2008-09-05 | 2010-05-19 | 埃森哲环球服务有限公司 | 增强的数字内容分发 |
CN103069444A (zh) * | 2010-03-24 | 2013-04-24 | 宝美瑞思网络公司 | 基于工作流的会话管理 |
CN103577906A (zh) * | 2012-07-20 | 2014-02-12 | 杭州勒卡斯广告策划有限公司 | 工作流生成方法、工作流执行方法以及工作流执行系统 |
CN103617066A (zh) * | 2013-12-16 | 2014-03-05 | 中国农业银行股份有限公司 | 一种工作流引擎及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104363286A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106897810B (zh) | 业务处理方法和系统、工作流引擎和系统、业务系统 | |
CN102930062B (zh) | 一种数据库快速水平扩展的方法 | |
CN102779185B (zh) | 一种高可用分布式全文索引方法 | |
CN103150624B (zh) | 基于工艺流程图的设备管理监控系统 | |
US11496584B2 (en) | Extraction and distribution of content packages in a digital services framework | |
CN104050248B (zh) | 一种文件存储系统及存储方法 | |
CN108021809A (zh) | 一种数据处理方法及系统 | |
CN108171473A (zh) | 一种数据分析处理系统及数据分析处理方法 | |
US11675769B2 (en) | On-demand, dynamic and optimized indexing in natural language processing | |
CN107800808A (zh) | 一种基于Hadoop架构的数据存储系统 | |
CN104363286B (zh) | 一种基于工作流模板驱动的cdn内容分发方法及系统 | |
CN108108466A (zh) | 一种分布式系统日志查询分析方法及装置 | |
CN110119393A (zh) | 代码版本管理系统及方法 | |
CN101894348A (zh) | 一种自扩展的联机交易系统及其实现方法 | |
US20210089426A1 (en) | Parsing hierarchical session log data for search and analytics | |
US10235191B2 (en) | Application specific configurable graphical user interface | |
US20080320011A1 (en) | Increasing file storage scale using federated repositories | |
CN103561083A (zh) | 一种物联网数据处理方法 | |
CN106888264B (zh) | 一种数据交换方法和装置 | |
CN108984156A (zh) | 一种基于模板的免代码开发的软件自动生成方法及系统 | |
CN103310304B (zh) | 流程模型的管理方法和装置 | |
CN102904739B (zh) | 一种实现事件转发的方法及通用信息模型cim服务器 | |
US8108470B2 (en) | Message management system and method | |
US11394626B2 (en) | Digital services framework | |
CN103384239B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |