[go: up one dir, main page]

CN116501336A - 组件集成方法、装置、设备及存储介质 - Google Patents

组件集成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116501336A
CN116501336A CN202310464874.1A CN202310464874A CN116501336A CN 116501336 A CN116501336 A CN 116501336A CN 202310464874 A CN202310464874 A CN 202310464874A CN 116501336 A CN116501336 A CN 116501336A
Authority
CN
China
Prior art keywords
component
customized
custom
client
installation package
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
Application number
CN202310464874.1A
Other languages
English (en)
Inventor
徐巍
范宏伟
赵翔宇
周洲游
谷浩维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202310464874.1A priority Critical patent/CN116501336A/zh
Publication of CN116501336A publication Critical patent/CN116501336A/zh
Priority to US18/647,243 priority patent/US20240362005A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例公开了组件集成方法、装置、设备及存储介质,涉及计算机技术领域。该方法应用于定制开发系统中的服务端,获取客户端提交的对应定制功能的定制组件,其中,定制组件是基于服务端提供的开发协议开发得到的,针对定制组件进行预集成检测并通过后,将包含定制组件的调试安装包发送至客户端,在接收到客户端发送的定制组件对应的组件发布请求后,生成包含定制组件和宿主应用的定制安装包。通过采用上述技术方案,定制安装包能够精准地满足企业客户的定制化需求,节约开发成本,提高开发效率。

Description

组件集成方法、装置、设备及存储介质
技术领域
本公开实施例涉及计算机技术领域,尤其涉及组件集成方法、装置、设备及存储介质。
背景技术
在面向企业进行应用软件交付的场景中,企业客户的定制化需求越来越多,例如,针对操作流程或应用界面等进行满足企业特殊功能要求的变更。
目前,定制功能通常采用如下方式实现:针对定制功能预埋运行时或编译期的开关控制,针对某个需要交付该定制功能的企业开启开关或完成相关配置,使得企业定制版获得该定制功能。
发明内容
本公开实施例提供了组件集成方法、装置、存储介质及设备,可以优化现有的面向企业的定制化功能的应用开发方案。
第一方面,本公开实施例提供了组件集成方法,应用于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,所述方法包括:
获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
针对所述第一定制组件进行预集成检测;
在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件的第一调试安装包发送至所述第一客户端;
在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
第二方面,本公开实施例还提供了组件集成装置,配置于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,所述装置包括:
定制组件获取模块,用于获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
预集成检测模块,用于针对所述第一定制组件进行预集成检测;
调试安装包发送模块,用于在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件的第一调试安装包发送至所述第一客户端;
定制安装包生成模块,用于在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例提供的组件集成方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本公开实施例提供的组件集成方法。
本公开实施例提供的组件集成方案,应用于定制开发系统中的服务端,定制开发系统中还包括第一客户端,获取第一客户端提交的对应第一定制功能的第一定制组件,其中,第一定制组件是基于服务端提供的开发协议开发得到的,第一定制功能用于满足目标用户对宿主应用的定制化需求,针对第一定制组件进行预集成检测,在预集成检测的检测结果为通过的情况下,将包含第一定制组件的第一调试安装包发送至第一客户端,在接收到第一客户端发送的组件发布请求后,生成包含第一定制组件和宿主应用的定制安装包。通过采用上述技术方案,应用开发方可以向存在定制化需求的企业客户开放定制开发能力,企业客户侧可实现自我定制需求,实现企业客户侧的定制功能开发过程与应用原生的应用开发过程解耦,减少甚至避免应用开发方针对企业客户的定制化需求进行的针对性开发工作,节约开发成本,提高开发效率,降低后期维护难度,定制开发系统中的服务端在获取到客户端提交的定制组件后,先进行预集成检测,并在检测通过后向客户端返回调试安装包,在收到客户端的组件发布请求后,再由服务端生成包含定制组件的定制安装包,可以保证定制功能的正常集成,使得生成的定制安装包能够精准地满足企业客户的定制化需求。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例所提供的一种组件集成方法的应用场景示意图;
图2为本公开实施例所提供的一种组件集成方法的流程示意图;
图3为本公开实施例所提供的另一种组件集成方法的流程示意图;
图4为本公开实施例所提供的一种组件集成方案的工作流程示意图;
图5为本公开实施例所提供的一种预集成检测过程示意图;
图6为本公开实施例所提供的一种编译期注入过程示意图;
图7为本公开实施例所提供的一种运行时注入过程示意图;
图8为本公开实施例所提供的另一种组件集成方案的工作流程示意图;
图9为本公开实施例所提供的一种组件集成装置的结构示意图;
图10为本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
为了便于理解本公开实施例的技术方案,下面对相关技术进行介绍。在面向企业进行应用软件交付的场景中,定制功能通常采用如下方式实现:针对定制功能预埋运行时或编译期的开关控制,针对某个需要交付该定制功能的企业开启开关或完成相关配置,使得企业定制版获得该定制功能。也即,企业客户的定制化功能需要由应用程序开发方进行开发。然而,企业客户的定制化需求往往是多种多样的,难以进行精准的定制开发,一般仅针对定制化需求进行通用化的抽象改造,得到该定制功能,并配置上述开关,当企业客户的需求发生变化时,还需要进行相应的修改,维护难度高,并且,针对某些不具备通用性的功能往往无法在现有应用软件产品上进行承载,导致无法精准地满足企业客户的需求。
本公开实施例中,针对功能定制场景可以对应用开发框架进行开放框架改造,提供定制开发系统,将允许定制的功能进行容器化,通过向外提供容器对应的开发协议的方式可以向存在定制化需求的企业客户提供抽象能力,使得企业客户侧开发者能够在宿主应用的原生开放场景下,完成自定义功能的开发,并得到定制化安装包,进而实现特定需求的应用软件交付。图1为本公开实施例所提供的一种组件集成方法的应用场景示意图,定制开发系统中包括客户端101和服务端102,通过服务端102与客户端101的交互实现面向企业客户的定制安装包的生成。
图2为本公开实施例所提供的一种组件集成方法的流程示意图,本公开实施例适用于面向企业进行应用软件交付的场景中,生成满足企业用户定制需求的定制安装包的情形,该方法可以由组件集成装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可被配置为定制开发系统中的服务端,具体可以是服务器或云平台等。
如图2所示,所述方法包括:
步骤201、获取第一客户端提交的对应第一定制功能的第一定制组件,其中,第一定制组件是基于服务端提供的开发协议开发得到的,第一定制功能用于满足目标用户对宿主应用的定制化需求。
示例性的,定制开发系统中的客户端(以下简称客户端)可以理解为向企业客户或企业客户委托的第三方(二者后文统称定制开发方)提供的开发者工具。第一客户端可以是能够与定制开发系统中的服务端进行交互的任意一个客户端。宿主应用可以理解为由应用程序开发方进行开发的原生应用,包含应用程序的标准能力,不包含客户定制逻辑,对应于原始安装包和原始软件项目工程。本公开实施例中的应用程序的具体类型不做限定,例如可以是在线办公软件或企业管理软件等等。
示例性的,定制功能可以理解为应用开发方开放的允许企业客户进行定制的功能,如可包括应用操作流程或应用界面中涉及的相关功能。第一定制功能可理解为目标用户当前需要加入宿主应用的定制功能。例如,当应用程序从后台切换回前台时,需要展示企业客户特定的应用解锁界面;又如,在应用程序的网页或小程序容器中提供国密加密解密的安全能力。目标用户可以理解为目标客户,具体可以是针对宿主应用当前存在定制化需求的企业客户,也可以是使用第一客户端的用户,如定制开发方的负责代码开发等相关工作的人员。
示例性的,定制开发方可以通过客户端获取到宿主应用对应的模板(Demo)工程,该Demo工程中可以包含应用开发的相关模板以及宿主应用所兼容的开发基线,该开发基线中包含能够适配宿主应用的开发协议。开发协议可以理解为具备定制能力的功能的软件规范协议,其中可包含实现定制功能所需遵循的代码协议(如针对应用程序登录页面的扩展或生命周期的扩展等需要遵循的代码协议),具体可以是定制功能的抽象代码流程,由定制开发方通过编写代码来确定抽象代码流程的具体实现;开发协议还可包含定制开发方能够调用的宿主应用所提供的自有能力,自有能力例如可以是宿主应用中的应用程序编程接口(Application Programming Interface,API)。定制开发方通过使用客户端获取需要定制的功能对应的开发协议后,可以编写相应的开发代码,并在客户端针对所编写的开发代码进行编译,得到对应的定制组件。
可选的,在所述获取所述第一客户端提交的对应第一定制功能的第一定制组件之前,还包括:向所述第一客户端提供所述宿主应用对应的模板工程,其中,所述模板工程中包含所述开发协议。由此,定制开发方可以通过第一客户端与服务端的交互直接获取到用于进行定制组件开发的开发协议。
示例性的,定制开发方通过第一客户端基于服务端提供的第一定制功能对应的开发协议编写得到第一开发代码,第一客户端对第一开发代码进行编译,得到第一定制组件,并提交至服务端。
可选的,第一客户端对第一开发代码进行编译,可包括:第一客户端读取第一开发代码中涉及的组件的依赖声明,根据依赖声明建立依赖关系图谱(例如可以是树结构的依赖关系),依据依赖关系图谱对第一开发代码进行编译。编译后得到的第一定制组件,具体可以是编译后的二进制产物。其中,依赖关系图谱中可以包含各组件之间的依赖关系。
步骤202、针对第一定制组件进行预集成检测。
示例性的,预集成检测可以理解为对第一定制组件能否与宿主应用进行集成而进行的初步检测。可选的,预集成检测可以包括对第一定制组件的内容进行检测,如安全性检测或兼容性检测等;预集成检测还可以包括编译通过性检测等,例如对第一定制组件和宿主应用进行联合编译构建时,是否能够编译成功。
步骤203、在预集成检测的检测结果为通过的情况下,将包含第一定制组件的第一调试安装包发送至第一客户端。
示例性的,在经过预集成检测后,若检测结果为通过,则可认为第一定制组件具备集成至宿主应用的基本条件。为了保证第一定制组件在集成到宿主应用后,能够实现第一定制功能,服务端向第一客户端发送第一调试安装包。其中,第一调试安装包可用于供第一客户端对第一定制组件进行调试。可选的,所述第一调试安装包通过对所述第一定制组件和所述宿主应用进行联合编译构建得到。由此,可以方便定制开发方对集成到宿主应用中的第一定制组件进行更加全面的功能验证和自有逻辑调试。其中,若预集成检测过程中,已经对第一定制组件和宿主应用进行联合编译构建,并编译通过,可以将联合编译构建得到的安装包作为第一调试安装包。定制开发方通过第一客户端接收到第一调试安装包后,可以进行第一定制功能的功能验证以及逻辑调试,该验证和调试过程可以通过上述Demo工程完成。可选的,第一客户端在基于第一调试安装包对第一定制组件进行调试成功后向服务端发送对应的组件发布请求。也即,第一客户端在调试成功后,可以向服务端发起第一定制组件的发布,使得第一定制组件能够集成于定制安装包中。
步骤204、在接收到第一客户端发送的第一定制组件对应的组件发布请求后,生成包含第一定制组件和宿主应用的定制安装包。
示例性的,服务端在接收到第一客户端发送的第一定制组件对应的组件发布请求后,可以确定第一定制组件对应的第一调试安装包已经调试成功,可以生成包含第一定制组件和宿主应用的定制安装包,实现满足目标用户的定制化需求的应用交付。
本公开实施例提供的组件集成方法,应用于定制开发系统中的服务端,定制开发系统中还包括第一客户端,获取第一客户端提交的对应第一定制功能的第一定制组件,其中,第一定制组件是基于服务端提供的开发协议开发得到的,第一定制功能用于满足目标用户对宿主应用的定制化需求,针对第一定制组件进行预集成检测,在预集成检测的检测结果为通过的情况下,将包含第一定制组件的第一调试安装包发送至第一客户端,在接收到第一客户端发送的组件发布请求后,生成包含第一定制组件和宿主应用的定制安装包。通过采用上述技术方案,应用开发方可以向存在定制化需求的企业客户开放定制开发能力,企业客户侧可实现自我定制需求,实现企业客户侧的定制功能开发过程与应用原生的应用开发过程解耦,减少甚至避免应用开发方针对企业客户的定制化需求进行的针对性开发工作,节约开发成本,提高开发效率,降低后期维护难度,定制开发系统中的服务端在获取到客户端提交的定制组件后,先进行预集成检测,并在检测通过后向客户端返回调试安装包,在收到客户端的组件发布请求后,再生成包含定制组件的定制安装包,可以保证定制功能的正常集成,使得生成的定制安装包能够精准地满足企业客户的定制化需求。
在一些实施例中,所述针对所述第一定制组件进行预集成检测,包括:对所述第一定制组件进行内容检测;在所述内容检测通过后,针对所述第一定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始调试安装包;针对所述初始调试安装包进行所述宿主应用的自有业务逻辑测试,其中,所述第一调试安装包包括所述自有业务逻辑测试通过后的初始调试安装包。由此,可以在定制组件内容以及编译通过性方面对第一定制组件进行全面的预集成检测,及时发现第一定制组件存在的问题,避免因后续集成过程中发现问题而需花费大量时间进行调整。
可选的,对所述第一定制组件进行内容检测可包括:判断所述第一定制组件中是否存在调用预设接口的调用符号。其中,预设接口具体可以是API接口,例如可以是预先设定的非法接口,也即应用开发侧预先确定的不允许定制开发方进行调用的接口,如用户数据隐私相关的接口。由此,可以检测出第一定制组件是否存在对非法接口的调用。示例性的,可对第一定制组件中的调用符号进行扫描,若存在调用预设接口的调用符号,也即存在预设接口被调用,可认为内容检测不通过。可选的,可以进一步向第一客户端反馈内容检测不通过的提示信息,如提示第一定制组件调用的预设接口的标识或名称等。
可选的,对所述第一定制组件进行内容检测可包括:判断所述第一定制组件对应的依赖关系图谱是否与所述宿主应用对应的依赖关系发生冲突。由此,可以避免因依赖关系发生冲突,导致定制安装包安装后出现问题。例如,第一定制组件和宿主应用均依赖于开源组件,如导航组件,但所依赖的开源组件的版本不同,如分别为1.0版本和2.0版本,则可认为第一定制组件对应的依赖关系图谱与宿主应用对应的依赖关系发生冲突。若发生冲突,可认为内容检测不通过。可选的,可以进一步向第一客户端反馈内容检测不通过的提示信息,如提示第一定制组件所依赖的开源组件的标识或名称,以及宿主应用所依赖的该开源组件的版本等。
可选的,所述第一定制组件对应的依赖关系图谱由所述第一客户端提交至所述服务端。例如,在向服务端提交第一定制组件时,可以将第一定制组件与依赖关系图谱进行关联提交。由此,服务端可以直接根据第一客户端提交的第一定制组件关联的依赖关系图谱进行上述依赖关系冲突的检测。
可选的,对所述第一定制组件进行内容检测可包括:判断所述第一定制组件与所述宿主应用是否存在冲突的方法符号和/或变量。由此,可以避免因方法符号和/或变量发生冲突,导致定制安装包安装后出现问题。例如,第一定制组件和宿主应用中存在相同命名的方法a或变量b,则可认为存在冲突的方法符号和/或变量。若存在,可认为内容检测不通过。可选的,可以进一步向第一客户端反馈内容检测不通过的提示信息,如提示第一定制组件中存在冲突的方法符号和/或变量。
可选的,对所述第一定制组件进行内容检测可包括上述一项或多项。当包含多项时,可以使得内容检测更加全面,若任一项未通过,可认为内容检测未通过。
示例性的,针对第一定制组件和宿主应用进行联合编译构建,例如可以在宿主应用对应的软件项目工程中的预设配置文件中添加第一定制组件的依赖记录,其中,预设配置文件中包含软件项目工程在进行编译时所依赖的组件,通过增加第一定制组件的依赖记录,使得联合编译构建时能够成功依赖第一定制组件。利用编译器对第一定制组件和宿主应用进行联合编译构建,实现对第一定制组件的依赖注入,若编译器能够成功输出编译结果,则可认为编译通过。
示例性的,若编译通过,可将编译得到的安装包记为初始调试安装包,为了避免定制组件的注入对宿主应用的自有业务逻辑产生影响,可针对初始调试安装包进行宿主应用的自有业务逻辑测试。自有业务逻辑测试例如可以包括用户界面(User Interface,UI)自动化测试。
在一些实施例中,所述在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包,包括:在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,对所述第一定制组件进行托管;响应于针对所述目标用户的定制安装包生成指令,对所述目标用户的已托管的定制组件进行集成检测;在所述集成检测的检测结果为通过的情况下,生成包含所述已托管的定制组件和所述宿主应用的定制安装包。由此,在生成定制安装包时,可以以目标用户为维度,集成目标用户下的所有已托管的定制组件,并进行集成检测,提高功能定制效率,以及缩短定制交付周期。
示例性的,在预集成检测通过后,可以将第一定制组件和目标用户的特征标识进行关联存储,在接收到组件发布请求后,将已存储的第一定制组件和目标用户的特征标识进行托管。可选的,若在提交第一定制组件时,关联提交了依赖关系图谱,可对依赖关系图谱一并进行关联存储。
可选的,对目标用户的已托管的定制组件进行集成检测,可包括:根据目标用户的特征标识查找(如在组件集成信息表中查找,该表中可以存储有各客户的特征标识与已托管的定制组件的关系)对应的已托管的定制组件,并针对所查找到的定制组件进行集成检测。示例性的,集成检测的项目少于预集成检测的项目,例如可以进行编译通过性检测,无需再进行内容检测。
图3为本公开实施例所提供的另一种组件集成方法的流程示意图,本公开实施例以上述实施例中各个可选方案为基础进行优化,具体的,该方法包括如下步骤:
步骤301、获取第一客户端提交的对应第一定制功能的第一定制组件。
步骤302、对第一定制组件进行内容检测。
示例性的,内容检测包括:对第一定制组件中的调用符号进行扫描,判断是否存在调用预设接口的调用符号;对第一定制组件对应的依赖关系图谱进行分析,判断是否与宿主应用对应的依赖关系发生冲突;以及判断第一定制组件与宿主应用是否存在冲突的方法符号和/或变量。若全部项目通过,则认为内容检测的检测结果为通过。
步骤303、在内容检测通过后,针对第一定制组件和宿主应用进行联合编译构建,若编译通过,则得到初始调试安装包。
可选的,若内容检测或编译不通过,可向第一客户端发送提示信息,以提示第一客户端对第一定制组件进行修改并重新提交。
步骤304、针对初始调试安装包进行宿主应用的自有业务逻辑测试。
步骤305、在自有业务逻辑测试通过的情况下,将包含第一定制组件的第一调试安装包发送至第一客户端。
示例性的,若自有业务逻辑测试通过,则认为预集成检测的检测结果为通过。可选的,若自有业务逻辑测试不通过,可向第一客户端发送提示信息,以提示第一客户端对第一定制组件进行修改并重新提交。
步骤306、在接收到第一客户端发送的第一定制组件对应的组件发布请求后,对第一定制组件进行托管。
步骤307、响应于针对目标用户的定制安装包生成指令,对目标用户的已托管的定制组件进行集成检测。
可选的,所述定制开发系统中还包括第二客户端;所述已托管的定制组件包括第二定制组件,所述第二定制组件包括由所述第二客户端提交至所述服务端的所述目标用户需要的第二定制功能对应的定制组件。由此,可以实现针对同一企业客户,对不同定制开发方提交的定制组件进行组合集成,实现面向企业客户的组合交付。其中,第二定制功能与第一定制功能相同或不同,若相同,则可认为对于同一定制功能来说,第一客户端和第二客户端可以配合完成相同定制功能的开发,例如该定制功能由第一定制组件和第二定制组件配合实现。其中,针对第二定制组件进行的预集成检测以及对应的第二调试安装包的相关交互过程,与第一定制组件类似,此处不再赘述。
可选的,对所述目标用户的已托管的定制组件进行集成检测,包括:针对所述目标用户的已托管的定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始定制安装包;针对所述初始定制安装包进行所述宿主应用的自有业务逻辑测试,其中,所述定制安装包包括所述自有业务逻辑测试通过后的初始定制安装包。由此,经过编译通过性检测和自有业务逻辑测试,可以保证所得到的定制安装包能够成功集成目标用户的已托管的定制组件,并保证宿主引用的自有功能的正常使用。
步骤308、在集成检测的检测结果为通过的情况下,生成包含已托管的定制组件和宿主应用的定制安装包。
示例性的,定制安装包包括自有业务逻辑测试通过后的初始定制安装包,也即,在集成检测的检测结果为通过的情况下,可以将初始定制安装包由内网转公网,可提供给目标用户的用户下载使用,并可向客户端返回组件发布成功的消息。
本公开实施例提供的组件集成方法,服务端对客户端提交的定制组件进行内容检测、编译通过检测以及自有业务逻辑测试,得到全面的预集成检测结果为通过后,向客户端返回调试安装包,待客户端调试成功后对扩展组件进行托管,当接收到定制安装包生成请求后,对目标用户的已托管的定制组件进行集成检测,并在集成检测的检测结果为通过的情况下,生成包含已托管的定制组件和宿主应用的定制安装包,可以在保证宿主应用自有功能正常的情况下,实现高效地面向企业客户的定制功能的集成,有效降低定制开发成本以及维护成本,提高功能定制效率,缩短定制交付周期。
可选的,在生成定制安装包之后,目标用户对应的用户可以安装该定制安装包,得到定制应用程序。在集成编译构建期间,将定制组件的逻辑进行了相应的依赖注入,在定制应用程序的运行时阶段,启动后可以获取到编译时期注入的定制逻辑,将定制逻辑针对定制功能的实现加入到业务容器中待执行,在需要使用定制功能时,执行对应的定制组件的定制逻辑,进行实现该定制功能。
在一些实施例中,在获取第一定制组件后或接收到第一定制组件对应的组件发布请求后,可以判断第一定制组件对应的目标用户是否存在于预设客户信息表中,预设客户信息表中例如可以包含已授权的企业客户,授权可表示具备向服务端提交定制组件的资格,从而实现目标用户的身份认证,保证应用安全性,在身份认证通过后,继续对第一定制组件的后续处理。
在一些实施例中,在获取第一定制组件后或接收到第一定制组件对应的组件发布请求后,还可对第一定制组件对应的开发协议的版本进行检测,判断是否与当前需要进行集成的宿主应用的版本兼容。例如,服务端可以同基线信息表中获取基线信息,基线信息中包含适配宿主应用的当前版本的开放容器版本,组件发布请求中可以包括第一定制组件对应的开放容器版本,进而判断宿主应用版本和开放容器版本是否兼容,若不兼容,则可返回失败信息。
在一些实施例中,在获取第一定制组件后或接收到第一定制组件对应的组件发布请求后,还可包括:确定第一定制功能是否存在已托管的目标定制组件,若存在,则判断第一定制组件的版本是否低于目标定制组件的版本,若低于,则可返回失败信息,防止发生版本降级。
在一些实施例中,还包括:检测到所述宿主应用的版本升级为目标应用版本,向所述第一客户端发送重新发布通知;接收所述第一客户端发送的所述第一定制组件的组件重新发布请求,其中,所述组件重新发布请求中包括所述第一定制组件对应的目标开发协议版本;在确定所述目标应用版本兼容所述目标开发协议版本的情况下,生成包含所述第一定制组件和所述目标应用版本的宿主应用的定制安装包。由此,若编写第一定制组件时所依据的开发协议版本与宿主应用升级后的版本相兼容,则无需重新进行第一定制组件的编写、编译以及预集成检测等相关步骤,提高定制安装包的迭代效率。
可选的,在确定所述目标应用版本与所述目标开发协议版本不兼容的情况下,向所述第一客户端发送重新集成通知,以提示第一客户端对应的开发方才用与目标应用版本兼容的新的开发协议进行第一定制组件的开发和集成,以保证第一定制功能的正常使用。
为了更好地理解本公开实施例的技术方案,下面结合相关的工作流程示意图进行进一步说明。
图4为本公开实施例所提供的一种组件集成方案的工作流程示意图,图4中示出了定制版应用的开发、集成到使用的过程。定制开发方通过定制开发系统中的客户端进行定制组件开发,随后通过客户端向服务端发起定制组件的发布,由服务端完成定制组件的定制化集成,得到定制安装包后返回给客户端。定制包完成安装后,可以启动定制应用程序(定制App),定制App运行时阶段,获取到编译时期注入的定制逻辑,将定制逻辑针对定制功能的实现注入到业务容器中待执行,在定制组件需要调用宿主应用中的自有能力的API时,进行相应的能力鉴权,如权限鉴权或可见性能力鉴权等,若鉴权通过,则可允许定制组件进行相应的API的调用。
图5为本公开实施例所提供的一种预集成检测过程示意图,如图5所示,服务端在获取到定制组件后,针对定制组件进行预集成检测。具体可包括依赖检测,也即判断定制组件对应的依赖关系图谱是否与宿主应用对应的依赖关系发生冲突;还包括方法符号检测,也即判断定制组件与宿主应用是否存在冲突的方法符号和/或变量;还包括安全检测,包括判断定制组件中是否存在调用预设接口的调用符号;还包括编译通过检测,在进行编译通过检测后,进行自动化测试。
本公开实施例提供的组件集成方案中涉及两次组件注入过程,分别在编译时期和运行时。图6为本公开实施例所提供的一种编译期注入过程示意图。如图6所示,定制开发方发起定制组件集成编译,由客户端本地进行定制组件依赖关系计算,得到依赖关系图谱,基于该依赖关系图谱进行定制组件编译,并提交至服务端,在预集成检测或集成检测中编译通过相关的检测通过后,对编译后的二进制产物和依赖关系图谱进行关联存储入库,编译器在需要进行联合编译时,获取二进制产物和依赖关系图谱进行联合集成编译,进行定制组件的二进制注入,完成编译,得到对应的安装包。图7为本公开实施例所提供的一种运行时注入过程示意图,如图7所示,在定制应用的运行时,获取编译期注入的业务逻辑(定制逻辑),将获取到的外部注入的业务逻辑插入到业务容器中,在需要使用定制功能时,执行注入的业务逻辑。
图8为本公开实施例所提供的另一种组件集成方案的工作流程示意图,图8示出了定制组件的发布过程。如图8所示,定制开发方通过客户端向服务端发送组件发布请求后,服务端从客户信息表中获取客户信息返回给服务端,由服务端进行客户身份认证,服务端从基线信息表中获取基线信息,对定制组件基线版本的校验,若两者任一项失败,则向客户端返回组件发布失败。若均校验成功,则服务端从组件集成信息表中获取当前发布客户的已集成组件信息,判断当前发布组件信息与已集成组件信息是否存在冲突,如是否发生版本降级等,存在集成冲突,则向客户端返回组件发布失败。若不存在集成冲突,也即验证成功,则向存储服务上传当前定制组件的二进制数据,生成组件发布任务,从原生组件信息表中获取宿主应用相关信息,并向云构建检测服务发起集成检测,将联合编译构建的安装包由内网存储转为公网存储,并向原生组件信息表更新构建检测结果,若集成检测未通过,则向客户端返回组件发布失败。若集成检测通过,则向原生组件信息表更新组件发布数据,向客户端返回组件发布成功。
图9为本公开实施例所提供的一种组件集成装置的结构示意图,该装置配置于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,如图9所示,所述装置包括:
定制组件获取模块901,用于获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
预集成检测模块902,用于针对所述第一定制组件进行预集成检测;
调试安装包发送模块903,用于在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件的第一调试安装包发送至所述第一客户端;
定制安装包生成模块904,用于在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
本公开实施例所提供的组件集成装置,应用开发方可以向存在定制化需求的企业客户开放定制开发能力,企业客户侧可实现自我定制需求,实现企业客户侧的定制功能开发过程与应用原生的应用开发过程解耦,减少甚至避免应用开发方针对企业客户的定制化需求进行的针对性开发工作,节约开发成本,提高开发效率,降低后期维护难度,定制开发系统中的服务端在获取到客户端提交的定制组件后,先进行预集成检测,并在检测通过后向客户端返回调试安装包,在收到客户端的组件发布请求后,再生成包含定制组件的定制安装包,可以保证定制功能的正常集成,使得生成的定制安装包能够精准地满足企业客户的定制化需求。
可选的,所述第一调试安装包通过对所述第一定制组件和所述宿主应用进行联合编译构建得到。
可选的,该装置还包括:
模板工程提供模块,用于在所述获取所述第一客户端提交的对应第一定制功能的第一定制组件之前,向所述第一客户端提供所述宿主应用对应的模板工程,其中,所述模板工程中包含所述开发协议。
可选的,所述预集成检测模块,包括:
内容检测单元,用于对所述第一定制组件进行内容检测;
编译检测单元,用于在所述内容检测通过后,针对所述第一定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始调试安装包;
自有业务逻辑测试单元,用于针对所述初始调试安装包进行所述宿主应用的自有业务逻辑测试,其中,所述第一调试安装包包括所述自有业务逻辑测试通过后的初始调试安装包。
可选的,内容检测单元用于执行以下至少一项:
判断所述第一定制组件中是否存在调用预设接口的调用符号;
判断所述第一定制组件对应的依赖关系图谱是否与所述宿主应用对应的依赖关系发生冲突,其中,所述第一定制组件对应的依赖关系图谱由所述第一客户端提交至所述服务端;
判断所述第一定制组件与所述宿主应用是否存在冲突的方法符号和/或变量。
可选的,所述定制安装包生成模块,包括:
托管单元,用于在接收到所述第一客户端发送的第一定制组件对应的组件发布请求后,对所述第一定制组件进行托管;
集成检测单元,用于响应于针对所述目标用户的定制安装包生成指令,对所述目标用户的已托管的定制组件进行集成检测;
安装包生成单元,用于在所述集成检测的检测结果为通过的情况下,生成包含所述已托管的定制组件和所述宿主应用的定制安装包。
可选的,所述定制开发系统中还包括第二客户端;所述已托管的定制组件包括第二定制组件,所述第二定制组件包括由所述第二客户端提交至所述服务端的所述目标用户需要的第二定制功能对应的定制组件;所述第一定制功能和所述第二定制功能为同一定制功能或不同定制功能。
可选的,所述集成检测单元,包括:
编译检测子单元,用于针对所述目标用户的已托管的定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始定制安装包;
自有业务逻辑测试子单元,用于针对所述初始定制安装包进行所述宿主应用的自有业务逻辑测试,其中,所述定制安装包包括所述自有业务逻辑测试通过后的初始定制安装包。
可选的,该装置还包括:
通知发送模块,用于检测到所述宿主应用的版本升级为目标应用版本,向所述第一客户端发送重新发布通知;
重新发布请求接收模块,用于接收所述第一客户端发送的所述第一定制组件的组件重新发布请求,其中,所述组件重新发布请求中包括所述第一定制组件对应的目标开发协议版本;
安装包生成模块,用于在确定所述目标应用版本兼容所述目标开发协议版本的情况下,生成包含所述第一定制组件和所述目标应用版本的宿主应用的定制安装包。
可选的,该装置还包括:重新集成通知模块,用于在确定所述目标应用版本与所述目标开发协议版本不兼容的情况下,向所述第一客户端发送重新集成通知,其中,所述重新集成通知用于提示采用与所述目标应用版本兼容的新的开发协议进行所述第一定制组件的重新开发。
本公开实施例所提供的组件集成装置可执行本公开任意实施例所提供的组件集成方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图10为本公开实施例所提供的一种电子设备的结构示意图。下面参考图10,其示出了适于用来实现本公开实施例的电子设备(例如图10中的终端设备或服务器)1000的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、ROM 1002以及RAM 1003通过总线1004彼此相连。编辑/输出(I/O)接口1005也连接至总线1004。
通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的组件集成方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的组件集成方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;针对所述第一定制组件进行预集成检测;在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件和所述宿主应用的第一调试安装包发送至所述第一客户端;在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,预集成检测模块还可以被描述为“针对所述第一定制组件进行预集成检测的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种组件集成方法,应用于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,所述方法包括:
获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
针对所述第一定制组件进行预集成检测;
在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件和所述宿主应用的第一调试安装包发送至所述第一客户端;
在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
根据本公开的一个或多个实施例,所述第一调试安装包通过对所述第一定制组件和所述宿主应用进行联合编译构建得到。
根据本公开的一个或多个实施例,在所述获取所述第一客户端提交的对应第一定制功能的第一定制组件之前,还包括:
向所述第一客户端提供所述宿主应用对应的模板工程,其中,所述模板工程中包含所述开发协议。
根据本公开的一个或多个实施例,所述针对所述第一定制组件进行预集成检测,包括:
对所述第一定制组件进行内容检测;
在所述内容检测通过后,针对所述第一定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始调试安装包;
针对所述初始调试安装包进行所述宿主应用的自有业务逻辑测试,其中,所述第一调试安装包包括所述自有业务逻辑测试通过后的初始调试安装包。
根据本公开的一个或多个实施例,对所述第一定制组件进行内容检测包括以下至少一项:
判断所述第一定制组件中是否存在调用预设接口的调用符号;
判断所述第一定制组件对应的依赖关系图谱是否与所述宿主应用对应的依赖关系发生冲突,其中,所述第一定制组件对应的依赖关系图谱由所述第一客户端提交至所述服务端;
判断所述第一定制组件与所述宿主应用是否存在冲突的方法符号和/或变量。
根据本公开的一个或多个实施例,所述在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包,包括:
在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,对所述第一定制组件进行托管;
响应于针对所述目标用户的定制安装包生成指令,对所述目标用户的已托管的定制组件进行集成检测;
在所述集成检测的检测结果为通过的情况下,生成包含所述已托管的定制组件和所述宿主应用的定制安装包。
根据本公开的一个或多个实施例,所述定制开发系统中还包括第二客户端;所述已托管的定制组件包括第二定制组件,所述第二定制组件包括由所述第二客户端提交至所述服务端的所述目标用户需要的第二定制功能对应的定制组件;所述第一定制功能和所述第二定制功能为同一定制功能或不同定制功能。
根据本公开的一个或多个实施例,所述对所述目标用户的已托管的定制组件进行集成检测,包括:
针对所述目标用户的已托管的定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始定制安装包;
针对所述初始定制安装包进行所述宿主应用的自有业务逻辑测试,其中,所述定制安装包包括所述自有业务逻辑测试通过后的初始定制安装包。
根据本公开的一个或多个实施例,还包括:
检测到所述宿主应用的版本升级为目标应用版本,向所述第一客户端发送重新发布通知;
接收所述第一客户端发送的所述第一定制组件的组件重新发布请求,其中,所述组件重新发布请求中包括所述第一定制组件对应的目标开发协议版本;
在确定所述目标应用版本兼容所述目标开发协议版本的情况下,生成包含所述第一定制组件和所述目标应用版本的宿主应用的定制安装包。
根据本公开的一个或多个实施例,还包括:
在确定所述目标应用版本与所述目标开发协议版本不兼容的情况下,向所述第一客户端发送重新集成通知,其中,所述重新集成通知用于提示采用与所述目标应用版本兼容的新的开发协议进行所述第一定制组件的重新开发。
根据本公开的一个或多个实施例,提供了一种组件集成装置,所述定制开发系统中还包括第一客户端,所述装置包括:
定制组件获取模块,用于获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
预集成检测模块,用于针对所述第一定制组件进行预集成检测;
调试安装包发送模块,用于在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件的第一调试安装包发送至所述第一客户端;
定制安装包生成模块,用于在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
根据本公开的一个或多个实施例,提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例提供的组件集成方法。
根据本公开的一个或多个实施例,提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本公开实施例提供的组件集成方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (13)

1.一种组件集成方法,其特征在于,应用于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,所述方法包括:
获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
针对所述第一定制组件进行预集成检测;
在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件和所述宿主应用的第一调试安装包发送至所述第一客户端;
在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
2.根据权利要求1所述的方法,其特征在于,所述第一调试安装包通过对所述第一定制组件和所述宿主应用进行联合编译构建得到。
3.根据权利要求1所述的方法,其特征在于,在所述获取所述第一客户端提交的对应第一定制功能的第一定制组件之前,还包括:
向所述第一客户端提供所述宿主应用对应的模板工程,其中,所述模板工程中包含所述开发协议。
4.根据权利要求1所述的方法,其特征在于,所述针对所述第一定制组件进行预集成检测,包括:
对所述第一定制组件进行内容检测;
在所述内容检测通过后,针对所述第一定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始调试安装包;
针对所述初始调试安装包进行所述宿主应用的自有业务逻辑测试,其中,所述第一调试安装包包括所述自有业务逻辑测试通过后的初始调试安装包。
5.根据权利要求4所述的方法,其特征在于,对所述第一定制组件进行内容检测包括以下至少一项:
判断所述第一定制组件中是否存在调用预设接口的调用符号;
判断所述第一定制组件对应的依赖关系图谱是否与所述宿主应用对应的依赖关系发生冲突,其中,所述第一定制组件对应的依赖关系图谱由所述第一客户端提交至所述服务端;
判断所述第一定制组件与所述宿主应用是否存在冲突的方法符号和/或变量。
6.根据权利要求1所述的方法,其特征在于,所述在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包,包括:
在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,对所述第一定制组件进行托管;
响应于针对所述目标用户的定制安装包生成指令,对所述目标用户的已托管的定制组件进行集成检测;
在所述集成检测的检测结果为通过的情况下,生成包含所述已托管的定制组件和所述宿主应用的定制安装包。
7.根据权利要求6所述的方法,其特征在于,所述定制开发系统中还包括第二客户端;所述已托管的定制组件包括第二定制组件,所述第二定制组件包括由所述第二客户端提交至所述服务端的所述目标用户需要的第二定制功能对应的定制组件;所述第一定制功能和所述第二定制功能为同一定制功能或不同定制功能。
8.根据权利要求6所述的方法,其特征在于,所述对所述目标用户的已托管的定制组件进行集成检测,包括:
针对所述目标用户的已托管的定制组件和所述宿主应用进行联合编译构建,若编译通过,则得到初始定制安装包;
针对所述初始定制安装包进行所述宿主应用的自有业务逻辑测试,其中,所述定制安装包包括所述自有业务逻辑测试通过后的初始定制安装包。
9.根据权利要求1所述的方法,其特征在于,还包括:
检测到所述宿主应用的版本升级为目标应用版本,向所述第一客户端发送重新发布通知;
接收所述第一客户端发送的所述第一定制组件的组件重新发布请求,其中,所述组件重新发布请求中包括所述第一定制组件对应的目标开发协议版本;
在确定所述目标应用版本兼容所述目标开发协议版本的情况下,生成包含所述第一定制组件和所述目标应用版本的宿主应用的定制安装包。
10.根据权利要求9所述的方法,其特征在于,还包括:
在确定所述目标应用版本与所述目标开发协议版本不兼容的情况下,向所述第一客户端发送重新集成通知,其中,所述重新集成通知用于提示采用与所述目标应用版本兼容的新的开发协议进行所述第一定制组件的重新开发。
11.一种组件集成装置,其特征在于,配置于定制开发系统中的服务端,所述定制开发系统中还包括第一客户端,所述装置包括:
定制组件获取模块,用于获取所述第一客户端提交的对应第一定制功能的第一定制组件,其中,所述第一定制组件是基于所述服务端提供的开发协议开发得到的,所述第一定制功能用于满足目标用户对宿主应用的定制化需求;
预集成检测模块,用于针对所述第一定制组件进行预集成检测;
调试安装包发送模块,用于在所述预集成检测的检测结果为通过的情况下,将包含所述第一定制组件的第一调试安装包发送至所述第一客户端;
定制安装包生成模块,用于在接收到所述第一客户端发送的所述第一定制组件对应的组件发布请求后,生成包含所述第一定制组件和所述宿主应用的定制安装包。
12.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的组件集成方法。
13.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-10中任一所述的组件集成方法。
CN202310464874.1A 2023-04-26 2023-04-26 组件集成方法、装置、设备及存储介质 Pending CN116501336A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310464874.1A CN116501336A (zh) 2023-04-26 2023-04-26 组件集成方法、装置、设备及存储介质
US18/647,243 US20240362005A1 (en) 2023-04-26 2024-04-26 Component integration method, apparatus, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310464874.1A CN116501336A (zh) 2023-04-26 2023-04-26 组件集成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116501336A true CN116501336A (zh) 2023-07-28

Family

ID=87326028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310464874.1A Pending CN116501336A (zh) 2023-04-26 2023-04-26 组件集成方法、装置、设备及存储介质

Country Status (2)

Country Link
US (1) US20240362005A1 (zh)
CN (1) CN116501336A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118467445A (zh) * 2024-07-09 2024-08-09 天翼视联科技有限公司 基于spi接口的三方组件发布系统、发布方法和调用方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103543993A (zh) * 2012-07-11 2014-01-29 深圳市华高软件科技有限公司 应用程序构建方法和系统
CN107688464A (zh) * 2017-06-28 2018-02-13 上海壹账通金融科技有限公司 软件定制服务器、方法及计算机可读存储介质
CN108121563A (zh) * 2017-11-10 2018-06-05 广州阿里巴巴文学信息技术有限公司 应用功能定制方法、装置、计算设备以及存储介质
CN108319575A (zh) * 2018-01-30 2018-07-24 百度在线网络技术(北京)有限公司 一种页面组件的校验方法、装置、服务器和存储介质
CN109597614A (zh) * 2017-09-28 2019-04-09 华为技术有限公司 一种业务页面定制方法及系统
CN111158674A (zh) * 2019-12-30 2020-05-15 广州市百果园信息技术有限公司 组件管理方法、系统、设备及存储介质
CN111324333A (zh) * 2018-12-17 2020-06-23 中移(杭州)信息技术有限公司 一种基于组件化的软件开发方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103543993A (zh) * 2012-07-11 2014-01-29 深圳市华高软件科技有限公司 应用程序构建方法和系统
CN107688464A (zh) * 2017-06-28 2018-02-13 上海壹账通金融科技有限公司 软件定制服务器、方法及计算机可读存储介质
CN109597614A (zh) * 2017-09-28 2019-04-09 华为技术有限公司 一种业务页面定制方法及系统
CN108121563A (zh) * 2017-11-10 2018-06-05 广州阿里巴巴文学信息技术有限公司 应用功能定制方法、装置、计算设备以及存储介质
CN108319575A (zh) * 2018-01-30 2018-07-24 百度在线网络技术(北京)有限公司 一种页面组件的校验方法、装置、服务器和存储介质
CN111324333A (zh) * 2018-12-17 2020-06-23 中移(杭州)信息技术有限公司 一种基于组件化的软件开发方法及装置
CN111158674A (zh) * 2019-12-30 2020-05-15 广州市百果园信息技术有限公司 组件管理方法、系统、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118467445A (zh) * 2024-07-09 2024-08-09 天翼视联科技有限公司 基于spi接口的三方组件发布系统、发布方法和调用方法

Also Published As

Publication number Publication date
US20240362005A1 (en) 2024-10-31

Similar Documents

Publication Publication Date Title
US11762763B2 (en) Orchestration for automated performance testing
US20210271472A1 (en) Application Wrapping for Application Management Framework
US10620933B2 (en) Techniques for efficient application configuration patching
US9286040B2 (en) Software builder
US11281763B2 (en) Integrated development environment information sharing for authentication provisioning
US20200125344A1 (en) Persistent context for reusable pipeline components
US12481485B2 (en) Nested build automation for software dependencies
CN112596720B (zh) 业务运行方法、平台、电子设备和计算机存储介质
CN113360377B (zh) 一种测试方法和装置
TW202240379A (zh) 軟體測試報告產生方法及裝置
US9760472B2 (en) Tenant code debugging in multi-tenant systems
CN113032004A (zh) 在开发环境中管理开发作业的方法、设备和程序产品
US20240362005A1 (en) Component integration method, apparatus, device, and storage medium
CN114816976A (zh) 信息处理方法、装置、设备、存储介质及计算机程序产品
CN113805878A (zh) 插件工程化方法、装置、计算机系统和介质
GIANG et al. Automated Continuous Integration Using CircleCI and Firebase for Android Application Development
CN115951879A (zh) 模板代码生成方法、装置、系统、介质和电子设备
US20250378154A1 (en) Integration system and method for managing cross-domain connectivity, interoperability, and authentication
CN117667645A (zh) 应用测试方法、装置、设备、系统及存储介质
CN116775001A (zh) 处理应用程序的方法、装置、电子设备和存储介质
CN115729556A (zh) 代码运行方法、装置、可读介质以及电子设备
CN114661343A (zh) 项目文件定向管理方法、装置、设备、介质和程序产品
CN119557199A (zh) 一种测试优化方法、装置、设备及介质
WO2025093920A1 (en) Method and system for collaborative software development
CN115878091A (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