级别: 中级 Nicholas Chase (ibmquestions@nicholaschase.com), 自由作者, Backstop Media
2006 年 2 月 09 日 IBM 2005 年初对 Gluecode Software 的收购,引起了许多方面的不同反响。通过与 Bruce Snyder 和 Jeff Genender(都是 Apache Geronimo 参与者和项目管理委员会(PMC)的成员)的对话,我得到了一些迫切问题的答案。通过 Neal Sanche 的协助(他将为这些专栏写许多东西),我们在 2005 年 10 月 21 日在 IRC 上聚在一起。
Apache Geronimo 应用服务器:为什么?
当 IBM 收购 Gluecode Software —— 一家侧重于开放源码的 Apache Geronimo 应用服务器的咨询公司时,许多人不禁要问 “IBM 不是已经有了应用服务器了么?而且,这个世界真的需要另一个应用服务器么?开放源码的吸引力到底是什么呢?为什么像 IBM 这样的大公司也会对它感兴趣?”当我被邀请为 “Geronimo 叛逆者” 编写开始的这一期时,我认为首先我应当回答这些问题。
在寒喧和介绍的时候,我发现 Snyder 和 Genender 都是 Virtuas 开放源码咨询公司(请参阅 参考资料 获得链接)的实际领导。他们关系融洽,言语之间互相配合,使得 IRC 对话特别有趣。除了为清晰起见而添加了一些标点并重新排列文本之外,下面的内容就是实际的对话。我首先特别想知道为什么 Apache Geronimo 如此重要。毕竟,不仅仅是有其他应用服务器,而且还有其他开放源码的 应用服务器。
Renegade:我们先来谈谈 Apache Geronimo 本身。我不得不问一个明显的问题:为什么我们需要另一个开放源码的 J2EE [Java™ 2 Platform, Enterprise Edition] 服务器?
Genender:对这个问题,我的回答是:在商业空间中,人们需要选择。我认为开放源码领域也有这个需求。除此之外,Apache Geronimo 弥补了其他应用服务器没有满足的需求。
Snyder:Apache Geronimo 是一个开放源码的 Java 应用服务器,而且是通过了 J2EE 1.4 认证的;但是它的最终目标当然不仅仅是 J2EE。其他两个 Java 应用服务器是 LGPL [Lesser General Public License] 许可的,它们也都把自己的时间花在了构建专用的栈上。
 | |
“IBM 对 Apache Geronimo 代码基准的发布,表明了 Apache Geronimo 已经准备就绪的事实。”
—— Jeff Genender
|
|
Genender:Apache Geronimo 几乎是应用服务器的 API。
Snyder:Apache Geronimo 支持对定制组件非常容易的汇集。
Genender:按照 Bruce 所说的,可以做成重量级或者轻量级。其他应用服务器拥有的组件通常彼此纠缠在一起。
Snyder:对,可以选择需要的组件。例如,如果不想用 EJB [企业 JavaBeans™] 容器,可以不用它。如果只需要 Tomcat 和 ActiveMQ,可以只使用它们。
Genender:对,可以把它变成需要它成为的样子。
Renegade:这些组件是通过 GBeans 加入的。
Snyder:是的,很对。kernel 和 GBeans 背后的框架使这项工作成为可能。
Renegade:什么让您决定走到这个方向?
Snyder:我们最初交换如何才能构建另一个开放源码应用服务器的想法时,核心主题是用户应当能够重用任何现有的开放源码部件。当我们可以写一些粘合剂(也就是 kernel 和 GBeans)并插入一些真正优秀的开放源码项目时,为什么要构建另一个专用的栈呢?
Genender:对于只运行容器的某些部分,企业有相当大的需求。多数企业只运行子集。让完整的栈运行是没有意义的。它们只会消耗实际上可以分配给其他需求的资源。压缩应用服务器是一个新概念,而这正满足了目前几乎其他所有应用服务器都没有满足的需求。
Renegade:我理解当前的开发重点看起来是在集成其他组件上,而不是在服务器本身的内核上;但是从这一点来看,是有意义的。
Genender:我愿意相信这是正确的。
Snyder:是的,我同意 —— 既然已经得到了认可,我们可以把重点放在有趣的事情上了。
Renegade:我喜欢应用服务器 API 的想法。您认为这部分已经完成了么?
Genender:我不想说它是否会完成。开放源码意味着持续构建和让它更好。
Snyder:是的,核心架构相当稳定,除非有非常迫切的理由,否则可能不会有很大变化。
那么这是有意义的。他们不仅仅是构建另一个应用服务器,而是在创造一种构建应用服务器的新方法。目前,一个 Apache Geronimo 安装完整集成了许多服务,例如 OpenEJB、Tomcat、Jetty、ActiveMQ 和带有集群功能的 Apache Directory Server,Trifork ORB 将会是下一个集成进去的服务。
许可
那么,Bruce 所说的其他使用 LGPL 的应用服务器是什么?我知道在开放源码许可之间有区别,但是这真的就是创建一套全新的软件的理由么?为什么所有的祝贺都与 Apache Geronimo Web 站点上的 Sun J2EE 技术兼容工具箱(Technology Compatibility Kit,TCK)许可有关呢?为什么通过测试要比能够访问它们更让人高兴呢?
Renegade:您是不是要说拥有这类服务器,是创建项目的动力?或者还有其他什么?
Snyder:在其他理由之前,我们讨论的是技术上的想法。我们还想成为第一个通过 J2EE 认证的开放源码应用服务器。我们确实努力成为第一个得到 Sun J2EE TCK 许可的开放源码项目。
Genender:呵呵 ——“想成为第一个”。
Snyder:我们都感觉许可非常重要,而且我们与公司谈得越多,就越发现他们同意我们的意见。在 Apache 许可下向公司提供软件对我们非常重要。
Renegade:如果您不介意,请解释一下为什么这很重要。
Snyder:我们觉得 Apache 许可对于业务更友好,对开发人员的保护更好。
Renegade:为什么?
Snyder:因为每个人都可以重用 Apache 许可的代码做他们想做的任何事。
Genender:您可以修改它、改变它(我指的是代码),最后,您只需要说 “ Apache 在其中”。显然,它不是那么简单,但是我只是想说:它的限制不像 LGPL 那么强,有更多使用和修改代码的自由,而且仍然可以保护您的业务的 IP。
Snyder:它是传统的 BSD [Berkeley 软件发行版] 风格的许可 —— 您可以按照自己喜欢的方式使用它,只要把荣誉给我们。对于公司,这是非常重要的。
Renegade:换句话说,不需要通过提供同一许可下的衍生作品而进行回报,就像使用 GPL [通用公共许可] 以及 LGPL 一样。
Genender:确切地说,这可以紧密地配合业务 IP。
Snyder:实际上非常紧密。
Renegade:既然我们谈到了许可,那么您能否解释一下为什么需要 TCK 的许可通过认证。我一直认为 TCK 的目的是允许任何人测试他们的软件。
Snyder:TCK 的许可是 Sun 的知识产权。TCK 是符合 J2EE 规范的官方测试。
Genender:请记住,这是一个重要的概念。把这个 logo 放在应用服务器上,就代表 Sun 在它背后说:“对我们来说,它足够好”。从市场的角度来说,意义非常大。所以,如果它是商业的,对于许可来说它就有意义。
Snyder:是的,它为产品和项目提供的营销力量是巨大的。
Renegade:那么,许可是代表对您的软件进行测试的能力还是为了表示您的软件已经测试过了?
Genender:好问题……可能两者都是吧。
Snyder:根据我的记忆,它既表示使用它的特权,也代表显示认证 logo 的特权。
有些额外的研究证明了这点。许可提供了对实际测试工具的访问,也提供了声明您通过测试的权力(如果您确实通过了测试)。
开放源码的动机
那么是否就是这让 Apache Geronimo 如此特殊呢?因为在应用服务器上它是一个新的想法?还是因为它是与 J2EE 1.4 正式兼容的?或者是因为 Apache Geronimo 是一个开放源码的项目?
Genender:认证很重要,因为它基本上让人们知道您的产品已经准备就绪,而且会根据标准相互操作。
Renegade:可以把整个开放源码看成是 “软件和传送带”
Snyder:是的,这是它的一部分。
Genender:是的。我相信开放源码已经准备就绪。现在,它正被大量地集成进 Global 2000 的空间中。
Global 2000 作为全世界最大的 2000 家公司 —— 在国际上与财富 500 强相等,也就是说,对于开放源码来说充满希望。
Snyder:另一部分也证明这个认证不仅仅针对大公司。那个时候,还没有哪个开放源码 [项目] 测试了通过 TCK 认证的能力。
Genender:但我们是一个大公司 —— 社区。
Snyder:我不想走得太远,把社区比作一个公司。
Genender:有点像吧。我们都工作在一起,为了一个共同的目标,生成一个高质量的产品。
Snyder:区别在于它是开放源码的。
Genender:但是,我是从目标的角度来说的(减去盈利部分)。
Renegade:Bruce,依您的看法,开放源码方面是如何发挥影响的?为什么会有不同?
Snyder:因为它不仅仅是为了赚钱。它还给其他人赚钱的能力。不论用户是用它做商业服务器还是提供服务和支持方面的咨询,开放源码都是要帮助其他人也获得成功。
Renegade:那么,Bruce,看起来您看到了它的某种利他部分。
Snyder:Jeff 喜欢把我叫做烂好人,但我对它实际上是很现实的。
Genender:从我的角度来说,它实际上 [没有区别]。它是 [为了] 证明即使开放源码不比商业软件更好,至少也是足够好的。
Renegade:Jeff,您看到这点或者看到开放源码的其他动机了么?
Genender:是的,以我的浅见,我认为有许多动机。我认为 [开放源码] 操作系统开始的原因有两个:一个是满足目前还不存在的需求,另一个是满足商业软件过于昂贵的需求。
Snyder:对于 Jeff 的第二个原因,正向世界表明,高价的产品未必总是最好的。
Renegade:但是这在某些方面并不是利他的啊?
Genender:不是这样的。开放源码形成了社区。许多项目,像 Apache Geronimo,永远不可能由一个人完成。由于社区的帮助,就基本上形成了一个编码人员的团队,一起构建高质量的产品。
Snyder:Jeff 是对的 —— 这也是社区的真实情况。社区是问题的关键。我有一句话:我们为了代码而来,但是我们为了人们而留下。这是非常真实的。您不会留在一个讨厌而没有乐趣的社区。您是在构建一个人群,他们在一个共同的理想背后,把事情做到尽可能好,把全世界不同背景的想法带到一起。
Snyder:正如 [安全专家] Bruce Schneier 所说 “开放源码是最终极的代码审查”。
Genender:越多的人提供帮助,产品的质量就会越好。如果产品满足了需求,那么它就不是利他的。
Renegade:这可能是一个 $64,000 的问题,但是您怎样才能构建一个这样的社区呢?
Genender:这里的想法是拥有一个吸引人的主张,让人们兴奋并为之行动。它需要一定程度的传道和领袖工作。
商业风险
当然,开放源码并不完全是非商业性的。实际上,就在这次对话之后,IBM 就宣布在今年稍后发布的 IBM WebSphere® 应用服务器社区版,一个不收费的商业版的 Apache Geronimo。除此之外,正如 Jeff 提示的,开放源码确实正在企业界赢得注意。对于公司来说这意味着什么,对于为项目提供自己的汗水的人们又意味着什么呢?
Renegade:是这样的,您拥有一个社区。它在软件上工作得很好也很努力。然后公司跳出来,用这些软件作为盈利的基础。这会打扰谁么?
Genender:为什么会打扰?
Snyder:它没有影响我。
Renegade:我只是认为这是没有加入开放源码领域的人通常会对开放源码提出的一个常见问题。
Genender:开放源码需要支持的部分,而这从自由时间的角度来看是很困难的。不管盈利性和商业价值如何,开放源码对于社区来说都很好。对于社区中的其他人来说,它仍然是免费的。
实际上,在 IBM 的声明中,IBM 强调了这个事实:它现在将会为 Apache Geronimo 和 WebSphere 应用服务器社区版都提供支持。
Snyder:我不能想像一家公司拿了社区的软件却不参与社区还能成功。我的意思是说,如果一个公司把软件拿来自己使用,没有加入社区,那么这个公司不会走得太远。但是,从另一方面来看,如果该公司留在社区中,继续对社区做贡献(因为它从软件赚了钱),那么这个公司会走得更远,也会成功。
Renegade:这样,从实际的角度来说,这差不多强化了社区。
Snyder:是的,您明白了,Nick。
Genender:对。
Snyder:但这里说的并不是如何构建一个社区。上星期我在 Simula 实验室,看到一份关于这个概念的演示。Simula 涉及了这个事实,就是一个公司很难创建一个社区。社区必须是已经存在的。
Renegade:假设社区已经存在,那么对于公司来说,如果想商业性地利用开放源码软件,而不仅仅是使用软件,该怎么办?
Snyder:对于入门者来说,应当建立基于互惠的关系。
Renegade:怎样做到?
Snyder:迄今为止,根据我们前面的讨论,我们现在要讨论的是对社区有益的东西如何才能对公司也有益。明显的答案是:每个人都可以访问基准软件。如果公司决定在基准软件的基础上通过提供附加来赚钱,那么这对公司就会有益。这里的概念是:软件对每个人都可用。
Genender:不是每个人都有能力可以按他们的想法进行修改。所以,他们需要执行的人。而且,在开放源码社区中,谁会支持它?有公司来支持产品是很好的,而且开发团队(即开放源码团队)对这件事也很高兴。
Renegade:所以我要问,为什么您认为 IBM 会加入进来?我知道您不为 IBM 说话,但是我很好奇您的观点。
Snyder:IBM 的加入有其他原因。IBM 不仅仅是寻找一个途径来打击其他开放源码 Java 应用服务器,它还想寻找下一件大事。我认为 IBM 觉得如果它不把握下一件大事,那么其他公司就会抢了先机。
当然,虽然 Geronimo 整合进 WebSphere 产品所表达的意义重大,但是很显然,这是一个策略,而且明显超越了 IBM 对 “下一件大事” 的规划。这时,我问他们两个关于 Apache Geronimo 和 WebSphere 之间还不明朗的关系。他们是否认为这两个非常不同的产品应当继续连在一起?
Snyder:好问题。我和这个计划没有什么关系。
Genender:这是个好问题,也是我不知道的东西。但是我可以说,我认为 IBM 很聪明,他们看到了 Apache Geronimo 的巨大服务市场,所以对于他们来说参与进来很有意义。
Renegade:他们现在正大力投入服务。
Genender:是的,它是一个易于摘取的收益丰厚的果实。
Snyder:是的,但是这也是一个策略。
Genender:是的。请看:IBM 可以收获 WebSphere 许可的收益,但是通过支持 Apache Geronimo,他们还会得到那些不能购买或不想购买 WebSphere 的人的业务。以我的浅见来说,这很聪明,而且也帮助了我们。
Renegade:而且如果开放源码要以专用软件为代价获得发展,那么开放源码就会被利益毒害。
Snyder:对头!
Renegade:挡住他们的赌注。
Snyder:这并不是一个问题,如果真有问题的话。IBM 知道他们正在做什么。
后来,在电子邮件中,Jeff 补充道:“IBM 对 Apache Geronimo 代码基准的发布,证明了 Apache Geronimo 已经准备就绪这一事实。”
Apache Geronimo 近期前景
这样,当我所有的迫切问题都得到回答之后,我想知道后面是什么。Apache Geronimo 已经通过了 J2EE 1.4 认证,它的内核是稳定的,而且就像 Jeff 所说的,它更像是一个应用服务器 API。所以现在要做的是什么呢?
Renegade:让我们开始总结。在我问你们还有什么要说的之前,已经发布了 Milestone 5 版本,您需要做什么才能到达 1.0 版?
Snyder: 我们现在试着回答这个问题。
Genender:我想我们正把重点放在可用性上。
Snyder:Jeff 和我认为有必要的一件事是集群,但是可用性也是件大事。真正的答案是社区会决定什么是需要的。
Genender:Bruce、我本人和 Jules Gosnell 正在努力让这件事可以集群化。企业需要拥有高可用性。Apache Geronimo 目前缺少许多容错和集群功能。以我的浅见,如果没有这个功能,多数人不会非常认真地用 Apache Geronimo 来运行他们的产品,所以这个功能的优先级很高。所以我对 Bruce 和 Jules 谈到这点,而且他们想把它加进来,好让 [Apache Geronimo] 准备就绪。但是我怀疑到 1.0 版时我们是否会有完整的集群支持。但是,我们应当有一些组件,即使只有 Tomcat 的集群部件。
Snyder:至少我们会有 Web 集群。它肯定会把 Jetty 和 Tomcat 集群起来。我们还需要定义其余的需求(例如 EJB 和 JNDI [Java 名称和目录接口])
Renegade:那么我认为您仍然需要人?我应当认为您会一直需要人。
Snyder:是的,我们刚刚开始围绕这一点来构建一个社区。
Genender:哦,是的,总需要人。越多越好。
Snyder:是的,总有更多的工作要做。
Genender:而且对于那些有兴趣的人,请来加入我们的列表、WADI 和 Apache Geronimo。我们会利用我们能够得到的所有帮助。
Renegade:WADI?
Snyder:Web 应用程序分布式基础设施(http://wadi.codehaus.org/)—— 集群组件。
Snyder:我们会一直鼓励人们加入我们。
Renegade:人们需要什么技能才会对项目有用?
Snyder:我不能确定什么确定的事。我们都有很广泛的技能和经验。我们确实需要文档和更好的 Web 站点。
Renegade:文档……呵呵……
Snyder:处理企业可伸缩性的经验是第一位的。集群、缓存、分布式等。高可用性、容错。
Genender:我们现在正在设置站点。我把它全部转换到 Maven 2,我们将拥有一个漂亮的站点,拥有文档、架构,等等。我们正在把这些整合在一起,虽然 Jules 已经在这件事上做了一段时间。
Renegade:我认为你们中的许多人工作在相同的物理位置;那么,您说,面对面发生的和虚拟发生的比率有多少?
Snyder:我得说,绝大部分决定和工作都是在线发生的。
Genender:是的。
Snyder:而且我们中的多数并不在同一地理位置。Apache Geronimo 团队的参与者来自世界各地,而社区更分散。
Renegade:OK,还有什么我没问到而您想说的么?您希望有人问的问题?
Genender:嗯……好问题。我想我最后的话就是 “欢迎加入”。我们可以把它变成最好的应用服务器。欢迎您的帮助。
Snyder:是的,请加入我们,做出您的贡献。Apache Geronimo 欢迎任何人。
现在您已经了解了。Apache Geronimo 之所以特殊,部分是因为它是开放源码的,部分是因为它是通过 J2EE 认证的,部分是因为它的设计方式使您可以把它变成自己所需要的。但是,最重要的是,它是由关心软件、关心它的制造社区的人所制作的产品。
那么什么会阻挡您呢?即使对于高可用性和集群一点也不了解,但是就像 Bruce Snyder 说的那样 “总有足够多的工作需要去做”。请访问 Web 站点,加入 邮件列表,或者寻找其他加入的途径。
参考资料 学习
获得产品和技术
讨论
关于作者  | |  | Nicholas Chase 曾经参与 Lucent Technologies、Sun Microsystems、 Oracle 和 Tampa Bay Buccaneers 等公司的 Web 站点开发。Nick 曾经是高中物理教师、低级放射性废物装置管理员、在线科幻小说杂志的编辑、多媒体工程师、Oracle 教师和一家互动通信公司的首席技术官。他是多部图书的作者,包括 XML Primer Plus(Sams)。 |
对本文的评价
|