CN109597814B - 一种后台管理信息系统的在线快速交付系统 - Google Patents
一种后台管理信息系统的在线快速交付系统 Download PDFInfo
- Publication number
- CN109597814B CN109597814B CN201811489087.8A CN201811489087A CN109597814B CN 109597814 B CN109597814 B CN 109597814B CN 201811489087 A CN201811489087 A CN 201811489087A CN 109597814 B CN109597814 B CN 109597814B
- Authority
- CN
- China
- Prior art keywords
- plug
- interface
- data
- user
- configuration
- 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
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种后台管理信息系统的在线快速交付系统,该系统包括系统基础框架、业务服务配置单元、外部数据源、数据标准化单元、表单引擎、界面渲染引擎、功能增强单元和插件扩展单元。本系统将线下开发过程完全线上配置化,所有需求的变更直接线上配置体现,可以大幅度缩短用户需求到上线的周期,甚至可以用户自行调整,更为灵活;通过引入各类脚本语言和提供大量的辅助工具,让开发人员可以基于线上对表单的各个环节进行控制,对于某些特殊需求还可以通过动态装载插件扩展系统平台功能,完全线上的开发和配置结合,完美解决配置类系统平台不够灵活和开发类系统周期长的问题。
Description
技术领域
本发明涉及系统开发技术领域,特别是涉及一种后台管理信息系统的在线快速交付系统。
背景技术
后台管理信息系统(MIS)是企业信息化管理必备工具,在实际工作场景中,针对各个不同企业管理方法和理念的不同、所处发展阶段的不同,企业会定制化各类不同的MIS系统以适应本企业发展,因此针对这类应用,市场衍生出了各式各样的产品,主要分为三类:开发定制类、配置类和混合类。
开发定制类是指按照企业需求通过开发方式对需求进行交付,最终上线的类型;此类产品可定制程度非常高,但也存在以下缺点:
开发周期长:从需求探索到原型设计一直到开发和上线,历经整个软件生命周期,时间跨度大,对企业而言宝贵的时间资源没有得到充分重视;
交付上线风险大:随着定制化程度的上升,以及开发方能力的波动,开发环境和生产环境的差异等等原因,实际交付上线的产物和实际并不能很好保证;
稳定性差:全新开发出来的产品,未经过完整测试和市场校验,从稳定性而言并不能达到最佳效果;
维护成本高:针对每一家企业的技术架构不同,因此运维过程需要有专业的人员进行;
需求变更响应慢:任何需求的变更都需要重走一次需求到开发上线流程,周期长,同时受开发资源限制,甚至有时不能及时交付需求;
开发成本高:任何需求都需要通过专业的开发人员进行设计研发,成本非常高。
经过一段时间诸多项目沉淀之后,一些企业逐步形成了具备固定技术架构、能通过配置快速实现功能交付的框架。对比开发类项目,配置类具备周期短成本低等优点,但也存在以下缺点:
模式固定:框架已经形成了固定的技术沉淀,为了快速配置也牺牲了部分灵活性,因此仅能搭建部分功能;
扩展能力弱:对于框架不支持的能力,扩展成本高。
配置类型和开发类型的优缺点互补形成了新的混合类开发,采用线上或线下的配置方式完成主体功能,并通过开发来实现灵活的功能。混合类模式采用折中的方案,在纯开发和纯配置间取得一个平衡点,但同时也导致两者的缺点都会出现在其中。
因此,如何实现后台管理信息系统的在线快速交付成为本领域亟待解决的问题。
发明内容
本发明的目的是提供一种后台管理信息系统的在线快速交付系统,以解决已有技术交付周期长、配置类系统平台不灵活且开发成本高的问题。
为实现上述目的,本发明提供了一种后台管理信息系统的在线快速交付系统,所述系统包括:
系统基础框架,包括用户管理、角色管理、菜单管理、组织管理、权限管理和基础数据库;所述权限管理用于组织机构、用户、角色、菜单、控件和数据进行权限设置和权限管理;所述基础数据库用于存储后台管理信息系统的配置数据、渲染或者具体业务逻辑处理数据以及部分由所述后台管理信息系统提供的基础信息数据;
业务服务配置单元,包括站点配置和字典配置;所述站点配置用来存储业务服务的具体配置,并在系统运作时影响展现效果;所述字典配置用于存储固定的、稳定的字典数据,并用于表单展现中的字典类型的字段的转换;
外部数据源,包括多种外部数据源,所述多种外部数据源支持不同数据库引擎,所述多种外部数据源用于操作不同表单;
数据标准化单元,用于提供数据标准化规则,所述数据标准化规则用于表单配置和界面渲染;
表单引擎,包括导入表单、SQL表单和WebService表单;所述导入表单是将数据库中指定的数据表转化为所述表单配置的工具;所述SQL表单提供将SQL转化为所述表单配置的工具;所述WebService表单是将WebService接口当做数据源,并根据接口结果生成所述表单配置的工具;所述表单引擎用于根据所述数据标准化规则生成所述表单配置;
界面渲染引擎,包括多种渲染引擎类型、多种界面模板,用于对业务服务数据、所述表单配置和所述界面模板依据所述数据标准化规则进行界面渲染,得到渲染后的实际界面;
功能增强单元,用于在所述系统的原有功能上设置增删改埋点,通过所述增删改埋点对表单加入增强功能处理逻辑,实现SQL增强、Java增强和JS增强;
插件扩展单元,用于根据用户操作业务需求选择性安装所需种类插件已完成管理后的表单交付。
可选的,所述基础数据库采用MySQL数据库;所述外部数据源通过建立外部数据源表记录连接第三方数据源的连接信息,在首次访问第三方数据源时初始化连接,并使用Druid进行连接管理;所述外部数据源支持的数据库引擎包括MySQL、PostgreSQL、SQLServer和MongoDB;所述外部数据源还通过webservice接口与第三方数据源连接,所述webservice接口用于扩展外部数据源,所述webservice接口将接口转换为表单,通过表单形式展现。
可选的,所述权限管理对所述控件的权限设置和权限管理为对菜单页面配置jQuery框架的过滤器,界面渲染时在前端采用所述jQuery框架对所述过滤器结果进行隐藏,实现所述控件权限处理;并采用控件权限表和菜单控件表记录所述控件的权限。
所述权限管理对所述数据的权限设置和权限管理为在所述基础数据库中存储菜单-数据过滤条件表和角色-数据过滤条件关系表,通过数据权限过滤器根据用户访问数据读取对应的菜单-数据过滤条件表和角色-数据过滤条件关系表中的过滤条件并组装到实际查询的结构化查询语言中,实现数据过滤。
可选的,所述导入表单支持选择不同的数据源,所述导入表单根据数据表的字段生成对应的表单配置,不同的字段类型会采用不同的界面控件,并提供增删改查的功能;所述数据源包括所述外部数据源和/或基础数据库中的数据源;
所述SQL表单根据用户选择的所述数据源后编写结构化查询语言作为表单数据来源,根据SQL查询结果字段生成表单配置,并在渲染时结合SQL查询结果转化为表单;所述SQL表单通过所述SQL增强或所述Java增强提供增删改的功能;
所述WebService表单用于将用户通过输入接口地址和预定义输入输出格式的输入输出数据转化为表单配置信息,通过调整表单的具体配置项,生成表单配置。
可选的,所述界面渲染引擎支持不同的渲染引擎切换;所述渲染引擎包括Almonds引擎、Freemarker模板引擎和龙猫引擎;
所述Almonds引擎和所述Freemarker模板引擎是使用预定义模板渲染页面内容;
所述龙猫引擎是通过在线拖拽进行搭建积木方式实现界面渲染。
可选的,所述SQL增强是指通过编写结构化查询语言方式对所述界面渲染引擎生成的界面的功能进行增强;使用所述SQL增强时,用户在所述SQL增强的功能界面中选择数据源,通过使用模板变量的方式应用前端回传参数,而SQL增强中的编写的结构化查询语言将会在埋点触发时逐条执行;所述数据源包括所述外部数据源和/或基础数据库中转变成的外部数据源
所述Java增强通过埋点方式在系统处理过程中关键点进行埋点,用户在表单中填写代码,并在表单执行时运行代码;所述Java增强采用Nashorn引擎作为脚本引擎,由用户编写JavaScript脚本,并允许用户调用预定义开放方法,或直接调用系统实现的Java代码,实现业务逻辑定义和实现;
所述JS增强提供用户增强界面前端能力的增强功能,由用户按照规范编写JavaScript脚本,并在所述界面渲染引擎执行时将所述JavaScript脚本直接插入到界面代码中,直接影响界面的运行和渲染;所述JS增强能直接操作文档对象模型数据,或覆盖系统默认的部分处理逻辑,实现自定义能力
可选的,所述功能增强单元还包括初始化JS引擎,所述初始化JS引擎用于在所述Java增强对通用方法或对象进行定义,用于利用Nashorn引擎对所述Java增强功能进行封装。
可选的,所述系统还包括模板变量单元,所述模板变量单元用于实现为用户提供模板变量操作功能,应用于所述WebService表单的URL、所述SQL表单的结构化查询语言、所述SQL增强的代码和/或所述Java增强的部分代码中;带有模板变量的代码执行前,先由代码调用者使用模板变量替换对象对代码进行单独处理,将实际变量的值填入代码中,再触发执行;所述代码中的模板变量被替换为符合规则的环境变量、预定义变量或前端提交的参数。
可选的,所述插件扩展单元包括插件中心和插件市场,所述插件中心通过插件扩展接口与所述插件市场对接,所述插件中心读取所述插件市场中所有插件并以列表形式展现供用户选择;用户在所述插件中心中点击安装插件时,写入所述插件的具体信息至系统插件表,并将所述插件标记为“已安装”状态;用户通过点击插件设置按钮对已安装的所述插件进行设置,并在设置结束后所述进行设置的信息存储至所述系统插件表对应的字段;用户点击启用按钮后,所述系统插件表中所述插件的状态更改为启用,同时启动后台线程下载maven包到固定插件目录,然后通过插件加载器对所述插件内容进行装载,再启动插件包中Manifest文件中的插件装载方法对插件进行具体初始化,最终完成在各埋点中的注册,结束插件的启用过程,之后系统运行至所述插件实现的埋点时将自动使用到该插件;用户还能通过点击禁用按钮反注册所述插件的所有埋点。
可选的,所述插件扩展单元通过所述插件加载器将插件与插件、插件与系统之间的允许环境隔离。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
由于采用了以上的方案,可实现以下优点:
1、无需单独开发用户体系、菜单管理等相关功能,直接关注具体业务细节,焦点更集中;
2、可以根据已经存在的数据表生成表单功能而无需任何代码,并能根据字段类型自动适配控件,同时支持自定义控件能力,由用户在线完成表单的个性化定制,全程可视化配置,更为简便直观;
3、支持通过已经编辑好的SQL生成表单,提供表单之外的数据库操纵能力,可以完成表单之外诸如报表等功能的快速搭建,让开发人员仅需关注“数据如何来”这类业务问题而无需分散精神到界面上;
4、能将WebService聚合为数据来源而生成管理界面,使得对已经开发好的微服务数据也具备了操纵能力;
5、允许连接多方数据源,并对异构数据进行操作和处理,具有强大的数据操纵能力;
6、提供JS增强能力,开发人员可以直接在线编辑js以对界面不足之处进行操作,更改效果即时生效而无需发布;
7、提供Java增强能力,开发人员可以在线编写Nashorn代码,通过丰富的数据库进行开发后端代码,效果直接预览生效;
8、通过插件扩展单元,开发者能动态增加系统自身能力而无需升级系统,同时插件配置也通过在线编辑,全程无线下代码,开发人员利用现有稳定库,代码效率更高,稳定性更强;
9、多套界面渲染引擎支持,同样无需线下代码开发就可以有更丰富的界面效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的后台管理信息系统的在线快速交付系统的系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供了一种后台管理信息系统的在线快速交付系统,所述系统包括:系统基础框架、业务服务配置单元、外部数据源、数据标准化单元、表单引擎、界面渲染引擎、功能增强单元和插件扩展单元。
其中,系统基础框架,包括用户管理、角色管理、菜单管理、组织管理、权限管理和基础数据库。
为简化系统使用者开发后台管理系统的难度,降低使用门槛,本系统自带了权限管理体系,对用户的具体权限进行管理,该权限管理用于组织机构、用户、角色、菜单、控件和数据进行权限设置和权限管理。下面详细介绍本系统中权限管理的具体内容:
组织机构:采用树形结构记录用户的具体组织机构,并同时规定,任意用户可以属于一个以上的组织机构;组织机构信息属于基础数据,存放于系统自身的MySQL数据库,即基础数据库中,并单独创建组织机构表。
用户:即所有系统的使用者,包括系统的管理员、后台管理信息系统的开发者、业务系统的使用者等等;为此创建用户表;为保证访问效率,将用户信息拆分成用户基本信息和用户扩展信息,对于登陆过程仅需要访问一张用户基础信息表即可。
角色:对系统用户的逻辑分类,将具有相同操作权限的用户归集并赋予统一名称,则定义为一类角色,以简化权限体系的管理难度;为此设计角色基础信息和角色-用户关系表等,对于具备相同角色的用户将默认拥有角色内所赋予的相同权限。
菜单:菜单是用户进行业务操作的入口,属于权限体系中被控制的基本单位之一;本权限管理体系采用白名单制,即对于所有菜单而言,必须显式的赋予权限给具体用户或角色,否则将不具备该菜单的访问权限;因此设计菜单表和菜单-角色等。
控件:控件是用户可以查看和操作的基本元素,对控件进行权限控制可以细致对用户操作和可看到的内容进行管理。所述权限管理对所述控件的权限设置和权限管理为对菜单页面配置jQuery框架的过滤器,界面渲染时在前端采用所述jQuery框架对所述过滤器结果进行隐藏,实现所述控件权限处理;并采用控件权限表和菜单控件表记录所述控件的权限。
数据:系统对数据访问进行了控制。系统渲染页面时,页面和数据采用异步加载方式,所以会有单独的数据访问地址,实际对数据过滤就是通过拦截数据访问地址方式实现。系统管理员在所述基础数据库中存储菜单-数据过滤条件表和角色-数据过滤条件关系表(实际查询数据时的SQL过滤条件),当有用户访问对应的数据地址时,通过数据权限过滤器(Servlet的Filter实现)根据用户访问数据读取对应的菜单-数据过滤条件表和角色-数据过滤条件关系表中的过滤条件并组装到实际查询的结构化查询语言中,实现数据过滤。
该权限管理通过结合菜单权限、控件权限和数据权限,能够对用户的可访问性和可操作性进行细致的规划,基本满足了大部分权限体系的要求。
所述基础数据库用于存储后台管理信息系统的配置数据、渲染或者具体业务逻辑处理数据以及部分由所述后台管理信息系统提供的基础信息数据。在本实施例中,该基础数据库采用MySQL数据库,当然也可以采用其他类别的数据库。由于该系统基础框架是自身带有完整基础框架,无需用户再行搭建,直接关注具体业务细节,焦点更集中,提高交付效率,大幅度缩短用户需求到上线的周期。
外部数据源,包括多种外部数据源,所述多种外部数据源支持不同数据库引擎,所述多种外部数据源用于操作不同表单;所述外部数据源通过建立外部数据源表记录连接第三方数据源的连接信息,在首次访问第三方数据源时初始化连接,并使用Druid进行连接管理;所述外部数据源支持的数据库引擎包括MySQL、PostgreSQL、SQLServer和MongoDB;所述外部数据源还通过webservice接口与第三方数据源连接,所述webservice接口用于扩展外部数据源,所述webservice接口将接口转换为表单,通过表单形式展现。本实施例中将基础数据库和外部数据源构建为一虚拟数据源1供业务服务使用。
业务服务配置单元,包括站点配置和字典配置。
站点配置:本系统属于底层开发平台,针对不同业务场景配置后即成为该业务系统的管理后台,因此设计了站点配置项用来存储具体项目中的特定配置,并在系统实际运作时影响展现效果。为此设计了【站点配置表】,针对譬如“业务系统名称”、“登陆方式”、“运行模式”等等提供给具体使用者实际的控制项。
由于系统配置属于相对比较稳定的配置项,一般变更比较少,因此系统启动时会主动加载“站点配置表”到内存中缓存,并在访问时从内存中读取以提高效率。
同时,站点配置功能提供了“更新缓存”功能,针对实际更新了配置的站点,通过点击“更新缓存”按钮,将触发到后台代码重新从数据库中将最新的配置项加载并更新内存缓存,确保配置和数据库保持一致。
站点配置项实际是系统的埋点控制项,通过实际代码层面进行逻辑控制。
字典配置:对于常见的数据字典,系统设计了【字典表】,用于存储固定的、稳定的字典数据。
字典表设计为父子表,父表定义为字典描述,子表定义字典的数据项。
系统启动时会将字典表装载到缓存中,以提高系统的响应速度;与站点配置类似,字典也提供了更新缓存能力,将数据库的字典同步到缓存。
字典主要用于表单展现中的key-value关系转换,因此在表单配置中得到广泛应用,实际设计时,系统在后台中对所有设定了字典类型的字段进行转换加工后才输出到界面展现,达到了通过配置字典就实现了用户无感知的数据转换。
数据标准化单元2,用于提供数据标准化规则,所述数据标准化规则用于表单配置和界面渲染。
表单引擎3,包括导入表单、SQL表单和WebService表单。所述表单引擎用于根据所述数据标准化规则生成所述表单配置。
所述导入表单是将数据库中指定的数据表转化为所述表单配置的工具;所述导入表单支持选择不同的数据源,所述导入表单根据数据表的字段生成对应的表单配置,不同的字段类型会采用不同的界面控件,并提供增删改查的功能;所述数据源包括所述外部数据源和/或基础数据库中的数据源。
所述SQL表单提供将SQL转化为所述表单配置的工具;所述SQL表单根据用户选择的所述数据源后编写结构化查询语言作为表单数据来源,根据SQL查询结果字段生成表单配置,并在渲染时结合SQL查询结果转化为表单;所述SQL表单通过所述SQL增强或所述Java增强提供增删改的功能。
所述WebService表单是将WebService接口当做数据源,并根据接口结果生成所述表单配置的工具;所述WebService表单用于将用户通过输入接口地址和预定义输入输出格式的输入输出数据转化为表单配置信息,通过调整表单的具体配置项,生成表单配置。
界面渲染引擎4,包括多种渲染引擎类型、多种界面模板,用于对业务服务数据、所述表单配置和所述界面模板依据所述数据标准化规则进行界面渲染,得到渲染后的实际界面。在本实施例中,所述界面渲染引擎支持不同的渲染引擎切换;所述渲染引擎包括Almonds引擎、Freemarker模板引擎和龙猫引擎;所述Almonds引擎和所述Freemarker模板引擎是使用预定义模板渲染页面内容;所述龙猫引擎是通过在线拖拽进行搭建积木方式实现界面渲染。
在线表单交付是实现在线快速交付的根本方法,通过在线配置可以实时预览效果,可以节约发布流程,可以利用为在线交付而设计的工具,最终提高工作效率,达到快速交付业务系统的效果。本系统采用的数据存储逻辑为将在线配置结果存放在数据库中,并在功能访问的时候将数据结合配置和模板进行渲染,如下:
此处业务数据是实际业务要去管理的后台数据,而界面模板是系统内置的标准模板,剩下的表单配置则属于交付的要点,是系统交付的核心。
在线表单开发强调的是“在线”和“交付”,方法是配置,通过配置来交付功能,而配置的过程则需要表单引擎3和界面渲染引擎4来完整。表单生成的效果可以通过功能增强单元5来增强。
功能增强单元5,用于在所述系统的原有功能上设置增删改埋点,通过所述增删改埋点对表单加入增强功能处理逻辑,实现SQL增强、Java增强和JS增强。
所述SQL增强是指通过编写结构化查询语言方式对所述界面渲染引擎生成的界面的功能进行增强;使用所述SQL增强时,用户在所述SQL增强的功能界面中选择数据源,通过使用模板变量的方式应用前端回传参数,而SQL增强中的编写的结构化查询语言将会在埋点触发时逐条执行;所述数据源包括所述外部数据源和/或基础数据库中转变成的外部数据源
所述Java增强通过埋点方式在系统处理过程中关键点进行埋点,用户在表单中填写代码,并在表单执行时运行代码;所述Java增强采用Nashorn引擎作为脚本引擎,由用户编写JavaScript脚本,并允许用户调用预定义开放方法,或直接调用系统实现的Java代码,实现业务逻辑定义和实现;
所述JS增强提供用户增强界面前端能力的增强功能,由用户按照规范编写JavaScript脚本,并在所述界面渲染引擎执行时将所述JavaScript脚本直接插入到界面代码中,直接影响界面的运行和渲染;所述JS增强能直接操作文档对象模型数据,或覆盖系统默认的部分处理逻辑,实现自定义能力。
功能增强单元5还包括初始化JS引擎,所述初始化JS引擎用于在所述Java增强对通用方法或对象进行定义,用于利用Nashorn引擎对所述Java增强功能进行封装。
模板变量单元用于实现为用户提供模板变量操作功能,应用于所述WebService表单的URL、所述SQL表单的结构化查询语言、所述SQL增强的代码和/或所述Java增强的部分代码中;带有模板变量的代码执行前,先由代码调用者使用模板变量替换对象对代码进行单独处理,将实际变量的值填入代码中,再触发执行;所述代码中的模板变量被替换为符合规则的环境变量、预定义变量或前端提交的参数。
插件扩展单元6,用于根据用户操作业务需求选择性安装所需种类插件已完成管理后的表单交付。
系统属于底层开发平台,具有有限的能力,因此需要通过不断的迭代以引入新功能,而随着使用者持续增多,导致系统出现了明显的版本碎片,直接影响到用户体验;同时,由于系统层面迭代在开发团队内部,受人力等各方面资源限制无法大量满足所有用户需求,导致部分用户功能需求长期得不到满足,因此系统平台引入插件体系,通过它支持更多开发者加入系统功能补充,充分利用了用户的开发能力,减少系统自身迭代速度,形成自身的生态,最终提升用户体验。
经过比较长时间的用户使用和操作数据统计分析,将系统的常用功能整理为自带的功能,并将不常用的功能进行剥离为插件,采用大量系统埋点的方式,系统分离出了自身的插件体系,并利用自身能力整理出插件市场和插件中心。
系统插件使用埋点形式实现,由插件开发者实现某类插件的特定接口并发布到maven仓库中,而后将具体maven库中坐标发布到插件市场后,所有系统使用者即可以通过自身的插件中心来安装使用该插件。
考虑到插件开发者众多,实际插件装载过程中具有不确定性,为避免插件装载影响到现有系统能力,因此设计了PluginClassLoader(插件加载器),通过ClassLoader(类加载器)的隔离性,将插件与插件、插件与系统之间的允许环境隔离,确保每个插件运行在自身的沙箱中,最终保证了系统的稳定性,同时降低了插件和系统的耦合度,实现了插件的随时安装、随时卸载都无需重启系统平台。
为保证插件开发者更新插件的及时性和开发性,设计了独立站点插件市场,提供插件开发者发布自身作品的空间。插件开发者仅需要将开发好的插件发布到maven库后将其坐标信息填写入插件市场,则系统使用者随时通过插件中心可以安装或更新该插件,实现了新功能上线而系统无需更新或重启的效果。
所述插件扩展单元包括插件中心和插件市场,所述插件中心通过插件扩展接口与所述插件市场对接,所述插件中心读取所述插件市场中所有插件并以列表形式展现供用户选择;用户在所述插件中心中点击安装插件时,写入所述插件的具体信息至系统插件表,并将所述插件标记为“已安装”状态;用户通过点击插件设置按钮对已安装的所述插件进行设置,并在设置结束后所述进行设置的信息存储至所述系统插件表对应的字段;用户点击启用按钮后,所述系统插件表中所述插件的状态更改为启用,同时启动后台线程下载maven包到固定插件目录,然后通过插件加载器对所述插件内容进行装载,再启动插件包中Manifest文件中的插件装载方法对插件进行具体初始化,最终完成在各埋点中的注册,结束插件的启用过程,之后系统运行至所述插件实现的埋点时将自动使用到该插件;用户还能通过点击禁用按钮反注册所述插件的所有埋点。
系统是软件包和数据库分开的设计逻辑,其中软件包是标准包,而配置出来的业务系统都转为数据存放在数据库中,因此发布时仅需要将库发布并启动标准软件包即可,此时如果系统插件表中如果存在已启用的插件,则系统会在启动时下载插件包并注册,确保业务系统运行正常。
经过一段时间使用和沉淀,有部分比较优秀的插件如下
MQ插件:扩展系统本身不存在的MQ能力。提供在Java增强中发送MQ的能力,并允许在配置中设计代码订阅具体的MQ消息。
定时调度:通过配置中编写Nashorn代码方式实现任务,并设置任务调度时间,扩展出系统的定时任务能力。
脱敏插件:通过指定特定表单的特定字段,此插件能在查询数据后对数据进行加工,并支持多种脱敏方式。
第三方jar包导入插件:系统采用单包部署方式,并且实际业务功能是使用线上配置的方式实现,因此无法使用第三方包,此插件通过扩展Java增强的ClassLoader能力,将PluginClassLoader所附加的类加入上下文,最终达到Java增强中使用第三方包的效果。
当然插件的种类并不限于上述四种,此处并非穷举,其他功能插件也可以应用与本系统中,对于插件种类的增加、变更和删除都属于本发明的保护范围。
本系统将线下开发过程完全线上配置化,所有需求的变更直接线上配置体现,可以大幅度缩短用户需求到上线的周期,甚至可以用户自行调整,更为灵活;通过引入各类脚本语言和提供大量的辅助工具,让开发人员可以基于线上对表单的各个环节进行控制,对于某些特殊需求还可以通过动态装载插件扩展系统平台功能,完全线上的开发和配置结合,完美解决配置类系统平台不够灵活和开发类系统周期长的问题;通过可视化配置和直观的拖拽功能,降低MIS系统的开发门槛和周期,更为有效的节约了成本;使用抽象化的数据源技术屏蔽具体数据源,让各类数据引擎甚至webservice都可以表单化,让系统平台的适用能力更为强大。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种后台管理信息系统的在线快速交付系统,其特征在于,所述系统包括:
系统基础框架,包括用户管理、角色管理、菜单管理、组织管理、权限管理和基础数据库;所述权限管理用于组织机构、用户、角色、菜单、控件和数据进行权限设置和权限管理;所述基础数据库用于存储后台管理信息系统的配置数据、渲染或者具体业务逻辑处理数据以及部分由所述后台管理信息系统提供的基础信息数据;
业务服务配置单元,包括站点配置和字典配置;所述站点配置用来存储业务服务的具体配置,并在系统运作时影响展现效果;所述字典配置用于存储固定的、稳定的字典数据,并用于表单展现中的字典类型的字段的转换;
外部数据源,包括多种外部数据源,所述多种外部数据源支持不同数据库引擎,所述多种外部数据源用于操作不同表单;
数据标准化单元,用于提供数据标准化规则,所述数据标准化规则用于表单配置和界面渲染;
表单引擎,包括导入表单、SQL表单和WebService表单;所述导入表单是将数据库中指定的数据表转化为所述表单配置的工具;所述导入表单支持选择不同的数据源,所述导入表单根据数据表的字段生成对应的表单配置,不同的字段类型会采用不同的界面控件,并提供增删改查的功能;所述数据源包括所述外部数据源和/或基础数据库中转变成的外部数据源;
所述SQL表单提供将SQL转化为所述表单配置的工具;所述SQL表单根据用户选择的所述数据源后编写结构化查询语言作为表单数据来源,根据SQL查询结果字段生成表单配置,并在渲染时结合SQL查询结果转化为表单;所述SQL表单通过SQL增强或Java增强提供增删改的功能;
所述WebService表单是将WebService接口当做数据源,并根据接口结果生成所述表单配置的工具;所述WebService表单用于将用户通过输入接口地址和预定义输入输出格式的输入输出数据转化为表单配置信息,通过调整表单的具体配置项,生成表单配置;所述表单引擎用于根据所述数据标准化规则生成所述表单配置;
界面渲染引擎,包括多种渲染引擎类型、多种界面模板,用于对业务服务数据、所述表单配置和所述界面模板依据所述数据标准化规则进行界面渲染,得到渲染后的实际界面;
功能增强单元,用于在所述系统的原有功能上设置增删改埋点,通过所述增删改埋点对表单加入增强功能处理逻辑,实现SQL增强、Java增强和JS增强;
所述SQL增强是指通过编写结构化查询语言方式对所述界面渲染引擎生成的界面的功能进行增强;使用所述SQL增强时,用户在所述SQL增强的功能界面中选择数据源,通过使用模板变量的方式应用前端回传参数,而SQL增强中的编写的结构化查询语言将会在埋点触发时逐条执行;所述数据源包括所述外部数据源和/或基础数据库中转变成的外部数据源;
所述Java增强通过埋点方式在系统处理过程中关键点进行埋点,用户在表单中填写代码,并在表单执行时运行代码;所述Java增强采用Nashorn引擎作为脚本引擎,由用户编写JavaScript脚本,并允许用户调用预定义开放方法,或直接调用系统实现的Java代码,实现业务逻辑定义和实现;
所述JS增强提供用户增强界面前端能力的增强功能,由用户按照规范编写JavaScript脚本,并在所述界面渲染引擎执行时将所述JavaScript脚本直接插入到界面代码中,直接影响界面的运行和渲染;所述JS增强能直接操作文档对象模型数据,或覆盖系统默认的部分处理逻辑,实现自定义能力;
插件扩展单元,用于根据用户操作业务需求选择性安装所需种类插件已完成管理后的表单交付。
2.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述基础数据库采用MySQL数据库;所述外部数据源通过建立外部数据源表记录连接第三方数据源的连接信息,在首次访问第三方数据源时初始化连接,并使用Druid进行连接管理;所述外部数据源支持的数据库引擎包括MySQL、PostgreSQL、SQLServer和MongoDB;所述外部数据源还通过webservice接口与第三方数据源连接,所述webservice接口用于扩展外部数据源,所述webservice接口将接口转换为表单,通过表单形式展现。
3.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述权限管理对所述控件的权限设置和权限管理为对菜单页面配置jQuery框架的过滤器,界面渲染时在前端采用所述jQuery框架对所述过滤器结果进行隐藏,实现所述控件权限处理;并采用控件权限表和菜单控件表记录所述控件的权限;
所述权限管理对所述数据的权限设置和权限管理为在所述基础数据库中存储菜单-数据过滤条件表和角色-数据过滤条件关系表,通过数据权限过滤器根据用户访问数据读取对应的菜单-数据过滤条件表和角色-数据过滤条件关系表中的过滤条件并组装到实际查询的结构化查询语言中,实现数据过滤。
4.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述界面渲染引擎支持不同的渲染引擎切换;所述渲染引擎包括Almonds引擎、Freemarker模板引擎和龙猫引擎;
所述Almonds引擎和所述Freemarker模板引擎是使用预定义模板渲染页面内容;
所述龙猫引擎是通过在线拖拽进行搭建积木方式实现界面渲染。
5.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述功能增强单元还包括初始化JS引擎,所述初始化JS引擎用于在所述Java增强对通用方法或对象进行定义,用于利用Nashorn引擎对所述Java增强功能进行封装。
6.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述系统还包括模板变量单元,所述模板变量单元用于实现为用户提供模板变量操作功能,应用于所述WebService表单的URL、所述SQL表单的结构化查询语言、所述SQL增强的代码和/或所述Java增强的部分代码中;带有模板变量的代码执行前,先由代码调用者使用模板变量替换对象对代码进行单独处理,将实际变量的值填入代码中,再触发执行;所述代码中的模板变量被替换为符合规则的环境变量、预定义变量或前端提交的参数。
7.根据权利要求1所述的后台管理信息系统的在线快速交付系统,其特征在于,所述插件扩展单元包括插件中心和插件市场,所述插件中心通过插件扩展接口与所述插件市场对接,所述插件中心读取所述插件市场中所有插件并以列表形式展现供用户选择;用户在所述插件中心中点击安装插件时,写入所述插件的具体信息至系统插件表,并将所述插件标记为“已安装”状态;用户通过点击插件设置按钮对已安装的所述插件进行设置,并在设置结束后所述进行设置的信息存储至所述系统插件表对应的字段;用户点击启用按钮后,所述系统插件表中所述插件的状态更改为启用,同时启动后台线程下载maven包到固定插件目录,然后通过插件加载器对所述插件内容进行装载,再启动插件包中Manifest文件中的插件装载方法对插件进行具体初始化,最终完成在各埋点中的注册,结束插件的启用过程,之后系统运行至所述插件实现的埋点时将自动使用到该插件;用户还能通过点击禁用按钮反注册所述插件的所有埋点。
8.根据权利要求7所述的后台管理信息系统的在线快速交付系统,其特征在于,所述插件扩展单元通过所述插件加载器将插件与插件、插件与系统之间的允许环境隔离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811489087.8A CN109597814B (zh) | 2018-12-06 | 2018-12-06 | 一种后台管理信息系统的在线快速交付系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811489087.8A CN109597814B (zh) | 2018-12-06 | 2018-12-06 | 一种后台管理信息系统的在线快速交付系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597814A CN109597814A (zh) | 2019-04-09 |
CN109597814B true CN109597814B (zh) | 2021-02-02 |
Family
ID=65961355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811489087.8A Active CN109597814B (zh) | 2018-12-06 | 2018-12-06 | 一种后台管理信息系统的在线快速交付系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597814B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230023290A1 (en) * | 2021-07-26 | 2023-01-26 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for managing function based on engine, electronic device and medium |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008420A (zh) * | 2019-04-16 | 2019-07-12 | 秒针信息技术有限公司 | 一种电子表单的生成方法及装置 |
CN110780859B (zh) * | 2019-10-29 | 2023-01-31 | 成都阳帆网络科技有限公司 | 一种基于自定义表单的服务架构的实现方法 |
CN110990015B (zh) * | 2019-12-25 | 2023-08-01 | 中科全维科技(苏州)有限公司 | 一种面向应急指挥领域的移动软件集成框架及其实现方法 |
CN111444543B (zh) * | 2020-04-02 | 2023-02-28 | 南方电网数字平台科技(广东)有限公司 | 数据权限的管理方法及系统 |
CN111880771B (zh) * | 2020-07-06 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 一种数据可视化模块的生成方法及装置 |
CN112287021B (zh) * | 2020-07-13 | 2024-04-05 | 上海柯林布瑞信息技术有限公司 | 数据实时同步参数的生成、同步方法及装置、存储介质、终端 |
CN112328212A (zh) * | 2020-09-08 | 2021-02-05 | 中国电子系统技术有限公司 | 一种基于引擎模式前后端分离的快速开发平台及其使用方法 |
CN112130824A (zh) * | 2020-10-10 | 2020-12-25 | 安徽合行网络科技有限公司 | 一种快速交付的软件架构设计方法以及系统 |
CN112527439A (zh) * | 2020-12-17 | 2021-03-19 | 上海数依数据科技有限公司 | 一种前端展示数据虚拟替换方法 |
CN112685816B (zh) * | 2020-12-25 | 2021-08-17 | 四川省交通勘察设计研究院有限公司 | 基于模型及数据的设计成果在线交付系统及方法 |
CN113792079B (zh) * | 2021-11-17 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN114327678B (zh) * | 2021-12-29 | 2023-05-12 | 中电福富信息科技有限公司 | 一种支持多引擎的实时数据处理系统及方法 |
CN114445091A (zh) * | 2022-01-25 | 2022-05-06 | 荃豆数字科技有限公司 | 一种中药饮片溯源管理方法、系统、装置及存储介质 |
CN115438050B (zh) * | 2022-11-07 | 2023-02-17 | 杭州兆林科技有限公司 | 一种分级低代码开发平台 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077246A (zh) * | 2013-01-18 | 2013-05-01 | 国网电力科学研究院 | 一种基于Netty的大屏可视化平台数据推送系统 |
JP2014523042A (ja) * | 2011-07-12 | 2014-09-08 | ▲銅▼陵玉成▲軟▼件科技有限▲責▼任公司 | ビジネスモデル指向のソフトウェア実行プラットフォーム及びその実行モード |
CN106649120A (zh) * | 2016-12-28 | 2017-05-10 | 中国银联股份有限公司 | 一种数据获取方法、分析方法及系统 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN108052673A (zh) * | 2017-12-29 | 2018-05-18 | 中国电子科技集团公司信息科学研究院 | 一种物联网数据集成与融合中间件系统 |
CN108279879A (zh) * | 2018-01-25 | 2018-07-13 | 北京卓越智软科技有限公司 | 面向引擎的应用软件开发方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101155207B1 (ko) * | 2010-11-18 | 2012-06-13 | 포항공과대학교 산학협력단 | 소프트웨어 개발 방법 및 이를 위한 장치 |
CN102063306A (zh) * | 2011-01-06 | 2011-05-18 | 夏春秋 | 一种通过电子表单进行应用开发的技术实现方法 |
CN103136612A (zh) * | 2011-11-29 | 2013-06-05 | 神州数码信息系统有限公司 | 一种零编码构件化流程业务的开发方法 |
CN102915244A (zh) * | 2012-09-28 | 2013-02-06 | 方正国际软件有限公司 | 三位一体页面开发系统 |
US20150039587A1 (en) * | 2013-07-31 | 2015-02-05 | Oracle International Corporation | Generic sql enhancement to query any semi-structured data and techniques to efficiently support such enhancements |
-
2018
- 2018-12-06 CN CN201811489087.8A patent/CN109597814B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014523042A (ja) * | 2011-07-12 | 2014-09-08 | ▲銅▼陵玉成▲軟▼件科技有限▲責▼任公司 | ビジネスモデル指向のソフトウェア実行プラットフォーム及びその実行モード |
CN103077246A (zh) * | 2013-01-18 | 2013-05-01 | 国网电力科学研究院 | 一种基于Netty的大屏可视化平台数据推送系统 |
CN106649120A (zh) * | 2016-12-28 | 2017-05-10 | 中国银联股份有限公司 | 一种数据获取方法、分析方法及系统 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN108052673A (zh) * | 2017-12-29 | 2018-05-18 | 中国电子科技集团公司信息科学研究院 | 一种物联网数据集成与融合中间件系统 |
CN108279879A (zh) * | 2018-01-25 | 2018-07-13 | 北京卓越智软科技有限公司 | 面向引擎的应用软件开发方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230023290A1 (en) * | 2021-07-26 | 2023-01-26 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for managing function based on engine, electronic device and medium |
Also Published As
Publication number | Publication date |
---|---|
CN109597814A (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597814B (zh) | 一种后台管理信息系统的在线快速交付系统 | |
CN110825362B (zh) | 低代码应用软件开发系统及方法 | |
CN103778178B (zh) | 用于重新配置虚拟机的快照的方法和系统 | |
WO2021018005A1 (zh) | 一种跨进程通信方法、装置及设备 | |
CN108388622B (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
CN109542506B (zh) | 一种可灵活配置接口和快速交付服务的系统 | |
CN104484189A (zh) | 一种应用界面的构建及设计方法 | |
CN110945480A (zh) | 用于更新和加载应用程序的系统和方法 | |
CN114064024A (zh) | 微应用的开发方法、装置、设备、存储介质及程序产品 | |
US7168062B1 (en) | Object-oriented software system allowing live modification of an application | |
CN102004648B (zh) | 程序定制方法和装置 | |
JP6002302B2 (ja) | Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム | |
Späth | Pro Android with Kotlin: Developing Modern Mobile Apps | |
CN104133678A (zh) | 构建、运行交互地震解释系统的方法及装置 | |
CN114721647B (zh) | 一种基于无代码应用开发的面向对象编程方法 | |
US10635458B2 (en) | Systems and methods for generating a self-updating maintenance page | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN114237583A (zh) | 一种跨平台可视化代码生成装置和方法 | |
CN114356520A (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
KR20200082024A (ko) | 업무 화면 생성 방법 및 이를 수행하는 시스템 | |
KR102428928B1 (ko) | 게임 엔진을 위한 리소스 관리 방법 및 시스템 | |
CN115113874B (zh) | 基于小程序的配置开发方法、系统、设备及存储介质 | |
US20240069933A1 (en) | Database systems and client-side field retrieval methods | |
US20240070146A1 (en) | Database systems and methods of batching data requests for application extensions | |
CN117215543B (zh) | 适用于不同业务场景类型的组件开发方法及其对应的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Unit 01, room 4001, 12 Zhujiang East Road, Tianhe District, Guangzhou, Guangdong 510630 Applicant after: Guangzhou and baozi Information Technology Consulting Service Co.,Ltd. Address before: Room 901, 12 Zhujiang East Road, Tianhe District, Guangzhou, Guangdong 510000:(unit 03) 510000 room 901, 12 Zhujiang East Road, Tianhe District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU PPMONEY INFORMATION TECHNOLOGY CONSULTING SERVICE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |