SOA 服务发现 (UDDI) 在实践中如何工作?
-
02-07-2019 - |
题
我只是在阅读有关 SOA 的内容,并且经常提到服务注册中心/UDDI。听起来不错,但是实际使用起来如何呢?
- 注册表是否旨在将逻辑服务与其物理实现(端口、URL 等)分离?
- 注册表是否是供寻找有趣服务的人浏览的?
- 硬线对其使用的服务的应用程序会“错误”吗?
解决方案
我发现它在理论上比在实际中更有用。它很少被实现,也很少被使用。实际上,DNS 为网络上资源的位置提供了足够的抽象工具。
其他提示
服务注册表存储和发布有关所有可用服务的信息,主要是它们的接口描述和它们当前的 URI(ip、端口等)。这样,应用程序可以简单地向注册表询问所需的服务,并获得合适的服务实现的详细信息,并且可以进行连接。
UDDI 并不是获取服务注册中心的唯一方法。但请记住,UDDI 仅适用于 Web 服务,因此仅当您的 SOA 仅包含 Web 服务时它才有用。
1)正确。
2)不,它并不适合人眼。当然,有一些工具可以浏览目录,但它们主要用于查看注册表是否获得了您需要的服务等。真正的使用直接发生在您的应用程序/服务和注册表之间。
3)这取决于你想要完成什么。如果您想构建 SOA,它会认为这是“错误的”,因为这与 SOA 的松耦合范例相矛盾。如果这是您唯一的服务,唯一使用它的应用程序,并且该服务很可能不会更改它的 URI,那么硬连接它绝对没有问题 - 但可能不需要分离该服务:)
使用多播来发现服务怎么样?喜欢使用 jgroups 或 SLP?所有服务都会相互发现并将其所需的服务注入代理中。然后在实际传输实现上构建抽象。(例如。休息,肥皂,rmi)
不隶属于 StackOverflow