近日,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。
|