OSGI简介

来源:互联网 发布:隔墙有耳偷听器淘宝 编辑:程序博客网 时间:2024/05/09 16:11

        最近面试过程中被问到了对OSGI了解不,对这个技术规范我以前也是看过一些技术视频也自己亲自尝试了一些DEMO,但是甚解还是需要亲身经历的项目实践,现在还没有这样的机会,希望以后能够有这样的机会,对这样一个技术有所深入研究。

 

        今天写这篇博客是从理论和概念上来认识OSGI,毕竟学习一种技术或者一种思想,必须是以理论为基础的,有了基础才能做到很好的实践,才能对一门技术或者一种思想得到深入的了解和认真。

 

        那么什么是OSGI呢?


        OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。

 

        其实从概念上来说OSGI,其实就是模块化编程的一种实现,我们可以通过OSGI开发一个一个的组件(也就是bundles,也叫插件),这些组件构成一个应用,从而达到解构的最终目的。

 

        在OSGI中分为运行环境、模块、生命周期管理、服务注册还有安全系统等几个层次,那么运行层次是java环境,例如J2SE等;模块层主要是定义类的装载策略,其实这一层用易懂的语言来说就是把java程序进行模块化划分,当然这部分是人为来进行模块划分的;第三层就是模块的生命周期管理,这个主要是对模块的动态安装、启动、关闭等状态进行管理;第四层增加服务注册,主要做的事情就是通过传统的类共享进行写作。

 

        其实我对这个技术的理解是,如果对面向模块化编程思想有理解的话,那么学习OSGI这门技术就非常容易了,其实学习这个技术我们身边就是有一个很好的DEMO,那就是ECLIPSE的IDE环境,我们ECLIPSE是基于插件的,我们会常常对这个IDE环境进行插件的安装和卸载。


        另外还有很多应用服务器也在利用OSGI做技术实现,如果大家有兴趣可以研究一下TOMCAT源代码,这对你OSGI的学习是非常有帮助的。