7WebRTC

Web Real-Time Communications (WebRTC, comunicaciones en tiempo real en la web) es un conjunto de estándares abiertos para la comunicación en tiempo real, desarrollados principalmente por el Grupo de Trabajo del Wide Web Consortium (W3C) y los Grupos de Trabajo de Real-Time Communication in Web-browsers (RTCWEB, comunicaciones en tiempo real en los navegadores web) Internet Engineering Task Force (IETF, fuerza de tareas de ingeniería en Internet)

El W3C centra su trabajo en el WebRTC principalmente en el navegador de interfaces de programación de aplicaciones Application Programming Interfaces (APIs) para interactuar con las fuentes de audio / vídeo. El IETF ha creado el grupo RTCweb para centrarse en la interfaz entre el navegador y la definición de protocolos (señalización).

El WebRTC [19] abre posibilidades a las comunicaciones en tiempo real, tales como llamadas de audio y vídeo, la pantalla compartida y la vídeoconferencia dentro de los navegadores web, pero sin el empleo de software adicional (sólo se requieren los navegadores web modernos). Esto hace que sea fácil para los desarrolladores web implementar las características WebRTC sólo mediante el uso de lenguaje de marcado de hipertexto versión 5 Hypertext Markup Language version 5 (HTML5) y una variedad de interfaces de programación de aplicaciones JavaScript (API).

Además de proporcionar un potente motor de los medios de comunicación descentralizada en los navegadores, el WebRTC tiene otros beneficios como el código fuente abierto y APIs, audio libre y códecs de vídeo (adaptativos, de alta definición), y la red de apoyo incorporado (por ejemplo, el cifrado, la detección de redes).

Sin embargo, debido a su diseño técnico, el WebRTC no se redujo a la utilización dentro de los navegadores. También se puede utilizar a través de aplicaciones e implementaciones nativas, por lo que casi cualquier dispositivo - ordenadores, tabletas o incluso televisores - con conexión actualizada podría convertirse en un peer (visionador) de WebRTC y por lo tanto un dispositivo de comunicaciones de pleno derecho. Estos participantes de una comunicación pueden ser nombrados como peers de WebRTC o shortly peers (visionador cercano), que también pueden ser vistos como sinónimos de todo el dispositivo de comunicación. Además, lo más fácil de manejar características del aspecto más revolucionario de WebRTC es su concepto de comunicación.

En contraste con otros sistemas de comunicación en tiempo real, proporcionar la comunicación usando WebRTC no requiere una gran infraestructura que maneje el tráfico de comunicación a través de los pares.

Por lo general, hay dos patrones de comunicación en WebRTC, el patrón básico, llamado el triángulo de WebRTC y un modelo más avanzado, el WebRTC trapezoide.

En el caso de un patrón de triángulo (que se muestra en la Figura 10), en primer lugar, todos los compañeros o navegadores, respectivamente, se comunican entre sí conectándose a un servidor web. Este servidor web proporciona una aplicación web WebRTC, a menudo implementada como un archivo JavaScript, que invoca un conjunto de APIs que son proporcionadas por el servidor web. Con el fin de establecer la sesión WebRTC, esas solicitudes de la API se utilizan para establecer el canal de señalización. La señalización en WebRTC no ha sido estandarizada y por lo tanto depende de la aplicación específica WebRTC, entre los visionados a través del servidor web. El transporte de datos de usuario (tales como audio, vídeo u otros) se realiza mediante el PeerConnection, que se establece directamente entre los dos pares.

image
Fig. 10 – Triángulo WebRTC

La figura 11 representa el patrón de comunicación trapezoidal, que se utiliza para la comunicación entre los pares que no están conectados al mismo servidor web. En este caso, la comunicación a través de los servidores web se realiza con el uso de un protocolo de señalización estandarizada como el SIP. Sin embargo, la transmisión de datos de usuario a través de la PeerConnection se mantiene sin cambios, por lo tanto se hace directamente entre los pares.

image
Fig. 11 – Trapezoide WebRTC