Unformatted text preview:

Tempo A Distributed Media Player and Content Distribution System Dan Schultz Martijn Stevenson and Tom Wilson 6 824 Final Project Submitted May 12th 2005 Abstract Most popular music sharing implementations require powerful centralized servers to keep track of or store the available content We offer an alternative solution This paper describes Tempo a decentralized digital content solution that lets users share their content on the fly as it is being enjoyed Our system focuses on a community approach to digital media with multiple content controllers and clients distributing files to other clients while the media plays The major challenges we faced in this project included efficiently distributing files to an arbitrarily large number of users in a decentralized fashion allowing multiple users to control media playback and keeping playback synchronized We overcome these difficulties by using a BitTorrent style distribution system utilizing stateless connections for control messages and maintaining a synchronized group time for time stamped messages 1 0 Introduction Imagine the following You enjoy listening to music but you don t have the time or the energy to rip it from your CDs or download it from the Internet Thankfully you have an established circle of friends family or coworkers who share your particular tastes in music If only there were some way by which your friends could let you listen in Tempo provides this service This paper presents Tempo a completely distributed music sharing tool without any central file repositories or predefined controllers It is a music player a DJ and a content distributor rolled into one tool To the user Tempo looks much like a standard digital music player The user can form playlists from which he can play songs randomly or in order In addition the user can now connect to groups of users formed ad hoc and listen in on a shared playlist which features music coming from all of the group s controllers Tempo allows users to create online communities which focus on the enjoyment of shared media When creating Tempo we decided that our system must satisfy the following five properties 1 It must be completely distributed The system cannot rely on centralized servers as these introduce single points of failure 2 It must support large numbers of clients with relatively high turnover rates Clients may well be continually disconnecting and reconnecting so it is important that Tempo handle this gracefully 3 It must allow distributed control of playback The whole point of the system is that multiple users can control media playback so it must not rely on a central controller 4 It should minimize the delay between a user adding content to the queue and all users obtaining a copy of that content 5 It should minimize the skew in playback across clients Ideally all clients should be in perfect sync with each other To enforce these properties we created a system where all of the clients are identical While individual Tempo clients act as servers in some respects there is never any system wide central control This enforces properties 1 and 3 To support property 2 we tried to minimize the 1 amount of state that has to be maintained across clients By using stateless transient connections and a randomized gossip protocol to ensure consistency we were able to significantly reduce the amount of communication overhead and infrastructure required This makes adding or removing clients a straightforward and efficient process allowing us to meet our goal Property 4 is upheld by our file transfer system We use a modified version of BitTorrent which allows Tempo to use multiple servers for distributing files without overloading them This means that files propagate through the system rapidly once the transfer starts Finally we enforce property 5 by using timestamps on every message This allows us to determine when the playback command was executed which means that we can simply start playing the media at the appropriate moment in the file We ensure that every client in the system maintains a consistent group time using a time synchronization protocol described in section 3 4 The sections that follow illustrate the most important properties of our system Section 2 describes prior work that influenced the design of Tempo while section 3 dives into the details of that design Section 4 discusses interesting implementation details of Tempo and section 5 presents an evaluation of how well we met our goals Finally section 6 considers what future work could be done to extend and improve the Tempo system 2 0 Related Work Tempo draws inspiration from a wide variety of sources One of the important features of Tempo is accessing other clients media so related work in file sharing is a great source of information for us The file sharing aspects of Tempo share qualities with a multitude of applications including applications such as Kazaa Gnutella and FreeNet These applications let users search for a file they wish to have and allow the user to download the file from other users Our system is similar except that we allow the searching and downloading to occur without any user interaction When a Tempo client needs a file it automatically sees who has the file and begins downloading it The BitTorrent system is also related to the way our file sharing works BitTorrent breaks up files into pieces and distributes the pieces individually When a user wants to download a file that file could come from any number of users The pieces are not necessarily sequential and the pieces could all come from one other user or each piece could come from a different user In order to maximize the speed of file distribution Tempo is designed to allow file segmentation We did not include this feature in our prototype but it could be added with relatively little effort The music distribution portion of our system is similar to several streaming and sharing systems in use today One of the most popular music sharing systems is the iTunes music streaming service which utilizes Apple s Rendezvous protocol This system allows users to see the shared music libraries of other users on the local network Users can play songs from any of the shared music libraries The main difference is that the user playing a shared song does not get a copy of the song Also there is no connection between what the user playing the shared file is listening to and what the user who owns that shared file is listening to Tempo allows users to


View Full Document

MIT 6 824 - A Distributed Media Player and Content Distribution System

Documents in this Course
Logging

Logging

4 pages

Load more
Loading Unlocking...
Login

Join to view A Distributed Media Player and Content Distribution System and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view A Distributed Media Player and Content Distribution System and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?