CN103617044A - 一种二次开发程序执行的控制方法 - Google Patents
一种二次开发程序执行的控制方法 Download PDFInfo
- Publication number
- CN103617044A CN103617044A CN201310671000.XA CN201310671000A CN103617044A CN 103617044 A CN103617044 A CN 103617044A CN 201310671000 A CN201310671000 A CN 201310671000A CN 103617044 A CN103617044 A CN 103617044A
- Authority
- CN
- China
- Prior art keywords
- state
- status
- job
- secondary development
- program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013515 script Methods 0.000 claims abstract description 29
- 238000011161 development Methods 0.000 claims abstract description 25
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 239000012530 fluid Substances 0.000 claims abstract description 11
- 238000011112 process operation Methods 0.000 claims abstract description 4
- 238000002203 pretreatment Methods 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 12
- 230000007613 environmental effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 238000004088 simulation Methods 0.000 abstract 3
- 238000010561 standard procedure Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100437728 Rattus norvegicus Bloc1s2 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Abstract
本发明公开了一种面向流体仿真二次开发程序执行的控制方法,包括:S1、根据流体仿真二次开发程序执行的中间过程作业的状态特点,将运行中的作业解析为10个作业状态;S2、根据流体仿真二次开发程序执行的标准流程,对所述10个作业状态配置其转换逻辑;S3、通过在数据库中添加1个state字段和4个step字段,对作业执行状态的全流程进行记录;S4、基于状态机模式和数据库记录,调度系统根据作用当前状态,按照预先定义的作业执行状态间转换逻辑执行作业,以对作业的流程控制。该方法使得开发人员只需要关注作业流程逻辑和脚本,无需开发服务层程序,从而大大缩短开发周期。
Description
技术领域
本发明涉及程序管理技术领域,尤其涉及一种二次开发程序执行的控制方法。
背景技术
近年来,随着软件技术的发展与成熟,在工程计算领域,许多软件都为用户提供了二次开发的接口,以便于用户根据自己的行业需求进行个性化定制,并快速投入使用,从而降低软件开发周期,减少成本。二次开发的目的是使通用软件更加专业化,以提高应用效率,统一和简化使用方法,二次开发既可以满足用户自身的行业具体需求,也可以扩充原软件的功能,使之进一步发展完善。
虽然对工程仿真软件(如:CAE软件)的二次开发技术能够为中小企业带来很多研发上的优势,但是二次开发技术本身仍然非常专业,需要计算机专业领域的知识,需要工程计算工程师在使用专业的计算机语言进行开发,进行工程计算分析。基于云模式的软件服务平台让更多的用户能够方便的使用现有的基于二次开发的软件和程序,同时开发人员也可以借助于这个平台方便的集成或者整合自己的程序,提高二次开发技术的普及率。但是将二次开发脚本集成到软件服务平台的过程非常复杂,涉及到参数解析、系统环境配置、前处理、求解、后处理、结果生成与展示等工作内容。目前二次开发脚本集成主要还是依靠开发人员人工手动实现,存在两个主要的缺陷:
1.平台扩展性低,由于每一个二次开发应用的参数、运行方式各不相同,因此每一个新的程序都需要花费人力和时间去开发新的后台脚本程序来将其集成到平台中来,在面对大量第三方应用的场景时,开发团队压力极大,无法满足云平台对应用处理能力和效率的要求;
2.维护成本高,每一种新软件的集成,都需要多种开发人员进行协调工作,例如流体仿真二次开发程序中,需要包括JAVA、PYTHON(一种面向对象、直译式计算机程序设计语言)、TCL(ToolCommand Language,工具命令语言)等各种工程师协调工作,时间周期长,成本非常高。
因此现有技术对于工程软件的二次开发需要耗费的时间比较长,对人员的专业水平要求较高耗用人力资源,成本较高。
发明内容
(一)要解决的技术问题
针对上述缺陷,本发明要解决的技术问题是如何采用自动化、流程化的处理方式,缩短软件二次开发的时间周期。
(二)技术方案
为解决上述问题,本发明提供了一种二次开发程序执行的控制方法,包括:
S1、根据流体仿真二次开发程序执行的中间过程作业的状态特点,将运行中的作业解析为10个作业状态;
S2、根据流体仿真二次开发程序执行的标准流程,对所述10个作业状态配置其转换逻辑;
S3、通过在数据库中添加1个state字段和4个step字段,对作业执行状态的全流程进行记录;
S4、基于状态机模式和数据库记录,调度系统根据作用当前状态,按照预先定义的作业执行状态间转换逻辑执行作业,以对作业的流程控制。
其中,所述10个状态分别为:初始化状态、环境配置状态、失败状态、等待状态、前处理状态、运行状态、后处理状态、完成状态、异常退出状态和未知状态。
其中,所述10种作业状态之间的转换逻辑如下:
S21、用户提交作业请求,生成作业实例,进入初始化态;
S22、作业处于初始状态,当参数解析出现异常时,进入失败状态;如果作业参数能够正常解析,则进入环境配置状态;
S23、作业处于环境配置状态,根据参数配置系统环境变量,并生成BASH脚本,提交至后台作业调度系统;如果配置或者提交出现异常,则进入失败状态,如果环境配置成功且提交成功,进入等待状态;
S24、作业处于等待状态,通过心跳程序监控后台调度系统,一旦开始执行二次开发应用程序,则判断程序中是否有前处理脚本,如果有,则进入前处理状态,如果没有,则进入运行状态,如果等待超时,则进入失败状态;
S25、作业处于前处理状态,如果前处理脚本能够正常执行并得到结果,则进入运行状态,如果前处理无法正常执行,则作业异常退出;
S26、作业处于运行状态,通过心跳监控后台调度系统,一旦二次开发应用程序执行完毕,切结果为正常返回,则进入后处理状态,如果程序非正常结束,作业异常退出,若出现其他状况,则进入未知状态;
S27、作业处于后处理状态,如果后处理脚本能够正常执行完毕并得到有效结果报告,则作业完成,否则作业异常退出;
S28、作业处于完成状态或者异常退出状态,后台服务抓取相关日志,并更新数据库。
其中,所述步骤S3将1个state字段和4个step字段结合,对10种作业状态进行完整记录。
其中,所述步骤S4利用状态机模式内在框架,按照数据库记录和预先定义的作业执行状态转换逻辑,对作业流程进行控制。
(三)有益效果
本发明提供了一种二次开发程序执行的控制方法,设计作业控制算法,使得云平台的后台服务程序能够根据脚本程序执行过程中的状态,以及预先提供的流程规则,智能调整作业顺序,不需要用户额外编写控制程序或者手动干预,该方法能够提高二次开发程序的可扩展性,采用自动化、流程化的方式处理用户请求,由于前处理脚本和后处理脚本等可以重用,提高二次开发程序的可重用性,减少编写新脚本的工作量,只需要关注用户请求的执行流程逻辑和脚本,不需要开发服务层程序,减少开发时间,大大缩短开发周期。
附图说明
图1为本发明实施例提供的一种二次开发程序执行的控制方法的步骤流程图;
图2为本发明实施例提供的流体仿真二次开发执行过程中的各个状态转换关系图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例中提供了一种二次开发程序执行的控制方法,步骤流程如图1所示,具体包括以下步骤:
步骤S110、根据流体仿真二次开发程序执行的中间过程作业的状态特点,将运行中的作业解析为10个作业状态。本实施例中,主要包括以下10种作业状态:
(1)初始化状态:用户请求提交的起始状态;
(2)环境配置状态:根据作业参数配置系统环境参数;
(3)失败状态:提交用户请求失败;
(4)等待状态:提交用户请求成功后等待后台作业调度系统调度;
(5)前处理状态:进入前处理执行阶段;
(6)运行状态:执行用户请求,计入高性能计算阶段;
(7)后处理状态:进入后处理执行阶段;
(8)完成状态:用户请求执行成功结束;
(9)异常退出状态:用户请求执行出现异常并退出;
(10)未知状态:除了上述状态之外的其他可能状态。
其中,作业中包括二次开发程序,执行作业即执行二次开发程序。
步骤S120、根据流体仿真二次开发程序执行的标准流程,对所述10个作业状态配置其转换逻辑。本实施例中,这10种状态之间的状态转换关系如图2所示:
用户通过浏览器向服务器提交用户请求,后台作业调度系统获取用户请求,并根据该作业请求生成作业实例,进入初始化态;
处于初始状态,当根据作业请求提取作业参数进行解析的过程中出现异常时,进入失败状态;如果作业参数能够正常解析,则进入环境配置状态;
作业处于环境配置状态,根据作业参数配置系统环境参数,并生成BASH脚本,提交至后台作业调度系统。如果配置或者提交出现异常,则进入失败状态,如果系统环境参数配置成功且提交成功,进入等待状态;
处于等待状态,通过心跳程序监控后台作业调度系统,一旦开始执行二次开发应用程序,则判断程序中是否有前处理脚本,如果有,则进入前处理状态,如果没有,则进入运行状态,如果等待超时,则进入失败状态;
处于前处理状态,如果前处理脚本能够正常执行并得到结果,则进入运行状态,如果前处理脚本无法正常执行,则用户请求异常退出;
处于运行状态,通过心跳监控后台作业调度系统,一旦二次开发应用程序执行完毕,且结果为正常返回,则进入后处理状态,如果程序非正常结束,用户请求异常退出,若出现其他状况,则进入未知状态;
处于后处理状态,如果后处理脚本能够正常执行完毕并得到有效结果报告,则用户请求执行完成,否则用户请求异常退出;
处于完成状态或者异常退出状态,后台作业调度系统抓取相关日志,并更新数据库。
步骤S130、通过在数据库中添加1个state字段和4个step字段,对作业执行状态的全流程进行记录。上所述的作业状态转换逻辑关系虽然通过基于状态机的设计模式来实现控制,但是具体状态判断仍然需要通过数据库的记录来实现,为了保证尽可能全面的维护作业信息,同时不影响到平台性能,本发明中持久层TCL作业数据表如下表所示:
字段名称 | 类型 | 长度 | 允许NULL | 主键/外键 | 缺省值 |
JobId | Int | 14 | 否 | 主键 | |
JobName | varchar | 128 | 否 | ||
State | Int | 7 | 否 | ||
Sep1 | varchar | 32 | 是 | ||
Step2 | varchar | 32 | 是 | ||
Step3 | varchar | 32 | 是 | ||
Step4 | varchar | 32 | 是 | ||
BeginTime | datetime | 0 | 否 | ||
EndTime | datetime | 0 | 否 | ||
JobDetail | Longtext | 1024 | 否 | ||
AppId | Int | 14 | 否 | 外键 | |
UserId | Varchar | 32 | 否 | 外键 |
表中通过1个STATE和4个STEP字段来配合完成对流体仿真二次开发程序运行状态的完整记录。其中1个STATE字段用来记录作业当前状态,包括初始化状态、环境配置状态、失败状态、等待状态、前处理状态、运行状态、后处理状态、完成状态、异常退出状态和未知状态,该字段主要由平台中的心跳模块定期查询后台调度系统并更新;STEP字段则代表程序可能的结束状态,在本发明中结束状态为4种类型:失败状态、完成状态、异常退出状态和未知状态,因此有4个STEP字段,分别用来记录从作业是从何种状态进入对应的结束状态,并调用相应处理。
步骤S140、基于状态机模式和数据库记录,调度系统根据作业当前状态,按照预先定义的作业执行状态间转换逻辑执行作业,以对作业的流程控制。具体运用状态机模式内在框架按照数据库记录和预先定义的作业执行状态转换逻辑,对作业流程进行控制。
本实施提供的控制方法,获取用户请求,从中提取作业参数,如果提取作业参数出现异常则提交该用户请求失败,如果提取正常则继续根据该作业参数配置系统环境参数,如果配置成功将系统环境参数提交到后台作业调度系统,并进入等待状态,配置失败则表明用户请求提交失败。进入等待状态后,就等待后台作业调度系统的调度,如果后台调度系统监测到执行二次开发程序操作时,进一步判断该程序中是否有前处理脚本,如果有则进入前处理状态,之后再通过判断进入运行状态和后处理状态,通过对脚本程序执行过程中的状态进行标识,共分为上述十种状态,并设计这些不同状态之间的转换逻辑,设计面向流程控制的后台数据表,基于状态机设计模式对上述状态转换逻辑进行实现,最终实现对脚本程序的执行流程进行控制。
通过采用上述方法,能够实现对二次开发脚本中复杂流程进行自动化和流程化处理,当用户的程序流程发生变更时,工作人员只需要通过简单修改现有状态转换关系就能实现新的脚本程序控制流程,能够提高二次开发程序的可扩展性,采用自动化、流程化的方式处理用户请求,由于前处理脚本和后处理脚本等可以重用,提高二次开发程序的可重用性,而不需要修改代码框架,减少二次开发程序脚本执行过程中程序员的工作量,同时也降低对人员的编程专业水平,减少开发时间,大大缩短开发周期。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (5)
1.一种二次开发程序执行的控制方法,其特征在于,所述方法包括:
S1、根据流体仿真二次开发程序执行的中间过程作业的状态特点,将运行中的作业解析为10个作业状态;
S2、根据流体仿真二次开发程序执行的标准流程,对所述10个作业状态配置其转换逻辑;
S3、通过在数据库中添加1个state字段和4个step字段,对作业执行状态的全流程进行记录;
S4、基于状态机模式和数据库记录,调度系统根据作用当前状态,按照预先定义的作业执行状态间转换逻辑执行作业,以对作业的流程控制。
2.如权利要求1所述的控制方法,其特征在于,所述10个状态分别为:初始化状态、环境配置状态、失败状态、等待状态、前处理状态、运行状态、后处理状态、完成状态、异常退出状态和未知状态。
3.如权利要求1所述的控制方法,其特征在于,所述10种作业状态之间的转换逻辑如下:
S21、用户提交作业请求,生成作业实例,进入初始化态;
S22、作业处于初始状态,当参数解析出现异常时,进入失败状态;如果作业参数能够正常解析,则进入环境配置状态;
S23、作业处于环境配置状态,根据参数配置系统环境变量,并生成BASH脚本,提交至后台作业调度系统;如果配置或者提交出现异常,则进入失败状态,如果环境配置成功且提交成功,进入等待状态;
S24、作业处于等待状态,通过心跳程序监控后台调度系统,一旦开始执行二次开发应用程序,则判断程序中是否有前处理脚本,如果有,则进入前处理状态,如果没有,则进入运行状态,如果等待超时,则进入失败状态;
S25、作业处于前处理状态,如果前处理脚本能够正常执行并得到结果,则进入运行状态,如果前处理无法正常执行,则作业异常退出;
S26、作业处于运行状态,通过心跳监控后台调度系统,一旦二次开发应用程序执行完毕,切结果为正常返回,则进入后处理状态,如果程序非正常结束,作业异常退出,若出现其他状况,则进入未知状态;
S27、作业处于后处理状态,如果后处理脚本能够正常执行完毕并得到有效结果报告,则作业完成,否则作业异常退出;
S28、作业处于完成状态或者异常退出状态,后台服务抓取相关日志,并更新数据库。
4.如权利要求1所述的控制方法,其特征在于,所述步骤S3将1个state字段和4个step字段结合,对10种作业状态进行完整记录。
5.如权利要求1所述的控制方法,其特征在于,所述步骤S4利用状态机模式内在框架,按照数据库记录和预先定义的作业执行状态转换逻辑,对作业流程进行控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310671000.XA CN103617044B (zh) | 2013-12-10 | 2013-12-10 | 一种二次开发程序执行的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310671000.XA CN103617044B (zh) | 2013-12-10 | 2013-12-10 | 一种二次开发程序执行的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103617044A true CN103617044A (zh) | 2014-03-05 |
CN103617044B CN103617044B (zh) | 2017-02-15 |
Family
ID=50167747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310671000.XA Active CN103617044B (zh) | 2013-12-10 | 2013-12-10 | 一种二次开发程序执行的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617044B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414840A (zh) * | 2019-07-29 | 2019-11-05 | 中国工商银行股份有限公司 | 跨调度区进行统一调度的方法、系统以及相关设备 |
CN110928602A (zh) * | 2019-12-06 | 2020-03-27 | 浙江中控技术股份有限公司 | Fbd程序的运行方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5813012A (en) * | 1996-12-18 | 1998-09-22 | Chrysler Corporation | Software redevelopment partitioner |
CN1142488C (zh) * | 2001-12-29 | 2004-03-17 | 天津大学 | 一种具有自引导型二次开发仿真平台的开放结构数控系统 |
CN100593156C (zh) * | 2005-09-02 | 2010-03-03 | 北京灵图软件技术有限公司 | 用于二次开发平台的基于控件的插件管理系统及方法 |
CN101587439B (zh) * | 2009-06-24 | 2015-10-21 | 用友网络科技股份有限公司 | 业务系统、权限系统和用于业务系统的数据权限控制方法 |
CN102023867B (zh) * | 2010-12-17 | 2015-10-21 | 中兴通讯股份有限公司 | 一种终端二次开发装置及二次开发平台构建方法 |
-
2013
- 2013-12-10 CN CN201310671000.XA patent/CN103617044B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414840A (zh) * | 2019-07-29 | 2019-11-05 | 中国工商银行股份有限公司 | 跨调度区进行统一调度的方法、系统以及相关设备 |
CN110928602A (zh) * | 2019-12-06 | 2020-03-27 | 浙江中控技术股份有限公司 | Fbd程序的运行方法及装置 |
CN110928602B (zh) * | 2019-12-06 | 2022-09-20 | 浙江中控技术股份有限公司 | Fbd程序的运行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103617044B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748165B2 (en) | Workload automation and data lineage analysis | |
US8635056B2 (en) | System and method for system integration test (SIT) planning | |
CN104281906A (zh) | 一种业务流程中的流程引擎实现方法及其流程引擎系统 | |
CN105308577B (zh) | 用于提供负载测试服务的方法、系统和计算机可读存储器 | |
US8850400B2 (en) | System and method for providing an implementation accelerator and regression testing framework for use with environments such as fusion applications | |
CN102880543B (zh) | 用于集成测试平台的测试数据供应链管理器 | |
CN104899369A (zh) | 一种利用perl脚本的仿真器多线程运行方法 | |
CN104391789A (zh) | 一种Web应用程序压力测试的方法 | |
Lehrig et al. | The architectural template method: templating architectural knowledge to efficiently conduct quality‐of‐service analyses | |
JP2023548985A (ja) | ロボティックプロセスオートメーション関連リソースの使用量の数値化 | |
CN113760462A (zh) | 一种调度自动化系统验证环境的构建方法及装置 | |
CN103617044A (zh) | 一种二次开发程序执行的控制方法 | |
JP2010539555A (ja) | メインフレームシステム環境を開放型システム環境に切り替えるリホスティング方法 | |
Liu et al. | Application of agile method in the enterprise website backstage management system: Practices for extreme programming | |
US11113105B1 (en) | Computer implemented system and method for generating platform agnostic digital worker | |
CN202083931U (zh) | 一种可编程智能终端装置 | |
CN114881313A (zh) | 基于人工智能的行为预测方法、装置及相关设备 | |
US9405636B2 (en) | Recovering step and batch-based processes | |
CN102841842B (zh) | 用于下一代测试系统的自动化控制器 | |
TWI576776B (zh) | 業務邏輯處理方法及裝置 | |
CN104765608A (zh) | 一种音视频工作流应用系统的实现方法及装置 | |
Qi | Application of Computer Aided Operation in Financial Business | |
CN114692382B (zh) | 核电仿真模型开发数据的管理方法、装置及计算机设备 | |
KR101273374B1 (ko) | 플러그 인 기반의 시뮬레이션 워크플로우 실행 시스템 및 방법 | |
US20230131762A1 (en) | Multi-Computer Tool for Tracking and Analysis of BOT Performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
CP03 | Change of name, title or address |
Address after: No.249, Dongsi South Street, Dongcheng District, Beijing Patentee after: Beijing Computing Center Co.,Ltd. Address before: Building 3, Beike industry, No. 7, Fengxian Middle Road, Yongfeng Industrial base, Haidian District, Beijing 100094 Patentee before: BEIJING COMPUTING CENTER |
|
CP03 | Change of name, title or address | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |