在芝加哥,是小熊队或白袜队。内裤是四角裤或三角裤。在Web服务平台中,是Java或Microsoft Windows。
当微软推出。net程序时,个人电脑这个庞然大物跨入了IBM、Sun微系统公司和甲骨文公司等知名电脑公司已经占据的领域。随着Web服务在商业世界中从炒作变成现实,微软基于windows的。net平台和基于Java 2平台企业版(J2EE)的系统(如IBM的WebSphere或来自加州圣何塞BEA systems的WebLogic)之间的战斗持续升温。
但与选择最喜欢的棒球队不同,选择应用平台远非一个明确的过程。
马萨诸塞州弗雷斯特研究公司(Forrester Research)分析师舍德勒(Ted Schadler)说,事实上,有很多令人困惑的选择需要考虑,比如在一家大型软件供应商之间做出选择,还是选择拼凑多个系统,或者外包这一过程。他是《Java还是Windows》(Java or Windows)一书的作者,该报告于2003年7月发表,研究了两种系统之间的差异。
. net替代品的可行性也因制造商的现有操作而异——就像物理定律支配运动中的物体一样,遗留系统的定律限制了未来的可能性。
把它分解
Schadler说,这也是许多公司在运营中同时部署基于java和。net平台的原因之一。
“驱动购买的是应用程序,而不是平台,”他评论道。“如果一个部门想要一个应用程序,但它只能在一种平台上运行,那么你就只能使用那个平台。”
弗吉尼亚州斯特林(Sterling)研究公司Current Analysis的首席分析师威利特(Shawn Willett)说,应用程序驱动的方法也有其主要缺点,主要是因为多平台支持成本高昂。他评论道:“你可以拥有两个平台,但这会给你带来更多的工作。”“无论是前期成本还是后续支持,这都将变得更加昂贵。”
Willett认为,如今在进入Web服务的公司中,主要的争论是,是选择一个架构并在整个公司实现它,还是选择最好的应用程序,并让他们的需求决定底层架构。
他说:“Web服务使系统之间的通信变得更容易。”“但这其中仍有一些复杂性。”
Forrester的Schadler说,考虑到IT的总体趋势是集中决策、简化和削减成本,公司需要在今天就做出战略决策来规划未来的架构。他说:“一次性的项目主导决策使我们陷入了今天所面临的混乱状态。”
一些公司正在采取“绿色领域”的方法,将所有东西都构建在一个平台上。在他的报告中,Schadler引用了哈雷戴维森对BEA的WebLogic系统的部署,该系统使用内部开发的Java框架进行了增强,以创建基于简单对象访问协议的服务。该公司已经使用该系统开发了用于客户关系管理的经销商联系服务和处理基于互联网协议的电话查询的应用程序。
更典型的制造商需要在决定如何最好地最终朝着单一架构工作以及使用哪个系统之前,看看目前最重要的应用程序是什么,已经部署了哪些计算平台。
Schadler建议大公司考虑根据功能将其业务划分为多个域,并允许每个域选择逻辑Web服务应用程序平台。
一杯咖啡?
分析人士说,除了更多的环境因素之外,基于j2ee的系统还有固有的优势,但即使是这些也需要放在上下文中。
例如,Java替代品被认为更可靠、更可伸缩,主要是因为它们基于Unix计算平台。
“拥有Java应用服务器的人会说,‘我们在Unix上运行,因为我们在高性能的Unix机器上运行,所以你将从Java应用服务器上获得更高的性能,’”Willet说。“但这是因为Java,还是因为它们运行在更强大的大型Unix机器上?”
BEA等供应商在一个集群中支持数十个节点,而Windows则限制在8个。
Schadler说,微软一直以可靠性受到挑战而闻名,特别是在Windows NT Server 4.0的时代,但该公司已经通过Windows Server 2003提高了其可扩展性和可靠性,以至于可以处理财富100强企业。
基于Java的系统的另一大优势是,在Java上可用的应用程序比在Windows上多得多,包括Siebel和SAP等领先的应用程序。
Schradler说:“有大量应用程序运行在Java堆栈上,而不是运行在Windows堆栈上。“它们可以在Windows操作系统上运行,但不能在Windows堆栈上运行。如果有人正在购买一个应用程序,他们很可能会在Java上得到它。例如,每个Web服务管理系统都运行在Java上,而不是Windows上。”
操作系统是完整软件堆栈的一部分,它还包括应用程序服务器、开发工具、数据库、安全和系统管理等元素。
Willet说,基于java的系统有更大的应用程序库,而基于windows的系统有更多可用的工具。他指出,基于java的系统被认为更复杂,需要更高的编程技能。
然而,即使这种对比也变得不那么明显了,因为Java系统供应商设计的工具包是针对应用程序开发人员的,而不是基础设施架构师的。Schadler引用了BEA的WebLogic Workshop, Oracle的Jdeveloper和Sun的新项目Rave,以及ibm领导的Eclipse项目作为例子。Eclipse是一个用于工具集成的开放平台,由一个开放的工具提供商联盟构建,它可以免费提供源代码。
那么这些系统之间的真正区别是什么,制造商如何决定采取哪条路径呢?
坚硬如岩石的应用
分析人士建议,应用需求是主要的驱动因素,特别是对于那些可能有非常具体的利基应用需求的制造商来说。
Willet说:“大多数人,通过自己的选择或无意,已经有了应用程序基础设施。“无论是随着应用软件而来,还是随着时间的推移而有机地发展,他们都需要考虑这一点。如果他们想从统一的基础设施中获得节省,他们就必须朝这个方向迁移。”
但是,如果遗留系统或覆盖的应用程序需求不能决定Java方法是否合理,那么应该考虑Windows和Java之间的“持久差异”:
Java更加灵活,可以在任何操作系统上运行,而. net只能在Windows上运行。这使得Windows选项更加一致,因为没有平台偏差,但希望支持多种操作系统的企业将更明智地考虑基于java的选项。
Windows的目标是使软件简单,而Java则专注于使软件完整。Schadler说这是有道理的,因为微软在销售软件,而大多数Java系统供应商——例如sun、IBM和Oracle——正试图销售硬件、应用程序或服务。没有太多系统开发人员的公司最好考虑Windows系统。
微软的市场力量将使。net软件的定价比Java产品更便宜。此外,Windows开发人员比Java程序员更容易找到,雇用成本也更低。
Java系统将有更多的企业支持,因为企业需要为他们的客户提供多平台选项。需要集成大量现有应用程序的公司会发现Java在这方面更有用。
Windows和Java的选择也存在持续的风险——包括微软不会倒闭,而Java供应商可能会倒闭的现实。另一方面,许多公司痛恨被一个强大的供应商控制,比如微软,它可以突然出人意料地提高价格。
选择Java并不能完全避免“单一供应商”的风险,因为该标准仍然在Sun的控制之下,Willett说,并且需要Sun和Java社区批准任何改进。
只是Java
Java选项包括BEA的WebLogic、IBM的WebSphere、Oracle的9j和Sun Microsystems的One产品。Schadler说,这四家供应商都致力于构建或购买完整的面向服务的基础设施平台,他将IBM的堆栈评价为可用的“最完整的异构”。
分析人士认为,在已经部署了IBM大型计算机的公司中,IBM比竞争对手略胜一筹。
威利特说:“IBM的一部分业务是IBM全球服务咨询和专业服务部门。“他们将在WebSphere方面接受良好的培训,但他们可以在任何平台上工作。然而,这几乎是一把双刃剑。竞争对手指出,客户为专业服务花了很多钱——当你购买IBM时,你就买了一大批IBM人,让他们的产品发挥作用。如果你与BEA或微软交谈,他们会说IBM需要所有这些,因为尽管WebSphere有大量的产品,但它们并不都协同工作或不兼容。”
BEA是唯一一家只销售软件包而不销售应用程序、服务或硬件的Java供应商,它确实提供了“一个相当统一的平台”,Willett说,它将应用服务器、集成、门户和开发工具合并到WebLogic platform 8.1中。他说,这种方法“对任何想要降低成本和缩短开发时间的人都有吸引力。”