2009-10-13 3 views
2

Кажется, я не мог найти аналогичный вопрос.Grid Computing and Java

В настоящее время я смотрю на лучшее решение, решающее проблему с сеткой.

Установка:

  • У меня есть клиент/ситуация сервера там, где клиенты [обычно тупые большинства логики] и получать инструкции от сервера
  • есть запрос на авторизацию
  • Клиентов доложит информацию о скорости выполнения задачи (сложность задачи определяется по типу задачи)
  • Клиенты получают наилучшую задачу для своей предыдущей работы (лучшие клиенты получают наихудшие проблемы)

В конце концов требования будут:

  • след клиента должен быть небольшим и автономным - я не могу есть клиент, который требует много для установки и настройки
  • Клиент должен быть в состоянии захватить новые рабочие места и время выполнения задания с сервера (было бы неплохо иметь сетчатую шкалу для новых проблем [и новые проблемы будут распространены сервером], которые вводятся)
  • Мне нужно иметь уровень аутентификации (doesn ' t должен быть сложным или соответствовать существующему ldap) [более простое требование: клиенты могут регистрироваться для нового «mem сийский»и получить доступ] (я не уверен, что сильная RMI лежат здесь)
  • клиентов будут иметь возможность работать в Интернете, а в сетевом environement
    • Что означает шифрование результатов запрошенного

В настоящее время я использую webservices для связи между клиентами и сервером. Вся информация и результаты возвращаются на сервер хостинга (J2EE).

Мой вопрос: существует ли сетка, которая соответствует всем/большинству этих требований и является открытым исходным кодом?

Я не заинтересован в облаке, потому что большинство из этих задач небольшие, но очень частые (один раз в день, но задача может быть легкой, но выполняет техническое обслуживание).

Весь код этой системы находится в Java.

ответ

3

Вы можете исследовать space-based architectures, и, в частности, Jini и Javaspaces. Что такое Джини? Это, по существу, RMI с настраиваемым механизмом обнаружения. Вы запрашиваете разработчика интерфейса Java, а подсистема Jini обнаруживает текущие службы, реализующие этот интерфейс, и динамически информирует об их обслуживании.

Вкратце, вы должны писать рабочие элементы в пространство. Узлы сетки будут настроены так, чтобы считывать данные в транзакции из пространства. Каждый узел сетки принимает рабочий элемент, обрабатывает его и записывает результат обратно в это пространство (или другое пространство). Распределяющий узел может отслеживать запись результатов (и.или для ваших прогнозируемых таймингов результатов, как вы просили).

Это все Java и будет масштабироваться линейно. Поскольку это Jini, узлы сетки могут динамически загружать свои классы с HTTP-сервера и поэтому вы можете распространять обновления кода тривиально.

+1

Имеет ли JINI большой клиентский спрос во время выполнения, также может ли он быть настроен клиентом без жесткого кодирования? – monksy

+1

Нет и да соответственно. –

+0

Что это значит? Мне очень нравится идея пространств. Это звучит лучше, чем делать с RMI. Как насчет требований к безопасным каналам? Это настраивается? А как насчет брошенных детей? Другой вопрос (с учетом того, какие грид-бобины принимает во внимание), что касается ассигнований на работу? – monksy

0

BOINC звучит так, как будто это сработает для вашей проблемы, хотя вы должны обернуть java для своих клиентов. Это, и это может быть излишним для вас.