Web Service

Web Service 是什么?

Service(服务) 即:从传统意义上,运行在计算机后台(Daemon)的程序所提供的某种功能,成为“服务”。通俗的说,“服务”就是计算机可以提供的某种功能

那么根据来源的不同,“服务”分为两种:

  1. 本地服务:使用同一台机器提供的服务,不需要网络支持;
  2. 网络服务:使用另一台或者多台机器提供服务,需要网络的支持,其本质是通过网络去调用其他网站的资源。

Web Service 架构和云

若一个软件/网站主要部分采用了“网络服务”,即它把存储环节和计算环节“外包”给了其他网站,那么就可以认为这个软件/网站属于 Web Service 架构;

而其核心思想是,将不属于自己的核心业务和服务交给其他Web Service去做,自己只做核心业务和服务。“云计算”和“云服务”就是其同义词,只不过说法不同而已。

本地服务的缺陷

其原因和缺陷主要由以下三点:

  1. 本地资源不足:很多的数据和资料,仅仅通过本地资源是不够的或者说是不全面的;
  2. 成本因素:本地提供服务通常是高成本的,成本的来源通常是硬件和人员,硬件不用多说,就说人员还需要再专门找一个;
  3. 可移植性差:就是说将本地服务和数据移植到其他的机器上,很困难,尤其是跨平台。

Web Service的优势

除了本地服务的缺点以外,还具有如下四点优势:

  1. 平台无关。不管你使用什么平台,都可以使用Web service。
  2. 编程语言无关。只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Web service。这大大增加了web service的适用性,降低了对程序员的要求。
  3. 对于Web service提供者来说,部署、升级和维护Web service都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。
  4. 对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。

Web service的发展趋势

目前Web service有这样几种发展趋势:

  1. 在使用方式上,[ RPC ][ soap ] 的使用在减少,Restful架构占到了主导地位。
  2. 在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。
  3. 在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。

RPC 的原理

RPC的全称为:Remote Procedure Call 是一种远程进程间通讯协议

它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。

RPC 的程序包括 5 个部分:

 1. User - client2. User-stub - 负责将调用的接口、方法和参数通过约定的协议规范进行编码
 3. RPCRuntime - clientserver 之间的桥梁,负责传输 stubs 传过来的编码
 4. Server-stub - 对 client 端发送过来的信息进行解码
 5. Server - 服务器端,处理请求并返回结果

这 5 个部分的关系如下图所示
这里写图片描述

RPC 和 HTTP 的区别

RPC 是远程进程间的通信,即可以通过网络远程调用远端的机器上的某一段代码,至于网络协议是Http、UDP还是TCP等等都可以,传输什么数据格式(json,xml,二进制…)也都可以自己定义。

Http 是一种应用层协议,一般情况下不会涉及到需要对此进行编写代码,只需要利用好其特性即可;

Web Service 由上述所讲,是一种提供服务的方式。基于 Http 或者是 Https 来提供服务,比如RPC 或者是 RESTFUL。

SOAP 协议

SOAP的全称是:Simple Object Access Protocol (简单对象访问协议)。是在计算机网络中用以交换结构性信息来提供 Web Service 的一种协议说明。通常是以XML信息集合作为消息格式,同时它依赖于应用层的 HTTP 或者 SMTP 来进行转发和传输。

SOAP 允许运行在不同的操作系统上(如 Windows 和 Linux)的进程通过 XML 格式的信息相互传递信息。一旦想 HTTP 这种 Web 协议被安装和运行在所有的操作系统上,SOAP 会使得客户端脱离代码语言和平台的限制,调用 Web Service 和接收相应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值