This page documents the development of a discrete event simulator for P2P video streaming applications. This simulator captures important features of data-driven video streaming systems. In particular, it is designed to evaluate: (i) the performance of various segment scheduling algorithms; (ii) the potential of network coding in multi-layer P2P video streaming systems.
Todo List
We keep a short todo list here. For each todo item, we also list the expected workload, the current assignee, the tentative due date, and the completion time.
Description | Workload (ppl-day) | Assignee | Tentative Duedate | Completion time |
---|---|---|---|---|
Reread and implement Meng Zhang's algorithm | 1.5 | Cheng | March 18, 2009 | March 18, 2009 |
Finalize the simulator engine | 1 | Cheng | March 17, 2009 | March 17, 2009 |
Generalize the scheduling algorithm for multiple layer problem | 3 | N/A | ||
Reorganize the evaluation setup subsection | 2 | Yuanbin | March 18, 2009 | March 18, 2009 |
High-Level Design
Source file of the class diagram
Some misc notes:
- We use long for time/offset in msec, which has a rollover time 24.85 days
Performance metrics for scheduling
Here are some performance metrics:
- Average delivery ratio: number of on-time scheduled segments over total number of segments to be scheduled
- Load balance among senders
- Initial buffering time
- Time and space complexity of the scheduling algorithm
Performance metrics for network coding
Here are some performance metrics:
- Playback quality (PSNR)
- Resilience to peer dynamics (ability of maintaning good streaming quality)
- Required server capacity
How to install uml and svn tools in eclipse3.2.x
- Install emul2
- Go to "http://www.soyatec.com/euml2/installation/", download its free edition. (Select the right version according to your eclipse)
- Unpack the zip file
- Open your eclipse, and go to Help -> Software Updates -> Find and install ... -> Search for new features to install -> New local site then find the unpakced file to install it.
- How to use: after you creating a new java project, go to File -> New -> Other, select the "UML2 Class Diagram" under the eUML directory, then you can create a class diagram for your project .
- Install subclipse
- Open your eclipse, and go to Help -> Software Updates -> Find and install ... -> Search for new features to install -> New Remote Site
- Add "http://subclipse.tigris.org/update_1.4.x" to the URL field and add an arbitrary name to the Name field
- Follow the instruction to install it.
- If you encounter an error like "Subclipse Integration for Mylyn 3.x (Optional) (3.0.0) requires plug-in "org.eclipse.mylyn.tasks.core (3.0.0)" don't worry, just deselect the "Integrations" item and continue to install.
- Go to Window -> Preferences -> Team. If you can see SVN under the Team tab, congratulations, your installation is done.
- How to use: right click the project you want to commit, select Tean -> Share project -> SVN, input the URL of your svn server, then you can import your project to it.
- For more details on how to use subclipse, please refer to http://www.ibm.com/developerworks/opensource/library/os-ecl-subversion/
The project directory
I've put the psim project to "https://cs-svn.cs.surrey.sfu.ca/svn/nsl/schedule/psim". You can check it out in eclipse with subclipse.