Re[2]: Вызов функций родительского процесса из дочернего
От: Nik_1 Россия  
Дата: 18.12.09 06:42
Оценка: +1
Здравствуйте, paxerus, Вы писали:
P>Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?

На выбор любой из методов межпроцессного взаимодействия, включая RPC и COM, а также WM_COPYDATA.
Почти все методы работают приерно следующим способом : параметры функции пакуются в буфер и записываются в некоторый разделяемый между процессами кусок памяти, шлется другому процессу нотификация что поивились новые данные( ивент или еще как), выполняется функция и таким же образом возвращяет результат. Можешь написать свой велосипед или заюзать готовую технологию : WM_COPYDATA, RPC, COM, PIPE, TCP/IP, ...
Вызов функций родительского процесса из дочернего
От: paxerus  
Дата: 18.12.09 06:25
Оценка:
Добрый день

Подскажите пожалуйста какие есть методы для реализации данной задачи,их плюсы и минусы.

Вроде как можно это сделать с помошью RPC и COM, объясните общую концепцию реализации
Re: Вызов функций родительского процесса из дочернего
От: paxerus  
Дата: 18.12.09 06:31
Оценка:
Суть проблемы собственно в следующем

Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?
Re[3]: Вызов функций родительского процесса из дочернего
От: paxerus  
Дата: 18.12.09 07:35
Оценка:
Здравствуйте, Nik_1, Вы писали:

N_>Здравствуйте, paxerus, Вы писали:

P>>Есть сервер, к нему написан плагин(плагином являеться сокет сервер), если риск что при падении плагина может завалить и сервер, что ю избежать этого риска я хочу вынести сам сокет сервер в отедельный дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями родительского процесса из другого процесса, подскажите подалуйста?

N_>На выбор любой из методов межпроцессного взаимодействия, включая RPC и COM, а также WM_COPYDATA.

N_>Почти все методы работают приерно следующим способом : параметры функции пакуются в буфер и записываются в некоторый разделяемый между процессами кусок памяти, шлется другому процессу нотификация что поивились новые данные( ивент или еще как), выполняется функция и таким же образом возвращяет результат. Можешь написать свой велосипед или заюзать готовую технологию : WM_COPYDATA, RPC, COM, PIPE, TCP/IP, ...

А какова скорость работы таких методов?, ведь нужно записать в поток дочернему процессу считать данные родительскому, затем выполнить функцию и вернуть данные
Не будет ли COM быстрее в таком случае?
Re[4]: Вызов функций родительского процесса из дочернего
От: Nik_1 Россия  
Дата: 18.12.09 07:59
Оценка:
Здравствуйте, paxerus, Вы писали:
P>А какова скорость работы таких методов?, ведь нужно записать в поток дочернему процессу считать данные родительскому, затем выполнить функцию и вернуть данные
P>Не будет ли COM быстрее в таком случае?
Так ком делает все тожесамое
Ну да, межпроцессные вызовы естесно на порядок накладней инпроцесных. Но зато это хороший повод сделать хорошую развязку между модулями и слабосвязную архетиктуру, чтоб минимизировать частоту вызовов
Re[2]: Вызов функций родительского процесса из дочернего
От: MasterZiv СССР  
Дата: 20.12.09 23:39
Оценка:
paxerus wrote:

> Есть сервер, к нему написан плагин(плагином являеться сокет сервер),

> если риск что при падении плагина может завалить и сервер, что ю
> избежать этого риска я хочу вынести сам сокет сервер в отедельный
> дочерний процесс, но встает вопрос как тогда рабоатать с АПИ функциями
> родительского процесса из другого процесса, подскажите подалуйста?

Грубо говоря, ты хочешь и на ёлку влезть, и зад не ободтать.
Думаю, что в этом случае лучше не связываться с вынесением плагинов
в отдельный процесс а просто тщательно их тестировать.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Вызов функций родительского процесса из дочернего
От: MasterZiv СССР  
Дата: 20.12.09 23:40
Оценка:
paxerus wrote:

> А какова скорость работы таких методов?, ведь нужно записать в поток

> дочернему процессу считать данные родительскому, затем выполнить функцию
> и вернуть данные

Мэдлэнный. Но я уже говорил — ты хочишь и влезть, и ...
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Вызов функций родительского процесса из дочернего
От: paxerus  
Дата: 21.12.09 04:47
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>paxerus wrote:


>> А какова скорость работы таких методов?, ведь нужно записать в поток

>> дочернему процессу считать данные родительскому, затем выполнить функцию
>> и вернуть данные

MZ>Мэдлэнный. Но я уже говорил — ты хочишь и влезть, и .

ну если так подумать плагин все равно обрабатывает внешние запросы, которые не так быстры, я так понимаю общее время для клиенто не должно увеличиться больше чем в 2 раза, так как если клиент шлет по стеи удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая функции с родительского процесса,все таки он находиться локально и как минимум время на транспортировку будет минимально, я правильно понимаю?
Re[6]: Вызов функций родительского процесса из дочернего
От: MasterZiv СССР  
Дата: 21.12.09 08:31
Оценка:
paxerus пишет:

> удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая

> функции с родительского процесса,все таки он находиться локально и как
> минимум время на транспортировку будет минимально, я правильно понимаю?

Очень часто бывает, что основное время сетевого обмена занимает
взаимодействие с инфраструктурой сетевого обмена. Сама пересылка
данных может занять, скажем, процентов 20 от всего времени.
Оно конечно, зависит от каналов, которые используются, но я
бы не стал надеятся, что локально будет как-то сильно быстро.
Ну, скажем, будет быстрее в несколько раз, а сам RPC будет
медленнее обычного вызова функции на порядок или несколько.

В общем, я бы рекомендовал 3 раза подумать, нужна ли тебе
так эта надёжность.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Вызов функций родительского процесса из дочернего
От: paxerus  
Дата: 22.12.09 12:20
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>paxerus пишет:


>> удаленно(!!!) запрос плагин его получает обрабатывает при этом вызывая

>> функции с родительского процесса,все таки он находиться локально и как
>> минимум время на транспортировку будет минимально, я правильно понимаю?

MZ>Очень часто бывает, что основное время сетевого обмена занимает

MZ>взаимодействие с инфраструктурой сетевого обмена. Сама пересылка
MZ>данных может занять, скажем, процентов 20 от всего времени.
MZ>Оно конечно, зависит от каналов, которые используются, но я
MZ>бы не стал надеятся, что локально будет как-то сильно быстро.
MZ>Ну, скажем, будет быстрее в несколько раз, а сам RPC будет
MZ>медленнее обычного вызова функции на порядок или несколько.

MZ>В общем, я бы рекомендовал 3 раза подумать, нужна ли тебе

MZ>так эта надёжность.

Хорошо спасибо за консультацию, замерю время,вызова функций и там уже решу что делать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.