【问题标题】:Is it appropriate to use OSGI framework on small java app?在小型 Java 应用程序上使用 OSGI 框架是否合适?
【发布时间】:2011-06-05 08:23:44
【问题描述】:

我计划用 OSGI 框架重新实现我的一个小而有用的应用程序。我从未使用过它,所以我问在小型应用程序上使用 OSGI 是否合适,使用此类框架时速度或/和内存占用是否有很大差异。另外,如果这是一个不错的选择,我会问哪种实现最适合小型应用程序。

谢谢!

【问题讨论】:

  • 什么是适合您的小型应用程序?只有一帧? 10个不同的框架?最合适的框架主要是您的开发人员(您)最有经验的框架。我想学OSGI,试试看。

标签: java osgi


【解决方案1】:

对于现代计算机系统,OSGi 的速度和内存占用完全无关紧要:请记住,OSGi 是为资源受限的设备开发的。内存占用数百 kB,一旦服务解析完成,框架对应用程序的速度没有影响(例如,没有代理)。总之,运行时不用担心。

我喜欢一个设计合理的 OSGi 应用程序清理应用程序结构的方式,它迫使您考虑您的模块和服务。我将在这里远离模块化和面向服务的所有好处,只要记住它们同样适用于小型应用程序和大型应用程序。嘿,您甚至可能会开始寻找可重用的组件!

需要考虑打包和发布您的应用程序:根据您的受众,您可以通过使用 shell 脚本让系统运行(使用例如Pax Runner),或者您可能需要投资一些更花哨的东西,比如带有图标的漂亮应用程序包装。

【讨论】:

    【解决方案2】:

    我使用 karaf/iPOJO 作为 OSGi 容器,以允许在应用程序运行时升级库版本。

    但是,对于一个可以随时重新启动的小型应用程序,我会尽量保持简单。

    【讨论】:

      【解决方案3】:

      今天,OSGi 基本没有开销,框架从 350k 到 1mb 不等。在运行时,OSGi 不会妨碍您。

      你应该看看 bndtools,它为 OSGi 包提供了一个非常好的开发环境,包括启动、调试和测试。您可以轻松地在框架之间切换。

      您可以在 Eclipse 市场中找到 bndtools。

      【讨论】:

        【解决方案4】:

        OSGi 仍然比常规 Java 项目多“一点”开销。如果你想要版本控制,我会改为依赖 Maven 模块。

        如果您选择 OSGi 方法,请查看 Eclipse 插件创建。这是基于 Eclipse Equinox 的,并且可以通过 Eclipse 提供的用于创建新项目的向导快速应用于新项目。

        祝你好运!

        【讨论】:

        • 看看 bndtools。它们为开始使用 OSGi 提供了一种非常简单的方法,包括在 Eclipse 中包含和运行应用程序。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-23
        • 2016-10-07
        • 1970-01-01
        • 2013-01-19
        相关资源
        最近更新 更多