CN104102949B - 一种分布式工作流装置及其处理工作流的方法 - Google Patents
一种分布式工作流装置及其处理工作流的方法 Download PDFInfo
- Publication number
- CN104102949B CN104102949B CN201410302665.8A CN201410302665A CN104102949B CN 104102949 B CN104102949 B CN 104102949B CN 201410302665 A CN201410302665 A CN 201410302665A CN 104102949 B CN104102949 B CN 104102949B
- Authority
- CN
- China
- Prior art keywords
- workflow
- node
- task
- state
- state node
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种分布式工作流装置及其处理工作流的方法,其中的装置具体包括:集群中的主节点和状态节点;其中,所述主节点用于为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务;所述状态节点,用于作为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;所述状态节点,还用于作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。本发明实施例具有通用性,且能够增加工作流处理的稳定性和吞吐量。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式工作流装置及其处理工作流的方法。
背景技术
工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流建模通常由工作流引擎来完成。
在大型互联网的内容生产系统中,存在着很多类似工作流的生产系统,比如一个视频的发布过程,一般包括:转码、非编、上传、发布等工序,其中每个工序都相互关联,下一工序的开始执行取决于上一工序的结束状态,因此形成了一个典型的视频生产工作流。
与传统工作流不同的是,视频生产工作流中的每个工序都是一个子系统。由于视频生产工作流涉及不同的子系统,而且每个子系统又运行在各自的环境中,子系统之间若需要协同工作,一般都会针对某个具体问题进行定制。例如,为了降低系统之间的耦合度,常常需要借助中间件技术(比如消息系统)进行子系统之间的协调。参照图1,示出了现有一种多系统协调工作流的结构示意图,子系统A与子系统B之间、子系统B与子系统C之间、以及子系统C和子系统D之间均需要通过消息系统来进行解耦合。
图1所示多系统协调工作流的结构可以满足特定的生产需求,但也存在如下缺点:
第一,通用性差;一般定制系统都是为某个特性需求定制的,定制的工作主要包括各个子系统之间的接口、消息系统的通信协议等,如果有新的需求出现,新的需求无法重用现有的接口和协议。
第二,稳定性差;由于通过消息系统来传递各系统之间的通信信息,而通常高可靠消息系统的扩展性不佳,且消息一旦积压容易造成整个消息系统的不可用,进而导致整个工作流系统阻塞。
第三,缺少统一控制;各个子系统都是独立运行的,唯一的联系是通过消息系统进行通信,因此无法了解工作流的整体运行状态。
第四,不便于维护;系统的维护升级需要各个子系统协调完成,没有统一的操作接口,会产生额外的运维负担。
发明内容
本发明实施例所要解决的技术问题是提供一种分布式工作流装置及其处理工作流的方法,具有通用性,且能够增加工作流处理的稳定性和吞吐量。
为了解决上述问题,本发明公开了一种分布式工作流装置,包括:集群中的主节点和状态节点;
其中,所述主节点用于为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务;
所述状态节点,用于作为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
所述状态节点,还用于作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
优选的,所述状态节点,还用于向所述主节点发送心跳信息,所述心跳信息中包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
优选的,所述分布式工作流装置还包括:共享存储系统;
则所述状态节点还用于在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点包括所述工作流任务的上下文信息。
优选的,所述主节点,还用于依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
优选的,所述主节点包括:
分配模块,用于根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
推送模块,用于向分配的该状态节点推送所述工作流定义。
优选的,所述主节点和所述状态节点之间、及所述状态节点之间通过远程过程调用协议进行通信。
另一方面,本发明还公开了一种分布式工作流装置处理工作流的方法,所述分布式工作流装置包括集群中的主节点和状态节点;所述方法包括:
所述主节点为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务;
所述状态节点为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
所述状态节点作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
优选的,所述方法还包括:所述状态节点,向所述主节点发送心跳信息,所述心跳信息中包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
优选的,所述分布式工作流装置还包括共享存储系统;
则所述方法还包括:所述状态节点在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点包括所述工作流任务的上下文信息。
优选的,所述方法还包括:所述主节点依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
优选的,所述主节点为用户提交的工作流定义分配一个对应的状态节点的步骤,包括:
所述主节点根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
所述主节点向分配的该状态节点推送所述工作流定义。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例提供的分布式工作流装置不是定制一个具体的工作流组成,而是在工作流定义中提供一套通用的任务接口,该任务接口可用于调用任意子系统来执行相应的工作流任务,这样,用户可以根据需求自定义工作流任务及对应的任务接口,也即上述分布式工作流装置可以适用于不断变化的任意需求,因此具有通用性。
并且,所述分布式工作流装置中,管理调度工作流任务的不是主节点,而是主节点分配的状态节点,也即,工作流可分布到不同的节点上管理调度,因此能够有效避免主节点成为工作流处理的单点和瓶颈,既能够增加工作流处理的稳定性,又能够增加工作流处理的吞吐量
附图说明
图1是现有一种多系统协调工作流的结构示意图;
图2是本发明的一种分布式工作流装置实施例一的结构框图;
图3是本发明实施例一种视频生产工作流的处理过程示例;
图4是本发明实施例一种工作流编译与执行跟踪的示意图;
图5是本发明的一种分布式工作流装置处理工作流的方法实施例的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例提供的分布式工作流装置不是定制一个具体的工作流组成,而是在工作流定义中提供一套通用的任务接口,该任务接口可用于调用任意子系统来执行相应的工作流任务,这样,用户可以根据需求自定义工作流任务及对应的任务接口,也即上述分布式工作流装置可以适用于不断变化的任意需求,因此具有通用性。
实施例一
参照图2,示出了本发明的一种分布式工作流装置实施例一的结构框图,具体可以包括:集群中的主节点201和状态节点202;
其中,所述主节点201用于为用户提交的工作流定义分配一个对应的状态节点202;所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务;
所述状态节点202,可用于作为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
所述状态节点202,还可用于作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
主节点201
本发明实施例中,主节点201为集群的管理节点,主要用于负责状态节点202的管理、接收新工作流定义的提交、新工作流定义的分配、集群的资源管理、以及每个状态节点202的负载均衡等。
工作流定义主要用于将用户的需求转化为实际可运行的逻辑,并分发给相关的子系统执行。所述工作流定义可以提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务,并且,子系统可以在工作流任务中定义各自的实现逻辑。以[转码]任务为例,转码系统可以在[转码]任务中定义实现向转码系统分发一个转码任务的实现逻辑,那么,在执行[转码]任务的过程中,可以通过[转码]任务的任务接口调用对应的转码系统执行所述[转码]任务;并且,所述任务接口还适用于对应子系统的通知与回调。
在实际应用中,子系统在工作流任务中定义各自的实现逻辑时,可以将各自的执行抽象成一系列的事件,比如开始、初始化、执行、失败、完成等,以提高工作流任务的任务接口的通用性。
在具体实现中,可以提供用户使用方法,这里的用户使用方法主要包括:在运行系统的基础上提供的一套API(应用程序编程接口,Application Programming Interface)和SDK(软件开发工具包,Software Development Kit)。用户可以根据SDK实现各工作流任务与子系统的调用关系,以及使用工作流定义API定义一个工作流的各任务执行的拓扑结构,并且,可使用工作流提交API可实现提交工作流定义到主节点。
在实际应用中,用户可以通过和主节点之间的RPC(远程过程调用协议,RemoteProcedure Call Protocol)协议提交工作流定义,或者,可以在客户端程序中直接提交工作流定义,或者,也可以通过封装好的分布式工作流工具将打包的工作流定义文件提交。
在本发明的一种优选实施例中,所述主节点201具体可以包括:
分配模块,用于根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
推送模块,用于向分配的该状态节点推送所述工作流定义。
例如,当主节点201收到一个新提交的工作流定义后,可以根据集群当前的负载情况,直接将该工作流定义分配给某个相对空闲的状态节点202。所述分配能够实现每个状态节点202的负载均衡,而主节点201主动向状态节点202推送工作流定义的方式能够降低处理延迟,从而能够提高工作流的处理效率。
状态节点202
状态节点202为集群中的实际工作节点,主要用于负责工作流的启动、任务调度、状态跟踪、某个状态节点202出错后的重新调度以及向主节点201汇报整个工作流的执行进度等。
在实际应用中,在接受主节点202分配的工作流定义后,状态节点202可以将该工作流定义编译成一些有依赖关系的工作流任务,并将各工作流任务与状态节点202进行关联,以表明该工作流任务会在该状态节点202上执行,此后,状态节点202会负责该工作流的启动和任务调度。具体地,对于某个工作流任务而言,当其所依赖的所有工作流任务执行完成后,管理该工作流的状态节点才会调度该工作流任务执行。
参照图3,示出了本发明实施例一种视频生产工作流的处理过程示例,该视频生产工作流具体可以包括如下步骤:读取原始视频数据->转码->非编->分发->发布(内部系统,外部系统),其中,发布步骤又进一步包括并行的两个部分:一个是向内部资产管理系统注册该视频管理信息,另一个是向外部系统(比如对外的HTTP服务器)推送视频信息;
用户可以将该视频生产工作流的定义通过客户端提交至主节点,假设集群中的状态节点具体可以包括:状态节点1、状态节点2、状态节点3、状态节点4和状态节点5等等,那么,主节点在接收到客户端提交的该视频生产工作流的定义后,可以委托状态节点3作为该视频生产工作流的管理调度节点,具体地,状态节点3可以将该视频生产工作流的定义编译为[读取]、[转码]、[非编]、[分发]、[外部发布]和[内部发布]等工作流任务及对应的任务接口,将这些工作流任务分发到集群中的状态节点之上,并控制这些工作流任务在各自的状态节点之上执行,相应的执行过程具体可以包括:
首先,状态节点4执行[读取]任务以将原始视频数据下载到转码存储系统中;
其次,状态节点1执行[转码]任务;
接着,状态节点2执行[非编]任务;
最后,[外部发布][内部发布]两个任务并行在状态节点3和状态节点5上执行。
需要说明的是,本发明实施例的所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务,并且,子系统可以在工作流任务中定义各自的实现逻辑。以[转码]任务为例,转码系统可以在[转码]任务中定义实现向转码系统分发一个转码任务的实现逻辑,那么,上述状态节点1在执行[转码]任务的过程中,可以通过[转码]任务的任务接口调用对应的转码系统执行所述[转码]任务;上述任务接口同样可以在执行[读取]、[非编]、[分发]、[外部发布]和[内部发布]等工作流任务的过程中调用对应的子系统,因此具有通用性。
综上,本发明实施例具有如下优点:
本发明实施例提供的分布式工作流装置不是定制一个具体的工作流组成,而是在工作流定义中提供一套通用的任务接口,该任务接口可用于调用任意子系统来执行相应的工作流任务,这样,用户可以根据需求自定义工作流任务及对应的任务接口,也即上述分布式工作流装置可以适用于不断变化的任意需求,因此具有通用性。
并且,所述分布式工作流装置中,管理调度工作流任务的不是主节点,而是主节点分配的状态节点,也即,工作流可分布到不同的节点上管理调度,因此能够有效避免主节点成为工作流处理的单点和瓶颈,既能够增加工作流处理的稳定性,又能够增加工作流处理的吞吐量。
实施例二
实施例二的分布式工作流装置在上述图2所示实施例的基础上,进一步还可以包括如下可选技术方案。
实施例二的所述状态节点202,还可用于向所述主节点201发送心跳信息,所述心跳信息中具体可以包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
实施例二中,状态节点202可以定时向主节点201发送心跳信息,而主节点201可根据该心跳信息确定哪些状态节点202是存活的,如果一个时间段内没有收到某状态节点202的心跳信息,主节点201则可认为该状态节点202宕机,便会重新安排工作流和/或工作流任务到其他状态节点上执行;这里的时间段的长度可由本领域技术人员根据实际情况确定,本发明实施例对具体的时间段的长度不加以限制。
本发明实施例的心跳信息具体可以包括:剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项;
其中,对于任务执行节点而言,执行某个工作流任务会占用一定的资源量,而当该工作流任务结束后,该工作流任务所占用资源会被释放;故剩余可用资源和工作流需要的资源量可作为新的工作流定义的分配依据,具体地,剩余可用资源可用于表示状态节点202的负载情况,而工作流需要的资源量可表示状态节点202的负载能力,主节点201根据各状态节点202的剩余可用资源可分析得到对应状态节点202的空闲情况,从而可以将新的工作流定义分配到相对空闲的状态节点202之上,以及,主节点201根据各状态节点202的工作流需要的资源量可分析得到对应状态节点202能够处理的工作流数目,从而决定相对空闲的状态节点202能够处理多少个工作流,通常状态节点202能够处理的工作流数目为其剩余可用资源与每个工作流需要的资源量的比值;
工作流任务的执行状态来自作为任务执行节点的状态节点202,可用于表示对应状态节点202之上执行的各工作流任务的执行状态;
所管理调度工作流的执行状态来自作为管理调度节点的状态节点202,可用于表示对应状态节点202之上管理调度的工作流的整体运行状态;由于状态节点202通过心跳信息将所管理调度工作流的执行状态发送给主节点201,故用户可通过查询主节点201了解每个工作流的整体运行状态。
在实际中,对于作为管理调度节点的状态节点202而言,主节点201可以将所有状态节点202汇报的各工作流任务汇总,并在心跳响应中携带其管理调度工作流的各工作流任务,以使作为管理调度节点的状态节点202得到其工作流的整体运行状态。
或者,状态节点202还可以监控工作流中工作流任务的执行。参照图4,示出了本发明实施例一种工作流编译与执行跟踪的示意图,其中,主节点将客户端提交的工作流定义分配给状态节点C,状态节点C将工作流定义编译成有相互依赖关系的四个任务,分别为任务1、任务2、任务3与任务4,同时将4个任务分配到不同的状态节点上执行,并且,状态节点3根据编译结果对工作流任务进行调度,相关状态节点上的工作流任务的执行受状态节点C的控制,同时保持一定的执行顺序,如首先执行任务1,然后任务2和任务3并行执行,最后执行任务4等等。
实施例三
实施例三的分布式工作流装置在上述图2所示实施例的基础上,进一步还可以包括如下可选技术方案。
实施例三的所述分布式工作流装置还可以包括:共享存储系统;
则所述状态节点202还可用于在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点具体可以包括所述工作流任务的上下文信息。
状态节点202在执行工作流任务的过程中不可避免地发生故障,而传统的恢复工作流任务的做法是在其他状态节点202上从头开始执行该工作流任务,在遇到复杂的工作流任务时,所述从头开始执行的做法无疑会花费大量的时间。
实施例三中,202状态节点可以不断向共享存储系统中写入任务运行的检查点,这样,当状态节点202发生故障时,运行在其上面的工作流任务可以迅速在其他状态节点上恢复运行。
如图4所示,状态节点A在执行任务1的时候,可以定时向共享存储系统序列化工作流任务的上下文信息,如数据处理的位置、消息系统的偏移量等进度信息等等;这样,当状态节点A出错退出时,状态可以节点C根据这些存储的上下文信息,在其他状态节点上继续从最后一个检查点执行以恢复该任务,由于从最后一个检查点开始执行而非从头开始执行,故能够节省恢复时间,提高处理效率。
需要说明的是,在实际应用中,主节点201可以通过心跳信息感知某状态节点202的故障,并将对应的故障信息发送给作为管理调度节点的状态节点202。
另外,上述共享存储系统除了存储上述检查点外,还可以存储如下信息:
1.工作流定义的相关信息;
具体地,主节点201在客户端提交的工作流定义后,可以将相关的工作流库文件、配置信息等存放到上述共享存储系统中,以便共享给其他状态节点;而在某状态节点收到分配的工作流定义后,可以从共享存储系统中加载相关的工作流库文件、配置信息以进行工作流的编译和管理调度;
2.工作流的执行状态信息;
管理调度工作流的状态节点202可以把工作流的执行状态存放到共享存储系统中;以及,主节点可以将所有工作流的执行状态存放至共享存储系统中,以方便用户的查询。
实施例四
实施例四的分布式工作流装置在上述图2所示实施例的基础上,进一步还可以包括如下可选技术方案。
实施例四的所述主节点201,还可用于依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
实施例四中,新增节点可通过向主节点201进行注册加入集群,以参与计算执行,故本实施例具有扩展性好的优点。
另外,需要说明的是,由于本发明实施例的分布式工作流装置为分布式架构,在维护升级时,如果是兼容性升级(小版本变更,通信协议兼容),无需停止整个集群而是逐台节点停止并升级,由于系统具有一定的容错机制,升级过程不会对现有工作流的执行造成影响;如果是非兼容性升级(大版本变更,通信协议不兼容),则需要首先停止整个集群,然后重新部署大版本,重新启动完成升级。
实施例五
实施例五的分布式工作流装置在上述图2所示实施例的基础上,进一步还可以包括如下可选技术方案。
实施例五的所述主节点201和所述状态节点202之间、及所述状态节点202之间可以通过远程过程调用协议进行通信。
在实际应用中,所述远程过程调用协议具体可以包括如下通信协议中的一项或多项:
所述状态节点向所述主节点发送心跳信息所适用的通信协议;
主节点向状态节点推送用户提交的工作流定义所适用的通信协议;
管理调度工作流任务的状态节点和运行工作流任务的状态节点之间的通信协议,用于同步工作流任务的运行状态;
客户端提交工作流的通信协议,该协议存在于客户端和主节点之间。
综上,相对于现有方案通过消息系统来传递各子系统之间的通信信息,本发明实施例中工作流任务之间通过RPC直接通信,因此具有通信效率高、扩展方便等优点。
参照图5,示出了本发明的一种分布式工作流装置处理工作流的方法实施例的步骤流程图,所述分布式工作流装置具体可以包括集群中的主节点和状态节点;所述方法具体可以包括如下步骤:
步骤501、所述主节点为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口可用于调用子系统来执行相应的工作流任务;
步骤502、所述状态节点为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
步骤503、所述状态节点作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
在实际应用中,所述主节点和所述状态节点之间、及所述状态节点之间可以通过远程过程调用协议进行通信。
在本发明的一种优选实施例中,所述方法还可以包括:所述状态节点,向所述主节点发送心跳信息,所述心跳信息中包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
在本发明的另一种优选实施例中,所述分布式工作流装置还可以包括共享存储系统;
则所述方法还可以包括:所述状态节点在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点包括所述工作流任务的上下文信息。
在本发明的再一种优选实施例中,所述方法还可以包括:所述主节点依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
在本发明实施例中,优选的是,所述主节点为用户提交的工作流定义分配一个对应的状态节点的步骤,具体可以包括:
所述主节点根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
所述主节点向分配的该状态节点推送所述工作流定义。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
对于方法实施例而言,由于其与装置实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种分布式工作流装置及其处理工作流的方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种分布式工作流装置,其特征在于,包括:集群中的主节点和状态节点;
其中,所述主节点用于为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口为通用的任务接口,可用于调用子系统来执行相应的工作流任务;
所述状态节点,用于作为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
所述状态节点,还用于作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
2.根据权利要求1所述的分布式工作流装置,其特征在于,所述状态节点,还用于向所述主节点发送心跳信息,所述心跳信息中包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
3.根据权利要求1所述的分布式工作流装置,其特征在于,所述分布式工作流装置还包括:共享存储系统;
则所述状态节点还用于在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点包括所述工作流任务的上下文信息。
4.根据权利要求1所述的装置,其特征在于,所述主节点,还用于依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
5.根据权利要求1所述的分布式工作流装置,其特征在于,所述主节点包括:
分配模块,用于根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
推送模块,用于向分配的该状态节点推送所述工作流定义。
6.根据权利要求1所述的分布式工作流装置,其特征在于,所述主节点和所述状态节点之间、及所述状态节点之间通过远程过程调用协议进行通信。
7.一种分布式工作流装置处理工作流的方法,其特征在于,所述分布式工作流装置包括集群中的主节点和状态节点;所述方法包括:
所述主节点为用户提交的工作流定义分配一个对应的状态节点;所述工作流定义提供有任务接口,所述任务接口为通用的任务接口,可用于调用子系统来执行相应的工作流任务;
所述状态节点为管理调度节点,将所述工作流定义编译为工作流任务及相应的任务接口,并将所述工作流任务及相应的任务接口分发给对应的状态节点;
所述状态节点作为任务执行节点,依据通过所述任务接口调用对应的子系统执行所述工作流任务。
8.根据权利要求7所述的方法,其特征在于,还包括:所述状态节点,向所述主节点发送心跳信息,所述心跳信息中包括剩余可用资源、工作流任务的执行状态、所管理调度工作流的执行状态和工作流需要的资源量中的一项或多项。
9.根据权利要求7所述的方法,其特征在于,所述分布式工作流装置还包括共享存储系统;
所述方法还包括:所述状态节点在执行所述工作流任务的过程中,向所述共享存储系统中写入检查点;其中,所述检查点包括所述工作流任务的上下文信息。
10.根据权利要求7所述的方法,其特征在于,还包括:所述主节点依据新增节点的注册信息,将该新增节点作为状态节点加入所述集群以参与计算执行。
11.根据权利要求7所述的方法,其特征在于,所述主节点为用户提交的工作流定义分配一个对应的状态节点的步骤,包括:
所述主节点根据所述集群当前的负载情况,将用户提交的工作流定义分配给一个对应的状态节点;
所述主节点向分配的该状态节点推送所述工作流定义。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302665.8A CN104102949B (zh) | 2014-06-27 | 2014-06-27 | 一种分布式工作流装置及其处理工作流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302665.8A CN104102949B (zh) | 2014-06-27 | 2014-06-27 | 一种分布式工作流装置及其处理工作流的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104102949A CN104102949A (zh) | 2014-10-15 |
CN104102949B true CN104102949B (zh) | 2018-01-26 |
Family
ID=51671085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410302665.8A Active CN104102949B (zh) | 2014-06-27 | 2014-06-27 | 一种分布式工作流装置及其处理工作流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104102949B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630589A (zh) * | 2014-11-24 | 2016-06-01 | 航天恒星科技有限公司 | 分布式流程调度系统及流程调度、执行方法 |
US10235337B2 (en) * | 2015-06-24 | 2019-03-19 | EMC IP Holding Company LLC | Distributed work flow using database replication |
CN105224396B (zh) * | 2015-10-14 | 2019-10-18 | 深圳市金证科技股份有限公司 | 一种业务数据处理方法和装置 |
CN105320523B (zh) * | 2015-10-16 | 2019-12-06 | 北京恒华伟业科技股份有限公司 | 一种数据处理方法和装置 |
CN105955820A (zh) * | 2016-04-20 | 2016-09-21 | 北京云宏信达信息科技有限公司 | 作业流控制方法、装置和系统 |
CN107679817B (zh) * | 2016-08-02 | 2022-02-08 | 阿里巴巴集团控股有限公司 | 工作流执行方法及相关设备 |
CN107124453B (zh) * | 2016-11-30 | 2020-05-12 | 西安大唐电信有限公司 | 平台互联网关堆叠部署的负载均衡系统及视频呼叫方法 |
CN107332846A (zh) * | 2017-07-04 | 2017-11-07 | 武汉斗鱼网络科技有限公司 | 视频播出方法及系统 |
CN107484011B (zh) * | 2017-10-09 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种视频资源解码方法及装置 |
CN107844368A (zh) * | 2017-10-26 | 2018-03-27 | 苏州市伏泰信息科技股份有限公司 | 环卫平台任务调度系统 |
CN110035103A (zh) * | 2018-01-12 | 2019-07-19 | 宁波中科集成电路设计中心有限公司 | 一种节点间数据可传递的分布式调度系统 |
CN110209537B (zh) * | 2018-02-28 | 2020-09-11 | 杭州海康威视系统技术有限公司 | 一种视频数据处理方法、装置、系统及电子设备 |
CN112445629A (zh) * | 2019-09-05 | 2021-03-05 | 广东华风海洋信息系统服务有限公司 | 一种轻量化低耦合工作状态变化收集通知方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719931A (zh) * | 2009-11-27 | 2010-06-02 | 南京邮电大学 | 一种基于多智能主体的层次式云端计算模型构建方法 |
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN103399790A (zh) * | 2013-08-20 | 2013-11-20 | 浙江中控技术股份有限公司 | 一种基于分布式实时数据库系统的事务提交方法及装置 |
CN103581332A (zh) * | 2013-11-15 | 2014-02-12 | 武汉理工大学 | HDFS架构及HDFS架构中NameNode节点的压力分解方法 |
-
2014
- 2014-06-27 CN CN201410302665.8A patent/CN104102949B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719931A (zh) * | 2009-11-27 | 2010-06-02 | 南京邮电大学 | 一种基于多智能主体的层次式云端计算模型构建方法 |
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎系统 |
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN103399790A (zh) * | 2013-08-20 | 2013-11-20 | 浙江中控技术股份有限公司 | 一种基于分布式实时数据库系统的事务提交方法及装置 |
CN103581332A (zh) * | 2013-11-15 | 2014-02-12 | 武汉理工大学 | HDFS架构及HDFS架构中NameNode节点的压力分解方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104102949A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102949B (zh) | 一种分布式工作流装置及其处理工作流的方法 | |
AU2007286155B2 (en) | Distributing services in graph-based computations | |
Warneke et al. | Exploiting dynamic resource allocation for efficient parallel data processing in the cloud | |
Candan et al. | Frontiers in information and software as services | |
US7823126B2 (en) | Robot control software framework in open distributed process architecture | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
Sharma et al. | A complete survey on software architectural styles and patterns | |
CN104067257B (zh) | 自动化事件管理系统,管理事件方法及事件管理系统 | |
CN103279390B (zh) | 一种面向小作业优化的并行处理系统 | |
EP1615129A2 (en) | Implementation of concurrent programs in object-oriented languages | |
CA2883159A1 (en) | High performance data streaming | |
US9098359B2 (en) | Durable execution of long running applications | |
US10038753B2 (en) | Network-independent programming model for online processing in distributed systems | |
CN110413673A (zh) | 数据库数据统一采集与分发方法及系统 | |
CN107203421B (zh) | 一种云计算环境中自适应的组合工作流方法 | |
CN110597634A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN101789944B (zh) | 多功能电能表通信协议栈的开发系统 | |
CN110944067B (zh) | 一种负载均衡方法和服务器 | |
CN110908793A (zh) | 长时任务执行方法、装置、设备及可读存储介质 | |
CN109865292A (zh) | 一种基于游戏引擎的游戏资源构建方法和装置 | |
CN107025134A (zh) | 数据库服务系统及兼容多种数据库的方法 | |
CN110427260A (zh) | 主机作业调度方法、装置及系统 | |
CN116643854A (zh) | 一种服务编排方法、装置、流程控制器及任务处理器 | |
CN109558254A (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN109450913A (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 |