CN100416505C - 一种基于配置文件的程序流程控制方法 - Google Patents
一种基于配置文件的程序流程控制方法 Download PDFInfo
- Publication number
- CN100416505C CN100416505C CNB2005100930285A CN200510093028A CN100416505C CN 100416505 C CN100416505 C CN 100416505C CN B2005100930285 A CNB2005100930285 A CN B2005100930285A CN 200510093028 A CN200510093028 A CN 200510093028A CN 100416505 C CN100416505 C CN 100416505C
- Authority
- CN
- China
- Prior art keywords
- configuration file
- configuration
- control method
- scheduling
- flow control
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及程序流程控制领域,公开了一种基于配置文件的程序流程控制方法,包括如下步骤:通过配置文件定义应用程序的执行流程,根据实际需要以顺序或分支形式把多步操作组合成所需的操作流程;通过流程调度模块,读取配置信息,对各步操作进行调度执行,包含操作调度、入参选择。本发明采用使用配置文件定制程序流程的控制方法,把各独立的小功能模块组合在一起完成一个完整的功能,相对于现有方法,具有很强的灵活性,对子功能模块进行积木式的组合,可适应不同的应用场景定制要求,大大提高代码的复用性,也使得不同应用场景的逻辑实现变得简单、快捷、灵活。
Description
技术领域
本发明涉及程序流程控制技术,具体是一种基于配置文件的程序流程控制方法,特别是一种通过使用配置文件控制程序执行流程的方法。
背景技术
通常,在C/S,B/S等模式的应用程序开发中,服务端程序要接受各类不同的输入请求命令,通过运算返回相应的结果。
由于要处理的逻辑是复杂多样的,并且随着系统的完善,可能不断的有新的功能需要加入到系统中。因此服务端程序的处理逻辑在设计时候,应尽量包括主要功能,并具有一定的扩展性,以满足将来功能扩充之需。
现有的C/S,B/S系统服务端程序一般都采用完整的代码逻辑方式,即把所有可能的客户端请求的处理都包括到代码逻辑中。通过请求标识(命令码或参数等)来进行逻辑分支选择处理。
这样做的好处是效率比较高,中间冗余过程少。但是,采用这种方式,服务端功能模块相对会比较庞大复杂。并且,如果系统开发完成后,需要加入新的功能,或有另外一个类似的但需求略有不同的应用系统,则代码要被修改才能满足新的应用系统需求。
发明内容
本发明针对应用系统复杂多变的情况,采取配置文件方式,来定义应用系统中的操作执行流程,本发明所提供的一种基于配置文件的程序流程控制方法,根据不同的组合形式,使得同一套代码能方便的满足各类不同的业务处理需求,达到快速构建系统和灵活扩展的目的。
本发明是这样具体实现的:
一种基于配置文件的程序流程控制方法,其特征在于,包括如下处理:
通过配置文件定义应用程序的执行流程,根据实际需要以顺序或分支形式把多步操作组合成所需的操作流程;
通过流程调度,读取配置信息,对各步操作进行调度执行,包含操作调度、入参选择。
所述流程调度进一步包括如下处理:
流程调度模块根据输入参数,找到配置文件中的对应配置项;
配置项定义一系列的操作步骤;
流程调度模块根据配置项的具体内容,选择特定的应用程序处理逻辑进行执行;
所述选择特定的应用程序处理逻辑执行的先后顺序与配置文件中定义的操作顺序一致。
所述配置项中可以有分支判断配置,在调度过程中,可以动态的对某步骤执行情况进行判断,根据当时的执行结果决定下一步骤调用哪一个处理进行执行。
所述配置项定义的一系列操作步骤包含:
本步操作标识ID、执行的入参来源、具体执行方法名、下一步操作标识ID操作基本信息。
所述操作调度:
根据每一步骤的配置信息,定位具体的应用处理逻辑,传入参数进行调用,返回结果存入临时结果集,作为后续步骤调用的基础,再根据配置信息中下一步操作的标识内容,决定当前步骤执行完成后,需要执行的下一步操作内容,进行调用。
所述入参选择:根据配置信息,决定执行所需参数类型和来源,从临时结果集中找到此步骤执行所需要的参数。
所述流程调度还可以包括:
分支逻辑控制,如果配置文件中配置了分支选择信息,流程调度模块可以根据当前步骤的执行结果,动态的决定下一步执行哪一操作。
本发明采用使用配置文件定制程序流程的控制方法,把各独立的小功能模块组合在一起完成一个完整的功能,则背景技术中所述的问题可以被很好解决。
通过不同的组合方式可以让同一套代码实现不同的程序流程,满足在功能上相近的同一类应用系统需求;
配置文件负责操作主流程控制,则服务端应用程序就相对简单,功能独立,无太多的分支处理逻辑;
如果原有系统升级,增加新的需求,则可以通过更新配置流程内容达到目的。系统也有可能会增加新的功能模块,但不必修改程序中流程控制部分的逻辑。只用修改配置文件就可以把新增功能加入到整个操作处理逻辑流程中。
从上述描述可以看出使用配置文件方式控制程序流程,使得应用系统开发工作变得便捷高效,系统具有比较好的复用性和扩展性。
相对于现有方法,本发明的方法采用配置文件管理程序流程,具有很强的灵活性。对子功能模块进行积木式的组合,可适应不同的应用场景定制要求,大大提高代码的复用性,也使得不同应用场景的逻辑实现变得简单、快捷、灵活。
附图说明
图1本发明基于配置文件的程序流程调度原理图;
图2CAF系统工具框架原理图;
图3流程控制子模块的流程调度原理图。
具体实施方式
为实现发明目的,本发明提出的方法主要包括以下步骤:
(1)以配置文件形式定义应用程序逻辑模块的执行流程。应用实现过程中可以根据实际需要以顺序或分支形式把多步操作组合成所需的操作流程;说明书附图1基于配置文件的程序流程调度原理图显示了这种调度方式的基本框架结构。
调度基本流程如下:
●流程调度模块根据输入参数,找到配置文件中的对应配置项;
●配置项定义了一系列的操作步骤,每一步操作包含了一些操作基本信息,如:“本步操作标识ID”、“执行的入参来源”、“具体执行方法名”,“下一步操作标识ID”等。
●流程调度模块根据配置项具体内容,选择特定的应用程序处理逻辑进行方法调用;
●所述选择特定的应用程序处理逻辑执行的先后顺序与配置文件中定义的操作顺序一致;
●如需要,配置项中还可以有分支判断配置。调度过程中,可以动态的对某步骤执行情况进行判断,根据当时的执行结果决定下一步骤调用哪一个处理进行执行。
(2)流程调度模块是本发明的重要部分,负责读取配置信息,对各步操作进行调度执行。可以包含操作调度、入参选择、分支逻辑控制等相关模块。
具体说明如下:
操作调度:根据每一步骤的配置信息,定位具体的应用处理逻辑,传入参数进行调用,返回结果存入临时结果集,作为后续步骤调用的基础。再根据配置信息中下一步操作的标识内容,决定当前步骤执行完成后,需要执行的下一步操作内容,进行调用。
入参选择:根据配置信息,决定执行所需参数类型和来源,从临时结果集中找到此步骤执行所需要的参数。
分支逻辑控制:如果配置文件中配置了分支选择信息,则执行该步骤方法时,流程调度模块可以根据当前步骤的执行结果,动态的决定下一步执行哪一操作。
下面结合附图2和图3对本发明的一个实际应用作详细的说明:
在CDMA网管系统服务端的CAF系统工具框架模块中使用了本发明,达到了灵活控制上行/下行消息处理流程的目的。
CAF系统工具框架模块根据基于配置文件的程序流程控制技术实现了一套灵活的应用自定义业务流程的机制,并控制流程的正确执行,将重用的粒度细化到方法。
图2为“CAF系统工具框架原理图”,图中展示了工具CAF中的基本消息处理流程。
上行消息处理流程:
●网管客户端发起上行请求消息;
●该消息被送达网管服务端程序,上行流程调度模块根据配置文件,调用相应的网管业务模块中的方法,执行对应的上行处理。不同的应用在网管服务端可根据需要配置自己的操作步骤,决定消息在服务端具体做什么处理。
●消息经过网管服务端程序处理后被发送到前台网元设备。
下行消息处理流程:
●前台网元向后台网管程序上报消息;
●数据被送到网管服务端程序,下行流程调度模块根据配置文件,调用相应的网管业务模块,执行对应的下行处理。不同的应用在网管服务端可根据需要配置自己的操作步骤,决定前台上报的消息在服务端具体做什么处理。
●消息经过网管服务端程序处理后被发送到网管的客户端。
以下给出一具体实施示例:
以具有对应配置信息的上行消息为例说明,根据配置信息将此消息按以下流程被处理:
1.首先执行FuncA方法;
2.如果执行正常,根据Next=”Maf2”标识,执行一下步;
3.执行步骤”Maf2”的FuncB方法,该步骤Next=”Fin”,流程执行到此结束;
4.如果在执行步骤1的FuncA方法出现分支异常,根据Exception=″Maf3,进行分支跳转,执行下一步;
5.执行步骤”Maf3”的Func3方法,该步骤Next=”Fin”,流程执行到此结束。
框架部分,主要包括框架初始化子模块、上/下行流程控制子模块。初始化子模块主要负责从配置文件中读取与处理流程相关的配置信息等工作。
上/下行流程控制模块则负责接收来自网管客户端或前台网元的消息,并从初始化子模块获取相关上/下行流程信息,再通过调度控制执行该流程。图3就是流程控制子模块的流程调度原理图:
●调度模块中流程控制器首先从操作选择器获得操作具体信息;
●流程控制器调用单步操作执行器进行操作指定方法的调用;
●单步操作执行器执行时使用入参选择器从临时结果集合中获得入参;
●单步执行完成后,处理结果存入临时结果集合。流程控制器取下一步操作进行执行。
从上述介绍可看出,本发明应用在了CAF系统工具框架模块中,配置信息由初始化子模块读取和管理,流程控制子模块负责解析执行这些信息,最终完成对上/下行消息的处理。
使用同一套CAF的代码,不同的应用程序只需要提供相应的配置文件和业务处理模块,就可以完成不同的业务流程处理功能。如遇新需求要求变更原有处理流程,无须修改代码,只通过修改配置文件内容就可以达到目的。可见使用这种基于配置文件的流程控制技术可以增加应用系统的复用性和扩展性。
Claims (6)
1. 一种基于配置文件的程序流程控制方法,其特征在于,包括如下处理:
通过配置文件定义应用程序的执行流程,根据实际需要以顺序或分支形式把多步操作组合成所需的操作流程;
通过流程调度,读取配置信息,对各步操作进行调度执行,包含操作调度、入参选择;
所述入参选择是根据配置信息,决定执行所需参数类型和来源,从临时结果集中找到每个步骤执行所需要的参数。
2. 如权利要求1所述基于配置文件的程序流程控制方法,其特征在于,所述流程调度进一步包括如下处理:
流程调度模块根据输入参数,找到配置文件中的对应配置项;
配置项定义一系列的操作步骤;
流程调度模块根据配置项的具体内容,选择特定的应用程序处理逻辑进行执行;
所述选择特定的应用程序处理逻辑执行的先后顺序与配置文件中定义的操作顺序一致。
3. 如权利要求2所述基于配置文件的程序流程控制方法,其特征在于:
所述配置项中可以有分支判断配置,在调度过程中,可以动态的对某步骤执行情况进行判断,根据当时的执行结果决定下一步骤调用哪一个处理进行执行。
4. 如权利要求2所述基于配置文件的程序流程控制方法,其特征在于,所述配置项定义的一系列操作步骤包含:
本步操作标识ID、执行的入参来源、具体执行方法名、下一步操作标识ID操作基本信息。
5. 如权利要求1或2所述基于配置文件的程序流程控制方法,其特征在于,所述操作调度:
根据每一步骤的配置信息,定位具体的应用处理逻辑,传入参数进行调用,返回结果存入临时结果集,作为后续步骤调用的基础,再根据配置信息中下一步操作的标识内容,决定当前步骤执行完成后,需要执行的下一步操作内容,进行调用。
6. 如权利要求1或2所述基于配置文件的程序流程控制方法,其特征在于,所述流程调度还可以包括:
分支逻辑控制,如果配置文件中配置了分支选择信息,流程调度模块可以根据当前步骤的执行结果,动态的决定下一步执行哪一操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100930285A CN100416505C (zh) | 2005-08-25 | 2005-08-25 | 一种基于配置文件的程序流程控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100930285A CN100416505C (zh) | 2005-08-25 | 2005-08-25 | 一种基于配置文件的程序流程控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1920779A CN1920779A (zh) | 2007-02-28 |
CN100416505C true CN100416505C (zh) | 2008-09-03 |
Family
ID=37778509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100930285A Expired - Fee Related CN100416505C (zh) | 2005-08-25 | 2005-08-25 | 一种基于配置文件的程序流程控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100416505C (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063304B (zh) * | 2010-12-31 | 2014-06-18 | 惠州Tcl移动通信有限公司 | 驱动电子替代料组合的方法和具有电子替代料组合的装置 |
CN102135987A (zh) * | 2011-03-02 | 2011-07-27 | 山东中创软件工程股份有限公司 | 一种物流信息实时查询方法 |
CN102129389A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 基于linuxC语言的轻量级流程调度方法 |
CN102270127B (zh) * | 2011-05-30 | 2014-04-16 | 桂林欧博仪器技术有限公司 | 分析仪器流程编程和控制的方法 |
CN103186374B (zh) * | 2011-12-30 | 2016-06-01 | 鼎捷软件股份有限公司 | 一种软件系统功能划分及组合的方法 |
CN103577170A (zh) * | 2012-07-27 | 2014-02-12 | 中兴通讯股份有限公司 | 网络应用的构建方法及装置 |
JP6354178B2 (ja) * | 2014-01-31 | 2018-07-11 | オムロン株式会社 | 画像処理装置、管理システムおよび管理方法 |
CN105335132B (zh) * | 2014-06-13 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种自定义应用程序功能的方法、装置以及系统 |
CN105589616A (zh) * | 2014-10-21 | 2016-05-18 | 中兴通讯股份有限公司 | 一种在终端上组合多种应用操作的方法、装置及终端 |
CN106293809A (zh) * | 2016-07-28 | 2017-01-04 | 东软集团股份有限公司 | 优化程序的方法及装置 |
CN107766230A (zh) * | 2016-08-19 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种基于配置文件进行测试的方法与设备 |
CN107015853B (zh) * | 2016-10-10 | 2021-03-23 | 创新先进技术有限公司 | 多阶段任务的实现方法和装置 |
CN106406907A (zh) * | 2016-10-11 | 2017-02-15 | 传线网络科技(上海)有限公司 | 应用程序流程的执行控制方法及装置 |
CN106897076B (zh) * | 2017-03-24 | 2021-03-02 | 长沙趣动文化科技有限公司 | 游戏服务提供及运行方法、装置 |
CN107479940A (zh) * | 2017-08-23 | 2017-12-15 | 绵阳美菱软件技术有限公司 | 一种实现物联网模块的方法及装置 |
CN107957893A (zh) * | 2017-12-20 | 2018-04-24 | 四川九洲电器集团有限责任公司 | 一种软件流程与功能动态实现方法 |
CN109960496A (zh) * | 2017-12-25 | 2019-07-02 | 北京创昱科技有限公司 | 设备控制方法、装置、电子设备和存储介质 |
CN108965611B (zh) * | 2018-10-19 | 2021-06-25 | 北京小米移动软件有限公司 | 拍摄界面的切换方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1205786A (zh) * | 1995-10-30 | 1999-01-20 | 根来文生 | 软件的生产方法、处理装置及记录媒体 |
-
2005
- 2005-08-25 CN CNB2005100930285A patent/CN100416505C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1205786A (zh) * | 1995-10-30 | 1999-01-20 | 根来文生 | 软件的生产方法、处理装置及记录媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN1920779A (zh) | 2007-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100416505C (zh) | 一种基于配置文件的程序流程控制方法 | |
CN108694564B (zh) | 一种任务状态控制方法及装置 | |
CN109597458A (zh) | 用于空间阵列中的可配置时钟门控的处理器和方法 | |
US20020184291A1 (en) | Method and system for scheduling in an adaptable computing engine | |
CN100487645C (zh) | 基于数据驱动的界面自动生成方法 | |
CN110390496B (zh) | 一种适应业务与组织复杂多变的工作流设计方法 | |
CN101174219A (zh) | 根据使用环境执行和配置应用的方法和系统 | |
CN109240732A (zh) | 一种基于灵活规则的流程编排方法 | |
EA004196B1 (ru) | Управляющий программный продукт и система обработки данных | |
CN110502229A (zh) | 页面的生成方法、装置、终端、计算机设备和存储介质 | |
CN100498735C (zh) | 自动测试过程中资源使用的方法 | |
CN106062716A (zh) | 在单任务系统中实现多任务的方法、装置及单任务系统 | |
Georgievski et al. | A vision for composing, integrating, and deploying AI planning functionalities | |
Tsujimura et al. | Effects of symbiotic evolution in genetic algorithms for job-shop scheduling | |
US20090024424A1 (en) | System and method for dynamic linking of business processes | |
CN1588411B (zh) | 一种基于流程定制的流程控制方法 | |
CN102387137B (zh) | 多个网络设备智能操作逻辑的实现方法和系统 | |
CN102387264A (zh) | 呼叫控制策略的处理方法、装置及呼叫中心 | |
Adriaansen et al. | Code generation for reconfigurable explicit datapath architectures with llvm | |
CN106598716A (zh) | 一种基于多处理器的任务调度方法 | |
CN116442214A (zh) | 一种机器人的业务并行处理方法、装置、设备及介质 | |
CN102054107A (zh) | 集成电路下层硬件映射方法、时空图生成方法及装置 | |
Schuller et al. | Qos-based optimization of service compositions for complex workflows | |
Jozwiak et al. | Multi-objective optimal controller synthesis for heterogeneous embedded systems | |
CN112418796A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 Termination date: 20150825 |
|
EXPY | Termination of patent right or utility model |