应用进程调度的方法、设备及系统.pdf

上传人:e2 文档编号:966050 上传时间:2018-03-21 格式:PDF 页数:12 大小:627.69KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810239531.0

申请日:

2008.12.12

公开号:

CN101751288A

公开日:

2010.06.23

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/46申请公布日:20100623|||实质审查的生效IPC(主分类):G06F 9/46申请日:20081212|||公开

IPC分类号:

G06F9/46

主分类号:

G06F9/46

申请人:

中国移动通信集团山东有限公司

发明人:

李汉章; 孔军; 陈丕海; 程进; 王新印; 顾建华

地址:

250001 山东省济南市经十路20569

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司 11291

代理人:

魏杉

PDF下载: PDF下载
内容摘要

本发明公开了一种应用进程调度的方法,该方法包括:配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;接收客户端执行命令后反馈的命令执行结果。本发明同时公开一种应用进程调度的服务端设备、客户端设备及系统。采用本发明可以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用的控制。

权利要求书

1: 一种应用进程调度的方法,其特征在于,该方法包括: 配置需执行的命令流,所述命令流由顺序执行命令构成; 在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行; 接收客户端执行命令后反馈的命令执行结果。
2: 如权利要求1所述的方法,其特征在于,所述配置需执行的命令流,包括: 根据命令在预先定义时确定的执行环境、条件、输入输出参数,配置需执行的命令流; 和/或,根据命令在发布运行后按预设周期内的运行情况定期计算、更新的参数,配置需执行的命令流。
3: 如权利要求2所述的方法,其特征在于,所述命令在预先定义时确定的执行环境、条件、输入输出参数包括以下参数其中之一或任意组合: 系统自动生成的命令任务标识、命令执行输入参数、部署客户端、程序存放路径、命令触发方式、日志输出路径、命令执行前提、命令执行输出方式、是否可以出错重处理、重处理次数、优先级别。
4: 如权利要求2所述的方法,其特征在于,所述命令在发布运行后按预设周期内的运行情况定期计算、更新的参数包括以下参数其中之一或任意组合: 系统执行平均时长、进程所需系统的中央处理器CPU资源参数、系统的内存资源参数、系统的输入/输出I/O资源参数。
5: 一种应用进程调度的服务端设备,其特征在于,包括: 流程配置模块,用于配置需执行的命令流,所述命令流由顺序执行命令构成; 调度控制模块,用于在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至调度通讯模块; 调度通讯服务器,用于在接收到调度控制模块发送至的命令后,与相应的客户端建立联系,并将命令发送至客户端;以及,接收客户端反馈的命令执行结果。
6: 如权利要求5所述的服务端设备,其特征在于,所述流程配置模块进一步用于根据命令在预先定义时确定的执行环境、条件、输入输出参数,配置需执行的命令流;和/或,根据命令在发布运行后按预设周期内的运行情况定期计算、更新的参数,配置需执行的命令流。
7: 如权利要求5或6所述的服务端设备,其特征在于,进一步包括: 系统运行监控模块,用于监控上述各模块的执行。
8: 一种应用进程调度的客户端设备,其特征在于,包括: 命令监听模块,用于监听是否有命令到达;在有命令到达时,接收该命令并发送到命令执行模块; 命令执行模块,用于执行接收的命令并输出命令执行日志。
9: 如权利要求8所述的客户端,其特征在于,进一步包括: 数据采集模块,用于采集命令执行日志,并反馈。
10: 一种应用进程调度的系统,其特征在于,包括: 服务端设备,用于配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条 命令发送至相应的客户端设备,并由客户端设备执行; 客户端设备,用于执行接收的命令,并反馈命令执行结果。

说明书


应用进程调度的方法、设备及系统

    【技术领域】

    本发明涉及通信及计算机技术领域,尤其涉及应用进程调度的方法、设备及系统。

    背景技术

    随着计算机技术和互联网技术的几十年发展,目前国内IT软件以及基于网络的IT系统已经远非上世纪末的单机、单操作系统下的系统所比,技术架构、逻辑处理的复杂性和数据处理量迅速增加。计算机系统呈现网络化、异构化部署的特征:系统架构中主机方面有集群、阵列方式的大型机、小型机、pc服务器、工作站等主机群,UNIX、Linux、windows等操作系统,数据库即可能是单一的数据库,也可能是关系型数据库系统的Oracle、SQL Server等,也可能包括不同数据模型的数据库。

    目前一般非实时交易性应用系统均采用系统的定时器启动应用,通过编写的命令脚本(例如操作系统级的脚本shell、批处理等,程序编程C等,数据库级的存储过程)实现对程序流程的控制。

    发明人经过分析,发现传统的命令脚本的流程调度方式有较多的缺点:一旦流程的改变势必需要调整程序脚本,修改风险较大,对开发者要求较高,需求响应速度低;灵活性差,无法做到插件式的流程控制;对复杂逻辑关系的应用缺乏控制手段。

    例如,现有技术的一种应用流程的调度方法中,通过设置流程调度服务程序,读取预定义服务进程配置信息;创建输出消息队列及与所述服务进程配置信息对应的输入消息队列;逐条读取单步预定义流程控制信息,执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取输出消息队列,虽然能够实现Unix(Linux)环境下按照预定义流程对多个应用进程进行单进程/多进程、同步/异步的组合调度,实现负载均衡和流量控制功能,但是,由于该方法没有涉及系统命令流程的定制和调度,因此仅适用于事务交易、并发性高、流程简单的系统,在有复杂的逻辑和流程关系的异构环境下不是十分有效。

    又如,现有技术的一种面向异构多核体系的进程调度方法中,采用异构环境下的所有处理核共用一个就绪进程队列,操作系统采用主从式管理结构,操作系统的核心进程运行在主处理核上,其他处理器仅运行可以在该类核上运行的各种应用程序,当应用程序需要请求操作系统服务时,请求将被传递到主处理核上的操作系统程序,进程调度采用均分负载调度算法和处理器专派调度算法,实现了进程的合理调度。但是,该方法仍只适用于由多台服务器共同承担同一应用,以达到进程运行环境的动态分配,达到负载均衡的目的;对于多台服务器各自承担不同应用,而各应用间有各种逻辑关系的情况下仍有一定的局限性。

    【发明内容】

    本发明实施例提供一种应用进程调度的方法,用以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用的控制,该方法包括:

    配置需执行的命令流,所述命令流由顺序执行命令构成;

    在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;

    接收客户端执行命令后反馈的命令执行结果。

    本发明实施例还提供一种应用进程调度的服务端设备,用以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用的控制,该服务端设备包括:

    流程配置模块,用于配置需执行的命令流,所述命令流由顺序执行命令构成;

    调度控制模块,用于在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至调度通讯模块;

    调度通讯服务器,用于在接收到调度控制模块发送至的命令后,与相应的客户端建立联系,并将命令发送至客户端;以及,接收客户端反馈的命令执行结果。

    本发明实施例还提供一种应用进程调度的客户端设备,用以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用的控制,该客户端设备包括:

    命令监听模块,用于监听是否有命令到达;在有命令到达时,接收该命令并发送到命令执行模块;

    命令执行模块,用于执行接收的命令并输出命令执行日志。

    本发明实施例还提供一种应用进程调度的系统,用以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用地控制,该系统包括:

    服务端设备,用于配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;

    客户端设备,用于执行接收的命令,并反馈命令执行结果。

    本发明实施例中,在实施应用进程的调度时,先配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;接收客户端执行命令后反馈的命令执行结果,从而以命令、命令流的形式实现了灵活、可配置、可动态调整以及插件式的流程调度,在流程发生改变时只需调整相应的命令、命令流配置,无需对整个程序脚本进行大面积改动,降低了修改风险及对开发者的要求,需求响应速度也大大提高;并且,命令流中命令的顺序执行方式对于复杂逻辑关系的应用,如在异构、分布式应用系统,能够弥补现有技术中调度分散、流程性差的缺点,通过服务器/客户端模式对分布在多个服务器、多种环境、数据库下的应用进行调度,实现在异构系统中应用流程、进程的调度,以及预定义流程的控制,满足系统综合调度和监控的要求,适应目前IT系统网络化、异构化的趋势。

    【附图说明】

    图1为本发明实施例中命令流程支持的流程调度形式示意图;

    图2为本发明实施例中应用进程调度的系统结构图;

    图3为本发明实施例中应用进程调度方法流程图;

    图4为本发明实施例中应用进程调度方法的一个具体实例的流程图。

    【具体实施方式】

    本发明实施中,将应用系统运行状态下所需执行的任务从技术和业务上抽象化为命令、命令流和命令流组三层,并以此为基础,建立灵活、可配置、插件化、可动态调整的流程配置方法以实现应用进程的调度。

    其中,命令是本发明实施例中所描述系统的一个执行单元,是可以在独立的环境下执行,完成一系列逻辑操作或特定任务的指令组合。其中最小的“指令”可以是一个系统函数,也可以是一个嵌入的SQL(Structured QueryLanguage,结构化查询语言)或存储过程。

    命令流由命令组成,根据业务处理逻辑将一系列命令组成命令流,命令流只能在前一命令执行成功后才能开始执行下一个命令。命令流是顺序执行的,不能有分支,当有一个命令流的命令执行完毕后可以有多个命令并行执行时,需要另建命令流。多个命令流可以组成一个命令流组。

    命令流组是命令流的组合,与业务实现流程是一致的。如图1所示,命令流组可以支持顺序命令流、多个前置命令流触发一个后置命令流、单个前置命令流触发多个后置命令流等多种流程调度形式。

    如图2所示,本发明实施例中应用进程调度的系统主要包括:服务端设备、客户端设备。其中,服务端设备,用于配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端设备,并由客户端设备执行;客户端设备,用于执行接收的命令,并反馈命令执行结果。

    服务端设备是本发明实施例的核心模块,承担调度系统的命令和命令流程的定义、命令流和命令的调度控制、系统运行日志的采集及监控任务,并监控Agent(代理)的运行状态是否正常。图2也示出了在一个实施例中,服务端设备主要包括:流程配置模块、调度控制模块、调度通讯服务器;其中,各模块的功能如下:

    1、流程配置模块

    流程配置模块用于配置需执行的命令流,所述命令流由顺序执行命令构成。

    流程配置模块可以用于根据命令在预先定义时确定的执行环境、条件、输入输出参数,配置需执行的命令流;和/或,根据命令在发布运行后按预设周期内的运行情况定期计算、更新的参数,配置需执行的命令流。实施中也可以认为,流程配置模块包括命令的配置和命令流的配置两部分功能。

    命令的配置即命令的执行参数的配置,又可分为静态参数和动态参数。

    静态参数即是命令在预先定义时确定的执行环境、条件、输入输出等参数,具体可以包括:系统自动生成的命令任务标识、命令执行输入参数、部署客户端(Agent)、程序存放路径、命令触发方式(分为流程触发、事件触发和手工触发三种)、日志输出路径、命令执行前提、命令执行输出方式、是否可以出错重处理、重处理次数等、优先级别。

    动态参数即是根据命令在发布运行后按预设周期内的运行情况所定期计算、更新的参数,具体可以包括:系统执行平均时长、进程所需系统的CPU(Central Processing Unit,中央处理器)资源参数、系统的内存资源参数、系统的I/O(]Input/Output,输入/输出)资源参数等。

    命令是由命令流触发的;命令流既可以由时间触发,也可以由另一流程触发。初始的命令流需要通过时间触发,因此需要在初始配置时设定命令流调度的时间、执行周期。

    命令流的配置需要维护的参数有命令流的任务标识、命令流名称、调度方式、调度开始时间、调度周期、依赖流程、后续流程以及流程的优先级别。命令流程的设置可以通过图形化的配置方式实现流程中的命令组成的定义。

    在复杂的系统中,任务较多,往往命令流会很多,且有一定的独立性,因此需要利用建立多个命令流组,命令流组之间独立性较强,流程组之间的依赖、先后关系是通过流程组中的命令流或命令实现的,流程组间没有直接关系。因此,通过命令流和命令流组的控制,可以方便、准确的控制系统的运转。

    流程配置模块配置的命令流可以存储于一数据库中,如图2所示的配置数据库,供后续调度控制模块读取,并通过命令的优先级和系统资源进行动态调整,控制命令的启动、暂停和中断。

    2、调度控制模块

    调度控制模块用于在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至调度通讯模块。

    调度控制模块是应用进程调度系统的主控模块,负责从配置数据库(图2)读取调度配置模块的命令流组、命令流和命令的配置参数,发往调度通讯服务器,由调度通讯服务器建立与各Agent的连接,发出命令执行信息。因此可以认为,调度控制模块是调度的启动模块。

    通过调度控制模块完成命令流和命令触发的判断,根据命令的触发时机(是否到达启动时间、是否前提命令成功执行)、命令优先级和系统资源控制是否向调度通讯服务器发送执行命令。

    3、调度通讯服务器

    调度通讯服务器,用于在接收到调度控制模块发送至的命令后,与相应的客户端建立联系,并将命令发送至客户端;以及,接收客户端反馈的命令执行结果。

    调度通讯服务器负责建立与各Agent的连接,接收调度控制模块的执行操作,根据命令所运行位置发往相应的Agent,由Agent接收后执行;接收命令的执行状态和处理日志,记录到数据库,满足系统运行监控模块的采集要求。

    图2也示出了在一个实施例中,服务端设备还可以包括:系统运行监控模块,该模块用于监控服务端设备中其它模块的执行情况,

    系统运行监控模块可以作为应用进程调度系统的前台界面,采集各命令流、命令的配置参数和运行状态,通过图形化的界面展示运行状态,实现对系统运行的整体监控。

    客户端设备是应用进程调度系统的执行设备,客户端设备的功能是从服务端设备的调度通讯服务器接收命令,并发送给相应的应用服务器执行;可以自动捕捉命令退出时是否是成功完成的状态,发送给调度通讯服务器;检查命令的运行状态;按照从系统中接收到命令的运行号,检查该命令的执行状态;检查目前系统参数,包括系统的CPU使用率、内存、I/O等信息,和单一命令执行占用的资源,发送到调度通讯服务器,由服务端设备的调度控制模块确定是否继续执行下一命令。

    图2也示出了在一个实施例中,客户端设备主要包括:命令监听模块、命令执行模块。其中,命令监听模块,用于监听是否有命令到达;在有命令到达时,接收该命令并发送到命令执行模块;实施中命令监听模块可以通过建立与服务端设备的调度通讯服务器的套接口连接,实时监听调度通讯服务器的消息,接收命令发送到命令执行模块。命令执行模块,用于执行接收的命令并输出命令执行日志;实施中命令执行模块在收到命令监听模块发送的消息后,启动相应的执行环境,发送执行命令,完成执行操作,输出日志。

    图2也示出了在一个实施例中,客户端设备还可以包括:数据采集模块,用于采集命令执行日志,并反馈。数据采集模块可以完成所在主机的CPU、内存、I/O等资源或数据库性能参数的定时采集,采集周期一般可设为1分钟;完成命令执行状态的采集、输出日志的采集;将采集的信息的发送到服务端设备。

    如图3所示,本发明实施例中的应用进程调度方法流程如下:

    步骤301、配置需执行的命令流,所述命令流由顺序执行命令构成。

    其中可以包括:根据命令在预先定义时确定的执行环境、条件、输入输出参数,配置需执行的命令流;和/或,根据命令在发布运行后按预设周期内的运行情况定期计算、更新的参数,配置需执行的命令流。

    步骤302、在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行。

    步骤303、接收客户端执行命令后反馈的命令执行结果。

    下面给出一个应用进程调度方法的具体实例,如图4所示,本例中应用进程调度方法的流程如下:

    步骤401、在命令流满足触发条件时,触发开始命令流的执行。

    步骤402、读取命令流的配置定义,生成命令执行顺序流,按顺序开始第一步的命令执行过程。

    步骤403、判断命令触发的条件是否已经满足、前提条件是否已经具备、客户端资源是否满足运行条件,若是则执行步骤404,否则等待。

    步骤404、命令触发条件具备后,由服务端设备的调度控制模块生成命令执行指令,发往调度调度通讯服务器。

    步骤405、由调度通讯服务器将命令发往命令执行的客户端设备。

    步骤406、客户端设备的命令监听模块得到调度通讯服务器发送的命令,将命令发往命令执行模块,由命令执行模块根据命令的运行环境调用相应的处理环境。

    步骤407、判断本地客户端设备的环境、数据等条件是否已经具备,在条件具备的情况下执行步骤408,否则循环等待。

    步骤408、执行命令,完成命令相应的操作,输出相关内容和日志。

    步骤409、命令执行结束,由日志采集进程将命令执行结果,无论成功、失败,均返回到调度通讯服务器。

    步骤410、由调度控制模块根据命令执行结果生成下一步任务。如步骤409中命令执行失败,则根据配置选择是重复执行、挂起、退出还是忽略进行下一步的命令执行流程。如命令执行正常,则进行下一步的命令执行流程。

    步骤411、在命令流包含的命令全部顺序执行完成后,命令流执行完毕。

    本领域普通技术人员可以理解上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

    本发明实施例中,在实施应用进程的调度时,先配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;接收客户端执行命令后反馈的命令执行结果,从而以命令、命令流的形式实现了灵活、可配置、可动态调整以及插件式的流程调度,在流程发生改变时只需调整相应的命令、命令流配置,无需对整个程序脚本进行大面积改动,降低了修改风险及对开发者的要求,需求响应速度也大大提高;并且,命令流中命令的顺序执行方式对于复杂逻辑关系的应用,如在异构、分布式应用系统,能够弥补现有技术中调度分散、流程性差的缺点,通过服务器/客户端模式对分布在多个服务器、多种环境、数据库下的应用进行调度,实现在异构系统中应用流程、进程的调度,以及预定义流程的控制,满足系统综合调度和监控的要求,适应目前IT系统网络化、异构化的趋势。

    显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

应用进程调度的方法、设备及系统.pdf_第1页
第1页 / 共12页
应用进程调度的方法、设备及系统.pdf_第2页
第2页 / 共12页
应用进程调度的方法、设备及系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《应用进程调度的方法、设备及系统.pdf》由会员分享,可在线阅读,更多相关《应用进程调度的方法、设备及系统.pdf(12页珍藏版)》请在专利查询网上搜索。

本发明公开了一种应用进程调度的方法,该方法包括:配置需执行的命令流,所述命令流由顺序执行命令构成;在根据命令流的配置确定在该命令流未执行的命令中执行顺序在最前的命令满足执行条件时,将该条命令发送至相应的客户端,并由客户端执行;接收客户端执行命令后反馈的命令执行结果。本发明同时公开一种应用进程调度的服务端设备、客户端设备及系统。采用本发明可以提高调度的灵活性、降低修改风险,实现对复杂逻辑关系应用的控。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1