电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

混合Web服务组合

来源:文库作者:开心麻花2025-11-191

混合Web服务组合(精选7篇)

混合Web服务组合 第1篇

Web服务结合了面向组件的方法和Web技术的优势,利用标准网络协议和XML数据格式进行通信,能实现不同平台上各种语言编写的服务之间的交互电子商务的迅速发展,对跨企业的应用集成以及企业内部应用的集成提出了需求。而Web服务的出现正好为这些应用的集成提供了一个很好的解决方案,使企业内和企业之间应用的集成成为可能,而且使应用的集成更加快捷和方便。因此,Web服务在企业的电子商务系统中得到了广泛的运用。

单个Web服务通常只提供惟一的调用函数完成单一的功能,Web服务组合能够利用Internet上分布的易于执行的轻量级服务创建功能丰富易于用户定制的复杂服务, 将松散耦合的相关Web服务有机组织成更为可用的系统。

二、Web服务技术

Web服务组合问题涉及领域包括:Web服务技术领域,流程管理领域和人工智能领域。

1. Web服务技术

根据W3C的定义,Web服务是由URI标识的软件应用程序,通过XML构件进行定义、描述和发现其接口和绑定。Web服务支持因特网的协议并能够与其他基于XML消息的应用程序直接交互。Web服务技术允许不同软件语言开发、分布在Internet不同地域的应用进行有效的发现和通讯,基于Web服务的应用程序集成在协议栈中较高层发生,注重服务语义,实现了业务的松散耦合集成。Web服务提供了一致化编程模型和一整套Internet规范,主要包括XML,基于XML的Web服务描述语言WSDL,由技术和商业领域的领导者共同开发的统一描述、发现与集成协议标准UDDI,用于描述服务合成过程的控制流和信息流的流描述语言BPEL4WS等。便于企业利用现有语言、平台和已有的应用程序,以增量方式集成和应用Web服务。Web服务提供了一种支持电子商务的革命性的方式,最重要的价值在于以统一的语言完成所有的部件之间的沟通,从而达到整体效率的提高,促进了新型电子商务应用以及动态服务集成的迅速发展,激发了第三方增值服务市场的出现。

虽然在基础层面上Web服务是一种非常好的集成工具,但在工作流和业务过程自动化方面仍然不够完善。要实现基于Web的服务的应用集成系统需要一系列构件、应用之间互相协作,只有根据业务需求制定动态的业务流程才能解决具体、多变的商务问题。同时,服务的动态组合,服务质量的评价等问题还值得进一步深入研究。

2. 语义Web服务研究

标准的Web服务缺乏必要的语义信息,导致Web服务功能得不到准确的描述,无法消除服务语义的模糊、理解的歧义性等问题,并影响了Web服务的自动发现、匹配和组装。语义Web服务将语义Web概念和Web服务研究相结合, 利用语义本体对Web服务建模,在语义层面对服务接口、服务消息、服务结构、服务交互等进行描述,结合语义推理技术支持Web服务自动发现、组装、调用和监控等关键过程。语义Web服务具影响力的代表性工作包括:

(1) OWL-S (Web Ontology Language for Services) :前身为DAML-S,基于可判定的描述逻辑,将Web服务的本体分成三个上层本体,目前在语义Web服务领域最具影响力;

(2) WSMO/WSML (Web Service Modeling Ontology) :基于框架逻辑,从四个方面描述语义Web服务:Ontology, Web Service, Goal和Mediator;

(3) SWSO/SWSL (Semantic Web Service Ontology) :基于一阶逻辑,充分吸收了OWL-S和WSMO/WSML的优点;

(4) WSDL-S:独立于语义表达语言,允许开发人员选择本体语言,如OWL或者UML。与其他工作相比,WSDL-S基于标准WSDL扩展,与已有的工具平台有更好的适应性。

三、Web服务组合

1. Web服务组合关键问题

服务组合作为一个满足业务需求的流程规划, 涉及到基本服务和复合构件服务的协同,Web服务组合需要解决以下几个主要问题:

(1) 采用怎样的Web服务组合模型作为组合研究的框架基础;

(2) 在可替换的服务中如何根据QoS要求进行质量驱动的服务选择;

(3) 建立怎样的代价模型以评估Web服务组合的代价;

(4) 怎样定义各个组成部分之间的关系;

(5) 如何在多个层面上提供更为精确和通用的语义信息的支持;

(6) 怎样验证和测试组合Web服务;

(7) 如何对QoS或其他行为进行监控, 保证在满足需要的同时, 能够高效的利用资源。从软件工程的角度看, 以上问题涉及服务组合的设计、开发、运行和管理等的软件生命周期。从相关技术看, 涉及了对形式化方法、语义学和运筹规划等领域知识, 使其成为一个跨学科的研究领域。

2.Web服务组合方法

围绕服务组合问题, 已经有大量的研究者进行了相当广泛和深入的研究。当前解决服务组合的问题主要有基于工作流 (workflow) 的方法、基于AI Planning的方法和基于软件工程的方法。

(1) 基于AI Planning方法:主要有基于逻辑程序设计语言Golog方法、基于适合过程模型的分层任务网络SHOP2方法和使用基于规则的专家系统构建复合服务的开发工具SWORD方法。目前, 利用AI规划技术求解语义Web服务的自动组合问题不能够对组合服务中各种动态关系, 特别是并发关系进行刻画;

(2) 基于工作流方法:主要包括基于Web服务业务流程执行语言BPEL4WS/BPEL方法、基于业务流程建模语言BPML方法和基于Web服务编排定义语言WS-CDL方法。基于工作流相关方法往往需要大量人工操作去事先定义该商业进程, 不是真正意义上动态的自动的服务组合;

(3) 基于软件工程的方法, 主要方法为借鉴软件工程中的原则的Web构件组合方法。

3.Web服务质量属性

为保证服务组合的性能和质量, 必须基于服务质量 (QOS) 描述Web服务。质量属性之间具有高度内连性, 需要从系统论的角度深入分析移动环境下Web服务质量属性特点及矛盾协调。服务质量属性可以分为客观的和主观的服务质量属性。主观服务质量属性主要是用户对服务质量的全面感觉, 用户关于服务是否满意的观点, 由于用户感知的质量经常是被表达, 非技术性的, 很难客观评价。在客观服务质量属性评价中, 质量标准受到交互目标的影响, 理想的服务质量属性评价应根据任务执行而不同。

四、小结

综上所述, 服务组合的基础是Web服务的形式化描述, Web服务组合是Web服务研究领域中的一个重要的研究分支, 具有重要的理论意义和实用价值。利用与平台无关的Web服务应用能够将商业智能功能整合到企业应用程序当中, 在海量的组合方案中, 快速灵活地为用户选择出满足用户QoS需求的服务组合方案, 为决策提供必要的商务智能信息服务, 辅助达到更高层次的决策支持。

摘要:本文介绍了Web服务组合的技术基础语义Web服务的主要描述方法, 讨论了Web服务组合的关键问题, 并分析了当前主要Web服务组合方法的特点, 指出为保证服务组合的性能和质量, 必须基于服务质量描述Web服务。

关键词:Web Services,服务组合,QOS

参考文献

[1]IBM Corporation.Web Services:Web Services architect, Part I:An Introduction to Dynamic E-business, 2001, http://www.106.imb.com/developerworks/webservices/

[2]BEA, IBM, Microsoft (2003) , Business Process Execution Language for WebServices (BPEL4WS) .http://xml.coverpages.org/bpel4ws.html

[3]IBM.WS-Bpel.http://www-900.ibm.com/developerworks/cn/webservices/ws-bpel_spec/index_eng.shtml

混合Web服务组合 第2篇

Web服务组合是指当单个Web服务无法满足用户需求时, 将若干Web服务进行合成, 以形成大粒度的、具有内部流程逻辑的组合服务, 并通过执行组合服务达到业务目标的过程[1,2]。

目前Web服务组合的研究方法众多[3,4,5,6], 其中, 基于即时任务求解的Web服务组合方法被广为论述[7,8]。其目标是根据用户提交的任务需要, 即时从服务库中自动选取若干服务进行组合的过程。基于即时任务求解的Web服务组合主要包括两类方法:基于AI (Artificial Intelligence) 理论的Web服务组合方法和基于图搜索的Web服务组合方法。在基于图搜索的服务组合方法中, 服务和服务之间的关系被表示为关系图, 服务组合的过程也被转化为在关系图中进行遍历以寻找从输入到输出或从输出到输入的可达路径这一过程[9,10]。在相关工作中, 文献[11]提出的基于图的Web服务组合方法在服务发现过程中对Web服务进行约束, 以组合产生具有较好服务质量的服务, 然而该方法仅考虑了从单个输入到单个输出的情况。文献[12]提出一种基于图搜索算法实现的Web服务组合方法, 但该方法仅给出一种满足用户需求的服务组合方案, 而非最优方案, 且算法复杂度较高。文献[13]提出的基于与/或图的Web服务自动组合方法针对服务请求的输出对象实时构造与/或图, 再通过规约算法获取合成路径, 然而算法未考虑到数据对象的属性量词问题, 一定程度上影响了服务关系图的构建。

针对上述问题, 本文根据基于图搜索的服务组合方法理论, 提出一种基于服务关系图的Web服务组合算法, 它将Web服务组合过程形式化为对与/或图反复应用搜索算法, 直至查找到满足用户需求的最小成本组合服务模板的过程。

1 服务关系图

1.1 服务关系图概念

在WSDL (Web Services Description Language) 描述中, 每个服务操作o可表示为一对输入及输出 (In, Out) 。其中, In表示服务操作o的输入数据对象的属性集{di}, 如式 (1) 所示。Out表示服务操作o的输出数据对象的属性集{dj}, 如式 (2) 所示。

服务间的依赖关系则建立在上述服务操作描述的基础上。例如, 图1所示为某旅行中介服务, 服务接收用户请求信息, 并根据用户需求提供航班预订及旅馆预订服务。图中矩形表示服务操作, 圆形表示服务操作的输入、输出数据对象, 其中空白圆形表示数据对象的简单属性, 填充圆形表示复合属性。图中描述了航班预订与旅馆预订两个服务操作及它们之间的数据输入、输出关系。如图1所示, 两个服务操作可通过数据节点“到达时间”, 由边进行连接, 此处的数据“到达时间”既作为航班预订服务的输出数据, 同时也是旅馆预订服务的输入数据。由此, 称具备这种输入/输出数据关系的两个服务之间存在服务依赖关系。在此基础上可给出服务关系图的定义。

服务关系图包括了给定服务库中的所有Web服务信息, 它是一个表示不同Web服务操作间所有可能存在的输入/输出数据关系的有向图。服务关系图中包含节点集合和边的集合, 其中节点集表示服务操作及服务输入/输出数据, 边集合则表示存在于服务操作及数据间的依赖关系。

1.2 节点类型及属性量词

在服务关系图中可定义两种类型的节点, 分别为服务操作节点no和输入/输出数据节点nd。其中数据节点用于表示数据对象的简单属性或复合属性。若d∈Ino, 则服务关系图中将存在一条边由nd指向no, 此时称o为d的消费操作。若d∈Outo, 则边将由no指向nd, 称o为d的生产操作。在关系图中, 某个服务操作可同时作为消费操作与生产操作。

在此基础上, 将对数据对象的属性进行量化, 以满足某些需求。例如, 存在如下两个服务操作, 其中一个操作提供旅馆查询服务, 其返回结果为一个旅馆对象列表;另一操作提供旅馆预订服务, 服务需要将某个旅馆对象作为输入。这种情况下, 必须存在一个操作, 将列表作为输入, 并返回列表中的某个旅馆对象作为输出, 否则上面提到的两个服务操作将无法进行组合, 尽管两者具备高度的相关性。

为解决上述问题, 定义如下的属性量词:

a) 1 (1且仅为1个)

b) + (1或多个)

c) * (0或多个)

d) ? (0或1个)

以上属性量词的定义与RELAX NG中的相同。根据此定义, 服务关系图中的每条边均将具备一个相关联的属性量词, 如图2所示。若图中未对属性量词进行描述, 则默认值为1。

综上, 可利用数据流在生产操作和与其相关的消费操作之间建立依赖关系, 组合服务的发现过程也转变为在服务关系图中应用搜索算法以得到解决方案图的过程。可由用户指定的输入得到其指定的相应输出, 且图中的服务操作顺序也应与用户需求一致。此解决方案图即为所需组合服务模板。

2 与/或图

2.1 与/或图概念

与/或图是一个由与节点及或节点组成的结构图, 是一种系统地将问题分解为相互独立的子问题并分而解决的方法[14]。

与/或图中的边将一组节点{ni (i=1, 2, …, m) }与单一节点n0相连。若节点{ni}间存在逻辑与关系, 则与其相连的边称为与连接符, 节点n0称为与节点。此时只有节点{ni}中的所有节点均得到解决, n0才可视为已解决。若节点{ni}间存在逻辑或关系, 则其连接符称为或连接符, 而节点n0称为或节点。此时只要节点{ni}中的任一节点得到解决, n0即可视为已解决。

通常, 单个节点可具备不止一个与连接符, 而这些与连接符之间呈逻辑或关系。这种情况下, 可通过添加虚拟节点对具备此类节点的与/或图进行转换, 使图中包含的节点仅具备单个连接符。

2.2 与/或图形式化

为便于应用Web服务组合搜索算法, 本节将服务关系图形式化为与/或图。

经过形式化后, 服务关系图中的所有操作节点在与/或图中均为与节点, 原因在于:只有与操作节点相连的所有输入数据均为可用, 服务操作才能正常运行。同理, 服务关系图中的数据节点在与/或图中均形式化为或节点。

此外, 形式化后的与/或图具备以下特征:1) 同一数据节点可与同一操作节点进行双向连接。2) 两个数据节点可直接相连。3) 两个操作节点不能直接相连。

通常, 用户在发出服务请求时会提供一些已知的数据属性或服务操作信息, 同时也会对服务运行后的输出结果提出要求。下面将在与/或图G中添加虚拟节点并建立节点间的约束关系。

1) 首先在G中添加一个虚拟节点, 通过与连接符将其与用户服务请求中描述的所有数据节点和操作节点相连。此虚拟节点称为初始节点s, 为与节点, 代表待解决问题。

2) 再添加另一虚拟节点, 并将其与所有用户已知的输入数据节点相连。此虚拟节点称为终止节点t。

3) 若用户的服务请求中描述了某数据节点与另一数据节点间的约束关系, 则需在与/或图中添加一个由前者指向后者的边, 以表示这种约束关系。

经过上述三个步骤后得到的与/或图由G1 (N, E) 表示, 此处N代表节点集, E代表边的集合。

3 与/或图搜索算法

3.1 成本计算

本文的与/或图搜索算法始于表示已知信息的终止节点, 并逐步搜索直至到达表示待解决问题的初始节点。由于搜索算法可能得到多个满足用户需求而成本各不相同的解决方案图, 为确定其中最小成本的解决方案图, 将对其进行成本分析。

根据与/或图的特点, 满足用户需求的解决方案图包含的与/或节点数量越小则成本越低。同时, 由于与节点的成本远大于或节点, 因此成本计算应对两类不同节点分别计算。另外, 终止节点、用户需求中描述的所有输入/输出数据节点以及操作节点, 其成本值均可设为0。由此可计算G中节点n的解决方案图成本, 由p (G, n) 表示。

在算法搜索过程中, 当n为与节点时, p (G, n) 的计算如式 (3) 所示。

式中D (n) 为节点n的成本, ri为与节点n直接相连的父节点, p (G, ri) 为节点ri的解决方案图成本。且n为终止节点时, p (G, n) 的初始值为0。

当n为或节点时, p (G, n) 的计算如式 (4) 所示。

3.2 搜索算法流程

根据前文数据对象的属性量词的概念, 在算法搜索过程中, 需将前一生产操作节点输出的数据属性量词与下一消费操作节点所需输入的数据属性量词进行比较, 并根据给定规则判断算法能否在当前路径下继续进行搜索。此处由布尔函数M (qout, qin) 定义规则, 如式 (5) 所示。若函数返回值为true, 则认为输出数据与输入数据相匹配, 搜索算法可在当前路径下继续进行, 否则算法将选择其他路径进行搜索。

搜索规则确定后, 下面介绍与/或图搜索算法流程, 通过搜索算法将获得最小成本解决方案图, 即用户所需组合服务模板。首先定义算法中使用的符号及术语:

1) G:表示服务关系图形式化后的与/或图;

2) G1:添加了终止节点、初始节点及用户描述的约束关系的与/或图;

3) G2:由搜索算法得到的G1的子图;

4) SG (n) :G2中关于n的解决方案图, 其包含的均为已解决节点。且SG (n) 具备以下特征:a) SG (n) 中只包含节点n及n的所有父节点;b) SG (n) 中的每条路径均始于终止节点, 终于节点n;c) 若节点a属于SG (n) 且a为或节点, 则a至少有一个父节点属于SG (n) ;d) 若节点a属于SG (n) 且a为与节点, 则a的所有父节点均属于SG (n) ;

5) p (G2·SG (n) , n) :G2中n的解决方案图SG (n) 的成本;

6) L:待搜索的节点列表;

7) s:初始节点;

8) t:终止节点;

9) 已优化节点:已得到其节点的最小成本解决方案图且此节点已从搜索列表L中移除。

基于服务关系图的Web服务搜索算法

算法运行结束后, 若存在返回结果, 则算法将验证返回的解决方案图中的服务操作顺序与用户请求的是否一致。若一致, 则将其返回至用户处供评估, 否则将放弃结果并继续对L中的其他节点进行搜索。此外, 若返回的解决方案图被用户否定, 算法将重新运行以搜索替代方案供再次评估。若再次搜索后得到的所有结果均被用户否定, 或在初始节点s被添加至L之前, L已为空集, 则系统将向用户返回搜索失败结果, 用户可根据个人需求修改服务请求, 以启动下一轮搜索过程。

4 仿真实验与结果分析

4.1 仿真实验准备

由于算法建立在与/或图的基础上, 应首先构造与/或图。但由于当前缺乏公共的标准服务库及标准测试平台, 因此将通过模拟程序, 采用随机方式构造与/或图并应用于实验。由服务关系图形式化得到的与/或图, 其复杂度由图中包含的与/或节点数量及节点间的互连关系决定。在与/或图中, 或节点数量显然远远多于与节点数量, 且每个与节点对应的输入/输出或节点数量也各不相同。因此需构建满足上述特征的与/或图, 具体生成算法如下:

对于给定数量的与节点NA及或节点NO, 令X0=[NO/2NA], X0为每个与节点对应的输入或节点平均数。首先生成一定数量的或节点, 由NO0表示。NO0为随机数且NO0∈[X0-t0, X0+t0], 其中t0为一较小整数。接着构造第一个与节点, 并将NO0作为其输入数据。同理, 为此与节点构造其输出或节点集NO1, 则第一个与节点构造完成。令NA减1, NO则减去已生成的输入及输出或节点数量。此时根据余下的NA与NO值, 计算接下来需构造的每个与节点所对应的或节点平均数Xi, 如式 (6) 所示:

如上述方法, 将根据Xi值为第i个与节点构造其输入或节点集, 同时随机选出部分前面已生成的输出或节点作为此处输入或节点集的一部分。采用同样方法构造第i个与节点的输出或节点集。重复上述过程NA次, 则相应的与/或图构造完成。

服务请求的复杂度首先由服务请求中包含的操作数量决定。另外, 服务请求中描述的两个服务操作很可能无法直接相连, 此时算法需搜索能够使其相连的其他操作节点及相应数据节点。因此将引入另一参数, 即服务请求长度, 以表征服务请求的复杂度。将服务请求长度定义为:服务请求中描述的任意一对操作间最长的一段连接长度。假设一个组合服务链中, 由操作o1到o2需经过3个其他操作, 这些操作或包括在用户描述中、或由算法搜索得到。若o1与o2间的这段长度大于其他任意一对操作间的长度, 则此服务请求长度为4。显然, 此数值越大则服务请求的复杂度越高。

4.2 实验结果分析

实验将在与/或图及服务请求复杂度变化的情况下分别测试搜索算法性能。算法性能由在与/或图中查找到首个满足用户需求的最小成本解决方案图所需时间来衡量。

首先构造出包含250个操作节点及2500个数据节点的服务关系图。同时, 服务请求包含的操作数由简单到复杂分别为包含2~6个操作, 且将服务请求长度数值设为1~3。由此, 根据关于服务操作的上述数据的组合情况, 可得到15种不同类型的服务请求。

通过随机生成的包含250个操作节点及2500个数据节点的服务关系图, 对15种不同类型的服务请求进行处理, 结果如图3所示。图中横坐标表示服务请求中包含的操作数量, 纵坐标表示算法搜索时间。图中的三条线D1-D3分别对应服务请求长度为1~3的情况。

由图3, 在服务请求长度一定的情况下, 算法搜索时间随服务请求中包含的操作数量增加而增长。原因在于:随着操作数量增加, 搜索得到的组合服务中将包含更多的操作节点, 因此需要更长的搜索时间。同时, 当服务请求中包含的操作数一定时, 算法搜索时间随服务请求长度的增加而增长, 这是由于算法需要搜索额外的节点以构成组合服务。

图4及图5分别表示通过随机生成的包含100个操作节点及1 000个数据节点的服务关系图, 以及包含300个操作节点及3 000个数据节点的服务关系图, 对15种不同类型的服务请求进行处理后得到的算法搜索时间。由图中可看出, 搜索时间的增长趋势与图3中的结果十分类似。此外, 通过对图3-图5的对比不难看出, 随着服务关系图中包含的操作节点及数据节点数量增加, 在服务请求操作数量及请求长度一定的情况下, 算法搜索时间也有所增加。原因在于算法将要对更多的操作节点及数据节点进行搜索。

5 结语

本文提出了一种基于服务关系图的Web服务组合算法, 通过服务关系图获取服务操作间的输入/输出关系并形式化为与/或图, 接着对与/或图应用搜索算法, 最终得到满足用户需求的组合服务模板。在此基础上, 通过仿真实验对算法有效性进行了评估。与文献中同类算法相比, 本文的服务组合算法充分考虑了服务关系图中数据对象的属性量词问题, 此外, 算法结果在满足用户需求的前提下, 可保证组合服务的成本实现最低值。然而实验中基于的数据能否准确代表实际应用环境中的服务关系及用户请求的复杂度情况尚未得到有效证实。此外算法中对于Web服务尚缺乏语义描述, 将在一定程度上影响服务组合的成功率。今后将针对此问题进行进一步的研究工作。

摘要:在Web服务组合过程中, 保证服务质量的组合服务建模成为关键问题, 为此, 提出一种基于服务关系图的Web服务组合算法。首先根据Web服务的接口描述, 将服务集构造成为服务关系图, 从而获取Web服务间的输入/输出依赖关系。同时在用户需求基础上, 将服务关系图中的服务操作节点与数据节点分别形式化为与节点及或节点, 从而将服务关系图形式化为与/或图。最后, 对与/或图反复应用搜索算法, 直至查找到满足用户需求的最小成本组合服务模板。通过仿真实验评估了服务关系图与用户请求两者在复杂度变化的情况下搜索算法的性能, 并验证了算法有效性。

基于动作时序逻辑的Web服务组合 第3篇

Web服务是一种自包含、自描述、模块化的程序,具有高度的互操作性、跨平台性和松耦合的优点。单个Web服务在很多情况下不能满足实际应用的需要,因此只有对已有的完成不同功能的服务进行组合从而产生新的增值服务,以满足用户的请求,Web服务的潜力才能真正发挥出来,这就是Web服务组合。近年来,国内外学术界和工业界围绕着服务组合开展了大量的研究,并发布了一些描述Web服务组合的语言,主要有微软提出的XLANG,IBM提出的WSFL,BEA公司的WSCI,IBM、微软和BEA公司联合提出的BPEL4WS[1]。

动作时序逻辑TLA 由Lamport提出,它将时序逻辑与传统逻辑有机的结合起来,能够很好地描述并发和实时系统的行为[2]。将TLA应用到Web服务组合中去可以实现动态服务选择并实时监测服务状态以提高服务组合系统的健壮性和灵活性。TLA的模型检测器TLC采用多线程并发检测机制,加速了检测的速度并且缓解了状态爆炸的现象。能够检测组合逻辑的正确性以及是否存在死锁。因此将TLA应用的Web服务组合方面能起到很好的效果。TLA的建模是将系统的动作(行为)分解为有序的状态集合,再将状态的变化描述为相应的逻辑公式。关于Web服务基本的TLA描述已经在文献[3,4]中给出,本文在此基础上首先对Web服务之间的基本组合模式采用TLA进行建模,然后利用图的宽度优先遍历将服务组合为一个完整的服务,并采用TLA的模型检验器对组合结果进行验证。最后给出了现有的Web服务组合平台BPEL4WS向TLA转化的方法。

1服务之间基本关系的TLA表示

使用TLA描述一个并发系统时,需要将系统抽象为有序状态集合,用动作Next来描述状态之间的变化。标准的TLA描述形式为InitW[Next]vLiveness,其中Init表示初始状态,Next动作表达式表示下一个状态,规定了系统所有可能的动作,用在Web服务描述中,来描述服务之间的交互。Liveness则是一个时序公式,通过合取各动作的公平性条件来规定系统的活性。

忽略Web服务的内部执行细节,将服务视为一个最小粒度的操作,对应于TLA中的一个基本状态,服务之间的交互通过动作来描述。Web服务组合问题同工作流系统有着许多共同的特征,借助工作流的基本控制模式来描述Web服务之间的关系,基本控制模式包括Sequence结构和WfMC 定义的And-Join、And-Split、Xor-Join、Xor-Split等[5]。分析每一种控制模式的服务之间的关系,并用TLA表达式来描述服务之间的关系。

1.1Sequence结构

服务SiSj,如图1所示,当SiSj具有严格的顺序关系时,即Sjpos(Si) pre(Sj)=Si时,SiSj视为顺序执行的服务。后继服务的初态连接了其前驱服务的终态,因此后继服务的初态用由前驱服务到后继服务的变迁Stepinit来表示,如果服务没有后继服务,则终态用Stepfinal表示。Loop表示服务到达终态后回到初态,顺序组合服务TLA描述的Next表达式为:Νext(Si|j)=ΔΝext(Si)Stepinit(Si)Νext(Sj)

StepfinalLoop (1)

1.2And-Join结构

两个服务SiSj,如图2所示,当它们均执行完成后,服务B才能执行。SiSjB视为And-Join结构的服务。其中SiSj视为并发执行的服务,首先对并发执行的服务syn(Si,j)进行TLA动作描述:

Νext(syn(Si,j))=Δ(Νext(Si)Stepinit(Si))(Νext(Sj)Stepinit(Sj))(Νext(Si)Stepinit(Si))(y=y)(Νext(Sj)Stepinit(Sj))(x=x)(2)

具有And-Join结构服务的TLA描述的Next表达式为:

Νext(Si,jandB)=ΔΝext(syn(Si,j))(Νext(B)

Stepinit(B)) (3)

1.3And-Split结构

服务B的后继服务SiSj,当B执行完之后,SiSj同步执行,它为And-Split结构。具有And-Split结构服务的TLA描述的Next表达式为:

Νext(SBandi,j)=Δ(Νext(B)Stepinit(B))

(Next(syn(Si,j))) (4)

1.4Xor-Split结构

服务B的后继服务SiSj,当B执行完之后,SiSj其中之一开始执行,它为Xor-Split结构。具有Xor-Split结构服务的TLA描述的Next表达式为:

Νext(SBxori,j)=Δ(Νext(B)Stepinit(B))(Νext(Si)Stepinit(Si))(Νext(B)Stepinit(B))(Νext(Sj)Stepinit(Sj))(5)

1.5Xor-Join结构

如图5所示,两个服务SiSj,当其中之一执行完毕后,后继服务B即可执行,SiSj视为Xor-Join结构的服务。具有Xor-Join结构服务的TLA描述的Next表达式为:

Νext(Si,jxorB)=Δ(Νext(Si)Stepinit(Si))(Νext(B)Stepinit(B))(Νext(Sj)Stepinit(Sj))(Νext(B)Stepinit(B))(6)

对于具有复杂控制模式的Web服务,可以分解为基本的模式,然后依据上述基本模式进行组合,直至构成一个复合服务。

2基于BFS的服务组合算法

一个Web服务合成方案是一个DAG 图,为了更加清楚地描述服务之间的关系,对图中的节点进行细化,将节点分为服务节点和结构节点两种。服务节点存储服务的详细信息,结构节点用来描述服务之间的控制关系。依据有向图的拓扑结构,采用图的广度优先遍历思想来实现Web服务的组合。在遍历过程中依据结构节点的不同采用相应的控制模式组合,直至组合为一个完整的复合服务为止。组合算法如下:

算法1 服务组合算法。

依据BFS组合算法,对图6复合服务进行组合,算法的执行时间复杂度为:O(d),其中d为有向图的深度,空间复杂度为:O(n),其中n为服务的个数。并且算法的执行时间复杂度与空间复杂度与复合服务的拓扑结构的复杂程度有密切关系。组合后的Web服务系统CS的TLA表达式为:

其中i=0,1,,7

将上述组合后的TLA表达式以ASCII形式输入到TLC模型检验器进行验证,验证结果如图7所示。

通过验证可得,系统不存在死锁现象,TLA的描述文档生成了36个状态,20个确切状态,并且状态树的深度为13。

3BPEL4WS向TLA的转化

BPEL4WS作为Web服务业务流程执行语言,是专为组合Web服务而制定的一项规范标准[6]。主要负责将一组现有的单个Web服务整合起来,从而定义一个新的组合服务。BPEL4WS作为一种描述和执行Web服务组合工作流的语言,包含了简单的顺序流程控制结构:即顺序、分支、选择、并行、循环,已经成为事实上的标准[7]。现有的服务组合平台一般是基于BPEL4WS标准,因此需要将BPEL4WS转化为TLA。首先对BPEL4WS进行扩展,加入基本动作模块<action>。<action>中的<from=” ” to=” ”>模块描述了从一个服务到另一个服务之间的转变过程,<type>表示服务之间的基本流程模式。

接下来将扩展的BPEL4WS转化为TLA表达式。

(1) 首先查找入度为零的点。即没有<to>属性的节点,将所有的入度为零的节点的初始状态进行合取,构造Init表达式。

(2) 依据<assign>中<type>的值,将不同的控制模式转化为相应的TLA动作表达式。

(3) 将步骤2中所有的TLA动作表达式析取,得到总的Next表达式。

(4) 因此整个复合服务的TLA表达式为:InitW[Next]v

4结束语

本文给出了Web服务基本控制结构的TLA组合方法,并对组合后的Web服务逻辑正确性进行了验证。另一方面,TLA作为一种强大的并发系统的描述工具,可以从不同角度、不同层次对并发系统进行描述和验证。因此只要Web服务能写成TLA公式的形式都可以用TLA的模型检验器TLC进行验证。

在进行服务组合时没有考虑组合过程的优化,因此接下来的工作将着重根据整体服务的质量来考虑,以及如何优化服务组合的路径。另外,本文没有考虑Web服务的选择,既然Web服务可由TLA进行描述,下一步的工作将考虑直接从TLA公式入手,依据用户的可满足性以及服务的肺功能属性来进行Web服务选择。

参考文献

[1]Aitor Urbieta,Guillermo Barrutieta.A survey of dynamic service com-position approaches for ambient systems[C]//Proceedings of the2008Ambi-Sys workshop,2008,2.

[2]Lamport L.Specifying Systems:The TLA+Language and Tools for Hard-ware and Software Engineers[C]//Boston:Addision-Wesley,July2002.

[3] Hongbing Wang,Hui Liu,Chen Wang.A New Approach to Describe Web Services[J].International Conference on Web Intelligence,2007,70(3):568-571.

[4] Ning Zhou,Hongbing Wang.Using TLA for Modeling and Analysis of Web services Composition[C]//First IEEE International Conference on Ubi-Media Computing,Lanzhou,2008:126-131.

[5]Workflow Management Coalition.Workflow Handbook[M].Future Strate-gies Inc,2001,1.

[6]Andrews T,Curbera F,Dholakia H,et al.Business Process Execution Language for Web Services(Version1.1).IBM Document.2003.ht-tp://www.ibm.com/developerworks/library/ws-bpel/.

混合Web服务组合 第4篇

Web服务是面向服务的体系结构的一种实现技术,随着大数据、云计算以及软件即服务等的流行,互联网上的Web服务数量不断增加。Web服务在电子商务、教育、企业应用集成等领域发挥的作用越来越重要。作为一种新型的分布式计算模式,具有的跨平台、跨标准、跨语言特点使其受到工业界和学术界的广泛关注,同时互联网上的Web服务质量各异,单个服务功能有限,不能够最大限度地满足用户的多样化需求。在实际应用中,为了提供更合理的Web服务资源,需要基于特定的业务流程将多个Web服务组合成更大粒度的服务。因此,如何有效组合Web服务,从符合各结点功能的Web服务中选择出具体的Web服务,满足用户对服务质量多维度及不同偏好的需求,成为当前Web服务领域研究的关键问题。

1 相关工作

Web服务组合是Web服务应用的关键环节,服务质量Qo S参数是服务优劣的重要指标,当前基于服务质量的Web服务组合中主要采用Qo S局部优化方法和全局优化方法。局部优化方法针对组合流程的单一结点选择服务,全局优化方法针对整个组合流程选择不同的服务协同工作。文献[1-3]对一组相同功能的服务,通过每个服务Qo S的参数信息进行加权和排序,并将以此为选择依据分别为组合流程的每个节点逐一选择加权和最大的服务来构建目标组合服务。这种方法中各个结点选择服务是相互独立的,不能从全局角度上选择服务。文献[4,5]把组合服务的各个Qo S约束参数线性加权为单目标函数并通过线性规划方法解决服务。文献[6]提出了支持Qo S的服务组合计算模型,模型中考虑了权重的风险级别。文献[7]把寻求满足多Qo S属性的组合问题转化成为有向图搜索最优多约束问题。文献[8]将服务的动态选择过程看作Markov决策过程,以寻求使服务质量最优的方案。文献[9]提出了支持Qo S感知的组合算法,具有支持单个Web服务和组合Web服务Qo S计算的功能。

当前主要针对基于局部服务质量的Web服务组合,但基于局部服务质量的Web服务组合中各个单一服务的性能达到最优并不能保证整个服务组合的性能最优,需要整个考虑Web服务的质量。基于全局的Web服务质量的Web服务组合还不成熟,主要存在以下不足:

(1)Qo S属性的赋权灵活性不够,主要采用固定权重,赋权不具有伸缩性和模糊性,当存在某服务的单一Qo S属性值特别高使Web质量提升,这样的服务有可能其他Qo S属性特别低不满足用户的需求,不能有效描述Web服务的质量。

(2)其产生的解为单解,并且目标函数和约束是线性的,用户没有选择的空间。在很多情况下用户选择Web服务组合时不一定需要最优的,而是需要最符合自己要求的,从而限制了算法的应用范围。

(3)当服务数量增多时,计算量迅速增加,使组合时间会增加,交易成功率也会下降,服务组合的性能受到一定影响。

本文针对以上问题,通过改进遗传算法提出了变权Qo S全局动态Web服务组合方法(在DWSC-GA),方法中引入罚函数,利用迭代次数、动态交叉动态和变异因子等策略,实现了在较短时间内找到符合用户需求的Web服务组合方案。

2 QOS属性及四种组合结构描述

(1)原子服务Qo S描述

原子服务质量描述是多维的,本文定义q(s)={q1(s),q2(s),…,qn(s)}表示服务s的n维质量属性值,其中qk(s)表示服务s的第k个属性值,服务质量属性值可以从服务提供者、历史交易情况或用户等多方面获取。本文选择响应时间、成本、可靠性、信誉度作为原子服务Qo S属性。

(2)服务组合描述

服务组合是将较小的细粒度服务组合成粗粒度服务,其可以包括原子服务也可以嵌套包括其他组合服务。组合服务的服务质量属性通过原子服务的服务质量聚合形成,本文定义q(cs)={q1(cs),q2(cs),…,qn(cs)}表示组合服务n维质量属性值,其中qk(cs)表示组合服务s的第k个属性值。组合服务流程是一个基于Web服力的的工作流,大部分组合流程可以由串联模型、并列模型、选择模型和循环模型组合而成[10,11,12]。表1给出了四种组合模型结构相应用QOS模型计算表达式。

3 服务预处理

3.1 服务属性的归一化处理

Web服务的Qo S属性的计量单位和取值范围不具有可比性,有些属性取值越大,其性能就越低,属于负属性,例如响应时间;另外一些属性取值越大,表示其性能越高,例如可用性。并且其不同属性之间数值相差巨大。因此在考虑其不同的Qo S属性进行组合时应该对其服质进行归一化处理,将其转化成无量纲的值,将其范围都限定在[0-1]之间。为了使各种Qo S属性统一,本文采用式(1)和式(2)分别对增量型和减量型参数进行归一化[13,14]。

3.2 权重获取

如果用户能够明确指定Web服务权重,则直接获得权重,如果用户对权重用自然语言描述,可以参照表2的数据,通过对应关系将其转化为固定权值[15,16]。

对照表2,首先通过公式ωi=αi-βi×γi,其中γi表示Qo S描述的不确定度,根据用户描述的实际情况给出具体值,然后通过对权重进行归一化处理,计算出Qo S权重值。

3.3 变权处理

针对在服务选择过程中存在某单一属性值很高导致综合属性变高,却因为其他属性很低无法满足用户要求的问题,本文通过变权向量解决这一问题,基本思路是影响Qo S属性的权重根据其取值范围做一定的变化,以使每个属性更好体现在组合服务中的作用。

依据决策思维,各单因素属性值较大,将会使加权综合值变高,但各单因素比较接近的状态向量与单因素较大的状态向量值较接近时,具有更高的可信度。因此,当某单个Qo S属性过大时应该适当地对固定权重的向量可以进行变权处理,降低单个Qo S状态值相差较大的状态向量的综合值。本文构造这样一个变权向量:设综合值为,当某因素值qj比固定权重下的综合值q'相差一定值L时就使用变权公式,比综合值大就适当降低其权重,比其小时就适当增加其权重,同时要保持变权衡量各因素的相对重要性的能力,可以通过式(3)实现变权:

L的取值根据应用要求决定。通过式(3)变权向量进行加权综合计算Web服务质量时,可以有效降低因个别Qo S属性值相差较大的Web服务的质量值,从而更好地反映服务的质量属性。容易证明,变化后的权重向量仍然满足归一性。

4 基于服务质量的动态Web服务组合方法(VW-DWSC-Qo S)

该方法基于改进遗传算法实现,遗传算法GA(Genetic Algorithm)首先由Holland教授在上世纪七十年代提出[17],模拟自然界生物进化过程与机制求解极值问题的一类自组织、自适应搜索算法,具有较强的鲁棒性和通用优化能力,广泛地应用于求解复杂的非线性和多维空间寻优问题。

第一步染色体编码

本文采用关系矩阵方式对染色体编码,该方式能够很好地反映组合服务的相互关系。关系矩阵主对角线上的元素表示遗传算法染色体的基因位,与Web服务组合的工作任务相对应,非对角线元素表示组合服务任务之间的关系,染色体编码如图1所示。

染色体编码反映了组合Web服务中包括的任务及其关系,对角线元素Bii=1表示组合服务包含该任务,Bii=0表示组合服务没有包括该任务。非对角线元素BIJ为任务关系位,如果BIJ=1,表示在组合服务中任务i与任务j相邻,并位于其直接前方。染色体编码通过矩阵主对角线的元素排列实现,组合服务集合中选出部分编码用为遗传算法的初始群即为种群,各类遗传操作针对矩阵对角线的元素实现。

第二步初始化群体

根据Web服务所能完成的原子处理任务分类,产生初始Web服务群体p=(p1,p2,…,p3),pn为Web服务种群规模大小,根据经验或者是专家提供的建议得出,这里取pn=100。

第三步计算个体适应度

Web服务用户一般会对资源服务的选择提出响应时间、使用成本等方面的要求或限制。本文适应度函数通过罚函数法将限制条件与目标函数综合在一起实现,可以通过下式实现:

式(1)中的Rjmax表示第j个约束条件的最大值,Rj min表示第j个约束条件的最小值,n表示用户提出的约束条件的个数,λ是罚函数系数,属于经验值。Pj表示一个Qj或者多个Qj组合的运算值,ΔPi通过下式表示:

第四步选择

选择方法采用精英个体优选策略,根据适应度函数判断当前适应度最好的Web服务组合,将适应度最好的Web服务组合筛选出不进行遗传操作,而将该个体替换本代遗传操作后产生的适应度最低的Web服务组合,经过精英个体优选策略实现了父代中最优的Web服务组合遗传到下一代,而最劣的Web服务组合直接淘汰,有效地保证了遗传Web服务组合的质量。

第五步交叉和变异

根据其Web服务组合个体适应度数值选择合适的交叉概率和变异概率,在个体遗传过程中根据适应度数值大小的变化动态调节交叉概率和变异概率的数值,这样每个个体能够动态适应遗传环境。在染色体遗传过程中,设群体中具有较低适应度个体的交叉概率为Pc0,具有最高个体适应度个体的交叉概率为Pcl(其中Pcl<Pc0),具有较低适应度个体的变异概率为Pm0,具有最高个体适应度个体的变异概率为Pml,(其中Pml<Pm0),那么交叉概率和变异概率能够通过式(6)和式(7)动态调整,分别表示为:

式中:f表示两个参与交叉操作的个体中较小的适应度,fmax表示整个群体中最大的适应度,表示整个群体中所有个体的平均适应度,f'表示当前执行变异操作的个体适应度。以上方法中对适应度小的个体使用的交叉概率较大,而对适应度较大的个体使用的交叉概率较小,这样有利于优秀个体的遗传和质量较差个体的更新。当某一个群体个体的适应度与该群体的平均适应度比较相近的时候,群体具有较高的变异概率,能够很快地产生新的个体,使群体能够保持多样性,避免了群体的早熟。

第六步终止

本算法的结束条件根据最大迭代次数法则来决定,推荐Web服务组合个体适应度最大的解作为最终解。满足以下终止条件之一即可结束进化过程:(1)出现适应度为零的Web服务种群;(2)出现适应度值达到满足用户需求的个体;(3)群体中的最优个体已经没有明显的进化效果;(4)进化代数已经达到算法设定的代数。

5 DWSC-GA算法分析

本文提出的算法VW-DWSC-Qo S算法,对部分单Qo S属性值较高的Web服务对象,使用了Qo S变权处理,并在组合过程中引入罚函数策略,动态调整变权因子、交叉因子和变异因子,使其实现了在较短时间内找到符合用户需求的Web服务组合,理论分析,优点主要体现在以下方面:

(1)该模型中,首先将不同纲量的Qo S参数转化成[0 1]之间的参数,便于加权处理,并对单一Qo S属性作变权处理,其Qo S属性的权重根据其取值范围做一定的变化,使得每个属性更好地体现在组合服务中的作用。

(2)适应度函数通过罚函数法将限制条件与目标函数综合在一起实现,使个体适应度动态适应服务环境变化。

(3)在遗传过程中根据适应度的变化自动调节交叉概率和变异概率的数值,这样每个个体具有自适应环境的能力。

(4)关系矩阵方式对染色体编码,该方式既能反映服务的组合并系,还能体现任务路径信息的编码方式。

6 仿真实验

仿真实验的计算机配置是Pentium 3500 MH处理器,2 GB内存,操作系统为win7系统,Matlab8.1软件。由于当前没有成熟的Web服务合测试集,本实验指定服务模型,根据服务模型将目标任务分解为5个子任务,5个子任务所对应的候选服务范围为5到60,从每个子任务中选择一个候选服务进行组合,以完成用户目标任务。设每个候选服务的Qo S属性分别为响应时间(t),成本(c),可靠性(av),信誉度(rep),依3.2节权重获取方式,设其权重为(0.3,0.3,0.2,0.2),群体规模取50,最大迭代次数取150。分别设Pc0=0.68,Pcl=0.26,Pm0=0.42,Pml=0.19,经组合方法获取最优组合。将从以下两个方面进行性能比较:

1)整数规划算法和本文VW-DWSC-Qo S算法组合时间变化:

当每个任务的候选服务较少时,Integer Planning Algorithm比VW-DWSC-Qo S算法具有一定的优势,但随着候选服务的逐渐增加,Integer Planning Algorithm花费的时间增加较快,而本文提出的VW-DWSC-Qo S算法所需时间没有太明显的增加,表现出较为明显的优势。如图2所示。

2)本文VW-DWSC-Qo S算法与固定权重算法相比

实验中的流程结构采用顺序结构实现,当每个结点的候选服务数增加时,服务组合成功率具有下降的趋势,将VW-DWSC-Qo S算法与固定权重算法相比,VW-DWSC-Qo S算法组合成功率变化比较平缓,具有更高的组合成功率。如图3所示。

从以上两次实验对比中可以看出本文提出的VW-DWSC-Qo S算法使Web服务在组合时间和组合成功率上都有一定的进步,具有一定的实用价值。

7 结语

Web服务组合在面向服务体系结构软件中的重要问题,将现有的服务组合成功能更强大的服务,能够更好地增强Web服务价值。本文在相关研究的基础上,提出的Qo S感知的动态适应Web服务组合,考虑了服务的动态适应性,使其服务组合更能真实地反映Web服务的特点,提高了组合的质量和效率,更好地满足了用户对Web服务的需求。

摘要:针对Web服务组合中权重固定、选择不灵活、性能不佳等问题,通过改进遗传算法提出一种基于服务质量的变权动态Web服务组合方法(VW-DWSC-Qo S)。VW-DWSC-Qo S组合方法使用变权Qo S参数,引入罚函数策略,并动态调整变权因子、交叉因子和变异因子,使其实现了在较短时间内找到符合用户需求的Web服务组合。理论分析和仿真实验表明该组合方法的可行性和有效性,与传统的方法相比,其最优解具有更好的服务质量和适应度。

混合Web服务组合 第5篇

Web服务作为一种崭新的分布式计算模型已经在电子商务、企业应用集成等领域扮演着越来越重要的角色。如何有效地组合分布于Internet中的各类服务,实现服务之间的无缝集成,形成功能丰富的企业级服务流程以达到企业的商业目标,已经成为一个迫切需要解决的问题。用语义Web标记语言来描述服务的语义,使Web服务成为计算机可以理解的实体,以解决Web服务的自动组合问题已成为研究的一个热点。本文研究的是利用人工智能规划工具,描述语义Web服务的自动组合问题,目标是使软件agent能根据用户的需求自动地组合各种已有的Web服务、使服务协同工作完成用户的任务,灵活地满足用户的需求。

1 基本思想

Web服务自动组合的基本思想是利用人工智能的规划问题来进行Web服务的自动组合。人工智能的规划问题可表示为一个五元组[1],其中S是所有可能的状态集合,S0⊂S表示世界的初始状态,G⊂S表示规划系统希望实现的目标状态,A表示进行状态之间转换所需的动作集合,状态转移关系Γ⊆SAS定义了每个动作执行时的先决条件和效果。我们从服务的自动化组合出发,认为Web服务如何自动组合是一个AI规划问题的自动求解,即对于给定的初始状态和用户需求(即目标状态),可以在一个服务集合中寻求一个服务组合序列,该序列能够达到从初始状态到目标状态的演变。相应的,初始状态和目标状态分别与S0和G相对应,用于组合的可能的服务集合和A相对应,即Web服务和动作相对应,每个服务完成的功能与Γ相对应。

为了能够清楚地描述服务自动组合时计算机可理解的Web服务的功能属性,本文采用OWL-S[2]标识语言描述服务组合所需的语义信息。OWL-S从两个方面描述服务功能:一个是信息转换方面,主要是通过输入、输出来表示;另一个是服务执行所产生的状态改变方面,主要是通过前提条件和结果来表示。OWL-S的设计者们从AI的角度,尤其是面向agent的软件工程的角度出发对Web服务建模,这使得agent可以从Web服务以及用户需求的描述中获取知识,并利用AI技术进行推理和规划,从而为Web服务自动组合奠定了基础。由于OWL-S中的服务可以看成是AI中的动作(action),因此在自动服务组合时,只要将服务的这些输入输出参数、前提条件和结果等标记映射为合适的动作形式化描述,便可以通过智能规划的推理来得出服务的组合序列,同时也能够保证规划结果的正确性和完整性。这里我们选择智能规划问题设计的标准语言PDDL对自动服务组合进行形式化描述,因为它能够用一种统一的语法表达各种不同类型的规划问题。首先,从OWL-S和具体应用问题中获得知识,并用PDDL来表示它们,然后将PDDL输入到适合解决该问题的规划系统中进行求解,最后获得能完成目标的服务组合序列(如图1所示)。

2 OWL-S与PDDL的对应关系

OWL-S按照ServiceProfile.ServiceModel,ServiceGrounding本体对Web服务的语义信息(包括属性、操作和参数等)进行了标记。这些标记可以作为agent的知识,以支持agent对服务进行自动组合。PDDL(Planning Domain Definition Language)[3]是表示规划问题的形式化语言,能够用一种统一的语法表达不同类型的规划问题。一个PDDL规划任务的描述由五部分组成:它们是对象、谓词、初始状态、目标描述和动作/操作,分别由两个文件表示,domain文件包含谓词和动作/操作的描述,problem文件包含对象、初始状态和目标的描述。目前,PDDL被广泛地认为是规划问题的标准输入描述语言,支持规划领域和规划器功能的统一描述。因此,为了实现服务的自动组合规划,我们将OWL-S描述的服务语义转换成PDDL的对象、谓词和动作,将用户的需求描述转换为目标和初始状态。这样,服务自动组合的过程即可转换为智能规划的求解过程。OWL-S中Web服务与PDDL元素对应关系如表1所示,其中,由于输出的值一般不限于真假值,因此在表示上要将输出的表示转化成谓词的形式,在语义上将原子过程的输出看成是产生知识的结果,即输出是服务执行后已知的信息。与输出类似,输入在语义上可以看作知识的前提条件,即在执行活动前,必须知道输入参数的值。

DAML-S网站[4]的售书实例Congo,包括了服务的描述和相关的领域本体知识,因为篇幅的原因,我们以简化后的OWL-S服务描述为例说明如何用PDDL表示Web服务及其服务组合。

第一个服务是原子过程ExpressCongoBuy,它的功能是根据用户提供的用户签名信息和图书ISBN信息,以确定本服务是否能够执行客户的请求,如果可以执行并且库存中有给定的图书,则可以下发定单。OWL-S描述的Web服务如下:

第二个服务是原子过程LocateBook,它的功能是完成图书目录查找,如果目录中存在给定的书名,就输出该书名对应的ISBN。

owl-s/1.1/ProfileHierarchy.owl#ISBN″/>

和上述两个服务对应的PDDL的Domain表示如下:

(define (domain buybook-world)

(:requirements :strips :equality :typing :conditional-effects)

(:types ISBN SignInData decimal Book BookOutput,String)

(:predicates (know x)

(hasAcctID?SignInInfo, AcctID)

(validity?CreditCard, Valid)

(hasISBN?Book, ISBN)

(InStockBook Book)

(shippedTo AcctID)

(shippedBook Book))

(:action ExpressBuy

:parameters( BookISBN?SignInInfo CreditCardNumber)

:precondition

and((know BookISBN)(know SignInInfo)(know CreditCardNumber)

(hasAcctID SignInInfo, AcctID) (Validity CreditCardNumber, Valid))

:effect

when(and(hasISBN Book, ISBN)(InStockBook Book))

and((shippedBook Book)(shippedTo AcctID)))

(:action LocateBook

:parameters( BookName BookOutput)

:precondition(know BookName)

:effect when(InStockBook BookName)

(know ISBN))

需要进行上述两个服务组合的用户需求目标的实例是购买某个给定的图书。它们可用如下PDDL的Problem描述表示:

(define(problem buybook)

(:domain buybook-world)

(:objects

BookName SignInInfo CreditCardNumber)

(:init

(know BookName)(know SignInInfo)(know CreditCardNumber))

(:goal

(and((shippedBook Book)(shippedTo AcctID)))))

3 结束语

人工智能规划是实现Web服务自动组合的一个重要的手段。本文从Web服务组合和智能规划的关系入手,讨论了在语义Web服务自动组合中,用PDDL描述Web服务及服务组合,利用智能规划系统求解服务组合的方法,并通过实例给予说明。

参考文献

[1]Jinghai R,Xiaomeng S.A Survey of Automated Web Service Composi-tion Methods.The First International Workshop on Semantic Web Serv-ices and Web Process Composition,2004.

[2]David Martin,et al.OWL-S:Semantic Markup for Web Services ht-tp://www.daml.org/services/owl-s/1.1/overview/.

[3]Ghallab M,Howe A,Knoblock C,et al.PDDL-the planning domain def-inition language.In AIPS-98 Planning Committee,1998.

混合Web服务组合 第6篇

Web服务组合是将若干服务按照一定的业务逻辑进行组装形成组合服务, 并通过执行该组合服务而达到业务目标的过程。提出了一种利用Petri网对Web服务组合过程进行建模的方法。Petri网是一个模型描述工具, 它通过图形化进行建模, 不仅具有直观的图形化表示, 而且更加容易处理语义Web服务组合中的并发系统过程。它还具有丰富元素可以用来描述服务组合的信息, 进而实现对过程的形式化分析和验证, 从而避免出现不可达性、死锁等问题。此外, Petri网方法相对情景演算等方法来说, 用户比较容易理解。目前已有很多工作将Petri网的理论和方法应用于Web服务的建模、Web服务组合策略、Web服务组合性质分析、Web服务组合质量的评价等问题的求解。

1 基于Petri网的Web服务组合模型

Petri网 (Petri Net) 是一种利用网状图形表示系统模型的方法, 它以描述系统中各元件之间的关系为基础, 以图形化的方式来表示Web服务组合过程中的同步、并发或顺序等各种活动。Petri网的结构包括以下元素:

位置:描述该系统可能的状态或状况, 如队列、缓冲、资源等。

变迁:描述系统状态的事件、动作。

弧:表示局部状态和事件之间的关系, 即局部状态之间的转换。

定义1:Petri网可以定义为一个五元组元组PN= (P, T, F, I, O) , P表示一个有限的位置集合, 即是各种操作的集合;T是一个有限的状态转移变迁, 它是一个动态的组合;F⊆ (ST) ∪ (TS) , 表示一个有向弧的集合;I表示输入库所:I={x∈ST | (X, I) ∈F}=∅;O表示输出库所, O={x∈ST| (O, X) ∈F}=∅。

定义2:Web服务组合可以定义为一个三元组SPN= (Sname, Stype, PN) , Sname表示该服务的名称, 即该服务的唯一标识符;Stype表示服务的类型, 如果集合的元素与Sname相同, 本身就是原子服务过程, 其他情况下是组合服务过程;PN与定义1的内容相同。

基于以上的定义, 可以建立语义Web服务组合过程和Petri网的对应关系, 从而实现从Web服务组合过程到Petri网的转换, 最终达到利用Petri网对Web服务动态组合过程建模的目的。

目前对语义Web服务领域的相关研究一般基于OWL-S。OWL-S是一种网络服务本体语言, 主要有以下三个描述Web服务的基本信息的顶层本体组成:

ServiceProfile描述服务做什么, 服务搜寻代理通过ServiceProfile实现服务匹配, 寻找满足服务的请求者需要的各种服务;ServiceModel 描述服务怎么做, 通过使用流程组合来刻画服务本身行为描述服务如何工作的;ServiceGrounding描述服务使用者如何调用该服务, 指定了通信的协议、消息格式和一些服务的其他细节以及描述访问服务的端口号的格式等信息。

利用Petri网对OWL-S的如下8种结构:Sequence, If-then-Else, Choice, Split, Split-join, Any-Order, Iterator, Repeat-Until进行描述, 如图1所示。

2 实例验证

以一个简化的网上购书Web服务组合过程为例来说明如何利用Petri网对Web服务组合进行建模。

该过程主要有三个服务组成:客户下订单服务, 银行支付款项服务, 查询库存数据服务。订单服务首先根据接受客户的请求, 并根据相应的请求信息启动查询库存数据库服务以获取是否有客户订单需求的货物, 若存在, 则向购买者发送确认信息, 然后启动银行支付服务, 在通过银行支付服务实现支付操作, 订单服务确认客户银行支付成功后, 执行向客户发送订单服务完成的操作, 然后退出该组合过程;若所查询货物不存在或不符合客户的要求, 则退出该组合过程。这个购书服务过程包括顺序结构、选择结构、循环结构等组合结构。利用Petri网描述其服务组合过程如图2所示。

Petri网的库所和变迁含义如下所示:

Start:用户开始状态;p1:成功执行状态;p2:支付成功状态 p3:订单服务执行成功;p4:订单服务正在执行状态;p5:查询库存数据成功状态; End:服务结束状态。

t1:开始执行;t2:订单执行;t3:订单执行成功;t4:查询操作;t5:查询结果满足订单要求;t6:查询结果不满足订单要求;t7:银行支付执行;t8:执行确认。

3 结束语

提出了一种利用Petri网对Web服务组合过程进行建模的方法, 并通过实例分析验证该方法的可行性和有效性, 为Web服务组合过程的可达性, 正确性分析和验证奠定了基础。但是该方法也同时存在一定的问题, 随着Web服务数量不断的增多, 可能会出现系统规模的爆炸性增长问题, 因此Petri网复杂性问题仍待进一步研究。

摘要:针对现有的语义Web服务组合的描述语言本身缺乏明确的操作语义, 无法准确的描述其组合流程的问题, 就此提出了一种基于Petri网的语义对Web服务组合流程进行形式化建模的方法, 并通过实例验证了该方法的有效性和可行性。

关键词:语义Web,Web服务组合,Petri网

参考文献

[1]Ardagna D, Pernici B.Adaptive service composition inflexible processes[J].IEEE Transactions on SoftwareEngineering, 2007, 33 (6) .

[2]邓水光, 黄海涛, 李莹, 等.Web服务组合技术框架及其研究进展[J].计算机集成制造系统, 2011, 17 (2) :404-412.

[3]袁崇义.Pertri网原理与应用[M].北京:电子工业出版社, 2005.

[4]张正明, 马炳先, 相东明.基于Petri网的web服务的创建于描述[J].系统仿真学报, 2011, 23 (1) :19-25.

[5]MartinD, Burstein M, Hobbs J etal.OWL-S:Semanticmarkup for Web services[EB/OL].http://www.w3.org/Submission/OWL-S.

[6]王环球, 高金钟, 许凤璋.基于Petri网的系统可靠性分析[J].北京轻工业学院学报, 1998, 16 (2) :15-17.

[7]沈戈, 苏春, 许映秋.基于Petri网理论的动态系统可靠性建模方法研究[J].机械工程与自动化, 2006, 8 (2) :22-25.

混合Web服务组合 第7篇

所谓Web服务组合, 指的是从互联网中选取相对简单、可用的Web服务, 并将它们组合成新服务的技术[1]。组合后的新服务称为组合服务, 构成组合服务的子服务称为基本服务。组合服务描述语言提供了一种规范化的组合Web服务定义方式, 用以描述组合Web服务中基本服务之间的交互以及执行顺序等。因此, 它是Web服务组合的基础和核心内容。

目前, 基于WSDL、SOAP、UDDI开放标准的Web服务体系结构已经基本成熟, 而在这之上的组合服务描述语言, 虽然已经出现了一些[3,4,5,6], 比如BPEL、WSCI、WSCL、BPML等, 但是仍处于不断探索之中。这些语言都只是从静态角度, 提供了一种规范化的服务描述方式, 不能支持动态的Web服务组合。

WSDL是当前Web服务接口描述语言的标准[7], 它以XML格式定义了Web服务的消息, 这些XML消息是服务之间数据流的重要组成部分。因此本文以WSDL为接口描述语言, 分析Web服务组合的类型和消息依赖关系, 在此基础上, 提出了一种轻量级的组合服务描述语言 (CWSDL) 。

1Web服务的接口

Web服务使用标准的消息格式/通信协议, 因此需要以某种结构化的方式, 对服务的接口加以描述。WSDL正是这样一种描述语言, 它定义了一套基于XML的语法, 将Web服务描述为能够进行消息交换的服务访问点或端口 (Port) 的集合。在WSDL中, 服务访问点和消息的抽象定义, 从具体的服务部署或数据格式绑定中分离出来。消息是指对所交换数据的抽象描述;而端口类型是指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范, 构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联, 可以定义一个端口, 而端口的集合则定义为服务。

Web服务提供的功能是通过调用其中的操作来完成的, 因此, 本文从服务提供的功能方面, 研究组合Web服务操作层次上的描述语言。两个操作, 当源操作的消息类型与目的操作的消息类型相匹配时, 这两个操作可以顺序执行。这个约束限制了服务之间可能的连接, 因此为组合服务的描述提供了新的思路。

每个Web服务有一个与之相关联的WSDL文档, 描述服务的功能和接口。每个服务包含一系列的操作, 每个操作有一个名字和相对应操作的输入和输出参数。WSDL文档对每个参数的名字和数据类型都作了描述。如果能根据目的服务操作的输入输出消息, 找出潜在的消息依赖关系, 那么就可以实现目的组合Web服务。因此, 组合服务描述的过程, 也就是找出服务间消息依赖关系的过程。

2Web服务组合的类型与消息依赖

一个Web服务可以用一个三元组 (C, A, P) 表示。C是指服务的内容, 也就是对Web服务的语义描述;A是指服务提供的活动, 也就是Web服务中的operation;P描述服务的一些属性, 比如服务质量、费用等。C和P属于服务的语义范畴。本文从服务提供的功能方面, 研究Web服务操作层次上的自动组合。

定义1 Web服务的定义:一个服务表示为三元组 (C, A, P) 。任取a∈A, a为服务中的一个操作, a= (op, I, O) 。op表示操作名, I表示op的输入消息参数, I= (p1, , pm) ;O表示op的输出消息参数, O= (q1, , qn) ;其中pi (i=1, , m) 和qj (j=1, , n) 是形式为:的一个消息参数。

Web服务提供的功能是通过调用其中的操作来完成的。WSDL支持四种操作模式:notification, one-way, solicit-response和request-response。Web服务的操作模式指定了操作中输入、输出消息发送和接收的顺序, 它说明了操作是发起交互还是只是简单地对其它服务的调用作出响应。我们将四种操作模式总结为In/Out和Out/In两种类型:In/Out操作模式首先接收一个输入消息, 处理后返回一个输出消息;Out/In操作模式首先发送一个输出消息并等待接收一个输入消息作为结果。根据WSDL标准, 操作可以只有输入消息或输出消息, 这样的操作可以被认为是输入消息或输出消息为空的In/Out或Out/In操作模式。

2.1Web服务组合类型

一个操作的执行通常经过四个状态:就绪 (ready) 、开始 (start) 、活动 (active) 、结束 (end) 。在没有发出执行操作的请求之前, 操作处于就绪状态;当操作开始执行时, 操作处于开始状态。例如, 当操作接收到输入消息时, 操作就处于开始状态;操作在执行过程中处于活动状态;处理完请求, 操作处于结束状态, 并返回处理的结果。我们用“”表示状态之间关系, S1S2表示状态S1在S2之前发生。因此, 一个操作的全部执行状态可以表示为readystartactiveend。

我们定义三种Web服务操作的组合方式:顺序组合、替换组合、混合式组合。顺序组合是以与供应链结构相似的方式进行操作的组合。假定opi和opj是两个顺序组合的操作, 我们称opi和opj分别为源操作和目的操作, 图1 (a) 和 (b) 分别说明了当opi的操作模式是In/Out和Out/In时的顺序组合情况。很显然, 在顺序组合中, opi先被执行, 紧接着再执行opj。

作为顺序组合的例子, 假定纺织企业中一个操作opi提供将原材料加工为毛坯布的功能, opi的输入为material, 输出为roughFabric;opj提供将毛坯布加工为光坯布的功能, opj的输入为roughFabric, 输出为finishedFabric。因此, 操作opi和操作opj可以顺序组合, 以提供直接将原材料加工为成品布 (光坯布) 的功能。这种情况下, opi的结果 (roughFabric) 作为opj的输入, opi和opj之间状态的顺序关系为:StartiActiveiEndiStartjActivejEndj。

替换组合是指将操作opi的功能委派给opj执行。图2 (a) 和 (b) 分别说明了当opi的操作模式为In/Out和Out/In时的替换组合。以 (a) 为例, opi的操作模式为In/Out, 当opi被调用时, 它发送一个输入消息给opj, 然后opj代表opi执行被请求的操作, 并返回结果给opi, opi最后将结果返回给它的调用者。当opi的操作模式为Out/In时, opi通过调用opj开始它的执行, 在opj执行结束时, 它将结果发送给opi, 作为输入消息接收。

替换组合的一个例子是:一个纺织品供应商提供requestPrice操作 (opi) , 该操作允许用户查询某种产品的报价。而实际上, requestPrice操作的执行需要通过调用某个具体产品生产商提供的操作 (opj) , 以得到最新的价格和发货日程。因此, opi与opj为替换组合关系。替换组合中操作之间状态的先后关系为:StartiStartjActivejEndjEndi, Starti Activei Endi。

一个组合服务可能既包含部分顺序组合的操作, 也包括部分替换组合的操作, 我们称这种组合为混合式组合。图3的例子说明了操作op1、操作op2、操作op3之间的混合式组合, 操作op1与操作op2为替换组合, 这表示操作op1委派给操作op2执行;而操作op1与操作op3是顺序组合, 表示操作op1的输入和输出供给操作op3的输入。

2.2Web服务组合中的消息依赖

两个操作, 当源操作的消息类型与目的操作的消息类型相匹配时, 这两个操作可以顺序执行。这个约束限制了服务之间可能的连接, 也为操作的组合提供了新的思路。图4说明了基于接口匹配进行Web服务组合的例子, 其中operation1和operation3的输出消息作为operation2的输入, operation3的输出消息分解为operation2和operation4的输入消息。因此operation1、operation2、operation3、operation4形成如图5所示的组合关系。

两个顺序执行的操作, 只有当前一个操作执行结束, 后一个操作才能开始, 而前一个操作的输出作为后一个操作的输入, 即这两个操作的消息之间存在着依赖关系。这种消息依赖关系分为三种情况:源操作的输出消息与目的操作的输入消息具有完全匹配的消息格式, 包括消息参数的类型、个数等, 这是最理想的匹配, 称为消息映射依赖;通常情况下, 一个源操作的输出参数不足以提供目的操作的输入, 这时需要将多个源操作的消息合并, 从而提供目的操作的输入, 这种依赖我们称为消息合成依赖;与此相对应, 一个源操作的输出可能提供多个目的操作的输入, 这种依赖我们称为消息分解依赖。在不知道活动执行逻辑的情况下, 通过分析活动之间的消息依赖关系, 可以实现Web服务的自动组合。两个操作, 对于顺序组合方式, 源操作输入和输出参数的并集作为目的操作的输入;对于替换组合, 当源操作的操作模式为In/Out时, 源操作的输入作为目的操作的输入, 目的操作的输出作为源操作的输出;当源操作的操作模式为Out/In时, 源操作的输出作为目的操作的输入, 目的操作的输出作为源操作的输入。由此得到如下的消息依赖关系定义。

定义2 消息映射依赖:给定两个操作op1和op2, (1) 对于顺序组合, 当op1.O∪op1.I⊇op2.I时; (2) 对于替换组合, op1的操作模式为In/Out, 当op1.I⊇op2.I且op2.O⊇op1.O时; (3) 对于替换组合, op1的操作模式为Out/In, 当op1.O⊇op2.I且op2.O⊇op1.I时;在这三种情况下, 我们称op1与op2之间存在消息映射依赖关系。

定义3 消息合成依赖:给定操作集合{op1, op2, , opm}与操作opn, m≠n, (1) 对于顺序组合, 当 (op1.O∪op1.I∪op2.O∪op2.I∪∪opm.O∪opm.I) ⊇opn.I时; (2) 对于替换组合, op1的操作模式为In/Out, 当 (op1.I∪op2.I∪∪opm.I) ⊇opn.I且opn.O⊇ (op1.O∪op2.O∪∪opm.O) 时; (3) 对于替换组合, op1的操作模式为Out/In, 当 (op1.O∪op2.O∪∪opm.O) ⊇opn.I且opn.O⊇ (op1.I∪op2.I∪∪opm.I) 时;在这三种情况下, 我们称{op1, op2, , opm}与操作opn之间存在消息合成依赖关系。

定义4 消息分解依赖:与消息合成依赖相对应, 如果一个操作opk的输入或输出作为多个操作{op1, op2, , opm}的部分或全部输入或输出, 那么我们称操作opk与操作集合{op1, op2, , opm}存在消息分解依赖关系。

以图4为例, 操作operation1、operation3与operation2是消息合并依赖关系;操作operation3与操作operation3、operation4是消息分解依赖关系。

在分析了服务组合的类型和定义了操作之间的消息依赖关系的基础上, 定义组合Web服务描述语言的过程, 也就是描述组合服务中基本服务的组合类型以及操作之间消息依赖关系的过程。

3CWSDL:组合Web服务描述语言

组合Web服务是由多个分立的基本服务组合而成的一个新服务。为了确切地描述基本服务之间的执行顺序和数据流动情况, 组合服务需要有一种描述其基本服务构成和执行过程的方法。在前面组合类型和消息依赖关系分析的基础上, 我们定义了一种轻量级的组合服务描述语言, 称为组合Web服务描述语言CWSDL (Composite Web Service Description Language) 。

CWSDL采用与WSDL相似的方式描述组合Web服务。它包括两部分:组合服务接口描述部分和组合逻辑描述部分。组合服务的接口描述定义了用户的需求, 也是组合服务作为一个新服务对外表现的接口, 用“Defn”定义。组合逻辑描述部分指定了组合服务中基本服务的构造关系, 其中包含组合类型和消息依赖两部分, 如第2节所述, 在CWSDL中用“CompositionLogic”定义, 如下面的结构所示。

在组合逻辑描述部分, 如下述代码段所示, 组合类型部分指定了组合服务中各基本服务之间的关系, 消息依赖部分描述了接口之间数据的映射关系, 即数据从一个服务的输出接口中流出, 到下一个服务的输入接口中。在CWSDL中, 用“messageHandling”表示消息依赖关系。根据我们的分析, 消息依赖包括三种:消息映射依赖, 消息合成依赖和消息分解依赖, 在CWSDL中分别以“messageMapping”、“messageComposing”、“messageDecomposing”表示, 而三种组合类型分别用“sequential”、“substitution”和“hybrid”表示。

在组合逻辑描述部分, 如下述代码段所示, 组合类型部分指定了组合服务中各基本服务之间的关系, 消息依赖部分描述了接口之间数据的映射关系, 即数据从一个服务的输出接口中流出, 到下一个服务的输入接口中。在CWSDL中, 用“messageHandling”表示消息依赖关系。根据我们的分析, 消息依赖包括三种:消息映射依赖, 消息合成依赖和消息分解依赖, 在CWSDL中分别以“messageMapping”、“messageComposing”、“messageDecomposing”表示, 而三种组合类型分别用“sequential”、“substitution”和“hybrid”表示。

CWSDL定义了用户需要的组合服务的接口, 包括用户提供的消息参数和目的消息参数。通过某种接口匹配算法, 找出潜在的消息依赖关系, 也就实现了Web服务的组合。因此, 计算组合Web服务的过程, 实际上也是物化CWSDL中消息依赖关系的过程。用户根据常识, 也可以提供部分消息依赖的定义, 这可以提高接口匹配过程中消息依赖关系发现的准确度, 从而提供更精确的组合服务。组合服务执行引擎可以根据物化后的CWSDL文档, 确定各基本服务的执行情况。因此CWSDL既是组合服务的描述语言, 也可以作为描述组合服务执行过程的中间语言, 计算组合Web服务的过程, 实际上也是物化CWSDL中组合逻辑部分的过程。

4小结

组合服务描述语言需要以一种规范化的方式, 描述组合Web服务中基本服务之间的交互以及执行顺序。本文把服务抽象成为具有输入和输出接口的实体, 通过分析组合服务的类型和服务之间的消息依赖关系, 定义了一种轻量级的组合Web服务描述语言。它包括组合服务接口描述和组合逻辑描述两部分, 计算组合Web服务的过程, 实际上也是物化CWSDL中组合逻辑部分的过程, 因此它支持对动态Web服务组合过程所生成的组合服务的描述。

摘要:从基于WSDL的服务接口描述语言入手, 分析了Web服务组合的类型和消息依赖关系。将服务组合分为顺序组合、替换组合、混合式组合三种类型;结合这些类型, 将组合服务中的消息依赖定义为消息映射依赖、消息合成依赖和消息分解依赖三种关系。在此基础上, 提出了一种轻量级的组合服务描述语言 (CWSDL) 。

关键词:Web服务,组合服务描述语言,接口,WSDL

参考文献

[1]Benatallah B, Dumas M, Fauvet M, et al.Towards Patterns of Web Serv-ices Composition.In Patterns and Skeletons for Parallel and DistributedComputing, 2003, Springer Verlag, UK:265-296.

[2] Dorn J, Hrastnik P, Rainer A.Web service discovery and composition for virtual enterprises.International Journal Of Web Service Research 2007, 4 (1) :23-39.

[3] BEA Systems, IBM, MicroSoft, SAP AG and Siebel Systems. Business Process Execution Language for Web Services version 1.1. http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/.February 2005.

[4] Arkin, Askary S, Fordin S, et al.Web Service Choreography Interface 1.0. BEA, Intalio, SAP and Sun. http://www.w3.org/TR/wsci/.August 2002.

[5] Banerji, Bartolini C, et al.Web Services Conversation Language (WSCL) 1.0. Hewlett-Packard Company. http://www.w3.org/TR/wscl10/. March 2002.

[6] Assaf ARKIN, Business Process Modeling Language (BPML) . BPMI.org. http://www.bpmi.org/bpml-spec.htm.November 2002.

混合Web服务组合

混合Web服务组合(精选7篇)混合Web服务组合 第1篇Web服务结合了面向组件的方法和Web技术的优势,利用标准网络协议和XML数据格式进行通信...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部