The BBC has created a network protocol testing platform written in Python and made it available as an open source application
The Kamaelia project, released on Tuesday, is designed to simplify the creation and testing of new protocols for large-scale media delivery systems. It was created by the BBC's research and development arm, based at Kingswood Warren in Surrey. Kamaelia is designed to allow easy large-scale testing of network protocols while they're being developed. It is written entirely in Python, and takes plug-ins to handle the specifics of the protocol under test.
BBC R&D said it chose Python for Kamaelia for specific reasons: resumeable functions, its clarity of code and compact nature are all given as advantages by the R&D team. Generators are an important part of Kamaelia's architecture, forming the mechanism for concurrency, which is important for running multiple streams from a single server. Using Python's Generators for concurrency--rather than any native OS method--means that Kamaelia remains OS-independent.
Michael Sparks, senior R&D engineer at the BBC, said the reasons for releasing Kamaelia as open source were straightforward. "We've done this so we can collaborate with other members of the networking community, be they open source or proprietary," he said. Also, while BBC R&D may put much effort into developing next-generation streaming protocols, they'll also need support from developers of client software, and any commercial software the BBC uses. "The BBC buys products, and we'd prefer to have supported products," added Sparks.
The reason for the BBC's interest in developing new networking protocols is obvious: it's a broadcaster that wants to make its content available over the Internet on a large scale. It also believes that current streaming protocols won't be up to the job, and needs new ones developing. By releasing Kamaelia as open source software, it hopes that it can develop the protocols it needs in conjunction with other networking companies and researchers, rather than doing it alone. "If the BBC opens its archive, which it's committed to doing, what problems will that cause, and how do we solve them?" commented Sparks. "If we have 20 million people all trying to watch different things, that's going to cause problems. We need scalable protocols as well as scalable systems."
Sparks cites how other open source networking projects have gone on to produce Internet standards. "Ten years ago people were using the open source BSD TCP stack, which now you'll find in Windows and Mac OS X," he said. "Squid is another example. That gets used for research into caching."
The project is hosted on SourceForge, rather than any BBC servers, to encourage developers from outside the corporation to contribute. Sparks said this was in keeping with the open philosophy of the project: "We're not seeking to compete, we're seeking to collaborate," he added.
The BBC is no stranger to open source projects--it was behind the Dirac project, to develop an open source video codec for varying sizes of moving image, from mobile phone to HDTV. That project is also hosted on SourceForge, and forms part of BBC R&D ongoing research programmed into new broadcast technologies. "We generally have a 10- or 15-year vision. The things we're working on may not get used by the BBC, but we need to be able to advise the BBC management on what they should be considering," said Sparks.