实战Spring Cloud、Vue构建基于微服务的SaaS低代码开发平台2(微服务springcloud搭建)

一、低代码开发平台不是快速开发平台

1、 低代码开发平台定义

最近,阿里巴巴发布了自己的低代码开发平台“宜搭”,网址是:https://www.aliwork.com ,关于低代码开发平台,我去年年底也写过两篇文章(https://www.toutiao.com/i6637188964732109315/),对低代码开发进行了初步探讨。关于低代码开发的定义,百度百科是这么写的:低代码开发平台是无需编码或通过少量代码就可以快速生成应用程序的开发平台。它的强大之处在于,允许终端用户使用易于理解的可视化工具开发自己的应用程序,而不是传统的编写代码方式。构建业务流程、逻辑和数据模型等所需的功能,必要时还可以添加自己的代码。完成业务逻辑、功能构建后,即可一键交付应用并进行更新,自动跟踪所有更改并处理数据库脚本和部署流程,实现在 IOS,Android,Web 等多个平台上的部署。

从该定义中我们也可以看到,低代码开发有这么几个核心词汇组成:

(1)面向终端用户,即低代码开发平台的使用者是最终用户或者是实施工程师,快速开发平台的使用者还是程序员;

(2)可视化工具,即要有面向终端应用的程序界面生成器(不是快速开发平台的应用生成器),如下图所示:

实战Spring Cloud、Vue构建基于微服务的SaaS低代码开发平台2(微服务springcloud搭建)

图一,应用界面生成器,该图用excel4app.com生成

(3)无需编码或通过少量代码

(4)在必要的时候,有添加自己的个性化代码,完成业务逻辑的机制。

2、 快速开发平台定义

百度百科上,快速开发平台是这么定义的:快速开发平台,就是可以使得开发更为快速的开发平台。当开发平台产生之后,虽然减少了编程人员大量的编程时间,但是很多开发平台的效果并不是很理想,比如说某些开发平台比较复杂、难以掌握;有的开发平台通用性比较差;有的开发平台在时间上并没有得到改善;还有的依然还是需要写很多代码等等。这些问题的存在促使开发者不断的摸索、不断的改进,到最后越做越成熟,以致于现在市面上出现的大部分开发平台效率都非常高,他们改善了以往的产品存在的缺陷,使得开发过程比以往更简洁、编写代码更少、开发效率越来越高。

从定义中也可以看出,快速开发平台是开发更为快速的开发平台。快速开发平台强调的是开发速度快,使用者还只能是程序员,而低代码开发平台的使用者是最终用户,目标不同,所以两者的定位也差异极大。

3、 低代码开发整体架构图

实战Spring Cloud、Vue构建基于微服务的SaaS低代码开发平台2(微服务springcloud搭建)

低代码开发平台一般由以下几个部分组成:

(1) 互动式界面生成器,如上图一所示,最终用户通过互动式界面生成器生成自己的应用,能够完成简单的增删改查等基本操作。

(2) 界面渲染引擎,最终用户用互动式界面生成器生成界面后,一般为JSON格式,并保存到数据库或者XML文件中,然后在最终用户使用该功能时,再由JSON界面渲染引擎,把该界面实时渲染出来,无路是Vue、还是React,类似开源的JSON表单引擎有很多,阿里巴巴的宜搭,也是类似的思路。我为啥并不推荐快速开发平台呢,因为前台技术实在是变化太快了,每隔一两年,前台技术就会发生革命性变化,由传统的JSP,发展到Struts,开始引入模板和MVC的概念,再发展到HTML JQuery,同期还有ExtJS,再发展到现在的所谓的MVVM,前端技术的每次变化,都是对以前技术的推倒重来,而快速开发平台是坐火箭 望远镜也赶不上前台技术发展的,所以快速开发平台往往只能是拿后台的用户、角色、权限、菜单来说事,而不能再像以前可以随意生成JSP页面那样,快速生成Vue、React页面了,因为Vue、React相比较起JSP,实在是太复杂了,JSP是会HTML语法就可以,而Vue、React则是一个技术栈,上下游能牵扯到十几种技术,而且这些技术之间,每个版本还需要仔细考量,最新的版本,往往还互相不兼容。

(3) 业务代码编排引擎:虽然是低代码开发平台,但是稍微复杂的一些应用,比如,进销存,还是需要大量代码介入的,但是界面已经由最终用户生成,如何把代码插入到界面当中去?实际上,所有的BPM引擎或者OA工作流引擎,都是支持代码插入的,但是现在所有的BPM引擎,包括国内知名公司的产品,都不是基于微服务架构或者Spring MVC/Spring Boot机制的,所有的代码都用自己的方式藕合在一起,BPM就是一个无法拆分的单体应用,这还不是最可怕的,最可怕的是BPM的代码插入机制,BPM允许插入的代码,数据库连接,与它的工作流引擎,是隔离开的,不在一个事务中。不在一个事务中最大的问题并不是插入数据失败后不能同增同减这么简单,这只是一个已知的用户可接受的问题,最大的问题还是这种机制会造成数据库连接池的内存泄漏或者是数据库连接池很快就用完了,造成系统每隔一段时间,系统就会变得异常缓慢。所以,如何把第三方代码无缝的插入到界面当中去,不造成内存泄漏或者数据库连接池泄漏,也是一个考验架构师的技术活;

(4) 流程引擎。关于流程引擎,现在一般都是基于Activiti 进行二次开发,不过国内的BPM流程引擎,由于跟审批绑定得太紧,所以都有挂表单的操作, BPM挂表单,是把表单、流程、存储三位一体,一个是这种方案,给以后微服务的拆分造成无法拆分的问题,自身又是一个单体应用,造成性能问题无法优化;其次,挂表单,刚才讲了,前端技术变化太快,所以表单改为Vue、React以后,也会造成原来的工作流引擎改动太大,最后就是不能改动。所以,如何用互联网的思维,改动Activiti,适应微服务拆库、拆表、前后端分离的改造,也是一个悬挂在架构师头上的一个问题。不知道阿里巴巴的宜搭是如何解决这个问题的,我看宜搭也是有自己的工作流引擎的

(5) 报表生成器:国内做报表组件的公司也非常多,一般跟BI挂上钩,显示自己高大上,就跟国内一般不提自己是OA引擎,而说自己是BPM一样(实际我看国内BPM的使用就是快速开发和解决审批流程的,与标榜的业务流程优化一毛钱关系也没有)。国际知名BI厂商如TableU、国内也有FineReport等等,快速开发平台也需要搭建自己的查询、报表生成器,不过,这个与界面渲染引擎、业务代码编排引擎比较起来,还算是比较成熟的技术。

(6) 与外界第三方系统的实时交互。使用低代码开发平台,一般不会开发ERP(当然SAP的ERP就是低代码开发平台的鼻祖和典范,但是他把实施搞的太复杂了,一点不比定制开发来的费用低)、MES等复杂应用,但是现在由于客户生存环境也是越来越复杂,一个系统往往不能独立存在,需要大量和其它第三方系统进行交互,所以,如何实时的与其它系统进行交互?这里推荐两种方式:

第一种:通过监控数据库日志,数据的任何变化,都通过数据库日志实时同步到Kafaka之类的MQ上,其它第三方应用通过订阅的方式,并通过频道隔离开,监控自己感兴趣的数据,并实时做出反应就可以了;

第二种:通过编写通用的SQL 转API,最终用户也可以通过界面拖拽方式,生成SQL,并通过引擎,把该SQL最终转换为微服务的API,供第三方调用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年7月6日 上午11:14
下一篇 2024年7月6日 上午11:25

相关推荐

  • 打造涵养什么的真抓实干

    打造涵养,真抓实干 现代社会,越来越多的人注重个人的涵养和素质,尤其是在职场和生活中。涵养是指一个人的内在修养和道德品质,包括礼仪、文化、道德等方面。而真抓实干则是一个人的实际行动…

    科研百科 2024年10月19日
    1
  • 工程进度保证措施建议

    工程进度保证措施建议 在工程领域中,工程进度是一个重要的因素,关系到项目的能否按时完成,关系到公司的形象和声誉,也关系到客户的信任和满意度。因此,保证工程进度是每一个项目经理和工程…

    科研百科 2025年1月8日
    0
  • 科研燃料动力费包含哪些

    科研燃料动力费包含哪些科研燃料动力费包含哪些1、 电力工程与电力设备的需求需要(reformation)1、 电力系统的垄断部分电力系统和电力系统是一个较复杂的组织,它是衡量电力资…

    科研百科 2024年11月25日
    3
  • 科研项目管理(了解科研项目管理的特点和方法)

    科研项目管理是指对科研项目进行计划、组织、执行和控制的过程。科研项目管理具有一些独特的特点和方法,下面将对其进行详细介绍。 首先,科研项目管理具有高度的不确定性。科研项目通常涉及到…

    科研百科 2023年7月22日
    127
  • 酒店管理系统项目怎么写

    酒店管理系统项目怎么写 随着信息技术的不断发展,酒店管理系统成为了现代酒店必不可少的一部分。一个好的酒店管理系统可以帮助酒店提高管理效率,降低成本,提升服务质量,从而赢得顾客的信任…

    科研百科 2025年1月1日
    0
  • 会议系统管理平台(会议系统的管理)

    会议系统的管理 随着现代企业竞争的加剧,会议系统已经成为企业沟通、协作和决策的重要工具。会议系统的管理对于企业的成功至关重要。本文将探讨会议系统的管理,包括其功能、使用和管理方法。…

    科研百科 2024年6月3日
    78
  • 建筑师专属AI设计工具集合:探索AI创造的建筑世界(ai 建筑设计)

    随着人工智能技术的发展和普及,越来越多的建筑师和室内设计师开始将其运用到自己的设计工作中。AI建筑设计不仅可以提高工作效率,还能够创造出更加精确和个性化的设计方案。 今天和大家分享…

    科研百科 2024年5月20日
    94
  • 东软pms项目管理系统

    以东软pms项目管理系统为例,本文将介绍项目管理在现代社会的重要性以及如何通过使用东软pms项目管理系统来提高工作效率和质量。 随着现代企业规模的不断扩大和业务的快速发展,项目管理…

    科研百科 2024年12月25日
    1
  • 万达双塔融入式党建创新楼宇服务新模式(打造楼宇党建)

    西山万达广场位于昆明泛亚金融产业园区,由大连万达集团投资建设,占地面积105亩,总建筑面积71.38万平方米,项目涵盖超五星级酒店、高端写字楼、城市商业街及配套设施,是集购物、餐饮…

    科研百科 2023年9月28日
    193
  • IBM转型

    IBM转型:从行业领导者到技术驱动者 IBM是一家拥有百年历史的国际科技公司,曾经一直是业界的领先者,但近年来,随着人工智能、大数据和云计算等新兴技术的发展,IBM也开始了一场全面…

    科研百科 2024年10月31日
    1