Илья2
Guest
Распределенное приложение
Тема о клиент/серверном php, напомнила мне одну идею которую я некоторое время назад рассматривал.
Это распределенное приложение, т.е. допустим есть задача, она состоит из нескольких последовательных подзадач, для каждой есть вход (входные данные), есть выход (выходные данные), ну и собственно обработка (середина), выход одной подзадачи попадает на вход последующей.
также представим вход и выход в ввиде очереди этих самых элементов информации, которые с одной стороны являются входными а с другой - выходными.
пусть есть 3 подзадачи: пз1, пз2, пз3
очередь01 -> [пз1] -> очередь12 -> [пз2] -> очередь23 -> [пз3] -> очередь30
"очередь01" значит вход идет из наружи и попадает на 1-ый испольнительный участок.
т.е. допустим что эти самые [пз] можно выполнять на 3-х машинах, каждая из которых может находится в одном из состоянии, т.е. работает в режиме пз1 или пз2 или пз3.
Очереди доступны для всех машин эквивалентно.
задача в эффективном распределении работы, т.к. каждаяй пз - не равнозначна во времени и по производительности.
допусти поставлены условия что очень большая загрузка (очередь01) конечно можно решить это добавлением новых машин для пз1. но в ведь можно переключать машины 2 и 3 в решим работы пз1, и после уменьшения нагрузки переключать на другие работы.
т.е. допустим что нагрузка зависит от времени суток - днем большая - ночью маленькая.
т.е. необходим менеджер который следит за размером очередей, и у которого есть приоритеты этих очередей, и который может переключать машины в разные режимы работы.
В общем мне интересно интересна ли эта задача кому-нибудь
Конечно можно рассмотреть эти процессы (пз) в рамках одной машины, тогда можно ввести менеджер глобальный (на уровне машин-узлов), менеджер локальный (на уровне процессов-нитей).
И количество подзадачь конечно же может быть больше 3-х.
практический пример - email-parsing система, пз1 - получение писем, пз2 обработка писем по какой-либо логике, пз3 - посылка результатов.
Илья
Тема о клиент/серверном php, напомнила мне одну идею которую я некоторое время назад рассматривал.
Это распределенное приложение, т.е. допустим есть задача, она состоит из нескольких последовательных подзадач, для каждой есть вход (входные данные), есть выход (выходные данные), ну и собственно обработка (середина), выход одной подзадачи попадает на вход последующей.
также представим вход и выход в ввиде очереди этих самых элементов информации, которые с одной стороны являются входными а с другой - выходными.
пусть есть 3 подзадачи: пз1, пз2, пз3
очередь01 -> [пз1] -> очередь12 -> [пз2] -> очередь23 -> [пз3] -> очередь30
"очередь01" значит вход идет из наружи и попадает на 1-ый испольнительный участок.
т.е. допустим что эти самые [пз] можно выполнять на 3-х машинах, каждая из которых может находится в одном из состоянии, т.е. работает в режиме пз1 или пз2 или пз3.
Очереди доступны для всех машин эквивалентно.
задача в эффективном распределении работы, т.к. каждаяй пз - не равнозначна во времени и по производительности.
допусти поставлены условия что очень большая загрузка (очередь01) конечно можно решить это добавлением новых машин для пз1. но в ведь можно переключать машины 2 и 3 в решим работы пз1, и после уменьшения нагрузки переключать на другие работы.
т.е. допустим что нагрузка зависит от времени суток - днем большая - ночью маленькая.
т.е. необходим менеджер который следит за размером очередей, и у которого есть приоритеты этих очередей, и который может переключать машины в разные режимы работы.
В общем мне интересно интересна ли эта задача кому-нибудь
Конечно можно рассмотреть эти процессы (пз) в рамках одной машины, тогда можно ввести менеджер глобальный (на уровне машин-узлов), менеджер локальный (на уровне процессов-нитей).
И количество подзадачь конечно же может быть больше 3-х.
практический пример - email-parsing система, пз1 - получение писем, пз2 обработка писем по какой-либо логике, пз3 - посылка результатов.
Илья