CN111240646A - 一种基于全流程开发的程序设计方法 - Google Patents
一种基于全流程开发的程序设计方法 Download PDFInfo
- Publication number
- CN111240646A CN111240646A CN202010040510.7A CN202010040510A CN111240646A CN 111240646 A CN111240646 A CN 111240646A CN 202010040510 A CN202010040510 A CN 202010040510A CN 111240646 A CN111240646 A CN 111240646A
- Authority
- CN
- China
- Prior art keywords
- node
- service
- development
- full
- configuration center
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000011165 process development Methods 0.000 title claims description 12
- 238000011161 development Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开的基于全流程开发的程序设计方法,涉及计算机技术领域,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程,根据业务流程的执行顺序,依次生成各个节点的业务日志,降低了开发门槛,提高了问题定位的效率,降低了微服务系统的管理难度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于全流程开发的程序设计方法。
背景技术
Java是一门优秀的语言,但是对于开发人员来说,如果缺少多年的经验积累,很难写出高质量的代码,为了提高代码可读性,开发人员需要在代码中写入大量的注释,为了方便运维进行问题定位,开发人员需要在代码中合理的输出日志。这种方式存在以下缺陷:
(1)由于开发人员的水平参差不齐,代码风格也各异,一套系统前后很多人维护,导致代码的可读性较差;
(2)后台系统微服务化之后,一笔业务请求有多个微服务系统组成,当该业务请求需要同时修改多个微服务系统时,需要协调多个系统部署新版本同时上线,过程较为复杂,导致微服务系统管理难度较大;
(3)系统上线后,出现问题时只能通过日志来定位问题,而日志完全是由开发人员在代码中输出,随意性较大,经常出现问题后,日志输出不全,给问题定位带来困难。而且一笔交易在日志文件中并不连续,需要根据关键字在日志中查找,定位难度大;
(4)Java编写的代码,当需要更新版本时,都是通过重启应用,实现新版本上线,无法实现热部署。
发明内容
为解决现有技术的不足,本发明实施例提供了一种基于全流程开发的程序设计方法,该方法包括以下步骤:
利用IDE开发工具,在交易配置中心中定义各个节点的业务流程;
根据所述业务流程的执行顺序,依次生成各个节点的业务日志。
优选地,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程包括:
根据节点的服务类型,为所述节点对应的业务流程命名。
优选地,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程还包括:
根据节点的服务内容,将所述节点拆分为多个子节点。
优选地,在交易配置中心中定义各个节点的业务流程之后,所述方法还包括:
当所述业务流程的定义发生变化时,交易配置中心通知微服务系统清理缓存的流程定义。
优选地,在依次生成各个节点的业务日志之后,所述方法还包括:
当业务流程发生异常时,对所述业务日志进行分析,回放所述业务日志并生成回放界面。
本发明实施例提供的基于全流程开发的程序设计方法,具有以下有益效果:
(1)开发人员不需要关注java的各种设计模式,不需再在代码中输出日志,只需要会拖动流程控件,将流程组织起来即可,降低了开发门槛;
(2)以往开发一个交易要提交三类以上的文件,主要包括流程定义文件、SQL语句定义及组件实现类等,而使用全流程开发后,整个流程的定义全部在一个文件里,降低了开发的复杂度;
(3)常规的开发过程中,开发人员编写设计文档,开发人员根据设计文档进行编码,但是在实际的开发过程中,由于某些原因,开发出来的东西和设计上是有很大的差异,方便设计与开发分工:
(4)设计人员可以将业务请求在流程图里画出来,将业务节点的逻辑用伪代码写出来,将该交易请求交给开发人员,开发人员参考伪代码即可实现业务节点的功能,利用脚本实现,实现了设计和开发分工及协作开发;
(5)使用全流程开发后,只需要将修改后的流程定义在交易配置中心重新发布,交易配置中心就会通知该业务请求的微服务系统清理更新缓存的流程定义,实现了热部署;
(6)使用全流程开发后,开发人员只需要拿到日志,然后将日志输入交易配置中心的交易回放界面,后台服务自动将日志进行分析,生成交易回放的界面,在此界面可以依次递归地查看最终出错节点的详细信息,提高了问题定位的效率;
(7)业务系统的流程定义全部部署在交易配置中心,每个微服务系统上是不部署业务的流程定义,当微服务系统有业务请求时,从交易配置中心获取流程定义并缓存后执行,降低了微服务系统的管理难度。
附图说明
图1为本发明实施例提供的基于全流程开发的程序设计方法的流程示意图;
图2为全流程开发模型的架构示意图。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明提供的实施例提供的基于全流程开发的程序设计方法,包括以下步骤:
S101,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程。
S102,根据业务流程的执行顺序,依次生成各个节点的业务日志。
可选地,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程包括:
根据节点的服务类型,为节点对应的业务流程命名。
可选地,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程还包括:
根据节点的服务内容,将节点拆分为多个子节点。
可选地,在交易配置中心中定义各个节点的业务流程之后,该方法还包括:
当业务流程的定义发生变化时,交易配置中心通知微服务系统清理缓存的流程定义。
可选地,在依次生成各个节点的业务日志之后,该方法还包括:
当业务流程发生异常时,对业务日志进行分析,回放业务日志并生成回放界面。
其中,全流程开发技术具有以下特点:
(1)每个流程是由控制节点(决策、循环)、业务节点(支持脚本执行)及子流程节点等组成,其中子流程节点支持无限嵌套,以此来实现一笔交易完全由流程和脚本组成,不用写java类。
作为一个具体的实施例,转账交易由转出和转入两个节点组成,转出节点是个子流程由账户查询、账户检查、记录流水等节点组成,同理,记录流水节点是个子流程,由交易类型查询,生成会计分录,生成交易流水这些节点组成,以此类推,当一个节点无法再拆分成子流程时,那么它就负责一件具体的事情,如:执行一个查询或更新的SQL语句,读取一个文件,执行一段groovy脚本,或者是一次远程RPC调用,本示例中的交易类型查询对应的就是执行一个查询的SQL语句。整个交易过程完全可以用一个XML文件描述。
(2)自动记录每个节点的业务日志,整个过程开发人员不用再关注业务日志怎样输出,一笔交易,框架将业务日志全部放在内存中,当交易完成时再将业务日志有组织的一次性输出。
(3)一笔交易是由流程及子流程的嵌套组成,流程的日志也是有组织的,因此流程日志和流程定义可以对该交易进行流程回放,方便开发人员查看整个交易在流程中的输入输出的变化,方便开发人员快速定位问题。
(4)开发过程完全由流程编排和脚本执行组成,脚本可以是SQL脚本,也可以是执行一段复杂逻辑的groovy脚本。
(5)由于整个开发过程使用流程定义和脚本实现,因此不需要进行编译,当交易流程发生修改后,只需要通知系统更新流程定义和重新加载脚本即可,不需要重启系统,轻松实现执部署,这在开发和运维过程中都是非常方便的。
(6)由于整个开发过程使用流程定义和脚本实现,因此每个微服务系统只需要定义自己是什么微服务,不需要加载任何业务系统的代码,在有交易请求时,从交易配置中心加载该交易的流程和脚本,并缓存后执行,这样就可以将所有微服务的版本统一在交易配置中心统一管理,而每个微服务的应用都是完全一样的,只是其微服务名不同,非常适合在交易量增大时临时增加应用服务器,交易量减少后迅速释放应用服务器的场景,降低了微服务系统的管理难度。
如图2所示,全流程开发模型包括WEB管理端、交易配置中心和多个微服务系统,其中,一个交易配置中心包括多个配置节点,一个微服务系统包括多个服务节点。
本发明实施例提供的基于全流程开发的程序设计方法,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程,根据业务流程的执行顺序,依次生成各个节点的业务日志,降低了开发门槛,提高了问题定位的效率,降低了微服务系统的管理难度。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种基于全流程开发的程序设计方法,其特征在于,包括:
利用IDE开发工具,在交易配置中心中定义各个节点的业务流程;
根据所述业务流程的执行顺序,依次生成各个节点的业务日志。
2.根据权利要求1所述的基于全流程开发的程序设计方法,其特征在于,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程包括:
根据节点的服务类型,为所述节点对应的业务流程命名。
3.根据权利要求1所述的基于全流程开发的程序设计方法,其特征在于,利用IDE开发工具,在交易配置中心中定义各个节点的业务流程还包括:
根据节点的服务内容,将所述节点拆分为多个子节点。
4.根据权利要求1所述的基于全流程开发的程序设计方法,其特征在于,在交易配置中心中定义各个节点的业务流程之后,所述方法还包括:
当所述业务流程的定义发生变化时,交易配置中心通知微服务系统清理缓存的流程定义。
5.根据权利要求1所述的基于全流程开发的程序设计方法,其特征在于,在依次生成各个节点的业务日志之后,所述方法还包括:
当业务流程发生异常时,对所述业务日志进行分析,回放所述业务日志并生成回放界面。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010040510.7A CN111240646A (zh) | 2020-01-15 | 2020-01-15 | 一种基于全流程开发的程序设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010040510.7A CN111240646A (zh) | 2020-01-15 | 2020-01-15 | 一种基于全流程开发的程序设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111240646A true CN111240646A (zh) | 2020-06-05 |
Family
ID=70876529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010040510.7A Pending CN111240646A (zh) | 2020-01-15 | 2020-01-15 | 一种基于全流程开发的程序设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240646A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732432A (zh) * | 2020-07-15 | 2021-04-30 | 武汉众邦银行股份有限公司 | 一种跨应用的工作流处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110270853A1 (en) * | 2010-05-03 | 2011-11-03 | International Business Machines Corporation | Dynamic Storage and Retrieval of Process Graphs |
CN103870260A (zh) * | 2012-12-14 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 业务接口开发的方法及系统 |
CN104021460A (zh) * | 2014-06-27 | 2014-09-03 | 北京太格时代自动化系统设备有限公司 | 一种工作流程管理系统及工作流程处理方法 |
CN106600238A (zh) * | 2016-12-26 | 2017-04-26 | 上海轻维软件有限公司 | 基于Activiti流程引擎的网络业务开通实现方法及装置 |
CN108829693A (zh) * | 2018-04-13 | 2018-11-16 | 拉扎斯网络科技(上海)有限公司 | 一种用户访问轨迹的获取方法、装置及存储介质 |
CN109634561A (zh) * | 2018-10-16 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种在线可视化编程方法及装置 |
CN109889571A (zh) * | 2019-01-09 | 2019-06-14 | 深圳市雁联计算系统有限公司 | 一种开发平台系统及开发方法 |
CN110286892A (zh) * | 2019-06-26 | 2019-09-27 | 成都九洲电子信息系统股份有限公司 | 一种基于业务流程设计的快速开发引擎系统 |
-
2020
- 2020-01-15 CN CN202010040510.7A patent/CN111240646A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110270853A1 (en) * | 2010-05-03 | 2011-11-03 | International Business Machines Corporation | Dynamic Storage and Retrieval of Process Graphs |
CN103870260A (zh) * | 2012-12-14 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 业务接口开发的方法及系统 |
CN104021460A (zh) * | 2014-06-27 | 2014-09-03 | 北京太格时代自动化系统设备有限公司 | 一种工作流程管理系统及工作流程处理方法 |
CN106600238A (zh) * | 2016-12-26 | 2017-04-26 | 上海轻维软件有限公司 | 基于Activiti流程引擎的网络业务开通实现方法及装置 |
CN108829693A (zh) * | 2018-04-13 | 2018-11-16 | 拉扎斯网络科技(上海)有限公司 | 一种用户访问轨迹的获取方法、装置及存储介质 |
CN109634561A (zh) * | 2018-10-16 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种在线可视化编程方法及装置 |
CN109889571A (zh) * | 2019-01-09 | 2019-06-14 | 深圳市雁联计算系统有限公司 | 一种开发平台系统及开发方法 |
CN110286892A (zh) * | 2019-06-26 | 2019-09-27 | 成都九洲电子信息系统股份有限公司 | 一种基于业务流程设计的快速开发引擎系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732432A (zh) * | 2020-07-15 | 2021-04-30 | 武汉众邦银行股份有限公司 | 一种跨应用的工作流处理方法 |
CN112732432B (zh) * | 2020-07-15 | 2021-07-06 | 武汉众邦银行股份有限公司 | 一种跨应用的工作流处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106796522B (zh) | 用于更新源代码文件的系统和方法 | |
EP3353672B1 (en) | Method and apparatus for transferring data between databases | |
CN103617037B (zh) | 用于web开发系统的开发方法和web开发系统 | |
US11775507B2 (en) | Methods and apparatuses for reading and updating data structures, and electronic devices | |
US11966732B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
CN113495797A (zh) | 一种消息队列及消费者动态创建方法及系统 | |
US11741255B2 (en) | System and method of block chain based protection for customized data integration processes | |
CN112445600A (zh) | 一种离线数据处理任务发布方法及系统 | |
da Silva et al. | SPReaD: service-oriented process for reengineering and DevOps: Developing microservices for a Brazilian state department of taxation | |
CN118259906A (zh) | 一种基于PaaS框架的多端页面适配方法、设备及介质 | |
CN111240646A (zh) | 一种基于全流程开发的程序设计方法 | |
CN113885860A (zh) | 一种自动配置管理页面生成接口服务的方法及设备 | |
CN112000343B (zh) | 使用Devops在Kubernetes中部署多版本服务的方法及系统 | |
CN112860234A (zh) | 一种前端页面代码生成方法及系统 | |
CN116301856B (zh) | 一种可视化表单设计器的设计方法、装置、设备及介质 | |
Arnold et al. | META: Middleware for events, transactions, and analytics | |
US12093686B2 (en) | Code maintenance system | |
CN115951870A (zh) | 一种镜像文件编译方法、系统、设备及介质 | |
US10509659B1 (en) | Input processing logic to produce outputs for downstream systems using configurations | |
CN115599362A (zh) | 数据处理任务构建方法、商品数据处理方法及设备 | |
CN108628630B (zh) | 一种软件系统维护信息的管理方法及装置 | |
CN112181407B (zh) | 业务实现处理方法及装置、系统、电子设备和存储介质 | |
US11797279B2 (en) | Systems and methods for dependency analysis | |
US12130789B1 (en) | Data lineage tracking service | |
CN117270898B (zh) | 一种基于组装的大型软件构造方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200605 |
|
RJ01 | Rejection of invention patent application after publication |