论坛首页 Java企业应用论坛

进入Java模块化系统时代,你准备好了么?

浏览 8675 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (17)
作者 正文
   发表时间:2010-06-03   最后修改:2010-06-03

使用JIOPi构建工业化模型的Java模块系统系列文章之一

——进入Java模块化系统时代,你准备好了么?

 

系统模块化是趋势,工业产品是这样,程序设计亦然。

 

编程语言大致经历了 机器码->汇编->面向过程->面向对象

 

每一次前进,都向模块化系统化迈进了一步

 

那么我们的系统模块化了么?对比工业化产品的模块化程度,显然没有,但探索的步伐没有停止

 

OSGi给我们展示了嵌入式系统中的模块化系统模型,在嵌入式环境中,很成功。但是,这个模块化系统模型却不适合用于嵌入式系统之外的WEB应用。

 

那么什么是工业化的模块化系统呢?我们首先来看一个工业化产品的模块化程度吧。

 

特别说明:下文中的标准化模块并不是说超级标准,而应理解为在一个范围内的标准,大可到世界范围,小可能只存在于一个特定的系统之中

 

PC,这是一个大家非常熟悉的工业化产品,当然里面用了大量标准化模块,比如CPU,主板,显卡,硬盘,内存。。。PC的模块化程度到了什么地步了呢?你可以任意替换一个PC的这些组成部分,任意排列组合,他们都还能正常工作。

 

虽然大部分模块在运行时不能热插拔,但是部分模块还是提供了热插拔功能,比如硬盘。

 

当然,这是我们看到的一个层面,就一个显卡而言,里面又是一个模块化系统,主芯片是nvidia,ati,加工方又是其他厂商。

 

这是我所能理解到的层次,nvidia的主芯片内部是否又存在一套模块化体系呢?我就不知道了。

 

以上我能叫得出模块名的,他们其实不是模块,而是蓝图,只有具体到一个具体型号的产品时,才是模块,因此我们说 把CPU插到主板上,这其实是 蓝图 被设计可以这么做,而不是由模块决定的,不同的模块都在执行同一个行业标准,从而使得PC系统成为了一个通用模块化的系统。

 

如果PC的这些部件都不通用,那即便是模块化了,又有什么意义呢,用户还是只能买某个厂家的品牌机,而且还不能自己升级部件,因此,模块化系统的另一体现是在一定范围内的标准蓝图架构。

 

工业化产品的模块系统模型给我们展示了一个庞大的,可复用的,可自由组合的 模块化系统架构,以及可灵活局部升级系统的机制(升级内存,硬盘等),你希望你的Java系统也像工业化产品一样可以随时更换零部件来提升功能么?

 

现在,如果你愿意,你已经可以将你的Java系统升级成这样的一个工业化模块系统了。

 

你要做的就是在你的工程的lib下方一个50k的Jar包和一个配置文件,下载地址如下

http://dl.iteye.com/topics/download/f2ee9c4a-4f3d-387e-b3cd-0756c5e42599

 

 

欢迎各位一同探讨,你希望的 Java模块化系统 是什么样子?

   发表时间:2010-06-03  
补充一句

工业化系统的模块化系统模式是我认为比较不错的模块系统模型,因此我将其作为标准建立了JIOPi模块化系统,很多设计点其实是在模拟工业化系统,比如

JIOPi中的双向插入概念

描绘的情形是 你可以 把 一个对象 插入 另一个对象,配置如下:
<socket from="from_obj_id" to="to_obj_id"/>
而这是一次双向插入,即在讲 from插入to的时候,也将to插入了from

并且是一次多点插入,例如 USB 接口,插入时,其实是先插入了数据线,再插入了电源线,同理 上面的 socket 插入时,也可能自动执行了多个 set函数

同USB一样,这是由USB协议决定的,一般用户可能不知道这点

所以 <socket from="from_obj_id" to="to_obj_id"/> 也没有体现出来这点,这些是在 蓝图 类上进行的标注说明
0 请登录后投票
   发表时间:2010-06-04  
说了一堆,不知所云。
0 请登录后投票
   发表时间:2010-06-04  
构想非常好,不过具体到实现的时候不知道效果怎么样?就像OSGi提倡的插件式开发都嚷嚷几年了,到现在好像效果。。。
0 请登录后投票
   发表时间:2010-06-04  
changkunyang 写道
构想非常好,不过具体到实现的时候不知道效果怎么样?就像OSGi提倡的插件式开发都嚷嚷几年了,到现在好像效果。。。


好不好你试试了,目前iBean v0.3.0.0 已经做了 JIOPi v0.3的参考实现,基本实现了我上面说的 工业化模块系统模型,教学文档继续中。。。
0 请登录后投票
   发表时间:2010-06-04  
连一点文档都没有,怎么用?
0 请登录后投票
   发表时间:2010-06-04  
changkunyang 写道
构想非常好,不过具体到实现的时候不知道效果怎么样?就像OSGi提倡的插件式开发都嚷嚷几年了,到现在好像效果。。。



OSGi是针对应用框架和工具化软件来讲的,对于业务应用软件来讲并没有太亮眼的东西。所以大多数业内人士并不容易看到OSGi的成就。
0 请登录后投票
   发表时间:2010-06-04  
更期待module关键字来解决这个问题,而不是利用框架层面。
0 请登录后投票
   发表时间:2010-06-04  
kazy 写道
连一点文档都没有,怎么用?

所以这是系列文章之一罗

有兴趣加入么?写文档比写程序都累
0 请登录后投票
   发表时间:2010-06-04  
JAVA的CLASS不是一个个模块嘛? 程序设计本来就是模块化的。。。
一个又一个组件和运行库一起组成一个应用系统,本来就是模块化的呀
好像并不是什么创新的想法吧?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics