GT-MCU: MCU escalável e de baixo custo
O uso de videoconferência por MCU (Multipoint Control Unit), normalmente é implementado por equipamentos de hardware especialmente dedicados a esse fim, o que leva elevados custos de aquisição e manutenção. Além disso, traz limtações na tarefa de criação de salas, gravação e gerência de layouts, que somente pode ser feita pelo administrador do MCU, dificultando o controle local durante uma reunião.
O presente projeto propõe um serviço de videoconferência de baixo custo totalmente virtualizado, funcionando na nuvem de forma escalável. Na realidade, a plataforma proposta é mais que um MCU, funcionando como um framework universal de encaminhamento de mídias, permitindo a integração com outros serviços, como webconferência e VoIP. Finalmente, opera de forma Federada, facilitando o uso do serviço por usuários autorizados através da Federação.
O sistema citado é chamado de GT-MCU (Grupo de Trabalho em MCU). Foi desenvolvido em software livre, financiado pela RNP (Rede Nacional de Ensino e Pesquisa do Brasil) e pela empresa Mconf Tecnologia.
Introdução
A sociedade já percebe a importância de ferramentas de videocolaboração como Microsoft Skype for Business e WebEx [1]
Ferramentas de videoconferência são úteis em comunicações ponto a ponto, com dois interlocutores, e também em comunicações multiponto, com vários interlocutores [2]. Para comunicações multiponto, existe o modelo de MCU (Multipoint Control Unit), que gera um fluxo de saída composto pelas mídias de diversos equipamentos (também chamados de endpoints) [3].
Os endpoints podem ser compostos por sistemas de hardware ou de software. Exemplos de enpoints de hardware são a linha HDX da Polycom [4], o Multipoint Bridge da Lifesize [5], e a linha MX da Cisco [6], entre outros. Exemplos de endpoints de software são o Jitsi [7], o Ekiga [8] e o RealPresence da Polycom [9].
Para interconectar os diversos endpoints, um MCU age como elemento centralizador, recebendo todas as mídias, compondo todas em um mesmo vídeo, e enviando esse vídeo para todos endpoints, como mostra a Figura 1.
Figura 1. Funcionamento básico de um MCU.
A proposta deste projeto é apresentar um sistema em software que permite escalabilidade na nuvem, mantendo o custo de aquisição e manutenção baixo, permitindo um número muito grande de usuários.
Visão Geral
A Figura 2 mostra a ideia geral do sistema proposto, que é composto por um Gerenciador de Escalabilidade (GE) redundante e uma rede de Servidores de Mídia (SM) de MCUs em software todos redundantes para que o sistema possua alta disponibilidade. Os endpoints conectam com o GE, que é, basicamente, o ponto de entrada do MCU para os usuários. O GE escolhe um Servidor de Mídia disponível e direciona este usuário (endpoint) para ingresso na sala desejada. A partir dai toda transferência de mídia (vídeo e áudio) seja feita agora diretamente entre SM e endpoint (ver figura).
Figura 2. Visão geral do sistema MCU proposto em nuvem.
A proposta apresentada prevê que as VMs correspondentes aos servidores de mídia sejam dinâmicas, ou seja, o número de máquinas virtuais aumente ou diminua automaticamente conforme a necessidade.
Um importante recurso provido pelo sistema consiste em uma API (Application Program Interface) de ingresso no GE que suporta fluxos de MCU e SFU (Switching Forwarding Unit)” (relação 1xn).
Em termos de características gerais, o sistema tem os seguintes requisitos:
- Funcionamento em software, em máquina virtual, de forma distribuída em nuvem.
- Escalável através de um gerenciador de escalabilidade, permitindo diversas conferências simultâneas.
- Baixo custo de implantação e de manutenção.
- Funcionar como um Servidor de Mídia Universal na rede, permitindo receber demandas de envio de áudio e vídeo e encaminhar para o(s) destino(s) desejado(s).
- Uso dinâmico de VMs, ou seja, permite que Servidores de Mídia sejam criados e destruídos conforme a demanda.
- Tenha permissão de acesso de forma Federada para a criação e gerência de salas.
- Alta robustez e disponibilidade para uso contínuo, ou seja, o produto deve ter passado por baterias de testes de carga e funcionamento contínuo.
Arquitetura Interna do MCU
A Figura 5 exibe a arquitetura proposta para o MCU, mostrando os principais blocos do Gerenciador de Escalabilidade, resumidos a seguir:
- MCS-SIP (Media Control Server – Session Initiation Protocol): atua como um tradutor de requisições SIP para chamadas de API do MCS.
- MCS (Media Control Server): uma de suas principais funções é fazer o balanceamento de carga dos servidores de mídia disponíveis. O MCS opera independente do tipo de comunicação de mídia realizado (RTP, WebRTC, etc.).
- Gerente: através de uma interface web, o Gerente permite o acesso Federado para controle do sistema. Além disso, cada sala tem um gerente local (moderador), responsável por mudanças de layout, colocar em mudo, entre outras.
- BD Distribuído: todos os dados de todas as conferências em andamento (nome da sala, quem está na sala, entre outros) ficam armazenados em um banco de dados distribuído a fim de aumentar a disponibilidade do sistema.
- Monitor: atua como um servidor que tem conhecimento do estado atual da nuvem de servidores de mídia.
Figura 4. Esquema geral da arquitetura proposta.
O padrão de sinalização proposto para o produto é o SIP (Session Initiation Protocol), permitindo a compatibilidade com os endpoints de mercado existentes.
Tecnologias
O sistema operacional utilizado na solução MCU é o Linux Ubuntu.
O principal componente do servidor de mídia é o software Kurento, que funciona através da licença LGPL v2.1.
Outro software integrado no âmbito da proposta é o sistema de monitoramento Zabbix (www.zabbix.com/).
O componente SIP utilizado para executar o padrão SIP é o SIP.js (https://sipjs.com/), uma biblioteca javascript também de código aberto.
Resultados
Em termos de resultados, o desenvolvimento efetuado está com sua primeira versão funcional.
A Figura 5 mostra uma videoconferência efetuada pelo grupo, mostrando o layout com 5 participantes. Foram feitos experimentos com participantes em Brasília e até mesmo na Espanha, com baixo atraso.
Figura 5. Videoconferência do grupo vista através do endpoint de software Jitsi.