网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用Eclipse RCP的IBM Workplace管.
.Java中的函数动态调用.
.Workshop控件和扩展:第2部分.
.search 方法.
.对比Java语言中的覆盖和重载.
.Think in java 3rd 中文版3.
.使用 EJB 提供程序.
.Java规则引擎工作原理及应用.
.我的Java矢量软件之路3--想象篇.
.Java标准单元测试库JUnit4抢先看.
.JavaIO学习基础之读写文本文件.
.Servlets提供了一个CGI开发的简单.
.Vector还是ArrayList这是个问题.
.转:《学不会的JAVA,消不了的忧.
.单源点最短路径Dijkstra算法的JA.
.Java2下Applet数字签名.
.多线程在JAVA ME应用程序中的使用.
.用java绘制google中文名称“谷歌.
.利用Micro3D和JSR-184使用相同代.
.用Java实现的一个C/S完整聊天程序.

基于OSGi搭建动态化的系统

发表日期:2008-1-5


   搭建动态化的系统是作为Java开发人员一直就非常追求的目标,一个系统能够动态化就意味着:
★ 添加新功能时不需要重启系统;
★ 修改已存在的功能时不需要重启系统;
★ 删除一些不需要的功能时不需要重启系统;
★ 修改系统中的配置时可以不需要重启系统即刻生效;
★ 系统的业务行为可动态的改变。
    也许习惯了传统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的实现方法自己去实现所需要的动态化的特征。进入讨论组讨论。

上一篇:Swing 第三方工具设计 人气:606
下一篇:CGLib实现变化字段探测的供能 人气:900
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐