Padrões-06 - Padrões Arquiteturais - Microkernel

3,414 views

Published on

Padrões Arquiteturais. Sistemas Adaptáveis. Microkernel.

Published in: Technology
3 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
3,414
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
122
Comments
3
Likes
2
Embeds 0
No embeds

No notes for slide

Padrões-06 - Padrões Arquiteturais - Microkernel

  1. 1. Padrões Arquiteturais Sistemas Adaptáveis Microkernel
  2. 2. Sistemas Adaptáveis •  Sistemas evoluem: novas funcionalidades são adicionadas e serviços existentes atualizados •  Projetar sistemas para mudanças é importante, não só para que ele suporte suas próprias modificações, mas também: –  Novas versões de S.O.s, plataformas de interfaces, componentes de terceiros, bibliotecas –  Novos padrões de plataforma de HW –  Atualizações de requisitos –  Customização 2 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  3. 3. Sistemas Adaptáveis •  Padrão Microkernel: –  Aplica-se a sistemas que devem ser aptos a se adaptarem a novos requisitos –  Separa as funções principais das funcionalidades estendidas •  Padrão Reflexão: –  Mecanismo para mudança dinâmica da estrutura e do comportamento do sistema –  Suporta modificação de aspectos fundamentais –  Meta Nível versus Nível Base 3 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  4. 4. Microkernel •  Aplica-se a sistemas de software que devem ser aptos a se adaptarem a alterações nos requisitos do sistema •  Separa a funcionalidade central do sistema das partes específicas do usuário e da funcionalidade estendida •  Serve também como um conector para ligar estas extensões e coordenar suas colaborações 4 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  5. 5. Exemplo 5 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  6. 6. Contexto •  O desenvolvimento de várias aplicações que usam interfaces de programação similares que residem sobre uma mesma funcionalidade núcleo 6 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  7. 7. Problema •  Sistemas que tem “vida longa”, devem sobreviver a emersão de novas tecnologias e à mudanças das antigas –  S.O.s e GUIs •  Aspectos que devem ser levados em consideração no desenvolvimento da plataforma da aplicação: –  Deve lidar com a evolução contínua de HW e SW –  Deve ser portável, extensível e adaptável para permitir a fácil integração de tecnologias emergentes 7 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  8. 8. Problema •  O sucesso desta plataforma de aplicação depende da capacidade dela de rodar aplicações escritas para padrões existentes –  Capacidade de emular outras plataformas de aplicação •  O núcleo funcional da plataforma de aplicação deve ser separado em: –  Um componente com quantidade de memória mínima –  Serviços que consumam menor processamento possível 8 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  9. 9. Solução •  Encapsular os serviços fundamentais em no componente microkernel – Deve possibilitar outras componentes comunicarem entre si – Manter recursos do sistema – Prover interfaces de acesso •  Demais funcionalidades devem ser alocadas em Servidores Internos 9 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  10. 10. Solução •  Servidores Externos – implementam suas próprias visões do microkernel (via interfaces) – Representa uma outra plataforma de aplicação •  Clientes – comunicam-se como os servidores externos usando as facilidades de comunicação providas pelo microkernel 10 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  11. 11. Estrutura - Microkernel •  Implementa os serviços básicos, como facilidades de comunicação, tratamento de recursos •  Expõe interfaces para que os demais componentes usem seus serviços •  Esconde dependências específicas do sistema, como partes dependente de HW •  Implementa serviços atômicos (mecanismos) sobre os quais funcionalidades mais complexas são construídas (políticas) 11 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  12. 12. Estrutura – Servidor Interno (Subsistema) •  Estende a funcionalidade do microkernel •  Microkernel invoca sua funcionalidade via requisições de serviço – Podem encapsular algumas dependências do sistema (p. ex., drivers de placas gráficas específicas) •  São acessíveis apenas pelo microkernel (que os ativa ou carrega somente quando necessário) 12 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  13. 13. Estrutura – Servidor Externo (Personalidade) •  Usa o microkernel para implementar sua própria visão (camada de abstração) do domínio da aplicação •  Também expõem suas funcionalidades exportando interfaces •  Rodam em processos separados •  Recebem req. de serviços das aplicações clientes (via facilidades de comunicação) •  Executam o serviço apropriado •  Retornam resultado a seus clientes 13 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  14. 14. Estrutura - Cliente •  Associado a exatamente um servidor externo •  Clientes podem necessitar acessar as interfaces de seus servidores diretamente – Problema: clientes teriam o código para comunicação com o servidor externo “hard- coded”. Este acoplamento traz desvantagens: •  Não suporta bem alterações 14 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  15. 15. Estrutura – Adaptadores (Emuladores) •  Interfaces entre os clientes e os S.Ext. para protegê-los de dependências diretas –  Isto é, acesso de forma portável •  São parte do espaço de endereçamento dos clientes •  Se o servidor externo implementa uma plataforma de aplicação existente, o adaptador correspondente imita a API da plataforma. •  Responsável por encaminhar as requisições (usa serviço do microkernel) 15 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  16. 16. Estrutura 16 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  17. 17. Dinâmica – Cenário 1 Cliente chama serviço de seu S.E. 17 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  18. 18. Dinâmica – Cenário 2 Arquitetura Microkernel 18 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  19. 19. Implementação 1.  Analise o domínio da aplicação –  Funcionalidade núcleo necessária para implementar servidores externos 2.  Analise os servidores externos –  “Políticas” que serão providas 3.  Categorize os serviços –  Sempre que possível, agrupe as funcionalidades em categorias semânticamente independentes 19 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  20. 20. Implementação 4.  Particione as categorias –  Microkernel versus servidores internos 5.  Encontre um conjunto de operações e abstrações completo e consistente para cada categoria 6.  Determinar estratégias para transmissão e recuperação de requisições 7.  Estruture o componente microkernel –  Considere o uso do Padrão de Camadas 20 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  21. 21. Implementação 8.  Especificar as interfaces de programação do microkernel 9.  Criar e manter mapeamento entre recursos e handles 10. Projetar e implementar Servidores Internos –  Processos separados ou bibliotecas 11. Implemente os Servidores Externos 21 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  22. 22. Implementação 12. Implemente os adaptadores 13. Desenvolva as aplicações cliente ou use as existentes 22 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  23. 23. Benefícios •  Portabilidade –  Na maioria dos casos, não se precisa portar os servidores externos ou clientes se portarmos o Microkernel para um novo ambiente –  Mesmo a migração do microkernel demanda apenas modificações nas partes dependentes de HW •  Flexibilidade e Extensibilidade –  Mais “políticas” versus mais “habilidades” •  Separação de “políticas” e “mecanismos” 23 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  24. 24. Desvantagens •  Desempenho •  Complexidade do projeto e implementação 24 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann

×