Um algoritmo de roteamento para o Boost.Http
Data
Autores
Orientador
Título da Revista
ISSN da Revista
Título de Volume
Editor
Resumo
A linguagem C++, embora considerada difícil por alguns, por possuir funções de baixo nível, e por possuir problemas de compatibilidade nos diversos sistemas operacionais, vem sofrendo mudanças no sentido de tornar esta linguagem mais constante, com poucas modificações nos diversos sistemas operacionais, sem perder performance. Um dos grupos que tem influenciado bastante o processo de padronização da linguagem é o grupo que criou e mantem o conjunto de bibliotecas Boost. Um dos projetos que estão em discussão no Boost, é o Boost.Http, que dá suporte ao protocolo HTTP, e conta com um modelo de concorrência baseado em IO Assíncrono. O Boost.Http, no entanto, não possui suporte ao Roteamento de URLs, o que implica que o desenvolvedor Boost.Http precisa criar o mapeamento das URLs para as funções correspondentes no código. Este trabalho teve como objetivo principal prover uma camada de Roteamento para o Boost.Http, possibilitando assim que quem optar por usar esta biblioteca, possa se preocupar com outras questões e não com roteamento. Tendo desenvolvido e testado dois algoritmos de roteamento para o Boost.Http, abordou-se como segundo objetivo, a comparação do Boost.Http com outras tecnologias de desenvolvimento web, para obter uma visão geral, no que diz respeito ao desempenho, que poderia fazer com que alguém pudesse decidir usar o Boost.Http para desenvolver aplicações web. Foram desenvolvidas aplicações em CROW, PHP e Boost.Http contendo as mesmas funcionalidades e as mesmas mensagens de retorno para as Rotas que foram pré-definidas durante o processo de testes de cobertura de código. Foram feitos testes de carga usando a mesma ferramenta, nas mesmas condições de configuração de ambiente. A partir dos testes, foi possível observar que o CROW teve um resultado melhor do que o Boost.Http com roteamento. Então optou-se por testar o Boost.Http sem roteamento e observou-se que ainda assim o CROW teve um resultado melhor e que o roteamento.não comprometeu significativamente o desempenho das aplicações desenvolvidas com Boost.Http, no caso de teste considerado. As aplicações em C++, desenvolvidas com CROW e com Boost.Http, tiveram um desempenho melhor do que a aplicação desenvolvida em linguagem PHP. Os resultados sugerem que o CROW permite desenvolver aplicações de melhor performance, no entanto, não possui uma comunidade de usuários tão ampla, nem uma variedade de frameworks e tutoriais, como o PHP, o que deve ser levado em conta na tomada de decisão.