Интеграция приложений (данных) между двумя системамиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Интеграция приложений (данных) между двумя системами

Сообщение Anonymous »

На работе у нас есть собственная устаревшая CRM-система (в дальнейшем тексте будет называться LS), которая используется на предприятии. LS также используется для хранения некоторых платежей клиентов. LS передается на аутсорсинг, и моя компания не владеет кодом, поэтому (прямые) изменения в коде приложения не могут быть внесены моей компанией. Однако нам принадлежит база данных, которую использует LS, и ее данные. Способ управления данными заключается в использовании единой базы данных и огромного количества таблиц, в которых хранится информация, необходимая для нескольких секторов (например: продажи, финансы, маркетинг и т. д.). Это приводит к сложному графику взаимосвязей и трудным для понимания таблицам.
Теперь у нас есть еще одно приложение (в следующем тексте оно будет называться
ConfApp), которое была разработана собственными силами и использует часть данных из LS, чтобы финансовый сектор мог генерировать своего рода подтверждения клиентских платежей для наших клиентов. ConfApp также используется в бухгалтерском секторе для подтверждения платежей наших клиентов, но у бухгалтерского учета другие потребности и требования по сравнению с финансами. Используя жаргон DDD, мы можем сказать, что существует два разных ограниченных контекста: один для бухгалтерского учета и один для финансов.
В настоящий момент ConfApp запрашивает базу данных LS напрямую, чтобы получить необходимые данные о клиентах и ​​платежах. Поскольку он запрашивает базу данных LS напрямую, ConfApp жестко связан с базой данных, и ему необходимо знать о столбцах и связях, которые его не интересуют, а также о любых изменениях в базе данных LS. Вот почему, следуя практике DDD, я хочу создать отдельную схему для каждого ограниченного контекста в базе данных ConfApp. Каждая схема будет иметь таблицу «Клиент», но только ту информацию, которая интересует этот конкретный ограниченный контекст (например, бухгалтерскому учету требуется один набор адресов электронной почты для клиентов, а финансам — другой набор адресов электронной почты). Для этого ConfApp должен быть интегрирован с LS. Проблема, с которой я столкнулся, заключается в том, что я не знаю, какой тип интеграции использовать, поскольку LS не может быть изменен.
Варианты, о которых я думал, - это следующее:
1. Обмен сообщениями => кажется сложным, поскольку мне нужны только данные, а не поведение. Кроме того, это может оказаться сложной задачей, поскольку, как говорилось ранее, прямое изменение исходного кода LS невозможно. Возможно, создание какого-то приложения-адаптера, которое подключается к базе данных LS и при изменениях отправляет сообщения приложениям-подписчикам. Тем не менее кажется сложным.
2. Интеграция базы данных => Отслеживание изменений или какой-либо другой метод отслеживания изменений базы данных. Должно быть проще, чем Вариант 1, решает проблему получения только тех данных, которые нужны ConfApp, но не решает проблему связи между ConfApp и базой данных LS. Вместо реализации логики синхронизации в ConfApp это мог бы сделать другой проект, но есть ли причина не использовать вместо этого Messaging? И какой метод синхронизации данных использовать? Обе системные базы данных являются экземплярами SQL Server.
Я знаю «теорию» DDD, но мне не хватает практического опыта. Мой проблемный домен выглядит для меня как вспомогательный поддомен. Я не планирую использовать моделирование предметной области (на данный момент) и не спрашиваю об этом. Я спрашиваю конкретно о системной интеграции.

Подробнее здесь: https://stackoverflow.com/questions/793 ... wo-systems
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»