理解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 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

聊聊工程级别的组件化、插件化 以及 模块化

我们经常会听到组件化、插件化、模块化这三个概念,可是我们真的对这三个概念了解吗?明白它们三者之前的关系和区别吗?本文就我个人的理解做一下简单的总结,如有错误之处...

983
来自专栏JAVA高级架构开发

为什么微服务一定要有网关?

2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。

740
来自专栏开源项目

SSM(十一) 基于 dubbo 的分布式架构

现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的SSM项目来让第一次接触的同学能快速上手。 浅谈分布...

2926
来自专栏玄魂工作室

CTF实战2 Web应用构成

https://www.bilibili.com/video/av22207039/

772
来自专栏Java帮帮-微信公众号-技术文章全总结

01.WebService_基础知识

01.WebService_基础知识 WebService基础学习(一)—基础知识 一、WebService 1.什么是WebService Web ...

3559
来自专栏FreeBuf

基于流量的OpenSSL漏洞利用检测方法

CVE-2014-0160漏洞背景 2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)...

18110
来自专栏好好学java的技术栈

全网最全电子图书免费分享

1134
来自专栏Java架构师历程

2、使用 API 网关

本书的七个章节是关于如何设计、构建和部署微服务。第一章介绍了微服务架构模式。它阐述了使用微服务的优点与缺点,以及尽管如此,微服务通常是复杂应用的理想选择。该系列...

893
来自专栏前端黑板报

你真的了解 Web 缓存体系吗?

很高兴认识大家,之前做过很多分享,今天这次终于讲到正题了。因为之前一直讲自动化运维,其实做这么多年运维,自动化运维没干多少年。这几年很多公司各方面机器数量多了,...

801
来自专栏SEO

SEOer必学网站分析神器(第三节课)

35013

扫码关注云+社区