我正在开发一个远程软件供应系统,应该能够处理所有部署,安装,卸载和升级的软件组件。软件可以是任何语言(java、.net、c/c++等),目标端可以是PC、嵌入式系统和智能手机。
我发现Apache ACE是开发这个系统的很好的候选者。
我想知道在目标端使用OSGi是否有任何好处/必要性,因为Apache ACE也可以对非OSGi目标进行软件配置。
发布于 2012-05-26 01:25:15
我在你问的另一个问题中举了一些例子:
What are the non-osgi targets with which Apache ACE can work
您可以编写自己的管理代理,与ACE服务器通信并安装工件。实际上,您可以在几个地方挂接您自己的代码和协议。你有没有考虑使用一种具体的语言/环境,或者你现在只是在探索可能性?
发布于 2012-05-25 17:59:52
在客户端拥有像OSGi这样的模块化框架在进行远程管理时是一个巨大的优势,因为它可以让你深入了解内部发生的事情-安装的捆绑包,依赖项,捆绑包的状态,可用的服务等。当你必须远程解决问题时,这会有很大帮助。另一个优点是,OSGi基本上迫使程序员开发适当的模块化和动态系统,这使得(远程)更新变得容易得多。
因此,如果您现在必须决定在客户端使用哪种语言和框架,我强烈建议将OSGi用于嵌入式和移动客户端。对于PC(我猜您指的是台式PC?)这可能不是最好的选择--这在很大程度上取决于你想要在那里实现什么。如果你想远程安装微软办公软件,OSGi不会带你前去;)
但是,如果您在客户端已经有现有的程序,并且正在讨论是否将它们转换为OSGi,我建议您先调查一段时间,看看是否可以轻松地转换它们。一些软件包可能会给你转换到OSGi带来很多麻烦,不是因为OSGi很复杂,而是因为程序本身不是模块化的,并且对环境的静态性质有很多假设(例如,没有任何东西会消失,系统的某些部分永远不会更新等等)。具有讽刺意味的是,无论您选择的是哪种远程供应系统,这些正是稍后会给您带来最大麻烦的程序。
如果您在某些目标上安装了OSGi,请确保使用远程供应系统,该系统允许您访问完整的OSGi功能,而不仅仅是最基本、最简单的安装和更新功能。我还没有使用过Apache ACE,但我有使用另一个配置系统-- mPower Remote Manager的经验。这里有一些snapshots from the documentation,它们可以让你感觉到使用OSGi作为基础是可能的-无论它对你的情况是否有用,你都可以得出自己的结论。
发布于 2012-05-23 17:30:50
好的,OSGi的优势并没有改变,所以我可以向您推荐the standard page。
为了更有建设性,我将这个问题理解为“我是否应该费心将我的应用程序转换为OSGi,因为它不是ACE所必需的?”
我想这取决于你想要什么样的更新机制。如果您有一个单一的应用程序(至少从配置的角度来看),而您仅将其作为一个整体进行部署和更新(就像一个iOS应用程序),那么使用OSGi进行配置不会获得太多好处。
对于其余部分,我可以像告诉其他任何人一样告诉您:将应用程序转换为OSGi并不困难,但模块化代码可能是一场噩梦,但在某种程度上,无论是不是OSGi,您都需要面对一些问题。如果你的代码已经模块化了,使用OSGi应该是小菜一碟。
https://stackoverflow.com/questions/10713583
复制相似问题