近日, Eclipse Virgo 项目在最后一刻得到了特赦,因为有些人联名阻止了在Eclipse 中对Virgo 的归档处理(archived)。Eclipse Virgo 项目来源于SpringSource 的dm Server,在Eclipse 中,它的社区贡献和生命周期曾由Glyn Normington 来管理。 InfoQ 在 8 月份曾经报道过,Glyn 已经从该项目上辞职,一段时间以来,Eclipse Virgo 看起来会被进行归档处理。幸好,有很多人都表示了继续该项目的兴趣,会有人帮助维护核心的组件并保持项目运转。
InfoQ 联系到了 Glyn,请他谈论一下 Eclipse Virgo,我们的对话是从这个项目的来源以及在 Eclipse 中的发展开始的:
Normington:作为 SpringSource 的应用平台,Virgo 项目最初开始于 2007 年底。稍后,它被改名为 SpringSource dm Server。这个项目的目标在于提供一个更好的 OSGi 平台,这个平台应该是模块化以及可扩展的,它用于简化 Java EE 应用到 OSGi 的迁移。Version 1.0 发布于 2008 年,version 2.0 发布于 2009 年。
我们决定将这个项目移交给 Eclipse 以提高它的采用情况,同时鼓励与其他厂商的协作,尤其是在基于 Eclipse 的工具方面。我们在 2010 的 1 月份声明了这个移交。在当年, dm Server 赢得了 Eclipse 社区奖(Eclipse Community Award),成为了最好的 RT 应用。从那时候开始,我们与众多的厂商和个人协作,并吸纳了众多有经验的提交者(committer),它们为项目做出了主要的贡献。
InfoQ:目前,业内都有谁在使用 Virgo?
Normington:
- 在 SAP HANA Cloud PaaS 平台之中,SAP 使用 Virgo 作为 Java 服务器,它已经得到了 Java EE 6 Web Profile TCK 认证。SAP 的提交者为 Virgo 运行时环境以及基于 Eclipse Libra 的工具都做出了重要的贡献。
- VMware 在 vSphere 中使用 Virgo 作为 Web 服务器。
- 芝加哥商业交易所集团(CME Group)有三个应用运行在 Virgo 之上,而第四个马上就会出现。
- 克罗地亚电信(Croatian Telecom)在 Virgo 上运行了多个终端用户以及内部用户使用的应用程序。
- Infor 基于 Virgo kernel 发布了其 ION 集成产品。
- 针对 Web 应用开发的 Konekti 平台使用 Virgo 作为其 Web 服务器。
- Virgo 甚至用于 TINOS 的研究项目,作为单个 JVM 中实现实验性的网络栈(experimental network stack)彼此隔离的方式。
InfoQ:Virgo 的不同发布包之间的区别是什么,它们的目标用户 / 应用 / 人群是什么?
Normington:Virgo 基于一个很小的 OSGi 微内核构建,也就是Virgo Nano。它的目标在于成为一个 DIY 的商店,这样的话需要一个更为全面的 OSGi 容器而不是直接使用 Eclipse Equinox(Nano 的基础)。Nano 提供了可扩展的诊断(diagnostics)功能以及全功能的 Web 管理控制台,以及 JMX 界面和 ssh/telnet 控制台。Nano 支持热部署,只要将 bundle 丢到“pickup”目录下即可,同时还支持 Declarative Service,从而允许 bundle 通过"microservices"进行交流。
Virgo Kernel包为 Nano 添加了多个基于 bundle 格式的模块化结构,它将用户应用隔离在“user region”之中,从而与 kernel 本身实现了分离,而且它添加了 OSGi Blueprint Service 以及 Sprirng 编程模型。
另外还有三个 Web 服务器的发布包。Virgo Nano Web为 Nano 添加了基于 Apache Tomcat 的 Web 服务器。Virgo Server for Apache Tomcat为 kernel 添加了相同的 Apache Tomcat 作为 Web 服务器。针对那些更喜欢 Jetty 而不是 Apache Tomcat 的人,还有基于 kernel 的Virgo Jetty Server。
针对使用 Virgo Server for Apache Tomcat 的用户,Virgo 还有一个" Snaps "框架。Snaps 可以让 Web 应用进行模块化,这样的话 bundle 可以为应用程序 URL 空间的不同部分提供内容。
总而言之,Virgo 是一个成熟且全功能的产品,因此它作为模块化的 Web 服务器或运行时 kernel,可以应用于很广泛种类的应用之中。
InfoQ:使用 Virgo 时,必须要使用 Spring 吗?
Normington并不是这样的。Virgo Nano 以及 Virgo Nano Web 是与 Spring 独立的。基于 kernel 的 Virgo 发布包所开发的应用也不需要使用 Spring。比如说,它们可能更愿意使用 OSGi Blueprint Service 作为"microservice"编程模型。
InfoQ:Virgo 如何与其他的产品进行对比,像 Apache Karaf ?
Normington:大致来讲,Virgo Kernel 与 Apache Karaf 有着类似的功能。它们甚至共享着一些组件如 Gogo shell。
InfoQ:你已经卸任了 Virgo 领导者的职务。在它的商业用户中,有没有人对继任这个位置感兴趣?
Normington:有一些用户已经表示希望 Virgo 能够继续下去。我想在过去的几个月中,我每周都会花半天的时间以保持这个项目的运转,来响应用户的问询等等。对于继任者,我愿意提供帮助,使他在这个角色上能够更为舒服。因为这个项目有经验丰富的提交者,这个工作并不那么繁重。
InfoQ:你为什么辞职呢?
Normington:我现在为 Pivotal 工作,它正在开发一个 PaaS 。尽管也可以在 PaaS 中运行 Virgo,但是细粒度模块化的 OSGi 应用与 PaaS 模型之间并不是那么自然匹配的,OSGi 应用能够动态地启动和停止 bundle,而 PaaS 需要一个简单的“推动”(push)操作就能运行应用。Pivotal 的运作方式有些像创业公司(startup),所以我没有时间来保证在 Virgo 方面的工作。
InfoQ:你正在做些什么样的工作?
Normington:我正在为 Cloud Foundry 开源 PaaS 工作,为运行时的 Java 应用开发一个“ buildpacks ”。它们是由 Ruby 编写的,很有意思。
InfoQ: Oracle 已经授权 TCK 来测试 Virgo 和 EclipseLink,会有人进行推进以获取认证还是继续等待直到新的领导者上任?
Normington:会一直等到有新的领导者。对于新的领导者及其公司来说,还会有一点法律相关的工作。但是技术工作会是很简单的,因为 SAP 的 HANA Cloud 平台已经获得了认证。
InfoQ:SpringSource Enterprise Bundle Repository 的现状如何?
Normington:我们协助搭建了 Eclipse Bundle Recipes 项目,目前它由 IBM 领导。它的目标在于提供基于社区的高质量的 OSGi bundle 源。我们从 SpringSource 的 Enterprise Bundle Repository 中获得了 manifest 模板,这样就能对任何想使用它们的人开放了。我们已经冻结了 SpringSource Enterprise Bundle Repository 的内容,但是至少一年之内它还是可用的。
原文英文链接: Eclipse Virgo Gets New Lead
评论