Распределенные домены, управляемые ресурсами дизайна - PullRequest
5 голосов
/ 31 августа 2011

Я вполне уверен в разработке приложений DDD, но одна область, которая продолжает вызывать у меня проблемы, это когда два приложения интегрируются друг с другом. Я изо всех сил пытаюсь найти любые полезные книги или ресурсы по этой теме. В таких книгах, как Patterns of EAI, подробно рассматриваются шаблоны обмена сообщениями и построение сообщений, но в действительности не объясняется, как создавать системы, использующие эти шаблоны.

Я искал высоко и низко, и я совершенно уверен, что нет примеров приложений, которые демонстрируют, как интегрировать две системы. Я понимаю концепцию асинхронного обмена сообщениями, но опять же не могу найти хороших примеров того, как его применить.

Ресурсы по SOA, похоже, продолжают повторять одни и те же понятия, не демонстрируя, как их реализовать, и чаще всего кажутся более заинтересованными в продаже мне продуктов.

Вот вопросы, на которые я пытаюсь ответить:

  1. Должно ли каждое приложение иметь свою собственную копию данных? Например, должно ли каждое приложение в организации иметь свой собственный список клиентов, который он обновляет после получения сообщения?

  2. В какой момент в стеке DDD передаются сообщения? Являются ли они результатом доменных событий?

  3. Могу ли я объединить асинхронные сообщения и WCF или мне нужно выбрать? Использую ли я WCF для запроса / ответа и обмена сообщениями для публикации / подписки?

  4. Как одно приложение DDD использует услуги другого? Должно ли одно приложение DDD запрашивать данные у другой системы через свои сервисы приложений или у него уже есть собственная локальная копия данных, как указано в пункте 1?

  5. Видимо, у меня не может быть транзакции в двух системах. Как мне этого избежать?

Если я звучу смущенным, это потому, что я есть. Я не ищу ответы на вышеупомянутые вопросы, просто указываю в направлении ресурсов, которые ответят на этот вопрос и схожих вопросов.

Ответы [ 2 ]

7 голосов
/ 31 августа 2011

Я делаю похожий переход.Мой совет:

  • Начните с http://cqrsinfo.com/.
  • Прослушайте Распределенный подкаст .
  • Поймай любой из разговоров Грега Янга.Например, здесь - это Эрик Эванс, берущий интервью у Грега.У него также есть несколько дневных сессий, которые также записываются.
  • Чтение / прослушивание чего-либо из Udi Dahan (посты, лекции, статьи и т. Д.).У него есть кое-что хорошее по InfoQ .
  • Подождите, пока Книга Грега .
  • Прочитайте все, что вы можете найти в EDA (Event Driven Architecture).
3 голосов
/ 31 августа 2011

В дополнение к тому, что сказал Эрик Фарр , возможно, стоит обратить внимание на часть 4 книги DDD (Стратегический дизайн).Он не подходит к проблеме с точки зрения «распределенного», но содержит много информации о том, как интегрировать приложения ( Ограниченный контекст ).Шаблоны типа Антикоррупционный слой могут быть очень полезны при проектировании на границе приложения.

...