使用 UDDI 的 Web 服务描述和发现(第二部分)[转自微软]
发表于:2007-06-30来源:作者:点击数:
标签:
使用 UDDI 的 Web 服务描述和发现(第二部分) Scott Seely Microsoft Corporation 2001年10月17日 简介 在上一个专栏中,Karsten Januszewski 已经带我们访问了 Microsoft UDDI 小组。Karsten 概要介绍了 UDDI 的概念、用途和使用方法。在本文中,我们将介绍
使用 UDDI 的 Web 服务描述和发现(第二部分)
Scott Seely
Microsoft Corporation
2001年10月17日
简介
在上一个专栏中,Karsten Januszewski 已经带我们访问了 Microsoft® UDDI 小组。Karsten 概要介绍了 UDDI 的概念、用途和使用方法。在本文中,我们将介绍如何使用 Microsoft UDDI 注册表注册“Cold Rooster 收藏服务”。鉴于我们以前从未使用 UDDI 进行过注册,现在就让我们从头讲起。
用 UDDI 进行注册
由于从未在 (英文)注册过 Cold Rooster,所以首要任务就是在该站点创建一个帐户。注册帐户要求使用 Passport 登录。登录后,您可以设置 UDDI 电子邮件联系地址,将它连接到您的 Passport 帐户或其他地址上。我选择的地址是 crooster@microsoft.com,因为在我的小组里不止我一个人在使用 UDDI。原来 Cold Rooster 咨询公司需要使用电子邮件时,我们已经创建了这个电子邮件帐户,这看来是个明智的选择。
注册屏幕还会提示输入其他联系信息,例如注册者的姓名、联系电话和通信地址。要完成注册,您需要接受“使用规定”协议。请参阅 (英文)。
在注册表中填好联系信息,并接受“使用规定”后,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 服务了。
如果到现在您还没有获得收藏服务授权,请到 (英文)申请一个。在 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 服务和公司。请花一些时间来熟悉 (英文)。您可能试图查找 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 协议对外发布。
原文转自:http://www.ltesting.net