您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

面向敏捷应用的低代码开发技术及平台建设

时间:2023-07-31 16:27:36  来源:  作者:IT168企业级

传统软件开发交付链中,需求经过3次传递,用户→业务→架构师→开发,每一层传递都可能使需求失真,导致最终交付的功能返工。业务的变化促使软件开发过程不断更新、迭代和演进,而低代码开发即是软件开发衍生的其中一条分支。低代码是传统软件的进一步演变,以其高效、灵活和稳定的特点应用到企业的业务场景。低代码开发降低了应用搭建门槛,减轻对专业工程师的依赖,使得业务人员用拖拽的方式即可自行搭建应用平台,满足业务部门的个性化需求,降低人力成本,缩短项目整体开发周期。在后期运维上,低代码平台的迭代速度快,灵活性更高。低代码开发的核心价值是敏捷响应用户需求,增加应对复杂应用场景的能力。

1 国内外低代码开发研究现状

IBM在1980年首次提出低代码开发,在随后的近30年内发展缓慢,随着技术的沉淀和应用软件的深度应用,低代码迅速发展,主要经历4个阶段。

1)萌芽阶段:1980—2000年,IBM的快速应用程序开发工具(RAD)被命名为低代码。美国公司和实验室开始研究可视化编程,推出第四代编程语言(4GL),后来衍生为可视化编程语言(VPL)。

2)缓慢发展阶段:2000—2015年,企业逐渐涉足低代码开发领域,如1999年成立的Salesforce,2001年成立的OutSystem。

3)升温阶段:2015—2018年,AWS、google、Microsoft和Oracle等软件行业巨头的加入,使低代码领域的发展逐步升温。

4)快速发展阶段:2018—2021年,低代码领域进入快速发展阶段,根据Gartner研究报告,国外共有18家供应商进入低代码应用平台领域。2018年,西门子以6亿欧元收购低代码应用开发领域的领导者Mendix,快速应用开发的低代码平台OutSystems获得3.6亿美元的投资。

国外对低代码平台的重视程度和研究投入在2018年以来显著增加,美国仍是技术的先驱者和领导者,随着云计算技术的发展,传统平台向PaaS平台转移。多数厂商的产品能够支持私有云和本地部署,个别产品如LightningPlatform、PowerApps仅支持自身的云平台。这种捆绑销售模式虽然在一定程度上有利于自身云平台的推广,但由于云平台和低代码平台的竞品都较多,对低代码平台的推广非常不利。

国内涉足低代码领域比国外晚近20年,自2000年之后才开始研究探索低代码技术,主要经历了2个阶段。

1)早期探索阶段:2000—2015年,少数公司开始尝试对低代码进行研究,如较早的炎黄盈动。

2)快速发展阶段:2015—2021年,国内低代码开发平台进入爆发期,各厂商纷纷推出商用产品。2019年开始,互联网大厂阿里、腾讯和字节的加入,使低代码进入快速发展阶段。传统软件厂商也基于自身产品构建低代码开发平台,如ERP厂商金蝶、用友、明源云和黑帕云,OA厂商致远、蓝凌、泛微,CRM厂商销售易、纷享销客,财税厂商先胜业财,音频厂商声网、容联云、即构科技和融云等。

国内低代码平台起步晚于国外,成熟度与国外主流供应商存在较大差距,但自2018年以来人力和资金投入加大,创业型公司、互联网生态型公司、传统企业管理软件公司开始转型和孵化自己的产品,出现百家争鸣的局面,与国外平台的差距也在逐步缩小。

根据海比研究院、中国软件行业协会联合发布的《2021年中国低代码/无代码市场研究报告》显示,我国低代码厂商约有120家,整体市场规模已达19亿元,未来五年复合增长率将达到49.5%,第三方使用人员规模达到42.6万人。拥有足够竞争力的低代码开发平台通常具备3个核心能力。

1)aPaaS。应用程序平台即服务,用来快速构建后端逻辑。2)MADP。支持移动应用的开发平台,用来快速构建各种场景化应用。3)BPM。业务流程管理,以图形方式设计业务逻辑,然后由事务流程引擎执行模型。国内大部分低代码产品主要提供BPM功能,还需要继续向aPaaS和MADP拓展。

2 低代码开发适用性分析

2.1 低代码适用系统

低代码工具的推广广告对于具有高交付压力的企业非常具有诱惑性“只需拖拽鼠标,非编码人员也可以很快完成一个简单的应用程序”。凡事都有两面性,对于投入过热的领域,我们应当更多的理性判断,看清利与弊,而不是盲目跟从。低代码开发能在一定程度上为企业降本增效、减负增产,但也存在其局限性。

1)多数低代码应用平台仅提供公有云部署,应用和数据运行在供应商的PaaS服务器,数据安全和隐私难以得到保障,尤其是商机商业秘密的数据。

2)数据模型、元数据等底层都是平台专有,应用程序和数据的缺乏移植性,对低代码平台厂商形成依赖。

3)可靠性和安全性存在风险。如果低代码开发平台的组件存在质量问题或安全漏洞,开发出的应用程序的稳定性和安全性也会受到影响,而且难以控制。

4)标准化的UI设计限制了个性化的前端交互需求。

5)固化的指令式执行模式难以处理复杂、特殊的业务场景,业务流程只能适应平台提供的组件,组件的功能和类型限制了应用程序的开发。即使技术足够成熟,能够处理特殊规则和流程,也需要将规则转换为计算机能够识别的逻辑。不能一个工具没有或使仅有少量编码经验的人员变成高级开发人员。

6)平台的易用性和业务的灵活性难以调和,过于简单的设计虽然方便使用但难以应对复杂的业务场景。过于灵活的设计看似功能强大,但又难免会让业务专家难以上手。

7)低代码平台上的功能代码由工具自动生成,数据结构和算法不透明,组件封装,当出现缺陷和故障时,排查处理会异常困难。大量的使用问题、各种平台的报错都堆积到低代码平台的运维团队,运维团队会很快成为整个系统的效率瓶颈。

选择低代码应用平台应当扬长避短,符合以下特征的应用可以考虑使用低代码平台构建:1)业务变化快,且规则相对简单;2)开发重复性高;3)管理模式标准化程度高;4)需求不成熟,快速搭建原型;5)对数据的安全性和隐私性安全要求不高;6)对UI个性化要求不高。

2.2 低代码适用群体

从市场需求角度,低代码平台可以划分为4大类型。

1)场景应用型,以满足业务场景应用开发为主,开发的应用主要用于企业自用。目前用户量占比最高的低代码平台类型,约为45.7%。

2)产品研发型,以满足复杂的软件产品或解决方案开发为主,主要为其他企业提供应用开发。

3)平台生态型,提供开发标准和交易平台,以打造开发生态为主,为客户提供一站式的应用开发或产品服务。平台厂商通常开发标准和交易规则,为平台上的SaaS企业、专业开发者、软件开发商和ISV等众多合作伙伴提供技术、渠道等支持。

4)技术赋能型,以提供人工智能算法、区块链等先进技术插件为主,降低先进技术的应用门槛,目前使用者占比最少,仅1.7%。

从使用者角度,低代码平台可以分为5类。

1)软件产品提供商。将低代码开发平台作为一种工具提供给独立软件开发商ISV、系统集成商SI、SaaS企业、渠道代理商和咨询公司等,以实现其各自的目的。如软件企业通过购买低代码开发工具拓展自身的底层开发能力,以占领更多的市场;渠道商和咨询公司把低代码开发作为项目实施的工具,用于提高自身的系统部署效率;系统集成商把低代码开发视为一种新功能,招标时为潜在客户提供更完整的解决方案。

2)软件开发承包商。通过低代码开发对外提供开发服务,承接各类企业的原有信息系统改造或创新应用开发等项目。通过低代码开发平台,可以有效提高开发效率,降低人员投入成本,能够在更短的时间内开发出一个完整的应用系统。

3)一站式应用开发平台服务商。将低代码开发打造成一个平台,任何人或企业都可以到平台上开发应用,并且可以进行二次开发个性化定制服务,而平台则负责提供技术支持。

4)企业自用。企业内部具备设计开发能力,使用低代码平台构建自身需要的应用系统。

5)个人研究学习。个人或教育机构研究和学习低代码平台及技术。

按用户专业程度,技术人员一般可分为3类。

1)特定技术人员,指前端、后端和DBA等专业技术人员。

2)一般技术人员,指有一定逻辑编码能力的开发人员,能够快速理解并运用表达式、事件等概念。

3)非技术人员,指没有开发经验的产品、运营、商务和行政人员。

低代码平台最终的受众群体是企业,只有企业深度应用后才能产生更大的规模经济效益,无论是其他软件厂商集成自家产品后捆绑销售,还是低代码平台提供商自行销售,最终面向的都是企业用户。

3 低代码开发平台设计与实现

3.1系统架构总体设计

本项目部署的目标平台为混合云,系统将以微服务、SaaS为基础平台展开设计,整合Kube.NETes、Serverless和NoSQL等技术架构,构建支持云原生低代码技术平台。低代码开发平台系统架构如图1所示。

图 1 低代码开发平台系统架构

第一层支持IaaS(基础设施即服务),云服务提供商租赁模式的基础设施,本项目使用混合云。第二层支持CaaS(容器即服务),使用云厂商提供的托管的容器编排引擎部署和运行容器,管理集群,自动扩展和故障管理,并维护共同的基础设施层,包括治理和安全,本项目使用的为青云,其内置了Kubernetes。第三层支持PaaS(平台即服务),使用云服务提供商云服务中的软件,如数据库、对象存储和缓存等,本项目使用对象存储OBS。第四层支持SaaS(软件即服务),将低代码开发模块封装为单独的应用,提供给各个租户。

3.2表单引擎设计

表单引擎是快速实现表单开发的轻量级设计工具。目前,有2种思路可实现表单引擎设计,具体如下。

1)基于文件:创建表单时,先创建一个网页文件,在该文件上按需拖放Web控件,表单运行时,给网页随机生成一个地址,并将地址配置到菜单。

2)基于关系数据库:由表单设计器、表单解析执行器、表单模板3部分组成。表单设计器将表单元素存储到关系数据库,并为每个表单生成一个ID;表单模板将从表单设计器上设计的组件关系存储到数据库,由各个组件表组成的数据关系,组合成表单模板;表单解析执行器解析表单模板数据,并在网页上展示。

3.3流程引擎设计

流程引擎用于为表单的审批提供支持,本项目流程引擎使用开源的Camunda,可自定义流程模板和节点驱动。

3.3.1数据库设计

自定义的数据库表主要对Camunda原生的数据库表做进一步扩展,以支持子任务、任务与审批对象之间的关联、多人会签投票、审批历史等与业务强相关的场景。流程引擎数据库表设计如图2所示。

图 2 流程引擎数据库表设计(部分)

3.3.2功能实现

各租户可根据自身业务流程需要自定义流程模板,并可保存后再次编辑。Camunda工作流引擎的流程元素节点主要包括开始事件、中间/边界事件、结束事件、网关、任务、子流程、数据对象引用、数据仓库引用、参与者和组。其中,最常用的任务节点包括常规任务、不足的是,空中三角运算的三维模型生成技术存在一些局限性,例如模型效果受到采集影像影响、生成的较高精度模型仍然需要内业人员进行针对性修缮、重做等,进而导致三维可视化系统制作过程中产生新的开销。不过可以预料的是,随着测量技术与三维可视化技术的迭代更新,更加成熟的理论应用和研究成果将不断迸发。在全面实施乡村振兴战略背景下,乡村规划作为促进乡村可持续发展的重要治理工具之一,将发挥更大的作用。这也将为我国乡村地区实景三维模型建设提供技术参考与应用思路,为加快构建智慧乡村平台提供技术可行性依据。



Tags:低代码   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
低代码开发:Nacos配置详解,如何确保平台跳转正常运作
在当今低代码开发的时代,平台的易用性和灵活性非常重要。右上角平台跳转作为用户界面中常见的交互元素,对于提高用户体验具有举足轻重的地位。然而,有时候我们会遇到跳转失效的...【详细内容】
2024-01-25  Search: 低代码  点击:(50)  评论:(0)  加入收藏
“低代码开发平台”到底是什么?
低代码开发平台到底是什么? 低代码开发平台(英文全称Low-Code Development Platform)是一种基于图形界面、可视化编程技术的开发平台,旨在提高软件开发的效率和质量。它可以帮助...【详细内容】
2023-12-11  Search: 低代码  点击:(139)  评论:(0)  加入收藏
如何在组织中有效地使用低代码工具?
译者 | 牛昊天Thoughtworks 第 28 期技术雷达中提出,市场中低代码平台能力在近些年取得巨大进步,但依然主要集中在解决中低复杂度场景问题,当面对复杂的业务场景时,仍然存在一定...【详细内容】
2023-12-06  Search: 低代码  点击:(136)  评论:(0)  加入收藏
如何用低代码的思路设计文字描边渐变组件
前言文字特效设计一直是困扰 Web 前端 Css 世界多年的问题, 比如如何用纯 Css 实现文字描边, 渐变, 阴影等, 由于受限于浏览器兼容性的问题, 我们不得不使用其他替代方案来...【详细内容】
2023-11-23  Search: 低代码  点击:(160)  评论:(0)  加入收藏
低代码和AI:朋友还是敌人?
低代码和新人工智能 (AI) 之间的界限越来越模糊。从历史上看,低代码/无代码平台通过图形用户界面引入了软件开发自动化,使专业和公民开发人员能够快速构建工作流程并生成应用程...【详细内容】
2023-11-14  Search: 低代码  点击:(233)  评论:(0)  加入收藏
AI技术是如何应用于低代码及无代码开发的呢
低代码/无代码开发是近年来快速发展的一种开发方式,它通过图形化界面和自动化工具使得软件开发变得更加简单、高效。而人工智能(AI)技术的不断进步和应用,为低代码/无代码开发带...【详细内容】
2023-10-10  Search: 低代码  点击:(266)  评论:(0)  加入收藏
云架构中低代码和无代码开发的风险
作者 | David Linthicum策划 | 言征代码再简单,老板们也不会去写。不只是因为他们太忙,还因为简单的代码,坑也很多。低代码和无代码开发平台最近获得了巨大的关注,随着 2023 年...【详细内容】
2023-09-25  Search: 低代码  点击:(255)  评论:(0)  加入收藏
警惕低代码隐藏的六大危险
译者 | 布加迪审校 | 重楼代码开发的前景再诱人不过了。谁不想减少工作量?谁不想靠在座椅上,让机器收拾残局?毕竟,几十年来我们一直在告诉机器该怎么做。它们现在应该已经会做一...【详细内容】
2023-09-06  Search: 低代码  点击:(256)  评论:(0)  加入收藏
低代码的六大隐患
作者丨Peter Wayner编译丨诺亚低代码一直在争议中向前发展。作为一种软件开发模式,它有非常迷人的一面,通过简单的“拖、拉、拽”即可快速搭建软件,极大地减少了工作量,提升了开...【详细内容】
2023-09-01  Search: 低代码  点击:(350)  评论:(0)  加入收藏
AI开发者必备的22款低代码工具
译者 | 陈峻审校 | 重楼现如今,人工智能工具(AI)在功能上已非常强大。它们不但能够让开发团队创建出具有影响力的产品,而且可以让管理和运营团队以创新且高效的方式,管理自己的初...【详细内容】
2023-08-25  Search: 低代码  点击:(494)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条