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