理解UDDI
2024-07-21 02:23:34
供稿:网友
services(web服务)是通过因特网或者其它网络而进行服务。然而,很多时候公司或者企业都需要发布服务提供,服务目的,以及服务协议的广告。例如,如果你在你的web站点上加入证券报价机,你可以通过web服务来产生关于证券报价机方面的广告。但是,你如何知道这一广告是否有用?它的作用在哪里?它会给你带来利益吗?而且,在哪里及如何访问这些广告?答案就是uddi (统一描述、发现和集成,即universal description, discovery以及 integration)
一个基于web services的“电话号码簿”
uddi开始是作为一个协议而产生,这一个协议是描述web services地址和提供这些地址的公司或企业的规范。现在uddi技术已经包括uddi业务注册中心(uddi business registry)──有时候也称之为cloud services。这一注册中心与一个电话号码簿非常类似,因为顾客可以通过注册中心查询已经注册seb services的公司列表。
一个uddi注册中心的每一web service都可以以三个部分来描述:第一,“白页(white pages)”描述了提供web service的公司的所有信息,包括产品,联系信息等。第二,“黄页(yellow pages)”通过分类很容易地划分和定位类似的web服务,比如将web services分成pdas,无线电通讯,体育评说等。最后,“绿页(green pages)”提供了有关联系这一web service方法的详细信息,比如一个soap的uri地址,或者描述这一服务及其性质的wsdl文件。“绿页”的内容是由wed service提供者提供的,一般都是提供进一步联系信息的网址或者一个java rmi。
不同的卖主都有独立的注册中心节点“nodes”,包括微软本身。如果你对节点及web services发布的更多信息感兴趣,可以访问oasis站点,这一站点是一个致力于“在电子商务,web services等方面的开发,集成,采用结构信息标准”的行业组织。
查看uddi注册中心
你可以很容易地在visual studio中浏览uddi节点。任何visual studio语言中uddi节点的工作模式都是相同的,现在我们从visual basic角度说明这一过程。启动一个vb.net工程并选择project|add web reference。
可以看到一个将add web reference对话框作为“查找web services的出发点”的选择。你可以要么键入一个url,要么在以下提供的超链接列表中点击其中的一个:
当地机器上的web services
在局域网中浏览uddi服务器(请记住局域网与广域网一样,都可以使用web services。)
查询uddi业务注册中心以找到web services的产品与公司。
探测微软的uddi地址。
第四个链接是出于测试目的。微软的地址目录中提供很多服务,你可以使用这些服务来学习如何访问和合并程序中的web services。
现在我们做一个试验:通过第三方链接,查找uddi业务注册中心。(注意:为了能够使范例正常运行,系统中一定要安装vs.net。) 点击并连接到微软开发的http://uddi.microsoft.com/visualstudio。这是一个节点,你可以在这一节点中搜索服务类型(比如天气),提供者(比如xyz天气服务),或者在类别方案(categorization scheme)中选择,而类别方案其实就是一个小的uddi“黄页”集。
在服务名称中输入w%(%类似于*,意味着以w为入口),我这里获得29种结果──也许你的结果不一样,因为与网络上的站点一样,web services都是不断变化的。
现在在类别方案列表中选择并点击vs web服务搜索分类(vs web service search categorization)。在子类别表中点击日历,然后点击搜索(search)按钮。你可以看到提供日期/时间或者其它与日历相关的web服务的很多列表。如果你对其中某一方面感兴趣,点击+就可以展开所有的入口,你可以看到显示很多uddi数据选项的一个清单,包括:服务描述(service description),绑定(bindings,查看与服务相关的站点),访问站点(access point,你可以通过这一地址发送一个信息以激活一个特定的服务),描述(description),接口定义(interface definitions,传递到注册中心的任何参数)。
这里,最重要的数据选项是描述,比如提供美国任何一个地区的地方天气情况。
次要重要的数据选项是访问站点(access point),访问站点等同于一个普通应用程序调用的函数名称。你将给出函数的名称(在本例中为localweather)以及web service响应。最后,点击接口定义,这里你可以看到,当访问web service时,你必须提供必要的参数和数据类型,如下所示:
localweather(zipcode as integer)
你也可以恢复响应及其数据类型:
returns: forecast as string
此时,一些描述被操作完成并清除,而另一些描述并没有被清除。节点上的绝大多数服务只是作为测试而发布,很多服务都是无法正常运行,或者无法访问到。然而,如果你对如何在程序中操作web 服务感兴趣,你可以练习这些测试服务,而微软开发的这一站点也十分适合于服务的测试操作。
你也可以在visual studio ide中通过一个不同的进程来访问web服务。选择help|show启动页,然后点击online resources tab键。点击右面板中链接的xml web服务。你可以看到查找和注册web服务的各种选择。
在查找页中,在uddi产品环境中点击search选择,然后在种类(category)下拉式列表中选择miscellaneous,点击go就可以查找你感兴趣的服务。而且,你还可以通过点击不同的tab键和链接检查绑定,描述,以及接口的信息。
wsdl的发展走向
有关自描述的概念,包括元数据,发现,以及映象等,都是很时髦的东西。你可以认为uddi列表(服务描述,尤其是接口描述)的描述部分只是具有理论性,但是你应该完全相信,另一xml派生的语言已经由委员会构建,这也就是wsdl(web服务描述语言)。wsdl的目的是建立各种规范,通过这些规范可以实现描述错误处理,对象成员,信息,以及web 服务行为的标准化。
虽然历史以来这种元语言特别地难于实施,但是希望是永远存在的。如果在阅读本篇文章之前你已经阅览了其它的一些uddi注册的描述,你应该没有任何疑问的注意到,除了被广为接受的wsdl外,还没有其它的web服务描述的标准。而且,如果你使用.net来建立web 服务,.net可以自动生成wsdl文档。如果你对进一步地探索wsdl有兴趣,可以从w3c(万维网联盟)找到完整的,行话丰富的信息。