OSGI到底是什么

今天看了大半天OSGI,最后还是没弄懂到底是什么东西?是一个协议还是框架?求指明!

阅读 18.9k
5 个回答

维基百科的解释:

OSGi(Open Service Gateway Initiative)有双重含义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务(业务)规范——OSGi服务平台(Service Platform)。

OSGi Alliance是一个由Sun Microsystems、IBM、爱立信等于1999年3月成立的开放的标准化组织, 最初名为Connected Alliance。该组织及其标准原本主要目的在于使服务提供商通过住宅网关,为各种家庭智能设备提供各种服务。目前该平台逐渐成为一个为室内、交通工具、移动电话和其他环境下的所有类型的网络设备的应用程序和服务进行传递和远程管理的开放式服务平台。

该规范和核心部分是一个框架 ,其中定义了应用程序的生命周期模式和服务注册。基于这个框架定义了大量的OSGi服务:日志、配置管理、偏好,HTTP(运行servlet)、XML分析、设备访问、软件包管理、许可管理、星级、用户管理、IO连接、连线管理、Jini和 UPnP。

这个框架实现了一个优雅、完整和动态的组件模型。应用程序(称为bundle)无需重新引导可以被远程安装、启动、升级和卸载(其中Java包/类的管理被详细定义)。API中还定义了运行远程下载管理政策的生命周期管理。服务注册允许bundles去检测新服务和取消的服务,然后相应配合。

OSGi原先关注于服务网关,其实可用于多个方面。现在OSGi规范已经用于从移动电话到开源的Eclipse(其中包括了与IBM的OSGi框架SMF兼容的开源版本)。 OSGi服务平台的应用包括:服务网关、 汽车、移动电话、 工业自动化、建筑物自动化、 PDA 网格计算、娱乐(如iPronto)、和 IDE。

OSGi规范是由成员通过公开的程序开发,对公众免费而且没有许可证限制。但是OSGi Alliance的兼容性程序只对成员开放,目前有12个兼容的实现。

2003年Eclipse选择OSGi作为其插件的底层运行时架构。Equinox project对该理念进行了实验,2004年6月在Eclipse3 R3中发布。ProSyst是面向OSGi开发者的Eclipse插件。

2003年10月, 诺基亚、摩托罗拉,ProSyst 和其他OSGi成员组建了Mobile Expert Group (MEG)为下一代智能手机规范业务平台,做为对 MIDP 和CDC的补充。

OSGi的主要职责就是为了让开发者能够建动态化、模块化的Java系统。

ITeye上这篇文章不错
http://www.iteye.com/topic/1124145

osgi过时了么?

JxADF(http://osgi.jxtech.net)是一款基于OSGi的企业级开发平台,可免费下载使用,有在线演示、还不断有免费插件使用,以及不断更新的文档。

    JxADF企业级快速开发平台,将每个应用独立为一个Bundle插件,每个Bundle中包含了

Java业务逻辑

Freemarker视图页面

自定义Javascript代码(基本不用写)

CSS代码(基本不用写)

建表的SQL语句

国际化语言(这个也可以单独打成一个Bundle)

这么设计的好处是,一个Jar文件,包含了应用的所有内容,插件只需要简单的安装即可直接使用,真正做到了傻瓜化的热部署。

   目前市面上提供Java的OSGi插件市场,基本很难找到,http://osgi.jxtech.net 正在致力于建设这样一个生态圈,让更多的开发者和用户参与进来,将企业级的业务模块化、市场化。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏