`
timeson
  • 浏览: 146472 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

工作流系统的设计与实现 1.0

阅读更多
I系统设计 5
1、概述 5
2、介绍 15
2.1、工作流历史与发展 15
2.2、术语定义(WFMC) 16
2.3、工作流模式说明 25
3、引擎设计 74
3.1、工作流对象状态 74
3.2、三层状态关系 75
3.3、过程推进 76
II系统实现 84
4、系统定位 84
4.1、Web应用特点 84
4.2、开发的演化 86
4.3、企业平台 88
5、建模 94
5.1、流程建模 94
5.2、数据建模 99
5.3、系统建模 109
6、引擎实现 111
6.1、模块说明 111
6.2、总体架构 112
6.3、状态模式实现状态机 114
6.4、事物触发与观察者模式 116
6.5、状态变迁处理逻辑 116
7、与业务系统结合 121
7.1、基于工作流应用的开发模式 121
7.2、业务系统和流程引擎的交互 124
7.3、通过规则引擎扩展功能 125
7.4、数据一致性 128
8、工作流外围系统 130
8.1、流程建模器 130
8.2、表单设计器 135
III其他 138
9、性能测试 138
9.1、持久压力测试 138
9.2、并发压力测试 140
10、结论 145


=========================================
另外:
08年写的文档《工作流系统的设计与实现_0.82.pdf》
在如下地址可以找到
http://www.iteye.com/topic/258525
分享到:
评论
38 楼 qiu768 2010-12-01  
好棒的文档!!谢谢博主无私的奉献出来!
37 楼 comsci 2010-11-01  
思路也不错嘛,代码也不过是一种思路的表现。。伪代码这种表现形式对于我们理解流程引擎的设计也具有相当重要的意义,关键的是我们在这个新兴的领域,需要不断地前进。。。不能期望暴发而获得成功,而需要一步一步的走,慢慢的走。。。前途非常光明,道路却很崎岖,甚至没有什么可以走的路,需要我们自己去开拓,还是那句我们非常熟悉的话:“其实世上本来没有路,只是走的人多了便成了路”
36 楼 timeson 2010-10-31  
comsci 写道
如果这个文档能够结合一个开源代码包和几个应用实例 ,一起发出来,就太好了。。。



代码已经实现了,不是基于开源作的,也就是说不是唉一些开源的工作流引擎、规则引擎上再度封装,
是公司的商业代码,所以文档里只有思路,和伪代码
35 楼 comsci 2010-10-31  
如果这个文档能够结合一个开源代码包和几个应用实例 ,一起发出来,就太好了。。。
34 楼 newvirus 2010-10-12  
都是高手啊 刚接触 学习中
33 楼 timeson 2010-10-11  
z_joey 写道
还有一个问题请教,关于表单的,赐教你们是如何解决的。
我在表单选型时,考虑了html+js+css组合和flex。
最后放弃了flex,主要是不知道自定义的脚本如何解释执行,还有flex的文件较大。而JavaScript,浏览器就可以解释执行了。
是每个表单都编译成独立的swf,还是存储配置信息(及其他信息),由一个统一swf执行。



我们正在开发一套web框架
基于struts2+jsp+flex

跳转,控制,等在struts处理,业务页面在jsp,flex中展现
基本来说,基本的表单在jsp,图形图像在flex
这里就有个jsp如何与flex的数据交互的处理
32 楼 timeson 2010-10-11  
z_joey 写道
拜读大作,受益匪浅,还要多读几遍。有个问题请教一下:
我看许多工作流设计器使用eclipse插件开发,这种插件能给最终用户使用吗?或者这种形式好吗?
我是直接用vb写的activex,直接嵌到网页里。
我对插件没有经验,最终用户就是指客户了,因为有些时候还是要调整流程的一些设置。



会提供2种方式
1〕基于插件的
2〕基于flex的web在线建模器

1、基于插件的是给程序员用的,并能和java视图集成一起,方便程序员使用
2、基于web的,是给业务人员用的,设计完毕需要部署到服务器中
31 楼 z_joey 2010-10-11  
还有一个问题请教,关于表单的,赐教你们是如何解决的。
我在表单选型时,考虑了html+js+css组合和flex。
最后放弃了flex,主要是不知道自定义的脚本如何解释执行,还有flex的文件较大。而JavaScript,浏览器就可以解释执行了。
是每个表单都编译成独立的swf,还是存储配置信息(及其他信息),由一个统一swf执行。
30 楼 z_joey 2010-10-11  
拜读大作,受益匪浅,还要多读几遍。有个问题请教一下:
我看许多工作流设计器使用eclipse插件开发,这种插件能给最终用户使用吗?或者这种形式好吗?
我是直接用vb写的activex,直接嵌到网页里。
我对插件没有经验,最终用户就是指客户了,因为有些时候还是要调整流程的一些设置。
29 楼 小小流浪猪 2010-10-10  
学习了,呵呵
28 楼 timeson 2010-10-09  
CshBBrain 写道
xyz20003 写道

jbpm提供的性能调优方面的建议是把耗时的操作设置为“异步”,迅速返还用户界面。学学bpel在消息请求方面加上mq应该也可以增大吞吐量,不过我还没有实际用过,不敢保证实际效果。

在流程引擎与实际业务绑定之前,单纯对数据库表的调优感觉没什么意义。

jbpm4方面主要是引入了history历史库的概念,把运行库与历史库分隔开来,避免因为流程数据库的不断积累影响流程引擎的运行效率。



xyz20003兄有时间的话测试下jbpm结合mq使用的效果如何,
将历史数据分开存放对性能的提升是有帮助的。



这里有个工作流引擎结合MQ的范例
是真实用例,在实际的项目中采用了这种模式
性能和数据的一致性经受了实际业务的考验

整个体系采取的是业务后置模式,
web前端只是起到了数据展现和打包成xml的功能,并通过mq传递给引擎端
并由引擎和后端业务模块一起来处理





工作流引擎和MQ集成的方式
27 楼 timeson 2010-10-09  
form_rr 写道
先看看。
不知道楼主如何实现工作流和数据流的分离。



工作流的数据分为:
控制数据
应用数据
相关数据
组织机构数据

一般来说,只有控制数据和相关数据被引擎使用
组织机构数据一般只是引用
应用数据一般和引擎没有关系,但可以通过扩展字段在引擎内部被传递




工作流引擎中内部涉及到的几种数据类型
26 楼 池中物 2010-10-08  
ronghao 写道
CshBBrain 写道

2.人工任务节点的参与者的处理,文章讲得很详细深入;但有一种情况没有提到,现实中经常出现,就是某个任务分配给某人处理了,但是这个人已经离职或调离了以前的岗位(反正就是这个人不可能再处理这个任务),这个时候该如何处理?

这个可以归入工作流异常处理,任务超时交由系统重新分配工作项,或者直接通知给案例负责人。

另外,工作流系统需要支持工作交接和委派,这个在资源模式里都有。


其实就是后台搞个任务重新分配
25 楼 KimHo 2010-10-08  
感谢楼主的分享,学习了
24 楼 xiangzi0506 2010-10-08  
好,学习了,Thanks
23 楼 skyuck 2010-10-08  
不错,学习了!
22 楼 sharepub 2010-10-07  
好文章,下载下来好好读下。
21 楼 syf721530 2010-10-07  
参观一下,。
20 楼 CshBBrain 2010-10-07  
ronghao 写道
CshBBrain 写道

2.人工任务节点的参与者的处理,文章讲得很详细深入;但有一种情况没有提到,现实中经常出现,就是某个任务分配给某人处理了,但是这个人已经离职或调离了以前的岗位(反正就是这个人不可能再处理这个任务),这个时候该如何处理?

这个可以归入工作流异常处理,任务超时交由系统重新分配工作项,或者直接通知给案例负责人。

另外,工作流系统需要支持工作交接和委派,这个在资源模式里都有。

工作交接,好主意,呵呵
19 楼 CshBBrain 2010-10-07  
xyz20003 写道

jbpm提供的性能调优方面的建议是把耗时的操作设置为“异步”,迅速返还用户界面。学学bpel在消息请求方面加上mq应该也可以增大吞吐量,不过我还没有实际用过,不敢保证实际效果。

在流程引擎与实际业务绑定之前,单纯对数据库表的调优感觉没什么意义。

jbpm4方面主要是引入了history历史库的概念,把运行库与历史库分隔开来,避免因为流程数据库的不断积累影响流程引擎的运行效率。



xyz20003兄有时间的话测试下jbpm结合mq使用的效果如何,
将历史数据分开存放对性能的提升是有帮助的。

相关推荐

    工作流系统的设计与实现_v1.0

    流程建模是工作流系统设计的核心部分,它涉及定义流程的结构、规则和逻辑。常用的建模工具包括BPMN(Business Process Model and Notation)等。 - **5.2 数据建模** 数据建模是指如何组织和管理流程中的数据。...

    Activiti6.0工作流使用说明文档v1.0.pdf

    Activiti 6.0 是一个流行的开源工作流引擎,旨在帮助用户设计、执行和监控业务流程。本文档旨在为用户提供 Activiti 6.0 工作流的使用说明,帮助用户更好地理解和使用 Activiti 6.0 工作流引擎。 模型设计器 在 ...

    OSWorkFlow 工作流系统设计知识的详细讲解

    ### OSWorkFlow 工作流系统设计知识的详细讲解 #### 概述 本文档将对OSWorkFlow工作流系统的设计知识进行详细讲解。OSWorkFlow是一个开源的工作流引擎,适用于构建灵活、高效的企业级应用。它提供了一套完整的解决...

    一套基于.NET的工作流AspWebFlow-V1.0-Alpha1-Net2

    总的来说,AspWebFlow-V1.0-Alpha1-Net2是一个宝贵的资源,对于想要深入.NET工作流技术的开发者来说,提供了实际操作的机会,同时也是了解工作流系统设计和实现的一个窗口。下载并研究其中的源代码,可以帮助你更好...

    网博flash流媒体直播系统 v1.0_fms_live2.zip

    【网博Flash流媒体直播系统 v1.0_fms_live2】是一款专为Web平台设计的实时流媒体直播解决方案,其核心是利用Adobe Flash Media Server(FMS)技术,为用户提供高质量、低延迟的视频直播服务。这个压缩包包含的是该...

    agileflow1.0OA工作流源码

    6. 启动应用服务器,验证工作流系统是否正常运行。 通过深入学习和理解AgileFlow 1.0的源码,开发者不仅可以掌握工作流管理系统的实现原理,还可以根据自身需求对其进行定制和扩展,以满足特定的业务场景。同时,这...

    流网点餐系统V1.0(员工版本地版)20130508

    流网点餐系统V1.0(员工版本地版)20130508是一款专为员工设计的在线订餐平台,旨在提高餐饮服务效率,优化员工用餐体验。这款系统于2013年5月8日发布,提供本地化版本,确保了员工在公司内部网络环境下可以流畅使用...

    新翔OA办公系统 v1.0.rar

    它意味着用户可以深入探究系统内部的工作机制,了解如何实现任务审批、日程管理、文档共享、工作流定义等功能。通过阅读和分析源代码,学习者能够提升自己的编程技能,尤其是在Java、PHP或.NET等常见的OA系统开发...

    基于持久消息队列的工作流管理系统研究

    然后,设计出了类似Windows DNA (Distributed Network Application, DNA)层次结构的五层系统体系结构,并提出了其切实可行的实现方案,该方案实现了“过程建模与配置工具”、“工作流引擎”、“客户应用”及“应用...

    OLMS-SDS-1.0软件设计说明1

    例如,OLMS的文档可能包含对系统设计原则、引用的技术标准、关键组件的详细描述以及接口设计等多个方面的解释。 4. **引用文档**: "引用文档"列出在设计过程中参考或依赖的所有外部资料,如编程语言的标准、框架...

    应用系统开发规范V1.0.pdf

    总结来说,《应用系统开发规范V1.0》是一份全面的开发指导文档,不仅关注技术实现,也注重团队合作和代码质量。通过遵循这些规范,开发者可以更有效地进行系统开发,保证软件的稳定性和可扩展性,同时也为未来的迭代...

    dacaiqi在线邮件群发系统 v1.0.rar

    7. **易用性与界面设计**:用户界面设计简洁,操作流程直观,使得非技术人员也能快速上手。 通过downcode.com,用户可以下载到 dacaiqi在线邮件群发系统的源代码,这对于开发者来说是一个很好的学习资源。不仅可以...

    简单Web服务器设计与实现.doc

    本文主要介绍了简单Web服务器的设计与实现,涵盖了WWW的工作原理、HTTP协议、Java语言、Web服务器的设计与实现等方面的知识点。 WWW的工作原理基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器...

    shark1.0的源代码,现在非常难找的资料

    其源代码的开放性使得开发者可以直接查看并理解其内部工作原理,这对于优化和定制工作流系统具有重要意义。通过分析Shark的源代码,我们可以学习到如何实现一个高效且灵活的工作流引擎,以及如何处理复杂的流程逻辑...

    光辉(GHOS)汉字系统 1.0

    《光辉(GHOS)汉字系统 1.0》是一款由王献冰开发的早期汉字操作系统,它在当时具有里程碑式的意义,为用户提供了便捷的汉字输入与处理功能。这款系统小巧而强大,能够运行金山公司的WPS 2.2,这在当时的个人计算机...

    学生信息管理系统v1.0

    《学生信息管理系统v1.0:C语言编程实践与学习指南》 学生信息管理系统v1.0是一款基于C语言开发的简易信息系统,旨在帮助管理和处理学生的基本信息和学业成绩。这款系统利用了Turbo C 2.0这一经典编译器进行编写,...

    Fire workflow 工作流资料

    这种低代码或无代码的方式降低了工作流系统的使用门槛,使得非技术背景的业务人员也能参与到流程设计中来。 4. **FireWorkflow1.0_changes.pdf**: 这个文件可能是Fire Workflow 1.0版本的更新日志或者变更记录,...

    ferry工单系统 v1.0.zip

    通过深入研究和分析【ferry工单系统 v1.0.zip】中的源代码,学习者可以掌握如何设计和实现一个实用的工作流管理应用,对于提升编程技能和理解软件工程流程有着显著帮助。此外,对于计算机科学的毕业设计论文而言,...

    Active4j-oa办公系统 v1.0.zip

    1. 工作流管理:通过Activiti工作流引擎,实现灵活的流程定制,包括流程设计、流程审批、任务分配等功能。 2. 文档管理:提供文档上传、下载、版本控制,支持多种格式,满足日常办公需求。 3. 信息公告:发布、订阅...

    Minix1.0内核源代码,word版

    Minix 1.0的源代码对于操作系统学习者和研究者来说是一份宝贵的资源,它提供了对早期操作系统设计的直观认识。通过研究这些源代码,我们可以更好地理解现代操作系统的基础,以及它们是如何随着时间的推移而演进的。...

Global site tag (gtag.js) - Google Analytics