Microsoft CU-RTC-Web is an alternative approach to WebRTC meant to show some of WebRTC’s weaknesses and to push it forward.
WebRTC is a standard defining a client side API enabling real-time browser to browser multimedia communication. This API is supposed to make video and audio communication work across all browsers that implement it, and it was proposed by Google which made available the source code of their implementation of the standard in 2011. The standard is currently a W3C Working Draft that was supposed to reach Candidate Recommendation status during Q4/2012 but it is delayed for at least one year. The standard has been implemented by Chrome, Firefox and Opera.
It is not clear what Apple will do with Safari. Although WebRTC has been committed to WebKit, Apple has not signaled their position on it. One possible solution is the WebRTC4All project which provides extensions for Safari, and other browsers. Perhaps Apple will embrace WebRTC if the the current draft becomes a de facto standard.
Microsoft is an active part of the W3C WebRTC WG, and they submitted a new proposal called Customizable, Ubiquitous Real Time Communication over the Web (CU-RTC-Web) in August 2012. InfoQ has discusses with Olivier Bloch, a member of Microsoft’s Open Tech Evangelism Team, to find out more details on CU-RTC-Web.
First of all, Microsoft believes that a multimedia communication API needs to satisfy several requirements, according to Bloch:
- Honoring key web tenets [including stateless interaction]
- Ubiquitous deployability on existing network infrastructure
- Customizable response to changing network quality
- Flexibility in its support of popular media formats and codecs as well as openness to future innovation
And WebRTC does not satisfy the first two requirements, said Bloch. That’s where CU-RTC-Web comes into play:
CU-RTC-Web is an alternative approach to an eventual WebRTC API standard.
CU-RTC-Web is not intended to be an alternative standard, it is meant to help the standards discussion as we think it is a cleaner and a faster way to get to a real interoperable standard.
To show the validity of their proposal, Microsoft has published a working prototype implementation of CU-RTC-Web on HTML5Labs because:
Actual implementations (in Chrome and Safari) of the current draft of the WebRTC API have proven to not interoperate.
To clarify our proposals for a better way forward, we are releasing prototypes that implement the alternative approach proposed in CU-RTC-Web. We believe that code talks, and we are concretely demonstrating interoperability between Chrome and IE using the CU-RTC-Web approach.
The result is that the W3C WebRTC WG has included some of the ideas proposed by Microsoft with CU-RTC-Web into WebRTC, but “the existing approach (the WebRTC protocol and WebRTC APIs specifications) is far from complete and stable, and needs considerable refinement and clarification before formal standardization and before it’s used to build interoperable implementations.”
The conclusion is that CU-RTC-Web is not an attempt to create a different standard, but Microsoft’s way to show some of the interoperability weaknesses existing in WebRTC and to propose certain changes of the working draft.