2014年(17)
分类: Java
2014-01-10 14:36:46
一个业务流程本身是一个服务。我们可以利用它去协调可重用的子流程或者其他服务,而这些服务本身有可能是其他的实现类型。业务流程一个重要的方面就是它的寿命以及与人的交互。一个流程的寿命可以非常短,这在高度自动化的系统中是很很常见的。然而,有的流程可能寿命非常长,可能是几天或者几个月,并且在流程能够进度之前需要等到人工用户去完成一个和某个活动相关的工作项目。例如,一个业务流程可能等待一个经理去批准一个身旁请求。
业务流程的编排,就需要靠虑多种情况,以下为几个比较典型的例子:
分支:如图,手工活动4执行完后,依据条件判断,选择若干后继信牌箱中的一个放入信牌,从而手工活动5或者手工活动6或者手工活动7可以继续执行。
同步:如图,如果手工活动4的三条前驱转移(G,H,I)之间的关系为同步关系(AND,OR,XOR,TAND,MAND),则信牌箱8、信牌箱9、信牌箱10中都有信牌时,手工活动4才可以执行。
如图,如果A,B,C三条转移的权值相等,则手工活动1,手工活动2,手工活动3之间便为竞争关系,三个活动只能有一个执行。
如图,如果满足转移7的执行条件,手工活动2才能执行,这样便形成循环。
如图:启动该过程实例,如果静态活动1执行多次(两次或两次以上),这样便会形成多流;如果转移7和转移6的条件同时满足,手工活动2和结束结点1都会执行,同样也能形成多流。