调度方法、设备及系统的制作方法

文档序号:6373696阅读:161来源:国知局
专利名称:调度方法、设备及系统的制作方法
技术领域
本发明涉及调度技术,尤其涉及一种调度方法、设备及系统,属于计算机技术领域。
背景技术
面向服务的体系结构(Service-Oriented Architecture, SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务),通过这些服务之间定义良好的接口和契约联系起来。这使得构建在系统中的各种服务可以采用统一和通用的方式进行交互。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。因此,SOA能够支持组件化部署,以及应用组件的可插拔。 但在现有技术中,SOA采用固化的组件逻辑,因此当系统中改变应用组件的部署时,例如包括增加/插入组件或删除/拔出组件,需人工重新配置SOA的组件逻辑,重新进行代码开发,耗费大量人力和物力资源。

发明内容
针对现有技术中存在的缺陷,本发明提供一种调度方法、设备及系统,用以实现根据当前配置的应用组件动态生成相适应的组件调度逻辑,使得在改变应用组件的部署时无需人工重新配置及开发。根据本发明的一方面,提供一种调度方法,包括获取接入的服务组件;激活预先存储的、与所述接入的服务组件对应的任务配置;根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。根据本发明的另一方面,提供一种调度设备,包括获取模块,用于获取接入的服务组件;激活模块,用于激活预先存储的、与所述接入的服务组件对应的任务配置;调度模块,根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。根据本发明的再一方面,提供一种服务系统,包括本发明提供的调度设备,以及接入所述调度设备的至少一个服务组件。根据本发明的调度方法、设备及系统,通过获取接入的服务组件,仅将与接入的服务组件对应的任务配置进行激活,当基于用户请求执行调度时,根据预置的调度规则和被激活的任务配置,动态生成适应当前所接入的服务组件的调度规则,并执行调度,因此当增加或减少接入的服务组件时,通过自动改变服务组件对应的任务配置的激活/未激活状态,即可实现组件逻辑的自动更新,无需人工重新配置组件逻辑,重新进行代码开发,节约了大量人力和物力资源。


图I为典型的SOA组件化服务系统的系统架构图;图2为本发明一个实施例的调度方法的流程示意图;图3为一个SOA组件化服务系统的示例的系统架构图;图4为本发明另一个实施例的调度方法的流程示意图;图5为本发明一个实施例的调度设备的结构示意图;图6为本发明一个实施例的服务系统的系统架构图。
具体实施方式
图I为典型的SOA组件化服务系统的系统架构图。如图I所示,包括任务调度器
11、与任务调度器11连接的至少一个SOA服务组件(图I中以包括第一 SOA服务组件12a和第二 SOA服务组件12b作为示例),以及与任务调度器11连接的客户端13,客户端13通过向任务调度器11发送服务请求,使得任务调度器11根据自身配置的任务调度规则,对所连接的第一 SOA服务组件12a和第二 SOA服务组件12b进行调度,以使第一 SOA服务组件12a和第二 SOA服务组件12b执行操作,从而为用户提供相应的服务。下面以在图I所示的系统架构中,执行本发明实施例的技术方案为例,进行说明。实施例一本实施例的调度方法例如由图I中所示的任务调度器11来执行。图2为本发明一个实施例的调度方法的流程示意图。如图2所示,该调度方法包括步骤S201,获取接入的服务组件;步骤S202,激活预先存储的、与所述接入的服务组件对应的任务配置;步骤S203,根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。具体地,任务调度器中预先配置有与服务组件提供的服务对应的任务配置,以及用于根据任务配置执行任务调度的任务调度规则。在系统启动时,任务调度器获取所接入的全部服务组件,或者在启动状态下,获取新接入的服务组件(即热部署的服务组件),并根据所获取的接入的服务组件,对存储的相应的任务配置进行激活。当任务调度器接收到用户通过客户端发送的服务请求时,响应服务请求,启动任务调度。在执行任务调度时,任务调度器根据预置的任务调度规则和激活状态的任务配置动态生成调度策略。具体地,对于激活状态的任务配置,根据任务调度规则中的调度时序和条件执行调度,对于任务调度规则中所涉及的未激活的任务配置,则跳过相应调度过程,并根据任务调度规则中的下一调度执行条件,来执行下一调度,或者结束流程。更为具体地,例如任务调度器中预先配置有服务组件A、服务组件B和服务组件C的任务配置,并且预先配置有用于对服务组件A、服务组件B和服务组件C进行调度的完整任务调度规则,例如为调度服务组件A,若服务组件A的执行结果为认证成功,则调度服务组件B并调度服务组件C,若服务组件A的执行结果为失败,则直接结束调度,并返回服务组件A的执行结果。系统启动时,任务调度器检测获知当前仅接入有服务组件A,则对与服务组件A对应的任务配置进行激活,并将服务组件B和服务组件C对应的任务配置保持为未激活。当任务调度器接收到用户通过客户端发送的服务请求时,任务调度器根据任务调度规则首先检查服务组件A的状态是否为激活,检查获知服务组件A的状态为激活,则任务调度器根据服务组件A对应的任务配置调度服务组件A执行操作,例如为对用户进行认证。服务组件A完成认证后回调任务调度器,任务调度器根据服务组件A的执行结果,结合任务调度规则确定后续调度流程。以服务组件A的执行结果为认证成功为例,则任务调度器检测服务组件B和服务组件C的状态是否为激活,由于两者均未激活,则任务调度器结束调度流程,并将认证成功的结果返回给客户端。根据本实施例的调度方法,通过获取接入的服务组件,仅将与接入的服务组件对应的任务配置进行激活,当基于用户请求执行调度时,根据预置的调度规则和被激活的任 务配置,动态生成适应当前所接入的服务组件的调度规则,并执行调度,因此当增加或减少接入的服务组件时,通过自动改变服务组件对应的任务配置的激活/未激活状态,即可实现组件逻辑的自动更新,无需人工重新配置组件逻辑,重新进行代码开发,节约了大量人力和物力资源。实施例二图3为一个SOA组件化服务系统的示例的系统架构图。在本实施例中,结合图3所示的一个具体SOA组件化服务系统,对本发明实施例的调度方法进行进一步说明。如图3所示,在第一阶段,在系统中部署用于提供认证服务的用户认证组件,并在第二阶段部署用于提供计算机保护服务的计算机保护组件。由于在第一阶段便部署有用户认证组件,因此例如将用户认证组件与任务调度器部署在同一台服务器中,(图3中以此情形为示例),由于计算机保护组件是在第二阶段部署的,因此例如其独立部署在一个功能服务器中,并通过内联网与任务调度器连接。客户端作为任务调用者,负责触发任务调用,并且SOA组件化服务系统中,任务调度器执行的调度策略对任务调用者是透明(不可知)的。客户端例如安装在工作站,通过客户端发起认证请求时,任务调度器会调用用户认证组件提供服务。图4为本发明另一个实施例的调度方法的流程示意图。如图4所示,在图3所示的SOA组件化服务系统中,实现本发明实施例的调度方法时,包括以下流程步骤S401,开发组件任务,并在任务调度器中进行任务配置;具体地,针对服务组件提供的服务开发组件任务,服务组件任务执行结束后回调任务服务器。以用户认证组件为例,假设使用JAVA语言开发,实现代码例如为Public class Authentication
{
Public String login (String username. String password)
{
//进行用户认证服务 //do something
jobContro! (“authentication”,“SUCCEED”); //认证结束后向任务
调度器架设本次任务结果} Private StringjobControl (String idMyself, String code)
{
//回调任务调度器
//do something (idMyself, code)
return “SUCCEED”;
}
}“login”提供了对外暴露认证服务,并且在任务执行结束后会回调任务调度器。在任务调度器中,针对服务组件的组件任务进行任务配置。具体地,例如配置服务的以下内容服务唯一索引、调用地址、端口和/或调用方法等信息。其中,一个服务组件可以提供一个或多个服务,并且各个服务均具有一个服务唯一索引,本发明中不做限制。任务调度器初始化时将任务配置载入内存,但并不对其进行激活。以用户认证为例,上述任务配置例如采用XML方式配置,具体格式例如为
<job id =” authentication^'^
<wsdiUr]>http://127.0.0.0/smp/user wsdi</ wsdlUri> <prot>2000</prot>
</job>步骤S402,在任务调度器中配置任务调度规则,定位两个策略A、配置认证成功后执行计算保护检测;B、如果认证失败任务结束;具体地,还需在任务调度器中预先配置任务调度规则(即调度规则),该任务调度规则包括对上述任务配置的调度次序和/或调度条件。更为具体地,例如包括根据任务执行结果指定下个任务,其可以指定具体的任务索引(例如为服务唯一索引),或是根据任务配置时为不同服务分配的任务优先级来执行;根据任务执行结果进行任务流控制,根据执行结果码进行任务中止、成功、失败等控制。同样地,在任务调度器初始化时,任务调度规则也会被载入到内存。上述任务调度规则例如采用XML方式配置,具体格式例如为
<jobGroup>
<job id-1 authentication”〉
<next On=XOMPLETED" to="job2M />
<fail on="UNKNOWN" exit-code="EARLY TERMINATION" /><end on=”*” exit-code="TERMlNATION" />
</job >
<job id=” job2”>
<end on="*" exit-cocie="SUCCEED" />
</ job >
</ jobGroup >步骤S403,进行第一阶段部署,即部署用户认证组件,但不部署计算机保护组件;步骤S404,启动系统,系统进行初始化操作,包括调度服务器执行初始化操作,将任务配置和任务调度规则载入内存;并且,用户认证组件执行初始化操作,向任务调度器注册监听认证服务,任务调度器根据用户认证组件的注册将任务配置中定义的认证服务激活;具体地,任务调度器例如使用一个字段来标识任务配置的状态,例如,该字段采用“0”指示未激活状态,采用“I”指示激活状态。当任务调度器对相应的任务配置进行激活时,只需将该字段的数值由“0”修改为“I”即可。而且,用户认证组件例如通过向任务调度器发送一个注册信息,来实现向任务调度器注册监听认证服务,该注册信息携带有用户认证服务的服务唯一索引,使得任务调度器根据该服务唯一索引,确定出内存中与其对应的任务配置。此外,虽然在上述步骤404中,以用户认证组件主动向任务调度器进行注册为例进行说明,但在实际应用中,也可以由任务调度器在初始化后,根据预设扫描规则(例如为预设扫描间隔),扫描接入的服务组件,获取接入的服务组件的标识,从而对相应的任务配置进行激活。步骤S405,客户端发起一个认证,任务调度器触发用户认证组件的认证服务 ’认证服务执行结束后回调任务调度器接口,任务调度器接收到回调后检索任务调度规则,发现没有继续执行的任务,并返回结果,认证结束;具体地,任务调度器根据预置的调度规则和所述激活的任务配置,调度接入的服务组件执行操作,包括根据所述预置的调度规则,确定本次调度的服务组件;检测所述本次调度的服务组件对应的任务配置是否激活;若检测所述本次调度的服务组件对应的任务配置激活,则根据所述本次调度的服务组件对应的任务配置,调度所述本次调度的服务组件执行操作,并接收所述本次调度的服务组件返回的执行结果;根据所述预置的调度规则和所述执行结果,判断是否存在待调度的服务组件,若存在,将所述本次调度的服务组件更新为所述待调度的服务组件,并返回执行检测本次调度的服务组件对应的任务配置是否激活,以及当激活时进行调度的操作;若不存在,则将所述执行结果返回给所述用户。由于在第一阶段部署中,未部署计算机保护组件,则任务调度器结合任务调度规则及计算机保护组件对应的任务配置的状态,确定没有继续执行的任务,向客户端返回用户认证组件的认证结果,并结束流程。步骤S406,在第二阶段部署计算机保护组件,组件启动后向任务调度器注册监听,任务调度服务器的任务配置中的计算机保护服务被激活; 步骤S407,客户端再发起一个认证,触发用户认证组件的认证服务。认证服务执行结束后回调任务调度器接口,任务调度器接收到回调后检索任务调度规则,发现在认证成功后需执行计算机保护检测(由于计算机保护服务被激活,且任务调度规则中定义了认证成功后执行计算机保护),任务调度器触发计算机保护检测。根据上述实施例的调度方法,实现了在不同阶段、不同时期进行组件部署时,无需进行组件逻辑重新配置以及重新代码开发等工作,节约了大量人力和物力资源。实施例三图5为本发明一个实施例的调度设备的结构示意图。如图5所示,该调度设备包括获取模块51,用于获取接入的服务组件;激活模块52,用于激活预先存储的、与所述接入的服务组件对应的任务配置;调度模块53,根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。本实施例的调度设备例如为任务调度器,其执行任务调度的流程与上述实施例的调度方法相同,故此处不再赘述。根据本实施例的调度设备,通过获取接入的服务组件,仅将与接入的服务组件对应的任务配置进行激活,当基于用户请求执行调度时,根据预置的调度规则和被激活的任务配置,动态生成适应当前所接入的服务组件的调度规则,并执行调度,因此当增加或减少接入的服务组件时,通过自动改变服务组件对应的的任务配置的激活/未激活状态,即可实现组件逻辑的自动更新,无需人工重新配置组件逻辑,重新进行代码开发,节约了大量人力和物力资源。进一步地,在上述实施例的调度设备中,所述获取模块具体用于接收所述接入的服务组件发送的注册信息,所述注册信息携带有所述服务组件的标识;或者,扫描所述接入的服务组件,获取所述接入的服务组件的标识。进一步地,在上述实施例的调度设备中,所述激活模块具体用于从预先存储的至少两个任务配置中,对包括所述接入的服务组件的标识的任务配置进行激活。进一步地,在上述实施例的调度设备中,所述调度模块具体用于根据所述预置的调度规则,确定本次调度的服务组件;检测所述本次调度的服务组件对应的任务配置是否激活;若检测所述本次调度的服务组件对应的任务配置激活,则根据所述本次调度的服务组件对应的任务配置,调度所述本次调度的服务组件执行操作,并接收所述本次调度的服务组件返回的执行结果;根据所述预置的调度规则和所述执行结果,判断是否存在待调度的服务组件,若存在,将所述本次调度的服务组件更新为所述待调度的服务组件,并返回执行检测本次调度的服务组件对应的任务配置是否激活,以及当激活时进行调度的操作;若不存在,则将所述执行结果返回给所述用户。
进一步地,在上述实施例的调度设备中,还包括预置模块,用于获取并存储调度规则以及至少两个任务配置,所述调度规则包括所述至少两个任务配置的调度次序和/或调度条件;将所述至少两个任务配置的状态设置为未激活。实施例四图6为本发明一个实施例的服务系统的系统架构图。如图6所示,包括上述实施例的调度设备61,以及接入所述调度设备61的至少一个服务组件62 (图6中仅以2个为示例)。本实施例的服务系统中,执行任务调度的流程与上述实施例的调度方法相同,故此处不再赘述。根据本实施例的服务系统,通过由调度设备获取接入的服务组件,仅将与接入的服务组件对应的任务配置进行激活,当基于用户请求执行调度时,根据预置的调度规则和被激活的任务配置,动态生成适应当前所接入的服务组件的调度规则,并执行调度,因此当增加或减少接入的服务组件时,通过自动改变服务组件对应的的任务配置的激活/未激活状态,即可实现组件逻辑的自动更新,无需人工重新配置组件逻辑,重新进行代码开发,节约了大量人力和物力资源。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种调度方法,其特征在于,包括 获取接入的服务组件; 激活预先存储的、与所述接入的服务组件对应的任务配置; 根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。
2.根据权利要求I所述的调度方法,其特征在于,所述获取接入的服务组件,包括 接收所述接入的服务组件发送的注册信息,所述注册信息携带有所述服务组件的标识;或者 根据预设扫描规则,扫描所述接入的服务组件,获取所述接入的服务组件的标识。
3.根据权利要求2所述的调度方法,其特征在于,所述激活预先存储的、与所述接入的服务组件对应的任务配置,包括 从预先存储的至少两个任务配置中,对包括所述接入的服务组件的标识的任务配置进行激活。
4.根据权利要求1-3任一所述的调度方法,其特征在于,所述根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,包括 根据所述预置的调度规则,确定本次调度的服务组件; 检测所述本次调度的服务组件对应的任务配置是否激活; 若检测所述本次调度的服务组件对应的任务配置激活,则根据所述本次调度的服务组件对应的任务配置,调度所述本次调度的服务组件执行操作,并接收所述本次调度的服务组件返回的执行结果; 根据所述预置的调度规则和所述执行结果,判断是否存在待调度的服务组件,若存在,将所述本次调度的服务组件更新为所述待调度的服务组件,并返回执行检测本次调度的服务组件对应的任务配置是否激活,以及当激活时进行调度的操作;若不存在,则将所述执行结果返回给所述用户。
5.根据权利要求1-3任一所述的调度方法,其特征在于,所述获取接入的服务组件,之前还包括 获取并存储调度规则以及至少两个任务配置,所述调度规则包括所述至少两个任务配置的调度次序和/或调度条件; 将所述至少两个任务配置的状态设置为未激活。
6.一种调度设备,其特征在于,包括 获取模块,用于获取接入的服务组件; 激活模块,用于激活预先存储的、与所述接入的服务组件对应的任务配置; 调度模块,根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。
7.根据权利要求6所述的调度设备,其特征在于,所述获取模块具体用于接收所述接入的服务组件发送的注册信息,所述注册信息携带有所述服务组件的标识;或者,扫描所述接入的服务组件,获取所述接入的服务组件的标识。
8.根据权利要求7所述的调度设备,其特征在于,所述激活模块具体用于从预先存储的至少两个任务配置中,对包括所述接入的服务组件的标识的任务配置进行激活。
9.根据权利要求6-8任一所述的调度设备,其特征在于,所述调度模块具体用于根据所述预置的调度规则,确定本次调度的服务组件; 检测所述本次调度的服务组件对应的任务配置是否激活; 若检测所述本次调度的服务组件对应的任务配置激活,则根据所述本次调度的服务组件对应的任务配置,调度所述本次调度的服务组件执行操作,并接收所述本次调度的服务组件返回的执行结果; 根据所述预置的调度规则和所述执行结果,判断是否存在待调度的服务组件,若存在,将所述本次调度的服务组件更新为所述待调度的服务组件,并返回执行检测本次调度的服务组件对应的任务配置是否激活,以及当激活时进行调度的操作;若不存在,则将所述执行结果返回给所述用户。
10.根据权利要求6-8任一所述的调度设备,其特征在于,还包括预置模块,用于获取并存储调度规则以及至少两个任务配置,所述调度规则包括所述至少两个任务配置的调度次序和/或调度条件;将所述至少两个任务配置的状态设置为未激活。
11.一种服务系统,其特征在于,包括权利要求6-10任一所述的调度设备,以及接入所述调度设备的至少一个服务组件。
全文摘要
本发明提供一种调度方法、设备及系统,该调度方法包括获取接入的服务组件;激活预先存储的、与所述接入的服务组件对应的任务配置;根据预置的调度规则和所述激活的任务配置,调度所述接入的服务组件执行操作,以响应用户发送的服务请求。根据本发明提供的调度方法、设备及系统,能够实现根据当前配置的应用组件动态生成相适应的组件调度逻辑。
文档编号G06Q10/06GK102831494SQ201210256459
公开日2012年12月19日 申请日期2012年7月23日 优先权日2012年7月23日
发明者冯驰 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1