设为首页 收藏本站
查看: 283|回复: 0

[经验分享] [转]了解Apache Felix OSGi容器

[复制链接]

尚未签到

发表于 2017-1-5 10:19:24 | 显示全部楼层 |阅读模式
http://felix.apache.org/site/index.html
OSGi正在被越来越多的项目所采用。OSGi规范为以模块化形式编写和部署应用到本地或远程计算机提供了一个公共模型。与创建一个单一的不可分应用(monolithic app)不同,该规范允许众多小组件相互协作。这篇新闻为你展现了为什么有像OSGi这样一个规范是至关重要的,它真正包含了哪些内容,以及未来发展方向。 Felix是一个OSGi版本4规范的Apache实现,而Equinox项目是Eclipse开源组织的OSGi R4版本规范核心框架的实现。OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行、动态更新、对运行环境破坏最小化的系统所使用。有许多公司(包括Eclipse IDE,它是第一个采用OSGi技术的重要项目)已经使用OSGi去创建其微内核和插件架构,以允许在运行时刻获得好的模块化和动态组装特性。几个其他项目如Apache Directory、Geronimo、Jackrabbit、Spring以及JOnAS也都正在转向采用OSGi。
Richard Hall是该项目的提交者之一,他上个月在ApacheCon对Apache Felix项目作了介绍。他的介绍是从OSGi架构概览及其框架层开始的。他说任何应用,不论是嵌入式系统、客户端或服务器应用,都可以从在其使用OSGi实现过程中获取模块化和扩展性等益处。在介绍中,Richard还示范了在一个简单的基于Swing的绘图程序中使用Felix组件的例子。

InfoQ就Felix项目目标、当前状态、以及该框架怎样适合其他Apache项目等问题采访了Richard,尤其是那些在SOA栈中的项目,因为Felix也把提供面向服务组件模型作为目标。

Richard说Felix项目是志愿者社区努力的结果。该项目的目标是使该框架易于嵌入其他项目中去。他说目前发布的1.0.1版本大部分符合了OSGi的R4规范,并且已经进行过OSGi TCK(Test Compatibility Kit)测试。TCK测试套件测试结果发布在Felix 网站上。按照R4规范要求,目前主要缺少的一块是支持bundle fragment,这将在下一个版本中完成。Fragment是附属于主要应用bundle上的bundle。关于fragment一个比较好的例子是为不同地区翻译文件。Felix 1.0.2版预计很快就会发布。

针对Felix怎样适合Apache SOA项目(如ServiceMix和CXF)这一问题,他回答说,ServiceMix和CXF社区对OSGi技术都很有兴趣,而且OSGi平台为部署和管理那些使用了这些技术实现的服务提供了一个很好的环境。

企业SOA项目中依赖和版本管理及治理都在达成SOA利益过程中扮演着至关重要的角色,Felix能在企业级SOA实施中扮演什么样的角色呢?

至少,它给它们提供了一个平台。其中,它们可以以模块化的形式打包、部署、以及执行应用,以帮助它们进行依赖和版本管理。事实上,OSGi技术正是Java平台所缺少的模块化层。另外,OSGi平台还提供面向服务的应用模型,除了模块化之外,它还允许基于OSGi的应用按照面向服务原则来构建。

最新版Eclipse——Europa,是作为OSGi模块来打包的。有计划将Apache其他产品(例如Tomcat)也打包成OSGi模块吗?

Eclipse使用OSGi作为其插件的模块化机制。我们Felix的目标是让其它Apache项目将其产品打包成OSGi bundle。在Felix内部,我们已经开始为各种常用开源包的JAR文件创建bundle包装器,以帮助启动这一过程。很多情况下,这一工作简单到只需在已有JAR文件manifest中增加一些元数据即可,但是还有一些情况下,将已有项目与OSGi技术集成需要付出更多的努力。我们也正在与Maven社区一起工作,试图给每个Maven所创建的JAR文件中增加一些OSGi元数据,这将是一个好的开始。

Felix的下一个重要版本将是1.2版本,它将会支持bundle fragment。有了对fragment的支持,Richard认为这个Felix将基本上符合R4规范要求,这将使其进一步符合R4.1规范过程更加容易。

今年初,Felix从Apache孵化器毕业,成为一个顶级项目;该项目团队在十月份发布了1.0.1版本。上个月,一个针对服务组件运行时(Service Component Runtime ——SCR)描述符的Maven插件发布了。该插件可以用来基于注解产生OSGi服务描述符。Felix也有了Eclipse集成支持,开发者可以在Eclipse IDE里运行Felix。Felix组件按照Apache软件许可证2.0(Apache Software License Version 2.0)来发布许可。


可以在http://infoq.com/osgi上看到更多的OSGi相关新闻和视频。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324145-1-1.html 上篇帖子: Apache Commons工具包系列不错的介绍文 下篇帖子: Apache模块开发学习笔记(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表