SlideShare a Scribd company logo
1 of 24
Download to read offline
Padrões Arquiteturais

       Sistemas Adaptáveis
               Microkernel
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
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
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
Exemplo




5   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
           Architecture - Buschmann
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
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
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
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
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
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
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
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
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
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
Estrutura




16   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
            Architecture - Buschmann
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
Dinâmica – Cenário 2
     Arquitetura Microkernel




18        Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                 Architecture - Buschmann
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
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
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
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
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
Desvantagens
•  Desempenho
•  Complexidade do projeto e
   implementação




24            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann

More Related Content

What's hot

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
elliando dias
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
Luís Fernando Richter
 

What's hot (20)

Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Computacao em nuvem
Computacao em nuvemComputacao em nuvem
Computacao em nuvem
 
Aula 1
Aula 1Aula 1
Aula 1
 
Fundamentos de Engenharia de Requisitos
Fundamentos de Engenharia de RequisitosFundamentos de Engenharia de Requisitos
Fundamentos de Engenharia de Requisitos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 

Viewers also liked

Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Aricelio Souza
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
Rafael França
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
Sergio Crespo
 

Viewers also liked (20)

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-01 - Introdução
Padrões-01 - IntroduçãoPadrões-01 - Introdução
Padrões-01 - Introdução
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 

Similar to Padrões-06 - Padrões Arquiteturais - Microkernel

Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de software
Thomas Kanzig
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
Wanderson Paim
 
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
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
luacal
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
JulioCesar371362
 

Similar to Padrões-06 - Padrões Arquiteturais - Microkernel (20)

Eng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. Requisitos
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de software
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
 
Programabilidade em Redes Virtualizadas
Programabilidade em Redes VirtualizadasProgramabilidade em Redes Virtualizadas
Programabilidade em Redes Virtualizadas
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computing
 
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 ...
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
Tecnologias Atuais de Redes - Aula 6 - Cloud Computing [Apostila]
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
 
Sistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosSistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos Arquitetônicos
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Aula 3
Aula 3Aula 3
Aula 3
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
 

More from Eduardo Nicola F. Zagari

More from Eduardo Nicola F. Zagari (17)

Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
ICC-01 História dos Computadores
ICC-01 História dos ComputadoresICC-01 História dos Computadores
ICC-01 História dos Computadores
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
ICC-03 Organização dos Computadores
ICC-03 Organização dos ComputadoresICC-03 Organização dos Computadores
ICC-03 Organização dos Computadores
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 
ICC-05 Álgebra Booleana
ICC-05 Álgebra BooleanaICC-05 Álgebra Booleana
ICC-05 Álgebra Booleana
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 

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

  • 1. Padrões Arquiteturais Sistemas Adaptáveis Microkernel
  • 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. 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. 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. Exemplo 5 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Estrutura 16 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 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. Dinâmica – Cenário 2 Arquitetura Microkernel 18 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 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. 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. 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. 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. 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. Desvantagens •  Desempenho •  Complexidade do projeto e implementação 24 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann