一种动态分布式调度方法和系统的制作方法

文档序号:7983376阅读:214来源:国知局
一种动态分布式调度方法和系统的制作方法
【专利摘要】本发明提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度方法,其特征在于以下方法,包括:a)构建双层终端节点结构,底层终端节点为移动终端,上层终端节点为PC机,所述底层终端节点与所述上层终端节点相连接;b)采用基于hudson系统的扩展功能服务器对所述双层终端节点结构进行动态调度。根据本发明的另一个方面,提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度系统,包括以下模块:守护进程模块、代理模块、管理模块,完成上述方法所描述的功能。本发明克服了Hudson服务器的弊端,实现了任务的实时动态调度。此外,可利用本发明的特点,通过增加终端设备来提高项目运行的并行性。
【专利说明】一种动态分布式调度方法和系统
【技术领域】
[0001]本发明涉及动态分布式调度【技术领域】,尤其涉及一种基于hudson扩展功能的双层终端节点的动态分布式调度方法和系统。
【背景技术】
[0002]Hudson是一款业界较流行的持续集成服务器,它拥有强大的插件框架,支持多插件开发与运行。同时,它也支持基于PC的分布式调度,只要指定机器的标签,即可将具有同类标签的任务分发给该机器运行。其实现方案为将PC挂接为自己的节点,并给PC赋予一个标签;运行任务时,只需将任务的标签值设置成与PC的标签值一致,即可以使任务运行在指定的PC机上。然而,此方案存在以下两个缺点,一是无法支持外接设备(比如手机)的调度;二是无法根据机器设备的属性变化进行动态调度(比如随着机器上的外接设备的插拔改变机器的属性)。
[0003]随着现代科技的发展,各种智能设备纷涌而出,比如智能手机等,这些智能设备亦具有强大的计算能力,完全可以作为目前广泛应用的PC机计算能力的强有力的补充,尤其在云计算、物联网等新兴技术的发展下,这种广泛的计算能力的整合需求和应用也会越来越多。面向这种需求,本发明提出了一种基于hudson扩展功能的双层终端节点的动态分布式调度方法,并系统地实现了此方法,它使hudson服务器上的任务能够运行于多样化的智能设备之上。同时,为避免由于设备的多样性而引发的不确定性,本发明亦有效克服了Hudson服务器的弊端,实现了任务的实时动态调度。
[0004]此外,针对很多相关项目,当时间为其关键属性时,可利用本发明的特点,通过增加终端设备来提高项目运行的并行性。

【发明内容】

[0005]本发明的目的在于提供一种基于hudson扩展功能的双层终端节点的动态分布式调度方法和系统,可以实现对多样化智能终端设备的动态调度。
[0006]根据本发明的一个方面,提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度方法,其特征在于以下方法,包括:
[0007]a)构建双层终端节点结构,底层终端节点为移动终端,上层终端节点为PC机,所述底层终端节点与所述上层终端节点相连接;
[0008]b)采用基于hudson系统的扩展功能服务器对所述双层终端节点结构进行动态调度。
[0009]其对服务器的功能扩展包括:
[0010]对hudson系统本身进行改造,在所述hudson系统中添加反映各终端节点状态的状态标签;
[0011]在所述hudson系统中的原hudson队列机制上添加新的缓冲队列;
[0012]提供常驻线程用于查询所述底层终端节点状态,并刷新所述状态标签[0013]为实现对终端节点的任务调度,其步骤为:
[0014]i)通过驻留在所述hudson系统上的永久线程时刻下发监控指令给守护在所述上层终端节点上的代理程序来监控所述底层终端节点的运行状态;
[0015]ii)通过守护在所述上层终端节点上的所述代理程序将所述底层终端的运行状态反馈给所述hudson系统;
[0016]iii)当所述运行状态有变化时,所述hudson系统改变相应的所述上层终端节点的属性用以标识所述上层终端节点是否接有空闲的所述底层终端;
[0017]iv)所述hudson系统通过调度机制将需运行在所述底层终端节点上的任务分发给空闲的所述底层终端节点。
[0018]根据本发明的另一个方面,提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度系统,其特征在于,包括以下模块:
[0019]守护进程模块,用于启动永久线程,进行终端节点状态的实时刷新,并增设终端状态标签和任务缓冲队列;
[0020]代理模块,用于对所述终端节点状态进行查询和反馈,并完成对底层节点任务的分发和反馈;
[0021]管理模块,用于查询的接收和反馈,并配合调度。
[0022]与现有技术相比,本发明具有以下优点:
[0023]I)克服了原hudson服务器可调度对象的单一性,使其可支持广泛的智能外接设备,从而可有效地实施针对广泛或特定外接设备的任务分配。一方面,它可以广泛地利用众多智能外接设备的计算能力,使现有资源效能得到充分的发挥。另一方面,它可以针对某特定智能外接设备,进行此设备的各项功能任务的实施。
[0024]2)克服了原hudson服务器无法根据机器设备的属性变化进行动态调度的不足。由于原hudson服务器只针对单一且单层次的终端PC机来进行任务调度,其在功能上就没有满足动态调度的必须,然而,当需要在原hudson服务器基础上开展对广泛外接智能设备的调度,考虑到多样化的外接设备有着多样化的特性,其当前的设备状态能否满足调度执行的需要就是一个非常重要的考量,因此,就需要根据设备的状态动态地调整调度任务分配。而本发明则有效地实现了针对机器设备的属性变化来进行动态调度。
【专利附图】

【附图说明】
[0025]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0026]图1是根据本发明的一种基于hudson扩展功能的双层终端节点的动态分布式调度方法的网络框架示意图;
[0027]图2是根据本发明方法的软件架构示意图;
[0028]图3是根据本发明方法的软件执行过程的时序流程示意图;
[0029]图4是本发明的应用系统的网络框架示意图;
[0030]图5是本发明的应用系统的软件架构示意图;
[0031]图6是本发明的应用系统的工作流程示意图;
[0032]图7是本发明的一个实施例的终端节点状态查询流程图。【具体实施方式】
[0033]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施例作详细描述。
[0034]根据本发明的一个方面,提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度方法。
[0035]首先请参考图1,图1是本发明方法的网络框架示意图,体现该方法的网络框架有以下重要部分构成:
[0036]a)终端节点的多层次性结构,在本示意图中为两层,本发明也主要针对两层来进行阐述,但其方法有拓展性,亦可适用两层以上的多层次性结构。
[0037]如图所示的两层终端节点结构中,为描述方便将该两层分为称为上层和底层;其中的上层终端节点考虑到hudson服务器的应用特性,其设备一般性地为PC机,但基于功能扩展的考虑,亦不限于PC机,亦可以是其它支持hudson服务器功能要求的智能终端;其中的底层终端节点设备可为多样性的智能设备;这两层终端设备间,通过通用或专用接口相连,一般可考虑采用USB 口 ;两层终端节点之间可以是一对一的关系,亦可以是一对多的关系,即一个上层终端节点下接多个底层终端节点。如此,便构成了终端节点的两层结构。
[0038]在这两层结构中,其上层终端节点除自己做为一个独立终端外,还充当了下层终端节点和hudson服务器之间通信的媒介,这也是本发明的重要思考点,换个角度来说,也即为使多样性的智能设备能简便接入现有服务器,可将这些设备接入到服务器已经支持的普通终端里,通过这样一个间接渠道,实现两者通信。
[0039]如图1所示意,其中:
[0040]上层终端节点有3个,底层终端节点亦有3个;
[0041]上层终端节点I下接了底层终端节点I ;
[0042]上层终端节点2独立存在,没有下接底层终端节点;
[0043]上层终端节点3则下接了两个底层终端节点2和3 ;
[0044]其中,底层终端节点I跟hudson服务器通信,需要借助上层终端节点I来完成;底层终端节点2和3跟hudson服务器通信,需要借助上层终端节点3来完成。
[0045]进一步地,当将节点的双层结构向多层结构扩展时,可以想见,整个系统网络拓扑为一个多层次的树型结构。
[0046]b)服务器端采用基于hudson的扩展功能服务器,在本发明中用以实现对上述两层终端节点的动态调度。
[0047]Hudson是已流行的持续集成服务器,支持基于PC的分布式调度,但无法支持其它外接设备的调度,为使Hudson服务器能支持对手机等其它智能设备的调度,按照本发明,除了如上述内容构建双层终端节点结构外,还需要修改hudson服务器自身功能,使其能有效区别针对不同的上层终端节点和底层终端节点的调度。
[0048]进一步地,假如当上述hudson服务器能够对下层终端节点也进行调度时,第二个问题应用而生,即hudson服务器不支持动态调度,也就是说不能根据终端节点的实时状态及时调整调度策略,而底层终端设备往往不同于PC机,其设备开机、关机、在线、下线、忙碌等等的状况不一而足,因此,为有效完成对底层终端节点的调度,还必须实时监控并反馈底层终端节点的状态,hudson服务器需要支持此功能,并可根据收集来的实现状况调整调度,也即需要支持动态调度。
[0049]为解决上述问题,本发明提出了一种扩展功能的hudson服务器,它包含两部分内容:
[0050]内容一,对hudson系统本身进行改造,包括两部分内容,一是增加反映各终端节点状态的标签,二是在原hudson队列机制上添加新的缓冲队列。
[0051]其中,hudson系统中的上层终端节点已经有对应的标签,在此是增加表明底层终端节点状态的标签,除此之外,亦可根据应用场景需要,建立多标签系统,比如用以分别标注两层终端节点设备的主状态及附属状态的多标签系统,以满足复杂应用时的调度需要。
[0052]原hudson队列机制上添加的新的缓冲队列是用于缓冲hudson上需要底层终端节点资源的任务。类似地,如果底层终端设备种类多且情况复杂时,此任务缓冲队列亦可不只一个,结合具体需求可调整。
[0053]此外,由于增加的标签和增加的队列与原有的并不冲突,所以本发明在对底层终端节点进行任务分配的同时,仍保留对上层终端节点的调度能力,即两层终端节点都可参与任务调度,都可由hudson服务器分派适合自己执行的任务。
[0054]内容二,在hudson服务器上开发一个新的插件,此插件提供常驻线程用于查询各从属节点上的底层终端节点状态,并刷新状态标签。
[0055]Hudson拥有强大的插件框架,支持多插件开发与运行,对于基于PC的分布式调度,只需将任务的标签值设置成与PC的标签值一致,即可以使任务运行在指定的PC机上。在内容一中所述的物质基础上,为使相应功能能运转起来,就可通过创建一个插件来运转一个常驻线程,以实现功能的运转。
[0056]然而,仅仅依靠hudson服务器功能扩展并不能完成整个系统功能,还需要其它软件部件的支持。
[0057]如图2所示,本发明方法其完整的软件架构包括以下三个部分:
[0058]I) Hudson服务器上的扩展程序,用于启动永久线程,进行终端节点状态的实时刷新,并增设设备状态标签和任务缓冲队列;
[0059]2)上层终端节点上的hudson代理程序,用于对终端状态的查询和反馈,并完成对底层节点任务的分发和反馈;
[0060]3)底层终端节点上的服务管理程序,用于查询的接收和反馈,并配合调度。
[0061]上述三部分密切配合,共同完成基于hudson扩展功能的双层终端节点的动态分布式调度。其工作的方法和步骤是:
[0062]i)通过驻留在hudson服务器上的永久线程时刻下发监控指令给守护在各上层终端节点上的代理程序来监控底层终端节点的运行状态;
[0063]ii)借助守护在上层终端节点上的hudson代理程序将底层终端的运行状态反馈给hudson服务器;
[0064]iii) 一旦监控到状态变化,hudson服务器立刻改变相应的上层终端的属性用以标识该上层终端是否接有空闲的底层终端,或针对多标签系统进行标识;
[0065]iv) hudson服务器再通过自身的调度机制将需运行在底层终端上的任务分发给空闲的底层终端服务管理程序来推动执行。[0066]具体地,可参见图3,图3为本发明软件执行过程的时序流程示意图,按照图中从上到下的顺序可见以下步骤:
[0067]Dhudson服务器新建插件启动的查询线程开始查询终端状态,于是,由查询线程分别向各挂接于服务器的上层终端节点上驻留的hudson代理程序,发出终端节点状态查询指令;
[0068]2)驻留于上层终端节点的hudson代理程序收到此指令后,根据自己下层外接设备情况,分别向各外接设备发出底层设备查询指令;
[0069]此处,有以下细节需要关注:
[0070]如果底层终端设备已连接在上层终端上并且已开机,则进入步骤3)执行;
[0071]如果底层终端设备已连接但关机,贝U返回download状态;
[0072]如果未连接底层终端设备,则不返回;
[0073]3)底层终端服务管理程序收到步骤2)发来的查询指令后,根据自身设备实际状态,准备状态数据,并向驻留于上层终端节点的hudson代理程序发出底层设备状态反馈消息;
[0074]此处,有以下细节需要关注:
[0075]此上层终端节点可能下接了多个底层终端节点,因此从步骤2)到步骤3)可能会反复针对多个底层终端节点进行;
[0076]此上层终端节点收到来自底层终端节点的状态反馈后,可结合实际场景应用需要考虑是否保留一份底层终端设备状态信息在上层终端节点中;
[0077]4)驻留于上层终端节点的hudson代理程序收到步骤3)发来的反馈消息后,根据底层终端设备状况向服务器查询线程发出终端节点状态反馈消息;
[0078]此处,有以下细节需要关注:
[0079]此上层终端节点可能下接了多个底层终端节点,因此对收到的步骤3)的反馈消息,可采用收到一个底层设备的状态就上报一个到服务器的方式,亦可采用收到所有下接底层终端设备的状态反馈消息后,进行汇总后才一次性向服务器上报的方式;
[0080]考虑到多标签系统,针对不同具体应用场景,此处上报服务器的反馈消息,其内容可以只是底层终端节点的状态,亦可是包括上层和底层的两层终端节点的状态,还可以是两层终端节点各自的主状态、附属状态等多种状态;
[0081]5)服务器查询线程收到步骤4)反馈的终端节点状态后,刷新设备标签;
[0082]此处,有以下细节需要关注:
[0083]无论是否是多标签体系,只要某底层终端设备有空闲,则与它相连接的上层终端设备所对应的标签值即为可用;
[0084]6)服务器任务调度线程获取任务队列中的任务信息;
[0085]7 )服务器任务调度线程获取设备状态信息;
[0086]此处,有以下细节需要关注:即6)与7)的顺序可以交换;
[0087]8)任务与标签值均为可用,则分配任务给终端节点,由调度线程将任务分发给对应的上层终端节点的代理程序;
[0088]此处,有以下细节需要关注:
[0089]新增缓冲队列中的需要底层终端节点资源的任务,其属性值将与可用的底层设备的状态标签值同值,当调度线程进行调度时,发现两者的值均为可用时,则将任务分发给此标签值为可用的底层终端节点来执行;
[0090]服务器调度线程和服务器查询线程,是两个分别独立运行的线程,其对共享数据读写的前后顺序或与图3并不完全相符;此外,当查询线程获得终端设备状态改变时,亦可采用线程间通信机制,提请调度线程进行调度;
[0091]由于前述两独立线程各自工作的情况存在,以及由于底层终端设备的多样性、状态的复杂性、和反映的延迟性,本发明设置了任务调度间隔的暂停机制,以解决面向同一终端设备的相临两个调度任务间,可能存在的底层终端设备的状态变化的反应时间过长问题,从而避免在这段反应时间内底层终端设备状态被误读的情况;
[0092]9)驻留于上层终端节点的hudson代理程序接收该任务,并负责将该任务分发给相应的底层终端节点;
[0093]此处,有以下细节需要关注:
[0094]若此上层终端节点下接了几个同样的、均为空闲的底层终端节点,则此任务可能由上层终端节点的hudson代理程序根据内设方法,分给某个底层终端节点来执行;也可能基于多标签系统,由服务器就指定好了某特定底层终端节点来执行,此时上层终端节点只是做简单的转发工作;
[0095]上层终端节点进行任务的分发时,可参照步骤3)中所述的保存在上层终端节点的底层终端节点的状态来进行。
[0096]以上即为本发明方法的整体运行时序流程。
[0097]根据本发明的另一个方面,还提供了一种基于hudson扩展功能的双层终端节点的动态分布式调度系统。
[0098]如图4所示,为本发明应用系统的网络框架示意图,它包括:hudson服务器、PC机、手机三个组成部分,其中PC机处于上层终端节点层,手机为底层终端节点。注意,本图仅为示意图,即图中PC机的台数,及PC机下接手机的台数,可根据实际情况具体变动。
[0099]根据图5所示,本发明应用系统的软件架构包括以下几个模块:
[0100]Hudson服务器上的daemon plugin模块,用于启动永久线程,进行终端节点状态的实时刷新,并增设设备状态标签和任务缓冲队列;
[0101]PC机上的的agent模块,作为上层终端节点上的Hudson代理模块用于对终端状态的查询和反馈,并完成对底层节点任务的分发和反馈;
[0102]手机上的manager模块,作为底层终端节点上的服务管理模块用于查询的接收和反馈,并配合调度。
[0103]图6为本发明所述系统的基本工作流程,通过上述三个模块密切配合,共同完成基于hudson扩展功能的PC机、手机双层终端节点的动态分布式调度。其步骤如下:
[0104]I)下发手机状态查询命令给PC agent,通过驻留在hudson服务器上的永久线程模块Deamon Plugin下发查询指令给守护在各上层终端节点PC机上的代理程序模块agent,以便查询底层终端节点手机的运行状态;
[0105]2)下发查询命令给手机,守护在PC机上的hudson代理程序模块agent将查询命令进一步转发给手机;
[0106]3)手机给agent反馈状态,手机上的服务管理模块manager将手机状态反馈给PCagent ;
[0107]4) PC agent向服务器查询线程模块Deamon Plugin反馈当前是否有空闲手机。
[0108]对本系统尚有以下说明:
[0109]针对图3的步骤8)所述的暂停时间间隔,在本系统中考虑到底层终端节点设备为手机,因此,实际中任务调度暂停间隔采用15秒的间隔;
[0110]对于Hudson服务器扩展功能启动的永久线程查询终端设备状态的方式,采用的是软件轮询的方式;
[0111]在系统实施中,自定义空闲或忙碌值来表示底层终端设备的运行状态,并用于上层终端节点和服务器之间,以及底层终端节点和上层终端节点之间的设备状态传输表示。
[0112]图7为本发明的一个实施例的终端节点状态查询流程,此实例例采用了轮询机制进行采询,具体步骤如下:
[0113]步骤S710,Hudson服务器扩展功能的初始化,包括查询线程上下文环境的初始化,新增状态标签和新增任务列队的初始化;
[0114]步骤S711,查询线程启动,本实施例的线程采用轮询机制进行查询,首先向第一个终端节点发出终端节点状态查询命令;
[0115]步骤S720,上层终端节点的agent接收步骤S711发出的命令,并向自身下接的某个底层终端节点的manager发出底层设备状态查询命令;
[0116]步骤S730,底层终端节点的manager接收步骤S720发出的命令,并向上层终端节点的agent反馈自状态,发出底层设备状态反馈命令;
[0117]步骤S721,上层终端节点的agent接收步骤S730发出的状态反馈命令,并在本地存储获得的状态;
[0118]步骤S722,上层终端节点的agent进行一个判断,是否自身下接的所有底层终端节点都已查询完毕,如果没有,则向下一个底层终端节点发出查询命令,类似重复步骤S720到S722针对底层终端的部分;若所有底层终端节点均已查询完毕,则进行步骤S723 ;
[0119]步骤S723,上层终端节点的agent将自身下接的所有底层终端节点的状态组成反馈命令,发往Hudson服务器的查询线程;
[0120]步骤S712,Hudson服务器的查询线程接收终端节点状态反馈命令,获取终端节点设备状态,并刷新设备对应的标签的值;
[0121]步骤S713,Hudson服务器的查询线程进行一个判断,是否自身下接的所有终端节点都已查询完毕,如果没有,则向下一个终端节点发出终端节点状态查询命令,重复步骤S711以后的相应过程;若所有终端节点都已查询完毕,则转到步骤S711以后,针对第一个终端节点开始重新一轮的查询过程。
[0122]本发明的具体应用,可以有多种方法,比如:
[0123]I)提高资源的共享性和利用率,即实现对现有多种智能设备的计算能力的充分利用,以执行各类任务;
[0124]2)当时间为项目关键属性时,可以空间换取时间,即针对个别设备需要执行的大量任务,为获取时间上的收益,可以通过增加多个同类设备接入本系统,从而分担任务的执行,提闻时间效率。
[0125]以下作为本发明的另一个实施例,即体现了上述以空间换时间的应用方法,此实施例的网络图可类似图4所示,此实施例的基本内容是:对手机产品(包括手机软硬件功能产品)进行测试时,为使大量测试用例能在较短时间完成,可利用本发明的方法和系统,增加多个手机为底层终端节点设备,以便于进行并行测试,缩短测试时间。
[0126]具体地,假设有一批手机测试用例(case)集合(假如说1000个),并且可用于测试的手机A、B、C共3部,分别挂载在P1、P2、P3这3台PC上。利用本发明,可以先从测试用例集合中取一个case分发给手机A,并通知hudson将Pl置为非空闲状态(unAvailable);类似,继续取第2、3个case运行在B和C上。当其中的一个case跑完以后,将该PC置为空闲状态(Available);然后继续从case集合中申请新的case运行。依此跑完所有的case,以达到分布式测试。
[0127]针对多标签系统的应用,本发明的具体实施例可以是很简单地赋予手机仅有两种状态,空闲和忙碌;亦可以是面向使用场景更复杂的情况,可以给手机赋予更多的状态用于调度,比如有些手机只能适用于某种特殊的场景下(假设dangerous场景),这样手机反馈回来的状态就是dangerous,这样本发明就能使用于更多的场景,比如手机软件更新过程等
坐寸ο
[0128]本发明提供的一种基于hudson扩展功能的双层终端节点的动态分布式调度方法和系统可以使用可编程逻辑器件结合来实现,也可以实施为计算机程序软件,例如根据本发明的实施例可以是一种计算机程序产品,运行该程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现所述移动终端的消息的内容的处理方法。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可从计算机主体拆卸的可移动介质(例如热拔插技术存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储媒体(例如⑶-ROM和DVD)、磁光存储媒体(例如MO)、磁存储媒体(例如盒带或移动硬盘)、具有内置的可重写的非易失性存储器的媒体(例如存储卡)和具有内置ROM的媒体(例如ROM盒)。
[0129]本领域技术人员应当理解,任何具有适当编程装置的计算机系统都将能够执行包含在程序产品中的本发明的方法的诸步骤。尽管本说明书中描述的多数【具体实施方式】都侧重于软件程序,但是作为固件和硬件实现本发明提供的方法的替代实施例同样在本发明要求保护的范围之内。
[0130]以上所揭露的仅为本发明的一些较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种基于hudson扩展功能的双层终端节点的动态分布式调度方法,其特征在于以下方法,包括: a)构建双层终端节点结构,底层终端节点为移动终端,上层终端节点为PC机,所述底层终端节点与所述上层终端节点相连接; b)采用基于hudson系统的扩展功能服务器对所述双层终端节点结构进行动态调度。
2.根据权利要求1所述的方法,其中,所述步骤b)还包括: 在所述hudson系统中添加反映各终端节点状态的状态标签; 在所述hudson系统中的原hudson队列机制上添加新的缓冲队列; 提供常驻线程用于查询所述底层终端节点状态,并刷新所述状态标签。
3.根据权利要求2所述的方法,其中,所述在所述hudson系统中的原hudson队列机制上添加新的缓冲队列用于缓冲所述hudson系统中需要所述底层终端节点资源的任务。
4.根据权利要求3所述的方法,其中,采用任务调度间隔的暂停机制对所述底层终端节点资源进行调度。
5.根据权利要求2所述,其中,根据应用场景需要,在所述hudson系统中建立多标签系统,以分别标注所述双层终端节点的主状态及附属状态。
6.根据权利要求2所述的方法,其中,所述提供常驻线程用于查询所述底层终端节点状态,并刷新所述状态标签,包括: i)通过驻留在所述hudson系统上的永久线程时刻下发监控指令给守护在所述上层终端节点上的代理程序来监控所述底层终端节点的运行状态; ii)通过守护在所述上层终端节点上的所述代理程序将所述底层终端的运行状态反馈给所述hudson系统; iii)当所述运行状态有变化时,所述hudson系统改变相应的所述上层终端节点的属性用以标识所述上层终端节点是否接有空闲的所述底层终端; iv)所述hudson系统通过调度机制将需运行在所述底层终端节点上的任务分发给空闲的所述底层终端节点。
7.根据权利要求6所述的方法,所述步骤ii)进一步包括: 通过所述上层终端节点上的所述代理程序执行查询命令; 如果所述底层终端节点已连接在所述上层终端节点上并且已开机,则获取所述底层终端节点的当前状态并返回所述当前状态; 如果所述底层终端节点已连接但关机,则返回下载状态; 如果未连接所述底层终端节点,则不返回。
8.根据权利要求7所述的方法,所述通过所述上层终端节点上的所述代理程序执行查询命令包括:: 将所述查询命令传输至所述底层终端节点上的服务管理程序; 所述底层终端节点的服务管理程序将自身状态传输至所述代理程序; 所述代理程序将所述底层终端节点的状态反馈给所述hudson系统的新增线程。
9.根据权利要求6所述的方法,其中,所述步骤iii)进一步为: 根据反馈信息修改所述hudson系统上反映终端节点状态的标签,如果某一底层终端节点有空闲,则与它相连接的上层终端节点所对应的标签值为可用。
10.根据权利要求3或权利要求9所述的方法,其中,通过调度分发给标签值为可用的底层终端节点来执行缓冲所述hudson系统中需要所述底层终端节点资源的任务。
11.根据权利要求2或6所述的方法,其中,根据实时变化的状态来进行任务的调度。
12.根据权利要求6所述的方法,其特征在于,在对底层终端节点进行任务分配的同时,保留对上层终端节点的调度能力。
13.一种基于hudson扩展功能的双层终端节点的动态分布式调度系统,其特征在于,包括以下模块: 守护进程模块,用于启动永久线程,进行终端节点状态的实时刷新,并增设终端状态标签和任务缓冲队列; 代理模块,用于对所述终端节点状态进行查询和反馈,并完成对底层节点任务的分发和反馈; 管理模块,用于查询的接收和反馈,并配合调度。
14.根据权利要求13所述的系统,其中,新建缓冲队列的任务调度暂停间隔为15秒。
15.根据权利要求13所述的系统,其中,所述守护进程模块启动的永久线程采用轮询的方式来查询终端节点的状态。
16.根据权利要求13所述的系统,其中,所述终端节点状态包括忙碌和/或空闲。
17.根据权利要求13所述的系统,其中,所述代理模块进一步用于,在所述上层终端节点建立标识区,保存通过查询获知的所述底层终端节点状态。
【文档编号】H04L12/863GK103685066SQ201210348283
【公开日】2014年3月26日 申请日期:2012年9月18日 优先权日:2012年9月18日
【发明者】林荣文, 董海峰 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1