Я думаю о некоторых проблемах, которые могут лучше всего соответствовать термину «интеграция программного обеспечения».
Предположим, что на компьютере установлена операционная система и некоторые программы A, B и C. Теперь все программы каким-то образом хранят данные в файловой системе. Допустим, A использует Apache Derby, B использует PostgreSQL, а B использует XML-файлы.
Теперь есть три способа хранения данных. Очевидный вопрос: почему бы не использовать только один способ хранения данных для всех программ?
Сначала кто-то мог сказать: нет способа настроить способ хранения данных для большинства программ. Он встроен в саму программу. Это решение разработчика, основанное на требованиях программного обеспечения.
Это может быть правильно, но я не думаю, что у большинства программ есть особые требования к тому, как хранить данные. Существует лишь меньшинство программ, которым нужен особый способ хранения данных. Все разработчики большинства программного обеспечения могут согласиться на один конкретный способ хранения данных, например, PostgreSQL. Теперь администратор может установить PostgreSQL, и все программы смогут использовать его вместе.
Это может быть еще более гибким. Я не знаю, есть ли что-то подобное для нативных программ, но для Java-программ вы можете использовать что-то вроде JDO для хранения данных. JDO - это стандартизированная структура персистентности, которая не зависит от хранилища данных. Можно использовать RDBMS, XML, базы данных объектов или что-то еще. Программа практически на 100% независима от способа хранения данных! Вы можете настроить способ, используемый программой для хранения данных через файл конфигурации.
Если все программы будут использовать JDO, все программы могут быть настроены на использование одного и того же хранилища данных без привязки к специальному хранилищу. Это упростило бы программный ландшафт на такой машине.
Это не ограничивается хранилищами данных. В этой системе может быть другое избыточное программное обеспечение, которое еще более интегрировано в программное обеспечение и не может быть настроено извне из-за отсутствия абстракции.
Существуют ли какие-либо известные подходы для интеграции всех различных программ более однородным образом?
Заранее спасибо