浅析华为云Astro的5大关键能力技术
摘要:本文以技术方案视角,对华为云Astro低代码平台的一些核心功能进行简要介绍。
背景介绍
低代码开发基于可视化开发的概念,结合了云原生和多终端体验技术,它可以在大多数业务场景中,帮助企业显著的提升效率。同时为专业开发者提供了一种全新的高生产力开发方式,让不懂代码的人通过“拖拉拽”开发组件来完成应用程序的构建。从某种意义上说,低代码可以弥补日益扩大的专业技术人才缺口,同时也可以促进企业与技术之间深度协作的最终敏捷形式。
本文以技术方案视角,对华为云Astro低代码平台的一些核心功能进行简要介绍。
关键能力介绍
数据建模和数据管理
华为云Astro的一个核心特性就是运行时提供数据建模和与数据存储,帮助开发者做到所见即的的发布,在其表现形式上,通常低代码平台通常分为”表单驱动”和”模型驱动”两种模式。不管是哪种模式,都要求低代码平台具备灵活存储用户自定义数据模型的能力。当下主流的低代码平台主要有以下一下两种大的方案。
方案一:使用关系型数据库,将数据模型的定义和修改直接转化为数据库中DDL的表操作。 该方案的优势在可以直接利用关系型数据库的能力,包括SQL优化与事务一致性等。 弊端在于有大量的DDL语句操作,并且关系型数据库的Schema数量和表的数量也都都是有限制的,在成本控制上面临着较大挑战。因此该方案适用于一些线下交付,单租形态的低代码。
方案二:Meta+Data的宽表模型,将模型的定义转化为宽表的模型存储。该方案的优势在于可以灵活的定义数据模型,不需要考虑因模型变化导致的DDL语句。再具体实践中,宽表可以有不同的选型,例如文档数据库,搜索、分析型数据库、关系数据库等。不同类型的存储的宽表选型面临着事务一致性、行列扩展限制、索引构建不同的挑战。
页面编排
页面编排是低代码的核心功能。狭义上的页面一般指的是表单表格,广义上的页面还可以包含登录Portal页、大屏页等多种样式。对于页面编排目前实现方式也基本相同,采用JSON格式的页面Schema定义,同时提供页面编排的设计引擎和页面运行时的渲染引擎。技术方案基本围绕Vue与React两大技术框架与相关UI实现。
在交互逻辑处理方面,页面编排基本上采用两种思路来处理。
思路一:固定交互行为,通俗的说法就是平台预置的组件与组件的行为方式。所以,组件的多少、组件的能力、组件的扩展性也是衡量低代码平台竞争力的一个指标。
思路二:使用扩展性脚本语言,JS和TS都是常用的选择。在代码中包含循环、递归、变量等抽象操作,这些抽象的逻辑是无法通过拖拉编排来完成的。脚本语言作为低代码平台的胶水部分,在执行安全性、沙箱环境等方面仍然面临较大挑战。一份权威机构的报告中,编程接口被认定为企业级低代码开发平台的重要标志,不具备编程接口的“低代码”被划归为“无代码”,转移到那些只适用有限用例的平台报告中。
流程和业务逻辑
流程编排是低代码平台的的另一基础能力。低代码平台能否构建出复杂的流程来支撑企业业务和流程编排的易用性是衡量流程能力的重要指标。
通常我们再说”流程编排”的时候,指的是工作流的编排。BPMN2.0的规范之上,开源工作流已经具备了非常成熟的能力。业界的低代码厂商在实现工作流的方案商通常有两种,一是基于开源框架扩展和封装,二是基于BPMN2.0规范来自己来实现。
另个”流程编排”的概念指的是集成流编排基于EIP(Enterprise Integration Patterns)协议。目前Spring Integration、 Apache Camel等都是比较成熟的集成流框架。
上述两种编排在协议、框架和使用场景上有着明确区分,目前国内的低代码平台大多数只提供工作流编排的能力。
接口和集成
为了避免“数据孤岛”现象,企业级应用通常需要与其他系统进行集成,协同增效。此时,内置的集成能力和编程接口就变得至关重要。
这里涉及到连接器的概念,连接器是API的代理和包装器。连接器的定义广泛使用OpenApi的规范,基于Swagger2.0或者Swagger3.0的规范来实现。API的调用大多采用HttpClient的方式,基于Oauth等授权协议完成调用。
除了Rest接口的集成,云厂商的低代码在系统集成商还有着更多方面的拓展。基于云上的网络方案与授权协议,可以与用户的MQ、DB、K8S集群等打通,完成与用户托管方案的深度集成。
代码生成与低代码高代码融合
基于华为云Astro完成表单构建、模型构建之后,很容易基于模型元数据定义生成对应后端模型和与之对应的模型操作接口。在一些复杂的业务场景下,需要开发者以高代码的形式对这些模型和接口进一步重载或复写。
在高代码融合上,基础功部分提供了预置函数和用户自定义函数功能,通过条件表达式引擎来实现。高级代码部分,通常与Servless框架进行整合,将计算资源通过独立集群或者沙箱的方式单独承载。
总结
在介绍了原理之后,华为云Astro距离实现低代码的能力高上限、门槛低下限的要求仍然有大量细致工作要做。
浅析华为云Astro的5大关键能力技术的更多相关文章
- 《一张图看懂华为云BigData Pro鲲鹏大数据解决方案》
8月27日,华为云重磅发布了业界首个鲲鹏大数据解决方案--BigData Pro.该方案采用基于公有云的存储与计算分离架构,以可无限弹性扩容的鲲鹏算力作为计算资源,以支持原生多协议的OBS对象存储服务 ...
- 揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】
2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实 ...
- 王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019
演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019) ...
- 华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶
华为云鲲鹏云容器 见证BigData Pro蝶变之旅大数据之路顺应人类科技的进步而诞生,一直顺风顺水,不到20年时间,已渗透到社会生产和人们生活的方方面面,.然而,伴随着信息量的指数级增长,大数据也开 ...
- 华为云CodeArts Artifact,5大特性守护制品质量与安全
摘要:2023年2月23日,华为云CodeArts Artifact制品仓库服务正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量. 本文分 ...
- 基于华为云IoT Studio自助生成10万行代码的奥秘
华为IoT小助手们搬好板凳.备好笔记本.听了HDC.Cloud的几场华为云技术架构师的直播讲课,感觉获益匪浅却又似懂非懂,直后悔自己没有好好打下基础.为了避免再次出现这样的情况,小助手偷偷跑去找了华为 ...
- “3+3”看华为云FusionInsight如何引领“数据新基建”持续发展
摘要:一个统一的现代化的数据基建需要三类架构来实践三种不同的应用场景. 近期,美国知名科技企业风投机构A16Z总结出一套通用的技术架构服务,分为以下三种场景. 一.数据基建架构全景 数据流向显示,左侧 ...
- 关于购买Redis服务器:腾讯云、阿里云还是华为云?
个人分类: redis使用 编辑 新年伊始,很多商家都开始进行新年产品大促销,在分布是缓存Redis领域,几家大公司也是打得如火如荼,各有千秋啊. 现在市场上比较有口碑的商家有腾讯云.阿里云.华为云三 ...
- webpack4.0各个击破(6)—— Loader篇【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 华为云MySQL金融版正式商用,高可靠的金融级数据库来了
摘要:全新三节点架构,基于深度优化的MGR组复制技术,提供金融级的数据一致性. 日前,华为云数据库MySQL 金融版正式商业化发布,MySQL金融版采用MGR技术,基于Paxos协议,采用一主两备三节 ...
随机推荐
- 浅谈对属性描述符__get__、__set__、__delete__的理解
1.属性描述符的基础介绍 1.1 何为属性描述符? 属性描述符是一种Python语言中的特殊对象,用于定义和控制类属性的行为.属性描述符可以通过定义__get__.__set__.__delete__ ...
- 会使用ChatGPT写作业找工作会不会加分啊!!!代码问题直接问ChatGPT不比CSDN好多了吗
1.使用reactnative写一个数字游戏 2.MySQL问题
- LeetCode 周赛 342(2023/04/23)容斥原理、计数排序、滑动窗口、子数组 GCB
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 前天刚举办 2023 年力扣杯个人 SOLO 赛,昨天周赛就出了一场 Easy - Ea ...
- 当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么?
当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么? 自从2019年Google推荐Kotlin为Android开发的首选语言以来已经经历了将近四年的时间, Compo ...
- 咚咚咚,你的王国之泪已上线「GitHub 热点速览」
本周最大的热点,莫过于 Mojo 语言了,几大媒体均有报道这门兼顾 Python 优点和性能的新语言.当然还有凭借 Switch 游戏<塞尔达传说·王国之泪>登上热榜,获得 3,500+ ...
- ET–异步协程使用–TimerComponent篇
之前可能也有群友写过一些关于ET框架中TimerComponent的使用教程,我这里写下关于TimerComponent的常规使用跟一些不常规使用的方法以及一些情况下需要使用到的不同的函数. 先来看看 ...
- cefsharp学习笔记
环境:VS2015+cefsharp 57.0 全部代码如下: 1.要初始化,否则不能刷新 using System; using CefSharp; using System.Collections ...
- 文心一言 VS chatgpt (6)-- 算法导论2.3 1~2题
一.使用图 2-4作为模型,说明归并排序在数组 A=(3,41,52,26,38,57,9,49)上的操作. 文心一言: 使用图 2-4作为模型,说明归并排序在数组 A=(3,41,52,26,38, ...
- vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件
在 Element Plus 中,el-form 是一个表单组件,用于创建表单以便用户填写和提交数据.它提供了许多内置的验证规则和验证方法,使表单验证更加容易. 使用 el-form 组件,您可以将表 ...
- json函数
Python与JSON(load.loads.dump.dumps) 1.Python中加载JSON 使用loads(string):作用将string类型转为dict字典或dict链表 # 加载 ...