NUBOMEDIA: FP7/2007-2013 GA-610576

NUBOMEDIA: the first open source PaaS for developing WebRTC services.


The NUBOMEDIA Research Project started two years ago with the objective of creating a PaaS specifically devoted to WebRTC applications and services. This objective has been fully achieved and today NUBOMEDIA is the first worldwide WebRTC PaaS being really a PaaS. This means that NUBOMEDIA is strictly a Platform as a Service understood as a cloud service exposing to developers the ability of uploading, deploying and executing applications under the restrictions and leveraging the facilities of a development platform.


Understanding what’s a WebRTC PaaS

For understanding how a real PaaS works we just need to think on services such as Heroku, the Google App Engine or Pivotal PCF. All of them expose to developers the ability of uploading, deploying and executing applications that leverage the PaaS capabilities through custom SDKs. By using them, developers do not need to worry about aspects such as the provisioning, the scalability, the resilience or the security of the services they consume as they are provided off-the-shelf by the PaaS. This model is quite convenient as it lets developers to concentrate on creating their application logic while all the complex aspects of deploying, scaling and securing them are assumed by the PaaS. Currently, PaaS provides expose a bunch of services including databases, file storage or communications. However, none of them provide WebRTC capabilities yet.


Understanding the difference between a WebRTC PaaS and WebRTC API PaaS

In the WebRTC arena, the typical way of exposing signaling and media capabilities is through different types of network APIs. This is the approach of a bunch of providers including Tokbox, Kandy, Twilio and many others. However, none of them can be considered as a real PaaS as they do not make possible to upload, deploy and scale developers’ applications. Many times, these types of services are called “API PaaS” indicating that they exhibit most of the nice “-ilities” of real PaaS services (i.e scalability, security, reliability, etc.) but only in what refers to their specific network APIs, and not in relation to the application as a whole.

NUBOMEDIA PaaS versus API PaaS clouds

Figure 1: Coparison of different cloud technologies at the time of creating WebRTC applications in terms of flexibility, development complexity and operational costs. A real PaaS has more flexibility than API PaaS platforms without sacrifizing ease of developments.

With this in mind, it is quite straightforward to understand what NUBOMEDIA is. NUBOMEDIA is a real PaaS (like Heroku) as it makes possible to upload, deploy and execute developers’ applications written in the Java programming language. At the same time, NUBOMEDIA is a WebRTC platform (like Tokbox or Kandy) as it provides the ability of accessing scalable, secure and reliable WebRTC capabilities. Thanks to this, NUBOMEDIA combines the simplicity and ease of development of WebRTC API PaaS services with the flexibility of real PaaS infrastructures. Hence, as NUBOMEDIA is a Java PaaS, developers can leverage all the capabilities of the Java platform for creating their applications. The only difference with other PaaS services it that NUBOMEDIA makes available WebRTC capabilities through a specific API. Hence, WebRTC just becomes another of the SDKs that can be used while programming. Once an application is completed, developers just need to deploy it into NUBOMEDIA and it will scale in a secure and reliable way with full transparency.


Why NUBOMEDIA might be interesting for you

If you are a WebRTC developer, you may find in NUBOMEDIA an interesting solution for creating your applications. When using the typical WebRTC API PaaS, the WebRTC signaling and media management is fully under the control of the provider. As a result, you cannot use the signaling protocol you prefer. Moreover, your code cannot modify or customize the semantics of such signaling messages. This means that you have very little control on aspects such as AAA (Authentication, Authorization and Accounting), which take place based on the mechanism the provider wants and not on your own needs. This also means that you may find difficulties in implementing complex call flows beyond the model exposed by the provider. Hence, you are constrained to the subset of features the provider wants and cannot extend them. As a result, if you want a feature that the provider is not contemplating, in most cases you just cannot have it as the signaling and media control logic is completely out of your reach.

When using a real PaaS like NUBOMEDIA, you have full control on both the signaling protocol and the signaling semantics. As your application is just Java code, you have available the complete set of capabilities of the Java platform including access to databases, legacy IT system, web services and many other facilities. The only difference is that you will have available the NUBOMEDIA Media SDK, which provides your applications complete access to WebRTC and other real-time media communication capabilities held by NUBOMEDIA. In addition, NUBOMEDIA media capabilities are fully based on Kurento Media Server, which provides a unique ritch toolbox of media features.

For illustration, let’s enumerate some examples of things you can do with NUBOMEDIA in a seamless way, but which are complex, if not fully impossible, to do with common WebRTC API PaaS

  • To create applications enabling fine grained authorization filtering. For example, imagine that you need users to have access to the media capabilities (e.g. recording, subscribing to a given stream, etc.) depending on complex or dynamic rules (e.g. context, time-of-day, call-duration, etc.
  • To create applications with special communication topologies. For example, rooms with “spy viewers” that can view other’s speaking but are not viewed. Rooms with simultaneous translators that are not viewed but listen some given participants and are listened by some other participants, etc.
  • To create applications with full control on media parameterizations including, for example, custom logic for quality management. • To create applications where you have full control on your infrastructure costs and on the costs margins of such infrastructures.
  • To create a market-place of third party APIs. A NUBOMEDIA provider can expose to developers the ability of deploying different types of service APIs that can be consumed later by other developers for creating WebRTC application and services. For example, one-to-many broadcasting topologies, group videoconferencing models with roles depending on context or participant profile, APIs suitable for interoperating WebRTC services with traditional telco services (e.g. POTS, SMS) etc.


Take aways

NUBOMEDIA is an open source WebRTC PaaS providing a WebRTC cloud infrastructure and a set of client SDKs for Web, Android and iOS that makes possible for developers to create, deploy and scale complex WebRTC applications. NUBOMEDIA provides more flexibility than current WebRTC API PaaS without scarifying simplicity and scalability. You can download and install NUBOMEDIA in any OpenStack-based cloud and enjoy the benefits of a full PaaS model for creating your WebRTC applications and services.

If you are interested in knowing more about NUBOMEDIA stay tuned. We will be publishing detailed information and tutorials soon.