随着工作流技术的发展,工作流产品的应用范围也不断的在扩展,开始进入了像金融行业(我已经看到国有四大商业银行的工作流产品招标公告了),实时生产控制和其它比较重要的工程领域,而这些领域对数据的准确性和实时性要求都比类似文件管理,办公系统这些高得多,那么如果工作流技术要进入这些领域,我们该做些什么准备呢?
我在这里需要结合工作流系统设计的一些具体技术问题来阐述,首先是由于我们向用户提供的是可以让用户自定义流程的设计器,那么用户会设计出什么样的流程出来,我们作为系统的设计者并不能够完全确定,这句话的意思就是说,流程系统可能会遇到一些由于用户自定义的流程超出我们设计的引擎处理能力的情况,特别是像流程系统同时还给用户提供了自定义公式或脚本设计器的那种情况下,而我们设计的流程后台处理系统又不可能设计得太过于复杂,以至于可以像某些宣传的那样:"我们的引擎可以处理各种复杂的流程" (其实JWFD也曾经这样宣传过,但是这是不科学的),但是事实上,我不会真正的有这个胆量向客户保证,因为从数学的角度来讲,一个流程图的拓扑结构在超过某个复杂的程度之后,有可能出现节点不可到达的情况,也会出现流程数据不可计算或者计算结果是错误的情况(这并非是设计水平问题,而是复杂的情况会超出我们的想象),这样的情况的出现将会导致某些行业的应用出现严重的后果(在这里,我宁愿把问题想象得严重些),如果出现某些故障,作为系统的设计者也有可能因为这些故障导致的事故承担某些或轻或重的后果,因此我曾经说过,JWFD只是作为要从事流程系统设计和开发的朋友的学习和设计的参考,并不能够仅仅进行一些简单的修改就当做产品去销售,但是据我所知,有不少这种把开源技术和产品直接经过简单包装和修改之后就作为商业产品拿去销售的情况。。。那么在说明这种情况之后,我也要提出针对这些问题的解决办法,做任何事情都会遇到困难,而人就是因为解决这些问题而不断进步的。。(个人如此,一个公司也应该如此,不能够因为想赚快钱,就放弃对技术的执着的热爱。。。。反过来一样,哈哈),针对上述的问题,我提出的解决方法是:
1:为用户提供一个用于对流程图和流程进行模拟运行和调试的工具,国内的开源软件Fireworkflow(www.fireworkflow.org)就提供了这个工具,这样一来,哪怕用户设计出一个复杂的流程,在正式提交运行之前,设计流程的用户也可以对这个流程模拟运行,然后根据运行情况进行调试和修改,甚至需要对流程图进行反复的修改,这个过程就好像我们做软件开发一样,写代码,然后运行,查找错误,修改,再调试,如此反复N次,这样下来,一个运行着重要数据的流程才能够保证其运行过程中的数据正确性,也就避免了我在前面说的那种不可预测的复杂流程导致失败的问题,所以这个流程模拟运行与调试工具对于一个有志于进入高风险行业的的流程产品来讲是必须的。。。。。。。。。。
2:规范用户的自定义行为,我们可以通过对流程设计器的定义流程的功能进行某些调整,比如说不容许用户设计出不对称的,或者包含多个环形结构的流程图,因为这些流程拓扑结构会加大流程引擎处理的难度,也增加流程系统设计的开发成本,对于一个中小软件企业来讲,要开发出一个很稳定,而又能够处理各种流程的系统并非很简单的事情,而用户在其它办公和信息系统中又都要求包含工作流系统的情况下,软件开发企业必须采取某些策略,来保证自己即能够拥有工作流产品,又避免企业对工作流系统的开发成本过高,那么这种办法值得考虑。。。
。。(在这里我应该为JWFD不遵守XPDL等规范而辩护,流程图的规范是应该由各个软件企业自己来设计和定义的,所谓的统一规范和标准虽然具有一定得必要性,但是却并非普遍适用的)
3: 把流程引擎自动控制方式转变为半自动,半手工的控制方式:对于某些简单的流程应用,我们并不需要让流程引擎完全自动化运行,可以采用用户手动推进流程的运行方式来减少流程系统的设计难度和代码的复杂度(JWFDv0.96版本就是采用半自动方式,JWFDv0.94之前的引擎都是自动方式)
4: 对流程图进行扫描并分类,并根据不同的类别提供不同的流程引擎模块: 我们可以在流程引擎系统中嵌入一个流程图扫描工具,对用户自定义的流程图进行预扫描,并根据扫描的结果来判断这个流程图的节点数是多少?大于10,还是大于20,流程的拓扑结构是简单的,还是复杂的,内部嵌入的数据结构是简单的,还是复杂的,然后根据这些扫描结果,分别调用不同的流程引擎模块,对于简单流程图就用简单引擎算法,对于复杂图就用功能更加强大的引擎算法,这样一来,整个系统的设计就更加清晰,也避免了一些不必要的设计。。。
事实上,一个包含自定义设计器的流程产品的提供者应该在产品说明中,向用户说明,这个流程产品所能够处理的流程图的极限复杂程度等情况,避免用户使用自定义设计器设计出引擎无法处理的流程图之后,导致无法运行而产生的一系列商业上面的纠纷。。。。。。对于仅仅为普通办公系统提供业务流转的工作流模块,其开发的难度和功能都是非常有限的,甚至某些流程并不是一定需要用户自定义设计器,这样的工作流系统的开发也不一定要花费比较昂贵的成本,但是对于要进入某些重要而具有风险的行业的工作流产品和包含工作流模块的产品来讲,应该花费的开发成本是不能够因为某些情况而降低的,否则不可预知的风险就等待着我们
相关推荐
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版
[JWFD开源工作流]最新的工程
博客分类: 暂时先放在ITEYE上面。。。博客园过段时间再放出来。。。。 说明一下这个版本,主要是把时频发生器与主引擎结合起来了,在自动运行控制器的运行过程中,我们就可以通过修改参数,对运行过程的时序进行调控了,当然还有很多问题,各位朋友。。请看看注释和说明吧。。。。 伦理片 http://www.dotdy.com/ 我释放
ChipCamp探索系列 -- 7A. 开源CPU之BOOM的来龙去脉
本文梳理一下Berkeley的乱序超标量CPU项目----Berkeley Out of Order Machine (BOOM),作为探索7系的首篇(7A)。
JWFDv0.96开源工作流引擎设计---XMLTO-数据库解析过程说明
JWFDv0.96开源工作流引擎设计 ---XMLTO数据库解析过程说明注:这篇文章中所使用的“函数”就是指JAVA语言中的方法 作者 comsci 2011.4.25 四川。成都简要说明: 实际上用户通过JWFD流程设计器设计出的流程图的结构一般是保存在XML格式的文件中的(XML文件结构请参考”JWFDv0.96 开源工作流引擎设计-流程图XML结构说明.doc“),而流程引
手把手教你用Arduino搭建惠斯通电桥:从原理到代码实现(附完整电路图)
本文详细介绍了如何利用Arduino搭建惠斯通电桥,从硬件选型、电路设计到代码实现和校准技巧,提供完整的电路图和实用代码示例。特别适合电子爱好者和创客学习高精度电阻测量技术,并扩展应用于应变片测量和温度监测等实际项目。
gephi生成网络关系图_路网拓扑重建专题 (3) 网络图生成
城市道路网建模在获得基础路网之后,需要考虑道路交通网络的描述与表达问题。网络是将现实世界中的事物及其关系进行适当的抽象,构造成由节点和边按照一定规则组成的形式。一个实体网络可以由有限个“节点”集合与“边”集合构成的图表示,即网络表示为。对于一个由个节点组成的无权复杂网络,该图有邻接矩阵,这里。根据研究对象不同,建模方法主要包括原始法[1]和对偶法[2]两种,见图1,字母a-j为交叉口编号...
JWFD 开源工作流 v0.97.000的新特性
JWFD 开源工作流 v0.97.000版本的新特性 流程图XML的每一个节点增加一个节点属性 NodeType 可以让用户在节点中定义这个节点的使用属性,比如说可以是 普通节点 或者 数据处理节点,人工处理节点,自动控制节点,智能路由节点,系统节...
ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定
本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。
[原创]JWFDv0.96工作流系统--流程XML文档结构说明
作者: comsci 发表于 2010-10-08 09:27 原文链接 阅读: 7 评论: 0 本文简要介绍了JWFDv0.96工作流系统的流程图XML模型结构,其中带有少量的专业语言,浅显易懂,适合初学工作流系统的设计和开发者,在了解这个结构之后就需要大家把注意力集中到流程图X...
基于多传感器融合的智身四足机器狗楼梯环境SLAM系统设计与实现
本文设计了一种基于多传感器融合的四足机器狗楼梯环境SLAM系统。系统采用Jetson Orin NX为主控制器,集成RealSense D435i深度相机和Livox Mid360激光雷达,在ROS2框架下实现平面定位精度<5cm、楼梯环境下导航不漂移的目标。通过多层次传感器融合策略、运动学约束优化和状态切换机制,解决了楼梯环境下的定位累积误差问题,实现了平面与楼梯环境的自动识别切换及精度复位功能。硬件设计注重传感器布局优化和精确标定,软件架构采用分层设计,确保实时性能。该系统为四足机器人在复杂地形中
手把手教你学matlab(8.33)--simulink:DC-DC 双向 Buck-Boost 转换器仿真实例
通过以上步骤,你应该能够建立一个带有 PI 控制器的 DC-DC 双向 Buck-Boost 转换器仿真模型,并观察其性能。Simulink 提供了丰富的工具和模块,可以帮助你进一步优化和调整仿真模型。
JWFDv0.96 工作流引擎原子操作简易说明
作者: comsci 发表于 2010-09-07 10:46 原文链接 阅读: 20 评论: 0 JWFDv0.96新增加了若干基本SQL操作,并在这些操作的基础上面新编写了SAN流程运行控制方法,下面我就简单的介绍下这个这些基本SQL的结构 JWFDv0.94引...
003、高通骁龙Spectra ISP架构深度解析:IFE/BPS/IPE流水线与Chromatix调优实战
摘要: 本文深入解析高通骁龙Spectra ISP架构,重点剖析IFE、BPS、IPE三阶段的流水线协作机制与Chromatix调优实战。通过夜景预览"水波纹"案例,揭示HDR对齐与TNR运动估计的关联性问题,指出ISP调优需关注模块间的时序与带宽约束。文章详解各模块核心功能:IFE负责RAW域处理(HDR合成/校正),BPS专注降噪与细节增强,IPE进行YUV域精处理。针对Chromatix调优,强调参数与寄存器映射关系,并给出LSC网格密度、TNR运动灵敏度、LTM光晕等典型问题的解决方案。最后提出实用
[原创]JWFDv0.96开源工作流引擎设计---XMLTO数据库解析过程说明
JWFDv0.96开源工作流引擎设计 ---XML to 数据库解析过程说明 注:这篇文章中所使用的“函数”就是指JAVA语言中的方法 作者 comsci 2011.4...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
[原创]JWFDv0.96工作流引擎设计-数据库结构说明
JWFDv0.96工作流 引擎设计 ----数据库结构说明 注:这篇文章中所使用的“函数”就
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
[原创] JWFDv0.96工作流引擎设计--节点回退算法说明
JWFDv0.96工作流引擎设计 ----节点回退算法说明注:这篇文章中所使用的“函数”就是指JAVA语言中的方法作者 comsci 2010.10.7 四川。成都算法设计的简要说明JWFD工作流系统在v0.96版本之前并没有实现回退的功能,在v0.96版本中节点单步回退功能才被使用单一算法函数的方式加入到引擎模块中,但是由于在开发过程中,时间比较紧张,我并没有对这个算法进
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
JWFDv0.96.4开源工作流测试版本
前段时间在优快云上面发现一个BUG,导致我在后台发布的文章无法显示在首页,所以暂时转战JAVAEYE.....估计优快云已经修复了这个BUG,所以为了亲爱的用户和稍微扩大自己的产品知名度,我又回来了..... 去年底的时候,我在JAVAEYE上面把最新版的JWFDv0.96.4发布上了,但是修改工作还没有完成,文档和开发说明没有同步发出,这段时间在搞太阳能工程和其它一些硬件
JWFDv0.96开源工作流引擎设计--节点匹配搜索算法设计说明
JWFDv0.96开源工作流引擎设计 --节点匹配搜索算法设计说明 注:这篇文章中所使用的“函数”就是指JAVA语言中的方法 作者 comsci 四川.成都 最后修改时间 2013.4.1 算法设计说明 (前两年,我曾经公布
JWFDv0.96开源工作流系统流程图提交BUG修正补丁
BUG说明 我在jwfdv0.96版本中为了实现一个流程提交进入数据库的动态状态窗口,使用了线程方法显示流程图提交进入数据库的过程,但是由于我对线程方法的调用和理解不够深入,导致后来这个地方出现了一系列的BUG,在经过朋友们的提示和我的研究,我发现流程图提交进入数据库这个过程,可以采用其它方法来显示动态提交的过程,因此我对这个地方进行了一些修改,删除了线程提交提示的方法和代码,用一个
[] [原创]JWFDv0.96 工作流系统-引擎原子操作API简易说明
[img]http://dl.iteye.com/upload/attachment/326183/53714d07-dc4a-3f30-87fb-44f6535fe3f5.jpg[/img] jwfdv0.96新增加了若干基本sql操作,并在这些操作的基础上面新编写了san流程运行控制方法,下面我就简单的介绍 下这个这些基本sql的结构 jwfdv0.94引擎的流程运行控制类...
3786



被折叠的 条评论
为什么被折叠?



