Общая база данных и архитектура обмена сообщениями

Вчера я был в пабе с моим другом, и мы начали обсуждать используемую архитектуру в компании, в которой он работает. Разговор в основном окружал плюсы и минусы архитектуры общей базы данных по сравнению с распределенной архитектурой независимых приложений - мы не моглине могу прийти к консенсусу, в этом случае яхотел бы услышать людейМнения о плюсах / минусах обоих подходов.

По сути, компания, в которой он работает, имеет большую архитектуру с множеством различных приложений. Некоторые приложения имеют единую базу данных, которую они разделяют между собой. Например, есть 1 приложение, которое предоставляет пользовательский интерфейс для изменения справочных данных. Эти справочные данные используются другим приложением, которое также обращается к тем же данным. Я полагаю, что код на самом деле написан как разделяемые библиотеки (то есть оба приложения будут использовать общий кодовый набор, который перераспределяется для каждого (у каждого он есть как зависимость)).

Существуют также другие приложения с базой данных, которые также используются другими приложениями при прямом соединении JDBC с кодом доступа к данным (не является общим для двух приложений - дублируется !! erghh!).

Мой вопрос касается плюсов и минусов этой архитектуры по сравнению с архитектурой, в которой каждое приложение содержит еемастер" данные в бункере. Если приложение x запрашивает данные из приложения y, они используют веб-службы или некоторые технологии обмена сообщениями для получения этих данных.

Подход, основанный на обмене сообщениями, привел бы к проблеме, из-за которой справочные данныекоды (или внешние ключи), которые используются в db 's других приложений в настоящее время должны быть получены из другого источника. В современной архитектуредекодирует поскольку они могут измениться в любое время и немедленно отразиться во внешнем приложении, вместо того, чтобы иметь отношение «главный / подчиненный», когда данные копируются, или альтернативу, где приложение x должно запросить приложение y просто для отображения значений декодирования.

Я прочитал паттерны Enterprise Integration Patterns, и хотя он дает некоторые примеры преимуществ обмена сообщениями - яЯ не так убежден.

Спасибо Iain

Ответы на вопрос(3)

Ваш ответ на вопрос