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

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

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

Войти через центр авторизации
Похожие вопросы
10 сент. 2024, в 11:59
1700 руб./в час
10 сент. 2024, в 11:55
30000 руб./за проект
10 сент. 2024, в 11:33
5000 руб./за проект