32
Arquitetura de Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Sistemas Distribuídos 8º Período Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Embed Size (px)

Citation preview

Page 1: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Arquitetura de Sistemas Distribuídos

Mauro Lopes Carvalho Silva

Professor EBTT

DAI – Departamento de Informática

Campus Monte Castelo

Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Sistemas Distribuídos – 8º Período

Sistemas Distribuídos

Page 2: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

Objetivos

• Nesta aula iremos apresentar os conceitos básicos

sobre os modelos de arquitetura para Sistemas

Distribuídos. A arquitetura esta relacionado aos

componentes que fazem parte de um Sistema

Distribuído e a inter-relações entre eles. Ao final

desta apresentação o aluno poderá entender e

discutir sobre os variados modelos arquiteturais de

sistemas distribuídos encontrados no dia a dia.

Page 3: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Introdução

• Elementos Arquitetônicos

• Entidades em Comunicação

• Paradigmas de Comunicação

• Funções e Responsabilidades

• Posicionamento

Plano de Aula

Page 4: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Introdução

– A arquitetura de um sistema é a sua estrutura em

termos de componentes especificados

separadamente e suas inter-relações;

– O objetivo global é garantir que a estrutura

atenda às demandas atuais e, provavelmente, às

futuras demandas impostas sobre ela;

– As maiores preocupações são tornar o sistema

confiável, gerenciável, adaptável e rentável;

Arquitetura de Sistemas Distrib.

Page 5: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Elementos Arquitetônicos

– Para se entender os elementos fundamentais de

um sistema distribuído, é necessário considerar

quatro perguntas básicas:

• Quais as entidades que estão se comunicando no sistema

distribuído?

• Como elas se comunicam ou, mais especificamente, qual

é o paradigma de comunicação utilizado?

• Quais funções e responsabilidades (possivelmente

variáveis) estão relacionadas a eles na arquitetura global?

• Como eles são mapeados na infraestrutura distribuída

física (qual é sua localização)?

Arquitetura de Sistemas Distrib.

Page 6: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação

– Geralmente para a primeira pergunta, a resposta

é muito simples: as entidades que se comunicam

são os processos. No entanto temos duas

considerações:

– Em alguns ambientes primitivos como as redes sensores, o

conceito de abstração de processo não seja pertinente,

sendo o próprio nó responsável pela comunicação;

– Na maioria dos ambientes distribuídos, os processos são

complementados por threads; portanto rigorosamente

falando, as threads é que são os pontos extremos da

comunicação.

Arquitetura de Sistemas Distrib.

Page 7: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação

– Do ponto de vista da programação em sistemas

distribuídos, a visão da abstração de processos

não era suficiente, sendo criadas abstrações mais

voltadas ao problema. Temos então três

abstrações:

– Objetos

– Componentes

– Serviços Web

Arquitetura de Sistemas Distrib.

Page 8: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação - Objetos

– Os objetos foram introduzidos para permitir e

estimular o uso de estratégias orientadas a

objetos nos sistemas distribuídos;

– Neste modelo de estratégia, uma computação

consiste em vários objetos interagindo,

representando unidades de decomposição naturais

para o domínio do problema dado;

– Os objetos são acessados por meio de interfaces,

com uma linguagem de definição de interface

(IDL);

– Exemplo: RMI

Arquitetura de Sistemas Distrib.

Page 9: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – Objetos (RMI)

– Exemplo: RMI

Arquitetura de Sistemas Distrib.

Máq A Máq B

Page 10: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação - Componentes

– Muito semelhante ao uso de objetos (uso e

interfaces/IDL);

– A principal diferença é que os componentes não

especificam apenas as suas interfaces mas todas

as dependências que este precisa para funcionar

(outros componentes presentes, funções etc);

– Esta ação cria um contrato “mais seguro”

permitindo de forma mais segura a construção de

componentes de terceiros;

– Total remoção das “dependências ocultas”.

Arquitetura de Sistemas Distrib.

Page 11: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – Componentes (EJB)

Arquitetura de Sistemas Distrib.

Page 12: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – Serviços Web

– Adota uma estratégia baseada em

encapsulamento de comportamento e no acesso

por meio de interfaces;

– Uma diferença contundente é sua intrínseca

relação com a WWW, usando padrões web para

representar e descobrir serviços;– Enquanto os objetos e componentes são geralmente usados

dentro de uma organização para o desenvolvimento de

aplicações fortemente acopladas, os serviços Web geralmente

são vistos como serviços completos por si só, os quais podem

então, ser combinados para se obter serviços de valor agregado,

frequentemente ultrapassando os limites organizacionais;

Arquitetura de Sistemas Distrib.

Page 13: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – Serviços Web

Arquitetura de Sistemas Distrib.

Page 14: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Paradigmas de comunicação

– Agora que conhecemos as entidades, vamos

discutir como as entidades se comunicam em um

sistema distribuído;

– Vamos discutir três paradigmas de comunicação:

• Comunicação entre processos;

• Invocação remota;

• Comunicação indireta.

Arquitetura de Sistemas Distrib.

Page 15: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – entre processos

– Se refere ao suporte de nível mais baixo para

comunicação entre processos em sistemas

distribuídos, incluindo:

• Primitivas de passagem de mensagens;

• Acesso direto a API oferecida pelos protocolos internet

(programação em soquetes);

• Suporte para comunicação em grupo (multicast);

Arquitetura de Sistemas Distrib.

Page 16: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – invocação remota

– Representa o paradigma de comunicação mais

comum nos sistemas distribuídos, cobrindo uma

variedade de técnicas baseadas na troca bilateral

entre as entidades que se comunicam em um

sistema distribuído e resultando em uma chamada

de operação:

• Chamada a um procedimento remoto (RPC);

• Chamada a um método remoto (RMI).

Arquitetura de Sistemas Distrib.

Page 17: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – invocação remota

(RPC)

Arquitetura de Sistemas Distrib.

Page 18: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – invocação remota

(RPC)

Arquitetura de Sistemas Distrib.

Page 19: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Entidades em comunicação – comunicação indireta

– Na comunicação indireta, não temos apenas uma

simples comunicação bilateral

(remetente/destinatário);

– Neste caso a comunicação é feita por intermédio de

uma terceira entidade, possibilitando um alto grau

de desacoplamento entre remetentes e

destinatários;

– Exemplo:

– Sistemas publicar-assinar: um grande número de produtores

(publicadores) distribuem itens de informação de interesse

(eventos) para um número grande de consumidores

(assinantes);

Arquitetura de Sistemas Distrib.

Page 20: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Funções e Responsabilidades

– Em um sistema distribuído, os objetos,

componentes e serviços, interagem uns com os

outros para realizar uma atividade útil;

– Ao fazer isso eles assumem várias funções;

– Vamos discutir aqui dois estilos arquiteturais

resultantes das funções executas pelas entidades:

• Cliente-Servidor;

• Peer-to-peer;

Arquitetura de Sistemas Distrib.

Page 21: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Funções e Responsabilidades – Cliente/Servidor

– Nesta arquitetura as entidades assumem os papéis

de cliente ou servidores;

– Desta forma as entidades cliente interagem com

entidades servidores localizados possivelmente

em distintos computadores hospedeiros;

– Um servidor pode ser cliente de outros servidores;

– Servidor Web / Servidor de Arquivos;

– Serviços variados na internet / DNS.

Arquitetura de Sistemas Distrib.

Page 22: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Funções e Responsabilidades – Cliente/Servidor

Arquitetura de Sistemas Distrib.

Page 23: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Funções e Responsabilidades – Peer-to-peers

– Nesta arquitetura todos as entidades envolvidas em

uma tarefa ou atividade desempenham funções

semelhantes, interagindo cooperativamente como

pares (peers), sem distinção entre processos

clientes e servidores, nem entre os computadores

que são executados;

– O objetivo desta arquitetura é explorar os recursos

(tanto dados como hardware) de um grande número

de computadores para o cumprimento de uma

tarefa;

– Exemplos:

• Napster e BitTorrent

Arquitetura de Sistemas Distrib.

Page 24: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Funções e Responsabilidades – Peer-to-peers

Arquitetura de Sistemas Distrib.

•Peers são clientes qdo necessitam de informações de outro cliente;•Cliente contata um servidor central;•Servidor retorna cliente desejado;•Clientes se conversam (peers)

Page 25: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Posicionamento

– Como as entidades são mapeadas na infraestrutura física

distribuída, aonde teremos um grande número de máquinas

interconectadas por uma rede de complexidade arbitrária?

– O posicionamento precisa levar em consideração os padrões

de comunicação entre as entidades, a confiabilidade de

determinadas máquinas e sua carga atual, a qualidade da

comunicação entre as diferentes máquinas;

– Estratégias:

– Mapeamento de servidores em vários servidores;

– Uso de cache;

– Código móvel.

Arquitetura de Sistemas Distrib.

Page 26: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Posicionamento – Mapeamento de servidores

– Os serviços podem ser implementados como vários processos

servidores em diferentes computadores hospedeiros,

interagindo conforme for necessário, para fornecer um

serviço para processos clientes.

Arquitetura de Sistemas Distrib.

Page 27: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Posicionamento – Uso de cache

– Uma cache consiste em realizar um armazenamento de

objetos de dados recentemente usados em um local mais

próximo a um cliente, ou a um conjunto de clientes em

particular, do que a origem real dos objetos em si.

Arquitetura de Sistemas Distrib.

Page 28: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Posicionamento – Código móvel– Os applets representam um exemplo bem conhecido e bastante utilizado de

código móvel;

– Uma vantagem de executar um código localmente é que ele pode dar uma boa

resposta interativa, pois não sofre atrasos nem a variação da largura de banda

associada;

Arquitetura de Sistemas Distrib.

Page 29: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

• Posicionamento – Código móvel - push

Arquitetura de Sistemas Distrib.

Page 30: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

Dúvidas

Página do Professor Mauro:http://www.dai.ifma.edu.br/~mlcsilva

Page 31: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

Próxima Aula

• Padrões Arquitetônicos

Page 32: Arquitetura de Sistemas Distribuídos - Campus São Luís ...mlcsilva/aulas_sisdistribuidos/Aula 4.pdf · componentes que fazem parte de um Sistema Distribuído e a inter-relações

Sistemas Distribuídos – 8º Período

Referências

• Sistemas Distribuídos - Conceitos e Projeto, George

Coulouris, 4ª Edição - Editora Bookman, 784

páginas.