Sara Alpoim Gonçalves Licenciada em Engenharia Informática Otimização automática de aplicações web usando templates client-side Dissertação para obtenção do Grau de Mestre em Engenharia Informática Orientadores : João Costa Seco, Professor Auxiliar, FCT-UNL Hugo Lourenço, Eng. de Software, OutSystems Júri: Presidente: Prof. JoãoMouraPires Arguente: Prof. FranciscodaCunhaMartins Vogal: Prof. JoãoCostaSeco Setembro, 2014 iii Otimizaçãoautomáticadeaplicaçõeswebusandotemplatesclient-side Copyright(cid:13)c SaraAlpoimGonçalves,FaculdadedeCiênciaseTecnologia,Universidade NovadeLisboa A Faculdade de Ciências e Tecnologia e a Universidade Nova de Lisboa têm o direito, perpétuoesemlimitesgeográficos,dearquivarepublicarestadissertaçãoatravésdeex- emplares impressos reproduzidos em papel ou de forma digital, ou por qualquer outro meio conhecido ou que venha a ser inventado, e de a divulgar através de repositórios científicos e de admitir a sua cópia e distribuição com objectivos educacionais ou de in- vestigação,nãocomerciais,desdequesejadadocréditoaoautoreeditor. iv vi Agradecimentos Em primeiro lugar, quero expressar os meus agradecimentos à Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa, que me acolheu durante 5 anos, e que me fez crescer a nível profissional e pessoal. Obrigada também, a todos os colegas de curso quemeacompanharamduranteopercursoacadémico,comosquaispartilheiumespírito deequipaincrível,quememotivoueajudouaalcançarestameta. Em segundo lugar, quero agradecer aos meus orientadores: João Seco, por me guiar ao longo do ano, pelo apoio, e por todo o conhecimento que me transmitiu; ao Hugo Lourenço, pelas suas observações críticas, e pelas discussões que ajudaram a definir o caminhoparaodesenvolvimentodestetrabalho. Obrigadapormeteremproporcionado escolher um tema sobre o qual tive imenso prazer trabalhar, pois uniu todas as áreas e conceitos que me foram atraindo ao longo destes 5 anos. Quero também agradecer à OutSystemsporfinanciarumabolsaaolongododesenvolvimentodestadissertação. Aproveito ainda para agradecer às pessoas que também contribuíram para o resul- tado final desta dissertação: ao Sérgio Silva, segundo co-orientador e padrinho, pelo apoiodesdeoprimeirodiadomeupercursoacadémico,epormanteraminhamotivação sempre em alta; à Lara Luís, madrinha e colega na OutSystems, pelas conversas diárias, e por me recordar dos meus objetivos. Agradeço também ao Lúcio Ferrão, Vasco Pes- sanha, Rodrigo Coutinho, Marco Costa, João Neves, Paulo Ferreira e Rúben Gonçalves, portodasasobservaçõesquemepermitiramaperfeiçoarestadissertação. Como este trabalho foi desenvolvido na OutSystems, quero agradecer a todos os ele- mentos da equipa de R&D que me receberam da melhor forma possível, e com os quais aprendiimenso. Os meus últimos agradecimentos, mas não menos importantes, são aos meus pais, pois graças a eles cheguei até aqui. Aos meus irmãos, por terem contribuído para a pessoa que sou hoje. E por último ao João, pela amizade e amor, e pela paciência de ouvir um relatório diário das minhas preocupações e alegrias que esta dissertação me deu. vii viii Resumo O crescente poder computacional dos dispositivos móveis e a maior eficiência dos navegadores fomentam a construção de aplicações Web mais rápidas e fluídas, através da troca assíncrona de dados em vez de páginas HTML completas. A OutSystems Plat- form é um ambiente de desenvolvimento usado para a construção rápida e validada de aplicaçõesWeb,queintegranumasólinguagemaconstruçãodeinterfacesdeutilizador, lógica da aplicação e modelo de dados. O modelo normal de interação cliente-servidor daplataformaécoerentecomociclocompletodepedido-resposta,emborasejapossível implementar,deformaexplícita,aplicaçõesassíncronas. Neste trabalho apresentamos um modelo de separação, baseado em análise estática sobreadefiniçãodeumaaplicação,entreosdadosapresentadosnaspáginasgeradaspela plataforma e o código correspondente à sua estrutura e apresentação. Esta abordagem permite a geração automática e transparente de interfaces de utilizador mais rápidas e fluídas,apartirdomodelodeumaaplicaçãoOutSystems. Omodeloapresentado,emconjuntocomaanáliseestática,permiteidentificarosub- conjuntomínimodosdadosaseremtransmitidosnaredeparaaexecuçãodeumafunci- onalidadenoservidor,eisolaraexecuçãodecódigonocliente. Comoresultadodautili- zaçãodestaabordagemobtém-seumadiminuiçãomuitosignificativanatransmissãode dados,epossivelmenteumareduçãonacargadeprocessamentonoservidor,dadoquea geraçãodaspáginasWebédelegadanocliente,eestesetornaaptoparaexecutarcódigo. Estemodeloédefinidosobreumalinguagem,inspiradanadaplataformaOutSystems, apartirdaqualéimplementadoumgeradordecódigo. Nestecontexto,umalinguagem dedomínioespecíficocriaumacamadadeabstraçãoentreadefiniçãodomodelodeuma aplicaçãoeorespetivocódigogerado,tornandotransparenteacriaçãodetemplatesclient- sideeocódigoexecutadonoclienteenoservidor. Palavras-chave: Aplicações web, templates client-side, análise estática, comunicação as- síncrona ix x
Description: