【问题标题】:Distributed Domain Driven Design Resources分布式领域驱动设计资源
【发布时间】:2011-11-07 14:07:12
【问题描述】:

我对开发 DDD 应用程序非常有信心,但一直给我带来问题的一个领域是两个应用程序相互集成时。我正在努力寻找有关该主题的任何有用的书籍或资源。诸如 EAI 模式之类的书籍深入探讨了消息传递模式和消息构造,但并未真正解释如何构建利用这些模式的系统。

我搜索了高低,我很确定没有演示如何集成两个系统的示例应用程序。我了解异步消息传递的概念,但又找不到如何应用它的好例子。

SOA 上的资源似乎一直在重复相同的概念,而没有演示如何实施它们,而且往往似乎更关心向我推销产品。

以下是我正在努力回答的问题:

  1. 每个应用程序都应该拥有自己的数据副本吗?例如,是否应该组织内的每个应用程序都有自己的客户端列表,并在收到消息后更新?

  2. 消息在 DDD 堆栈中的哪个点传递?它们是领域事件的结果吗?

  3. 我可以将异步消息传递和 WCF 结合起来还是必须选择?我是否将 WCF 用于发布/订阅的请求/响应和消息传递?

  4. 一个 DDD 应用程序如何使用另一个 DDD 应用程序的服务?一个 DDD 应用程序应该通过其应用程序服务向另一个系统查询其数据,还是应该已经拥有自己的本地数据副本,如第 1 点所述?

  5. 显然我不能跨两个系统进行事务处理。我该如何避免这种情况?

如果我听起来很困惑,那是因为我是。我不是在寻找上述问题的答案,只是指出可以回答这个问题和类似问题的资源方向。

【问题讨论】:

  • 我很失望它被关闭了。它不征求意见,但实际上激发了非常有建设性的答案,例如下面的 Eric。我询问了资源的方向,这就是我得到的。我认为这是建设性的,很明显还有 4 个人在 2 小时内也这样做了。我如何对这次关闭提出异议?

标签: domain-driven-design soa distributed messaging dddd


【解决方案1】:

我一直在进行类似的过渡。我的建议:

  • 从http://cqrsinfo.com/ 开始。
  • 收听Distributed Podcast。
  • 收听 Greg Young 的任何谈话。例如,here 是 Eric Evans 采访 Greg。他还记录了一些全天的会议。
  • 阅读/收听 Udi Dahan 的任何内容(poscast、讲座、文章等)。他在InfoQ 上有一些好东西。
  • 等待Greg's book。
  • 阅读您可以在 EDA(事件驱动架构)上找到的任何内容。

【讨论】:

    【解决方案2】:

    除了Eric Farr 所说的之外,可能值得仔细查看DDD book(战略设计)的第 4 部分。它没有从“分布式”的角度解决问题,但有很多关于如何集成应用程序的信息 (Bounded Contexts)。在应用程序的边界进行设计时,Anticorruption Layer 之类的模式非常有用。

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 2010-11-29
      • 2013-01-26
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2011-02-04
      相关资源
      最近更新 更多