6897335 发表于 2018-8-20 16:44:41

2018支持电子商务的分布式工作流引擎的研究

  [摘要] 本文吸取国内外工作流技术方面的研究成果,通过对电子商务和分布式工作流引擎技术的深入研究,针对实现过程中所涉及的关键技术:模型分割服务、过程调度服务、柔性角色调度服务等作了深入的论述。
  [关键词] 分布式工作流引擎模型分割过程调度柔性角色调度
  本文先从电子商务业务过程模型的分割服务开始讨论分布式工作流引擎的关键技术,模型分割服务是整个分布式工作流引擎系统的基础服务,介绍了分布式工作流引擎的调度服务,并根据电子商务的实际特点提出角色的柔性解析方案。
  
  一、模型分割服务
  
  现代电子商务业务过程总体上采用层次结构。在大多数情况下,合作的企业之间如何协作是预先协议好的,各部门之间的交互可以通过一个单独的顶层业务过程描述,又称为根过程。
  顶层过程中的活动分别由不同的子过程服务实现,子过程4中的两个离散活动T和U分别实现了顶层过程中的活动W和Z。这些过程服务可以是属于同一个组织不同部门的,也可能是属于不同组织的,为了实现顶层过程描述的共同目标而组合在一起,是一种动态的松散的连接关系。整个过程可以作为粒度更大的Web服务发布,也可以被服务请求者用来组成更高层次的业务过程。
  
  二、过程级调度服务
  
  工作流引擎的调度服务是工作流模型实例化之后的运行服务,是工作流引擎的核心功能模块,分为两个层次:过程级调度服务和活动级调度服务。相对集中式的工作流引擎,分布式工作流引擎在调度服务上可以实现更好的扩展性。可靠性、高吞吐量和良好的性能。
  在过程路由选择上除了WPDL中定义的分叉、合并之外,用户在需求上还存在循环、跳过、反馈等路由需求。对过程定义的改进、过程实例的更改和迁移同样是非常实际的需求。因此有必要在过程级调度服务上提供一套柔性的服务。
  
  三、柔性角色调度服务
  
  通过上一节过程级调度所产生的活动实例之后,需要负责为工作项分配合适的执行人或者资源。目前的绝大多数应用在电子商务中的工作流管理系统在适应性方面都做的很不够,在活动任务的分配上,无论对执行人还是资源都是采用静态的方法,这样做的好处就是工作流引擎处理的时候可以非常方便快捷的对执行人和资源进行调度,但缺点是显而易见的。
  本文仅对角色的分配作论述,提出的角色解析模型是一个引入了实例级上下文关系支持完全动态分配的柔性角色解析。
  1.工作流活动角色解析
  在这样一个工作流的标准工作过程中,对于一个活动可能需要有多个参与人共同完成,也可能是在定义的时候无法确定或没有必要确定到某个具体的人,而只是指定了一定的选择范围,以及对应的规则条件。从获取工作项任务的方式上可分为推式(Push)和拉式(Pull),从工作项任务的处理策略上又可分为协作型和排他型,下面分别给出解释。
  推式:就是由工作流引擎负责从满足条件的用户集中选取一个或多个用户把工作项任务指派给它或它们,这些用户负责完成该任务。
  拉式:是基于每个可能执行人都有较大的工作积极性前提下的,工作项任务对可能执行人集合内的每一个可能执行人都是开放的,每个潜在执行人都可公平的竞争任务。
  协作型:指按照某个条件允许一定数量的用户同时执行该任务,即一个活动实例产生多份相同工作项任务分配给执行人执行。
  排他型:指一个活动实例产生一个工作项任务,处理简单,不做论述。
  2.柔性角色解析算法
  本文提出的柔性角色解析算法的宗旨就是尽可能的满足用户对活动任务分配的各种需求,该算法是从“定义级“和“实例级”两个层面来实现的。
  当用户定义一个活动的时候就为这个活动指定了可能的任务参与人,也就是静态绑定了参与人,并且指定了各种相关信息。这种“定义级”的指定参与人己经可以满足用户的大部分需求了,当用户需要根据实际情况来限定,修改活动参与人的时候,就可以通过“实例级”的实体对象进行操作。
  下图是一个活动任务(工作项)产生时候的角色解析算法流程图:
页: [1]
查看完整版本: 2018支持电子商务的分布式工作流引擎的研究