首页 > 开发 > 综合 > 正文

使用 UDDI 的 Web 服务描述和发现(第二部分)[转自微软]

2024-07-21 02:21:55
字体:
来源:转载
供稿:网友
使用 uddi 的 web 服务描述和发现(第二部分)
scott seely
microsoft corporation
2001年10月17日

简介


在上一个专栏中,karsten januszewski 已经带我们访问了 microsoft® uddi 小组。karsten 概要介绍了 uddi 的概念、用途和使用方法。在本文中,我们将介绍如何使用 microsoft uddi 注册表注册“cold rooster 收藏服务”。鉴于我们以前从未使用 uddi 进行过注册,现在就让我们从头讲起。

用 uddi 进行注册


由于从未在 microsoft uddi 站点(英文)注册过 cold rooster,所以首要任务就是在该站点创建一个帐户。注册帐户要求使用 passport 登录。登录后,您可以设置 uddi 电子邮件联系地址,将它连接到您的 passport 帐户或其他地址上。我选择的地址是 [email protected],因为在我的小组里不止我一个人在使用 uddi。原来 cold rooster 咨询公司需要使用电子邮件时,我们已经创建了这个电子邮件帐户,这看来是个明智的选择。
注册屏幕还会提示输入其他联系信息,例如注册者的姓名、联系电话和通信地址。要完成注册,您需要接受“使用规定”协议。请参阅 terms of use(英文)。
在注册表中填好联系信息,并接受“使用规定”后,uddi 站点将向您发送一封电子邮件,确认您的联系地址。单击邮件中的链接,就可以管理您的 uddi 帐户了。管理工作涉及到向注册表中添加公司数据、发布 tmodel 以及编辑注册详细信息。图 1 显示了管理页面。

图 1:uddi 管理页面

在 uddi 中添加公司


在 microsoft uddi 站点建立帐户后,下一步就是向 uddi 注册表中添加 cold rooster 咨询公司。我们可以通过 web 页面注册公司,也可以使用 .net sdk 或 com sdk 调用 uddi api 来注册公司。我选择使用 ui,因为我想一次注册成功。如果将来要经常更改接口内容,就应使该过程自动化以减少错误发生率。将公司添加到注册表中,就可以使用户根据我们的公司和所提供的 web 服务的类型来找到我们。要在 uddi 注册表中添加 cold rooster 咨询公司,请单击管理页面(图 1)中的“add a new business”链接。第一页将要求提供公司名称和说明。对于 cold rooster,我输入:
name:cold rooster 咨询公司
description:msdn architectural samples 小组使用的虚拟公司

在 uddi 注册表中添加公司后,现在可以添加其他信息了:
  • contacts:可以帮助客户解决各种业务问题的人。我们将 msdn architectural samples 小组的不同成员添加到联系人列表中。
  • services:该公司要提供的 tmodel(wsdl 文件)。我们在 uddi 条目中添加了“帐户”、“登录”和“报表”三种 tmodel。
  • identifiers:代表本公司的唯一的数据。例如,公司的注册序号。因为 cold rooster 没有上述数据,所以没有填写。
  • business classifications:标识公司所在的位置以及公司的业务。cold rooster 咨询公司位于美国的华盛顿州。
  • discovery url:提供了可以查找公司详细信息的位置。

首先完成简单的项目,最后保存服务。

在 uddi 中添加联系信息


这非常简单。就象填写其他地址表格一样,只要填写不同联系人的一般信息就可以了。潜在用户可以根据说明和使用注释来联系贵公司,以便申请使用 web 服务的许可、获得支持或咨询与业务相关的其他事项。图 2 显示了我的联系信息表格的外观。

图 2:详细的联系信息页

对公司进行分类


大多数公司可根据其业务范围分类。对实体进行分类时,uddi 分类有多种方法,包括:
  • north american industry classification system (naics-1997)(北美行业分类系统)
  • universal standard products and services codes (unspsc-7.03)(通用标准产品和服务代码)
  • iso 3166 geographic taxonomy(iso 3166 地理分类)
  • standard industrial classification (sic-1987)(标准行业分类)
  • geoweb geographic classification(geoweb 地理分类)
  • uddi types taxonomy(uddi 类型分类)
  • 除了 uddi 类型外,cold rooster 在所有分类中都进行了注册。之所以未在 uddi 类型分类中注册公司,是因为它是专用于对 tmodel 和服务信息进行分类的。
  • 要了解需要注册的内容,就必须知道 cold rooster 的业务范围和地理位置。cold rooster 咨询公司位于美国华盛顿州的雷德蒙德。它提供基于工程的辅助性的计算机咨询服务。而且,它擅长基于 windows 和 internet 的开发。知道了这些,我们需要分别按照六种分类方案为该公司正确分类。表 1 显示了按照每种分类方案对该公司进行分类的情况。 分类方案分类naics
    • 541511: custom computer programming services
    • 541512: computer systems design services
    unspsc
    • 81.11.16.07.00: programming for c or c++
    • 81.11.16.03.00: programming for html
    • 81.11.16.01.00: programming for microsoft® visual basic®
    • 81.11.16.12.00: programming or proprietary languages(也包括 c#)
    • 81.11.21.06.00: application service providers(提供 web 服务)
    • 81.11.21.03.00: world wide web (www) site design services
    iso 3166
    • us-wa (washington, usa, world)
    sic
    • 7371: computer programming services
    • 7372: information retrieval services
    geoweb 地理分类
    • 518816 (redmond, washington, usa, north america, world)

表 1:uddi 分类示例
公司分类完毕。下一步是添加三个 tmodel。

添加 tmodel


如果您没有读过上周的文章,那么请注意,tmodel 就是一个类型模型。对于 web 服务来说,tmodel 通常就是 wsdl 文件的同义词。它们使用同样的方法定义 web 服务所使用的类型以及消息和操作定义。给定一个 tmodel,就可以知道何种 web 服务操作是由实现该 tmodel 的实体实现的,以及如何访问这些操作。将 wsdl 文件注册为 tmodel,是因为这些 tmodel 最终可能有多个实现。
服务器端的收藏 web 服务包括三项 web 服务:登录、帐户和报表。“登录”web 服务允许被授权者登录并得到一个标记。使用该标记,被授权者可以访问“帐户”和“报表”web 服务中的其他方法。要添加 wsdl 文件,需要将其部署在一个可以通过公共 internet 访问的服务器上。这里也需要使用 uddi 分类。
要添加 tmodel,请在管理页面(图 1)上单击“add a new tmodel”。接着需要添加一些 tmodel 的基本信息:名称、说明以及 wsdl 文档所在的位置。完成后,将 tmodel 分类为 wsdl 文档,并将信息发布到 uddi 注册表中。这真是轻而易举。图 3 显示了“登录”tmodel 要填写的详细信息。

图 3:“登录”tmodel 的详细信息
在下一个屏幕上,可以添加服务分类和公司标识。这里的数据和在公司信息中输入的数据相同。作为服务分类,我们只使用了 uddi 分类。可以通过单击一系列链接来指定这些信息:
  • 用于 tmodel 的类型
  • web 服务的规范
  • wsdl 中说明的 web 服务的规范
  • 我在注册 cold rooster 收藏服务时,对于 logon.wsdl、account.wsdl 和 report.wsdl 就采用了这些步骤。完成 uddi 注册后,注册表中的这些信息才可用。

定义服务


tmodel 注册完毕后,仍然需要添加服务以声明存在这些服务。要添加服务,请回到管理页面,这次您会看到您的公司已列在“add a new business”(图 1)中。选择您的公司并滚动到“services”。在此处单击“add a service”。在第一页填写服务的详细信息。对于“登录”web 服务,我填写的内容如下:
  • name:登录
  • description:验证被授权者并提供访问标记

完成后,再次将服务分类为“wsdl 中说明的 web 服务规范”。接着将该服务绑定到已注册的“登录”tmodel。在以下所示的“define a new binding”字段中,我填写的内容如下:
  • access point:https://coldrooster.com/ssf/logon.asp
  • url type:http
  • description:cold rooster 咨询公司登录 web 服务的端点

要完成这一步,必须将服务与“收藏 web 服务:登录 tmodel”联系起来。在“specification signatures”下,选择“add specification signature”。要按名称查看模型,请输入“收藏 web 服务”。这将调用收藏服务所保存的全部三个 tmodel。选择“收藏 web 服务:登录”并按下“continue”。一个 web 页将显示出来,您需要在上面编辑关于端点的详细信息。我填写的内容如下:
  • edit specification signature; description:收藏 web 服务的 cold rooster 实现:登录 tmodel
  • instance details; parameters:http://msdn.microsoft.com/library/?url=/library/en-us/dncold/html/ssfapiref.asp?frame=true
  • instance details; description:api 引用文档
  • overview document; document location:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncold/html/ssf1sec.asp
  • overview document; description:服务器端收藏安全信息

填写完毕后,再次单击“continue”。接着,在返回到主公司数据视图并向 uddi 注册表发布全部信息前,可以查看输入的所有关于登录服务的信息。对“帐户”和“报表”web 服务重复这一过程。

查找数据


根据 geoweb 分类,今天(2001 年 10 月 8 日)只有一家公司列在雷德蒙德中:cold rooster 咨询公司。使用 iso 3166 分类再搜索一次。这次找到了九家公司。其他分类将产生其他的统计结果。对于其他的分类方案,其结果通常需要占用好几页。
现在数据是可以发现的,因此对存储收藏 url 的 web 服务感兴趣的人,在理论上可以找到并使用 cold rooster 解决方案。对于使用 microsoft® visual studio® .net 的用户,使用 uddi 查找 web 服务并将其添加到自己的工程中将更加简单。
第一次遇到“add web reference”对话框(“project”|“add web reference”)时,会显示一个对话框,允许您通过 microsoft uddi 服务器来查找 web 引用(也称为 wsdl 文件)。用于 visual studio 的端点是 http://uddi.microsoft.com/visualstudio/。当告诉该端点查找所有以“cold”开头的公司时,它只找到了我注册的三个 web 服务:帐户、登录和报表。可以在此处(英文)查看此次查询的结果。要将 web 引用添加到“登录”web 服务中,只要单击“logon”以扩展该节点,然后单击“favorites web service: logon”查看 wsdl。在这里,单击“add reference”,就可以登录到收藏 web 服务了。
如果到现在您还没有获得收藏服务授权,请到 favorites service admin console(英文)申请一个。在 15-30 分钟内您将收到一个密码。要使用 visual basic 连接到“登录”web 服务,则代码编写非常简单:
sub main()    dim svc as new com.coldrooster.www.logon()    system.console.writeline(svc.logon("许可证持有者", "密码"))    system.console.writeline("按 enter 键退出")    system.console.readline()    svc.dispose()end sub

代码将显示 guid 标记,供用户访问收藏 web 服务中可用的其他方法。编写其他方法的代码也同样简单。

总结


通过使用 uddi 注册公司、自定义 tmodel 和 web 服务,您可以帮助世界各地的开发人员找到您的 web 服务。uddi 注册表允许您发布的不只是 web 服务端点和公司数据。使用 uddi 的用户也可以使用该界面查找 web 服务文档和示例。microsoft uddi 注册表是免费使用的。我们鼓励用户使用此注册表注册您的 web 服务和公司。请花一些时间来熟悉 http://uddi.microsoft.com(英文)。您可能试图查找 cold rooster 咨询公司的信息,并浏览它以查看所有可用的信息。最后一点,现在可是使用 visual studio .net 来连接收藏服务并进行实际操作的绝佳时机。
下一次,将由客座专栏作家 allen wagner 主持。allen 将讨论处理大型 soap 消息的技术。



at your service
scott seely 是 msdn architectural samples 小组的成员。除了那里的工作以外,他还通过 prentice hall 出版了两本书:《soap: cross platform web service development using xml》(soap:使用 xml 进行跨平台 web 服务的开发)和《windows shell programming》(windows shell 编程)。他还编写和维护一个小型的基于 c++ 的 soap 库(位于 http://www.scottseely.com/soap.htm)。该库根据 lgpl 协议对外发布。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表