基于OSGi的动态化系统搭建
创始人
2024-04-03 21:01:09
0

搭建动态化的系统是作为Java开发人员一直就非常追求的目标,一个系统能够动态化就意味着:

51CTO编辑推荐:OSGi入门与实践全攻略

◆ 添加新功能时不需要重启系统;

◆ 修改已存在的功能时不需要重启系统;

◆ 删除一些不需要的功能时不需要重启系统;

◆ 修改系统中的配置时可以不需要重启系统即刻生效;

◆ 系统的业务行为可动态的改变。

也许习惯了传统Java开发方式的人而言,没有这些动态化也没什么,但不可否认,这些动态化的特征还是非常吸引人的,尤其是如果能很容易就获得这些好处,那么自然就不会错过这些好处了,基于OSGi可以很容易的让我们获取到这些好处,对于上面所描述的系统的动态化的特征可以归纳为这么三点:

◆ 模块的动态化:新增、修改、删除以及扩展;

◆ 配置的动态化;

◆ 行为的动态化。

下面就来看看基于OSGi是怎么样来构成这样的动态化的系统的。

◆ 模块的动态化:新增、修改、删除以及扩展;

     ● 新增

          对于模块的新增,在OSGi可以通过在控制台中使用install命令去安装,或者调用BundleContext的installBundle方法去安装新的模块;

     ● 修改

          当修改了模块后,只需在控制台中使用update命令去更新模块,或者通过调用BundleContext.getBundle(Bundle的id).update();

     ● 删除

          当需要删除不需要了的模块时,只需在控制台中使用uninstall命令去删除,或者通过调用BundleContext.getBundle(Bundle的id).uninstall();

     ● 扩展

          对于模块的扩展,可以使用OSGi所支持的调用多服务的方式或者使用Equinox提供的扩展点的方式来实现。

◆ 配置的动态化

     对于配置的动态化方面,使用OSGi的Configuration Admin Service(简称CM)可以很容易的实现,使用CM使得系统中的配置可以采用统一的形式去管理、动态的通知变化以及使用。

◆ 行为的动态化

系统在运行中要根据业务的需求选择相应的服务是经常会碰到的需求,例如一份文件在某种情况下可能需要进行存储,而在另一种情况下可能是需要进行提取信息并存储为其他文件,由于OSGi支持服务选择时的过滤(如context.getAllServiceReferences(服务接口完整类名,"(key=db)")),使得系统可以在运行时根据需求来选择或配置使用相应的服务,而OSGi同时又支持了服务的动态化的管理,当服务可用时会自动的通知,当其不可用时同样会自动的通知,这就保证了开发人员在使用服务时可做出相应的处理。

如果觉得你所设计的系统需要这些动态化的特征的话,那么建议使用下OSGi(推荐的OSGi框架:Equinox)试试,或者可以参考下OSGi的实现方法自己去实现所需要的动态化的特征。

 

【编辑推荐】

  1. OSGi和Java企业级开发的未来方向
  2. OSGi和SCA间的关系浅析
  3. Equinox的OSGi实现与应用服务器
  4. OSGi在ServiceMix4中的应用
  5. OSGi为什么重要:向模块化转移的主攻手

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...