一种基于角色关联的角色组划分方法

文档序号:6334710阅读:458来源:国知局
专利名称:一种基于角色关联的角色组划分方法
技术领域
本发明涉及基于角色关联的角色组划分,尤其是对CDL中参与者的基于角色关联 的角色组划分方法。
背景技术
Web服务组合是指应用相关语言把细粒度的Web服务根据用户需求和特定的上下 文组合成更大粒度服务的组合过程。服务组合语言是用来描述服务组合对象、对象之间关 系以及实现服务组合的编程环境,是实现服务组合的技术基础。服务组合语言为服务重用 与集成提供了应用基础,在推动服务组合应用中起到了巨大作用。对于服务组合的语言,根 据现在的研究,有基于工作流的模型的,有基于组建技术与网格计算的。对于服务组合方式 的宏观层次而言,大致分为Orchestration方式和Choreography。Choreography描述了用来管理单个进程之间相互交互的全局协议。每个进程提供 了自己的服务且使用合作伙伴的进程。Choreography用于从全局的角度描绘某个应用场景 下,若干Web服务彼此间如何交互,其设计结果是一个不可执行的方案,需要各个节点从中 抽取出自己应实现的Web服务,然后按照此方案与其他Web服务交互。Orchestration是业务流程建模和可执行的流程,通过它可与内部、外部Web服务 互操作并执行商业流程。它们之间的互操作是一种信息级别的操作,包括通信动作、内部 动作、商业逻辑、任务执行顺序等。内部动作包括数据的转换和内部软件模块的调用,是告 诉消息引擎做什么和何时做的代码,可以使商业组织实现长程的、事务性的、多步骤的进程 模型。在服务组合建模中,Orchestration常用来业务流程建模、业务分析定义和建模图形 化流程,而不需考虑底层自动化流程的代码复杂性。目前在服务组合建模中,BPEL常用来业务流程建模、业务分析定义和建模图形化 流程。这种方案是静态的映射方式,适用于自底向上的服务组合设计方案。但是还有很多重 要应用采用自顶向下的设计方案,例如基于CDL的设计方法也有广泛应用。使用动态映射 方式,通过角色关联方案把用户给出的CDL实例转换成可执行的BPEL,然后调用适当BPEL 执行引擎去具体执行。

发明内容
本发明的目的在于提供一种能够高效地把⑶L模型映射为企业中的执行BPEL,实 现CDL与BPEL间的动态映射的基于角色关联的角色组划分方法。从而改变已有域的映射 方式,得到粒度适中的BPEL,提高执行效率。同时提供关联域映射规则库,把CDL中的频繁 操作有效结合在一起,聚合服务应用,方便服务组合实现,有效控制服务BPEL的粒度。为达到上述目的,本发明采用的技术方案是1)对系统加载进来的CDL文件进行解析,根据参与者(participant)的不同行为 提取出角色,为后续生成角色分组关系功能提供前提基础;2)角色关联函数
rClation(Ri^Rj)= ^ 仍风民 Rk^E(RnRj) η /°k E(R^R1)
Pathx^PatMRi,Rj)}k如Pathx ExtraMk + \表示角色Ri和角色Rj间的角色关联度,根据角色关联度的大小,将这两个角色 参与的活动形成一个新的分组,并命名为角色组G ;其中Ri和Rj表示展现不同行为的两 个角色,E(Ri,Rj)表示Ri和Rj的交互的次数的总和,M表示任意角色的操作集合;ω i表 示角色Ri的活动的利用率;Mk表示角色Rk参与的操作集;ExtraMk表示该角色Rk除了在 与交互树中的角色进行交互的同时,还调用了其他参与者的角色的操作;path(Ri,Rj)表 示角色Ri到角色Rj的所有角色树分支的路径;3)阈值选取,采用数据训练的方式确定最优阈值S,当最优阈值s被选中时,角色 组G对应的BPEL流程复杂度为最大值,设其为M,流程复杂度的计算见步骤5);4)角色Ri与角色组G的角色关联度等于该角色Ri与角色组G每一个角色的关联 度之和然后除以角色组中角色的数量;5)流程复杂度,设nl是BPEL流程里所有活动中的控制元素的总数,这些活动之间 不能嵌套;设n2是流程中活动的数据参数个数,设附为流程中活动出现的次数,设N2为流程中数据参数出现的次数,由以上的数据,计算量度流程长度N = m+N2;流程词汇量η = nl+n2 ;
流程容量 V = N*log2n ;流程复杂度D = nl/2+N2/n2 ;给出BPEL控制流复杂度的度量方法,Control-flow Complexity,简称CFC,BPEL 流程的逻辑是由相互独立的活动组成的,流程(process)用P表示,活动(activity)用a
表示,则 CFCprocess (P) = Σ CFCact ( );
α三P6)对WSCDL文件做语法解析得到Choreography中所有的参与者对象及其扮演的 所有角色对象,对于每个角色对象再遍历WSCDL获得由该角色端完成的交互活动,将所得 到的信息形成一个角色交互树;7)在建立的角色关联树中,角色关联树的根元素为Choreography的头元素,取角 色关联树根元素Rt,计算Rt和Rm之间的角色关联度relation (Rt,Rm), Rm指的是关联树 中的任一角色计算方法见步骤2),其中E (Rt,Rm)共0;8)若relation (Rt,Rm) > s,则把Rm放在Rt所在的组内,使这两个角色成为一 组,若 relation (Rt,Rm) >= s,直接跳转 9);9)将Rm作为树根元素Rt,重复8)的操作,直到Rm为角色关联的叶子节点;10)如果存在 relation (Rt, Rm) > s,且 relation (Rp, Rm) > S 的情况产生,其中 Rp为角色关联树中不同于Rm的另一角色,将Rt所在的角色组记为Groupl和把Rp所在的角 feSid^J Group2,relation (Rm,Groupl) > relation (Rm, Group2), Rm hKM^t Groupl 中,反之亦然;11)存储结构应用HashMap存储RoleItem和分组序号,RoleItem是角色信息类,它包含了角色名称,角色所属参与者类型以及活动率等属性,分组序号即是角色分组后的 所在组序号。本发明应用Pi演算的相关理论和流程模型复杂度理论对Choreography中的角 色和角色之间的关系进行重新处理以达到WSBPEL执行性能优化。通过设计相关的关联函 数和训练科学的阀值对Choreography中的参与者(Participant)中的角色(Role)重新 进行划分形成新的分组(Group)。因此角色关联划分的方式是粒度可调控的,通过具体实 际的情况做出最优的划分粒度,最大的提高流程的执行效率。同时使用基于角色关联的角 色组划分方法设计基于角色关联的角色划分算法,该算法基于贪婪算法的启发式算法,对 Choreography模型中所有角色进行划分分组,可以达到一种动态的映射方式,把用户给出 的CDL实例动态地转换成可执行的BPEL,提高转换效率,节约储存空间,有利于CDL与BPEL 的推广与应用;同时在实现SOA或者SOC中把自底向上的执行方案与自顶向下的规范实现 相结合,提高SOA架构实例的正确性。


图1是本发明的模型图;图2是本发明的系统处理流程图。
具体实施例方式下面结合附图对本发明作进一步说明。本发明的角色分组处理方法如下1)对系统加载进来的CDL文件进行解析,根据参与者(participant)的不同行为 提取出角色,为后续生成角色分组关系功能提供前提基础;2)角色关联函数表示角色Ri和角色Rj间的角色关联度,根据角色关联度的大小,将这两个角色参 与的活动形成一个新的分组,并命名为角色组G ;其中Ri和Rj表示展现不同行为的两个 角色,E(Ri,Rj)表示Ri和Rj的交互的次数的总和,M表示任意角色的操作集合;coi表示 角色Ri的活动的利用率;Mk表示角色Rk参与的操作集;ExtraMk表示该角色Rk除了在与 交互树中的角色进行交互的同时,还调用了其他参与者的角色的操作;path(Ri,Rj)表示 角色Ri到角色Rj的所有角色树分支的路径;3)阈值选取,采用数据训练的方式确定最优阈值S,当最优阈值s被选中时,角色 组G对应的BPEL流程复杂度为最大值,设其为M,流程复杂度的计算见步骤5);4)角色Ri与角色组G的角色关联度等于该角色Ri与角色组G每一个角色的关联 度之和然后除以角色组中角色的数量;5)流程复杂度,设nl是BPEL流程里所有活动中的控制元素的总数,这些活动之间 不能嵌套;设n2是流程中活动的数据参数个数,设m为流程中活动出现的次数,
设N2为流程中数据参数出现的次数,由以上的数据,计算量度流程长度N = N1+N2 ;流程词汇量η = nl+n2 ;流程容量V = N*log2n ;流程复杂度D = nl/2+N2/n2 ;给出BPEL控制流复杂度的度量方法,Control-flow Complexity,简称CFC,BPEL 流程的逻辑是由相互独立的活动组成的,流程(process)用P表示,活动(activity)用a
表示,则
权利要求
1. 一种基于角色关联的角色组划分方法,其特征在于1)对系统加载进来的CDL文件进行解析,根据参与者(participant)的不同行为提取 出角色,为后续生成角色分组关系功能提供前提基础;2)角色关联函数Telation(R^Rj)= Σ OhE(RiRk)O^E(H) Il 广 E(RkA)Pathx^Path(RiMj)]kMpathx ExtraMk + 1表示角色Ri和角色Rj间的角色关联度,根据角色关联度的大小,将这两个角色参与的 活动形成一个新的分组,并命名为角色组G ;其中Ri和Rj表示展现不同行为的两个角色, E (Ri,Rj)表示Ri和Rj的交互的次数的总和,M表示任意角色的操作集合;ω i表示角色Ri 的活动的利用率;Mk表示角色Rk参与的操作集;ExtraMk表示该角色Rk除了在与交互树中 的角色进行交互的同时,还调用了其他参与者的角色的操作;path(Ri,Rj)表示角色Ri到 角色Rj的所有角色树分支的路径;3)阈值选取,采用数据训练的方式确定最优阈值s,当最优阈值s被选中时,角色组G 对应的BPEL流程复杂度为最大值,设其为M,流程复杂度的计算见步骤5);4)角色Ri与角色组G的角色关联度等于该角色Ri与角色组G每一个角色的关联度之 和然后除以角色组中角色的数量;5)流程复杂度,设nl是BPEL流程里所有活动中的控制元素的总数,这些活动之间不能 嵌套;设n2是流程中活动的数据参数个数, 设W为流程中活动出现的次数, 设N2为流程中数据参数出现的次数, 由以上的数据,计算量度 流程长度N = N1+N2 ; 流程词汇量η = nl+n2 ; 流程容量V = N*log2n ; 流程复杂度D = nl/2+N2/n2 ;给出BPEL控制流复杂度的度量方法,Control-flow Complexity,简称CFC,BPEL流程 的逻辑是由相互独立的活动组成的,流程(process)用P表示,活动(activity)用a表示, 则=;α三P6)对WSCDL文件做语法解析得到Choreography中所有的参与者对象及其扮演的所有 角色对象,对于每个角色对象再遍历WSCDL获得由该角色端完成的交互活动,将所得到的 信息形成一个角色交互树;7)在建立的角色关联树中,角色关联树的根元素为Choreography的头元素,取角色关 联树根元素Rt,计算Rt和Rm之间的角色关联度relation (Rt,Rm), Rm指的是关联树中的 任一角色计算方法见步骤2),其中E(Rt,Rm) ^0;8)若relation(Rt,Rm) > s,则把Rm放在Rt所在的组内,使这两个角色成为一组,若 relation (Rt, Rm) >=s,直接跳转 9);9)将Rm作为树根元素Rt,重复8)的操作,直到Rm为角色关联的叶子节点;10)如果存在relation (Rt,Rm) > s,且 relation (Rp,Rm) > S 的情况产生,其中 Rp 为 角色关联树中不同于Rm的另一角色,将Rt所在的角色组记为Groupl和把Rp所在的角色组 记为 Group2,若 relation (Rm, Group 1) > relation (Rm, Group2),将 Rm 从放在 Groupl 中, 反之亦然;11)存储结构应用HashMap存储RoleItem和分组序号,RoleItem是角色信息类,它包 含了角色名称,角色所属参与者类型以及活动率等属性,分组序号即是角色分组后的所在 组序号。
全文摘要
一种基于角色关联的角色组划分方法,应用Pi演算的相关理论和流程模型复杂度理论对Choreography中的角色和角色之间的关系进行重新处理以达到WSBPEL执行性能优化。通过设计相关的关联函数和训练科学的阀值对Choreography中的参与者(Participant)中的角色(Role)重新进行划分形成新的分组(Group)。因此角色关联划分的方式是粒度可调控的,通过具体实际的情况做出最优的划分粒度,最大的提高流程的执行效率。
文档编号G06Q10/00GK102004951SQ201010525720
公开日2011年4月6日 申请日期2010年10月29日 优先权日2010年10月29日
发明者庄英杰, 张蓓蓓, 徐东红, 林培文, 齐勇 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1