不久前,市场研究机构Embedded Market Forecasters (EMF)发布了一份报告指出:与嵌入式Linux平台相比,基于Microsoft Windows Embedded操作系统平台进行嵌入式系统开发,速度快43%,开发成本低68%。得出这个结论所采用的是TCD(Total Cost of Development,开发总成本)。
这个结论一经发布,可谓一石激起千层浪,热衷于嵌入式Linux的人们纷纷出来辩论,对其提出质疑。人们首先要怀疑这份报告的公正性,因为报告作者——EMF分析师Jerry Krasner博士公开承认,微软为他做出这份研究报告向他支付了费用。
在包括嵌入式软件在内的大多数软件领域,微软的地位无疑是非常重要的。Linux不仅因为继承了Unix的技术特色,更因为开放源代码而在商业机制上与一贯封闭的微软相对垒,赢得了众多口碑。不过,我们不应该忘记,在嵌入式软件开发领域并不是两军对垒,而是三足鼎立。这里还有一个非常重要的阵营——商业嵌入式软件开发工具提供商,例如Wind River的VxWorks。
在激烈竞争的商业环境中,谁都希望以更低的成本、更快的速度推出满足市场需求、具有独特竞争力的产品呢。那么,嵌入式软件开发平台究竟应该采用什么样的衡量标准呢?哪一种嵌入式软件开发平台更能有效地帮助电子产品开发商降低产品成本、加快上市速度呢?为了对这些问题有一个全面的认识,让我们对来自微软、嵌入式Linux和商业嵌入式软件开发商的声音做一个全面的了解。
争执,从衡量尺度开始
衡量任何事情,都必须先有一个标准的尺度。为了说明什么样的嵌入式开发平台最经济有效,首先必须形成一套衡量标准。在这个关键问题上,的确是公说公有理、婆说婆有理。究竟谁的对,我们不妨来个“兼听则明”。
受微软公司的委托,EMF研究机构Krasner博士所提出的报告标题是《TCD:嵌入式开发平台的成本评估框架》,其中首先针对如何评估一个嵌入式软件开发平台提出了一套方法。Krasner博士说:“TCD( Total Cost of Development)评估框架可以帮助嵌入式设备制造厂商评估他们花在软件设计中的总体成本,从而便于他们提高开发设计质量,控制开发设计成本。”
Krasner博士在报告中提出了这样一个模型:
TCD=TTM x NOE x CPMM
其中:
TTM(Time to Market)为产品从开发工作开始到上市所用的时间,以“月”为单位;
NOE(Number of Engineers used)为开发该产品所需的工程师数量;
CPMM(Cost per Man-Month)为每个工程师每个月所需的费用。
Krasner的调查结果认为:Windows Embedded平台的平均TTM为8.1个月,而嵌入式Linux平台的平均TTM为14.3个月,前者比后者快了43%;从对软件工程师的需求来看,Windows Embedded 平台中每开发一个产品所需的平均工程师数量为7.9人,而嵌入式Linux平台需要14.2人,前者比后者节省44%。不管是在哪一种平台之中,调查报告把每个嵌入式软件工程师的平均月成本都假定为7500美元,从而得出结论:Windows Embedded平台中,每个项目的TCD为48万美元,而嵌入式Linux的TCD为150万美元,前者大约只是后者的四分之一。
Krasner博士对如此之大的差别所作的解释是:Windows CE .NET和Windows XP Embedded更为成熟,功能更加丰富,采用基于构件的设计方法,具有集成化的工具集,支持并行开发工作流程。
然而,热衷于嵌入式Linux的人们对这样的结论非常不以为然,并且提出了强有力的反击。
Jerry Epplin是一家名为EmbeddedSpace的嵌入式系统咨询公司的首席咨询师。他尖锐地指出:嵌入式开发平台的评估方法应该准确地衡量开发工作中的全部因素,TTM和TCD的确是很重要的因素,但是,除此之外还有很多不可忽视的因素。例如:
· 产品差别化:采用廉价方法开发的产品并不一定能够在市场上获得独特的竞争力;
· 产品成本:采用能够运行在较廉价的硬件平台上的嵌入式操作系统,将会使产品成本大幅度降低,从而在市场上具有更强的竞争力;
· 工具的延续性:如果嵌入式软件开发者长期采用同一个平台,并且积累了大量的工具软件和开发经验,必将在产品功能、性能和成本方面占据更大的优势。
另外还有其他许多因素都应当纳入嵌入式软件开发平台的评估体系之中。如果只是拿出来一两个指标来衡量,其结果一定是片面的。。
真正应该关注的是TCP
Krasner博士提出的嵌入式开发平台TCD评估方法不仅非常简单,而且完全站在了微软的立场上,当然是树大招风,而且由于过于简单而显得非常脆弱,很容易受到攻击。反过来,对于简单而直截了当的结论,最有效的攻击方法莫过于让事情复杂化,即使自己提不出任何明确的结论,至少能够让对方的论断受到怀疑。这就是Jerry Epplin所采用的办法。
在Window Embedded和嵌入式Linux争执不下的时候,我们不妨听听另外一方面的说法,相信有助于我们明辨是非。
不论是微软还是Linux,实际上都是嵌入式系统的后来者。在这个领域,本来就有一些长期获得认同的开发平台,比如Wind River的VxWorks。
Wind River中国区总经理韩青指出:“Krasner博士和Jerry Epplin先生是从不同层面得出的不同结论,他们所说的都有道理,对于搞清楚如何选择嵌入式软件开发平台都是有帮助的。Wind River在嵌入式软件开发领域已经有20多年的经验,对此也有自己的认识。”
韩青先生认为:选择和采用一种开发平台,对于一个电子产品厂商来说就是一笔投资。现在人们都开始认识到“Total Cost”,而不是只看最初的一次性投资。总的来看,对于嵌入式软件开发工具的投资,人们的认识水平可以分为以下几个层面:
第一层面:只看到购买开发工具时所花的费用。在这个层面上,Open Source的Linux无疑是最吸引人的,因为它是免费的,而其他商用嵌入式软件开发工具和商业化的Linux都需要支付一定的费用。
第二层面:不仅看到购买开发工具软件是所花的费用,而且看到在一个产品开发过程中所花的费用,主要是产品License和产品生产成本。微软及Krasner博士的报告对于人们认识到开发过程中的隐形费用很有帮助,只是他们提出的TCD模型过于简单了。Jerry Epplin则提出了一些同样值得重视的因素。
第三层面:从一个产品整个生命周期的范围内来看待不同嵌入式软件开发平台对成本的影响,所以我们要关注TCP(Total Cost of Product,产品总成本)。因为,企业开发和销售一个产品,最终要关注的是获利能力,所以就必须关注TCP。
其实,关于嵌入式软件开发平台的投入产出分析还可以在更高的层面——整个企业的高度来进行。经过多年发展和积淀,成熟的嵌入式软件开发平台支持基于构件(Components)的开发方法,从而让不同产品、不同开发项目之间实现大范围的软件构件重复使用,从而加快开发速度,降低开发成本。另外,在工具与平台的维护以及工程师的培训方面都可以节省更多的成本。
特别是对于消费电子产品是嵌入式软件的新兴市场,由于这类产品主要是批量生产销售,所以对成本极为敏感。软件对于消费电子产品成本的影响主要体现在四个方面:一是对CPU的要求越高,成本越高;二是对Flash存储器容量要求越高,成本越高;三是产品软件License的费用直接影响产品成本;四是系统稳定性、可靠性越好,产品售后服务费用就越低。
不同嵌入式软件平台的TCP分析比较
对于一个产品从开发到批量上市,其中的费用大致由三个方面构成:开发工具License、产品生产的License和相关成本以及开发与生产中的隐性费用。其中,隐形费用往往的不到应有的重视,这是因为开发工具与平台的选择常常有技术开发人员做出,而由此对产品开发整体成本(TCP)却远远超出了技术问题本身。
目前广泛采用的嵌入式软件开发工具,从商业模式上可以分为两类:In-House(由各生产厂商自行研发和维护)和商业化的嵌入式开发工具;从沿革历史上也可以分为两类:传统嵌入式平台和由桌面操作系统经过裁剪而来的平台。
对于嵌入式Linux要区别看待。如果是完全免费的,那么必然要求开发者自行修改和维护,最终形成各自不同的版本,这样就和In-House的嵌入式开发工具没有什么区别了。
抛开桌面操作系统和嵌入式系统所用的RTOS(实时操作系统)在技术上的区别,仅仅从经济性上来看,我们可以Wind River 的VxWorks为代表,在传统商用嵌入式软件工具、免费的嵌入式Linux和Windows Embedded等不同工具之间作一下比较。
开发工具与平台的License费用:开发者可以选用免费的Linux。VxWorks、Windows Embedded和商业化的Linux的入门费大体在一个水平上。
产品License费用及生产成本:表面上看,Linux是Royalty Free(免收使用许可费)。VxWorks和Windows是要收取使用许可费(Royalty)的。产品license费用对于价格敏感的设备,如消费电子类设备,是非常重要的。基于VxWorks所开发的产品对于CPU和存储Flash的需求更低,因此可为客户节省硬件成本。据风河公司中国区总经理韩青先生透露“风河公司在消费电子类产品上产品license的订价很低,采用VxWorks为用户节省的硬件成本足以补偿使用许可费”。Windows和Linux原本都是桌面操作系统,即使经过裁剪,其成品软件在节省CPU和内存方面仍然远远不及VxWorks。
隐形费用:微软及Krasner博士的报告对于强调开发过程中的隐性成本具有非常大的积极作用,但是没有考虑到产品生产中的隐性成本,而且对开发阶段隐形费用所做的分析也过于简单化。
实际上,开发一个产品的成本究竟怎样,与开发者已有的资源密切相关。具体产品开发者熟悉哪一种工具,目标产品的参考设计基于哪一种平台,这些都是非常关键的因素。所以要具体情况具体分析。从现实情况看,传统上熟悉VxWorks平台的开发者很多,对于他们来说,当然是选用VxWorks平台成本最低。Linux和Windows都吸引了不少新加入的开发者。
嵌入式软件平台的选择对产品上市后隐形费用的影响不可忽视,这主要是体现在产品售后服务与维修方面。如果产品稳定可靠、故障率低,售后服务与支持费用自然就低,通别是对消费电子产品更是如此。VxWorks的可靠性和行为的确定性为开发者设计出精简、实用、可靠的嵌入式软件奠定了基础,这是它最独特的优势。
微软及Krasner博士的报告虽然引发了许多争议,但是这种争议对于全面认识嵌入式软件开发的整体成本还是有很重要的积极作用。总的看来,从只关心入门费到认识到后续的产品生产成本和隐形费用,这是嵌入式软件平台选择准则的一大进步。希望由此开始,广大开发者乃至企业的经营决策者都更加关注嵌入式软件开发平台对产品总成本的影响。