OpenCDN is a tool that concerns the development of an application-level Content Delivery Network.
It is written in Perl, and interfaces a Relay technology (which splits incoming media packets for each downstream flow) with a control plane, allowing for remote control of content delivery. Media distribution is hierarchically arranged among participating Nodes, by the aid of a centralized control unit named Request Routing and Distribution Management (RRDM), also written in Perl.
Content providers can register metadata describing their contributions, and find it distributed by OpenCDN. Communication in between RRDM and Nodes, and in between Nodes, is performed by XML-RPC calls.
Provided that a sufficient number of Relay nodes are scattered in between the source and the destinations, media can be efficiently distributed to a very large number of clients, without severe network and server requirements, actually performing an Application Level Multicast content routing. In particular, first and last mile will be crossed only once.
The code is modular and allows for easy porting to different Relay technologies: the original development was based on Darwin Streaming Server by Apple, and later it has been adapted to Helix Universal Server by Real.
What's New in This Release:
· Content Provider Kit (CPK)
· This is the name of the new tarball containing only the code needed by the origin entity, explicitly targeted for VideoLAN use, and offering a web-based configuration and operation interface
· Install script updated for CPK, setting the $is_cpk flag in OriginConfig.pm, setting VLC SUID bit for allowing the use of port 554, and creating a tmp dir
· Origin don't spawns a re-registration child if first registration fails; instead, Web interface suggests to ask for credentials at the OpenCDN site.
· When a "restart Origin" command is issued via web, the restart_origin sub prepares a bash script which does a 'killall Origin.pm' and then launches Origin again
· After the Origin is restarted by the CPK, the original terminal looses control on it, so Origin is made killable by the CPK itself
· Origin own IP address is auto-sensed, by looking for the interface on the same subnet of the default gateway. The code is in CommLib::get_ip_addr, and will be re-used by the other entities
· CPK has been made compatible with the WebTV service operated at http://genni.ing.uniroma1.it/~leo/cgi-bin/web_tv.pl?web_tv=home, and CPK is co-located and WebTV is active, it is killed
· Some new Perl modules have been added: File-MMagic-1.27, MIME-Types-1.16, HTTP-Server-Simple-0.20, Static.pm
· VideoLAN Adaptation Layer
· New module VLC.pm launches a VideoLAN process, and controls it by the VLC telnet interface
· Net-Telnet-3.03 Perl module has been added
· Added support for "v" transport (which means VideoLAN)
· Added embedded player in response page
· Available Contents select in the request page has been replaced by a table with radio buttons
· Darwin adaptation layer now correctly detects a wrong password
· Two major changes in PYTE handling:
1. variable $use_pyte is not in CommConf.pm any longer.
Instead it is now in RRDMconfig.pm
2. $use_pyte doesn't need to be configured at node level anymore. The
RRDM takes care of it all, informing nodes at registration time about
the status of $use_pyte. Also, function find_best in CommLib.pm now
receives one more parameter, that is $use_pyte