且看百度百科是如何定义:web
Web service是一个平台独立的,松耦合的,自包含的、基于可编程的web的应用程序,可以使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操做的应用程序。编程
从定义中能够了解, WebService 主要具有三大特色:平台独立性,松耦合、自包含,分布式互操做。服务器
首先,能称为Web Service的应用,具有平台独立性,所谓平台独立性,在Windows、Linux、Unix平台等等均可以使用,是你们遵照的行业标准或者是某些事实标准,有些虽然不是行业标准,但你们都这么作,也都支持,也就慢慢变成事实了。网络
那什么不是通用的解决方案呢?如:Windows平台的COM/DCOM技术,只能局限于某个平台,一旦脱离该平台就不可使用。架构
基次,具有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中,以即是其余系统方便调用。
随着互联网技术的兴起,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特色:
Rest Service 相比Web Service建议的标准更轻量级,甚到用Javascript均可以调用,使用方更方便、高效、简单。REST架构遵循了CRUD原则,CRUD原则对于资源只须要四种行为:Create(建立)、Read(读取)、Update(更新)和Delete(删除)就能够完成对其操做和处理。
REST 从资源的角度来观察整个网络,分布在各处的资源由URI肯定,而客户端的应用经过URI来获取资源的表征。得到这些表征导致这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移(Representational State Transfer)。
Rest Service具有Web Service的全部特色:平台独立、松耦合、互操做性。而且,Rest 更轻量级,更简单。能够这么说吧,Rest Service 是Web Service的一种实现,并非说Rest是Web service替代。