CN110989983B - 一种零编码的应用软件快速构建系统 - Google Patents
一种零编码的应用软件快速构建系统 Download PDFInfo
- Publication number
- CN110989983B CN110989983B CN201911190567.9A CN201911190567A CN110989983B CN 110989983 B CN110989983 B CN 110989983B CN 201911190567 A CN201911190567 A CN 201911190567A CN 110989983 B CN110989983 B CN 110989983B
- Authority
- CN
- China
- Prior art keywords
- data
- modeling
- message
- user
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种零编码的应用软件快速构建系统,包括以下模块:数据建模,用于对海量数据表类型进行分类、构建、管理与同步;表单建模;列表建模;流程建模;能力支撑,提供各类底层支撑能力以及接口;基础功能。本发明的有益效果是:提供了一种通过可以低成本、高效率、支持搭积木形式的开发平台,用于搭建各式各样的表单业务系统,通过降低开发门槛(支持轻量计算机背景甚至是非计算机背景的人使用),提高系统开发效率(无需一个一个模块编写代码,简单拖拉拽即可),从而达到快速实现业务系统开发的目的,并且支持快速响应用户变更,实现所配即所得。
Description
技术领域
本发明涉及应用软件快速构建系统,尤其涉及一种零编码的应用软件快速构建系统。
背景技术
定制化业务系统开发的特点是根据客户的需求,量身定制一系列符合客户实际应用的软件,行业标杆软件可以满足行业内的通用需求,但却在特殊流程和客户定制上成本很高,即同一套行业解决方案往往无法因地适宜满足各类同行业的定制开发需求。
定制化软件开发单位常用开发模式有:基础平台+业务代码编写(适用于有平台产品的软件开发单位,以平台为基础,配合代码编写,此种方式较为常用);纯代码编写方式(适用于数据或强gis展示类信息系统,适用于业务流程关联较低的系统)。按照定制软件开发过程,一般要经过开发语言选型、框架选型、系统建模(主要是数据建模)、代码开发四大步骤。
主要流行的开发语言有如下几类:
(一)JAVA
Java是一门面向对象编程语言,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java是高级的面向对象的编程语言,学习起来比C++更容易,但是程序的性能要比C或C++差一些。因此,一般不用java构建核心引擎、操作系统或嵌入式系统开发。
(二)JavaScript
JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。是一种解释性脚本语言(代码不进行预编译)。主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。优点,一、速度 由于它是客户端,JavaScript将提供非常高的速度。 代码功能将能够立即运行,无需联系服务器且无需等待时间。二、 简单实现起来非常容易,甚至学习如何用JavaScript编写代码。三、 多功能性 使用JavaScript的一个非常有趣的优点是它与大多数其他编码语言兼容。但javascript也有安全性等方面的缺点。
(三)Python
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言。Python的优点很多,简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学:Python极其容易上手,因为Python有极其简单的说明文档。速度快:Python 的底层是用C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性:由于它的开源本质,Python已经被移植在许多平台上。解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
(四)PHP
PHP是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,其主要特点有,(一)开源性和免费性,由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。(二)快捷性,PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。(三)数据库连接的广泛性,PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。(四)面向过程和面向对象并用,在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言是做不到的。主要优点有易上手、可植入性强、拓展性强。主要缺点有对递归的支持不太好、设计不太完善等。
(五)C语言
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。主要特点有,简洁、具有结构化的控制语句、丰富的数据类型、丰富的运算符、可对物理地址直接操作、具备较好的可移植性。缺点是由于解释性不强,不太适合用作web端开发。
常用开发框架主要分为以下几类(java)
(一)SpringMVC
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。模型(Model )封装了应用程序的数据和一般他们会组成的POJO。视图(View)是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。控制器(Controller )负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。Spring的web模型 - 视图 - 控制器(MVC)框架是围绕着处理所有的HTTP请求和响应的DispatcherServlet的设计。
(二)Spring
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring的目的是解决企业应用开发的复杂性,主要功能是使用基本的JavaBean代替EJB,并提供了更多的企业应用功能,可以适用任何Java应用范围,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
(三)Mybatis
MyBatis 是的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary JavaObject,普通的 Java对象)映射成数据库中的记录。
(四)hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。Hibernate作为数据库与界面之间的桥梁,需要面向对象思想操纵对象。对象可能是普通JavaBeans/POJO。应用程序通过抽象将应用从底层事务隔离开。使用底层的API或Transaction对象完成轻量级框架提供一级缓存和二级缓存。Hibernate直接提供相关支持,底层驱动可以随意切换数据库,快速简洁。使业务层与具体数据库分开,只针对Hibernate 进行开发,完成数据和对象的持久化。针对不同的数据库形成不同的SQL 查询语句,降低数据库之间迁移的成本。Hibernate支持多种缓存机制,Hibernate适配MS SQLSERVER、ORACLE、SQL、H2、Access和Mysql等多种数据库。
代码开发过程中常用组件或中间件技术有如下几类
(一) 数据存储技术
是指选择数据库将数据存入数据库的一个过程。其中不同数据库软件具有不同的特点,需要结合实际业务需要选择合适的数据库软件。数据分为两种类型:关系型的和非关系型的。因对应的数据库引擎的选择也要针对相应的数据类型进行选型。现阶段常用的关系型数据库包括Oracle、DB2、SQL Server、MySQL、PostgreSQL等,现阶段常用的非关系行数据库包括MongoDB、Redis、MemBase、HBASE等。
(二)消息中间件
负责在各个系统模块之间通过网络协议实时高效传递消息,支持同步传输和异步传输。消息中间件负责将数据打包封装成可传输的“消息”,通过对MQ集群的配置,使消息按照不同的队列有规则的传输,常见的MQ包括Kafka、RabbitMQ、Redis、ZeroMQ、ActiveMQ等。
(三)开放授权(OAuth)
是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。常见的开放认证授权技术有:OAuth、OAuth2。
(四)工作流
工作流作为应用系统的一部分,为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能。常见的工作流引擎有Activiti,jbpm,eosworkflow。
(五)报表引擎
报表引擎根据定义的报表主题及它的算法,在人工或日程安排的触发下,自动运行。报表引擎根据报表主题,从数据库的原始数据的基础上,提取原始的数据,依据定义的报表算法,进行自动计算;在提取报表主题及算法运算的过程中,报表引擎依据定义各种参数,实现所需的运算,常用的报表引擎有FineReport 、BIRT Project、FreeReportBuilder、OpenReports等。
目前,行业上成熟的服务或技术可以分阶段的解决定制化软件开发过程中的问题,但在定制化系统开发过程中面对需求变更频繁、行业差异、个体差异明显的需求特点下尚有提升空间。
无论采用何种开发方案,都会面临需求变动导致需要进行代码编写、测试及部署流程,导致流程长、耗时多。
应用构建系统所用到的数据建模、表单建模、流程建模、报表建模、调度中心、消息推送引擎、消息中间件等工具。其实每个流程在市面上均有一些相对成熟的产品,而对于面向政府+企业的定制化开发系统的建设,还需要进行相应的调整与整合。
因此,如何提供一种低成本、高效率、支持搭积木形式的开发平台,用于搭建各式各样的表单业务系统,是本领域技术人员所亟待解决的技术问题。
发明内容
为了解决现有技术中的问题,本发明提供了一种零编码的应用软件快速构建系统。
本发明提供了一种零编码的应用软件快速构建系统,包括以下模块:
数据建模,用于对海量数据表类型进行分类、构建、管理与同步;
表单建模,实现将用户需求表格转换为所见所得的表单,通过各类控件及其属性配置实现业务需求;
列表建模,将设计好的表单挂载到列表,配置其数据权限、查询条件、展示条件,实现列表数据查询;
流程建模,实现流程模型创建,管理员提前设置流程的节点、负责人和数据流经的途径,一旦数据提交以后,就会进入流程、按照既定的流程进行流转;
报表引擎,在表单中收集得到的数据,通过明细表、图表透视查看表单数据的明细和汇总;通过柱形、折线、图形、雷达图对数据进行处理,显示出数据的发展趋势、分类对比结果;
能力支撑,提供各类底层支撑能力以及接口;
基础功能,提供基本的系统配置功能,组织权限功能,用于分配用户角色,功能操作权限、用户维护;日志管理,提供登录日志、操作日志配置,定制关注的日志字段信息;字段管理,是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
作为本发明的进一步改进,所述表单建模中的属性配置包括校验条件、功能操作、业务触发操作;
所述能力支撑包括消息中间件、分布式任务调度、规则解析引擎、消息推送中心、代码注入,消息中间件实现系统之间的解耦,数据同步,异步处理;分布式任务调度通过把定时任务通过集群方式进行管理调度,并采用分布式部署,保证系统的高可用,提高容错率;规则解析引擎,支持将各类可读性更高的函数解析成可执行的代码语句在后端执行,实现各类表达式解析;消息推送中心,负责推送各类消息推送服务;代码注入,实现将过度个性化业务的代码直接解析,通过代码加密注入,再解密输出的形式,实现在线升级;
所述基础功能的数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。
作为本发明的进一步改进,数据建模指的是对各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式;将经过系统分析后抽象出来的概念模型转化为物理模型后,建立数据库实体以及各实体之间关系;数据建模的具体流程包括:确定数据及其相关过程、定义数据、确保数据完整性、定义操作过程、选择数据存储技术,定义数据包括:如数据类型、大小、默认值,确保数据完整性包括使用业务规则和验证检查,定义操作过程包括备份及安全性检查,选择数据存储技术包括关系、分层或索引存储技术;同时,数据建模也支持逆向将数据表结构反向生成数据模型,同步表结构类型字段、默认值。
作为本发明的进一步改进,表单建模主要分为表单控件、表单字段、表单属性三部分,作为系统配置的独立入口,结合数据建模一起使用,通过操作各种各样的控件,间接操作数据库表字段,同时具备多数据源配置、控件默认值设置、控件属性配备功能;表单控件是指各类数据类型和方法的封装,每个控件有自己的属性和方法,系统提供的控件包括基础控件、布局控件、高级控件、系统控件、流程控件五大类控件集。
作为本发明的进一步改进,基础控件,各类基础控件均可以设置默认值、设置表达式,用于实现控件联动计算、隐藏显示、只读模式,并支持在控件旁嵌入功能操作按钮;
布局控件,通过布局控件,优化表单布局结构,使各类控件按照指定需求排列布局,允许设置高度,宽度属性,使用一系列布局控件配合其他类型控件可完整搭配出用户所需表单;
系统控件,系统控件用于弥补常规控件无法满足的功能,包括:表单记录创建时间,表单记录修改时间字段,在搭配这个表单的时候每条记录创建时间,后面记录数据被更新的时间,由系统记录下来,表单建模的时候只用拉出来,便可以将这些系统赋值的字段放置到表单中使用,并由系统来赋值,无需用户填充数据;
高级控件,包括子表、关联表,A表引用B表的数据,用关联表单将B表作为A表的引用,即数据无需A表维护,但A表可以引用B表的数据用来关联展示;
流程控件,当表单引入业务流程以后,使用流程控件将流程相关属性作为控件引入表单使用,通过将流程控件与表单引擎深度结合,流程引擎中表单数据流程状态封装给到表单调用。
列表建模主要起到的作用是挂载表单,作为表单数据的查询、新增、展示入口,并允许批量操作,按照指定要求设置表单查询条件,设置列表需要展示的字段、设置各字段展示样式及点击操作、设置快速筛选栏,并支持隐藏部分查询条件、支持批量操作列表数据,支持数据权限管理。
作为本发明的进一步改进,流程建模包括工作流引擎,根据角色、分工和条件的不同决定信息传递路由、内容等级,工作流引擎包括流程的节点管理、流向管理、环节管理、参与者设置、环节操作设置,关联表单引擎,用表单来驱动流程引擎,在流设计器中设置表单相关控件权限信息,给控件赋值,同时支持会签操作,并行环节。
作为本发明的进一步改进,报表建模,提供强有力的辅助功能,可以帮助用户更方便、更高效地进行报表设计,可以从几个不同的相关表创建报表,除创建可打印报表之外,也可以将报表导出到 HTML 或文本文件中;
报表建模主要由如下几个部分组成:报表设计器、数据引擎,配置中心;由报表设计器搭建用户所需报表界面,由数据引擎负责链接各类数据源,提供数据;配置中心负责优化界面提供各类查询筛选条件,导出导入配置操作;三个模块协同工作模块用户各式各样的统计需求,同时支持图表两种设计模式;
报表建模使用JDBC跟数据库建立连接,可连接的关系型数据库包括:Oracle、SQLServer、MySQL、DB2、Ingres、Sybase、Derby、Informix、PostgreSQL;同时还可以连接非关系型数据库的数据资源其中包括EJB、Corba、Object、Soap、XML、XMLA、Text、Excel、SAP,同时还提供开放式的数据接口,用户可以扩展数据接口来导入各种数据;
建模器在建立数据源和数据查询的过程都是通过可视化的工具来完成的,可视化的界面可以轻松的帮助用户建立数据表之间的关联,完成数据查询条件的设定,所有界面中的设定,都会被自动的翻译成标准的SQL语言,这些标准的SQL语言被送到数据库端执行,快速的返回数据结果。
作为本发明的进一步改进,能力支撑隐藏在后端给各类功能提供支撑服务,支撑其他模块运行,提供各类隐性服务和能力支持,主要功能有如下几类:
1)消息同步即消息中间件,独立于各个系统,是一种能在各个分、子系统模块和平台运行,支持在任意架构的系统中各个组件之间进行通讯的协议实现组件,负责在各个分、子系统模块之间实时高效传递消息,是本系统中重要的负责核心信息交换的组件,MQ支持同步传输和异步传输,保证数据报文不重复、不丢失、同顺序;
消息中间件主要起到两个作用:第一,消息路由,消息路由管理着消息的传递,通过一定的配置项分发将消息分发到不同的消息队列中,起到指挥调度的作用;第二,消息传输,消息队列接收到消息路由的指令后,按照消息路由的指令,执行消息传输;
2)任务调度,是一种能独立于各个分、子系统模块和平台,各分子平台将需要调度的任务描述清楚在调度中心进行注册,定义执行频率和时机,由调度中心负责把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错,从而保证定时任务只在集群的某一个节点上执行,或者一个任务如何拆分为多个独立的任务项,由分布式的机器去分别执行, 统一管理众多的定时任务;
3)规则解析,从原理上来说规则引擎是一种推理引擎,它是根据已有的事实,从规则知识库中匹配规则,并处理存在冲突的规则,执行最后筛选通过的规则,接受数据输入,解释业务规则,并根据业务规则做出业务决策,使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本;
4)消息推送,对于需要及时通知用户的业务,需要消息推送功能,保证通知的及时性;消息推送涉及到消息的发送和接收,既要能在后端中使用,也要能在前端和移动端使用;零代码系统的消息推送实现三种方式;第一种,轮询方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息;第二种,推送方式:移动终端先在服务器端注册并告知关注的消息主体,服务器获得相关的消息之后,根据主体主动推送给移动终端;第三种是常连接方式:移动终端与服务器端保持常连接,保证消息下发的及时性;
5)代码注入,平台提供丰富的代码注入接口,支持密文代码注入,提供前端解析引擎,代码注入机制的注入,可以大大的节省部署时间,省去服务启动时间,通常可以将一些轻量前端代码通过代码注入形式放置在前端,往往可以实现用户的无感升级
作为本发明的进一步改进,基础功能主要是为了将一些通用性非常强的功能抽出,而不再单独耗费精力配置,是由平台标配提供的一些通用功能,主要包括如下几类功能:
1)组织权限,提供用户注册、用户分组、权限角色划分,包含各个功能的按钮级别的权限控制配置、用户的密码修改、用户属性信息修改;
2)日志管理,提供登录日志配置、可以根据用户的需求自定义设置所需登录系统的用户的属性信息,也可以记录用户操作日志;
3)数据字典,用户可以将常用的数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。数据字典可以保留线性结构数据以及树形结构数据。
本发明的有益效果是:提供了一种通过可以低成本、高效率、支持搭积木形式的开发平台,用于搭建各式各样的表单业务系统,通过降低开发门槛(支持轻量计算机背景甚至是非计算机背景的人使用),提高系统开发效率(无需一个一个模块编写代码,简单拖拉拽即可),从而达到快速实现业务系统开发的目的,并且支持快速响应用户变更,实现所配即所得。
附图说明
图1是本发明一种零编码的应用软件快速构建系统的模块设计图。
图2是本发明一种零编码的应用软件快速构建系统的表单建模功能结构图。
图3是本发明一种零编码的应用软件快速构建系统的列表建模功能结构图。
图4是本发明一种零编码的应用软件快速构建系统的流程建模功能结构图。
图5是本发明一种零编码的应用软件快速构建系统的网络拓扑图。
图6是本发明一种零编码的应用软件快速构建系统的总体架构图。
图7是本发明一种零编码的应用软件快速构建系统的部署图。
图8是本发明一种零编码的应用软件快速构建系统的搭建步骤示意图。
图9是本发明一种零编码的应用软件快速构建系统的函数配置图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
如图1至图9所示,一种零编码的应用软件快速构建系统,主要是一个应用系统快速搭建平台,将系统建设不同的阶段化繁为简,通过提供的建模工具,使用拖拉拽的形式完成功能搭建。以数据为核心,以业务构建为引擎,提供统一的服务标准、统一的运行环境,相当于搭建一个积木的底板,并提供应用开发通用工具和技术框架、共性能力、应用中间件(相当于积木的底板),再通过建模工具,将一些个性化积木(用户需求)堆上去,形成一个完整的系统,对系统的实现打下了良好的基础。
如图1所示,一种零编码的应用软件快速构建系统,根据所需搭建的系统复杂程度搭建步骤略有差别,但工作步骤大致可以分为以下几步,创建所需应用、搭建所需表单、配置列表属性(有一些场景无需此步骤)、挂载菜单、创建用户分配权限,通过对需求的详细分析,现将整个系统设计为7个模块,具体如下:
1.数据建模,用于对海量数据表类型进行分类、构建、管理与同步。
2.表单建模,实现将用户需求表格转换为所见所得的表单,通过各类控件及其属性配置(包括校验条件、功能操作、业务触发操作)实现业务需求。
3.列表建模,可将设计好的表单挂载到列表,配置其数据权限、查询条件、展示条件等实现列表数据查询。
4.流程建模,实现流程模型创建,管理员提前设置流程的节点、负责人和数据流经的途径。一旦数据提交以后,就会进入流程、按照既定的流程进行流转。
5.报表引擎,在表单中收集得到的数据,可以通过明细表、图表透视等查看表单数据的明细和汇总;通过柱形、折线、图形、雷达图等可以对数据进行处理,显示出数据的发展趋势、分类对比等结果;
6.能力支撑,提供各类底层支撑能力以及接口。大致分为以下几类消息中间件、分布式任务调度、规则解析引擎、消息推送中心、代码注入。消息中间件实现系统之间的解耦,数据同步,异步处理;分布式任务调度通过把定时任务通过集群方式进行管理调度,并采用分布式部署,保证系统的高可用,提高容错率;规则解析引擎,支持将各类可读性更高的函数解析成可执行的代码语句在后端执行,实现各类表达式解析;消息推送中心,负责推送各类系统消息、移动端消息、短信、邮件等消息推送服务;代码注入,实现将过度个性化业务的代码直接解析,比如特殊样式设置等,通过代码加密注入,再解密输出的形式,实现在线升级。
7.基础功能,提供基本的系统配置功能,如组织权限功能,用于分配用户角色,功能操作权限、用户维护等;日志管理,提供登录日志、操作日志配置,可定制关注的日志字段信息;字段管理,是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。
功能模块详细设计如下:
1. 数据建模
数据建模指的是对各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等。 将经过系统分析后抽象出来的概念模型转化为物理模型后,建立数据库实体以及各实体之间关系(实体一般是表)。本模块的具体流程有,确定数据及其相关过程、定义数据(如数据类型、大小、默认值)、确保数据完整性(使用业务规则和验证检查)、定义操作过程(备份及安全性检查)、选择数据存储技术(如关系、分层或索引存储技术)。
同时数据建模也支持逆向将数据表结构反向生成数据模型,同步表结构类型字段、默认值等。用户可以实现无需操作数据库即可调整表结构设计数据模型调整等功能,无需关注具体使用的数据库类型以及学习其特定的操作语法,支持可视化配置。
2. 表单建模
表单建模是平台的基石功能,表单建模功能可以分为表单控件、表单字段、表单属性三部分。它可以作为系统配置的独立入口也可以结合数据建模一起使用,通过操作各种各样的控件,间接操作数据库表字段,同时具备多数据源配置、控件默认值设置、控件属性配备等功能。
表单控件是指各类数据类型和方法的封装,每个控件有自己的属性和方法,系统提供的控件廊括基础、布局、高级、系统、流程五大类控件集。各类控件详情见图2。
1)基础控件,各类基础控件均可以设置默认值(无需用户输入,系统默认赋值并支持赋值)、设置控件隐藏、赋值、读写等表达式,用于实现控件联动计算(如根据生日计算年龄)、隐藏显示(如A控件变化导致B控件隐藏)、只读模式(如A控件变化,导致B控件只读不可编辑),并支持在控件旁嵌入功能操作按钮。
2)布局控件,通过布局控件,优化表单布局结构,使各类控件按照指定需求排列布局,允许设置高度,宽度等属性,使用表单标题、卡片、标签页、分割线、一行两列等一系列布局控件配合其他类型控件可完整搭配出用户所需表单。
3)系统控件,系统控件的存在可以弥补常规控件无法满足的功能,比如表单记录创建时间,表单记录修改时间等字段,在搭配这个表单的时候每条记录创建时间,后面记录数据被更新的时间,可以由系统记录下来,表单建模的时候只用拉出来,便可以将这些系统赋值的字段放置到表单中使用,并由系统来赋值,无需用户填充数据。
4)高级控件,如子表、关联表。A表引用B表的数据,如给学生表A中有一个字段是班主任,班主任表应从班主任表B中获取数据,用关联表单可以将B表作为A表的引用,即数据无需A表维护,但A表可以引用B表的数据用来关联展示。
5)流程控件,当表单引入业务流程以后,使用流程控件可以将流程相关属性作为控件引入表单使用,比如有一个请假表单,有请假发起、部门批准、副总批准、总经理批准四个步骤,如果现在有10个人发起请假流程,对每个人来说,请假表单里面的请假事件状态可能是不一样的,通过将流程控件与表单引擎深度结合,流程引擎中表单数据流程状态封装给到表单调用。
在确定业务所需表单以后,还可以设置整体表单的属性信息,比如设置表单的业务校验规则,增加表单的功能操作(除常规表单增删查改操作以外,还支持功能发起流程、赋值、弹出二次弹窗、调用微服务、跳转指定URL等操作),同时允许在表单中进行多表关联操作,比如设置第三方表为关联表单,外链其数据源作为控件数据源。通过控件配置和属性配置,将表单业务功能的实现从繁杂的代码编写简化成类似拖拉拽搭积木的形式实现。
3.列表建模
列表建模主要起到的作用是挂载表单,作为表单数据的查询、新增、展示入口,并允许批量操作,按照指定要求设置表单查询条件,设置列表需要展示的字段、设置各字段展示样式及点击操作、设置快速筛选栏,并支持隐藏部分查询条件、支持批量操作列表数据,支持数据权限管理(可以实现分级数据权限管理,同一份表单数据不同部门级别的人看到的数据不一致)。功能结构图如图3。
4. 流程建模
工作流引擎,根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、环节管理、参与者设置、环节操作设置等重要功能。可以关联表单引擎,用表单来驱动流程引擎,在流设计器中设置表单相关控件权限信息,给控件赋值等操作。同时支持会签操作,并行环节等操作。流程建模功能结构如图4所示。
5.报表建模
报表建模,强有力的辅助功能,可以帮助用户更方便、更高效地进行报表设计,可以从几个不同的相关表创建报表。除创建可打印报表之外,也可以将报表导出到 HTML 或文本文件中。
报表建模模块主要由如下几个部分组成:报表设计器、数据引擎,配置中心。由报表设计器搭建用户所需报表界面,由数据引擎负责链接各类数据源,提供数据。配置中心负责优化界面提供各类查询筛选条件,导出导入按钮等配置操作。三个模块协同工作模块用户各式各样的统计需求,同时支持图表两种设计模式。
报表建模使用JDBC跟数据库建立连接,可连接的关系型数据库包括:Oracle、SQLServer、MySQL、DB2、Ingres、Sybase、Derby、Informix、PostgreSQL等数据库。同时还可以连接非关系型数据库的数据资源其中包括EJB、Corba、Object、Soap、XML、XMLA、Text、Excel、SAP。同时还提供开放式的数据接口,用户可以扩展数据接口来导入各种数据。
建模器在建立数据源和数据查询的过程都是通过可视化的工具来完成的,可视化的界面可以轻松的帮助用户建立数据表之间的关联,完成数据查询条件的设定,所有界面中的设定,都会被自动的翻译成标准的SQL语言,这些标准的SQL语言被送到数据库端执行,快速的返回数据结果。
6.能力支撑
能力支撑模块隐藏在后端给各类功能提供支撑服务,支撑其他模块运行,提供各类隐性服务和能力支持。主要功能有如下几类:
1)消息同步即消息中间件,独立于各个系统,是一种能在各个分、子系统模块和平台运行,支持在任意架构的系统中各个组件之间进行通讯的协议实现组件,负责在各个分、子系统模块之间实时高效传递消息,是本系统中重要的负责核心信息交换的组件。MQ支持同步传输和异步传输,保证数据报文不重复、不丢失、同顺序。
消息中间件主要起到两个作用:第一,消息路由,消息路由管理着消息的传递,通过一定的配置项分发将消息分发到不同的消息队列中,起到指挥调度的作用。第二,消息传输,消息队列接收到消息路由的指令后,按照消息路由的指令,执行消息传输。
2)任务调度,是一种能独立于各个分、子系统模块和平台,各分子平台将需要调度的任务描述清楚在调度中心进行注册,定义执行频率和时机,由调度中心负责把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错。从而保证定时任务只在集群的某一个节点上执行,或者一个任务如何拆分为多个独立的任务项,由分布式的机器去分别执行, 统一管理众多的定时任务。
3)规则解析,从原理上来说规则引擎是一种推理引擎,它是根据已有的事实,从规则知识库中匹配规则,并处理存在冲突的规则,执行最后筛选通过的规则,接受数据输入,解释业务规则,并根据业务规则做出业务决策,使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。
4)消息推送,对于需要及时通知用户的业务,例如告警等,需要消息推送功能,保证通知的及时性。消息推送涉及到消息的发送和接收,既要能在后端中使用,也要能在前端和移动端使用。零代码系统的消息推送实现三种方式。第一种,轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。第二种,推送(Push)方式:移动终端先在服务器端注册并告知关注的消息主体,服务器获得相关的消息之后,根据主体主动推送给移动终端。第三种是常连接方式:移动终端与服务器端保持常连接,保证消息下发的及时性。
5)代码注入,平台提供丰富的代码注入接口,支持密文代码注入,提供前端解析引擎,代码注入机制的注入,可以大大的节省部署时间,省去服务启动时间,通常可以将一些轻量前端代码通过代码注入形式放置在前端,往往可以实现用户的无感升级。
7. 基础功能
基础功能主要是为了将一些通用性非常强的功能抽出,而不再单独耗费精力配置,是由平台标配提供的一些通用功能。主要包括如下几类功能:
1)组织权限,提供用户注册、用户分组、权限角色划分,包含各个功能的按钮级别的权限控制配置、用户的密码修改、用户属性信息修改。
2)日志管理,提供登录日志配置、可以根据用户的需求自定义设置所需登录系统的用户的属性信息,比如用户姓名、电话、职务、登录设备码、设备型号等等。也可以记录用户操作日志,比如操作了什么模块、调用了什么接口,请求了什么参数等等操作信息。
3)数据字典,用户可以将常用的数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。数据字典可以保留线性结构数据以及树形结构数据。比如常用的行政区划、人员性别等数据均可保存在字典中。
系统网络拓扑设计如下:
为了满足系统部署的快捷性,用户仅需要通过互联网或政务内网通过防火墙连接核心交换机,然后有交换机连接至服务器,在服务器内部通过VLAN划分了内部数据层和外部数据层(如数据库集群、消息中间件集群、转存器等内部数据都存放在内部数据层,通过内部数据接口形成的服务统一暴露给外部数据层,供外部访问),用于数据安全和外部服务的隔离,整体的系统网络架构是及简的,三台物理服务器内部通过万兆交换机互通数据,做集群备份,以达到对外提供高可用的整体服务。;零编码的应用软件快速构建系统网络拓扑设计如图5所示。
系统总体架构设计如下:
系统边界涉及四层架构,分别是数据层、业务逻辑层、服务层。数据层用于业务数据、管理数据、任务数据、用户数据、协议库数据、日志数据等数据的存储,业务逻辑层包括数据采集、消息中间件、数据转存、数据存储、数据服务生产、数据服务管理等,服务层主要是统一的服务管理框架对外提供数据调用服务接口。系统设计的总体架构图如图6所示。
系统架构分为数据支撑层、技术支撑层、业务支撑层,层与层之间界面划分清晰以实现软件解耦,将不同的业务逻辑控制在不同的组件内,同时通过Docker进行组件封装,实现系统高内聚低耦合,很大程度上提高了系统的灵活性。下面具体介绍每一层的架构:
1. 数据支撑层
数据层提供基础的数据存储服务,数据类型包含的业务数据、管理数据、任务数据、用户信息数据、协议库数据和操作日志等,根据其不同的数据属性,通过系统设计不同数据库来存储。
2. 技术支撑层
技术支撑层是整个系统的底层逻辑运转层,技术支撑层为业务支撑平台提供各种应用支撑,包括各种中间件、开发框架、EAI,包括认证授权协议、接口开放、缓存服务、安全控制服务、服务注册、配置中心、消息总线、规则解析引擎、消息同步、消息队列、,消息的订阅和监控功能;数据转存包括数据的格式转换、数据写入功能;数据存储包括数据分片、负载均衡、淘汰机制、数据组合、数据备份功能;服务管理包括6项基本服务的生产、服务注册与发布功能。
3. 业务支撑层
业务支撑层是面向使用人员,由系统封装出来的各类工具,在技术支撑层上封装的各类功能,基于用户、组织、权限、表单、数据、流程、功能、报表、安全等功能引擎构建,提供可视化的建模工具、二次开发入口等工具,结合业务支撑底层的各引擎进行灵活个性的功能组合与配置开发,平台独有的双平台支撑技术,即APP和PC两层支撑。
4. 应用展示层
应用展示层,负责呈现对配置内容的解析,是系统对外提供的统一的可视化服务,给前端提供框架化的服务调用接口,从而降低系统外部接口的耦合性。
系统部署设计如下:
根据系统功能模块的设计,系统包含插件式微服务框架模块、分布式消息中间件模块,数据存储模块,服务应用与管理模块4个模块,为了极大程度的降低部署周期,减少部署工作量,设计上采用极简单的部署模式,所以各个模块均放在一个物理服务器中;同时,为了满足系统的高可用性,需要设置主从备份的冗余模式,以三台服务器组成一个集群,将相同的模块分布在其他两台的服务器中,同时,三台物理服务器内部通过万兆交换机实时互换数据,做到内部数据的实时互通,当某个服务器出现故障时,其他服务器依旧可以满足业务正常运转。系统部署图如图7所示。
数据库设计如下:
数据库采取集中式存储的解决方案,同时对于上层查询,数据库还有具有良好的查询支撑能力,通过对当前市面上常用的各种数据库进行分析,我们在数据库设计上主要考虑以下指标:
持久性:不能丢失数据;
高可用性:支持数据库集群,再出现有节点故障时仍能够使用;
海量数据高数处理:对于百亿级别的数据处理时依然能够保证高性能;
数据存储多样性:可以存储不同的类型数据;
空间数据支持性:对空间数据提供较好的支撑;
易查询性:对于不同的查询支持较好;
可扩展性:可以横向扩展。
通过对关系型数据库的对比选型,确定PostgreSQL为本系统的关系数据库,目前选择主要是因为PostgreSQL支持存储JSON格式数据,并且能够对JSON数据进行索引;同时其PostGIS模块对于位置、空间等信息的存储和处理更有优势;并且更适合处理海量数据的处理。综上所述,我们加入Postgresql作为关系型数据库,提供强关联型数据和复杂的事务处理。同时选取Redis是内存型数据库,数据存在内存中,读写快,能够更好的支持高并发情景下的数据存取,可以支撑更大的查询吞吐量。通过对使用场景分析,本系统设计PostgreSQL与Redis的组合来满足数据存储和查询的需求。
本发明提供的一种零编码的应用软件快速构建系统,具有以下特点:
1、 统一运营环境和通用能力、工具服务,让开发好似“搭积木”,区别于传统的代码开发方式,实现零编码或极微量编码即可搭建一个业务应用系统。
针对城市政府各部门、各行业系统运行环境多样,接口繁多且不统一导致建设效率低、周期长的现状,零编码的应用软件快速构建系统通过提供统一的管理维护、统一的开发平台、统一的服务标准从而构建统一运行环境(相当于积木的底板),并提供应用开发通用工具和技术框架、共性能力、应用中间件(相当于各类标准积木)。让项目人员在明确用户需求后,在多维度、标准化大数据的基础上,只需要对各类共性能力拖拽实现个性化的组合性搭建,让应用开发真正像“搭积木”一样简单,实现快速、高效、低成本交付。搭建步骤如下图8所示。
2、可读性更强的函数表达式,用可读性更强类似excel函数的用法,统一前后端各类计算方法,可解决大多数业务场景需求。
在软件搭建过程中,如何让晦涩的开发语言变成清晰明了的用于语言,是零代码构建应用系统的关键,也是实现高效率、底成本的重要因素。以往在开发过程中面对各种各样的场景及需求,需要使用开发语言才能实现其逻辑,使用函数表达式后,配置人员可以像使用excel函数一样配置各类函数公式,如图9所示。公式的灵活应用,对于数据收集有很多作用:(1)可以提高填写表单的效率,将一些数据自动计算出来,减少需要填写的内容,如,分数在90以上时等级为A,否则为B。那么在输入分数之后,等级是A或B就能根据公式自动判断出来。(2)可以减少错误如,总工资=基础工资+奖金-扣款。那么在基础工资、奖金、扣款输入之后,总工资就能根据公式自动计算出来,避免手工计算出错。
本发明提供的一种零编码的应用软件快速构建系统,具有以下优点:
1、无需大量进行编码,通过“拖拉拽”的配置进行系统开发工作,降低开发难度。
2、降低系统开发门槛、节省成本。
3、快速应对客户需求变更,实现所配即所得,节省项目建设时间。
本发明提供的一种零编码的应用软件快速构建系统,经济效益在于,在定制化软件开发初期,经常会出现甲方希望提前看到演示系统的情况,甲方基于演示系统对项目立项阶段的工作进行推进,所以如何快速搭建前期演示系统成为项目前期运作的一个重要环节,零代码的应用软件构建系统能够提供快速的平台搭建、流程搭建、报表搭建、集成登录以及系统集成和展示能力,对项目前期的快速落地有一定的促进作用。另一方面,在项目具体实施过程中,根据任务模块数量和复杂程度,往往需要配备一定比例的代码开发人员,即使有一些功能类似的增删查改模块,也会造成大量的重复性工作,零代码的应用软件构建系统能够提供一种快速的应用搭建方式,对常规页页面使用类似搭积木的方式既可以完成数据存储和计算展示,并且由于提供大量的函数表达式,降低项目开发人员门槛,提升效率,节约了繁杂的代码编写过程时间,在后期维护过程中,面对需求变更,也只需要相关配置人员简单调整配置即可,比如增加表单字段,增加功能按钮、增加功能界面,这些都可以很大程度的降低了系统后期运维成本。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种零编码的应用软件快速构建系统,其特征在于,包括以下模块:
数据建模,用于对海量数据表类型进行分类、构建、管理与同步;
表单建模,实现将用户需求表格转换为所见所得的表单,通过各类控件及其属性配置实现业务需求;
列表建模,将设计好的表单挂载到列表,配置其数据权限、查询条件、展示条件,实现列表数据查询;
流程建模,实现流程模型创建,管理员提前设置流程的节点、负责人和数据流经的途径,一旦数据提交以后,就会进入流程、按照既定的流程进行流转;
报表引擎,在表单中收集得到的数据,通过明细表、图表透视查看表单数据的明细和汇总;通过柱形、折线、图形、雷达图对数据进行处理,显示出数据的发展趋势、分类对比结果;
能力支撑,提供各类底层支撑能力以及接口;
基础功能,提供基本的系统配置功能,组织权限功能,用于分配用户角色,功能操作权限、用户维护;日志管理,提供登录日志、操作日志配置,定制关注的日志字段信息;字段管理,是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目;
所述表单建模中的属性配置包括校验条件、功能操作、业务触发操作;
所述能力支撑包括消息中间件、分布式任务调度、规则解析引擎、消息推送中心、代码注入,消息中间件实现系统之间的解耦,数据同步,异步处理;分布式任务调度通过把定时任务通过集群方式进行管理调度,并采用分布式部署,保证系统的高可用,提高容错率;规则解析引擎,支持将各类可读性更高的函数解析成可执行的代码语句在后端执行,实现各类表达式解析;消息推送中心,负责推送各类消息推送服务;代码注入,实现将过度个性化业务的代码直接解析,通过代码加密注入,再解密输出的形式,实现在线升级;
所述基础功能的数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。
2.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:数据建模指的是对各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式;将经过系统分析后抽象出来的概念模型转化为物理模型后,建立数据库实体以及各实体之间关系;数据建模的具体流程包括:确定数据及其相关过程、定义数据、确保数据完整性、定义操作过程、选择数据存储技术,定义数据包括:如数据类型、大小、默认值,确保数据完整性包括使用业务规则和验证检查,定义操作过程包括备份及安全性检查,选择数据存储技术包括关系、分层或索引存储技术;同时,数据建模也支持逆向将数据表结构反向生成数据模型,同步表结构类型字段、默认值。
3.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:表单建模主要分为表单控件、表单字段、表单属性三部分,作为系统配置的独立入口,结合数据建模一起使用,通过操作各种各样的控件,间接操作数据库表字段,同时具备多数据源配置、控件默认值设置、控件属性配备功能;表单控件是指各类数据类型和方法的封装,每个控件有自己的属性和方法,系统提供的控件包括基础控件、布局控件、高级控件、系统控件、流程控件五大类控件集。
4.根据权利要求3所述的零编码的应用软件快速构建系统,其特征在于:
基础控件,各类基础控件均能够设置默认值、设置表达式,用于实现控件联动计算、隐藏显示、只读模式,并支持在控件旁嵌入功能操作按钮;
布局控件,通过布局控件,优化表单布局结构,使各类控件按照指定需求排列布局,允许设置高度,宽度属性,使用一系列布局控件配合其他类型控件能够完整搭配出用户所需表单;
系统控件,系统控件用于弥补常规控件无法满足的功能,包括:表单记录创建时间,表单记录修改时间字段,在搭配这个表单的时候每条记录创建时间,后面记录数据被更新的时间,由系统记录下来,表单建模的时候只用拉出来,便能够将这些系统赋值的字段放置到表单中使用,并由系统来赋值,无需用户填充数据;
高级控件,包括子表、关联表,A表引用B表的数据,用关联表单将B表作为A表的引用,即数据无需A表维护,但A表能够引用B表的数据用来关联展示;
流程控件,当表单引入业务流程以后,使用流程控件将流程相关属性作为控件引入表单使用,通过将流程控件与表单引擎深度结合,流程引擎中表单数据流程状态封装给到表单调用。
5.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:列表建模主要起到的作用是挂载表单,作为表单数据的查询、新增、展示入口,并允许批量操作,按照指定要求设置表单查询条件,设置列表需要展示的字段、设置各字段展示样式及点击操作、设置快速筛选栏,并支持隐藏部分查询条件、支持批量操作列表数据,支持数据权限管理。
6.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:流程建模包括工作流引擎,根据角色、分工和条件的不同决定信息传递路由、内容等级,工作流引擎包括流程的节点管理、流向管理、环节管理、参与者设置、环节操作设置,关联表单引擎,用表单来驱动流程引擎,在流设计器中设置表单相关控件权限信息,给控件赋值,同时支持会签操作,并行环节。
7.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:
报表建模,提供强有力的辅助功能,能够帮助用户更方便、更高效地进行报表设计,能够从几个不同的相关表创建报表,除创建可打印报表之外,也能够将报表导出到 HTML 或文本文件中;
报表建模主要由如下几个部分组成:报表设计器、数据引擎,配置中心;由报表设计器搭建用户所需报表界面,由数据引擎负责链接各类数据源,提供数据;配置中心负责优化界面提供各类查询筛选条件,导出导入配置操作;三个模块协同工作模块用户各式各样的统计需求,同时支持图表两种设计模式;
报表建模使用JDBC跟数据库建立连接,能够连接的关系型数据库包括:Oracle、SQLServer、MySQL、DB2、Ingres、Sybase、Derby、Informix、PostgreSQL;同时还能够连接非关系型数据库的数据资源其中包括EJB、Corba、Object、Soap、XML、XMLA、Text、Excel、SAP,同时还提供开放式的数据接口,用户能够扩展数据接口来导入各种数据;
建模器在建立数据源和数据查询的过程都是通过可视化的工具来完成的,可视化的界面能够轻松的帮助用户建立数据表之间的关联,完成数据查询条件的设定,所有界面中的设定,都会被自动的翻译成标准的SQL语言,这些标准的SQL语言被送到数据库端执行,快速的返回数据结果。
8.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:
能力支撑隐藏在后端给各类功能提供支撑服务,支撑其他模块运行,提供各类隐性服务和能力支持,主要功能有如下几类:
1)消息同步即消息中间件,独立于各个系统,是一种能在各个分、子系统模块和平台运行,支持在任意架构的系统中各个组件之间进行通讯的协议实现组件,负责在各个分、子系统模块之间实时高效传递消息,是本系统中重要的负责核心信息交换的组件,MQ支持同步传输和异步传输,保证数据报文不重复、不丢失、同顺序;
消息中间件主要起到两个作用:第一,消息路由,消息路由管理着消息的传递,通过配置项分发将消息分发到不同的消息队列中,起到指挥调度的作用;第二,消息传输,消息队列接收到消息路由的指令后,按照消息路由的指令,执行消息传输;
2)任务调度,是一种能独立于各个分、子系统模块和平台,各分子平台将需要调度的任务描述清楚在调度中心进行注册,定义执行频率和时机,由调度中心负责把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错,从而保证定时任务只在集群的某一个节点上执行,或者一个任务如何拆分为多个独立的任务项,由分布式的机器去分别执行, 统一管理众多的定时任务;
3)规则解析,从原理上来说规则引擎是一种推理引擎,它是根据已有的事实,从规则知识库中匹配规则,并处理存在冲突的规则,执行最后筛选通过的规则,接受数据输入,解释业务规则,并根据业务规则做出业务决策,使用规则引擎能够通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本;
4)消息推送,对于需要及时通知用户的业务,需要消息推送功能,保证通知的及时性;消息推送涉及到消息的发送和接收,既要能在后端中使用,也要能在前端和移动端使用;零代码系统的消息推送实现三种方式;第一种,轮询方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息;第二种,推送方式:移动终端先在服务器端注册并告知关注的消息主体,服务器获得相关的消息之后,根据主体主动推送给移动终端;第三种是常连接方式:移动终端与服务器端保持常连接,保证消息下发的及时性;
5)代码注入,平台提供丰富的代码注入接口,支持密文代码注入,提供前端解析引擎,代码注入机制的注入,能够节省部署时间,省去服务启动时间,将一些轻量前端代码通过代码注入形式放置在前端,实现用户的无感升级。
9.根据权利要求1所述的零编码的应用软件快速构建系统,其特征在于:基础功能主要是为了将一些通用性非常强的功能抽出,而不再单独耗费精力配置,是由平台标配提供的一些通用功能,主要包括如下几类功能:
1)组织权限,提供用户注册、用户分组、权限角色划分,包含各个功能的按钮级别的权限控制配置、用户的密码修改、用户属性信息修改;
2)日志管理,提供登录日志配置、能够根据用户的需求自定义设置所需登录系统的用户的属性信息,也能够记录用户操作日志;
3)数据字典,用户将常用的数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目;数据字典保留线性结构数据以及树形结构数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190567.9A CN110989983B (zh) | 2019-11-28 | 2019-11-28 | 一种零编码的应用软件快速构建系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190567.9A CN110989983B (zh) | 2019-11-28 | 2019-11-28 | 一种零编码的应用软件快速构建系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110989983A CN110989983A (zh) | 2020-04-10 |
CN110989983B true CN110989983B (zh) | 2022-11-29 |
Family
ID=70087783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911190567.9A Active CN110989983B (zh) | 2019-11-28 | 2019-11-28 | 一种零编码的应用软件快速构建系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110989983B (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580790B (zh) * | 2020-04-22 | 2023-07-21 | 电子科技大学 | 一种用于软件化雷达中间件的构建方法 |
WO2021217657A1 (zh) * | 2020-04-30 | 2021-11-04 | 深圳中砼物联网科技有限公司 | 快速开发软件的方法、计算机设备、及存储介质 |
CN111625218B (zh) * | 2020-05-14 | 2024-01-09 | 中电工业互联网有限公司 | 一种自定义库开发的大数据处理方法及系统 |
CN111611270A (zh) * | 2020-05-26 | 2020-09-01 | 深圳博沃智慧科技有限公司 | 一种表单设计与运行处理方法和系统 |
CN111596902B (zh) * | 2020-05-26 | 2023-03-28 | 牛津(海南)区块链研究院有限公司 | 一种前后端开发框架的搭建方法、装置、设备及存储介质 |
CN111708517A (zh) * | 2020-06-01 | 2020-09-25 | 昆山夏洛特智能科技有限公司 | 一种基于图形化模式技术的定制化软件系统 |
CN111831282A (zh) * | 2020-06-30 | 2020-10-27 | 苏州宏软信息技术有限公司 | 基于vue技术的低代码开发表单方法和系统 |
CN111898357A (zh) * | 2020-07-23 | 2020-11-06 | 海南中金德航科技股份有限公司 | 一种智能报表系统 |
CN112099780B (zh) * | 2020-07-31 | 2024-04-12 | 浪潮通用软件有限公司 | 一种基于erp系统的可视化应用开发方法、设备及介质 |
CN111897799A (zh) * | 2020-08-04 | 2020-11-06 | 黄河水利委员会信息中心 | 一种基于流程引擎的水文模型服务系统 |
CN112015412A (zh) * | 2020-08-21 | 2020-12-01 | 北京金和网络股份有限公司 | 基于表单引擎生成业务模型的装置及方法 |
CN112214202B (zh) * | 2020-09-27 | 2023-12-15 | 西思艾(北京)软件有限公司 | 一种无须写代码的手机程序开发系统 |
CN112256351B (zh) * | 2020-10-26 | 2023-11-17 | 卫宁健康科技集团股份有限公司 | Feign组件的实现方法、微服务调用方法及装置 |
CN113703720A (zh) * | 2020-10-30 | 2021-11-26 | 浙江十进制网络有限公司 | 一种编程平台、编程方法、计算机设备及可读存储介质 |
CN112527250A (zh) * | 2020-11-18 | 2021-03-19 | 温州市易能软件有限公司 | 一种基于可视化的软件开发平台 |
CN112464279A (zh) * | 2020-11-26 | 2021-03-09 | 北京宏景世纪软件股份有限公司 | 基于业务驱动的表单设计实现方法和系统 |
CN112667249A (zh) * | 2020-12-18 | 2021-04-16 | 易久批信息技术有限公司 | 基于Activiti工作流引强软件发布流程方法 |
CN112685017A (zh) * | 2020-12-31 | 2021-04-20 | 江苏元图信息技术有限公司 | 一种面向移动互联网的工作流引擎 |
CN112685015A (zh) * | 2020-12-31 | 2021-04-20 | 魔元术(苏州)信息科技有限公司 | 一种低代码新零售敏捷数字化开发系统 |
CN112632332B (zh) * | 2021-01-04 | 2024-08-02 | 恩亿科(北京)数据科技有限公司 | 一种xml文件可配置化校验方法、系统、设备及存储介质 |
CN112882803B (zh) * | 2021-03-08 | 2024-05-14 | 万维云网(北京)数据科技有限公司 | 一种数据处理方法及系统 |
CN113110922B (zh) * | 2021-03-08 | 2024-04-12 | 北京世纪安图数码科技发展有限责任公司 | 一种基于Quartz与多线程的不动产登记方法 |
CN113051269A (zh) * | 2021-03-22 | 2021-06-29 | 中国工商银行股份有限公司 | 表单配置方法及装置 |
CN113238731B (zh) * | 2021-05-11 | 2024-03-22 | 广州以大计算机科技有限公司 | 一种Ebeit开发平台 |
CN113253985A (zh) * | 2021-05-28 | 2021-08-13 | 上海华力微电子有限公司 | 管理膜层厚度测量程式的方法 |
CN113535128A (zh) * | 2021-06-02 | 2021-10-22 | 北京道亨软件股份有限公司 | 一种流程引擎的设计方法 |
TWI766757B (zh) * | 2021-07-14 | 2022-06-01 | 中華電信股份有限公司 | 一種提升常用資料存取效能之系統、方法及其電腦可讀媒介 |
CN113515276B (zh) * | 2021-07-20 | 2024-02-02 | 北京金和网络股份有限公司 | 一种基于表单引擎平台生成积分业务的方法及装置 |
CN113268227A (zh) * | 2021-07-21 | 2021-08-17 | 武汉万云网络科技有限公司 | 一种零代码可视化的软件开发平台及开发方法 |
CN113515269B (zh) * | 2021-09-13 | 2021-12-31 | 腾讯科技(深圳)有限公司 | 应用包的处理方法、装置、计算机设备和存储介质 |
CN114356300B (zh) * | 2021-09-17 | 2022-11-25 | 北京能科瑞元数字技术有限公司 | 基于行业数字化的智能体构建开发方法 |
CN113805885B (zh) * | 2021-09-18 | 2023-06-02 | 建信金融科技有限责任公司 | 基于工作流引擎的流程式管理系统前端构建系统及方法 |
CN113867713B (zh) * | 2021-09-24 | 2024-10-11 | 安徽杰予信息科技有限公司 | 一种基于零代码开发的可视生产力工具平台 |
CN113780879A (zh) * | 2021-09-26 | 2021-12-10 | 北京航空航天大学 | 基于Redis集群的海量遥测数据异常监视平台 |
CN113849178A (zh) * | 2021-09-28 | 2021-12-28 | 航天科工网络信息发展有限公司 | 基于表单驱动结合动态规则引擎的web系统开发框架 |
CN113805853A (zh) * | 2021-09-28 | 2021-12-17 | 重庆允成互联网科技有限公司 | 一种基于工业互联网的软件产品开发系统 |
CN114020250A (zh) * | 2021-10-09 | 2022-02-08 | 济南浪潮智投智能科技有限公司 | 基于aop的字典翻译实现方法、系统、电子设备及存储介质 |
CN114020257A (zh) * | 2021-11-10 | 2022-02-08 | 北京字节跳动网络技术有限公司 | 一种编码辅助方法、装置、设备及存储介质 |
CN114003276A (zh) * | 2021-11-12 | 2022-02-01 | 广州青云直上信息科技有限公司 | 一种信创电脑零代码适配处理方法 |
CN113779444B (zh) * | 2021-11-12 | 2022-02-08 | 北京宇信科技集团股份有限公司 | 接口开发方法、零代码引擎和零代码数据接口开发系统 |
CN114371831A (zh) * | 2021-11-29 | 2022-04-19 | 上海速擎软件有限公司 | 一种实现系统高可配置性的软件开发平台 |
CN113849166B (zh) * | 2021-11-29 | 2022-02-18 | 广东青藤环境科技有限公司 | 智慧水环境积木式零代码开发平台 |
CN114185928A (zh) * | 2021-12-20 | 2022-03-15 | 广州创际信息科技有限公司 | 通用接口对接系统、方法、设备及存储介质 |
CN114385121B (zh) * | 2022-01-13 | 2022-10-18 | 浙江工企信息技术股份有限公司 | 一种基于业务分层的软件设计建模方法及系统 |
CN114331391B (zh) * | 2022-03-09 | 2022-08-19 | 北京有生博大软件股份有限公司 | 基于全域状态更新的工作流同步更新方法及工作流同步更新系统 |
CN114780064B (zh) * | 2022-04-12 | 2024-04-16 | 四三九九网络股份有限公司 | 一种零代码平台的表单设计方法 |
CN114625360B (zh) * | 2022-05-16 | 2022-10-21 | 西安数道航空技术有限公司 | 一种无耦合数字化开发平台及系统 |
CN115098567B (zh) * | 2022-06-20 | 2024-04-12 | 上海纽酷信息科技有限公司 | 一种基于bi平台的低代码平台数据传输方法 |
CN115438050B (zh) * | 2022-11-07 | 2023-02-17 | 杭州兆林科技有限公司 | 一种分级低代码开发平台 |
CN115630086B (zh) * | 2022-12-22 | 2023-03-10 | 西安葡萄城软件有限公司 | 一种将Access应用转化为Web应用程序的方法 |
CN116048482B (zh) * | 2023-01-17 | 2023-09-19 | 成都曾自科技有限公司 | 基于api的编辑器功能自动扩展方法、装置及存储介质 |
CN116301795B (zh) * | 2023-01-28 | 2024-06-04 | 广西数字大脑智能科技有限责任公司 | 一种用于页面可视化配置及代码编写的开发平台 |
CN115857907B (zh) * | 2023-02-06 | 2023-05-23 | 卓望数码技术(深圳)有限公司 | 一种业务流动态装配系统及方法 |
CN116560723A (zh) * | 2023-07-10 | 2023-08-08 | 中国电子科技集团公司第十五研究所 | 零代码开发快速生成移动端数据采集软件的系统及方法 |
CN116594611B (zh) * | 2023-07-18 | 2023-10-27 | 浩鲸云计算科技股份有限公司 | 一种基于领域模型语言的零代码通用服务实现方法 |
CN117289921B (zh) * | 2023-09-07 | 2024-05-10 | 中通服网络信息技术有限公司 | 一种快速构建演示系统原型的方法及系统 |
CN117608536B (zh) * | 2023-12-20 | 2024-05-28 | 杭州明佑电子有限公司 | 缺口数据在线模版定制补录系统及其方法 |
CN118012952B (zh) * | 2024-02-02 | 2024-09-24 | 广州今之港教育咨询有限公司 | 一种数据处理方法和装置、电子设备及存储介质 |
CN118277389B (zh) * | 2024-05-31 | 2024-08-13 | 四川省交通勘察设计研究院有限公司 | 一种服务于外业调查的表单设计与报表输出的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765510A (zh) * | 2011-08-24 | 2014-04-30 | 索尼公司 | 编码装置和方法、解码装置和方法以及程序 |
CN104298916A (zh) * | 2013-07-17 | 2015-01-21 | 财团法人工业技术研究院 | 应用程序管理方法、应用程序管理系统与使用者装置 |
CN105956830A (zh) * | 2016-05-11 | 2016-09-21 | 中煤电气有限公司 | 一种基于j2ee框架的企业级可视化应用开发平台 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470601A (zh) * | 2007-12-26 | 2009-07-01 | 福建正扬信息技术开发有限公司 | 一种零编码生成应用软件的方法及生成平台 |
US20120227044A1 (en) * | 2011-03-03 | 2012-09-06 | Tata Consultancy Services Limited | Automated workflow manager |
CN103136612A (zh) * | 2011-11-29 | 2013-06-05 | 神州数码信息系统有限公司 | 一种零编码构件化流程业务的开发方法 |
US9146712B2 (en) * | 2013-09-18 | 2015-09-29 | Vmware, Inc. | Extensible code auto-fix framework based on XML query languages |
WO2015092519A1 (en) * | 2013-12-16 | 2015-06-25 | Kronosis Hyper Technologies Private Limited | Systems and methods for developing application programs |
CN105204872B (zh) * | 2015-11-10 | 2018-10-19 | 中国建设银行股份有限公司 | 一种录入页面生成方法和装置 |
CN107193545B (zh) * | 2017-04-07 | 2020-07-10 | 广东省科技基础条件平台中心 | 一种面向构件的多语言协同开发装置、方法与系统 |
PL3718000T3 (pl) * | 2017-12-03 | 2024-02-05 | Thomas Stachura | Tworzenie aplikacji programowej w oparciu o arkusz kalkulacyjny |
CN109254759A (zh) * | 2018-08-31 | 2019-01-22 | 重庆戴昂科技有限公司 | 低代码平台化业务流程配置系统 |
CN109492040B (zh) * | 2018-11-06 | 2021-12-28 | 深圳航天智慧城市系统技术研究院有限公司 | 一种适用于数据中心海量短报文数据处理的系统 |
CN110069246A (zh) * | 2019-03-28 | 2019-07-30 | 北京众智益成科技有限公司 | 一种Java Web应用快速开发的平台系统及其应用 |
-
2019
- 2019-11-28 CN CN201911190567.9A patent/CN110989983B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103765510A (zh) * | 2011-08-24 | 2014-04-30 | 索尼公司 | 编码装置和方法、解码装置和方法以及程序 |
CN104298916A (zh) * | 2013-07-17 | 2015-01-21 | 财团法人工业技术研究院 | 应用程序管理方法、应用程序管理系统与使用者装置 |
CN105956830A (zh) * | 2016-05-11 | 2016-09-21 | 中煤电气有限公司 | 一种基于j2ee框架的企业级可视化应用开发平台 |
Non-Patent Citations (1)
Title |
---|
董云卫等;一种面向方面的软件体系结构;《微机发展》;20040610;第14卷(第6期);61-63+67 * |
Also Published As
Publication number | Publication date |
---|---|
CN110989983A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110989983B (zh) | 一种零编码的应用软件快速构建系统 | |
CN107193545B (zh) | 一种面向构件的多语言协同开发装置、方法与系统 | |
CN104573115B (zh) | 支持多类型数据库操作的集成接口的实现方法及系统 | |
CN104954453B (zh) | 基于云计算的数据挖掘rest服务平台 | |
CN106022007B (zh) | 面向生物组学大数据计算的云平台系统及方法 | |
US9588743B2 (en) | Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions | |
CN100476819C (zh) | 一种基于Web的数据挖掘系统及其控制方法 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN113176875A (zh) | 一种基于微服务的资源共享服务平台架构 | |
CN101821710A (zh) | 用于工作流生成、调度和/或执行的系统、方法和图形用户界面 | |
CN110069246A (zh) | 一种Java Web应用快速开发的平台系统及其应用 | |
CN109194762B (zh) | 基于ssh的土壤信息网络发布系统及方法 | |
CN107103448A (zh) | 基于工作流的数据集成系统 | |
CN106528169B (zh) | 一种基于AnGo动态演化模型的Web系统开发可复用方法 | |
CN113849178A (zh) | 基于表单驱动结合动态规则引擎的web系统开发框架 | |
US11163586B1 (en) | Automated configuration of application program instance | |
US20120089931A1 (en) | Lightweight operation automation based on gui | |
Ellis et al. | Computer science and office information systems | |
CN109241054A (zh) | 一种多模型数据库系统、实现方法以及服务器 | |
CN106775752A (zh) | 基于业务流程建模的林业信息化平台建设方法和林业信息化平台 | |
US20120166977A1 (en) | User programming access to data model in user interface design | |
CN108829879A (zh) | 一种充电桩数据监控方法 | |
CN102193958A (zh) | 基于互联网的空间决策支持系统的实现方法 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
Hu et al. | Application of SalesForce Platform in Online Teaching in Colleges and Universities under Epidemic Situation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |