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

发布于 2024-07-14 15:10:31 字数 395 浏览 8 评论 0原文

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

您有关于 WCF 中这两个协议的链接或经验可以分享吗?

更新

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

我想我会做一个网关接口来轻松更改后者的实现。

I know the distinction between UDDI and Ws-Discovery (well know location to search a service vs broadcast). But my question is : what is the simplest way to discover a webservice in WCF ? By simplest I mean what is already implemented in WCF and can be used now ? I've not seen any built-in implementation in WCF for UDDI or Ws-Discovery.

Do you have any link, or experience to share about these two protocols in WCF ?

UPDATE

Now I'm thinking about three solutions, waiting for WS-discovery on .NET 4.0, or maybe creating my own discovery binding with the Peer to Peer binding provided by WCF. This way I can broadcast a request.
Or using the implementation provided by the link of eed3si9n.

I think that I'll do a gateway interface to easily change implementation latter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

笑忘罢 2024-07-21 15:10:31

.NET 4.0 将具有 WS-Discovery。 请参阅.NET 4.0 中的消息传递增强功能:(Discovery 第 I 部分) 在 WCF 4.0 中使用 WS-Discovery。 与此同时,Claudio Masieri 提供了一个实现。 请参阅WCF 的 WS-Discovery

还有一个以与 UDDI 类似的方式完成的自定义发现实现。 请参阅 Windows 通信服务发现

假设您有 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 所做的类似的服务以及
使用元数据解析器来获取
服务中的配置
命令动态创建代理
允许客户与客户讨论
服务。

此人与您有类似的担忧,并且似乎有一个可行的解决方案。

.NET 4.0 will have WS-Discovery. See Messaging enhancements in .NET 4.0: (Discovery Part I) Using WS-Discovery in WCF 4.0. In the meantime, Claudio Masieri has provided an implementation. See WS-Discovery for WCF.

There's also a custom discovery implementation done in similar way as UDDI. See Windows Communication Service Discovery.

Imagine you have 200 clients using
your funky Wcf service. They would all
have in their conf file a section like
this one:

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

Now, you decide to change the existing
endpoint (server side) with a new one
that uses SSL for security reason. How
do you update your clients? You can
quickly see that it can become
tedious. So the idea I want to detail
here is to implement a discovery
service similar to what UDDI does and
to use a metadata resolver to get the
configuration out of the service in
order to create dynamically a proxy
allowing the client to discuss with
the service.

This person has similar concern as you do, and seems to have a working solution.

败给现实 2024-07-21 15:10:31

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

另一方面,WS-Discovery
提供了一个协议来发现
来来去去的服务
来自网络。 当服务加入时
网络,它通知其对等体
通过广播 Hello 到达
信息; 同样,当服务下降时
离开网络后,他们会多播“再见”
信息。 WS-Discovery 不依赖于
托管信息的单个节点
关于 UDDI 的所有可用服务
做。 相反,每个节点转发
有关可用服务的信息
以特别的方式。 这减少了
网络基础设施的数量
需要发现服务和
促进引导。

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

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

UDDI provides a central registry to
store information about available
services. It supplies a catalog where
consumers can find services that meet
their needs. This phonebook-like
directory of information allow
consumers to find services by name,
address, contract, category, or by
other data. UDDI can be thought of
as the DNS of Web services.

On the other hand, WS-Discovery
provides a protocol to discover
services that are coming and going
from a network. As a service joins
the network, it informs its peers of
its arrival by broadcasting a Hello
message; likewise, when services drop
off the network they multicast a Bye
message. WS-Discovery doesn’t rely on
a single node to host information
about all available services as UDDI
does. Rather, each node forwards
information about available services
in an ad hoc fashion. This reduces
the amount of network infrastructure
needed to discover services and
facilitates bootstrapping.

Citation from: http://travisspencer.com/blog/2007/09/post.html

Here is a good list of properties:
http://laflour.spaces.live.com/Blog/cns!7575E2FFC19135B4!728.entry

顾挽 2024-07-21 15:10:31

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

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

UDDI,您可以从任何地方访问。 有许多客户端和服务器实现。 (这里只列出了版本 3 的内容)

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

甚至还有UDDI3 的 REST 端点(jUDDI 3.2 有它,XML 或 JSON 响应),这带来了更多的可能性。

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

这只是我的2分钱。

jUDDI has a .NET client that you can use. It greatly simplifies a number of things for working with UDDI.

From experience, there's there only two or three functioning implementations of WS-Discovery.

UDDI you can access from anything. There are many client and server implementations. (Just the version 3 stuff is listed here)

  • IBM WS-Registry
  • Apache jUDDI
  • Microsoft UDDI v3 with Biztalk (its free with 2008 server)
  • HP SOA/Systinet or whatever it's called now
  • WSO2 has something
  • ebXML has some kind of bridge or adapter

There's even a REST endpoint for UDDI3 (jUDDI 3.2 has it, XML or JSON responses) which opens this up to many more possibilities.

In addition, the data that's sharable with WS-Discovery is somewhat limited compared to the virtually unlimited data you can attach to UDDI.

That's just my 2 cents.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文