WCF中的Web服务发现:Ws-Discovery还是UDDI?

时间:2009-03-15 13:35:55

标签: .net wcf discovery uddi

我知道UDDI和Ws-Discovery之间的区别(知道搜索服务与广播的位置)。但我的问题是:在WCF中发现Web服务的最简单方法是什么?最简单的意思是我已经在WCF中实现了什么并且现在可以使用了?我没有在WCF中看到UDDI或Ws-Discovery的任何内置实现。

您是否有任何链接或经验可以在WCF中分享这两个协议?

更新

现在我正在考虑三种解决方案,等待.NET 4.0上的WS-discovery,或者可能使用WCF提供的Peer to Peer绑定创建自己的发现绑定。这样我就可以广播请求。 或者使用eed3si9n链接提供的实现。

我认为我会做一个网关界面,以便轻松改变后面的实现。

3 个答案:

答案 0 :(得分:3)

.NET 4.0将具有WS-Discovery。请参阅Messaging enhancements in .NET 4.0: (Discovery Part I) Using WS-Discovery in WCF 4.0。与此同时,Claudio Masieri提供了一个实现。请参阅WS-Discovery for WCF

还有一个与UDDI类似的自定义发现实现。请参阅Windows Communication Service Discovery

  

想象一下,你有200个客户使用   你时髦的Wcf服务。他们都会   在他们的conf文件中有一个像   这一个:

<client>
   <endpoint configurationName="default"
               address="http://localhost/servicemodelsamples/service.svc"
               binding="wsHttpBinding"
               bindingConfiguration="Binding1"
              contract="IDataContractCalculator" />
 </client>
 <bindings>
   <wsHttpBinding>
      <binding configurationName="Binding1" />
   </wsHttpBinding>
</bindings>
  

现在,您决定更改现有内容   端点(服务器端)有一个新端点   出于安全原因使用SSL。怎么样   你更新你的客户?您可以   很快就会发现它可以成为   乏味。所以我想详细说明这个想法   这是实现一个发现   服务类似于UDDI所做的和   使用元数据解析器来获取   配置退出服务   为了动态创建代理   允许客户讨论   服务。

这个人和你一样有类似的担忧,似乎有一个有效的解决方案。

答案 1 :(得分:2)

  

UDDI提供了一个中央注册表   存储有关可用的信息   服务。它提供了一个目录   消费者可以找到满足的服务   他们的需求。这个电话簿就好   信息目录允许   消费者按名称查找服务,   地址,合同,类别或   其他数据。可以想到UDDI   作为Web服务的DNS。

     

另一方面,WS-Discovery   提供了一个发现的协议   来来去去的服务   来自网络。作为服务加入   网络,它通知其同行   它的到来是通过广播你好   信息;同样,当服务下降时   在网络上他们组播了一个再见   信息。 WS-Discovery不依赖于   一个节点来托管信息   关于UDDI的所有可用服务   确实。相反,每个节点都转发   有关可用服务的信息   以临时的方式。这减少了   网络基础设施的数量   需要发现服务和   促进自举。

引自:http://travisspencer.com/blog/2007/09/post.html

这是一个很好的属性列表: http://laflour.spaces.live.com/Blog/cns!7575E2FFC19135B4!728.entry

答案 2 :(得分:0)

jUDDI有一个可以使用的.NET客户端。它极大地简化了使用UDDI的一些事情。

根据经验,只有两到三个功能实现的WS-Discovery。

你可以从任何东西访问UDDI。有许多客户端和服务器实现。 (这里列出了版本3的东西)

  • IBM WS-Registry
  • Apache jUDDI
  • 带有Biztalk的Microsoft UDDI v3(免费提供2008服务器)
  • HP SOA / Systinet或其他任何名称
  • WSO2有一些东西
  • ebXML有某种桥接器或适配器

UDDI3甚至还有一个REST端点(jUDDI 3.2有它,XML或JSON响应),这可以打开更多的可能性。

此外,与您可以附加到UDDI的几乎无限数据相比,与WS-Discovery共享的数据有限。

那只是我的2美分。