问题 问答题

试题三论基于REST服务的Web应用系统设计 REST(REpresentationalStateTransfer)是指从几种基于网络的架构风格衍生出来的一种混合架构风格,它是目前互联网的核心架构风格。基于REST服务(RESTfulService)的Web应用系统设计任务主要包括:识别并设计REST风格的服务,采用面向服务的思想进行REST服务集成。采用这种方法设计的Web应用系统能够结合REST风格和面向服务思想的优点,近年来受到了广泛的关注。 请围绕“基于REST服务的Web应用系统设计”论题,依次从以下三个方面进行论述。 1.概要叙述你参与实施的Web应用系统开发项目以及你所承担的主要工作。 2.简要叙述与传统的Web服务相比,采用REST服务构建的Web应用具有哪些优势和不足。 3.阐述你在设计基于REST服务的Web应用系统时遇到了哪些问题,如何解决。

答案

参考答案:

写作要点

一、论文中要具体介绍项目的总体需求(特别是质量属性需求)、Web 应用系统的逻辑与物理拓扑结构、采用的技术等内容和承担的实现工作。

二、REST(Representational State Transfer)是指从几种基于网络的架构风格衍生出来的一种混合架构风格,目前Web 的体系结构正是基于REST 风格的。REST 网络中的特点是客户端/服务器、无状态、缓存、统一接口、分层系统和按需代码。REST 组件通过以一种数据格式转移资源的表述进行通信,可以基于接收者的能力和期待的内容,以及资源的性质动态地选择不同的表述。 与传统的Web 服务相比,REST 服务主要有以下优势:

(1)REST 服务基于W3C/IETF 的标准与规范(包括HTTP、XML、URI 和MIME 等),其实现技术简单、成熟。

(2)REST 服务基于URI 和超链接技术,不需要通过集中式的服务信息仓库即可发现服务资源。

(3)REST 服务支持缓存,具有无状态的特性,这些使得REST 服务能够支持大量客户端,构建的应用系统具有较强的伸缩性。

(4)REST 服务基于轻量级的Web 框架,仅仅需要基本的开发工具支持,构建过程简单且成本较低。

(5)REST 服务的测试相对简单,采用浏览器即可完成服务功能测试。

与传统的Web 服务相比,REST 服务主要存在如下不足:

(1)REST 服务倡导的REST 风格与实际实现尚存在一定差距。例如高层REST 服务倡导使用GET、PUT、POST 和DELETE 所有4 个统一接口,在REST 实现部分通过只能采用GET 和POST接口,因为大多数的代理和防火墙会屏蔽其他接口;并且XHTML 表单中只能使用GET 和POST接口。

(2)REST 服务需求所有的输入参数都必须在URI 中传递,这样会产生对参数容量大小的限制(目前的大小是4KB)。如果超出该数量,会导致HTTP 协议错误(错误代码414:Request-URI too long)。

(3)在URI 中表达复杂类型的参数比较困难,且目前对URI 中的参数不存在一种公认的编组(marshalling)和解编(un-marshalling)方法。

三、进行基于REST 服务的Web 应用系统的设计时可能遇到的问题包括:如何识别并设计REST 风格服务;构建REST 服务的运行时环境,包括HTTP 服务器与应用服务器选型等;富客户端表现方式及编程语言的选择;系统逻辑与物理拓扑结构的分析与设计等。

单项选择题
单项选择题