红帽公司的副总裁兼中间件事业部总经理Craig Muzilla是个大忙人。尽管红帽以Linux发行版名扬天下,但该公司依托JBoss搞起了一块主要的企业软件业务。早在2006年就搞起了这块业务,当时“SOA”和“AJAX”等词眼大行其道。 我们设法联系上Craig,想打探一下如今JBoss中间件领域的近况到底如何。Java 社区已准备发布OpenJDK(Java的开源实现),而 JBoss和红帽在这款平台的现在和未来扮演着重要角色。该公司最近甚至负责启动Java社区进程(JCP)里面的Java EE 7规范。 ▲红帽公司的副总裁兼中间件事业部总经理Craig Muzilla Craig谈论了企业Java的未来以及JBoss中间件平台的未来,访谈内容如下: 在这个云计算时代,中间件业务做得怎么样? 我们公司的中间件业务一直做得相当好。其增长速度大概是Linux业务的一倍。中间件业务是我们红帽的一大增长点。去年,我们在所有地区都取得了长足发展,包括日本、巴西和拉美。我们的目标是,扩大和丰富中间件产品组合,让我们能够提供专有中间件产品之外的一种选择。我们为许多公司提供了一种选择,因而能够统一使用我们的中间件产品,或者在战略性环境使用我们的产品。在过去的几年间,我们先后推出了八款主要的新产品。现在,我们拥有高速消息传递、业务流程管理和规则管理等产品。我们有一款门户网站产品和数据集成产品。我们其实一直在扩大和丰富产品组合。其中一些产品卖得相当好,尤其是集成产品。 业务的性质也发生了变化。回顾四年前,唱主角的是应用服务器。JBoss通常用于战术性环境,用于基于Web的应用系统和非关键任务型应用系统。现在,许多公司变得更牢固了,因而觉得使用JBoss更放心了。完全迁移到JBoss的公司数量众多。日产汽车公司和日本电信电话公司(NTT),美国的联邦快递、政府雇员保险公司(Geico)、韦里逊、ING和纽约证券交易所,它们现在都统一采用了JBoss,并且普遍用于各自的企业环境。它们从大厂商(专有的Java产品)迁移到JBoss。 最近JBoss中间件关注的重点是什么? 我们一直在努力让这个平台大大增强灵活性,为此支持不同的语言。我们的平台不但是运行Java EE的最佳环境,我们还有相当大比例的客户在使用我们的产品来运行Spring、Struts和Groovy on Grails。 灵活性这个想法旨在提高运行灵活性。我们把注意力放在了这款应用平台的下一个版本上。我们的Java EE 6平台已成为可配置性大大加强的平台。 EE 6旨在通过新的Profiles(配置文件),为平台的模块性奠定基础。那么,JBoss在如何利用这一点? 我们接下来宣布的是JBoss应用服务器7。这款应用服务器的核心是微服务容器 (micro-services container)。我们在多年前就推出了微内核(micro-kernel)这个概念。Java EE 5则推出了基于Java虚拟机(JVM)的微容器(micro-container)这个概念。现在,我们有了加强模块性这个概念。如果你在Java持久性API(JPA)中有可交易性,或者缓存、消息传递或集群安全,就很容易通过微服务容器,增添或减少所有这些服务。 另一方面,JBoss 应用服务器7让我们可以大大增添可管理性方面的功能。我们在扩展应用编程接口(API),那样平台容器就更容易进行管理了,没必要加入硬编码的东西。这个环境管理、配置和部署起来要容易得多。我们正在竭力为开发人员提供这种灵活性,同时也为了确保卓越运营、事后管理。 我们有一个配置文件,它实际上是精简版的Tomcat。它说白了就是小服务程序引擎,但之后你开始借助微服务容器,在此基础上进行构建。Tomcat的优点在于,它很简单,部署起来也很容易;但是问题是,如果你需要对它向上扩展、添加服务,就不么容易了。如果你需要可交易性,如果你需要高度分布式缓存功能,就无法用 Tomcat轻松地实现。 我要说,Tomcat的发展情况还是很好。从我们获得的市场研究数据来看,Tomcast 的使用量似乎并没有减少,但也没有出现增长。我认为,其他这些开发商(Mulesoft和SpringSource)目前都需要一种容器。拿Mule来说,它们的企业服务总线(ESB)需要一种容器;但如果你需要容器不仅仅充当ESB的运行时环境,就没有可以做到这点的服务。我认为,这正是左右为难的境地。其中一些公司在提供自己的Tomcat版本,但这是不是一种丰富环境呢? Java 7(包括SE和EE)方面的工作开展得怎样? 我们参与了Java EE 7和SE的执行委员会。我们参与了最近的Java EE 7发布。就Java SE 7而言,我们是其专家小组成员。我们发表了自己的看法,确保自己是社区进程的一分子。除了甲骨文外,我们是OpenJDK的第一大贡献者。我们有不少的人员专门从事OpenJDK的开发。大概四五年前,我们就有了符合测试兼容包(TCK)的Java,我们把它与红帽企业Linux一并交付。我们打算继续保持这个传统;我们全力支持OpenJDK。我认为,充满不确定性的是甲骨文在OpenJDK之后有什么动作。 甲骨文可能会使用 Hotspot和Jrockit,封装基于OpenJDK的另一个发行版。它会在这个环境加入什么类型的附件?从市场的角度来看,甲骨文表示自己希望在 Java的基础上提供增值服务。不过我认为,甲骨文会何去何从并不明朗。我们希望确保规范本身和参考实现很好、很成熟,而且拥有市场中的每个人都需要的所有基本功能。 可以说说Apache基金会围绕TCK许可条款与甲骨文之间的争端吗? 到目前为止,双方对此显得有点沉默。SE 7果真发布时,双方并没有披露新TCK的所有许可条款。我们希望他们继续心怀善意。到目前为止,他们在社区进程方面一直很开放,我们只能静观其变。 2007年,甲骨文曾发表了好多文章和博文,介绍JCP及其运作方式。只是笼统地讲述了一些最佳实践应该怎么样。就实现自己的既定目标而言,甲骨文在过去的脚步似乎有点慢。与此同时,甲骨文却加快发布了新规范的步伐。Java SE 7有一个新规范,EE 7也有一个新规范,还准备为SE 8和EE 8发布新规范。我认为,大家都抱着乐观的态度。 你们在如何应对其他语言在JVM上运行的趋势? 我们有一项名为自由选择(Open Choice)的战略。该战略的初衷是,能够接受任何基于JVM的技术——或者不是基于JVM的一些技术,而且能确保你拥有的运行时环境采用了许多不同的语言和组件模型。我们可以针对Struts或Spring,运行任何通过认证的框架。Ruby on Rails可以在JBoss上运行。借助OSGi之类的组件模型,你可以用OSGi来设计整个应用程序,可以构建OSGi绑定包(OSGi bundle);我们会接受并使用所有这些绑定包。我们在关注所有那些语言,为它们提供支持,并提供认证。我们说,你仍需要运行时环境;你仍需要容器和服务,而不是为每种语言和每个框架从事重复性工作。要是有一大堆环境,你最后可能有五六种平台。至于哪些语言和哪些模型最适合自己,我们留给开发人员去定夺;但你总是会有同样的运行时环境和同样的服务。 一些厂商支持几个不同的环境。VMware等另一些厂商则不然,他们说就支持Spring和 Groovy。我们积极接受环境的多样化。 Seam方面情况怎么样? Seam的情况非常好。它已成为Java EE 6的上下文和依赖注入(CDI)规范JSR 299。它其实是一种更现代化的框架。它也是六年前Spring着手要解决的问题,当时Spring在Java EE方面遇到了困难。我们最终绕了个大圈子,回到原处:Java EE借助一种更现代化的框架(即CDI),结合了其中一些概念。 Seam的开发者Gavin King也一直在尝试一些新语言。Ceylon采用了Seam的部分概念,结果变成了一种语言。也许,有人会拿它与Scala作比较,但是与Gavin交流一番,就明白Seam的目的并不是用来取代其中一些更新的语言和语言类型。外界一直问我们在如何对待Seam?我们奉行的宗旨是,开源的一部分就在于大量的研究开发和试验。我们就是想看看Gavin开发的东西是不是让人们有兴趣。 JBoss接下来会怎样? 我们正在做的工作就是,不断完善这个应用平台,而这方面的根本体现在Java EE6中。这个微服务容器已成为我们开展的一切工作的基础。我们开始不单单着眼于整体式应用服务器,而是关注应用程序的基本结构。你有一种占用资源非常少的平台,可以在iPhone和可插接电脑之类的一些设备(移动性很强的设备)上运行,不过该环境支持HTML 5和不同的客户端。这种平台具有动态性,你可以即插即用服务。我们在关注自我扩展和自我愈合功能。它是策略驱动型的平台,可以减少大量的人工干预。这就是我们在这方面(注:JBoss)的前进方向。 大家可以开始看到产品组合有不一样的功能。独立式的企业服务总线(ESB)或规则管理系统已成为基本结构的一部分。这是今后几年的长远目标。就短期而言,红帽很有希望成为云计算领域的一大玩家。我们提供了所有部分。我们有内核虚拟机 (KVM)、操作系统、中间件的所有组件、平台运行时环境以及服务和组件。我们运用到了所有这一切。 请说说Cloud Forms和Open Shift吧。 我们最近宣布了Cloud Forms和OpenShift,后者是我们的平台即服务产品。 JBoss产品线把我们拥有的所有这些部分组合起来,通过OpenShift把它们作为服务来提供。人们可以把它作为各自云环境中的引擎来使用。它不仅仅是一种容器。可以把它看成是来自Salesforce.com的集成服务,与内部的企业资源规划(ERP)实现集成。除此之外,你可以获得作为服务来提供的业务流程管理,作为服务来提供的用户体验和协作。 JBoss应用服务器7是我们在云环境的中间件产品的引擎。这个引擎会在接下来的几周投入使用,JBoss应用服务器7是OpenShift中的支撑性引擎。 贵公司的平台即服务有什么样的目标? 我认为,主要的需求就是让平台即服务非常易于访问、使用非常容易,把需要在云环境进行开发、可以把平台即服务放回到企业内部环境的公司里面的开发人员吸引过来。另外,把拥有主流的辅助应用程序的人员也吸引过来,所以在企业内部进行开发并不明智,于是你在云环境进行开发。为什么在云环境进行开发?对于需要基于Web的应用程序的小企业来说,可以借助平台即服务搞好开发工作。我认为,关键需求之一就是,让所有这些目标用户很容易使用OpenShift。其次的需求是,让它易于移植,那样目标用户就能从一个云转移到另一个云,或者从云环境转移到内部部署环境。 我们在竭力支持各种应用程序,无论是Spring、EE、Ruby on Rails还是PHP。我们在积极支持所有这些应用程序,让开发人员可以使用最适合自己需求的工作负载。 稍稍退后一步思考,我认为红帽总是被认为仅仅是一家Linux公司。但我认为,人们对我们了解得越多,就会认识到我们其实拥有完整的基础架构产品组合以及开发和中间件产品;这些我们全都提供。我认为,所有开发人员有必要明白红帽不仅仅是一家 Linux公司。它还是一家中间件公司、一家管理公司、一家云计算公司。 |