OSGi vs Jigsaw:Kirk Knoernschild访谈

OSGivsJigsaw:KirkKnoernschild访谈

KirkKnoernschild是OSGi领域的专家,DZone最近有机会对他做了一次关于2012年模块开发思想的访谈,kirk最近出了一本书《java应用架构:使用osgi模块化模式》,这本书介绍了18中模式,帮助你开发模块化的软件。

问题:模块化为何很重要,有什么好处?

Kirk:模块化的软件很容易扩展,重用、维护和使用,也很容易理解修改的影响范围。所以,当你修改一些有大量依赖的代码的时候,你会非常确切的知道会发生什么。从大的方面说,模块化能够帮助你快速响应需求,因为你会很容易知道变更会有哪些影响。但是模块化开发并不是当前软件设计的主流,你还是可以按照以前的方式设计软件,但是你也应该抬头看看早晨即将升起的太阳,我们需要知道未来将要发生什么,很明显,模块化开发将是未来软件发展的方向。

原来的基于分层的软件架构,即开发一个视图层,一个业务层,一个接口层等,然后打包发布为一个软件。这种架构将不再适合当今的软件环境,因为我们面临的是一个多渠道的世界,一个软件将不再仅仅采用一种方式使用,它会有WEB界面,也会有手机界面,也会有平板电脑的界面等等。这个对软件的模块的可复用提出了很大的要求。模块化是一个未来架构模型,我们必须使用它来开发软件。现在主流的软件开发商已经认识到这一点,OpenJDK也知道这一点,企业开发人员也需要认识这一点。

模块化开发最典型的例子就是IBM提供的Eclipse平台,其中的插件架构完全基于模块化开发,另外一个比较新的例子也是IBM提供的,即LibertyProfile,他很酷,因为其实现了本地环境对应用提供合适的响应的能力。他们大部分都是基于OSGi框架实现的。

问题:

OSGi是一个实现模块化的框架,另外一个就是java8即将提供的Jigsaw,还有其他的方式实现模块化么?

kirk:我觉得有几种方式实现模块化并不重要,重要的是他们都是互相兼容的。我关注的是,即使你不使用其中任何一种框架,你开发的模块也能运行。我推荐的开发模式能够帮助你快速迁移到osgi或者jigsaw.

问题:你自己对osgi和Jigsaw有什么看法?

kirk:osgi最大的优势就是它存在很久了,且是一个已经被证明可用的框架,成熟的框架。而jigsaw却还在开发阶段,将在2013年随着Java8发布,但是jigsaw也有一个优点,就是他是JAVA平台支持的模块化方法,伴随JAVASE发布,不用安装新的包。

但是最重要的还是两者能够兼容,你开发的模块能够在两个框架中运行。

问题:现在osgi到底有多流行,当jigsaw发布后,会有什么变化?

Kirk:很好的问题,现在几乎每个软件开发人员都是osgi的消费者,因为几乎所有的IDE都是用osgi来构建。目前主流的平台提供者包括IBM,ORACLE,REDHAT等都是用OSGi来构建平台。但是有趣的是,目前企业软件开发这块还没有被OSGi渗透。至少,OSGi还没有成为主流软件设计方式,一些人抱怨其太复杂,或许因为设计一个模块化的软件真的比较难吧,确实是。

总之,我不能预研未来会发生什么。OSGi是一个成熟的框架,而Jigsaw将会成为标准。接下来的数年在java平台上将会有一个有趣的竞争,很多事情将会发生变化。

相关推荐