CN102255955B - 基于依赖关系的Web服务动态组合方法 - Google Patents
基于依赖关系的Web服务动态组合方法 Download PDFInfo
- Publication number
- CN102255955B CN102255955B CN201110168027.8A CN201110168027A CN102255955B CN 102255955 B CN102255955 B CN 102255955B CN 201110168027 A CN201110168027 A CN 201110168027A CN 102255955 B CN102255955 B CN 102255955B
- Authority
- CN
- China
- Prior art keywords
- service
- data
- services
- key
- dependence
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于依赖关系的Web服务组合方法,首先提出了Web服务依赖关系模型,该模型并不受限于具体的Web服务描述模型和语言,它仅用于描述Web服务的数据依赖信息,该模型支持服务接口的语义标注和接口依赖关系的申明;在依赖关系模型基础上提出了基于动态规划的Web服务组合方法,该方法在进行服务匹配过程中,利用Web服务的依赖关系把Web服务组合转化成动态规划问题,并找出最优化的服务组合方法。本发明不仅解决上面由于Web服务之间的依赖关系所涉及的问题,还有效地提高服务组合的效率,从而更好满足用户服务组合的需求,实现Web应用的自动化执行。
Description
技术领域
本发明涉及Web服务组合的服务计算技术领域,特别是涉及一种基于Web服务依赖关系的服务组合方法。
背景技术
Web服务是一种基于网络环境的自适应、自描述、模块化的应用程序。因其具备良好的互操作能力和可重用性而在电子商务、应用集成、流程管理等领域中扮演越来越重要的角色。面向服务计算(SOC)是分布式计算很有效的方法,具体体现在服务灵活、高效的组合和自动编排执行。构造单个功能大而全的Web服务灵活性差,可重用度低;而独立的、可重用的基本Web服务一般功能有限,难以满足实际应用中的需求。因此有必要将单个Web服务组合起来,其目的在于通过服务间的彼此协同合作来满足应用需求。Web服务组合就是要将松耦合、分散的各Web服务有机地组织成一个可用系统,以满足不同用户的复杂功能需求。近年来,随着Web服务相关标准的持续完善和支持Web服务开发软件平台的不断成熟,Web服务已经成为互联网中最为重要的一种计算资源和软件资产。而Web服务数量的不断增长,使得用户难以从大规模服务集合中自动、讯速、准确地搜索并组合服务。
服务自身存在处理语法、语义、识别、抽取等方面的问题,具有跨平台和松耦合的特点,因此众多研究者提出了许多解决方案,主要从形式化逻辑描述(非功能性描述),人工智能,语义识别,逻辑推理等角度进行研究服务,以达到满意的服务组合。但大多方法只是从一定程度改进了服务组合体系,尚未实现服务组合的快速性和准确性。目前,工业界和学术界针对Web服务组合已经提出了多种方法,从整体上可分为四大类:工作流、软件工程、形式化和人工智能。这些方法在一定程度上提高了Web服务组合的准确率和优化度,但普遍存在应用实施难度较大的问题.这是由于这些方法均是建立在全新的语义Web服务模型和描述语言的基础上,如DAML-S/OWL-S、WSMO/WSML等。这些方法在特定的服务模型和应用场景中可取得较好的效果,但基于这些新的语义Web模型和描述语言的服务数量少之又少;而另一方面,现阶段WSDL(Web Service Description Language)作为Web服务描述规范而被广泛采用,出现了大量的基于WSDL的Web服务,因此在应用前述那些方法之前,需要将WSDL转化成目标服务模型和语言,增大了方法应用的难度和复杂度。
综上所述,至今国内外尚未提出实现Web服务自动组合的有效方法。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于服务依赖关系的Web服务组合方法。
本发明解决其技术问题采用的技术方案如下:一种基于Web服务依赖关系的服务组合方法,该方法包括以下步骤:
(1)基于数据依赖关系定义模型:
定义1(数据依赖):在一个服务定义中,如果存在输入参数a,输出参数b,则数据b依赖于数据a;表示为a→b;数据依赖关系具有传递性,即:如果a→b,b→c则a→c;
定义2(服务间数据依赖):如果服务A的输出数据a是服务B的输入数据,则称服务的B数据a依赖于A,表示为A(a)→B;
定义3(服务间数据依赖集):在一个服务组合中,由所有参与组合服务的服务间数据依赖组成的集合;
定义4(同类型的服务集):在服务集合中,实现功能相同,输入输出的要求相同的服务集合,在一个服务组合中取最优,并备用其他;
定义5(服务组合模型WCP):服务组合模型WCP是一个三元组:WCP=(Name,WS,DS),其中:Name是组合方案名称;WS是该组合方案包含的服务的集合;DS是所有服务间的数据依赖集;
(2)确保数据的完整性和一致性:
识别关键服务:如果某一服务产生数据a,且a不是该服务输入参数的子集,则该服务为关键服务;每一个关键服务可以产生单个或多个数据;由关键服务组成的集合为关键服务集;
识别只被依赖服务:如果某一服务(包括同类型的服务)的输入不依赖与任何其他服务,则该服务类型为只被依赖服务;
构造关键服务和只被依赖服务的数据依赖服务集:对于关键服务或是只被依赖服务A,集合KS(A)={X|X是参与合成的服务且A(a)→X}为关键服务A基于数据a的数据依赖服务集合;
(3)基于动态规划的Web服务组合方法的实现:
通过关键服务集合和每个关键活动的数据依赖活动集合可以求出整个模型的完整的数据依赖关系图,具体步骤如下:
(a)找出输入数据集合为空的关键服务A;
(b)找出服务A的数据依赖服务集中的关键服务集KS(A);
(c)若KS(A)中的元素有多个,则将各服务置于A的不同的后续分支上;若是KS(A)中的元素只有一个则直接成为A的后继服务;
(d)遍历每个分支,重复步骤(b),若分支上的服务具有相同数据依赖关键服务,则该相同后继服务是聚合服务。
本发明与背景技术相比,具有的有益效果是:本发明针对由Web服务组合以及服务之间相互依赖关系所触发的问题展开研究,首先提出了Web服务的依赖关系模型。需要强调的是,该模型并不受限于具体的Web服务描述模型和语言,它仅使用了Web服务的数据依赖信息,该模型支持服务接口的语义标注和接口依赖关系的申明。基于该依赖关系模型,本发明提出了基于动态规划的Web服务组合,该方法在进行服务匹配过程中,利用Web服务间的依赖关系把Web服务组合转化成动态规划问题,并找出最优化的服务组合方法。不仅解决上面由于Web服务之间的依赖关系所涉及的问题,还有效地提高服务组合的效率,从而更好满足用户服务组合的需求。通过本发明提出的技术方案,进而可以实现各种基于服务组合的Web应用自动化任务,比如“在线文档自动转换、发送和打印”(OA领域)、“在线旅程自动预定”和“商品下单和交易”(电子商务领域)等方面的任务。
附图说明
图1为用户请求的服务之间的关系图;
图2为用户请求的服务处理过程图;
图3为用户集处理过程图。
具体实施方式
本发明基于依赖关系的Web服务动态组合方法,包括以下步骤:
1、基于数据依赖关系定义模型
定义1(数据依赖):在一个服务定义中,如果存在输入参数a,输出参数b,则数据b依赖于数据a。表示为a→b。数据依赖关系具有传递性,即:如果a→b,b→c则a→c。
定义2(服务间数据依赖):如果服务A的输出数据a是服务B的输入数据,则称服务的B数据a依赖于A,表示为A(a)→B。
定义3(服务间数据依赖集):在一个服务组合中,由所有参与组合服务的服务间数据依赖组成的集合。
定义4(同类型的服务集):在服务集合中,实现功能相同,输入输出的要求相同的服务集合,在一个服务组合中取最优,并备用其他。
定义5(服务组合模型WCP):服务组合模型WCP是一个三元组:WCP=(Name,WS,DS),其中:Name是组合方案名称;WS是该组合方案包含的服务的集合;DS是所有服务间的数据依赖集。
2、确保数据的完整性和一致性
识别关键服务:如果某一服务产生数据a,且a不是该服务输入参数的子集,则该服务为关键服务。每一个关键服务可以产生单个或多个数据。由关键服务组成的集合为关键服务集。
识别只被依赖服务:如果某一服务(包括同类型的服务)的输入不依赖与任何其他服务,则该服务类型为只被依赖服务。
构造关键服务和只被依赖服务的数据依赖服务集:对于关键服务或是只被依赖服务A,集合KS(A)={X|X是参与合成的服务且A(a)→X}为关键服务A基于数据a的数据依赖服务集合。
3、基于动态规划的Web服务组合方法的实现
通过关键服务集合和每个关键活动的数据依赖活动集合可以求出整个模型的完整的数据依赖关系图。其求解步骤如下:
(1)找出输入数据集合为空的关键服务A;
(2)找出服务A的数据依赖服务集中的关键服务集KS(A);
(3)若KS(A)中的元素有多个,则将各服务置于A的不同的后续分支上;若是KS(A)中的元素只有一个则直接成为A的后继服务;
(4)遍历每个分支,重复第2步。若分支上的服务具有相同数据依赖关键服务,则该相同后继服务是聚合服务。
下面详细描述本发明的实施例,本发明的目的和效果将变得更加明显。为了便于描述,实例所涉及的应用是一个在线OA(办公自动化)系统中某个简化了的文档处理和存储子功能。
实施例
在一基于Webservice的在线OA系统中有如下功能需求:
A)把用户提交的某种格式的文档(例如html)转换成另一种格式(例如doc,pdf或者rtf);然后将转换后的文档发送到远程服务器存储;服务器接收到这份文档后还要将其传送至某网络打印机上打印出来作为硬备份,或者将此文档发送至管理员的邮箱(当打印机不可用时)。
B)把用户提交的文档进行加密后,再压缩成某种格式(例如rar或者zip)存储。
在这个例子中,源数据是用户的文档,根据对源数据的处理需求可构造以下几个基本Web服务,分别是:
1、服务1实现文档html到doc的转换;服务2实现文档html到pdf的转换;服务3实现文档html到rtf的转换。
2、服务4实现基于ftp的文件传输;服务5实现基于http的文件传输;服务6实现基于https的文件传输。
3、服务7实现文档远程打印;服务8将文档发送到管理员email地址。
4、服务9实现文档的DES加密;服务11实现文档的RSA加密。
5、服务10实现文档的rar压缩;服务12实现文档的zip压缩。
并且假设以上各个服务有自己的执行代价,例如由计算时间、排队时间而构成的服务响应延时。
首先,对服务进行分类形成若数据依赖服务集合,对每个集合加以定义,这里的Web服务集合有如下属性:每个集合至少包含一个服务,每个集合可以包含其他集合的子服务,每个集合必须要有一个和其他集合不同的服务。每个服务集合都是不同的,而且是不互相包含的,而且每个服务集合之间存在着严格的依赖关系。对服务集合的划分可以使用单个服务之间的依赖关系来进行划分,有依赖关系的不放在一起。
其次,在建立Web服务集合之后。把不同的服务集合注册成不同的服务类型。
再次,考虑用户对服务的请求,一般用户请求的服务,要么是一个服务类型,要么是这些服务类型的组合。这就需要对用户的服务请求进行类型拆解。由于服务之间的依赖关系和服务请求拆解的服务必然是从无依赖服务开始,经过一系列的服务(每个服务都来自不同的服务)组合最后形成一个服务请求,(需要消除环形依赖)。
最后加上服务单点起始,这样就转化成了几个决策过程,就是形成了多个动态规划的模型。
本实例中服务的依赖关系如下:
1(input)→4, 1(input)→5, 1(input)→6, 2(input)→4, 2(input)→5, 2(input)→6, 3 (input)→4, 3(input)→5, 3(input)→6, 4(input)→7, 4(input)→8, 5(input)→7, 5(input)→8, 6(input)→7, 6(input)→8)
9(input)→10, 9(input)→12, 11(input)→10, 11(input)→12。
图1示意了以上服务之间的关系,图中每个节点对应相应编号的服务。在图2中,对于一个文档的转换、备份和打印任务,从服务请求开始,第一步服务组合的选择是 之一,下一步就是 之一,如此依次进行下去,每一步是一个选择,在这里把它叫做阶段,用k来表示阶段数。类似地,如果是一个加密压缩任务,则从 开始,如图3所示。可以看出不同阶段之间是有相互关系的,把各个阶段的服务集称之为状态,它是这类问题各阶段信息的传递点和结合点。各个阶段的状态定义为状态变量sk。状态既反映前面各阶段决策的结果,也是本阶段做出决策的出发点和依据。第k阶段的状态变量sk包含该阶段之前决策过程的全部信息,从该阶段后做出的决策同这之前的状态和决策相互独立。整个决策过程可以用动态规划算法加以解决。由动态规划决策得到的最终结果即是完成某个任务的最优服务组合。
本发明提出的基于服务依赖关系的Web服务组合方法与现存WSDL体系兼容,可以在WSDL服务描述框架下对Web服务进行有效组合;另一方面,服务间因输入输出数据而产生依赖,则一般意味着这些服务间具有一定的语义相关性,所以基于服务依赖关系的Web服务组合也在某种程度上解决了语义关联的问题,相比于前述基于DAML-S/OWL-S的组合方法,本发明提出的方法实现简单,易于实施。
Claims (1)
1.一种基于Web服务依赖关系的服务组合方法,其特征在于:该方法包括以下步骤:
(1)基于数据依赖关系定义模型:
定义1:数据依赖:在一个服务定义中,如果存在输入参数a,输出参数b,则数据b依赖于数据a;表示为a→b;数据依赖关系具有传递性,即:如果a→b,b→c则a→c;
定义2:服务间数据依赖:如果服务A的输出数据a是服务B的输入数据,则称服务B的数据a依赖于A,表示为A(a)→B;
定义3:服务间数据依赖集:在一个服务组合中,由所有参与组合服务的服务间数据依赖组成的集合;
定义4:同类型的服务集:在服务集合中,实现功能相同,输入输出的要求相同的服务集合,在一个服务组合中取最优,并备用其他;
定义5:服务组合模型WCP:服务组合模型WCP是一个三元组:WCP=(Name,WS,DS),其中:Name是组合方案名称;WS是该组合方案包含的服务的集合;DS是所有服务间的数据依赖集;
(2)确保数据的完整性和一致性:
识别关键服务:如果某一服务产生数据a,且a不是该服务输入参数的子集,则该服务为关键服务;每一个关键服务可以产生单个或多个数据;由关键服务组成的集合为关键服务集;
识别只被依赖服务:如果某一服务以及同类型服务的输入不依赖于任何其他服务,则该服务类型为只被依赖服务;
构造关键服务和只被依赖服务的数据依赖服务集:对于关键服务或是只被依赖服务A,集合KS(A)={X|X是参与合成的服务且A(a)→X}为关键服务A基于数据a的数据依赖服务集合;
(3)基于动态规划的Web服务组合方法的实现:
通过关键服务集合和每个关键活动的数据依赖活动集合可以求出整个模型的完整的数据依赖关系图,具体步骤如下:
(a)找出输入数据集合为空的关键服务A;
(b)找出服务A的数据依赖服务集中的关键服务集KS(A);
(c)若KS(A)中的元素有多个,则将各服务置于A的不同的后续分支上;若是KS(A)中的元素只有一个则直接成为A的后继服务;
(d)遍历每个分支,重复步骤(b),若分支上的服务具有相同后继服务,则该相同后继服务定义为聚合服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110168027.8A CN102255955B (zh) | 2011-06-22 | 2011-06-22 | 基于依赖关系的Web服务动态组合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110168027.8A CN102255955B (zh) | 2011-06-22 | 2011-06-22 | 基于依赖关系的Web服务动态组合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102255955A CN102255955A (zh) | 2011-11-23 |
CN102255955B true CN102255955B (zh) | 2014-01-29 |
Family
ID=44982945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110168027.8A Expired - Fee Related CN102255955B (zh) | 2011-06-22 | 2011-06-22 | 基于依赖关系的Web服务动态组合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102255955B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360295A (zh) * | 2011-10-07 | 2012-02-22 | 彭志平 | 一种基于多Web服务链组合的服务匹配方法 |
CN102546754B (zh) * | 2011-11-23 | 2014-11-26 | 河南理工大学 | 服务质量可定制的Web服务组合方法 |
CN103248693A (zh) * | 2013-05-03 | 2013-08-14 | 东南大学 | 基于多智能体强化学习的大规模服务组合优化方法 |
CN103606042B (zh) * | 2013-11-18 | 2016-08-17 | 南京理工大学 | 基于动态依赖图的服务组合实例迁移有效性判定方法 |
CN104168330A (zh) * | 2014-08-28 | 2014-11-26 | 哈尔滨工程大学 | 一种基于关系图的解决Web服务组合异常问题的最优补偿方法 |
CN106293648B (zh) * | 2015-05-13 | 2019-11-29 | 南京理工大学 | 基于路径依赖图的服务组合行为合规性度量方法 |
CN106921614B (zh) * | 2015-12-24 | 2020-05-22 | 北京国双科技有限公司 | 业务数据处理方法和装置 |
CN106469222A (zh) * | 2016-09-23 | 2017-03-01 | 东软集团股份有限公司 | 组合模型的执行方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529948B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Multi-object fetch component |
CN101820428B (zh) * | 2010-04-22 | 2013-03-20 | 北京航空航天大学 | 基于协议组合机制的组合服务优化方法和装置 |
CN102087665B (zh) * | 2011-01-27 | 2013-03-06 | 中国科学院计算技术研究所 | 支持持续查询的自动服务组合方法与系统 |
-
2011
- 2011-06-22 CN CN201110168027.8A patent/CN102255955B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102255955A (zh) | 2011-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102255955B (zh) | 基于依赖关系的Web服务动态组合方法 | |
Li et al. | A scientific workflow management system architecture and its scheduling based on cloud service platform for manufacturing big data analytics | |
Xia | Cloud control systems | |
Cui et al. | A blockchain-based containerized edge computing platform for the internet of vehicles | |
Song et al. | A workflow framework for intelligent service composition | |
Liu et al. | A blockchain-based interactive approach between digital twin-based manufacturing systems | |
CN104915407A (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN110493304B (zh) | 边缘计算系统以及交易系统 | |
CN112925660A (zh) | 一种工业互联的信息交互系统 | |
CN109687998B (zh) | 一种面向任务服务的卫星网络资源管理模型的构建方法 | |
Ming et al. | QoS-aware computational method for IoT composite service | |
Zu et al. | Data-centric publish-subscribe approach for Distributed Complex Event Processing deployment in smart grid Internet of Things | |
Xiao et al. | A hybrid task crash recovery solution for edge computing in IoT-based manufacturing | |
Zhou et al. | AHPA: adaptive horizontal pod autoscaling systems on alibaba cloud container service for kubernetes | |
CN110502342A (zh) | 一种间歇网络环境下机动边缘信息服务网络 | |
Doostmohammadian et al. | Distributed finite-sum constrained optimization subject to nonlinearity on the node dynamics | |
Li et al. | Research on Artificial Intelligence Industrial Big Data Platform for Industrial Internet Applications | |
Wu et al. | FAST: A fully asynchronous and status-tracking pattern for geoprocessing services orchestration | |
Da Silva et al. | An adaptive parallel query processing middleware for the grid | |
Chrysoulas et al. | A service oriented QoS architecture targeting the smart grid world & machine learning aspects | |
Hao et al. | Designing of cloud-based virtual factory information system | |
Hou et al. | A distributed deployment algorithm of process fragments with uncertain traffic matrix | |
Parvez et al. | Latency critical data processing in cloud for smart grid applications | |
Li et al. | Joint resource allocation for software-defined serverless service-centric networking | |
Marcu et al. | Dynamic scheduling in real time with budget constraints in hybrid clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140129 Termination date: 20160622 |