Re: Microsoft API Proposal

Martin,

many thanks for this contribution. As you know, the WG already has an 
API proposal that has matured over the last year.

I think it would be helpful (when reviewing) if you could in a more 
concrete way point out the key differences, and the reason why your 
proposal is different.

(You have indicated some reasons, but it is put a bit vague for my taste).

Stefan

On 08/06/2012 09:40 PM, Martin Thomson wrote:
> Today, we are pleased to announce Microsoft’s contribution of
> the CU-RTC-Web proposal to the W3C WebRTC working group.
>
> Thanks in no small part to the exponential improvements in broadband
> infrastructure over the last few years, it is now possible to leverage
> the digital backbone of the Internet to create experiences for which
> dedicated media and networks were necessary until not too long ago.
>
> Inexpensive, real time video conferencing is one such experience.
>
> The Internet Engineering Task Force and the World Wide Web Consortium
> created complementary working groups to bring these experiences to the
> most familiar and widespread application used to access the Internet:
> the web browser. The goal of this initiative is to add a new level of
> interactivity for web users with real-time communications (Web RTC) in
> the browser.
>
> While the overarching goal is simple to describe, there are several
> critical requirements that a successful, widely adoptable Web RTC
> browser API will need to meet:
>
> * Honoring key web tenets – The Web favors stateless interactions which
> do not saddle either party of a data exchange with the responsibility to
> remember what the other did or expects. Doing otherwise is a recipe for
> extreme brittleness in implementations; it also raises considerably the
> development cost which reduces the reach of the standard itself.
>
> * Customizable response to changing network quality – Real time media
> applications have to run on networks with a wide range of capabilities
> varying in terms of bandwidth, latency, and packet loss.  Likewise these
> characteristics can change while an application is running. Developers
> should be able to control how the user experience adapts to fluctuations
> in communication quality.  For example, when communication quality
> degrades, the developer may prefer to favor the video channel, favor the
> audio channel, or suspend the app until acceptable quality is restored.
> An effective protocol and API should provide developers with the tools
> to tailor the application response to the exact needs of the moment.
>
> * Ubiquitous deployability on existing network infrastructure –
> Interoperability is critical if WebRTC users are to communicate with the
> rest of the world with users on different browsers, VoIP phones, and
> mobile phones, from behind firewalls and across routers and equipment
> that is unlikely to be upgraded to the current state of the art anytime
> soon.
>
> * Flexibility in its support of popular media formats and codecs as well
> as openness to future innovation – A successful standard cannot be tied
> to individual codecs, data formats or scenarios. They may soon be
> supplanted by newer versions that would make such a tightly coupled
> standard obsolete just as quickly. The right approach is instead to
> support multiple media formats and to bring the bulk of the logic to the
> application layer, enabling developers to innovate.
>
> While a useful start at realizing the Web RTC vision, we feel that
> the existing proposal falls short of meeting these requirements. In
> particular:
>
> * No Ubiquitous deployability: it shows no signs of offering real world
> interoperability with existing VoIP phones, and mobile phones, from
> behind firewalls and across routers and instead focuses on video
> communication between web browsers under ideal conditions. It does not
> allow an application to control how media is transmitted on the network.
> On the other hand, implementing innovative, real-world applications like
> security consoles, audio streaming services or baby monitoring through
> this API would be unwieldy, assuming it could be made to work at all. A
> Web RTC standard must equip developers with the ability to implement all
> scenarios, even those we haven’t thought of.
>
> * No fit with key web tenets: it is inherently not stateless, as it
> takes a significant dependency on the legacy of SIP technology, which is
> a suboptimal choice for use in Web APIs. In particular, the negotiation
> model of the API relies on the SDP offer/answer model, which forces
> applications to parse and generate SDP in order to effect a change in
> browser behavior. An application is forced to only perform certain
> changes when the browser is in specific states, which further constrains
> options and increases complexity. Furthermore, the set of permitted
> transformations to SDP are constrained in non-obvious and undiscoverable
> ways, forcing applications to resort to trial-and-error and/or
> browser-specific code. All of this added complexity is an unnecessary
> burden on applications with little or no benefit in return.
>
> The Microsoft Proposal for Customizable, Ubiquitous Real Time
> Communication over the WebFor these reasons, Microsoft has contributed
> the CU-RTC-Web proposal that we believe does address the four key
> requirements above.
>
> * This proposal adds a real-time, peer-to-peer transport layer that
> empowers web developers by having greater flexibility and transparency,
> putting developers directly in control over the experience they provide
> to their users.
>
> * It dispenses with the constraints imposed by unnecessary state
> machines and complex SDP and provides simple, transparent objects.
>
> * It elegantly builds on and integrates with the existing
> W3C getUserMedia API, making it possible for an application to connect a
> microphone or a camera in one browser to the speaker or screen of
> another browser. getUserMedia is an increasingly popular API that
> Microsoft has been prototyping and that is applicable to a broad set of
> applications with an HTML5 client, including video authoring and voice
> commands.
>
> You can find this proposal at:
>
> http://html5labs.com/cu-rtc-web/cu-rtc-web.htm
>

Received on Tuesday, 7 August 2012 08:21:56 UTC