百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

重磅预告-远行发布企业级低代码开发和PaaS自服务平台

toyiye 2024-06-21 12:05 10 浏览 0 评论

如果经常看我们的头条号,应该已经关注到远行科技已经在SOA,微服务,容器云和DevOps方面有多年的技术积累和实践案例。在2018年也推出了基于当前主流云原生思想的云原生技术中台整体解决方案。

在整个云原生技术中台解决方案本身是覆盖了开发,运行,治理运维全生命周期管理。对于整体的全过程端到端支撑能力我们推出了DevOps过程能力支撑平台,在运行态推出了PaaS技术服务中台和容器云PaaS平台,而在治理层面即参考ServiceMesh服务网格的思路推出了完整的去中心化微服务治理架构。

而对于低代码开发平台,当前一般将其纳入到APaaS的范畴。对于低代码开发本身也是远行科技整体云原生技术解决方案中覆盖开发态度的一个关键内容。

近年来零代码、低代码行业发展迅速,国内APaaS创业厂商如明道云、伙伴云、轻流、黑帕云等均为模型驱动型厂商,奥哲、华炎魔方以及云厂商代表阿里宜搭等则以可视化IDE模式,传统快速开发平台和BPM厂商如普元,JEPaaS,广州天翎切入APaaS市场。国外软件平台发展强劲,主要厂商如OutSystem、Mendix等在市场上均有较高知名度。

从当前我们整体的云原生技术解决方案看到,在开发态不仅仅是提供一个完整的微服务开发框架和环境,提供各种共性的技术组件能力,更加重要的就是提供一个低代码开发平台来实现通过配置化+少量代码的方式来实现应用的快速开发。

同时低代码开发平台和我们当前的DevOps支撑平台紧密协同,低代码开发完成的应用可以快速的部署和交付到容器云环境。云原生下的低代码开发平台应该更加开放和友好,比如提供相应的代码导出,部署包导出,对于导出的内容可以直接在标准的eclipse开发环境编译构建,可以进行部署,并脱离低代码开发平台本身运行。

下面再对一些关键问题进行整理和说明。

和市面低代码开发平台的区别

注意,对于低代码开发领域当前又细分为两类,一类是类似搭搭,宜搭,氚云这种偏零代码开发的平台,一类是是存少量代码和脚本编写的低代码开发平台,类似JEPaaS,Jeecg-boot这种快速开发平台。

对于零代码开发平台当前很多都是由IDE和界面直接从前驱动开发和配置,而对于低代码开发平台一般则是基于模型驱动的思路来进行功能模块开发。

也就是我们的低代码开发平台是完全基于微服务架构的低代码开发平台。同时和业界标准的云原生技术支撑设施能够完全协同和融合。

对于低代码开发平台的构建不仅仅是采用微服务开发框架,更加重要的是符合当前主流的中台和微服务架构思想。因此远行科技的低代码开发平台不是走零代码开发的思路,而是真正的基于模型驱动和SOA架构思想,允许少量代码开发和融合。

其核心思想是:

  • 低代码开发的小应该应该是一个个独立的微服务
  • 应用的构建进一步贯彻SOA分层构建的思路,通过服务层解耦
  • 低代码开发应该是模型驱动的,这个模型核心是对象和数据模型

对于SOA分层构建思路,一个重点就是面向对象和API接口方式进行整个应用构建。

在低代码开发时代,我个人更加推荐这种基于对象服务化的分层开发模式。这个本身也是更加贴近我当前中台和微服务的构建思路。即你首先去构建你的对象并发布你的服务,然后再考虑如何基于这些发布的服务类构建上层的应用。即我们的开发过程横向拆分为两端。而中间基于服务进行松耦合连接。

即:微服务 + 服务 + 前端应用。

为何叫基于低代码的PaaS自服务平台

如果大家看过我前面关于传统企业IT架构转型,企业私有云PaaS平台构建方面的文章就明白,对于企业整体的IT架构规划来说,这个里面有一个重点就是底层的技术支撑平台建设。这个技术支撑平台包括了诸多的内容,如下:

  • 容器云的底层资源池和资源调度中心
  • 消息,缓存,文件等各种技术服务组件
  • 门户+4A+流程引擎的基础共性平台
  • 共性平台和技术服务组件的API能力开放和集成
  • 微服务开发框架和环境
  • 微服务治理和监控运维平台

在前面我一直在强调,低代码开发最终完成的就是一个个的微服务应用,这个微服务本身需要有底层平台能力,后端的管控治理能力做支撑。

低代码开发平台不仅仅是一个开发平台,更加重要的是通过平台在开发的时候如何调用平台可复用的已有技术和业务服务能力,通过开发平台完成的微服务后续的运行管理,运维监控,治理等。

而我们的低代码开发平台则是基于当前我们已有的强调PaaS平台和技术服务平台之上的,只有这种模式构建的应用才可能做到独立自治,后续可以灵活弹性扩展并满足高性能和高并发的业务需求。

没有银弹,是低代码不是零代码

注意,我们做的是低代码开发平台而不是零代码。

企业信息化和业务系统远远比一个简单的OA系统复杂,即使是OA系统你也会看到中大型企业的OA系统也无法完全通过零代码模式开发和完成。

这一方面是底层的技术架构,高可用性方面的问题。一个方面是面向集团企业带入的多组织,权限管理,业务规则逻辑等的复杂性引入。

对于复杂业务规则的实现,当前主流做法是引入规则引擎来进行灵活配置,但是如果是复杂业务规则规则引擎也很难配置,而且引入大量难以管理和后期运维的脚本代码。

在前面实际我已经强调了我们的低代码开发实际是前端界面开发设计和后端能力分层,中间通过服务层进行解耦,当前核心仍然是对象模型驱动。

在解耦后,我们的思路是对于前端开发尽量完全做到可视化设计和灵活配置。而对于后端开发则是标准对象模型发布的API接口能力自动化,但是对于复杂规则的实现仍然是自己编写代码然后发布为标准的Http Rest API接口服务,前端设计器能够通过少量的JS代码来调用后端服务能力。

如果这样还是无法满足复杂规则实现。

那么我们的低代码开发平台还支持你将对象建模,界面设计等完成的配置开发内容完全导出为源代码,你在该源代码基础上进行接口扩展,在扩展接口中增加你自己的业务规则和逻辑定义实现。

比如保存按钮,事件触发后就调用表单保存操作对数据进行保存。但是实际上你会看到在保存前你可能需要进行业务规则和逻辑处理,在保存后你可能触发其它关联操作。

//Form.SaveBefore();
//Form.Save
//Form.SaveAfter();

当前在保存前你还可能调用多个API接口进行多个校验。

为何叫企业级低代码开发平台?

首先我提一个问题给大家,即当前很多做低代码开发平台的厂家,这些厂家是否建设和实施过类似大中型企业负责的业务系统。

实际对于大部分厂家都没有做过,更多的是参考国外低代码开发平台的做法,当前主流的一些SaaS小应用的抽象归纳,形成自己的低代码开发平台。包括前面我谈到的,如果整个平台完全是从界面设计一直驱动到后端对象和数据库表,那么整个前端和后端很难解耦,你会发现当涉及到有多表共同实现的业务规则和逻辑的时候很难实现。

MDA模型驱动思路

真正好的低代码开发平台一定是类似MDA模型驱动的,是基于服务层来实现前端界面设计和后端数据提供之间的解耦。这个类似当前云原生技术实践中的ServerLess无服务器化,即FaaS层和BaaS层分离。BaaS层很多服务能力开始代码开发,但是FaaS层界面设计和服务组合实现低代码和灵活编排。

而对于远行科技自身,我们本是也建设和实施类似财务共享类大型企业业务系统,这个大应用本身又包括了报账,预算,资金,发票等多个微服务应用。而我们的低代码开发平台本身是来源于我们的系统设计和开发实践。

即将完成的低代码开发平台本身就能够满足财务域复杂业务场景的设计和实现,对于业务需求变更的快速配置开发上线等需求。

服务编排能力

前端开发的灵活性不仅仅体现在表单设计,JS简单脚本代码编写,更加重要的是支撑轻量的微服务编排能力,即对于标准的API接口服务,我们可以直接进行服务编排组装,形成组合服务能力API供前端调用。

在传统模式下这种服务组合可能需要手写后端代码来完成并发布为一个API接口,但是现在这块能力可以通过服务编排引擎来完成,进一步提升了前端开发和配置的效率。

企业级应用的多租户,多组织模型

当你面对一个企业级应用开发的时候,那么就必须考虑多组织架构,同时考虑对于开发者的多租户架构。举个简单的场景来说,一个企业本身也可能有多个细分的开发团队,每个开发团队都负责开发不同的微服务应用。

那么各个开发团队之间的租户数据,权限应该做到完全隔离。其次你开发的一个应用需要满足企业负责的多组织架构模型,包括组织,用户,授权模型。

而这些内容需要有一个强调的4A平台和流程引擎平台来进行支撑,同时通过上层的统一的云门户来进行整合,实现所有微服务应用的集中管理,单点登录和统一认证等。

简单来说,理想化的场景是:

一个开发团队首先申请创建一个独立租户,在租户创建完成后开发团队可以维护具体的开发配置人员,同时开发团队可以创建一个或多个微服务应用。

对于每个微服务应用可以规划具体的业务功能菜单和功能权限配置。对于每一个业务功能的实现则是采用表单建模,对象建模,规则建模,流程建模等各个建模功能来完成。完成的业务功能挂接到具体的功能菜单,并进行功能权限和数据权限的授权操作。

在一个功能完全开放完成后可以持续发布和交付到云门户中,即开发完成的微服务应用能够自动增加和集成到云门户的统一入口中,只有一个业务用户授权使用该微应用,同时业务用户登录了云门户,那么就能够快速的进入到微应用中。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码