Я пытаюсь разработать систему, управляемую событиями, в которой элементы системы обмениваются данными, генерируя события, на которые отвечают другие компоненты системы.Предполагается, что компоненты будут независимы друг от друга - или настолько независимы, насколько я могу их сделать.Система изначально будет реализована в Windows 7 и пишется на Delphi.Сгенерированные события будут сгенерированы кодом Delphi.Я понимаю, как реализовать систему типа, описанного на одной машине.
Я хочу спроектировать систему так, чтобы ее можно было легко развернуть на разных архитектурах компьютеров, в частности, с различными компонентами, работающими на распределенной архитектуре,которая может отличаться от Windows 7. Система не требует взаимодействия с какими-либо внешними по отношению к ней системами.
Я попытался исследовать архитектуру, которую мне нужно рассмотреть, и рассмотрел вопросы, упомянутые ниже.,Похоже, что они указывают на использование именованных каналов в качестве механизма для связи между аппаратными средствами.В результате этих исследований я набросал следующее, чтобы описать свою систему: первая часть диаграммы - это система, в которой я ее разрабатываю;вторая часть, которую я вывел, мне понадобится для возможных будущих реализаций.
Это приводит к следующим моментам:
- Можно ли передавать события через именованные каналы?
- Является ли это подходящей и разумной структурой для решения этой проблемы?
- Есть ли лучшие альтернативы?
- Что я забыл (на этом уровне детализации)?
Как реализовано программирование на основе событий? Как отправить строку из одного экземпляра моей программы Delphi в другой?
РЕДАКТИРОВАТЬ:
Я не дал баллывытекающих из ответа "Я даю дерьмо" достаточно внимания.Мои первоначальные ответы на его вопросы:
- Синхронный v Асинхронный - в основном асинхронный
- События всегда будут в очереди FIFO.
- Потеря соединения - не страшноважно - я могу позволить себе справиться с этим неукоснительно.
- Неограниченные очереди - отличный способ справиться с пройденными событиями (если они могут быть) - не стоит ожидать большого объема генерации событий.