JEP 168: Network Discovery of Manageable Java Processes
Обнаружение управляемых Java-процессов в сети
| Автор | Dmitry Samersoff |
| Ответственный | Dmitriy Samersoff |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 8 |
| Компонент | core-svc |
| Обсуждение | serviceability dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Рецензенты | Mikael Vidstedt |
| Одобрен | Mikael Vidstedt |
| Создан | 2012/10/02 20:00 |
| Обновлён | 2016/06/07 15:57 |
| Задача | 8046158 |
Аннотация
Определить легковесный сетевой протокол для обнаружения запущенных и управляемых Java-процессов в пределах подсети.
Цели
-
Простая служба, которая не зависит ни от чего, кроме того, что входит в JDK.
-
Служба, для работы которой не нужен никакой процесс, кроме самого Java-процесса.
-
Она должна предоставлять информацию о запущенном Java-процессе в сети, и должна быть возможность обнаружить, что Java-процесс больше не работает.
-
Она не должна требовать предварительных сведений о том, какие машины доступны в сети.
-
Она должна включать информацию о конечной точке для подключения, например JMXService URL.
-
Служба должна останавливаться, когда мы останавливаем агент управления, и не должно быть возможности запустить службу без агента управления.
-
Она должна содержать и другую информацию, полезную для отображения подключения в клиенте, например PID, версию JRE и главный класс.
-
Должна быть возможность расширять передаваемую информацию.
Что не является целью
-
Протокол не предназначен для использования в публичной сети.
-
Протокол не предоставляет никакого контроля доступа; это должно делаться на сетевом уровне.
Описание
Протокол представляет собой легковесный протокол на основе multicast и работает как маяк: если приложение запущено с соответствующими параметрами, он рассылает JMXService URL, необходимый для подключения к внешнему JMX-агенту.
Полезная нагрузка имеет следующую структуру:
4 bytes JDP magic (0xC0FFEE42)
2 bytes JDP protocol version (1)
2 bytes size of the next entry
x bytes next entry (UTF-8 encoded)
2 bytes size of next entry
... Rinse and repeat...
При разборе полезной нагрузки чётные элементы будут считаться ключами, нечётные — значениями.
Стандартный пакет JDP содержит четыре элемента:
-
DISCOVERABLE_SESSION_UUID— уникальный идентификатор экземпляра; этот идентификатор меняется при каждом запуске и остановке протокола обнаружения -
MAIN_CLASS— значение свойстваsun.java.command -
JMX_SERVICE_URL— URL для подключения к JMX-агенту -
INSTANCE_NAME— заданное пользователем имя запущенного экземпляра
Поведение протокола управляется системными свойствами:
-
com.sun.management.jdp.port— переопределить порт по умолчанию -
com.sun.management.jdp.address— переопределить адрес по умолчанию -
com.sun.management.jmxremote.autodiscovery— запускать автообнаружение или нет. Автообнаружение запускается тогда и только тогда, когда выполнены следующие условия: (autodiscovery равно true ИЛИ (autodiscovery не задано И jdp.port задано)) -
com.sun.management.jdp.ttl— задать TTL для рассылаемого пакета, по умолчанию 1 -
com.sun.management.jdp.pause— задать интервал рассылки в секундах, по умолчанию 5 -
com.sun.management.jdp.source_addr— адрес интерфейса, используемого для рассылки
Значения по умолчанию
заявка [IANA #656814]:
224.0.23.178 JDP Java Discovery Protocol
заявка [IANA #656816]
7095/UDP
Тестирование
Будут предоставлены модульные тесты.
Влияние
-
Другие компоненты JDK: затронет только JMX-агент
-
Совместимость: не затрагивается
-
Безопасность: по умолчанию протокол выключен, кроме того, TTL по умолчанию для multicast-пакетов равен нулю, поэтому пакет не выйдет за пределы локальной сети.
-
Производительность и масштабируемость: ограниченное влияние, один дополнительный поток
-
Удобство использования: не затрагивается
-
I18n/L10n: не затрагивается
-
Доступность для людей с ограниченными возможностями: не затрагивается
-
Переносимость: не затрагивается
-
Упаковка и установка: не затрагиваются
-
Документация: новые параметры и их использование потребуется задокументировать.
-
TCK: не затрагивается