OSGI化你的应用的一个推荐方式

标签: osgi 应用 | 发表时间:2013-01-29 00:44 | 作者:
出处:http://www.iteye.com
    我个人感觉OSGI表面是为了模块化,但其本质是为了软件设计的永恒主题--复用。
    从过程式软件设计,到结构化软件设计,再到面向对象的软件设计,再进一步则是面向组件的软件设计。而java在JDK层面上已经提供了很好的面向对象的软件设计基础,但在面向组件的软件设计方面,则需要在更高的应用层面去实现,而没有基础性的实现方式。也就是说,你用java开发,可以基于组件,也可以不基于组件,这全看你的需求和远见,而且即使是实现面向组件的设计,在jdk层面也没有提供统一的方式。(反之,在面向对象方面,jdk则提供了诸如类、private、public、protected、static等等相关的元素)。
    所以OSGI的出现,其实就是弥补了JDK在这方面的缺失。虽然OSGI不在JDK范畴内,但对于实际的应用中,OSGI规范却是介于JDK和基于OSGI的应用之间的,所以,基本上如果你需要将应用建立在OSGI规范之上的话,你的应用所依赖的其他组件也“不得不”迁移到OSGI上来,再加上OSGI独特的ClassLoader设计,使bundle间的类互相访问受到一定的约束,这就导致OSGI的入门门槛较高。
    很幸运的是,OSGI经过多年的发展,也已出现了很多类似J2EE相关的各种框架实现,逐步将OSGI的应用门槛降低下来。从结构上说,在JVM之上最底层的就是OSGI的framework,例如:equinox、felix等等,很多osgi的初学者都直接在这些framework上开始,但这会造成很多麻烦,由于这些framework只是提供最基础osgi运行时环境,对于初学者来说,常会遇上要解决诸如log、配置、bundle的启动优先级等等问题。在此,我推荐karaf,karaf不是osgi framework,它是在osgi framework的基础上,整合了log、配置、console等等基础功能的osgi运行时环境,它相当于在equinox(或felix或其它OSGI framework)上包装了一下,令你的osgi应用可以免除集成那些基础功能的麻烦。如果初学者直接基于karaf来运行自己的应用,入门会轻松很多。
    再进一步,我推荐servicemix,servicemix其实是个ESB,而karaf就是作为servicemix的内核,并独立出来的一个apache开源项目。在servicemix4开始,已经是osgi化了,同时Servicemix还集成了ActiveMQ、Camel等开源项目。Camel强大的组件化服务功能,使servicemix在SOA方面更加得心应手,如果有空的话,我想我会再跟大家交流一下Servicemix。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [osgi 应用] 推荐:

OSGI化你的应用的一个推荐方式

- - ITeye博客
    我个人感觉OSGI表面是为了模块化,但其本质是为了软件设计的永恒主题--复用.     从过程式软件设计,到结构化软件设计,再到面向对象的软件设计,再进一步则是面向组件的软件设计. 而java在JDK层面上已经提供了很好的面向对象的软件设计基础,但在面向组件的软件设计方面,则需要在更高的应用层面去实现,而没有基础性的实现方式.

OSGi使用四问

- - 技术改变世界 创新驱动中国 - 《程序员》官网
没有什么技术是万能的,任何一门技术都有它的适用场景和最佳实践方法. OSGi不只是一门技术,更多的是一种做系统架构的工具和方法论,如果在不适用的场景中使用OSGi,或者在适用的场景中不恰当地使用OSGi,都会使整个系统产生架构级的缺陷. 因此,了解什么时候该用OSGi是与学会如何使用OSGi同样重要的事情.

基于 OSGi的企业级开发框架实践——认识OSGi和SpringDM

- - CSDN博客架构设计推荐文章
OSGi——Open Service Gateway Initiative,最初的目的是为各种嵌入式设备提供通用的软件运行平台. 后来经过10年的发展和壮大,OSGi已经不只是在嵌入式设备中应用,而是被推广到各种其他的应用领域,比如其中最成功的Eclipse IDE. 目前在企业级应用开发中也开始大量使用OSGi技术,尤其是在应用服务器领域,各大主要厂商相继宣布推出支持OSGi规范的中间件产品,例如Websphere、Glassfish、JBoss等.

Neil Bartlett访谈:关于OSGi与新发布的Bndtools 2.0

- - InfoQ cn
Neil Bartlett是卓越的OSGi专家以及流行的OSGi Eclipse插件工具Bndtools的维护者,他. 宣布Bndtools 2.0已经释放. 支持OSGi Release 5 Resolver以及Repository规范. 导出运行描述符作为单独的可执行文件. 基线(对于不正确版本的bundle会出现构建错误).

基于OSGi的企业级开发框架实践——序篇

- - CSDN博客推荐文章
OSGi就好比达摩克利斯之剑一般,在其强大而锋利的背后却隐藏着让人窒息的危险. 我的形容好像有点夸张,不过在现实中大多数的研发团队基本上都认为OSGi并非像各类评论文章中介绍的那样光彩熠熠,而更多的像是食之无味,弃之可惜的鸡肋. 诚然,我不能强迫每个人都接受我的观点,在每个项目中始终不渝的实践OSGi.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

fixed应用

- - ITeye博客
今天在逛人人网时,发现人人网首页左侧的“应用动态”,随着我页面向下滚动,一直固定在网站的左侧. 但这效果存在一点瑕疵,在拖动过程中存在一点抖动(ie下),不是非常平滑. 我尝试使用jquey实现了该效果,也解决了抖动的问题. 创建一个ID为sideBar的div,将它的position设置为absolute.

Voldemort应用

- - 冰火岛
    互联网数据应用产品涉及到到大数据存储,譬如推荐系统,精准营销,个性化搜索这样的产品,后台离线计算的海量数据需要展示给用户. 在电子商务应用中,譬如将User作为key,给用户挖掘的结果作为value;或者以商品id作为key,商品挖掘的知识作为value,这些数据可以通过KV存储,从而满足实际需求.

httpclient4的应用

- - 编程语言 - ITeye博客
httpclient一个实现了HTTP协议的客户端编程工具包. 一个使用的背景:登录需要验证,需要压力测试一下,用webdriver等工具搞不定. 就用到了他,有ocr开源的工具,结合httpclient完美的处理了. 网上的例子主要是3的版本,这里主要是总结一下4的版本. 本身带的例子也不错:下载地址,api的参考.

Solr SpellCheck 应用

- - 开源软件 - ITeye博客
通过对各类型的SpellCheck组件学习,完成项目拼写检查功能. 本文使用基于拼写词典的实现方式,solr版本为5.3.0. SpellCheck 简述. 拼写检查是对用户错误输入,响应正确的检查建议. 比如输入:周杰轮,响应:你是不是想找 周杰伦. Solr的拼写检查大致可分为两类,基于词典与基于Solr索引.