2011年4月6日星期三

Media Server


Abstract

This project is for an Australian client who has a long term relationship with Nova. They have a running website, which allows users to upload media files to their personal profile for other users to view and comment. Both audio and video files can be uploaded, and the file formats include almost all mainstream formats of AV files. However, there is an Achilles' heel that the media module is coupling with other functions of the existing website, and lacks uniform management & maintenance, while the expense of the client's local network storage and transmission is very high, so the cost of this module is shooting up along with increase of AV files. Thus, they came to Nova to find a way out.

Solutions

Technology required

  • Visual Studio 2008
  • .NET Framework 3.5
  • ASP.NET MVC
  • jQuery
  • IoC
  • Flash Video MX SDK V2
  • SQL Server 2005

Challenges of the development

1. Media conversion

All kinds of media files uploaded should be converted to uniform flv format so that it can play on Internet conveniently. It took about 2 weeks for us to investigate various Media Convert Components from the technical aspect, and we provided our client with a research report then. Based on our report, they decided to use Flash Video MX SDK V2.

2. Conversion efficiency

From a pretest of conversion efficiency, we have found out that it's impossible to process parallel conversion on only one computer. Thus, we came up with 2 solutions from there: firstly, we can do parallel processing with multi-computers; secondly, we can queue the files with one computer and convert them one by one. Our client decided to go with the latter solution considering the cost, i.e., we do not convert the files immediately after they are uploaded, but add them into a conversion queue instead. Another process polling the queue (in the form of windows service) and take out one media file at one time from there for processing.

3. Bulk file upload

FTP, Flash and Silverlight all support bulk file upload and multi-file upload, but only FTP and Silverlight can resume broken downloads. So we finally choose Silverlight as the main uploading method considering the complexity of operation with FTP, and use Web Form as an assistant method so that when the users do not want to install Silverlight, they can use the website as well.

4. Integration with the existing website

It is required that Media server can run as an independent website as well as be integrated into the existing website seamlessly. Seamlessly integration here means: the existing website can call any service of Media Server without re-login by users, plus some of the content of Media Server can display on the existing website as part of its pages.

Methodology

We tried Scrum, one of the Agile development methodology, during this project. We tried our best to deliver the most valuable product as soon as possible through interacting with the client frequently, cooperating with them actively and good self management of our development team.
We set one month as a Sprint, and try to deliver valuable products for each Sprint so that to get some feedback from the client as early as possible. While we didn't adopt entire Scrum practice since Nova and our client are in different countries, and are restricted geographically, we made our choice on some of the Scrum rules, and left those currently unfeasible ones behind, for example, we do plan meeting, product demonstration and review internally, and send our discussion results for the client's review, then adjust accordingly upon receiving their feedback.




















































































































































































没有评论:

发表评论