Chasing an mobile web vision

闯荡在移动互联网的世界中

osgi介绍(一)什么是osgi

过于的一年多,在和很多it届的同学及朋友见面时,他们总会问我最近在做什么。“OSGi!”,我不加思索的回答。到目前为止,对这个单词得到的反应都没有超出“这是什么?”,“我没有听说过”,“噢,能具体点吗?”等等。而我的回答更让他们糊涂,最后,大家干脆放弃这个话题,转到买房,运动等等更能体现聚会实质的问题上。不过最近,我一直在思考这个问题,下次再遇到这种情况时,该如何去表达才能让也是it届的哥们姐们能迅速的理解这个领域的范围呢?要知道,技术人员往往不善于表达,我们已经习惯了和业内人士用行话交流。

关于这个问题,我访问了OSGi Alliance的网站,在里面的faqs中,找到了我想要的东西。实际上,正如faqs中所解答的,OSGi涵盖了太多的范围,简单的两三句话是无法说清楚的。而我这里指的OSGi从技术的角度,应该说是“OSGi service platform ”,faqs中这样解释OSGi service platform(http://www.osgi.org/about/faqs.asp?section=1#q19) :
The OSGi service platform delivers an open, common architecture for service providers, developers, software vendors, gateway operators and equipment vendors to develop, deploy and manage services in a coordinated fashion. .......(以下省略上千英文单词)

好长!不过第一句话就已经能总结陈词了,“OSGi service platform是一个开放并且提供统一接口标准的体系框架,基于这个体系框架,服务提供商,程序开发人员,软件提供商,服务网管运营商,设备提供商能够协调地联合起来开发,部署以及管理向用户提供的各种服务。”还需要提到的是OSGi service platform是一个基于Java的platform。

OSGi的提出和诞生之初,其目的主要是能够灵活方便并远程管理互联的网络嵌入设备(听说是1997年左右提出,与Jini有深厚渊源)。随着硬件设备的能力不断提高,java技术的日益普及,尤其J2ME的壮大,现实应用的需求也不断扩大和推进,一个统一的标准变得非常的必要。OSGi Alliance就在这样的背景下成立了。从1999年成立以来,OSGi Alliance已经针对这个service platform发布了4版规范,其中r4是2005年10月份刚刚发布。

目前有不少公司对OSGi service platform推出了自己的实现,象ibm的smf(Service Management Framework,嗯,多好的名字,在那么多的platform实现中,我个人最喜欢这个名字,言简意赅)。

德国的ProSyst公司(http://www.prosyst.com)是OSGi Alliance中非常活跃的推动者,看看他们的产品列表吧http://www.prosyst.com/products/osgi.html(他们甚至提供了kvm + cldc的OSGi framework)

开源的Oscar(http://oscar.objectweb.org/),Knopflerfish(http://www.knopflerfish.org/)

对于OSGi的成功应用,最有名的应该是eclipse了,它就是基于OSGi service platform的产品。还有Apache,据说OSGi将被应用于其新一代的build工具中。这些都是j2se和j2ee的应用,而基于j2me的,手机(对应OSGi Alliance的MEG)和车载设备(对应OSGi Alliance的VEG)是OSGi的主要领域,OSGi Alliance已经有相应的规范,这些领域的应用相信会更加精彩,让我们拭目以待吧。

posted on 2006-02-14 15:32 勤劳的蜜蜂 阅读(23136) 评论(10)  编辑  收藏

评论

# re: osgi介绍(一)什么是osgi 2006-02-14 20:05 Raimundox

could I have your msn or something, I've been an OSGi fun for years  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2006-02-14 21:44 勤劳的蜜蜂

reach me by MSN: jerrylee2002@hotmail.com, or google talk(but not avaible during working hours,hehe)!  回复  更多评论   

# 怎么把 osgi framework 移植到j2me上? 2006-03-17 11:38 reeve

感觉你对osgi的开发是到了一个很高的境界,你可以说说怎么在j2me下开发呢?怎么把 osgi framework 移植到j2me上?



  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2006-03-18 10:15 勤劳的蜜蜂

目前j2me有两种标准profile,一种是cldc和cdc。
众所周知cldc是非常有限的,不支持reflection,以及application customized classloader,这些对于osgi的实现是相当必要的,所以,如果你要严格基于目前cldc的spec来实现osgi,而且不作任何改动,估计没法实现。
而cdc则没有这样的缺陷,因此在其上实现osgi的core将会比较轻松。

Prosyst公司推出了基于cldc的osgi解决方案,但是据我所知,他们的cldc是经过改动的,而且他们在vm外面又包了一个控制层,通过对vm的重起,达到动态classloading。

所以,你需要根据你的应用环境的条件(能否运行jvm),jvm的能力,jvm上能否提供一个实现osgi的最小profile(不一定非要标准的cldc和cdc,也是可以是你自己定义和裁减的profile,代价是,你的代码就不是write once run everywhere了)。osgi给出了实现它最小的profile,在ee.minimum.jar里面。  回复  更多评论   

# re: osgi介绍(一)什么是osgi[未登录] 2007-12-20 14:03 a

这些内容写两篇就够了。另外,感觉你还是没把osgi的精髓写出来。  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2008-03-03 11:16 badboy.

still dont know what is OSGI ...........................  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2008-03-19 14:04 jim.jin

积木式编程,,,,现在是梦想,,,将来也是梦想,,,,没有改变cpu处理程序的方式之前,,,就不会有质的飞跃  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2008-05-18 15:47 iamfoolberg

@jim.jin
CPU只不过提供了 计算/执行 服务。什么样的CPU并非问题的关键。
关键是什么样的 “积木块” 更加易用、强大...  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2009-02-02 11:19 王志猛

@a
@a
你这纯粹是装逼似的回复,你写了什么文章?贴出来,我要看看精髓!靠!  回复  更多评论   

# re: osgi介绍(一)什么是osgi 2009-04-01 11:03 Phoekiz

我公司现在用的是osgi技术,貌似其关键用途就是“可插拔”功能,就是用户需要什么功能,就在应用中添加相对应的功能。开发人员就是提供这一“可插拔”的接口,满足用户的需要,像eclipse中的各种插件,用户就可以根据自己的需要添加插件使用。大概帮高手添加一点。有希望深处交流的请加我msn:phoekiz@gmail.com  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: