Atitit.工作流系统的本质是dsl 图形化的dsl  4gl

1. 工作流系统的本质是dsl 图形化的dsl  4gl1

2. 为什么每个项目系统都需要工作流1

3. 工作流dsl与java .net 这类语言的关系1

4. 一个完整的工作流标准如下2

4.1. 增强标准2

5. BPM系统由三部分组成: 2

6. 工作流的适应性与优缺点2

7. 工作流的趋势::3

8. 现有工作流jbpm 微软wwf的情况3

9. 如何判断图灵完备3

10. 工作流节点存储结构4

11. ---end4

1. 工作流系统的本质是dsl 图形化的dsl  4gl

工作流是dsl ,是4gl,是图形化的dsl, 图形化的高层编程语言

工作流引擎即是vm。。。专门用来运行工作流这个dsl图形化编程语言

2. 为什么每个项目系统都需要工作流

工作流dsl可以图灵完备,普通的项目都只支持seq顺序流程(用户层面上),并且用户自定义业务逻辑比较困难(必须使用实际的编程语言,对用户来说难度过高)

工作流WF 属于4gl ,大大提升了抽象层次,未来一定会普及。。成为通用的编程语言。。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3. 工作流dsl与java .net 这类语言的关系

Workflow wf是建立在java .net上的一种dsl ,,java 。Net又是建立在c c++之上的vm虚拟机的一个dsl。。。。C、c++则是建立在asm汇编语言之上的dsl

每一个层次抽象提升,会带来更高的开发效率。。

4. 一个完整的工作流标准如下

图灵完备(具有seq,case,for等控制结构)

变量 数组 数据等临时数据存储单元

自定义子过程(子函数)

必要的算数,逻辑,移位等运算单元

4.1. 增强标准

Oo支持

对频繁调用jit inline优化

5. BPM系统由三部分组成:

1、流程配置工具ide WorkFlowTool(简称WFTool),

2、2、流程引擎 vm 虚拟机 WorkFlowEngine(简称WFEngine),

3、3、业务应用平台C/S(WinApp)或B/S(WebApp)版 开发平台

6. 工作流的适应性与优缺点

工作流并非面向普通用户,而是鉴于普通用户和专业编程人员之间的一类用户,他们没有能力使用专业的java c#这类型编程语言,但是又需要进行编程。。所以工作流 dsl 就是比较适合他们的编程语言了。。

工作流的缺点主要在于性能:特别是对于md5,base64这类编码算法流程,但是如果将来加入jit即时编译,应该性能可以得到极大提升。

许多工作流是基于图形展示的,存储是基于xml格式的。导致代码复用可能会不容易拷贝粘贴。。

此外如果逻辑复杂的话,图形会可能比文本化的dsl长度长很多。。如果工作流采用文本方式存储和展示,可能又会造成可视化方面的下降。。

7. 工作流的趋势::

不管怎么说,随着硬件性能的提升,4gl终将会流行。。。就像java c#虚拟机随着硬件性能的提升而取代了c++的大部分地位。。

工作流将会分为俩个部分,第一部分是图形化编程,适合于非专业人员。。

第二部分是基于文本源码的DSL编程,适合于专业编程人员。。

8. 现有工作流jbpm 微软wwf的情况

jbpm 的最大问题是不是图灵完备的,不能作为一个通用图形化编程语言来实现所有系统。。

Wwf 是图灵完备的,可以实现所有业务系统。。但是没有一个好的图形化标准化类库来支持快速开发。。此外wwf的存储是基于xml的,只有图形化的实现。。而没有基于文本源码的实现模式,这导致了专业编程人员使用起来不方便。。

此外,vm虚拟机方面的差距也很大,工作流引擎的性能优化才刚刚起步,jit等即时编译技术都没应用到,导致了工作流如果编写细节性的代码(特别是底层算法类的代码),性能消耗比较大。。

Ide方面,工作流的ide 比较烂,根本还不能和vs eclipse系列相比。。工作流ide方面还有很大的提升空间。。

9. 如何判断图灵完备

简单判定图灵完备的方法就是看该语言能否模拟出图灵机

图灵不完备的语言常见原因有循环或递归受限(无法写不终止的程序,如 while(true){}; ), 无法实现类似数组或列表这样的数据结构(不能模拟纸带). 这会使能写的程序有限

图灵不完备也不是没有意义, 有些场景我们需要限制语言本身. 如限制循环和递归, 可以保证该语言能写的程序一定是终止的.

10. 工作流节点存储结构

Id   :对应语言里面的标号,行址

Name: 显示名称

Ui_id  对应的界面ui id

Next   下一个节点id (预定义有下一个id,调用子函数返回断点id ,case for结构block块结束id)

State   是否在此节点。。原来debug方便。。

11. ---end

什么是图灵完备? - 编程语言 - 知乎.htm

Atitit.工作流系统的本质是dsl 图形化的dsl  4gl相关推荐

  1. python拿什么做可视化界面好-用python打造可视化爬虫监控系统,酷炫的图形化界面...

    原标题:用python打造可视化爬虫监控系统,酷炫的图形化界面 本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 ...

  2. python中turtle画酷炫图案-用python打造可视化爬虫监控系统,酷炫的图形化界面

    本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来 ...

  3. ubuntu/linux系统知识(17)图形化的包管理工具Synaptic

    文章目录 Synaptic 软件包管理器是什么? 为什么你要使用像 Synaptic 软件包管理器这样的 "古老的" 软件? Synaptic 软件包管理器的功能 如何在 Ubun ...

  4. python做炫酷的界面_用python打造可视化爬虫监控系统,酷炫的图形化界面

    安装 InfluxDB 修改配置文件/usr/local/etc/influxdb.conf,如果原文件中没有对应配置项,需自己添加. 3. 安装配置 Grafana 安装 Grafana 并修改 G ...

  5. 图形化开放式生信分析系统开发 - 9 Illumina测序仪测序数据自动拆分

    前文链接: 图形化开放式生信分析系统开发 - 1 需求分析及技术实现 图形化开放式生信分析系统开发 - 2 样本信息处理 图形化开放式生信分析系统开发 - 3 生信分析流程的进化 图形化开放式生信分析 ...

  6. 苹果系统anaconda没有图形化界面怎么解决?

    苹果系统anaconda安装完没有图形化界面怎么解决? 安装命令 conda install anaconda-navigator 安装很快,成功: 参考 知乎:Anaconda navigator怎 ...

  7. Linux----dos界面 | 图形化界面切换

    目录 你的系统不一定能切换图形化界面,为什么呢? 下载CentOS时,有很多可选版本,下面对初学者做下简单介绍: 什么时候会不能切换? 看效果: dos界面 切换后图形化界面 切换方式多种 系统默认以 ...

  8. Cent os7 _ LINUX虚拟机安装_设置网络及图形化界面_安装教程

    准备工具(可到官网去下载): 1.VMware Workstation 15.5.6 版本 链接:https://pan.baidu.com/s/1o9w1Em91dYms0zR0fF7u3A 提取码 ...

  9. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

    Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...

  10. Atitit.工作流 与 规则引擎

    Atitit.工作流 与 规则引擎 1.1. 应用来说,通常分为三部分:界面.业务逻辑和存储1 1.2. 自定义操作系列1 1.3. 自定义按钮系列2 1.1. 应用来说,通常分为三部分:界面.业务逻 ...

最新文章

  1. Ubuntu 系统 启动报错 /: UNEXPECTED INCONSISTENCY; RUN FSCK MANUALLY
  2. 调查:台湾上班族讨厌5种年会状况 最怕老板致词长
  3. 【GAN优化】详解GAN中的一致优化问题
  4. 计算机语言表示教师节快乐,表达教师节快乐的微信祝福语大汇总54句
  5. 面试官最爱问的并发问题
  6. Qt创建工程及导入资源图片
  7. mysql不同的类的个数_Mysql-SQL优化-统计某种类型的个数_MySQL
  8. 第二届360杯全国大学生信息安全技术大赛_几道小题解析
  9. spconv编译与安装
  10. Linux(二、三、四)简单命令、系统目录结构、文件类型、命令行管理文件学习
  11. Win XP iis组件补丁(ghost xp)iis5.1
  12. numpy 函数里面的axis参数的含义
  13. 2022春软件工程课后作业(3.16)
  14. C语言中-条件编译#ifdef的妙用详解_透彻
  15. 汉诺塔(Tower of hanoi)
  16. 【Zynq UltraScale+ MPSoC解密学习4】Zynq UltraScale+的APU
  17. pandas速学系列四:修改dataframe的六大方法
  18. 【工业机器人】解读工业机器人如何应用到手机行业!
  19. 玩银河麒麟操作系统终端,忆国外unix主机上偶遇隔壁同胞
  20. 有用的 Solaris 命令 [zt]

热门文章

  1. 如何在C语言中巧用正则表达式
  2. Linux下的段错误产生的原因及调试方法
  3. 《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer
  4. 易宝典文章——玩转Office 365中的Exchange Online服务 之十一 怎样在Exchange Online中配置邮件传递限制...
  5. Oracle中集合操作符
  6. Microsoft Research和Windows Azure合作伙伴对数据发现和共享的影响
  7. 投票系统显示结果--jQuery插件
  8. php的异步非阻塞swoole模块使用(一)实现简易tcp服务器--服务端
  9. Windows下编译DCMTK
  10. Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)