精华内容
下载资源
问答
  • 模型驱动
    千次阅读
    2021-11-10 11:39:47

    527097989810ab36009508b88c6adc4d.png

    题图:模型(模特)驱动(开车)

    https://pixabay.com/

    模型驱动和表单驱动是在讨论低代码 / 无代码技术时经常遇到的概念,我在前一篇万字长文讲透低代码中把模型驱动和表单驱动列为判断是否专业低代码开发平台的第一条标准。这么说实际操作上没啥问题,但从原理上并不是个精确的说法,所以补充解释一下。

    实际上只要是比较专业的平台,实现上都是模型驱动,即都是通过某种形式的DSL描述页面、实体、流程、权限等模型,并通过某种翻译器翻译为平台目标代码(如前端的JavaScript或后端的Java系)或通过某种引擎来执行这些DSL。通俗理解,这里的DSL就是模型,翻译器或引擎就是驱动。这里面最典型的可能是工作流,专业的平台肯定有一套DSL(也不用自己定义,业界有BPMS标准)来描述工作流,然后用一个工作流引擎来驱动执行这个工作流。如果今天还有人不用模型驱动的方法来做工作流平台,那肯定会被专业人员笑话。

    表单驱动其实不是一个有清晰定义的概念,好像在国外也不流行,但在国内讲的不少。我觉得表单驱动可以理解为一种以表单为一等公民的简化的模型驱动。表单驱动的产品竭力去除了软件开发中过于专业的概念,比如实体、属性、方法、 函数、表达式、循环、递归等,对没有开发基础的业务人员来说比较友好

    但对开发来说,反而存在较高的范式迁移带来的学习和理解成本。开发会觉得这类产品表单和实体不分前端和后端不分流程和逻辑不分。表单和实体不分指的是不能定义一个脱离了表单展现形式的实体,前端和后端不分指的是你不能控制一段逻辑或流程是在前端运行还是后端运行,流程和逻辑不分指的是没有独立的一套逻辑开发功能。表单驱动的产品在可视化开发方面的设计往往较为精简,比如变量类型一般不提供struct和list、结构化编程能力一般不提供循环、递归、一般没法直观的对过程和变量进行层次化的组织,没法直观看到当前上下文能够使用哪些变量。开发人员面对这样的平台,往往一开始觉得不知道怎么下手,也容易对这样的平台面对复杂需求时的功能和性能产生不信任。

    业界说的模型驱动产品,如OutSystems,其实是一种前端、逻辑和数据层分离设计的综合IDE型的产品。这类产品的一等公民不是表单,实体、页面、逻辑、流程、接口等都是一等公民。这类产品前端有专业的页面设计、事件触发,有专业的逻辑层可视化开发能力及内嵌专业代码片段的扩展能力,逻辑还可以区分前后端(这对性能有巨大影响),数据层有专业的实体定义及操作能力。这样的设计令没有开发背景的业务人员望而却步,但对开发来说确感觉比较熟悉,容易上手,也易于树立对平台能力的信心

    准确来说,表单驱动是一种外在形式,模型驱动是一种内在实现,两者并非二分法。但从实际的角度,认为表单驱动型产品比较适合业务人员,突出模型驱动的产品比较适合专业开发,则是大差不差的。

    本公号长期不定期连载数字化和数字技术相关名词解释系列,前期已出如下4篇,这是第5篇,欢迎关注:

    1. 数字化名词解释—数字化

    2. 数字化名词解释—数字化转型

    3. 数字技术名词解释—数据湖

    4. 数字技术名词解释低代码(万字长文讲透低代码)

    更多相关内容
  • 它表现了模型驱动应用所处的典型情景,显示了信息技术(左侧)与业务(右侧)之间的鸿沟,包括它们各自的抽象层级系统(呈现为两个方向相反的金字塔)。模型驱动应用基于人可理解/操作且计算机可处理的中介模型,...
  • --真正的模型驱动开发。 目前的建模工具很多,不过个人的观点来看,基本都跑偏了。没办法真正应用模型驱动来有效开发。 废话少说。 下面的就是MDA(KAYA)建模工具。左侧是需要用到的元素,简单说来包括 1.Product...
  • 2005年6月模型驱动架构(MDA)是OMG提出的新的方法学,是一种新的系统开发方法,它强调整个系统开发过程由对软件系统的建模行为驱动,完成系统需求分析、架构设计、构建、测试、部署和运维工作。与传统的UML模型相比,...
  • Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity 模型驱动 人脸驱动 Unity ...
  • 在本文中,在业界的其他相关活动的上下文中了解模型驱动开发(model-drivendevelopment,MDD)。比较软件工厂、领域特定语言和MDD方法。探索如何将开发构件可视化为模型,以及使用可执行的统一建模语言...
  • 火龙果软件工程技术中心本文内容包括:引言使用RationalSoftwareArchitect来应用MDDUML模型转换模式从业务问题到软件解决方案使用带有模式的MDD的好处经验教训总结参考资料模型驱动开发(Model-drivendevelopment,...
  • 2016年的演讲文稿。关于模型驱动应用架构的基本概念,基本原理,思想脉络,包括理论和哲学背景的一个概括性介绍
  • 应用程序行为智能测试自动化——基于应用程序行为的模型驱动测试方法软件测试【摘要】如何提高测试的效率,如何让测试人员在测试过程中不会感到单调乏味,是我们一直在思考的问题。本文通过一个虚构的故事,提出了一...
  • 模型驱动基本原理和在软件/信息系统、企业工程或企业架构等方面应用最早的全面系统阐述。新一代企业信息系统(NEIS)就是模型驱动的企业信息系统,模型就是企业模型。其实现的基础之一是模型驱动机制(MDM)。另一...
  • 领域驱动设计与模型驱动开发,slideshare 搬运而来,非常不错
  • 随着模型驱动体系结构(model driven architecture,MDA)技术和环境的不断发展,模型驱动软件开发(model driven development,MDD)已经成为一种新的软件开发模式,对于MDD软件开发过程中的核心问题,即面向不同...
  • 针对财务预算的领域概念和复杂需求,将一种模型驱动的开发方式实践于预算管理系统的设计与实现,使开发人员脱离复杂的数据库设计,更加专注领域概念的消化、模型和数据传输对象的创建。给出了预算管理系统的整体说明...
  • 场景模型驱动测试-QECon深圳站2021年全球软件质量&效能大会
  • 模型驱动开发

    2014-02-26 21:09:14
    模型驱动模型
  • 模型驱动开发(Model-drivendevelopment,MDD)是软件开发的一种样式,其中主要的软件工件都是由代码和其他工件所生成的模型。其目标是提高企业应用程序开发的生产力和质量。模式在MDD的模型转换和代码生成中扮演...
  • 模型驱动

    2011-11-11 09:28:09
    模型驱动
  • 目前国外内主流的低代码开发平台有:奥哲氚云、云程、ClickPaaS、阿里宜搭、华为AppCube、腾讯微...基于模型驱动的可视化开发是当前低代码平台实现的主要实现技术,为什么基于模型驱动开发成为了低代码的主要技术途径。

    目前国外内主流的低代码开发平台有:奥哲氚云、云程、ClickPaaS、阿里宜搭、华为AppCube、腾讯微搭、百度爱速搭、网易轻舟、金蝶苍穹、普元平台、浪潮iGIX平台、泛微平台、炎黄盈动BPM、蓝凌低代码平台、伙伴云、明道云、简道云、道一云、轻流、搭搭云、白码、数式科技、华炎魔方、维格表、优速云、OutSystems、Mendix、微软Power Platform、Unqork等。

    基于模型驱动的可视化开发是当前低代码平台实现的主要实现技术,为什么基于模型驱动开发成为了低代码的主要技术途径,本文阐述其基本的实现原理和逻辑。

    一、应用构成要素

    我们先看一下汽车的基本构造,由车身、发动机、方向盘等多个零部件构成,因为它是一个工业产品,有实物存在,摸得着看得见,所以大家很容易理解。日本丰田汽车是如何做到自动化流水线生产的,本质上是把产品xBOM定义得很清晰,而且完全结构化了,才能用数字化技术生产汽车产品。

     

           其实,软件系统也是有构成要素的,只不过软件系统跟汽车相比,比较抽象,难以理解,但是想做到低代码/零代码方式开发应用系统,必须对应用系统构成要素进行抽象,层层拆解,直到最小的元素,其实也是一个产品结构树BOM。反过来,如果每个最小的元素都可以通过拖拉拽可视化方式开发,然后可以把这些元素通过配置方式组合起来,就达到了低代码平台开发的要求。

     

    我们大体上可以把软件系统分成:数据、界面、流程、逻辑、菜单这几个一级构成要素,每个一级要素继续分解成二级构成要素,依次类推。以界面为例,界面可以由表单、视图、图表构成,表单由布局、控件、样式、事件构成,控件由复选框、下拉框、输入框等元素构成。通过这个逻辑,大家就能理解低代码平台为什么需要表单设计器了。如果数据、界面、流程、逻辑、菜单都是通过可视化方式配置完成的,那么就形成了低代码平台。

    二、模型驱动原理

            模型驱动是一种软件开发方法,利用一系列模型的设计、映射、引用、转换,来驱动软件的需求、设计、实现的软件工程过程。

     

           以上是低代码平台表单引擎原理图,主要包括模型建模工具(表单设计器)、模型解析引擎、模型实例化引擎、界面渲染引擎、模型库、实例库几部分构成,实际产品开发中部分引擎可以合并为一个组件。

    以下通过一个业务场景举例说明其逻辑,假设用户要设计一个请假申请单。

    第一步:首先要打开表单建模工具,通过拖拉拽方式设计表单,格式是Json或xml均可,设计完成后,提交保存表单模型,调用后端模型解析引擎,模型解析引擎会解析json或xml,生成表单模型元数据,插入到模型数据库中,此时就完成了表单设计工作。

    第二步:表单发布后,用户打开URL链接,请求表单界面渲染引擎,界面渲染引擎通过模型解析引擎得到模型定义对象,进而完成页面动态渲染。

    第三步:用户录入数据,点击提交,请求模型实例化引擎,并把数据插入到数据库业务表中。

            那么基于模型驱动开发的原理有什么好处呢?

    1. 快速设计原型系统,项目经理在需求调研时,直接设计高保真原型系统;
    2. 快速开发业务应用,通过拖拉拽方式比硬编码方式大幅提升开发效率;
    3. 响应需求高动态变化,比如:客户调整样式、加字段、改流程等经常发生;
    4. 模型积累和重用,模型可以导入导出,模型可以分享,相比代码更具备复用性;

    三、低代码核心功能

    1、业务建模:基于元数据模型驱动开发的思想,提供灵活、稳定的元数据模型建模与管理,通过数据实体、属性、关系等元数据配置响应业务需求变化,提供了在线的数据库实体建模和E-R建模功能,支持单表、一对一、一对多关系。

    2、表单建模:在线可视化化表单设计器可快速建符合业务的表单,用于数据采集和流程审批,在线预览,所见即所得。

    3、页面建模:提供可视化配置功能,支持单表、主子表、树等多种模板,基于组件化组合思想,可构建复杂页面功能,并可配置页面查询框、操作按钮等功能。

    4、流程建模:BPMN2.0规范,可视化拖拉拽流程设计;会签、加签、跳转、退回、撤销等多种流程操作,配置即用;用户、部门、角色、岗位、 关系等多种选人方式,符合中国特色组织选人需求。

    5、报表建模:报表设计器是一款在线可视化报表建模工具,提供了汇总表、明细表、柱形图、条形图、饼图、折线图、面积图、雷达图、指标图等多种种常用图表,可以组合及联动使用。设计器采用拖拽操作的风格,简单易用,能够实时展示配置效果,一目了然。

    6、门户建模:拖拉拽方式设计首页,无需编码;多种布局风格,可自由布局;支持多角色门户,不同角色不同首页;在线预览,所见即所得。

    7、大屏建模:无需写代码,在线可视化设计大屏,支持图表、表格、媒体等20+常用组件,支持静态数据、HTTP、SQL等多种获取数据方式。

    8、移动建模:可以在线设计流程和表单,开发应用,无需手写代码,可自动生成移动端界面,极大提升了移动应用开发效率。

    9、数据服务化:无需开发Controller、Service、Dao、Mapper、XML、VO等Java对象,一键即可生成HTTP API接口,跟Swagger无缝结合,生成标准RESTful接口文档。

    参考:

    云程 | 云BPM,云程BPM,低代码平台,低代码开发平台,开源流程引擎,Camunda,flowable,业务流程管理,activiti,智能表单,电子表单,可视化开发,零代码开发,基础平台,流程PaaS,流程SaaS

    2022年国内外主流的低代码平台_大龄码农有梦想的博客-CSDN博客

    展开全文
  • [应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.pdf[应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.pdf[应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.pdf[应用软件,模型,平台]基于...
  • [应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.docx[应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.docx[应用软件,模型,平台]基于模型驱动的应用软件建模平台探索.docx[应用软件,模型,平台]...
  • 针对目前模型驱动架构对MIS开发中的业务建模与需求建模不能提供有效支持这一问题,提出一个以业务为导向、支持模型驱动MIS软件构建的模型体系;建立了一个以业务过程建模为核心的集成化建模元模型,给出了模型详细...
  • 提出基于模型驱动的中国石化企业数据中心模型架构,包括业务模型、逻辑数据模型和物理数据模型,建立业务模型与逻辑数据模型、逻辑数据模型与物理数据模型之间的转换方法。由于逻辑数据模型具有业务无关性和平台无关...
  • 收集来自主流的DDD开发理论知识培训课程,包括: 领域驱动设计简介 领域通用语言 领域驱动设计的构造块 领域驱动设计编程实践 CQRS架构 模型驱动开发
  • 基于模型驱动架构的电信业务元模型抽象研究,冯跃忠,,模型驱动架构(MDA)业务生成技术是新一代的软件开发方法学。在深入分析基于模型驱动的电信业务生成后,文章以SIP Servlet平台为例,�
  • 纯代码开发的企业系统绝大多数都是模型驱动的架构,当需要与之做系统系统集成时,数据打通变的更加容易,部分低代码开发平台甚至能直连其他系统的数据库   如果给表单驱动打上 标签 的话,那就是“无纸化、...

    随着社会数字化进程的加速,旺盛的企业个性化需求和有限的专业开发人员供给之间的矛盾也日益显著,业界亟需更快门槛、更高效率的开发方法和工具,低代码技术便应运而生。

     

    低代码开发,是通过编写少量代码甚至无需代码,就可以快速生成应用程序的一种方法和工具。借助低代码,使用者无需编码即可完成企业系统的常用功能,少量编码开发更多扩展功能。

     

    (低代码开发包含可视化设计和编码扩展能力)

     

    除了大幅提升开发效率,低代码的更大贡献在于帮助非专业开发人员参与到企业系统的开发过程中来,直接弥补专业开发人员的缺口,降低开发成本。实践表明,熟悉企业个性化需求的IT人员甚至业务人员共同创建、迭代和发布应用程序,花费的时间则比传统方式更少。

     

    低代码开发平台可以加速和简化从小型部门到大型复杂任务的应用程序开发,实现开发一次即可跨平台部署,但这只是它能力的一部分。低代码开发平台还加快并简化了应用程序的部署,以及与其他系统的集成。

     

    企业生存的关键取决于产品与业务能力。为了让企业和为其服务的系统集成商更轻松的应对由业务部门发起的大量需求,低代码平台基于不同的场景和企业人力资源配置,使专业开发人员、IT人员和业务人员都能以更高效的方式开发软件。

    使用低代码开发平台的主要应用场景

    1. 新的想法,需求不明确,需要快速投入实验
    2. 没有现成的应用可供采购,只能自己开发
    3. 现成的应用太复杂难用或者太贵
    4. 需要基于现成的应用进行定制化开发才能使用

    低代码开发平台的能力构成

    低代码开发平台的能力与场景化灵活性,可以概括为五个维度。

     

    1. 通用型
    2. 请求处理
    3. 流程
    4. 数据库
    5. 移动优先

     

    除此之外,低代码开发平台通常还需要三个核心产品能力,用以达成其平台特性,形成足够的竞争力。

     

    1. aPaaS:应用程序平台即服务,用来快速构建后端逻辑,这里的平台不只是公有云,按照国内企业用户的使用习惯,还需要支持私有化部署
    2. MADP:支持移动应用的开发平台,用来快速构建各种场景化应用
    3. BPM:业务流程管理,用可视化的模式,而不是代码来描述业务需求,绝大多数场景中应支持可视化业务逻辑设计

     

    以上三点能力是低代码开发平台的重要标志,也代表着低代码开发平台应具备的主要特性。 

    低代码开发平台的能力延伸

    作为低代码开发平台的三大要素,aPaaS、MADP、BPM都具备各自独特的能力。

     

    其中,aPaaS可以在整个应用程序生命周期实现应用程序的快速开发和交付,简化应用程序的编译和部署并确保可用性、可靠性和可伸缩性,以及应用程序运行控制和监控。

     

    MADP能够更好地应对企业数字化业务与创新性需求,是低代码开发能力的重要补充。随着移动办公、BYOD日趋流行,国内外诸多低代码开发平台都在逐渐加强对移动应用开发的支撑能力,这里的移动应用不应局限于APP,还需要支持微信、钉钉等开放平台。

     

    BPM本身就是一种传统的技术平台,低代码以另一种方式将其涵盖。传统的BPM注重流程化开发,目的是通过系统性的改善企业内部的商业流程来提升组织效率, BPM前端主要是基于表单来实现快速开发,样式比较固定,后端通过分析BPMN流程图(业务流程建模标注)来完成一步步的流程开发。相比之下,低代码开发在这一领域有着诸多优势。

     

    项目

    传统BPM平台

    低代码平台

    目的

    只能开发流程审批型内部应用

    企业内部业务型应用,以及对客户提供服务的应用

    开发方式

    代码开发为主,前端表单部分可以通过拖拽式节省时间

    拖拽式为主,对于复杂或性能敏感的场景辅以少量代码

    开发周期

    长达数月

    很短,一般在数周

    技术门槛

    需要正规的BPMN培训,多数产品需要使用者具备专业开发能力

    经过简单培训即可,不需要专业开发背景

    系统集成

    依赖BPM的内置方案,扩展性差。

    依靠内置的集成功能和开发接口,更易于集成云服务和本地数据库

    价格

    面向大企业为主,一般比较昂贵

    兼顾中小企业,价格门槛更低

     

    从表单驱动到模型驱动,低代码发展的趋势

    表单驱动是传统BPM的典型标志,也是使用Excel做数据管理的常见做法:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。一些从BPM或者Excel服务器类产品转型而来的低代码开发平台,大多延续了这种表单驱动的模式。

     

    而另一些低代码开发平台,如专业开发工具厂商葡萄城的活字格,就选择了另一条路——模型驱动。模型驱动使用可视化建模技术来定义数据关系、流程逻辑和构建用户界面,使开发人员和业务用户能够快速交付应用程序,而不需要代码。使用模型驱动的低代码开发平台做出来的系统,在架构上与专业开发人员使用纯代码交付的系统几乎没有差别。

     

    相比于表单驱动,模型驱动的典型优势如下:

     

    1. 系统架构更清晰,表单和数据模型均可单独开发与维护
    2. 基于模型的API层,使用少量编码即可基于模型实现更多复杂逻辑
    3. 纯代码开发的企业系统绝大多数都是模型驱动的架构,当需要与之做系统系统集成时,数据打通变的更加容易,部分低代码开发平台甚至能直连其他系统的数据库

     

    如果给表单驱动打上标签的话,那就是“无纸化、重复工作、流程孤岛、系统孤岛、数据孤岛”;而模型驱动的模式,对应的便是“智能化、效率质量提升、外部数据整合、消除信息孤岛、内部数据整合”。毫无疑问,模型驱动更加智能,更加整合,能够实现数据的同步交换和共享。这一特征更受用户欢迎,能有效帮助企业简化多余流程,是未来工作流技术发展的方向,更加适合低代码开发平台。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460,038
精华内容 184,015
关键字:

模型驱动