| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Кластер на базе сервлет контейнера |
| Автор: Girin 19.3.2008, 20:43 |
| Хочу создать кластер на базе Tomcat , для поддержки распределенных вычислений по сети. Архитектура взаимодействия такая - есть севрлет контейнер, который парсит запросы от клиентов и передает их на обработку удаленным агентам для вычисления по сети. Вопрос какую технологию использовать для связи с удаленным агентами и передачи им определенной подзадачи , чтобы интерфейс взаимодействия был достаточно высокого уровня абстракции и сильно не зависел от специфики распределяемой задачи ? Конкретный набор задач хранится в директориях томката, и может расширяться Просто ранее занимался распараллеливанием задач на С++ с использованием MPI и Pthreads , но тогда все это выполнялось на одной машине. И в случае с MPI приходилось погружаться в специфику конкретной задачи и распределять с учетом начальных условий, т.е. желаемая переносимость приложения была трудно достижима |
| Автор: COVD 19.3.2008, 21:32 | ||
что означает "передает их на обработку" ? - редиректит клиента на другой сервер ? - сам пересылает запрос на другой сервер , ждет ответа и, получив/не получив ответ, возвращает его клиенту ? - сам пересылает запрос на другой сервер, и сообщает клиенту, чтобы задание принято/не принято на выполнение ? |
| Автор: Girin 19.3.2008, 22:10 | ||||
| В моем случае томкат работает как диспетчер задач и посредник между клиентом и агентами . То есть выполняет и это
Планирование, сихронизация, сбор результатов - все осуществляется узлом на котором запущен сервлет контейнер |
| Автор: COVD 19.3.2008, 22:28 |
| Первое - это синхронный способ - сервер может использовать RMI для общения с агентом, или решения на его основе. Второе - асинхронный - общение сервера с агентами может реализовываться с использованием messaging систем. Наверное, в качестве универсального решения можно применить messaging для интеграции сервера и агентов. Если же применять application server, то в его составе, насколько я знаю, реализованы оба варианта коммуникации (синхронный\асинхронный). И Томкат будет частью аппсервера, а не отдельным приложением. |
| Автор: Girin 19.3.2008, 22:49 | ||||||
Да RMI интересный вариант решения попробую его сначала...
Имеется ввиду JMS и ее реализация в виде ActiveMQ ? Еще пока не ясно как абстрагировать распределяемую задачу , использовать сериализацию или определить на удаленных агентах набор тривиальных функций
Можно пояснить .. Вы говорите о серверах приложений навроде JBoss или WebSphere, которые включают контейнер сервлетов и будут предоставлять большую функциональность чем просто томкат ? |
| Автор: COVD 20.3.2008, 00:04 | ||||||
Да. А реализаций много.
Как можно противопоставлять сериализацию и функции? Одно необходимо для передачи данных, другое - набор инструкций для операций над данными. Сервер может послать агенту только данные - команду и исходные условия, а агент должен иметь функции ( методы ) для формирования данных, которые будут посланы обратно серверу.
Да. И эта дополнительная функциональность включает в себя встроенный механизм взаимодействия с другими серверами (агентами), которые в данном случае, очевидно, тоже должны быть реализованы на аппсерверах. |
| Автор: Girin 20.3.2008, 00:35 | ||||
Возможно ли реализовать набор решаемых агентом задач с помощью плагинов(JPF) ?
А если агента реализовать как сервис , на основе Java Service Wrapper и jmdns (для работы с сервисом обнаружения ) ,а для доступа к службе сообщений использовать библиотеки ActiveMQ JMS Provider? Или ставить на каждого агента монстров типа JBoss ? |
| Автор: mindflyer 20.3.2008, 12:29 |
| JBoss сам по себе не такой уж и монстр. Зато при его использовании сразу получишь кучу встроенных вкусностей - помимо уже перечисленных механизмов взаимодействия, ещё кластеризацию, возможность хот-деплоймента (например, модули для новых типов задач) и многое другое. |