Beruflich Dokumente
Kultur Dokumente
UNIDADE III: TRANSAÇÕES DISTRIBUÍDAS COULOURIS, George., et al. Sistemas Distribuídos: Conceitos e
Transações aninhadas Projetos. Porto Alegre: Bookman, 2007.
Travas e bloqueio
Transações distribuídas planas e aninhadas
Protocolos de efetivação atômica RIBEIRO, U. Sistemas Distribuídos – Desenvolvendo Aplicações de
Controle de concorrência
Alta Performance no Linux. Rio de Janeiro: Editora Axcel Books, 2005.
Impasses distribuídos
Recuperação de transações ALBUQUERQUE, F. TCP/IP: Programação de Sistemas Distribuídos
HTML, JAVASCRIPT e JAVA. Editora Axcel, 2001.
UNIDADE IV: REPLICAÇÃO
Modelo de sistema e comunicação em grupo TANEMBAUN, A. and STEEN, M. Distributed Systems: Principles and
Serviços tolerantes a falhas Paradigms. Prentice Hall, 2001.
Transações com replicação de dados
TANEMBAUN, A. Distributed Operating Systems. Prentice Hall
Informática, 1995.
Motivação
Unidade I:
A motivação para construir sistemas distribuídos é
Caracterização dos Sistemas Distribuídos
proveniente do desejo de compartilhar recursos;
em computadores interligados em
rede, se comunicam e coordenam
suas ações apenas enviando backbone
mensagens entre si.
satellite link
Desktop Computer
server:
network link:
É um sistema em evolução para a publicação e para o acesso A web é baseada em três componentes
a recursos e serviços pela Internet.
tecnológicos padrão principais:
Por meio de navegadores web (browsers) os usuários HTML (HyperText Markup Language)
⌧Linguagem usada para especificar o conteúdo e o leiaute de páginas
recuperam e vêem documentos de muitos tipos, ouvem fluxo
de áudio, assistem a fluxo de vídeo e interagem com um vasto URLs (Uniform Resource Locators)
conjunto de serviços. ⌧Identificam os documentos e outros recursos armazenados como parte
da web
A web é um sistema aberto: pode ser ampliada e Arquitetura cliente-servidor, com regras padrão para
implementada de novas maneiras, sem perturbar a interação (protocolo HTTP – HyperText Transfer
funcionalidade existente. Protocol), por meio dos quais os navegadores e outros
clientes buscam documentos e outros recursos dos
A web é aberta no que diz respeito aos tipos de recursos que servidores da web.
nela podem ser publicados e compartilhados.
www.cdk3.net Internet
http://www.cdk3.net/
email server
www.w3c.org print
File server
File system of http://www.w3c.org/Protocols/Activity.html other servers
www.w3c.org Protocols
the rest of
Activity.html the Internet
router/firewall
Exemplos de Sistemas Distribuídos Exemplos de Sistemas Distribuídos
Computação Móvel e Ubíqua Computação Móvel e Ubíqua
A portabilidade de muitos desses dispositivos, junto A computação ubíqua (pervasiva) é a utilização de vários
com a capacidade de se conectar com redes em dispositivos computacionais pequenos e baratos, que
estão presentes nos ambientes físicos dos usuários.
diferentes lugares, torna possível a computação
móvel (nômade).
O termo pervasivo sugere que os equipamentos estarão
presentes em objetos diários, sem que o usuário o
A computação móvel é a execução de tarefas de perceba, ou seja, serão transparentes para o usuário.
computação, enquanto o usuário está se deslocando
de um lugar para outro ou visitando lugares
O termo ubíquo significa que a computação estará
diferentes de seu ambiente usual.
onipresente: disponível em qualquer lugar.
Escalabilidade
Detecção de falhas
Tolerância a falhas Tratamento de falhas
Recuperação de falhas
Redundância Concorrência
Transparência
O código que o cliente deseja executar é transferido a) client request results in the downloading of applet code
para a máquina do cliente e executado localmente.
Applet; Client Web
Applet code server
Após o download do código, não existe atraso na
execução do aplicativo. b) client interacts with the applet
Um modelo contém apenas os ingredientes essenciais que Os aspectos dos sistemas distribuídos que desejamos
precisamos considerar para entender e raciocinar a respeito considerar nos modelos fundamentais são:
Interação:
de certos aspectos do comportamento de um sistema. ⌧Processos interagem enviando mensagens uns aos outros resultando na
Quais são as principais entidades presentes no sistema? comunicação e na coordenação entre eles.
⌧O modelo de interação deve refletir o fato de que a comunicação ocorre com
Como elas interagem? atrasos que, frequentemente, têm duração considerável;
Quais são as características que afetam seu comportamento individual
e coletivo? Falhas:
⌧O modelo de falhas define e classifica as falhas;
⌧Projetar sistemas capazes de tolerar certos tipos de falhas e continuar
funcionando corretamente;
O objetivo de um modelo é:
Tornar explícita todas as suposições relevantes sobre os sistemas que Segurança:
se está modelando; ⌧O Modelo de Segurança define e classifica as formas com que ataques à
segurança do sistemas pode assumir;
Fazer generalizações a respeito do que é possível ou impossível, ⌧Analisa as possíveis ameaças e guia para o desenvolvimento de sistemas
dadas essas suposições; capazes de resistir a eles;
Servidores e processos peer-to-peer publicam suas A criptografia moderna é baseada em algoritmos que utilizam
chaves secretas para transformar os dados de uma maneira que
interfaces, permitindo que invocações sejam enviadas a
só podem ser revertidos com o conhecimento da chave de
eles por qualquer outro processo. decifração correspondente;
Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos
Comunicação Síncrona
A passagem de mensagens entre um par de processos
pode ser suportada por duas operações de Os processos remetente e destino são sincronizados a
comunicação de mensagem: cada mensagem
send;
receive; Send e Receive causam bloqueio.
Processos remetentes fazem as mensagens serem Quando um envio é feito, o processo remetente é
adicionadas em filas remotas;
bloqueado até que a recepção correspondente seja
realizada.
Processos destino removem mensagens de suas filas
locais;
Quando uma recepção é executada, o processo é
A comunicação pode ser síncrona ou assíncrona: bloqueado enquanto a mensagem não chegar.
A transmissão da mensagem ocorre em paralelo com a O processo deve receber separadamente uma
execução do processo remetente. notificação de que seu buffer possui dados.
VoiP
Comunicação Comunicação
Comunicação Cliente-Servidor Requisição-Resposta Comunicação Cliente-Servidor Requisição-Resposta
Identificadores de mensagem:
Timeout
Identificador de requisição:
Utilizado para limitar a espera de uma mensagem de
⌧Criado pelo processo remetente a partir de uma sequência ascendentes
de valores inteiros
resposta do servidor;
Identificador do processo remetente:
⌧Porta e endereço IP Retorna imediatamente de doOperation, indicando que
este método falhou ao tentar receber resposta do servidor;
⌧Timeout atingido devido a perda da mensagem de requisição ou da
Modelo de falhas resposta.
Sofreram as falhas relacionadas ao protocolo que
utilizam; Para compensar a possibilidade de perdas de
UDP mensagens, doOperation envia a mensagem de
⌧Falhas por omissão.
requisição repetidas vezes até estar seguro que o servidor
⌧Não haverá garantia da ordem de entrega das mensagens.
está fora de operação (sem resposta);
⌧Falhas de processos
• Colapso
Comunicação Cliente-Servidor Comunicação Cliente-Servidor RPC
Protocolo de Transporte utilizado: TCP ou UDP; 1ª) O procedimento remoto chama o stub cliente da forma
normal, isto é, como se fosse um procedimento local
qualquer;
A finalidade é fazer com que um procedimento remoto
se pareça o máximo possível com uma chamada local;
2ª) O stub cliente constrói a mensagem e passa ao kernel; 4ª) O kernel remoto entrega a mensagem ao stub servidor;
Comunicação Cliente-Servidor RPC Comunicação Cliente-Servidor RPC
OBJETIVO: FORMATO:
Desenvolver um applet que forneça um serviço para um Cada equipe terá no máximo 15 min para expor o seu
usuário através de uma página html; applet;
A implementação deverá ser entregue seguindo o modelo
EQUIPE: de publicação dos artigos da SBC;
Até 03 pessoas;
Todas as equipes deverão apresentar um applet diferente
da outra equipe, ou seja, não serão aceitos trabalhos com
o mesmo código;
ENTREGA:
Aula do dia 21/09/10.