您现在的位置是:网站首页> 内容页

工作流技术分析

  • ope体育下载v1.303.9
  • 2019-07-15
  • 137人已阅读
简介工作流技术分析前言基于上篇文章我决定写篇文章对工作流技术进行剖析和解读,授之以鱼不如授之以渔。所以决定讲讲原理,以便让大家对工作流有更深的了解。最早工作流是由外国人研发,慢慢被引近国内

工作流技术分析

前言

基于上篇文章我决定写篇文章对工作流技术进行剖析和解读,授之以鱼不如授之以渔。所以决定讲讲原理,以便让大家对工作流有更深的了解。最早工作流是由外国人研发,慢慢被引近国内,我接触比较早的是Java的工作流如Jbpmosworkflowactiviti都是比较成熟的解决方案,相比而言,采用Java研发还是比较幸福,不像C# 那时候还没比较好的成熟解决方案,导致我们在工作流技术框架方面不得不采用Java的解决方案。由于公司的原因,最后我们业务部分采用C#语言编写,流程部分采用Javaosworkflow技术方案,将JavaosWorkflow工作流封装成WebService服务与C#这边进行交互模式,增加实施的难度。微软发布的工作流产品(WF),我们也研究使用过这款产品,这款产品只包含引擎和一个C/S版的流程设计器,并不支持在线设计流程。在使用方面,我们并没有用好WF,不知道是不是技术原因,时常报些莫明其妙的错误,使用起来并不太稳定,最后不得不放弃转而使用Java的解决方案。目前市面上有很多公司或个人研发的工作流产品,有的是完全遵循国际上制定的工作流标准实现,而有的则并没有遵循标准,这两种实现暂且不论好坏,只要能解决自已的需求,在我看来,那就是好的产品。中国有位领导说过,不管白猫黑猫,能抓到老鼠的就是好猫。

工作流背景

引用上篇文章解释工作流产生背景以及使用场景。工作流是为解决现实中繁杂多变的业务审批流程,应运而生的一种技术。在现实中好多公司、政府、军工单位中审批业务流程是频繁变更,特别在研发ERP信息管理系统,或多或少都存在这种需求。工作流技术的出现为这种需求提供了一种更好的解决方案,将大大的减轻研发人员的工作量。在工作流技术未出现前,研发人员为应对这种情况是疲于应付,精疲力竭。通常都是通过硬性编码对固定的业务流程,进行针对性编码,这种编码方式,就很不适应业务频繁的变更,造成开发人员这种被动的局面。

工作流产品一般包含流程引擎和流程设计器两个部分,这两部分是工作流核心部件。流程引擎提供对流程解析,并驱动业务流程的流转。流程设计器则提供图形化操作方式,通过画图方式定义工作流审批流程,最终生成工作审批流程定义的XML文件。

流程设计器

市面上通常都是提供的在线流程设计器,在线的流程设计器主要基于FlashSLH5SVG这四种技术实现。这四种技术实现画图各有优缺点。Flash SL这两种是必须要在客户端安装插件、学习成本也不低,这两种技术在逐步末落。H5SVG这两种技术在近年是越来越流行,但是对老浏览器不支持。选择哪种技术实现方式主要看目前自已的需求。也有些比较优秀JS开源画图框架如D3SVGJSJsplumb等等,本质上都是基于上面几种技术方式实现的,有兴趣的可以自已去了解。

流程引擎实现原理

在系统中为了反映与现实的送审流程,工作流框架中通常都采用XML对送审流程进行描述定义。然后,由工作流引擎对XML数据结构解析,并将定义的流程节点和关联信息都序列化存储到数据库里。在序列化过程中将与业务表单建立关联,后续将依据上述定义的流程,进行业务上的流转。市面上工作流框架基本上都是基于这种实现方式。当然我并没有准备引入那些高大上的理论进行讲解,因为我觉得那些专业术语让人听得都生畏,什么工作流泳道模型、顺序、状态机、事件等等这些专业术语的解释,有兴趣的可自行了解。其实,还涉及到到表单流转,这个话题等下次有时间,再来说道说道。

开源工作流地址:https://github.com/chengderen/Smartflow-Sharp

结语

上述是我对流程定义、原理和实现,进行解读和分析。由于本人技术水平有限,有理解的不对地方,还请指教。写文章真的太折磨人,费神费力,希望对大家有所帮助。顺便教大家一个排版的技巧,我也是前几天才知道的,写文章最好是先在Word文档中先调整好格式和排版,然后导出Html格式的文档,这样你的文章排版和格式看起来很舒服,不会错乱。之前一直苦恼纠结在博客园格编辑器中怎么调整好格式与排版。建议博客园的编辑器应该向csdn的学习,那个直接拷贝文档都不会乱格式。

, 1, 0, 9);

文章评论

Top