开放源代码: 创新与风险的平衡

类别:软件工程 点击:0 评论:0 推荐:

Billing World & OSS Today Magazine 作者
2004 年 11 月

本文译者是钱浙滨博士。译者注:这是一篇非常全面、深入的综述,介绍开源(open source)在电信业中的表现,1)从电信运营商/服务提供商(carriers/SP)的角度,包括系统的可靠性、可用性以及运行维护等;2)从设备制造商(vendors)的角度,包括嵌入式开发,局端服务器和运维设施等。文中介绍了开源带来的好处,也指出了可能的问题。归根结蒂,基于开源的系统是否提高了设备制造商的生产力,运营商能否接受呢?
软件开发的世界传统上十分神秘,那里开发人员一成不变地写成百上千行的代码来满足变化多端的商业需求。

这种与世隔绝的环境正大量地让路于开放的、协作开发,有些开发可能全世界成千上万的工程师都会通过开放源代码(开源,open source)社区介入。开源社区基于互联网,可以说无所不在,最终用户的需要会被贴出,而总是急于得到承认或只是乐于技术上精益求精的程序员们会写出应用程序(application),随后,便有大量的个人调试和重写它。开源软件的潜力就是能够快速开发出IP应用程序,这非常重要,因为Internet在固定和移动通信中带来更新的服务。 MySQL,Apache,Open Forge,GNU,Linux还有其他无数的开源项目,开放的接口使得模块间可以互相交流, 也使得应用程序之间可以相互操作。

是否、如何开源
当Sprint的CTO在Linux World上赞美开源,AT&T声明基于开源的开发能够帮助减轻技术负担、改进服务设施的质量时, 更多的运营商却不愿意公开谈论采用了开源的方式。 一个原因可能就是SCO-IBM之间的官司(参见Standards Watch pg.34); 另外,可能就是害怕失去竞争中的领先条件。

目前,交换机设备制造商已经首先加入进来。

像Cisco,Nortel,Lucent,ALcatel,Nokia和Avaya等,还有许多各自领域的领先者都启用了Linux,在通信服务设施中将得到体现, 那么服务提供商随后也很可能使用开源软件作为后端。 虽然目前主流上还没有什么项目十分著名,但趋势还是隆隆而来,大部分一流的运营商(Tier 1)要么从运行维护平台(OSS/BSS)提供商那里寻求支持, 要么加入开源开发实验室(OSDL,http://www.osdl.org)或者其他类似的论坛,探索如何将第三方的模块链接起来开发后台的软件包。

因此至今,开源创新分为三类。第一,开发工具(如JUnit和Eclipse),用于开发人员; 第二,嵌入的开源软件(实际就是脚本级别的,像Perl,JFlex,Jackyl),它们嵌在所买的产品中,对用户也是透明的,只是在服务合同中有相应的软件维护保证; 第三,就是基础平台(操作系统,如Linux),与专用操作系统竞争,一般用在低端,但现在在多CPU环境下也越来越普遍。

针对多处理器的伸缩性(scalability)是谈论最多的一个话题,也随之出现了三个Linux项目:一个就是研究伸缩性(伸缩性还有一个很重要的研究是针对申请服务的数量),另一个是电信级Linux(carrier-level Linux),最后一个是桌面Linux。其中,从在电信业的应用潜力上说,电信级Linux最引人注意。

为Linux的黄金时代准备
Linux渗入的最重要的领域也就是电信级Linux。 这就是针对电信运营环境裁减Linux,提供平台给制造商,他们可以围绕错误响应、可用性、可伸缩性等等建立API。 电信级Linux不是一个标准,而是一个基础,制造商通过“登记(regiestration)”过程展示一致性。 OSDL成员可以注册进入技术工作组或者市场工作组(Working Group)。 然后,有两个“草根”机制汇集需求: Linux用户建议委员会,它跨越国界(拉美、亚洲、欧洲和美国), 和一个ISV论坛,独立的制造商被邀请移植Linux,以及与工作组共享需求。

“32个设备制造商和服务提供商加入,并参与电信级Linux的需求建立。”Sam Greenblatt说,他是CA的Linux技术首席架构师、高级副总裁,也是OSDL的理事会成员。他特别指出,像NTT DoCoMo,Verizon,Sprint,MCI和AT&T等运营商正在以这样或那样的方式参与这个努力。

现在是2.0版本,最大的网络设备供应商(NEP)已经发布并增强了一些符合它的电信级平台,它们遵守Linux内核所需要的特定需求。 “例如,Cisco卖的每个网络设备都基于Linux,”Bill Weinberg,OSDL的开源体系结构专家,认为这必然是Linux运动中的重中之重。“通常在交换设备和后台设备之间会有一些延迟,”他承认,“但这个落后正在被迅速赶上。”。

在嵌入式Linux方面,像MontaVista,TimeSys,Novell,Nokia,Alcatel和NEC等公司(不用提Suza和Redhat在企业级方面),都在下一代网络(NGN)服务上建立了软交换和应用服务器的原型。 这些公司将在OSDL的框架下与IBM今年第四季度大量推出产品。 嵌入式Linux预期会增长,因为制造商正在电信级Linux上建造电信级交换机、媒体网关、核心网和接入网(CORE/EDGE)等设备。

为电信网络提供设备,电信级Linux的开发引来一些惊讶。

“我们相信2.0版的电信级Linux提供了一个安全的体系结构,包括高性能、本地负载平衡(load banlancing)和高可用性机制,”Alcatel移动解决事业部的战略与运营市场总监Herbert Mittermayr说。 2003年该公司宣布与MontaVista Software合作进行Linux电信级版本以及 Alcatel 5301 代理服务器平台的产品描述。 Mittermayr认为电信级Linux对于开发Alcatel代理服务器平台来说十分强大, 因为Linux已经具备支持代理服务的关键应用, 诸如协议网关(WAP、SMS、MMS、PTT),网络优化与配置,用户鉴别,鉴权和访问控制, Web服务的网络信息共享(定位、QoS、容量),内容采用与转换。

“我们是Linux用于电信和下一代网络的巨大倡导者,你现在所看到的对于明年将要推出的还只是冰山一角,”IBM全球服务Linux战略与商业开发总监Doug Dreyer说。 最近,IBM公司在 LinuxWorld上宣布,它正在向Apache贡献基于Java的Cloudscape数据库的源代码(这是2001年收购Informix公司获得的),Apache是一个著名的开源组织。

与电信级开放平台一起,通过使用Parlay和SIP等工具,制造商能够最终创建一个有巨大灵活性的框架。 现在,IBM与十来个网络设备提供商和服务提供商正在定义并建造一个概念原型 -- 使用开放标准的下一代服务框架。 “我们想展示服务提供商和运营商在他们的PTT(push to-talk),IP Centrix或其他下一代服务提案请求(RFP,Request For Proposal)中应该如何制定需求。”IBM刀片战略(Blade Strategy)事业部CTO Bruce Anthony说。

这个愿望在八月份催生了开放通信体系结构论坛,从这里电信业将会得到一个标准和解决方案图。 论坛将在明年第一季度出版它的第一个需求集合。

另一个生态圈的合作者将努力在明年的Supercomm大会上进行“食神大赛(bake-off)”,这包括参加服务可用性论坛(Service Availability Forum)的计费、信令和交换机制造商。

参加这次赛事的大多数公司使用两种方法建造电信级的Linux平台:嵌入式公司自底而上,企业级则自群而下(cluster down)。 后者通常是针对ISP类型的Web服务器失败恢复,焦点在伸缩性和主机服务。自底而上则针对速度和策略,这样实时性服务也可以运行在“刀片”之上。

运维系统采购
对于为客户供应、执行和记账的公司,要更多地使用开源软件,则这些软件必须是能够处理使命关键(mission-critical)的应用。 现在记账,CRM和运维过程还依赖于商业系统(COTS),可是,有些人相信如果/当Linux超过Solaris或Unix的时候,Linux也可以使用。 “越来越多,我们可以看到一些演化正在发生。不久前我们还确信Solaris的线程性能优于Linux,但现在新的Linux线程模型出来了, 已经证明比Solaris快,所以我们使用Linux进行我们的开发,”Brooktrout Tech.负责下一代通信的副总裁/CTO Eric Burger承认。 该公司创建媒体处理和呼叫控制(call control)环境,为应用提供SS7网络的接口,它的客户包括Avaya和Nortel Networks。

大部分制造商觉得向Linux移植没有什么问题,由于IBM为Linux提供强大支持,Oracle、HP、Sun也都是如此。 因为电信的大部分基础设施都是垂直地将专用平台和Unix集成,Unix也与Linux一样是个开放的生态系统,所以移植代码应该十分直接。

如果系统管理问题(运转/维护无数个小盒子)得不到解决,NOC(网络运维中心)将还是基于单一的系统。 对大多数运营商,NOC对系统的选择有很多影响,所以如果运行/维护和记账想使用Linux,它们必须向NOC证明有足够的容错能力。

目前,Linux想作为大服务器运行还很难找到可靠的硬件。PC机不可靠,所以大部分运营商坚持使用自带操作系统的SUN或HP机器。 不过,Linux的应用和编译系统都是Unix兼容的,几年后这必将改变。

“我们已经看到数目日渐增长的客户问是否我们支持Linux,” Opnet的CTO Joe Hogan说,他们已经使用GNU源代码开发自己的调试器和编译器。 Openet已经在Linux上开始开发一些软件,但目前产品仍然绑定在HP和Sun上。 “当我们卖运维和记费平台,我们必须面向Sun、HP,还有IBM。” Hogan让步道,又迅速地补充说变化将会很快的。 “我们还没有见过维护或计费系统运行在Linux上,但是大的运营商开始问起它。” 他说,并特别提到他们的研发部门已经开始在实验室环境使用Linux。 “甚至有一个大型设备制造商让我们做Linux软件,这意味着,沿此下去硬件公司可能关注使用Linux。”

然而Sun和HP仍主宰大型硬件的市场(100个CPU或更多),它们也还不断地向它们自己的操作系统投资。 就目前而言,Linux更适合二、三档的设备,像8/64/125个CPU的系统,比几百万美元的Unix系统便宜很多。 这样小的运营商和大运营商的某些部门可能会先涉足使用Linux。

“IBM,HP,Sun也有计划使Linux更具伸缩性,作为一个标准平台与微软竞争。 在微软和开源社区之间将有个选择,”Syndesis的CTO Mark Nicholson说,他们的工程师正在与HP和IBM的Linux部门一起工作, “你必须要有长远眼光,确定向哪里发展,如何将硬件、中间件和垂直的应用组合起来。” Nicholson认为像IBM,Vitrias,Cisco这样的公司有机的组织将提供非常好的“婚姻”。

Intec已经推出一批运行Linux的产品,测试新的服务或为商业实践提供概念原型。 “虽然现在没人需要它们,但我们认为随着我们使之更伸缩、更开放,情况绝对会改变,” Intec负责产品管理和商业开发的Rick Woods说, “我们所有的测试指示Linux已为自己的‘黄金时代’准备好了,就差有人大规模的使用,所以只是时间问题。”

他强调ISP和其他产业主流已经接受Linux,基于Linux的大规模处理是可以接受的。 “每个Google搜索都是运行在基于Linux的引擎上,它们显然处理了惊人数量的搜索。”Woods说, 几年前,他在Intec产品最初的代码和测试中就使用了Linux。

“当你需要一个高可用性的系统时,硬件花费最大,其次是应用,和操作系统。三者之中,操作系统是最便宜的部件, 所以在操作系统上替换HP或Sun的Unix只节省不多的费用。 所以这不能成为动力,”Woods说, “动力应该是世界每个开发人员都将支持Linux, 这样你可以从开源中找到无数的思想(idea)和经验(experience), 不用提是自由的。”

自由选择
开源运动的一个主要动力是能够独立于硬件厂商决定软件和硬件的升级, 还可以放心与其他开放设施长期的互操作性,这非常重要,比如 当运营商最终想从大型器向网格计算环境(grid computing)转移。

“这些年来,厂家指定你必须按他们(HP、Sun、IBM或Microsoft)的时间表升级软件, 也就是每次都得使用他们绑定的操作系统。” Acterna 业务保障解决方案事业部的首席架构师Dominique Le Foll说, 他还解释Solaris, UX或AIX的升级 还逼得大家必须重新编译成百上千万行的代码来升级编译器和软件。

四年前,Le Foll决定在Acterna的OSS和测试操作系统解决方案中尝试转移到开源方法。 “我们异军突起,”他说,“所以在给France Telecom(法国电信)做的一个新的DSL产品时我们专注于重用,而不是采购。” Le Foll归纳了重用的15个要点,首先就是性能问题: “我们的Sybase数据库需要改善性能,每天从设备收集100,000条警告需要提高到150万条。” Sybase做不到,Le Foll联系Oracle,它只能保证20%的性能提高。 “那不够,我们需要比原来快十倍。”

他听一个数据库专家说MySQL性能上无与伦比。 “我表示怀疑,但我还是买了一个,试验这个创新。” 结果是,Le Foll说,它比France Telecom原有的快20倍。 “客户对于它大部分是用免费软件开发的并没有反感,”他说。 “只要它好用并有技术支持,客户才不在乎呢。”

MySQL已经横扫Oracle的低端市场,这块儿Oracle没有什么应用套件(Suite)。 何况,Oracle现在自己也在Linux上开发并出售软件,当然也向Sun和HP移植。

Acterna运行在欧洲一流运营商的关键部件中95\%来自开源软件,Le Foll说, “我们解决了COBOL实现过程互联时的可靠性问题,用一个Omni Orb的免费实现把IONA替换了, 它原来在极端条件下不能很好重新同步。”

现在Le Foll正在做一个“Triple Play”服务的视频测试设备。 “基于开源代码,只花三星期你就做出一个Video over IP的产品。”

过去12个月,Acterna还在BT安装了几千个Linux测试头/小服务器(一种服务器上控制Triple Play测试头的系统软件), “那里的成功让我们在提供Triple Play的试验局中将Solaris全都换成了Linux,新的手持设备也是这样。”Le Foll说。

“我们在软件中提供的稳定性是关键。 使用开源代码,Sun的Solaris和HP的UX版本升级不再意味着你必须去碰编译器。 而在新机器上,你只需要重新编译就可以了,”Le Foll说, 并且提到IBM、SUN和HP对开源和Linux的支持日渐强大。 “最终,运营商获利,因为他们可以使用和维护相同的软件产品多年,而无需考虑硬件的变化。”

解密开源代码
当然,开放源代码有它的好处,也有它的挑战。

一个就是,某些项目的动力是不能保证的。 “开发团队有时感兴趣的是技术先进,不是商业,”Gesmer Updegrove LLP的合伙人Andrew Updegove强调, 该公司是Boston一个代表超过65家标准制定团体的法律事务所(http://www.consortiuminfo.org)。 “因为对于用户的友好也许报以态度冷漠,那在现实商业中的采用可能是一个挑战。 此外,这完全是一个志愿者的努力,所以对于真正最终的用户并没有一个预先存在的维护设施。”

确实,某些领域的开发工作可能会踯躅不前,这是寻求支持时的一个风险。 看看IVR(Interactive Voice Response)应用或语音浏览器的开源工作,最近的更新可能是两年前的了。

可是另一面,协同计算的基础设施工作汇集了大量的工作和能量,永不停滞, 以Linux内核开发为例,全世界超过750,000人曾卷入。

CIO、CTO或其他人想通过裁减开源软件用于商业特定的需要会冒随后没有支持的风险。 但也被广泛认可的是,最开放的项目通过各种论坛和协会有着最高级别的支持, 有些甚至超过了商业世界所能有的。 而且,开源制造商对自己所发布的软件、模块和操作系统提供全面的支持。

另一个常常错误的概念是开源软件是便宜的,甚至免费。 除非Web所发布的软件正是工程师想要的,否则freeware中的“free”有些用词不当。 然而开源代码可以95\%不变,几万行中只需要调试或改变几行就成为一个大项目。

甚至Linux最大的倡导者也承认,调试代码比写代码困难十倍, 这也是为什么开源社区的项目头一次尽可能完全自己写。

然而这是目标,80:20的规则被开源项目放大了。 “软件开发的笑话是花20%的时间做80%的项目,然后再100%的时间去做剩余20%,” Brooktrout Technology的Burger说。

基于开源的开发表面上已成为调试和重新塑造代码的演练。 Linux上的开源应用必须经过调整才能用于Solaris, 或者针对Pentium处理器的软件需要裁减才能在PowerPC上跑起来。 这也就是说,厂家和运营商使用开源产品必须在他们内部对项目重新塑造。

“虽然开源可能使得完成一个工作需要更少的工程师,但却需要有闯劲的思想者, 能够迅速进入开源代码,并且在失去软件发布和技术支持时能够排除风险。” Acterna的Le Foll说,它承认在向开源软件转移的时候,需要做巨大的改变。 “我必须改变研发队伍一半以上,这里有很多挫折, 因为一些人就是不能在这种模型下工作。”

“由于这么多电信公司都是‘电话网上在线收款机’, 所以已经有很多程序员在维护计算机系统, 你只需要几个高水平的人就可以实现开源的好处。 当然你也必须愿意为这个工程付出代价。”Burger说。 他相信缺乏商业特定的应用问题将会得到解决: “最终,终端用户不需要买操作系统,他们买应用。 所以如果大多数开源应用是‘校园级代码’将会成为妨碍。” 可是,随着IBM、HP和Sun的日渐支持,这些代码会被刷新的。

随着SCO的诉讼,对授权和知识产权的关注也日显前台。

开源代码是在GPL(General Public License)协议下发布的, 所以GPL下开发的软件,修改是被期望贴回社区的。

在作为开源操作系统的Linux之上写应用程序是可以避开GPL的。 根据GPL方针,动态链接提供了几种方式不需要专用的应用放回开源社区。 有几种方式,归根结底就是动态链接使用开源代码。 可是,如果你修改开源代码,建议你将修改返回社区, 也便于继续金字塔式的开发。

“如果你创建了专用扩展,那么你保持它专用,这也是商业上有时既维护不同又采用开源的方式,” Burger说。“只是你卖给谁设备,你必须提供你使用的所有源代码。” 发给客户所有开源软件的代码,不论他们需要不需要,这是过去的情形。 “也就是说,家用路由器跑在Linux上,”Burger说,“你必须把Linux给用户。 现在是,如果客户要它,你才必须拿出来,否则没必要。”

虽然开源的这些要求对于设备制造商是有法律约束作用的, 对于在家中开发的人员实际上是没有约束的。

“在使用开源代码时,我们仅仅在应用层保持战略上的不同,”Unibill负责销售和市场的高级副总裁David Guggenheim说。

“我们也有一个提供开放源代码的计划,它不是一般的开源软件协议,并不是像Linux任何改变都需要传回开源社区。”

他解释道,“后台在得到对应用更多的控制,还需要保持区别。” 提供对源代码的访问能够克服计费和客服部门两个常见的问题: 一个是不同客户间的区别, 另一个是推向市场的时间太长,产品特征路线图必须在厂家和客户之间同步。

“我们想应用放在我们这儿,我们可以处理所有传统的计费任务, 而客户的重点可以放在IT资源和围绕其自身特点的开发工作上。”Guggenheim说。 风险就是客户的IT部门必须遵循一套原则保持与Unibill的产品路线同步。

本文译自 Billing World & OSS Today Magazine 的 Susana Schwartz 写的一篇文章。请参阅原文。

关于作者

Susana Schwartz,原文作者

钱浙滨,本文译者,1999年从上海交通大学图像处理与模式识别研究所获工学博士学位,曾参与完成计算机视觉、正规语言和移动通信等方面的研发工作。目前他和他的团队主要从事多媒体编解码及其在DSP上的算法优化,以及相关的Linux嵌入式系统开发; 他能够提供 WLAN 相关的技术咨询,欢迎通过电子邮件 [email protected]交流。

本文地址:http://com.8s8s.com/it/it31956.htm