• 玩转WebService -- 教程及组成元素介绍


    内容整理自菜鸟教程网站 http://www.runoob.com

    什么是Web Services?

    • Web Services 是应用程序组件
    • Web Services 使用开放协议进行通信
    • Web Services 是独立的(self-contained)并可自我描述
    • Web Services 可通过使用UDDI来发现
    • Web Services 可被其他应用程序使用
    • XML 是 Web Services 的基础

    它如何工作?

    基础的 Web Services 平台是 XML + HTTP。

    HTTP 协议是最常用的因特网协议。

    XML 提供了一种可用于不同的平台和编程语言之间的语言。

    Web services 平台的元素:

    • SOAP (简易对象访问协议)
    • UDDI (通用描述、发现及整合)
    • WSDL (Web services 描述语言)

    (下一个章节会搭建一个WebService 来演示)

    什么是SOAP?

    基本的 Web services 平台是 XML + HTTP。

    • SOAP 指简易对象访问协议
    • SOAP 是一种通信协议
    • SOAP 用于应用程序之间的通信
    • SOAP 是一种用于发送消息的格式
    • SOAP 被设计用来通过因特网进行通信
    • SOAP 独立于平台
    • SOAP 独立于语言
    • SOAP 基于 XML
    • SOAP 很简单并可扩展
    • SOAP 允许您绕过防火墙
    • SOAP 将作为 W3C 标准来发展

    SOAP的语法及结构:

    一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

    • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
    • 可选的 Header 元素,包含头部信息
    • 必需的 Body 元素,包含所有的调用和响应信息
    • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

    所有以上的元素均被声明于针对 SOAP 封装的默认命名空间中:

    http://www.w3.org/2001/12/soap-envelope

    以及针对 SOAP 编码和数据类型的默认命名空间:

    http://www.w3.org/2001/12/soap-encoding

    • SOAP 消息必须用 XML 来编码
    • SOAP 消息必须使用 SOAP Envelope 命名空间
    • SOAP 消息必须使用 SOAP Encoding 命名空间
    • SOAP 消息不能包含 DTD 引用
    • SOAP 消息不能包含 XML 处理指令

    SOAP的消息结构示例:

    什么是 WSDL?

    WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

    • WSDL 指网络服务描述语言
    • WSDL 使用 XML 编写
    • WSDL 是一种 XML 文档
    • WSDL 用于描述网络服务
    • WSDL 也可用于定位网络服务
    • WSDL 还不是 W3C 标准

    WSDL 可描述网络服务(Web Services)

    WSDL 指网络服务描述语言 (Web Services Description Language)。

    WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。

    WSDL 文档


    WSDL 文档仅仅是一个简单的 XML 文档。

    它包含一系列描述某个 web service 的定义。


    WSDL 文档结构

    WSDL 文档是利用这些主要的元素来描述某个 web service 的:

    元素 定义
    <portType> web service 执行的操作
    <message> web service 使用的消息
    <types> web service 使用的数据类型
    <binding> web service 使用的通信协议

    一个 WSDL 文档的主要结构是类似这样的:

    WSDL 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。


    WSDL 端口

    <portType> 元素是最重要的 WSDL 元素。

    它可描述一个 web service、可被执行的操作,以及相关的消息。

    可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。


    WSDL 消息

    <message> 元素定义一个操作的数据元素。

    每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。


    WSDL types

    <types> 元素定义 web service 使用的数据类型。

    为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。


    WSDL Bindings

    <binding> 元素为每个端口定义消息格式和协议细节。


    WSDL 实例

    这是某个 WSDL 文档的简化的片段:

    <message name="getTermRequest">
      <part name="term" type="xs:string"/>
    </message>
    <message name="getTermResponse">
      <part name="value" type="xs:string"/>
    </message>
    <portType name="glossaryTerms">
      <operation name="getTerm">
        <input message="getTermRequest"/>
        <output message="getTermResponse"/>
      </operation>
    </portType>

    在这个例子中,<portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把 "getTerm" 定义为某个操作的名称。

    操作 "getTerm" 拥有一个名为 "getTermRequest" 的输入消息,以及一个名为 "getTermResponse" 的输出消息

    <message> 元素可定义每个消息的部件,以及相关联的数据类型。

    对比传统的编程,glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。

  • 相关阅读:
    golang 用tar打包文件或文件夹
    golang 最和谐的子序列
    golang 轮训加密算法
    golang map
    golang 队列
    golang 栈操作
    golang 多维数组
    golang 数组反转
    c# sendmessage control to scroll
    c# 启动的时候向其他程序传值
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407169.html
Copyright © 2020-2023  润新知