22
Laboratory for Advanced Collaboration LAC Sistemas Autonômicos - Um estudo sobre problemas de design que podem afetar a capacidade de reconfiguração dinâmica Rafael Oliveira Vasconcelos

Sistemas Autonômicos - Um estudo sobre problemas de design ...inf2921/2013_2/docs/works/final/Work_Rafael.pdf · Laboratory for Advanced Collaboration LAC Sistemas Autonômicos -

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Laboratory for Advanced Collaboration

    LAC

    Sistemas Autonômicos - Um estudo

    sobre problemas de design que podem

    afetar a capacidade de reconfiguração

    dinâmica

    Rafael Oliveira Vasconcelos

  • 2

    Agenda

    Introdução

    Proposta de Trabalho

    Avaliação

    Conclusão

  • 3

    Motivação

    Crescimento dos sistemas

    Complexidade

    Heterogeneidade

    Custo

    Monitoramento

    Administradores

    Sistemas autonômicos

    Desafios

    Coleta, agregação, inferência, tomada de decisão, ...

    Control theory, adaptive algorithms,fault-tolerant computing, distributed and real-time systems,

    artificial intelligence, ... [1]

    Boas práticas, metodologias, padrões e arquiteturas [2] [3]

    [1] H. Müller, L. O’Brien, M. Klein, and B. Wood, “Autonomic computing.” Technical Note CMU/SEI-2006-TN-006, Software Engineering Institute, Carnegie Mellon University, 2006.

    [2] Y. Maurel, P. Lalanda, and A. Diaconescu, “Towards a Service-Oriented Component Model for Autonomic Management,” in Proceedings of the 2011 IEEE International Conference on Services Computing, 2011, pp. 544–551.

    [3] P. Lalanda, J. A. McCann, and A. Diaconescu, Autonomic Computing: Principles, Design and Implementation. Springer Publishing Company, Incorporated, 2013.

  • 4

    Proposta de Trabalho

  • 5

    Objetivo

    Estudar de forma exploratória sistemas autonômicos para

    identificar possíveis problemas de design que afetam a

    capacidade de reconfiguração dinâmica de tais sistemas

  • 6

    Questões de Pesquisa

    Sistemas Autonômicos possuem problemas de design que

    afetam sua capacidade de reconfiguração dinâmica?

    Quais são os problemas encontrados?

    A solução dos problemas pode melhorar a capacidade de

    reconfiguração de tais sistemas?

  • 7

    Hipótese

    H1 – Problemas de design afetam a capacidade de

    reconfiguração do sistema

  • 8

    Método Empírico

    Método empírico

    Estudo exploratório

    Revisão bibliográfica

  • 9

    Diretrizes para Reconfiguração

    Escolha baseada em outros estudos

    Taxonomia

    Aspectos de reconfiguração dinâmica

    Boas práticas e anomalias de código no desenvolvimento de sistemas

    reconfiguráveis

    Diretrizes foram separadas

    Características dos sistemas

    Métricas e boas práticas encontradas na análise do código

  • 10

    Características Avaliadas

    Reconfiguração

    Paramétrica ou estrutural

    Composição do código

    Dinâmica ou estática [em tempo de compilação ou implantação]

    Manutenção de estado

    Sim ou não

    Distribuição da reconfiguração

    Distribuída ou centralizada

    Transparência da reconfiguração

    Transparente, aplicação ciente ou dependente da aplicação

    Gerenciamento de reconfiguração

    Sim ou não

    Gerenciamento de versões

    Suporte dinâmica, suporte estático ou sem suporte

  • 11

    Métricas, Anomalias e Boas

    Práticas Boas práticas

    Separação entre lógica da aplicação e lógica de adaptação

    Programação orientada a interface

    Uso do padrão factory

    Uso do padrão builder

    Uso de um padrão para salvar estado

    Métricas e anomalias

    Linhas de código

    God class

    Método longo

    Acoplamento aferente e eferente

    Feature envy

    Código duplicado

    Interface ambígua

    Conector envy

    Scattered parasitic functionality

    Shotgun surgery

    Divergent change

  • 12

    Sistemas Avaliados

    Adapta [1]

    Middleware para o desenvolvimento de aplicações adaptativas

    Baseado em trabalhos anteriores [2] [3]

    Foi utilizado para criar a aplicação AutoGrid [4]

    Serviços de monitoramento e notificação

    Define uma linguagem de reconfiguração

    ~9KLOC

    [1] M. A. S. Sallem and F. J. da S. e Silva, “Adapta: um arcabouço para o desenvolvimento de aplicações distribuídas adaptativas,” Dissertaçao de Mestrado,

    Programa de Pós-Graduaçao em Engenharia de Eletricidade, Universidade Federal do Maranhão, 2008.

    [2] F. J. da S. e Silva, “Adaptação Dinâmica de Sistemas Distribuídos,” PhD thesis, Instituto de Matemática e Estatística da Universidade de São Paulo, 2003.

    [3] F. J. da S. e Silva, F. Kon, J. Yoder, and R. Johnson, “A Pattern Language for Adaptive Distributed Systems,” in SugarLoaf PLoP 2005, 2005.

    [4]M. A. S. Sallem, S. A. de Sousa, and F. J. da S. e Silva, “AutoGrid: Towards an Autonomic Grid Middleware,” in 16th IEEE International Workshops on

    Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE 2007), 2007, pp. 223–228.

  • 13

    Sistemas Avaliados

    MAPE-SDDL (Scalable Data Distribution Layer) [1]

    Inspirado pelo MAPE-K

    Middleware para construção de sistemas autonômicos

    Suporta monitoramento, planejamento e execução das reconfigurações

    Utilizado no middleware SDDL [2] [3]

    ~4KLOC

    [1] R. O. Vasconcelos, M. Endler, B. de T. P. Gomes, and F. J. da S. e Silva, “Towards Autonomous Load Balancing for Mobile Data Stream Processing and Communication Middleware Based on Data Distribution Service,” in ICAS 2013 : The Ninth International Conference on Autonomic and Autonomous Systems, 2013, pp. 7–13.[2] L. David, R. Vasconcelos, L. Alves, R. André, and M. Endler, “A DDS-based middleware for scalable tracking, communication and collaboration of mobile nodes,” Journal of Internet Services and Applications, vol. 4, no. 1, p. 16, 2013.[3] L. David, R. Vasconcelos, L. Alves, R. Andre, G. Baptista, and M. Endler, “A Communication Middleware for ScalableReal-Time Mobile Collaboration,” in 2012 IEEE 21st International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2012, pp. 54–59.

  • 14

    Sistemas Avaliados

    DPSLB (Data Processing Slice Load Balancing) [1]

    Gerencia descoberta e balanceamento de carga entre nós de processamento

    Apps de processamento de fluxo de dados

    MAPE-K distribuído

    Monitoramento e reconfiguração dos nós

    ~5KLOC

    [1] R. O. Vasconcelos and M. Endler, “A Dynamic Load Balancing Mechanism for Data Stream Processing on DDS Systems,” M.Sc Thesis, Departamento de Informática, PUC-Rio - Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2013.

  • 15

    Coleta e Análise dos Dados

    Atividades

    Detecção de anomalias de código

    Semiautomática

    CodePro, Jdeodorant, SonarQube

    Classificação quanto a capacidade de reconfiguração

    Manual

    Inspeção do código e leitura dos trabalhos

    Uso de boas práticas

    Manual

    Inspeção do código

  • 16

    Avaliação

  • 17

    Avaliação

    Características dos trabalhos avaliados

    Características Adapta DPSLB MAPE-SDDL

    Reconfiguração Estrutural Paramétrica Paramétrica

    Composição do código Dinâmica Estática (em tempo de

    implantação)

    Estática (em tempo de

    compilação)

    Manutenção de estado Sim Sim Não

    Distribuição da

    reconfiguração

    Distribuída Distribuída Distribuída

    Transparência da

    reconfiguração

    Aplicação ciente Transparente Aplicação ciente

    Gerenciamento de

    reconfiguração

    Sim Sim Não

    Gerenciamento de versões Sem suporte Sem suporte Sem suporte

  • 18

    Avaliação

    Resultado das métricas e uso das boas práticas

    Métrica/Indicador Adapta DPSLB MAPE-SDDL

    Acoplamento aferente 65 10 48

    Acoplamento eferente 197 17 89

    Linhas de código 9,692 5,221 4,012

    Código duplicado 905 10 218

    Método longo 23 0 1

    God Class 31 8 12

    Feature envy 15 3 9

    Interface ambígua 7 1 0

    Separação entre Lógica e

    adaptaçãoSim Sim Não

    Programação orientada a

    interface

    Sim, trechos de código

    adaptáveisNão Não

    Uso do padrão factory Não Não Não

    Uso do padrão builder Não Não Não

    Padrão para salvar estado Não Não Não

  • 19

    Conclusão

  • 20

    Conclusão

    Dificuldade no planejamento e execução do estudo

    Poucos trabalhos semelhantes

    Tarefa desafiadora

    Levantamento das diretrizes e métricas

    Maioria dos estudos preocupados com modularidade, manutenibilidade, ...

    Primeira tentativa na avaliação de problemas de design que podem

    afetar a capacidade de reconfiguração

    Estudo criterioso

    Métricas, boas práticas e anti-padrões

    Acesso a mais sistemas

    Avaliação mais precisa

  • 21

    Conclusão

    Resultados preliminares

    Crescimento no estudo desenvolvimento e uso de sistemas

    dinamicamente reconfiguráveis

    Poderá ser importante avaliar também aspectos de reconfiguração dinâmica, não

    apenas os tradicionais como modularidade e manutenibilidade, por exemplo

  • 22

    Obrigado!

    Dúvidas ou sugestões?