Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
1. 工作流系统的本质是dsl 图形化的dsl 4gl
工作流是dsl ,是4gl,是图形化的dsl, 图形化的高层编程语言
工作流引擎即是vm。。。专门用来运行工作流这个dsl图形化编程语言
2. 为什么每个项目系统都需要工作流
工作流dsl可以图灵完备,普通的项目都只支持seq顺序流程(用户层面上),并且用户自定义业务逻辑比较困难(必须使用实际的编程语言,对用户来说难度过高)
工作流WF 属于4gl ,大大提升了抽象层次,未来一定会普及。。成为通用的编程语言。。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/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的更多相关文章
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
- Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾 1 版本12 (ing)4 1.1 无映射nas系统..4 1.2 图片简介搜刮其4 1.3 12.8. 电影图片增加png, ...
- Atitit.工作流 与 规则引擎
Atitit.工作流 与 规则引擎 1.1. 应用来说,通常分为三部分:界面.业务逻辑和存储1 1.2. 自定义操作系列1 1.3. 自定义按钮系列2 1.1. 应用来说,通常分为三部分:界面.业务逻 ...
- Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc 1 版本11 (ing)41.1 规划h5本地缓存系列 41.2 Android版本app41.3 双类别系统,
Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc 1 版本11 (ing)4 1.1 规划h5本地缓存系列 4 1.2 Android版本app4 1.3 双类别系统, ...
- 课程分享 企业普及版贝斯OA与工作流系统
企业普及版贝斯OA与工作流系统 基于J2EE+JBPM3.x/JBPM4.3+Flex流程设计器+Jquery+授权认证企业普及版贝斯OA与工作流系统 假设对这个课程有兴趣的.能够和我联系.QQ205 ...
- Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc
Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc 1 版本11 (ing)4 1.1 规划h5本地缓存系列 4 1.2 Android版本app4 1.3 双类别系统, ...
- Atitit.日志系统slf4j的使用
Atitit.日志系统slf4j的使用 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar ...
- eworkflow工作流系统在iis中发布
eworkflow工作流系统在iis中发布 win7下面的iis发布eworkflow工作流系统,要带虚拟目录的,如发布成http://localhost/eworkflow/login.aspx这样 ...
- atitit 点播系统 概览 v2 qb1.docx
atitit 点播系统 概览 v2 qb1.docx 1.1. 多界面(可以挂载多个不同的界面主题)1 1.2. 独立的选片模块(跨设备,跨平台)2 1.3. 跨设备平台(android安卓盒子,pc ...
随机推荐
- Java框架篇---Mybatis 构建SqlSessionFactory
从 XML 中构建 SqlSessionFactory 基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 ...
- MYSQL开发性能研究——INSERT,REPLACE,INSERT-UPDATE性能比较
一.为什么要有这个实验 我们的系统是批处理系统,类似于管道的架构.而各个数据表就是管道的两端,而我们的程序就类似于管道本身.我们所需要做的事情无非就是从A表抽取数据,经过一定过滤.汇总等操作放置到B表 ...
- MyBatis知多少(17)MyBatis和JDBC
有了MyBatis,就不再需要编写JDBC代码了.像JDBCT这样的API的确非常强大,但使用起来总不免觉得太过繁琐.代码清单给出了一个使用JDBC的示例. 从这个例子中很容易看出,JDBC API会 ...
- WPF中多个RadioButton绑定到一个属性
如图样: 在View中: <RadioButton IsChecked="{Binding Option, Converter={cvt:EnumToBooleanConverter} ...
- 二叉堆(三)之 Java的实现
概要 前面分别通过C和C++实现了二叉堆,本章给出二叉堆的Java版本.还是那句话,它们的原理一样,择其一了解即可. 目录1. 二叉堆的介绍2. 二叉堆的图文解析3. 二叉堆的Java实现(完整源码) ...
- 在腾讯开发应用中心上架apk所遇到的问题
这篇只是为了记录我走过的弯路,和判断错误的方法 首先当我用 keyStore打包apk的时候,程序没有报任何错误,当然也可以运行: 接下来就是上传该apk吧: 等上传完了,就报解析错误.如下.: aa ...
- [前端]npm安装慢,换用淘宝的镜像
镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 通过config命令 npm config set registry https://registry ...
- css中px,em和rem的区别
css中px,em和rem的区别 今天,突然间发现一个特别有意思的问题,就是无意间看到一个网站中的em并不是16px,下面展开了对于px和em以及rem的探究. 首先,px是绝对长度单位,是相对于显示 ...
- 拓扑图弹力布局呈现Flickr图片搜索结果
十年前有值得分享的图片我都存在Flickr上,可惜yahoo收购了Flickr之后堕落好多年,最近yahoo在梅姐带领下Flickr团队终于恢复了生机,个人免费存储空间扩充到了1T,界面用户体验也有 ...
- [ASP.NET]谈谈REST与ASP.NET Web API
13天的假期结束,赶紧回来充电了 本节目录 Web API简介 自我寄宿 IIS寄宿 调用Web API Web API原理 Web API简介 REST REST是“REpresentational ...