Deployment Admin - одна из тех служб OSGi, которая, кажется, привлекла относительно мало внимания. Очевидно, что есть спецификация и, следовательно, предположительно эталонная реализация и тесты на соответствие. Реализация была внесена в проект Apache Felix, но, похоже, затонула почти без следа.
Я смотрел на администратора развертывания при разработке поддержки файла PAR в SpringSource dm Server, но эта модель была неподходящей для наших случаев использования. В частности, пакет с данным символическим именем (и любой версией) не может находиться в двух разных пакетах развертывания, которые установлены в одной и той же среде OSGi.
Напротив, два файла PAR, установленные в одном и том же экземпляре dm Server, могут оба содержать пакет с заданным символическим именем пакета (и одну и ту же или другую версию пакета). Мы рассматриваем это как требование к масштабированию приложения: мы не хотели, чтобы крупные приложения «сталкивались» просто потому, что их разработчики упаковывали один и тот же пакет. Услуги также ограничены файлами PAR.
В dm Server 2.0 мы обобщили концепцию PAR в «планы», которые представляют собой файлы, ссылающиеся по имени типа и версии на устанавливаемые артефакты. План может быть ограничен (как PAR) или не ограничен и может быть атомарным (то есть жизненный цикл его содержимого атомарно привязан к жизненному циклу плана, как PAR) или неатомарным.
Вложенные инфраструктуры также исследуются в качестве возможного будущего стандарта OSGi для удовлетворения требований области видимости приложений, но с довольно другой точкой проектирования по сравнению с областями применения dm Server. Вложенная структура не может автоматически видеть пакеты и службы в своей родительской структуре. Таким образом, модель является моделью изоляции по умолчанию, будь то изоляция дочерних платформ друг от друга или изоляция дочерних и родительских платформ. Области применения dm Server намеренно изолируют дочерние элементы друг от друга, но изолируют дочерний элемент только от своего родителя в одном направлении: дочерний элемент может видеть все пакеты и сервисы своего родительского элемента.