Real Time Communications Featured Article

Matrix Promotes Open Source Signaling Standard for WebRTC, Internet of Things

February 26, 2015

One of the big knocks against WebRTC is that it uses other bits and pieces for signaling, including SIP and XMPP.  The founders of the project are offering an alternative with open source code and a path to putting WebRTC into the Internet of Things (IoT).

"Matrix defines interoperable Instant Messaging and VoIP, providing pragmatic HTTP APIs and open source reference implementations for creating and running your own real-time communication infrastructure," said Matrix co-founders Matthew Hodgson and Amandine Le Pape via email.

The project provides simple RESTful APIs for synchronizing any kind of JSON data within a virtual room.  VoIP and instant messaging are specific use cases, but the two pointed out Matrix can be used as a general messaging and data synchronizing system for the web, allowing people, services and devices to easily communicate with each other with full history.

Matrix open APIs are available on Github, including the open source reference implementations of the server in Python, client SDKs, and sample applications for WebRTC proper, Apple IOS, Google Android, Python, and Perl.  All the code is open course and available for free for anyone to deploy and run.

Hodgson and Le Pape said Matrix can be considered the "missing link"  for all WebRTC deployments to interoperate by providing the signaling layer for WebRTC.  Performance for delivering voice and video using simple HTTP PUT requests to transport JSON around between clients and servers can be faster than typical SIP over TCP or XMPP because of header and body compression, plus pipelined connections. Developers are also "welcome" to use more efficient transports, such as websockets, MQTT, COAP or custom protocols, between client and server as long as the baseline HTTP is also supported for compatibility.

One of the things I like about Matrix is security.  It uses TLS by default. All server side data is encrypted and signed to avoid tampering with conversation history or identity impersonation. There's also trusted federation of identity servers, tracking of public keys, and third party ID mappings. End-to-end encryption is also available as an option for implementation.

With all the security features and the fact Matrix is a generic messaging synchronization protocol, Hodgson and Le Pape say it can act as a global persistent messaging fabric for communications data between devices, i.e. for IoT.  Things like CoAP and MQTT don't provide features such as global federated messaging, distributed message history, message signaling or end-to-end encryption.  Matrix has all of those features.

Linking IoT and WebRTC is quite timely, given the approach of Mobile World Congress and the rah-rah of putting together mobile devices with WebRTC.   IBM is a big proponent of using WebRTC for IoT; this week, IBM and PubNum announced a partnership where PubNub will provide realtime data streaming and messaging capabilities to Bluemix, IBM's cloud development platform.

Big Blue has also spliced in WebRTC into its latest beta for WebSphere Liberty Applications Server.  Given that IBM loves open source and its current version of RTC for IoT uses MQTT, it isn't a big stretch to think the company might look at Matrix in the future.

Edited by Stefania Viscusi

Article comments powered by Disqus

  Subscribe here for RTCW eNews