platforms and architecture
server platform
Our objectives in selecting a platform for our technology were simple and straightforward. We wanted something that was capable, robust, reliable, readily available, widely supported, cost effective, and enabled us to be extremely productive and efficient.
We are building our technology on top of industry standard open-source tools and platforms. Specifically, we have selected Linux as our operating system platform (specifically the Ubuntu Server distribution); MySQL as our database platform; and Lighttpd/Mongrel as our web-server platform; and Ruby-on-Rails as our web application platform.
We selected these tools starting with the Ruby-on-Rails (known as RoR or simpy Rails) web-application platform. This is a fairly new platform, but it has already established itself among the technical elite as the platform of choice for database driven web-sites. It is incredibly flexible & powerful, yet it makes common things incredibly easy, which results in tremendous developer productivity.
Given our choice of Rails, the choice of database was natural. We considered alternatives (such as Postgres and MS SQL Server 2005), but MySQL is the standard database for Rails applications. It is therefore the most tested configuration, and the one on which any issues are most likely to be discovered and fixed. While MySQL does not yet have all of the features of other databases (such as Oracle, IBM DB2, or MS SQL Server) and is often not considered "enterprise ready" or "industrial strength", it is definitely more than capable of supporting the needs of our applications. Furthermore, we aren't the only ones who think so – both Google and Yahoo! are known to have deployed sites using MySQL as the database platform.
While both Rails and MySQL are fully capable of being deployed on Windows (in fact, that's how most of our developers work), again the OS of choice for these applications is Linux. Linux is more widely supported by hosting providers, and allows the creation of "Virtual Private Servers", which enable us to create a hosting environment that is the software equivalent of a dedicated, isolated hardware server but at the fraction of the cost.
The selection of Lighttpd/Mongrel as our web-server platform is based on our desire to make extremely efficient use of our hardware resources. The standard web-server for Linux is undoubtedly Apache. We could definitely deploy using Apache, but we came to the conclusion that it was too heavy-weight for our current needs. Lighttpd/Mongrel is much more efficient, much faster, consumes less memory, and has all of the features we need. We are not writing any code that is specific to this web-server, and as mentioned above we could switch to a different web-server (such as Apache) should we discover that Lighttpd/Mongrel is no longer meeting our needs. At this time we think it is the optimal choice for us.
The fact that these tools are all open-source and available to us at no cost is a benefit, but it is definitely not the overriding factor. While licenses for Windows/SQLServer are not cheap, they are much cheaper than a single developer's time over the course of a year. Selecting an open-source platform simply to avoid paying for Windows/SQLServer licenses would be penny-wise but pound-foolish.
We also did not select these platforms due to any philosophical beliefs in open-source or against closed platforms or against Microsoft. We selected them after a careful analysis of the technical benefits and issues of the viable alternatives, as described above.
digital content and delivery
We will support digital downloads, streaming samples, internet radio, playlist streaming of both audio tracks and music videos.
We plan to offer content in several formats, in varying sizes/qualities. For audio tracks, we will offer a the following:
- small - memory/bandwidth optimized format: MP3 at 32kbit
- standard - optimized for computer and portable players (e.g., iPod): MP3 at 192kbit
- premium - optimized for audiophiles: lossless FLAC format
For video, we will provide content in several formats: Windows Media Video (WMV), Quicktime Video, Flash Video.
We have decided to make content available without rights-management protection, for a variety of reasons. A large factor was our motivation to support the iPod, and Apple's DRM technology is not currently open. One factor was the complexity and limits of current DRM technology and the lack of open and compatible standards. Another factor was the growing market rejection of DRM technologies in the aftermath of the Sony- Rootkit scandal. And finally, there has been significant research indicating that it's only the very, very top-tier of artists whose sales are impacted negatively by piracy on file sharing networks, whereas most other artists actually benefit from the music discovery aspects of file-sharing.
In order to enable digital content distribution, we will be creating a sophisticated content acquisition, ingestion and storage platform. We will have a complete toolset and process that will enable us to receive new media from artists and add them to our catalog efficiently. Furthermore, we will provide this toolset to artists so that they can do this themselves and submit their material to us digitally.
Since this content will consume multiple terabytes of storage and will have required a non-trivial effort to create, we will have a sophisticated backup/redundancy solution to protect the availability of the data.
client platform
We will support both PC/Mac and cell phones. Depending on popularity and demand, we may eventually support gaming platforms such as Xbox and PS3, as well as other small form-factor devices, such as the Sony PSP.
We do not expect to require any special software on a user's device. We will take advantage of widely deployed client software, including browsers, flash, media players, etc.
We will develop for, test on and support the leading web browsers, including IE, Firefox, and Safari. We will test these on MacOSX and Windows. We will allocate investment into each browser/OS combination as warranted by market-share among our target customers and strategic importance.
We will use Flash as appropriate to enable functionality that is otherwise not available. For example, we will use Flash to embed mp3 players in our web-sites. We will also use Flash as a tool to enable us to more dramatically convey an artist's personality.
