Java OSGi部署管理服务的状态

Java OSGi部署管理服务的状态,java,osgi,Java,Osgi,OSGi应用程序由称为bundle的模块组成。问题是,任何大小合理的应用程序都会有大量的bundle(很容易有数百个,只需查看EclipseIDE的plugins目录),因此在管理或部署应用程序时,您需要比单个bundle更粗的粒度 OSGi服务概要规范包含一个部署管理服务,它将部署包定义为捆绑包和其他工件(如配置)的集合,这些工件可以作为单个单元进行部署、升级、卸载等 不幸的是,我找不到关于部署管理实现、工具或用户的更多信息 这项服务的状态如何? 是否有人对部署管理有任何经验、意见或建议 另外

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

OSGi服务概要规范包含一个部署管理服务,它将部署包定义为捆绑包和其他工件(如配置)的集合,这些工件可以作为单个单元进行部署、升级、卸载等

不幸的是,我找不到关于部署管理实现、工具或用户的更多信息

这项服务的状态如何? 是否有人对部署管理有任何经验、意见或建议


另外,SpringDM服务器具有应用范围捆绑包集合(PAR文件)的概念,我认为EclipseEquinox正在开发嵌套框架来解决这个问题。这些方法与部署管理有什么关系

Deployment Admin是OSGi概要服务中的一个,它似乎没有引起多少关注。显然有一个规范,因此可能有一个参考实现和符合性测试。ApacheFelix项目中提供了一个实现,但似乎几乎没有任何痕迹

我在设计SrimeM源DM服务器中的PAR文件支持时查看部署管理,但是该模型对于我们的用例来说是不合适的。特别是,具有给定符号名称(以及任何版本)的捆绑包可能不位于安装在同一OSGi框架中的两个不同部署包中

相比之下,安装在DM服务器的同一实例中的两个PAR文件都可以包含一个具有给定束符号名称的捆绑包(以及相同或不同的捆绑版本)。我们将此视为应用程序扩展需求:我们不希望大型应用程序“冲突”,因为它们的开发人员碰巧打包了相同的包。服务也被PAR文件所覆盖。

在dm Server 2.0中,我们将PAR的概念概括为“计划”,即按类型名称和版本引用待安装工件的文件。计划可以是有范围的(如PAR)或无范围的,也可以是原子的(意味着其内容的生命周期在原子上与计划的生命周期相联系,如PAR)或非原子的


嵌套框架也正在被研究作为未来可能的OSGi标准,以满足应用程序范围需求,但与dm服务器范围的设计点截然不同。嵌套框架无法自动查看其父框架中的包和服务。因此,默认情况下,该模型是一个隔离模型,无论是子框架彼此隔离,还是子框架和父框架隔离。dm Server作用域故意将子项彼此隔离,但仅在一个方向将子项与其父项隔离:子项可以看到其父项的所有包和服务。

您可能有兴趣知道(当前正在酝酿和升级)可以为部署管理动态生成部署包,并使用(默认情况下,设置到OSGi目标时)Felix的部署管理员

由于该网站正在开发中:ApacheACE是一个软件分发框架,允许您集中管理软件组件、配置数据和其他工件,并将其分发到目标系统 可以部署在不同的拓扑中。目标系统通常也是基于OSGi的,但不一定是基于OSGi的