2010-10-04 6 views
0

Я думаю о некоторых проблемах, которые лучше всего подходят для интеграции программного обеспечения.Однородная интеграция программного обеспечения

Предположим, что есть компьютер с операционной системой и некоторыми программами A, B и C. Теперь все программы каким-то образом хранят данные в файловой системе. Допустим, что A использует Apache Derby, B использует PostgreSQL и B использует XML-файлы.

Теперь существует три способа хранения данных. Очевидный вопрос: почему бы не использовать только один способ хранения данных для всех программ?

Сначала кто-то мог сказать: нет способа настроить способ хранения данных для большинства программ. Он встроен в сами программы. Его декомпрессия разработчика, основанная на требованиях программного обеспечения.

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

Это может быть еще более гибким. Я не знаю, есть ли что-то подобное для собственных программ, но для Java-программ вы можете использовать что-то вроде JDO для хранения данных. JDO - это стандартизованная структура персистентности, которая является агностикой хранилища данных. Можно использовать RDBMS, XML, хранилища баз данных объектов или что угодно. Программа почти на 100% независима от способа хранения данных! Вы можете настроить способ использования программы для хранения данных через файл конфигурации.

Если все программы будут использовать JDO, все программы могут быть настроены на использование одного и того же хранилища данных, без привязки к специальному. Это упростит ландшафт программного обеспечения на такой машине.

Это не ограничивается хранением данных. Там может быть другое избыточное программное обеспечение в этой системе, которое еще более интегрировано в программное обеспечение и не может быть настроено извне, поскольку отсутствует абстракция.

Есть ли какие-либо известные подходы к интеграции всего программного обеспечения более однородным способом?

Заранее спасибо

ответ

0

Это было опробовано.

Фактически, это было проверено снова и снова.

Но чтобы сделать его работу вы должны

  1. Предвидеть все возможные варианты использования. Потому что, если вы кого-то не откажетесь от своего собственного, а не дождаться, когда вы добавите новую функцию для удовлетворения своих потребностей.
  2. Обращайтесь со всеми этими вариантами использования с максимальной эффективностью. Потому что, если вы этого не сделаете, кто-то скачет самостоятельно, а не ждет, когда вы исправите угловой случай, который им нужен, но медленно запускается в вашей реализации.
  3. Управляйте платформой или включайте всех в процесс (и держите их счастливыми!). Потому что, если вы этого не сделаете, люди будут катиться самостоятельно в поисках конкурентного преимущества.

Вы начинаете видеть масштаб предприятия? Вы видите, как медленно он будет скомпенсирован продвижению в ИТ?

На самом деле, это довольно сложно сделать только в одном проекте среднего размера.

+0

Да, я вижу. Возможно, стандартизация - это ключ. Как JDO, который является стандартом. Таким образом, все разработчики могли использовать JDO. Они понимали это, для них это меньше, потому что им не нужно заботиться обо всех деталях. JDO заботится о них. Или, может быть, в ОС должен быть встроен абстрактный интерфейс хранилища данных. Что-то вроде ODBC, но plattform и datastore независимы. – PageFault

+0

@PageFault: [Сегодняшний xkcd] (http://xkcd.com/801/) странно уместен. JVM не охватывает все варианты использования, поэтому JDO не охватывает все варианты использования (и, особенно, не охватывает их максимальную эффективность), поэтому он не может быть универсальным. Да, программирование на подходящей виртуальной машине является хорошей идеей и все более адекватным для большинства задач, но это не может быть концом всего и быть всем. – dmckee

Смежные вопросы