原创作者: hiwzg   阅读:5140次   评论:0条   更新时间:2011-06-01    
   总结起来,OSGI的R4规范就是由Core Framework以及基于其上的各类Service组成的。Core Framework中主要包含四层部件,第一层就是运行时环境,这个就是JAVA的运行环境就OK了;第二层是Module层,Module其实就可以看成是插件吧,只不过说OSGI对于每个Module都有一个单独的类加载器来加载它;第三层就是典型的Module生命周期的管理,按照Module的生命周期进行状态的转换(哈哈,现在看到这种状态转换的例子,就开始想到状态模式了);第四层其实是服务层,为了解决Module之间的通信,那么设定了通过提供各自曝露自己的Service的方式。那么好,谁知道这些Service呢,OK,有了ServiceRegistration,那么这个对象知道所有的Service都从这里注册,那么就知道各个对象提供的Service了:),其实是一个ServiceLocator的例子,只需要知道它,然后声明自己需要那个服务,就从这个ServiceLocator来得到自己的服务就好了。
    看Module的定义其实真的没有太多的看头,其实和plugin.xml(不管是Eclipse的还是Apollo的都是一样),只不过是换了个名称而已。多了ModuleActivator的声明,这个类就是用来控制Module的生命周期的,很有用。其它的描述除了有Module自身信息之外,还有依赖关系的描述;以及对外提供接口的描述。我们实用Provide-Service的方式来描述,其实是差不多的。
    OSGI的类加载器有一套自己的定义。主要是系统类加载器,以及模块的类加载器,还有默认的启动类加载器(不是JVM的那个,而是OSGI里面定义的一个bootClassLoader)
有一张图详细画了这个类加载器的结构,和OSGI进行类加载的步骤,很清晰,很好。
    关于LifeCycle,就不用再啰嗦了。只要知道状态的变化就OK了。
    服务层实现了服务的注册,服务的获取,服务的监听,其实也是一套面向服务的体系结构,SOA嘛,这里也是简单的实现。
   
    上周到这周的事情一直很多,公司要招人,我要参与出题和上机考试,希望能为公司引进一些好的新鲜血液吧。
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics