JAVA低代码快速开发平台整体架构
概述
近期⽐较流⾏的低代码开发平台⼀词,其实也可以称作是快速开发平台。快速开发平台的⽬的是将可重复性的编程⼯作⽤平台实现,将开发⼈员从没有技术含量的增删改查开发中解放出来,做更有价值的开发⼯作,⽐如业务建模、数据库设计、流程设计、API核⼼开发、业务逻辑开发等⼯作。
即使有了快速开发平台,并不意味着普通⼈员就可以替代开发⼈员的⼯作了,⽐如让⾮开发⼈员开发⼀套新的系统,例如⼀个简单的问卷调研系统,⾮开发⼈员即使有了开发平台这个⼯具,可能也⽆从下⼿,因为⾮开发⼈员不知道该设计那些数据库结构,功能模块如何划分,业务流程如何定义到系统中,等等。除⾮开发⼈员把功能细化到模块级,每个模块有哪些数据项,这时实施⼈员才可按照详细设计在开发平台中将功能配置出来。
快速开发平台可以替代哪些重复性⼯作?主要有以下⼏点:
⾸先增删改查功能可以通过快速开发平台快速实现,因为增删改查⼯作没有业务逻辑,可以很容易地开发⼀个通⽤的增删改查配置⼯具。
其次是流程定义,使⽤⼯作流产品实现流程定义,可以减少⼤量的个性化业务流程带来的编程⼯作量。
第三是页⾯模板,常⽤页⾯模板包括单列表增删改查、主明细表增删改查、树形结构、单TAB页编辑页、多TAB页编辑页等等。
第四是通⽤类库,通⽤类库的沉淀会极⼤⽅便⽇常的开发⼯作,⽐如字符串处理、⽇期处理、⽂件处理、加密算法、XML解析、JSON 解析、图⽚处理、数据库增删改查等⼯具类。
快速开发平台的核⼼能⼒
快速开发平台应具有哪些核⼼能⼒?
1. 可视化数据建模能⼒:可在线设计数据库结构。虽然通过其他数据库管理⼯具也可以设计数据库,⽽快速开发平台本⾝的数据建模功
能的意义,主要在于和开发是⽆缝衔接的,这包括根据数据库表⽣成实体类、为数据库表⾃动创建对应的增删改查页⾯、数据库表字段的业务说明⾃动存储、数据库设计⽂档在线⽣成等。
2. 代码⽣成能⼒:可通过平台⼯具⽣成增删改查程序代码或者其他程序代码。
3. 可视化配置能⼒:业务流程可视化配置、表单可视化配置、数据流可视化配置(例如某个时机调⽤存储过程、或者触发数据处理程
序)、门户⽹站DIV可视化拖拽及设置等。
4. 代码组件化能⼒:将常⽤的⼯具类进⾏封装,⽐如⽇期处理、字符串处理、数据库SDK、⽂件处理、⽀付处理等等。
5. 基础功能通⽤化能⼒:快速开发平台应该实现各种业务系统常⽤的功能能,包括登录注册、系统基础数据、组织机构、⼈员⾓⾊、功
能菜单、权限分配、短信邮箱、数据字典、系统⽇志等。
6. ⽹络安全能⼒:再好的系统,如果缺少了⽹络安全,就是⽊桶的短板,所以快速开发平台必须具备强⼤的⽹络安全能⼒,有效地防⽌各
种⽹络⼯具。从实现措施上,包括第三⽅⼯具及时更新,控制器增加注⼊攻击防范,程序代码实现数据库防注⼊。
7. API整合能⼒:这包括两种情况。别⼈调⽤我---本系统为第三⽅提供的OpenAPI接⼝。我调⽤别⼈---调⽤第三⽅平台接⼝,例如
⽀付宝⽀付API、API、阿⾥云直播点播API、云存储API、⼈⼯智能API、主流电商平台API等等。
8. 开放⽣态能⼒:基于快速开发平台的开发标准,可开发插件化的应⽤产品,上架到应⽤市场。所有使⽤开发平台开发的产品都可以⽅
便地整合应⽤插件。每个开发⼈员都可以按照开发平台的标准创建应⽤,发布应⽤到应⽤市场。
9. 微服务能⼒:快速开发平台应具备微服务架构,在发布新的服务或者停⽌某个服务时不影响业务系统的正常使⽤。
10. 敏捷开发及持续迭代能⼒:⽀持敏捷开发和产品的持续迭代。
JAVA快速开发平台整体架构
关于JAVA快速开发平台的整体架构设计,可参考以下⼏个⽅⾯:
1. 跨操作系统:平台须⽀持Windows、Linux操作系统,当然JAVA语⾔没有这个障碍,不过平台仍需要在两种操作系统上进⾏充分测
试。特别是⽂件⼤⼩写问题,在Windows上不区分,但Linux上区分⼤⼩写(典型的案例是,以前mysql数据库的⽂件名⼤写,但是sql中是⼩写的,放到linux系统中不到⼤写的mysql表⽂件名)。
2. ⽀持主流多种关系数据库:⾄少⽀持Oracle、SqlServer、Mysql这三种数据库,平台应⾄少⽀持这三种数据库的使⽤。
3. 整合主流技术框架及组件:例如SSH、SSM、Spring Cloud、Spring Security等。当然可以根据技术偏好来⾃⼰取舍。除了基础
MVC框架、微服务框架,还应整合常⽤的第三⽅⼯具或开源框架,例如关键词检索框架Apache Lucene、⽇志⼯具log4j、在线编辑器CKEditor、阿⾥巴巴JSON⼯具包、⼆维码⽣成器、批量上传组件pupload,等等。
4. ⽹络安全设计:系统应具有⽹络防攻击过滤器,⼀般是开发过滤器类来监控JSP页⾯、MVC控制层的GET、POST等请求,⼀旦发现
疑似攻击,则禁⽌进⼀步访问,另外程序代码中,也要避免字符串拼接的形式的数据库SQL语句。对于其他底层产品例如Tomcat、数据库、其他第三⽅⼯具的安全漏洞、Nginx、Redis配置不当等问题也要及时修复。
5. 性能稳定可靠:系统设计需要⽀持⾼并发、性能稳定、安全可靠的质量要求。可达到长期24x7不间断运⾏的质量要求。
6. 完善的基础功能:快速开发平台应具备业务系统必备的基础功能,包括登录注册、系统设置、基础数据管理(国家、省市县管理、各
种基础数据字典如学历、民族、政治⾯貌)、数据字典设置、组织结构、⼈员⾓⾊、权限、菜单、短信、邮箱、⽇志管理、报表定义等基础功能模块。
7. 丰富的SDK类库:平台应提供常⽤的基础类库共开发调⽤,⽐如字符串处理类、⽇期处理类、⽂件处理类、图⽚处理类、XML处理
类、各种加密解密算法、第三⽅⽀付调⽤、API调⽤、HttpClient⼯具类、⼆维码⽣成⼯具类,等等。
8. 数据建模⼯具:⽀持在线数据库结构设计、这样表结构定义信息保留在系统中,不仅可随时⽣成设
jquery框架定义计⽂档,⽽且还可创建表结构对应
的实体类和维护界⾯。
9. 代码⽣成器:可⽣成常⽤的程序代码,⽐如根据某数据库表⽣成增删改查代码及增删改查页⾯、对应实体类和业务逻辑组件。
10. 流程设计器及规则引擎:在线绘制业务流程。业务流程的设计可直接引⽤第三⽅开源⼯作流产品⽐如activiti/flowable。
1. 表单设计器:可拖拽组件的表单设计器。如果实现⽐较复杂,可以⽤页⾯模板的⽅式替代(⼀⾏1列,⼀⾏N列,树形结构,主明细结
构等)。
1. 报表设计⼯具:在线定义查询统计报表。简单的⽅式可以实现⼀个SQL就能查询出来的简易报表。
2. 门户⽹站设计器:⽀持对门户⽹站的DIV进⾏个性化定制和拖拽的功能,例如淘宝店铺定义⾃⼰的店铺主页。
3. 认证框架与单点登录:⽀持Spring Security、JWT等认证框架、SSO单点登录、扫码登录等。
4. 前后端动静分离:随着ajax、jquery、Rest的普及,越来越多的应⽤倾向于静态html前端+jquery+Rest接⼝+基于cookie的token实
现前后端分离,这种设计可⼤幅度降低服务器端的性能压⼒。
5. 前端UI框架:VUE前端框架越来越普及,以后的平台开发可考虑是否引⼊VUE3 UI框架,当然也可以使⽤layui、React、Bootstrap
等UI框架。
6. OpenAPI⽀持:开发平台以及业务系统需要开放哪些API给第三⽅调⽤,需要在设计时考虑。
7. 整合主流第三⽅API:例如⽀付宝调⽤API、⼩程序API、API、企业API、阿⾥云、腾讯云直播点播API、云存储API、
主流电商平台API、其他⼈⼯智能、⼤数据API。可根据具体业务需求来有针对性地实现这些API对接。
8. 微服务⽀持:平台应⽀持微服务架构,以便可提供更细粒度的业务服务和应⽤插件的使⽤,避免上下线业务服务必须重启应⽤系统。
9. 跨端APP开发框架: 虽然⼩程序⽬前⾮常流⾏,但是对于⼤互联⽹平台企业仍需要有⾃⼰的APP产品,可考虑使⽤Flutter、React
跨端APP开发框架来开发专属APP应⽤。完整的快速开发平台应该有⼀套基于APP快速定制的APP开发框架。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论