在参加 IOUC(全球甲骨文用户组领袖峰会) 2014 之际,InfoQ 中文站在中国 OSGi 联盟主席刘剑锋(Jeff Liu)的引领下,对 OSGi 联盟董事会董事(前董事会主席)兼 Paremus 公司 CEO Richard Nicholson 进行了专访, 就 Paremus 公司的旗舰产品 Service Fabric 以及 OSGi 等话题做了深入的交流。
InfoQ: 众所周之,Paremus Service Fabric 很好地结合了 OSGi 和云,您能简单地介绍一下 Paremus Service Fabric 以及背后的设计思想吗?
Richard: Paremus Service Fabric 是一个动态的、模块化的分布式运行时环境,由一个或多个 fibre 构成,每个 fibre 驻留了一个 OSGi 框架负责运行计算资源。而每个 fibre 或者运行在物理实体机上或者运行在虚拟机中。
其背后的设计思想是遵循了最新的 OSGi 仓库(Repository)和解析器 (Resolver) 规范。Paremus Service Fabric 通过节点的本地仓库以及远程共享的仓库来发现需要部署的资源。
InfoQ: 据我所知,Paremus Service Fabric 的前身应该追溯到很多年前的一个 Apache 开源项目 Newton,是这样吗?
Richard: 是的,我们开发了 Newton,随后将之开源。Newton 使用了当时分布式网络技术 JINI,但是,随着 OSGi 的成熟和不断发展,模块化和强大的服务模型促进了软件的敏捷性,使用 OSGi 替代 JINI 意味着 Newton 最终被 Service Fabric 所取代。Service Fabric 不仅仅单纯地模块化 Java 应用程序,对于本地的资源,例如 C/C++ 等本地应用,Service Fabric 也使用了 Packager 的理念来包装这些本地应用使其同样具有模块化的生命周期。这个理念非常的强大。Tim Ward 在 2013 JavaOne 上有一个十分精彩的 slide ,其中详细地提到了 Packager 的理念与功能。
InfoQ: 那么这么好的理念,为什么不放入到 OSGi 核心规范或者企业级规范中呢?
Richard: OSGi R5 确实没有放入,但是今后也许将考虑放入进去,毕竟,Packager 的理念是一个私有化的概念,目前只有 Paremus 公司拥有这项技术。
InfoQ: Paremus Service Fabric 是一个非常优秀的产品,但是,在中国包括业界,似乎知道它的人并不是很多,Paremus 公司考虑过将其进行开源或者部分开源以便获取到更多人的关注?
Richard: 许多客户之所以选择 Paremus 的产品是因为他们想要一个高可靠性的模块化运行平台,而且该平台会紧密跟随 OSGi 联盟的公开行业标准。如果开源的话,Paremus 将没有能力对必要的产品开发进行投资。我们对所有客户开放源代码,我们有一个很简单的机制使客户可以将他们对 Service Fabric 的补充反馈给所有使用 Service Fabric 的客户。实际上我们也有开源产品,如 Bndtools 等。其次,Paremus Service Fabric 的价格相比较其他公司的产品,比如 Redhat 的 JBOSS 等都是非常有竞争力的,事实上,我们最近刚和 Redhat 在一个项目上竞争,我们在产品功能和总价格上比他们的所谓开源产品还有竞争力。因此,目前,我们还没有打算开源。
Jeff Liu: 我本人也是开源的严重支持者。但开源项目不是任何领域都适合。底层的库一类的开源项目是应该的,甚至是必须的,但我们几乎没有见过好的开源报税软件,或财务开源软件。
InfoQ: 您能谈谈目前 OSGi 的发展吗?在中国,经常听到开发人员说 OSGi 好看,但是不好用,想听听您的意见?
Richard: OSGi 仍然在不断地进化和发展中,比如,Tim Ward 正在写关于异步远程服务的规范和实现,这是一个非常有吸引力的技术,有很强的市场价值,比方说,在金融领域。另一个事实是 OSGi 之父 Peter Kriens 重回 OSGi 联盟。关于 OSGi 的平民化问题,这是一个普遍提到的问题,不仅仅在中国,在欧洲也一样。但是,OSGi 联盟正在做这方面的努力,由 Peter Kriens 主导,目前,他正在写一系列 OSGi Tutorials,包括 OSGi 联盟也在考虑推出开发者认证。我们已经看到了,在 OSGi Tooling 领域,Neil Bartlett 等人已经推出了很棒的 Bndtools 来更加方便地构筑 OSGi 应用程序,Bndtools 是一个非常好的工具。我们也经常看到用户正在使用其他一些 OSGi 的技术,例如,白板模式,Blueprint 以及 DS。
InfoQ: 关于 Blueprint 和 DS,有人认为这是重复的技术,想听听您的看法?
Richard: Blueprint 是基于 Spring,而 DS 更加干净,不依赖于 Spring 等特定技术。如果你的应用本身就使用 Spring,那么推荐使用 Blueprint,因为它和 Spring 结合的更加好。
InfoQ: 一个老的话题,很久以前听说 Jigsaw 将取代 OSGi,想听听您的看法?
Richard: Jigsaw 已被 Oracle 至少推迟到 Java 9 才发布, 而 OSGi 将依然向前发展,它是业界模块化的实际标准,我对 OSGi 充满了信心。
感谢张卫滨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论