Web service基础 - littleboy12580/learning_python GitHub Wiki
Web Service概念
Web Service 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的软件,能够利用这一平台实现分布式计算的目的;可以把Web Service理解成位于远程机器上的函数库,把网络上不知道什么地方的一些函数看做是一组服务,然后我再通过网络就可以使用这些服务;总结来说Web 服务就是一种部署在 Web 上的对象或者是应用程序组件。
Web Service结构
在Web 服务的体系结构中,涉及到三个角色: Web 服务提供者, Web 服务中介者,以及 Web 服务请求者;
同时还涉及到三类动作:发布,查找,绑定。
- Web服务提供者
Web 服务的拥有者,它会等待其他的服务或者是应用程序访问自己;可以发布 Web 服务,并且对使用自身服务的请求进行响应 - Web服务中介者
也称为服务代理,用来注册已经发布的 Web服务提供者,并对其进行分类,同时提供搜索服务;Web 服务中介者的作用就是把一个 Web 服务请求者和合适的 Web 服务提供者联系在一起,充当一个管理者的角色,一般是通过 UDDI来实现 - Web服务请求者 Web 服务功能的使用者,它通过服务注册中心也就是 Web 服务中介者查找到所需要的服务,再利用 SOAP 消息向 Web 服务提供者发送请求以获得服务
- 发布
Web服务提供者通过发布操作,可以向 Web 服务中介者注册自己的功能以及访问的接口 - 发现(查找)
使得 Web 服务请求者可以通过 Web 服务中介者来查找到特点的种类的 Web 服务 - 绑定
实现让服务请求者能够使用服务提供者提供的服务
Web Service基本元素
Web Service里有三种基本元素:SOAP,WSDL,以及UDDI
- SOAP
SOAP(Simple Object AccessProtocol )也就是简单对象访问协议,是一种用于访问 Web 服务的协议;它是基于XML 和 HTTP 的 ,其通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输;具体的SOAP介绍可以看我的另一篇Wiki:
地址:https://gitlab.ngbit.com/wanzeyao/my_project/wikis/soap%E5%9F%BA%E7%A1%80 - WSDL
WSDL (Web Services Description Language)也就是 Web 服务描述语言,是基于 XML的用于描述 Web 服务以及如何访问 Web 服务的语言;服务提供者通过服务描述将所有用于访问 Web服务的规范传送给服务请求者;
WSDL 描述了 Web服务的三个基本属性:- 服务所提供的操作
- 如何访问服务
- 服务位于何处(一般通过 URL 来确定)
具体的SOAP介绍可以看我的另一篇Wiki:
地址:https://gitlab.ngbit.com/wanzeyao/my_project/wikis/wsdl%E5%9F%BA%E7%A1%80
- UDDI UDDI(Universal Description, Discovery and Integration)即通用描述、发现与集成服务;UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成;UDDI 使用 WSDL 来描述到达 web services 的界面,通过采用 SOAP来实现跨平台的编程特性;概括的说,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已
Web Service开发步骤
- 开发阶段
实现一个 Web 服务,使这个 Web 服务能响应和接收 SOAP 消息;定义好逻辑模块(该Web服务的功能);最后撰写 WSDL 文件 - 部署阶段
指定 Web 服务的传输协议,将 Web 服务注册到相应服务描述部署文件 - 发布阶段
将 Web 服务的接口和调用的地址公开给客户端调用,常用的发布方式为基于 Web 提供的WSDL 的链接,当然 UDDI 也是一个选择