SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoHelder Lopes
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAAparicio Junior
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?Liliane Machado
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01gtiprotec
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 ModelDouglas Alonso
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoVinícius de Paula
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 

La actualidad más candente (20)

Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
06 Requisitos
06 Requisitos06 Requisitos
06 Requisitos
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de Projeto
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
SQL
SQLSQL
SQL
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 

Destacado

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
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 FiltrosEduardo Nicola F. Zagari
 
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 - BrokerEduardo Nicola F. Zagari
 
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 - MVCEduardo Nicola F. Zagari
 
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 MVVMAricelio Souza
 
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 - CamadasEduardo Nicola F. Zagari
 
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 WEBRafael França
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersSergio Crespo
 
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 - AdaptadorEduardo Nicola F. Zagari
 
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 FactoryEduardo Nicola F. Zagari
 
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 - SingletonEduardo Nicola F. Zagari
 
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 - FacadeEduardo Nicola F. Zagari
 
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 MethodEduardo Nicola F. Zagari
 
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 OperacionaisEduardo Nicola F. Zagari
 

Destacado (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 a 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 softwareThomas Kanzig
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasWanderson Paim
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvcJhordam Siqueira
 
Julio Silvello - Pervasive Computing
Julio Silvello - Pervasive ComputingJulio Silvello - Pervasive Computing
Julio Silvello - Pervasive Computingjsilvello
 
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
 
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 FuturoMagnos Martinello
 
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]Ministério Público da Paraíba
 
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 ZendThiago Sinésio
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
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.docxJulioCesar371362
 
Sistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosSistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosJoão Werther Filho IT
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 

Similar a 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
 

Más de Eduardo Nicola F. Zagari

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 SobrepostasEduardo Nicola F. Zagari
 
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 MPLSEduardo Nicola F. Zagari
 
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 LinuxEduardo Nicola F. Zagari
 
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 RealEduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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 - ProxyEduardo Nicola F. Zagari
 

Más de 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 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