Итак, у нас есть эта несколько необычная потребность в нашем продукте. У нас есть множество процессов, запущенных на локальном хосте, и нам необходимо создать средства связи между ними. Сложность в том, что ...
Еще несколько важных деталей ...
'сообщения 'нам нужно отправить, являются тривиальными по своей природе. Достаточно имени типа сообщения и одного строкового аргумента.
Связь не обязательно является безопасной и не требует предоставления каких-либо средств аутентификации или контроля доступа; однако мы хотим сгруппировать сообщения по сеансу входа в Windows. Возможно, здесь интересен тот факт, что процесс без повышенных прав должен иметь возможность взаимодействовать с процессом с повышенными правами и наоборот.
Мой первый вопрос: существует ли библиотека с открытым исходным кодом? Или что-то, что можно использовать для выполнения это без особых усилий. На данный момент мне не удалось ничего найти: (
Если библиотеки для этого не существует, то ... Какие технологии вы бы использовали для решения этой проблемы? Сокеты, именованные каналы, файлы с отображением памяти, Обработчики событий? Похоже, что транспорты на основе соединений (сокеты / каналы) были бы плохой идеей в полностью подключенном графе, поскольку n узлов требует n (n-1) количества подключений. правдоподобное решение прямо сейчас ...
Обновления
Должно ли оно быть надежным и гарантированным? Да и нет ... Допустим, если я слушаю, и я отвечаю в разумные сроки, тогда я всегда должен получать сообщение.
Каковы типичные размеры сообщений? менее 100 байт, включая идентификатор сообщения и аргумент (ы). Они маленькие.
О какой частоте сообщений мы говорим? Низкая пропускная способность приемлема, 10 в секунду будет много, среднее использование будет около 1 в минуту.
Какое количество процессов задействовано? Я бы хотел, чтобы он обрабатывал от 0 до 50, в среднем от 5 до 10.