Apresentacao dissertacao

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

Transcript of Apresentacao dissertacao

Page 1: Apresentacao dissertacao

Uma proposta de arquitetura auto-adaptativa utilizando Middleware

reflexivo e Workflow

João Henrique VictorinoInstituto de Pesquisas Tecnológicas do

Estado de São Paulo - IPT

Page 2: Apresentacao dissertacao

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

Page 3: Apresentacao dissertacao

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)

Page 4: Apresentacao dissertacao

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

Page 5: Apresentacao dissertacao

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

Page 6: Apresentacao dissertacao

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

Page 7: Apresentacao dissertacao

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

Page 8: Apresentacao dissertacao

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)

Page 9: Apresentacao dissertacao

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)

Page 10: Apresentacao dissertacao

Middleware reflexivo

Middleware Reflexivo é a união das habilidadesda computação distribuída e a capacidade dereconfiguração, em tempo de execução, que a

reflexão proporciona (Garcia, et al., 2011)

Page 11: Apresentacao dissertacao

Middleware reflexivo

Modelo técnico da computação reflexivaFonte: (Huang, et al., 2004)

Page 12: Apresentacao dissertacao

Autonomous x Autonomic

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

• Autonomic: Autonomous

* Fonte: dictionary.com

Page 13: Apresentacao dissertacao

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)

Page 14: Apresentacao dissertacao

Sistemas autônomos e computação autonômica

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

Page 15: Apresentacao dissertacao

Ciclo de controle do processamento

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

Page 16: Apresentacao dissertacao

Ciclo de controle do processamento

Ciclo MAPEFonte: elaborado pelo autor

Page 17: Apresentacao dissertacao

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

Page 18: Apresentacao dissertacao

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)

Page 19: Apresentacao dissertacao

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)

Page 20: Apresentacao dissertacao

Análise e decisão

IF (TempoResposta > 2 seg) THEN (Aumentar CPU em 5%)

Page 21: Apresentacao dissertacao

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)

Page 22: Apresentacao dissertacao

Reconfiguração

Tipos:• Sistêmica ou infraestrutura• Aplicacional– Parametrização– Componentização– Arquitetural

Page 23: Apresentacao dissertacao

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)

Page 24: Apresentacao dissertacao

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;

Page 25: Apresentacao dissertacao

Proposta de uma arquitetura auto-adaptativa

Page 26: Apresentacao dissertacao

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.

Page 27: Apresentacao dissertacao

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.

Page 28: Apresentacao dissertacao

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.