日期:2012-09-06  浏览次数:20423 次

架构Web Service: 描述与注册,发布Web服务  
  


   
内容:

SOAP消息示例
XML Schema建模
WSDL服务描述
UDDI服务发布
总结
参考资料
作者简介


相关内容:

交互界面,Web服务定义的核心
实战Web服务
基于Web服务的应用、解决方案和开发平台
什么是Web服务?
为什么需要Web服务?
WSDL: 描述你的Web服务
UDDI 注册信息的数据模型




柴晓路 (fennivel@uddi-china.org)
Chief System Architect
2001年9月20日

本文是架构Web服务的系列文章的第六篇,也是最后一篇,文本以前文为基础,在前文的应用实例的基础上,考察了发布Web服务界面的整个过程:XML Schema建模、WSDL发布和UDDI注册。通过本文,大家可以详细具体地了解各个XML和Web Service的系列规范在Web Service的发布时所起的左右,对Web Service技术也将有一个深入的理解。
在前文中,我已经介绍过,Web服务是通过SOAP消息调用的,通过WSDL进行界面描述的,以及通过UDDI进行公共注册发布的。在前一篇文章中,我已经介绍了如何进行SOAP API的消息定义,那么在本文中,我将单把save_category提出来,看看在具体的实现上,应当如何对这个消息使用W3C XML Schema进行建模,如果使用WSDL将基于该消息调用的Web服务进行规范描述并交付调用者,以及如何将这个Web服务连同它的WSDL规范化描述文件一起发布到UDDI注册中心中去。希望大家能通过本文的实例讲解,在本系列的最后完整地了解Web服务的工作原理和相关技术规范的作用。

本文所引用的资源主要包括两类,一类是Web服务的技术资源网站,包含了大量Web服务的技术信息,另一类是Web服务“stack"系列技术规范,他们是一个整体的技术体系,包括UDDI、SOAP、WSDL、XML Schema, XML等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些资源链接找到所需的内容。

SOAP消息示例

以下是一个save_category的调用例子,在例子中使用了SOAP HTTP Binding(使用的SOAP规范的版本是1.2),假设目标Web服务被部署在www.sagitta.com,而调用的Web服务的入口位置将是http://www.sagitta.com/catalog/。

在这个消息中,将在一个现有的category中添加一个新的category和一个新的product。


POST /catalog HTTP/1.1
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "http://www.sagitta.com/catalog/"
Host: www.sagitta.com

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope">
  <env:Body>
    <save_category xmlns="http://www.sagitta.com/schema/">
      <authInfo>5Az784kJceHCE982eB</authInfo>
      <category categoryKey="cb4e17d1-6100-47f6-a532-cd9cbd30c073" parentCategoryKey="ab4e3de1-7865-f2c1-b49a-beccbd21c072">
        <name>Consumer Electronics</name>
        <description>Product Category for Consumer Electronics </description>
        <category categoryKey="" parentCategoryKey="cb4e17d1-6100-47f6-a532-cd9cbd30c073">
          <name>SONY Consumer Electronics</name>
          <description>Sony's Product Category for Consumer Electronics</description>
        </category>
        <product productKey="" parentCategoryKey=" cb4e17d1-6100-47f6-a532-cd9cbd30c073">
          <name>DSC-S75 Digital Camera</name>
          <description>Sony's Brand-New Professional Digital Camera</description>
          <compliantSpecBag>
            <specification specificationKey="Key[USB1.1]" />
          </compliantSpecBag>
          <featureBag>
            <feature>……</feature>
            <feature>……</feature>
          </featureBag>