This page documents high-level guidelines for the project. Instead of enforcing a single system architecture, students are encouraged to evaluate several alternatives and come up with what works best. Please remember that unlike a commercial product, this is a software research project with more emphasis on innovation, experimentation and learning.
There are several alternatives that come to mind [see platform options]. For example, in a client-server architecture, the web browser acts as a client and runs the Flash application that presents the communication GUI to the user. The client talks to a backend server using available protocol, e.g., HTTP for control and RTMP for media data. The backend server in turn provides the communication API that allows the web applications to incorporate multimedia communication within the browser. For scalability and robustness, the servers self-organize themselves in a server farm, interact with each other as well as with the outside world, e.g., SIP trunking to PSTN network for PC-to-phone calls. For further flexibility, a user can run the server application on his computer, where his local server application connects with other peers' server applications. This allows the system to work in an peer-to-peer infrastructure without managed servers. In the end, the architecture could become a hybrid mix of managed client-server and ad hoc peer-to-peer systems.
There are many protocols invented in multimedia communications space; some of which are competing [see article]. Many issues have been researched and solved in these protocols. In our web communications project, we plan to use HTTP as the default protocol as much as possible because it just works on existing Internet without much hassle. Unfortunately, HTTP lacks some key elements crucial for interactive web communication applications. There are extensions and work-arounds available to facilitate server-triggered events, e.g., COMET, BOSH. Another drawback of HTTP is that it works over TCP and hence not suitable for real-time interactive multimedia communication. The same applies for RTMP. Currently RTP has been used as the standard media transport protocol. It can also be secured using SRTP but requires out-of-band session key delivery.
I think the best advice to the students is to avoid the hammer and nail problem: if you hold a hammer, you tend to see all problems as nail and try to fix it with your hammer -- if you understand a protocol or data format, you tend to apply it to all applications.
Usability is about presentation and giving choices to the end-user, carefully! Often the end-users do not read the user manual, do not know what they expect from the product, get confused if presented with too many choices, but still like to be in control of what they do. Making a user interface that pleases everyone is almost impossible. The same applies to APIs.
Recent comments
9 years 2 weeks ago
8 years 38 weeks ago
9 years 8 weeks ago
9 years 8 weeks ago
9 years 10 weeks ago
9 years 10 weeks ago
9 years 18 weeks ago
9 years 22 weeks ago
9 years 17 weeks ago
9 years 31 weeks ago