技术摘要:
本发明提供了一种网络服务优化组合方法,包括:步骤1,读取并解析网络服务描述文件,处理服务输入输出概念之间的继承关系;步骤2,确定优化目标;步骤3,产生候选组合片段;步骤4,分析分数组合片段瓶颈;步骤5,优化分数组合片段;步骤6,重复步骤4,5,直至当前分数 全部
背景技术:
为了保证在众多的网络服务中选择合适的服务,减少使用网络服务的费用,提高 网络服务的服务质量,满足企业和用户的需求,服务组合是其中必不可少的一环。服务组合 是设计人员通过网络服务的描述文件,人工选择或者通过编程自动选择一些网络服务,根 据用户给定的输入,按照一定的顺序执行这些服务获得用户要求的输出。网络服务已经深 入到人们身边的各个角落,网络服务对人们生活的影响越来越深入,例如:用户使用电子地 图规划出行路线,通过智能手机提供当前位置的GPS信息和目的地,电子地图需要通过GPS 信息确定用户的出发地,并且实时查询交通状况如地铁班次,道路堵车情况等等信息,然后 规划较为高效的路线;整个过程需要的网络服务有GPS定位服务,地铁查询服务,道路状况 查询服务,路线规划服务等等,其中路线规划服务需要以交通信息作为输入,而有些道路状 况查询服务也可以查询实时的地铁信息,也就是服务之间存在依赖和输出可能有重叠的情 况,因此需要在整体服务质量尽可能高的条件,组合出服务满足用户的要求。 当网络服务的数目成百上千,用户的请求变得更加复杂,人工进行服务组合几乎 是不可能的,而单目标服务组合往往无法满足用户的需求。因而需要一种自动化的方法进 行多目标组合服务,提高服务组合的效率。通过计算机构建一个服务组合系统,将这种枯燥 的工作交由软件完成,减轻设计规划人员的负担。
技术实现要素:
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种网络服 务优化组合方法,通过本发明构建的高效的服务组合方法,旨在利用优化多候选组合片段 的高效服务组合方法,将繁杂的服务组合任务交由系统完成。本发明对于用户的请求和服 务的描述文件,利用机器动态规划技术进行自动服务组合,优化服务参数,并将最优的服务 组合方案报告给设计规划人员。 为了解决上述技术问题,本发明公开了一种网络服务优化组合方法,具体包括以 下步骤: 步骤1,解析网络服务文件:读取描述网络服务文件和继承关系文件。一些服务的 输入和输出概念之间存在继承关系,对每个子类概念,加入所有其父类概念到当前集合中; 将组合请求的输入和输出转化为两个服务,加入到服务集合中。 步骤2,确定优化目标:对于服务s,其分数组合片段为Ωs。根据当前请求实例的服 务数目,确定关于Ωs的优化目标函数。定义四种组合片段:分数候选组合片段Ss,服务数目 组合片段Sn,响应时间组合片段Sr,吞吐量组合片段St,对应维护不同类型的当前组合片段。 初始化输出组合字典Mc并标记为已更新的状态,构造服务列表Ls; 步骤3,产生候选组合片段:对于服务列表Ls中的服务s,判断能否执行,如果不能 5 CN 111585793 A 说 明 书 2/9 页 则遍历下一个服务。对于s的每个输入概念,利用已经存储在Mc中的组合片段,产生四个的 前驱片段集合。初始化四个候选组合片段,绑定前面产生的前驱片段集,更新组合片段的服 务数目,QoS和分数,最后返回由四个候选组合片段组成的列表Pc; 步骤4,分析分数组合片段瓶颈:根据定义的优化目标,分析Pc中的分数候选组合 片段Ss的QoS和服务数目:对于极大化的属性,记录贡献了最小值的概念;对于极小化的属 性,记录贡献了最大值的概念;最终将这些分析得到的瓶颈存储在Lb中; 步骤5,优化分数组合片段:获取得到当前分数组合的瓶颈Lb之后,利用存储在Mc中 其它三个与优化属性相关组合片段,分别对Lb中每个概念进行改进; 步骤6,贪心选择组合片段:重复步骤4~步骤5,不断改进当前产生的分数组合片 段Ss,直至不能改进为止;此时将Ss和步骤3中的其它三个候选组合片段Rs,Ts,Ns与之前产生 的组合比较,保留更优的组合存入Mc中。对于服务s的输出概念集O中的每个概念c,同样构 造四种候选组合片段并设置其前驱。然后同理贪心选择更优的组合片段存入Mc。 步骤7,获取最优输出服务组合:遍历服务列表Ls的每个服务,重复执行步骤3-6, 不断产生优化过组合片段。重复遍历Ls直至Mc不再更新,从输出片段字典Mc中获取输出服务 的分数候选组合;利用组合片段之间的前驱关系,得到组合并去除无用服务。 步骤8,结果反馈:求解得到最优服务组合后,计算该组合方案的服务质量参数,然 后将这些信息和组合方案一起报告给设计规划人员。 步骤1包括: 网络服务文件和继承关系文件均为xml格式描述的文件,解析网络服务文件,得到 服务对象,将服务对象存储在服务集合S中,解析继承关系文件,根据继承关系构造继承树 T; 对于服务的输入输出概念集合,继承树T描述了服务的输入输出概念之间的继承 关系,利用继承树T将当前服务的输出概念的所有祖宗节点加入到当前服务的输出集合中; 对于服务请求R={InR,OutR},其中InR表示用户指定的输入集合,OutR表示用户期 望的输出集合。创建两个服务s0和sn 1并加入到服务集合S中,即S={s0,...,sn 1}; 将s0的输入和输出分别设置为 和InR,将sn 1的输入和输出分别设置为OutR, 并将它们的响应时间设置为最小阈值Rmin,吞吐量设置为最大阈值Tmax; 初始化输出组合字典Mc={},并设置更新标记变量updated为true。 步骤2包括: 对于服务s的分数组合片段Ωs,定义优化目标Score(Ωs)的计算公式为: TP(Ωs)-α*Len(Ωs)-β*RT(Ωs), 其中α,β为参数,服务数目越大,α越大,β一般在10到20之间;TP(Ωs)为Ωs的吞吐 量,Len(Ωs)为Ωs包含的服务数目,即分数组合片段Ωs的长度;RT(Ωs)为Ωs的响应时间; 定义四种组合片段:分数组合片段Ss,服务数目组合片段Sn,响应时间组合片段Sr, 吞吐量组合片段St,对应维护不同类型的当前组合片段; 将服务集合加入到列表Ls中,即Ls=[s0,...,sn 1],其中RT(Ωs)和TP(Ωs)计算方 式如下: 如果ΩS的服务集合是并行的,将其记为 则响应时间RT(Ω||)和吞吐量TP 6 CN 111585793 A 说 明 书 3/9 页 (Ω||)的计算公式分别为: 其中si表示组合片段 中的第i个服务,RT(si)为第i个服务si的响应时间,TP(si) 为第i个服务si的吞吐量; 如果ΩS的服务集合是串行的,将其记为 则响应时间RT(Ω→)和吞吐量TP (Ω→)的计算公式分别为: 步骤3包括: 对于服务列表Ls中的服务s,首先判断其输入集合I是否包含在输出组合字典Mc中, 如果是,表示能够执行服务s,分别组合输入集合I中每个概念c的四种类型组合片段Mc[c], 产生四个前驱集合并存储在列表Ps中; 构造候选组合片段列表Pc并初始化四个组合片段加入其中,然后利用前驱集合列 表Ps对应设置每个组合片段的前驱组合片段,调用update_atrributes更新Pc中组合片段的 服务数目,服务质量QoS和分数,最后返回生成的候选组合片段列表Pc。 步骤4包括: 步骤4-1,取出候选组合片段列表Pc中的分数组合片段Ss,并初始化瓶颈列表Lb← [null,null,null],并设置三个瓶颈变量Bl←0,Br←Rmin,Bt←Tmax,分别用于存储服务数目、 响应时间和吞吐量瓶颈值; 步骤4-2,遍历分数组合片段Ss的前驱集合pre_set,将当前处理的组合片段记为 Sp,将组合片段Sp的长度、响应时间和吞吐量与Bl,Br,Bt分别比较,对于前两个属性,取较小 值更新到Bl,Br中,并在瓶颈列表Lb中存储值更小的Sp输出概念Sp.c;对于第三个属性,取较 大值更新到Bt中,同样的存储值更大的Sp输出概念;最后返回瓶颈列表Lb。 步骤5包括: 步骤5-1,拷贝当前分数组合片段Ss,记为S′s,获取S′s前驱组合片段集合score_ pre_set,并展开瓶颈列表b1,b2,b3=Lb,其中b1,b2,b3分别表示长度瓶颈概念、响应时间瓶 颈概念、吞吐量瓶颈概念。 步骤5-2,利用输出组合字典Mc,将前驱组合集合中的瓶颈片段替换成当前最优组 合片段,具体操作如下: score_pre_set[b1]=Mc[b1][1], score_pre_set[b2]=Mc[b2][2], score_pre_set[b3]=Mc[b3][3]; 步骤5-3,替换之后调用候选组合片段属性更新方法update_attribute(S′))更新 7 CN 111585793 A 说 明 书 4/9 页 S′s的各个属性,检查替换后的组合片段S′s的分数是否大于原组合片段Ss的分数,如果是则 替换候选组合片段列表Pc中的当前分数组合片段Ss,否则退出当前优化过程。 步骤6包括: 步骤6-1,重复步骤4~步骤5,直至当前分数组合片段Ss的分数不能再增大为止, 保存最优的分数到瓶颈列表Lb中;将瓶颈列表Lb展开得到四种不同类型的组合片段Ss ,Sn, Sr,St,与输出组合字典Mc中存储的当前服务s最优组合片段对应比较,保留对应指标更优的 组合片段存储在输出组合字典Mc中;将输出组合字典Mc中存储的s的当前最优的组合片段记 为 其中 依次代表当前最优分数组合片段、当前最优服务数 目组合片段、当前最优响应时间组合片段、当前最优吞吐量组合片段分数组合片段; 步骤6-2,对于服务s的每个输出概念c,组合输出概念c的前驱组合片段集合构造 四种候选组合,对应设置其前驱分别为 贪心选择更优的组合片段存入输出组 合字典Mc中。 步骤7包括: 重复步骤3~步骤6,不断产生组合片段并改进后,需要利用组合片段的前驱组合 片段集获取最优服务组合,具体包括: 步骤7-1,记输出服务sn 1的最终分数组合片段为Sn 1,即为最优服务组合的倒数第 一层;取出Sn 1的前驱组合片段集合pre_set,对集合中每个组合片段Spre,取出这些片段关 联的服务并去掉重复后,组成最优服务组合的倒数第二层;初始化临时前驱组合片段集合 pre_set′={}。 步骤7-2,对于集合pre_set中的每个组合片段Spre,取出Spre的前驱组合片段集并 入pre_set′中,将pre_set赋值为pre_set′并将pre_set′清空,同理将pre_set中每个组合 片段关联的服务去重后组成倒数第三层; 步骤7-3,重复步骤7-2,直至处理到输入服务s0,作为最优服务组合的第一层,然 后正向遍历组合,去除无用的服务,减少服务数目,从而得到最优服务组合。 步骤8包括: 按照步骤2中定义的组合的服务质量参数计算方式,计算出最优服务组合Ω*的各 个服务质量参数以及服务数目后,将服务质量参数和最优服务组合一起报告给设计规划人 员。 本发明为复杂的服务组合问题提供了一种优化多个组合片段的自动组合方法,使 用了一种多候选的贪心选择求解模型,能够较为准确快速地求解出满足用户要求的组合方 案。该方法主要包括网络服务文件解析、确定优化目标、产生候选组合片段、分析分数组合 片段瓶颈、优化分数组合片段、贪心选择组合片段、获取最优输出服务组合以及结果反馈等 八个步骤。网络服务文件解析是通过对网络服务文件进行分析,读取服务的输入和输出集 合,以及各个概念之间的关系;确定优化目标是根据服务数目,确定优化目标的参数;产生 候选组合片段这一步骤主要是根据不同的组合片段类型,对应生成当前服务的候选片段; 分析分数组合片段瓶颈主要是分析制约分数增长的瓶颈,记录不同瓶颈对应的概念,形成 瓶颈列表;优化分数组合片段这一步骤是根据分析得到的瓶颈列表,当前保存的最优组片 段合,替换瓶颈对应的组合片段,达到优化组合片段的目的。本发明基于服务组合以及多候 8 CN 111585793 A 说 明 书 5/9 页 选优化的方法,设计了一种服务组合的系统,提高了服务组合的效率,减轻了设计规划人员 的负担,并且具有较高的效率保障,因此具有较高的使用价值。 本发明具有以下有益效果:本发明提供的高效服务组合方法,相较传统的低效的 单目标服务组合,将难以处理的多目标优化的工作转化为机器的计算问题,大大减轻了设 计规划人员的负担,并且有着速度快,准确率高的优点;同时有效的避免了因为机器组合的 方法效率低而导致的不能快速求解结果而导致的经济损失。 附图说明 下面结合附图和