`
cy729215495
  • 浏览: 127073 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

大话jbpm

阅读更多

前言:
我为什么要学jbpm这些新技术?入行快一年,发现自己只会在框架内做个增删改查,很是厌倦了。所以我利用业余时间来学点新知识,
读过书的人都知道:学习要做笔记。在百度,google里面你是搜索不到
很通俗的话语来解释jbpm这个概念的,为什么百家讲坛,明朝的那些事情那么吸引人?

什么是工作流?有什么作用?用在什么地方?
我们一个项目里面增删改查,不是工作流,因为这是一个人做的,不需要跟
别人合作。
一个人做的事情就不是工作流,所谓工作流就是工作在
流动,意味着需要很多人合作才能完成这个工作。
比如下订单处理,先下订单->订单确认->财务收款->库管配货->运送。
这里面涉及的人先是客户,系统管理员,财务,仓库管理员,司机。

在oa,电子政务应用的非常广泛。
举一个没用工作流的时候经常碰到的问题的情况:
发布一条新闻需要审核,假如新闻存储在news表里面。
假如a发布了这么一条新闻,那么news表多了一条记录,但是状态是0(未审核)。

假如b审核通过了,前台可以显示了。

假如a修改了这条新闻,那这条记录是不是就应该存储在news表里面呢?
可以还是不可以?行还是不行?成还是不成?对还是不对?
这条记录的状态是1(审核通过的),而审核通过了的可以显示。

但是修改的这条记录必须要审核,这不矛盾吗?
这里我先伏下一笔。

工作流系统的主要概念
流程定义:预先定义的业务流转逻辑
流程实例:业务的一次实际流转过程
参与者:任务的执行者
活动:组成流程定义的节点
活动实例:组成流程实例的元素
流转:从一个节点到另外一个节点这一行为
工作列表:当前需要办理的任务集合
工作流引擎:工作流的核心组件,对流程实例,任务实例以及其状态进行管理

 

ProcessDefine:定义了流程的业务逻辑,包含业务节点和流转。是有向图结构。
ProcessInstance:ProcessDefine执行期间的体现,包含了流程定义被解释后的一些信息,诸如开始时间,介绍时间和其他相关联的信息

Task:是ProcessDefine的组成部分,定义了活动的具体内容
TaskInstance:Task被解释执行时的信息,开始时间,结束时间,
参与者id,还有create(跟流程实例的创建时间一样),start(开始
时间,就是参与者开始执行任务),end。
Actor:活动的参与者,jbpm目前只需要actor的id,对actor的具体解释是
有业务应用层负责,任务创建时可以指定任务的参与者,也可以不指定
,在一般的系统中,不建议采用jbpm的identity组件

Token:是一个指针(运行期的概念),代表着一条执行路径,指向当前流程中正在
执行的节点,在实例的运行期间,tokens可能是一树形结构
,同一时刻,可能存在多个token,但是只有一个root token


学习工作流的切入点就是从以下这几个方面:
如何编写流程定义
如何部署流程
如何加载流程
如何启动流程
如何执行任务
如何完成任务


开源的工作流有:jbpm,shark,openflow
商业版本:bea公司的wli ibm公司的wps 国内最著名的是西安协同数码,普元

 

未完,待续(每天挤公交几个小时,此时已经快11点了,此时不睡更待何时?明天继续)

分享到:
评论
7 楼 锥峰傲骨 2011-11-25  
期待楼主完善jbpm。。。。。
6 楼 litf 2010-04-06  
cy729215495 写道
conect 写道
a修改了这条新闻,那这条记录是不是就应该存储在news表里面呢?

既然是修改,那肯定是之前有保存,这条记录当然在news表里面!

可以还是不可以?行还是不行?成还是不成?对还是不对?

这不是想唬一下人吗!

这条记录的状态是1(审核通过的),而审核通过了的可以显示。

但是修改的这条记录必须要审核,这不矛盾吗?


如果这是"矛盾",这矛盾恐怕也是楼主搞出来的吧!
谁说这条记录的状态是1了,既然有修改,那状态肯定要修改为0啊,重新走一遍审核才能到前台显示!

我前面说显示在页面上了,当然状态是1!
要修改的记录要放在另外一张表里面才行!


这是新闻里面的版本控制问题,本来可以显示的,让它继续显示,在它修改之后审核通过之前,仍然显示旧的内容,一旦审核通过,就显示更新之后的内容。
5 楼 cy729215495 2009-10-30  
把话题说偏了
4 楼 cauxu 2009-10-30  
还真是大话
3 楼 cy729215495 2009-10-30  
conect 写道
a修改了这条新闻,那这条记录是不是就应该存储在news表里面呢?

既然是修改,那肯定是之前有保存,这条记录当然在news表里面!

可以还是不可以?行还是不行?成还是不成?对还是不对?

这不是想唬一下人吗!

这条记录的状态是1(审核通过的),而审核通过了的可以显示。

但是修改的这条记录必须要审核,这不矛盾吗?


如果这是"矛盾",这矛盾恐怕也是楼主搞出来的吧!
谁说这条记录的状态是1了,既然有修改,那状态肯定要修改为0啊,重新走一遍审核才能到前台显示!

我前面说显示在页面上了,当然状态是1!
要修改的记录要放在另外一张表里面才行!
2 楼 conect 2009-10-29  
a修改了这条新闻,那这条记录是不是就应该存储在news表里面呢?

既然是修改,那肯定是之前有保存,这条记录当然在news表里面!

可以还是不可以?行还是不行?成还是不成?对还是不对?

这不是想唬一下人吗!

这条记录的状态是1(审核通过的),而审核通过了的可以显示。

但是修改的这条记录必须要审核,这不矛盾吗?


如果这是"矛盾",这矛盾恐怕也是楼主搞出来的吧!
谁说这条记录的状态是1了,既然有修改,那状态肯定要修改为0啊,重新走一遍审核才能到前台显示!
1 楼 zhuyx808 2009-05-07  
LZ可以先列个大纲,这样一来写着方便,二来便于阅读与学习

相关推荐

Global site tag (gtag.js) - Google Analytics