arquitetura de sistemas distribuídos - campus são luís ...mlcsilva/aulas_sisdistribuidos/aula...
TRANSCRIPT
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
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.
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
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.
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.
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.
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.
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.
Sistemas Distribuídos – 8º Período
• Entidades em comunicação – Objetos (RMI)
– Exemplo: RMI
Arquitetura de Sistemas Distrib.
Máq A Máq B
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.
Sistemas Distribuídos – 8º Período
• Entidades em comunicação – Componentes (EJB)
Arquitetura de Sistemas Distrib.
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.
Sistemas Distribuídos – 8º Período
• Entidades em comunicação – Serviços Web
Arquitetura de Sistemas Distrib.
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.
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.
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.
Sistemas Distribuídos – 8º Período
• Entidades em comunicação – invocação remota
(RPC)
Arquitetura de Sistemas Distrib.
Sistemas Distribuídos – 8º Período
• Entidades em comunicação – invocação remota
(RPC)
Arquitetura de Sistemas Distrib.
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.
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.
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.
Sistemas Distribuídos – 8º Período
• Funções e Responsabilidades – Cliente/Servidor
Arquitetura de Sistemas Distrib.
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.
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)
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.
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.
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.
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.
Sistemas Distribuídos – 8º Período
• Posicionamento – Código móvel - push
Arquitetura de Sistemas Distrib.
Sistemas Distribuídos – 8º Período
Dúvidas
Página do Professor Mauro:http://www.dai.ifma.edu.br/~mlcsilva
Sistemas Distribuídos – 8º Período
Próxima Aula
• Padrões Arquitetônicos
Sistemas Distribuídos – 8º Período
Referências
• Sistemas Distribuídos - Conceitos e Projeto, George
Coulouris, 4ª Edição - Editora Bookman, 784
páginas.