理解Web Service三种实现方式

Web Service概念: 根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络的远程服务器 端,执行客户所提交服务的请求。简单的来说就是服务器端向客户端提供服务。 Web Service实现方式: (1)远程过程调用(RPC) RPC协议就是为了解决不同的客户端跨平台的访问服务器而产生的,最初的Web Service都是采用RPC部署,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 rpc不依赖于具体的网络传输协议,tcp、udp、http等都可以。由于存在各式各样的变换和细节差异,相应的rpc也派生出了各式远程过程通信协 议。由于它的紧耦合性,未来将不会大有作为。

(2)面向服务架构(SOA) 在服务导向架构中,通讯由消息驱动,而不再是某个动作(方法调用)。这种WEB服务也被称作面向消息的服务。 (3)表述性状态转移(REST)

REST的架构设计

   REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速 度,性能、效率和易用性上都优于SOAP协议。

  REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行 为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)就可以完成对其操作和处理。这四个操作是一种原子操作,即一种 无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。

  REST架构让人们真正理解我们的网 络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因 此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式,可以降低开发 的复杂性,提高系统的可伸缩性。

REST的设计准则

  REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则:

  •   网络上的所有事物都被抽象为资源(resource);
  •   每个资源对应一个唯一的资源标识符(resource identifier);
  •   通过通用的连接器接口(generic connector interface)对资源进行操作;
  •   对资源的各种操作不会改变资源标识符;
  •   所有的操作都是无状态的(stateless)。

使用REST架构

  对于开发人员来说,关心的是 如何使用REST架构,这里我们来简单谈谈这个问题。REST不仅仅是一种崭新的架构,它带来的更是一种全新的Web开发过程中的思维方式:通过URL来 设计系统结构。REST是一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。REST架构有很多成功案例,如 Facebook,Yahoo等。

转载请注明地址: http://www.phpddt.com/phpdown/web-service.html

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2014-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏三杯水

纯开源产品打造初创公司运维体系

名称:CentOS 官网:https://www.centos.org/ 简介:CentOS(Community Enterprise Operating ...

472
来自专栏java一日一条

大型分布式网站架构技术总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人...

392
来自专栏祝威廉

其实连Docker公司都把Docker用错啦

好吧,我承认我标题党了。但是这篇内容应该让你从一个新的角度理解Docker的本质是什么。

532
来自专栏Java编程技术

高性能 RPC 框架 Dubbo 从入门到深入(详细原理介绍限时9.99)

课程简介 整体来说,一个公司业务系统的演进流程基本都是从单体应用到多应用。在单体应用时,不同业务模块相互调用直接在本地 JVM 进程内就可以完成,而变为多个应...

572
来自专栏鸿的学习笔记

分布式系统下如何进行数据复制?(上)

在开始讨论数据复制之前,我们需要一个理由为什么要进行数据复制?数据复制显然会给应用带来更高的复杂性,那么我们给出最大理由就是数据复制可以备份数据,使得节点挂掉的...

851
来自专栏美团技术团队

【沙龙干货】RDS平台介绍

今天我就给大家讲一下我们这边做的数据库运维的自动化平台,他是怎么样子的。首先我会给大家简单介绍一下我们做平台的背景,以及平台的一些技术架构,以及针对我们DBA和...

3674
来自专栏PHP技术

大型分布式网站架构技术总结

原文出处: ITFLY8 本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一...

3327
来自专栏Linyb极客之路

大型分布式网站架构需要点亮的技能树

以用户为中心,提供快速的网页访问体验。主要参数有较短的响应时间,较大的并发处理能力,较高的吞吐量,稳定的性能参数。

714
来自专栏竹清助手

如何理解一个高度抽象化的架构风格本质

REST本身是一个高度抽象化的架构风格,因而总是很难对它有一个比较深入且印象深刻的理解。写这篇文章的目的,是自己对学习REST的一个总结,也希望可以通过这篇文章...

613
来自专栏L宝宝聊IT

什么是 vCenter server

1662

扫描关注云+社区