CN115437682B - 一种abap开发环境下的应用开发管理系统 - Google Patents
一种abap开发环境下的应用开发管理系统 Download PDFInfo
- Publication number
- CN115437682B CN115437682B CN202211122779.5A CN202211122779A CN115437682B CN 115437682 B CN115437682 B CN 115437682B CN 202211122779 A CN202211122779 A CN 202211122779A CN 115437682 B CN115437682 B CN 115437682B
- Authority
- CN
- China
- Prior art keywords
- application
- development
- abap
- developed
- plug
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种ABAP开发环境下的应用开发管理系统,包括:开发模块:用于通过基于Git的变更传输系统搭建GITHUB云储存库,通过Jenkins管道在GITHUB云储存库中调用应用构建框架代码和功能脚本代码,生成待开发应用的插件集;集成模块:用于通过插件集,对待开发应用进行持续集成;测试模块:用于对应用集成后的待开发应用进行单元测试,确定单元测试结果;生产模块:用于在单元测试结果成功后,生成实例化应用软件进行交付。本发明针对目前ABAP开发环境和主流持续集成和持续交付工具不能很好的集成的问题进行分析,结合Jenkin进行应用开发管理。
Description
技术领域
本发明涉及软件开发技术领域,特别涉及一种ABAP开发环境下的应用开发管理系统。
背景技术
目前,随着软件技术的发展,软件产品交付的周期越来越短,为了保证产品交付的周期和质量,自动化测试,集成,部署和交付显得越来越重要。Jenkins作为最主流的持续集成和持续交付的工具,可以支持多种语言(如Java,python等)的集成,然而,由于ABAP语言开发环境和技术架构的限制,目前ABAP还不能很好的和Jenkins集成,实现持续集成和持续交付整个全流程的自动化。
发明内容
本发明提供一种ABAP开发环境下的应用开发管理系统,用以解决目前ABAP还不能很好的和Jenkins集成,实现持续集成和持续交付整个全流程的自动化的情况。
在本发明的实施例中包括一种ABAP开发环境下的应用开发管理系统,包括:
开发模块:用于通过基于Git的变更传输系统搭建GITHUB云储存库,通过Jenkins管道在GITHUB云储存库中调用应用构建框架代码和功能脚本代码,生成待开发应用的插件集;
集成模块:用于通过插件集,对待开发应用进行持续集成;
测试模块:用于对应用集成后的待开发应用进行单元测试,确定单元测试结果;
生产模块:用于在单元测试结果成功后,生成实例化应用软件进行交付。
在一种可选的实施例中:所述基于Git的变更传输系统搭建GITHUB云储存库包括:
中央管理单元:用于通过中央版本管理作为云存储库;其中,
云存储库中设置有Jenkins管道,Jenkins管道再云存储库中下载请求代码;其中,
请求代码包括:应用代码、插件代码和脚本代码;
Jenkins管道符合Jenkinsfile定义,Jenkinsfile定义用于确定管道步骤的执行顺序和错误应对方式;
共享单元:用于在云存储库中设置共享远程存储库,每个待开发应用对应一个唯一的共享远程存储库;其中,
共享远程存储库中的共享对象可以在传输至不同的的开发系统和测试系统中进行测试开发;
克隆单元:用于将共享远程存储库克隆到ABAP开发系统中;
推送单元:用于将ABAP开发系统中的待开发应用推送到共享远程存储库中。
在一种可选的实施例中:所述应用构建框架代码为通用框架代码;其中,
通用框架代码通过OData服务调用ABAP后端的开发步骤;
每个开发步骤的运行方式和脚本预先进行定义;
通用框架代码还用于自动执行构建脚本,并返回执行结果;
构建脚本得脚本代码由插件隐式提供。
在一种可选的实施例中:所述功能脚本代码通过分支系统进行配置;其中,
每个分支系统包括源代码和源代码对应的构建脚本;
构建脚本与开发包链接,每个开发包有其独立的构建脚本;其中,
当开发包没有构建脚本时,通过其父类软件包继承构建脚本。
在一种可选的实施例中:所述构建脚本包括以下步骤:
步骤1:定义构建阶段的脚本名称,并添加构建阶段需要执行的构建插件;
步骤2:设置构建插件的执行参数,并在同一个构建阶段使用多个构建配置。
在一种可选的实施例中:所述开发模块还包括:
构建脚本编辑器,通过脚本编辑器对构建脚本进行创建、编辑、删除、上传和下载。
在一种可选的实施例中:所述插件集还包括:
对插件集进行预定义;其中,
预定义包括功能定义和执行定义;
插件集对应框架接口的ABAP类集;其中,
框架接口用于进行插件开发和插件扩充。
在一种可选的实施例中:所述集成模块的持续集成包括:传输请求的持续集成、原有集成系统的持续集成和定期的代码持续交付;其中,
传输请求的持续集成用于在软件开发成员提交了新的功能或者修复了新的bug时,自动触发对应的Jenkins管道作业,并将管道作业的结果反馈至软件开发成员,确定新的功能或者修复了新的bug时,代码独立运行是否正常和集成运行时有没有迭代问题;
原有集成系统的持续集成用于在开发成员释放一个传输请求之前,触发一个持续集成测试,持续集成测试对传输中的ABAP对像通过基于Git的变更传输系统转换成平面文件,推送到远程共享代码库中,代码库中新的变更会引起Jenkins管道作业的运行,执行ABAP单元测试,语法检查,安全检查;其中,
当原有集成系统的持续集成成功时,传输请求会被释放,传输对象会被引入到各个下游系统中;
当原有集成系统的持续集成失败时,错误的结果会发送给对应的开发成员,传输请求不会被释放,开发可以继续在未被释放的传输请求上继续代码的修正和开发;
定期的代码持续交付用于传输请求触发持续集成CI管道作业,在管道作业构建成功后,开发分支的代码会被合并到远程共享代码库的测试分支,并部署到ABAP后端对应的测试系统。
在一种可选的实施例中:所述单元测试包括:
响应于针对待开发应用的第一测试操作,在所述客户端的展示界面中展示所述待开发应用的应用界面;
响应于针对应用界面的第二操作,生成针对待开发应用的操作命令,并且将操作命令经由第一服务器端传输至第二服务器端,以控制与第二服务器端相连的待开发软件进行应用测试,并得到更新应用界面,更新应用界面是第二服务器端响应于从第一服务器端下载到针对待开发应用的应用界面的操作命令,控制与第二服务器端相连的至少一个待开发应用按照预设频率进行指定个数次截图得到的图像;
其中,
第一服务器端用于发送测试待开发应用的数据请求,并基于待开发应用生成测试信息集合;
第一测试操作,包括下载待开发应用的应用界面;
在客户端的展示界面中展示待开发应用的应用界面;其中,
应用界面通过如下方式获得:
向第一服务器端发送图像下载请求,图像下载请求包括资源路径,资源路径包括第一服务器端IP地址、存储路径和待开发软件唯一识别码;
获得来自第一服务器端的与资源路径对应的应用界面,应用界面与待开发应用通过截图得到的图像;
渲染应用界面,并且在客户端的展示界面展示经渲染的应用界面,以便基于针对所述经渲染的应用界面的操作进行应用测试。
在一种可选的实施例中:所述交付包括:
基于ABAP开发系统从应用厂商到交付方的交易事件保存第一交易信息,在对应区块链节点生成第一智能合约;其中,
第一交易信息为实例化应用软件的整体交易信息;
基于ABAP开发系统从应用厂商到交付事件的交易事件保存第二交易信息,在对应区块链节点生成第二智能合约;其中,
第二交易信息为实例化应用软件的售后交易信息;
在所述第二智能合约中执行以下事件:
根据实例化应用软件查询实例化应用软件的历史交易记录,获取关联的第一智能合约中应用厂商的身份信息,并通知应用厂商向设备用户交付实例化应用软件;
引用厂商按照指定的加密方式对待交付的实例化应用软件加密签名后发布到业务安全平台,并基于此事件在对应的区块链节点生成第三智能合约;其中,
在所述第三智能合约中执行以下事件:获取交付方的身份信息,并告知交付方的核心文件交付方式;
交付方按照核心文件交付方式到业务安全平台获取核心文件密文,对签名验签后按照指定的解密方式解密获得所述核心文件,通过核心文件接收转化为实例化应用软件。
本发明有益效果在于:本发明能够实现程序的持续集成和持续交付,在本发明中,为了解决现有技术中的技术缺陷,本发明搭建了GITHUB云储存库,然后以管道的方式根据需要开发的程序,调用对应的框架和功能代码,然后实现自动的集成在程序集成之后,还能够对集成后的程序进行测试,根据测试结果,进行程序交付。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种ABAP开发环境下的应用开发管理系统的ABAP持续集成和持续交付流程图;
图2为本发明实施例中一种ABAP开发环境下的应用开发管理系统的整体流程上规划流程框图;
图3为本发明实施例中一种ABAP开发环境下的应用开发管理系统的传输请求持续集成流程图;
图4为本发明实施例中一种ABAP开发环境下的应用开发管理系统的原有集成系统的持续集成流程图;
图5为本发明实施例中一种ABAP开发环境下的应用开发管理系统的定期的代码持续交付流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
在本发明中:
持续集成(Continuous Integration简称CI作为目前最重要的开发实践,要求软件开发小组成员将代码提交到一个远程共享代码库,开发成员的每次提交都会触发一个自动的代码构建和测试,以帮助开发团队尽早的发现问题。
继续交付(Continuous Delivery简称CD)是对持续集成的扩充和延伸,用以确保每一次的改动都是可以部署和发布给客户的。在持续交付的过程中,代码会以固定的周期进行交付,代码需要通过用户验收测试,性能测试等一系列自动化测试后,才能最终发布给客户。
Jenkins作为目前最主流的持续集成和持续交付的开源工具,提供了数百的开源插件来支持软件的自动化构建,测试,交付和部署。它的安装运行方便,简洁,可以通过本地系统文件包安装运行,也可以通过Docker镜像安装运行。
Jenkins使用中最重要的一个概念就是Jenkins管道,Jenkins管道允许用户在产品的整个代码生命周期中,包括构建,测试和部署,定义一系列可以模板化的事件处理流程,这些处理流程可以迭代使用。
在本发明的实施例中包括一种ABAP开发环境下的应用开发管理系统,包括:
开发模块:用于通过基于Git的变更传输系统搭建GITHUB云储存库,通过Jenkins管道在GITHUB云储存库中调用应用构建框架代码和功能脚本代码,生成待开发应用的插件集;
集成模块:用于通过插件集,对待开发应用进行持续集成;
测试模块:用于对应用集成后的待开发应用进行单元测试,确定单元测试结果;
生产模块:用于在单元测试结果成功后,生成实例化应用软件进行交付。
可选的如附图1和附图2所示,本发明是基于ABAP开发技术,在开发生命周期分为不同的环节进行应用的全流程开发,Jenkins管道可以直接从GitHub下载代码,检测提交改动,调用构建框架中的代码和脚本,通过Gateway调用OData服务,触发ABAP后端已实现的测试,发布和部署插件集,实现ABAP开发环境下的持续集成和持续交付。分布式的ABAP系统代码通过abapGit技术工具上传到共享版本库GitHub上。
本发明的有益效果在于:本发明能够实现程序的持续集成和持续交付,在本发明中,为了解决现有技术中的技术缺陷,本发明搭建了GITHUB云储存库,然后以管道的方式根据需要开发的程序,调用对应的框架和功能代码,然后实现自动的集成在程序集成之后,还能够对集成后的程序进行测试,根据测试结果,进行程序交付。
在一种可选的实施例中:所述基于Git的变更传输系统搭建GITHUB云储存库包括:
中央管理单元:用于通过中央版本管理作为云存储库;其中,
云存储库中设置有Jenkins管道,Jenkins管道再云存储库中下载请求代码;其中,
请求代码包括:应用代码、插件代码和脚本代码;
Jenkins管道符合Jenkinsfile定义,Jenkinsfile定义用于确定管道步骤的执行顺序和错误应对方式;
共享单元:用于在云存储库中设置共享远程存储库,每个待开发应用对应一个唯一的共享远程存储库;其中,
共享远程存储库中的共享对象可以在传输至不同的的开发系统和测试系统中进行测试开发;
克隆单元:用于将共享远程存储库克隆到ABAP开发系统中;
推送单元:用于将ABAP开发系统中的待开发应用推送到共享远程存储库中。
可选的,基于Git的变更传输系统使用Git作为外部版本管理系统来管理ABAP变更和传输管理流程,它的主要功能分析如下:使用中央版本管理(GitHub)作为云存储具有一个共享远程存储库,每个开发项目对应一个存储库;可以将共享远程存储库克隆到ABAP开发系统;可以像往常一样在ABAP开发系统(例如ADT)中执行开发,并可以将ABAP对象推送到共享远程存储库;远程共享存储库中的对象在不同的系统中(如开发,测试等)都可用;允许将这些对象拉到其他系统(例如生产系统),不需要共享传输目录,也不需要任何导入队列。基于Git的变更传输系统的好处为:不影响ABAP系统往常的开发流程;支持所有ABAP对象;支持对ABAP对象的版本控制;多存储库支持;自动化对象跟踪、推送和部署;易于使用RESTAPI或ABAP API;支持Fiori+GUI用户界面;支持流程灵活配置;支持自动TMS配置;持续集成能力;不需要共享传输目录;性能改进(如聚合更改变动)。
在一种可选的实施例中:所述应用构建框架代码为通用框架代码;其中,
通用框架代码通过OData服务调用ABAP后端的开发步骤;
每个开发步骤的运行方式和脚本预先进行定义;
通用框架代码还用于自动执行构建脚本,并返回执行结果;
构建脚本得脚本代码由插件隐式提供。
可选的,本发明构建框架是一个通用框架,允许您通过OData服务调用ABAP后端任何步骤,每个步骤背后的内容及其运行方式需要在构建脚本中定义。构建框架可以自动执行构建脚本,并返回执行结果。所有必要的配置都需要显示在构建脚本中定义,或者由使用的插件隐式提供。
在一种可选的实施例中:所述功能脚本代码通过分支系统进行配置;其中,
每个分支系统包括源代码和源代码对应的构建脚本;
构建脚本与开发包链接,每个开发包有其独立的构建脚本;其中,
当开发包没有构建脚本时,通过其父类软件包继承构建脚本。
可选的,本发明构建脚本定义构建阶段中执行的实际操作流程,其本质就是一个普通的ABAP开发对象,存储方式与ABAP常规开发对象相同。因此,在每个分支系统中,源代码以及源代码对应的构建脚本同时存在于系统当中,并不依赖其他的任何静态配置,可以实现自行维护和持续改进。由于构建脚本存在于任何包含要构建的源代码的系统中,因此构建脚本没有一个单一的中央基础架构。构建脚本与开发包链接,每个包都可以有自己的构建脚本。如果子包没有链接构建脚本,则它们从父类软件包继承构建脚本。
在一种可选的实施例中:所述构建脚本包括以下步骤:
步骤1:定义构建阶段的脚本名称,并添加构建阶段需要执行的构建插件;
步骤2:设置构建插件的执行参数,并在同一个构建阶段使用多个构建配置。
在步骤1中,需要在配置文件中定义各个阶段执行的代码,包括阶段名称,阶段对应的插件类集。
在步骤2中,需要在配置文件中对各阶段的参数进行详细设置,包括阶段名称,对应的参数集。如配置单元测试阶段时,可以设置执行期间,是否需要分析代码覆盖率等参数。
可选的,构建插件的执行参数包括如下步骤:
步骤1:获取插件的配置文件,生成插件的集成模型:
其中,
M表示插件的集成模型;Cm表示第m个配置参数的内容特征;xj表示第j阶段的配置需求参数;fm表示第m个配置参数的配置类型;m∈M,m为正整数;M表示每个阶段的配置参数的个数;j∈J,j为正整数;J表示插件的执行参数在构建配置阶段的阶段数;
步骤2:获取插件的功能需求,根据所述集成模型和功能需求构建演化判定模型,判断所述配置文件是否达到所述功能需求:
其中,y表示功能演化系数;gi-1表示插件第i-1个功能需求特征;gi表示插件第i个功能需求特征;gi+1表示插件第i+1个功能需求特征;当P=1时,表示配置文件达到插件的功能需求。
上述技术方案中,步骤1时一种插件的融合模型,本发明融合了插件的在每个阶段的配置参数和每个阶段的配置需求参数,这些参数都是基于配置文件的解析得到,从而可以通过配置文件集成插件的所有特征,在具体实施时,就是每个阶段的代码对应的特征参数。在步骤2中,本命佛基于话系数,确定了插件的集成模型演化后能够达到的功能,然后通过演化后的参数去每一个功能需求特征,与目标需要的功能特征进行对比,当对比结果为1的时候表能达到对应的功能,如果结果不为1表示功能达不到插件的需求。
在一种可选的实施例中:所述开发模块还包括:
构建脚本编辑器,通过脚本编辑器对构建脚本进行创建、编辑、删除、上传和下载。
可选的,构建脚本编辑器主要是用于对构建脚本进行创建,编辑,删除,上传/下载等操作。
在一种可选的实施例中:所述插件集还包括:
对插件集进行预定义;其中,
预定义包括功能定义和执行定义;
插件集对应框架接口的ABAP类集;其中,
框架接口用于进行插件开发和插件扩充。
可选的,构建插件是一些实现了构建框架接口的ABAP类集,它们为每个构建步骤执行实际的工作,从构建脚本中读取配置,并执行类中定义的具体操作。通过继承构建框架的既定接口,可以轻松实现新构建插件的开发和原有插件的扩充。
在一种可选的实施例中:所述集成模块的持续集成包括:传输请求的持续集成、原有集成系统的持续集成和定期的代码持续交付;其中,
传输请求的持续集成用于在软件开发成员提交了新的功能或者修复了新的bug时,自动触发对应的Jenkins管道作业,并将管道作业的结果反馈至软件开发成员,确定新的功能或者修复了新的bug时,代码独立运行是否正常和集成运行时有没有迭代问题;
原有集成系统的持续集成用于在开发成员释放一个传输请求之前,触发一个持续集成测试,持续集成测试对传输中的ABAP对像通过基于Git的变更传输系统转换成平面文件,推送到远程共享代码库中,代码库中新的变更会引起Jenkins管道作业的运行,执行ABAP单元测试,语法检查,安全检查;其中,
当原有集成系统的持续集成成功时,传输请求会被释放,传输对象会被引入到各个下游系统中;
当原有集成系统的持续集成失败时,错误的结果会发送给对应的开发成员,传输请求不会被释放,开发可以继续在未被释放的传输请求上继续代码的修正和开发;
定期的代码持续交付用于传输请求触发持续集成CI管道作业,在管道作业构建成功后,开发分支的代码会被合并到远程共享代码库的测试分支,并部署到ABAP后端对应的测试系统。
可选的,如附图3所示,对每个传输请求的持续集成,每当软件开发成员提交了新的功能或者修复了新的bug,会自动触发对应的Jenkins管道作业,并将管道作业的结果及时反馈给开发成员,以此得知新提交的代码独立运行是否正常,以及集成运行时有没有迭代问题。当开发成员释放一个传输请求后,基于Git的变更传输系统会将传输请求中所有相关的ABAP开发对象转换成平面文件,并将这些平面文件推送到远程共享代码库中。与此同时,与远程共享代码库关联的Jenkins管道作业会被自动触发,运行传输请求中相关ABAP对象的单元测试,对ABAP对象进行语法检查,对传输对象进行安全检查。当检查通过时,合并开发分支到测试分支,当检查不通过时,不进行分支的合并,并将错误的检查结果以邮件的方式发送给组内的开发成员。
如附图4所示,在对原有集成系统的持续集成的过程中,在ABAP开发周期中,当一个传输请求被释放后会被传输到各个下游系统。如果一个传输请求中产生了代码问题,那么下游系统相应的也会出现同样的问题。在开发成员释放一个传输请求之前,触发一个持续集成测试,该测试会产生一个传输拷贝,并将传输中的ABAP对像通过基于Git的变更传输系统转换成平面文件,推送到远程共享代码库中,代码库中新的变更会引起Jenkins管道作业的运行,执行ABAP单元测试,语法检查,安全检查等。当执行成功时,真正的传输请求会被释放,传输对象会被引入到各个下游系统中。当执行失败时,错误的结果会发送给对应的开发成员,传输请求不会被释放,开发可以继续在未被释放的传输请求上继续代码的修正和开发。
如附图5所示,定期的代码持续交付在实际产品运行周期中,代码会被定期的交付到客户手中。并结合前面提到的两种使用场景,开发成员的开发工作可以照常进行,每个传输请求会触发对应的持续集成CI管道作业,在管道作业构建成功后,开发分支的代码会被合并到远程共享代码库的测试分支,并部署到ABAP后端对应的测试系统。于此同时,测试分支的代码会定期的触发对应的持续发布CD管道作业,在CD管道作业构建成功后,测试分支的代码会被合并到生产分支,并部署到ABAP后端对应的生产系统。
在一种可选的实施例中:所述单元测试包括:
响应于针对待开发应用的第一测试操作,在所述客户端的展示界面中展示所述待开发应用的应用界面;
可选的,本发明在软件开发的过程中,会有测试功能,测试的时候,软件的所有功能展示通过客户端的展示界面进行展示。
响应于针对应用界面的第二操作,生成针对待开发应用的操作命令,并且将操作命令经由第一服务器端传输至第二服务器端,以控制与第二服务器端相连的待开发软件进行应用测试,并得到更新应用界面,更新应用界面是第二服务器端响应于从第一服务器端下载到针对待开发应用的应用界面的操作命令,控制与第二服务器端相连的至少一个待开发应用按照预设频率进行指定个数次截图得到的图像;
可选的,本发明会通过客户端的展示界面对待开发软件进行测试,并且将测试的结果进行截图展示,判断是否能够达到用户的需求。
其中,
第一服务器端用于发送测试待开发应用的数据请求,并基于待开发应用生成测试信息集合;
第一测试操作,包括下载待开发应用的应用界面;
在客户端的展示界面中展示待开发应用的应用界面;其中,
应用界面通过如下方式获得:
向第一服务器端发送图像下载请求,图像下载请求包括资源路径,资源路径包括第一服务器端IP地址、存储路径和待开发软件唯一识别码;
可选的,本发明会对待开发的软件设置位移识别码和IP地址,保证测试的时候,不会出现测试偏差。
获得来自第一服务器端的与资源路径对应的应用界面,应用界面与待开发应用通过截图得到的图像;
渲染应用界面,并且在客户端的展示界面展示经渲染的应用界面,以便基于针对所述经渲染的应用界面的操作进行应用测试。
在一种可选的实施例中:所述交付包括:
基于ABAP开发系统从应用厂商到交付方的交易事件保存第一交易信息,在对应区块链节点生成第一智能合约;其中,
第一交易信息为实例化应用软件的整体交易信息;
可选的,在进行开发的软件交付的过程中,本发明采用可区块链技术,通过智能合约实现线上的智能交付方式,保证开发的软件交付的安全性和快速性。
基于ABAP开发系统从应用厂商到交付事件的交易事件保存第二交易信息,在对应区块链节点生成第二智能合约;其中,
第二交易信息为实例化应用软件的售后交易信息;
在所述第二智能合约中执行以下事件:
根据实例化应用软件查询实例化应用软件的历史交易记录,获取关联的第一智能合约中应用厂商的身份信息,并通知应用厂商向设备用户交付实例化应用软件;
第二智能合约会对开发后的软件的厂商进行验证,判断是否为目标交易的厂商,判断确定后,通过第三合约进行开发软件的核心文件交付,保证软件交付的安全性。
引用厂商按照指定的加密方式对待交付的实例化应用软件加密签名后发布到业务安全平台,并基于此事件在对应的区块链节点生成第三智能合约;其中,
在所述第三智能合约中执行以下事件:获取交付方的身份信息,并告知交付方的核心文件交付方式;
交付方按照核心文件交付方式到业务安全平台获取核心文件密文,对签名验签后按照指定的解密方式解密获得所述核心文件,通过核心文件接收转化为实例化应用软件。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种ABAP开发环境下的应用开发管理系统,其特征在于,包括:
开发模块:用于通过基于Git的变更传输系统搭建GITHUB云储存库,通过Jenkins管道在GITHUB云储存库中调用应用构建框架代码和功能脚本代码,生成待开发应用的插件集;
集成模块:用于通过插件集,对待开发应用进行持续集成;
测试模块:用于对应用集成后的待开发应用进行单元测试,确定单元测试结果;
生产模块:用于在单元测试结果成功后,生成实例化应用软件进行交付;
所述基于Git的变更传输系统搭建GITHUB云储存库包括:
中央管理单元:用于通过中央版本管理作为云存储库;其中,
云存储库中设置有Jenkins管道,Jenkins管道在云存储库中下载请求代码;其中,
请求代码包括:应用代码、插件代码和脚本代码;
Jenkins管道符合Jenkinsfile定义,Jenkinsfile定义用于确定管道步骤的执行顺序和错误应对方式;
共享单元:用于在云存储库中设置共享远程存储库,每个待开发应用对应一个唯一的共享远程存储库;其中,
共享远程存储库中的共享对象可以传输至不同的开发系统和测试系统中进行测试开发;
克隆单元:用于将共享远程存储库克隆到ABAP开发系统中;
推送单元:用于将ABAP开发系统中的待开发应用推送到共享远程存储库中。
2.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述应用构建框架代码为通用框架代码;其中,
通用框架代码通过OData服务调用ABAP后端的开发步骤;
每个开发步骤的运行方式和脚本预先进行定义;
通用框架代码还用于自动执行构建脚本,并返回执行结果;
构建脚本的脚本代码由插件隐式提供。
3.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述功能脚本代码通过分支系统进行配置;其中,
每个分支系统包括源代码和源代码对应的构建脚本;
构建脚本与开发包链接,每个开发包有其独立的构建脚本;其中,当开发包没有构建脚本时,通过其父类软件包继承构建脚本。
4.如权利要求3所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述构建脚本包括以下步骤:
步骤1:定义构建阶段的脚本名称,并添加构建阶段需要执行的构建插件;
步骤2:设置构建插件的执行参数,并在同一个构建阶段使用多个构建配置。
5.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述开发模块还包括:
构建脚本编辑器,通过脚本编辑器对构建脚本进行创建、编辑、删除、上传和下载。
6.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述插件集还包括:
对插件集进行预定义;其中,
预定义包括功能定义和执行定义;
插件集对应框架接口的ABAP类集;其中,
框架接口用于进行插件开发和插件扩充。
7.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述集成模块的持续集成包括:传输请求的持续集成、原有集成系统的持续集成和定期的代码持续交付;其中,
传输请求的持续集成用于在软件开发成员提交了新的功能或者修复了新的bug时,自动触发对应的Jenkins管道作业,并将管道作业的结果反馈至软件开发成员,确定新的功能或者修复了新的bug时,代码独立运行是否正常和集成运行时有没有迭代问题;
原有集成系统的持续集成用于在开发成员释放一个传输请求之前,触发一个持续集成测试,持续集成测试对传输中的ABAP对象通过基于Git的变更传输系统转换成平面文件,推送到远程共享代码库中,代码库中新的变更会引起Jenkins管道作业的运行,执行ABAP单元测试,语法检查,安全检查;其中,
当原有集成系统的持续集成成功时,传输请求会被释放,传输对象会被引入到各个下游系统中;
当原有集成系统的持续集成失败时,错误的结果会发送给对应的开发成员,传输请求不会被释放,开发可以继续在未被释放的传输请求上继续代码的修正和开发;
定期的代码持续交付用于传输请求触发持续集成CI管道作业,在管道作业构建成功后,开发分支的代码会被合并到远程共享代码库的测试分支,并部署到ABAP后端对应的测试系统。
8.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述单元测试包括:
响应于针对待开发应用的第一测试操作,在客户端的展示界面中展示所述待开发应用的应用界面;
响应于针对应用界面的第二操作,生成针对待开发应用的操作命令,并且将操作命令经由第一服务器端传输至第二服务器端,以控制与第二服务器端相连的待开发软件进行应用测试,并得到更新应用界面,更新应用界面是第二服务器端响应于从第一服务器端下载到针对待开发应用的应用界面的操作命令,控制与第二服务器端相连的至少一个待开发应用按照预设频率进行指定个数次截图得到的图像;
其中,
第一服务器端用于发送测试待开发应用的数据请求,并基于待开发应用生成测试信息集合;
第一测试操作,包括下载待开发应用的应用界面;
在客户端的展示界面中展示待开发应用的应用界面;其中,
应用界面通过如下方式获得:
向第一服务器端发送图像下载请求,图像下载请求包括资源路径,资源路径包括第一服务器端IP地址、存储路径和待开发软件唯一识别码;
获得来自第一服务器端的与资源路径对应的应用界面,应用界面与待开发应用通过截图得到的图像;
渲染应用界面,并且在客户端的展示界面展示经渲染的应用界面,以便基于针对所述经渲染的应用界面的操作进行应用测试。
9.如权利要求1所述的一种ABAP开发环境下的应用开发管理系统,其特征在于,所述交付包括:
基于ABAP开发系统从应用厂商到交付方的交易事件保存第一交易信息,在对应区块链节点生成第一智能合约;其中,
第一交易信息为实例化应用软件的整体交易信息;
基于ABAP开发系统从应用厂商到交付事件的交易事件保存第二交易信息,在对应区块链节点生成第二智能合约;其中,
第二交易信息为实例化应用软件的售后交易信息;
在所述第二智能合约中执行以下事件:
根据实例化应用软件查询实例化应用软件的历史交易记录,获取关联的第一智能合约中应用厂商的身份信息,并通知应用厂商向设备用户交付实例化应用软件;
应用厂商按照指定的加密方式对待交付的实例化应用软件加密签名后发布到业务安全平台,并基于此事件在对应的区块链节点生成第三智能合约;其中,
在所述第三智能合约中执行以下事件:获取交付方的身份信息,并告知交付方的核心文件交付方式;
交付方按照核心文件交付方式到业务安全平台获取核心文件密文,对签名验签后按照指定的解密方式解密获得所述核心文件,通过核心文件接收转化为实例化应用软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211122779.5A CN115437682B (zh) | 2022-09-15 | 2022-09-15 | 一种abap开发环境下的应用开发管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211122779.5A CN115437682B (zh) | 2022-09-15 | 2022-09-15 | 一种abap开发环境下的应用开发管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115437682A CN115437682A (zh) | 2022-12-06 |
CN115437682B true CN115437682B (zh) | 2023-03-21 |
Family
ID=84248225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211122779.5A Active CN115437682B (zh) | 2022-09-15 | 2022-09-15 | 一种abap开发环境下的应用开发管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115437682B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115795485A (zh) * | 2023-02-07 | 2023-03-14 | 山东可信云信息技术研究院 | 可信云环境下安全交付软件方法、系统、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665351B2 (en) * | 2012-11-01 | 2017-05-30 | Sap Se | Generating in-memory database application |
US9898279B2 (en) * | 2016-03-31 | 2018-02-20 | Sap Se | Optimizing ABAP development as a service |
CN109117170B (zh) * | 2017-06-22 | 2023-04-07 | 中兴通讯股份有限公司 | 一种运行环境搭建方法及装置、代码合入方法及系统 |
CN111488136A (zh) * | 2020-04-07 | 2020-08-04 | 携程旅游网络技术(上海)有限公司 | 持续集成和持续交付方法、系统、设备及存储介质 |
CN113256296B (zh) * | 2021-07-01 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 智能合约执行方法、系统、装置和存储介质 |
CN113609019B (zh) * | 2021-08-09 | 2024-03-08 | 山东乾云启创信息科技股份有限公司 | 一种容器云应用跨集群部署的流水线方法及装置 |
-
2022
- 2022-09-15 CN CN202211122779.5A patent/CN115437682B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115437682A (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572249B2 (en) | Software kit release management | |
US20210240604A1 (en) | Api driven continuous testing systems for testing disparate software | |
US7797678B2 (en) | Automatic generation of license package for solution components | |
US20040060035A1 (en) | Automated method and system for building, deploying and installing software resources across multiple computer systems | |
US7526759B2 (en) | Debugging prototyped system solutions in solution builder wizard environment | |
US10635410B2 (en) | System to coordinate source code module changes | |
CN111158674A (zh) | 组件管理方法、系统、设备及存储介质 | |
US11221839B2 (en) | Early software updates for multi-tenant integration service | |
CN115437682B (zh) | 一种abap开发环境下的应用开发管理系统 | |
US11748081B2 (en) | System and method for application release orchestration and deployment | |
EP4246332A1 (en) | System and method for serverless application testing | |
CN114064058A (zh) | 一种程序自动化发布方法、装置、电子设备及存储介质 | |
CN114461269A (zh) | 软件开发发布管理方法、装置、设备及存储介质 | |
CN117111907A (zh) | 一种软件开发系统 | |
US20230297496A1 (en) | System and method for serverless application testing | |
CN116243929A (zh) | 一种代码包自动发布系统 | |
JP7025298B2 (ja) | 環境構築支援システムおよび環境構築支援方法 | |
EP3683675A1 (en) | System, apparatus and method of integrated deployment | |
CN116150033A (zh) | 一种软件测试方法、系统、计算机设备及存储介质 | |
US11733979B2 (en) | System for automatically generating customer specific data center application program interfaces | |
US11789712B2 (en) | Data configuration deployment framework | |
Pastrana-Pardo et al. | Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities | |
CN113392002A (zh) | 一种测试系统构建方法、装置、设备及存储介质 | |
CN112860438A (zh) | 一种基于云平台的分布式DevOps运行方法 | |
Alanda et al. | Continuous Integration and Continuous Deployment (CI/CD) for Web Applications on Cloud Infrastructures |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |