CN111369035B - 基于图规划的服务封装方法、系统、介质及设备 - Google Patents

基于图规划的服务封装方法、系统、介质及设备 Download PDF

Info

Publication number
CN111369035B
CN111369035B CN202010095219.XA CN202010095219A CN111369035B CN 111369035 B CN111369035 B CN 111369035B CN 202010095219 A CN202010095219 A CN 202010095219A CN 111369035 B CN111369035 B CN 111369035B
Authority
CN
China
Prior art keywords
service
task
preference
user
quality
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
CN202010095219.XA
Other languages
English (en)
Other versions
CN111369035A (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.)
Tongji University
Original Assignee
Tongji 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 Tongji University filed Critical Tongji University
Priority to CN202010095219.XA priority Critical patent/CN111369035B/zh
Publication of CN111369035A publication Critical patent/CN111369035A/zh
Application granted granted Critical
Publication of CN111369035B publication Critical patent/CN111369035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于图规划的服务封装方法、系统、介质及设备,所述基于图规划的服务封装方法包括:建立与用户操作相关的服务的数学模型;结合所述数学模型提供的信息确定所述服务在不同业务场景偏好下的服务质量;利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库;对不同的所述任务库进行任务匹配,确定任务关联集合;将任务关联集合、用户请求和偏好作为输入,进行服务组合。本发明提供了一种复杂业务服务组合封装以及其合理性分析方法,将服务在运行时的服务质量,加入到建模过程中,根据用户偏好对服务集合进行划分,通过一种改进的图规划服务组合算法,形成服务工作流,从而完成复杂业务的服务封装。

Description

基于图规划的服务封装方法、系统、介质及设备
技术领域
本发明涉及协同服务技术领域,涉及一种服务封装方法,特别是涉及一种基于图规划的服务封装方法、系统、介质及设备。
背景技术
基于服务质量的服务组合问题是一个至今无多项式时间算法解决的NP问题,大量的学者对服务组合问题做出了大量的研究,现在主要的服务组合方法分为多目标优化算法、强化学习算法、生物算法和图算法。其中,多目标优化算法将服务组合问题转化为混合整数线性规划问题,通过线性规划算法进行服务组合,但是多目标优化算法一般无法根据不同的情形动态调整服务组合方案;强化学习算法主要通过马尔可夫模型对服务模型进行训练,通过学习得到服务组合,但是强化学习算法需要很长的训练时间,时间效率偏低;生物算法主要分为蚁群算法和遗传算法,通过智能优化算法解决服务组合问题,但是通常的智能优化算法无法很好处理服务结构中的并行结构;在服务组合算法中,图规划服务组合算法是一种常见的服务组合封装的算法,图规划服务组合算法通过遍历搜索建立服务规划图,根据归一化后的服务质量,借鉴了Dijkstra的单源最短路径的思想,搜索最佳的服务组合路径从而完成服务的组合封装。
但是,在规划图算法中也存在一些问题:第一,在图规划的算法中需要不断遍历整个服务库,在遍历过程中,存在很多冗余服务,大大减慢了算法的运行效率。第二,在图规划的算法中需要先建立服务规划图,服务规划图一般规模较大,大大降低了算法的空间性能。第三,在图规划的算法中,一般通过调整归一化的函数来实现不同的服务偏好下的服务组合,此方法在处理并行结构的服务组合问题时存在一些问题,因为并行结构中对于整体服务结构综合服务质量的运算往往取某一个分支的最大值或者最小值,对于其他服务分支的优化可能不仅对整体服务组合没有产生优化,反而会降低整体服务组合的其他服务指标的服务质量。
因此,如何提供一种基于图规划的服务封装方法、系统、介质及设备,以解决现有技术无法高效实现目前复杂业务服务系统中的服务封装等缺陷,成为本领域技术人员亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于图规划的服务封装方法、系统、介质及设备,用于解决现有技术无法高效实现目前复杂业务服务系统中的服务封装的问题。
为实现上述目的及其他相关目的,本发明一方面提供一种基于图规划的服务封装方法,所述基于图规划的服务封装方法包括:根据服务和用户请求来建立服务的数学模型;对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量;利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库;对不同的所述任务库进行任务匹配,确定任务关联集合;将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流。
于本发明的一实施例中,建立与用户操作相关的服务的数学模型的步骤包括:对所述服务的描述语言和用户请求的描述进行解析,并根据所述服务、用户请求、工作流的功能,对所述服务、用户请求、工作流、任务和任务关联建立数学模型。
于本发明的一实施例中,对所述数学模型中存在的多个服务质量进行处理的步骤包括:根据所述数学模型中服务的服务质量属性和服务质量范围,对服务质量中的每一个服务指标进行归一化处理,并将归一化后的指标作为一个行向量进行存储;在确定每一个服务质量的行向量之后,根据业务场景与用户需求,建立多种偏好;设置与偏好相关的列向量,将所述行向量与所述列向量相乘,得到服务在每一个偏好下的服务质量。
于本发明的一实施例中,利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库的步骤包括:根据用户多种偏好的划分,建立不同偏好下的任务库;遍历已经建立的所述任务库,对于所述任务库中的每个服务,如果有其他的服务能够提供相同的业务功能且具有更高的服务质量,则替换该服务进入任务集合,以优化建立的任务库,保证所述任务库的服务都能够提供不同的功能,且全部具有最高的服务质量。
于本发明的一实施例中,对不同的所述任务库进行任务匹配,确定任务关联集合的步骤包括:当所述任务的输出集合包含另一任务的输入集合时,判定所述任务与另一任务存在逻辑关系,将所述任务作为另一任务的前置任务,将另一任务作为所述任务的后置任务;判断所述任务与另一任务的匹配程度;若所述任务的输出集合等于另一任务的输入集合,判定所述任务与另一任务为完全匹配,服务结构为链式或者选择结构;若所述任务的输出集合真包含于另一任务的输入集合,判定所述任务与另一任务为不完全匹配,即存在并行结构。
于本发明的一实施例中,将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流的步骤包括:将预设的任务作为初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则返回得到的工作流;当队列不为空时,从队列中取出一个任务,判断此时任务中的用户偏好;当用户偏好为吞吐量时,对吞吐量值较低的分支进行吞吐量偏好下的优化,对吞吐量较高的分支进行综合偏好的优化;当用户偏好为响应时间时,对响应时间值较低的分支进行响应时间偏好下的优化,对响应时间较高的分支进行综合偏好的优化;当用户偏好为可靠性时,对所有分支进行可靠性偏好下的优化;当用户偏好为综合偏好时,对所有分支进行综合偏好下的优化;所述优化的方法为从相应偏好下的任务关联集合中寻找任务关联,并将后继的任务加入队列。
于本发明的一实施例中,所述基于图规划的服务封装方法还包括:记录并保存服务组合的路径,当队列为空或者已经得到用户期望输出的时候,则完成所需要的服务封装。
本发明另一方面提供一种基于图规划的服务封装系统,所述基于图规划的服务封装系统包括:建模模块,用于建立与用户操作相关的服务的数学模型;所述数学模型用于将所述服务包含的信息进行数值化,以便对数值化的服务信息进行运算处理,所述数学模型包含服务质量信息;服务质量处理模块,用于对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量;服务筛选模块,用于利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库;服务匹配模块,用于对不同的所述任务库进行任务匹配,确定任务关联集合;服务组合模块,用于将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流。
本发明又一方面提供一种介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于图规划的服务封装方法。
本发明最后一方面提供一种设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行所述的基于图规划的服务封装方法。
如上所述,本发明所述的基于图规划的服务封装方法、系统、介质及设备,具有以下有益效果:
本发明提供了一种复杂业务服务组合封装以及其合理性分析方法,将服务在运行时的服务质量,加入到建模过程中,根据用户偏好对服务集合进行划分,通过一种改进的图规划服务组合算法,形成服务工作流,从而完成复杂业务的服务封装。通过建立不同的偏好下的任务库减小每一次搜索所需要的搜索空间,从而提高服务组合算法的时间性能;通过建立任务与任务之间的逻辑关联代替建立服务规划图,提高服务组合算法的灵活性和算法的空间性能;在处理并行结构的服务组合时,对于不同的服务分支采取不同的处理方式,在对整体服务组合进行优化的同时,提高其他服务分支的服务性能。
附图说明
图1显示为本发明的基于图规划的服务封装方法于一实施例中的处理示意图。
图2显示为本发明的基于图规划的服务封装方法于一实施例中的应用场景架构图。
图3显示为本发明的基于图规划的服务封装方法于一实施例中的原理流程图。
图4显示为本发明的基于图规划的服务封装方法于一实施例中的并行结构处理流程图。
图5显示为本发明的基于图规划的服务封装方法与WSC-MDP的时间效率对比图。
图6显示为本发明的基于图规划的服务封装方法与WSC-MDP的服务质量对比图。
图7显示为本发明的基于图规划的服务封装方法与WSC-MDP在10个请求下的相对服务质量对比图。
图8显示为本发明的基于图规划的服务封装系统于一实施例中的结构原理图。
图9显示为本发明的基于图规划的服务封装方法于一实施例中的设备结构示意图。
元件标号说明
8 基于图规划的服务封装系统
81 建模模块
82 服务质量处理模块
83 服务筛选模块
84 服务匹配模块
85 服务组合模块
9 设备
91 处理器
92 存储器
93 收发器
94 通信接口
95 系统总线
S31~S35 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供了一种复杂业务服务组合封装以及其合理性分析方法,将服务在运行时的服务质量,加入到建模过程中,根据用户偏好对服务集合进行划分,通过一种改进的图规划服务组合算法,形成服务工作流,从而完成复杂业务的服务封装。
以下将结合图1至图8详细阐述本实施例的一种基于图规划的服务封装方法、系统、介质及设备的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的基于图规划的服务封装方法、系统、介质及设备。
请参阅图1,显示为本发明的基于图规划的服务封装方法于一实施例中的处理示意图。如图1所示,若服务库中有服务1、服务2和服务3,当接收到用户的请求1时,通过服务解析模块解析出服务1(Service1)与用户的请求1匹配,则通过服务封装模块进行服务封装,生成工作流。其中,服务是指一个具有用户输入输出接口的封装好的应用程序,是供用户操作时进行调用的API接口;A、B和C表示输入的用户请求内容或请求参数,D和E表示符合用户服务的输出结果,并且,输入不仅为A、B和C三个,也可以是三以外的其他合理数目;输出不仅为D和E两个,也可以是该数目以外的其他合理数目。例如,在气象服务中,输入为经度、纬度和时间,输出为与经纬度对应的当地当时天气情况,服务指标表示综合服务质量偏好的指标数值。服务封装模块具体内容将包括4个部分:(1)指标量化。根据不同的用户偏好,对每一个服务的服务质量进行在不同用户偏好下的归一化计算。(2)服务筛选。根据当前用户的服务请求和用户偏好,针对复杂业务系统的特殊性,对服务进行筛选,在每个状态节点下获取最优的服务。(3)服务匹配。根据每个服务节点的输入输出参数集合的语义描述,构建服务的依赖图。(4)服务组合。最后以用户请求的输入为起点,以用户请求的输出为终点,构建服务组合,并完成封装。
请参阅图2,显示为本发明的基于图规划的服务封装方法于一实施例中的应用场景架构图。如图2所示,分别建立服务数学模型、用户请求数学模型和工作流数学模型;通过服务质量归一化、建立多种偏好以及求各个偏好下的服务质量进行服务质量的处理;再依次经过服务筛选和服务匹配后,建立服务组合。在服务组合时,通过队列完成对于服务的遍历,通过匹配确定后继服务,根据服务结构调整组合策略。需要说明的是,因多个逻辑上相关联的的服务可集合为一个任务,所以也可描述为通过匹配确定后继任务。
请参阅图3,显示为本发明的基于图规划的服务封装方法于一实施例中的原理流程图。如图3所示,所述基于图规划的服务封装方法具体包括以下几个步骤:
S31,建立与用户操作相关的服务的数学模型;所述数学模型用于将所述服务包含的信息进行数值化,以便对数值化的服务信息进行运算处理,所述数学模型包含服务质量信息。。对服务库中的服务和用户的请求进行解析,通过对服务描述语言和用户的请求描述进行解析,能够得到服务、用户请求等基本信息,根据解析得到的基本信息,对服务和用户请求建立数学模型,数学模型能够基本描述用户请求的输入输出、服务的输入输出和服务的其他相关服务质量。
在本实施例中,S31包括:对所述服务的描述语言和用户请求的描述进行解析,并根据所述服务、用户请求、工作流的功能,对所述服务、用户请求、工作流、任务和任务关联建立数学模型。
具体地,在构建服务封装所需要的数学模型中:
一个服务可以用一个四元组表示S=(SN,SI,SO,QoS),其中SN表示服务的名称,服务的名称和其唯一功能对应;SI表示服务预期输入的值,为服务的输入参数有限集;SO表示服务预期输出的值,用于记录服务的输出,为服务的输出参数有限集;QoS表示服务的服务质量集合,包括服务的响应时间、吞吐量、可靠性等。
一个用户请求可以用一个四元组表示Request=(RN,RP,RI,RO),其中:RN表示用户的请求的名称;RP表示用户以及用户对于服务封装的一些偏好;RI表示用户请求的输入参数所对应的语义概念;RO表示用户所期望的输出所对应的语义概念。
一个工作流可以用一个五元组表示W=(WN,Ts,EdgeSet,WI,WO),其中:WN表示工作流的名称;Ts为工作流所包含的一系列的任务集合;EdgeSet表示工作流的任务关联的集合;WI为工作流的输入参数列表,用于记录工作流所需要的输入;WO为工作流的输出参数列表,用于表示工作流的输出。
任务T表示工作流中一个工作流程的节点,通常表示在该工作流节点待选服务的集合。Ti=<Si1,Si2,Si3,…,Sim>表示对于任务节点Ti的待选服务的集合,在集合中的每一个服务都能够提供同样的功能和不同的QoS。
任务关联Edge表示工作流中两个任务节点之间的连接关系Edge=<Ti,Tj>表示任务节点Ti为任务节点Tj的前置任务,同时Tj也是Ti的后置任务。
另外,在得到需要的数学模型之后,需要对整体的服务结构的服务质量进行计算,值得注意的是,不同的服务结构有着不同的计算方式。
在顺序结构中,整体服务结构的服务指标的计算公式如下:
Figure BDA0002384496960000071
Figure BDA0002384496960000072
Figure BDA0002384496960000073
在选择结构中,整体服务结构的服务指标的计算公式如下:
Figure BDA0002384496960000074
Figure BDA0002384496960000075
Figure BDA0002384496960000076
在并行结构中,整体服务结构的服务指标的计算公式如下:
RT=max{RT(Si)} (7)
Figure BDA0002384496960000077
TP=max{TP(Si)} (9)
在公式(1)至公式(9)中,RT表示响应时间(ResponseTime),RE表示可靠性(reliability),TP表示吞吐量(throughput),Si表示每一个任务节点最终选择的服务,pi表示在分支结构中每一个分支选取的概率系数。
建立数学模型的有益效果:大部分的服务组合算法仅仅可以组合顺序执行的那些服务,却不能组合一些包含分支结构的服务和并行结构的服务。但是,分支状态和并行结构的服务组合会普遍存在于复杂的业务场景中,比如,在检察业务系统中,在案件移交过程中会同时移交至刑事检察部和民事行政监察部。在这种类似的情况下,就会产生一些并行服务,本发明的提出的基于数学模型的组合方法,能够很好地解决服务中的并行结构的问题,并且时间效率等也有了很大的提升。
S32,对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量。在得到了服务的数学模型之后,根据数学模型中提供的所述服务、用户请求、工作流、任务和任务关联的信息对服务质量进行处理,得到服务在各种复杂业务场景偏好下的服务质量。
在本实施例中,S32包括:
S321,根据所述数学模型中服务的服务质量属性和服务质量范围,对服务质量中的每一个服务指标进行归一化处理,并将归一化后的指标作为一个行向量进行存储。
服务质量归一化算法的输入为用户偏好和服务质量信息,其中服务质量信息为一个行向量,由于在常见的复杂业务系统中最重要的三个服务质量分别为响应时间、吞吐量和可靠性,本实施例选取响应时间、吞吐量和可靠性三个服务指标。在此基础上,定义四种服务质量偏好,分别为响应时间、吞吐量、可靠性和综合服务质量。其中综合服务质量偏好为响应时间、吞吐量和可靠性三者的平均加权和。其中,一些用户更加偏好于服务质量中的响应时间,一些用户更加偏好于服务质量中的吞吐量,一些用户更加偏好于服务质量中的可靠性,一些用户则会偏好于综合服务质量。根据不同的偏好,对每一个服务计算其在该偏好下的归一化后的QoS值,最终,就能够得到在4种偏好下,服务的QoS值,计算公式如下所示。
QoSi1=QoSi*RThroughPut (10)
QoSi2=QoSi*RResponseTime (11)
QoSi3=QoSi*RReliability (12)
QoSi4=QoSi*RAggregarive (13)
在公式(10)到公式(13)中,第i个服务或服务i的服务质量由QoSi表示,QoSi为一个三维行向量,其中的每个值代表响应时间、吞吐量和可靠性,R是一个三维列向量,表示每种偏好的偏好权重值,在不同的用户偏好下R也会进行相应的改变,RThroughPut表示偏好为吞吐量的权重值,RResponseTime表示偏好为响应时间的权重值,RReliability表示偏好为可靠性的权重值,RAggregative表示偏好为综合服务质量的权重值,R中所有元素之和为1。QoSi1为服务i在吞吐量偏好下归一化后的服务质量;QoSi2为服务i在响应时间偏好下归一化后的服务质量;QoSi3为服务i在可靠性偏好下归一化后的服务质量;QoSi4为服务i在处理综合服务质量偏好下归一化后的服务质量。
S322,在确定每一个服务质量的行向量之后,根据业务场景与用户需求,建立多种偏好。
具体地,在复杂的业务系统中,服务较为复杂,不同的服务需要不同的处理方式。比如在检察院的业务场景下,民事案件更加注重于案件的吞吐量,重大案件注重于案件的可靠性等等。基于上述的这些情形,本实施例根据案件类型及偏好计算每个服务在该案件类型下的服务质量。
S323,设置与偏好相关的列向量,将所述行向量与所述列向量相乘,得到服务在每一个偏好下的服务质量。
服务质量归一化处理的有益效果:在对服务进行组合优化的时候,一个服务往往存在多个服务质量,诸如响应时间、可靠性、吞吐量、加工性能、可靠性、合规性、最优行为、延迟、自描述程度等。这些属性存在不同的取值范围,且由于不同属性的取值范围可能相差较大,所以无法直接通过值的大小来评价优劣。另外,考虑到有些服务质量的值越大越好(如吞吐量),而有些服务质量则是值越小越好(如响应时间),因此,我们需要将所有服务的服务质量归一化。对于类似吞吐量的服务指标,采取的归一化策略是用当前服务的吞吐量除以所有服务中吞吐量的最大值,从而得到一个归一化后的相对吞吐量;对于类似响应时间的服务指标,采取的归一化策略是用所有服务中响应时间的最小值除以当前服务的响应时间,从而得到一个归一化后的相对响应时间。
S33,利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库。在对服务质量进行处理之后,进行服务筛选,缩小服务的规模,同时能够构建立在不同偏好下的服务库。
在本实施例中,S33包括:
S331,根据用户多种偏好的划分,建立不同偏好下的任务库。
S332,遍历已经建立的所述任务库,对于所述任务库中的每个服务,如果有其他的服务能够提供相同的业务功能且具有更高的服务质量,则替换该服务进入任务集合,以优化建立的任务库,保证所述任务库的服务都能够提供不同的功能,且全部具有最高的服务质量。
具体地,服务筛选算法以服务库中的服务作为输入,输出为各个偏好下的任务集合,遍历一遍服务库,对于其中的每个服务,如果有其他的服务能够提供相同的业务功能,并且具有更高的服务质量,则替换该服务进入任务集合,最终算法结束时,任务集合中的服务都能够提供不同的功能,而且全部都具有最高的服务质量。
另外,服务筛选算法中的p值代表着在不同的用户偏好下,筛选出的服务的集合,当p为1,集合为偏好于吞吐量的任务集合;当p为2,集合为偏好于响应时间的任务集合;当p为3,集合为偏好于可靠性的任务集合;当p为4,集合为偏好于服务的综合质量的任务集合。
在服务筛选算法中,输入为:服务库Ws={S1,S2,S3…},输出为:各个偏好下的任务集合Ts[p],算法的代码流程如下:
1.对任务集合中的所有服务进行遍历,并从中取出Si服务,
2.如果任务集合为空,
3.结束当前算法,
4.将当前的服务Si置为待选服务,
5.任务集合中去除Si服务,
6.对任务集合中的其他服务进行遍历,并从中取出Sj服务,
7.如果Sj和Si能够提供同样的服务,
8.任务集合中去除Sj服务,
9.如果Sj在当前偏好下的服务质量的服务质量优于Si的服务质量,
10.将当前的服务Sj置为待选服务,
11.将待选服务加入该偏好下的任务集合中。
服务筛选的有益效果:图规划服务组合算法需要搜索遍历整个服务集合空间,在服务集合规模小的情况下,图规划服务组合算法的时间性能消耗较小,但是,图规划服务组合算法往往不能在较短的时间内返回用户所需要的服务组合,因此需要一些特定的策略减少遍历所需要的服务空间。经过研究发现,对于一次访问请求,最终生成的服务组合中的服务数量与整体的服务集合的服务数量相比是很少的,即对于每一次的访问请求,服务集合中存在很多无关的服务,这些服务对于最终服务组合的结果没有任何贡献,却大大延长了服务组合算法所需要的时间,为此,以下算法便是对这些无关算法进行筛选,在服务组合之前,就将一部分提供相同功能但是服务质量不满足用户需求的服务进行筛选,从而减小图规划服务组合算法在组合过程中所需要的搜索空间和搜索时间。
S34,对不同的所述任务库进行任务匹配,确定任务关联集合。综合分析服务之间的输入和输出以及参数格式之类的信息,得到服务之间的逻辑关系,通过服务之间的逻辑关系,进行服务匹配,得到服务的前置服务和后置服务。
在本实施例中,S34包括:
S341,当所述任务的输出集合包含另一任务的输入集合时,判定所述任务与另一任务存在逻辑关系,将所述任务作为另一任务的前置任务,将另一任务作为所述任务的后置任务。当任务i有多个后置任务时,则可以认为任务进入了并行结构和分支结构,通过得到前置任务和后置任务,可以支持分支的服务扩展;通过建立任务与任务之间的逻辑关联代替建立服务规划图,提高服务组合算法的灵活性和算法的空间性能。
具体地,输入为上一步算法得到的服务候选集,其中任务集合中包括了功能各异的不同的服务模块,任务匹配算法内容就是对任务集合中的每个任务进行遍历,如果任务i的输出参数包含任务j的输入参数,则构建一条任务i到任务j的一条向量,这个向量表示了任务i与任务j之间包含着语义逻辑关系。
S342,判断所述任务与另一任务的匹配程度。若所述任务的输出集合等于另一任务的输入集合,判定所述任务与另一任务为完全匹配,服务结构为链式或者选择结构;若所述任务的输出集合真包含于另一任务的输入集合,判定所述任务与另一任务为不完全匹配,即存在并行结构。
在任务匹配算法中,输入为:任务集合Ts[p]或称任务库,输出为:任务关联集合EdgeSet[p],算法的代码流程如下:
1.对任务集合进行遍历,取出任务Ti,
2.对任务集合中的其他任务进行遍历,取出任务Tj,
3.如果任务Ti的输出包含Tj的输入,
4.任务关联集合中添加(Ti,Tj,TotallyMatch or PartlyMatch)。
由于在服务筛选算法中,已经剔除了所有冗余的服务,在此时的任务集合中,每个任务节点只有一个服务,而且每个服务都能够提供不一样的功能和工作。在服务匹配算法中,当任务i的输出集合包含任务j的输入集合,即Ti.output包含Tj.input,可以认为任务i与任务j存在逻辑关系,即任务i为任务j的前置服务。其中,当任务i的输出集合等于任务j的输入集合,可以认为任务i与任务j为完全匹配(TotallyMatch),服务结构为链式或者选择结构;当任务i的输出集合真包含于任务j的输入集合,可以认为任务i与任务j为部分匹配(PartlyMatch)或称不完全匹配,即存在并行结构。
任务匹配的有益效果:在服务组合问题中,需要通过形式化方法得到服务与服务之间的逻辑关系,在图规划服务组合算法中,一般会先建立服务规划图,然后在服务规划图中进行遍历搜索服务用户需求的服务组合。但是,大规模的服务规划图会大大降低算法的空间性能。本发明通过建立任务关联的集合,代替建立服务规划图,从而提高算法的空间效率,同时,也能够提高后续组合算法的灵活性。传统的服务机制仅仅能够组合链式的服务,任务匹配算法针对复杂业务场景的实际服务机制,可以支持包含分支的服务扩展,使得服务组合的方式和内容更加丰富。
S35,将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流。综合用户的请求信息和服务的逻辑关系,以用户请求的输入为起点,以用户请求的输出为终点,构建工作流,完成服务的组合封装。
在本实施例中,以请求的输入为起点,以请求的输出为终点,构建服务组合。在服务组合算法中,输入是任务关联集合和用户请求。输出即为封装后的工作流。首先,起始状态为用户请求的输入,对于每一个任务关联,如果,其前置任务满足当前状态,则将该任务关联加入工作流,并将后继任务作为新的输入重新在任务关联集合中进行寻找,直到最终达到了用户请求的输出要求,则该工作流即为最终用户需求所要封装的服务组合。
在算法3服务组合封装中,首先根据用户偏好动态选择不同的任务关联集合,其中,EdgeSet[1]表示偏好于处理吞吐量的任务关联集合;EdgeSet[2]表示偏好于响应时间的任务关联集合;EdgeSet[3]表示偏好于可靠性的任务关联集合;EdgeSet[4]表示偏好于综合质量的任务关联集合。算法中,会判断服务生成的图中是否存在分支,如果存在分支,就对每个分支分别进行该偏好下的优化,然后判断那些不需要进行偏好下优化的分支,对这些分支进行服务综合服务质量上的优化。
在服务组合封装算法中,输入为:任务关联集合EdgeSet,用户请求Request,用户偏好Type,输出为:工作流W,算法的代码流程如下:
1.通过服务请求在服务偏好下初始化工作流的初始任务节点Start与终止任务节点End,
2.将初始节点置入空队列Queue中,
3.当队列不为空时不断进行循环,
4.从队列中取出一个任务节点作为待处理任务节点,
5.如果用户偏好为吞吐量偏好,
6.如果该任务节点与后继任务节点不完全匹配,
7.在吞吐量偏好下的任务关联集合进行任务关联的选择,
8.对吞吐量高的分支,在全局偏好下的任务关联集合中进行重新选择,
9.如果该任务节点与后继任务节点完全匹配,
10.在吞吐量偏好下的任务关联集合进行任务关联的选择,
11.如果用户偏好为响应时间偏好,
12.如果该任务节点与后继任务节点不完全匹配,
13.在响应时间集合偏好下的任务关联集合进行任务关联的选择,
14.对响应时间短的分支,在全局偏好下的任务关联集合中进行重新选择,
15.如果该任务节点与后继任务节点完全匹配,
16.在响应时间偏好下的任务关联集合进行任务关联的选择,
17.如果用户偏好为可靠性偏好,
18.在可靠性任务关联集合偏好下的任务关联集合进行任务关联的选择,
19.如果用户偏好为综合偏好,
20.在综合服务质量偏好下的任务关联集合进行任务关联的选择,
21.将任务关联集合中的后继任务节点置入队列,
22.记录W,
23.Return W。
整体上,算法的输入是用户请求、任务关联集合和用户请求,算法的目标是将一系列的服务以及子工作流组合成为一条符合用户需求的工作流,算法最终输出是一条封装后的服务工作流。算法通过队列实现工作流的层次搜索,同时算法能够智能地根据用户偏好和用户请求提供不同的组合方案,最终封装的组合方案将会是一个DAG(Directed AcyclicGraph,有向无环图),而不是传统的封装为链的形式。在该算法能够产生的服务组合方案中,每条方案都是由一个工作流进行表示,在算法产生的工作流中,每一个服务都代表服务注册库中的一个可用服务。
在本实施例中,S35包括:将预设的任务作为初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则返回得到的工作流;当队列不为空时,从队列中取出一个任务,判断此时任务中的用户偏好。当用户偏好为吞吐量时,对吞吐量值较低的分支进行吞吐量偏好下的优化,对吞吐量较高的分支进行综合偏好的优化;当用户偏好为响应时间时,对响应时间值较低的分支进行响应时间偏好下的优化,对响应时间较高的分支进行综合偏好的优化;当用户偏好为可靠性时,对所有分支进行可靠性偏好下的优化;当用户偏好为综合偏好时,对所有分支进行综合偏好下的优化。
服务组合封装的有益效果:分支状态在服务组合问题中存在一定程度上的特殊性,在分支服务响应时间的计算上,仅仅会计算响应时间最长的分支作为分支的服务质量,同样,在分支服务吞吐量的计算上,仅仅会计算吞吐量最少的分支作为该分支的服务质量,因此,对于服务组合其他分支的服务质量优化就会失去了意义。传统的图规划服务组合算法仅能在每一层中选取最优的服务进行组合,从而忽视了对于分支状态的处理,不仅可能会没有达到整体服务组合的优化,而且还可能因为进行优化而降低一些其他偏好下整体服务组合的服务质量。算法3服务组合封装能够判断出需要服务质量优化的分支和其他分支,对于需要服务质量优化的分支对其中的所有服务进行优化,对于其他分支则会进行其他全方面的优化,在不影响服务组合的整体服务质量的情况下能够使得其他服务质量更高。
请参阅图4显示为本发明的基于图规划的服务封装方法于一实施例中的并行结构处理流程图。如图4所示,组合方法首先将初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则算法结束并返回得到的工作流。当队列不为空时,从队列中取出一个节点,判断此时的偏好,在实际应用中,判断案件类型即可判断偏好,例如,普通案件以吞吐量为偏好,紧急案件以响应时间为偏好,重要案件以可靠度为偏好,综合案件以综合服务质量为偏好。当服务偏好为吞吐量偏好时,对吞吐量值较低的分支进行吞吐量为偏好的优化,对吞吐量较高的分支进行综合偏好的优化;当服务偏好为响应时间偏好时,对响应时间值较低的分支进行响应时间为偏好的优化,对响应时间较高的分支进行综合偏好的优化;当服务偏好为可靠性偏好时,对所有分支进行可靠性偏好下的优化;当服务偏好为综合服务质量偏好时,对所有分支进行综合偏好下的优化。
在本实施例中,所述优化的方法为从相应偏好下的任务关联集合中寻找任务关联,并将后继的任务加入队列。
在本实施例中,记录并保存服务组合的路径,当队列为空或者已经得到用户期望输出的时候,则完成所需要的服务封装。
本发明实验首先使用的数据集是WSDream数据集,该数据集统计了真实世界中339个用户调用5825个服务所得到的QoS结果,QoS质量包括响应时间和吞吐量两个QoS属性。算法整体使用python3.5实现,实验环境为64位win10,cpu为i7,内存为16g。
对比实验:WSC-MDP(Adaptive Web Service Composition Based onReinforcement Learning)算法是一种典型的基于人工智能规划进行服务组合优化的算法,该方法借鉴强化学习中的马尔可夫决策过程进行组合优化,通过对奖励函数进行多次的训练,最终可以预测函数,提高表达和推广能力,我们将WSC-MDP算法作为我们的对比方法。
本节的实验由多个任务节点构成,除了终止任务节点和起始任务节点以外,每一个任务节点都有多种可能转移到新的任务节点,每条转移路径上都至少有一个可能的待选服务,在整个过程的执行中需要进行多次候选服务的选择,每个状态有多个服务进行选择,在具体的实验中,可以手动设置服务的选择次数,候选服务个数以及后续的状态数,来随机生成不同的工作流,用以对算法的性能进行充分的验证。
请参阅图5,显示为本发明的基于图规划的服务封装方法与WSC-MDP的时间效率对比图。如图5所示,显示了服务库规模和算法运行时间的实验结果,横轴是服务库中的服务规模,纵轴是算法完成请求所消耗的时间。红色曲线是本发明提出的改进方法得到的算法IGMA,绿色曲线是WSC-MDP,为了有效展示实验结果,我们通过对运行时间取对数的方法进行实验比较。从两种算法的对比实验中可以发现,随着服务库规模的不断扩大,本发明所提出的算法的运行时间基本保持稳定,即使当服务库的规模到达了5000,算法的运行时间依然保持在10微秒范围内,这是因为在这种情况下,服务组合的方法成为了服务选择的方法,在每一次的服务选择中,本发明的方法都会选择最佳的服务作为工作流的服务。另外,强化学习的方法所消耗的时间随着服务库规模的大小显著增长,当服务库规模达到5000,运算时间甚至达到了4.3秒。这是因为强化学习需要对服务数据进行上千次的训练。因此,从时间效率角度考虑,本发明所提出的服务组合封装算法完全适用于大规模的服务组合。
请参阅图6,显示为本发明的基于图规划的服务封装方法与WSC-MDP的服务质量对比图。如图6所示,显示了服务库规模和最终工作流的服务质量的实验结果,横轴是服务库的规模大小,纵轴是工作流整体结构的服务质量,工作流中每一个服务的服务质量为归一化后的响应时间和归一化后的吞吐量的加权平均。同样,红色曲线是本发明提出的改进方法得到的算法IGMA,绿色红色曲线是WSC-MDP。对于同一个服务库规模下的工作流,工作流的整体质量越高,即可证明服务组合的算法越好。从实验中可以看到,在所有情况下的服务库的规模下,本发明算法组成的服务工作流的服务质量都略高于传统强化学习组合成的服务工作流的服务质量。可以得出结论,本发明提出的封装算法在组合的性能上也比传统的强化学习组合优化服务的算法要高。
本部分实验是基于服务质量QoS的组合方案优化,除了使用WS-Dream数据集之外,还使用了部分QWS数据集中的数据进行实验。由于强化学习处理服务组合的算法只能够得到链式的服务组合,在本部分实验中选取的对比算法为GP算法。QWS数据集收集了5,000个Web服务,并对此数据集执行了各种测量,提供当今Web上存在的365个真实Web服务实现的子集,使用Web服务爬虫引擎(WSCE)收集服务,持续监控特定的服务质量,包括:响应时间、吞吐量和可靠性等。我们针对复杂业务机制进行了实验,构造了10个请求,并通过本发明的算法和GP算法分别生成服务组合,并计算服务组合的服务质量。本发明设计的实验中的服务的组合结构主要分为三种,分别是顺序、选择和并行。
请参阅图7,显示为本发明的基于图规划的服务封装方法与WSC-MDP在10个请求下的相对服务质量对比图。如图所示,分别使用本发明的方法与GP的算法针对10个随机生成的请求进行实验,实验的请求中包含着用户的输入、输出、以及服务质量偏好。其中,请求1、请求2、请求3、请求4和请求5为处理响应时间偏好;请求6、请求7、请求8、请求9、请求10为处理吞吐量偏好。对方法生成的服务组合计算其服务质量,并将方法得到的服务质量与综合质量最优的服务组合的综合质量相除得到相对服务质量。实验结果如图7所示,由此可知,本发明算法得到的服务组合的相对服务质量都略高于GP算法的结果,这是因为本发明的方法在处理分支的服务组合问题时,会进行进一步的优化,这个优化在处理吞吐量偏好与响应时间偏好的请求上会获得更好的服务组合结果。
将IGMA算法与GP算法的服务质量参数进行列表管理,请参阅表1为服务质量对比表。表1中的第二列和第三列的参数分别表示服务组合的综合质量/服务组合的可靠性/服务组合的响应时间/服务组合的吞吐量/相对服务质量;第四列的参数分别表示服务组合的综合质量/服务组合的可靠性/服务组合的响应时间/服务组合的吞吐量。由表1中看出在偏好于所要求的服务质量的情况下,相比于传统的组合方法,更能够加强服务组合的其他偏好下的服务质量。比如说,在处理请求1、请求3、请求4和请求5时,在服务组合的响应时间达到了最短的时间的同时,服务组合的可靠性和吞吐量都也有了明显的提升。在处理请求6、请求7和请求10时,在服务组合的吞吐量达到了最大吞吐量的同时,服务组合的可靠性和响应时间相比于传统的图规划的算法,也有了明显的提升。虽然,在请求2和请求9中,本发明得到的服务组合的在响应时间和吞吐量上并没有达到最优,但是总体的服务质量却有了明显的提升。另外,在请求8中,由于服务结构和服务结构中各个分支的服务指标的特殊性,本方法与传统图规划算法得到了相同的性能。通过本实验可知,本发明的方法在服务质量优化方面的表现相较于传统的GP算法有了很大的提高。
表1.服务质量对比表
Figure BDA0002384496960000161
以下将结合图示对本实施例所提供的基于图规划的服务封装系统进行详细描述。需要说明的是,应理解以下系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:某一模块可以为单独设立的处理元件,也可以集成在下述系统的某一个芯片中实现。此外,某一模块也可以以程序代码的形式存储于下述系统的存储器中,由下述系统的某一个处理元件调用并执行以下某一模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以下各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
以下这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),一个或多个数字信号处理器(Digital Singnal Processor,简称DSP),一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。当以下某个模块通过处理元件调用程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
请参阅图8,显示为本发明的基于图规划的服务封装系统于一实施例中的结构原理图。如图8所示,所述基于图规划的服务封装系统8包括:建模模块81、服务质量处理模块82、服务筛选模块83、服务匹配模块84和服务组合模块85。
所述建模模块81用于建立与用户操作相关的服务的数学模型;所述数学模型用于将所述服务包含的信息进行数值化,以便对数值化的服务信息进行运算处理,所述数学模型包含服务质量信息。
在本实施例中,所述建模模块81具体用于对所述服务的描述语言和用户请求的描述进行解析,并根据所述服务、用户请求、工作流的功能,对所述服务、用户请求、工作流、任务和任务关联建立数学模型。
所述服务质量处理模块82用于对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量。
在本实施例中,所述服务质量处理模块82具体用于根据所述数学模型中服务的服务质量属性和服务质量范围,对服务质量中的每一个服务指标进行归一化处理,并将归一化后的指标作为一个行向量进行存储;在确定每一个服务质量的行向量之后,根据业务场景与用户需求,建立多种偏好;设置与偏好相关的列向量,将所述行向量与所述列向量相乘,得到服务在每一个偏好下的服务质量。
所述服务筛选模块83用于利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库。
在本实施例中,所述服务筛选模块83具体用于根据用户多种偏好的划分,建立不同偏好下的任务库;遍历已经建立的所述任务库,对于所述任务库中的每个服务,如果有其他的服务能够提供相同的业务功能且具有更高的服务质量,则替换该服务进入任务集合,以优化建立的任务库,保证所述任务库的服务都能够提供不同的功能,且全部具有最高的服务质量。
所述服务匹配模块84用于对不同的所述任务库进行任务匹配,确定任务关联集合。
在本实施例中,所述服务匹配模块84具体用于当所述任务的输出集合包含另一任务的输入集合时,判定所述任务与另一任务存在逻辑关系,将所述任务作为另一任务的前置任务,将另一任务作为所述任务的后置任务;判断所述任务与另一任务的匹配程度;若所述任务的输出集合等于另一任务的输入集合,判定所述任务与另一任务为完全匹配,服务结构为链式或者选择结构;若所述任务的输出集合真包含于另一任务的输入集合,判定所述任务与另一任务为不完全匹配,即存在并行结构。
所述服务组合模块85用于将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流。
在本实施例中,所述服务组合模块85具体用于将预设的任务作为初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则返回得到的工作流;当队列不为空时,从队列中取出一个任务,判断此时任务中的用户偏好;当用户偏好为吞吐量时,对吞吐量值较低的分支进行吞吐量偏好下的优化,对吞吐量较高的分支进行综合偏好的优化;当用户偏好为响应时间时,对响应时间值较低的分支进行响应时间偏好下的优化,对响应时间较高的分支进行综合偏好的优化;当用户偏好为可靠性时,对所有分支进行可靠性偏好下的优化;当用户偏好为综合偏好时,对所有分支进行综合偏好下的优化;所述优化的方法为从相应偏好下的任务关联集合中寻找任务关联,并将后继的任务加入队列。
本实施例提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述基于图规划的服务封装方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的计算机可读存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的计算机存储介质。
请参阅图9,显示为本发明的基于图规划的服务封装方法于一实施例中的设备结构示意图。如图9所示,本实施例提供一种设备9,所述设备9包括:处理器91、存储器92、收发器93、通信接口94或/和系统总线95;存储器92和通信接口94通过系统总线95与处理器91和收发器93连接并完成相互间的通信,存储器92用于存储计算机程序,通信接口94用于和其他设备进行通信,处理器91和收发器93用于运行计算机程序,使所述设备执行所述基于图规划的服务封装方法的各个步骤。
上述提到的系统总线95可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线95可以分为地址总线、数据总线、控制总线等。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器91可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(扫描应用程序licationSpecific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明所述的基于图规划的服务封装方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
本发明还提供一种基于图规划的服务封装系统,所述基于图规划的服务封装系统可以实现本发明所述的基于图规划的服务封装方法,但本发明所述的基于图规划的服务封装方法的实现装置包括但不限于本实施例列举的基于图规划的服务封装系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。需要说明的是,所述基于图规划的服务封装方法和所述基于图规划的服务封装系统也适用于视频、朋友圈消息等其他多媒体形式的内容,并包含在本发明的保护范围内。
综上所述,本发明所述基于图规划的服务封装方法、系统、介质及设备提供了一种复杂业务服务组合封装以及其合理性分析方法,将服务在运行时的服务质量,加入到建模过程中,根据用户偏好对服务集合进行划分,通过一种改进的图规划服务组合算法,形成服务工作流,从而完成复杂业务的服务封装。通过建立不同的偏好下的任务库减小每一次搜索所需要的搜索空间,从而提高服务组合算法的时间性能;通过建立任务与任务之间的逻辑关联代替建立服务规划图,提高服务组合算法的灵活性和算法的空间性能;在处理并行结构的服务组合时,对于不同的服务分支采取不同的处理方式,在对整体服务组合进行优化的同时,提高其他服务分支的服务性能。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (5)

1.一种基于图规划的服务封装方法,其特征在于,所述基于图规划的服务封装方法包括:
建立与用户操作相关的服务的数学模型;包括:对所述服务的描述语言和用户请求的描述进行解析,并根据所述服务、用户请求、工作流的功能,对所述服务、用户请求、工作流、任务和任务关联建立数学模型;所述数学模型用于将所述服务包含的信息进行数值化,以便对数值化的服务信息进行运算处理,所述数学模型包含服务质量信息;
对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量;包括:
根据所述数学模型中服务的服务质量属性和服务质量范围,对服务质量中的每一个服务指标进行归一化处理,并将归一化后的指标作为一个行向量进行存储;
在确定每一个服务质量的行向量之后,根据业务场景与用户需求,建立多种偏好;
设置与偏好相关的列向量,将所述行向量与所述列向量相乘,得到服务在每一个偏好下的服务质量;
利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库;包括:
根据用户多种偏好的划分,建立不同偏好下的任务库;
遍历已经建立的所述任务库,对于所述任务库中的每个服务,如果有其他的服务能够提供相同的业务功能且具有更高的服务质量,则替换该服务进入任务集合,以优化建立的任务库,保证所述任务库的服务都能够提供不同的功能,且全部具有最高的服务质量;
对不同的所述任务库进行任务匹配,确定任务关联集合;包括:
当所述任务的输出集合包含另一任务的输入集合时,判定所述任务与另一任务存在逻辑关系,将所述任务作为另一任务的前置任务,将另一任务作为所述任务的后置任务;
判断所述任务与另一任务的匹配程度;若所述任务的输出集合等于另一任务的输入集合,判定所述任务与另一任务为完全匹配,服务结构为链式或者选择结构;若所述任务的输出集合真包含于另一任务的输入集合,判定所述任务与另一任务为不完全匹配,即存在并行结构;
将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流;包括:
将预设的任务作为初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则返回得到的工作流;当队列不为空时,从队列中取出一个任务,判断此时任务中的用户偏好;
当用户偏好为吞吐量时,对吞吐量值较低的分支进行吞吐量偏好下的优化,对吞吐量较高的分支进行综合偏好的优化;当用户偏好为响应时间时,对响应时间值较低的分支进行响应时间偏好下的优化,对响应时间较高的分支进行综合偏好的优化;当用户偏好为可靠性时,对所有分支进行可靠性偏好下的优化;当用户偏好为综合偏好时,对所有分支进行综合偏好下的优化;所述优化的方法为从相应偏好下的任务关联集合中寻找任务关联,并将后继的任务加入队列。
2.根据权利要求1所述的基于图规划的服务封装方法,其特征在于,所述基于图规划的服务封装方法还包括:
记录并保存服务组合的路径,当队列为空或者已经得到用户期望输出的时候,则完成所需要的服务封装。
3.一种基于图规划的服务封装系统,其特征在于,所述基于图规划的服务封装系统包括:
建模模块,用于建立与用户操作相关的服务的数学模型;包括:对所述服务的描述语言和用户请求的描述进行解析,并根据所述服务、用户请求、工作流的功能,对所述服务、用户请求、工作流、任务和任务关联建立数学模型;所述数学模型用于将所述服务包含的信息进行数值化,以便对数值化的服务信息进行运算处理,所述数学模型包含服务质量信息;
服务质量处理模块,用于对所述数学模型中存在的多个服务质量进行处理,以确定所述服务在不同业务场景偏好下的服务质量;包括:
根据所述数学模型中服务的服务质量属性和服务质量范围,对服务质量中的每一个服务指标进行归一化处理,并将归一化后的指标作为一个行向量进行存储;
在确定每一个服务质量的行向量之后,根据业务场景与用户需求,建立多种偏好;
设置与偏好相关的列向量,将所述行向量与所述列向量相乘,得到服务在每一个偏好下的服务质量;
服务筛选模块,用于利用所述服务在不同业务场景偏好下的服务质量进行服务筛选,建立在不同偏好下的任务库;包括:
根据用户多种偏好的划分,建立不同偏好下的任务库;
遍历已经建立的所述任务库,对于所述任务库中的每个服务,如果有其他的服务能够提供相同的业务功能且具有更高的服务质量,则替换该服务进入任务集合,以优化建立的任务库,保证所述任务库的服务都能够提供不同的功能,且全部具有最高的服务质量;
服务匹配模块,用于对不同的所述任务库进行任务匹配,确定任务关联集合;包括:
当所述任务的输出集合包含另一任务的输入集合时,判定所述任务与另一任务存在逻辑关系,将所述任务作为另一任务的前置任务,将另一任务作为所述任务的后置任务;
判断所述任务与另一任务的匹配程度;若所述任务的输出集合等于另一任务的输入集合,判定所述任务与另一任务为完全匹配,服务结构为链式或者选择结构;若所述任务的输出集合真包含于另一任务的输入集合,判定所述任务与另一任务为不完全匹配,即存在并行结构;服务组合模块,用于将所述任务关联集合、用户请求和偏好作为输入,进行服务组合,以构建服务封装的工作流;包括:
将预设的任务作为初始节点置入队列,循环开始时,判断队列是否为空,当队列为空时,则返回得到的工作流;当队列不为空时,从队列中取出一个任务,判断此时任务中的用户偏好;
当用户偏好为吞吐量时,对吞吐量值较低的分支进行吞吐量偏好下的优化,对吞吐量较高的分支进行综合偏好的优化;当用户偏好为响应时间时,对响应时间值较低的分支进行响应时间偏好下的优化,对响应时间较高的分支进行综合偏好的优化;当用户偏好为可靠性时,对所有分支进行可靠性偏好下的优化;当用户偏好为综合偏好时,对所有分支进行综合偏好下的优化;所述优化的方法为从相应偏好下的任务关联集合中寻找任务关联,并将后继的任务加入队列。
4.一种介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2中任一项所述的基于图规划的服务封装方法。
5.一种设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行如权利要求1至2中任一项所述的基于图规划的服务封装方法。
CN202010095219.XA 2020-02-14 2020-02-14 基于图规划的服务封装方法、系统、介质及设备 Active CN111369035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010095219.XA CN111369035B (zh) 2020-02-14 2020-02-14 基于图规划的服务封装方法、系统、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010095219.XA CN111369035B (zh) 2020-02-14 2020-02-14 基于图规划的服务封装方法、系统、介质及设备

Publications (2)

Publication Number Publication Date
CN111369035A CN111369035A (zh) 2020-07-03
CN111369035B true CN111369035B (zh) 2023-07-14

Family

ID=71208033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010095219.XA Active CN111369035B (zh) 2020-02-14 2020-02-14 基于图规划的服务封装方法、系统、介质及设备

Country Status (1)

Country Link
CN (1) CN111369035B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109167673A (zh) * 2018-07-18 2019-01-08 广西大学 一种融合异常Qos数据检测的新型云服务筛选方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783468B2 (en) * 1998-05-13 2010-08-24 Accretive Technologies, Inc. Automated system and method for service and cost architecture modeling of enterprise systems
US7114146B2 (en) * 2003-05-02 2006-09-26 International Business Machines Corporation System and method of dynamic service composition for business process outsourcing
CN101175090B (zh) * 2007-11-21 2011-01-19 华为技术有限公司 基于服务特性的服务合成系统及服务合成方法
CN102855333A (zh) * 2012-09-27 2013-01-02 南京大学 一种基于组推荐的服务选取系统及其选取方法
CN108076143A (zh) * 2017-12-01 2018-05-25 河南理工大学 一种物流Web服务动态优化组合方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109167673A (zh) * 2018-07-18 2019-01-08 广西大学 一种融合异常Qos数据检测的新型云服务筛选方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于线性规划QoS感知的Web服务组合模型;陈国彬;张广泉;;控制工程(06);144-147 *

Also Published As

Publication number Publication date
CN111369035A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
JP7417724B2 (ja) コールドチェーン配送経路の決定方法、装置、サーバおよび記憶媒体
Kershenbaum et al. Centralized teleprocessing network design
CN110737804B (zh) 一种基于活跃度布局的图处理访存优化方法及系统
KR101411321B1 (ko) 액티브 노드와 유사한 특성을 가지는 이웃 노드의 관리방법, 장치 및 그 방법을 구현하기 위한 프로그램이 기록된기록매체
Chattopadhyay et al. A scalable and approximate mechanism for web service composition
Jawarneh et al. Sequential insertion heuristic with adaptive bee colony optimisation algorithm for vehicle routing problem with time windows
CN115858168B (zh) 一种基于重要性排序的地球应用模型编排系统及其方法
US20230394330A1 (en) A method and system for designing ai modeling processes based on graph algorithms
CN112579319A (zh) 一种基于LRU Cache优化的服务调用方法及装置
CN112001491A (zh) 针对处理器确定神经网络架构的搜索方法和装置
CN108470251B (zh) 基于平均互信息的社区划分质量评价方法及系统
JP7182173B2 (ja) 変数埋込方法及び処理システム
Batouche et al. Semantic web services composition optimized by multi-objective evolutionary algorithms
CN111369035B (zh) 基于图规划的服务封装方法、系统、介质及设备
CN111539517A (zh) 基于图结构矩阵特征向量的图卷积神经网络生成方法
CN110222055A (zh) 一种动态图下多边更新的单轮核值维护方法
Matjašič et al. blockmodeling: An R package for generalized blockmodeling
US20060026187A1 (en) Apparatus, method, and program for processing data
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
Hiremath New heuristic and metaheuristic approaches applied to the multiple-choice multidimensional knapsack problem
CN112256705A (zh) 一种Gaia系统中的多表连接优化方法
CN111695316A (zh) 一种基于改进混合算法的片上网络测试规划方法
Santhanam et al. On utilizing qualitative preferences in web service composition: a cp-net based approach
TWI292106B (en) Method for constructing traceability ontology map and recoding medium storing traceability ontology map
CN110659034A (zh) 云边混合计算服务的组合优化部署方法、系统及存储介质

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