SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Padrões Arquiteturais

      Sistemas Distribuídos:
                      Broker
Sistemas Distribuídos
•  Tendências:
    – Sistemas Comp. com múltiplas CPUs
    – Redes locais com centenas de hospedeiros
•  Benefícios
    – Economia
    – Desempenho e escalabilidade
    – Distribuição intrínseca
    – Confiabilidade
•  Desvantagem: hw e sw overhead
2                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
Padrões em S.D.
•  Pipes e Filtros
    –  Embora possa ser usado na distribuição é mais
       freqüentemente empregado na estruturação do
       núcleo da aplicação
•  Microkernel
    –  Aplica-se a sistemas de software que devem ser
       aptos a se adaptarem a mudanças nos requisitos do
       sistema
    –  Emprega a arquitetura Cliente-Servidor
    –  Mais adequado a sistemas adaptáveis
•  Broker
3                    Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                            Architecture - Buschmann
Broker
•  Permite estruturar aplicações distribuídas
   através de componentes desacoplados,
   que interagem via invocações remotas
•  Coordena toda a comunicação
     •  Encaminhamento de requisições
     •  Resultados
     •  Exceçõ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
•  Ambiente distribuído
•  Possivelmente heterogêneo
•  Com componentes cooperantes
   independentes




6            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                    Architecture - Buschmann
Problema
•  Construir um sistema de software complexo
   como um conjunto de componentes
   desacoplados e interoperantes
    –  Grande flexibilidade, manutenabilidade,
       “alterabilidade”
    –  Potencialmente distribuíveis e escaláveis
•  Entretanto...
    1.  Problemas com a forma de comunicação
        (dependência do mecanismo de IPC, localização,
        linguagem de programação etc)
    2.  Problemas com a gerência dos serviços
7                   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                           Architecture - Buschmann
Problema
•    A distribuição deve ser transparente
•    Componentes deve ser aptos a acessar
     serviços providos por terceiros através de
     invocações remotas com transparência de
     localização
•    Pode-se precisar trocar, adicionar ou remover
     componentes em tempo de execução
•    A arquitetura deve esconder detalhes
     específicos do sistema e da implementação do
     usuário
8                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
Solução
•  Introduzir um componente broker para obter
   melhor desacoplamento entre clientes e
   servidores.
    –  Servidores se registram no broker e exportam seus
       serviços via interface dos métodos
    –  Clientes acessam os serviços via broker
    –  Broker localiza servidor apropriado, encaminha
       requisições e transmite os resultados e exceções de
       volta ao cliente
•  Broker provê a integração de duas tecnologias:
   a de distribuição e a de objetos
9                   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                           Architecture - Buschmann
Estrutura
1.  Servidor
     –  Implementa objetos que expõem suas
        funcionalidades via interfaces
     –  Interfaces podem ser disponibilizadas através de
        IDL ou de um padrão binário
2.  Clientes
     –  Aplicações que acessam o serviço de pelo menos
        um servidor
     –  Para tanto, encaminham requisições ao broker e
        recebem dele as respostas ou exceções

10                   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                            Architecture - Buschmann
Estrutura
3.  Broker
     –  Mensageiro responsável pela transmissão
        das requisições, respostas e exceções
     –  Deve prover algum mecanismo de
        localização (identificador)
     –  Oferece APIs aos clientes e servidores
        (registro, invocação de métodos etc)
     –  Pode prover serviços adicionais (serviço de
        nomes, suporte a serialização/marshaling
        etc)
11                 Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                          Architecture - Buschmann
Estrutura
4.  Proxy do lado do Cliente
     –  Camada adicional entre cliente e broker
     –  Provê transparência (objeto remoto aparece como se
        fosse local). Esconde:
        •    O mecanismo de IPC entre cliente e broker
        •    A criação/remoção de blocos de memória
        •    O marshaling de parâmetros e resultados
5.  Proxy do lado do Servidor
     –  Análogo ao anterior (recebem requisições,
        desempacotam as mensagens, “de-serializam” os
        parâmetros, chamam os serviços apropriados e
        retornam resultados/exceções serializados ao cliente
12                      Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                               Architecture - Buschmann
Estrutura
6.  Pontes
     –  Componentes opcionais
     –  Escondem detalhes de implementação
        quando dois brokers interoperam em redes
        heterogêneas (diferentes redes, S.O.s etc)




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




14   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
            Architecture - Buschmann
Dinâmica – Cenário 1
      Servidor se registra




15       Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                Architecture - Buschmann
Cenário 2 - Cliente envia requisição a
           servidor local (síncrona)




16               Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
Cenário 3 – Interação de diferentes
        brokers via pontes




17         Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                  Architecture - Buschmann
Implementação
1.  Definir um modelo de objetos ou usar um
    modelo existente (nomes, objetos, requisições,
    valores, exceções, tipos suportados, extensões
    de tipos, interfaces e operações)
2.  Decidir qual tipo de interoperabilidade de
    componentes o sistema deve oferecer
    (especificar um padrão binário ou introduzir uma
    IDL de alto nível)
     •    Vantagem/desvantagem
3.  Especificar as APIs que o broker provê para
    colaborar com clientes e servidores
     •    Decidir também se invocações estáticas ou dinâmicas
18                    Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                             Architecture - Buschmann
Implementação
4.  Usar objetos proxy para esconder detalhes de
    implementação dos clientes e servidores
5.  Projetar o broker (como ele deve agir):
     •    Protocolo on-the-wire detalhado
     •    Broker local em toda máquina
     •    Mecanismo de identificação do cliente para retorno
          de resultados
     •    Mecanismo de (un)marshaling de parâmetros



19                    Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                             Architecture - Buschmann
Implementação
     •  Prover buffers (se suportar comunicação
        assíncrona)
     •  Prover Diretório de Serviços
     •  Serviço de Nomes
     •  Informação de tipos dos servidores (se
        suportar invocação de métodos dinâmica)
     •  Planejar ação (semântica de erro) do broker
        em caso de erros (de componentes e/ou da
        comunicação)
6.  Desenvolver compiladores de IDL
20                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                         Architecture - Buschmann
Usos conhecidos
•  CORBA
•  IBM SOM/DSOM
•  Microsoft OLE 2.x
•  WWW




21             Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                      Architecture - Buschmann
Benefícios
•  Transparência de localização
•  Mudança e extensão de componentes
•  Portabilidade de um sistema de Broker
•  Interoperabilidade entre diferentes
   sistemas de Broker
•  Reusabilidade


22            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Desvantagens
•  Eficiência limitada
•  Baixa tolerância a falta (do broker)

•  Teste e Debug - apresentam vantagem e
   desvantagem ao mesmo tempo:
     – Ex. vantagem: desenvolver cliente com
       servidor já testado
     – Ex. desvantagem: testar um sistema de
       broker inteiro...
23                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                         Architecture - Buschmann

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de SistemasNécio de Lima Veras
 
JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitosEduardo Castro
 
Apostila de Banco dados
Apostila de Banco dadosApostila de Banco dados
Apostila de Banco dadosFernando Palma
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo FísicoCentro Paula Souza
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Elaine Cecília Gatto
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansãoMarcos Basilio
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosJoseph Lopez
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 

Was ist angesagt? (20)

Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitos
 
Apostila de Banco dados
Apostila de Banco dadosApostila de Banco dados
Apostila de Banco dados
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
Modelos de base de dados
Modelos de base de dadosModelos de base de dados
Modelos de base de dados
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansão
 
PROJETO DE REDE
PROJETO DE REDEPROJETO DE REDE
PROJETO DE REDE
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
 
Redes de comunicação - TGPSI
Redes de comunicação - TGPSIRedes de comunicação - TGPSI
Redes de comunicação - TGPSI
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
XML Schema (2002)
XML Schema (2002)XML Schema (2002)
XML Schema (2002)
 

Andere mochten auch

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-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ões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
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-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Monitor de Processos Distribuídos
Monitor de Processos DistribuídosMonitor de Processos Distribuídos
Monitor de Processos Distribuídoswillmews
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...Ramon Mayor Martins
 
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
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
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
 

Andere mochten auch (20)

Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
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
 
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ões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
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-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Monitor de Processos Distribuídos
Monitor de Processos DistribuídosMonitor de Processos Distribuídos
Monitor de Processos Distribuídos
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Padrões-01 - Introdução
Padrões-01 - IntroduçãoPadrões-01 - Introdução
Padrões-01 - Introdução
 
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
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
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
 

Ähnlich wie Padrões-04 - Padrões Arquiteturais - Broker

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
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisWindson Viana
 
Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Valdeir Frizzera
 
Integração de aplicações em
Integração de aplicações emIntegração de aplicações em
Integração de aplicações emgsroma
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasWanderson Paim
 
Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana Costa
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
Processo para a Construção de Protótipos
Processo para a Construção de ProtótiposProcesso para a Construção de Protótipos
Processo para a Construção de ProtótiposOtávio Souza
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 

Ähnlich wie Padrões-04 - Padrões Arquiteturais - Broker (20)

Trabalho
TrabalhoTrabalho
Trabalho
 
Sistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosSistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos Arquitetônicos
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - Coulouris
 
Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.Fundamentos da arquitetura cliente servidor.
Fundamentos da arquitetura cliente servidor.
 
Integração de aplicações em
Integração de aplicações emIntegração de aplicações em
Integração de aplicações em
 
Eng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. Requisitos
 
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
 
Aula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computingAula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computing
 
Aula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosdsAula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosds
 
Joana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático wwwJoana costa tp 1 – trabalho prático www
Joana costa tp 1 – trabalho prático www
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Computacao em nuvem
Computacao em nuvemComputacao em nuvem
Computacao em nuvem
 
Cloud computing foundation
Cloud computing foundationCloud computing foundation
Cloud computing foundation
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
Processo para a Construção de Protótipos
Processo para a Construção de ProtótiposProcesso para a Construção de Protótipos
Processo para a Construção de Protótipos
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Aula 8 semana
Aula 8 semanaAula 8 semana
Aula 8 semana
 

Mehr von 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
 
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
 

Mehr von Eduardo Nicola F. Zagari (18)

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-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
 
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-04 - Padrões Arquiteturais - Broker

  • 1. Padrões Arquiteturais Sistemas Distribuídos: Broker
  • 2. Sistemas Distribuídos •  Tendências: – Sistemas Comp. com múltiplas CPUs – Redes locais com centenas de hospedeiros •  Benefícios – Economia – Desempenho e escalabilidade – Distribuição intrínseca – Confiabilidade •  Desvantagem: hw e sw overhead 2 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 3. Padrões em S.D. •  Pipes e Filtros –  Embora possa ser usado na distribuição é mais freqüentemente empregado na estruturação do núcleo da aplicação •  Microkernel –  Aplica-se a sistemas de software que devem ser aptos a se adaptarem a mudanças nos requisitos do sistema –  Emprega a arquitetura Cliente-Servidor –  Mais adequado a sistemas adaptáveis •  Broker 3 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 4. Broker •  Permite estruturar aplicações distribuídas através de componentes desacoplados, que interagem via invocações remotas •  Coordena toda a comunicação •  Encaminhamento de requisições •  Resultados •  Exceçõ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 •  Ambiente distribuído •  Possivelmente heterogêneo •  Com componentes cooperantes independentes 6 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 7. Problema •  Construir um sistema de software complexo como um conjunto de componentes desacoplados e interoperantes –  Grande flexibilidade, manutenabilidade, “alterabilidade” –  Potencialmente distribuíveis e escaláveis •  Entretanto... 1.  Problemas com a forma de comunicação (dependência do mecanismo de IPC, localização, linguagem de programação etc) 2.  Problemas com a gerência dos serviços 7 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 8. Problema •  A distribuição deve ser transparente •  Componentes deve ser aptos a acessar serviços providos por terceiros através de invocações remotas com transparência de localização •  Pode-se precisar trocar, adicionar ou remover componentes em tempo de execução •  A arquitetura deve esconder detalhes específicos do sistema e da implementação do usuário 8 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 9. Solução •  Introduzir um componente broker para obter melhor desacoplamento entre clientes e servidores. –  Servidores se registram no broker e exportam seus serviços via interface dos métodos –  Clientes acessam os serviços via broker –  Broker localiza servidor apropriado, encaminha requisições e transmite os resultados e exceções de volta ao cliente •  Broker provê a integração de duas tecnologias: a de distribuição e a de objetos 9 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 10. Estrutura 1.  Servidor –  Implementa objetos que expõem suas funcionalidades via interfaces –  Interfaces podem ser disponibilizadas através de IDL ou de um padrão binário 2.  Clientes –  Aplicações que acessam o serviço de pelo menos um servidor –  Para tanto, encaminham requisições ao broker e recebem dele as respostas ou exceções 10 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 11. Estrutura 3.  Broker –  Mensageiro responsável pela transmissão das requisições, respostas e exceções –  Deve prover algum mecanismo de localização (identificador) –  Oferece APIs aos clientes e servidores (registro, invocação de métodos etc) –  Pode prover serviços adicionais (serviço de nomes, suporte a serialização/marshaling etc) 11 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 12. Estrutura 4.  Proxy do lado do Cliente –  Camada adicional entre cliente e broker –  Provê transparência (objeto remoto aparece como se fosse local). Esconde: •  O mecanismo de IPC entre cliente e broker •  A criação/remoção de blocos de memória •  O marshaling de parâmetros e resultados 5.  Proxy do lado do Servidor –  Análogo ao anterior (recebem requisições, desempacotam as mensagens, “de-serializam” os parâmetros, chamam os serviços apropriados e retornam resultados/exceções serializados ao cliente 12 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 13. Estrutura 6.  Pontes –  Componentes opcionais –  Escondem detalhes de implementação quando dois brokers interoperam em redes heterogêneas (diferentes redes, S.O.s etc) 13 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 14. Estrutura 14 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 15. Dinâmica – Cenário 1 Servidor se registra 15 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 16. Cenário 2 - Cliente envia requisição a servidor local (síncrona) 16 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 17. Cenário 3 – Interação de diferentes brokers via pontes 17 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 18. Implementação 1.  Definir um modelo de objetos ou usar um modelo existente (nomes, objetos, requisições, valores, exceções, tipos suportados, extensões de tipos, interfaces e operações) 2.  Decidir qual tipo de interoperabilidade de componentes o sistema deve oferecer (especificar um padrão binário ou introduzir uma IDL de alto nível) •  Vantagem/desvantagem 3.  Especificar as APIs que o broker provê para colaborar com clientes e servidores •  Decidir também se invocações estáticas ou dinâmicas 18 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 19. Implementação 4.  Usar objetos proxy para esconder detalhes de implementação dos clientes e servidores 5.  Projetar o broker (como ele deve agir): •  Protocolo on-the-wire detalhado •  Broker local em toda máquina •  Mecanismo de identificação do cliente para retorno de resultados •  Mecanismo de (un)marshaling de parâmetros 19 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 20. Implementação •  Prover buffers (se suportar comunicação assíncrona) •  Prover Diretório de Serviços •  Serviço de Nomes •  Informação de tipos dos servidores (se suportar invocação de métodos dinâmica) •  Planejar ação (semântica de erro) do broker em caso de erros (de componentes e/ou da comunicação) 6.  Desenvolver compiladores de IDL 20 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 21. Usos conhecidos •  CORBA •  IBM SOM/DSOM •  Microsoft OLE 2.x •  WWW 21 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 22. Benefícios •  Transparência de localização •  Mudança e extensão de componentes •  Portabilidade de um sistema de Broker •  Interoperabilidade entre diferentes sistemas de Broker •  Reusabilidade 22 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 23. Desvantagens •  Eficiência limitada •  Baixa tolerância a falta (do broker) •  Teste e Debug - apresentam vantagem e desvantagem ao mesmo tempo: – Ex. vantagem: desenvolver cliente com servidor já testado – Ex. desvantagem: testar um sistema de broker inteiro... 23 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann