2

我正在开发一个远程软件供应系统,它应该能够处理软件组件的所有部署、安装、卸载和升级。软件可以是任何语言(java、.net、c/c++ 等),目标端可以是 PC、嵌入式系统和智能手机。

我发现 Apache ACE 是开发该系统的理想选择。

我想知道在目标端使用 OSGi 是否有任何优势/必要性,因为 Apache ACE 也可以对非 OSGi 目标进行软件配置。

4

3 回答 3

2

在客户端拥有像 OSGi 这样的模块化框架在进行远程管理时是一个巨大的优势,因为它可以让您深入了解内部发生的事情 - 已安装的捆绑包、依赖项、捆绑包的状态、可用服务等。这对您有很大帮助必须远程解决问题。另一个优点是 OSGi 基本上迫使程序员开发适当的模块化和动态系统,这使得(远程)更新更加容易。

因此,如果您现在必须决定客户端使用哪种语言和框架,我强烈建议将 OSGi 用于嵌入式和移动客户端。对于个人电脑(我猜你的意思是台式电脑?)这可能不是最好的选择——这在很大程度上取决于你想在那里实现什么。如果你想远程安装 MS Office,OSGi 不会让你前进;)

但是,如果您在客户端已经有现有程序并且正在讨论是否将它们转换为 OSGi,我建议您先调查一下是否可以轻松转换它们。一些软件包可能会给你转换到 OSGi 带来很多麻烦,不是因为 OSGi 很复杂,而是因为程序本身不是模块化的,并且对环境的静态特性有很多假设(例如,什么都不会消失,部分系统永远不会更新等)。具有讽刺意味的是,无论您选择哪种远程配置系统,这些程序都将在以后给您带来最大的麻烦。

如果您在某些目标上安装了 OSGi,请务必使用远程供应系统,它可以让您访问完整的 OSGi 功能,而不仅仅是最基本和最简单的安装和更新功能。我还没有使用过 Apache ACE,但我对另一个供应系统 - mPower Remote Manager有经验。以下是文档中的一些快照,可以让您了解以 OSGi 作为基础的可能性 - 您可以得出自己的结论,它是否对您的案例有用。

于 2012-05-25T09:59:52.383 回答
1

我在你问的另一个问题中给出了一些例子:

Apache ACE 可以使用的非 osgi 目标有哪些

您可以编写自己的管理代理来与 ACE 服务器对话并安装工件。实际上有几个地方你可以挂上你自己的代码和协议。您是否正在考虑使用具体的语言/环境,或者您现在只是在探索可能性?

于 2012-05-25T17:25:15.443 回答
1

好吧,OSGi 的优点没有改变,所以我可以参考标准页面

为了更具建设性,我将把问题解读为“我是否应该费心将我的应用程序转换为 OSGi,因为 ACE 不需要它?”

我认为这取决于您所追求的更新机制的“种类”。如果您有一个单片应用程序(至少从供应的角度来看),您只作为一个整体进行部署和更新(就像一个 iOS 应用程序),那么使用 OSGi就供应目的而言没有什么好处。

对于其余部分,我可以像告诉其他任何人一样告诉您:将应用程序转换为 OSGi 并不难,但模块化代码可能是一场噩梦,但您在某些时候需要面对,无论是否是 OSGi。如果您的代码已经模块化,那么使用 OSGi 应该是小菜一碟。

于 2012-05-23T09:30:50.027 回答