2 research outputs found

    Asynchronous Distributed Execution of Fixpoint-Based Computational Fields

    Get PDF
    Coordination is essential for dynamic distributed systems whose components exhibit interactive and autonomous behaviors. Spatially distributed, locally interacting, propagating computational fields are particularly appealing for allowing components to join and leave with little or no overhead. Computational fields are a key ingredient of aggregate programming, a promising software engineering methodology particularly relevant for the Internet of Things. In our approach, space topology is represented by a fixed graph-shaped field, namely a network with attributes on both nodes and arcs, where arcs represent interaction capabilities between nodes. We propose a SMuC calculus where mu-calculus- like modal formulas represent how the values stored in neighbor nodes should be combined to update the present node. Fixpoint operations can be understood globally as recursive definitions, or locally as asynchronous converging propagation processes. We present a distributed implementation of our calculus. The translation is first done mapping SMuC programs into normal form, purely iterative programs and then into distributed programs. Some key results are presented that show convergence of fixpoint computations under fair asynchrony and under reinitialization of nodes. The first result allows nodes to proceed at different speeds, while the second one provides robustness against certain kinds of failure. We illustrate our approach with a case study based on a disaster recovery scenario, implemented in a prototype simulator that we use to evaluate the performance of a recovery strategy

    Gestão de micro-serviços na Cloud e Edge

    Get PDF
    O aumento do número de dispositivos móveis nos últimos anos tem elevado o número de pedidos realizados aos serviços de backend da cloud, bem como a quantidade de dados produzida. Este facto tem levado à utilização de novas arquiteturas no desenvolvimento dos sistemas e à necessidade de novas estratégias para garantir a qualidade dos serviços. A arquitetura de micro-serviços, na linha de “Service Oriented Architecture and Computing” (SOA/SOC), permite o desenvolvimento independente de pequenos serviços, cada um implementando uma dada funcionalidade, com uma interface bem definida e acessível através da rede. Serviços com funcionalidades mais complexas resultam da comunicação entre os micro-serviços, em que cada um recorre aos serviços de outros. Esta arquitetura permite o deployment independente de cada serviço com configuração individual dos recursos (ex.: CPU, RAM), bem como o seu escalonamento independente (múltiplas instâncias por serviço). O tamanho reduzido de cada serviço permite também o seu deployment em arquiteturas heterogéneas de computação, como a cloud e a edge. A heterogeneidade dos locais de deployment considerados, ou seja, a cloud e a edge, torna complexa a gestão dos micro-serviços, em particular a migração/replicação dos serviços. É necessário decidir quando se processa a migração/replicação de um dado serviço, e para que local, sendo depois também necessário decidir como se processa essa migração/ replicação. Ao existirem vários micro-serviços, em que pode haver dependências entre eles, a sua gestão é mais complexa, bem como a decisão sobre as suas dependências. A solução consiste num protótipo aplicacional com mecanismos automáticos de migração e replicação de micro-serviços na cloud e na edge, que permite uma diminuição no tempo de acesso a esses serviços, resultando num melhor desempenho aplicacional. Estes mecanismos possibilitam o deployment de micro-serviços automaticamente na cloud e edge consoante certas regras e métricas configuráveis (ex.: latência, número de acessos). A avaliação realizada permitiu comprovar que a utilização da cloud e da edge para a execução dos serviços permitiu uma diminuição dos tempos de acessos aos mesmos, em comparação à utilização apenas da cloud
    corecore