1

我认为自我描述/自动描述服务在 SOA 架构中是一件好事,因为(几乎)您知道调用该服务的所有内容都存在于服务契约(例如 WSDL)中。

对我来说,非自我描述服务的示例是 Facebook 查询语言(FQL http://wiki.developers.facebook.com/index.php/FQL),或任何在一个字符串参数中交换 XML 流以进行解析的 Web 服务XML 和执行处理。

最后一个似乎在技术上更加分离,因为从技术上讲,您可以在不对调用者产生技术影响的情况下切换实现,在业务级别处理实现/版本之间的兼容性。另一方面,没有强接口(稀释到服务及其版本中),使服务与现有实现紧密耦合(更难以互换服务并确保完美兼容)。

这个问题与如何使用 SOA 架构实现松散耦合有关

那么,SOA 架构中的自我描述/自动描述服务是松散耦合还是紧密耦合?对 ESB 有什么影响?

任何指针将不胜感激。

4

1 回答 1

1

问题是松散耦合的 SOA 服务将倾向于使用 WSDL(仅支持请求/响应)不支持的发布/订阅语义相互交互。

当您引入像 NServiceBus 这样的 ESB 时,它关注的是消息和所有权,而不是工具从 WSDL 生成的方法调用。然后可以将这些消息表示为代码中的类或 XSD 中的互操作性。

使用标准 Web 服务完成从一个端点到另一个端点的 XML 消息传输看起来确实很愚蠢,因为合同没有出现在 WSDL 中,而这正是 ESB 的用武之地之一。

希望有帮助。

于 2010-03-26T18:05:14.807 回答