华为云Astro低代码平台关键能力技术浅析

news2024/10/6 0:29:01

1 背景介绍

低代码开发基于可视化开发的概念,结合了云原生和多终端体验技术,它可以在大多数业务场景中,帮助企业显著的提升效率。同时为专业开发者提供了一种全新的高生产力开发方式,让不懂代码的人通过“拖拉拽”开发组件来完成应用程序的构建。从某种意义上说,低代码可以弥补日益扩大的专业技术人才缺口,同时也可以促进企业与技术之间深度协作的最终敏捷形式。

本文以技术方案视角,对华为云Astro低代码平台的一些核心功能进行简要介绍。

2 关键能力介绍

2.1     数据建模和数据管理

华为云Astro的一个核心特性就是运行时提供数据建模和与数据存储,帮助开发者做到所见即的的发布,在其表现形式上,通常低代码平台通常分为”表单驱动”和”模型驱动”两种模式。不管是哪种模式,都要求低代码平台具备灵活存储用户自定义数据模型的能力。当下主流的低代码平台主要有以下一下两种大的方案。

方案一:使用关系型数据库,将数据模型的定义和修改直接转化为数据库中DDL的表操作。 该方案的优势在可以直接利用关系型数据库的能力,包括SQL优化与事务一致性等。 弊端在于有大量的DDL语句操作,并且关系型数据库的Schema数量和表的数量也都都是有限制的,在成本控制上面临着较大挑战。因此该方案适用于一些线下交付,单租形态的低代码。

方案二:Meta+Data的宽表模型,将模型的定义转化为宽表的模型存储。该方案的优势在于可以灵活的定义数据模型,不需要考虑因模型变化导致的DDL语句。再具体实践中,宽表可以有不同的选型,例如文档数据库,搜索、分析型数据库、关系数据库等。不同类型的存储的宽表选型面临着事务一致性、行列扩展限制、索引构建不同的挑战。

2.2     页面编排

页面编排是低代码的核心功能。狭义上的页面一般指的是表单表格,广义上的页面还可以包含登录Portal页、大屏页等多种样式。对于页面编排目前实现方式也基本相同,采用JSON格式的页面Schema定义,同时提供页面编排的设计引擎和页面运行时的渲染引擎。技术方案基本围绕Vue与React两大技术框架与相关UI实现。

在交互逻辑处理方面,页面编排基本上采用两种思路来处理。

思路一:固定交互行为,通俗的说法就是平台预置的组件与组件的行为方式。所以,组件的多少、组件的能力、组件的扩展性也是衡量低代码平台竞争力的一个指标。

思路二:使用扩展性脚本语言,JS和TS都是常用的选择。在代码中包含循环、递归、变量等抽象操作,这些抽象的逻辑是无法通过拖拉编排来完成的。脚本语言作为低代码平台的胶水部分,在执行安全性、沙箱环境等方面仍然面临较大挑战。一份权威机构的报告中,编程接口被认定为企业级低代码开发平台的重要标志,不具备编程接口的“低代码”被划归为“无代码”,转移到那些只适用有限用例的平台报告中。

2.3     流程和业务逻辑

流程编排是低代码平台的的另一基础能力。低代码平台能否构建出复杂的流程来支撑企业业务和流程编排的易用性是衡量流程能力的重要指标。

通常我们再说”流程编排”的时候,指的是工作流的编排。BPMN2.0的规范之上,开源工作流已经具备了非常成熟的能力。业界的低代码厂商在实现工作流的方案商通常有两种,一是基于开源框架扩展和封装,二是基于BPMN2.0规范来自己来实现。

另个”流程编排”的概念指的是集成流编排基于EIP(Enterprise Integration Patterns)协议。目前Spring Integration、 Apache Camel等都是比较成熟的集成流框架。

上述两种编排在协议、框架和使用场景上有着明确区分,目前国内的低代码平台大多数只提供工作流编排的能力。

2.4     接口和集成

为了避免“数据孤岛”现象,企业级应用通常需要与其他系统进行集成,协同增效。此时,内置的集成能力和编程接口就变得至关重要。

这里涉及到连接器的概念,连接器是API的代理和包装器。连接器的定义广泛使用OpenApi的规范,基于Swagger2.0或者Swagger3.0的规范来实现。API的调用大多采用HttpClient的方式,基于Oauth等授权协议完成调用。

除了Rest接口的集成,云厂商的低代码在系统集成商还有着更多方面的拓展。基于云上的网络方案与授权协议,可以与用户的MQ、DB、K8S集群等打通,完成与用户托管方案的深度集成。

2.5     代码生成与低代码高代码融合

基于华为云Astro完成表单构建、模型构建之后,很容易基于模型元数据定义生成对应后端模型和与之对应的模型操作接口。在一些复杂的业务场景下,需要开发者以高代码的形式对这些模型和接口进一步重载或复写。

在高代码融合上,基础功部分提供了预置函数和用户自定义函数功能,通过条件表达式引擎来实现。高级代码部分,通常与Servless框架进行整合,将计算资源通过独立集群或者沙箱的方式单独承载。

3      总结

在介绍了原理之后,华为云Astro距离实现低代码的能力高上限、门槛低下限的要求仍然有大量细致工作要做。

Astro体验通道:https://console.huaweicloud.com/appcube/?region=cn-north-4#/home?utm_medium=hdc

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

823. 排列

链接: 链接 题目: 给定一个整数 nn,将数字 1∼n1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 nn。 输出格式 按字典序输出所有排列方案…

图像处理|思维导图|期末资料分享

关于这些思维导图 都是博主期末考试之前临时抱佛脚的时候整理的资料,内容涵盖应该是比较全面,比较详细的。资料博主都放在了Github的链接里面,需要的伙伴自行上我的Github下载就行。 ImageProcessing-MindMapshttps://github.com/Yufccode/…

亚马逊云科技为企业提供一站式的出海策略,为企业保驾护航

走出国门,寻找新的盈利空间、优化资源配置、实现创新突破,已经成为中国企业的战略共识。如何进行全球化布局、本地化运营,实现高质量出海,是出海企业共同面临的课题。在【潮向新世界】出海日活动上,亚马逊云科技分享了…

单调队列算法

原文链接:https://blog.csdn.net/xzerui/article/details/118684260 一、基本概念 单调队列是指:单调递增或单调递减的队列。所以它也有如下几个性质: 1.队列中的元素在原来的列表中的位置是由前往后的(随着循环顺序入队)。 2.队列中元素的…

请求响应-响应-@ResponseBody统一响应结果

ResponseBody 类型:方法注解,类注解位置:Controller方法上/类上作用:将方法返回值直接响应,如果返回类型是 实体对象/集合,将会转化为JSON格式数据后再响应说明:RestController Controller R…

【unity细节】为什么有时候修改了脚本中的数据但是面板中的数据还是不改变

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐为什么有时候修改了脚本中的数据但是面板中的数据还是不改变⭐ 文章目录 ⭐为什…

视频直播点播平台EasyDSS增加首次登录强制修改密码等新功能

EasyDSS视频直播点播平台支持Flash、H5播放,可提供一站式的视频推拉流、转码、点播、直播、时移回放、存储等服务,支持播放H.265编码视频,可兼容多操作系统。搭配RTMP高清摄像头使用,可将设备的实时流推送到平台上,实现…

java 线程安全问题

一、多线程带来的问题 多线程主要解决效率问题,但是也带来了线程安全问题。 例如两个线程 A 和 B 同时启动执行 400 次 m m 1,期待 800 ,实际 m 的结果不一定正确,如下: public static void test1() throws Interr…

【C语言】字符函数和字符串函数(一)—>库函数的介绍与模拟实现

目录 前言: 一、函数介绍: (一)求字符串长度 (1)strlen (二)长度不受限制的字符串函数 (2)strcpy (3)strcat (4&a…

什么是HTML5?HTML5的含义、元素和好处

HTML5是超文本标记语言(HTML)的第五版,网络浏览器使用它来可视化代码。它在网站功能、网页内容开发等方面有一些改进。 HTML的发展 在万维网的早期,主要的网络浏览器创造者(例如微软Internet Explorer和Mosaic Netscape)开发了特…

std::thread和std::mutex

std::thread std::thread用来创建一个线程&#xff1a; #include <thread>void threadFun(int temp) {int i 0; }int main() {std::thread t1(threadFun, 100);t1.join();//t1.detach();return 0; }创建了一个名为t1的线程&#xff0c;调用join方法阻塞等待线程退出&a…

【leetcode】61. 旋转链表 (python)

题目链接&#xff1a;61.旋转链表 写法一&#xff1a;暴力 class Solution(object):def rotateRight(self, head, k):""":type head: ListNode:type k: int:rtype: ListNode"""# 暴力&#xff1a;每次移动一个&#xff0c;时间复杂度 O(N^2)&am…

详解汽车电磁悬架(上)

摘要&#xff1a; 从汽车发明之日起&#xff0c;人们对于汽车平稳行驶的追求步伐就不曾停止过。充气轮胎的发明让车辆能够更加平稳舒适的行驶&#xff0c;承载式车身以及加厚的底盘则进一步提高了汽车的舒适性。随着科技的发展与生活水平的提高&#xff0c;人们对汽车的舒适性…

【C】字符串函数和内存函数的介绍

库函数&#xff08;这些函数都在头文件string.h中&#xff09; 字符串函数求字符串长度strlen 长度不受限的字符串函数strcpystrcmpstrcat 长度受限的字符串函数strncpystrncmpstrncat 字符串查找strstrstrtok 错误信息报告strerror 字符操作字符分类函数字符转换函数 内存函数…

测试必备的15个docker命令,你都掌握了吗

1、Docker容器信息 ##查看docker容器版本docker version##查看docker容器信息docker info##查看docker容器帮助docker --help 2、镜像操作 提示&#xff1a;对于镜像的操作可使用镜像名、镜像长ID和短ID。 2.1、镜像查看 ##列出本地imagesdocker images##含中间映像层docke…

iview-admin使用小结

首先在使用一个框架之前一定要完整的看一下相关文档&#xff0c;因为框架中会封装常用的功能&#xff0c;也会更加符合大众要求。在ui设计图上&#xff0c;可能实现某个功能设计图中给出的交互并不是很好&#xff0c;而在框架中有更好的组件可以实现&#xff0c;但因为没有看文…

物联网技术、测试要点和测试标准

目录 物联网定义 物联网中最常用的技术 物联网测试概述 测试人员在物联网中面临的挑战 测试物联网系统时使用了各种工具 &#x1f381;更多干货 完整版文档下载方式&#xff1a; 物联网定义 物联网&#xff1a;利用嵌入式电子设备、微芯片等连接车辆、家电、医疗设备&am…

广州华锐互动 | 鸡养殖VR教育实训系统

鸡养殖VR教育实训系统由广州华锐互动开发&#xff0c;是一种基于虚拟现实技术的培训工具&#xff0c;旨在为鸡养殖行业的从业人员提供更加直观、生动的学习体验。该系统通过虚拟现实技术&#xff0c;将鸡养殖过程中的各种场景、操作和技能呈现在学员面前&#xff0c;让学员可以…

关于 Linux 的常用命令

目录 前言什么是 Linux获得 Linux 环境为什么使用命令控制关于 XShell 下的复制粘贴 Linux 常用命令ls (罗列文件)cd (切换目录)pwd (显示当前路径)touch (创建一个空文件)cat (读取文件内容)man (查看用户手册)echo (回显)vim (文件编辑器)mkdir (创建目录)rm (删除目录/文件)…