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)
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)
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;
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.