BBC用Python编写了一个网络协议测试平台,并将其作为开放源代码应用程序供大众使用。
星期二发布的Kamaelia项目设计用来简化对大规模媒体发布系统的协议进行创建和测试的过程。它是由位于英格兰萨里郡金斯伍德•沃伦(Kingswood Warren in Surrey)的BBC的研究和开发小组创建。Kamaelia设计用来在开发网络协议期间,对协议进行大规模的测试。它完全使用Python写成,并可以加入插件来处理被测试的协议的具体项目。
BBC研发组说他们选择使用Python来开发Kamaelia是有特别原因的:可恢复的函数、清晰的代码,以及结构紧凑等特性都是被研发小组认为的优势。生成器是Kamaelia的体系结构的重要一部分,它构成了并发机制,这对于利用单个服务器运行多个流非常重要。使用Python的并发生成器——而不是任何OS自带的方法——意味着Kamaelia是独立于操作系统的。
Michael Sparks,BBC的资深研发工程师,表示将Kamaelia作为开放源代码项目发布的原因很简单。“我们这样做了,因此我们能够与网上社区的其他人员携手努力,而无论他们是在为开放源代码服务还是在为专有软件服务,”他说。而且,尽管BBC的研发小组在开发下一代的流媒体协议上进行了很多的努力,但是他们还是需要来自客户端软件的开发商的支持,以及BBC所使用的所有商业软件的支持。“BBC要购买产品,而且我们更希望获得具有售后支持的产品,”Sparks补充说。
BBC对开发新的网络协议感兴趣的原因很明显:它是家广播公司,希望将其内容大规模地放在Internet上。它还相信,当前的流协议无法满足这一任务,所以需要开发新的协议。将Kamaelia作为开放源代码软件发布,BBC希望它能够与其他网络公司和研究人员共同努力,开发出所需要的协议,而不是独自来完成。“如果BBC开放其档案,它也承诺要这样做,那么会造成什么问题呢,以及我们要如何解决它们呢?”Sparks评论说。“如果我们有2,000万人都在看不同的东西,那么这就会带来问题。我们需要可以伸缩的协议以及可以伸缩的系统。”
Sparks引述了其他的开放源代码网络项目是如何演化成为Internet标准的。“十年以前,人们在使用开放源代码的BSD TCP堆栈,而现在你会在Windows和Mac OS X里找到,”他说。“Squid是另一个例子。这就是把研究变成了标准。”
这个项目放在SourceForge上来进行,而不是任何BBC的服务器,以鼓励该公司以外的开发人员参与进来。Sparks说这与该项目的开放精神是相匹配的:“我们不是为了竞争,而是为了合作,”他补充说。
BBC对开放源代码项目并不陌生——它就在Dirac项目背后,为可变尺寸(从移动电话到HDTV)的移动图像开发了一个开放源代码视频解码器。该项目也放在SourceForge上,它也成为了BBC研发小组正在进行的新广播技术的研究的一部分。“我们一般会考虑10到15年的前景。我们正在进行的东西可能无法用在BBC里,但是我们需要有东西来建议BBC的管理层将其考虑进来,”Sparks说。