Вопрос

Я не мог найти подобный вопрос к этому.

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

Настройка:

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Взглянуть на Сетчатая фасоль

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top