|
Project Description
This research project investigates the architecture, design, analysis, and implementation of scalable and reliable continuous
media streaming systems. Continuous media refers to media data that have a time specification for correct presentation. Common examples are video data and audio data, of which both require decoding and playing back
the data at specific time instants or rates. Streaming refers to the way data are delivered from a server to a client for playback. In contrast to the download model, where a data object such as a video file, are
completely received before playback, in streaming the client software begins playback before receiving the whole data object, and keeps receiving data from the server during playback. Finally, the term system refers
to the collection of components in a complete continuous media streaming application, including the server, the network, and the client.
Building continuous media streaming systems are not difficult. The real challenge is to build systems that can scale up to
support thousands or even millions of concurrent users. Additionally, given the scale of these systems, individual component failures are inevitable. Thus, it is essential that these systems are fault tolerant,
i.e., with the capability to sustain non-stop service when there are one or more component failures. Business issues aside, these are the biggest hurdles to overcome before deploying large-scale commercial
continuous-media services such as video-on-demand can become feasible.
This research project investigates two approaches to building large-scale media streaming systems. The first approach
focuses on the use of parallel-server architectures to tackle the scalability and reliability challenges at the server end. Based on an architectural taxonomy [1], various architectural alternatives, including a
pull-based architecture [2-4], the concurrent-push architecture [5], and the staggered-push architecture [6], are then investigated and their performance analyzed. In addition, fault-tolerant mechanisims are
developed to enable the streaming systems to survive disk-level and server-level failures, and to maintain non-stop service even for existing ongoing users [7-10].
In addition to the server bottleneck, which can be addressed using the parallel-server architectures, the network itself
can also become the bottleneck when the user population grows. The second approach investigated in this research explores the use of network multicast and multicast streaming algorithms to address this challenge. In
particular, three classes of multicast streaming algorithms are investigated, namely open-loop algorithm [12], closed-loop algorithms [13], as well as hybrid algorithms [14-22]. In addition, hybrid algorithms
introdue new problems in scheduling I/O in the media server which can be addressed by a new scheduling algorithm optimized for such data transmission patterns [23].
In addition to research papers, the research results arising from this project have also been included in the research
monograph titled Scalable Continuous Media
Streaming Systems published by John Wiley and Sons Ltd.
Related Publications
Parallel Server Architectures
Vincent C. H. Lee, Jack Y. B. Lee, "Improving UVoD System Efficiency with Batching," Proc. International Conference on Software, Telecommunications and Computer Networks – SoftCOM, Crotia, October 2000.
Open-loop/Closed-loop Multicast Streaming Algorithm
Hybrid Multicast Streaming Algorithm
Vincent C. H. Lee, Jack Y. B. Lee, "Improving UVoD System Efficiency with Batching," Proc. International Conference on Software, Telecommunications and Computer Networks – SoftCOM, Crotia, October 2000.
Media Server Design for Hybrid Multicast Streaming Algorithm
-
|
|