webservice的原理及概念
1 webservice 所谓webservice就是定义了一套标准的调用过程: a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL b 客户端需要以一种标准的协议来调用此服务,这属于SOAP. c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于UDDI.
2 命名空间 命名空间其主要目的通过加一个命名属性,使名称保持唯一性。WSDL有大量的使用 命名空间的地方。本质上WSDL是一个XML文件,作为一个XML文件,为了区别同名的元素,就需要采用命名空间的概念。
3 WSDL的本质:服务内容的标准化描述 WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务 的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内 容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应 的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息 ,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息 传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。
4 SOAP的本质:标准的传输协议 SOAP是web service的标准通信协议,SOAP为simple object access protocoll的 缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。
5 UDDI的本质:服务的公共网址 将web service进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己的 web service进行注册发布供使用者查找. 然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么 服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有 IBM等4家UDDI商用注册网站。 因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的 URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务 方完全可以不进行UDDI的注册。
Web 服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;2、是指功能集合体被调用后所提供的服务。 Web Service 是为其它应用提供数据和服务的应用逻辑单元,应用程序通过标准的Web 协议和数据格式获得Web Service,如HTTP 、XML 和SOAP 等,每个Web Service 的实现是完全独立的。 简单地讲,Web 服务是一个URL 资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。 Web 服务的体系结构是基于Web 服务提供者、Web 服务请求者、Web 服务中介者三个角色和发布、发现、绑定三个动作构建的。简单地说,Web 服务提供者就是Web 服务的拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web 服务请求者就是Web 服务功能的使用者,它利用SOAP 消息向Web 服务提供者发送请求以获得服务;Web 服务中介者的作用是把一个Web 服务请求者与合适的Web 服务提供者联系在一起,它充当管理者的角色,一般是UDDI 。这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web 服务既可以是Web 服务提供者,也可以是Web 服务请求者,或者二者兼而有之。显示了Web 服务角色之间的关系: 其中,“发布”是为了让用户或其他服务知道某个Web 服务的存在和相关信息; “查找(发现)”是为了找到合适的Web 服务; “绑定”则是在提供者与请求者之间建立某种联系。
图1 Web 服务角色的相互关系 实现一个完整的Web 服务包括以下步骤: ◆ Web 服务提供者设计实现Web 服务,并将调试正确后的Web 服务通过Web 服务中介者发布,并在UDDI 注册中心注册 ; (发布) ◆ Web 服务请求者向Web 服务中介者请求特定的服务,中介者根据请求查询 UDDI 注册中心,为请求者寻找满足请求的服务; (发现) ◆ Web 服务中介者向Web 服务请求者返回满足条件的Web 服务描述信息,该描述信息用WSDL 写成,各种支持Web 服务的机器都能阅读;(发现) ◆ 利用从Web 服务中介者返回的描述信息生成相应的SOAP 消息,发送给Web 服务提供者,以实现Web 服务的调用;(绑定) ◆ Web 服务提供者按SOAP 消息执行相应的Web 服务,并将服务结果返回给Web 服务请求者。(绑定) 一、webservice概述 |