Какие существуют методики взаимодействия процессов?
Коллеги, добрый день.
Подскажите, пожалуйста, какие методики взаимодействия процессов внутри одной ОС существуют?
Хочу уточнить, что под процессами я имею ввиду запущенные инстансы разных программ в единственном экземпляре.
Методики интересуют "легальные", т.е. предусмотренные разработчиками обеих программ.
Поправьте меня - что такое взаимодействие реализуется через сокеты, и, часто, через протокол http, чтобы легко было, в случае необходимости, эти программы разнести по разным машинам/сетям.
Буду благодарен за ответы, дополнения, и рекомендации литературы.
файловые сокеты, сетевые сокеты, пайпы, сигналы.
Грубо говоря, http это же тоже сетевые сокеты, просто уже есть стандартизация протокола и формат обмена обычно xml/json, а в случае сокетов - делают свою структуру пакета.
Есть ОС-зависимые межпроцессорные взаимодействия.
такое взаимодействие реализуется через сокеты, и, часто, через протокол http, чтобы легко было, в случае необходимости, эти программы разнести по разным машинам/сетям.
Да, часто так, но есть нюансы.
Например на серверах часто используют очереди событий для коммуникации разных приложений.
На десктопе ещё часто используют COM или что-то похожее на него.
Если правильно понял, очереди событий реализуются поверх сокетов. И из готовых продуктов на рынке можно назвать RabbitMQ, ActiveMQ, Kafka, Redis и т.п?
Не могли бы вы подробнее рассказать про COM, а то гуглится по этому ключу интерфейс стандарта RS-232, и это наверное не совсем то?
trevin,
1. Да
2. Не то да. Гуглите Component object model. Вообще, это сейчас не самый актуальный вариант, но всё ещё используется. В том числе есть его реализации не под винду