Demonstrating a faster mobility scenario that would be more difficult with the current WebRTC draft
Adalberto Foresti Principal Program Manager, Microsoft Open Technologies, Inc.
Since we submitted the initial CU-RTC-Web proposal to the W3C WebRTC Working Group in August 2012 with our proposed original contribution, vibrant discussions over the proposed RTCWeb protocol draft and WebRTC APIs specifications have continued both online and at face to face W3C and IETF Working Group meetings. The amount of energy in the industry around this subject is remarkable, though the road to converge on a quality, implementable spec that properly addresses real-world use cases remains long.
Last month, our prototype of CU-RTC-Web demonstrated a real world interoperability scenario – voice chatting between Chrome on a Mac and IE10 on Windows via the API.
Today, Microsoft Open Technologies, Inc., (MS Open Tech) is now publishing an updated prototype implementation of CU-RTC-Web on HTML5Labs that demonstrates another important scenario – roaming between two different connections (e.g. Wi-Fi and 3G, or Wi-Fi and Ethernet) - with negligible impact on the user experience.
This example also illustrates that we should not assume everything that will ever be done with WebRTC is already known at the time the standard is developed. It is tempting to develop an opaque, high level API that is optimized for some well-understood scenarios, but that requires development of new, probably non-interoperable extensions to cover new scenarios - or creating yet another standard to enable such applications. We believe that web developers would prefer to be empowered by a lower level, general API that truly enables evolving, interoperable scenarios from day one. Our earlier CU-RTC-Web blog described critical requirements that a successful, widely adoptable Web RTC browser API will need to meet, particularly in the area of network transport. We mentioned how the RealtimeTransport class connects a browser with a peer, providing a secured, low-latency path across the network.
Rather than using an opaque and indecipherable blob of SDP: Session Description Protocol (RFC 4566) text, CU-RTC-Web allows applications to choose how media is described to suit application needs. The relationship between streams of media and the network layer they traverse is not some arcane combination of SDP m= sections and a= mumble lines. Applications build a real-time transport and attach media to that transport.
If you want to learn more about the challenges that SDP brings, some very insightful comments have recently been shared by Robin Raymond of Open Peer on the RTCWEB IETF mailing list. Go here to see Robin’s well-crafted Blog post on the issues – SDP the WebRTC Boat Anchor. As a community, it is important we continue to share these views as inaction will constitute a self-defeating choice, for which the industry would pay a high price for years to come.
As with our previous release, we hope that publishing this latest working prototype in HTML5Labs provides guidance in the following areas:
The prototype can be downloaded from HTML5Labs. We look forward to receiving your feedback: please comment on this post or send us a message once you have played with the API, and stay tuned for even more to come.
We are proud to be part of the process and will continue to collaborate with the working group to close the gaps in the specification in the coming months. We remain persuaded that the general principles that governed CU-RTC-Web are valid and that a lower level API such as CU-RTC-Web is preferable to the higher level API within the current proposed WebRTC API draft. This would result in the most agile and robust standard, one that will empower web developers to create innovative experiences for years and decades to come.
Windows 8 provides access to all the WinRT APIs within the HTML5 development environment. Developers should be aware that there are some additional security features to consider when developing Windows 8 applications or HTML5-based cross platform applications for Windows. You can learn more about these features on MSDN.
“While jQuery meets the language criterion for Windows Store applications, Windows 8 exposes all the WinRT APIs within the HTML5 development environment, which comes with a new security model that made some code and common practices of jQuery flagged as unsafe in the context of a Windows Store application. AppendTo reviewed and re-authored portions of jQuery core to bring it into alignment with the Windows security model, as well as identified key areas where alternative patterns would need to be substituted for actually-used conventions.” — Jonathan Sampson, director of Support for appendTo.
appendTo submitted code directly to the jQuery Core project, which will integrate this support, and the alternative patterns mentioned by Sampson were submitted to the net.tuts+ site to help jQuery developers understand the Windows 8 security model and easily build Windows 8 applications using jQuery. You can read appendTo’s blog post with more details on this work.
Developers can already use some of these mobile cross-platform development frameworks and tools on Microsoft Devices as we mentioned in a previous post about Windows Phone 8 support added to popular open source tools and frameworks. MS Open Tech continuously engages with open source communities (contributing code, providing technical support, getting developers early access to future versions of the platforms, helping with testing devices, etc.), and we’ve found that developers are eager to publish their HTML5 apps to Windows 8 and Windows Phone 8 Stores.
"At HP IT, we use Enyo to build apps for conference attendees. Our Enyo-based conference apps deliver a first-class user experience on Windows 8 and Windows Phone 8 — not to mention iOS, Android and a host of other platforms. The ability to serve users across platforms and device types with a single app is a huge win for us." — Sharad Mathur, sr. director, Software, Architecture & Business Intelligence Printing & Personal Systems HP IT
Here are some recent notable developments in HTML5 mobile cross platform development:
Furthering the goal of bridging Microsoft and non-Microsoft technologies, Microsoft Open Technologies, Inc. developed the Android SDK for Windows Azure Mobile Services that is being announced today by Scott Guthrie on his blog.
Windows Azure Mobile Services was created to make it easier for developers to build engaging and dynamic mobile apps that scale. By using Mobile Services, developers are not only able to connect their applications to a scalable and secure backend hosted in Windows Azure, but also store data in the cloud, authenticate users and send push notifications.
The Android SDK lets you connect your favorite Android phone or tablet (Android 2.2+) to a cloud backend and deliver push notifications via Google Cloud Messaging. It also allows you to authenticate your users via their Google, Facebook, Twitter, or Microsoft credentials. To enable this, the MS Open Tech engineering team delivered the following key features:
The SDK is available on GitHub under the Apache 2.0 license and community contributions are very welcome.
You can learn more about the new SDK reading Scott’s blog, and the getting started tutorial and come back soon as we are working on more samples/demos/tutorials.
Our team is making steady progress on building a solid framework for our new open source computing model for the cloud ActorFx, and we’re happy to report that we just released version 0.40 for this ActorFx project on CodePlex.
ActorFx provides a non-prescriptive, language-independent model of dynamic distributed objects for highly available data structures and other logical entities via a standardized framework and infrastructure.
Since Microsoft Open Technologies, Inc., announced that ActorFx joined the MS Open Tech Hub in December, we’ve been hard at work at adding new features in regular releases.
For this release we focused on adding some interesting features that enriches the framework and makes it suitable for a wider range of scenarios.
We are already working on the V0.50 release. Let us know if there is any feature you would like to be added to the ActorFx project and, as always, comments and feedback are welcome.
The ActorFx team:
Claudio Caldato, Principal Program Manager Lead, Microsoft Open Technologies, Inc.
Brian Grunkemeyer, Senior Software Engineer, Microsoft Open Technologies Hub
Joe Hoag, Senior Software Engineer, Microsoft Open Technologies Hub