Что в распределенных вычислениях фактически используется сервером для обнаружения клиентов и получения информации о них? Например, имя клиента, сколько памяти доступно, выполняет ли клиент задачу в данный момент (и сколько уже выполнил) и т.д. Или наоборот? Клиенты время от времени сообщают эту информацию серверу?
Можно ли это сделать через RPC? Или протокол обмена сообщениями (AMQP, STOMP)?
Мне также интересно, используется ли тот же метод для отправки клиентам различных заданий/задач?
Я ищу решение для Java, если это возможно.
Спасибо!