UDDI - 使用示例


假设某公司 XYZ 想要向 UDDI 注册其联系信息、服务描述和在线服务访问信息。以下步骤是必要的 -

  • 选择与之合作的运营商。每个运营商都有不同的条款和条件来授权访问其注册表副本。

  • 构建或以其他方式获取 UDDI 客户端,例如运营商提供的客户端。

  • 从运营商处获取身份验证令牌。

  • 登记有关业务的信息。包含尽可能多的信息,这些信息可能对搜索匹配的人有帮助。

  • 释放身份验证令牌。

  • 使用查询 API 测试信息的检索,包括绑定模板信息,以确保获取信息的人可以成功使用它与您的服务进行交互。

  • 填写 tModel 信息,以防有人想要搜索给定服务并找到您的企业作为服务提供商之一。

  • 根据需要更新信息以反映不断变化的业务联系信息和新的服务详细信息,每次从运营商获取和发布新的身份验证令牌。每当您需要更新或修改您已注册的数据时,您必须返回到您输入数据的运营商处。

以下示例将展示 XYZ 公司如何注册其信息,以及对销售 XYZ 产品线感兴趣的分销商如何使用 XYZ.com Web 服务查找有关如何联系该公司并下订单的信息。

创建注册表

例如,在从 Microsoft 运营商之一获取身份验证令牌后,XYZ.com 开发人员决定将哪些信息发布到注册表并使用 Microsoft 提供的 UDDI 工具之一。如果需要,开发人员还可以编写 Java、C# 或 VB.NET 程序来生成适当的 SOAP 消息。这是一个例子。

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

<?xml version = "1.0" encoding = "UTF-8" ?>
<Envelope xmlns = "http://schemas/xmlsoap.org/soap/envelope/">
   <Body>
      <save_business generic = "2.0" xmlns = "urn:uddi-org:api_v2">
         <businessKey = "">
         </businessKey>
         
         <name>
            XYZ, Pvt Ltd.
         </name>
         
         <description>
            Company is involved in giving Stat-of-the-art....
         </description>
         
         <identifierBag> ... </identifierBag>
         ...
      </save_business>
   </Body>
</Envelope>

此示例说明了请求为 XYZ 公司注册 UDDI 业务实体的 SOAP 消息。key 元素为空,因为操作符会自动生成数据结构的 UUID 键。为了显示一个简单的示例,省略了大多数字段。

公司 XYZ 始终可以执行另一个 save_business 操作来添加创建业务实体所需的基本信息。

检索信息

XYZ 公司用相关信息更新其 UDDI 条目后,想要成为 XYZ 分销商的公司可以在 UDDI 注册表中查找联系信息,并获取 XYZ.com 在线发布的两个 Web 服务的服务描述和访问点订单输入:季前批量订单和旺季补货订单。

此示例说明了获取有关 XYZ 公司的业务详细信息的示例 SOAP 请求。一旦您知道已注册的特定企业的 UUID 或密钥,您就可以在 get_businessDetail API 中使用它来返回有关该企业的特定信息。

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

<?xml version = "1.0" encoding = "UTF-8" ?>
<Envelope xmlns = "http://schemas/xmlsoap.org/soap/envelope/">
   <Body>
      <get_businessDetail generic = "2.0" xmlns = "urn:uddi-org:api_v2">
         <businessKey = "C90D731D-772HSH-4130-9DE3-5303371170C2">
         </businessKey>
      </get_businessDetail>
   </Body>
</Envelope>