【问题标题】:Are self-described / auto-descriptive services loosely or tightly coupled in a SOA architecture?自我描述/自动描述服务在 SOA 架构中是松耦合还是紧耦合?
【发布时间】:2011-02-01 05:33:34
【问题描述】:

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

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

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

此问题与How to Implement Loose Coupling with a SOA Architecture有关

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

任何指针将不胜感激。

【问题讨论】:

  • 您应该将其设为社区 Wiki,因为没有“asnwer”。这只是一个讨论。您已经提供了“技术上更加分离”的证据。

标签: web-services soa esb loose-coupling tightly-coupled-code


【解决方案1】:

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

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

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 2017-05-09
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多