O objetivo deste trabalho é desenvolver um serviço de stream de vídeos (upload e download) que seja escalável para lidar com grande volume de dados. O serviço deve ser capaz de armazenar pelo menos 20GB de dados de vídeos. O tamanho dos vídeos é indiferente para o propósito deste trabalho, desde que os experimentos sejam realizados com uma base de dados com o tamanho requerido.   Os clientes devem  enviar requisições informando os vídeos de seu interesse de forma aleatória. Você deverá usar algum player de vídeo cliente o qual recebe o stream de video baixado e apresente em tempo real o conteúdo do arquivo baixado.   Mostre em gráficos a taxa de transferência de cada transação, calcule a média e desvio padrão de todos os experimentos. Tentem mapear que componente da solução está consumindo mais recurso. Ou seja, identifique e apresente o tempo parcial dos componentes que mais impactam no tempo de resposta total. Usem o JMX em conjunto com ferramentas clientes de visualização de métricas para visualizar CPU, memória, rede, e outras métricas.  A solução deve ser tolerante a falhas e escalável. Ou seja, os dados devem estar replicados de forma que se um servidor do cluster cair, o sistema continue operacional. Alem disto, o sistema deve escalar horizontalmente em caso de aumento de volume de dados a serem armazenados.