CN118760444A - Project packaging and installation method and system for low-code development - Google Patents
Project packaging and installation method and system for low-code development Download PDFInfo
- Publication number
- CN118760444A CN118760444A CN202410908681.5A CN202410908681A CN118760444A CN 118760444 A CN118760444 A CN 118760444A CN 202410908681 A CN202410908681 A CN 202410908681A CN 118760444 A CN118760444 A CN 118760444A
- Authority
- CN
- China
- Prior art keywords
- application
- file
- project
- code
- packaging
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
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
本申请涉及低代码开发领域,公开了一种用于低代码开发中的项目打包安装方法及系统,包括:获取低代码开发中创建的项目,响应于接收的打包请求所携带的时序信息,依据时序信息分别对低代码应用、零代码应用与原生应用进行异步打包,确定各应用文件;确定每个应用文件所对应的环境变量文件和索引依赖文件,基于索引依赖文件表征的有向关系图确定应用文件关联的服务与组件;压缩各应用文件与每个应用文件关联的环境变量文件、索引依赖文件、服务以及组件,确定项目文件;若接收到项目文件,替换项目文件中的环境变量文件来安装各个应用,根据索引依赖文件确定各个应用的依赖关系,生成各应用关联的访问地址,本申请提高了打包安装的效率。
The present application relates to the field of low-code development, and discloses a project packaging and installation method and system for low-code development, including: obtaining a project created in low-code development, responding to the timing information carried by the received packaging request, asynchronously packaging the low-code application, zero-code application and native application according to the timing information, and determining each application file; determining the environment variable file and index dependency file corresponding to each application file, and determining the services and components associated with the application file based on the directed relationship graph represented by the index dependency file; compressing each application file and the environment variable file, index dependency file, service and component associated with each application file to determine the project file; if a project file is received, replacing the environment variable file in the project file to install each application, determining the dependency relationship of each application according to the index dependency file, and generating the access address associated with each application. The present application improves the efficiency of packaging and installation.
Description
技术领域Technical Field
本发明涉及低代码开发技术领域,尤其涉及一种用于低代码开发中的项目打包安装方法及系统。The present invention relates to the field of low-code development technology, and in particular to a project packaging and installation method and system for low-code development.
背景技术Background Art
低代码开发是一种快速应用开发方法,它通过最小化手动编写代码的工作量,让开发人员能够更快地创建和部署应用程序,其中,低代码平台提供了许多工具和组件,以简化应用程序的开发过程,其包括零码应用,低码应用,原生应用,服务组件。Low-code development is a rapid application development method that enables developers to create and deploy applications faster by minimizing the workload of manual code writing. The low-code platform provides many tools and components to simplify the application development process, including zero-code applications, low-code applications, native applications, and service components.
然而,在应用在安装过程,需要复制现有应用开发场景到基站运行场景,往往会出现以下情形,例如,单应用发布方案A,每种应用自包含,提供离线发布安装方式,应用内容比较单一;如果需要引用其它应用能力,在应用本体内重新实现相关能力,低代码应用开发复杂实现会引入更多的开发时间。又例如,脚本依赖方案B,每种脚本非包含,提供离线发布安装方式,引用其它应用能力,重用其它应用,每种脚本走离线发布安装,安装完成之后,脚本配置相关应用的接口地址,使应用之间建立关联关系,这样,明显会增加脚本更多的部署时间。从上可知,现有项目打包安装方式使得低代码在项目级别的场景的开发应用过程中,容易出现开发复杂度较高,应用重用性较差,分发成本较高的问题However, during the application installation process, it is necessary to copy the existing application development scenario to the base station operation scenario, and the following situations often occur. For example, in single application release solution A, each application is self-contained, provides an offline release and installation method, and the application content is relatively simple; if it is necessary to reference other application capabilities and re-implement related capabilities in the application itself, the complex implementation of low-code application development will introduce more development time. For another example, in script dependency solution B, each script is non-contained, provides an offline release and installation method, references other application capabilities, reuses other applications, and each script is released and installed offline. After the installation is complete, the script configures the interface address of the related application to establish an association between the applications. This will obviously increase the deployment time of the script. From the above, it can be seen that the existing project packaging and installation method makes it easy for low-code to have high development complexity, poor application reusability, and high distribution costs in the development and application process of project-level scenarios.
发明内容Summary of the invention
鉴于以上所述现有技术的缺点,本申请公开了一种用于低代码开发中的项目打包安装方法及系统,用于解决现有低代码开发中项目打包安装的开发时间、部署时间以及实施成本都较高的问题。In view of the shortcomings of the prior art mentioned above, the present application discloses a project packaging and installation method and system for low-code development, which is used to solve the problems of high development time, deployment time and implementation cost of project packaging and installation in existing low-code development.
本申请的第一方面公开了一种用于低代码开发中的项目打包安装方法,包括:The first aspect of the present application discloses a project packaging and installation method for low-code development, comprising:
获取低代码开发中创建的项目,所述项目包括低代码应用、零代码应用与原生应用;Obtain projects created in low-code development, including low-code applications, zero-code applications, and native applications;
响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件;In response to the timing information carried by the received packaging request, asynchronously package the low-code application, the zero-code application, and the native application according to the timing information to determine each application file;
确定每个所述应用文件所对应的环境变量文件和索引依赖文件,基于所述索引依赖文件表征的有向关系图确定所述应用文件关联的服务与组件;Determine the environment variable file and the index dependency file corresponding to each of the application files, and determine the services and components associated with the application files based on the directed relationship graph represented by the index dependency files;
压缩各所述应用文件与每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务以及所述组件,确定项目文件;Compressing each of the application files and the environment variable file, the index dependency file, the service, and the component associated with each of the application files to determine a project file;
若接收到所述项目文件,替换所述项目文件中的所述环境变量文件来安装各个应用,根据所述索引依赖文件确定各个所述应用的依赖关系,生成各应用关联的访问地址。If the project file is received, the environment variable file in the project file is replaced to install each application, the dependency relationship of each application is determined according to the index dependency file, and the access address associated with each application is generated.
在第一方面中某些实施例中,所述响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件,包括:In some embodiments of the first aspect, in response to the timing information carried by the received packaging request, asynchronously packaging the low-code application, the zero-code application, and the native application according to the timing information, and determining each application file includes:
接收所述打包请求,所述打包请求所携带有时序信息;Receive the packaging request, the packaging request carrying timing information;
响应于所述打包请求中的时序信息,依据所述时序信息的先后顺序形成打包队列;In response to the timing information in the packaging request, forming a packaging queue according to the sequence of the timing information;
根据所述打包队列依次调用低码设计引擎、零码设计引擎与容器即服务平台,分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件。According to the packaging queue, the low-code design engine, the zero-code design engine and the container as a service platform are called in sequence to asynchronously package the low-code application, the zero-code application and the native application respectively to determine each application file.
在第一方面中某些实施例中,所述确定每个所述应用文件所对应的环境变量文件和索引依赖文件,基于所述索引依赖文件表征的有向关系图确定所述应用文件关联的服务与组件,包括:In some embodiments of the first aspect, determining the environment variable file and the index dependency file corresponding to each of the application files, and determining the services and components associated with the application files based on the directed relationship graph represented by the index dependency files, includes:
获取所述项目中每个所述应用文件所对应的环境变量文件和索引依赖文件;Obtain the environment variable file and index dependency file corresponding to each application file in the project;
基于所述索引依赖文件构建每个所述应用文件的有向关系图,所述有向关系图的节点代表关联的服务或组件,所述有向关系图的边代表依赖关系;Building a directed relationship graph for each of the application files based on the index dependency file, wherein the nodes of the directed relationship graph represent associated services or components, and the edges of the directed relationship graph represent dependency relationships;
对所述有向关系图的节点和边进行识别,确定每个所述应用文件依赖的服务与组件。The nodes and edges of the directed relationship graph are identified to determine the services and components that each application file depends on.
在第一方面中某些实施例中,所述压缩各所述应用文件与每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务以及所述组件,确定项目文件,包括:In some embodiments of the first aspect, the compressing each of the application files and the environment variable file, the index dependency file, the service, and the component associated with each of the application files to determine the project file includes:
基于分布式对象存储架构确定打包存储的各应用文件;Determine the application files to be packaged and stored based on the distributed object storage architecture;
利用可达性算法将所述项目中每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务、所述组件与所述应用文件进行打包,封装成一个大文件;Using a reachability algorithm, the environment variable file, the index dependency file, the service, the component and the application file associated with each application file in the project are packaged into a large file;
依据所述打包队列依次对各个所述大文件进行压缩,直至打包完成后确定为项目文件。Each of the large files is compressed in turn according to the packaging queue until it is packaged and determined as a project file.
在第一方面中某些实施例中,所述替换所述项目文件中的所述环境变量文件来安装各个应用,根据所述索引依赖文件确定各个所述应用的依赖关系,生成各应用关联的访问地址,包括:In some embodiments of the first aspect, replacing the environment variable file in the project file to install each application, determining the dependency relationship of each application according to the index dependency file, and generating an access address associated with each application includes:
若监测到第一项目文件,响应于应用商店的应用安装请求下载所述第一项目文件,并对所述第一项目文件进行解压,获得第二项目文件,其中,所述第一项目文件为新版本的所述项目文件;If the first project file is detected, download the first project file in response to the application installation request of the application store, and decompress the first project file to obtain a second project file, wherein the first project file is a new version of the project file;
根据所述应用商店所处的系统环境确定新的环境变量文件,利用所述新的环境变量文件对所述第二项目文件中的环境变量文件进行更新替换以满足安装条件;Determine a new environment variable file according to the system environment where the application store is located, and use the new environment variable file to update and replace the environment variable file in the second project file to meet the installation conditions;
分别调用低码基座、零码基座、容器即服务基座对所述第二项目文件中所述低代码应用、所述零代码应用、所述原生应用进行安装,直至各应用安装完成为止;respectively calling the low-code base, the zero-code base, and the container-as-a-service base to install the low-code application, the zero-code application, and the native application in the second project file until the installation of each application is completed;
根据所述索引依赖文件中的依赖关系确定安装的各所述应用的依赖关系,生成各应用关联的访问地址,所述依赖关系包含服务依赖和组件依赖,所述访问地址包括服务访问地址和调用地址。Dependencies of the installed applications are determined according to the dependencies in the index dependency file, and access addresses associated with the applications are generated, wherein the dependencies include service dependencies and component dependencies, and the access addresses include service access addresses and call addresses.
在第一方面中某些实施例中,所述生成各应用关联的访问地址之后,还包括:In some embodiments of the first aspect, after generating the access address associated with each application, the method further includes:
若开发中心中任一的第一服务要调用任一引擎或基座的第二服务,则所述第一服务记录所述第二服务的服务名或服务地址,并将所述第一服务的回调接口发送所述第二服务进行存储;If any first service in the development center wants to call a second service in any engine or base, the first service records the service name or service address of the second service, and sends the callback interface of the first service to the second service for storage;
若所述第二服务接收到来自所述第一服务的调用请求,则依据所述回调接口对所述调用请求进行签名验证;若验证通过,则执行调用;若验证不通过,则不执行调用。If the second service receives a call request from the first service, it performs signature verification on the call request according to the callback interface; if the verification passes, the call is executed; if the verification fails, the call is not executed.
在第一方面中某些实施例中,所述生成各应用关联的访问地址之后,还包括:利用本地端对各个所述应用进行测试,若打开任意所述应用执行相应的业务流程,且业务执行完成,则确定当前所述应用测试通过,并显示包含通过字符的第一测试结果;否则,确定当前所述应用测试不通过,并显示包含不通过字符的第二测试结果。In certain embodiments of the first aspect, after the access addresses associated with each application are generated, it also includes: using the local end to test each of the applications, if any of the applications is opened to execute the corresponding business process, and the business execution is completed, it is determined that the current application test has passed, and a first test result including a pass character is displayed; otherwise, it is determined that the current application test has failed, and a second test result including a fail character is displayed.
在第一方面中某些实施例中,所述生成各应用关联的访问地址之后,还包括:In some embodiments of the first aspect, after generating the access address associated with each application, the method further includes:
若监测到应用注册请求,根据所述应用注册请求的类别打开相应类型的应用;If an application registration request is detected, opening an application of a corresponding type according to the type of the application registration request;
若所述应用初始化后,将所述应用对应的注册信息添加到应用菜单,所述应用注册请求包含当前所述应用的注册信息;If the application is initialized, the registration information corresponding to the application is added to the application menu, and the application registration request includes the current registration information of the application;
通过所述应用菜单打开应用,并将当前所述应用当作主应用,根据所述主应用所对应的所述依赖关系中的服务依赖和组件依赖分别作为子应用,将所述子应用关联到所述主应用;Open the application through the application menu, and take the current application as the main application, and use the service dependency and component dependency in the dependency relationship corresponding to the main application as sub-applications, and associate the sub-applications with the main application;
在启动所述主应用后,同步启动所述子应用,通过联动启动所述子应用来支撑所述主应用的业务执行能力。After starting the main application, the sub-application is started synchronously, and the business execution capability of the main application is supported by starting the sub-application in linkage.
在第一方面中某些实施例中,所述获取低代码开发中创建的项目之后,还包括:In some embodiments of the first aspect, after obtaining the project created in the low-code development, the step further includes:
获取项目部署任务,根据所述项目部署任务对所述应用进行自定义部署;Obtaining a project deployment task, and performing custom deployment of the application according to the project deployment task;
若所述自定义部署为应用部署,生成单应用的第一Chart包,其中,所述第一Chart包所依赖的中间件需要用户自行管理;If the custom deployment is application deployment, a first Chart package of a single application is generated, wherein the middleware on which the first Chart package depends needs to be managed by the user;
若所述自定义部署为中间件部署,且所述中间件为平台提供,则根据所述第一Chart包与所述中间件生成作为一整体应用的第二Chart包;If the custom deployment is middleware deployment, and the middleware is provided by the platform, a second Chart package as an integrated application is generated according to the first Chart package and the middleware;
根据所述第一Chart包或所述第二Chart包对所述应用进行打包,将打包的所述应用存储到应用库。The application is packaged according to the first Chart package or the second Chart package, and the packaged application is stored in an application library.
本申请的第二方面公开了一种用于低代码开发中的项目打包安装系统,包括:The second aspect of the present application discloses a project packaging and installation system for low-code development, including:
获取模块,用于获取低代码开发中创建的项目,所述项目包括低代码应用、零代码应用与原生应用;An acquisition module is used to acquire projects created in low-code development, including low-code applications, zero-code applications, and native applications;
打包模块,用于响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件;A packaging module, for responding to the timing information carried by the received packaging request, asynchronously packaging the low-code application, the zero-code application and the native application according to the timing information, and determining each application file;
文件确定模块,用于确定每个所述应用文件所对应的环境变量文件和索引依赖文件,基于所述索引依赖文件表征的有向关系图确定所述应用文件关联的服务与组件;A file determination module, used to determine the environment variable file and index dependency file corresponding to each of the application files, and determine the services and components associated with the application files based on the directed relationship graph represented by the index dependency files;
压缩模块,用于压缩各所述应用文件与每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务以及所述组件,确定项目文件;A compression module, used to compress each of the application files and the environment variable file, the index dependency file, the service and the component associated with each of the application files to determine a project file;
安装模块,用于若接收到所述项目文件,替换所述项目文件中的所述环境变量文件来安装各个应用,根据所述索引依赖文件确定各个所述应用的依赖关系,生成各应用关联的访问地址。The installation module is used to replace the environment variable file in the project file to install each application if the project file is received, determine the dependency relationship of each application according to the index dependency file, and generate an access address associated with each application.
本申请的第三方面公开了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。The third aspect of the present application discloses an electronic device, including: a processor and a memory; the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the electronic device executes the above method.
本申请的有益效果:首先,本申请根据接收到的时序信息对应用进行打包,极大增加了灵活性,通过异步打包低代码应用、零代码应用和原生应用,能够并行处理多个应用,从而显著提高打包效率;其次,通过索引依赖文件确定应用之间的依赖关系和服务组件,减少了手动配置的工作量,降低了出错的风险,也有助于实现快速部署和故障排查;再次,在部署时替换项目文件中的环境变量文件,使得应用能够根据不同的运行环境(如开发环境、测试环境、生产环境)进行适配,提高了应用的灵活性和可移植性;还有,通过压缩应用文件及其关联的环境变量文件、索引依赖文件、服务和组件,生成了更为紧凑的项目文件,减少了存储空间和传输带宽的需求,优化了资源利用;最后,整个流程从打包到部署的自动化程度较高,减少了人工干预的步骤,使得部署过程更加简单快捷;同时,生成的访问地址也为应用的访问和管理提供了便利,通过依赖关系和服务组件,使得在维护和升级时能够更加方便地定位问题和更新组件,提高了系统的可维护性。The beneficial effects of the present application are as follows: First, the present application packages the application according to the received timing information, which greatly increases the flexibility. By asynchronously packaging low-code applications, zero-code applications and native applications, multiple applications can be processed in parallel, thereby significantly improving the packaging efficiency; secondly, by determining the dependencies and service components between applications through index dependency files, the workload of manual configuration is reduced, the risk of errors is reduced, and it is also helpful to achieve rapid deployment and troubleshooting; thirdly, by replacing the environment variable file in the project file during deployment, the application can be adapted according to different operating environments (such as development environment, test environment, production environment), thereby improving the flexibility and portability of the application; in addition, by compressing the application files and their associated environment variable files, index dependency files, services and components, a more compact project file is generated, which reduces the demand for storage space and transmission bandwidth and optimizes resource utilization; finally, the entire process from packaging to deployment has a high degree of automation, which reduces the steps of manual intervention and makes the deployment process simpler and faster; at the same time, the generated access address also facilitates the access and management of the application. Through dependencies and service components, it is easier to locate problems and update components during maintenance and upgrades, thereby improving the maintainability of the system.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1是本发明实施例中一种实施用于低代码开发中的项目打包安装系统的应用环境图;FIG1 is a diagram of an application environment for implementing a project packaging and installation system for low-code development in an embodiment of the present invention;
图2是本发明实施例中一种用于低代码开发中的项目打包安装方法的流程示意图;FIG2 is a flow chart of a project packaging and installation method for low-code development in an embodiment of the present invention;
图3是本发明实施例中一种用于低代码开发中的项目打包安装方法的第一交互流程图;3 is a first interactive flow chart of a project packaging and installation method for low-code development in an embodiment of the present invention;
图4是本发明实施例中一种用于低代码开发中的项目打包安装方法的第二交互流程图;4 is a second interactive flow chart of a project packaging and installation method for low-code development in an embodiment of the present invention;
图5是本发明实施例中一种用于低代码开发中的项目打包安装方法的第三交互流程图;5 is a third interactive flow chart of a project packaging and installation method for low-code development in an embodiment of the present invention;
图6是本发明实施例中一种用于低代码开发中的项目打包安装方法的原理图;FIG6 is a schematic diagram of a project packaging and installation method for low-code development in an embodiment of the present invention;
图7是本发明实施例中一种用于低代码开发中的项目打包安装系统的结构示意图;7 is a schematic diagram of the structure of a project packaging and installation system for low-code development in an embodiment of the present invention;
图8是本发明实施例中一种电子设备的结构示意图。FIG. 8 is a schematic diagram of the structure of an electronic device according to an embodiment of the present invention.
具体实施方式DETAILED DESCRIPTION
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。The following describes the embodiments of the present invention through specific examples, and those skilled in the art can easily understand other advantages and effects of the present invention from the contents disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the following embodiments and sub-samples in the embodiments can be combined with each other without conflict.
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。It should be noted that the illustrations provided in the following embodiments are only schematic illustrations of the basic concept of the present invention, and thus the drawings only show components related to the present invention rather than being drawn according to the number, shape and size of components in actual implementation. In actual implementation, the type, quantity and proportion of each component may be changed arbitrarily, and the component layout may also be more complicated.
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。In the following description, numerous details are discussed to provide a more thorough explanation of the embodiments of the present invention. However, it is obvious to those skilled in the art that the embodiments of the present invention can be implemented without these specific details. In other embodiments, well-known structures and devices are shown in the form of block diagrams rather than in detail to avoid making the embodiments of the present invention difficult to understand.
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。The terms "first", "second", etc. in the specification and claims of the embodiments of the present disclosure and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchanged where appropriate, so as to describe the embodiments of the embodiments of the present disclosure described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions.
除非另有说明,术语“多个”表示两个或两个以上。Unless otherwise stated, the term "plurality" means two or more.
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。In the embodiment of the present disclosure, the character "/" indicates that the preceding and following objects are in an "or" relationship. For example, A/B indicates: A or B.
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。The term "and/or" is a description of the association relationship between objects, indicating that three relationships can exist. For example, A and/or B means: A or B, or, A and B.
结合图1所示,本公开实施例提供了一种实施基于多层级库存模型的仓储管理系统的应用环境图,包括用户端和服务器端,其中,所述用户端和服务器端之间通过HTTP(Hypertext Transfer Protocol,超文本传输协议)连接。As shown in Figure 1, an embodiment of the present disclosure provides an application environment diagram for implementing a warehouse management system based on a multi-level inventory model, including a user end and a server end, wherein the user end and the server end are connected via HTTP (Hypertext Transfer Protocol).
本申请实施例提供了一种用于低代码开发中的项目打包安装方法及系统,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件。在一些实施例中,终端可以是计算机设备、台式机设备、智能手机、平板设备中的至少一种;服务器可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是固件程序升级生成的应用程序等,但并不局限于以上形式。The embodiments of the present application provide a method and system for project packaging and installation in low-code development, which can be applied to terminals, servers, or software running in terminals or servers. In some embodiments, the terminal can be at least one of a computer device, a desktop device, a smart phone, and a tablet device; the server can be configured as an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, and big data and artificial intelligence platforms; the software can be an application generated by a firmware program upgrade, etc., but is not limited to the above forms.
例如,请参阅图1,为本申请提供的一种多层级库存模型的仓储管理系统的实施环境图,本申请中数据表单的建模系统可以应用于服务器端,示例性地,如图1所示,本申请实施例提供的方法的执行主体可以为云服务器,云服务器响应于基于多层级库存模型的仓储管理方法。For example, please refer to Figure 1, which is an implementation environment diagram of a warehouse management system of a multi-level inventory model provided in the present application. The data form modeling system in the present application can be applied to the server side. Exemplarily, as shown in Figure 1, the execution entity of the method provided in the embodiment of the present application can be a cloud server, and the cloud server responds to the warehouse management method based on the multi-level inventory model.
具体地,结合图2所示,本申请的第一方面公开了一种用于低代码开发中的项目打包安装方法流程图,包括:Specifically, in conjunction with FIG. 2 , the first aspect of the present application discloses a flow chart of a project packaging and installation method for low-code development, including:
步骤S201,获取低代码开发中创建的项目,所述项目包括低代码应用、零代码应用与原生应用;Step S201, obtaining projects created in low-code development, wherein the projects include low-code applications, zero-code applications, and native applications;
例如,在低代码开发平台中,通过低代码开发平台上支持原生应用,基于Docker容器运行的应用;通过低代码开发平台上支持零码应用,用户通过配置生成的应用;通过低代码开发平台上支持专业应用,用户通过配置生成的应用,加入少量自定义代码应用。For example, in the low-code development platform, native applications are supported on the low-code development platform, which are applications that run based on Docker containers; zero-code applications are supported on the low-code development platform, which are applications generated by users through configuration; professional applications are supported on the low-code development platform, which are applications generated by users through configuration and with a small amount of custom code added.
此外,将项目作为交付级别,自动处理应用之间依赖关系。In addition, using projects as delivery levels automatically handles dependencies between applications.
低代码应用,通常由图形界面构建,根据应用的配置和代码库,自动编译、构建并打包成可部署的格式(如Docker镜像、WAR包等)。Low-code applications are usually built with a graphical interface, which automatically compiles, builds, and packages them into a deployable format (such as Docker images, WAR packages, etc.) based on the application configuration and code base.
零代码应用,完全由可视化界面构建,不包含手写代码,打包过程涉及将配置、数据和界面布局打包成特定格式,以便部署。Zero-code applications are built entirely with a visual interface and do not contain any handwritten code. The packaging process involves packaging the configuration, data, and interface layout into a specific format for deployment.
原生应用,对于移动或桌面原生应用,打包过程涉及编译源代码(如Java、Swift、Kotlin等)到平台特定的格式(如APK、IPA、EXE等)。Native applications, for mobile or desktop native applications, the packaging process involves compiling source code (such as Java, Swift, Kotlin, etc.) into platform-specific formats (such as APK, IPA, EXE, etc.).
步骤S202,响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件;Step S202, in response to the timing information carried by the received packaging request, asynchronously package the low-code application, the zero-code application, and the native application according to the timing information, and determine each application file;
应当说明的是,打包请求包含了时序信息,有助于理解各应用之间的打包顺序或优先级。It should be noted that the packaging request includes timing information, which helps to understand the packaging order or priority between applications.
具体地,接收所述打包请求,所述打包请求所携带有时序信息;Specifically, receiving the packaging request, wherein the packaging request carries timing information;
可选地,在某些实施例中,所述响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件,包括:Optionally, in some embodiments, in response to the timing information carried by the received packaging request, the low-code application, the zero-code application, and the native application are asynchronously packaged according to the timing information to determine each application file, including:
接收所述打包请求,所述打包请求所携带有时序信息;Receive the packaging request, where the packaging request carries timing information;
响应于所述打包请求中的时序信息,依据所述时序信息的先后顺序形成打包队列;In response to the timing information in the packaging request, forming a packaging queue according to the sequence of the timing information;
根据所述打包队列依次调用低码设计引擎、零码设计引擎与容器即服务平台,分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件。According to the packaging queue, the low-code design engine, the zero-code design engine and the container as a service platform are called in sequence to asynchronously package the low-code application, the zero-code application and the native application respectively to determine each application file.
例如,根据请求中的时序信息(如时间戳、优先级标记等),将所有待打包的请求进行排序,这样,确保了即使请求是异步到达的,也能按照预定的顺序进行处理。通过创建一个打包队列来存储这些排序后的请求,这个队列是基于内存的(如Java的PriorityQueue),也可以是持久化的(如使用数据库或消息队列系统)。For example, all requests to be packaged are sorted according to the timing information in the request (such as timestamp, priority tag, etc.), so that even if the requests arrive asynchronously, they can be processed in the predetermined order. A package queue is created to store these sorted requests. This queue is memory-based (such as Java's PriorityQueue) or persistent (such as using a database or message queue system).
根据打包队列中当前请求的应用类型,选择相应的设计引擎或服务平台进行打包。例如,对于低代码应用,选择低码设计引擎;对于零代码应用,选择零码设计引擎;对于原生应用,则可能直接调用容器即服务平台(CaaS)进行容器化打包。According to the application type currently requested in the packaging queue, select the corresponding design engine or service platform for packaging. For example, for low-code applications, select the low-code design engine; for zero-code applications, select the zero-code design engine; for native applications, you may directly call the container as a service platform (CaaS) for containerized packaging.
由于打包过程可能比较耗时,尤其是涉及复杂构建过程或依赖多个资源的应用,采用异步方式执行,通过多线程、任务队列(如Celery、RabbitMQ等)或云服务的异步API来实现。Since the packaging process may be time-consuming, especially for applications involving complex build processes or relying on multiple resources, it is executed asynchronously, through multi-threading, task queues (such as Celery, RabbitMQ, etc.) or asynchronous APIs of cloud services.
为每个打包任务分配一个唯一标识符,并跟踪其状态(如等待、处理中、成功、失败),这样,有助于用户或系统管理员监控打包进度,并在必要时进行干预。Assign a unique identifier to each packaging task and track its status (such as waiting, processing, success, failure), which helps users or system administrators monitor the packaging progress and intervene when necessary.
当打包任务完成时,验证输出的应用文件是否符合预期(如格式正确、依赖完整等),将验证通过的应用文件存储到指定的位置,可以是本地文件系统、云存储服务或版本控制系统。When the packaging task is completed, verify whether the output application file meets expectations (such as correct format, complete dependencies, etc.), and store the verified application file to a specified location, which can be a local file system, cloud storage service, or version control system.
通过邮件、短信、消息队列等方式通知请求者或其他相关人员,告知打包结果及文件存储位置,记录整个打包过程的详细日志,包括请求信息、处理时间、错误(如果有的话)等,以便于问题追踪和性能优化。Notify the requester or other relevant personnel through email, SMS, message queue, etc., inform them of the packaging results and file storage location, and record detailed logs of the entire packaging process, including request information, processing time, errors (if any), etc., to facilitate problem tracking and performance optimization.
在本实施例中,根据实际应用场景和反馈,不断调整和优化打包队列的管理策略、引擎的选择和配置,以及错误处理和恢复机制。In this embodiment, the management strategy of the packaging queue, the selection and configuration of the engine, and the error handling and recovery mechanism are continuously adjusted and optimized according to the actual application scenarios and feedback.
步骤S203,确定每个所述应用文件所对应的环境变量文件和索引依赖文件,基于所述索引依赖文件表征的有向关系图确定所述应用文件关联的服务与组件;Step S203, determining the environment variable file and the index dependency file corresponding to each of the application files, and determining the services and components associated with the application files based on the directed relationship graph represented by the index dependency files;
具体地,获取所述项目中每个所述应用文件所对应的环境变量文件和索引依赖文件;基于所述索引依赖文件构建每个所述应用文件的有向关系图,所述有向关系图的节点代表关联的服务或组件,所述有向关系图的边代表依赖关系;对所述有向关系图的节点和边进行识别,确定每个所述应用文件依赖的服务与组件。Specifically, obtain the environment variable file and index dependency file corresponding to each application file in the project; build a directed relationship graph for each application file based on the index dependency file, the nodes of the directed relationship graph represent associated services or components, and the edges of the directed relationship graph represent dependency relationships; identify the nodes and edges of the directed relationship graph to determine the services and components that each application file depends on.
例如,环境变量文件包含了应用运行所需的环境配置,如数据库连接信息、API密钥等。索引依赖文件记录了应用之间的依赖关系、服务调用关系和组件使用情况,通常表现为JSON、YAML等格式的文件,可以通过这些文件构建有向关系图。For example, the environment variable file contains the environment configuration required for the application to run, such as database connection information, API keys, etc. The index dependency file records the dependencies between applications, service call relationships, and component usage, usually in the form of JSON, YAML, and other formats, through which a directed relationship graph can be constructed.
又例如,使用图处理库(如Graphviz、NetworkX等)创建一个空的有向图,遍历所有解析出的依赖项,将每个服务或组件作为图中的一个节点添加进去,如果某些依赖项不是服务或组件(如纯代码库或工具),则根据需要进行过滤或特殊处理。根据索引依赖文件中的依赖关系,在有向图中添加边,每条边代表一个依赖关系,从一个节点(依赖者)指向另一个节点(被依赖者)。For another example, use a graph processing library (such as Graphviz, NetworkX, etc.) to create an empty directed graph, traverse all resolved dependencies, and add each service or component as a node in the graph. If some dependencies are not services or components (such as pure code libraries or tools), filter or specially process them as needed. According to the dependencies in the index dependency file, add edges to the directed graph. Each edge represents a dependency, pointing from one node (dependant) to another node (dependee).
又例如,使用图遍历算法(如深度优先搜索DFS、广度优先搜索BFS)遍历有向图,在遍历过程中,记录每个应用文件通过其索引依赖文件所依赖的服务和组件,通过查看节点的标签(即服务或组件的名称)以及指向这些节点的边来实现。For example, a directed graph is traversed using a graph traversal algorithm (such as depth-first search DFS and breadth-first search BFS). During the traversal process, the services and components that each application file depends on through its index dependency files are recorded. This is achieved by checking the labels of the nodes (i.e., the names of the services or components) and the edges pointing to these nodes.
在本实施例中,通过获取项目中每个应用文件的环境变量文件和索引依赖文件,并基于索引依赖文件构建有向关系图来识别每个应用文件依赖的服务与组件,将识别出的依赖关系整理成易于理解的格式(如文本报告、图表等),以便开发人员、运维人员或自动化工具使用。In this embodiment, the environment variable file and index dependency file of each application file in the project are obtained, and a directed relationship graph is constructed based on the index dependency file to identify the services and components that each application file depends on, and the identified dependencies are organized into an easy-to-understand format (such as text reports, charts, etc.) for use by developers, operation and maintenance personnel or automation tools.
步骤S204,压缩各所述应用文件与每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务以及所述组件,确定项目文件;Step S204, compressing each of the application files and the environment variable file, the index dependency file, the service, and the component associated with each of the application files to determine a project file;
具体地,基于分布式对象存储架构确定打包存储的各应用文件;利用可达性算法将所述项目中每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务、所述组件与所述应用文件进行打包,封装成一个大文件;依据所述打包队列依次对各个所述大文件进行压缩,直至打包完成后确定为项目文件。Specifically, based on the distributed object storage architecture, each application file to be packaged and stored is determined; the environment variable file, the index dependency file, the service, the component and the application file associated with each application file in the project are packaged and encapsulated into a large file using a reachability algorithm; each large file is compressed in turn according to the packaging queue until it is determined as a project file after packaging.
首先,确认项目中的应用文件已经存储在分布式对象存储系统中,如Amazon S3、Google Cloud Storage、阿里云OSS等,利用存储系统的API或管理工具,获取每个应用文件的具体存储位置和标识(如对象键、URL等)。First, confirm that the application files in the project have been stored in a distributed object storage system, such as Amazon S3, Google Cloud Storage, Alibaba Cloud OSS, etc., and use the storage system's API or management tools to obtain the specific storage location and identifier (such as object key, URL, etc.) of each application file.
对于每个应用文件,找到并收集其对应的环境变量文件和索引依赖文件,利用可达性算法(如深度优先搜索DFS、广度优先搜索BFS或特定于领域的算法)来确定哪些文件、服务、组件与当前应用文件直接或间接相关。For each application file, find and collect its corresponding environment variable files and index dependency files, and use reachability algorithms (such as depth-first search DFS, breadth-first search BFS, or domain-specific algorithms) to determine which files, services, and components are directly or indirectly related to the current application file.
将应用文件、其关联的环境变量文件、索引依赖文件(可能转换为清单形式),以及服务和组件的元数据或配置信息打包成一个单独的包,这个包可以是一个压缩文件(如ZIP、TAR.GZ等),也可以是一个特定格式的容器(如Docker镜像)。Package the application files, their associated environment variable files, index dependency files (possibly converted to manifest form), and metadata or configuration information of services and components into a single package, which can be a compressed file (such as ZIP, TAR.GZ, etc.) or a container in a specific format (such as a Docker image).
将所有待压缩的包按照之前确定的打包队列顺序进行排序,依次对队列中的每个包进行压缩处理,这样,减小了文件大小,加快传输速度,并便于存储。All the packages to be compressed are sorted according to the previously determined packaging queue order, and each package in the queue is compressed in turn, which reduces the file size, speeds up the transmission speed, and facilitates storage.
在压缩完成后,对生成的项目文件进行验证和测试,确保所有必要的文件和服务依赖都被正确打包,并且文件内容没有损坏,将验证通过的项目文件存储到分布式对象存储系统的指定位置,并使用版本控制系统(如Git)来跟踪和管理不同版本的项目文件。这样,确保了所有必要的资源都被打包在一起,便于部署和安装。After compression is complete, the generated project files are verified and tested to ensure that all necessary files and service dependencies are packaged correctly and that the file contents are not damaged. The verified project files are stored in the specified location of the distributed object storage system, and a version control system (such as Git) is used to track and manage different versions of project files. This ensures that all necessary resources are packaged together for easy deployment and installation.
步骤S205,若接收到所述项目文件,替换所述项目文件中的所述环境变量文件来安装各个应用,根据所述索引依赖文件确定各个所述应用的依赖关系,生成各应用关联的访问地址。Step S205: if the project file is received, the environment variable file in the project file is replaced to install each application, the dependency relationship of each application is determined according to the index dependency file, and the access address associated with each application is generated.
具体地,若监测到第一项目文件,响应于应用商店的应用安装请求下载所述第一项目文件,并对所述第一项目文件进行解压,获得第二项目文件,其中,所述第一项目文件为新版本的所述项目文件;根据所述应用商店所处的系统环境确定新的环境变量文件,利用所述新的环境变量文件对所述第二项目文件中的环境变量文件进行更新替换以满足安装条件;分别调用低码基座、零码基座、容器即服务基座对所述第二项目文件中所述低代码应用、所述零代码应用、所述原生应用进行安装,直至各应用安装完成为止;根据所述索引依赖文件中的依赖关系确定安装的各所述应用的依赖关系,生成各应用关联的访问地址,所述依赖关系包含服务依赖和组件依赖,所述访问地址包括服务访问地址和调用地址。Specifically, if a first project file is monitored, the first project file is downloaded in response to an application installation request from the application store, and the first project file is decompressed to obtain a second project file, wherein the first project file is a new version of the project file; a new environment variable file is determined according to the system environment in which the application store is located, and the environment variable file in the second project file is updated and replaced using the new environment variable file to meet the installation conditions; the low-code base, the zero-code base, and the container as a service base are respectively called to install the low-code application, the zero-code application, and the native application in the second project file until the installation of each application is completed; the dependency relationship of each installed application is determined according to the dependency relationship in the index dependency file, and an access address associated with each application is generated, the dependency relationship includes service dependency and component dependency, and the access address includes a service access address and a calling address.
例如,当监测到应用商店中有新版本的第一项目文件时,响应于用户的安装请求,开始下载该文件,待下载完成后,对第一项目文件进行解压,得到第二项目文件。根据应用商店所处的系统环境(如操作系统版本、硬件配置、网络配置等),确定新的环境变量文件,利用新的环境变量文件对第二项目文件中的环境变量文件进行更新替换。For example, when a new version of the first project file is detected in the application store, the file is downloaded in response to the user's installation request. After the download is completed, the first project file is decompressed to obtain the second project file. According to the system environment (such as operating system version, hardware configuration, network configuration, etc.) of the application store, a new environment variable file is determined, and the environment variable file in the second project file is updated and replaced with the new environment variable file.
又例如,根据项目文件中包含的应用类型(低代码应用、零代码应用、原生应用),分别调用相应的基座(低码基座、零码基座、容器即服务基座)进行安装。For another example, according to the application type (low-code application, zero-code application, native application) contained in the project file, the corresponding base (low-code base, zero-code base, container-as-a-service base) is called for installation.
低码基座,用于安装和部署低代码应用,这些应用通常具有可视化开发界面和灵活的定制能力。A low-code base for installing and deploying low-code applications, which usually have a visual development interface and flexible customization capabilities.
零码基座为无代码应用提供运行环境,用户无需编写代码即可创建和部署应用。The zero-code base provides a running environment for codeless applications, allowing users to create and deploy applications without writing code.
容器即服务基座,为原生应用提供容器化部署环境,确保应用的隔离性和可移植性。The container-as-a-service base provides a containerized deployment environment for native applications, ensuring the isolation and portability of applications.
在基座上安装应用时,根据第二项目文件中的配置信息和索引依赖文件来执行安装步骤。When installing the application on the base, the installation steps are performed according to the configuration information and the index dependency file in the second project file.
根据索引依赖文件中的信息,确定安装的各应用之间的依赖关系,这些依赖关系可能包括服务依赖和组件依赖,为每个安装完成的应用生成相应的访问地址,这些地址包括服务访问地址(用于外部系统或用户访问服务)和调用地址(用于应用内部组件或服务之间的调用)。Based on the information in the index dependency file, the dependencies between the installed applications are determined. These dependencies may include service dependencies and component dependencies. Corresponding access addresses are generated for each installed application. These addresses include service access addresses (for external systems or users to access services) and call addresses (for calls between components or services within the application).
通过上述方式,首先,本申请根据接收到的时序信息对应用进行打包,极大增加了灵活性,通过异步打包低代码应用、零代码应用和原生应用,能够并行处理多个应用,从而显著提高打包效率;其次,通过索引依赖文件确定应用之间的依赖关系和服务组件,减少了手动配置的工作量,降低了出错的风险,也有助于实现快速部署和故障排查;再次,在部署时替换项目文件中的环境变量文件,使得应用能够根据不同的运行环境(如开发环境、测试环境、生产环境)进行适配,提高了应用的灵活性和可移植性;还有,通过压缩应用文件及其关联的环境变量文件、索引依赖文件、服务和组件,生成了更为紧凑的项目文件,减少了存储空间和传输带宽的需求,优化了资源利用;最后,整个流程从打包到部署的自动化程度较高,减少了人工干预的步骤,使得部署过程更加简单快捷;同时,生成的访问地址也为应用的访问和管理提供了便利,通过依赖关系和服务组件,使得在维护和升级时能够更加方便地定位问题和更新组件,提高了系统的可维护性。Through the above method, firstly, the present application packages the application according to the received timing information, which greatly increases the flexibility. By asynchronously packaging low-code applications, zero-code applications and native applications, multiple applications can be processed in parallel, thereby significantly improving the packaging efficiency; secondly, by determining the dependencies and service components between applications through index dependency files, the workload of manual configuration is reduced, the risk of errors is reduced, and it is also helpful to achieve rapid deployment and troubleshooting; thirdly, by replacing the environment variable file in the project file during deployment, the application can be adapted according to different operating environments (such as development environment, test environment, production environment), thereby improving the flexibility and portability of the application; in addition, by compressing the application files and their associated environment variable files, index dependency files, services and components, a more compact project file is generated, which reduces the demand for storage space and transmission bandwidth and optimizes resource utilization; finally, the entire process from packaging to deployment has a high degree of automation, which reduces the steps of manual intervention and makes the deployment process simpler and faster; at the same time, the generated access address also facilitates the access and management of the application. Through dependencies and service components, it is easier to locate problems and update components during maintenance and upgrades, thereby improving the maintainability of the system.
请参阅图3至5,分别为本发明实施例中一种用于低代码开发中的项目打包安装方法的第一交互流程图、第二交互流程图与第三交互流程图,三者之间构成一个完成的应用打包安装流程图,详述如下:Please refer to Figures 3 to 5, which are respectively a first interactive flowchart, a second interactive flowchart and a third interactive flowchart of a project packaging and installation method for low-code development in an embodiment of the present invention, which constitute a completed application packaging and installation flowchart, as detailed as follows:
一、应用打包流程1. Application packaging process
1)开发中心生成打包版本,对每次打包内容进行标记;1) The development center generates a packaged version and marks the content of each package;
2)开发中心调用零码设计引擎,低码设计引擎,CAAS(容器即服务)平台分别对零码应用,低码应用,原生应用打包;2) The development center calls the zero-code design engine, low-code design engine, and CAAS (Container as a Service) platform to package zero-code applications, low-code applications, and native applications respectively;
3)零码设计引擎,低码设计引擎,CAAS平台分别对零码应用,低码应用,原生应用异步打包,打包完成之后通知开发中心3) Zero-code design engine, low-code design engine, and CAAS platform asynchronously package zero-code applications, low-code applications, and native applications respectively, and notify the development center after packaging is completed
4)开发中心内部收到所有打包完成,进入打包压缩的队列,防止多线程一起打包内存溢出,打包完成之后推送到指定的基地应用商店对象存储MINIO(开源对象存储服务)中。4) After all the packaging is completed, the development center enters the packaging and compression queue to prevent memory overflow when multiple threads are packaging together. After the packaging is completed, it is pushed to the designated base application store object storage MINIO (open source object storage service).
二、应用安装流程2. Application Installation Process
1)应用商店检测到新的版本或者新的应用显示到用户操作界面中;1) The app store detects a new version or a new app and displays it in the user interface;
2)用户通过应用商店交互执行安装工作流,填写新的环境变量,再分别调用零码基座,低码基座,CAAS基座执行对应应用的安装或者更新操作;2) The user interacts with the app store to execute the installation workflow, fills in new environment variables, and then calls the zero-code base, low-code base, and CAAS base to install or update the corresponding application;
3)根据整个项目依赖文件,分别安装对应应用,相关应用引用地址通过项目编号与应用编号进行关联;3) According to the dependency files of the entire project, install the corresponding applications respectively, and associate the relevant application reference addresses with the application numbers through the project numbers;
4)所有应用的安装完成之后,在应用库里面建立相关访问地址,新的应用到止从云端复制到基地端。4) After all applications are installed, relevant access addresses are created in the application library, and new applications are copied from the cloud to the base end.
通过上述方式,本申请极大降低了开发成本,将简单应用通过拖拉拽生成,利用原来低码功能;重用原有项目,通过订阅相关API,重用原来应用已有的功能;异步处理打包,可以反复打包覆盖,上次失败不影响下次打包;支持原生应用,零码应用,专业应用组合打包。Through the above methods, this application greatly reduces the development cost, generates simple applications by dragging and dropping, and utilizes the original low-code functions; reuses the original projects, and reuses the existing functions of the original applications by subscribing to related APIs; asynchronous processing and packaging can be repeatedly packaged and overwritten, and the previous failure will not affect the next packaging; supports native applications, zero-code applications, and professional application combination packaging.
可选地,在某些实施例中,所述生成各应用关联的访问地址之后,还包括:Optionally, in some embodiments, after generating the access address associated with each application, the method further includes:
若开发中心中任一的第一服务要调用任一引擎或基座的第二服务,则所述第一服务记录所述第二服务的服务名或服务地址,并将所述第一服务的回调接口发送所述第二服务进行存储;If any first service in the development center wants to call a second service in any engine or base, the first service records the service name or service address of the second service, and sends the callback interface of the first service to the second service for storage;
若所述第二服务接收到来自所述第一服务的调用请求,则依据所述回调接口对所述调用请求进行签名验证;若验证通过,则执行调用;若验证不通过,则不执行调用。If the second service receives a call request from the first service, it performs signature verification on the call request according to the callback interface; if the verification passes, the call is executed; if the verification fails, the call is not executed.
具体地,在开发中心中,当第一服务决定调用第二服务时,首先会记录下第二服务的服务名或服务地址,这个信息通常存储在服务的配置文件中,或者通过服务注册与发现机制动态获取。为了支持异步通信或确保调用的可追溯性,第一服务会将自己的回调接口发送给第二服务进行存储,这个回调接口可能是一个URL或一个特定的函数标识,用于在调用完成后接收结果或通知。Specifically, in the development center, when the first service decides to call the second service, it will first record the service name or service address of the second service. This information is usually stored in the service configuration file or dynamically obtained through the service registration and discovery mechanism. In order to support asynchronous communication or ensure the traceability of the call, the first service will send its callback interface to the second service for storage. This callback interface may be a URL or a specific function identifier, which is used to receive results or notifications after the call is completed.
当第一服务向第二服务发送调用请求时,请求中通常会包含必要的参数和数据,此外,为了增加安全性,请求还可能被签名以防止篡改。第二服务接收到调用请求后,根据预设的算法和密钥对请求的签名进行验证,这个验证过程确保了请求的真实性和完整性,防止了中间人攻击等安全问题。When the first service sends a call request to the second service, the request usually contains necessary parameters and data. In addition, to increase security, the request may also be signed to prevent tampering. After receiving the call request, the second service verifies the signature of the request based on the preset algorithm and key. This verification process ensures the authenticity and integrity of the request and prevents security issues such as man-in-the-middle attacks.
如果签名验证通过,说明请求是可信的,第二服务将执行调用请求中指定的操作或任务。If the signature verification passes, it means that the request is authentic, and the second service will execute the operation or task specified in the call request.
如果签名验证失败,说明请求可能被篡改或伪造,第二服务将拒绝执行调用请求,并可能返回错误信息给第一服务。If the signature verification fails, it means that the request may be tampered with or forged, and the second service will refuse to execute the call request and may return an error message to the first service.
在本实施例中,在签名验证通过后,第二服务将执行调用请求中指定的操作,这可能包括查询数据库、调用其他服务、执行计算任务等。操作执行完成后,第二服务会根据需要向第一服务的回调接口发送结果,这个结果可能是操作成功的确认、错误代码或实际的数据。In this embodiment, after the signature verification is passed, the second service will perform the operation specified in the call request, which may include querying a database, calling other services, performing computing tasks, etc. After the operation is completed, the second service will send a result to the callback interface of the first service as needed, which may be a confirmation of successful operation, an error code, or actual data.
可选地,在某些实施例中,所述生成各应用关联的访问地址之后,还包括:利用本地端对各个所述应用进行测试,若打开任意所述应用执行相应的业务流程,且业务执行完成,则确定当前所述应用测试通过,并显示包含通过字符的第一测试结果;否则,确定当前所述应用测试不通过,并显示包含不通过字符的第二测试结果。Optionally, in some embodiments, after generating the access addresses associated with each application, it also includes: using the local end to test each of the applications, if any of the applications is opened to execute the corresponding business process, and the business execution is completed, it is determined that the current application test has passed, and a first test result containing a pass character is displayed; otherwise, it is determined that the current application test has failed, and a second test result containing a fail character is displayed.
应当理解的是,在本地端启动待测试的应用,确保其能够正常加载和运行。It should be understood that the application to be tested is started locally to ensure that it can be loaded and run normally.
例如,按照预定的测试计划,逐一打开应用中的各个功能模块,执行相应的业务流程。这些业务流程应覆盖应用的主要功能和异常处理情况,在测试过程中,仔细观察应用的运行状态和输出结果,记录任何异常、错误或不符合预期的行为。For example, according to the predetermined test plan, open each functional module in the application one by one and execute the corresponding business processes. These business processes should cover the main functions of the application and exception handling. During the test, carefully observe the running status and output results of the application and record any exceptions, errors or unexpected behaviors.
又例如,如果某个应用在执行完所有预定的业务流程后,能够正常完成并返回预期的结果,则认为该应用在当前测试环境下测试通过;如果应用在执行过程中出现异常、错误或无法完成业务流程,则认为该应用在当前测试环境下测试不通过。For another example, if an application can complete normally and return the expected results after executing all the predetermined business processes, the application is considered to have passed the test in the current test environment; if the application encounters exceptions, errors or fails to complete the business process during execution, the application is considered to have failed the test in the current test environment.
在本实施例中,对于测试通过的应用,显示包含通过字符(如“Pass”“成功”等)的第一测试结果。这个结果可以是一个简单的消息框、日志条目或测试报告中的一行记录。对于测试不通过的应用,显示包含不通过字符(如“Fail”“失败”等)的第二测试结果,并尽可能详细地描述失败的原因和发生的上下文。In this embodiment, for applications that pass the test, a first test result containing pass characters (such as "Pass", "Success", etc.) is displayed. This result can be a simple message box, a log entry, or a line of record in a test report. For applications that fail the test, a second test result containing fail characters (such as "Fail", "Failure", etc.) is displayed, and the cause of the failure and the context in which it occurred are described as detailed as possible.
请参阅图6,是本发明实施例中一种用于低代码开发中的项目打包安装方法的原理图,包括:Please refer to FIG. 6 , which is a schematic diagram of a project packaging and installation method for low-code development in an embodiment of the present invention, including:
在开发中心,创建项目、创建应用例如,服务API关联(JSON)、快应用(零码)开发、专业(低码)应用开发、原生应用(chart+镜像)部署;In the development center, create projects and applications, such as service API association (JSON), quick application (zero-code) development, professional (low-code) application development, and native application (chart+image) deployment;
将应用推送到基地应用仓,进行应用打包,应用注册(GUC)。Push the application to the base application warehouse, package the application, and register the application (GUC).
可选地,在某些实施例中,所述生成各应用关联的访问地址之后,还包括:Optionally, in some embodiments, after generating the access address associated with each application, the method further includes:
若监测到应用注册请求,根据所述应用注册请求的类别打开相应类型的应用;If an application registration request is detected, opening an application of a corresponding type according to the type of the application registration request;
若所述应用初始化后,将所述应用对应的注册信息添加到应用菜单,所述应用注册请求包含当前所述应用的注册信息;If the application is initialized, the registration information corresponding to the application is added to the application menu, and the application registration request includes the current registration information of the application;
通过所述应用菜单打开应用,并将当前所述应用当作主应用,根据所述主应用所对应的所述依赖关系中的服务依赖和组件依赖分别作为子应用,将所述子应用关联到所述主应用;Open the application through the application menu, and take the current application as the main application, and use the service dependency and component dependency in the dependency relationship corresponding to the main application as sub-applications, and associate the sub-applications with the main application;
在启动所述主应用后,同步启动所述子应用,通过联动启动所述子应用来支撑所述主应用的业务执行能力。After starting the main application, the sub-application is started synchronously, and the business execution capability of the main application is supported by starting the sub-application in linkage.
例如,持续监听来自不同来源(如开发平台、管理界面或自动化脚本)的应用注册请求,当监测到应用注册请求时,先解析请求中的信息,以识别应用的类别(如Web应用、移动应用、桌面应用、微服务组件等)。根据应用的类别,调用相应的处理逻辑或启动相应的应用基座,以便为即将注册的应用提供一个合适的运行环境。在确定了运行环境后,新注册的应用开始初始化过程,这可能包括加载配置文件、设置环境变量、初始化数据库连接等。For example, continuously monitor application registration requests from different sources (such as development platforms, management interfaces, or automated scripts). When an application registration request is detected, first parse the information in the request to identify the application category (such as Web applications, mobile applications, desktop applications, microservice components, etc.). According to the category of the application, call the corresponding processing logic or start the corresponding application base to provide a suitable operating environment for the application to be registered. After determining the operating environment, the newly registered application begins the initialization process, which may include loading configuration files, setting environment variables, initializing database connections, etc.
例如,从应用注册请求中提取出当前应用的注册信息,这些信息通常包括应用名、版本号、描述、作者、依赖关系等。For example, the registration information of the current application is extracted from the application registration request. The information generally includes the application name, version number, description, author, dependencies, etc.
又例如,将提取出的注册信息添加到应用菜单中,应用菜单是一个用户界面组件,用于列出所有已注册的应用,并允许用户通过菜单项来打开或管理这些应用。For another example, the extracted registration information is added to an application menu, which is a user interface component that lists all registered applications and allows users to open or manage these applications through menu items.
用户通过点击应用菜单中的相应项来打开应用,当用户打开一个应用时,将该应用视为当前的主应用,主应用是用户当前关注或正在使用的应用。The user opens the application by clicking the corresponding item in the application menu. When the user opens an application, the application is regarded as the current main application, which is the application that the user is currently paying attention to or using.
根据主应用的注册信息中的依赖关系字段,解析出主应用所依赖的服务和组件,这些依赖可能以列表、图或其他数据结构的形式存在。对于解析出的每个依赖(无论是服务依赖还是组件依赖),都会查找对应的子应用(如果它们尚未注册为独立的应用),并将它们关联到主应用上,这种关联关系用于后续的应用启动和联动管理。According to the dependency field in the registration information of the main application, the services and components that the main application depends on are parsed. These dependencies may exist in the form of lists, graphs, or other data structures. For each dependency parsed (whether service dependency or component dependency), the corresponding sub-applications are searched (if they have not been registered as independent applications) and associated with the main application. This association is used for subsequent application startup and linkage management.
自动启动主应用,主应用的启动过程可能包括加载应用代码、初始化应用状态、建立网络连接等,在主应用启动后,根据主应用的依赖关系,同步启动所有关联的子应用;子应用的启动过程可能与主应用类似,但也可能有特定的启动顺序或条件。Automatically start the main application. The startup process of the main application may include loading application code, initializing application status, establishing network connection, etc. After the main application is started, all associated sub-applications are started synchronously according to the dependencies of the main application. The startup process of the sub-application may be similar to that of the main application, but may also have a specific startup order or conditions.
为了确保主应用的业务执行能力得到支撑,需要确保所有必要的子应用都已成功启动并处于可用状态,如果某个子应用启动失败或变得不可用,需要采取相应的补救措施,如重试启动、通知用户或触发故障处理流程。In order to ensure that the business execution capabilities of the main application are supported, it is necessary to ensure that all necessary sub-applications have been successfully started and are in an available state. If a sub-application fails to start or becomes unavailable, appropriate remedial measures need to be taken, such as retrying the startup, notifying the user, or triggering a fault handling process.
通过以上步骤,能够有效地管理应用的注册、初始化、依赖关系以及启动过程,从而确保整个系统的顺畅运行和高效协作。Through the above steps, the registration, initialization, dependencies, and startup process of the application can be effectively managed to ensure the smooth operation and efficient collaboration of the entire system.
在某些实施例中,所述获取低代码开发中创建的项目之后,还包括:In some embodiments, after obtaining the project created in the low-code development, the method further includes:
获取项目部署任务,根据所述项目部署任务对所述应用进行自定义部署;Obtaining a project deployment task, and performing custom deployment of the application according to the project deployment task;
若所述自定义部署为应用部署,生成单应用的第一Chart包,其中,所述第一Chart包所依赖的中间件需要用户自行管理;If the custom deployment is application deployment, a first Chart package of a single application is generated, wherein the middleware on which the first Chart package depends needs to be managed by the user;
若所述自定义部署为中间件部署,且所述中间件为平台提供,则根据所述第一Chart包与所述中间件生成作为一整体应用的第二Chart包;If the custom deployment is middleware deployment, and the middleware is provided by the platform, a second Chart package as an integrated application is generated according to the first Chart package and the middleware;
根据所述第一Chart包或所述第二Chart包对所述应用进行打包,将打包的所述应用存储到应用库。The application is packaged according to the first Chart package or the second Chart package, and the packaged application is stored in an application library.
具体地,明确项目的部署任务,通常包括部署的应用类型(如Web应用、微服务、数据库等)、部署环境(开发、测试、生产)、所需的资源(如CPU、内存、存储空间)、依赖关系(如中间件、其他服务等)等信息。Specifically, clarify the deployment tasks of the project, which usually include information such as the type of application to be deployed (such as web applications, microservices, databases, etc.), the deployment environment (development, testing, production), the required resources (such as CPU, memory, storage space), and dependencies (such as middleware, other services, etc.).
根据部署任务的具体要求,进行应用的自定义部署,如果部署任务指定为应用部署,需要为该应用生成一个单应用的Chart包(在Kubernetes等容器编排平台中,Chart包是描述K8s资源(如Pods,Services等)的YAML文件的集合,用于部署应用),生成的第一Chart包中包含了应用的所有必要配置,但其中间件(如数据库、消息队列等)需要用户根据实际情况自行管理。According to the specific requirements of the deployment task, perform customized deployment of the application. If the deployment task is specified as application deployment, you need to generate a single application Chart package for the application (in container orchestration platforms such as Kubernetes, the Chart package is a collection of YAML files that describe K8s resources (such as Pods, Services, etc.) and is used to deploy applications). The first generated Chart package contains all the necessary configurations of the application, but the middleware (such as databases, message queues, etc.) needs to be managed by the user according to actual conditions.
如果部署任务还涉及平台提供的中间件,并且需要将中间件与应用一同部署,则需要将中间件的信息也集成到Chart包中,基于第一Chart包和中间件的定义,生成一个包含应用与中间件作为一整体应用的第二Chart包,这个Chart包将确保中间件与应用能够作为一个整体被部署和管理。If the deployment task also involves the middleware provided by the platform, and the middleware needs to be deployed together with the application, the middleware information needs to be integrated into the Chart package. Based on the definition of the first Chart package and the middleware, a second Chart package is generated that includes the application and the middleware as a whole application. This Chart package will ensure that the middleware and the application can be deployed and managed as a whole.
使用Helm(或其他Chart管理工具)根据第一Chart包或第二Chart包对应用进行打包,打包过程会将Chart包中的所有配置文件、模板、依赖关系等信息封装成一个或多个文件,便于后续的存储和部署。Use Helm (or other Chart management tools) to package the application according to the first Chart package or the second Chart package. The packaging process will encapsulate all configuration files, templates, dependencies and other information in the Chart package into one or more files for subsequent storage and deployment.
将打包好的应用(无论是第一Chart包还是第二Chart包)存储到应用库中,应用库可以是本地仓库、私有仓库或公有云上的容器镜像仓库(如Docker Hub、Harbor等),存储时,需要确保应用包的版本管理得当,以便在需要时能够回滚到旧版本或部署新版本;同时,应用库应该提供足够的权限控制和访问管理。Store the packaged application (either the first Chart package or the second Chart package) in the application library. The application library can be a local warehouse, a private warehouse, or a container image warehouse on the public cloud (such as Docker Hub, Harbor, etc.). When storing, you need to ensure that the version of the application package is properly managed so that you can roll back to the old version or deploy a new version when necessary; at the same time, the application library should provide sufficient permission control and access management.
请参阅图7,为本申请提供的一种用于低代码开发中的项目打包安装系统结构图,包括:Please refer to FIG. 7, which is a structural diagram of a project packaging and installation system for low-code development provided by this application, including:
获取模块701,用于获取低代码开发中创建的项目,所述项目包括低代码应用、零代码应用与原生应用;An acquisition module 701 is used to acquire projects created in low-code development, wherein the projects include low-code applications, zero-code applications, and native applications;
打包模块702,用于响应于接收的打包请求所携带的时序信息,依据所述时序信息分别对所述低代码应用、所述零代码应用与所述原生应用进行异步打包,确定各应用文件;The packaging module 702 is used to respond to the timing information carried by the received packaging request, and asynchronously package the low-code application, the zero-code application and the native application according to the timing information to determine each application file;
文件确定模块703,用于确定每个所述应用文件所对应的环境变量文件和索引依赖文件,基于所述索引依赖文件表征的有向关系图确定所述应用文件关联的服务与组件;A file determination module 703, configured to determine the environment variable file and the index dependency file corresponding to each of the application files, and determine the services and components associated with the application files based on the directed relationship graph represented by the index dependency files;
压缩模块704,用于压缩各所述应用文件与每个所述应用文件关联的所述环境变量文件、所述索引依赖文件、所述服务以及所述组件,确定项目文件;A compression module 704 is used to compress each of the application files and the environment variable file, the index dependency file, the service and the component associated with each of the application files to determine a project file;
安装模块705,用于若接收到所述项目文件,替换所述项目文件中的所述环境变量文件来安装各个应用,根据所述索引依赖文件确定各个所述应用的依赖关系,生成各应用关联的访问地址。The installation module 705 is used to replace the environment variable file in the project file to install each application if the project file is received, determine the dependency relationship of each application according to the index dependency file, and generate an access address associated with each application.
采用本公开实施例提供的用于低代码开发中的项目打包安装系统,首先,本申请根据接收到的时序信息对应用进行打包,极大增加了灵活性,通过异步打包低代码应用、零代码应用和原生应用,能够并行处理多个应用,从而显著提高打包效率;其次,通过索引依赖文件确定应用之间的依赖关系和服务组件,减少了手动配置的工作量,降低了出错的风险,也有助于实现快速部署和故障排查;再次,在部署时替换项目文件中的环境变量文件,使得应用能够根据不同的运行环境(如开发环境、测试环境、生产环境)进行适配,提高了应用的灵活性和可移植性;还有,通过压缩应用文件及其关联的环境变量文件、索引依赖文件、服务和组件,生成了更为紧凑的项目文件,减少了存储空间和传输带宽的需求,优化了资源利用;最后,整个流程从打包到部署的自动化程度较高,减少了人工干预的步骤,使得部署过程更加简单快捷;同时,生成的访问地址也为应用的访问和管理提供了便利,通过依赖关系和服务组件,使得在维护和升级时能够更加方便地定位问题和更新组件,提高了系统的可维护性。The project packaging and installation system for low-code development provided by the embodiment of the present disclosure is adopted. First, the application packages the application according to the received timing information, which greatly increases the flexibility. By asynchronously packaging low-code applications, zero-code applications and native applications, multiple applications can be processed in parallel, thereby significantly improving the packaging efficiency; secondly, the dependency relationship and service components between applications are determined by indexing dependency files, which reduces the workload of manual configuration, reduces the risk of errors, and also helps to achieve rapid deployment and troubleshooting; thirdly, the environment variable file in the project file is replaced during deployment, so that the application can be adapted according to different operating environments (such as development environment, test environment, production environment), thereby improving the flexibility and portability of the application; in addition, by compressing the application file and its associated environment variable file, index dependency file, service and component, a more compact project file is generated, which reduces the demand for storage space and transmission bandwidth and optimizes resource utilization; finally, the entire process from packaging to deployment has a high degree of automation, reduces the steps of manual intervention, and makes the deployment process simpler and faster; at the same time, the generated access address also facilitates the access and management of the application. Through the dependency relationship and service components, it is more convenient to locate problems and update components during maintenance and upgrades, thereby improving the maintainability of the system.
本公开实施例还提供了一种电子设备,包括:处理器及存储器;存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以使电子设备执行上述的方法。An embodiment of the present disclosure further provides an electronic device, including: a processor and a memory; the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the electronic device executes the above method.
图8示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。Fig. 8 shows a schematic diagram of a computer system of an electronic device suitable for implementing an embodiment of the present application. It should be noted that the computer system 800 of the electronic device shown in Fig. 8 is only an example and should not bring any limitation to the functions and scope of use of the embodiment of the present application.
如图8所示,计算机系统800包括中央处理单元(Central Processing Unit,CPU)801,其可以根据存储在只读存储器(Read-Only Memory,ROM)802中的程序或者从储存部分808加载到随机访问存储器(Random Access Memory,RAM)803中的程序执行各种适当的动作和处理,例如执行上述实施例中的方法。在随机访问存储器803中,还存储有系统操作所需的各种程序和数据。中央处理单元801、只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出(Input/Output,I/O)接口805也连接至总线804。As shown in Figure 8, computer system 800 includes a central processing unit (CPU) 801, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 802 or the program loaded from the storage part 808 to the random access memory (RAM) 803, such as executing the method in the above embodiment. In the random access memory 803, various programs and data required for system operation are also stored. The central processing unit 801, the read-only memory 802 and the random access memory 803 are connected to each other through a bus 804. The input/output (I/O) interface 805 is also connected to the bus 804.
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的储存部分808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入储存部分808。The following components are connected to the input/output interface 805: an input section 806 including a keyboard, a mouse, etc.; an output section 807 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker; a storage section 808 including a hard disk, etc.; and a communication section 809 including a network interface card such as a LAN (Local Area Network) card, a modem, etc. The communication section 809 performs communication processing via a network such as the Internet. A drive 810 is also connected to the input/output interface 805 as needed. A removable medium 811, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 810 as needed so that a computer program read therefrom is installed into the storage section 808 as needed.
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的系统中限定的各种功能。In particular, according to an embodiment of the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a computer program for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication section 809, and/or installed from a removable medium 811. When the computer program is executed by a central processing unit (CPU) 801, various functions defined in the system of the present application are executed.
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。The above description and the accompanying drawings fully illustrate the embodiments of the present disclosure so that those skilled in the art can practice them. Other embodiments may include structural, logical, electrical, process and other changes. The embodiments represent possible changes only. Unless explicitly required, separate components and functions are optional, and the order of operation may vary. Parts and subsamples of some embodiments may be included in or replace parts and subsamples of other embodiments. Moreover, the words used in this application are only used to describe the embodiments and are not used to limit the claims. As used in the description of the embodiments and the claims, unless the context clearly indicates, the singular forms of "a", "an" and "the" are intended to include plural forms as well. Similarly, the term "and/or" used in this application refers to any and all possible combinations of listings containing one or more associated ones. In addition, when used in the present application, the term "comprise" and its variants "comprises" and/or comprising refer to the presence of a stated sub-sample, whole, step, operation, element, and/or component, but do not exclude the presence or addition of one or more other sub-samples, wholes, steps, operations, elements, components and/or groups of these. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method or device including the elements. In this article, each embodiment may focus on the differences from other embodiments, and the same and similar parts between the various embodiments may refer to each other. For the methods, products, etc. disclosed in the embodiments, if they correspond to the method part disclosed in the embodiments, then the relevant parts can refer to the description of the method part.
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software may depend on the specific application and design constraints of the technical solution. Technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the embodiments of the present disclosure. Technicians can clearly understand that for the convenience and simplicity of description, the specific working process of the above-described system, device and unit can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In the embodiments disclosed herein, the disclosed methods and products (including but not limited to devices, equipment, etc.) can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of units can be only a logical function division, and there can be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some sub-samples can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between each other shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms. The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units can be selected according to actual needs to implement this embodiment. In addition, each functional unit in the embodiment of the present disclosure can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit.
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框,以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flowchart and block diagram in the accompanying drawings show the possible architecture, functions and operations of the system, method and computer program product according to the embodiment of the present disclosure. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of the code, and a part of the module, program segment or code contains one or more executable instructions for realizing the specified logical function. In some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, which can depend on the functions involved. In the description corresponding to the flowchart and block diagram in the accompanying drawings, the operations or steps corresponding to different boxes can also occur in a different order from the order disclosed in the description, and sometimes there is no specific order between different operations or steps. For example, two consecutive operations or steps can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, which can depend on the functions involved. Each block in the block diagrams and/or flowcharts, and combinations of blocks in the block diagrams and/or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified functions or actions, or may be implemented by a combination of dedicated hardware and computer instructions.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410908681.5A CN118760444A (en) | 2024-07-08 | 2024-07-08 | Project packaging and installation method and system for low-code development |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410908681.5A CN118760444A (en) | 2024-07-08 | 2024-07-08 | Project packaging and installation method and system for low-code development |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118760444A true CN118760444A (en) | 2024-10-11 |
Family
ID=92946744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410908681.5A Pending CN118760444A (en) | 2024-07-08 | 2024-07-08 | Project packaging and installation method and system for low-code development |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118760444A (en) |
-
2024
- 2024-07-08 CN CN202410908681.5A patent/CN118760444A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7011737B2 (en) | Systems and methods for connector development and integrated channel deployment | |
US7950010B2 (en) | Software deployment system | |
CN114077423B (en) | Airport APP development system based on mobile cross-platform | |
US20150220308A1 (en) | Model-based development | |
US20080288622A1 (en) | Managing Server Farms | |
CN116860266A (en) | Application containerized deployment method and device, electronic equipment and storage medium | |
US12026493B2 (en) | Docker image creation apparatus and method | |
CN113138768B (en) | Application package generation method, device, electronic device and readable storage medium | |
US11531526B1 (en) | Creating portable serverless applications | |
US20230176839A1 (en) | Automatic management of applications in a containerized environment | |
CN115859280A (en) | Memory horse detection method, device, equipment and storage medium | |
CN117453237A (en) | Model conversion method and related device | |
US11893380B2 (en) | Super bundles for software-defined datacenter upgrades | |
US11494184B1 (en) | Creation of transportability container files for serverless applications | |
CN114500268A (en) | Deployment method, device, server and storage medium of chart resource | |
CN113535220B (en) | Code packet management method and device | |
CN118012453A (en) | Software deployment method, device, electronic device, storage medium and program product | |
CN112667441A (en) | Service module scheduling method, system and storage medium based on fault-tolerant function | |
CN117009184A (en) | Method for maintaining version consistency without stopping upgrading and application under Yun Yuan | |
CN118760444A (en) | Project packaging and installation method and system for low-code development | |
US11513833B1 (en) | Event listener interface for container-based execution of serverless functions | |
CN116450103A (en) | Interface registration and execution method, device and management system | |
CN112667491A (en) | Function test method and device of virtual machine | |
CN117251250B (en) | Container management method based on cloud native platform and related equipment | |
US12423094B2 (en) | Software life-cycle component management system |
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 |