web服务的面向资源与面向活动

原创 2012年03月29日 22:17:22
REST 样式与 SOAP 样式 Web 服务之间关系的概览

  每当一些 Web 应用服务提供方提出允许开发者集成他们的服务的 Web 服务 API 时,大家都非常关心由 API 实现的互操作设计模式。如果 API 使用的是 REST 样式的互操作,REST 方法的拥护者就会将该 API 作为说明为什么 REST 样式服务比 SOAP 样式服务更优越的重要例子而加以称赞;同样地,如果 API 使用 SOAP 样式 Web 服务模式,情况也类似。似乎很少有人关心这样的一个事实,模式的选择主要取决于正在被执行的应用程序的类型,并且像所有优秀的体系结构决策一样,开发者应该将他们的选择基于正在被开发的应用程序的特定技术需求和特性,而不是基于针对单一体系结构方法的一些特殊偏好。

  资源还是活动?

  从基本原理层次上说,REST 样式和 SOAP 样式 Web 服务的区别取决于应用程序是面向 资源的还是面向 活动的。

  面向资源服务集中于明确的数据对象,一些基本、标准的操作可以依据这些数据对象而执行。如权威的 Gang of Four(GoF) 设计模式这本书所述,对于熟悉面向对象设计模式概念的开发者来说,面向资源服务与基本 Memento 模式类似。实际上,服务提供方维护一组资源,并且公开一组基本操作来执行以下任务:

  检索资源修改资源创建新资源删除资源根据定义,REST 样式 Web 服务是面向资源的服务。您可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。其核心操作包括:

  GET - 该操作返回已标识资源的状态表示。您可以通过大量的上下文要素来确定状态,例如谁正在提交请求、操作的参数(传入的参数如 HTTP 头或者查询字符串参数)和服务提供方维护的当前会话状态。POST - 该操作执行对已标识资源的一些特定于应用程序形式的更新。该操作行为完全依赖于实现它的服务。由该操作返回的数据也完全依赖于应用程序。举例来说,像 GET 操作一样,它可以返回一个状态表示,它还可以选择根本不返回任何数据。PUT - 该操作在已标识位置(URI)创建新资源。操作输入必须包括一个资源的状态表示。它完全依赖服务来创建基于这个状态表示的资源。DELETE - DELETE 操作销毁已标识位置(URI)的资源。在许多方面,REST 样式 Web 服务与 SQL、元组空间(tuple spaces)、简单消息列队等技术相似。它们都使用普通的简单操作针对明确的资源起作用。

  SQL - SELECT、INSERT、DELETE、UPDATE 等元组空间 - GET、PUT消息列队 - SEND、RECEIVE在每一个案例中,服务接口的设计允许您移动关于资源的信息,让其依赖于请求方来指出希望通过这些信息来做什么。

  与此相对的是 面向活动的资源。该类型的应用程序集中于您可能执行的操作,而不是集中于操作所依靠的资源。活动服务的一个简单的例子就是银行事务,在那里用户可以把钱从一个账户转移到另一个账户上。用户不想直接操作资源(钱、银行账户等等),他们只想告诉银行他们想要达到的目的,并且让银行根据他们的利益对资源进行处理。用 GoF 术语来描述应用程序:

  命令中介方策略代理设计模式面向资源服务不管资源的类型怎样,执行的操作可以保持相对不变,与面向资源服务不同,面向活动服务的操作完全依赖于正在执行的活动类型。例如,银行服务可以公开一个名为 transferFunds 的操作,该操作不同的输入将完全决定服务的资金转移功能。

  在面向资源的服务中,一组普通操作担当支持性的工作角色,为客户端提供访问和操作资源。然而,资源是关注的中心

Web Service——面向服务编程的方式之一

在上篇博客中,我们认识了面向服务编程。本篇博客,将学习Web Service,它属于实现面向服务编程的方式之一。     【一.什么是Web Service?】     Web Servic...
  • u013034223
  • u013034223
  • 2016年01月27日 15:26
  • 1380

面向服务编程

从最初的面向过程编程,到后来觉得难以理解的面向对象编程,从软件工程的发展历程中来看,这已经成为我们编程路上熟知的两种编程方式。     接触了ITOO项目这么长时间,才发现,不知不觉,我们已经进入了...
  • u013034223
  • u013034223
  • 2016年01月24日 19:14
  • 1764

REST与面向资源的Web开发-李锟(读书笔记)

1:什么是WEB         从技术角度理解Web有三大基石,第一是URI,标识资源,第二个HTTP操作资源,第三个HYPERTEXT超文本,描述资源的状态,超文本也可以有XML JSON或...
  • u013628152
  • u013628152
  • 2014年12月24日 17:32
  • 1467

分布式服务架构和面向服务架构

分布式服务架构: 一:建立servicedao(project 提供服务) 改pom.xml文件,引用  ;引用po;删掉spring框架的包 写dao、mapping、service、servoce...
  • GuXAiXia
  • GuXAiXia
  • 2017年05月25日 15:58
  • 394

面向服务的体系架构(SOA)

面向服务的体系架构(SOA)—架构篇 1、面向服务的体系架构(SOA)      面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出...
  • JavaWebRookie
  • JavaWebRookie
  • 2017年03月11日 16:27
  • 13646

面向服务的分析与设计原理

面向服务的分析与设计原理SOA 项目交叉学科建模方法 最初的面向服务的体系结构(Service-Oriented Architecture,SOA) 的实现项目的经验表明,诸如面向对象的分析与设计(...
  • ycl295644
  • ycl295644
  • 2017年01月22日 16:18
  • 685

【编程】面向过程—面向对象—面向服务

.面向过程 含义:顾名思义面向过程就是一种以过程为中心的编程思想,亦可以叫做“面向记录”面对过程能做到的就是分析出解决问题所需要的步骤,然后使用函数把步骤一步一步实现,使用的时候一个一个依次解决就好了...
  • dfhgshgdf
  • dfhgshgdf
  • 2016年09月09日 10:21
  • 767

面向连接服务、无连接服务

1、面向连接的服务:就是通信双方在通信时,要事先建立一条通信线路,其过程有建立连接(通过三次握手的方式建立,建立连接是需要分配相应的资源如缓冲区,以保证通信能正常进行)、使用连接和释放连接三个过程。它...
  • ljabclj
  • ljabclj
  • 2015年04月21日 09:32
  • 1926

对面向过程,对象,接口,切面的理解

我对面向过程,对象,接口,切面的理解 --模范青蛙   1.面向过程 面向过程是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实...
  • mo_fan_qing_wa
  • mo_fan_qing_wa
  • 2015年08月29日 10:26
  • 2222

面向报文(UDP)和面向字节流(TCP)的区别

转自:http://blog.csdn.net/ce123/article/details/8976006 面向报文(UDP)和面向字节流(TCP)的区别 面向报文的传输方式是应用层交...
  • lalioCAT
  • lalioCAT
  • 2016年03月16日 10:26
  • 1388
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:web服务的面向资源与面向活动
举报原因:
原因补充:

(最多只允许输入30个字)