面向业务的动态任务分配工作模型定义
2014-12-23李春芳徐建军
李春芳,徐建军
(1.长沙理工大学 计算机与通信工程学院,湖南 长沙410004;2.国防科技大学 计算机学院,湖南 长沙410073)
0 引 言
任务分配是许多应用系统中必须解决的问题。以往很多应用系统只完成了将任务分配给合法用户的内容,从而避免非法用户使用系统的问题。然而这种解决方法通常只能应对静态的人力资源和执行过程组成,通常称之为静态任务分配。现今,人力资源结构与内容在不断发生变化,执行过程也在随着业务流程的发展与整合而不断更新,因此亟需动态的任务分配方法解决员工与任务的执行与评价关系[1]。到目前为止,国内外学者对动态任务分配的研究主要集中于在特定领域的任务分配算法以及动态任务分配的相关组成内容上[1-10],它们的工作为动态任务分配系统奠定了一定基础。然而,现急需在统一动态任务分配工作模型基础上建设基于不同企业与行业的实际动态任务分配系统。本文在对动态任务分配内容进行充分研究的基础上,基于策略优先的动态任务分配策略提出了一个通用动态任务分配工作模型,并给出其形式化定义,以规范与约束实际的动态任务分配系统开发。最后通过一个实践案例表明该工作模型的应用方法。
1 工作流内的动态任务分配内容结构描述
在动态任务分配的执行过程中,无论相关内容如何复杂,实际上任务分配产生的过程与结果与3 类角色有关,它们分别是参与者、候选者以及任务执行者。所谓参与者(participant)指的是整个动态任务分配过程伊始确立的大概任务分配范围,以便将某些不符合任务执行需求的人员直接排除在分配对象之外,或者确立基本的分配单元 (如团队或角色等),该群体为任务执行者的基础选择对象。所谓候选者 (candidate)指的是在参与者中有意愿参与任务执行的人员,他们可能是最终任务执行者,但是还需要根据任务分配工作推进的机制来决定,而每个候选者都其可能执行的任务列表内容。所谓执行者 (executor)是指根据多个任务分配方案最终选择确立的任务执行者,一般情况下,该内容不会被变更,如果因为特殊原因导致其不能实际完成任务,则需要将该任务重新推进任务分配系统中,重新生成相应的参与者、候选者以及执行者内容。
根据长期的实际工作流应用的研究以及相关文献的参考,可将工作流中的动态任务分配结构定义为以下几种:
(1)动态组织机构。所谓动态组织结构是指与任务分配对象关联的组织机构实体约束内容是发生变化的。任务分配对象约束定义了可能执行任务的人员必须具备的基本条件,其内容可由相关人员所具备的角色、权限、职位以及组织单元定义,也可能与相关人员具备的技能、团队、负载、兴趣度来定义。需要相应的动态组织机构定义来支撑相应的动态任务分配对象选择。动态组织机构对动态任务分配过程的影响往往在参与者的选择上。
(2)任务选择执行方式。所谓任务选择执行方式指的是根据实际业务流程工作模式的定义,参与者是否可以主动选择任务执行的模式。目前任务选择执行方式大体分推(push)和拉 (pull)2 种。其中推方式指相应的参与者不具备选择任务执行的能力,而由系统直接将相应任务推给符合任务执行条件的对象;在推的过程中,可定义系统选择的依据从而定义参与者集合到候选者集合的转换。如医院医生的病人看诊与病人住院治疗、学校的课程教学工作、工厂订单分配就属于推模式。拉模式则允许符合任务执行条件的参与者根据自己的意愿选择相应的任务来执行,从而将自身从任务参与者转变为任务候选者。一般拉模式适用于无需迫切完成,注重任务与执行者的最高互相满意度内容的情况,如基于拍卖的任务分配模式、合同中标过程等。基于拉模式的动态任务分配模式需要在系统与参与者之间制定严格、复杂的参与协议。
(3)任务优选策略。当实际意愿参与任务执行的候选者人数超过实际所需的任务执行者人数,则需要根据相应的任务优选策略从候选者中选择最终的任务执行者内容。相应的评估依据可能是能力内容,也可能是负载均衡的内容等。
由此可知,现代动态任务分配的实际产生过程需要在人与计算机之间进行多次互动,从支持更灵活、更符合实际需要的任务分配方案。本文提出策略优先的动态任务分配定义与执行办法来建立相应的工作模型来定义实际的工作流任务分配系统开发内容与过程。
2 策略优先的动态任务分配工作模型定义
所谓策略优先的动态任务分配定义与执行方法指的是以策略的方式描述与定义变化的动态任务分配内容,只当业务流程中任务节点的需要才选择相应的动态任务分配策略执行。也就是通过策略定义与执行分离的方式来提高对实际任务分配方案变化的适应能力。在策略优先的动态任务分配方法基础上定义的任务分配工作模型 (strategy-first dynamic task allocation work model,S-DTAWM)如图1所示。
S-DTAWM 由动态任务分配策略、任务分配系统、任务分配结果库、动态组织机构库4大部件组成。其中动态组织机构库为基础输入性组织部件,其建设质量直接影响任务分配策略的定义范围与能力;动态任务分配策略由开发人员提供模板最终由业务人员完成输入定义;任务分配系统则负责根据动态任务分配策略以及动态组织机构库提供的基本人员信息产生任务分配结果,并将其输出到任务分配结果库中。S-DTAWM 的形式化定义如下:
定义1 动态任务分配策略DTAS=<Taski,ACondition,AObject,AMechanism,AMethod>,其中Taski代表与该任务分配策略相对应的任务信息;ACondition 代表完成任务分配的条件信息,支持不同条件下的任务分配方法;AObject则代表动态分配对象信息,描述有权完成相应任务执行的人员基本需求信息,它与系统预先定义的动态组织机构信息DOrganization 紧密关联;AMechanism 代表的是任务选择执行方式;AMethod 代表的是任务优选策略,用于描述优化人员选择的方法。任务选择执行方式AMechanism=< {Push|Pull},MConfig>。其中Push 与Pull代表任务选择执行方式的2种具体模式,它们是二选一的关系;MConfig 用于描述与推或拉模式对应的配置项内容,如在推模式下是否允许拒绝,在拉模式下是否允许回退等。任务优选策略AMethod=<CapacityStrategy,Intrest-
Strategy,BalanceStrategy,ProcessStrategy, MConfig1
>,其中CapacityStrategy 代表能力成熟度评估策略,IntrestAssess代表兴趣度评估策略,BalanceAssess代表负载均衡评估策略,ProcessStrategy 代表流程相关分配策略,MConfig1代表有关能力成熟度评估策略、兴趣度评估策略、负载均衡评估策略的配置项内容,如优先顺序或比重信息等。
定义2 能力成熟度评估策略CapacityStrategy=<Taski,Capacityj,TCQij,TCLevelij,TCLeveri>,其中Taski代表与该能力成熟度评估策略对应的任务信息;Capacityj代表该能力评估策略针对的能力内容项,TCQij代表针对任务Taski对特定能力内容项Capacityj的量化方法;TCLevelij代表任务项Taski对能力Capacityj的需求级别信息;TCLeveri代表任务项Taski对能力内容总评的级别需求信息。IntrestStrategy 的定义与CapacityStrategy的定义类似,这里不再重复。
定义3 负载均衡评估策略BalanceStrategy=<Taski,Balancej,TBQij,TBLevelij,TBConfig >, 其中Taski代表与该负载均衡评估策略对应的任务信息;Balancej代表该任务项Taski所需的负载均衡评估项内容,如员工的实际工作数量或员工的工作值考核信息等;TBQij代表任务项Taski对Balancej项相应值的量化方法;TBLevelij代表任务项Taski对负载均衡项Balancej的负载约束性内容,如不低于特定数值或不高于特定数值等;TBConfig代表该员工总体负载约束性内容,以便核算该员工的负载结论信息,如是否超载、空载、轻载、适载、重载等。
定义4 动态组织机构DOrganization=<Role,Privilege,Capacity,Intrest,Team>;动态组织机构的组成元素可被扩展,用于描述任务分配条件所需的人员基本信息。其中Role代表员工与角色的对应关系;Privilege代表员工与权限的对应关系;Capacity 代表员工的能力成熟度内容;Intrest代表员工兴趣度信息;Team 代表员工所属团队信息。其中员工能力成熟度Capacity=<CN,CL>,其中CN 代表员工应具有的能力名称信息,CL 代表员工针对特定能力名称具有能力级别信息;员工兴趣度Intrest=<TaskType,IL>,其中TaskType 代表任务类型信息,IL 代表员工对特定任务类型的兴趣度值信息,它的量化主要是通过用户输入基本信息时转化而成。Team=<Emps,TConfig>,其中Emps定义为包含在该特定团队中的员工对象集合,TConfig 用来对该团队进行一些配置性说明,如该团队是固定的还是可调整的。
定义5 动态任务分配组件TAComponent=<Taski,Participants,Candidates,Executors>其中Participants是与任务项Taski对应的参与者集合,Candidates是与任务项Taski对应的候选者集合,Executors是与任务项Taski对应的任务执行者集合。动态任务分配组件产生相应集合对象的伪码如下所示:
步骤1 Participants =selectParticipants (Taski,ACondition,AObject,DOrganization)
//根据当前任务项信息Taski、任务分配条件ACondition、任务分配对象AObject以及动态组织机构信息DOrganization 获得符合任务执行条件的参与者集合信息。如果任务分配对象与流程相关,则需要获取流程相关信息,并在ACondition部分完成对相关流程变量的判断。
步骤2 Executors=allocationTask (Participants,AMechanism,AMethod)
//根据现有任务参与者集合信息Participants、任务选择执行方式信息AMechanism 以及任务优选策略信息AMethod 获取最终相应任务的执行者集合信息。
allocationTask方法的基本处理流程如下:
步骤2.1 If numOfCandidates<needOfTask (Taski)
定义6 能力成熟度评估组件CAComponent=<Taski,Candidatej,CapFitij>,其中CapFitij代表需要评估的Candidatej对任务项Taski的能力匹配适合度结果信息。能力成熟度评估组件需要从动态组织机构DOrganization中获取各候选者与特定能力项的对应信息,并提取动态任务分配策略中的能力成熟度评估策略,最终产生与特定任务的能力成熟度评价结果。候选者与特定能力项的对应信息CRL=<Candidatei,Capacityj,CCLij>,其中CCLij为候选者Candidatei对能力项Capacityj的级别信息;如果该部分信息没有进行量化,则还需要利用相应的能力成熟度量化方法对其进行量化转换。能力成熟度评估组件工作过程大致如下:如果CCLij低于TCLevelij,则CapFit=0,否则CapFitij=∑CCLij/TCLeveri。系统可以根据能力成熟度评估结果选择与Taskj对能力需求匹配度最高的候选者来执行相应任务。兴趣度评估组件的工作原理与能力成熟度评估组件的工作原理类似,在此不重述。
定义7 工作负载评估组件WBAComponent=<Taski,Candidatej,BLeverij>,其中BLeverij代表针对任务项Taski候选者Candidatej的负载评估结果。工作负载评价项Balanceij=<TGij,TPij>,其中TGij代表任务项Taski执行的紧迫度 (如适中、急、不急等),TGij代表任务项Taski的执行复杂度或难度信息。TBQij=<TGR,TPR>,其中TGR 代表紧迫度系数信息,TPR 代表难度系数信息。如果TGij×TGR +TPij×TPR >TBLevelij,则BLeverij=100 (即为超负荷),否则BLeverij=∑ (TGij×TGR+TPij×TPR)/TBLevelij。系统将选择负载评估值相对低的候选者来完成相应任务。
定义8 任务分配绩效评估组件PAComponent=<PAS,BIT,PAR>,其中PAS 对应了绩效评估策略信息,如考核周期、评价参数 (如任务实际执行时间与任务预估执行时间平均比、完成任务数量与实际任务执行者人数比、人均负荷量信息等)以及评价参数的量化标准;BIT 对应业务增长率评估信息,具体到特定任务类型的增长率、相应执行者的对应量;PAR 对应任务分配绩效评估结果。PAS 与BIT 都需要根据任务分配结果中的具体任务执行者情况以及任务执行有效时间等计算出最终的PAR值。相应部分的内容因为评价策略PAS 的不同而可能相去甚远。
定义9 任务分配结果TAResult=<Taski,Executors,EExecuteTimei,RExecutorTimei>,其中Executors代表相应任务的实际执行者,EExecuteTimei代表任务项Taski的预估完成时间,RExecutorTimei代表任务项Taski的实际完成时间。
3 实例分析
S-DTAWM 工作模型在多种动态任务分配策略上的支持以及策略定义与执行组件的分离,使得S-DTAWM 可以更好地面向终端用户,对动态任务分配策略解析与执行有很好的适应性。S-DTAWM 可被广泛应用于各行各业的动态任务分配执行,如学校的教学工作分配、单位的办公审批、医院的病人就诊分配以及工厂的订单分配等。以下是S-DTAWM 工作模型在某银行信贷审批时完成相应任务分配工作的应用说明。银行信贷审批策略管理员通过基于SDTAWM 模型开发的系统定义相应信贷工作审批任务分配策略。一个典型的信贷审批任务分配策略定义如下:
银行信贷审批策略管理员依据任务分配系统提供的模板完成相应审批任务分配策略的定义,并在相应模板中填写具体信息。任务分配系统在实际业务流程的执行过程中根据预先定义的任务分配策略完成相应任务分配的执行。为完成相应任务分配系统工作的完成,本任务分配系统的动态组织机构内容具体定义为<”Role”,”Position”,”OrganizationUnit”>,也即相应动态组织机构需要提供对员工角色信息、职位信息以及组织单元信息查询的支持。系统的任务选择执行方式具体定义为<”push”, “RejectIsNotAllowed”>,即工作人员不能拒绝分配的推模式,完全由系统完成任务执行对象的内容。相应任务优选策略定义为<”BalanceStrategy”>,且相应的负载均衡评估项定义为<”Month”,”WokArmount”,”WorkComplexity”>,也即相应的负载均衡评估计算方法为以1 个月为核算单位,计算相应的信贷审批数量WorkAmount×相应审批项目类型的难度系数WorkComplexity,并设定了该任务项的负载限制数为 {30}。该任务分配系统定义的绩效考核量化策略为:“如果1个月内完成信用卡审批任务10项及以下绩效量化标准值为2,完成信用卡审批任务11到20项审批绩效量化标准值为5,完成信用卡审批任务20到30项绩效量化标准值为10”。相应任务分配系统定义的绩效评估策略定义为<”绩效量化值平均数”>。相应任务分配系统的任务分配组件、工作负载评估组件、绩效评估组件的工作流程与算法不变。这样可以实时适应银行不同的绩效考核与评估策略、分配策略等内容。如果S-DTAWM 在其他业务系统中进行应用,也是通过业务逻辑管理人员来定义与维护相应分配策略,而无需修改基于S-DTAWM 的工作组件代码,由此提高了的S-DTAWM 工作模型的适应性和可移植性,也大大降低了相应业务系统的任务分配管理维护成本。
4 结束语
基于S-DTAWM 工作模型开发的动态任务分配系统可以通过具体动态组织机构模型和动态任务分配策略的定义来支持不同需求的动态任务分配,并大大提高任务分配效果与质量。通过合理的动态任务分配策略调整以及完备的动态组织机构定义,可以使员工工作能力与工作情绪的调度得到很好的解决,从而提高了整个业务处理的质量与效果。基于S-DTAWM 工作模型的动态任务分配系统已经在多个银行、政府、医院子系统中得到广泛应用。SDTAWM 工作模型定义及其形式化说明,为面向业务的通用动态任务分配系统的构建奠定理论与实践基础。
[1]ZHANG Yu,LI Fanzhang.Research on multi-Agent dynamic task allocation algorithm and based on dynamic fuzzy set[J].Acta Electronica Sinica,2009,37 (11):2551-2556 (in Chinese).[张瑜,李凡长.基于DFS的多Agent动态任务分配算法研究 [J].电子学报,2009,37 (11):2551-2556.]
[2]GUO Xijuan,LI Mohua.Dynamic task assignment algorithm based on multi-criteria[J].Journal of Computer Applications,2008,28 (10):2507-2509 (in Chinese). [郭希娟,李墨华.基于多准则的动态任务分配算法 [J].计算机应用,2008,28(10):2507-2509.]
[3]LI Xiangqing,SUN Xiuxia,WANG Dong,et al.Dynamic UCAV mission assignment using genetic algorithm [J].Journal of System Simulation,2008,20 (16):4387-4389 (in Chinese).[李湘清,孙秀霞,王栋,等.基于遗传算法的UCAV动态任务分配模型及研究 [J].系统仿真学报,2008,20(16):4387-4389.]
[4]Andrew J Page,Thomas M Keane,Thomas J Naughton.Multi-heuristic dynamic task allocation using genetic algorithms in a heterogeneous distributed system [J].Journal of Parallel and Distributed Computing,2010,70 (7):758-766.
[5]Sivanandam SN,Visalakshi P.Dynamic task scheduling with load balancing using parallel orthogonal particle swarm optimization [J].International Journal of Bio-Inspired Computation,2009,1 (4):276-286.
[6]TAO Xueli,ZHENG Yanbin.A multi-Agent task allocation methed based on capability and mission requirement[J].Computer Applications and Software,2012,29 (11):181-184 (in Chinese).[陶雪丽,郑延斌.基于能力及任务需求的多Agent任务分配方法 [J].计算机应用与软件,2012,29 (11):181-184.]
[7]YANG Ping,LIU Ying,PEI Ying.Agent dynamic task allocation based on improved contract net protocol[J].Fire Control & Command Control,2011,36 (10):77-80 (in Chinese).[杨萍,刘颖,裴莹.改进合同网协议的Agent动态任务分配.火力与指挥系统,2011,36 (10):77-80.]
[8]Bokar A,Bozyigit M,Sener C.Scalable energy-aware dynamic task allocation [C]//Advanced Information Netwoking and Applications Workshops,2009:371-376.
[9]TAO Xueli,LI Shuangqun.Dynamic task allocation algorithm based on auction [J].Computer and Modernization,2012(7):2475-2478 (in Chinese).[陶雪丽,李双群.基于拍卖的动态任务分配算法[J].计算机与现代化,2012 (7):2475-2478.]
[10]LI Lin’ai,GUO Yinzhang.The collaborative design task allocation based on extension contract net[J].Journal of Taiyuan University of Science and Technology,2011,32 (4):253-257 (in Chinese). [李林爱,郭银章.基于扩展合同网的协同设计任务分配机制研究 [J].太原科技大学学报,2011,32 (4):253-257.]