在实践中,SOA服务发现(UDDI)如何工作?

时间:2020-03-06 14:39:24  来源:igfitidea点击:

我只是在阅读SOA,并且定期提及服务注册表/ UDDI。听起来不错,但实际上如何使用?

  • 注册表是否旨在将逻辑服务与其物理实现(端口,URL等)分离?
  • 注册表是否应该由寻找有趣的服务的人浏览?
  • 将应用程序硬连接到它使用的服务是否"错误"?

解决方案

服务注册表存储并发布有关所有可用服务的信息,主要是它们的接口描述和它们的当前URI(ip,端口等)。这样,应用程序可以简单地向注册表询问所需的服务,并将获得合适的服务实现的详细信息,并且可以进行连接。

UDDI不是获取服务注册表的唯一方法。但是请记住,UDDI仅适用于Web服务,因此仅当SOA仅包含Web服务时才有用。

1)正确。

2)不,它不是真的适合人眼。当然,有一些工具可以浏览目录,但主要用于查看注册表是否获得了所需的服务等。实际使用情况直接发生在应用程序/服务与注册表之间。

3)这取决于我们要完成的工作。如果要构建SOA,则认为这是"错误的",因为这与SOA的松散耦合范式矛盾。
如果这是我们唯一的服务,则是唯一使用该服务的应用程序,并且该服务很可能不会更改其URI,因此在进行硬接线时绝对没有问题,但是很可能不需要分离此服务:)

我发现它在理论上比实际上更有用。它很少实现和很少使用。实际上,DNS为网络上的资源位置提供了足够的抽象工具。

使用多点广播来转移服务怎么样?喜欢使用jgroups或者SLP?所有服务将相互发现并将所需的服务注入代理。然后在实际的传输实现上构建抽象。 (例如休息,肥皂,RMI)