基于REST架构的形式化建模与分析

2020-12-02 07:50邢程程
数码设计 2020年11期

摘要:随着互联网的普及,REST架构凭借其特性出现在人们的视野中,但许多的误解造成REST架构的不正确使用。本文基于REST架构和REST形式化方法进行研究与分析,在分析数据基础上及进行RESTful Web服务的形式化抽象建模。

关键词:REST架构;形式化方法;RESRful Web服务建模

中图分类号:N945   文献标识码:A   文章编号:1672-9129(2020)11-0064-01

1 引言

随着互联网的不断发展,分布式计算也开始更多地被运用,虽然将一个相对复杂的任务分散到不同的计算机上进行计算协作大大提高了计算效率,但同时必须解决不同平台的相互关联与融合,使得Web应用在最大化信息共享率的同时可以更有效的服务于不同的对象,而Web服务技术就可以用来解决这一问题。

Web服务技术,实现在不同机器上、不同应用间在没有附加第三方软硬件的条件下可以实现数据交换与集成。Web服务的特点有以下几点:基于自包含、自描述的可用网络模块,Web服务可实现具体业务功能的执行;基于API构成特点,Web服务容易部署。现阶段主要Web服务实现方案有以下三种:表述性状态转移(REST)、远程过程调用(RPC)以及面向服务架构(SOA)。相较于RPC的高耦合性、低扩展性和SOA架构的复杂与高建设成本,简单轻量级的REST架构更适合当下。随着推广,在REST架构发展过程中也浮现出一些问题,比如人们对REST架构约束的理解需要更加深入,只有减少对REST概念的误解才能更好的发挥REST的作用。

2 REST架构

表述性状态转移REST是对架构样式网络系统的概述,其中包括Web应用程序。相较于简单对象访问协议和XML-PRC,REST的简单通透性脱颖而出。基于HTTP直接数据传输和轻量级性质,用于 Web 服务的 RESTful 方法已成为最常见的替代方案,客户端可以用多种语言实现;通常可由自动客户端或代表用户的应用程序访问RESTful Web 服务。但是此服务的简单性允许用户直接与它们交互,使用其 Web 浏览器生成 GET URL,并读取返回内容。

曾有学者在其著作中引入REST-RPC混合架构。该架构直接借助HTTP进行数据传输,不再使用封装方法参数与数据。这体现了与Web服务的相似性,但由于操作资源时不使用标准HTTP方法,将方法与信息储存在HTTP请求的URI中。

3 RESTful Web服务建模

RESTful Web服务模型关注组件之间的通信交互过程,主要刻画REST架构风格中的统一接口、无状态性约束。由于RESTful Web服务使用HTTP的四个方法作为对资源操作的统一方法,在模型中应突出这几种方法,从而使得模型更接近REST架构在工业界中的使用。同时,由于REST架构强调以资源为中心,为了更方便观察资源的变化,在这个部分的模型中,将资源独立成一个进程。为了关注组件之间的交互,改变了系统抽象的逻辑减弱信息的转换过程,强调信息的传递过程。代理一般为用户代理做一些请求信息的转换或者只做请求信息的传递,在新的模型中,网关与来源服务器合并为服务器组件,所有的资源抽象成资源组件。

4 结论和展望

随着互联网不断发展,分布式计算应用也愈加广泛。虽然将一个相对复杂的任务分散到不同计算机上进行协作大大提高了计算效率,但同时必须解决不同平台的相互关联与融合,使得Web应用在最大化信息共享率的同時可以更有效的服务于不同的对象。而Web服务技术就可以用来解决这一问题。REST架构由于其简单性、高可扩展性、高可伸缩性、高性能、低合性、高可重用性等特性,被越来越多的关注。RESTful Web服务特指将REST架构应用在Web中,以资源为中心,使用URI作为统一资源标识符,使用HP协议学的方法作为操作资源的统一方法的Web服务。但同时由于对RRST架构的理解不透彻,误用现象一直存在,形式化领域中对REST架构的研究又寥寥无几。这也是本文应用进程代数实现描述RESTful Web服务的原因。首先基于数据与现有资料对REST架构进行初步模型建立同时注重分析各组成部分的关系与内容,之后基于RESTful Web服务实现模型建立,在此基础上,将该服务抽象成客户端、服务端与资源三模块,作为CSP语言中的进程。

对未来的工作展望有:

本文关注的是REST架构在Web上应用的建模与分析,即RESTFUL Web服务的建模与分析,随着REST架构应用范的不断扩大,可以研究是否能将模型应用在其他方面。

参考文献:

[1] Andrew D Birrell and Bruce Jay Nelson.Implementing remote procedure calls.ACM Transactions on Computer Systems(TOCS),2(1):39-59,1984

[2]聂鹏.基于产出导向法的软件工程专业教学探索研究——以Web服务与RESTful技术课程为例[J].电脑与电信,2020(06):22-29.

[3]刘相,王文斌,王葱权. 基于微服务架构实现Restful服务图形化服务编排的系统及其方法[P]. 上海市:CN110764752A,2020-02-07.

作者简介:邢程程(199909),女,汉,山东济南,本科,研究方向:计算机科学与技术专业。制。