OSGi原理与最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

序一

两年前,曾向周筠老师提及想出本OSGi方面的书,那时还没有多少人对OSGi有学习的需求。技术图书出版的多少能在一定程度上说明这门技术在业界的接受程度,如Struts、Hibernate等技术都是如此。但在2007年,OSGi能否被业界接受却还没有定论,当时OSGi的使用者增幅也有限。到了2009年,OSGi终于浮出水面。使用者也从当初仅有的Eclipse到现在已是所有主流的Java应用服务器、各种模块化框架、淘宝、支付宝、阿里巴巴等都在使用。在出版方面,不论是知名的IT英文出版社,还是IT中文出版社,也都已开始在策划OSGi方面的书籍,我很幸运得到了周筠老师的信赖,受托撰写这本OSGi的书,而这本书也是目前市面很少见的一本能够领先于英文相关书籍出版的中文技术原创书,略感遗憾的是这本书没有成为全球第一本OSGi书籍。据Peter Kriens的消息,德国已经出版了一本OSGi的书籍,因此本书也就只能获得全球第二本OSGi书籍或国内第一本中文OSGi书籍这样的称号了。当然,这些都是虚名。我撰写本书的目的一方面是圆自己出版一本OSGi书的梦想,另一方面也是希望国内有越来越多的开发者们能够开始使用OSGi,甚至参与到OSGi框架的实现及OSGi的改进中来。

我接触OSGi是在2005年,2006年开始在商业产品中实际应用它,说起来也并不算很早,在使用OSGi过程中碰到的问题及中文文档的缺乏让我付出了很大的学习代价,于是先后编写了《OSGi实战》和《OSGi进阶》两个Opendoc,提供给开发者们参考,想尽可能地加快后来者们学习的进度,以及减少后来者们所走的弯路。但随着时间的推移,由于OSGi的高速发展,这两篇Opendoc都已在一定程度上过时。恰好博文视点给了我写书的委托,于是就有了本书。本书对OSGi的知识体系进行了由浅入深的介绍,希望对有意愿了解、学习和使用OSGi的,以及想深入掌握OSGi的读者们有一定的帮助。

为了避免自己陷入之前写Opendoc的惯性思维,特邀请了曾宪杰一起编写本书,而正是因为他不同的思维角度,给本书带来了更清晰的讲解及更多更好的知识点,非常感谢他的执着努力和认真参与。

最后要感谢我的女友:宗伟,正是因为她的理解我才能在下班后和周末抽出足够的时间来编写本书,谢谢!

淘宝网 架构师 林昊(网名:BlueDavy)

2009年6月于杭州

博文编辑

OSGi框架被认为通过组件(bundle)的形式,实现了以前Java系统不具备的物理模块隔离,具有模块化、动态化和可扩展的特点。就您所知,在淘宝、支付宝、阿里巴巴的项目中, OSGi框架是否真的发挥了这些优势呢?

林昊

淘宝、支付宝及阿里巴巴在其服务平台中均使用了OSGi框架,以这三家公司的使用情况来看,OSGi确实对构造模块化、动态化的系统起到了重大作用,例如模块化带来的classloader的隔离,对于避免服务平台和应用系统依赖的jar版本冲突带来了很大的帮助。

博文编辑

请您展望一下OSGi未来的发展趋势。

林昊

目前OSGi的发展状况远好于两年前对它的期待,Java主流应用服务器的采用,Java7从语言级对模块化的支持,这些都将使得OSGi逐渐成为热门技术,甚至是Java语言的必备技术。

博文编辑

您目前正在撰写另一部作品《构建高性能的大型分布式Java应用》,可否向读者透露一下这本书的内容定位和目前的进展?

林昊

《构建高性能的大型分布式Java应用》旨在深入介绍构建高性能、大型分布式Java应用所须掌握的知识体系,包含了分布式Java应用的通信、远程调用涉及的知识体系;JVM的深入分析,包括JVM的内存机制、内存回收机制(例如现在的CMS,引人注目的G1)及线程机制;JDK中与高性能分布式Java应用有关的包的深入分析;性能测试及调优的知识;软件负载、硬件负载涉及的相关知识体系等。目前完成了大概30%的内容,预计于11月中旬完成全部初稿。