ResumoPerspectivas atuais para a Internet das Coisas (IoT, do inglês, Internet of Things) indicam que, dentro de alguns anos, uma rede global de objetos irá conectar dezenas de milhares de dispositivos através da Internet. A maioria deles conterá sensores que geram fluxos de dados constantemente e é comum que usuários precisem processar esses dados antes de armazenar os valores finais. No entanto, com o crescimento progressivo da IoT, esta estratégia precisa ser reavaliada, já que transmitir um imenso volume de informações pela rede será muito custoso. Uma maneira de atender a estes futuros requisitos é trazer a computação para onde a informação já está. Com essa premissa, surgiu um paradigma chamado computação em névoa que propõe processar os dados perto de dispositivos da borda da rede. Outra característica comum dentre o grande número de dispositivos IoT será que seus recursos (ex.: energia, memória e processamento) serão limitados. O Instituto Nacional de Padrões e Tecnologia dos EUA chama a atenção para este tipo de dispositivo dentro do contexto da computação em névoa, nomeando-os nós de neblina, pois são nós de névoa leves. Contudo, eles caracterizam estes nós como mais especializados, dedicados e geralmente compartilhando a mesma localidade que os dispositivos finais inteligentes a quem eles atendem. Em nosso trabalho, nós propomos uma abordagem diferente, onde estes dispositivos limitados estão integrados com sensores e são capazes de executar código de propósito geral, podendo assim executar códigos personalizados enviados pelo usuário. A análise desta proposta é dividida em duas partes. Primeiro, nós desenvolvemos uma plataforma chamada LibMiletusCOISA (LMC), que permite que usuários executem seus códigos em dispositivos limitados e a comparamos com o arcabouço Apache Edgent. O desempenho do LMC foi melhor que o do Edgent quando ambos foram executados no mesmo dispositivo e ele possibilitou a execução de código em dispositivos limitados que eram muito restritos para executar a outra ferramenta. Depois, criamos dois modelos onde o usuário escolhe uma certa métrica de custo (ex.: número de instruções, tempo de execução ou consumo de energia) e a emprega para decidir onde o seu código deve ser executado. Um deles é um modelo matemático que usa uma equação linear para auxiliar o usuário a dividir o seu problema em um conjunto de variáveis e então determinar os custos de realizar a sua computação usando a nuvem e a névoa. O outro é um modelo visual que permite que o usuário conclua facilmente qual é a abordagem mais vantajosa em um cenário específico. Nós usamos estes modelos para identificar situações onde a abordagem escolhida é executar o código no dispositivo que coletou os dados e também simulamos cenários futuros onde mudanças na tecnologia podem impactar a decisão do usuário.