sistemas autonômicos - um estudo sobre problemas de design...
TRANSCRIPT
-
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?