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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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