Изоляция данных — следует ли внешней системе-поставщику данных знать о внутренних идентификаторах системы-потребителя данных?

Есть две системы - система управления НСИ (Система1) и некая производственная система (Система2).
Номенклатура создается в Системе1, затем переливается в Систему2.
Иерархия номенклатур в системах разная - разная структура папок, иначе говоря.
Когда Система1 отправляет данные о номенклатуре в Систему2, то сначала в некоем своем внутреннем хранилище она ищет, какая папка Системы1 соответствует папке Системы2. В данных, отправленных в Систему2, содержится идентификатор именно папки Системы2. То есть Система1 должна знать все о структуре папок Системы2 и внутри себя хранить все соответствия.
Далее, Система1 хранит в себе идентификатор номенклатуры из Системы2. В Системе1 есть свой идентификатор и он, в общем-то, эталонный, но для обмена данными с Системой2 используется именно идентификатор Системы2.

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

P.S. Как вообще называется вся область архитектурного планирования, связанная с поднятым вопросом?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 3
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Это сервисная архитектура, обыкновенная. Нет, они не должны знать друг о друге ничего, кроме внешних контрактов. Поставщик вообще не должен знать ничего о потребителе, а потребитель знает только то что предоставляет поставщик по контракту. Если у них обоих есть что-то общее то оно или выносится в контракт или в отдельный сервис
Ответ написан
Adamos
@Adamos
"Ну конечно, естественно, само собой разумеется - нет!" (Гэндальф в русском переводе).
Эта область называется "инкапсуляция", и это самые азы архитектуры.
Ответ написан
MetaAbstract
@MetaAbstract
Архитектор информационных систем и баз данных. Ful
Теоретически Системе 1 все это безразлично, но информацией лишней редко бывает. Практически в данном случае видимо ситуация в том, что алгоритм синхронизации работает на стороне Источника данных и по каким то причинам в Приемнике собственные идентификаторы. Причины эти тоже желательно понять. Я бы делал алгортим синхронизации на стороне Приемника и использовал стандартные механизма платформы разработки, если они есть.
Эта область называется синхронизация данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы