OSGi部署管理服务的状态

Thi*_*ilo 14 java osgi

OSGi应用程序由称为bundle的模块组成.问题是,任何合理大小的应用程序都会有大量的捆绑包(很容易就是数百个,只需查看Eclipse IDE的plugins目录),这样在管理或部署应用程序时,您需要比单个捆绑包更粗糙的粒度.

OSGi服务纲要规范包含部署管理服务,该服务将部署包定义为可以作为单个单元部署,升级,卸载等的捆绑和其他工件(例如配置)的集合.

不幸的是,我找不到有关Deployment Admin实施,工具或用户的更多信息.

这项服务的状态如何?有没有人对Deployment Admin有任何经验,意见或建议?

此外,我认为Spring dm-server具有捆绑应用程序范围集合(PAR文件)的概念,Eclipse Equinox正在研究嵌套框架以解决这个问题.这些方法如何与Deployment Admin相关?

Gly*_*ton 10

部署管理员是OSGi纲要服务之一,似乎吸引了相对较少的关注.显然,有一个规范,因此可能是一个参考实现和一致性测试.一个实现是为Apache Felix项目做出贡献的,但似乎几乎没有任何痕迹.

在SpringSource dm Server中设计PAR文件支持时,我查看了Deployment Admin,但该模型不适合我们的用例.特别是,具有给定符号名称(和任何版本)的bundle可能不会驻留在安装在同一OSGi框架中的两个不同的Deployment Packages中.

相反,安装在同一dm Server实例中的两个PAR文件可能都包含具有给定包符号名称(以及相同或不同的包版本)的包.我们将此视为应用程序扩展要求:我们不希望大型应用程序"碰撞"只是因为他们的开发人员碰巧打包了相同的捆绑包.服务也由PAR文件确定范围.

在dm Server 2.0中,我们将PAR的概念概括为"计划",这些计划是按类型名称和版本引用要安装的工件的文件.计划可以是作用域(如PAR)或未作用域,并且可以是原子的(意味着其内容的生命周期与计划的生命周期(如PAR)在原子上相关)或非原子的.

嵌套框架也正在作为未来可能的OSGi标准进行调查,以满足应用程序范围要求,但设计点与dm服务器范围截然不同.嵌套框架无法在其父框架中自动查看包和服务.因此,默认情况下,模型是隔离模式,无论是相互隔离子框架还是隔离子框架和父框架.dm服务器范围故意将儿童彼此隔离,但仅在一个方向上将儿童与其父母隔离:儿童可以看到其父母的所有包裹和服务.


Ang*_*jpt 6

您可能有兴趣知道Apache Ace(目前正在孵化和增加)可以为Deployment Admin动态生成部署包,并使用(默认情况下,在配置到OSGi目标时)Felix的部署管理员.

由于该网站正在开发中:Apache Ace是一个软件分发框架,允许您集中管理和分发软件组件,配置数据和其他工件到目标系统.它使用OSGi构建,可以部署在不同的拓扑中.目标系统通常也是基于OSGi的,但并非必须如此.