Программное обеспечение, используемое в грид-вычислениях для обнаружения клиентов

Что в распределенных вычислениях фактически используется сервером для обнаружения клиентов и получения информации о них? Например, имя клиента, сколько памяти доступно, выполняет ли клиент задачу в данный момент (и сколько уже выполнил) и т.д. Или наоборот? Клиенты время от времени сообщают эту информацию серверу?

Можно ли это сделать через RPC? Или протокол обмена сообщениями (AMQP, STOMP)?

Мне также интересно, используется ли тот же метод для отправки клиентам различных заданий/задач?

Я ищу решение для Java, если это возможно.

Спасибо!


person littleK    schedule 23.10.2013    source источник


Ответы (2)


Не существует фактического стандарта де-факто для обнаружения серверов/узлов/клиентов в грид-вычислениях, по крайней мере, ни один из них не используется повсеместно. Многие реализации используют обнаружение adhoc на основе многоадресной рассылки UDP, другие используют обнаружение на основе реестра, как в архитектурах SOA. Есть много решений, но нет универсального стандарта.

Некоторые реализации, совместимые с Java, на которые стоит обратить внимание: Unicore, JPPF, HTCondor, GridGain, Hadoop, Globus, Хейзелкаст

person Lolo    schedule 24.10.2013

Zookeeper — это то, на что стоит обратить внимание. Возможно, в сочетании с обменом сообщениями JMS, если ваши ресурсы распределены по всему миру. Я использую Zookeeper со службой SystemInfo, работающей на каждом узле. Служба регистрирует системную информацию: память, количество ЦП, дисковое пространство и т. д., такие как znode в /Resources в Zookeeper.

Затем любая служба, которой нужен ресурс, может запросить /Resources, если ищет ресурс, чтобы что-то сделать, и проверить его спецификации перед выделением работы.

Java API для Zookeeper довольно хорош. Мне легко с ним работать.

person Tony    schedule 23.10.2013