Точнее, для моего приложения: общие данные - это в основном постоянные данные, такие как состояние мониторинга, конфигурации - не более нескольких сотен элементов, которые часто обновляются и читаются, но не более 1 или 2 Гц. Процессы локальны друг для друга на одном компьютере.
РЕДАКТИРОВАТЬ 1: дополнительная информация - ожидается, что процессы будут опрашивать набор данных, в которых они заинтересованы (например, мониторинг). Большинство данных являются постоянными в течение всего жизненного цикла программы, но некоторые (например, конфигурации) требуются для восстановиться после перезапуска программного обеспечения. Данные обновляются только владельцем (предполагается, что один владелец для каждого из данных) Количество процессов тоже невелико (не более 10)
Хотя использование базы данных заметно более надежно и масштабируемо, мне всегда кажется, что это излишнее или слишком тяжелое использование, когда все, что я делаю с ней, - это совместное использование данных в приложении. Принимая во внимание сообщение, например, с. JMS также имеет промежуточное программное обеспечение, но оно более легкое и имеет более естественный или гибкий API связи. Я думаю, что реализовывать уведомления о событиях и шаблон команд проще с помощью обмена сообщениями.
Будет очень полезно, если кто-нибудь даст мне пример того, какое обстоятельство было бы более предпочтительным для другого.
Например, я знаю, что мы можем более легко обмениваться постоянными данными между процессами, использующими базу данных, хотя это также выполнимо с помощью обмена сообщениями путем распределения между процессами и / или хранения с некоторыми файлами XML.
И в соответствии с здесь, http://en.wikipedia.org/wiki/Database-as-IPC и здесь, http://tripatlas.com/Database_as_an_IPC. В нем говорится, что это будет анти-шаблон, когда он используется вместо передачи сообщений, но он не раскрывает, например, например. насколько плохо производительность может сказаться на использовании базы данных по сравнению с передачей сообщений.
Я просмотрел несколько предыдущих постов, в которых задавался аналогичный вопрос, но я надеюсь найти ответ, который сосредоточится на обосновании дизайна. Но из тех вопросов, которые я до сих пор читал, я вижу, что многие люди использовали базу данных для IPC (или реализовали очередь сообщений с базой данных)
Спасибо!