《Java应用架构设计:模块化模式与OSGi》序
“分而治之”是解决复杂问题的有效方式。
面对业务功能复杂的企业级软件,我们会寻找各种方式和标准进行拆分,其目的无非是降低每一部分的复杂性并提高软件重用的便利性。但是,到目前为止,取得的效果并不理想。应用程序依然是庞然大物,难以进行维护和管理,而在重用方面,最常见的方式恐怕还是复制和粘贴。各方面似乎都不尽如人意。
在本书中,作者提供了解决这类问题的另一种方案,那就是模块化。借助模块化技术,我们可以提升软件的架构水平,填补架构师和开发人员在相互理解上的鸿沟,同时又能提升软件的可重用性,控制软件的复杂性。目前,在 Java 平台中,OSGi 是事实上的模块化标准。Java 原生的模块化实现 Jigsaw 已经从 Java SE 7 延期至 Java SE 8,最近又延期至 Java SE 9,而且 Jigsaw 能否得到其他 JDK 厂商的支持还有待观察。换句话说,Java 平台上的模块化技术还在不断发展中,但是本书介绍的模式和理念却具有通用性,虽然在书名上你可以看到 OSGi 的字眼,但是作者在介绍这些模式的时候,却在有意地与特定技术保持距离。只要你对系统进 行了良好的设计和拆分,不管使用什么模块化技术,甚至没有模块化运行框架,你都会从中受益。
OSGi 技术在嵌入式领域取得了很大的成功,目前它越来越多地用于企业级应用服务器上,但是在企业级软件开发领域,它的使用并不广泛。这是因为 Java EE 和 OSGi 在诞生之初就是不同应用领域的两种技术,所以二者在理念上以及使用方式上都会有很多不兼容或冲突的地方。但是,这种现象正在发生着变化,随着 OSGi 企业级规范的不断完善,以及像 Apache Aries 和 Eclipse Gemini 这些参考实现的成熟,相信 Java EE 和 OSGi之间的壁垒会逐渐打破,模块化在企业级软件开发中的发展值得期待。在本书中,有众多设计模块化软件的最佳实践,相信随着模块化技术的不断发展,它会越来越有价值。
在翻译本书的过程中,作者深厚的技术功底和广泛的知识涉猎都令我佩服,尤其是借此机会,更认识到 Bob 大叔那几本名著的价值。这些书值得我们一遍遍地仔细研读,在此推荐给大家。
感谢侯伯薇向我介绍了这本书,并将我引荐给出版社。在本书的翻译过程中,编辑关敏给予了很多的帮助和指导,她的热心和责任心让我很受感染,在此向她表示感谢。
在此,感谢我的家人,没有你们的支持,我很难把这项任务坚持完成,尤其是我的爱人和宝贝儿子。很抱歉在最近几个月中,没有抽出太多的时间陪伴你们。
在翻译的过程中,我尽可能做到准确,但肯定还会有纰漏之处,恳请读者朋友们批评指正,您可以通过电子邮件:levinzhang1981@gmail.com 或新浪微博:@张卫滨 1895联系到我。希望这本书对您有用!