Здравствуйте, paxerus, Вы писали: P>Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?
На выбор любой из методов межпроцессного взаимодействия, включая RPC и COM, а также WM_COPYDATA.
Почти все методы работают приерно следующим способом : параметры функции пакуются в буфер и записываются в некоторый разделяемый между процессами кусок памяти, шлется другому процессу нотификация что поивились новые данные( ивент или еще как), выполняется функция и таким же образом возвращяет результат. Можешь написать свой велосипед или заюзать готовую технологию : WM_COPYDATA, RPC, COM, PIPE, TCP/IP, ...
Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?
Re[3]: Вызов функций родительского процесса из дочернего
Здравствуйте, Nik_1, Вы писали:
N_>Здравствуйте, paxerus, Вы писали: P>>Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?
N_>На выбор любой из методов межпроцессного взаимодействия, включая RPC и COM, а также WM_COPYDATA. N_>Почти все методы работают приерно следующим способом : параметры функции пакуются в буфер и записываются в некоторый разделяемый между процессами кусок памяти, шлется другому процессу нотификация что поивились новые данные( ивент или еще как), выполняется функция и таким же образом возвращяет результат. Можешь написать свой велосипед или заюзать готовую технологию : WM_COPYDATA, RPC, COM, PIPE, TCP/IP, ...
А какова скорость работы таких методов?, ведь нужно записать в поток дочернему процессу считать данные родительскому, затем выполнить функцию и вернуть данные
Не будет ли COM быстрее в таком случае?
Re[4]: Вызов функций родительского процесса из дочернего
Здравствуйте, paxerus, Вы писали: P>А какова скорость работы таких методов?, ведь нужно записать в поток дочернему процессу считать данные родительскому, затем выполнить функцию и вернуть данные P>Не будет ли COM быстрее в таком случае?
Так ком делает все тожесамое
Ну да, межпроцессные вызовы естесно на порядок накладней инпроцесных. Но зато это хороший повод сделать хорошую развязку между модулями и слабосвязную архетиктуру, чтоб минимизировать частоту вызовов
Re[2]: Вызов функций родительского процесса из дочернего
paxerus wrote:
> Есть сервер, к нему написан плагин(плагином являеться сокет сервер), > если риск что при падении плагина может завалить и сервер, что ю > избежать этого риска я хочу вынести сам сокет сервер в отедельный > дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями > родительского процесса из другого процесса, подскажите подалуйста?
Грубо говоря, ты хочешь и на ёлку влезть, и зад не ободтать.
Думаю, что в этом случае лучше не связываться с вынесением плагинов
в отдельный процесс а просто тщательно их тестировать.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Вызов функций родительского процесса из дочернего
paxerus wrote:
> А какова скорость работы таких методов?, ведь нужно записать в поток > дочернему процессу считать данные родительскому, затем выполнить функцию > и вернуть данные
Мэдлэнный. Но я уже говорил — ты хочишь и влезть, и ...
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Вызов функций родительского процесса из дочернего
Здравствуйте, MasterZiv, Вы писали:
MZ>paxerus wrote:
>> А какова скорость работы таких методов?, ведь нужно записать в поток >> дочернему процессу считать данные родительскому, затем выполнить функцию >> и вернуть данные
MZ>Мэдлэнный. Но я уже говорил — ты хочишь и влезть, и .
ну если так подумать плагин все равно обрабатывает внешние запросы, которые не так быстры, я так понимаю общее время для клиенто не должно увеличиться больше чем в 2 раза, так как если клиент шлет по стеи удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая функции с родительского процесса,все таки он находиться локально и как минимум время на транспортировку будет минимально, я правильно понимаю?
Re[6]: Вызов функций родительского процесса из дочернего
paxerus пишет:
> удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая > функции с родительского процесса,все таки он находиться локально и как > минимум время на транспортировку будет минимально, я правильно понимаю?
Очень часто бывает, что основное время сетевого обмена занимает
взаимодействие с инфраструктурой сетевого обмена. Сама пересылка
данных может занять, скажем, процентов 20 от всего времени.
Оно конечно, зависит от каналов, которые используются, но я
бы не стал надеятся, что локально будет как-то сильно быстро.
Ну, скажем, будет быстрее в несколько раз, а сам RPC будет
медленнее обычного вызова функции на порядок или несколько.
В общем, я бы рекомендовал 3 раза подумать, нужна ли тебе
так эта надёжность.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Вызов функций родительского процесса из дочернего
Здравствуйте, MasterZiv, Вы писали:
MZ>paxerus пишет:
>> удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая >> функции с родительского процесса,все таки он находиться локально и как >> минимум время на транспортировку будет минимально, я правильно понимаю?
MZ>Очень часто бывает, что основное время сетевого обмена занимает MZ>взаимодействие с инфраструктурой сетевого обмена. Сама пересылка MZ>данных может занять, скажем, процентов 20 от всего времени. MZ>Оно конечно, зависит от каналов, которые используются, но я MZ>бы не стал надеятся, что локально будет как-то сильно быстро. MZ>Ну, скажем, будет быстрее в несколько раз, а сам RPC будет MZ>медленнее обычного вызова функции на порядок или несколько.
MZ>В общем, я бы рекомендовал 3 раза подумать, нужна ли тебе MZ>так эта надёжность.
Хорошо спасибо за консультацию, замерю время,вызова функций и там уже решу что делать