SlideShare une entreprise Scribd logo
1  sur  28
Uma proposta de arquitetura auto-
 adaptativa utilizando Middleware
       reflexivo e Workflow

        João Henrique Victorino
   Instituto de Pesquisas Tecnológicas do
          Estado de São Paulo - IPT
Estrutura de apresentação
•   Motivação
•   Objetivo
•   Resultados esperados e contribuições
•   Método de pesquisa
•   Fundamentos conceituais
•   Proposta de uma arquitetura auto-adaptativa
•   Referências
•   Dúvidas
Motivação

• Software mais complexo e que exigem maior
  conhecimento dos seus administradores
  (Garcia, et al., 2011)
• Mão de obra especializada escassa e cara
  (Garcia, et al., 2011)
• Falhas por erro humano (Neti & Müller, 2007)
Objetivo
•   Arquitetura autonômica
•   Reagir ou até antecipar situações desfavoráveis
•   Não ser invasiva aos componentes de negócio
•   Implementar a auto-reconfiguração através da
    flexibilidade do container de inversão de
    dependência, da monitoração facilitada pela
    programação orientada a aspectos e da analise e
    tomada de decisão suportada pelos workflows
Resultados esperados e contribuições


• Obtenção de uma arquitetura autonômica
• Diminuição da necessidade de intervenção
  humana e por consequência os custos e erros
  advindos deste tipo de intervenção
• Durante as pesquisas podemos constatar que
  existem poucas trabalhos com este intuito
Método de pesquisa

• Pesquisa bibliográfica
• Proposta conceitual da arquitetura
• Implementação em estudo de caso do
  ambiente financeiro
• Análise dos resultados obtidos
Fundamentos conceituais
•   Arquitetura de software
•   Requisitos não-funcionais
•   Middleware reflexivo
•   Sistemas autônomos e computação
    autonômica
    – Ciclo de controle do processamento
    – Monitoração
    – Análise e decisão
    – Reconfiguração
Arquitetura de software

• Uma estrutura, decomposta em partes, na
  relação entre elas e nas propriedades visíveis
  externamente que essas partes apresentam
  (Bass, et al., 2003)
• Os requisitos funcionais e não funcionais são
  as propriedades que determinam a
  arquitetura de um sistema (Bass, et al., 2003)
Requisitos não-funcionais
• RNF e RF são definidores e validadores da
  arquitetura de software (Bass, et al., 2003)
• Decisões arquiteturais impactam diretamente
  na     autonomia do software (Fuad &
  Oudshoorn, 2007)
• Software autônomo necessita de alguns RNFs
  que outros softwares não necessitam, pois são
  mais dinâmicos (Neti & Müller, 2007)
Middleware reflexivo


Middleware Reflexivo é a união das habilidades
 da computação distribuída e a capacidade de
reconfiguração, em tempo de execução, que a
  reflexão proporciona (Garcia, et al., 2011)
Middleware reflexivo




  Modelo técnico da computação reflexiva
       Fonte: (Huang, et al., 2004)
Autonomous x Autonomic


• Autonomous: having autonomy; not subject to
  control from outside; independent
• Autonomic: Autonomous


 * Fonte: dictionary.com
Sistemas autônomos e computação
             autonômica

• Sistemas que adaptam-se conforme a
  necessidade utilizando um processo para isso,
  e contando com pouca ou nenhuma
  intervenção humana (Ertle, et al., 2010) e
  (Huang, et al., 2004)
• Software autônomo não é algo novo na área
  da robótica (Kramer & Magee, 2007)
Sistemas autônomos e computação
           autonômica




       Modelo técnico da computação autonômica
              Fonte: (Huang, et al., 2004)
Ciclo de controle do processamento




       Ciclo de controle em sistemas autonômicos
                Fonte: (Brun, et al., 2009)
Ciclo de controle do processamento




                  Ciclo MAPE
          Fonte: elaborado pelo autor
Monitoração
• Qual informação é mais relevante para o
  comportamento que deseja-se obter do
  software? (Vassev & Hinchey, 2010)
• A monitoração deve ser simples e rápida para
  que não afete a modelagem e o desempenho
  do software, também deve prover informação
  atualizada (Zheng, 2010)
• Requisito transversal
Monitoração

AOP (Aspect Oriented Programming) é uma
técnica capaz se separar os requisitos
transversais dos outros módulos, de modo
que o código fique modularizado e permite
que cada funcionalidade fique concentrada
onde deve e não espalhada pelo software (Ju
& Bo, 2007)
Análise e decisão
• Para alguns softwares a maior dificuldade é
  saber qual é o estado desejado, e caso este
  estado seja claro, saber quais modificações na
  arquitetura são necessárias para que o
  software deixe do estado atual e para o
  estado desejado (Kramer & Magee, 2007)
• Este tipo de controle pode ser implementado
  por regras (Vassev & Hinchey, 2010)
Análise e decisão



IF (TempoResposta > 2 seg) THEN (Aumentar CPU em 5%)
Análise e decisão
Workflow:
• É uma DSL (Domain Specific Language) própria
  para regras e extensível
• Pode ser modelada por uma ferramenta visual
• É uma representação compreensível ao homem
  e a máquina

  Fonte: (Corradini, et al., 2004)
Reconfiguração

Tipos:
• Sistêmica ou infraestrutura
• Aplicacional
  – Parametrização
  – Componentização
  – Arquitetural
Reconfiguração
Componentização:
• Implementação passiva de um conjunto de
  funcionalidades com uma interface específica,
  e que passa a ter algum tipo atividade quando
  um processo o executa, sendo um processo
  uma representação dos recursos físicos de
  CPU (Central Process Unit) e memória (Bellur
  & Narendra, 2006)
Reconfiguração


• Container de injeção de dependência
  – Controle a execução dos componentes;
  – Mapeamento dos componentes;
  – Mantém o estado da aplicação consistente pois
    varia entre diferentes tipos de árvores de objetos;
Proposta de uma arquitetura auto-adaptativa
Referências
•   Ertle, P., Gamrad, D., Voos, H. & Softker, D., 2010. Action Planning for Autonomous Systems with respect to Safety
    Aspects. pp. 2465-2472.
•   Fowler, M., 2004. Inversion of Control Containers and the Dependency Injection pattern. [Online]
    Available at: http://martinfowler.com/articles/injection.html
    [Acesso em 2012 abril 29].
•   Fowler, M., 2010. Domain-Specific Languages. s.l.:Addison-Wesley Professional.
•   Fuad, M. M. & Oudshoorn, M. J., 2007. System Architecture of an Autonomic Element. Fourth IEEE International
    Workshop on Engineering of Autonomic and Autonomous Systems.
•   Garcia, I. et al., 2011. A reflective framework for mediation applications. ARM, Dezembro, pp. 22-28.
•   Huang, G. et al., 2004. Towards Autonomic Computing Middleware via Reflection. Proceedings of the 28th Annual
    International Computer Software and Applications Conference, pp. 1-6.
•   Ju, K. & Bo, J., 2007. Applying IoC and AOP to the Architecture of Reflective Middleware. 2007 IFIP International
    Conference on Network and Parallel Computing - Workshops, pp. 903-908.
•   Khalid, A., Haye, M. A., Khan, M. J. & Shamail, S., 2009. Survey of Frameworks, Architectures and Techniques in
    Autonomic Computing. Fifth International Conference on Autonomic and Autonomous Systems, pp. 220-225.
•   Kramer, J. & Magee, J., 2007. Self-Managed Systems: an Architectural Challenge. Future of Software
    Engineering.
•   Mahmoud, Q. H., 2004. Middleware for Communications. 1 Edição ed. s.l.:Wiley.
•   Neti, S. & Müller, H. A., 2007. Quality Criteria and an Analysis Framework for Self-Healing Systems.
    International Workshop on Software Engineering for Adaptive and Self-Managing Systems.
Referências
•   Oreizy, P. et al., 1999. An Architecture-Based Approach to Self-Adaptive Software. IEEE INTELLIGENT SYSTEMS, pp.
    54-62.
•   Palma, N. D., Popov, K., Parlavantzas, N. & Brand, P., 2009. Tools for architecture based autonomic systems. Fifth
    International Conference on Autonomic and Autonomous Systems, pp. 313-320.
•   Ponnalagu, K., Narendra, N. C., Krishnamurthy, J. & Ramkumar, R., 2007. Aspect-oriented Approach for Non-
    functional Adaptation of Composite Web Services. IEEE Congress on Services.
•   Pressman, R. S., 2001. Software engineering: a practitioner’s approach. 5 edição ed. Nova Iorque, EUA: McGraw-
    Hill.
•   Stathis, K., 2010. Autonomic computing with self-governed super-agents. Fourth IEEE International Conference on
    Self-Adaptive and Self-Organizing Systems Workshop, pp. 76-79.
•   Vassev, E. & Hinchey, M., 2010. The Challenge of Developing Autonomic Systems. IEEE Computer Society,
    Dezembro, pp. 93-96.
•   White, S. R. et al., 2004. An Architectural Approach to Autonomic Computing. Proceedings of the International
    Conference on Autonomic Computing.
•   Wu, Y., Wu, Y., Peng, X. & Zhao, W., 2010. Implementing Self-Adaptive Software Architecture by Reflective
    Component Model and Dynamic AOP: A Case Study. 10th International Conference on Quality Software, pp. 288-
    293.
•   Zhang, Y., Qu, W. & Liu, A., 2006. Adaptive Self-Configuration Architecture for J2EE-based Middleware Systems.
    Proceedings of the 39th Hawaii International Conference on System Sciences.
•   Zheng, Z., 2010. A Control method of System Self-Management for Distributed Systems. Second International
    Conference on Networks Security, Wireless Communications and Trusted Computing, pp. 321-326.
Referências
•   Bass, L., Clements, P. & Kazman, R., 2003. Software Architecture in Practice. Second Edition ed. Boston - USA:
    Addison Wesley.
•   Bellur, U. & Narendra, N. C., 2006. Towards a Programming Model and Middleware Architecture for Self-
    configuring systems.
•   Brat, G. et al., 2006. A Robust Compositional Architecture for Autonomous Systems. IEEEAC.
•   Brun, Y. et al., 2009. Engineering Self-Adaptive Systems through Feedback Loops. Self-Adaptive Systems, pp. 48-70.
•   Capilla, R. & Bosch, J., 2011. The Promise and Challenge of Runtime Variability. IEEE Computer Society, Dezembro,
    pp. 93-95.
•   Caprarescu, B. A. & Petcu, D., 2009. A Self-Organizing Feedback Loop for Autonomic Computing. Computation
    World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns, pp. 126-131.
•   Charfi, A., Dinkelaker, T. & Mezini, M., 2009. A Plug-in Architecture for Self-Adaptive Web Service Compositions.
    IEEE International Conference on Web Services, pp. 35-42.
•   Corradini, F., Merelli, E. & Pierantonio, A., 2004. Workflow as Composition of Domain-Specific Languages. SI.CO.M..
•   Cybenko, G., Behre, C., Gregorio-De.Souza, I. D. & Berk, V. H., 2006. Practical Autonomic Computing. Proceedings
    of the 30th Annual International Computer Software and Applications Conference.

Contenu connexe

Similaire à Apresentacao dissertacao

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREEdson Oliveira Junior
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014Luiz Agner
 
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Gerson Lobato
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - IntroduçãoSergio Crespo
 
342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdfGabrielMarchesan
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_EngineeringAula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineeringbaitolakaike
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Nécio de Lima Veras
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAna Claudia Annunciação
 
Interação Humano-Computador - História, Conceitos e Heurísticas de Nielsen
Interação Humano-Computador - História, Conceitos e Heurísticas de NielsenInteração Humano-Computador - História, Conceitos e Heurísticas de Nielsen
Interação Humano-Computador - História, Conceitos e Heurísticas de NielsenRos Galabo, PhD
 
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisFerramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisCapgemini
 

Similaire à Apresentacao dissertacao (20)

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014
O Desafio da Usabilidade - Seminário de Metodologia do IBGE 2014
 
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - Introdução
 
Analise sistemas 04
Analise sistemas 04Analise sistemas 04
Analise sistemas 04
 
342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf342336684-GSI030-Aula08-projetoImplementacao.pdf
342336684-GSI030-Aula08-projetoImplementacao.pdf
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_EngineeringAula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertido
 
Interação Humano-Computador - História, Conceitos e Heurísticas de Nielsen
Interação Humano-Computador - História, Conceitos e Heurísticas de NielsenInteração Humano-Computador - História, Conceitos e Heurísticas de Nielsen
Interação Humano-Computador - História, Conceitos e Heurísticas de Nielsen
 
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisFerramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
 

Apresentacao dissertacao

  • 1. Uma proposta de arquitetura auto- adaptativa utilizando Middleware reflexivo e Workflow João Henrique Victorino Instituto de Pesquisas Tecnológicas do Estado de São Paulo - IPT
  • 2. Estrutura de apresentação • Motivação • Objetivo • Resultados esperados e contribuições • Método de pesquisa • Fundamentos conceituais • Proposta de uma arquitetura auto-adaptativa • Referências • Dúvidas
  • 3. Motivação • Software mais complexo e que exigem maior conhecimento dos seus administradores (Garcia, et al., 2011) • Mão de obra especializada escassa e cara (Garcia, et al., 2011) • Falhas por erro humano (Neti & Müller, 2007)
  • 4. Objetivo • Arquitetura autonômica • Reagir ou até antecipar situações desfavoráveis • Não ser invasiva aos componentes de negócio • Implementar a auto-reconfiguração através da flexibilidade do container de inversão de dependência, da monitoração facilitada pela programação orientada a aspectos e da analise e tomada de decisão suportada pelos workflows
  • 5. Resultados esperados e contribuições • Obtenção de uma arquitetura autonômica • Diminuição da necessidade de intervenção humana e por consequência os custos e erros advindos deste tipo de intervenção • Durante as pesquisas podemos constatar que existem poucas trabalhos com este intuito
  • 6. Método de pesquisa • Pesquisa bibliográfica • Proposta conceitual da arquitetura • Implementação em estudo de caso do ambiente financeiro • Análise dos resultados obtidos
  • 7. Fundamentos conceituais • Arquitetura de software • Requisitos não-funcionais • Middleware reflexivo • Sistemas autônomos e computação autonômica – Ciclo de controle do processamento – Monitoração – Análise e decisão – Reconfiguração
  • 8. Arquitetura de software • Uma estrutura, decomposta em partes, na relação entre elas e nas propriedades visíveis externamente que essas partes apresentam (Bass, et al., 2003) • Os requisitos funcionais e não funcionais são as propriedades que determinam a arquitetura de um sistema (Bass, et al., 2003)
  • 9. Requisitos não-funcionais • RNF e RF são definidores e validadores da arquitetura de software (Bass, et al., 2003) • Decisões arquiteturais impactam diretamente na autonomia do software (Fuad & Oudshoorn, 2007) • Software autônomo necessita de alguns RNFs que outros softwares não necessitam, pois são mais dinâmicos (Neti & Müller, 2007)
  • 10. Middleware reflexivo Middleware Reflexivo é a união das habilidades da computação distribuída e a capacidade de reconfiguração, em tempo de execução, que a reflexão proporciona (Garcia, et al., 2011)
  • 11. Middleware reflexivo Modelo técnico da computação reflexiva Fonte: (Huang, et al., 2004)
  • 12. Autonomous x Autonomic • Autonomous: having autonomy; not subject to control from outside; independent • Autonomic: Autonomous * Fonte: dictionary.com
  • 13. Sistemas autônomos e computação autonômica • Sistemas que adaptam-se conforme a necessidade utilizando um processo para isso, e contando com pouca ou nenhuma intervenção humana (Ertle, et al., 2010) e (Huang, et al., 2004) • Software autônomo não é algo novo na área da robótica (Kramer & Magee, 2007)
  • 14. Sistemas autônomos e computação autonômica Modelo técnico da computação autonômica Fonte: (Huang, et al., 2004)
  • 15. Ciclo de controle do processamento Ciclo de controle em sistemas autonômicos Fonte: (Brun, et al., 2009)
  • 16. Ciclo de controle do processamento Ciclo MAPE Fonte: elaborado pelo autor
  • 17. Monitoração • Qual informação é mais relevante para o comportamento que deseja-se obter do software? (Vassev & Hinchey, 2010) • A monitoração deve ser simples e rápida para que não afete a modelagem e o desempenho do software, também deve prover informação atualizada (Zheng, 2010) • Requisito transversal
  • 18. Monitoração AOP (Aspect Oriented Programming) é uma técnica capaz se separar os requisitos transversais dos outros módulos, de modo que o código fique modularizado e permite que cada funcionalidade fique concentrada onde deve e não espalhada pelo software (Ju & Bo, 2007)
  • 19. Análise e decisão • Para alguns softwares a maior dificuldade é saber qual é o estado desejado, e caso este estado seja claro, saber quais modificações na arquitetura são necessárias para que o software deixe do estado atual e para o estado desejado (Kramer & Magee, 2007) • Este tipo de controle pode ser implementado por regras (Vassev & Hinchey, 2010)
  • 20. Análise e decisão IF (TempoResposta > 2 seg) THEN (Aumentar CPU em 5%)
  • 21. Análise e decisão Workflow: • É uma DSL (Domain Specific Language) própria para regras e extensível • Pode ser modelada por uma ferramenta visual • É uma representação compreensível ao homem e a máquina Fonte: (Corradini, et al., 2004)
  • 22. Reconfiguração Tipos: • Sistêmica ou infraestrutura • Aplicacional – Parametrização – Componentização – Arquitetural
  • 23. Reconfiguração Componentização: • Implementação passiva de um conjunto de funcionalidades com uma interface específica, e que passa a ter algum tipo atividade quando um processo o executa, sendo um processo uma representação dos recursos físicos de CPU (Central Process Unit) e memória (Bellur & Narendra, 2006)
  • 24. Reconfiguração • Container de injeção de dependência – Controle a execução dos componentes; – Mapeamento dos componentes; – Mantém o estado da aplicação consistente pois varia entre diferentes tipos de árvores de objetos;
  • 25. Proposta de uma arquitetura auto-adaptativa
  • 26. Referências • Ertle, P., Gamrad, D., Voos, H. & Softker, D., 2010. Action Planning for Autonomous Systems with respect to Safety Aspects. pp. 2465-2472. • Fowler, M., 2004. Inversion of Control Containers and the Dependency Injection pattern. [Online] Available at: http://martinfowler.com/articles/injection.html [Acesso em 2012 abril 29]. • Fowler, M., 2010. Domain-Specific Languages. s.l.:Addison-Wesley Professional. • Fuad, M. M. & Oudshoorn, M. J., 2007. System Architecture of an Autonomic Element. Fourth IEEE International Workshop on Engineering of Autonomic and Autonomous Systems. • Garcia, I. et al., 2011. A reflective framework for mediation applications. ARM, Dezembro, pp. 22-28. • Huang, G. et al., 2004. Towards Autonomic Computing Middleware via Reflection. Proceedings of the 28th Annual International Computer Software and Applications Conference, pp. 1-6. • Ju, K. & Bo, J., 2007. Applying IoC and AOP to the Architecture of Reflective Middleware. 2007 IFIP International Conference on Network and Parallel Computing - Workshops, pp. 903-908. • Khalid, A., Haye, M. A., Khan, M. J. & Shamail, S., 2009. Survey of Frameworks, Architectures and Techniques in Autonomic Computing. Fifth International Conference on Autonomic and Autonomous Systems, pp. 220-225. • Kramer, J. & Magee, J., 2007. Self-Managed Systems: an Architectural Challenge. Future of Software Engineering. • Mahmoud, Q. H., 2004. Middleware for Communications. 1 Edição ed. s.l.:Wiley. • Neti, S. & Müller, H. A., 2007. Quality Criteria and an Analysis Framework for Self-Healing Systems. International Workshop on Software Engineering for Adaptive and Self-Managing Systems.
  • 27. Referências • Oreizy, P. et al., 1999. An Architecture-Based Approach to Self-Adaptive Software. IEEE INTELLIGENT SYSTEMS, pp. 54-62. • Palma, N. D., Popov, K., Parlavantzas, N. & Brand, P., 2009. Tools for architecture based autonomic systems. Fifth International Conference on Autonomic and Autonomous Systems, pp. 313-320. • Ponnalagu, K., Narendra, N. C., Krishnamurthy, J. & Ramkumar, R., 2007. Aspect-oriented Approach for Non- functional Adaptation of Composite Web Services. IEEE Congress on Services. • Pressman, R. S., 2001. Software engineering: a practitioner’s approach. 5 edição ed. Nova Iorque, EUA: McGraw- Hill. • Stathis, K., 2010. Autonomic computing with self-governed super-agents. Fourth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshop, pp. 76-79. • Vassev, E. & Hinchey, M., 2010. The Challenge of Developing Autonomic Systems. IEEE Computer Society, Dezembro, pp. 93-96. • White, S. R. et al., 2004. An Architectural Approach to Autonomic Computing. Proceedings of the International Conference on Autonomic Computing. • Wu, Y., Wu, Y., Peng, X. & Zhao, W., 2010. Implementing Self-Adaptive Software Architecture by Reflective Component Model and Dynamic AOP: A Case Study. 10th International Conference on Quality Software, pp. 288- 293. • Zhang, Y., Qu, W. & Liu, A., 2006. Adaptive Self-Configuration Architecture for J2EE-based Middleware Systems. Proceedings of the 39th Hawaii International Conference on System Sciences. • Zheng, Z., 2010. A Control method of System Self-Management for Distributed Systems. Second International Conference on Networks Security, Wireless Communications and Trusted Computing, pp. 321-326.
  • 28. Referências • Bass, L., Clements, P. & Kazman, R., 2003. Software Architecture in Practice. Second Edition ed. Boston - USA: Addison Wesley. • Bellur, U. & Narendra, N. C., 2006. Towards a Programming Model and Middleware Architecture for Self- configuring systems. • Brat, G. et al., 2006. A Robust Compositional Architecture for Autonomous Systems. IEEEAC. • Brun, Y. et al., 2009. Engineering Self-Adaptive Systems through Feedback Loops. Self-Adaptive Systems, pp. 48-70. • Capilla, R. & Bosch, J., 2011. The Promise and Challenge of Runtime Variability. IEEE Computer Society, Dezembro, pp. 93-95. • Caprarescu, B. A. & Petcu, D., 2009. A Self-Organizing Feedback Loop for Autonomic Computing. Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns, pp. 126-131. • Charfi, A., Dinkelaker, T. & Mezini, M., 2009. A Plug-in Architecture for Self-Adaptive Web Service Compositions. IEEE International Conference on Web Services, pp. 35-42. • Corradini, F., Merelli, E. & Pierantonio, A., 2004. Workflow as Composition of Domain-Specific Languages. SI.CO.M.. • Cybenko, G., Behre, C., Gregorio-De.Souza, I. D. & Berk, V. H., 2006. Practical Autonomic Computing. Proceedings of the 30th Annual International Computer Software and Applications Conference.