第1章 Java模块化之路
Java可能是近20年来最成功的开发技术,因其具备通用性、高效性、平台移植性和安全性而成为不同硬件平台理想的开发工具。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java技术无处不在。
Java能够让程序员使用同一种语言为服务器、智能卡、移动电话和嵌入式设备开发程序,极大地提升了软件的研发效率。不过,仅靠统一的语言还不足以让软件业迅速提升至成熟的工业化阶段。不同软件系统、不同硬件设备下的程序都经常会有相同的业务需求和设备间交互通信的需求,例如很多设备都需要互联网接入的功能,如果通用于不同设备的网络标准件不存在,那就只能为每个设备都开发一个连接互联网的模块,这样效率和质量都难以保证。假如把开发中经常遇到的需求进行抽象,将它们统一规范起来作为标准件提供,任何设备都通过预定义好的协议和接口来使用这些标准件,那么构造一个大型程序的主要工作很可能就只是根据需求选择合适的模块,然后再写少量的黏合代码而已。
标准件是区别小手工作坊和大工业化最明显的标志。今天,个人计算机的硬件已经到达了工业化阶段,无论哪个公司生产的显示器、键盘、鼠标、内存和CPU,都遵循统一规范的接口工作。要获得不同功能、性能的计算机,只要选择适当的硬件模块进行组装即可。与此相对的,大部分计算机软件都还是从零开始进行编码开发的。软件业还远不如硬件成熟,但是软件工业化是一股不可逆转的潮流,实现这个目标的第一步就是要制定不同功能模块的标准,以及模块间的黏合及交互方式。Java业界内已经有了很多的技术规范,例如EJB、JTA、JDBC、JMS等,欠缺的是一个组织者或扮演黏合剂的角色,直到Java有了OSGi……