WebSphere Application Server & Liberty

WebSphere Application Server & Liberty

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only

Zero-to-WebRTC with the WebSphere Liberty Profile

By Alexis Street posted Fri August 29, 2014 08:41 AM

  
WebRTC is a new set of HTML5 APIs that helps build more engaging web and mobile applications with embedded real-time communications capabilities via Javascript. Real-time audio video and data communications using WebRTC are able to:
  • Shorten the time it takes a customer to get an important question answered leading to an online purchase 
  • Bring distributed co-workers closer together within the context of a socially enabled team room 
  • Enable eLearning class rooms for online education sessions 
WebRTC provides access to several flavors of audio and video codecs as well as features like echo cancelation real-time data channels and Interactive Connectivity Establishment (ICE) protocol for firewall traversal. This new technology is already available in production versions of popular browsers like Firefox and Chrome and since this technology is an evolving open standard mobile versions of WebRTC for Android and iOS have also emerged.

No cumbersome plugins to deal with access to state-of-the-art codecs and all this available through Javascript APIs in the browser? Sounds too good to be true right? Well maybe…

The Liberty Real-Time Communications (Rtcomm) Feature

While WebRTC alone provides some very powerful features it doesn’t provide support for the call signaling needed to setup real-time media channels between endpoints. This is where the new Liberty rtcomm-1.0 feature comes in. With the latest beta release of the WebSphere Liberty server developers can quickly add WebRTC support to a web application with only a few lines of Javascript. This 0-to-WebRTC video shows how a developer can take a sample web page built with Bootstrap jQuery and the Rtcomm Javascript client library along with the WebSphere Liberty server and within minutes launch a real-time audio/video web application that can be used to start an audio/video chat with someone down the hall or across the ocean.

In the 0-to-WebRTC demo the rtcomm-1.0 Liberty feature provides the following services which enable Rtcomm enabled client endpoints to connect to each other:
  • Registration: Endpoints register contact information with Liberty which is used to route call signaling. 
  • Routing: Endpoints use Liberty to exchange the call signaling needed to setup peer-to-peer real-time media channels. 
Real-time communication has never been simple. Codecs are expensive to develop signaling protocols are complicated and interoperability is never simple. For the average web developer working within an agile development process simple to use and easy to access development tools and libraries are a must. With the new Liberty Rtcomm feature the goal is to provide this and more in a simple and easy to consume form. While the 0-to-WebRTC video shows how simple it is to get started with the Liberty Rtcomm feature it only scratches the surface of what’s coming.

Rtcomm: Open and Extensible

The Liberty Rtcomm feature is based on a simple JSON protocol. The Rtcomm sample page and related client Javascript library used in the demo (including all the related source code) are now available at this GitHub repository.

This repository also contains all the API documentation and the complete Rtcomm protocol specification that both the client libraries and Liberty feature are built on.

So why is IBM open sourcing the Rtcomm client libraries and protocol? Because developers and call service providers demand it! A new communications protocol and a new set of Javascript APIs must be open and extensible to gain acceptance in the market. The Rtcomm Liberty feature relies on these protocols to communicate with client endpoints but we expect and encourage developers to fork the above repository and extend the capabilities of the client library for their own real-time communication needs.

MQ Telemetry Transport and Rtcomm

The Liberty Rtcomm feature is built on a lightweight pub/sub protocol called MQ Telemetry Transport (MQTT). MQTT is an open standard that was originally design for constrained devices which makes it ideal for both browsers and mobile devices. Because of this MQTT dependency both the Rtcomm client library and the rtcomm-1.0 Liberty feature rely on an MQTT message broker to exchange messages. Messages are sent and received using the MQTT publish/subscribe semantics supported by the protocol.

MQTT can be used for way more than just the call signaling. For instance MQTT capabilities can be combined with Rtcomm to create a lightweight customer/agent queue for an online helpdesk or add presence to a social media application. If you want to learn more about MQTT check out mqtt.org.

What’s Next?

The Rtcomm Liberty feature will continue to evolve with new betas coming out every month until the feature GAs. Please be on the lookout for more video demos showing the new Rtcomm capabilities including support for Rtcomm event monitoring and Third-Party call control using Node-RED. See the following GitHub repositories for more details:
Demo: WAS Liberty Profile Zero to WebRTC in 5 minutes
View in separate window


Meet the author:
 
Brian Pulito Real-Time Communications Architect-for WebSphere IBM

Brian Pulito is the lead Real-Time Communications Architect for WebSphere. He leads a team that developed the WebSphere SIP Servlet container and has helped design develop and support numerous RTC projects throughout his career. Brian is one of the leading IBM evangelist for WebRTC and the use of real-time communications to transform boring old web and mobile apps into engaging real-time applications. Follow Brian Pulito on Twitter @brianpulito.
0 comments
1 view

Permalink