本发明涉及软件开发,特别涉及一种支持全量出码功能的低代码系统及其开发方法。
背景技术:
1、当下伴随低代码平台的发展,通过可视化的开发环境和预构建的组件,使得开发者和非开发者能够快速创建和迭代应用,降低了开发门槛。虽然低代码平台提供了快速开发的优势,但在实际使用场景中,定制化需求较多,共性的低代码平台无法满足客户多样的定制化需求。
2、目前,业内对低代码平台前端出码有比较成熟的方案,但对于后端出码、前后端一体化全量出码尚没有解决方案。
3、为了实现后端出码、前后端一体化的全量出码方案,本发明提出了一种支持全量出码功能的低代码系统及其开发方法。
技术实现思路
1、本发明为了弥补现有技术的缺陷,提供了一种简单高效的支持全量出码功能的低代码系统及其开发方法。
2、本发明是通过如下技术方案实现的:
3、一种支持全量出码功能的低代码系统,支持微服务架构和模块化设计,将设计态和运行态解耦为独立的微服务;包括设计中心,运行中心和运行主机;
4、所述设计中心负责实现设计开发,发布应用版本,并利用抽象语法树ast(abstract syntax tree)实现出码功能;出码功能和应用版本发布功能共用一套数据模式schema,以实现全量出码;
5、所述运行中心负责使用模板系统来定义部署配置文件和环境变量,使得同一套代码能够在不同环境中灵活部署;同时将依赖的组件、菜单与视图数据通过设计态应用发布时进行导出;
6、所述运行主机负责针对云环境使用应用管理包helm技术管理kubernetes应用程序,创建并启动运行态微服务;通过提前设置运行态运行时所需要的静态配置,使运行态在获得基础配置信息后以容器的形式或者在独立虚机上独立运行。
7、一种支持全量出码功能的低代码系统的开发方法,包括以下步骤:
8、步骤s1、搭建独立的运行中心,配置运行态服务的环境,同时将依赖的组件、菜单与视图数据通过设计态应用发布时进行导出;
9、步骤s2、针对云环境使用应用管理包helm技术管理kubernetes应用程序,创建并启动运行态微服务;
10、通过提前设置运行态运行时所需要的静态配置,使运行态在获得基础配置信息后以容器的形式或者在独立虚机上独立运行;
11、步骤s3、在独立部署的系统基础上新增出码功能,出码功能和设计中心的版本发布功能共用一套数据模式schema,以实现全量出码。
12、所述步骤s1中,运行中心使用模板系统来定义部署配置,支持自动化生成不同环境的配置文件;
13、在设计态完成需要发布的应用的开发设计,并将相应的应用信息进行发布,生成发布应用包;生成的发布应用包在运行中心进行上传,并部署到相应的运行主机上;
14、使用配置文件或环境变量来管理不同部署环境(如开发、测试、生产)的配置,使得同一套代码能够在不同环境中灵活部署;
15、通过持久化文件存储相应的导出信息,包括但不限于应用信息、表单信息与字典信息。
16、所述步骤s2中,将设计态和运行态解耦为独立的微服务,通过微服务架构实现功能分离,从而实现各个服务的独立部署和维护;
17、运行态以容器的形式独立运行时,将应用和依赖打包到容器中(如应用容器引擎docker),以确保在不同环境中一致性和可移植性;使用kubernetes容器编排工具来管理容器的部署、扩展和操作,以提高系统的可靠性和可伸缩性;
18、针对容器化和编排,采用应用管理包helm来启动服务,将设计好的应用发布镜像并保存,然后通过应用管理包helm管理的基础设施模板helm chart(即helm图表)书写模板文件,并传入需要部署的运行态服务镜像名称,通过应用管理包helm安装helm install命令启动服务。
19、所述步骤s2中,运行态以独立虚机的形式独立运行时,使用ansible工具自动化运维的方式自动化启动远程虚机或部署运行态应用服务,支持独立部署;
20、首先在运行部署中心配置基础的ansible环境和控制节点;创建ansibleplaybook剧本文件来管理,并创建虚机启动模块,用于管理虚机;其中,文件主机信息根据配置中心参数进行动态调整;
21、然后针对低代码独立服务部署应用服务,书写针对低代码平台的中间件(mariadb,minio,nginx,nacos)和应用服务模块信息,最后配置ansible inventory清单文件并运行ansible playbook剧本文件,自动化启动部署服务。
22、所述步骤s3中,为了保证计的发布版本功能和出码功能的基础信息具有相同的数据结构,设计中心的版本发布应用包和出码功能共用一套数据模式schema,将其提取为统一的json模式schema(json模式,一种用于定义json(javascript object notation)数据结构的标准),其根节点为应用标识符id,内容包括表单、菜单、静态资源、标签以及应用内的角色、岗位与字典信息。
23、其中每项内容又由各自不同的内容组成。
24、其中,表单的根节点为表单标识符id,向下继续分解内容,包含组件、规则与打印信息;组件继续往下分解,包含组件标识符id、组件属性与关联字典信息,从而将数据的逻辑结构和物理存储分离,通过提取数据的逻辑结构形成出码代码和应用发布应用包,然后再通过解析该逻辑结构,导入对数据的管理和操作。
25、所述步骤s3中,将自定义设计的特定表单和应用信息导出到应用包,同时将数据写入出码模板,生成全量的前后端出码;
26、使用模块技术进行变量替换,并根据提供的源码模块组合生成新的出码文件。
27、所述步骤s3中,前端出码采用低代码引擎lowcode-engine技术,后端出码采用市面已经成熟的模板技术,如模板引擎freemarker、模板引擎velocity;使用模块技术将json模式schema中的变量进行替换,并根据提供的源码模块,组合生成新的出码文件。
28、一种计算设备,其特征在于,包括:
29、一个或多个处理器、一个或多个存储器以及一个或多个程序,其中一个或多个程序存储在所述一个或多个存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述方法中的任一方法的指令。
30、一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
31、本发明的有益效果是:该支持全量出码功能的低代码系统及其开发方法,通过实现设计态和运行态的分离和独立运行,不仅能够快速创建和迭代应用,降低了开发门槛,同时还能够满足客户多样的定制化需求。
1.一种支持全量出码功能的低代码系统,其特征在于:支持微服务架构和模块化设计,将设计态和运行态解耦为独立的微服务;包括设计中心,运行中心和运行主机;
2.一种支持全量出码功能的低代码系统的开发方法,其特征在于:包括以下步骤:
3.根据权利要求2所述的支持全量出码功能的低代码系统的开发方法,其特征在于:所述步骤s1中,运行中心使用模板系统来定义部署配置,支持自动化生成不同环境的配置文件;
4.根据权利要求2所述的支持全量出码功能的低代码系统的开发方法,其特征在于:所述步骤s2中,将设计态和运行态解耦为独立的微服务,通过微服务架构实现功能分离,从而实现各个服务的独立部署和维护;
5.根据权利要求2或4所述的支持全量出码功能的低代码系统的开发方法,其特征在于:所述步骤s2中,运行态以独立虚机的形式独立运行时,使用ansible工具自动化运维的方式自动化启动远程虚机或部署运行态应用服务,支持独立部署;
6.根据权利要求2所述的支持全量出码功能的低代码系统的开发方法,其特征在于:所述步骤s3中,为了保证计的发布版本功能和出码功能的基础信息具有相同的数据结构,设计中心的版本发布应用包和出码功能共用一套数据模式schema,将其提取为统一的json模式schema,其根节点为应用标识符id,内容包括表单、菜单、静态资源、标签以及应用内的角色、岗位与字典信息;
7.根据权利要求2所述的支持全量出码功能的低代码系统的开发方法,其特征在于:所述步骤s3中,将自定义设计的特定表单和应用信息导出到应用包,同时将数据写入出码模板,生成全量的前后端出码;
8.根据权利要求7所述的支持全量出码功能的低代码系统的开发方法,其特征在于:前端出码采用低代码引擎lowcode-engine技术,后端出码采用市面已经成熟的模板技术,如模板引擎freemarker、模板引擎velocity;使用模块技术将json模式schema中的变量进行替换,并根据提供的源码模块,组合生成新的出码文件。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于:所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求2至8所述的方法中的任一方法。
10.一种计算设备,其特征在于,包括:
