一种应用进程的流程调度方法及系统的制作方法

文档序号:6555577阅读:169来源:国知局
专利名称:一种应用进程的流程调度方法及系统的制作方法
技术领域
本发明涉及计算机系统的程序执行,特别是涉及一种多个应用进程按照预 定义流程进行调度的方法及系统。
背景技术
Unix (或Linux )是一个多用户、多任务的操作系统,在同一个时间内, 可以有多个进程同时执行。进程是系统程序或应用程序在内存中的 一次运行, 是操作系统当前运行的执行程序。进程和程序并不——对应, 一个程序可以作 为多个进程执行。在现有Unix系统下,进程调度是通过系统调用来实现的。 操作系统的进程调度,主要是实现按照优先级对每个进程进行分时间片的调 度,以便对资源(主要是CPU)进行共享。
应用进程的流程调度(以下简称应用流程)是指多个应用进程按照预定义 流程,进行调度执行。其中,所述应用进程为执行应用程序的进程;所述预定 义流程为实现特定应用服务的工作流程中,预先定义应用进程的执行步骤集 合。
操作系统的进程调度,实现的是进程对计算机资源的分配使用情况,并未 直接提供对应用进程按照预定义流程进行调用的控制功能。在操作系统下直接 实现流程调度的方式, 一般是编写命令脚本(shell ),但这种命令脚本的方式 存在如下缺点
由于命令脚本是针对应用流程编写的,每个shell对应一种调度流程,因 此只能处理使用同一调度流程的应用进程, 一旦流程改变,必需修改调用脚本。 这就要求使用者熟悉命令脚本,才能对应各种应用流程来编写不同的脚本程 序,实现多个应用进程的流程调度管理。
而且,对于具有一定逻辑关系的执行步骤,步骤之间的这种逻辑关系无法 控制。其中,所述逻辑关系指前后步骤具有限制关系。例如,针对特定应用服 务的步骤A和B的执行顺序是A和B同时开始执行,B完成后再单独执行A, 采用命令脚本的方式,由于对应用程序的进程调度是串行方式,因此无法按照 这种预定义的流程执行。
此外,通常应用程序存放在硬件的存储介质(如磁盘)中,搡作系统执行 该应用程序时,从磁盘获取并装入内存运行。采用命令脚本的方式,应用程序
被裝入内存后会立即执行,因此对千需要串行处理的应用程序,如A和B, B 需要在A后执行,只能先将应用程序A从磁盘上启动并装入内存,运行完毕后 再将应用程序B装入内存执行。在应用程序B装入内存的过程中,CPU需要等 待装入后才能运行,这种处理方式造成IO操作期间的CPU处理空闲,对系统
的性能带来较大影响。
总之,Unix (或Linux)环境下应用进程的流程调度,使用命令脚本的方 式实现针对不同应用服务的多种调度十分困难,因此现有技术下的流程调度方 法具有很大的局限性。

发明内容
本发明所要解决的技术问题是提供一种应用进程的流程调度方法及系统, 以解决Unix (或Linux )环境下采用命令脚本方式实现的流程调度方法单一、 无法按照预定义流程满足多种应用进程调度的问题。
为解决上述技术问题,本发明提供了一种应用进程的流程调度方法,设置 流程调度服务程序,包括
读取预定义服务进程配置信息;
创建输出消息队列及与所述服务进程配置信息对应的输入消息队列; 逐条读取单步预定义流程控制信息,执行调用请求时写入对应服务的输入
消息队列,执行调用返回时读取输出消息队列。
其中,所述输出消息队列是唯一的公共输出消息队列,所述输入消息队列
分别对应不同服务。
其中,所述输入消息队列对应不同服务,分配不同应用进程数。 还包括读取输入消息队列,调度分配的应用进程执行,并将执行结果写
入公共的输出消息队列。
其中,执行所述流程调度服务程序的进程接收与调用请求数量相等的异步
调用返回后,才能转入下一单步预定义流程。
其中,执行所述流程调度服务程序的进程接收同步调用返回后,才能转入 下一单步预定义流程。
其中,所述预定义服务进程配置信息及预定义流程控制信息在数据库表中 配置,所述预定义服务进程配置信息包括服务标识、程序文件名、消息队列参 者文件、配置进程数,所速预定义流程控制信息包括请求标识、服务标识、步 骤序号、调用参数、多进程分工标识、发送方式(同步/异步)、超时秒数。
还包括侦听服务请求,若收到所述服务请求,则进行流程调度;否则处 于等待状态。
优选的,所述侦听方式为TCP/IP方式。 还包括单独设置所述单步预定义流程步骤的超时时间。 还包括设置所述流程调度服务程序与应用程序的接口函数。 其中,所述接口函数包括调度初始化函数
检查调用的输入消息队列是否就绪,若是则记录消息队列号,否则出错返
回;
创建常驻内存的应用进程;
对输入消息队列进行轮询,若接收到所述流程调度服务进程的调用请求, 则调用对应应用程序功能函数;
将执行结果写入公共输出消息队列,响应所述流程调度服务进程的调用返回。
其中,所述接口函数还包括服务终止函数。 本发明还提供了一种应用进程的流程调度系统,包括 存储单元,用于存储预定义流程配置参数;
控制单元,用于读取所述存储单元存放的预定义服务进程配置信息;创建 公共输出消息队列及与所述服务进程配置信息对应的输入消息队列;
执行单元,用于逐条读取所述存储单元存放的单步预定义流程控制信息, 执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取公共输出
消息队列。
其中,所述预定义流程配置参数包括预定义服务进程配置信息及单步预定 义流程控制信息。
还包括侦听单元,用于侦听服务请求,若收到所述服务请求,则所述执 行单元进行流程调度;否则处于等待状态。 与现有技术相比,本发明具有以下优点
首先,经过编码改造,设置流程调度服务程序,通过在数据库表中预先配
置流程控制参数,并配合消息队列机制,实现了 Unix (或Linux )环境下多个 进程按照预定义流程进行单进程/多进程、同步/异步组合调度的控制功能。这 种组合调用能够根据不同的调度流程,预先定义流程配置信息,执行流程调度 服务进程,从而满足多种调用流程;而且在多个进程的调度中,由于采用了消 息队列控制机制,对于具有逻辑关系的执行步骤,可以通过单进程/多进程、
合调度能够控制进程的执行,因此实现了将多个应用程序事先同时从磁盘启动 装入内存的方式,在需要调度时直接从内存调度执行,避免了 IO操作期间的 CPU处理空闲,提高了系统的执行效率。
其次,同一功能的应用程序可以部署多个进程,通过消息队列实现进程的 并发调度,提高处理效率。由于服务处理时间远大于对消息队列的扫描时间, 因此实现了负载均衡的功能。
再次,由于进程数的配置在预定义流程时通过参数指定,因此部署进程数 可以根据系统资源的使用情况进行配置,实现了流量控制功能。
再次,本发明提供了流程调度服务程序与应用服务程序的应用程序接口 (API)函数。通过API函数方式,应用服务程序不需要关心进程调度过程, 即对应用服务程序是透明的。而且,API函数中仅有调度初始化一个函数是必 选的,方便应用程序编程,极大提高了开发效率。


图1是本发明所述调度方法的进程调度原理示意图; 图2是本发明所述同步/异步调用组合的流程图; 图3是本发明所述流程调度服务的步骤流程图; 图4是本发明所述调度初始化API函数的流程示意图; 图5是本发明所述应用进程的流程调度系统框图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明的核心思想是技术实现基于两部分,流程调度服务(及其配置参 数)和应用程序接口 (API)函数。通过在数据库表中配置参数数据的方式实 现流程预定义,应用服务进程间的通讯采用消息队列,所有服务由流程调度服 务进程按照所述预定义流程进行统一调度;通过应用服务程序与所述流程调度 服务程序间的接口 (API)函数的实现,应用服务程序只需将相关参数传入所 述API函数,即可实现预定义流程的调度执行,而不需要关心进程调度过程。
本发明实现了多个应用进程按照预定义流程进行单进程/多进程、同步/ 异步组合调度的控制功能。其中,所述流程预定义通过在数据库表中配置参数 数据的方式实现,包括服务进程配置信息和流程控制信息所述服务进程配置 信息包括服务标识、程序文件名、消息队列参考文件、配置进程数等,所述流 程控制信息包括请求标识、服务标识、步骤序号、调用参数、多进程分工标识、 发送方式(同步/异步)、超时秒数等内容。流程预定义可由最终用户或服务程 序开发方进行配置。
所述单进程/多进程调用属于本发明实现的功能。单进程调用为同一服务 只部署一个进程,只有一个进程响应该服务;多进程调用为同一服务部署多个
进程,将同一服务分成多个请求同时发出,有多个进程响应该服务。单进程/ 多进程规则属于预定义流程的策略,采取多进程策略一般是为了在系统资源许 可的条件下进行并发调度,尽可能提高处理效率及性能。由于多个进程协同处 理同一服务,因此必须对同一服务内容进行"分工",分工方法根据不同服务 有不同的方法,不管哪一种方法,都需要在调用时指定"多进程分工标识"参 数,以便多个进程正确进行"分工"。
所述同步/异步调用也属于本发明实现的功能。同步调用为同一时间只能
发起一次调用,待该调用返回后,才能进行下一次调用;异步调用为发出一次 调用后,不等待返回即可再次发出调用,即相当于同一时间可以发出多个调用。 同步/异步规则属于预定义流程的策略, 一般来说,存在严格先后逻辑关系的 服务采用同步调用,前后步骤没有限制关系时,可以进行异步调用。异步调用 可以同时发起多个调用,多进程方式下只能釆用异步调用。系统同时支持"接 收异步返回"功能,用于控制异步调用后续步骤的同步调用。
本发明中,同一功能的应用进程可以部署多个,以进行并发调度,提高处
理效率。前后步骤没有限制关系时,可以进行异步调用,否则可以进行同步调 用。不管同步或者异步调用,每个步骤可单独设置超时时间,如果某一个步骤 超时,则整个流程中止,并设置错误码为"流程执行超时"。由子超时时间是 设置在单个的步骤上,因此超时控制粒度相当细,能够满足大多数情况下的需求。
参照图1,是本发明所述调度方法的进程调度原理示意图。图中procMan (process Manager) 101为流程调度服务进程,是执行流程调度服务程序的 进程,是本发明设置的核心进程,只需要启动本进程即可自动将流程中定义的 所有应用进程启动起来。
进程102用字母P表示,如图P 、 P,2为实现同一服务功能的应用程序1 的2个副本进程;P21、 P,,,为实现不同服务功能的应用程序2和应用程序n的 进程。下标第l位相同表示同一功能应用的不同进程副本,下标第l位不同即 表示不同功能应用的不同进程副本。图中,应用程序1配置了两个进程,因此 可以两个进程并发处理,提高单步处理性能。应用程序2和应用程序n分别仅 配置了 1个进程,无需或者不能并发处理。所述针对不同服务功能的进程数配 置,根据系统资源使用情况,在预定义流程时通过参数指定,实现了流量控制 功能。
对除流程调度服务101外的其他服务而言,通知流程调度的消息队列称为 输出消息队列,从流程调度接收的消息队列称为输入消息队列。本发明中,系 统为除流程调度服务101外的其他同一组服务设置一个输入消息队列,多组服 务各自设置不同的输入消息队列,所有服务设置同一个公共输出消息队列。图 中,Q"、 Qn、 (^为不同应用服务的输入消息队列103。同一应用服务的一组进 程(例如Ph和P,2)使用同一个输入消息队列,不同应用服务的进程使用不同 的输入消息队列。多进程时,procMan从预定义配置参数获得多进程标识转发 给被调用的服务进程,该标识用于同一服务多个进程之间实现分工。Q。为除流 程调度服务procMan以外的所有应用进程共用的公共输出消息队列104。系统 中只需要一个公共输出消息队列。所有进程都将输出消息写入该队列,流程调 度服务从该队列读取服务调用返回。
图1所示的调度流程为,流程调度服务procMan需要调用应用服务1时,
在其对应的输入消息队列Qu中写入消息,该服务部署两个进程Pu和Pu,两个 进程中的空闲进程Pu (也可能是Pu)随机获得这条消息并进行处理。由于服 务处理时间远大子对消息队列的扫描时间,因此可以做到负栽均街。P12 (也可
能是P,,)进程处理完成后,将完成消息写入到公共输出消息队列Q。中。流程
调度服务通过扫描该消息队列获得应用服务完成情况。
按照上述方法,如调用的是应用服务2,则将请求消息写入消息队列P21 中,但完成情况仍然从Q。中读取。每个进程将自身的进程标识ID作为消息类 型返回,由于进程标识ID在操作系统中一段时间内是唯一的,而且这段时间 的长短取决于进程变化情况,但一般远大于24小时,能够满足大多数情况下 的服务需求,因此可以确定唯一的消息类型,从而尽管Q。是共用的,但返回 进程仍然可以得到区分。
上述写入调用消息与读出返回消息是完全独立的两个过程,因此,如果在 获得步骤一的返回消息以后,再写入步骤二的调用消息,则步骤一为"同步调 用";反之,如果写入多个步骤一的调用消息,或者写入步骤一的调用消息后, 不读取返回消息,直接再写入步骤二的调用消息,则实现"异步调用"。即, 通过控制调用消息的写入条件,流程调度procMan可以实现对其他服务的同步 调用、异步调用、接收异步返回等功能;通过对出口消息的读出和解析,流程 调度procMan可以实现请求流量控制和负载均衡,从而实现在Unix ( Linux )
环境下对应用进程的组合调度。
参照图2,是本发明所述同步/异步调用组合的流程图,图中表示了同步/ 异步调用组合比较常见的一种情形,执行步骤如下
步骤201,异步调用流程调度procMan发出多个(假定为10个)服务1 的请求,服务l预配置的两个应用进程Pu、 Pu分别进行响应,在P!,处理完成
后,又从消息队列读取下一个请求,对P,2同理。因此,P"和P,2之间实现负载
均衡;另外,服务l进程数量可调,部署进程数根据系统资源使用情况进行配 置,实现了流量控制功能。
步骤202,接收异步返回流程调度procMan接收与请求数量相等的异步
返回,然后再转入下一个步骤,实现了异步调用到同步调用的转换。例如,流 程调度procMan从公共输出消息队列Q。读取调用返回,接收到IO个异步返回后,才发出下一步骤的调用请求。
步骤203,同步调用根据服务2的功能特性,执行该服务的步骤之间具 有一定的逻辑限制关系,因此服务2无法进行并衧处理,仅部署单进程P21, 使用同步方式调用。只有在Pu返回以后,才能进入下一个步骤。
步骤204,同步调用根据系统资源的使用情况,服务3不需要进行并行 处理,仅部署单进程P3,,使用同步方式调用。在Pw返回以后,没有后续步骤, 流程结束。
本发明的完整实现基于两部分流程调度服务(及其配置参数)和应用服 务程序API (Application Programming Interface应用程序接口 )函数。
参照图3,是本发明所述流程调度服务的步骤流程图。流程调度服务总体 处理流程如下
步骤301,进程初始化,完成环境准备等工作。例如,交易流程控制表在 共享内存中的地址初始化工作等。
步骤302,从数据库读取服务进程配置信息,包括服务标识、程序文件 名、消息队列参考文件、配置进程数等。其中,所述消息队列参考文件指用于 生成识别消息队列的唯一键值。所述服务进程配置信息可由最终用户或应用服
务程序开发方预先进行配置。
步骤303,根据步骤302中获得的服务进程配置信息创建消息队列。不同
服务使用不同的输入消息队列,但公用同 一个公共输出消息队列。
步骤304,启动所有的服务进程。将预定义流程中执行的服务程序从磁盘
全部调入内存,在调用时直接从内存读取,实现IO操作与CPU计算的并行处
理,提高了执行效率。
步骤305, TCP/IP服务请求侦听。如果接收到服务请求,则转入相应的流
程调度,否则处于等待TCP/IP服务请求状态。现有实现的流程调度服务通过
TCP/IP方式接收服务请求,根据需要也可以改成数据库轮询、消息队列轮询
等其他方式实现。
步骤3Q6,接收到服务请求后,将转入相应的流程调度。
步骤307,进程调度接收到请求后,向调用者返回请求成功信息,表示开
始处理该:清求。
步骤308,从数据库获取预定义的流程控制信息。所述预定义的流程控制 信息包括请求标识、服务标识、步骤序号、调用参数、多进程分工标识、发送 方式(同步/异歩)、超时秒数等内容。流程预定义可由最终用户或应用服务程 序开发方预先进行配置。
步骤309, 310,读取一条流程控制信息,才艮据同步调用、异步调用、返 回调用进行消息队列读或写操作。如果是请求调用,则写入对应服务的消息队 列通知相应服务开始处理;如果是返回,则读取返回消息队列,并进行超时控 制。如果有进程处理失败,则进入错误处理,终止当前流程。
步骤311,在数据库中记录或更新状态日志。
步骤312,循环读取单步流程控制信息,返回步骤309。由于在预定义流 程中预先设定了步骤序号,因此当所有预置步骤处理完后,服务请求处理结束。
上述步骤中,所述服务进程配置信息及流程控制信息为预定义的流程配置 参数,在不同步骤获取相关配置信息。而且,根据服务标识的不同,流程执行 的单步流程数量也不相同。因此本发明能够满足多种调用流程。
本发明还设置了应用程序与流程调度服务程序的接口函数,通过API函数 方式,应用服务程序不需要关心进程调度过程,即对应用服务程序是透明的。 所述API函数与应用服务程序的接口包括两个函数调度初始化 (glbQueuelnit )函数和服务终止函数。其中,所述调度初始化函数是唯—— 个应用服务程序必须调用的API函数。如果应用服务程序在调用调度初始化函 数时,同时指定了服务终止函数(通过函数指针参数),则系统将在应用服务 进程被终止时调用服务终止函数;如未指定,则执行默认的服务终止函数,即 通过exit系统调用终止进程。
参照图4,是本发明所述调度初始化API函数的流程示意图。调度初始化 API函数的处理流程如下
步骤401 - 404,;险查调用的消息队列是否就绪,包括消息队列是否创建, 是否可读写。如未就绪,则出错返回,终止进程;如就绪,则获取并记录消息 队列号。步骤401,获取公共输出消息队列配置参数,包括消息队列号等参数; 步骤402,检查公共输出消息队列是否可写,以便应用进程执行完后将结果写 入公共输出消息队列。步骤403,获取输入消息队列配置参数,包括消息队列
号等参数;步骤404,检查输入消息队列是否可读,以便应用进程从对应输入
消息队列获取请求并执行。
步骤405,通过系统调用(fork)衍生创建子进程,创建成功后父进程退 出。这样,应用服务进程就成为守护(daemon)进程,常驻内存中不间断进行 消息队列轮询并响应请求。其中,所述fork系统调用的作用是复制一个进程。 当一个进程调用它,完成后就出现两个几乎一模一样的进程,复制出来的另外 一个进程被称为子进程,原来的进程称为父进程。所述守护进程是生存期较长 的一种进程,它们独立于控制终端,并且周期性地执行某种任务或等待处理某 些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。Unix 系统有很多守护进程,大多数基于Unix (或Linux )操作系统的服务器功能都 是用守护进程实现的,比如网络服务inetd、 Web服务http等。同时,许多系 统任务也是由系统的守护进程完成,比如作业规划进程crond、打印进程lqd 等。
步骤406 - 407,对消息队列进行轮询,如接收到消息,即procMan发出 调用请求,向对应输入消息队列写入消息请求,则执行步骤407,从该输入消 息队列读取消息,调用本函数入口参数函数指针中指定的应用函数;否则继续
轮询消息队列。
步骤408,应用函数返回后,在公共输出消息队列中写入返回信息。procMan 通过调用返回,读取公共输出消息队列。返回步骤406,继续对消息队列进行轮询。
API函数中仅有调度初始化是必选,方便应用进程编程,极大提高了开发 效率。以下实施例是本发明中API函数的使用范例
调度初始化glbQueuelnit的C语言函凄t原型int glbQueuelnit (char *myld, int(*myFunc) (SVC一MSG—IN —DEF *svcMsgIn), void (*termFunc)())
应用服务程序myA卯在main函数中调用调度初始化glbQueuelnit函数, 编写^yFunc指定的函数处理服务请求。如需在服务进程中止时处理其他事 务,可指定nermFunc,否则参数用NULL。完整的调用范例如下
/*应用服务程序myApp范例*/
/*定义myApp的月良务标识,以i"更流程调度procMan进4亍月良务调度*/ #define MYAPP—ID "1001"
/*完成应用"l务^^码*/ int myApp(char *buf)
/*服务处理代码*/
/*进程终止时调用*/ int mySvcTerm (void) {
/*服务中止时处理代码,例如断开数据库连接等*/ }
/*主函lt入口 */
int main(int argc, char *argv[])
/*初始化代码,例如数据库连接等*/ glbQueuelnit (MYAPP—ID, myApp, mySvcTerm);
范例中调度初始化glbQueuelnit函数传入三个参数,第一个MYAPP—ID 参数是myApp的服务标识,用于流程调度服务procMan对该服务的识别和调用; 第二个myA卯参数是函数指针myApp,指向实现该服务功能的函数,由应用开 发人员编写;第三个mySvcTerm参数是函数指针mySvcTerm,指向进程终止时 需要处理内容的函数,即服务中止函数,也是由应用开发人员编写,如不需要, 可以传入空(冊LL)参数。
在上述应用服务程序myApp中,通过glbQueuelnit函数实现了应用进程 的流程调度,但对于myApp程序,并不知道具体的调度流程是如何执行的,只 雷传入参数,通过glbQueuelnit接口函数执衧流程调度服务进程,完成相应 服务处理。
对应所述应用进程的流程调度方法,本发明还提供了 一种应用进程的流程 调度系统。参照图5是本发明所述应用进程的流程调度系统框图。所述系统包 括
存储单元5Q1,用于存储预定义流程配置参数,所述预定义流程配置参数 包括预定义服务进程配置信息及单步预定义流程控制信息。;
控制单元502,用于读取所述存储单元501存放的预定义服务进程配置信 息;创建公共输出消息队列及与所述服务进程配置信息对应的输入消息队列;
执行单元503,用于逐条读取所述存储单元501存放的单步预定义流程控 制信息,执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取 公共输出消息队列。
侦听单元504,用于侦听服务请求,若收到所述服务请求,则所述执行单 元503进行流程调度;否则处于等待状态。
综上所述,本发明实现了 Unix环境下按照预定义流程对多个应用进程进 行单进程/多进程、同步/异步的组合调度。采用消息队列和多进程调度实现了 负载均衡的功能;在流程预定义中设置进程数实现了流量控制功能;通过API 函数方式,应用服务程序不需要关心进程调度过程,即对应用服务程序是透明 的。API函数中仅有调度初始化一个函数是必选的,方便应用程序编程,极大
提高了开发效率。经过编码改造,本发明所述方法及系统适用于其他提供消息 队列和进程系统调用的操作系统,如Un i x系统和其他类Un i x系统(1 inux )。
以上对本发明所提供的 一 种应用进程的流程调度方法及系统
述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时, 对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围 上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种应用进程的流程调度方法,其特征在于,设置流程调度服务程序,包括读取预定义服务进程配置信息;创建输出消息队列及与所述服务进程配置信息对应的输入消息队列;逐条读取单步预定义流程控制信息,执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取输出消息队列。
2、 根据权利要求1所述的调度方法,其特征在于所述输出消息队列是 唯一的公共输出消息队列,所述输入消息队列分别对应不同服务。
3、 根据权利要求1所述的调度方法,其特征在于所述输入消息队列对 应不同服务,分配不同应用进程数。
4、 根据权利要求l、 2或3所述的调度方法,其特征在于,还包括读取 输入消息队列,调度分配的应用进程执行,并将执行结果写入公共输出消息队 列。
5、 根据权利要求1所述的调度方法,其特征在于执行所述流程调度服 务程序的进程接收与调用请求数量相等的异步调用返回后,才能转入下一单步 预定义流程。
6、 根据权利要求1所述的调度方法,其特征在于执行所述流程调度服 务程序的进程接收同步调用返回后,才能转入下一单步预定义流程。
7、 根据权利要求1所述的调度方法,其特征在于所述预定义服务进程 配置信息及预定义流程控制信息在数据库表中配置,所述预定义服务进程配置 信息包括服务标识、程序文件名、消息队列参考文件、配置进程数,所述预定 义流程控制信息包括请求标识、服务标识、步骤序号、调用参数、多进程分工 标识、发送方式(同步/异步)、超时秒数。
8、 根据权利要求1所述的调度方法,其特征在于,还包括侦听服务请 求,若收到所述服务请求,则进行流程调度;否则处于等待状态。
9、 根据权利要求8所述的调度方法,其特征在于所述侦听方式为TCP/IP方式。
10、 根据权利要求1所述的调度方法,其特征在于,还包括单独设置所 述单步预定义流程步骤的超时时间。
11、 根据权利要求1所述的调度方法,其特征在于,还包括设置所述流程调度服务程序与应用程序的接口函数。
12、 根据权利要求11所述的调度方法,其特征在于,所述接口函数包括 调度初始化函数检查调用的输入消息队列是否就绪,若是则记录消息队列号,否则出错返回;创建常驻内存的应用进程;对输入消息队列进行轮询,若接收到所述流程调度服务进程的调用请求, 则调用对应应用程序功能函数;将执行结果写入公共输出消息队列,响应所述流程调度服务进程的调用返回。
13、 根据权利要求11所述的调度方法,其特征在于所述接口函数还包 括服务终止函数。
14、 一种应用进程的流程调度系统,其特征在于,包括 存储单元,用于存储预定义流程配置参数;控制单元,用于读取所述存储单元存放的预定义服务进程配置信息;创建 公共输出消息队列及与所述服务进程配置信息对应的输入消息队列;执行单元,用于逐条读取所述存储单元存放的单步预定义流程控制信息, 执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取公共输出消息队列。
15、 根据权利要求14所述的调度系统,其特征在于所述预定义流程配 置参数包括预定义服务进程配置信息及单步预定义流程控制信息。
16、 根据权利要求14所述的调度系统,其特征在于,还包括侦听单元, 用于侦听服务请求,若收到所述服务请求,则所述执行单元进行流程调度;否 则处于等待状态。
全文摘要
本发明公开了一种应用进程的流程调度方法及系统,以解决Unix(Linux)环境下采用命令脚本方式实现的流程调度方法单一、无法按照预定义流程满足多种应用进程调度的问题。所述方法设置流程调度服务程序,包括读取预定义服务进程配置信息;创建输出消息队列及与所述服务进程配置信息对应的输入消息队列;逐条读取单步预定义流程控制信息,执行调用请求时写入对应服务的输入消息队列,执行调用返回时读取输出消息队列。还包括设置流程调度服务程序与应用程序的接口函数,方便应用程序编程,极大提高了开发效率。本发明实现了Unix(Linux)环境下按照预定义流程对多个应用进程进行单进程/多进程、同步/异步的组合调度,实现了负载均衡和流量控制功能。
文档编号G06F9/46GK101097527SQ20061002850
公开日2008年1月2日 申请日期2006年6月27日 优先权日2006年6月27日
发明者陈逢源 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1