Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica

Detalhes bibliográficos
Ano de defesa: 2021
Autor(a) principal: Neves, Felipe dos Santos lattes
Orientador(a): Linhares, Robson Ribeiro lattes
Banca de defesa: Ronszcka, Adriano Francisco lattes, Schutz, Fernando lattes, Panetto, Herve lattes, Simao, Jean Marcelo lattes, Fabro, Joao Alberto lattes
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Tecnológica Federal do Paraná
Curitiba
Programa de Pós-Graduação: Programa de Pós-Graduação em Computação Aplicada
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: http://repositorio.utfpr.edu.br/jspui/handle/1/26270
Resumo: O Paradigma Orientado a Notificações (PON) é uma nova abordagem para a construção de sistemas computacionais. O PON propõe a computação por meio de um modelo de entidades reativas desacopladas que interagem por meio de notificações pontuais, dentre as quais se divide e separa a computação facto-execucional da computação lógico-causal. Com isso é possível reduzir ou eliminar redundâncias temporais e estruturais, comuns em outros paradigmas de programação, que podem afetar o desempenho dos programas. Ainda, o desacoplamento intrínseco entre as entidades do PON facilita a construção de sistemas concorrentes e/ou distribuídos. Além disso, a estrutura orientada a regras do PON tende a facilitar o desenvolvimento por permitir programar em alto nível de abstração. O PON apresenta várias materializações em software, sendo as mais maduras tecnologicamente aquelas que se dão por meio de frameworks, desenvolvidos em diferentes linguagens de programação. Dentre estes frameworks o que apresenta o maior grau de maturidade e estabilidade é o Framework PON C++ 2.0. Entretanto, o Framework PON C++ 2.0 ainda apresenta certas limitações, como excessiva verbosidade, baixa flexibilidade de tipos e baixa flexibilidade algorítmica. Nesse contexto este trabalho propõe o desenvolvimento de um novo framework, denominado Framework PON C++ 4.0, com o objetivo de remover as limitações presentes no Framework PON C++ 2.0, bem como as imperfeições do Framework PON C++ 3.0 que envolve multithread/multicore, de forma a melhorar a usabilidade do PON e seu desempenho neste âmbito. O Framework PON C++ 4.0 é desenvolvido utilizando técnicas de programação genérica, por meio de recursos adicionados nas versões do padrão ISO C++11, C++14, C++17 e C++20, bem como aplicando o método de desenvolvimento orientado a testes. Esta dissertação de mestrado apresenta os resultados obtidos com a implementação do Framework PON C++ 4.0 por meio de um conjunto de aplicações pertinentes, tanto em ambiente single thread quanto multithread/multicore. Tais aplicações são um sistema de sensores e uma aplicação de controle automatizado de tráfego, oriundos do grupo de pesquisa, e dos algoritmos Bitonic Sort e Random Forest oriundos da literatura. Tais aplicações foram executadas e comparadas em termos de desempenho com as mesmas aplicações implementadas no Framework PON C++ 2.0, Framework PON Elixir/Erlang e também implementações no Paradigma Orientado a Objetos (POO) em linguagem de programação C++ e Paradigma Procedimental (PP) em linguagem de programação C. Como resultado destas comparações, o novo Framework PON C++ 4.0 se mostra superior ao Framework PON C++ 2.0 tanto em tempo de execução como consumo de memória nos cenários avaliados, além de apresentar balanceamento de carga comparável aos do Framework PON Elixir/Erlang em ambiente multicore. As melhorias na usabilidade são adicionalmente avaliadas e atestadas pelo feedback de desenvolvedores do PON.