padrões-04 - padrões arquiteturais - broker

23
Padrões Arquiteturais Sistemas Distribuídos: Broker

Upload: nicola-zagari

Post on 18-Dec-2014

3.149 views

Category:

Technology


10 download

DESCRIPTION

Padrões Arquiteturais. Sistema Distribuído. Broker.

TRANSCRIPT

Page 1: Padrões-04 - Padrões Arquiteturais - Broker

Padrões Arquiteturais

Sistemas Distribuídos: Broker

Page 2: Padrões-04 - Padrões Arquiteturais - Broker

2 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 3: Padrões-04 - Padrões Arquiteturais - Broker

3 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 4: Padrões-04 - Padrões Arquiteturais - Broker

4 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 5: Padrões-04 - Padrões Arquiteturais - Broker

5 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Exemplo

Page 6: Padrões-04 - Padrões Arquiteturais - Broker

6 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Contexto

•  Ambiente distribuído •  Possivelmente heterogêneo • Com componentes cooperantes

independentes

Page 7: Padrões-04 - Padrões Arquiteturais - Broker

7 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 8: Padrões-04 - Padrões Arquiteturais - Broker

8 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 9: Padrões-04 - Padrões Arquiteturais - Broker

9 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 10: Padrões-04 - Padrões Arquiteturais - Broker

10 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 11: Padrões-04 - Padrões Arquiteturais - Broker

11 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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)

Page 12: Padrões-04 - Padrões Arquiteturais - Broker

12 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 13: Padrões-04 - Padrões Arquiteturais - Broker

13 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Estrutura

6.  Pontes –  Componentes opcionais –  Escondem detalhes de implementação

quando dois brokers interoperam em redes heterogêneas (diferentes redes, S.O.s etc)

Page 14: Padrões-04 - Padrões Arquiteturais - Broker

14 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Estrutura

Page 15: Padrões-04 - Padrões Arquiteturais - Broker

15 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Dinâmica – Cenário 1 Servidor se registra

Page 16: Padrões-04 - Padrões Arquiteturais - Broker

16 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Cenário 2 - Cliente envia requisição a servidor local (síncrona)

Page 17: Padrões-04 - Padrões Arquiteturais - Broker

17 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Cenário 3 – Interação de diferentes brokers via pontes

Page 18: Padrões-04 - Padrões Arquiteturais - Broker

18 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 19: Padrões-04 - Padrões Arquiteturais - Broker

19 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 20: Padrões-04 - Padrões Arquiteturais - Broker

20 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 21: Padrões-04 - Padrões Arquiteturais - Broker

21 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Usos conhecidos

• CORBA •  IBM SOM/DSOM • Microsoft OLE 2.x • WWW

Page 22: Padrões-04 - Padrões Arquiteturais - Broker

22 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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

Page 23: Padrões-04 - Padrões Arquiteturais - Broker

23 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

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