文档章节

关于Web Service和Rest Service理解

小李飞刀008
 小李飞刀008
发布于 2013/10/22 14:18
字数 1349
阅读 19204
收藏 15

什么是WebService?

且看百度百科是如何定义:

Web service是一个平台独立的,松耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

从定义中可以了解, WebService 主要具备三大特点:平台独立性,松耦合、自包含,分布式互操作。

首先,能称为Web Service的应用,具备平台独立性,所谓平台独立性,在Windows、Linux、Unix平台等等都可以使用,是大家遵守的行业标准或者是某些事实标准,有些虽然不是行业标准,但大家都这么做,也都支持,也就慢慢变成事实了。

那什么不是通用的解决方案呢?如:Windows平台的COM/DCOM技术,只能局限于某个平台,一旦脱离该平台就不可以使用。

基次,具备Web Service应用程序,是松耦合的,自包含的。所谓松耦合,即模块之间的依赖型和制约比较小,更改一个模块不会比较大的影响其他模块,说白了,不用关心模块内部是如何实现的,给你标准的接口,你用大家都用的技术与我互通即可。关于自包含的理解,指在组件重用时不需要包含其他的可重用组件,自己搞掂一切,呵呵。

再次,分布式互操作性,这点大家非常好理解,开发出来的应用,要具备与其它系统之间的互操作,现在系统都不是孤立的,开放出来的接口,可以在任意平台上可调用,不具有依赖性。

Web Service标准

早期,软件巨头们定义的Web Service标准,主要由三部分构成: SOAP,WSDL,UDDI。

SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。这里需要注意,SOAP是可以在其他协议上,不仅是HTTP, 可以基于SMTP,消息队列等。

WSDL 是web Service描述语言 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

UDDI 基本没有实现,这种想法也不现实。可以理解UDDI是个Web Service公共仓库,服务写好注册到UDDI中,以便是其他系统方便调用。

Rest Service

随着互联网技术的兴起,XML越来越令人诟病,XML的数据包越来重,SOAP协议方便性和灵活性都有欠缺,尤其兴起的Web2.0发展,由Yahoo、Google 和 Facebook等大型互联网公司的倡导,REST代表性状态传输(Representational State Transfer,REST)在 Web 领域已经得到了广泛的接受,是基于 SOAP 和 Web 服务描述语言(Web Services Description Language,WSDL)的 Web 服务的更为简单的替代方法。如GOOGLE 这些提供者弃用或放弃了基于 SOAP 和 WSDL 的接口,而采用了更易于使用、面向资源的模型来公开其服务。

Rest 服务定义:

即REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

Rest Service特点:

  • 客户端和服务器结构
  • 连接协议具有无状态性
  • 能够利用Cache机制增进性能
  • 层次化的系统
  • 随需代码

Rest Service 相比Web Service建议的标准更轻量级,甚到用Javascript都可以调用,使用方更方便、高效、简单。REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行为:Create(创建)、Read(读取)、Update(更新)和Delete(删除)就可以完成对其操作和处理。

Web Service与Rest Service 区别

REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移(Representational State Transfer)。

Rest Service具备Web Service的所有特点:平台独立、松耦合、互操作性。并且,Rest 更轻量级,更简单。可以这么说吧,Rest Service 是Web Service的一种实现,并不是说Rest是Web service替代。

© 著作权归作者所有

小李飞刀008
粉丝 31
博文 18
码字总数 10732
作品 0
朝阳
架构师
私信 提问
加载中

评论(1)

景樗子刘
景樗子刘
Rest Service 是Web Service的一种实现,
不是吧?
关于Web Service和Rest Service理解

什么是WebService? 且看百度百科是如何定义: Web service是一个平台独立的,松耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用...

姚君
2014/04/17
291
0
什么是REST?

本文是从 What is REST? 这篇文章翻译而来。 让我来给你们做一个非常简单的,适用的解释。 REST 是一套用来创建Web Service的方法。 REST式的Web Service的主旨是让事情尽量的简单化。 REST...

红薯
2011/06/02
1K
8
10 个技巧让你的 RESTful Web 服务更加实用

提示:随着RESTful Web services的流行程度不断地上升,开发人员需要知道如何避免开发中的陷阱以及让开发出来的Web service达到自己能做到的最好程度。 过去的几年里,我们看到RESTful Web s...

坦诚相待
2012/04/09
6.1K
3
与Java Web Service相关的若干概念(JAX-WS,JAX-RS)

l JWS: 是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做 JWS(全称就是 java webservice)。没错,jws指的就是 javawebservice l Jws含有的技术 1. JAX-WS 2. JAX-RS 3. JAX...

豆豆4997
2014/04/09
97
0
ArcGIS Server 9.3 beta 体验二 -- 开发路线

AGS 9.3无论是从开发角度,还是开发方式和9.2相比都改进、丰富了不少,也兼容9.2ADF应用,通过Web Mapping Application Migration Utility可以将9.2模板应用程序升级到9.3环境中。这里我们先...

文艺小青年
2017/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Electron React Node

NPM配置手册https://cloud.tencent.com/developer/section/1490263 URL编码参考手册:https://www.w3cschool.cn/htmltags/html-urlencode.html 在配置React环境时,提示 npm ERR! code ECON......

DB_Terrill
13分钟前
3
0
Knative 实战:基于阿里云 Kafka 实现消息推送

在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何在阿里云上基于 Kafka 实现消息推送,本文给大家解锁这一新的姿势。 背景 消息队列 for Apache Kafka 是阿里云提供的分布式、高吞吐...

阿里云官方博客
14分钟前
3
0
自动评论csdn博客文章实现

正文 我们来用java代码爬取csdn博客网站,然后自动评论,这一波操作可以说是相当风骚了,话不多说,咱上代码。 第一步是登录代码,这个网上一大把,代码中用到了jsoup依赖包,用于解析html获...

码农实战
15分钟前
4
0
java速查手册Java Syntax Cheatsheet for Algorithms by TCXX

Numbers static MAX_VALUE xxxValue() public int compareTo(XXX) public boolean equals(Object o) static Integer valueOf(int i) static Integer valueOf(String s) static Integer value......

momo1987
24分钟前
3
0
vue Property or method "***" is not defined on the instance but referenced during render.报错

报错:title不是个方法 解决: 把:去掉不报错了

栾小糖
28分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部