继续 粘贴前人的一些 关于 workflow 的想法,现在看看很多当时的想法已经变成现实,但是对于我这个 流程引擎的新人还是有必要学习下的,争取尽快把自己的知识更新下,修改下自己当前使用的一个 引擎框架
流程引擎在上世纪70年代就在办公自动化领域展开,但最初是失败的,一方面由于当时计算机的普及程度不够,另外一方面“人们观察到这样一种现象,一个成功的组织往往会在适当的时候创造性的打破标准的办公流程;而工作流技术的引入使得人们只能死板的遵守固定的流程,最终导致办公效率低和人们对技术的反感。(from wiki http://zh.wikipedia.org/wiki/%E5%B7%A5%E4%BD%9C%E6%B5%81%E6%8A%80%E6%9C%AF)”
OSWorkflow 的 GUI Designer 确实很差,不过我们可以手工编写流程定义 XML 文件。如果要给最终用户用这个 Designer,项目组要对它做扩展才行。
试用了一把 OSWorkflow,个人感觉还是不错的,它的工作流模型比 WfMC 的简单,而且感觉更灵活一些。
我觉得工作流之所以在国内不流行,是因为原来 WfMC 定义的模型太死了,在实际应用中有人工干预流程的正向、反向、任意跳转的需求,但 WfMC 没有提供这方面的支持,一般的工作流引擎对这方面支持的也不好。基于 OSWorkflow 开发一个适合实际情况的工作流引擎是可行
工作流引擎我曾经负责了很长时间,做过两个,一个很土,很早以前用数据库触发器做的,很好实现,数据驱动的小型办公应用可以试试用这种方案,另一个在02年时和三个小伙一起做的,也不是很麻烦,把wfmc简化了做的,03年则用的是开源的工作流引擎。
符合wfmc的开源工作流引擎很多,光有工作流引擎,只能在开发时使用一下,想做成一个完整产品还需要很多东西。
一个业务应用,比如OA的审批流程,需要很多引擎来支持,比如组织机构、角色、规则、文档、表单、脚本等,如果再加上工具,那么跟做一个Notes也没有什么区别,所以工作流产品想做到业务人员轻轻拖拽就可以把一个应用从无到有配置出来,我认为是不太可能的,不可能一行代码都不写。
工作流应用比较麻烦的是表现和规则,表现处理我们一般称为Form引擎,主要包括:在Form上每个字段域要进行校验、操作方法、显示、权限等定义处理,Form的模板选择、操作方法、控制数据对象集、档案夹等定义处理;规则则要求工作流引擎能通过规则引擎或者脚本引擎来调用业务对象的方法或属性,并能用表达式进行处理,这跟编写程序没有什么区别。
还有一种类型的应用,更注重业务规则,表现形式不是很重要,比如在电子商务的应用中,购物车程序可以视作一个pipeline型工作流应用,每个活动的处理,都可能会和规则打交道,比如折扣规则,业务人员可以通过修改规则配置文件来及时调整折扣策略。
我个人看法是工作流引擎和设计配置工具想做到极度通用对一个公司而言难度较大,主要在于设计工具,很麻烦,光一个Form Designer就跟做一个Frontpage没多大区别,还有规则定义等。
工作流引擎有两种用法:
一种是将它纳入到公司的开发框架中,在某些业务领域使用工作流引擎,使产品或者项目有良好的架构和灵活性;
另一种就是做工作流应用产品,比如我们常见的工作流产品一般都是OA的公文流转应用,商务上叫工作流,是具体的业务应用模块。
根据产品的业务特点,先进行模块封装,比如OA中的流程审批,可以先把流程、活动、业务对象等基于工作流引擎进行预定义形成应用模板,然后基于业务模块编写配置程序,用户可以在此配置程序上进行配置,一般可以满足要求,如果用户的业务出入不大,但配置起来较麻烦,那么修改配置文件,实施工程师培训一段时间后就可以做,如果根本就是不同的业务,那只能二次开发,这时就是重新开发。
脱离业务的工作流引擎,对于不是专门做中间件的公司而言,可能很难在市场上有所作为,除非有行业背景或者政府支持。
看来对工作流的研究都不少啊。做过两年的工作流,主要是为OA做的。OA大概是最容易联想到工作流的,因为公文流是个天然的流程处理。也是基于WfMC做的,但WfMC的规范里缺少对细节的描述,比如接口3,就是工作流与应用间的数据交互。虽然这与应用的关系极大,但规范缺少了实质的指导意义。
基于WfMC的模型,可以把工作流的架子搭起来,基本的流程控制没有问题,但对于实际业务中复杂多变的环境,比如OA中,随意更改或增加的活动(完全由人来确定,很难完全穷举),规范里对这方面的论述极少。但总的来讲,流程的控制还是比较容易实现的,流程控制的难点是实现会签这类并行的处理,用户甚至提出会签的每个流程都是不同的,而且可以不必全部完成,就可以继续处理。我考虑是用子流程来实现,但对状态的控制还是要求有同步点,即子流程必须全部结束。
个人认为,工作流的难点之一在于工作流和由它驱动的应用来如何交互数据,使得工作流能够以预定的方式来运转,完全自由的工作流实际就失去了工作流的意义,比如OA里的交办事项,一个一个传递下去,完全依据工作内容和人的判断来处理,这时程序就很难控制去做判断。有人就采取了自由流的做法,不定义流程,依据实际的行为发生来确定流程的实例。这个就不多讨论了。数据交互的问题,也影响到流程的定义,以及应用的对外接口。为了避免过于死板的流程,在定义时就能有足够的灵活性,尽量兼顾可能的流程控制。由于工作流面对的可能是不同的应用(当然,完全的通用工作流依我看是不可能的,或者说没有必要,因为工作流是为应用服务的),数据接口部分就可能比较通用一些,并且不能理解数据的含义(因为难以定义),只是机械地根据数据做判断。应用也需要根据这个接口,提供数据访问接口(应用的改造看来是不能避免了)。有用户跟我讨论过应用来驱动工作流,但我认为这样的话,应用本身会包含太多的流程的信息,使应用复杂化了,所以应用和工作流之间还是存在一个中间层,来隔离相互间的影响,但这个中间层的存在,使得客户化的工作不可避免。BEA的weblogic integration就是利用reflection,在定义时指定类和方法,来做工作流和应用的交互,这也是个办法,但对于行业应用而言,可以制定一个比较通用的数据接口标准。
我们也试图为多数的审批流程提供表单的定制,并确定了和工作流的接口,只做了个原型,就放弃了,因为没有找到合适的实现技术。不过,这方面的尝试还在继续。
最近接触了一下BEA的工作流,用workshop来设计,感觉思路大开,觉得和当初单纯看OSWorkflow时有了更多的想法,而且觉得如果能够很好的处理和规则系统的接口可以实现很丰富的功能,而不用大量的编码工作。
我也是看了BEA的那套解决方案之后,才顿悟原来工作流/业务流程管理就是SOA的灵魂。缺乏工作流引擎的SOA是死水一潭。
YES,先握个手,我觉得如果用process管理加上各种分布的control来控制,用SOAP来传输,可以把整个系统整合起来
我也是给oa做引擎的,不过在我看来,引擎根本不能称之为引擎,也许是我的用户要求问题吧。工作流应该是自动流转的,但是我们做的根本就不需要,全部是人工在选下一活动和处理人,我不清楚是不是所有的用户都是这样的要求,至少我现在做的就是这样,后来想想,我的工作流引擎最终被使用的意义仅仅是给选择处理人时设定了一个范围,也就是performer标签定义的那个id而已,其他的都是没意义的东西
说说我的看法:
我认为工作流引擎是实现业务流程管理的技术实现。不管他是基于什么标准的,无非engine, processes, and activities.但是现在的技术人员个个都是好汉,有标准也不遵循,这不,几个大公司BEA,IBM,M¥等现在为工作流引擎技术制定的BPEL标准吗?我认为这个是有前途的,不过现在网上的资料很少。
工作流引擎技术是为了实现业务流程的管理,经过近一周的学习和实践,我自己有如下的感觉:
1)、基于单个应用内的工作流引擎技术,比如OSWORKFLOW,当然他也支持RPC,但是我没有试过。
2)、基于多个不同应用内的工作流引擎技术,它的技术实现要依靠web service来进行实现,本人推荐的实现组合是:AXIS+J2EE+ACTIVEBPEL ,我的J2EE是STRUTS+SPRING+HIBERNATE 的MVC框架,使用SPIRNG和AXIS组合使用。业务流程由BPEL4WS生成,主要有两个文件.bpel和WSDL,由ACTIVEBPEL服务器分析并与AXIS服务交互。
我的示例正在调试当中,假如完工合一定给大家发一个示例上来。
如果有什么不同的看法,欢迎大家讨论
msn:heweiya@msn.com
以偶的经验来看,1人开发一个基本的工作流引擎需要6个月,能够支持特复杂的流程再加6个月。加上设计器,监控器等GUI可能还要再加3个月。一般是拿开源的来改,比如我们用enhydra shark,它完全按照wfmc标准开发,而且做了很多模块的反射配置,方便拆卸,经典案例是把数据库管理由DODS改成Hibernate。
BPEL没用过,不予评论。
光有引擎没用,要考虑在什么地方调用引擎API(主要是业务逻辑处理完之后),如何与表单、查询列表结合,组织结构,权限设置等等。
感觉目前工作流引擎产品的第一轮蛋糕已经分得差不多了(国内公司10+,国外公司4+,04年底的数据,相关数据所在论坛已关闭),再做引擎开发可能要做好打价格战的准备。
可能接下来比较需要具备将工作流引擎和其他模块整合的技术。
结合实践我们多讨论一下基于企业应用的工作流技术,提提这方面的需求和功能看。我先说以下几点:
1. 人工步骤、自动步骤、定时步骤。
2. 同步分叉和选择分叉,多用户接收,多用户接收占用策略。
3. 聚合Or和聚合All。
4. 安全退回,安全终止
5. 接收者实现可配置,也可以由客户端程序自定义。
6. 接收者委托机制。
7. 工作日机制。
从技术可行上说说我的看法:
我现在使用的技术如下:
BPEL做业务流程建模,并依赖WEB SERVICE发布服务,生成相应的服务代理
WEB SERVICE描述流程控制
使用MVC架构构建J2EE架构,在控制层引用业务流程的服务代理,并做事务处理。
可以参考如下框架:
优点:可以在多个异构应用间(伙伴)重组业务流程;
本人已经使用WebSphere做中间件服务器,以STRUTS(ACTION当中引用服务代理)+SPRING+HB,已经测试通过。认为是一个可行的技术实现,也是一个成熟、容易理解的操作,很快将会伴随着WEB服务的一起火热。
没有办法的事情
老外用流程规范业务
中国要流程迁就人和业务,能用就怪了
但是客户指定要工作流。。。。中国IT,嘿嘿
偶目前在修改OSWorkflow来适合公司的需要,在我看来选用工作流产品,需要考虑两个问题:
1。工作流在应用中的位置
2。工作流的表现形式
问题一:工作流在应用中的位置
1。以工作流为核心,是工作流"拉"应用
2。以工作流为模块,应用"推"工作流运转(你们的OA估计是这样的类型)
那么采用推、拉都要看具体的应用,如果你们的应用开发是后期采用工作流,这个时候工作流更像是一个模块,采用推的模式也许更适合一些;而OA这样的应用也许更应该以工作流为核心
问题二:工作流的表现形式
至于将工作流作为独立的应用、模块、服务或者其他什么类型,都仅仅只是工作流的表现形式而已,在确定了工作流的位置就可以考虑它的表现形式了。
分享到:
相关推荐
为了顺利完成安装并确保软件稳定运行,本篇文章将详细介绍PA6.3的安装步骤。 #### 二、安装准备 在开始安装PA6.3之前,请确保系统中已经安装了以下组件: 1. **SQL Server 2008 R2或更高版本**:PA6.3需要数据库...
Activiti是一款开源的Java工作流引擎,它基于Apache许可协议,用于业务流程管理(BPM)。Activiti的目标是为现代商业应用提供灵活、快速和轻量级的业务流程管理解决方案。其设计遵循Spring框架的设计原则,强调简便性...
这篇文档是一个钢琴曲谱,名为"Romantic Scene",由Bill Hou创作。该曲谱采用了数字简谱的形式,方便钢琴演奏者理解并演奏。简谱是一种将音乐转化为数字的方法,便于初学者快速掌握旋律。从内容来看,曲谱包含了各种...
6. **流程继续**: 用户选择并提交后,流程继续执行,下一个任务节点可以根据之前的选择进行相应的处理。 7. **集成与部署**: 将自定义表单和相关服务代码集成到Activiti引擎中,并部署到生产环境,确保整个流程可以...
java毕业设计源码,可供参考
Windows下的FRP图形化客户端,对应FRP版本0.61.1,需要64位操作系统
基于优化EKF的PMSM无位置传感器矢量控制研究_崔鹏龙.pdf
旧物置换网站的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的springboot框架。中间件服务器是Tomcat服务器,使用Mysql数据库和Eclipse开发 环境。该旧物置换网站包括管理员、用户、卖家。其主要功能包括管理员:首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等,卖家后台:首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理。前台首页;首页、旧物信息、网站公告、个人中心、后台管理等,用户后台:首页、个人中心、旧物信息管理、置换交易管理、用户可根据关键字进行信息的查找自己心仪的信息等。 (1)用户功能需求 用户进入前台系统可以查看首页、旧物信息、网站公告、个人中心、后台管理等操作。前台首页用例如图3-1所示。 (2)管理员功能需求 管理员登陆后,主要功能模块包括首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等功能。 关键词:旧物置换网站,Mysql数据库,Java技术 springboot框架
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
航天模拟器文件、蓝图、代码
两级式单相光伏并网仿真研究:MATLAB 2021a版本下的DC-DC变换与桥式逆变技术实现功率跟踪与并网效果优化,基于Matlab 2021a的两级式单相光伏并网仿真研究:实现最大功率跟踪与稳定的直流母线电压,两级式单相光伏并网仿真(注意版本matlab 2021a) 前级采用DC-DC变电路,通过MPPT控制DC-DC电路的pwm波来实现最大功率跟踪,mppt采用扰动观察法,后级采用桥式逆变,用spwm波调制。 采用双闭环控制,实现直流母线电压的稳定和单位功率因数。 并网效果良好,thd满足并网要求,附带仿真说明文件 ,两级式单相光伏并网仿真; MATLAB 2021a; DC-DC变换电路; MPPT控制; 扰动观察法; 桥式逆变; SPWM波调制; 双闭环控制; 直流母线电压稳定; 单位功率因数; 并网效果; THD。,MATLAB 2021a双闭环控制两级式单相光伏并网仿真研究
光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略,助力光伏发电学习。,光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略学习指南,光伏mppt仿真:通过调整太阳光照, 温度等因素 , 光照强度和温度对太阳能电池输出特性的影响。 可用于学习光伏发电 ,光伏MPPT仿真;太阳光照调整;温度影响;光照强度;太阳能电池输出特性。,光伏MPPT仿真:光照与温度对太阳能电池输出特性的影响研究
随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理,交易等,而且过程简单、快捷。同样的,在人们的工作生活中,也就需要互联网技术来方便人们的日常工作生活,实现工作办公的自动化处理,实现信息化,无纸化办公。 本课题在充分研究了在Springboot框架基础上,采用B/S模式,以Java为开发语言,MyEclipse为开发工具,MySQL为数据管理平台,实现的内容主要包括首页,个人中心,综合管理等功能。
航天模拟器文件、蓝图、代码
西门子Smart PLC四轴搬运取料机案例程序:从新手到项目的跃升之路,西门子Smart PLC四轴搬运取料机运动控制案例程序——PLC通信与伺服电机自动化控制解决方案,西门子200smart运动控制四轴搬运取料机案例程序 该程序为两台smart plc通过通讯控制四轴伺服电机的搬运取料机案例工程案例程序。 包含200smar_PLC程序+项目电气接线图(PDF图纸)+程序流程说明+触摸屏程序(步科) 程序包括伺服电机的启动,停止,原点定位,回归原点,位置控制以及方向控制。 包括了所有控制伺服电机的指令,里面有指令的用法的详细解释和程序说明。 拿来就能用的案例程序,结合程序案例中学习,就会轻松快速的掌握。 让你从新手直接能做项目。 动作流程: 客户上好料盒,M1轴伺服跑到第一片料的位置,气缸将料推出到上位置, M2轴在上料位置取件后移动到直线电机的,加工位置,m2轴上通过有上料下料的气缸, 用真空吸住料后m2轴移动到一个二维平台的加工位置,把带加工的料放到加工位置后, 激光器开始加工,加工完成后,通过M2轴把料取下,移动到成品放料位置,放料后, M3轴将成品料推送到M4
航天模拟器文件、蓝图、代码
基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略研究与求解分析,基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略及经济性研究,考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化 “双碳”背景下,为提高能源利用率,优化设备的运行灵活性,进一步降低综合能源系统(IES)的碳排放水平,提出一种IES低碳经济运行策略。 首先考虑IES参与到碳交易市场,引入阶梯式碳交易机制引导IES控制碳排放;接着细化电转气(P2G)的两阶段运行过程,引入电解槽、甲烷反应器、氢燃料电池(HFC)替传统的P2G,研究氢能的多方面效益;最后提出热电比可调的热电联产、HFC运行策略,进一步提高IES的低碳性与经济性。 基于此,构建以购能成本、碳排放成本、弃风成本最小的低碳经济运行目标,将原问题转化为混合整数线性问题,运用CPLEX商业求解器进行求解,通过设置多个运行情景,对比验证了所提策略的有效性。 关键词:氢能;阶梯式碳交易机制;热电比可调;综合能源系统;低碳经济 ,关键词:阶梯式碳交易机制;综合能源系统(IES);热电优化;设备运行灵活性;碳排放水平;电转气(P2G);电解槽;氢
MMC分布式储能系统:实现恒功率与恒电压控制的无缝切换技术,MMC分布式储能系统实现恒功率与恒电压控制的无缝切换技术,mmc分布式储能 恒功率控制 恒电压控制 无缝切 ,核心关键词:MMC分布式储能; 恒功率控制; 恒电压控制; 无缝切换。,MMC分布式储能系统:恒功率与恒电压控制的无缝切换技术
多频多快拍稀疏贝叶斯学习目标方位序贯估计_牛海强.pdf
交错并联Boost PFC仿真电路模型:双闭环控制方式下的输出电压与电感电流优化控制,优良波形及Simulink仿真实现,交错并联Boost PFC仿真电路模型:双闭环控制方式下的电压外环与电感电流内环优化,优质波形表现于Simulink仿真中,交错并联Boost PFC仿真电路模型 采用输出电压外环,电感电流内环的双闭环控制方式 交流侧输入电流畸变小,波形良好,如效果图所示 simulink仿真 matlab simulink仿真模型 无报告哈 ,核心关键词:交错并联Boost PFC仿真电路模型;双闭环控制方式;输出电压外环;电感电流内环;交流侧输入电流畸变小;波形良好;Simulink仿真;Matlab Simulink仿真模型。,基于Simulink仿真的交错并联Boost PFC双闭环控制模型优化研究