Какие способы общения есть между серверным и клиентским приложением?
Доброго вечера. Предположим, есть приложение на подобии бакулы, или корпоративного антивируса. Оно состоит из центрального приложения для сбора данных, кооперации действий, и подчиненных приложений-клиентов.
Какие способы-виды общения вы можете подсказать? Например, как сказать подчиненному приложению, что нужно начать анализ системы, на которой он установлен. Я ничего кроме апи придумать не смог.
Общение по сети обычно идет через сокеты по TCP или UDP. Практически все API и протоколы более высокого уровня, используют этот транспорт.
В винде можно использовать DCOM. Он, конечно, то же использует сокеты и TCP/IP, но это скрыто от программиста. Под никсами то же есть похожие механизмы RPC, но они не встроены в ОС.
NubasLol, Какие приложения - не знаю, ни разу не сталкивался.
Я имел ввиду системы типа DPDK - там используется не стандартный стек TCP/IP и обычные сокеты не работают. Используются подобные вещи на супер нагруженных специально заточенных серверных приложениях.
res2001, почему DPDK используют не стандартный стек TCP/IP? Если они используют не стандартный стек, то как к ним подключаются обычные машины, не DPDK? Ведь, DPDK - это серверное решение, для обеспечения высокой производительности сетевой передачи, за счет прямой работы с сетевой картой, а не через ОС.
Или я не прав?
Vitsliputsli, Под стандартным стеком, я имею ввиду реализацию поддержки TCP/IP в ядре ОС и сокеты, как часть этой реализации.
DPDK использует не стандартный стек, у него своя собственная реализация тех же протоколов - гораздо быстрей стандартной.
Поэтому клиентские части приложений, использующие стандартный стек вполне могут работать по стандартным протоколам с серверной частью, использующей стек DPDK.
res2001, ок, я так и написал. Просто под стеком TCP/IP подразумевается стек протоколов, а никак не реализация. И нет никакой стандартной реализации TCP/IP, как минимум у каждого ядра ОС она своя. DPDK, к примеру, дорабатывал реализацию FreeBSD.