概述
Web Service的出现是为了解决平台的互操作性差、和异构性等问题严重影响了Web应用的发展。它是一种跨平台跨语言的远程调用技术,服务端和客户端可以采用不同的语言编写,也可以在不同的平台上运行。
特点
Web Service是一种部署在Web上的对象或应用组件,客户端可以方便的调用Internet上暴露出来的接口来获得服务。它具有一下特点:
1)良好的封装性
Web Service是一种部署在Web上的对象,因此具有对象的特点,及良好的封装性,因此客户端只需要知道接口的相关信息而不需要关系具体实现。
2)松耦合
只要Web Service的调用接口不变,其内部改变对于客户端来说是透明的。
3)使用标准协议规范
Web服务是基于XML的消息交换机制的,所有的公共契约都采用Internet开放标准协议。
4)高度可集成性
由于Web Service采用了标准协议作为组件描述,因此他们之间可以通过Web Service来实现互操作。
5)易于构建
开发人员可以使用任何常用的编程语言及其现有的应用程序组件来构建。
应用场景
1)跨防火墙通信
分布式应用程序的使用者可能遍布世界各地,客户端和服务端之间可能会有防火墙或者代理服务器,因此客户端和服务端通信问题尤为棘手,Web Service的出现就很好地解决了这一问题。
2)应用程序集成
对于企业级应用来说,把不同语言不同平台下的应用集成起来可谓是难上加难,Web Service跨平台跨语言的特性只需要各应用之间暴露出来对方需要的接口,而不用关心程序之间的异构性。
3)B2B集成
Web Service的开放性、跨平台和跨语言是的B2B应用集成更加便捷,缩短集成时间,降低开发成本。
4)软件和数据重用
组件提供商可以把组件变成Web Service,并把相应的接口提供给服务使用者。这样服务使用者就可以无需将服务组件下载到本地,而是直接在应用中调用服务。
技术架构
目前有三种主流的Web服务实现方案:REST、SOAP、XML-RPC。XML-RPC已经慢慢被SOAP取代了,现在很少采用。SOAP在成熟度、安全性方面都优于REST,,但是在效率和易使用上,REST更胜一筹,SOAP是Web Service的核心技术,现在很多Web Service是基于SOAP的。
工作原理
Web Service角色包括服务提供者、服务注册中心和服务使用者。服务提供者在服务注册中心注册和发布自己的服务,并对服务请求进行响应。服务注册中心担任中介的作用,一边接收服务提供者发来的服务,一边供服务使用者在其统一目录中查找合适的服务。服务使用者是根据具体的应用需求调用服务的。