Java中的RESTful Web服务框架外文翻译资料

 2022-08-25 21:18:41

英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料


Java中的RESTful Web服务框架

Hongjun Li

信息化工作办公室,上海立信会计学院,上海,201620中国

摘要-为了能够构建Web服务,用于构建统一的Web应用程序的Java Web程序具有更加强大、灵活和用户友好的特性是非常重要的。 通过引入一个新的概念-表述性状态转移,去研究REST的设计原理,目标与想法,和研究RESTful Web服务的设计原理,RESTful风格的Web服务以及Java中的RESTful Web服务框架与开发基于REST的Web服务的方法。 Java中的RESTful Web服务框架可以在许多方面有效地简化Web开发。

关键词:Rest; RestFul Web 服务;Restlet; RESTEasy; Struts 2

REST 和 RESTFUL WEB 服务

Rest简介

REST即Representational State Transfer,它来自2000年6月发布的Roy Fielding的博士论文[1]。在本论文中,他介绍了REST架构风格,作为Web架构的抽象模型开发,以指导重新设计和定义HTTP和URI。这个风格描述了万维网的基础。构成此基础的技术包括超文本传输协议(HTTP),标记语言(如HTML和XML),友好的Web数据格式(如JSON)和统一资源标识符(URI)。 REST是网络应用程序的架构风格,它由若干约束组成,以解决分离后地址的关系,可见性,可靠性,可伸缩性,灵活性。 REST的目标是确保一个优秀的Web程序良好运行。在网页上选择超链接,程序可以将另一个网页返回给用户并打开该网页。例如,客户请求列车T106的服务,返回结果中的网页包括公交车序列号和时刻表的链接。当客户得到结果时,他可以选择一个链接来进行下一个动作。

REST不是协议,它是Web架构的一种风格或者说Web架构设计原则的抽象和描述。 换句话说,Web是REST系统的实例。 REST描述了如何设计和开发分布式系统。

Rest的目标和设计原则

REST的目标[1]如下:

(1)组件交互的可伸缩性

(2)接口的通用性

(3)独立部署组件

(4)中间件减少

(5)开发减少交互延迟,实施安全性和封装遗留系统的中间件

REST系统中的组件必须符合以下约束条件[1]:

(1)资源的识别

(2)通过表示来操纵资源

(3)自我描述性信息

(4)超媒体作为应用状态的引擎

Rest的理念

在REST系统中,所有资源都具有URI。 使用GET,POST,DELETE和PUT作为资源的通用接口,用户通过它们访问资源

开发人员必须考虑[4]每种方法的预期语义,来确定哪一种方法适合操作哪一种资源。 例如,GET,PUT和DELETE必须是幂等的,并且GET对于客户端重复调用必须是安全的,因为它所做的只是返回资源。 PUT方法允许客户端用新状态替换资源状态,而客户端用DELETE删除资源。 两者显然都有副作用,但两者都是幂等的,因为重复调用它们与调用它们一次效果一样。可以用POST执行几乎任何操作,但在RESTful系统中,它通常用于创建或扩展资源,因此它不是幂等的或者没有副作用。

当然,并非所有人都认为REST很容易。 一个经常提到的问题是缺少工具 - 特别是那些适合交互式开发环境(IDE)的工具,许多企业开发人员使用这些工具来帮助他们编写和维护代码。 鉴于IDE之所以有用只是因为它们自动化了开发人员可以手动实现的值得自动化的活动和方法,这种“缺乏工具”的说法有点不合适。 使用正确的语言特定模式和习惯用法,现有的IDE可以很好地用于RESTful服务开发。

RESTful Web 服务的设计原则

1.Prerequisite gather-类似于传统的软件需求收集实践。

2.资源识别 - 与OOD类似。

3.资源表示定义。

URI定义 - 定义API,它由客户端和服务器的URI组成,用于表示资源交换

RESTful 风格Web服务

REST是一种分布式软件架构,可充分利用Web功能。它可以降低系统开发的复杂性,为系统提供可扩展性。 REST Web服务是面向资源的服务,你可以使用正常且简单的动作来操作资源。

以下是RESTful Web服务的几个关键原则:

定义所有资源的ID;

将所有资源链接在一起;

使用标准方法;

可以多个声明操作资源;

无状态的交互;

如果开发人员在系统应用程序的设计中坚持这五个原则,他们将使用高质量的系统获得Web服务架构。

REST的第一个关键原则说明,RESTful Web服务中的资源ID(无论是单个资源,还是资源集合,虚拟资源或物理资源)是否可以使用统一的,唯一的概念URI进行标识。

REST的第二个关键原则说明,RESTful Web服务的所有资源在任何情况下都可以通过URI的形式作为超链接动态引用,以实现网络资源的互连。

REST的第三个关键原则说明,RESTful Web服务中的所有资源都应该通过使用通用的,统一的和非特定的HTTP接口实现。 HTTP不仅可以定位资源,还可以指示如何操作资源。使用标准的HTTP GET,PUT,POST和DELETE操作以及其他资源方法可以使客户端程序和Web服务相互协作。

REST的第四个关键原则说明,RESTful Web服务可以使用HTTP来允许数据处理,并通过为客户端和服务器之间的多种声明来提供资源调用操作特性分离的关系。 HTTP数据可以应用于资源交互。

最后的关键原则说明,为了提高系统的可扩展性,RESTful Web服务应该被置于资源所需的状态,或者保存在客户端上。这使得Web服务器的更改对于客户端不可见。

以下是RESTful Web服务的几个功能:

由于REST Web服务具有的松散耦合的Web继承特性,通过分离这用户界面和数据存储这两个的关系,使得在不同用户终端中尽可能享受相同的数据。 REST Web服务仍然使用标准化的可交互操作并与传统形式的Web服务资源兼容。 因此,在Web架构中定义资源,资源间的交互和资源,即REST Web服务中的这三个重要概念

通过使用统一资源标识符(URI)定位资源,使得使用资源为软件代理和HTTP协议之间的交互,并使用HTML,XML和其他中介来获取资源等等得以实现。

基于RESTFUL的web服务框架

框架[5]是一个结构软件。它尝试对特定环境的常见任务和工作流进行概括,然后提供一个平台,在该平台上可以更快地构建该环境的应用程序。框架主要以两种方式实现这一点。首先,框架尝试自动执行所有繁琐任务。其次,框架试图为相关领域的常见工作流程引入优雅的架构解决方案。 Java中的Web应用程序框架是一个结构化软件,它提供了web的的常见任务的自动化,以及可以让框架上实现的应用程序轻松继承的内置架构的解决方案。

虽然在不使用某种框架的情况下在二十一世纪创建Java Web应用程序是可行的。但您需要在项目上花费大量时间。也许这不是一个是否使用框架的问题,而是哪个框架提供了您需要的解决方案。考虑到这一点,现在是时候查看Java中RESTful Web服务开发的框架,看看它们提供了哪些现代便利。

A.RESTEasy

多年以来,使用servlet API就可以用Java编写RESTful Web服务。 2008年,Java中用于RESTful Web服务的新规范称为JAX-RS(用于RESTful Web服务的Java API)[JSR 311](www.jcp.org/en/jsr/detail?id=311)被定义为简化RESTful Web服务实现。基于JDK 5元数据语法的规范将有利于RESTful Web服务开发的标准化。正如JSR 311所示,这种情况正在迅速改善。 Red Hat的开源项目 - RESTEasy(http://www.jboss.org/resteasy)是JAX-RS规范的完整实现。

RESTEasy [2]不仅是一个RESTful框架,而且是JBoss的伞形项目,它提供了构建RESTful Web服务的其他框架。作为REST工具的一部分,RESTEasy完全实现了JAX-RS规范。 RESTEasy框架不仅适用于任何Java Servlet容器,还提供了不属于JAX-RS要求的额外功能。

JSR311是一个Java Community Process(JCP)规范,它通过HTTP协议为RESTful Web服务提供Java API。 RESTEasy是JAX-RS规范的可移植实现,可以在任何Servlet容器中运行,并与JBoss Application Server紧密集成,以在JBoss Application Server环境中提供改善的用户体验。在JAX-RS仅仅是服务器端规范的情况下,RESTEasy通过RESTEasy JAX-RS ClientFramework将JAX-RS功能带到客户端,允许您使用JAX-RS和接口代理将传出的HTTP请求映射到远程服务器。

RESTEasy包括JAX-RS实现和客户端框架,以简化编写HTTP客户端的过程,使您有机会定义多个绑定的服务器。它可以移植到在Java Development Kit 5.0或更高版本上运行的任何Tomcat或Application Server。 RESTEasy服务器实现可以与嵌入式JBoss一起用于JUnit测试。 RESTEasy可以轻松地与Enterprise JavaBeans(EJB)和Spring Framework集成。

B.Restlet

Restlet是一个开源的Java Web框架。它提供了[6]全面的功能,可以在您的程序中利用REST(Web的架构风格)。作为面向对象的框架,它提供了一组可以调用或扩展的类和方法,使您无需编写大量需要编写的代码,从而可以专注于您的要求。它可以打开各种形式的Web,从经典Web到语义Web,从Web服务到丰富的Web客户端和Web站点,从移动Web到云计算。

Restlet [3]项目(http://www.restlet.org)提供了一个轻量级但全面的框架,用于将REST概念映射到Java类。它可用于实现任何类型的RESTful系统,而不仅仅是RESTful Web服务,自2005年成立以来,它已经被证明是一个可靠的软件.Reslet项目受到开发Web应用程序的其他主要技术的影响:Servlet API ,JSP(Java Server Pages),HttpURLConnection和Struts。

该项目的主要目标[3]是提供相同级别的功能,同时更接近于Fielding论文中阐述的REST目标。另一个关键目标是提供Web的统一视图,适用于客户端和服务器端应用程序。 Restlet使用其独立的应用程序体系结构和Web容器模块提供REST支持,该模块可作为servlet扩展插入任何Java Web容器。

Restlet Framework以简单统一的方式支持所有这些形式的Web。 Restlet Framework可以公开和使用Web资源.Restlet支持客户端和服务器端,HTTP的所有功能,如条件方法,内容协商,内容范围等。

Restlet的理念是HTTP客户端和HTTP服务器之间的区别在架构上是不重要的。单个软件应该能够充当Web客户端,然后充当Web服务器,而不使用两个完全不同的API。

与任何Web服务一样,Web客户端和服务器通过预定义的URI交换表示。在Restlet解决方案中,Web服务器将请求定向到Restlet层(Servlet)。在该层中,Restlet应用程序将HTTP请求委托给这些特定的Restlet资源。

C.Struts 2

struts 2(http://struts.apache.org/2.x)框架是一个以模型 - 视图 - 控制器(MVC)架构模式[2]为模型的Web开发框架。该框架构建于Java Servlet规范之上,可与任何Java Web服务器(如Tomcat或JBoss)配合使用。 Struts 2是Java EE平台的全功能Web应用程序框架。提供自动表单验证,Java对象域填充和视图渲染的国际化,它可以使Web应用程序开发更容易。

Struts 2 [5]是第二代Web应用程序框架,它实现了模型 - 视图 - 控制器(MVC)设计模式。它建设于经过实践和证明最佳的,社区认可的设计模式之上。第一代Struts的主要目标之一是将来自桌面应用程序世界的MVC模式合并到Web应用程序框架中。这个结果模式有时被称为Model 2模式。 Struts 1可以声称对过去10年中许多设计更好的Web应用程序负责。在某些时候,Struts社区开始意识到第一个框架中的局限性。有了这样一个活跃的社区,识别框架中的弱点和不灵活点并不难实现。 Struts 2利用了许多经验教训来提供更清晰的MVC实现。同时,它引入了几个新的架构特性,使框架更清晰,更灵活。这些新功能包括用于从行动逻辑中分层交叉问题的拦截器;基于注释的配置,以减少或消除XML配置;一种强大的表达语言,对象图导航语言(OGNL),它横跨整个框架;以及支持可修改和可重用UI组件的基于MVC的迷你标记API。在这一点上,不可能做更多的名字丢弃。

Struts 2应用程序的核心是action类。在Str

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[451517],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。