术语“web服务”经常用来描述一个客户端(计算机)可通过互联网进行远程调用一个服务,通过诸如HTTP的Web协议。比如调用不同机器上的一个方法、过程或函数。因此Web服务非常类似于是“远程过程调用”(或只是“远程”)协议。比如java的RMI,Windows DCOM,CORBA的IIOP等。这些Web服务的原理如下图所示:
(一个客户端通过互联网调用Web服务)
web服务还可以使用在内部的网络,作为许多不同的应用程序能够与彼此交互的方式。标准化的Web服务协议,使得各种应用程序集成更加容易。这一原则如下图:
(通过web服务通信的各个独立的应用)
web服务与web站点(web应用)
web服务和web站点之间的主要区别是:web站点主要是用来供人使用(人机交互),而web服务通常用于计算机到计算机的交互。
当然,这种区分是有点模糊。 Web应用程序可以包含一个图形用户接口提供给人类用户,而一组web服务是提供给计算机“用户”(客户端)。例如:像Paypal支付服务既有提供给人的图形化用户界面,也有一组通过后端系统访问Web支付服务。
此图显示的是一个图形用户界面,和一个Web服务接口(一组Web服务暴露出Web应用程序中需要的功能)的Web应用程序:
(包含GUI人机交互和web服务的web应用)
Web服务消息交换模式
有多种类型的web服务。某些Web服务客户端调用,以获取一些信息。 例如,客户端可以调用天气Web服务来获取天气信息。 这些都是典型的只读的Web服务。实际上,只读的Web服务可能发送一个空请求到Web服务器,然后将数据返回。所以,即使一个Web服务是只读的,客户端也会发送一些数据(最小请求)到Web服务器来获得它要读取的数据。
还有只写的web服务,例如,你可能会定期转移一些数据到web服务器。其他的是读写的web服务,它需要发送一些数据到web服务,然后再接收返回的数据。这三种通讯模式如下图:
(Web服务的三种消息交换模式:只读,只写和读/写)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/140656.html