网盘-你所不知道的秘密:http://xiaoben52.blog.sohu.com/248645140.html
OSGi(Open Service Gateway Initiative)有双重含义。一方面它指 OSGi Alliance 组织;另
一方面指该组织制定 的 一 个基于 Java 语言的 服 务 (业务) 规 范 —— OSGi 服务平 台
(Service Platform)。
整个 Java EE 开发及部署模型存在如下一些重要问题待解决
1、 研发挑战
Java EE 从来就不是真正意义上的“针对接口编程”。客观地说,这只是一种开发期行为,而
不是运行期行为。如果替换接口实现需要重启应用。
JAR 文件规范粒度太粗,没有足够的约束力。运行期,如果一个 jar 文件依赖的第三方 JAR
包不存在,或者命名存在差异,或者提供了不同 JAR 包版本,则会出现各种不同结果 。
Java SE/Java EE 平台没有细化这方面的任何内容,最终使得研发工作有点混乱。
2、 部署挑战
由于 Java EE 平台规范没有针对 Java package 引入版本支持,这使得在同一企业应用中几乎
不可能启用同一 JAR 包的不同版本。现有的 Java EE 技术体系难以动态升级、替换生产环
境,实际做法是,每次部署新版应用时,都需要重启应用或者 Java EE 容器,进而影响到
在线用户。
3、 维护挑战
维护成本高,因为企业应用模块化程度不高,即 Java EE 的模块化更多地停留在逻辑概念
层面。通常,我们会将企业应用以单个 WAR 包形式存在,其中内置了当前应用的所有的
内容,很显然,这给维护工作带来挑战,毕竟升级或修改 WAR 包中的任何内容都可能波
及到整个 WAR 包。
现阶段大部分企业应用不具备真正的模块化能力,各功能模块间的代码进行了不必要的相
互调用工作。不难发现,很多团队研发企业应用时,他们会将所有的内容存放在单个 Web
应用中,这非常不利于将来的升级、维护工作。
推荐网赚方法大总结和有信誉网站:
http://user.qzone.qq.com/1971797023/blog/1356166186
OSGI 能够有效解决各种研发、部署、维护问题。借助 OSGI,能够高质量落地软件研发中
的各种最佳实践。
整个 OSGI4.2 规范集合主要由 3 部分内容构成,其分类类似于 java 平台。具体见如下。
1、 OSGI 服务平台 Core 规范及服务集合。这类似于 Java SE 平台。
2、 OSGI 服务平台 Residential 规范。这类似于 Java ME 平台。
3、 OSGI 服务平台 Enterprise 规范。这类似于 Java EE 平台。
主要存在若干如下主流 OSGI 实现者
Eclipse Equinox http://eclipse.org/equinox
Apache Felix http://felix.apache.org
Knopflerfish http://www.knopflerfish.org
在 OSGI 中,存在一名为“Bundle”的概念。形式上,OSGI Bundle 类似于 JAR 包,它只是在
MANIFEST.MF 中添加了一些 OSGI 头信息,这些头信息只对 OSGI 容器敏感。