美国军方因为二战和冷战需要而投入的大笔研究计算机技术的经费为美国的大公司从20世纪40—60年代的计算机研发提供了重要的资金支持,在这一阶段的电子计算机技术军转民的过程中,许多原先与军方有联系的公司迅速成为商用计算机产业的主要竞争者。但是并不是所有的公司都能够一直继续保持其市场地位。1956年,美国最早的一份计算机市场调查(The Electronic Data Processing Market)一共列出了12家计算机公司。到1965年,这些公司中只有6家还存在。到1986年,只剩4家存在。如果我们纵观整个20世纪50年代到70年代的计算机市场,绝大多数时间内IBM和其他7家公司是这个新领域的主要竞争对手。这7家公司分别是雷明顿兰德、宝来( Burroughs)、数据控制公司(CDC)、通用电气(GE)、霍尼韦尔(Honeywell)、国家收银机公司(NCR)和美国无线电公司(RCA)。因为IBM占据了主要的市场份额,而其他7家公司的市场份额加起来都没有它高,所以它们一起被称为白雪公主和七个小矮人[16]。
美国商业历史上能够延绵百年的高科技公司屈指可数,IBM算一家。尽管它的业务从穿孔卡片机到计算机一直是当时的高科技,它的最初两代领导人却没有什么高科技背景。老沃森是个做推销员起家的商人,他的儿子小沃森则是个喜欢开飞机的富二代。但历史给了IBM很多得天独厚的机会。先是美国政府在19世纪末由于人口增长导致的管理方面的技术革新需要,使得穿孔卡片机(相当于那个时代的计算机)的生意蒸蒸日上,IBM的家底就此积累起来,后来由于两次世界大战和美国的战后技术领先地位,老沃森通过跟政府打交道建立起的人脉把穿孔卡片机的生意扩展到全球(尤其是战后的欧洲),为后来IBM计算机占领欧洲市场奠定了营销基础。
老沃森给IBM留下的营销秘诀之一就是只租不卖的市场策略。因为他发现服务,或者说解决方案,是客户的根本需要。原因有二:一是穿孔卡片机的制造成本相对昂贵,企业不太愿意一次拿出很多钱来购买这种设备;二是穿孔卡片机的技术更新也比较快,新的型号推出很快,企业可能不愿意再付一大笔钱去升级。相对于租赁来说,IBM也不希望企业购买其产品,冈为购买的方式会使IBM失去未来的源源不断的现金流,是一锤子买卖,双方都很被动,所以还是租赁比较符合当时的双方需求。既然采用租赁模式,就需要有强大的客服系统为企业提供相对完整的软硬件解决方案。这既给IBM带来不断的挑战,也让IBM有了不断发现新产品市场和锁定用户的能力,可谓一石二鸟。IBM的租赁策略一直到20世纪80年代初都屡试不爽,不过后来由于领导层渐渐志满意得,偏离了老沃森以服务为核心的深意,开始把大型机作为其核心竞争力,并转为以销售为主。这一点直到20世纪90年代初郭士纳接管IBM时才发现,于是IBM后来重回正轨,逐渐变成专门提供服务的咨询公司,这是后话。
小沃森1956年接过总裁的位置时,IBM虽然已经在穿孔卡片机领域里独占鳌头,可是在电子计算机这个新市场里地位还不巩固,尤其是面临UNIVAC的竞争。在过去50多年时间里,美国政府人口普查所使用的一直是IBM的穿孔卡片机,当美国政府人口普查改为使用UNIVAC计算机后,IBM的管理层出现了前所未有的危机感。小沃森接任后,正赶上美国企业信息革命,大型机系统在商业领域的应用成为当时的市场焦点。在机遇与危机并存的情况下,小沃森意识到了电子计算机市场的广阔前景,决定大刀阔斧地进入这个市场与雷明顿兰德公司及其UNIVAC系统一决高低。不过在产品和市场策略上,IBM与雷明顿兰德公司完全不同。雷明顿兰德关注的是商业计算机市场的开发,其产品开发主要是通过收购其他计算机小公司来进行,不注重自我研发。IBM则依靠开发军工项目以及军转民和研发晶体管技术计算机上的大量投入来占领技术制高点。
整个20世纪50—60年代,IBM几乎介入了美国所有大型军工项目,从中赚足了钱。这一点从前面讲到的赛奇系统上就可以看出来,赛奇系统和另一个军方炸弹导航系统(Bomb-Nav)占IBM在50年代国内电子数据处理系统总收入的50%。赛奇一个项目给IBM所带来的利润就占IBM整个公司50年代利润的10%。在掌握了赛奇实时系统的精髓后,IBM在公司内部设立了一个名为“半自动化的业务研究环境”(SABER)的研发项目,研究如何将赛奇系统的远程交互、远程处理和磁盘直接存取等当时最先进的技术运用到商业环境中。不久,SABRE系统就在一次IBM销售高管与美洲航空公司总裁的飞机邂逅中派上了用场,并由此引发了民用航空计算机系统的电子商务革命。
美洲航空公司是二战后美国最大的航空公司。由于二战前乘坐民用飞机的是人数有限的高收入人群,所以该公司传统的订票方法完全靠人工。乘客一般通过该航空公司在各地的售票处或者是旅游代理预订机票。当各地的订票机构把订票信息通知航空公司时,由于处理时间上的滞后,有可能出现预订人数超过实际载客量的情况。在乘客总基数小的过去,这些现象可以通过简单的调整解决,可是当乘客的人数剧增时,这类问题成了发展的瓶颈。比如1955年美洲航空公司预订的1959年投入使用的波音707喷气式客机可以承载112名乘客,而当时主要机型DC-7的载客量只有80人。而且喷气式客机将横跨美国的航行时间从10个小时减少到5~6个小时,使得人工售票系统几乎无法及时处理订票和退票信息[5]。
美洲航空公司最初是通过一个半自动化系统来提高订票系统效率。在这一系统里首先由机票代售人员远程查看航班的座位情况并订票,与此同时公司总部的座位信息做出相应的调整;然后乘客的个人信息被发到总部,与所定的座位配对在一起。这个办法有两个主要缺点。首先是将机票预订和乘客信息收集分开处理容易在后来的配对上出错,据当时的统计,平均有1/12的预订信息与乘客信息不能对应,产生订票错误。其次是速度太慢,比如要完成一张从纽约到布法罗的来回机票的预订,需要涉及12个员工,15个订票步骤,总共3个小时的工作量。所以后来美洲航空公司不得不寻找一种更有效率的解决方案。这一方案要求不但能够及时处理大批包含乘客信息的机票预订,而且能够自动将机票库存情况做出调整[6],这其实是与赛奇计算机非常类似的实时系统需求,但是在20世纪50年代末的民用计算机领域,实时系统还没有出现,所以如何研发实时系统,在当时是一个很迫切的挑战。
美洲航空公司在遇到订票系统的超负荷危机时,恰好公司的总裁与IBM的高级销售经理在一次航空旅行时坐在一起,当美洲航空公司的总裁谈到这一困难时,IBM的高级销售经理表示IBM的SABRE系统可以解决这一问题,并主动提出为美联航提供一份设计方案。1957年9月IBM向美洲航空公司提交了一份新系统的设计方案,这一方案提出了整合订票、出票、检票、登机和行李运输为一体的设计理念,而且所有这些功能都通过各个远程终端与控制中心的交互式计算机系统实现。
随后美洲航空公司和IBM一起成立了一个联合研究小组来评估计划的可行性以及相关的技术更新决策。一转眼一年半过去,1959年3月,IBM根据调研的结果又提交了一份修改过的新系统功能方案。该方案进一步加强了系统的机票与乘客相结合的处理功能,包括及时更新航班空座信息,自动提供因航班改动而受影响的乘客信息等。这个方案在10月份得到了美洲航空公司董事会的批准,就是著名的SABRE项目。新的中心控制系统于1961年安装运行,费用为210万美元,远程终端和其他硬件在以后的8年时间里逐步安装,前后耗资3700万美元。这笔总投资相当于当时5~6架波音707的购买费用。与此同时,新的系统取代了1100名人工处理订票业务的员工的位置。不过这些员工没有被解雇,而是转到了其他部门工作。
IBM使用了7090大型机作为该系统的控制中心计算机。该机型是IBM第一代晶体管型计算机(其前身是709真空管计算机),使用36bit(比特)计算字节,32KB(千字节)寻址空间,内存采用了磁芯技术,大大提高了响应速度。1964年SABRE系统全面安装后,美洲航空公司的信息处理能力有了质的提高,每天能够处理8.5万个拨入电话、4万个乘客机票预订、3万个座位查询、2万张机票销售。
IBM在20世纪50年代接手SABRE项目的计算机制造之前,在商用计算机领域还不是老大。不过在给美洲航空公司做完SABRE项目之后,就基本上处于技术领先地位了。后来当IBM推出S/360系统时,就基本上控制了大型机的商用和军用市场,占据了当时整个计算机市场的70%份额,成为名副其实的“白雪公主”。这一过程中S/360系列和其操作系统的研制成功是最关键的一步。
1961年,IBM的几个资深工程师在康涅狄格州格林尼治的一个汽车旅馆里秘密举行了如何设计IBM下一代计算机的讨论会。会议上大家一致认为当时IBM的数条互不兼容的大型机生产线已经严重影响IBM的技术和服务支持能力,最终会拖垮IBM。在随后的三年时间里,由吉姆·阿姆达尔(Gene Amdahl)担任总设计师,佛瑞德·布鲁克斯(Fred Brooks)担任项目经理,IBM集中了大批人力、物力开始设计一系列相互兼容的新型计算机,这就是IBM System/360(简称S/360)系列[17]。
在IBM研发S/360的时期,使用大型机对用户来说像是使用一台家用电器。每一台大型机都有其固定的软件和用途,很难改作他用。当时的大型机分成商用和科研用两种,后者有浮点计算功能,所以成本更高一些。而让这些大型机工作的指令(也就是软件)通常使用机器语言编写,而且只适用于某一种机型。从计算机公司角度来看,因为所有的软件都是直接根据硬件设计,所以运行起来无需多余的编译和解释步骤。对大规模数值计算而言,这种设计架构非常有效率。但这种使用方式有一个缺陷,就是计算机无法升级。在20世纪五六十年代,这一缺陷可能并不重要,因为大型机的用户是以租赁的方式使用这些计算机,而且计算机公司一般将软件作为计算机的一部分直接提供给用户。但是后来随着计算机更加频繁地升级换代,用户也开始自己开发一些程序在大型机上使用,这时很多用户发现一旦计算机升级的话,需要花费很多时间修改程序才能继续使用。于是,如何提高程序在不同计算机上的兼容性成为一个重要问题。(www.daowen.com)
另外从20世纪60年代开始,计算机的硬件基本构件开始从真空电子管变成晶体管和后来的集成电路。这一趋势使得在整个计算机系统的解决方案里面,硬件成本持续降低,软件成本比重持续增加,这使得用户对计算机的兼容性的要求变得更加迫切。而且随着计算机运算能力的增强,商用和科研用计算机硬件的界限变得模糊。将计算机硬件设计成通用型,然后通过软件来提供不同用途使其变得更符合市场需求。将所有这些因素综合在一起,IBM发现整个计算机市场将出现对通用计算机和软件兼容的巨大需求。
尽管IBM认识到了兼容的重要性,但是实现起来并非轻而易举,需要在设计和运行上付出降低效率的巨大代价,并要承担市场风险。具体来说,兼容对当时的计算机设计者来说意味着两个挑战。首先是对软硬件接口的兼容设计,也就是将同一个软件指令根据需要解释成不同硬件配置方案来执行。对此IBM使用了微程序(Microcode)的解决方法。
微程序是嵌在中央处理器中的软件指令集,它可以把高一级的软件指令转化成一系列逻辑电路级的最基本硬件操作指令来完成。微程序的基本思想在1951年已经出现,不过IBM是第一个把这一思想付诸实践的公司。在前面提到的冯·诺依曼架构中,控制单元和处理单元组成了电子计算机里的中央处理器。在S/360之前的计算机,这两部分都是通过逻辑电路硬件的线路直接实现的。这样做的优点是执行效率高,但缺点是只能按照该机型的中央处理器硬件配置为其编写程序。IBM在S/360系列的设计中将控制单元软件化,也就是通过微程序来将同一条软件程序指令根据不同的硬件配置分解成不同的逻辑电路操作命令,同时把原来处理单元的不同功能的特定寄存器全部变成普通寄存器(共16个),由控制单元通过软件指令来动态指定其功能。这样一来,如果一台S/360大型机需要运行为同一系列的别的计算机写的程序,只要通过调整控制单元的微程序来模拟该软件原来所需的计算机的控制单元和相应的执行单元的配置就可以了,这就实现了软硬件接口的兼容。这个设计现在看来很简单,但当时IBM采取这一方案却冒着很大的商业风险。因为用微程序来动态配置处理单元的操作消耗额外计算资源,所以会降低运算速度。对硬件资源相对昂贵的20世纪60年代初计算机市场来讲,这是一个有风险的选择。但是如果决策者认清了硬件成本比例下降的趋势,就会发现微程序是更明智的选择。无巧不成书,当IBM决定走兼容这条路之后,集成电路技术出现了,于是IBM不但使用了微程序,还通过自主创新,结合了当时出现的集成电路技术设计了S/360的硬件部分,使其硬件速度变得更快。这样一来,综合计算效率不但没有降低,反而提高了。实践证明当IBM用S/360系列兼容其老机型时,所有机型的效率都有所提高,像IBM1401这种机型,速度提高达到10倍[7]。
兼容所带来的第二个挑战来自不同的应用程序与计算机底层软件之间的协调。20世纪60年代随着计算机应用的普及,计算机软件的编写也逐渐分成两大门类。第一种门类是通过机器语言和后来的汇编语言对计算机硬件进行直接调用的程序,这一类程序员大多来自IBM等计算机公司的硬件设计人员。第二种是用更像自然语言的高级语言,比如COBOL和FORTRAN来编写应用程序,这类语言编写的程序需要首先被编译成与计算机硬件匹配的机器语言才能执行。这类程序员最初也来自计算机公司,不过因为这类语言的学习和使用相对简单,并且需要对应用领域的熟悉,所以越来越多的计算机商业用户开始自己招募这类语言的程序员从事公司需要的应用软件开发。
为了让不同的商业用户可以方便地用高级编程语言编写程序和管理计算机,并且将应用程序方便地移植到升级后的硬件上,IBM使用了在应用程序和底层软件之间插入一个统一的操作系统软件平台的解决方法,开发了在后来的软件工程领域颇具传奇色彩的OS/360操作系统。
OS/360操作系统的设计和研发是当时计算机软件领域的一件创造历史的大事。它的设计需要兼顾许多未曾尝试的领域,比如要实现多道程序同时运行(这样可以充分利用中央处理器),还要兼顾系列中不同配置的机型,以及各种机型和其程序所需的不同文件的读写要求,这使得它的设计复杂性后来呈指数增长。尽管IBM在尝到S/360系列上市后的市场甜头之后,希望把操作系统也尽快推出,第一个S/360操作系统却直到S/360推出两年后才出现。在此期间,IBM为了加快进度,一度添加了很多人手到该项目中来,但是这些多增加的人手不但没有加快反而减缓了进度。原来软件工程开发与传统的工程开发有着显著的区别。如果将软件分成不同的模块让多人进行同时开发的话,需要不断进行协调和整合。如果模块分割过细的话,协调不同模块的进度就成了新的效率瓶颈。对此深有感触的S/360操作系统项目负责人布鲁克斯给出了这样一个生动的比喻:“一个女人怀孕九个月可以生下一个孩子并不意味着九个女人怀孕一个月可以生下一个孩子。而如果非要让九个女人来做这件事情,生下来的将是九个不同的孩子。”[18]
1964年4月7日,S/360系列计算机系统正式进入美国计算机市场。IBM给这种新机型起名为360是为了表示它可以提供从商用到科研的全方位解决方案。IBM为研制S/360前后共投资了50亿美元,这笔投资相当于美国曼哈顿计划总投资的两倍。S/360在软硬件技术上的突破给IBM带来商业上的巨大成功。因为IBM使用租赁的方式提供计算机服务,所以S/360系列也是以租赁为主,其不同型号的月租赁价格从2700美元到11.5万美元不等,满足了不同层次的商业用户需求。S/360大型机成为包括名航空公司、银行以及通用电气等美国众多企业电子商务的基础。除了IBM原有的老客户试图通过购买S/360和程序移植来实现将来的轻松升级外,新客户看到可以通过只升级硬件来满足未来业务增长需求的好处,也选择了S/360。美国航空航天局、国税局等联邦政府机构纷纷将它们的计算机升级成S/360系列。结果S/360在1964年4月上市一个月就卖出了1100台,销量在5个月后翻了一番,使得S/360在美国的安装总数达到IBM过去所有计算机销量的1/5,更使IBM在商用计算机领域的市场占有率达到70%。1971年,IBM仅从S/360系列上就获得10亿美元的纯利润。
20世纪70年代中期,IBM凭借S/360的优势牢牢把握住了美国计算机市场。除了S/360计算机本身的销售外,因为有了系统的兼容性,购买了S/360计算机的公司往往每12~18个月就要进行一次系统的更新,于是需要购买更多的内存、硬盘和外围设备(见图1-2),这种频繁的系统更新为IBM带来的额外利润甚至超过了计算机本身的销售。
图1-2 IBM S/360与它的各种外围配件
从20世纪60年代中期到80年代中期,美国的大型企业紧密地团结在了以IBM为首的计算机公司周围,实现了核心业务流程(有的则是整个业务流程的)的计算机化,传统的企业商务开始逐渐走向“电子商务”。当时在美国企业界流行着这样一句话,“你永远不会因为购买IBM计算机而被解雇”。这句流行语既表现出了对IBM产品的信心,也暗示IBM已经成为企业电子商务解决方案的垄断商。
在IBM S/360的竞争压力下,其他几家计算机公司也试图开发类似的产品系列,但这里面只有通用电气和美国无线电公司具备这一实力,美国无线电公司从1967年开始陆续投入了5亿美元来开发类似的产品,但1970年IBM宣布S/360的第二代计算机370上市后,这两家公司都放弃了竞争的努力。通用电气在1970年将它的计算机部门卖给了霍尼韦尔,美国无线电公司则在1971年将它的计算机部门卖给了斯派里兰德公司,也就是又一次合并后的UNIVAC的母公司。于是70年代中期整个商用计算机市场只剩下了IBM和其他5家公司,宝来公司、斯派里兰德公司、国家收银机公司、数据控制公司和霍尼韦尔公司。国家收银机公司在1982年转为生产UNIX公开架构的小型机,退出了大型机市场,并在1991年被美国电话电报公司(AT&T)收购。数据控制公司则因为80年代的连年亏损而在1988年卖掉了其计算机部门。霍尼韦尔在1991年将它的计算机部门卖给了法国计算机公司布尔电脑。1986年,随着宝来公司对斯派里兰德的强行收购,整个北美大型机市场只剩下了IBM 和合并后的Unisys。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。