支持异步行为的RESTful-Web-服务编制方法研究.pdf

上传人:椰子壳 文档编号:3333662 上传时间:2019-08-13 格式:PDF 页数:72 大小:2.94MB
返回 下载 相关 举报
支持异步行为的RESTful-Web-服务编制方法研究.pdf_第1页
第1页 / 共72页
支持异步行为的RESTful-Web-服务编制方法研究.pdf_第2页
第2页 / 共72页
支持异步行为的RESTful-Web-服务编制方法研究.pdf_第3页
第3页 / 共72页
支持异步行为的RESTful-Web-服务编制方法研究.pdf_第4页
第4页 / 共72页
支持异步行为的RESTful-Web-服务编制方法研究.pdf_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《支持异步行为的RESTful-Web-服务编制方法研究.pdf》由会员分享,可在线阅读,更多相关《支持异步行为的RESTful-Web-服务编制方法研究.pdf(72页珍藏版)》请在三一文库上搜索。

1、中图分类号:TP311 论文编号:1028716 13-S091 学科分类号:081200 硕士学位论文 支持异步行为的 RESTful Web 服务编 制方法研究 研究生姓名 铁威 学科、专业 计算机科学与技术 研 究 方 向 服务计算 指 导 教 师 黄志球 教授 南京航空航天大学 研究生院 计算机科学与技术学院 二 一二年十二月 NanjingUniversity of Aeronautics and Astronautics The GraduateSchool College of Computer Science and Technology A RESTful Web Servi

2、ces Orchestration Approach Supporting Asynchronous Interactions A Thesis in Computer Science and Technology by Tie Wei Advised by Prof. Huang Zhiqiu Submitted in Fulfillment of the Requirements for the Degree of Master of Engineering December, 2012 承诺书 本人声明所呈交的硕士学位论文是本人在导师指导下进 行的研究工作及取得的研究成果。除了文中特别加

3、以标注和致 谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得南京航空航天大学或其他教育机构的学位 或证书而使用过的材料。 本人授权南京航空航天大学可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本承诺书) 作者签名: 日期: 南京航空航天大学硕士学位论文 i 摘要 RESTful Web 服务作为一种轻量级的 Web 服务实现,近年来在云计算环境中得到了广泛的 应用。然而基于 HTTP 协议的 RESTful Web 服务无法支持异步交互,在多参与者业务流程中执 行效率不高。

4、同时,RESTful Web 服务并非建立在现有 Web 服务协议族的基础上,无法与现有 的基于 BPEL 的服务编制方法兼容,因此 RESTful Web 服务难以通过服务编制的方法支持复杂 业务。现有的研究工作主要围绕 RESTful Web 服务系统建模,模型中体现服务编制场景中交互 行为的能力不足,尤其无法描述异步交互行为,同时也缺少可执行的编制描述的支持。本文针 对以上问题,提出了一种支持异步行为的 RESTful Web 服务编制方法,具体成果如下: 1) 在服务编制的设计阶段,通过对 RESTful Web 服务编制中资源和流程的分析,提出了 一种支持异步行为分析的 RESTfu

5、l Web 服务编制建模方法,辅助 RESTful Web 服务编制的资源 和流程建模,分析和抽取其中异步兼容的行为。 2) 在服务编制的开发阶段,通过分析已有的异步交互模式和 BPEL 元模型,设计了一种 支持异步交互的 RESTful Web 服务编制语言 BPEL-asynREST 及其执行机制, 指导 RESTful Web 服务编制流程的描述和异步交互行为的实现。 3) 在服务编制的运行阶段,通过扩展业务流程执行引擎 Apache ODE 使其支持 RESTful Web 服务编制,实现了 BPEL-asynREST 执行引擎,保障基于 BPEL-asynREST 的 RESTful

6、 Web 服务编制的正确执行。 关键词:关键词:Web 服务,REST,异步行为,UML,BPEL 支持异步行为的 RESTful Web 服务编制方法研究 ii ABSTRACT As a lightweight Web services implementation, RESTful Web service is widely used in cloud computing recent years. However, the execution efficiency of RESTful Web serivce in multi-participant business process

7、is not ideal, because its based on HTTP protocol, which can not support asynchronous interactions. Further more, RESTful Web service is not built on the basis of existing protocol stack of Web service, it is not compatible with BPEL-based service orchestration approaches. As a result, it is difficul

8、t to handle complex business through service orchestration of RESTful Web services.The research regarding RESTful Web service so far focuses on modeling RESTful Web service system. These models are not capable of presenting interaction behavior in service orchestration, especially the asynchronous o

9、perations, and lack of an executable description of orchestration either. To resolve the above problems, this paper presents a RESTful Web serivce orchestration apporach that supports asynchronous interactions, and the main contributions are as follow: 1) A modeling approach of RESTful Web service o

10、rchestration supporting analysis of asynchronous behavior is proposed. It is used to extract the asynchronous-compatible behaviors in the design phase of RESTful Web service orchestration. 2) An executable RESTful Web services orchestration description language BPEL-asynREST is presented. It is capa

11、ble of describing both synchronous and asynchronous interactions in the orchestration. 3) An execution engine of BPEL-asynREST is designed and implemented. Keywords: Web Service, REST, Asynchronous Interaction, UML, BPEL 南京航空航天大学硕士学位论文 iii 目录 第 1 章 绪论 . 1 1.1 课题研究背景及意义 1 1.2 课题研究现状及选题依据 2 1.3 论文概述及组

12、织结构 3 第 2 章 RESTful Web 服务编制面临的挑战 5 2.1 RESTful Web 服务编制概述 5 2.1.1 RESTful Web 服务特性 5 2.1.2 服务编制与 BPEL . 6 2.2 RESTful Web 服务编制建模与异步行为分析 6 2.2.1 RESTful Web 服务编制的建模方法 6 2.2.2 RESTful Web 服务编制中异步行为分析方法. 8 2.3 RESTful Web 服务编制的异步交互和执行机制 8 2.3.1 RESTful Web 服务的异步交互方式 8 2.3.2 RESTful Web 服务编制的执行机制 9 2.4

13、 支持异步行为的 RESTful Web 服务编制研究思路 . 11 2.5 本章小结 . 12 第 3 章 支持异步行为分析的 RESTful Web 服务编制建模方法 14 3.1 电子商务业务流程案例 14 3.2 基于 UML 的 RESTful Web 服务编制建模方法 . 16 3.2.1 使用 UML 类图对资源建模 . 16 3.2.2 使用 UML 活动图对流程建模 . 18 3.3 RESTful Web 服务编制行为的形式化表示 21 3.3.1 基于卫式资源自动机的服务编制行为模型 21 3.3.2 从 UML 模型到卫式资源自动机模型转换 . 22 3.4 异步兼容行

14、为抽取算法 23 3.4.1 异步行为可兼容条件 23 3.4.2 异步兼容行为抽取算法 24 支持异步行为的 RESTful Web 服务编制方法研究 iv 3.5 本章小结 . 26 第 4 章 支持异步交互的 RESTful Web 服务编制执行机制 . 27 4.1 RESTful Web 服务异步交互模式 27 4.1.1 RESTful Web 服务异步交互模式设计思路 27 4.1.2 基于回调的异步交互模式 29 4.1.3 RESTful Web 服务异步交互模式间比较实验. 31 4.2 BPEL-asynREST:支持异步行为的 RESTful Web 服务编制语言 .

15、32 4.2.1 基于 BPEL 的 RESTful Web 服务编制方式 33 4.2.2 BPEL-asynREST 元模型设计. 33 4.2.3 BPEL-asynREST 对 BPEL 语言的扩展 . 35 4.3 使用 BPEL-asynREST 进行 RESTful Web 服务编制 . 37 4.4 本章小结 . 39 第 5 章 BPEL-asynREST 执行引擎设计与实现. 40 5.1 执行引擎系统设计 40 5.1.1 系统架构 40 5.1.2 系统流程 42 5.2 基于 Apache ODE 的系统实现 44 5.2.1 ApacheODE 扩展设计 44 5.

16、2.2 RESTful Web 服务编译期扩展 45 5.2.3 RESTful Web 服务运行期扩展 48 5.3 本章小结 . 51 第 6 章 总结与展望 . 52 6.1 论文工作总结 52 6.2 进一步的工作 53 参考文献 . 54 致谢 . 59 在学期间的研究成果及发表的学术论文 60 南京航空航天大学硕士学位论文 v 图表清单 图 1.1 本文组织结构 . 4 图 2.1 支持异步行为的 RESTful Web 服务编制研究思路 . 12 图 3.1 电子商务网站交易流程的逻辑结构 14 图 3.2 一次电子购物的业务流程 16 图 3.3 电子商务场景中基于 UML 类

17、图的资源模型 . 18 图 3.4 电子商务场景中基于 UML 活动图的流程模型 . 20 图 3.5 电子商务场景中各活动参与者的卫式资源自动机模型 23 图 4.1 服务端和客户端的三种异步交互模式 29 图 4.2 RESTful Web 服务异步交互过程 30 图 4.3 实验结果:客户端 CPU 占用 31 图 4.4 实验结果:客户端网络占用 32 图 4.5 实验结果:服务端 CPU 占用 32 图 4.6 实验结果:服务端网络占用 32 图 4.7BPEL2.0 元模型 . 34 图 4.8 扩展后的 BPEL2.0 元模型 . 35 图 4.9示例 35 图 4.10,示例

18、. 36 图 4.11示例 . 37 图 5.1BPEL-asynREST 执行引擎架构 . 41 图 5.2 流程产生的资源的生命周期 42 图 5.3 流程发布的资源的生命周期 42 图 5.4 异步的 RESTful Web 服务请求执行流程 . 43 图 5.5Apache ODE 架构 44 图 5.6 扩展后的 ODE 结构 . 45 图 5.7 编译期扩展示例代码 47 图 5.8 ODE 编译期扩展后的相关类图 48 图 5.9 运行期扩展:包装类 HttpRequestHelper 49 图 5.10 运行期扩展后的 ODE 相关类图 . 50 表 3.1 电子商务各模块的基

19、本服务 15 表 4.1 UML 到 BPEL-asynREST 转换规则 37 支持异步行为的 RESTful Web 服务编制方法研究 vi 缩略词 缩略词 英文全称 REST REpresentational State Transfer RPC Remote Procedure Call SOAP Simple Object Access Protocol BPEL Business Process Execution Language WSDL Web Services Description Language Apache ODE Apache Orchestration Dire

20、ctor Engine 南京航空航天大学硕士学位论文 1 第1章 绪论 1.1 课题研究背景及意义 随着互联网时代的到来, 越来越多的企业数据中心和移动终端通过网络连接起来, 为人 们提供高效、便捷的服务。然而,由于硬件采购成本较高,中小企业和个人开发者无法负担 数据中心及其运维成本; 另一方面由于企业应用的计算资源需求存在波峰波谷, 大型企业的 数据中心存在计算资源的冗余; 这种计算资源的分配不均促使了云计算概念产生。 云计算是 一种基于互联网的计算交付方式, 通过这种方式, 共享的软硬件资源和计算能力可以按需提 供给用户,大大降低了企业和个人的开发和运营成本。在云计算环境中,为了实现资源共

21、享 和租用,通常将资源和功能以 Web 服务的形式发布出来,并将简单服务通过一定手段组合 成复杂的满足特定需求的服务。 Web 服务1是一种模块化的、具有自描述能力的、能够跨平台交互的应用程序。目前 Web 服务的主要实现方式有两种2,一种是服从一系列 Web 服务协议族(WSDL3、 WS-Addressing、 WS-ReliableMessaging、 WS-Security 等) 的远程过程调用 (Remote Procedure Call, RPC)风格 Web 服务;另一种是表述性状态转移(RepresentationalState Transfer, REST) 风格4的 Web

22、 服务,被称作 RESTful Web 服务5。前者定义了一系列基于 XML 的规范,来 描述服务操作的语义信息和接口,并通过简单对象访问协议(SOAP)进行消息传递。后者 是利用 URI 作为服务接口, 通过显示调用 HTTP 方法, 实现无状态的消息交互。 RESTful Web 服务的核心思想是把资源暴露成服务,利用 URI 进行服务定位,通过 HTTP 的动作来实现 对资源的增删改查基本操作6,同 RPC 风格 Web 服务相比,更加简单和易于实现,具有种 种优势2。同时其以资源为中心的特点,有利于复杂业务解耦,由此产生了面向资源的架构 7,将 RESTful Web 服务作为其中最基

23、本的服务发布方式,得到了众多厂商的支持,也引起 了学术界对将基于 RPC 风格 Web 服务的系统转换成基于 RESTful Web 服务系统的方法的研 究8, 9。 由于复杂业务往往需要多个服务参与者发布的服务按照一定流程进行执行, 所以业界引 入了服务组合的概念。现阶段对服务组合的研究主要集中在基于业界较为成熟的 Web 服务 业务流程执行语言 (Web Service Business Process Execution Language, 下简称 BPEL) 的 RPC 风格的 Web 服务编制的研究10。其中,部分研究工作利用了形式化的建模分析方法,辅助 业务流程设计和验证11-14

24、。但由于现有 BPEL 缺乏对 RESTful Web 服务的支持,且 RESTful Web 服务的组合有其自身的特点15,目前对 RESTful 服务编制建模和分析的研究相对较少, 使得丰富的 Web 服务资源无法有效地组织和利用。 在软件行业中,提高软件执行效率是一个不变的话题。尤其在云计算环境下,服务提供 支持异步行为的 RESTful Web 服务编制方法研究 2 商分布在异构的网络环境中, 在服务编制流程执行过程中, 不可避免的会出现长周期的服务, 如果采用串行、同步的方式,将大大影响服务编制的执行效率。RESTful Web 服务中,由于 其行为语义通过 HTTP 动作直接绑定,

25、 能支持更加细粒度的行为建模和分析, 有利于通过异 步交互使服务编制执行效率提高。正因为如此,文献16中提出的未来分布式系统的抽象模 型是建立在支持异步交互的 RESTful Web 服务基础上的。然而,目前对支持异步交互的 RESTful Web 服务研究较少,且缺少有效的建模分析方法和执行描述语言,这个问题近年来 得到了学术界的关注。 通过为 RESTful Web 服务编制引入支持异步行为的建模和分析方法,并使其可以有效 地执行,一方面可以帮助设计者对已有的 RESTful Web 服务编制业务的进行建模,发现其 中可以异步执行的活动,提高软件执行效率;另一方面可以辅助开发人员实施新的基

26、于 RESTful Web 服务业务流程开发, 缩短开发周期。 从设计和实现两个阶段, 保障基于 RESTful Web 服务的业务系统正确和高效地执行。 1.2 课题研究现状及选题依据 目前对于 RESTful Web 服务编制的研究主要集中在建模方法和分析验证上。对于 RESTful Web 服务系统建模, 首先需要考虑的是 RESTful Web 服务面向资源的特性, 文献17 根据 RESTful Web 服务的元模型提出了资源链接语言(Resource Linking Language) ,该语言 能够表达 RESTful Web 服务中资源、资源描述、媒体类型和资源间链接的概念,用

27、于对 RESTful Web 服务系统建模。文献18利用 UML 状态图中的结构和执行语义表达超媒体系 统分层和浏览的特点,用于建模 RESTful Web 服务系统。将业务语义与规则(Semantics of Business Vocabulary and Rules Interim Specification-SBVR)19引入 RESTful Web 服务系统, 方便 RESTful Web 服务系统设计与建模,是另外一个主流的方法20-23。文献20比较了语义 Web、RPC 风格的 Web 服务和 RESTful Web 服务,分析各自的优势和缺点,提出以 SBVR 为建模语言的、基

28、于 REST 的 Web 模型,并结合 RPC 风格 Web 服务在接口描述、事务和组 合方面的优势,为分布式系统的设计提供了一个设计参考模型。文献21、22利用 SBVR 模型同 UML 模型的转换的优势24,分别解决了根据系统的 SBVR 模型,构建 RESTful Web 服务系统及其数据融合的问题, 文献23更进一步介绍了利用 SBVR 建模方法、 RESTful Web 服务和关系数据库构建了数字生态系统的方法。文献25和文献26提出了扩展 BPEL 使其 支持 RESTful Web 服务的方法,但只是进行了定性的分析,缺少严格的建模分析过程。此 外还有其他形式化的建模方法27-2

29、9对 RESTful Web 服务进行分析。目前这些方法都不能体 现在服务编制过程中客户端和服务端交互的特性, 且建模方法都不支持组合过程中异步行为 的建模。 对于 RESTful Web 服务编制分析和验证,目前工作主要集中在服务编制中资源选择的 正确性和服务行为的正确性两个层面上。 文献30设计了一种机器可理解的基于 HTML 的方 南京航空航天大学硕士学位论文 3 法描述 RESTful Web 服务的接口,在此基础上,文献31将 RDF32作为 RESTful Web 服务 资源描述基础, 为RESTful Web 服务建立语义资源模型, 文献33提出了语义REST (Semantic

30、 REST)的概念,在 RESTful Web 服务资源描述中加入了基于 RDF 的描述,并在 SOAP 消息 中加入 RDF 标签,确保使用 RESTful Web 服务替换 RPC 风格 Web 服务的正确性。近年来 基于本体的(Ontology)的研究方法以其支持推理验证的特点使其成为系统验证的有力工具 34, 35。文献36针对 RESTful Web 服务在企业应用中缺少责任分配机制的问题,在 RESTful Web 服务中引入了服务契约(Service Contract)37,使用 OWL 对组合参与者的契约建模, 并用一组公理描述组合中活动参与者的基本约束, 这种方法能够运用推理

31、机发现服务编制系 统中不满足基本约束的参与者,保证服务行为的正确性;文献38将 RESTful Web 服务编制 中各个服务的行为和资源用 OWL 建模,验证是否系统同设计需求相一致。文献39设计了 一个基于情景演算(situation calculus)40的状态迁移系统(state transition system) ,实现了 本体描述的 RESTful Web 服务的自动组合。 文献41使用线性逻辑定理证明的方法保证服务 编制中 RESTful Web 服务选取的正确性。这些方法从资源和行为的角度,为 RESTful Web 服务编制系统提供了有效的分析和验证方法;然而,这些方法并未能

32、解决 RESTful Web 服 务缺乏可执行的描述语言和执行工具的问题,也未考虑在交互过程中引入异步交互的场景。 由于目前 RESTful Web 服务编制的建模方法不支持异步交互行为的建模,且没有一个 可以从建模分析到流程执行完整的方法。因此本文在对 RESTful Web 服务编制建模的现有 研究基础上,提出一个能够表达组合中异步交互的模式,设计一种符合 RESTful Web 服务 特性的异步交互方案, 然后在此基础上实现一个可执行的组合描述语言, 并开发了其执行引 擎。本文旨在解决如何为 RESTful Web 服务编制系统在设计、开发和运行阶段引入异步交 互的问题。 1.3 论文概

33、述及组织结构 本文为实现 RESTful Web 服务编制在设计和实现阶段异步交互,主要的研究内容分为 六章,各章节概述如下: 第一章绪论。介绍了本文课题研究背景和意义,对目前国内外学术界对 RESTful Web 服务编制建模和分析的研究方法进行了介绍和总结,引出本文需要解决的问题。 第二章 RESTful Web 服务编制面临的挑战。介绍了 RESTful Web 服务特性和服务编制 的概念,详细介绍了 RESTful Web 服务编制在建模分析和执行交互过程中存在的问题和现 有解决方法的不足,并总体介绍了本文研究思路和技术路线。 第三章支持异步行为分析的 RESTful Web 服务编制

34、建模方法。本章围绕电子商务场景 的案例,提出了使用 UML 对 RESTful Web 服务编制建模的方法,并针对服务编制中的异步 行为分析提出了基于卫式资源自动机的行为模型, 在此基础上给出了抽取异步兼容行为的条 件和算法。 支持异步行为的 RESTful Web 服务编制方法研究 4 第四章支持异步交互的 RESTful Web 服务编制执行机制。首先介绍了基于回调的 RESTful Web 服务异步交互模式,然后通过扩展 BPEL 元模型的方式,提出了支持 RESTful Web 服务异步交互的流程编制语言 BPEL-asynREST,并在此基础上介绍了使用 BPEL-asynREST

35、进行 RESTful Web 服务编制的方法。 第五章 BPEL-asynREST 执行引擎设计与实现。首先对 BPEL-asynREST 的执行引擎的 系统进行了设计,介绍系统架构和系统关键行为执行流程。然后根据开源的 BPEL 引擎 Apache ODE,实现了 BPEL-asynREST 的执行引擎。 第六章总结与展望。总结了本文研究的主要工作及贡献,并对进一步工作提出展望。 本文组织结构图如图 1.1 所示。 第二章 RESTful Web服务编制面临的挑战 第三章 支持异步行为分析的RESTful Web服务编制建模方法 第四章 支持异步交互的RESTful Web服务编制执行机制

36、第五章 BPEL-asynREST执行引擎设计与实现 3.2 基于UML的RESTful Web 服务编制建模方法 3.3 RESTful Web服务编制行为的 形式化表示 3.4 异步兼容行为抽取 算法 4.1 RESTful Web服务 异步交互模型 4.2 BPEL-asynREST:支持异步行为的 RESTful Web服务编制语言 第一章 绪论 4.3 使用BPEL-asynREST进行 RESTful Web服务编制 第六章 总结与展望 图 1.1 本文组织结构 南京航空航天大学硕士学位论文 5 第2章 RESTful Web 服务编制面临的挑战 RESTful Web 服务由于其

37、基于 HTTP 协议的特性, 发布和请求 RESTful Web 服务的开发 成本很低,摒弃了 RPC 风格 Web 服务的繁琐的协议转换的过程,因此成为云计算环境下发 布服务的重要手段。在复杂业务场景中,需要将 RESTful Web 服务加以组合来完成复杂的 业务逻辑,同时基于同步交互的 RESTful Web 服务在组合环境下存在执行效率过低的问题。 本章介绍了 RESTful Web 服务的特性,分析了服务编制场景下 RESTful Web 服务的局限性, 并简要介绍本文解决 RESTful Web 服务在编制场景中局限性方法的思路。 2.1 RESTful Web 服务编制概述 2.

38、1.1 RESTful Web 服务特性 REST(REpresentational State Transfer)架构风格是 Roy Fielding 博士 2000 年在其博士 论文4中提出的一种松耦合的分布式超媒体软件架构准则, 被成功的用于设计和实现 WWW 网络。 REST 风格强调以资源为中心, 使用统一的操作接口和描述符, 分层和无状态的交互, 这些思想指导了当今互联网 HTTP 协议和 URL 协议等基础协议的设计和实现。 RESTful Web 服务是指服从 REST 风格的一类 Web 服务5,具有以下四个特性: 以通过 URL 定位的资源的方式提供服务。RESTful W

39、eb 服务以资源的方式对外发 布服务, 这些资源的 URL 是资源的唯一定位描述符。 客户端如果需要调用 RESTful Web 服务,必须能够正常请求资源的 URL。 使用 HTTP 标准方法操作资源。所有对资源的操作必须使用 HTTP 标准方法进行, 主要是指 POST、PUT、GET、DELETE 方法,分别对应资源的新建、修改、查询 和删除、其中 GET、PUT、DELETE 方法请求必须服从幂等性的原则,每次对资 源的访问只能进行增删改查四种操作之一,每个请求具有明确的行为语义。 资源通过自描述信息表示。 为降低客户端和服务端的耦合, 服务端可以提供多种资 源描述方式来描述资源,如

40、XML 或 JSON,通过客户端请求报文包含的数据类型 返回所需要的信息格式。 超媒体为应用状态的引擎(Hypermedia As The Engine Of Application State, HATEOAS) 。服务端满足无状态性的要求,即客户端和服务端交互的信息必须包 含上下文信息, 服务端不保留客户端的任何状态信息, 必须通过自描述的文件格式 进行交互。客户端在获取资源的超媒体描述后,根据其中的超链接,决定进行进一 支持异步行为的 RESTful Web 服务编制方法研究 6 步的行为。应用的状态信息只与当前请求的资源地址有关,而与交互上下文无关。 从 RESTful Web 服务的

41、特性中可以看出, RESTful Web 服务是一种建立在 HTTP 和 URL 协议上的无状态消息交互机制, 由于 HTTP 协议是目前最广泛使用的应用协议, 因此可以被 运用到几乎所有服务场景中去。相比于 RPC 风格的 Web 服务,RESTful Web 服务不需要特 殊协议(如 WSDL 和 SOAP 协议)的支持,避免了烦琐的 XML 解析和转换的过程,而且 基于 HTTP 协议使得服务端和客户端不用额外开发特殊的支持模块, 具有轻量级、 松耦合的 特性。RESTful Web 服务以资源为中心的特点,同云计算以服务内容为中心的思想相一致, 因此被广泛用于云计算中的服务发布手段。

42、2.1.2 服务编制与 BPEL 在云计算环境中, 服务提供商往往通过将小粒度的服务根据业务逻辑进行组合, 实现复 杂的业务需求。 服务组合的手段主要有两种服务编排和服务编制, 前者通过从全局角度 描述服务参与者之间的协作方式,执行时不存在中心节点;后者存在一个中心服务节点,用 来控制整个流程,通过调用和响应其它服务参与者服务和请求,实现复杂的业务流程。由于 服务编制的中心节点将外部服务编制成一个新的服务,重点在于设计和可执行的组合流程, 并且具有可执行的工具和方法,而服务编排则侧重服务参与者之间的协调,因此服务组合 的概念多是指服务编制。 对于 RPC 风格的 Web 服务,有一系列的协议来

43、保障其编制流程的执行。BPEL 作为其 中最为广泛使用的标准,得到了 IBM 和 Microsoft 等著名厂商的支持。BPEL 基于 XML 规 范定义了用于表示业务流程结构和与 Web 服务交互相关的一系列活动,使其可以用于描述 涉及多个服务参与者的复杂业务。BPEL 解决了标准化业务流程描述的问题,许多厂商根据 其规范实现了 BPEL 的执行引擎,为自动化的流程编制执行提供了基础。同时 BPEL 可执行 的特点也为其赢得了大量的关注,目前已经有很多基于 BPEL 描述的服务流程的学术研究。 然而 BPEL 仅支持 RPC 风格的 Web 服务,因为 BPEL 中对服务接口的描述采用 WS

44、DL 标准描述, 在执行流程中发布和请求 Web 服务均采用 SOAP 消息进行传递, 同 RESTful Web 服务的描述方式和消息传递机制有很大差别。因此 RESTful Web 服务编制的设计,是近年 来学术研究的热点15。 2.2 RESTful Web 服务编制建模与异步行为分析 2.2.1 RESTful Web 服务编制的建模方法 RESTful Web 服务编制就是将多个 Web 服务组合在一起,按照业务逻辑的需要请求和 发布 RESTful Web 服务,但是如何设计 RESTful Web 服务编制,尤其是包含异步行为的场 景,目前尚无较好的辅助建模方法。目前对 REST

45、ful Web 服务系统建模方法主要有半形式 南京航空航天大学硕士学位论文 7 化方法和形式化方法两大类。 半形式化方法主要是采用 UML 对 RESTful Web 服务系统建模。UML 作为标准建模语 言,最大的优势在于易于理解和扩展,且拥有大量的可视化工具辅助建模。由于 RPC 风格 的 Web 服务出现较早,因此有很多基于 UML 的对其及其组合的建模方法42, 43。使用 UML 对 RESTful Web 服务大多集中在对服务端资源和行为建模,其中 NOKIA 研究院以 Systa 为 代表的研究小组将注意集中在设计阶段将以API模型为中心的RPC 风格 Web服务转换成以 资源为

46、中心的 RESTful Web 服务工作44-46。 文献44中使用 UML 类图描述对 RPC 风格的服 务建立 API 抽象模型,设计了 RESTful Web 服务的结构资源模型和行为资源模型,前者突 出了 RESTful Web 服务资源间的关系,后者侧重描述资源支持的行为和行为间关系,同时 提供了两种风格服务模型间结构和行为的映射转换规则,文献45、46进一步提出了一组 标准的转换方法,将转换的过程分为分析、行为标准化、结构标准化、服务转换、代码生成 五个阶段,解决了 RPC 风格 Web 服务的系统到 RESTful Web 服务的系统的迁移问题。文献 47提供了用于建模 REST

47、ful Web 服务的 UML 规范;文献48总结了 RESTful Web 服务系 统的元模型,用于指导 RESTful Web 服务建模;文献49提出了 REST Web 服务的结构和行 为元模型,使用 UML 类图和状态图表示 RESTful Web 服务中资源间关系和系统状态。文献 50和51利用 UML 类图表示 REST 资源的关系,并使用 UML 协议状态机(protocol state machines)分析资源间请求的前置和后置条件,分析系统是否存在死锁状态。但是这些方法 都是从服务端的角度对 RESTful Web 服务系统建模分析,并没有体现编制中客户端与服务 端的交互行

48、为。 形式化方法对 RESTful Web 服务流程建模主要是基于进程代数、Petri 网和自动机的方 法。文献27将元组空间( tuple space)和进程演算52的方法相结合,将 RESTful Web 服务 描述成通过在命名管道中传递资源元组一组进程,体现出服务端和客户端之间的通信行为; 文献28通过使用进程演算的方法保证业务执行的正确性。文献29利用 Petri 网能够直观地 描述服务编制中各种行为的特点,提出基于着色 Petri 网的 REST Chart 模型,对 REST 资源 状态空间的拓扑结构建模,并将客户端状态建模为此拓扑结构的子集,通过 Petri 网可达性 的验证方法

49、,保证流程执行的正确性,但在编制流程中如果涉及跨组织的多参与者场景时, Petri 网的方存在一定的局限性。文献53利用自动机建模 RESTful Web 服务,服从 RESTful Web 服务统一接口和无状态性的特点,但随着编制流程的复杂性的增加,可能出现 状态空间过大的问题。使用形式化方法建模的优势在于能够准确地描述 RESTful Web 服务 在组合交互过程中交互行为,并且能够对编制流程进行正确性、可达性、兼容性54等方面 的验证。但是现有对 RESTful Web 服务的形式化建模方法,均只考虑 RESTful Web 服务交 互过程中的同步交互的情景, 且形式化方法的学习曲线较为陡峭, 不利于开发人员快速学习 和掌握。 支持异步行为的 RESTful Web 服务编制方法研究 8 2.2.2 RESTful Web 服务编制中异步行为分析方法 在服务编制设计过程中, 需要对服务参与者之间的的交互行为进行分析, 来保证服务编 制流程能够满足设计需求规约。 服务编制中的交互行为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1