Universidade do Minho Escola de Engenharia Universidade do Minho Escola de Engenharia Dissertação de Mestrado Framework e Cliente WebRTC Vasco Manuel de Frias Amaral Amaral no19821 RelatóriodeDissertaçãosubmetidoàUniversidadedoMinho,noâmbitodocurso deMestradoemEngenhariaInformática,sobsupervisãocientíficadaProf. Dra MariaSolangePiresFerreiraRitoLimaedaEnga. TelmaMota. UniversidadedoMinho EscoladeEngenharia DepartamentodeInformática Outubro, 2013 ii Agradecimentos Em primeiro lugar gostaria de agradecer à minha orientadora, Professora Doutora Solange Rito Lima, pelo apoio e orientação científica, assim como a disponibilidade que apresentou durante o decorrer deste trabalho. Como também à Enga. Telma Mota e ao Engo. Paulo Chainho pelo apoio, pela disponibilidade e também pela orientação que me deram na empresa PT Inovação, paraqueesteprojectoedissertaçãofossedesenvolvidodamelhormaneirapossível. Gostava de agradecer em especial à minha mãe, pai e irmãos por todo o apoio que me deram durantetodaaminhavidaacadémicaenestafasefinal. Agradeçoaindaaosmeusamigosquemeacompanharamdurantetodaainfânciaevidaacadémica, como também aos meus colegas de curso e trabalho em especial ao Henrique Martins, Ricardo Macedo e Samuel Rodrigues pela ajuda e companheirismo que demonstraram durante este per- cursoacadémico. iii iv Abstract WebRTC is a standard technology which allows real-time communications between browsers, without installing additional plugins. In this way, for each device (computers, smartphones, etc.) with an installed browser, it is possible to perform peer-to-peer real-time communications natively,forinstance,videoandvoicecalls,chattingorinstantmessaging,filesharingandscreen sharing. Thisrecenttechnologyhasgrownexponentiallybothinimplementedsolutionsandinbrowsers compatibility. WebRTC is therefore an evolutionary technology with a strong growth, where more solutions Over-The-Top (OTT) could appear and where the telecommunications operators couldinvestcreatingtheirownservicesolutions. Facing the lack of standards regarding the communication between WebRTC endpoints, this projectstudiesindepththeWebRTCtechnologyinordertoidentifyitspotentialityandtoassess in which way it could impact on the telecommunications world. This project also aims to create aframeworkthathelpsdevelopingWebRTCapplicationsandservicesatahigherlevel. Asproof-of-conceptaWebRTCclientisdevelopedtoallowtestingtheservicesimplemented in the framework. The evaluation results address functionality tests, attesting that the imple- mented features of the framework work properly, and measure the CPU and memory consump- tionofWebRTCtechnology. v vi Resumo WebRTCéumatecnologianormalizadaquepermiteacomunicaçãoemtemporealentrebrowsers, sem a necessidade de instalar plugins adicionais. Desta forma, é possível a qualquer dispositivo (computadores, smartphones, etc.), que tenha instalado um browser, realizar comunicações em temporealpeer-to-peer,deumaformanativa. Exemplodissosãoascomunicaçõesdevoz,vídeo etambémapossibilidadedefalarporchat,partilharficheirosepartilharecrã. Sendo uma tecnologia relativamente recente, o seu uso tem vindo a crescer exponencial- mente, tanto a nível de soluções implementadas, como também a nível de compatibilidade de web browsers. Assim, a WebRTC torna-se uma tecnologia em forte crescimento e evolutiva, onde poderão surgir cada vez mais soluções de serviços Over-The-Top e os Operadores de Tele- comunicaçõespoderãoinvestir,criandoassuasprópriassoluçõeseprovocandoumforteimpacto aoníveldeofertadeserviços. Atendento a que ainda não está definida uma implementação normalizada para a comuni- cação entre endpoints WebRTC, nesta dissertação apresenta-se o resultado do estudo efetuado à tecnologiaWebRTC,nosentidodeidentificarassuaspotencialidadeseoimpactoqueestapoderá ter no mundo das telecomunicações.Apresenta-se tambem a framework desenvolvida com o ob- jetivodetornarmaisfácilacriaçãoeimplementaçãodeserviçosWebRTC,queservirácomouma soluçãodecomunicaçãoentreváriosclientes. Como prova de conceito, foi desenvolvida uma aplicação cliente, com a implementação de alguns serviços alvo. Para além dos testes de funcionamento dos serviços, foram realizadas análises de desempenho à utilização de CPU e de memória, no que diz respeito à tecnologia WebRTC. vii viii
Description: