CN111585793B - 一种网络服务优化组合方法 - Google Patents

一种网络服务优化组合方法 Download PDF

Info

Publication number
CN111585793B
CN111585793B CN202010311931.9A CN202010311931A CN111585793B CN 111585793 B CN111585793 B CN 111585793B CN 202010311931 A CN202010311931 A CN 202010311931A CN 111585793 B CN111585793 B CN 111585793B
Authority
CN
China
Prior art keywords
service
combined
combination
fragment
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010311931.9A
Other languages
English (en)
Other versions
CN111585793A (zh
Inventor
杨育彬
左方园
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN202010311931.9A priority Critical patent/CN111585793B/zh
Publication of CN111585793A publication Critical patent/CN111585793A/zh
Application granted granted Critical
Publication of CN111585793B publication Critical patent/CN111585793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种网络服务优化组合方法,包括:步骤1,读取并解析网络服务描述文件,处理服务输入输出概念之间的继承关系;步骤2,确定优化目标;步骤3,产生候选组合片段;步骤4,分析分数组合片段瓶颈;步骤5,优化分数组合片段;步骤6,重复步骤4,5,直至当前分数候选组合片段不能优化为止,然后对于当前服务的每个输出概念,使用贪心策略更新保存在输出片段字典的四个组合片段;步骤7,重复执行步骤3‑6,直至当前输出片段字典不再更新,从字典中获取输出服务的分数候选组合,并反向构造得到最优服务组合;步骤8,计算最优服务组合的服务质量参数和所用服务数目,并将最优服务组合,服务质量参数以及所用服务数目反馈给用户。

Description

一种网络服务优化组合方法
技术领域
本发明涉及一种网络服务优化组合方法。
背景技术
为了保证在众多的网络服务中选择合适的服务,减少使用网络服务的费用,提高网络服务的服务质量,满足企业和用户的需求,服务组合是其中必不可少的一环。服务组合是设计人员通过网络服务的描述文件,人工选择或者通过编程自动选择一些网络服务,根据用户给定的输入,按照一定的顺序执行这些服务获得用户要求的输出。网络服务已经深入到人们身边的各个角落,网络服务对人们生活的影响越来越深入,例如:用户使用电子地图规划出行路线,通过智能手机提供当前位置的GPS信息和目的地,电子地图需要通过GPS信息确定用户的出发地,并且实时查询交通状况如地铁班次,道路堵车情况等等信息,然后规划较为高效的路线;整个过程需要的网络服务有GPS定位服务,地铁查询服务,道路状况查询服务,路线规划服务等等,其中路线规划服务需要以交通信息作为输入,而有些道路状况查询服务也可以查询实时的地铁信息,也就是服务之间存在依赖和输出可能有重叠的情况,因此需要在整体服务质量尽可能高的条件,组合出服务满足用户的要求。
当网络服务的数目成百上千,用户的请求变得更加复杂,人工进行服务组合几乎是不可能的,而单目标服务组合往往无法满足用户的需求。因而需要一种自动化的方法进行多目标组合服务,提高服务组合的效率。通过计算机构建一个服务组合系统,将这种枯燥的工作交由软件完成,减轻设计规划人员的负担。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种网络服务优化组合方法,通过本发明构建的高效的服务组合方法,旨在利用优化多候选组合片段的高效服务组合方法,将繁杂的服务组合任务交由系统完成。本发明对于用户的请求和服务的描述文件,利用机器动态规划技术进行自动服务组合,优化服务参数,并将最优的服务组合方案报告给设计规划人员。
为了解决上述技术问题,本发明公开了一种网络服务优化组合方法,具体包括以下步骤:
步骤1,解析网络服务文件:读取描述网络服务文件和继承关系文件。一些服务的输入和输出概念之间存在继承关系,对每个子类概念,加入所有其父类概念到当前集合中;将组合请求的输入和输出转化为两个服务,加入到服务集合中。
步骤2,确定优化目标:对于服务s,其分数组合片段为Ωs。根据当前请求实例的服务数目,确定关于Ωs的优化目标函数。定义四种组合片段:分数候选组合片段Ss,服务数目组合片段Sn,响应时间组合片段Sr,吞吐量组合片段St,对应维护不同类型的当前组合片段。初始化输出组合字典Mc并标记为已更新的状态,构造服务列表Ls
步骤3,产生候选组合片段:对于服务列表Ls中的服务s,判断能否执行,如果不能则遍历下一个服务。对于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的输入和输出分别设置为
Figure BDA0002457965070000031
和InR,将sn+1的输入和输出分别设置为OutR,
Figure BDA0002457965070000032
并将它们的响应时间设置为最小阈值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的服务集合是并行的,将其记为
Figure BDA0002457965070000033
则响应时间RT(Ω||)和吞吐量TP(Ω||)的计算公式分别为:
Figure BDA0002457965070000041
Figure BDA0002457965070000042
其中si表示组合片段
Figure BDA0002457965070000046
中的第i个服务,RT(si)为第i个服务si的响应时间,TP(si)为第i个服务si的吞吐量;
如果ΩS的服务集合是串行的,将其记为
Figure BDA0002457965070000043
则响应时间RT(Ω)和吞吐量TP(Ω)的计算公式分别为:
Figure BDA0002457965070000044
Figure BDA0002457965070000045
步骤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′s)更新S′s的各个属性,检查替换后的组合片段S′s的分数是否大于原组合片段Ss的分数,如果是则替换候选组合片段列表Pc中的当前分数组合片段Ss,否则退出当前优化过程。
步骤6包括:
步骤6-1,重复步骤4~步骤5,直至当前分数组合片段Ss的分数不能再增大为止,保存最优的分数到瓶颈列表Lb中;将瓶颈列表Lb展开得到四种不同类型的组合片段Ss,Sn,Sr,St,与输出组合字典Mc中存储的当前服务s最优组合片段对应比较,保留对应指标更优的组合片段存储在输出组合字典Mc中;将输出组合字典Mc中存储的s的当前最优的组合片段记为
Figure BDA0002457965070000051
其中
Figure BDA0002457965070000052
依次代表当前最优分数组合片段、当前最优服务数目组合片段、当前最优响应时间组合片段、当前最优吞吐量组合片段分数组合片段;
步骤6-2,对于服务s的每个输出概念c,组合输出概念c的前驱组合片段集合构造四种候选组合,对应设置其前驱分别为
Figure BDA0002457965070000061
贪心选择更优的组合片段存入输出组合字典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中定义的组合的服务质量参数计算方式,计算出最优服务组合Ω*的各个服务质量参数以及服务数目后,将服务质量参数和最优服务组合一起报告给设计规划人员。
本发明为复杂的服务组合问题提供了一种优化多个组合片段的自动组合方法,使用了一种多候选的贪心选择求解模型,能够较为准确快速地求解出满足用户要求的组合方案。该方法主要包括网络服务文件解析、确定优化目标、产生候选组合片段、分析分数组合片段瓶颈、优化分数组合片段、贪心选择组合片段、获取最优输出服务组合以及结果反馈等八个步骤。网络服务文件解析是通过对网络服务文件进行分析,读取服务的输入和输出集合,以及各个概念之间的关系;确定优化目标是根据服务数目,确定优化目标的参数;产生候选组合片段这一步骤主要是根据不同的组合片段类型,对应生成当前服务的候选片段;分析分数组合片段瓶颈主要是分析制约分数增长的瓶颈,记录不同瓶颈对应的概念,形成瓶颈列表;优化分数组合片段这一步骤是根据分析得到的瓶颈列表,当前保存的最优组片段合,替换瓶颈对应的组合片段,达到优化组合片段的目的。本发明基于服务组合以及多候选优化的方法,设计了一种服务组合的系统,提高了服务组合的效率,减轻了设计规划人员的负担,并且具有较高的效率保障,因此具有较高的使用价值。
本发明具有以下有益效果:本发明提供的高效服务组合方法,相较传统的低效的单目标服务组合,将难以处理的多目标优化的工作转化为机器的计算问题,大大减轻了设计规划人员的负担,并且有着速度快,准确率高的优点;同时有效的避免了因为机器组合的方法效率低而导致的不能快速求解结果而导致的经济损失。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明实施例的业务场景图;
图2为本发明实施例的高效服务组合系统的工作流程图;
图3为本发明实施例的服务依赖图;
图4为本发明实施例的组合片段优化和贪心选择图;
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1描述的实施例场景所示,某地图类应用开发者或者公司,有这一业务场景:用户在手机上打开该地图类应用,使用该应用选择出行方案。在这一场景下,当用户输入出发地和目的地之后,该应用需要调用一系列的服务规划出行方案,然后向用户展示四种出行方案,依次是地铁出行方案、公交出行方案、驾车出行方案和步行方案,供用户选择。该应用为完成规划出行方案,需要调用的服务有地名位置查询服务(用户输入地名中山陵,调用地名位置查询服务得到地点江苏省南京市玄武区石象路7号和经纬度118.861453E,32.059739N),具体可选的服务有百度地名查询、高德地名查询,同理其它类别的服务也有多个候选服务。不同的服务服务质量QoS不同,如百度地名位置查询服务的响应时间为100毫秒,吞吐量为每秒2000次,而高德地名查询服务响应时间为120毫秒,吞吐量为5000次每秒。设计规划人员的任务是:从这些服务中,选择合适的服务组合起来完成规划出行方案,使得调用这些服务的响应时间尽可能短,吞吐量尽可能大,调用的服务数目尽可能少。
为解决设计规划人员的服务选择和组合问题,如图2所示,本发明提供了一种网络服务优化组合方法,工作流程大致分为以下几个阶段:第一阶段,预处理阶段,包括网络服务文件解析,确定优化目标;第二阶段,候选组合片段的产生以及其瓶颈的分析和优化,主要包括候选组合片段的生成,组合片段的分数瓶颈的分析,使用候选片段优化瓶颈并采用贪心策略的保留最优结果,然后从输出服务的分数组合片段中反向回溯获取最优服务组合;第三阶段,整合求解结果,包括计算该组合方案的服务质量参数并汇报给用户。
本发明实施例中优化多候选组合片段的高效服务组合系统的具体构建步骤如下:
步骤1,网络服务文件解析:读取描述网络服务文件和继承关系文件。将组合请求的输入和输出为两个服务,加入到服务集合中。
步骤2,确定优化目标:根据服务数目确定优化目标中参数。初始化输出组合字典并标记为已更新的状态,构造服务列表;
步骤3,产生候选组合片段:依次尝试执行当前服务,利用已经存储在Mc中的组合片段,产生四个候选组合片段并更新其QoS和分数,返回由这些候选组合片段组成的列表;
步骤4,分析分数组合片段瓶颈:分析组合片段列表中的分数组合片段的瓶颈;
步骤5,优化分数组合片段:利用分数组合的瓶颈之后和存储在输出组合字典中其它三个组合片段,对分数组合片段进行改进;
步骤6,贪心选择组合片段:重复步骤4和5,不断改进当前产生的分数组合片段,直至不能改进为止;贪心选择更优的组合存入输出组合字典中。对。
步骤7,获取最优输出服务组合:遍历服务列表的每个服务,重复执行步骤3-6,不断产生优化过的组合片段,直至输出组合字典不再更新。从该字典中获取输出服务的分数候选组合;利用组合片段之间的前驱关系,得到组合并去除无用服务。
步骤8,结果反馈:求解得到最优服务组合后,计算该组合方案的服务质量参数,然后将这些信息和组合方案一起报告给设计规划人员。
步骤1包括:
读取描述网络服务文件和继承关系文件,解析每个服务的输入输出概念集合和服务质量参数。分别转化组合请求R={InR,OutR}的输入InR、输出OutR为输入服务s0和输出服务sn+1,将它们的响应时间设置为最小阈值Rmin,吞吐量设置为最大阈值Tmax,Rmin和Tmax为预先设定的值。并将s0的输入和输出分别设置为
Figure BDA0002457965070000091
和InR,将sn+1的输入和输出分别设置为OutR,
Figure BDA0002457965070000092
初始化输出组合字典Mc={},并设置更新标记变量updated为true。
步骤2包括:
根据服务数目,其中优化目标中的参数α,β,服务数目越大,α越大,β一般在10到20之间;将步骤1中服务集合加入到列表Ls中,即Ls=[s0,...,sn+1]。
步骤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′s)更新S′s的各个属性,检查替换后的组合片段S′s的分数是否大于原组合片段Ss的分数,如果是则替换候选组合片段列表Pc中的当前分数组合片段Ss,否则退出当前优化过程。
步骤6包括:
步骤6-1,重复步骤4和5,直至当前分数组合片段Ss的分数不能再增大为止,保存最优的分数到瓶颈列表Lb中;将瓶颈列表Lb展开得到四种不同类型的组合片段Ss,Sn,Sr,St,与输出组合字典Mc中存储的当前服务s最优组合片段对应比较,保留对应指标更优的组合片段存储在输出组合字典Mc中;将输出组合字典Mc中存储的s的当前最优的组合片段记为
Figure BDA0002457965070000111
其中
Figure BDA0002457965070000112
次代表当前最优分数组合片段、当前最优服务数目组合片段、当前最优响应时间组合片段、当前最优吞吐量组合片段分数组合片段;
步骤6-2,对于服务s的每个输出概念c,组合输出概念c的前驱组合片段集合构造四种候选组合,对应设置其前驱分别为
Figure BDA0002457965070000113
贪心选择更优的组合片段存入输出组合字典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中定义的组合的服务质量参数计算方式,计算出最优服务组合Ω*的各个服务质量参数以及服务数目后,将服务质量参数和最优服务组合一起报告给用户。
实施例
本实施例包括以下部分:
步骤1,网络服务文件解析:读取描述网络服务文件和继承关系文件,解析每个服务的输入输出概念集合和服务质量参数。如图3所示,实线方框表示服务,上下分别列出了其响应时间和吞吐量,如百度地名位置查询服务的响应时间为100毫秒,吞吐量为每秒2000次。椭圆表示概念,为服务的输出或输入,如百度地名位置查询服务的输入概念为出发地地名和目的地地名。在图3中,为减少线之间的交叉,将一些概念聚合成一个概念集,用实心圆表示,如出发地地名和目的地地名聚合成起始终点概念集,即图中最左边的实心圆。
在该实施例中,服务组合请求R={InR,OutR},R的输入概念集合InR由GPS位置、出发地地名、目的地地名构成,即图3中的虚线加粗椭圆;R的输出概念集合OutR由地铁出行方案、公交出行方案、驾车出行方案和步行方案构成,即图3中的实线加粗椭圆。
将InR和OutR转化为输入服务和输出服务(图中3未画出),将它们的响应时间设置为最小阈值Rmin,吞吐量设置为最大阈值Tmax,Rmin和Tmax为预先设定的值,本实施例中分别为0毫秒、每秒200000次。并将输入服务的输入和输出分别设置为
Figure BDA0002457965070000121
和InR,将输出服务的输入和输出分别设置为OutR,
Figure BDA0002457965070000122
对于每个服务,处理其输出概念的继承关系,将当前概念所在继承树的所有祖宗节点加入到输出集合中。例如,图3中概念GPS位置是出发地位置概念的子概念,将其加入到百度地名位置查询服务和高德地名位置查询服务的输出集合中。最后,为直观展示服务间的输入输出匹配关系,根据匹配关系将这些服务构建成了一个服务依赖图,即图3;
步骤2,确定优化目标:如图2所示,该实施例涉及到13个服务,包括未画出的输入和输出服务。服务数目较小,将α和β分别设置为100和20;初始化输出组合字典Mc为空,Ls为输入服务、百度地名查询服务、…、地铁换乘规划服务、输出服务(除输入输出服务外,按图3中的从左到右,从上到下的顺序),共13个服务组成的列表,记这些服务依次为A,...,M,并设置updated=True;
步骤3,产生候选组合片段:首先将update设置为false,然后开始遍历变量服务列表:如图4所示,当遍历百度地名查询服务B且其输入条件满足,其输入概念集合由出发地地名、目的地地名构成,记作IB={i1,i2},它们在Mc中存储的候选片段只有输入服务A,于是包含四个前驱组合片段集的列表Ps为[{A},{A},{A},{A}];将百度地名查询服务B与Ps中的每个前驱组合片段集分别组合在一起,得到新生成的组合片段列表Pc=[{A→B},{A→B},{A→B},{A→B}],调用update_atrributes更新Pc中组合片段的服务数目,服务质量QoS和分数,在本实施例中组合片段{A→B}的这些值依次是服务数目2个、响应时间100ms、吞吐量2000inv/s、分数-200,最后返回Pc
步骤4,分析分数组合片段瓶颈:步骤2返回的组合片段列表中的分数组合片段为{A→B}。初始化瓶颈列表Lb←[null,null,null],初始化瓶颈变量Bl←0,Br←0,Bt←200000。接下来遍历百度地名查询服务B的前驱集合pre_set={A}之后,对应存储瓶颈值为Bl=1,Br=100,Bt=2000,得到的瓶颈列表Lb为[i1,i1,i1]。
步骤5,优化分数组合片段:得到分数组合片段的瓶颈Lb=[i1,i1,i1]后,在图4中可以看到,因为i1四种组合片段均为A,于是替换c1提供的组合片段等价于没有替换,所以分数组合片段{A→B}不变。经过产生优化之后,输出组合字典增加了百度地名查询服务B的四种组合片段,也就是
Mc={B:[{A→B},{A→B},{A→B},{A→B}]}
即存储的组合片段已更新,于是设置updated=True。
步骤6,贪心选择组合片段:如图4所示,当遍历到高德地名查询服务C,产生了新的服务组合片段列表Pc=[{A→C},{A→C},{A→C},{A→C}]。根据发明内容中步骤2定义的组合片段各个属性的计算方式,可以得到,组合片段{A→C}的服务数目为2,响应时间为120ms,吞吐量为每秒5000次,分数为2400。将组合片段{A→C}与组合片段{A→B}(实施例步骤3列出了其属性)比较,可以得到,分数较大的是{A→C},服务数目较少的是{A→B}(值相同的,认为原始组合片段更优,下同),响应时间较短的是{A→B},吞吐量较大的是{A→C}。如图4所示,经过贪心选择后,输出组合字典中保存概念i3(出发地位置)的组合片段列表为:
[{A→C},{A→B},{A→B},{A→C}]
步骤7,获取最优输出服务组合:遍历服务列表Ls的每个服务,重复执行步骤3-6,不断产生优化过组合片段。检查update是否为true,如果是继续重复执行步骤3-6,直至update为false;在Mc不再更新之后,取出输出服务M的分数组合片段Mc[M][0]。如图2所示,利用前驱关系获得最终的最优组合:
Ω*=A→C→(D||G||H)→(I||J||K||L)→M
该组合没有无用服务,也就无需去除。
步骤8,结果反馈:
根据步骤2服务组合的服务质量参数的定义,计算得到Ω*的服务数目为10,响应时间为240ms,吞吐量为1600inv/s。然后将这些信息和组合方案Ω*一起报告给设计规划人员。
本发明提供了一种网络服务优化组合方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (1)

1.一种网络服务优化组合方法,其特征在于,包括如下步骤:
步骤1,解析网络服务文件;
步骤2,确定优化目标;
步骤3,产生候选组合片段;
步骤4,分析分数组合片段瓶颈;
步骤5,优化分数组合片段;
步骤6,贪心选择组合片段;
步骤7,获取最优服务组合;
步骤8,结果反馈:求解得到最优服务组合后,计算该最优服务组合的服务质量参数,然后将服务质量参数和最优服务组合一起报告给设计规划人员;
步骤1包括:
网络服务文件和继承关系文件均为xml格式描述的文件,解析网络服务文件,得到服务对象,将服务对象存储在服务集合S中,解析继承关系文件,根据继承关系构造继承树T;
对于服务的输入输出概念集合,继承树T描述了服务的输入输出概念之间的继承关系,利用继承树T将当前服务的输出概念的所有祖宗节点加入到当前服务的输出集合中;
对于服务请求R={InR,OutR},其中InR表示用户指定的输入集合,OutR表示用户期望的输出集合,创建两个服务s0和sn+1并加入到服务集合S中,即S={s0,…,sn+1};
将s0的输入和输出分别设置为
Figure FDA0002970917840000011
和InR,将sn+1的输入和输出分别设置为OutR,
Figure FDA0002970917840000012
并将它们的响应时间设置为最小阈值Rmin,吞吐量设置为最大阈值Tmax
初始化输出组合字典Mc={},并设置更新标记变量updated为true;
步骤2包括:
对于服务s的分数组合片段Ωs,定义优化目标Score(Ωs)的计算公式为:
TP(Ωs)-α*Len(Ωs)-β*RT(Ωs),
其中α,β为参数;TP(Ωs)为Ωs的吞吐量,Len(Ωs)为Ωs包含的服务数目,即分数组合片段Ωs的长度;RT(Ωs)为Ωs的响应时间;
定义四种组合片段:分数组合片段Ss,服务数目组合片段Sn,响应时间组合片段Sr,吞吐量组合片段St,对应维护不同类型的当前组合片段;
将服务集合加入到列表Ls中,即Ls=[s0,…,sn+1],其中RT(Ωs)和TP(Ωs)计算方式如下:
如果ΩS的服务集合是并行的,将其记为
Figure FDA0002970917840000026
则响应时间RT(Ω||)和吞吐量TP(Ω||)的计算公式分别为:
Figure FDA0002970917840000021
Figure FDA0002970917840000022
其中si表示组合片段
Figure FDA0002970917840000027
中的第i个服务,RT(si)为第i个服务si的响应时间,TP(si)为第i个服务si的吞吐量;
如果ΩS的服务集合是串行的,将其记为
Figure FDA0002970917840000023
则响应时间RT(Ω)和吞吐量TP(Ω)的计算公式分别为:
Figure FDA0002970917840000024
Figure FDA0002970917840000025
步骤3包括:
对于服务列表Ls中的服务s,首先判断其输入集合I是否包含在输出组合字典Mc中,如果是,表示能够执行服务s,分别组合输入集合I中每个概念c的四种类型组合片段Mc[c],产生四个前驱集合并存储在列表Ps中;
构造候选组合片段列表Pc并初始化四个组合片段加入其中,然后利用前驱集合列表Ps对应设置每个组合片段的前驱组合片段,调用update_atrributes更新Pc中组合片段的服务数目,服务质量和分数,最后返回生成的候选组合片段列表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′s)更新S′s的各个属性,检查替换后的组合片段S′s的分数是否大于原组合片段Ss的分数,如果是则替换候选组合片段列表Pc中的当前分数组合片段Ss,否则退出当前优化过程;
步骤6包括:
步骤6-1,重复步骤4~步骤5,直至当前分数组合片段Ss的分数不能再增大为止,保存最优的分数到瓶颈列表Lb中;将瓶颈列表Lb展开得到四种不同类型的组合片段Ss,Sn,Sr,St,与输出组合字典Mc中存储的当前服务s最优组合片段对应比较,保留对应指标更优的组合片段存储在输出组合字典Mc中;将输出组合字典Mc中存储的s的当前最优的组合片段记为
Figure FDA0002970917840000041
其中
Figure FDA0002970917840000042
依次代表当前最优分数组合片段、当前最优服务数目组合片段、当前最优响应时间组合片段、当前最优吞吐量组合片段分数组合片段;
步骤6-2,对于服务s的每个输出概念c,组合输出概念c的前驱组合片段集合构造四种候选组合,对应设置其前驱分别为
Figure FDA0002970917840000043
贪心选择更优的组合片段存入输出组合字典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,作为最优服务组合的第一层,然后正向遍历组合,去除无用的服务,减少服务数目,从而得到最优服务组合。
CN202010311931.9A 2020-04-20 2020-04-20 一种网络服务优化组合方法 Active CN111585793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010311931.9A CN111585793B (zh) 2020-04-20 2020-04-20 一种网络服务优化组合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010311931.9A CN111585793B (zh) 2020-04-20 2020-04-20 一种网络服务优化组合方法

Publications (2)

Publication Number Publication Date
CN111585793A CN111585793A (zh) 2020-08-25
CN111585793B true CN111585793B (zh) 2021-04-30

Family

ID=72116820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010311931.9A Active CN111585793B (zh) 2020-04-20 2020-04-20 一种网络服务优化组合方法

Country Status (1)

Country Link
CN (1) CN111585793B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650953A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 并发优化的bpmn组合服务执行引擎及方法
CN103353873A (zh) * 2013-06-07 2013-10-16 携程计算机技术(上海)有限公司 基于时间度量数据实时查询服务的优化实现方法及系统
WO2017139068A1 (en) * 2016-02-13 2017-08-17 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
CN109955853A (zh) * 2017-12-14 2019-07-02 百度(美国)有限责任公司 用于操作自动驾驶车辆的方法、系统和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014210422A1 (en) * 2013-06-28 2014-12-31 Huawei Technologies Co., Ltd. Presence delay and state computation for composite services
CN103646008B (zh) * 2013-12-13 2016-06-08 东南大学 一种Web服务组合方法
CN104580163B (zh) * 2014-12-19 2018-08-24 南阳师范学院 私有云环境下访问控制策略构建系统
CN107306207A (zh) * 2017-05-31 2017-10-31 东南大学 结合Skyline计算与多目标强化学习服务组合方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650953A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 并发优化的bpmn组合服务执行引擎及方法
CN103353873A (zh) * 2013-06-07 2013-10-16 携程计算机技术(上海)有限公司 基于时间度量数据实时查询服务的优化实现方法及系统
WO2017139068A1 (en) * 2016-02-13 2017-08-17 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
CN109955853A (zh) * 2017-12-14 2019-07-02 百度(美国)有限责任公司 用于操作自动驾驶车辆的方法、系统和存储介质

Also Published As

Publication number Publication date
CN111585793A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN101847228B (zh) 基于流程模式的工作流静态规划方法
Meyer et al. Automated service composition using heuristic search
JP6345873B2 (ja) 高速電車の需要メタモデルの構築方法及び装置
CN103577906A (zh) 工作流生成方法、工作流执行方法以及工作流执行系统
CN111008521B (zh) 生成宽表的方法、装置及计算机存储介质
US20190220518A1 (en) Probabilistic modeling system and method
CN110119399B (zh) 基于机器学习的业务流程优化方法
CN114997414B (zh) 数据处理方法、装置、电子设备和存储介质
Dávid et al. The dynamic vehicle rescheduling problem
CN115271130A (zh) 面向船舶主动力设备维修订单的动态调度方法及系统
CN113204335B (zh) 面向协同建模的uml模型合并与一致性检测方法及系统
CN111585793B (zh) 一种网络服务优化组合方法
CN110119268B (zh) 基于人工智能的工作流优化方法
CN113139022B (zh) 一种基于混合规则的企业物流数据按需融合方法
CN110135747B (zh) 基于神经网络的流程定制方法
CN110309983B (zh) 一种工业云服务资源调度匹配组合方法
Huang et al. Solving service selection problem based on a novel multi-objective artificial bees colony algorithm
KR102632607B1 (ko) 서비스 생성 방법
JP2019185582A5 (zh)
Clarkson et al. Visualization techniques to assist design process planning
CN113779492B (zh) 一种面向敏捷开发的需求任务规划方法
WO2023286170A1 (ja) 情報生成装置、情報生成方法および情報生成プログラム
US20240028990A1 (en) Multi-depot vehicle scheduling
US20220129250A1 (en) Method for application building
JPH0675998A (ja) データ検索装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant