FLiMSy: um middleware funcional em scala - SILVA, Luiz Artur Botelho da (2015)
Sistemas distribuídos têm sido implementados em uma grande diversidade de domínios de aplicação, tais como: Finanças e comércio, com os sistemas de comércio eletrônico para compra de produtos pela Internet; Assistência Médica, que tem como exemplo o uso de prontuários eletrônicos online e a telemedicina no apoio a diagnóstico remoto ou serviços mais avançados, tais como cirurgia remota; Educação, onde podem ser destacadas as ferramentas de ensino baseadas na Web, tais como ambientes virtuais de aprendizagem à distância; Transporte e Logística, que usam tecnologias de localização; Gestão ambiental, que utiliza tecnologia de sensores para controlar e gerenciar o ambiente natural e com isso garantir um alerta precoce de catástrofes naturais, como terremotos, inundações ou tsunamis. Apesar de sua popularidade, existem vários desafios a serem vencidos ao projetar sistemas distribuídos. Dentre eles, podemos citar a heterogeneidade e o controle de concorrência. Alguns desses desafios podem ser solucionados usando-se um middleware, que é um software de conectividade que encapsula um conjunto de serviços e que reside entre a aplicação e o sistema operacional. Os sistemas de middleware permitem ainda que aplicações distintas se comuniquem abstraindo do usuário final como esse processo é realizado. O desenvolvimento de um middleware é uma atividade complexa, pois ao mesmo tempo que ele precisa esconder das aplicações distribuídas a complexidade dos mecanismos de concorrência e comunicação de baixo nível providos pelo sistema operacional, é preciso fornecer um conjunto crescente de serviços, tais como serviços de segurança e transação. Para tratar a complexidade mencionada , sistemas de middleware têm sido projetados com o uso de vários padrões de projeto especificamente definidos para a construção deste tipo de software. Além do uso destes padrões, há um esforço crescente para a adoção de novos paradigmas de programação no desenvolvimento de sistemas de middleware, em particular o paradigma funcional. Isso porque esses paradigmas oferecem nativamente recursos que lidam melhor com paralelismo e concorrência do que a maioria dos paradigmas presentes em linguagens de programação convencionais. Neste contexto, o objetivo deste trabalho é projetar e implementar um middleware, chamado FLiMSy, usando a linguagem de programação funcional Scala. FLiMSy foi projetado utilizando os padrões de projeto de middleware conhecidos como Remoting Patterns. Para avaliar a implementação proposta, foi realizado um experimento com o objetivo de medir o tempo de reposta do FLiMSy e também analisar as facilidades de se usar os recursos puramente funcionais de Scala no desenvolvimento de um middleware orientado a objetos.