组件开发方法、装置、存储介质及电子设备与流程

文档序号:24059020发布日期:2021-02-26 13:13阅读:88来源:国知局
组件开发方法、装置、存储介质及电子设备与流程

[0001]
本公开涉及计算机技术领域,具体地,涉及一种组件开发方法、装置、存储介质及电子设备。


背景技术:

[0002]
现有技术中,微服务的使用越来越广泛,可以有效解决单体应用架构的访问负载问题。工作人员可以基于微服务开发框架进行微服务的开发。然而在上述开发过程中,通常要求工作人员对于架构内部的代码、接口等深程度的了解,对开发人员的技术要求较高,并且不同人员开发的代码质量参差不齐,复用率较低。
[0003]
目前并没有很好的解决方案能够解决上述问题。


技术实现要素:

[0004]
本公开的目的是提供一种简捷高效的组件开发方法、装置、存储介质及电子设备。
[0005]
为了实现上述目的,根据本公开的第一方面,提供一种组件开发方法,所述方法包括:
[0006]
接收目标组件的源代码信息,其中,所述源代码信息为基于组件开发规范进行开发的源代码信息,所述目标组件用于实现微服务中的一种共性功能;
[0007]
对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞;
[0008]
在确定所述源代码信息不存在漏洞的情况下,对所述源代码信息进行编译,获得所述目标组件的包信息;
[0009]
对所述包信息中的组件配置文件进行解析,生成所述目标组件的组件信息,其中,所述组件信息中不包含所述源代码信息。
[0010]
可选地,所述对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞,包括:
[0011]
将所述源代码信息与漏洞规则库中的规则进行匹配;
[0012]
在确定出与所述源代码信息匹配的目标规则的情况下,确定所述源代码存在漏洞。
[0013]
可选地,所述方法还包括:
[0014]
在确定所述源代码信息存在漏洞的情况下,确定所述漏洞在所述目标组件的源代码信息中的位置信息;
[0015]
输出提示信息,其中,所述提示信息用于提示用户所述源代码信息存在的漏洞和所述漏洞对应的位置信息。
[0016]
可选地,所述接收目标组件的源代码信息,包括:
[0017]
接收源代码提交请求中包含的源代码信息;
[0018]
所述方法还包括:
[0019]
在确定所述源代码信息存在漏洞的情况下,拒绝所述目标组件的源代码信息的源
代码提交请求。
[0020]
可选地,所述组件开发规范配置了所述目标组件的输入参数信息,所述输入参数信息包括输入参数的配置类型和参数值源类型,所述输入参数的配置类型包括以下中的一者或多者:输入框类型、单选框类型、下拉框类型;所述输入参数的参数值源类型包括以下中的一者或多者:输入指令对应的参数、与所述目标组件对应的关联组件的输出参数、基于预设参数范围确定的参数。
[0021]
可选地,所述方法还包括:
[0022]
根据所述目标组件的组件信息,显示所述目标组件;
[0023]
响应于接收到针对所述目标组件的配置请求,根据所述组件信息,显示所述目标组件对应的可配置项,以接收针对所述目标组件的配置指令。
[0024]
根据本公开的第二方面,提供一种组件开发装置,所述装置包括:
[0025]
接收模块,用于接收目标组件的源代码信息,其中,所述源代码信息为基于组件开发规范进行开发的源代码信息,所述目标组件用于实现微服务中的一种共性功能;
[0026]
检测模块,用于对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞;
[0027]
编译模块,用于在确定所述源代码信息不存在漏洞的情况下,对所述源代码信息进行编译,获得所述目标组件的包信息;
[0028]
生成模块,用于对所述包信息中的组件配置文件进行解析,生成所述目标组件的组件信息,其中,所述组件信息中不包含所述源代码信息。
[0029]
可选地,所述检测模块包括:
[0030]
匹配子模块,用于将所述源代码信息与漏洞规则库中的规则进行匹配;
[0031]
第一确定子模块,用于在确定出与所述源代码信息匹配的目标规则的情况下,确定所述源代码存在漏洞。
[0032]
可选地,所述装置还包括:
[0033]
确定模块,用于在确定所述源代码信息存在漏洞的情况下,确定所述漏洞在所述目标组件的源代码信息中的位置信息;
[0034]
输出模块,用于输出提示信息,其中,所述提示信息用于提示用户所述源代码信息存在的漏洞和所述漏洞对应的位置信息。
[0035]
可选地,所述接收模块包括:
[0036]
第一接收子模块,用于接收源代码提交请求中包含的源代码信息;
[0037]
所述装置还包括:
[0038]
拒绝模块,用于在确定所述源代码信息存在漏洞的情况下,拒绝所述目标组件的源代码信息的源代码提交请求。
[0039]
可选地,所述组件开发规范配置了所述目标组件的输入参数信息,所述输入参数信息包括输入参数的配置类型和参数值源类型,所述输入参数的配置类型包括以下中的一者或多者:输入框类型、单选框类型、下拉框类型;所述输入参数的参数值源类型包括以下中的一者或多者:输入指令对应的参数、与所述目标组件对应的关联组件的输出参数、基于预设参数范围确定的参数。
[0040]
可选地,所述装置还包括:
[0041]
第一显示模块,用于根据所述目标组件的组件信息,显示所述目标组件;
[0042]
第二显示模块,用于响应于接收到针对所述目标组件的配置请求,根据所述组件信息,显示所述目标组件对应的可配置项,以接收针对所述目标组件的配置指令。
[0043]
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一项所述方法的步骤。
[0044]
根据本公开的第四方面,提供一种电子设备,包括:
[0045]
存储器,其上存储有计算机程序;
[0046]
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面任一项所述方法的步骤。
[0047]
在上述技术方案中,接收目标组件的源代码信息,并对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞;在确定所述源代码信息不存在漏洞的情况下,对所述源代码信息进行编译,获得所述目标组件的包信息;从而可以对所述包信息中的组件配置文件进行解析,生成所述目标组件的组件信息。由此,通过上述技术方案,可以对微服务开发过程中的共性功能进行抽取并开发用于实现该共性功能的目标组件,从而可以有效简化微服务开发的过程,提高组件的复用率,提高微服务开发的效率,同时可以保证开发的目标组件的安全性和稳定性。另外,组件信息中不包含所述源代码信息,则不会出现对目标组件功能的恶意修改的问题,既可以保护代码信息安全,又可以进一步提高目标组件的执行稳定和安全,提升用户体验。
[0048]
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0049]
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
[0050]
图1是根据本公开的一种实施方式提供的组件开发方法的流程图;
[0051]
图2是根据本公开的一种实施方式提供的组件开发装置的框图;
[0052]
图3是根据一示例性实施例示出的一种电子设备的框图;
[0053]
图4是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
[0054]
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
[0055]
图1所示,为根据本公开的一种实施方式提供的组件开发方法的流程图。如图1所示,所述方法可以包括:
[0056]
在步骤11中,接收目标组件的源代码信息,其中,所述源代码信息为基于组件开发规范进行开发的源代码信息,所述目标组件用于实现微服务中的一种共性功能。
[0057]
示例地,可以通过预先对多个微服务的业务流程进行解析,从而可以对该多个微服务中的共性功能进行抽取,获得一个或多个共性功能。示例地,针对业务场景的高度相似且业务流程标准一致的功能,可以作为共性功能进行抽取。或者可以基于开发人员的工作经验预先确定共性功能。其中,所述组件开发规范可以是预先设置的对应组件开发的规范,
则用户可以基于该组件开发规范的要求进行源代码的编写,既可以保证源代码信息的健壮性,同时也可以便于对目标组件的安全测试。
[0058]
在步骤12中,对源代码信息进行漏洞检测,确定源代码信息是否存在漏洞。
[0059]
在该步骤中,通过对源代码信息进行漏洞检测,从而确定该目标组件是否能够安全稳定执行。
[0060]
在步骤13中,在确定源代码信息不存在漏洞的情况下,对源代码信息进行编译,获得目标组件的包信息。
[0061]
示例地,可以通过现有的编译技术对该源代码信息进行编译,本公开对此不进行限定。示例地,对源代码信息进行编译获得的包信息可以是jar包。在该步骤中,在确定该源代码信息不存在漏洞的情况下进行编译,既可以保证编译后的组件的安全性和稳定性,又可以避免进行多次重复编译造成的资源浪费。
[0062]
在步骤14中,对包信息中的组件配置文件进行解析,生成目标组件的组件信息,其中,所述组件信息中不包含所述源代码信息。
[0063]
示例地,该组件配置文件可以是编译生成的jar包中的xml配置文件,从而可以对该配置文件进行解析,获得该目标组件的组件信息,该组件信息可以包含该目标组件的输入参数信息、输出参数信息、处理逻辑信息等。在该组件信息中不包含所述源代码信息,从而可以基于对该组件信息解析执行实现该目标组件的功能。
[0064]
由此,在上述技术方案中,接收目标组件的源代码信息,并对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞;在确定所述源代码信息不存在漏洞的情况下,对所述源代码信息进行编译,获得所述目标组件的包信息;从而可以对所述包信息中的组件配置文件进行解析,生成所述目标组件的组件信息。由此,通过上述技术方案,可以对微服务开发过程中的共性功能进行抽取并开发用于实现该共性功能的目标组件,从而可以有效简化微服务开发的过程,提高组件的复用率,提高微服务开发的效率,同时可以保证开发的目标组件的安全性和稳定性。另外,组件信息中不包含所述源代码信息,则不会出现对目标组件功能的恶意修改的问题,既可以保护代码信息安全,又可以进一步提高目标组件的执行稳定和安全,提升用户体验。
[0065]
为了使本领域技术人员更加全面的了解本公开实施例所提供的技术方案,以下对上述步骤进行详述的说明。
[0066]
在一种可能的实施例中,在步骤12中,对源代码信息进行漏洞检测,确定源代码信息是否存在漏洞的示例性实现方式如下,该步骤可以包括:
[0067]
将所述源代码信息与漏洞规则库中的规则进行匹配。
[0068]
示例地,该漏洞规则库中的规则预先定义的代码扫描规则。示例地,代码规则可以是规则1为线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。其中,该漏洞规则库中的规则可以定期进行维护,从而可以从一定程度上提高漏洞检测的有效性和准确性。
[0069]
在确定出与所述源代码信息匹配的目标规则的情况下,确定所述源代码存在漏洞。
[0070]
示例地,可以将该源代码信息与漏洞规则库中的规则进行匹配,若在源代码信息中存在显示创建线程的代码行,该源代码信息与该规则1匹配,此时可以确定该源代码信息
存在漏洞。
[0071]
由此,通过上述技术方案,可以通过漏洞规则库中的规则对目标组件的源代码信息漏洞检测,通过规则匹配的方式,无需用户编写检测代码,可以简化漏洞检测的过程,并且通过自定设置匹配规则,可以实现用户自定义的漏洞检测,提高漏洞检测的多样性,贴合用户的使用需求。
[0072]
在一种可能的实施例中,所述方法还包括:
[0073]
在确定所述源代码信息存在漏洞的情况下,确定所述漏洞在所述目标组件的源代码信息中的位置信息。示例地,如上述示例,在该源代码信息匹配到规则1时,可以同时确定出用于显示创建线程的代码行,则可以将该代码行对应的行号信息、所对应的类信息等作为该位置信息,用于准确对该漏洞进行定位。
[0074]
输出提示信息,其中,所述提示信息用于提示用户所述源代码信息存在的漏洞和所述漏洞对应的位置信息。
[0075]
由此,通过上述技术方案,可以在确定源代码信息存在漏洞时,及时向用户提示存在的漏洞以及该漏洞的位置,从而便于用户及时知晓源代码信息的状态,为用户及时修改源代码信息中的漏洞提供数据支持,便于用户使用。
[0076]
可选地,在步骤11中,接收目标组件的源代码信息的示例性实现方式如下,可以包括:
[0077]
接收源代码提交请求中包含的源代码信息。
[0078]
示例地,该方法可以应用于组件库平台,则在该步骤中,在用户编写完目标组件的源代码之后,可以通过提交按钮触发生成提交请求,从而可以通过该提交请求将该源代码向组件库平台进行提交,以向组件库平台中添加目标组件。
[0079]
相应地,所述方法还包括:
[0080]
在确定所述源代码信息存在漏洞的情况下,拒绝所述目标组件的源代码信息的源代码提交请求。
[0081]
在该步骤中,在确定该源代码信息存在漏洞时,可以拒绝源代码提交请求,在确定所述源代码信息不存在漏洞的情况下,接受所述源代码提交请求,完成源代码信息的提交,从而可以避免将存在漏洞的源代码信息添加至组件库平台中,进一步提高该组件开发方法开发出的组件的稳定性和安全性,进一步提升用户体验。
[0082]
可选地,所述组件开发规范配置了所述目标组件的输入参数信息,所述输入参数信息包括输入参数的配置类型和参数值源类型,所述输入参数的配置类型包括以下中的一者或多者:输入框类型、单选框类型、下拉框类型;所述输入参数的参数值源类型包括以下中的一者或多者:输入指令对应的参数、与所述目标组件对应的关联组件的输出参数、基于预设参数范围确定的参数。
[0083]
示例地,输入参数的配置类型可以是输入框类型,从而可以在对输入参数进行配置时,可以通过输入框对其进行配置。又如,该输入参数的配置类型可以是单选框类型,即可以在对输入参数进行配置时,可以通过单选框对其进行配置。其中类型的配置类似,在此不再赘述。作为示例,可以通过参数值源类型对输入参数的参数值源进行约束,以避免未知来源的数据攻击对目标组件的影响。
[0084]
由此,通过上述技术方案,可以通过组件开发规范对组件的输入参数信息进行约
束,从而可以有效保证开发出的目标组件的稳定性,进而保证基于目标组件开发的微服务的稳定性。
[0085]
可选地,所述方法还包括:
[0086]
根据所述目标组件的组件信息,显示所述目标组件。
[0087]
示例地,可以在微服务开发界面中,根据所述目标组件的组件信息,显示该目标组件,从而可以对用户进行提示,以便于用户选择对应的组件,其中,显示所述目标组件,可以是显示该目标组件的图示信息和/或名称等标识信息。
[0088]
之后,响应于接收到针对所述目标组件的配置请求,根据所述组件信息,显示所述目标组件对应的可配置项,以接收针对所述目标组件的配置指令。
[0089]
在该步骤中,在需要对该目标组件进行配置时,可以通过选中操作出发配置请求,则响应于该配置请求,在界面中显示该目标组件对应的可配置项,例如目标组件的输入参数的来源信息,目标参数对应的判定条件等,从而可以根据用户的配置操作,接收针对目标组件的配置指令,实现对该目标组件的配置。
[0090]
通过上述技术方案,在组件开发之后,可以通过可视化的方式对该目标组件进行显示,从而用户无需编写代码便可以实现对该目标组件的应用,降低组件开发对用户的技术要求,从而扩宽该组件开发方法的应用范围,为进行微服务的开发提供准确且安全的数据支持。
[0091]
本公开还提供一种组件开发装置,如图2所示,所述装置10包括:
[0092]
接收模块100,用于接收目标组件的源代码信息,其中,所述源代码信息为基于组件开发规范进行开发的源代码信息,所述目标组件用于实现微服务中的一种共性功能;
[0093]
检测模块200,用于对所述源代码信息进行漏洞检测,确定所述源代码信息是否存在漏洞;
[0094]
编译模块300,用于在确定所述源代码信息不存在漏洞的情况下,对所述源代码信息进行编译,获得所述目标组件的包信息;
[0095]
生成模块400,用于对所述包信息中的组件配置文件进行解析,生成所述目标组件的组件信息,其中,所述组件信息中不包含所述源代码信息。
[0096]
可选地,所述检测模块包括:
[0097]
匹配子模块,用于将所述源代码信息与漏洞规则库中的规则进行匹配;
[0098]
第一确定子模块,用于在确定出与所述源代码信息匹配的目标规则的情况下,确定所述源代码存在漏洞。
[0099]
可选地,所述装置还包括:
[0100]
确定模块,用于在确定所述源代码信息存在漏洞的情况下,确定所述漏洞在所述目标组件的源代码信息中的位置信息;
[0101]
输出模块,用于输出提示信息,其中,所述提示信息用于提示用户所述源代码信息存在的漏洞和所述漏洞对应的位置信息。
[0102]
可选地,所述接收模块包括:
[0103]
第一接收子模块,用于接收源代码提交请求中包含的源代码信息;
[0104]
所述装置还包括:
[0105]
拒绝模块,用于在确定所述源代码信息存在漏洞的情况下,拒绝所述目标组件的
源代码信息的源代码提交请求。
[0106]
可选地,所述组件开发规范配置了所述目标组件的输入参数信息,所述输入参数信息包括输入参数的配置类型和参数值源类型,所述输入参数的配置类型包括以下中的一者或多者:输入框类型、单选框类型、下拉框类型;所述输入参数的参数值源类型包括以下中的一者或多者:输入指令对应的参数、与所述目标组件对应的关联组件的输出参数、基于预设参数范围确定的参数。
[0107]
可选地,所述装置还包括:
[0108]
第一显示模块,用于根据所述目标组件的组件信息,显示所述目标组件;
[0109]
第二显示模块,用于响应于接收到针对所述目标组件的配置请求,根据所述组件信息,显示所述目标组件对应的可配置项,以接收针对所述目标组件的配置指令。
[0110]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0111]
图3是根据一示例性实施例示出的一种电子设备700的框图。如图3所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。
[0112]
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的组件开发方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
[0113]
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元
件实现,用于执行上述的组件开发方法。
[0114]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的组件开发方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的组件开发方法。
[0115]
图4是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图4,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的组件开发方法。
[0116]
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
[0117]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的组件开发方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的组件开发方法。
[0118]
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的组件开发方法的代码部分。
[0119]
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0120]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0121]
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1